diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index bcd5c45..0000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,76 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, sex characteristics, gender identity and expression, -level of experience, education, socio-economic status, nationality, personal -appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be -further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at 303176530@qq.com. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html - -[homepage]: https://www.contributor-covenant.org - -For answers to common questions about this code of conduct, see -https://www.contributor-covenant.org/faq diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index b3076b2..0000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,19 +0,0 @@ - -### Contributing Guide -#### 1 Issue Guidelines - -- Issues are exclusively for bug reports, feature requests and design-related topics. Other questions may be closed directly. If any questions come up when you are using Element, please hit [Gitter](https://gitter.im/element-en/Lobby) for help. - -- Before submitting an issue, please check if similar problems have already been issued. - -#### 2 Pull Request Guidelines - -- Fork this repository to your own account. Do not create branches here. - -- Commit info should be formatted as `[File Name]: Info about commit.` (e.g. `README.md: Fix xxx bug`) - -- Make sure PRs are created to `develop` branch instead of `master` branch. - -- If your PR fixes a bug, please provide a description about the related bug. - -- Merging a PR takes two maintainers: one approves the changes after reviewing, and then the other reviews and merges. diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 11955dc..0000000 --- a/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM golang:alpine as builder - -WORKDIR /go/src/zc-admin/server -COPY . . - -RUN go env -w GO111MODULE=on \ - && go env -w GOPROXY=https://goproxy.cn,direct \ - && go env -w CGO_ENABLED=0 \ - && go env \ - && go mod tidy \ - && go build -o server . - -FROM alpine:latest - -LABEL MAINTAINER="SliverHorn@sliver_horn@qq.com" - -WORKDIR /go/src/zc-admin/server - -COPY --from=0 /go/src/zc-admin/server/server ./ -COPY --from=0 /go/src/zc-admin/server/resource ./resource/ -COPY --from=0 /go/src/zc-admin/server/config.docker.yaml ./ - -EXPOSE 8888 -ENTRYPOINT ./server -c config.docker.yaml diff --git a/api/v1/slot/slot.go b/api/v1/slot/slot.go index 3f8f304..dc6fb12 100644 --- a/api/v1/slot/slot.go +++ b/api/v1/slot/slot.go @@ -1,13 +1,9 @@ package slot import ( - "context" - "fmt" "github.com/gin-gonic/gin" - "oplian/global" "oplian/model/common/response" "oplian/model/slot/request" - "oplian/service/pb" ) type SlotApi struct{} @@ -30,14 +26,14 @@ func (slot *SlotApi) InstallSlot(c *gin.Context) { var errMsg string switch param.Name { case "unsealed": - for _, gclient := range global.GateWayClinets.Gets() { - //新增存储 - _, err = gclient.InstallUnsealed(context.Background(), &pb.String{}) - if err != nil { - errMsg += fmt.Sprintf("%s\n", err.Error()) - continue - } - } + //for _, gclient := range global.GateWayClinets.Gets() { + // //新增存储 + // //_, err = gclient.InstallUnsealed(context.Background(), &pb.String{}) + // //if err != nil { + // // errMsg += fmt.Sprintf("%s\n", err.Error()) + // // continue + // //} + //} } response.OkWithMessage(errMsg, c) } diff --git a/api/v1/system/enter.go b/api/v1/system/enter.go index ee7135e..7873c76 100644 --- a/api/v1/system/enter.go +++ b/api/v1/system/enter.go @@ -9,13 +9,11 @@ type ApiGroup struct { BaseApi SystemApi CasbinApi - AutoCodeApi SystemApiApi AuthorityApi DictionaryApi AuthorityMenuApi OperationRecordApi - AutoCodeHistoryApi DictionaryDetailApi AuthorityBtnApi MachineRoomRecordApi @@ -39,13 +37,11 @@ var ( userService = service.ServiceGroupApp.SystemServiceGroup.UserService initDBService = service.ServiceGroupApp.SystemServiceGroup.InitDBService casbinService = service.ServiceGroupApp.SystemServiceGroup.CasbinService - autoCodeService = service.ServiceGroupApp.SystemServiceGroup.AutoCodeService baseMenuService = service.ServiceGroupApp.SystemServiceGroup.BaseMenuService authorityService = service.ServiceGroupApp.SystemServiceGroup.AuthorityService dictionaryService = service.ServiceGroupApp.SystemServiceGroup.DictionaryService systemConfigService = service.ServiceGroupApp.SystemServiceGroup.SystemConfigService operationRecordService = service.ServiceGroupApp.SystemServiceGroup.OperationRecordService - autoCodeHistoryService = service.ServiceGroupApp.SystemServiceGroup.AutoCodeHistoryService dictionaryDetailService = service.ServiceGroupApp.SystemServiceGroup.DictionaryDetailService authorityBtnService = service.ServiceGroupApp.SystemServiceGroup.AuthorityBtnService machineRoomRecordService = service.ServiceGroupApp.SystemServiceGroup.MachineRoomRecordService diff --git a/api/v1/system/sys_auto_code.go b/api/v1/system/sys_auto_code.go deleted file mode 100644 index ad5a7e6..0000000 --- a/api/v1/system/sys_auto_code.go +++ /dev/null @@ -1,298 +0,0 @@ -package system - -import ( - "errors" - "fmt" - "net/url" - "os" - "strings" - - "golang.org/x/text/cases" - "golang.org/x/text/language" - "oplian/global" - "oplian/model/common/response" - "oplian/model/system" - "oplian/utils" - - "github.com/gin-gonic/gin" - "go.uber.org/zap" -) - -type AutoCodeApi struct{} - -var caser = cases.Title(language.English) - -// PreviewTemp -// @Tags AutoCode -// @Summary Preview the created code -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data body -// @Success 200 {object} response.Response{data=map[string]interface{},msg=string} -// @Router /autoCode/preview [post] -func (autoApi *AutoCodeApi) PreviewTemp(c *gin.Context) { - var a system.AutoCodeStruct - _ = c.ShouldBindJSON(&a) - if err := utils.Verify(a, utils.AutoCodeVerify); err != nil { - response.FailWithMessage(err.Error(), c) - return - } - a.Pretreatment() // Process go keywords - a.PackageT = caser.String(a.Package) - autoCode, err := autoCodeService.PreviewTemp(a) - if err != nil { - global.ZC_LOG.Error("Preview failed!", zap.Error(err)) - response.FailWithMessage("Preview failed", c) - } else { - response.OkWithDetailed(gin.H{"autoCode": autoCode}, "Preview successful", c) - } -} - -// CreateTemp -// @Tags AutoCode -// @Summary Automatic Code Template -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data body -// @Success 200 {string} string "{"success":true,"data":{},"msg":"Created successfully"}" -// @Router /autoCode/createTemp [post] -func (autoApi *AutoCodeApi) CreateTemp(c *gin.Context) { - var a system.AutoCodeStruct - _ = c.ShouldBindJSON(&a) - if err := utils.Verify(a, utils.AutoCodeVerify); err != nil { - response.FailWithMessage(err.Error(), c) - return - } - a.Pretreatment() - var apiIds []uint - if a.AutoCreateApiToSql { - if ids, err := autoCodeService.AutoCreateApi(&a); err != nil { - global.ZC_LOG.Error("Automation creation failed! Please clear junk data by yourself!", zap.Error(err)) - c.Writer.Header().Add("success", "false") - c.Writer.Header().Add("msg", url.QueryEscape("Automation creation failed! Please clear junk data by yourself!")) - return - } else { - apiIds = ids - } - } - a.PackageT = caser.String(a.Package) - err := autoCodeService.CreateTemp(a, apiIds...) - if err != nil { - if errors.Is(err, system.ErrAutoMove) { - c.Writer.Header().Add("success", "true") - c.Writer.Header().Add("msg", url.QueryEscape(err.Error())) - } else { - c.Writer.Header().Add("success", "false") - c.Writer.Header().Add("msg", url.QueryEscape(err.Error())) - _ = os.Remove("./ginvueadmin.zip") - } - } else { - c.Writer.Header().Add("Content-Disposition", fmt.Sprintf("attachment; filename=%s", "ginvueadmin.zip")) // fmt.Sprintf("attachment; filename=%s", filename)对下载的文件重命名 - c.Writer.Header().Add("Content-Type", "application/json") - c.Writer.Header().Add("success", "true") - c.File("./ginvueadmin.zip") - _ = os.Remove("./ginvueadmin.zip") - } -} - -// GetDB -// @Tags AutoCode -// @Summary Get all current databases -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Success 200 {object} response.Response{data=map[string]interface{},msg=string} -// @Router /autoCode/getDatabase [get] -func (autoApi *AutoCodeApi) GetDB(c *gin.Context) { - businessDB := c.Query("businessDB") - dbs, err := autoCodeService.Database(businessDB).GetDB(businessDB) - var dbList []map[string]interface{} - for _, db := range global.ZC_CONFIG.DBList { - var item = make(map[string]interface{}) - item["aliasName"] = db.AliasName - item["dbName"] = db.Dbname - item["disable"] = db.Disable - item["dbtype"] = db.Type - dbList = append(dbList, item) - } - if err != nil { - global.ZC_LOG.Error("Acquisition failed!", zap.Error(err)) - response.FailWithMessage("Acquisition failed", c) - } else { - response.OkWithDetailed(gin.H{"dbs": dbs, "dbList": dbList}, "Successfully obtained", c) - } -} - -// GetTables -// @Tags AutoCode -// @Summary Get all tables in the current database -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Success 200 {object} response.Response{data=map[string]interface{},msg=string} -// @Router /autoCode/getTables [get] -func (autoApi *AutoCodeApi) GetTables(c *gin.Context) { - dbName := c.DefaultQuery("dbName", global.ZC_CONFIG.Mysql.Dbname) - businessDB := c.Query("businessDB") - tables, err := autoCodeService.Database(businessDB).GetTables(businessDB, dbName) - if err != nil { - global.ZC_LOG.Error("Query table failed!", zap.Error(err)) - response.FailWithMessage("Query table failed", c) - } else { - response.OkWithDetailed(gin.H{"tables": tables}, "Successfully obtained", c) - } -} - -// GetColumn -// @Tags AutoCode -// @Summary Get all fields in the current table -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Success 200 {object} response.Response{data=map[string]interface{},msg=string} -// @Router /autoCode/getColumn [get] -func (autoApi *AutoCodeApi) GetColumn(c *gin.Context) { - businessDB := c.Query("businessDB") - dbName := c.DefaultQuery("dbName", global.ZC_CONFIG.Mysql.Dbname) - tableName := c.Query("tableName") - columns, err := autoCodeService.Database(businessDB).GetColumn(businessDB, tableName, dbName) - if err != nil { - global.ZC_LOG.Error("Acquisition failed!", zap.Error(err)) - response.FailWithMessage("Acquisition failed", c) - } else { - response.OkWithDetailed(gin.H{"columns": columns}, "Successfully obtained", c) - } -} - -// CreatePackage -// @Tags AutoCode -// @Summary Create package -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data body -// @Success 200 {object} response.Response{data=map[string]interface{},msg=string} -// @Router /autoCode/createPackage [post] -func (autoApi *AutoCodeApi) CreatePackage(c *gin.Context) { - var a system.SysAutoCode - _ = c.ShouldBindJSON(&a) - if err := utils.Verify(a, utils.AutoPackageVerify); err != nil { - response.FailWithMessage(err.Error(), c) - return - } - err := autoCodeService.CreateAutoCode(&a) - if err != nil { - - global.ZC_LOG.Error("Created successfully!", zap.Error(err)) - response.FailWithMessage("Creation failed", c) - } else { - response.OkWithMessage("Created successfully", c) - } -} - -// GetPackage -// @Tags AutoCode -// @Summary Get package -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Success 200 {object} response.Response{data=map[string]interface{},msg=string} -// @Router /autoCode/getPackage [post] -func (autoApi *AutoCodeApi) GetPackage(c *gin.Context) { - pkgs, err := autoCodeService.GetPackage() - if err != nil { - global.ZC_LOG.Error("Acquisition failed!", zap.Error(err)) - response.FailWithMessage("Acquisition failed", c) - } else { - response.OkWithDetailed(gin.H{"pkgs": pkgs}, "Successfully obtained", c) - } -} - -// DelPackage -// @Tags AutoCode -// @Summary Delete package -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data body -// @Success 200 {object} response.Response{data=map[string]interface{},msg=string} -// @Router /autoCode/delPackage [post] -func (autoApi *AutoCodeApi) DelPackage(c *gin.Context) { - var a system.SysAutoCode - _ = c.ShouldBindJSON(&a) - err := autoCodeService.DelPackage(a) - if err != nil { - global.ZC_LOG.Error("Delete failed!", zap.Error(err)) - response.FailWithMessage("Delete failed", c) - } else { - response.OkWithMessage("Delete successful", c) - } -} - -// AutoPlug -// @Tags AutoCode -// @Summary Create plugin template -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data body -// @Success 200 {object} response.Response{data=map[string]interface{},msg=string} -// @Router /autoCode/createPlug [post] -func (autoApi *AutoCodeApi) AutoPlug(c *gin.Context) { - var a system.AutoPlugReq - err := c.ShouldBindJSON(&a) - if err != nil { - response.FailWithMessage(err.Error(), c) - return - } - a.Snake = strings.ToLower(a.PlugName) - a.NeedModel = a.HasRequest || a.HasResponse - err = autoCodeService.CreatePlug(a) - if err != nil { - global.ZC_LOG.Error("Preview failed!", zap.Error(err)) - response.FailWithMessage("Preview failed", c) - return - } - response.Ok(c) -} - -// InstallPlugin -// @Tags AutoCode -// @Summary Install plug-in -// @Security ApiKeyAuth -// @accept multipart/form-data -// @Produce application/json -// @Param plug formData file -// @Success 200 {object} response.Response{data=[]interface{},msg=string} -// @Router /autoCode/createPlug [post] -func (autoApi *AutoCodeApi) InstallPlugin(c *gin.Context) { - header, err := c.FormFile("plug") - if err != nil { - response.FailWithMessage(err.Error(), c) - return - } - web, server, err := autoCodeService.InstallPlugin(header) - webStr := "Web plugin installation successful" - serverStr := "Server plugin installation successful" - if web == -1 { - webStr = "The web plugin was not successfully installed. Please decompress and install it according to the documentation. If it is a pure backend plugin, please ignore this prompt" - } - if server == -1 { - serverStr = "The server-side plugin was not successfully installed. Please decompress and install it according to the documentation. If it is a pure front-end plugin, please ignore this prompt" - } - if err != nil { - response.FailWithMessage(err.Error(), c) - return - } - response.OkWithData([]interface{}{ - gin.H{ - "code": web, - "msg": webStr, - }, - gin.H{ - "code": server, - "msg": serverStr, - }}, c) -} diff --git a/api/v1/system/sys_auto_code_history.go b/api/v1/system/sys_auto_code_history.go deleted file mode 100644 index e090eb9..0000000 --- a/api/v1/system/sys_auto_code_history.go +++ /dev/null @@ -1,115 +0,0 @@ -package system - -import ( - "github.com/gin-gonic/gin" - "go.uber.org/zap" - "oplian/global" - "oplian/model/common/request" - "oplian/model/common/response" - systemReq "oplian/model/system/request" -) - -type AutoCodeHistoryApi struct{} - -// First -// @Tags AutoCode -// @Summary Obtaining Meta Information -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data body -// @Success 200 {object} response.Response{data=map[string]interface{},msg=string} -// @Router /autoCode/getMeta [post] -func (a *AutoCodeHistoryApi) First(c *gin.Context) { - var info request.GetById - err := c.ShouldBindJSON(&info) - if err != nil { - response.FailWithMessage(err.Error(), c) - return - } - data, err := autoCodeHistoryService.First(&info) - if err != nil { - response.FailWithMessage(err.Error(), c) - return - } - response.OkWithDetailed(gin.H{"meta": data}, "Successfully obtained", c) -} - -// Delete -// @Tags AutoCode -// @Summary Delete rollback record -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data body -// @Success 200 {object} response.Response{msg=string} -// @Router /autoCode/delSysHistory [post] -func (a *AutoCodeHistoryApi) Delete(c *gin.Context) { - var info request.GetById - err := c.ShouldBindJSON(&info) - if err != nil { - response.FailWithMessage(err.Error(), c) - return - } - err = autoCodeHistoryService.Delete(&info) - if err != nil { - global.ZC_LOG.Error("Delete failed!", zap.Error(err)) - response.FailWithMessage("Delete failed", c) - return - } - response.OkWithMessage("Delete successful", c) -} - -// RollBack -// @Tags AutoCode -// @Summary Rollback automatic code generation -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data body -// @Success 200 {object} response.Response{msg=string} -// @Router /autoCode/rollback [post] -func (a *AutoCodeHistoryApi) RollBack(c *gin.Context) { - var info systemReq.RollBack - err := c.ShouldBindJSON(&info) - if err != nil { - response.FailWithMessage(err.Error(), c) - return - } - err = autoCodeHistoryService.RollBack(&info) - if err != nil { - response.FailWithMessage(err.Error(), c) - return - } - response.OkWithMessage("Rollback successful", c) -} - -// GetList -// @Tags AutoCode -// @Summary Query rollback records -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data body -// @Success 200 {object} response.Response{data=response.PageResult,msg=string} -// @Router /autoCode/getSysHistory [post] -func (a *AutoCodeHistoryApi) GetList(c *gin.Context) { - var search systemReq.SysAutoHistory - err := c.ShouldBindJSON(&search) - if err != nil { - response.FailWithMessage(err.Error(), c) - return - } - list, total, err := autoCodeHistoryService.GetList(search.PageInfo) - if err != nil { - global.ZC_LOG.Error("Acquisition failed!", zap.Error(err)) - response.FailWithMessage("Acquisition failed", c) - return - } - response.OkWithDetailed(response.PageResult{ - List: list, - Total: total, - Page: search.Page, - PageSize: search.PageSize, - }, "Successfully obtained", c) -} diff --git a/api/v1/system/sys_captcha.go b/api/v1/system/sys_captcha.go index acdea82..ba72391 100644 --- a/api/v1/system/sys_captcha.go +++ b/api/v1/system/sys_captcha.go @@ -23,7 +23,7 @@ type BaseApi struct{} // @Router /base/captcha [post] func (b *BaseApi) Captcha(c *gin.Context) { - driver := base64Captcha.NewDriverDigit(global.ZC_CONFIG.Captcha.ImgHeight, global.ZC_CONFIG.Captcha.ImgWidth, global.ZC_CONFIG.Captcha.KeyLong, 0.7, 80) + driver := base64Captcha.NewDriverDigit(80, 240, 6, 0.7, 80) // cp := base64Captcha.NewCaptcha(driver, store.UseWithCtx(c)) cp := base64Captcha.NewCaptcha(driver, store) id, b64s, err := cp.Generate() @@ -35,6 +35,6 @@ func (b *BaseApi) Captcha(c *gin.Context) { response.OkWithDetailed(systemRes.SysCaptchaResponse{ CaptchaId: id, PicPath: b64s, - CaptchaLength: global.ZC_CONFIG.Captcha.KeyLong, + CaptchaLength: 6, }, "Verification code obtained successfully", c) } diff --git a/api_grpc/slot_gateway/enter.go b/api_grpc/slot_gateway/enter.go index 527ca0e..643264c 100644 --- a/api_grpc/slot_gateway/enter.go +++ b/api_grpc/slot_gateway/enter.go @@ -1,7 +1,160 @@ package slot_gateway -import "oplian/service" +import ( + "context" + "encoding/json" + "errors" + "fmt" + "go.uber.org/zap" + "google.golang.org/protobuf/types/known/emptypb" + "log" + "oplian/define" + "oplian/global" + "oplian/model/common/response" + responseModel "oplian/model/system/response" + "oplian/service" + "oplian/service/gateway" + "oplian/service/pb" + systemModel "oplian/service/system" + "oplian/utils" + "strings" + "time" +) var ( - deployService = service.ServiceGroupApp.LotusServiceGroup.DeployService + deployService = service.ServiceGroupApp.LotusServiceGroup.DeployService ) + +type ExaFileUploadAndDownload struct { + ID uint `json:"fileId"` // 文件id + Name string `json:"name"` // 文件名 + Url string `json:"url"` // 文件地址 + Version string `json:"version"` // 版本号 + SuitSystem string `json:"suitSystem"` // 适用的系统 + FileMd5 string `json:"fileMd5"` // 文件md5编码 +} + +func (slot *SlotGateWayServiceImpl) ReplacePlugFile(ctx context.Context, args *pb.ReplaceFileInfo) (*emptypb.Empty, error) { + defer func() { + if err := recover(); err != nil { + println(err.(string)) + } + }() + + log.Println("ReplaceFile begin") + + var fileList []ExaFileUploadAndDownload + + switch args.FileName { + case define.ProgramLotus.String(), define.ProgramMiner.String(), define.ProgramWorkerTask.String(), define.ProgramWorkerStorage.String(), "test": + //os.Remove(path.Join(define.PathIpfsProgram, args.FileName)) + // 获取对应的产品id对应的文件id + data, err := utils.RequestDo(args.DownloadUrl, define.SlotFileListRouter+"?productId="+utils.Int64ToString(int64(args.ProductId)), + "", nil, time.Second*15) + if err != nil { + log.Println("get slot file List failed: ", err.Error()) + return &emptypb.Empty{}, err + } + // 解析返回信息 + type Response struct { + Code int `json:"code"` + Data response.PageResult `json:"data"` + Msg string `json:"msg"` + } + var dataRes Response + if err = json.Unmarshal(data, &dataRes); err != nil { + log.Println(err.Error()) + return &emptypb.Empty{}, err + } + // 解析返回的file信息 + fileData, _ := json.Marshal(dataRes.Data.List) + if err = json.Unmarshal(fileData, &fileList); err != nil { + log.Println(err.Error()) + return &emptypb.Empty{}, err + } + // 循环拉取文件信息 + for _, val := range fileList { + // 将对应的版本的文件都拉取到gateway上面,方便后面op拉取 + _, err := new(gateway.DownloadService).DowloadFile("http://"+args.DownloadUrl+define.SlotDownloadFileRouter+"?fileId="+utils.Int64ToString(int64(val.ID)), + define.PathIpfsProgram, args.FileName+"-"+strings.Replace(val.SuitSystem, " ", "-", -1)) + if err != nil { + log.Println("DownloadFile err:", err.Error()) + } + } + default: + return &emptypb.Empty{}, errors.New("non system required plugin files") + } + + log.Println("args", args) + log.Println("len(fileList)", len(fileList)) + log.Println("fileList", fileList) + + fileInfoList := make([]*pb.ReplaceInfo, len(fileList)) + for i := 0; i < len(fileList); i++ { + fileInfoList[i] = &pb.ReplaceInfo{System: fileList[i].SuitSystem, FileMd5: fileList[i].FileMd5} + } + + log.Println("fileInfoList", fileInfoList) + + // 获取gateway下面的机器列表 + hostService := systemModel.HostRecordService{} + hostList, err := hostService.GetSysHostRecordListForReplace(global.GateWayID.String()) + if err != nil { + global.ZC_LOG.Error("获取节点下的主机列表失败!", zap.Error(err)) + } + + if len(hostList) == 0 { + return &emptypb.Empty{}, errors.New("non system required plugin files") + } + + fmt.Println("pb.OpReplaceFileInfo", &pb.OpReplaceFileInfo{FileName: args.FileName, FileInfo: fileInfoList}) + + client, dis := global.OpClinets.GetOpClient("b4eb6358-3b86-4f99-8e01-786463e3c6ea") + if client == nil || dis { + log.Println("opClient Connection failed:" + "b4eb6358-3b86-4f99-8e01-786463e3c6ea" + " opIp: " + "10.0.8.220") + return &emptypb.Empty{}, errors.New("non system required plugin files") + } + // 判断是否能成功连接 + _, err = client.OpReplacePlugFile1(ctx, &pb.String{Value: "test op connect"}) + if err != nil { + log.Println("OpClinets error, opIp: ", "10.0.8.220", err.Error()) + return &emptypb.Empty{}, errors.New("non system required plugin files") + } + // 转到op,进行文件的拉取 + _, err = client.OpReplacePlugFile(ctx, &pb.OpReplaceFileInfo{FileName: args.FileName, FileInfo: fileInfoList}) + if err != nil { + log.Println("OpReplacePlugFile error, opIp: ", "10.0.8.220", err.Error()) + return &emptypb.Empty{}, errors.New("non system required plugin files") + } + return &emptypb.Empty{}, nil + + // 循环gateway下面的op,根据对应linux版本下载不同的文件,如果文件存在,MD5相同则不拉取,不同则拉取替换 + for _, v := range hostList { + go func(opInfo responseModel.SysHostRecordPatrol) { + defer func() { + if err := recover(); err != nil { + println(err.(string)) + } + }() + client, dis := global.OpClinets.GetOpClient(opInfo.UUID) + if client == nil || dis { + log.Println("opClient Connection failed:" + opInfo.UUID + " opIp: " + opInfo.IntranetIP) + return + } + // 判断是否能成功连接 + _, err := client.OpReplacePlugFile1(ctx, &pb.String{Value: "test op connect"}) + if err != nil { + log.Println("OpClinets error, opIp: ", opInfo.IntranetIP, err.Error()) + return + } + // 转到op,进行文件的拉取 + _, err = client.OpReplacePlugFile(ctx, &pb.OpReplaceFileInfo{FileName: args.FileName, FileInfo: fileInfoList}) + if err != nil { + log.Println("OpReplacePlugFile error, opIp: ", opInfo.IntranetIP, err.Error()) + return + } + }(v) + } + + return &emptypb.Empty{}, nil +} diff --git a/api_grpc/slot_gateway/worker_car.go b/api_grpc/slot_gateway/worker_car.go new file mode 100644 index 0000000..0ffd267 --- /dev/null +++ b/api_grpc/slot_gateway/worker_car.go @@ -0,0 +1,256 @@ +package slot_gateway + +import ( + "context" + "errors" + "fmt" + "oplian/define" + "oplian/model/lotus" + "oplian/model/slot" + "oplian/model/slot/response" + "oplian/service/pb" + slot2 "oplian/service/slot" + "oplian/utils" + "sync" +) + +type SlotGateWayServiceImpl struct { + CarUrlMap map[string]string + CarUrlLockRW sync.RWMutex +} + +var SlotGateWayService = SlotGateWayServiceImpl{ + CarUrlMap: make(map[string]string), +} + +// GetRunWorkerTask 获取在跑任务 OK +func (sl *SlotGateWayServiceImpl) GetRunWorkerTask(ctx context.Context, args *pb.String) (*pb.CarWorkerTaskNoInfo, error) { + + resInfo := &pb.CarWorkerTaskNoInfo{} + resData, err := slot2.WorkerCarServiceApi.GetRunWorkerTask(args) + if err != nil { + return resInfo, err + } + if (resData != slot.WorkerCarTaskNo{}) { + + resInfo.Id = uint64(resData.ID) + resInfo.TaskId = uint64(resData.TaskId) + resInfo.MinerId = resData.MinerId + resInfo.WorkerIp = resData.WorkerIp + resInfo.CarNo = resData.CarNo + resInfo.StartNo = uint64(resData.StartNo) + resInfo.EndNo = uint64(resData.EndNo) + resInfo.InputDir = resData.InputDir + resInfo.OutputDir = resData.OutputDir + resInfo.TaskStatus = uint64(resData.TaskStatus) + } + + return resInfo, nil +} + +// ModifyCarTaskNo 更新car任务编号 OK +func (slot *SlotGateWayServiceImpl) ModifyCarTaskNo(ctx context.Context, args *pb.CarWorkerTaskNoInfo) (*pb.ResponseMsg, error) { + + resInfo := &pb.ResponseMsg{} + err := slot2.WorkerCarServiceApi.ModifyCarTaskNo(args) + if err != nil { + return resInfo, err + } + return resInfo, nil +} + +// AddCarWorkerTaskDetail 新增workerTask明细 OK +func (slot *SlotGateWayServiceImpl) AddCarWorkerTaskDetail(ctx context.Context, args *pb.CarWorkerTaskDetailInfo) (*pb.ResponseMsg, error) { + + resInfo := &pb.ResponseMsg{} + + Height := utils.BlockHeight() + Height += define.DealDdValidity + paramAr := make([]lotus.LotusSectorPiece, 0) + paramData := &lotus.LotusSectorPiece{ + Actor: args.MinerId, + WorkerIp: args.WorkerIp, + QueueId: args.TaskId, + ExpirationTime: utils.BlockHeightToTime(int64(Height)), + PieceCid: args.PieceCid, + PieceSize: args.PieceSize, + CarSize: int(args.CarSize), + DataCid: args.DataCid, + } + + paramAr = append(paramAr, *paramData) + err := slot2.WorkerCarServiceApi.AddWorkerCarTaskDetail(args.MinerId, paramAr) + if err != nil { + return resInfo, err + } + return resInfo, nil +} + +// GetRunCarTaskDetail 获取在跑workerCar任务明细 OK +func (slot *SlotGateWayServiceImpl) GetRunCarTaskDetail(ctx context.Context, args *pb.WorkerCarParam) (*pb.CarWorkerTaskDetailInfo, error) { + + resInfo := &pb.CarWorkerTaskDetailInfo{} + resData, err := slot2.WorkerCarServiceApi.GetRunCarTaskDetail(args.WorkerIp, args.MinerId, int(args.TaskType)) + if err != nil { + return resInfo, err + } + + if (resData != response.CarTaskDetailInfo{}) { + resInfo.Id = uint64(resData.Id) + resInfo.PieceCid = resData.PieceCid + resInfo.PieceSize = resData.PieceSize + resInfo.CarSize = uint64(resData.CarSize) + resInfo.DataCid = resData.DataCid + resInfo.WalletAddr = resData.QuotaWallet + resInfo.TaskStatus = uint64(resData.JobStatus) + resInfo.OriginalOpId = resData.OriginalOpId + resInfo.OriginalDir = resData.OriginalDir + resInfo.ValidityDays = uint64(resData.ValidityDays) + } + + return resInfo, nil +} + +// ModifyCarTaskDetailInfo 更改任务明细信息 OK +func (slot *SlotGateWayServiceImpl) ModifyCarTaskDetailInfo(ctx context.Context, args *pb.CarWorkerTaskDetailInfo) (*pb.ResponseMsg, error) { + + resInfo := &pb.ResponseMsg{} + err := slot2.WorkerCarServiceApi.ModifyCarTaskDetailInfo(args) + if err != nil { + return resInfo, err + } + return resInfo, nil +} + +// GetRand 获取随机数 OK +func (slot *SlotGateWayServiceImpl) GetRand(ctx context.Context, args *pb.String) (*pb.RandList, error) { + + resInfo := &pb.RandList{} + resData, err := slot2.WorkerCarServiceApi.GetRand(&pb.String{}) + if err != nil { + + } + for _, v := range resData { + + data := &pb.RandInfo{ + NumberIndex: uint64(v.NumIndex), + Number: uint64(v.Number), + } + resInfo.RandInfo = append(resInfo.RandInfo, data) + } + + return resInfo, nil +} + +// GetWaitCarTaskDetail 获取待创建任务明细 OK +func (sl *SlotGateWayServiceImpl) GetWaitCarTaskDetail(ctx context.Context, args *pb.WorkerCarParam) (*pb.CarWorkerTaskDetailInfo, error) { + + resInfo := &pb.CarWorkerTaskDetailInfo{} + detailData, err := slot2.WorkerCarServiceApi.GetWaitCarTaskDetail(args.WorkerIp, args.MinerId) + if err != nil { + return resInfo, err + } + + if (detailData != slot.WorkerCarTaskDetail{}) { + resInfo.Id = uint64(detailData.ID) + resInfo.MinerId = detailData.MinerId + resInfo.WorkerIp = detailData.WorkerIp + resInfo.DealId = detailData.DealId + resInfo.CarName = detailData.CarName + } + + return resInfo, nil +} + +// GetAllCarTaskDetail 获取所有待创建任务明细 OK +func (sl *SlotGateWayServiceImpl) GetAllCarTaskDetail(ctx context.Context, args *pb.WorkerCarParam) (*pb.CarWorkerTaskDetailList, error) { + + resInfo := &pb.CarWorkerTaskDetailList{} + resData, err := slot2.WorkerCarServiceApi.GetExecuteWorkerCarTask(args.MinerId, define.CarTaskTypeManual) + if err != nil { + return resInfo, err + } + if (resData != slot.WorkerCarTask{}) { + + detailData, err := slot2.WorkerCarServiceApi.GetAllCarTaskDetail(int(resData.ID), args.MinerId) + if err != nil { + return resInfo, err + } + + if len(detailData) > 0 { + + for _, v := range detailData { + + data := &pb.CarWorkerTaskDetailInfo{ + WorkerIp: v.WorkerIp, + //DealId: v.DealId, + } + resInfo.CarWorkerTaskDetailInfo = append(resInfo.CarWorkerTaskDetailInfo, data) + } + } + } + + return resInfo, nil +} + +// CarFileExist 判断car文件是否存在 OK +func (slot *SlotGateWayServiceImpl) CarFileExist(ctx context.Context, args *pb.SectorID) (*pb.String, error) { + SlotGateWayService.CarUrlLockRW.RLock() + defer SlotGateWayService.CarUrlLockRW.RUnlock() + + resInfo := &pb.String{} + if carUrl, ok := SlotGateWayService.CarUrlMap[args.PieceCid]; ok { + resInfo.Value = carUrl + } else { + return resInfo, fmt.Errorf("%s,car文件路径找不到", args.PieceCid) + } + + return resInfo, nil +} + +// GetBoostConfig 获取boost信息配置 +func (slot *SlotGateWayServiceImpl) GetBoostConfig(ctx context.Context, args *pb.String) (*pb.String, error) { + return slot2.WorkerCarServiceApi.GetBoostConfig(args.Value) +} + +// GetMainDisk 获取根目录 +func (slot *SlotGateWayServiceImpl) GetMainDisk(ctx context.Context, args *pb.String) (*pb.String, error) { + if define.MainDisk == "" { + return &pb.String{}, errors.New("MainDisk 配置目录为空") + } + return &pb.String{Value: define.MainDisk}, nil +} + +// DistributeWorkerTask workerCar任务分发 +func (slot *SlotGateWayServiceImpl) DistributeWorkerTask(ctx context.Context, args *pb.String) (*pb.String, error) { + + go func() { + + //记录Car文件 + res, err := slot2.WorkerCarServiceApi.GetCarUrlList(args.Value) + if err != nil { + return + } + + for _, v := range res { + if v.CarPath != "" && v.PieceCid != "" { + SlotGateWayService.CarUrlLockRW.Lock() + SlotGateWayService.CarUrlMap[v.PieceCid] = v.CarPath + SlotGateWayService.CarUrlLockRW.Unlock() + } + } + + }() + + return &pb.String{}, slot2.WorkerCarServiceApi.WorkerCarTask(args.Value) +} + +// AddCarRand 生成随机数 +func (slot *SlotGateWayServiceImpl) AddCarRand(ctx context.Context, args *pb.String) (*pb.String, error) { + return &pb.String{}, slot2.WorkerCarServiceApi.AddCarRand() +} + +// AddCarFile 增加Car文件 +func (slot *SlotGateWayServiceImpl) AddCarFile(ctx context.Context, args *pb.CarFiles) (*pb.String, error) { + return &pb.String{}, slot2.WorkerCarServiceApi.AddCarFiles(args) +} diff --git a/cmd/oplian-gateway/cmd/run.go b/cmd/oplian-gateway/cmd/run.go index 8373854..cfa2986 100644 --- a/cmd/oplian-gateway/cmd/run.go +++ b/cmd/oplian-gateway/cmd/run.go @@ -10,6 +10,7 @@ import ( "log" "net" "oplian/api_grpc/gateway" + "oplian/api_grpc/slot_gateway" "oplian/core" "oplian/define" "oplian/global" @@ -38,8 +39,6 @@ var Run = &cli.Command{ zap.ReplaceGlobals(global.ZC_LOG) global.ZC_DB = initialize.Gorm() - initialize.Timer() - initialize.DBList() if global.ZC_DB != nil { initialize.RegisterTables(global.ZC_DB) log.Println(initialize.InitMysqlData()) @@ -75,12 +74,12 @@ var Run = &cli.Command{ } } log.Println("---step5---") - + service.ServiceGroupApp.GatewayServiceGroup.DownloadAddressFile([]string{define.IPAddressFile}, define.PathIpfsConfig, define.DownLoadAddressOut) - + service.ServiceGroupApp.GatewayServiceGroup.DownloadAddressFile([]string{define.ProgramLotus.String(), define.ProgramMiner.String(), define.ProgramWorkerTask.String(), define.ProgramBoost.String(), define.ProgramBoostd.String()}, define.PathIpfsProgram, define.DownLoadAddressOut) - + service.ServiceGroupApp.GatewayServiceGroup.DownloadAddressFile([]string{define.OPlianOpFile, define.OPlianOpC2File}, define.PathOplian, define.DownLoadAddressOut) initialize.GatewayGenerateUUID() diff --git a/cmd/oplian/main.go b/cmd/oplian/main.go index 31c4078..d5e1e3b 100644 --- a/cmd/oplian/main.go +++ b/cmd/oplian/main.go @@ -44,8 +44,6 @@ func main() { global.ZC_LOG = core.Zap() zap.ReplaceGlobals(global.ZC_LOG) global.ZC_DB = initialize.Gorm() - initialize.Timer() - initialize.DBList() //go initialize.PolicyWarn(context.TODO()) if global.ZC_DB != nil { initialize.RegisterTables(global.ZC_DB) diff --git a/config.docker.yaml b/config.docker.yaml deleted file mode 100644 index aff5af3..0000000 --- a/config.docker.yaml +++ /dev/null @@ -1,195 +0,0 @@ -# zc-admin/server Global Configuration - -# jwt configuration -jwt: - signing-key: qmPlus - expires-time: 7d - buffer-time: 1d - issuer: qmPlus -# zap logger configuration -zap: - level: info - format: console - prefix: "[zc-admin/server]" - director: log - show-line: true - encode-level: LowercaseColorLevelEncoder - stacktrace-key: stacktrace - log-in-console: true - -# email configuration -email: - to: xxx@qq.com - port: 465 - from: xxx@163.com - host: smtp.163.com - is-ssl: true - secret: xxx - nickname: test - -# system configuration -system: - env: public # Change to "develop" to skip authentication for development mode - addr: 8888 - db-type: mysql - oss-type: local # 控制oss选择走本地还是 七牛等其他仓 自行增加其他oss仓可以在 server/utils/upload/upload.go 中 NewOss函数配置 - use-redis: false # 使用redis - use-multipoint: false - # IP限制次数 一个小时15000次 - iplimit-count: 15000 - # IP限制一个小时 - iplimit-time: 3600 - -# captcha configuration -captcha: - key-long: 6 - img-width: 240 - img-height: 80 - -# mysql connect configuration -# 未初始化之前请勿手动修改数据库信息!!!如果一定要手动初始化请看(https://gin-vue-admin.com/docs/first_master) -mysql: - path: "" - port: "" - config: "" - db-name: "" - username: "" - password: "" - max-idle-conns: 10 - max-open-conns: 100 - log-mode: "" - log-zap: false - -# pgsql connect configuration -# 未初始化之前请勿手动修改数据库信息!!!如果一定要手动初始化请看(https://gin-vue-admin.com/docs/first_master) -pgsql: - path: "" - port: "" - config: "" - db-name: "" - username: "" - password: "" - max-idle-conns: 10 - max-open-conns: 100 - log-mode: "" - log-zap: false - -db-list: - - disable: true # 是否禁用 - type: "" # 数据库的类型,目前支持mysql、pgsql - alias-name: "" # 数据库的名称,注意: alias-name 需要在db-list中唯一 - path: "" - port: "" - config: "" - db-name: "" - username: "" - password: "" - max-idle-conns: 10 - max-open-conns: 100 - log-mode: "" - log-zap: false - - -# local configuration -local: - path: uploads/file - store-path: uploads/file - -# autocode configuration -autocode: - transfer-restart: true - # root 自动适配项目根目录 - # 请不要手动配置,他会在项目加载的时候识别出根路径 - root: "" - server: /server - server-plug: /plugin/%s - server-api: /api/v1/%s - server-initialize: /initialize - server-model: /model/%s - server-request: /model/%s/request/ - server-router: /router/%s - server-service: /service/%s - web: /web/src - web-api: /api - web-form: /view - web-table: /view - -# qiniu configuration (请自行七牛申请对应的 公钥 私钥 bucket 和 域名地址) -qiniu: - zone: ZoneHuaDong - bucket: "" - img-path: "" - use-https: false - access-key: "" - secret-key: "" - use-cdn-domains: false - -# aliyun oss configuration -aliyun-oss: - endpoint: yourEndpoint - access-key-id: yourAccessKeyId - access-key-secret: yourAccessKeySecret - bucket-name: yourBucketName - bucket-url: yourBucketUrl - base-path: yourBasePath - -# tencent cos configuration -tencent-cos: - bucket: xxxxx-10005608 - region: ap-shanghai - secret-id: your-secret-id - secret-key: your-secret-key - base-url: https://gin.vue.admin - path-prefix: zc-admin/server - -# aws s3 configuration (minio compatible) -aws-s3: - bucket: xxxxx-10005608 - region: ap-shanghai - endpoint: "" - s3-force-path-style: false - disable-ssl: false - secret-id: your-secret-id - secret-key: your-secret-key - base-url: https://gin.vue.admin - path-prefix: zc-admin/server - -# huawei obs configuration -hua-wei-obs: - path: you-path - bucket: you-bucket - endpoint: you-endpoint - access-key: you-access-key - secret-key: you-secret-key - -# excel configuration -excel: - dir: ./resource/excel/ - -# timer task db clear table -Timer: - start: true - spec: "@daily" # 定时任务详细配置参考 https://pkg.go.dev/github.com/robfig/cron/v3 - detail: - - tableName: sys_operation_records - compareField: created_at - interval: 2160h - - tableName: jwt_blacklists - compareField: created_at - interval: 168h - -# 跨域配置 -# 需要配合 server/initialize/router.go#L32 使用 -cors: - mode: whitelist # 放行模式: allow-all, 放行全部; whitelist, 白名单模式, 来自白名单内域名的请求添加 cors 头; strict-whitelist 严格白名单模式, 白名单外的请求一律拒绝 - whitelist: - - allow-origin: example1.com - allow-headers: content-type - allow-methods: GET, POST - expose-headers: Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type - allow-credentials: true # 布尔值 - - allow-origin: example2.com - allow-headers: content-type - allow-methods: GET, POST - expose-headers: Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type - allow-credentials: true # 布尔值 diff --git a/config/auto_code.go b/config/auto_code.go deleted file mode 100644 index 850aafd..0000000 --- a/config/auto_code.go +++ /dev/null @@ -1,18 +0,0 @@ -package config - -type Autocode struct { - TransferRestart bool `mapstructure:"transfer-restart" json:"transfer-restart" yaml:"transfer-restart"` - Root string `mapstructure:"root" json:"root" yaml:"root"` - Server string `mapstructure:"server" json:"server" yaml:"server"` - SApi string `mapstructure:"server-api" json:"server-api" yaml:"server-api"` - SPlug string `mapstructure:"server-plug" json:"server-plug" yaml:"server-plug"` - SInitialize string `mapstructure:"server-initialize" json:"server-initialize" yaml:"server-initialize"` - SModel string `mapstructure:"server-model" json:"server-model" yaml:"server-model"` - SRequest string `mapstructure:"server-request" json:"server-request" yaml:"server-request"` - SRouter string `mapstructure:"server-router" json:"server-router" yaml:"server-router"` - SService string `mapstructure:"server-service" json:"server-service" yaml:"server-service"` - Web string `mapstructure:"web" json:"web" yaml:"web"` - WApi string `mapstructure:"web-api" json:"web-api" yaml:"web-api"` - WForm string `mapstructure:"web-form" json:"web-form" yaml:"web-form"` - WTable string `mapstructure:"web-table" json:"web-table" yaml:"web-table"` -} diff --git a/config/captcha.go b/config/captcha.go deleted file mode 100644 index 0c1b17f..0000000 --- a/config/captcha.go +++ /dev/null @@ -1,7 +0,0 @@ -package config - -type Captcha struct { - KeyLong int `mapstructure:"key-long" json:"key-long" yaml:"key-long"` - ImgWidth int `mapstructure:"img-width" json:"img-width" yaml:"img-width"` - ImgHeight int `mapstructure:"img-height" json:"img-height" yaml:"img-height"` -} diff --git a/config/config.go b/config/config.go index c288296..826a234 100644 --- a/config/config.go +++ b/config/config.go @@ -1,22 +1,14 @@ package config type Server struct { - JWT JWT `mapstructure:"jwt" json:"jwt" yaml:"jwt"` - Zap Zap `mapstructure:"zap" json:"zap" yaml:"zap"` - Email Email `mapstructure:"email" json:"email" yaml:"email"` - System System `mapstructure:"system" json:"system" yaml:"system"` - Captcha Captcha `mapstructure:"captcha" json:"captcha" yaml:"captcha"` - // auto - AutoCode Autocode `mapstructure:"autocode" json:"autocode" yaml:"autocode"` + JWT JWT `mapstructure:"jwt" json:"jwt" yaml:"jwt"` + Zap Zap `mapstructure:"zap" json:"zap" yaml:"zap"` + System System `mapstructure:"system" json:"system" yaml:"system"` // gorm - Mysql Mysql `mapstructure:"mysql" json:"mysql" yaml:"mysql"` - DBList []SpecializedDB `mapstructure:"db-list" json:"db-list" yaml:"db-list"` + Mysql Mysql `mapstructure:"mysql" json:"mysql" yaml:"mysql"` // oss Local Local `mapstructure:"local" json:"local" yaml:"local"` - Excel Excel `mapstructure:"excel" json:"excel" yaml:"excel"` - Timer Timer `mapstructure:"timer" json:"timer" yaml:"timer"` - // 跨域配置 Cors CORS `mapstructure:"cors" json:"cors" yaml:"cors"` } diff --git a/config/config.yaml b/config/config.yaml index cf0f1a5..a617139 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -1,22 +1,3 @@ -autocode: - transfer-restart: true - root: G:\project\zc-admin - server: /server - server-api: /api/v1/%s - server-plug: /plugin/%s - server-initialize: /initialize - server-model: /model/%s - server-request: /model/%s/request/ - server-router: /router/%s - server-service: /service/%s - web: /web/src - web-api: /api - web-form: /view - web-table: /view -captcha: - key-long: 6 - img-width: 240 - img-height: 80 cors: mode: whitelist whitelist: @@ -33,7 +14,7 @@ cors: Content-Type allow-credentials: true jwt: - signing-key: 8b356e3d-5e35-47a6-a933-07baa8cc0fcb + signing-key: abcd expires-time: 7d buffer-time: 1d issuer: qmPlus @@ -41,12 +22,12 @@ local: path: uploads/file store-path: uploads/file mysql: - path: 8.129.83.148 + path: 127.0.0.1 port: "3306" config: charset=utf8mb4&parseTime=True&loc=Local - db-name: zc_test + db-name: test username: root - password: ZCXTong@2023!+ + password: 123456 max-idle-conns: 10 max-open-conns: 100 log-mode: error @@ -58,15 +39,4 @@ system: oss-type: local use-multipoint: false iplimit-count: 15000 - iplimit-time: 3600 -timer: - start: true - spec: '@daily' - with_seconds: false - detail: - - tableName: sys_operation_records - compareField: created_at - interval: 2160h - - tableName: jwt_blacklists - compareField: created_at - interval: 168h \ No newline at end of file + iplimit-time: 3600 \ No newline at end of file diff --git a/core/viper.go b/core/viper.go index 4ebbfe9..776ff86 100644 --- a/core/viper.go +++ b/core/viper.go @@ -3,19 +3,16 @@ package core import ( "flag" "fmt" + "github.com/fsnotify/fsnotify" "github.com/gin-gonic/gin" + "github.com/spf13/viper" "oplian/config" "oplian/core/internal" "oplian/define" "os" - "path/filepath" - - "github.com/fsnotify/fsnotify" - "github.com/spf13/viper" uuid "github.com/satori/go.uuid" "oplian/global" - _ "oplian/packfile" ) func Viper(path ...string) *viper.Viper { @@ -24,7 +21,7 @@ func Viper(path ...string) *viper.Viper { if len(path) == 0 { flag.StringVar(&config, "c", "", "choose config file.") flag.Parse() - if config == "" { // 判断命令行参数是否为空 + if config == "" { if configEnv := os.Getenv(internal.ConfigEnv); configEnv == "" { // 判断 internal.ConfigEnv 常量存储的环境变量是否为空 switch gin.Mode() { case gin.DebugMode: @@ -68,7 +65,6 @@ func Viper(path ...string) *viper.Viper { fmt.Println(err) } - global.ZC_CONFIG.AutoCode.Root, _ = filepath.Abs("..") return v } diff --git a/deploy/docker-compose/docker-compose-dev.yaml b/deploy/docker-compose/docker-compose-dev.yaml deleted file mode 100644 index daa2bf3..0000000 --- a/deploy/docker-compose/docker-compose-dev.yaml +++ /dev/null @@ -1,74 +0,0 @@ -version: "3" - -# 声明一个名为network的networks,subnet为network的子网地址,默认网关是177.7.0.1 -networks: - network: - ipam: - driver: default - config: - - subnet: '177.7.0.0/16' - -# 设置mysql,redis持久化保存 -volumes: - mysql: - redis: - -services: - web: - image: node:16 - container_name: gva-web - hostname: gva-web #可以通过容器名访问 - restart: always - ports: - - '8080:8080' - depends_on: - - server - working_dir: /web # 如果docker 设置了workdir 则此处不需要设置 - #若网络不太好,请自行换源,如下 - #command: bash -c "yarn config set registry https://registry.npm.taobao.org --global && yarn install && yarn serve" - command: bash -c "yarn install && yarn serve" - volumes: - - ../../web:/web - networks: - network: - ipv4_address: 177.7.0.11 - - server: - image: golang:1.16 - container_name: gva-server - hostname: gva-server - restart: always - ports: - - '8888:8888' - depends_on: - - mysql - - redis - volumes: - - ../../server:/server - working_dir: /server # 如果docker 设置了workdir 则此处不需要设置 - command: bash -c "go env -w GOPROXY=https://goproxy.cn,direct && go mod tidy && go run main.go" - links: - - mysql - - redis - networks: - network: - ipv4_address: 177.7.0.12 - - mysql: - image: mysql:8.0.21 # 如果您是 arm64 架构:如 MacOS 的 M1,请修改镜像为 image: mysql/mysql-server:8.0.21 - container_name: gva-mysql - hostname: gva-mysql - command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci #设置utf8字符集 - restart: always - ports: - - "13306:3306" # host物理直接映射端口为13306 - environment: - #MYSQL_ROOT_PASSWORD: 'Aa@6447985' # root管理员用户密码 - MYSQL_DATABASE: 'qmPlus' # 初始化启动时要创建的数据库的名称 - MYSQL_USER: 'gva' - MYSQL_PASSWORD: 'Aa@6447985' - volumes: - - mysql:/var/lib/mysql - networks: - network: - ipv4_address: 177.7.0.13 diff --git a/deploy/docker-compose/docker-compose.yaml b/deploy/docker-compose/docker-compose.yaml deleted file mode 100644 index 6c8ae02..0000000 --- a/deploy/docker-compose/docker-compose.yaml +++ /dev/null @@ -1,78 +0,0 @@ -version: "3" - -# 声明一个名为network的networks,subnet为network的子网地址,默认网关是177.7.0.1 -networks: - network: - ipam: - driver: default - config: - - subnet: '177.7.0.0/16' - -# 设置mysql,redis持久化保存 -volumes: - mysql: - redis: - -services: - web: - build: - context: ../../web - dockerfile: ./Dockerfile - container_name: gva-web - restart: always - ports: - - '8080:8080' - depends_on: - - server - command: [ 'nginx-debug', '-g', 'daemon off;' ] - networks: - network: - ipv4_address: 177.7.0.11 - - server: - build: - context: ../../server - dockerfile: ./Dockerfile - container_name: gva-server - restart: always - ports: - - '8888:8888' - depends_on: - - mysql - - redis - links: - - mysql - - redis - networks: - network: - ipv4_address: 177.7.0.12 - - mysql: - image: mysql:8.0.21 # 如果您是 arm64 架构:如 MacOS 的 M1,请修改镜像为 image: mysql/mysql-server:8.0.21 - container_name: gva-mysql - command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci #设置utf8字符集 - restart: always - ports: - - "13306:3306" # host物理直接映射端口为13306 - environment: - #MYSQL_ROOT_PASSWORD: 'Aa@6447985' # root管理员用户密码 - MYSQL_DATABASE: 'qmPlus' # 初始化启动时要创建的数据库的名称 - MYSQL_USER: 'gva' - MYSQL_PASSWORD: 'Aa@6447985' - volumes: - - mysql:/var/lib/mysql - networks: - network: - ipv4_address: 177.7.0.13 - - redis: - image: redis:6.0.6 - container_name: gva-redis # 容器名 - restart: always - ports: - - '16379:6379' - volumes: - - redis:/data - networks: - network: - ipv4_address: 177.7.0.14 diff --git a/deploy/docker/Dockerfile b/deploy/docker/Dockerfile deleted file mode 100644 index 0a567f2..0000000 --- a/deploy/docker/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM centos:7 -WORKDIR /opt -ENV LANG=en_US.utf8 -COPY deploy/docker/entrypoint.sh . -COPY build/ /usr/share/nginx/html/ -COPY server/config.yaml /usr/share/nginx/html/config.yaml -COPY web/.docker-compose/nginx/conf.d/nginx.conf /etc/nginx/conf.d/nginx.conf -RUN set -ex \ - && echo "LANG=en_US.utf8" > /etc/locale.conf \ - && echo "net.core.somaxconn = 1024" >> /etc/sysctl.conf \ - && echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf \ - && yum -y install yum -y install *epel* \ - && yum -y localinstall http://mirrors.ustc.edu.cn/mysql-repo/mysql57-community-release-el7.rpm \ - && yum -y install mysql-community-server git redis nginx go npm --nogpgcheck && chmod +x ./entrypoint.sh \ - && npm install -g yarn && go env -w GO111MODULE=on && go env -w GOPROXY=https://goproxy.cn,direct \ - && echo "start" > /dev/null -EXPOSE 80 -ENTRYPOINT ["./entrypoint.sh"] \ No newline at end of file diff --git a/deploy/docker/entrypoint.sh b/deploy/docker/entrypoint.sh deleted file mode 100644 index 0f6dd13..0000000 --- a/deploy/docker/entrypoint.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -if [ ! -d "/var/lib/mysql/gva" ]; then - mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql - mysqld --daemonize --user=mysql - sleep 5s - mysql -uroot -e "create database gva default charset 'utf8' collate 'utf8_bin'; grant all on gva.* to 'root'@'127.0.0.1' identified by '123456'; flush privileges;" -else - mysqld --daemonize --user=mysql -fi -redis-server & -if [ "$1" = "actions" ]; then - cd /opt/gva/server && go run main.go & - cd /opt/gva/web/ && yarn serve & -else - /usr/sbin/nginx & - cd /usr/share/nginx/html/ && ./server & -fi -echo "gva ALL start!!!" -tail -f /dev/null \ No newline at end of file diff --git a/deploy/kubernetes/server/gva-server-configmap.yaml b/deploy/kubernetes/server/gva-server-configmap.yaml deleted file mode 100644 index 573c12e..0000000 --- a/deploy/kubernetes/server/gva-server-configmap.yaml +++ /dev/null @@ -1,148 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: config.yaml - annotations: - flipped-aurora/gin-vue-admin: backend - github: "https://github.com/flipped-aurora/gin-vue-admin.git" - app.kubernetes.io/version: 0.0.1 - labels: - app: gva-server - version: gva-vue3 -data: - config.yaml: | - # zc-admin/server Global Configuration - - # jwt configuration - jwt: - signing-key: 'qmPlus' - expires-time: 604800 - buffer-time: 86400 - - # zap logger configuration - zap: - level: 'info' - format: 'console' - prefix: '[zc-admin/server]' - director: 'log' - link-name: 'latest_log' - show-line: true - encode-level: 'LowercaseColorLevelEncoder' - stacktrace-key: 'stacktrace' - log-in-console: true - - # redis configuration - redis: - db: 0 - addr: '127.0.0.1:6379' - password: '' - - # email configuration - email: - to: 'xxx@qq.com' - port: 465 - from: 'xxx@163.com' - host: 'smtp.163.com' - is-ssl: true - secret: 'xxx' - nickname: 'test' - - # casbin configuration - casbin: - model-path: './resource/rbac_model.conf' - - # system configuration - system: - env: 'develop' # Change to "develop" to skip authentication for development mode - addr: 8888 - db-type: 'mysql' - oss-type: 'local' # 控制oss选择走本期还是 七牛等其他仓 自行增加其他oss仓可以在 server/utils/upload/upload.go 中 NewOss函数配置 - use-multipoint: false - - # captcha configuration - captcha: - key-long: 6 - img-width: 240 - img-height: 80 - - # mysql connect configuration - # 未初始化之前请勿手动修改数据库信息!!!如果一定要手动初始化请看(https://www.zc-admin/server.com/docs/first) - mysql: - path: '' - config: '' - db-name: '' - username: '' - password: '' - max-idle-conns: 10 - max-open-conns: 100 - log-mode: false - log-zap: "" - - # local configuration - local: - path: 'uploads/file' - - # autocode configuration - autocode: - transfer-restart: true - root: "" - server: /server - server-api: /api/v1/autocode - server-initialize: /initialize - server-model: /model/autocode - server-request: /model/autocode/request/ - server-router: /router/autocode - server-service: /service/autocode - web: /web/src - web-api: /api - web-flow: /view - web-form: /view - web-table: /view - - # qiniu configuration (请自行七牛申请对应的 公钥 私钥 bucket 和 域名地址) - qiniu: - zone: 'ZoneHuaDong' - bucket: '' - img-path: '' - use-https: false - access-key: '' - secret-key: '' - use-cdn-domains: false - - - # aliyun oss configuration - aliyun-oss: - endpoint: 'yourEndpoint' - access-key-id: 'yourAccessKeyId' - access-key-secret: 'yourAccessKeySecret' - bucket-name: 'yourBucketName' - bucket-url: 'yourBucketUrl' - base-path: 'yourBasePath' - - # tencent cos configuration - tencent-cos: - bucket: 'xxxxx-10005608' - region: 'ap-shanghai' - secret-id: 'xxxxxxxx' - secret-key: 'xxxxxxxx' - base-url: 'https://gin.vue.admin' - path-prefix: 'zc-admin/server' - - # excel configuration - excel: - dir: './resource/excel/' - - - # timer task db clear table - Timer: - start: true - spec: "@daily" # 定时任务详细配置参考 https://pkg.go.dev/github.com/robfig/cron/v3 - detail: [ - # tableName: 需要清理的表名 - # compareField: 需要比较时间的字段 - # interval: 时间间隔, 具体配置详看 time.ParseDuration() 中字符串表示 且不能为负数 - # 2160h = 24 * 30 * 3 -> 三个月 - { tableName: "sys_operation_records" , compareField: "created_at", interval: "2160h" }, - { tableName: "jwt_blacklists" , compareField: "created_at", interval: "168h" } - #{ tableName: "log2" , compareField: "created_at", interval: "2160h" } - ] diff --git a/deploy/kubernetes/server/gva-server-deployment.yaml b/deploy/kubernetes/server/gva-server-deployment.yaml deleted file mode 100644 index 766fccb..0000000 --- a/deploy/kubernetes/server/gva-server-deployment.yaml +++ /dev/null @@ -1,74 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: gva-server - annotations: - flipped-aurora/gin-vue-admin: backend - github: "https://github.com/flipped-aurora/gin-vue-admin.git" - app.kubernetes.io/version: 0.0.1 - labels: - app: gva-server - version: gva-vue3 -spec: - replicas: 1 - selector: - matchLabels: - app: gva-server - version: gva-vue3 - template: - metadata: - labels: - app: gva-server - version: gva-vue3 - spec: - containers: - - name: gin-vue-admin-container - image: registry.cn-hangzhou.aliyuncs.com/gva/server:latest - imagePullPolicy: Always - ports: - - containerPort: 8888 - name: http - volumeMounts: - - mountPath: /go/src/zc-admin/server/config.yaml - name: config - subPath: config.yaml - - mountPath: /etc/localtime - name: localtime - resources: - limits: - cpu: 1000m - memory: 2000Mi - requests: - cpu: 100m - memory: 200Mi - livenessProbe: - failureThreshold: 1 - periodSeconds: 5 - successThreshold: 1 - tcpSocket: - port: 8888 - timeoutSeconds: 1 - readinessProbe: - failureThreshold: 3 - initialDelaySeconds: 30 - periodSeconds: 5 - successThreshold: 1 - tcpSocket: - port: 8888 - timeoutSeconds: 1 - startupProbe: - failureThreshold: 40 - periodSeconds: 5 - successThreshold: 1 - tcpSocket: - port: 8888 - timeoutSeconds: 1 - #imagePullSecrets: - # - name: docker-registry - volumes: - - name: localtime - hostPath: - path: /etc/localtime - - name: config - configMap: - name: config.yaml diff --git a/deploy/kubernetes/server/gva-server-service.yaml b/deploy/kubernetes/server/gva-server-service.yaml deleted file mode 100644 index 17aaef2..0000000 --- a/deploy/kubernetes/server/gva-server-service.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: gva-server - annotations: - flipped-aurora/gin-vue-admin: backend - github: "https://github.com/flipped-aurora/gin-vue-admin.git" - app.kubernetes.io/version: 0.0.1 - labels: - app: gva-server - version: gva-vue3 -spec: - selector: - app: gva-server - version: gva-vue3 - ports: - - port: 8888 - name: http - targetPort: 8888 - type: ClusterIP -# type: NodePort diff --git a/deploy/kubernetes/web/gva-web-configmap.yaml b/deploy/kubernetes/web/gva-web-configmap.yaml deleted file mode 100644 index 189b861..0000000 --- a/deploy/kubernetes/web/gva-web-configmap.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: my.conf -data: - my.conf: | - server { - listen 8080; - server_name localhost; - - #charset koi8-r; - #access_log logs/host.access.log main; - - location / { - root /usr/share/nginx/html; - add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0'; - try_files $uri $uri/ /index.html; - } - - location /api { - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - rewrite ^/api/(.*)$ /$1 break; #重写 - proxy_pass http://gva-server:8888; # 设置代理服务器的协议和地址 - } - - location /api/swagger/index.html { - proxy_pass http://gva-server:8888/swagger/index.html; - } - } \ No newline at end of file diff --git a/deploy/kubernetes/web/gva-web-deploymemt.yaml b/deploy/kubernetes/web/gva-web-deploymemt.yaml deleted file mode 100644 index e6d15bc..0000000 --- a/deploy/kubernetes/web/gva-web-deploymemt.yaml +++ /dev/null @@ -1,51 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: gva-web - annotations: - flipped-aurora/gin-vue-admin: ui - github: "https://github.com/flipped-aurora/gin-vue-admin.git" - app.kubernetes.io/version: 0.0.1 - labels: - app: gva-web - version: gva-vue3 -spec: - replicas: 1 - selector: - matchLabels: - app: gva-web - version: gva-vue3 - template: - metadata: - labels: - app: gva-web - version: gva-vue3 - spec: - containers: - - name: gin-vue-admin-nginx-container - image: registry.cn-hangzhou.aliyuncs.com/gva/web:latest - imagePullPolicy: Always - ports: - - containerPort: 8080 - name: http - readinessProbe: - tcpSocket: - port: 8080 - initialDelaySeconds: 10 - periodSeconds: 10 - successThreshold: 1 - failureThreshold: 3 - resources: - limits: - cpu: 500m - memory: 1000Mi - requests: - cpu: 100m - memory: 100Mi - volumeMounts: - - mountPath: /etc/nginx/conf.d/ - name: nginx-config - volumes: - - name: nginx-config - configMap: - name: my.conf diff --git a/deploy/kubernetes/web/gva-web-ingress.yaml b/deploy/kubernetes/web/gva-web-ingress.yaml deleted file mode 100644 index 81922f1..0000000 --- a/deploy/kubernetes/web/gva-web-ingress.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: gva-ingress - annotations: - kubernetes.io/ingress.class: "nginx" -spec: - rules: - - host: demo.gin-vue-admin.com - http: - paths: - - path: / - pathType: Prefix - backend: - service: - name: gva-web - port: - number: 8080 \ No newline at end of file diff --git a/deploy/kubernetes/web/gva-web-service.yaml b/deploy/kubernetes/web/gva-web-service.yaml deleted file mode 100644 index c374bdb..0000000 --- a/deploy/kubernetes/web/gva-web-service.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: gva-web - annotations: - flipped-aurora/gin-vue-admin: ui - github: "https://github.com/flipped-aurora/gin-vue-admin.git" - app.kubernetes.io/version: 0.0.1 - labels: - app: gva-web - version: gva-vue3 -spec: -# type: NodePort - type: ClusterIP - ports: - - name: http - port: 8080 - targetPort: 8080 - selector: - app: gva-web - version: gva-vue3 diff --git a/docs/docs.go b/docs/docs.go deleted file mode 100644 index 8da8cf6..0000000 --- a/docs/docs.go +++ /dev/null @@ -1,6739 +0,0 @@ -// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT -// This file was generated by swaggo/swag - -package docs - -import ( - "bytes" - "encoding/json" - "strings" - - "github.com/alecthomas/template" - "github.com/swaggo/swag" -) - -var doc = `{ - "schemes": {{ marshal .Schemes }}, - "swagger": "2.0", - "info": { - "description": "{{.Description}}", - "title": "{{.Title}}", - "contact": {}, - "version": "{{.Version}}" - }, - "host": "{{.Host}}", - "basePath": "{{.BasePath}}", - "paths": { - "/api/createApi": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysApi" - ], - "summary": "创建基础api", - "parameters": [ - { - "description": "api路径, api中文描述, api组, 方法", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysApi" - } - } - ], - "responses": { - "200": { - "description": "创建基础api", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/api/deleteApi": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysApi" - ], - "summary": "删除api", - "parameters": [ - { - "description": "ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysApi" - } - } - ], - "responses": { - "200": { - "description": "删除api", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/api/deleteApisByIds": { - "delete": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysApi" - ], - "summary": "删除选中Api", - "parameters": [ - { - "description": "ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.IdsReq" - } - } - ], - "responses": { - "200": { - "description": "删除选中Api", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/api/getAllApis": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysApi" - ], - "summary": "获取所有的Api 不分页", - "responses": { - "200": { - "description": "获取所有的Api 不分页,返回包括api列表", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysAPIListResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/api/getApiById": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysApi" - ], - "summary": "根据id获取api", - "parameters": [ - { - "description": "根据id获取api", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.GetById" - } - } - ], - "responses": { - "200": { - "description": "根据id获取api,返回包括api详情", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysAPIResponse" - } - } - } - ] - } - } - } - } - }, - "/api/getApiList": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysApi" - ], - "summary": "分页获取API列表", - "parameters": [ - { - "description": "分页获取API列表", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.SearchApiParams" - } - } - ], - "responses": { - "200": { - "description": "分页获取API列表,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/api/updateApi": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysApi" - ], - "summary": "修改基础api", - "parameters": [ - { - "description": "api路径, api中文描述, api组, 方法", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysApi" - } - } - ], - "responses": { - "200": { - "description": "修改基础api", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/authority/copyAuthority": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Authority" - ], - "summary": "拷贝角色", - "parameters": [ - { - "description": "旧角色id, 新权限id, 新权限名, 新父角色id", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/response.SysAuthorityCopyResponse" - } - } - ], - "responses": { - "200": { - "description": "拷贝角色,返回包括系统角色详情", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysAuthorityResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/authority/createAuthority": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Authority" - ], - "summary": "创建角色", - "parameters": [ - { - "description": "权限id, 权限名, 父角色id", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysAuthority" - } - } - ], - "responses": { - "200": { - "description": "创建角色,返回包括系统角色详情", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysAuthorityResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/authority/deleteAuthority": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Authority" - ], - "summary": "删除角色", - "parameters": [ - { - "description": "删除角色", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysAuthority" - } - } - ], - "responses": { - "200": { - "description": "删除角色", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/authority/getAuthorityList": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Authority" - ], - "summary": "分页获取角色列表", - "parameters": [ - { - "description": "页码, 每页大小", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.PageInfo" - } - } - ], - "responses": { - "200": { - "description": "分页获取角色列表,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/authority/setDataAuthority": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Authority" - ], - "summary": "设置角色资源权限", - "parameters": [ - { - "description": "设置角色资源权限", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysAuthority" - } - } - ], - "responses": { - "200": { - "description": "设置角色资源权限", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/authority/updateAuthority": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Authority" - ], - "summary": "更新角色信息", - "parameters": [ - { - "description": "权限id, 权限名, 父角色id", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysAuthority" - } - } - ], - "responses": { - "200": { - "description": "更新角色信息,返回包括系统角色详情", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysAuthorityResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/authorityBtn/canRemoveAuthorityBtn": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AuthorityBtn" - ], - "summary": "设置权限按钮", - "responses": { - "200": { - "description": "Delete successful", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/authorityBtn/getAuthorityBtn": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AuthorityBtn" - ], - "summary": "获取权限按钮", - "parameters": [ - { - "description": "菜单id, 角色id, 选中的按钮id", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.SysAuthorityBtnReq" - } - } - ], - "responses": { - "200": { - "description": "返回列表成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysAuthorityBtnRes" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/authorityBtn/setAuthorityBtn": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AuthorityBtn" - ], - "summary": "设置权限按钮", - "parameters": [ - { - "description": "菜单id, 角色id, 选中的按钮id", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.SysAuthorityBtnReq" - } - } - ], - "responses": { - "200": { - "description": "返回列表成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/createPackage": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "创建package", - "parameters": [ - { - "description": "创建package", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysAutoCode" - } - } - ], - "responses": { - "200": { - "description": "创建package成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/createPlug": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "multipart/form-data" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "安装插件", - "parameters": [ - { - "type": "file", - "description": "this is a test file", - "name": "plug", - "in": "formData", - "required": true - } - ], - "responses": { - "200": { - "description": "安装插件成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object" - } - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/createTemp": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "自动代码模板", - "parameters": [ - { - "description": "创建自动代码", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.AutoCodeStruct" - } - } - ], - "responses": { - "200": { - "description": "{\"success\":true,\"data\":{},\"msg\":\"Created successfully\"}", - "schema": { - "type": "string" - } - } - } - } - }, - "/autoCode/delPackage": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "删除package", - "parameters": [ - { - "description": "创建package", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysAutoCode" - } - } - ], - "responses": { - "200": { - "description": "删除package成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/delSysHistory": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "删除回滚记录", - "parameters": [ - { - "description": "请求参数", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.GetById" - } - } - ], - "responses": { - "200": { - "description": "删除回滚记录", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/getColumn": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "获取当前表所有字段", - "responses": { - "200": { - "description": "获取当前表所有字段", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/getDatabase": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "获取当前所有数据库", - "responses": { - "200": { - "description": "获取当前所有数据库", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/getMeta": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "获取meta信息", - "parameters": [ - { - "description": "请求参数", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.GetById" - } - } - ], - "responses": { - "200": { - "description": "获取meta信息", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/getPackage": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "获取package", - "responses": { - "200": { - "description": "创建package成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/getSysHistory": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "查询回滚记录", - "parameters": [ - { - "description": "请求参数", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.SysAutoHistory" - } - } - ], - "responses": { - "200": { - "description": "查询回滚记录,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/getTables": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "获取当前数据库所有表", - "responses": { - "200": { - "description": "获取当前数据库所有表", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/preview": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "预览创建后的代码", - "parameters": [ - { - "description": "预览创建代码", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.AutoCodeStruct" - } - } - ], - "responses": { - "200": { - "description": "预览创建后的代码", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/rollback": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "回滚自动生成代码", - "parameters": [ - { - "description": "请求参数", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.RollBack" - } - } - ], - "responses": { - "200": { - "description": "回滚自动生成代码", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/base/captcha": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Base" - ], - "summary": "生成验证码", - "responses": { - "200": { - "description": "生成验证码,返回包括随机数id,base64,验证码长度", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysCaptchaResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/base/login": { - "post": { - "produces": [ - "application/json" - ], - "tags": [ - "Base" - ], - "summary": "用户登录", - "parameters": [ - { - "description": "用户名, 密码, 验证码", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.Login" - } - } - ], - "responses": { - "200": { - "description": "返回包括用户信息,token,过期时间", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.LoginResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/casbin/UpdateCasbin": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Casbin" - ], - "summary": "更新角色api权限", - "parameters": [ - { - "description": "权限id, 权限模型列表", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.CasbinInReceive" - } - } - ], - "responses": { - "200": { - "description": "更新角色api权限", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/casbin/getPolicyPathByAuthorityId": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Casbin" - ], - "summary": "获取权限列表", - "parameters": [ - { - "description": "权限id, 权限模型列表", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.CasbinInReceive" - } - } - ], - "responses": { - "200": { - "description": "获取权限列表,返回包括casbin详情列表", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PolicyPathResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/customer/customer": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaCustomer" - ], - "summary": "获取单一客户信息", - "parameters": [ - { - "type": "string", - "description": "创建时间", - "name": "createdAt", - "in": "query" - }, - { - "type": "string", - "description": "客户名", - "name": "customerName", - "in": "query" - }, - { - "type": "string", - "description": "客户手机号", - "name": "customerPhoneData", - "in": "query" - }, - { - "type": "integer", - "description": "主键ID", - "name": "id", - "in": "query" - }, - { - "type": "integer", - "description": "管理角色ID", - "name": "sysUserAuthorityID", - "in": "query" - }, - { - "type": "integer", - "description": "管理ID", - "name": "sysUserId", - "in": "query" - }, - { - "type": "string", - "description": "更新时间", - "name": "updatedAt", - "in": "query" - } - ], - "responses": { - "200": { - "description": "获取单一客户信息,返回包括客户详情", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.ExaCustomerResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - }, - "put": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaCustomer" - ], - "summary": "更新客户信息", - "parameters": [ - { - "description": "客户ID, 客户信息", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/example.ExaCustomer" - } - } - ], - "responses": { - "200": { - "description": "更新客户信息", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - }, - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaCustomer" - ], - "summary": "创建客户", - "parameters": [ - { - "description": "客户用户名, 客户手机号码", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/example.ExaCustomer" - } - } - ], - "responses": { - "200": { - "description": "创建客户", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - }, - "delete": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaCustomer" - ], - "summary": "删除客户", - "parameters": [ - { - "description": "客户ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/example.ExaCustomer" - } - } - ], - "responses": { - "200": { - "description": "删除客户", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/customer/customerList": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaCustomer" - ], - "summary": "分页获取权限客户列表", - "parameters": [ - { - "type": "string", - "description": "关键字", - "name": "keyword", - "in": "query" - }, - { - "type": "integer", - "description": "页码", - "name": "page", - "in": "query" - }, - { - "type": "integer", - "description": "每页大小", - "name": "pageSize", - "in": "query" - } - ], - "responses": { - "200": { - "description": "分页获取权限客户列表,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/email/emailTest": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "System" - ], - "summary": "发送测试邮件", - "responses": { - "200": { - "description": "{\"success\":true,\"data\":{},\"msg\":\"发送成功\"}", - "schema": { - "type": "string" - } - } - } - } - }, - "/email/sendEmail": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "System" - ], - "summary": "发送邮件", - "parameters": [ - { - "description": "发送邮件必须的参数", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/response.Email" - } - } - ], - "responses": { - "200": { - "description": "{\"success\":true,\"data\":{},\"msg\":\"发送成功\"}", - "schema": { - "type": "string" - } - } - } - } - }, - "/excel/downloadTemplate": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "multipart/form-data" - ], - "produces": [ - "application/json" - ], - "tags": [ - "excel" - ], - "summary": "下载模板", - "parameters": [ - { - "type": "string", - "description": "模板名称", - "name": "fileName", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "" - } - } - } - }, - "/excel/exportExcel": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "tags": [ - "excel" - ], - "summary": "导出Excel", - "parameters": [ - { - "description": "导出Excel文件信息", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/example.ExcelInfo" - } - } - ], - "responses": { - "200": { - "description": "" - } - } - } - }, - "/excel/importExcel": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "multipart/form-data" - ], - "produces": [ - "application/json" - ], - "tags": [ - "excel" - ], - "summary": "导入Excel文件", - "parameters": [ - { - "type": "file", - "description": "导入Excel文件", - "name": "file", - "in": "formData", - "required": true - } - ], - "responses": { - "200": { - "description": "导入Excel文件", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/excel/loadExcel": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "excel" - ], - "summary": "加载Excel数据", - "responses": { - "200": { - "description": "加载Excel数据,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/fileUploadAndDownload/breakpointContinue": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "multipart/form-data" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaFileUploadAndDownload" - ], - "summary": "断点续传到服务器", - "parameters": [ - { - "type": "file", - "description": "an example for breakpoint resume, 断点续传示例", - "name": "file", - "in": "formData", - "required": true - } - ], - "responses": { - "200": { - "description": "断点续传到服务器", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/fileUploadAndDownload/deleteFile": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaFileUploadAndDownload" - ], - "summary": "删除文件", - "parameters": [ - { - "description": "传入文件里面id即可", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/example.ExaFileUploadAndDownload" - } - } - ], - "responses": { - "200": { - "description": "删除文件", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/fileUploadAndDownload/findFile": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "multipart/form-data" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaFileUploadAndDownload" - ], - "summary": "创建文件", - "parameters": [ - { - "type": "file", - "description": "上传文件完成", - "name": "file", - "in": "formData", - "required": true - } - ], - "responses": { - "200": { - "description": "创建文件,返回包括文件路径", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.FilePathResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/fileUploadAndDownload/getFileList": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaFileUploadAndDownload" - ], - "summary": "分页文件列表", - "parameters": [ - { - "description": "页码, 每页大小", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.PageInfo" - } - } - ], - "responses": { - "200": { - "description": "分页文件列表,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/fileUploadAndDownload/removeChunk": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "multipart/form-data" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaFileUploadAndDownload" - ], - "summary": "删除切片", - "parameters": [ - { - "type": "file", - "description": "删除缓存切片", - "name": "file", - "in": "formData", - "required": true - } - ], - "responses": { - "200": { - "description": "删除切片", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/fileUploadAndDownload/upload": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "multipart/form-data" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaFileUploadAndDownload" - ], - "summary": "上传文件示例", - "parameters": [ - { - "type": "file", - "description": "上传文件示例", - "name": "file", - "in": "formData", - "required": true - } - ], - "responses": { - "200": { - "description": "上传文件示例,返回包括文件详情", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.ExaFileResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/init/checkdb": { - "post": { - "produces": [ - "application/json" - ], - "tags": [ - "CheckDB" - ], - "summary": "初始化用户数据库", - "responses": { - "200": { - "description": "初始化用户数据库", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/init/initdb": { - "post": { - "produces": [ - "application/json" - ], - "tags": [ - "InitDB" - ], - "summary": "初始化用户数据库", - "parameters": [ - { - "description": "初始化数据库参数", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.InitDB" - } - } - ], - "responses": { - "200": { - "description": "初始化用户数据库", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/jwt/jsonInBlacklist": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Jwt" - ], - "summary": "jwt加入黑名单", - "responses": { - "200": { - "description": "jwt加入黑名单", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/menu/addBaseMenu": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Menu" - ], - "summary": "新增菜单", - "parameters": [ - { - "description": "路由path, 父菜单ID, 路由name, 对应前端文件路径, 排序标记", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysBaseMenu" - } - } - ], - "responses": { - "200": { - "description": "新增菜单", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/menu/addMenuAuthority": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AuthorityMenu" - ], - "summary": "增加menu和角色关联关系", - "parameters": [ - { - "description": "角色ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.AddMenuAuthorityInfo" - } - } - ], - "responses": { - "200": { - "description": "增加menu和角色关联关系", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/menu/deleteBaseMenu": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Menu" - ], - "summary": "删除菜单", - "parameters": [ - { - "description": "菜单id", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.GetById" - } - } - ], - "responses": { - "200": { - "description": "删除菜单", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/menu/getBaseMenuById": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Menu" - ], - "summary": "根据id获取菜单", - "parameters": [ - { - "description": "菜单id", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.GetById" - } - } - ], - "responses": { - "200": { - "description": "根据id获取菜单,返回包括系统菜单列表", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysBaseMenuResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/menu/getBaseMenuTree": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "AuthorityMenu" - ], - "summary": "获取用户动态路由", - "parameters": [ - { - "description": "空", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.Empty" - } - } - ], - "responses": { - "200": { - "description": "获取用户动态路由,返回包括系统菜单列表", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysBaseMenusResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/menu/getMenu": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "AuthorityMenu" - ], - "summary": "获取用户动态路由", - "parameters": [ - { - "description": "空", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.Empty" - } - } - ], - "responses": { - "200": { - "description": "获取用户动态路由,返回包括系统菜单详情列表", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysMenusResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/menu/getMenuAuthority": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AuthorityMenu" - ], - "summary": "获取指定角色menu", - "parameters": [ - { - "description": "角色ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.GetAuthorityId" - } - } - ], - "responses": { - "200": { - "description": "获取指定角色menu", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/menu/getMenuList": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Menu" - ], - "summary": "分页获取基础menu列表", - "parameters": [ - { - "description": "页码, 每页大小", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.PageInfo" - } - } - ], - "responses": { - "200": { - "description": "分页获取基础menu列表,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/menu/updateBaseMenu": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Menu" - ], - "summary": "更新菜单", - "parameters": [ - { - "description": "路由path, 父菜单ID, 路由name, 对应前端文件路径, 排序标记", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysBaseMenu" - } - } - ], - "responses": { - "200": { - "description": "更新菜单", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionary/createSysDictionary": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionary" - ], - "summary": "创建SysDictionary", - "parameters": [ - { - "description": "SysDictionary模型", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysDictionary" - } - } - ], - "responses": { - "200": { - "description": "创建SysDictionary", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionary/deleteSysDictionary": { - "delete": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionary" - ], - "summary": "删除SysDictionary", - "parameters": [ - { - "description": "SysDictionary模型", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysDictionary" - } - } - ], - "responses": { - "200": { - "description": "删除SysDictionary", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionary/findSysDictionary": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionary" - ], - "summary": "用id查询SysDictionary", - "parameters": [ - { - "type": "string", - "description": "创建时间", - "name": "createdAt", - "in": "query" - }, - { - "type": "string", - "description": "描述", - "name": "desc", - "in": "query" - }, - { - "type": "integer", - "description": "主键ID", - "name": "id", - "in": "query" - }, - { - "type": "string", - "description": "字典名(中)", - "name": "name", - "in": "query" - }, - { - "type": "boolean", - "description": "状态", - "name": "status", - "in": "query" - }, - { - "type": "string", - "description": "字典名(英)", - "name": "type", - "in": "query" - }, - { - "type": "string", - "description": "更新时间", - "name": "updatedAt", - "in": "query" - } - ], - "responses": { - "200": { - "description": "用id查询SysDictionary", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionary/getSysDictionaryList": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionary" - ], - "summary": "分页获取SysDictionary列表", - "parameters": [ - { - "type": "string", - "description": "创建时间", - "name": "createdAt", - "in": "query" - }, - { - "type": "string", - "description": "描述", - "name": "desc", - "in": "query" - }, - { - "type": "integer", - "description": "主键ID", - "name": "id", - "in": "query" - }, - { - "type": "string", - "description": "关键字", - "name": "keyword", - "in": "query" - }, - { - "type": "string", - "description": "字典名(中)", - "name": "name", - "in": "query" - }, - { - "type": "integer", - "description": "页码", - "name": "page", - "in": "query" - }, - { - "type": "integer", - "description": "每页大小", - "name": "pageSize", - "in": "query" - }, - { - "type": "boolean", - "description": "状态", - "name": "status", - "in": "query" - }, - { - "type": "string", - "description": "字典名(英)", - "name": "type", - "in": "query" - }, - { - "type": "string", - "description": "更新时间", - "name": "updatedAt", - "in": "query" - } - ], - "responses": { - "200": { - "description": "分页获取SysDictionary列表,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionary/updateSysDictionary": { - "put": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionary" - ], - "summary": "更新SysDictionary", - "parameters": [ - { - "description": "SysDictionary模型", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysDictionary" - } - } - ], - "responses": { - "200": { - "description": "更新SysDictionary", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionaryDetail/createSysDictionaryDetail": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionaryDetail" - ], - "summary": "创建SysDictionaryDetail", - "parameters": [ - { - "description": "SysDictionaryDetail模型", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysDictionaryDetail" - } - } - ], - "responses": { - "200": { - "description": "创建SysDictionaryDetail", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionaryDetail/deleteSysDictionaryDetail": { - "delete": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionaryDetail" - ], - "summary": "删除SysDictionaryDetail", - "parameters": [ - { - "description": "SysDictionaryDetail模型", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysDictionaryDetail" - } - } - ], - "responses": { - "200": { - "description": "删除SysDictionaryDetail", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionaryDetail/findSysDictionaryDetail": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionaryDetail" - ], - "summary": "用id查询SysDictionaryDetail", - "parameters": [ - { - "type": "string", - "description": "创建时间", - "name": "createdAt", - "in": "query" - }, - { - "type": "integer", - "description": "主键ID", - "name": "id", - "in": "query" - }, - { - "type": "string", - "description": "展示值", - "name": "label", - "in": "query" - }, - { - "type": "integer", - "description": "排序标记", - "name": "sort", - "in": "query" - }, - { - "type": "boolean", - "description": "启用状态", - "name": "status", - "in": "query" - }, - { - "type": "integer", - "description": "关联标记", - "name": "sysDictionaryID", - "in": "query" - }, - { - "type": "string", - "description": "更新时间", - "name": "updatedAt", - "in": "query" - }, - { - "type": "integer", - "description": "字典值", - "name": "value", - "in": "query" - } - ], - "responses": { - "200": { - "description": "用id查询SysDictionaryDetail", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionaryDetail/getSysDictionaryDetailList": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionaryDetail" - ], - "summary": "分页获取SysDictionaryDetail列表", - "parameters": [ - { - "type": "string", - "description": "创建时间", - "name": "createdAt", - "in": "query" - }, - { - "type": "integer", - "description": "主键ID", - "name": "id", - "in": "query" - }, - { - "type": "string", - "description": "关键字", - "name": "keyword", - "in": "query" - }, - { - "type": "string", - "description": "展示值", - "name": "label", - "in": "query" - }, - { - "type": "integer", - "description": "页码", - "name": "page", - "in": "query" - }, - { - "type": "integer", - "description": "每页大小", - "name": "pageSize", - "in": "query" - }, - { - "type": "integer", - "description": "排序标记", - "name": "sort", - "in": "query" - }, - { - "type": "boolean", - "description": "启用状态", - "name": "status", - "in": "query" - }, - { - "type": "integer", - "description": "关联标记", - "name": "sysDictionaryID", - "in": "query" - }, - { - "type": "string", - "description": "更新时间", - "name": "updatedAt", - "in": "query" - }, - { - "type": "integer", - "description": "字典值", - "name": "value", - "in": "query" - } - ], - "responses": { - "200": { - "description": "分页获取SysDictionaryDetail列表,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionaryDetail/updateSysDictionaryDetail": { - "put": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionaryDetail" - ], - "summary": "更新SysDictionaryDetail", - "parameters": [ - { - "description": "更新SysDictionaryDetail", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysDictionaryDetail" - } - } - ], - "responses": { - "200": { - "description": "更新SysDictionaryDetail", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysOperationRecord/createSysOperationRecord": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysOperationRecord" - ], - "summary": "创建SysOperationRecord", - "parameters": [ - { - "description": "创建SysOperationRecord", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysOperationRecord" - } - } - ], - "responses": { - "200": { - "description": "创建SysOperationRecord", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysOperationRecord/deleteSysOperationRecord": { - "delete": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysOperationRecord" - ], - "summary": "删除SysOperationRecord", - "parameters": [ - { - "description": "SysOperationRecord模型", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysOperationRecord" - } - } - ], - "responses": { - "200": { - "description": "删除SysOperationRecord", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysOperationRecord/deleteSysOperationRecordByIds": { - "delete": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysOperationRecord" - ], - "summary": "批量删除SysOperationRecord", - "parameters": [ - { - "description": "批量删除SysOperationRecord", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.IdsReq" - } - } - ], - "responses": { - "200": { - "description": "批量删除SysOperationRecord", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysOperationRecord/findSysOperationRecord": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysOperationRecord" - ], - "summary": "用id查询SysOperationRecord", - "parameters": [ - { - "type": "string", - "description": "代理", - "name": "agent", - "in": "query" - }, - { - "type": "string", - "description": "请求Body", - "name": "body", - "in": "query" - }, - { - "type": "string", - "description": "创建时间", - "name": "createdAt", - "in": "query" - }, - { - "type": "string", - "description": "错误信息", - "name": "error_message", - "in": "query" - }, - { - "type": "integer", - "description": "主键ID", - "name": "id", - "in": "query" - }, - { - "type": "string", - "description": "请求ip", - "name": "ip", - "in": "query" - }, - { - "type": "string", - "description": "延迟", - "name": "latency", - "in": "query" - }, - { - "type": "string", - "description": "请求方法", - "name": "method", - "in": "query" - }, - { - "type": "string", - "description": "请求路径", - "name": "path", - "in": "query" - }, - { - "type": "string", - "description": "响应Body", - "name": "resp", - "in": "query" - }, - { - "type": "integer", - "description": "请求状态", - "name": "status", - "in": "query" - }, - { - "type": "string", - "description": "更新时间", - "name": "updatedAt", - "in": "query" - }, - { - "type": "integer", - "description": "用户id", - "name": "user_id", - "in": "query" - } - ], - "responses": { - "200": { - "description": "用id查询SysOperationRecord", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysOperationRecord/getSysOperationRecordList": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysOperationRecord" - ], - "summary": "分页获取SysOperationRecord列表", - "parameters": [ - { - "type": "string", - "description": "代理", - "name": "agent", - "in": "query" - }, - { - "type": "string", - "description": "请求Body", - "name": "body", - "in": "query" - }, - { - "type": "string", - "description": "创建时间", - "name": "createdAt", - "in": "query" - }, - { - "type": "string", - "description": "错误信息", - "name": "error_message", - "in": "query" - }, - { - "type": "integer", - "description": "主键ID", - "name": "id", - "in": "query" - }, - { - "type": "string", - "description": "请求ip", - "name": "ip", - "in": "query" - }, - { - "type": "string", - "description": "关键字", - "name": "keyword", - "in": "query" - }, - { - "type": "string", - "description": "延迟", - "name": "latency", - "in": "query" - }, - { - "type": "string", - "description": "请求方法", - "name": "method", - "in": "query" - }, - { - "type": "integer", - "description": "页码", - "name": "page", - "in": "query" - }, - { - "type": "integer", - "description": "每页大小", - "name": "pageSize", - "in": "query" - }, - { - "type": "string", - "description": "请求路径", - "name": "path", - "in": "query" - }, - { - "type": "string", - "description": "响应Body", - "name": "resp", - "in": "query" - }, - { - "type": "integer", - "description": "请求状态", - "name": "status", - "in": "query" - }, - { - "type": "string", - "description": "更新时间", - "name": "updatedAt", - "in": "query" - }, - { - "type": "integer", - "description": "用户id", - "name": "user_id", - "in": "query" - } - ], - "responses": { - "200": { - "description": "分页获取SysOperationRecord列表,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/system/getServerInfo": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "System" - ], - "summary": "获取服务器信息", - "responses": { - "200": { - "description": "获取服务器信息", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/system/getSystemConfig": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "System" - ], - "summary": "获取配置文件内容", - "responses": { - "200": { - "description": "获取配置文件内容,返回包括系统配置", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysConfigResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/system/reloadSystem": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "System" - ], - "summary": "重启系统", - "responses": { - "200": { - "description": "重启系统", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/system/setSystemConfig": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "System" - ], - "summary": "设置配置文件内容", - "parameters": [ - { - "description": "设置配置文件内容", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.System" - } - } - ], - "responses": { - "200": { - "description": "设置配置文件内容", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/SetSelfInfo": { - "put": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "设置用户信息", - "parameters": [ - { - "description": "ID, 用户名, 昵称, 头像链接", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysUser" - } - } - ], - "responses": { - "200": { - "description": "设置用户信息", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/admin_register": { - "post": { - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "用户注册账号", - "parameters": [ - { - "description": "用户名, 昵称, 密码, 角色ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.Register" - } - } - ], - "responses": { - "200": { - "description": "用户注册账号,返回包括用户信息", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysUserResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/changePassword": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "用户修改密码", - "parameters": [ - { - "description": "用户名, 原密码, 新密码", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.ChangePasswordReq" - } - } - ], - "responses": { - "200": { - "description": "用户修改密码", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/deleteUser": { - "delete": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "删除用户", - "parameters": [ - { - "description": "用户ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.GetById" - } - } - ], - "responses": { - "200": { - "description": "删除用户", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/getUserInfo": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "获取用户信息", - "responses": { - "200": { - "description": "获取用户信息", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/getUserList": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "分页获取用户列表", - "parameters": [ - { - "description": "页码, 每页大小", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.PageInfo" - } - } - ], - "responses": { - "200": { - "description": "分页获取用户列表,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/resetPassword": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "重置用户密码", - "parameters": [ - { - "description": "ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysUser" - } - } - ], - "responses": { - "200": { - "description": "重置用户密码", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/setUserAuthorities": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "设置用户权限", - "parameters": [ - { - "description": "用户UUID, 角色ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.SetUserAuthorities" - } - } - ], - "responses": { - "200": { - "description": "设置用户权限", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/setUserAuthority": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "更改用户权限", - "parameters": [ - { - "description": "用户UUID, 角色ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.SetUserAuth" - } - } - ], - "responses": { - "200": { - "description": "设置用户权限", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/setUserInfo": { - "put": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "设置用户信息", - "parameters": [ - { - "description": "ID, 用户名, 昵称, 头像链接", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysUser" - } - } - ], - "responses": { - "200": { - "description": "设置用户信息", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - } - }, - "definitions": { - "config.AliyunOSS": { - "type": "object", - "properties": { - "access-key-id": { - "type": "string" - }, - "access-key-secret": { - "type": "string" - }, - "base-path": { - "type": "string" - }, - "bucket-name": { - "type": "string" - }, - "bucket-url": { - "type": "string" - }, - "endpoint": { - "type": "string" - } - } - }, - "config.Autocode": { - "type": "object", - "properties": { - "root": { - "type": "string" - }, - "server": { - "type": "string" - }, - "server-api": { - "type": "string" - }, - "server-initialize": { - "type": "string" - }, - "server-model": { - "type": "string" - }, - "server-plug": { - "type": "string" - }, - "server-request": { - "type": "string" - }, - "server-router": { - "type": "string" - }, - "server-service": { - "type": "string" - }, - "transfer-restart": { - "type": "boolean" - }, - "web": { - "type": "string" - }, - "web-api": { - "type": "string" - }, - "web-form": { - "type": "string" - }, - "web-table": { - "type": "string" - } - } - }, - "config.AwsS3": { - "type": "object", - "properties": { - "base-url": { - "type": "string" - }, - "bucket": { - "type": "string" - }, - "disable-ssl": { - "type": "boolean" - }, - "endpoint": { - "type": "string" - }, - "path-prefix": { - "type": "string" - }, - "region": { - "type": "string" - }, - "s3-force-path-style": { - "type": "boolean" - }, - "secret-id": { - "type": "string" - }, - "secret-key": { - "type": "string" - } - } - }, - "config.CORS": { - "type": "object", - "properties": { - "mode": { - "type": "string" - }, - "whitelist": { - "type": "array", - "items": { - "$ref": "#/definitions/config.CORSWhitelist" - } - } - } - }, - "config.CORSWhitelist": { - "type": "object", - "properties": { - "allow-credentials": { - "type": "boolean" - }, - "allow-headers": { - "type": "string" - }, - "allow-methods": { - "type": "string" - }, - "allow-origin": { - "type": "string" - }, - "expose-headers": { - "type": "string" - } - } - }, - "config.Captcha": { - "type": "object", - "properties": { - "img-height": { - "description": "验证码高度", - "type": "integer" - }, - "img-width": { - "description": "验证码宽度", - "type": "integer" - }, - "key-long": { - "description": "验证码长度", - "type": "integer" - } - } - }, - "config.Detail": { - "type": "object", - "properties": { - "compareField": { - "description": "需要比较时间的字段", - "type": "string" - }, - "interval": { - "description": "时间间隔", - "type": "string" - }, - "tableName": { - "description": "需要清理的表名", - "type": "string" - } - } - }, - "config.Email": { - "type": "object", - "properties": { - "from": { - "description": "收件人", - "type": "string" - }, - "host": { - "description": "服务器地址", - "type": "string" - }, - "is-ssl": { - "description": "是否SSL", - "type": "boolean" - }, - "nickname": { - "description": "昵称", - "type": "string" - }, - "port": { - "description": "端口", - "type": "integer" - }, - "secret": { - "description": "密钥", - "type": "string" - }, - "to": { - "description": "收件人:多个以英文逗号分隔", - "type": "string" - } - } - }, - "config.Excel": { - "type": "object", - "properties": { - "dir": { - "type": "string" - } - } - }, - "config.HuaWeiObs": { - "type": "object", - "properties": { - "access-key": { - "type": "string" - }, - "bucket": { - "type": "string" - }, - "endpoint": { - "type": "string" - }, - "path": { - "type": "string" - }, - "secret-key": { - "type": "string" - } - } - }, - "config.JWT": { - "type": "object", - "properties": { - "buffer-time": { - "description": "缓冲时间", - "type": "string" - }, - "expires-time": { - "description": "过期时间", - "type": "string" - }, - "issuer": { - "description": "签发者", - "type": "string" - }, - "signing-key": { - "description": "jwt签名", - "type": "string" - } - } - }, - "config.Local": { - "type": "object", - "properties": { - "path": { - "description": "本地文件访问路径", - "type": "string" - }, - "store-path": { - "description": "本地文件存储路径", - "type": "string" - } - } - }, - "config.Mysql": { - "type": "object", - "properties": { - "config": { - "description": "高级配置", - "type": "string" - }, - "db-name": { - "description": "数据库名", - "type": "string" - }, - "log-mode": { - "description": "是否开启Gorm全局日志", - "type": "string" - }, - "log-zap": { - "description": "是否通过zap写入日志文件", - "type": "boolean" - }, - "max-idle-conns": { - "description": "空闲中的最大连接数", - "type": "integer" - }, - "max-open-conns": { - "description": "打开到数据库的最大连接数", - "type": "integer" - }, - "password": { - "description": "数据库密码", - "type": "string" - }, - "path": { - "description": "服务器地址:端口", - "type": "string" - }, - "port": { - "description": ":端口", - "type": "string" - }, - "username": { - "description": "数据库用户名", - "type": "string" - } - } - }, - "config.Redis": { - "type": "object", - "properties": { - "addr": { - "description": "服务器地址:端口", - "type": "string" - }, - "db": { - "description": "redis的哪个数据库", - "type": "integer" - }, - "password": { - "description": "密码", - "type": "string" - } - } - }, - "config.Server": { - "type": "object", - "properties": { - "aliyun-oss": { - "$ref": "#/definitions/config.AliyunOSS" - }, - "autocode": { - "description": "auto", - "$ref": "#/definitions/config.Autocode" - }, - "aws-s3": { - "$ref": "#/definitions/config.AwsS3" - }, - "captcha": { - "$ref": "#/definitions/config.Captcha" - }, - "cors": { - "description": "跨域配置", - "$ref": "#/definitions/config.CORS" - }, - "db-list": { - "type": "array", - "items": { - "$ref": "#/definitions/config.SpecializedDB" - } - }, - "email": { - "$ref": "#/definitions/config.Email" - }, - "excel": { - "$ref": "#/definitions/config.Excel" - }, - "hua-wei-obs": { - "$ref": "#/definitions/config.HuaWeiObs" - }, - "jwt": { - "$ref": "#/definitions/config.JWT" - }, - "local": { - "description": "oss", - "$ref": "#/definitions/config.Local" - }, - "mysql": { - "description": "gorm", - "$ref": "#/definitions/config.Mysql" - }, - "pgsql": { - "$ref": "#/definitions/config.Pgsql" - }, - "qiniu": { - "$ref": "#/definitions/config.Qiniu" - }, - "redis": { - "$ref": "#/definitions/config.Redis" - }, - "system": { - "$ref": "#/definitions/config.System" - }, - "tencent-cos": { - "$ref": "#/definitions/config.TencentCOS" - }, - "timer": { - "$ref": "#/definitions/config.Timer" - }, - "zap": { - "$ref": "#/definitions/config.Zap" - } - } - }, - "config.SpecializedDB": { - "type": "object", - "properties": { - "alias-name": { - "type": "string" - }, - "config": { - "description": "高级配置", - "type": "string" - }, - "db-name": { - "description": "数据库名", - "type": "string" - }, - "disable": { - "type": "boolean" - }, - "log-mode": { - "description": "是否开启Gorm全局日志", - "type": "string" - }, - "log-zap": { - "description": "是否通过zap写入日志文件", - "type": "boolean" - }, - "max-idle-conns": { - "description": "空闲中的最大连接数", - "type": "integer" - }, - "max-open-conns": { - "description": "打开到数据库的最大连接数", - "type": "integer" - }, - "password": { - "description": "数据库密码", - "type": "string" - }, - "path": { - "description": "服务器地址:端口", - "type": "string" - }, - "port": { - "description": ":端口", - "type": "string" - }, - "type": { - "type": "string" - }, - "username": { - "description": "数据库用户名", - "type": "string" - } - } - }, - "config.System": { - "type": "object", - "properties": { - "addr": { - "description": "端口值", - "type": "integer" - }, - "db-type": { - "description": "数据库类型:mysql(默认)|sqlite|sqlserver|postgresql", - "type": "string" - }, - "env": { - "description": "环境值", - "type": "string" - }, - "iplimit-count": { - "type": "integer" - }, - "iplimit-time": { - "type": "integer" - }, - "oss-type": { - "description": "Oss类型", - "type": "string" - }, - "use-multipoint": { - "description": "多点登录拦截", - "type": "boolean" - }, - "use-redis": { - "description": "使用redis", - "type": "boolean" - } - } - }, - "config.Timer": { - "type": "object", - "properties": { - "detail": { - "type": "array", - "items": { - "$ref": "#/definitions/config.Detail" - } - }, - "spec": { - "description": "CRON表达式", - "type": "string" - }, - "start": { - "description": "是否启用", - "type": "boolean" - }, - "with_seconds": { - "description": "是否精确到秒", - "type": "boolean" - } - } - }, - "config.Zap": { - "type": "object", - "properties": { - "director": { - "description": "日志文件夹", - "type": "string" - }, - "encode-level": { - "description": "编码级", - "type": "string" - }, - "format": { - "description": "输出", - "type": "string" - }, - "level": { - "description": "级别", - "type": "string" - }, - "log-in-console": { - "description": "输出控制台", - "type": "boolean" - }, - "max-age": { - "description": "日志留存时间", - "type": "integer" - }, - "prefix": { - "description": "日志前缀", - "type": "string" - }, - "show-line": { - "description": "显示行", - "type": "boolean" - }, - "stacktrace-key": { - "description": "栈名", - "type": "string" - } - } - }, - "example.ExaCustomer": { - "type": "object", - "properties": { - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "customerName": { - "description": "客户名", - "type": "string" - }, - "customerPhoneData": { - "description": "客户手机号", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "sysUser": { - "description": "管理详情", - "$ref": "#/definitions/system.SysUser" - }, - "sysUserAuthorityID": { - "description": "管理角色ID", - "type": "integer" - }, - "sysUserId": { - "description": "管理ID", - "type": "integer" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "example.ExaFile": { - "type": "object", - "properties": { - "chunkTotal": { - "type": "integer" - }, - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "exaFileChunk": { - "type": "array", - "items": { - "$ref": "#/definitions/example.ExaFileChunk" - } - }, - "fileMd5": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "filePath": { - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "isFinish": { - "type": "boolean" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "example.ExaFileChunk": { - "type": "object", - "properties": { - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "exaFileID": { - "type": "integer" - }, - "fileChunkNumber": { - "type": "integer" - }, - "fileChunkPath": { - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "example.ExaFileUploadAndDownload": { - "type": "object", - "properties": { - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "key": { - "description": "编号", - "type": "string" - }, - "name": { - "description": "文件名", - "type": "string" - }, - "tag": { - "description": "文件标签", - "type": "string" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - }, - "url": { - "description": "文件地址", - "type": "string" - } - } - }, - "example.ExcelInfo": { - "type": "object", - "properties": { - "fileName": { - "description": "文件名", - "type": "string" - }, - "infoList": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysBaseMenu" - } - } - } - }, - "request.AddMenuAuthorityInfo": { - "type": "object", - "properties": { - "authorityId": { - "description": "角色ID", - "type": "integer" - }, - "menus": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysBaseMenu" - } - } - } - }, - "request.CasbinInReceive": { - "type": "object", - "properties": { - "authorityId": { - "description": "权限id", - "type": "integer" - }, - "casbinInfos": { - "type": "array", - "items": { - "$ref": "#/definitions/request.CasbinInfo" - } - } - } - }, - "request.CasbinInfo": { - "type": "object", - "properties": { - "method": { - "description": "方法", - "type": "string" - }, - "path": { - "description": "路径", - "type": "string" - } - } - }, - "request.ChangePasswordReq": { - "type": "object", - "properties": { - "newPassword": { - "description": "新密码", - "type": "string" - }, - "password": { - "description": "密码", - "type": "string" - } - } - }, - "request.Empty": { - "type": "object" - }, - "request.GetAuthorityId": { - "type": "object", - "properties": { - "authorityId": { - "description": "角色ID", - "type": "integer" - } - } - }, - "request.GetById": { - "type": "object", - "properties": { - "id": { - "description": "主键ID", - "type": "integer" - } - } - }, - "request.IdsReq": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "type": "integer" - } - } - } - }, - "request.InitDB": { - "type": "object", - "required": [ - "dbName", - "userName" - ], - "properties": { - "dbName": { - "description": "数据库名", - "type": "string" - }, - "dbType": { - "description": "数据库类型", - "type": "string" - }, - "host": { - "description": "服务器地址", - "type": "string" - }, - "password": { - "description": "数据库密码", - "type": "string" - }, - "port": { - "description": "数据库连接端口", - "type": "string" - }, - "userName": { - "description": "数据库用户名", - "type": "string" - } - } - }, - "request.Login": { - "type": "object", - "properties": { - "captcha": { - "description": "验证码", - "type": "string" - }, - "captchaId": { - "description": "验证码ID", - "type": "string" - }, - "password": { - "description": "密码", - "type": "string" - }, - "username": { - "description": "用户名", - "type": "string" - } - } - }, - "request.PageInfo": { - "type": "object", - "properties": { - "keyword": { - "description": "关键字", - "type": "string" - }, - "page": { - "description": "页码", - "type": "integer" - }, - "pageSize": { - "description": "每页大小", - "type": "integer" - } - } - }, - "request.Register": { - "type": "object", - "properties": { - "authorityId": { - "type": "integer" - }, - "authorityIds": { - "type": "array", - "items": { - "type": "integer" - } - }, - "enable": { - "type": "integer" - }, - "headerImg": { - "type": "string" - }, - "nickName": { - "type": "string" - }, - "passWord": { - "type": "string" - }, - "userName": { - "type": "string" - } - } - }, - "request.RollBack": { - "type": "object", - "properties": { - "deleteTable": { - "description": "是否删除表", - "type": "boolean" - }, - "id": { - "description": "主键ID", - "type": "integer" - } - } - }, - "request.SearchApiParams": { - "type": "object", - "properties": { - "apiGroup": { - "description": "api组", - "type": "string" - }, - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "desc": { - "description": "排序方式:升序false(默认)|降序true", - "type": "boolean" - }, - "description": { - "description": "api中文描述", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "keyword": { - "description": "关键字", - "type": "string" - }, - "method": { - "description": "方法:创建POST(默认)|查看GET|更新PUT|删除DELETE", - "type": "string" - }, - "orderKey": { - "description": "排序", - "type": "string" - }, - "page": { - "description": "页码", - "type": "integer" - }, - "pageSize": { - "description": "每页大小", - "type": "integer" - }, - "path": { - "description": "api路径", - "type": "string" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "request.SetUserAuth": { - "type": "object", - "properties": { - "authorityId": { - "description": "角色ID", - "type": "integer" - } - } - }, - "request.SetUserAuthorities": { - "type": "object", - "properties": { - "authorityIds": { - "description": "角色ID", - "type": "array", - "items": { - "type": "integer" - } - }, - "id": { - "type": "integer" - } - } - }, - "request.SysAuthorityBtnReq": { - "type": "object", - "properties": { - "authorityId": { - "type": "integer" - }, - "menuID": { - "type": "integer" - }, - "selected": { - "type": "array", - "items": { - "type": "integer" - } - } - } - }, - "request.SysAutoHistory": { - "type": "object", - "properties": { - "keyword": { - "description": "关键字", - "type": "string" - }, - "page": { - "description": "页码", - "type": "integer" - }, - "pageSize": { - "description": "每页大小", - "type": "integer" - } - } - }, - "response.Email": { - "type": "object", - "properties": { - "body": { - "description": "邮件内容", - "type": "string" - }, - "subject": { - "description": "邮件标题", - "type": "string" - }, - "to": { - "description": "邮件发送给谁", - "type": "string" - } - } - }, - "response.ExaCustomerResponse": { - "type": "object", - "properties": { - "customer": { - "$ref": "#/definitions/example.ExaCustomer" - } - } - }, - "response.ExaFileResponse": { - "type": "object", - "properties": { - "file": { - "$ref": "#/definitions/example.ExaFileUploadAndDownload" - } - } - }, - "response.FilePathResponse": { - "type": "object", - "properties": { - "filePath": { - "type": "string" - } - } - }, - "response.FileResponse": { - "type": "object", - "properties": { - "file": { - "$ref": "#/definitions/example.ExaFile" - } - } - }, - "response.LoginResponse": { - "type": "object", - "properties": { - "expiresAt": { - "type": "integer" - }, - "token": { - "type": "string" - }, - "user": { - "$ref": "#/definitions/system.SysUser" - } - } - }, - "response.PageResult": { - "type": "object", - "properties": { - "list": { - "type": "object" - }, - "page": { - "type": "integer" - }, - "pageSize": { - "type": "integer" - }, - "total": { - "type": "integer" - } - } - }, - "response.PolicyPathResponse": { - "type": "object", - "properties": { - "paths": { - "type": "array", - "items": { - "$ref": "#/definitions/request.CasbinInfo" - } - } - } - }, - "response.Response": { - "type": "object", - "properties": { - "code": { - "type": "integer" - }, - "data": { - "type": "object" - }, - "msg": { - "type": "string" - } - } - }, - "response.SysAPIListResponse": { - "type": "object", - "properties": { - "apis": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysApi" - } - } - } - }, - "response.SysAPIResponse": { - "type": "object", - "properties": { - "api": { - "$ref": "#/definitions/system.SysApi" - } - } - }, - "response.SysAuthorityBtnRes": { - "type": "object", - "properties": { - "selected": { - "type": "array", - "items": { - "type": "integer" - } - } - } - }, - "response.SysAuthorityCopyResponse": { - "type": "object", - "properties": { - "authority": { - "$ref": "#/definitions/system.SysAuthority" - }, - "oldAuthorityId": { - "description": "旧角色ID", - "type": "integer" - } - } - }, - "response.SysAuthorityResponse": { - "type": "object", - "properties": { - "authority": { - "$ref": "#/definitions/system.SysAuthority" - } - } - }, - "response.SysBaseMenuResponse": { - "type": "object", - "properties": { - "menu": { - "$ref": "#/definitions/system.SysBaseMenu" - } - } - }, - "response.SysBaseMenusResponse": { - "type": "object", - "properties": { - "menus": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysBaseMenu" - } - } - } - }, - "response.SysCaptchaResponse": { - "type": "object", - "properties": { - "captchaId": { - "type": "string" - }, - "captchaLength": { - "type": "integer" - }, - "picPath": { - "type": "string" - } - } - }, - "response.SysConfigResponse": { - "type": "object", - "properties": { - "config": { - "$ref": "#/definitions/config.Server" - } - } - }, - "response.SysMenusResponse": { - "type": "object", - "properties": { - "menus": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysMenu" - } - } - } - }, - "response.SysUserResponse": { - "type": "object", - "properties": { - "user": { - "$ref": "#/definitions/system.SysUser" - } - } - }, - "system.AutoCodeStruct": { - "type": "object", - "properties": { - "abbreviation": { - "description": "Struct简称", - "type": "string" - }, - "autoCreateApiToSql": { - "description": "是否自动创建api", - "type": "boolean" - }, - "autoCreateResource": { - "description": "是否自动创建资源标识", - "type": "boolean" - }, - "autoMoveFile": { - "description": "是否自动移动文件", - "type": "boolean" - }, - "description": { - "description": "Struct中文名称", - "type": "string" - }, - "fields": { - "type": "array", - "items": { - "$ref": "#/definitions/system.Field" - } - }, - "hasTimer": { - "type": "boolean" - }, - "humpPackageName": { - "description": "go文件名称", - "type": "string" - }, - "package": { - "type": "string" - }, - "packageName": { - "description": "文件名称", - "type": "string" - }, - "structName": { - "description": "Struct名称", - "type": "string" - }, - "tableName": { - "description": "表名", - "type": "string" - } - } - }, - "system.Field": { - "type": "object", - "properties": { - "clearable": { - "description": "是否可清空", - "type": "boolean" - }, - "columnName": { - "description": "数据库字段", - "type": "string" - }, - "comment": { - "description": "数据库字段描述", - "type": "string" - }, - "dataTypeLong": { - "description": "数据库字段长度", - "type": "string" - }, - "dictType": { - "description": "字典", - "type": "string" - }, - "errorText": { - "description": "校验失败文字", - "type": "string" - }, - "fieldDesc": { - "description": "中文名", - "type": "string" - }, - "fieldJson": { - "description": "FieldJson", - "type": "string" - }, - "fieldName": { - "description": "Field名", - "type": "string" - }, - "fieldSearchType": { - "description": "搜索条件", - "type": "string" - }, - "fieldType": { - "description": "Field数据类型", - "type": "string" - }, - "require": { - "description": "是否必填", - "type": "boolean" - } - } - }, - "system.SysApi": { - "type": "object", - "properties": { - "apiGroup": { - "description": "api组", - "type": "string" - }, - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "description": { - "description": "api中文描述", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "method": { - "description": "方法:创建POST(默认)|查看GET|更新PUT|删除DELETE", - "type": "string" - }, - "path": { - "description": "api路径", - "type": "string" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "system.SysAuthority": { - "type": "object", - "properties": { - "authorityId": { - "description": "角色ID", - "type": "integer" - }, - "authorityName": { - "description": "角色名", - "type": "string" - }, - "children": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysAuthority" - } - }, - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "dataAuthorityId": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysAuthority" - } - }, - "defaultRouter": { - "description": "默认菜单(默认dashboard)", - "type": "string" - }, - "deletedAt": { - "type": "string" - }, - "menus": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysBaseMenu" - } - }, - "parentId": { - "description": "父角色ID", - "type": "integer" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "system.SysAutoCode": { - "type": "object", - "properties": { - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "desc": { - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "label": { - "type": "string" - }, - "packageName": { - "type": "string" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "system.SysBaseMenu": { - "type": "object", - "properties": { - "authoritys": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysAuthority" - } - }, - "children": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysBaseMenu" - } - }, - "closeTab": { - "description": "自动关闭tab", - "type": "boolean" - }, - "component": { - "description": "对应前端文件路径", - "type": "string" - }, - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "defaultMenu": { - "description": "是否是基础路由(开发中)", - "type": "boolean" - }, - "hidden": { - "description": "是否在列表隐藏", - "type": "boolean" - }, - "icon": { - "description": "菜单图标", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "keepAlive": { - "description": "是否缓存", - "type": "boolean" - }, - "menuBtn": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysBaseMenuBtn" - } - }, - "name": { - "description": "路由name", - "type": "string" - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysBaseMenuParameter" - } - }, - "parentId": { - "description": "父菜单ID", - "type": "string" - }, - "path": { - "description": "路由path", - "type": "string" - }, - "sort": { - "description": "排序标记", - "type": "integer" - }, - "title": { - "description": "菜单名", - "type": "string" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "system.SysBaseMenuBtn": { - "type": "object", - "properties": { - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "desc": { - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "name": { - "type": "string" - }, - "sysBaseMenuID": { - "type": "integer" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "system.SysBaseMenuParameter": { - "type": "object", - "properties": { - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "key": { - "description": "地址栏携带参数的key", - "type": "string" - }, - "sysBaseMenuID": { - "type": "integer" - }, - "type": { - "description": "地址栏携带参数为params还是query", - "type": "string" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - }, - "value": { - "description": "地址栏携带参数的值", - "type": "string" - } - } - }, - "system.SysDictionary": { - "type": "object", - "properties": { - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "desc": { - "description": "描述", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "name": { - "description": "字典名(中)", - "type": "string" - }, - "status": { - "description": "状态", - "type": "boolean" - }, - "sysDictionaryDetails": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysDictionaryDetail" - } - }, - "type": { - "description": "字典名(英)", - "type": "string" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "system.SysDictionaryDetail": { - "type": "object", - "properties": { - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "label": { - "description": "展示值", - "type": "string" - }, - "sort": { - "description": "排序标记", - "type": "integer" - }, - "status": { - "description": "启用状态", - "type": "boolean" - }, - "sysDictionaryID": { - "description": "关联标记", - "type": "integer" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - }, - "value": { - "description": "字典值", - "type": "integer" - } - } - }, - "system.SysMenu": { - "type": "object", - "properties": { - "authoritys": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysAuthority" - } - }, - "btns": { - "type": "object", - "additionalProperties": { - "type": "integer" - } - }, - "children": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysMenu" - } - }, - "closeTab": { - "description": "自动关闭tab", - "type": "boolean" - }, - "component": { - "description": "对应前端文件路径", - "type": "string" - }, - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "defaultMenu": { - "description": "是否是基础路由(开发中)", - "type": "boolean" - }, - "hidden": { - "description": "是否在列表隐藏", - "type": "boolean" - }, - "icon": { - "description": "菜单图标", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "keepAlive": { - "description": "是否缓存", - "type": "boolean" - }, - "menuBtn": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysBaseMenuBtn" - } - }, - "menuId": { - "type": "string" - }, - "name": { - "description": "路由name", - "type": "string" - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysBaseMenuParameter" - } - }, - "parentId": { - "description": "父菜单ID", - "type": "string" - }, - "path": { - "description": "路由path", - "type": "string" - }, - "sort": { - "description": "排序标记", - "type": "integer" - }, - "title": { - "description": "菜单名", - "type": "string" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "system.SysOperationRecord": { - "type": "object", - "properties": { - "agent": { - "description": "代理", - "type": "string" - }, - "body": { - "description": "请求Body", - "type": "string" - }, - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "error_message": { - "description": "错误信息", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "ip": { - "description": "请求ip", - "type": "string" - }, - "latency": { - "description": "延迟", - "type": "string" - }, - "method": { - "description": "请求方法", - "type": "string" - }, - "path": { - "description": "请求路径", - "type": "string" - }, - "resp": { - "description": "响应Body", - "type": "string" - }, - "status": { - "description": "请求状态", - "type": "integer" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - }, - "user": { - "$ref": "#/definitions/system.SysUser" - }, - "user_id": { - "description": "用户id", - "type": "integer" - } - } - }, - "system.SysUser": { - "type": "object", - "properties": { - "activeColor": { - "description": "活跃颜色", - "type": "string" - }, - "authorities": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysAuthority" - } - }, - "authority": { - "$ref": "#/definitions/system.SysAuthority" - }, - "authorityId": { - "description": "用户角色ID", - "type": "integer" - }, - "baseColor": { - "description": "基础颜色", - "type": "string" - }, - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "email": { - "description": "用户邮箱", - "type": "string" - }, - "enable": { - "description": "用户是否被冻结 1正常 2冻结", - "type": "integer" - }, - "headerImg": { - "description": "用户头像", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "nickName": { - "description": "用户昵称", - "type": "string" - }, - "phone": { - "description": "用户手机号", - "type": "string" - }, - "sideMode": { - "description": "用户侧边主题", - "type": "string" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - }, - "userName": { - "description": "用户登录名", - "type": "string" - }, - "uuid": { - "description": "用户UUID", - "type": "string" - } - } - }, - "system.System": { - "type": "object", - "properties": { - "config": { - "$ref": "#/definitions/config.Server" - } - } - } - }, - "securityDefinitions": { - "ApiKeyAuth": { - "type": "apiKey", - "name": "x-token", - "in": "header" - } - } -}` - -type swaggerInfo struct { - Version string - Host string - BasePath string - Schemes []string - Title string - Description string -} - -// SwaggerInfo holds exported Swagger Info so clients can modify it -var SwaggerInfo = swaggerInfo{ - Version: "0.0.1", - Host: "", - BasePath: "/", - Schemes: []string{}, - Title: "Swagger Example API", - Description: "This is a sample Server pets", -} - -type s struct{} - -func (s *s) ReadDoc() string { - sInfo := SwaggerInfo - sInfo.Description = strings.Replace(sInfo.Description, "\n", "\\n", -1) - - t, err := template.New("swagger_info").Funcs(template.FuncMap{ - "marshal": func(v interface{}) string { - a, _ := json.Marshal(v) - return string(a) - }, - }).Parse(doc) - if err != nil { - return doc - } - - var tpl bytes.Buffer - if err := t.Execute(&tpl, sInfo); err != nil { - return doc - } - - return tpl.String() -} - -func init() { - swag.Register(swag.Name, &s{}) -} diff --git a/docs/swagger.json b/docs/swagger.json deleted file mode 100644 index adaceb2..0000000 --- a/docs/swagger.json +++ /dev/null @@ -1,6777 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "description": "This is a sample Server pets", - "title": "Swagger Example API", - "contact": {}, - "version": "0.0.1" - }, - "basePath": "/", - "paths": { - "/api/createApi": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysApi" - ], - "summary": "创建基础api", - "parameters": [ - { - "description": "api路径, api中文描述, api组, 方法", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysApi" - } - } - ], - "responses": { - "200": { - "description": "创建基础api", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/api/deleteApi": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysApi" - ], - "summary": "删除api", - "parameters": [ - { - "description": "ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysApi" - } - } - ], - "responses": { - "200": { - "description": "删除api", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/api/deleteApisByIds": { - "delete": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysApi" - ], - "summary": "删除选中Api", - "parameters": [ - { - "description": "ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.IdsReq" - } - } - ], - "responses": { - "200": { - "description": "删除选中Api", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/api/getAllApis": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysApi" - ], - "summary": "获取所有的Api 不分页", - "responses": { - "200": { - "description": "获取所有的Api 不分页,返回包括api列表", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysAPIListResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/api/getApiById": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysApi" - ], - "summary": "根据id获取api", - "parameters": [ - { - "description": "根据id获取api", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.GetById" - } - } - ], - "responses": { - "200": { - "description": "根据id获取api,返回包括api详情", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysAPIResponse" - } - } - } - ] - } - } - } - } - }, - "/api/getApiList": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysApi" - ], - "summary": "分页获取API列表", - "parameters": [ - { - "description": "分页获取API列表", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.SearchApiParams" - } - } - ], - "responses": { - "200": { - "description": "分页获取API列表,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/api/updateApi": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysApi" - ], - "summary": "修改基础api", - "parameters": [ - { - "description": "api路径, api中文描述, api组, 方法", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysApi" - } - } - ], - "responses": { - "200": { - "description": "修改基础api", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/authority/copyAuthority": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Authority" - ], - "summary": "拷贝角色", - "parameters": [ - { - "description": "旧角色id, 新权限id, 新权限名, 新父角色id", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/response.SysAuthorityCopyResponse" - } - } - ], - "responses": { - "200": { - "description": "拷贝角色,返回包括系统角色详情", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysAuthorityResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/authority/createAuthority": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Authority" - ], - "summary": "创建角色", - "parameters": [ - { - "description": "权限id, 权限名, 父角色id", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysAuthority" - } - } - ], - "responses": { - "200": { - "description": "创建角色,返回包括系统角色详情", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysAuthorityResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/authority/deleteAuthority": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Authority" - ], - "summary": "删除角色", - "parameters": [ - { - "description": "删除角色", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysAuthority" - } - } - ], - "responses": { - "200": { - "description": "删除角色", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/authority/getAuthorityList": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Authority" - ], - "summary": "分页获取角色列表", - "parameters": [ - { - "description": "页码, 每页大小", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.PageInfo" - } - } - ], - "responses": { - "200": { - "description": "分页获取角色列表,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/authority/setDataAuthority": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Authority" - ], - "summary": "设置角色资源权限", - "parameters": [ - { - "description": "设置角色资源权限", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysAuthority" - } - } - ], - "responses": { - "200": { - "description": "设置角色资源权限", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/authority/updateAuthority": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Authority" - ], - "summary": "更新角色信息", - "parameters": [ - { - "description": "权限id, 权限名, 父角色id", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysAuthority" - } - } - ], - "responses": { - "200": { - "description": "更新角色信息,返回包括系统角色详情", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysAuthorityResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/authorityBtn/canRemoveAuthorityBtn": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AuthorityBtn" - ], - "summary": "设置权限按钮", - "responses": { - "200": { - "description": "删除成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/authorityBtn/getAuthorityBtn": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AuthorityBtn" - ], - "summary": "获取权限按钮", - "parameters": [ - { - "description": "菜单id, 角色id, 选中的按钮id", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.SysAuthorityBtnReq" - } - } - ], - "responses": { - "200": { - "description": "返回列表成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysAuthorityBtnRes" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/authorityBtn/setAuthorityBtn": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AuthorityBtn" - ], - "summary": "设置权限按钮", - "parameters": [ - { - "description": "菜单id, 角色id, 选中的按钮id", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.SysAuthorityBtnReq" - } - } - ], - "responses": { - "200": { - "description": "返回列表成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/createPackage": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "创建package", - "parameters": [ - { - "description": "创建package", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysAutoCode" - } - } - ], - "responses": { - "200": { - "description": "创建package成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/createPlug": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "multipart/form-data" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "安装插件", - "parameters": [ - { - "type": "file", - "description": "this is a test file", - "name": "plug", - "in": "formData", - "required": true - } - ], - "responses": { - "200": { - "description": "安装插件成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object" - } - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/createTemp": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "自动代码模板", - "parameters": [ - { - "description": "创建自动代码", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.AutoCodeStruct" - } - } - ], - "responses": { - "200": { - "description": "{\"success\":true,\"data\":{},\"msg\":\"创建成功\"}", - "schema": { - "type": "string" - } - } - } - } - }, - "/autoCode/delPackage": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "删除package", - "parameters": [ - { - "description": "创建package", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysAutoCode" - } - } - ], - "responses": { - "200": { - "description": "删除package成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/delSysHistory": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "删除回滚记录", - "parameters": [ - { - "description": "请求参数", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.GetById" - } - } - ], - "responses": { - "200": { - "description": "删除回滚记录", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/getColumn": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "获取当前表所有字段", - "responses": { - "200": { - "description": "获取当前表所有字段", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/getDatabase": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "获取当前所有数据库", - "responses": { - "200": { - "description": "获取当前所有数据库", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/getMeta": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "获取meta信息", - "parameters": [ - { - "description": "请求参数", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.GetById" - } - } - ], - "responses": { - "200": { - "description": "获取meta信息", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/getPackage": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "获取package", - "responses": { - "200": { - "description": "创建package成功", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/getSysHistory": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "查询回滚记录", - "parameters": [ - { - "description": "请求参数", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.SysAutoHistory" - } - } - ], - "responses": { - "200": { - "description": "查询回滚记录,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/getTables": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "获取当前数据库所有表", - "responses": { - "200": { - "description": "获取当前数据库所有表", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/preview": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "预览创建后的代码", - "parameters": [ - { - "description": "预览创建代码", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.AutoCodeStruct" - } - } - ], - "responses": { - "200": { - "description": "预览创建后的代码", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/autoCode/rollback": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AutoCode" - ], - "summary": "回滚自动生成代码", - "parameters": [ - { - "description": "请求参数", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.RollBack" - } - } - ], - "responses": { - "200": { - "description": "回滚自动生成代码", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/base/captcha": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Base" - ], - "summary": "生成验证码", - "responses": { - "200": { - "description": "生成验证码,返回包括随机数id,base64,验证码长度", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysCaptchaResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/base/login": { - "post": { - "produces": [ - "application/json" - ], - "tags": [ - "Base" - ], - "summary": "用户登录", - "parameters": [ - { - "description": "用户名, 密码, 验证码", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.Login" - } - } - ], - "responses": { - "200": { - "description": "返回包括用户信息,token,过期时间", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.LoginResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/casbin/UpdateCasbin": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Casbin" - ], - "summary": "更新角色api权限", - "parameters": [ - { - "description": "权限id, 权限模型列表", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.CasbinInReceive" - } - } - ], - "responses": { - "200": { - "description": "更新角色api权限", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/casbin/getPolicyPathByAuthorityId": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Casbin" - ], - "summary": "获取权限列表", - "parameters": [ - { - "description": "权限id, 权限模型列表", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.CasbinInReceive" - } - } - ], - "responses": { - "200": { - "description": "获取权限列表,返回包括casbin详情列表", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PolicyPathResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/customer/customer": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaCustomer" - ], - "summary": "获取单一客户信息", - "parameters": [ - { - "type": "string", - "description": "创建时间", - "name": "createdAt", - "in": "query" - }, - { - "type": "string", - "description": "客户名", - "name": "customerName", - "in": "query" - }, - { - "type": "string", - "description": "客户手机号", - "name": "customerPhoneData", - "in": "query" - }, - { - "type": "integer", - "description": "主键ID", - "name": "id", - "in": "query" - }, - { - "type": "integer", - "description": "管理角色ID", - "name": "sysUserAuthorityID", - "in": "query" - }, - { - "type": "integer", - "description": "管理ID", - "name": "sysUserId", - "in": "query" - }, - { - "type": "string", - "description": "更新时间", - "name": "updatedAt", - "in": "query" - } - ], - "responses": { - "200": { - "description": "获取单一客户信息,返回包括客户详情", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.ExaCustomerResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - }, - "put": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaCustomer" - ], - "summary": "更新客户信息", - "parameters": [ - { - "description": "客户ID, 客户信息", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/example.ExaCustomer" - } - } - ], - "responses": { - "200": { - "description": "更新客户信息", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - }, - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaCustomer" - ], - "summary": "创建客户", - "parameters": [ - { - "description": "客户用户名, 客户手机号码", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/example.ExaCustomer" - } - } - ], - "responses": { - "200": { - "description": "创建客户", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - }, - "delete": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaCustomer" - ], - "summary": "删除客户", - "parameters": [ - { - "description": "客户ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/example.ExaCustomer" - } - } - ], - "responses": { - "200": { - "description": "删除客户", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/customer/customerList": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaCustomer" - ], - "summary": "分页获取权限客户列表", - "parameters": [ - { - "type": "string", - "description": "关键字", - "name": "keyword", - "in": "query" - }, - { - "type": "integer", - "description": "页码", - "name": "page", - "in": "query" - }, - { - "type": "integer", - "description": "每页大小", - "name": "pageSize", - "in": "query" - } - ], - "responses": { - "200": { - "description": "分页获取权限客户列表,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/email/emailTest": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "System" - ], - "summary": "发送测试邮件", - "responses": { - "200": { - "description": "{\"success\":true,\"data\":{},\"msg\":\"发送成功\"}", - "schema": { - "type": "string" - } - } - } - } - }, - "/email/sendEmail": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "System" - ], - "summary": "发送邮件", - "parameters": [ - { - "description": "发送邮件必须的参数", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/response.Email" - } - } - ], - "responses": { - "200": { - "description": "{\"success\":true,\"data\":{},\"msg\":\"发送成功\"}", - "schema": { - "type": "string" - } - } - } - } - }, - "/excel/downloadTemplate": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "multipart/form-data" - ], - "produces": [ - "application/json" - ], - "tags": [ - "excel" - ], - "summary": "下载模板", - "parameters": [ - { - "type": "string", - "description": "模板名称", - "name": "fileName", - "in": "query", - "required": true - } - ], - "responses": { - "200": { - "description": "" - } - } - } - }, - "/excel/exportExcel": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/octet-stream" - ], - "tags": [ - "excel" - ], - "summary": "导出Excel", - "parameters": [ - { - "description": "导出Excel文件信息", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/example.ExcelInfo" - } - } - ], - "responses": { - "200": { - "description": "" - } - } - } - }, - "/excel/importExcel": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "multipart/form-data" - ], - "produces": [ - "application/json" - ], - "tags": [ - "excel" - ], - "summary": "导入Excel文件", - "parameters": [ - { - "type": "file", - "description": "导入Excel文件", - "name": "file", - "in": "formData", - "required": true - } - ], - "responses": { - "200": { - "description": "导入Excel文件", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/excel/loadExcel": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "excel" - ], - "summary": "加载Excel数据", - "responses": { - "200": { - "description": "加载Excel数据,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/fileUploadAndDownload/breakpointContinue": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "multipart/form-data" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaFileUploadAndDownload" - ], - "summary": "断点续传到服务器", - "parameters": [ - { - "type": "file", - "description": "an example for breakpoint resume, 断点续传示例", - "name": "file", - "in": "formData", - "required": true - } - ], - "responses": { - "200": { - "description": "断点续传到服务器", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/fileUploadAndDownload/deleteFile": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaFileUploadAndDownload" - ], - "summary": "删除文件", - "parameters": [ - { - "description": "传入文件里面id即可", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/example.ExaFileUploadAndDownload" - } - } - ], - "responses": { - "200": { - "description": "删除文件", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/fileUploadAndDownload/findFile": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "multipart/form-data" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaFileUploadAndDownload" - ], - "summary": "创建文件", - "parameters": [ - { - "type": "file", - "description": "上传文件完成", - "name": "file", - "in": "formData", - "required": true - } - ], - "responses": { - "200": { - "description": "创建文件,返回包括文件路径", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.FilePathResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/fileUploadAndDownload/getFileList": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaFileUploadAndDownload" - ], - "summary": "分页文件列表", - "parameters": [ - { - "description": "页码, 每页大小", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.PageInfo" - } - } - ], - "responses": { - "200": { - "description": "分页文件列表,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/fileUploadAndDownload/removeChunk": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "multipart/form-data" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaFileUploadAndDownload" - ], - "summary": "删除切片", - "parameters": [ - { - "type": "file", - "description": "删除缓存切片", - "name": "file", - "in": "formData", - "required": true - } - ], - "responses": { - "200": { - "description": "删除切片", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/fileUploadAndDownload/upload": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "multipart/form-data" - ], - "produces": [ - "application/json" - ], - "tags": [ - "ExaFileUploadAndDownload" - ], - "summary": "上传文件示例", - "parameters": [ - { - "type": "file", - "description": "上传文件示例", - "name": "file", - "in": "formData", - "required": true - } - ], - "responses": { - "200": { - "description": "上传文件示例,返回包括文件详情", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.ExaFileResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/init/checkdb": { - "post": { - "produces": [ - "application/json" - ], - "tags": [ - "CheckDB" - ], - "summary": "初始化用户数据库", - "responses": { - "200": { - "description": "初始化用户数据库", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/init/initdb": { - "post": { - "produces": [ - "application/json" - ], - "tags": [ - "InitDB" - ], - "summary": "初始化用户数据库", - "parameters": [ - { - "description": "初始化数据库参数", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.InitDB" - } - } - ], - "responses": { - "200": { - "description": "初始化用户数据库", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/jwt/jsonInBlacklist": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Jwt" - ], - "summary": "jwt加入黑名单", - "responses": { - "200": { - "description": "jwt加入黑名单", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/menu/addBaseMenu": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Menu" - ], - "summary": "新增菜单", - "parameters": [ - { - "description": "路由path, 父菜单ID, 路由name, 对应前端文件路径, 排序标记", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysBaseMenu" - } - } - ], - "responses": { - "200": { - "description": "新增菜单", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/menu/addMenuAuthority": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AuthorityMenu" - ], - "summary": "增加menu和角色关联关系", - "parameters": [ - { - "description": "角色ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.AddMenuAuthorityInfo" - } - } - ], - "responses": { - "200": { - "description": "增加menu和角色关联关系", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/menu/deleteBaseMenu": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Menu" - ], - "summary": "删除菜单", - "parameters": [ - { - "description": "菜单id", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.GetById" - } - } - ], - "responses": { - "200": { - "description": "删除菜单", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/menu/getBaseMenuById": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Menu" - ], - "summary": "根据id获取菜单", - "parameters": [ - { - "description": "菜单id", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.GetById" - } - } - ], - "responses": { - "200": { - "description": "根据id获取菜单,返回包括系统菜单列表", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysBaseMenuResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/menu/getBaseMenuTree": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "AuthorityMenu" - ], - "summary": "获取用户动态路由", - "parameters": [ - { - "description": "空", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.Empty" - } - } - ], - "responses": { - "200": { - "description": "获取用户动态路由,返回包括系统菜单列表", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysBaseMenusResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/menu/getMenu": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "AuthorityMenu" - ], - "summary": "获取用户动态路由", - "parameters": [ - { - "description": "空", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.Empty" - } - } - ], - "responses": { - "200": { - "description": "获取用户动态路由,返回包括系统菜单详情列表", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysMenusResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/menu/getMenuAuthority": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "AuthorityMenu" - ], - "summary": "获取指定角色menu", - "parameters": [ - { - "description": "角色ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.GetAuthorityId" - } - } - ], - "responses": { - "200": { - "description": "获取指定角色menu", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/menu/getMenuList": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Menu" - ], - "summary": "分页获取基础menu列表", - "parameters": [ - { - "description": "页码, 每页大小", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.PageInfo" - } - } - ], - "responses": { - "200": { - "description": "分页获取基础menu列表,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/menu/updateBaseMenu": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "Menu" - ], - "summary": "更新菜单", - "parameters": [ - { - "description": "路由path, 父菜单ID, 路由name, 对应前端文件路径, 排序标记", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysBaseMenu" - } - } - ], - "responses": { - "200": { - "description": "更新菜单", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionary/createSysDictionary": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionary" - ], - "summary": "创建SysDictionary", - "parameters": [ - { - "description": "SysDictionary模型", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysDictionary" - } - } - ], - "responses": { - "200": { - "description": "创建SysDictionary", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionary/deleteSysDictionary": { - "delete": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionary" - ], - "summary": "删除SysDictionary", - "parameters": [ - { - "description": "SysDictionary模型", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysDictionary" - } - } - ], - "responses": { - "200": { - "description": "删除SysDictionary", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionary/findSysDictionary": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionary" - ], - "summary": "用id查询SysDictionary", - "parameters": [ - { - "type": "string", - "description": "创建时间", - "name": "createdAt", - "in": "query" - }, - { - "type": "string", - "description": "描述", - "name": "desc", - "in": "query" - }, - { - "type": "integer", - "description": "主键ID", - "name": "id", - "in": "query" - }, - { - "type": "string", - "description": "字典名(中)", - "name": "name", - "in": "query" - }, - { - "type": "boolean", - "description": "状态", - "name": "status", - "in": "query" - }, - { - "type": "string", - "description": "字典名(英)", - "name": "type", - "in": "query" - }, - { - "type": "string", - "description": "更新时间", - "name": "updatedAt", - "in": "query" - } - ], - "responses": { - "200": { - "description": "用id查询SysDictionary", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionary/getSysDictionaryList": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionary" - ], - "summary": "分页获取SysDictionary列表", - "parameters": [ - { - "type": "string", - "description": "创建时间", - "name": "createdAt", - "in": "query" - }, - { - "type": "string", - "description": "描述", - "name": "desc", - "in": "query" - }, - { - "type": "integer", - "description": "主键ID", - "name": "id", - "in": "query" - }, - { - "type": "string", - "description": "关键字", - "name": "keyword", - "in": "query" - }, - { - "type": "string", - "description": "字典名(中)", - "name": "name", - "in": "query" - }, - { - "type": "integer", - "description": "页码", - "name": "page", - "in": "query" - }, - { - "type": "integer", - "description": "每页大小", - "name": "pageSize", - "in": "query" - }, - { - "type": "boolean", - "description": "状态", - "name": "status", - "in": "query" - }, - { - "type": "string", - "description": "字典名(英)", - "name": "type", - "in": "query" - }, - { - "type": "string", - "description": "更新时间", - "name": "updatedAt", - "in": "query" - } - ], - "responses": { - "200": { - "description": "分页获取SysDictionary列表,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionary/updateSysDictionary": { - "put": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionary" - ], - "summary": "更新SysDictionary", - "parameters": [ - { - "description": "SysDictionary模型", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysDictionary" - } - } - ], - "responses": { - "200": { - "description": "更新SysDictionary", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionaryDetail/createSysDictionaryDetail": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionaryDetail" - ], - "summary": "创建SysDictionaryDetail", - "parameters": [ - { - "description": "SysDictionaryDetail模型", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysDictionaryDetail" - } - } - ], - "responses": { - "200": { - "description": "创建SysDictionaryDetail", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionaryDetail/deleteSysDictionaryDetail": { - "delete": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionaryDetail" - ], - "summary": "删除SysDictionaryDetail", - "parameters": [ - { - "description": "SysDictionaryDetail模型", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysDictionaryDetail" - } - } - ], - "responses": { - "200": { - "description": "删除SysDictionaryDetail", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionaryDetail/findSysDictionaryDetail": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionaryDetail" - ], - "summary": "用id查询SysDictionaryDetail", - "parameters": [ - { - "type": "string", - "description": "创建时间", - "name": "createdAt", - "in": "query" - }, - { - "type": "integer", - "description": "主键ID", - "name": "id", - "in": "query" - }, - { - "type": "string", - "description": "展示值", - "name": "label", - "in": "query" - }, - { - "type": "integer", - "description": "排序标记", - "name": "sort", - "in": "query" - }, - { - "type": "boolean", - "description": "启用状态", - "name": "status", - "in": "query" - }, - { - "type": "integer", - "description": "关联标记", - "name": "sysDictionaryID", - "in": "query" - }, - { - "type": "string", - "description": "更新时间", - "name": "updatedAt", - "in": "query" - }, - { - "type": "integer", - "description": "字典值", - "name": "value", - "in": "query" - } - ], - "responses": { - "200": { - "description": "用id查询SysDictionaryDetail", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionaryDetail/getSysDictionaryDetailList": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionaryDetail" - ], - "summary": "分页获取SysDictionaryDetail列表", - "parameters": [ - { - "type": "string", - "description": "创建时间", - "name": "createdAt", - "in": "query" - }, - { - "type": "integer", - "description": "主键ID", - "name": "id", - "in": "query" - }, - { - "type": "string", - "description": "关键字", - "name": "keyword", - "in": "query" - }, - { - "type": "string", - "description": "展示值", - "name": "label", - "in": "query" - }, - { - "type": "integer", - "description": "页码", - "name": "page", - "in": "query" - }, - { - "type": "integer", - "description": "每页大小", - "name": "pageSize", - "in": "query" - }, - { - "type": "integer", - "description": "排序标记", - "name": "sort", - "in": "query" - }, - { - "type": "boolean", - "description": "启用状态", - "name": "status", - "in": "query" - }, - { - "type": "integer", - "description": "关联标记", - "name": "sysDictionaryID", - "in": "query" - }, - { - "type": "string", - "description": "更新时间", - "name": "updatedAt", - "in": "query" - }, - { - "type": "integer", - "description": "字典值", - "name": "value", - "in": "query" - } - ], - "responses": { - "200": { - "description": "分页获取SysDictionaryDetail列表,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysDictionaryDetail/updateSysDictionaryDetail": { - "put": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysDictionaryDetail" - ], - "summary": "更新SysDictionaryDetail", - "parameters": [ - { - "description": "更新SysDictionaryDetail", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysDictionaryDetail" - } - } - ], - "responses": { - "200": { - "description": "更新SysDictionaryDetail", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysOperationRecord/createSysOperationRecord": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysOperationRecord" - ], - "summary": "创建SysOperationRecord", - "parameters": [ - { - "description": "创建SysOperationRecord", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysOperationRecord" - } - } - ], - "responses": { - "200": { - "description": "创建SysOperationRecord", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysOperationRecord/deleteSysOperationRecord": { - "delete": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysOperationRecord" - ], - "summary": "删除SysOperationRecord", - "parameters": [ - { - "description": "SysOperationRecord模型", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysOperationRecord" - } - } - ], - "responses": { - "200": { - "description": "删除SysOperationRecord", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysOperationRecord/deleteSysOperationRecordByIds": { - "delete": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysOperationRecord" - ], - "summary": "批量删除SysOperationRecord", - "parameters": [ - { - "description": "批量删除SysOperationRecord", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.IdsReq" - } - } - ], - "responses": { - "200": { - "description": "批量删除SysOperationRecord", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysOperationRecord/findSysOperationRecord": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysOperationRecord" - ], - "summary": "用id查询SysOperationRecord", - "parameters": [ - { - "type": "string", - "description": "代理", - "name": "agent", - "in": "query" - }, - { - "type": "string", - "description": "请求Body", - "name": "body", - "in": "query" - }, - { - "type": "string", - "description": "创建时间", - "name": "createdAt", - "in": "query" - }, - { - "type": "string", - "description": "错误信息", - "name": "error_message", - "in": "query" - }, - { - "type": "integer", - "description": "主键ID", - "name": "id", - "in": "query" - }, - { - "type": "string", - "description": "请求ip", - "name": "ip", - "in": "query" - }, - { - "type": "string", - "description": "延迟", - "name": "latency", - "in": "query" - }, - { - "type": "string", - "description": "请求方法", - "name": "method", - "in": "query" - }, - { - "type": "string", - "description": "请求路径", - "name": "path", - "in": "query" - }, - { - "type": "string", - "description": "响应Body", - "name": "resp", - "in": "query" - }, - { - "type": "integer", - "description": "请求状态", - "name": "status", - "in": "query" - }, - { - "type": "string", - "description": "更新时间", - "name": "updatedAt", - "in": "query" - }, - { - "type": "integer", - "description": "用户id", - "name": "user_id", - "in": "query" - } - ], - "responses": { - "200": { - "description": "用id查询SysOperationRecord", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/sysOperationRecord/getSysOperationRecordList": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysOperationRecord" - ], - "summary": "分页获取SysOperationRecord列表", - "parameters": [ - { - "type": "string", - "description": "代理", - "name": "agent", - "in": "query" - }, - { - "type": "string", - "description": "请求Body", - "name": "body", - "in": "query" - }, - { - "type": "string", - "description": "创建时间", - "name": "createdAt", - "in": "query" - }, - { - "type": "string", - "description": "错误信息", - "name": "error_message", - "in": "query" - }, - { - "type": "integer", - "description": "主键ID", - "name": "id", - "in": "query" - }, - { - "type": "string", - "description": "请求ip", - "name": "ip", - "in": "query" - }, - { - "type": "string", - "description": "关键字", - "name": "keyword", - "in": "query" - }, - { - "type": "string", - "description": "延迟", - "name": "latency", - "in": "query" - }, - { - "type": "string", - "description": "请求方法", - "name": "method", - "in": "query" - }, - { - "type": "integer", - "description": "页码", - "name": "page", - "in": "query" - }, - { - "type": "integer", - "description": "每页大小", - "name": "pageSize", - "in": "query" - }, - { - "type": "string", - "description": "请求路径", - "name": "path", - "in": "query" - }, - { - "type": "string", - "description": "响应Body", - "name": "resp", - "in": "query" - }, - { - "type": "integer", - "description": "请求状态", - "name": "status", - "in": "query" - }, - { - "type": "string", - "description": "更新时间", - "name": "updatedAt", - "in": "query" - }, - { - "type": "integer", - "description": "用户id", - "name": "user_id", - "in": "query" - } - ], - "responses": { - "200": { - "description": "分页获取SysOperationRecord列表,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/system/getServerInfo": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "System" - ], - "summary": "获取服务器信息", - "responses": { - "200": { - "description": "获取服务器信息", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/system/getSystemConfig": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "System" - ], - "summary": "获取配置文件内容", - "responses": { - "200": { - "description": "获取配置文件内容,返回包括系统配置", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysConfigResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/system/reloadSystem": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "System" - ], - "summary": "重启系统", - "responses": { - "200": { - "description": "重启系统", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/system/setSystemConfig": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "System" - ], - "summary": "设置配置文件内容", - "parameters": [ - { - "description": "设置配置文件内容", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.System" - } - } - ], - "responses": { - "200": { - "description": "设置配置文件内容", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/SetSelfInfo": { - "put": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "设置用户信息", - "parameters": [ - { - "description": "ID, 用户名, 昵称, 头像链接", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysUser" - } - } - ], - "responses": { - "200": { - "description": "设置用户信息", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/admin_register": { - "post": { - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "用户注册账号", - "parameters": [ - { - "description": "用户名, 昵称, 密码, 角色ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.Register" - } - } - ], - "responses": { - "200": { - "description": "用户注册账号,返回包括用户信息", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.SysUserResponse" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/changePassword": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "用户修改密码", - "parameters": [ - { - "description": "用户名, 原密码, 新密码", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.ChangePasswordReq" - } - } - ], - "responses": { - "200": { - "description": "用户修改密码", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/deleteUser": { - "delete": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "删除用户", - "parameters": [ - { - "description": "用户ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.GetById" - } - } - ], - "responses": { - "200": { - "description": "删除用户", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/getUserInfo": { - "get": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "获取用户信息", - "responses": { - "200": { - "description": "获取用户信息", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/getUserList": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "分页获取用户列表", - "parameters": [ - { - "description": "页码, 每页大小", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.PageInfo" - } - } - ], - "responses": { - "200": { - "description": "分页获取用户列表,返回包括列表,总数,页码,每页数量", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "$ref": "#/definitions/response.PageResult" - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/resetPassword": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "重置用户密码", - "parameters": [ - { - "description": "ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysUser" - } - } - ], - "responses": { - "200": { - "description": "重置用户密码", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/setUserAuthorities": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "设置用户权限", - "parameters": [ - { - "description": "用户UUID, 角色ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.SetUserAuthorities" - } - } - ], - "responses": { - "200": { - "description": "设置用户权限", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/setUserAuthority": { - "post": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "更改用户权限", - "parameters": [ - { - "description": "用户UUID, 角色ID", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/request.SetUserAuth" - } - } - ], - "responses": { - "200": { - "description": "设置用户权限", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - }, - "/user/setUserInfo": { - "put": { - "security": [ - { - "ApiKeyAuth": [] - } - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "tags": [ - "SysUser" - ], - "summary": "设置用户信息", - "parameters": [ - { - "description": "ID, 用户名, 昵称, 头像链接", - "name": "data", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/system.SysUser" - } - } - ], - "responses": { - "200": { - "description": "设置用户信息", - "schema": { - "allOf": [ - { - "$ref": "#/definitions/response.Response" - }, - { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": true - }, - "msg": { - "type": "string" - } - } - } - ] - } - } - } - } - } - }, - "definitions": { - "config.AliyunOSS": { - "type": "object", - "properties": { - "access-key-id": { - "type": "string" - }, - "access-key-secret": { - "type": "string" - }, - "base-path": { - "type": "string" - }, - "bucket-name": { - "type": "string" - }, - "bucket-url": { - "type": "string" - }, - "endpoint": { - "type": "string" - } - } - }, - "config.Autocode": { - "type": "object", - "properties": { - "root": { - "type": "string" - }, - "server": { - "type": "string" - }, - "server-api": { - "type": "string" - }, - "server-initialize": { - "type": "string" - }, - "server-model": { - "type": "string" - }, - "server-plug": { - "type": "string" - }, - "server-request": { - "type": "string" - }, - "server-router": { - "type": "string" - }, - "server-service": { - "type": "string" - }, - "transfer-restart": { - "type": "boolean" - }, - "web": { - "type": "string" - }, - "web-api": { - "type": "string" - }, - "web-form": { - "type": "string" - }, - "web-table": { - "type": "string" - } - } - }, - "config.AwsS3": { - "type": "object", - "properties": { - "base-url": { - "type": "string" - }, - "bucket": { - "type": "string" - }, - "disable-ssl": { - "type": "boolean" - }, - "endpoint": { - "type": "string" - }, - "path-prefix": { - "type": "string" - }, - "region": { - "type": "string" - }, - "s3-force-path-style": { - "type": "boolean" - }, - "secret-id": { - "type": "string" - }, - "secret-key": { - "type": "string" - } - } - }, - "config.CORS": { - "type": "object", - "properties": { - "mode": { - "type": "string" - }, - "whitelist": { - "type": "array", - "items": { - "$ref": "#/definitions/config.CORSWhitelist" - } - } - } - }, - "config.CORSWhitelist": { - "type": "object", - "properties": { - "allow-credentials": { - "type": "boolean" - }, - "allow-headers": { - "type": "string" - }, - "allow-methods": { - "type": "string" - }, - "allow-origin": { - "type": "string" - }, - "expose-headers": { - "type": "string" - } - } - }, - "config.Captcha": { - "type": "object", - "properties": { - "img-height": { - "description": "验证码高度", - "type": "integer" - }, - "img-width": { - "description": "验证码宽度", - "type": "integer" - }, - "key-long": { - "description": "验证码长度", - "type": "integer" - } - } - }, - "config.Detail": { - "type": "object", - "properties": { - "compareField": { - "description": "需要比较时间的字段", - "type": "string" - }, - "interval": { - "description": "时间间隔", - "type": "string" - }, - "tableName": { - "description": "需要清理的表名", - "type": "string" - } - } - }, - "config.Email": { - "type": "object", - "properties": { - "from": { - "description": "收件人", - "type": "string" - }, - "host": { - "description": "服务器地址", - "type": "string" - }, - "is-ssl": { - "description": "是否SSL", - "type": "boolean" - }, - "nickname": { - "description": "昵称", - "type": "string" - }, - "port": { - "description": "端口", - "type": "integer" - }, - "secret": { - "description": "密钥", - "type": "string" - }, - "to": { - "description": "收件人:多个以英文逗号分隔", - "type": "string" - } - } - }, - "config.Excel": { - "type": "object", - "properties": { - "dir": { - "type": "string" - } - } - }, - "config.HuaWeiObs": { - "type": "object", - "properties": { - "access-key": { - "type": "string" - }, - "bucket": { - "type": "string" - }, - "endpoint": { - "type": "string" - }, - "path": { - "type": "string" - }, - "secret-key": { - "type": "string" - } - } - }, - "config.JWT": { - "type": "object", - "properties": { - "buffer-time": { - "description": "缓冲时间", - "type": "string" - }, - "expires-time": { - "description": "过期时间", - "type": "string" - }, - "issuer": { - "description": "签发者", - "type": "string" - }, - "signing-key": { - "description": "jwt签名", - "type": "string" - } - } - }, - "config.Local": { - "type": "object", - "properties": { - "path": { - "description": "本地文件访问路径", - "type": "string" - }, - "store-path": { - "description": "本地文件存储路径", - "type": "string" - } - } - }, - "config.Mysql": { - "type": "object", - "properties": { - "config": { - "description": "高级配置", - "type": "string" - }, - "db-name": { - "description": "数据库名", - "type": "string" - }, - "log-mode": { - "description": "是否开启Gorm全局日志", - "type": "string" - }, - "log-zap": { - "description": "是否通过zap写入日志文件", - "type": "boolean" - }, - "max-idle-conns": { - "description": "空闲中的最大连接数", - "type": "integer" - }, - "max-open-conns": { - "description": "打开到数据库的最大连接数", - "type": "integer" - }, - "password": { - "description": "数据库密码", - "type": "string" - }, - "path": { - "description": "服务器地址:端口", - "type": "string" - }, - "port": { - "description": ":端口", - "type": "string" - }, - "username": { - "description": "数据库用户名", - "type": "string" - } - } - }, - "config.Pgsql": { - "type": "object", - "properties": { - "config": { - "description": "高级配置", - "type": "string" - }, - "db-name": { - "description": "数据库名", - "type": "string" - }, - "log-mode": { - "description": "是否开启Gorm全局日志", - "type": "string" - }, - "log-zap": { - "description": "是否通过zap写入日志文件", - "type": "boolean" - }, - "max-idle-conns": { - "description": "空闲中的最大连接数", - "type": "integer" - }, - "max-open-conns": { - "description": "打开到数据库的最大连接数", - "type": "integer" - }, - "password": { - "description": "数据库密码", - "type": "string" - }, - "path": { - "description": "服务器地址:端口", - "type": "string" - }, - "port": { - "description": ":端口", - "type": "string" - }, - "username": { - "description": "数据库用户名", - "type": "string" - } - } - }, - "config.Qiniu": { - "type": "object", - "properties": { - "access-key": { - "description": "秘钥AK", - "type": "string" - }, - "bucket": { - "description": "空间名称", - "type": "string" - }, - "img-path": { - "description": "CDN加速域名", - "type": "string" - }, - "secret-key": { - "description": "秘钥SK", - "type": "string" - }, - "use-cdn-domains": { - "description": "上传是否使用CDN上传加速", - "type": "boolean" - }, - "use-https": { - "description": "是否使用https", - "type": "boolean" - }, - "zone": { - "description": "存储区域", - "type": "string" - } - } - }, - "config.Redis": { - "type": "object", - "properties": { - "addr": { - "description": "服务器地址:端口", - "type": "string" - }, - "db": { - "description": "redis的哪个数据库", - "type": "integer" - }, - "password": { - "description": "密码", - "type": "string" - } - } - }, - "config.Server": { - "type": "object", - "properties": { - "aliyun-oss": { - "$ref": "#/definitions/config.AliyunOSS" - }, - "autocode": { - "description": "auto", - "$ref": "#/definitions/config.Autocode" - }, - "aws-s3": { - "$ref": "#/definitions/config.AwsS3" - }, - "captcha": { - "$ref": "#/definitions/config.Captcha" - }, - "cors": { - "description": "跨域配置", - "$ref": "#/definitions/config.CORS" - }, - "db-list": { - "type": "array", - "items": { - "$ref": "#/definitions/config.SpecializedDB" - } - }, - "email": { - "$ref": "#/definitions/config.Email" - }, - "excel": { - "$ref": "#/definitions/config.Excel" - }, - "hua-wei-obs": { - "$ref": "#/definitions/config.HuaWeiObs" - }, - "jwt": { - "$ref": "#/definitions/config.JWT" - }, - "local": { - "description": "oss", - "$ref": "#/definitions/config.Local" - }, - "mysql": { - "description": "gorm", - "$ref": "#/definitions/config.Mysql" - }, - "pgsql": { - "$ref": "#/definitions/config.Pgsql" - }, - "qiniu": { - "$ref": "#/definitions/config.Qiniu" - }, - "redis": { - "$ref": "#/definitions/config.Redis" - }, - "system": { - "$ref": "#/definitions/config.System" - }, - "tencent-cos": { - "$ref": "#/definitions/config.TencentCOS" - }, - "timer": { - "$ref": "#/definitions/config.Timer" - }, - "zap": { - "$ref": "#/definitions/config.Zap" - } - } - }, - "config.SpecializedDB": { - "type": "object", - "properties": { - "alias-name": { - "type": "string" - }, - "config": { - "description": "高级配置", - "type": "string" - }, - "db-name": { - "description": "数据库名", - "type": "string" - }, - "disable": { - "type": "boolean" - }, - "log-mode": { - "description": "是否开启Gorm全局日志", - "type": "string" - }, - "log-zap": { - "description": "是否通过zap写入日志文件", - "type": "boolean" - }, - "max-idle-conns": { - "description": "空闲中的最大连接数", - "type": "integer" - }, - "max-open-conns": { - "description": "打开到数据库的最大连接数", - "type": "integer" - }, - "password": { - "description": "数据库密码", - "type": "string" - }, - "path": { - "description": "服务器地址:端口", - "type": "string" - }, - "port": { - "description": ":端口", - "type": "string" - }, - "type": { - "type": "string" - }, - "username": { - "description": "数据库用户名", - "type": "string" - } - } - }, - "config.System": { - "type": "object", - "properties": { - "addr": { - "description": "端口值", - "type": "integer" - }, - "db-type": { - "description": "数据库类型:mysql(默认)|sqlite|sqlserver|postgresql", - "type": "string" - }, - "env": { - "description": "环境值", - "type": "string" - }, - "iplimit-count": { - "type": "integer" - }, - "iplimit-time": { - "type": "integer" - }, - "oss-type": { - "description": "Oss类型", - "type": "string" - }, - "use-multipoint": { - "description": "多点登录拦截", - "type": "boolean" - }, - "use-redis": { - "description": "使用redis", - "type": "boolean" - } - } - }, - "config.TencentCOS": { - "type": "object", - "properties": { - "base-url": { - "type": "string" - }, - "bucket": { - "type": "string" - }, - "path-prefix": { - "type": "string" - }, - "region": { - "type": "string" - }, - "secret-id": { - "type": "string" - }, - "secret-key": { - "type": "string" - } - } - }, - "config.Timer": { - "type": "object", - "properties": { - "detail": { - "type": "array", - "items": { - "$ref": "#/definitions/config.Detail" - } - }, - "spec": { - "description": "CRON表达式", - "type": "string" - }, - "start": { - "description": "是否启用", - "type": "boolean" - }, - "with_seconds": { - "description": "是否精确到秒", - "type": "boolean" - } - } - }, - "config.Zap": { - "type": "object", - "properties": { - "director": { - "description": "日志文件夹", - "type": "string" - }, - "encode-level": { - "description": "编码级", - "type": "string" - }, - "format": { - "description": "输出", - "type": "string" - }, - "level": { - "description": "级别", - "type": "string" - }, - "log-in-console": { - "description": "输出控制台", - "type": "boolean" - }, - "max-age": { - "description": "日志留存时间", - "type": "integer" - }, - "prefix": { - "description": "日志前缀", - "type": "string" - }, - "show-line": { - "description": "显示行", - "type": "boolean" - }, - "stacktrace-key": { - "description": "栈名", - "type": "string" - } - } - }, - "example.ExaCustomer": { - "type": "object", - "properties": { - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "customerName": { - "description": "客户名", - "type": "string" - }, - "customerPhoneData": { - "description": "客户手机号", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "sysUser": { - "description": "管理详情", - "$ref": "#/definitions/system.SysUser" - }, - "sysUserAuthorityID": { - "description": "管理角色ID", - "type": "integer" - }, - "sysUserId": { - "description": "管理ID", - "type": "integer" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "example.ExaFile": { - "type": "object", - "properties": { - "chunkTotal": { - "type": "integer" - }, - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "exaFileChunk": { - "type": "array", - "items": { - "$ref": "#/definitions/example.ExaFileChunk" - } - }, - "fileMd5": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "filePath": { - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "isFinish": { - "type": "boolean" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "example.ExaFileChunk": { - "type": "object", - "properties": { - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "exaFileID": { - "type": "integer" - }, - "fileChunkNumber": { - "type": "integer" - }, - "fileChunkPath": { - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "example.ExaFileUploadAndDownload": { - "type": "object", - "properties": { - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "key": { - "description": "编号", - "type": "string" - }, - "name": { - "description": "文件名", - "type": "string" - }, - "tag": { - "description": "文件标签", - "type": "string" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - }, - "url": { - "description": "文件地址", - "type": "string" - } - } - }, - "example.ExcelInfo": { - "type": "object", - "properties": { - "fileName": { - "description": "文件名", - "type": "string" - }, - "infoList": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysBaseMenu" - } - } - } - }, - "request.AddMenuAuthorityInfo": { - "type": "object", - "properties": { - "authorityId": { - "description": "角色ID", - "type": "integer" - }, - "menus": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysBaseMenu" - } - } - } - }, - "request.CasbinInReceive": { - "type": "object", - "properties": { - "authorityId": { - "description": "权限id", - "type": "integer" - }, - "casbinInfos": { - "type": "array", - "items": { - "$ref": "#/definitions/request.CasbinInfo" - } - } - } - }, - "request.CasbinInfo": { - "type": "object", - "properties": { - "method": { - "description": "方法", - "type": "string" - }, - "path": { - "description": "路径", - "type": "string" - } - } - }, - "request.ChangePasswordReq": { - "type": "object", - "properties": { - "newPassword": { - "description": "新密码", - "type": "string" - }, - "password": { - "description": "密码", - "type": "string" - } - } - }, - "request.Empty": { - "type": "object" - }, - "request.GetAuthorityId": { - "type": "object", - "properties": { - "authorityId": { - "description": "角色ID", - "type": "integer" - } - } - }, - "request.GetById": { - "type": "object", - "properties": { - "id": { - "description": "主键ID", - "type": "integer" - } - } - }, - "request.IdsReq": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "type": "integer" - } - } - } - }, - "request.InitDB": { - "type": "object", - "required": [ - "dbName", - "userName" - ], - "properties": { - "dbName": { - "description": "数据库名", - "type": "string" - }, - "dbType": { - "description": "数据库类型", - "type": "string" - }, - "host": { - "description": "服务器地址", - "type": "string" - }, - "password": { - "description": "数据库密码", - "type": "string" - }, - "port": { - "description": "数据库连接端口", - "type": "string" - }, - "userName": { - "description": "数据库用户名", - "type": "string" - } - } - }, - "request.Login": { - "type": "object", - "properties": { - "captcha": { - "description": "验证码", - "type": "string" - }, - "captchaId": { - "description": "验证码ID", - "type": "string" - }, - "password": { - "description": "密码", - "type": "string" - }, - "username": { - "description": "用户名", - "type": "string" - } - } - }, - "request.PageInfo": { - "type": "object", - "properties": { - "keyword": { - "description": "关键字", - "type": "string" - }, - "page": { - "description": "页码", - "type": "integer" - }, - "pageSize": { - "description": "每页大小", - "type": "integer" - } - } - }, - "request.Register": { - "type": "object", - "properties": { - "authorityId": { - "type": "integer" - }, - "authorityIds": { - "type": "array", - "items": { - "type": "integer" - } - }, - "enable": { - "type": "integer" - }, - "headerImg": { - "type": "string" - }, - "nickName": { - "type": "string" - }, - "passWord": { - "type": "string" - }, - "userName": { - "type": "string" - } - } - }, - "request.RollBack": { - "type": "object", - "properties": { - "deleteTable": { - "description": "是否删除表", - "type": "boolean" - }, - "id": { - "description": "主键ID", - "type": "integer" - } - } - }, - "request.SearchApiParams": { - "type": "object", - "properties": { - "apiGroup": { - "description": "api组", - "type": "string" - }, - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "desc": { - "description": "排序方式:升序false(默认)|降序true", - "type": "boolean" - }, - "description": { - "description": "api中文描述", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "keyword": { - "description": "关键字", - "type": "string" - }, - "method": { - "description": "方法:创建POST(默认)|查看GET|更新PUT|删除DELETE", - "type": "string" - }, - "orderKey": { - "description": "排序", - "type": "string" - }, - "page": { - "description": "页码", - "type": "integer" - }, - "pageSize": { - "description": "每页大小", - "type": "integer" - }, - "path": { - "description": "api路径", - "type": "string" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "request.SetUserAuth": { - "type": "object", - "properties": { - "authorityId": { - "description": "角色ID", - "type": "integer" - } - } - }, - "request.SetUserAuthorities": { - "type": "object", - "properties": { - "authorityIds": { - "description": "角色ID", - "type": "array", - "items": { - "type": "integer" - } - }, - "id": { - "type": "integer" - } - } - }, - "request.SysAuthorityBtnReq": { - "type": "object", - "properties": { - "authorityId": { - "type": "integer" - }, - "menuID": { - "type": "integer" - }, - "selected": { - "type": "array", - "items": { - "type": "integer" - } - } - } - }, - "request.SysAutoHistory": { - "type": "object", - "properties": { - "keyword": { - "description": "关键字", - "type": "string" - }, - "page": { - "description": "页码", - "type": "integer" - }, - "pageSize": { - "description": "每页大小", - "type": "integer" - } - } - }, - "response.Email": { - "type": "object", - "properties": { - "body": { - "description": "邮件内容", - "type": "string" - }, - "subject": { - "description": "邮件标题", - "type": "string" - }, - "to": { - "description": "邮件发送给谁", - "type": "string" - } - } - }, - "response.ExaCustomerResponse": { - "type": "object", - "properties": { - "customer": { - "$ref": "#/definitions/example.ExaCustomer" - } - } - }, - "response.ExaFileResponse": { - "type": "object", - "properties": { - "file": { - "$ref": "#/definitions/example.ExaFileUploadAndDownload" - } - } - }, - "response.FilePathResponse": { - "type": "object", - "properties": { - "filePath": { - "type": "string" - } - } - }, - "response.FileResponse": { - "type": "object", - "properties": { - "file": { - "$ref": "#/definitions/example.ExaFile" - } - } - }, - "response.LoginResponse": { - "type": "object", - "properties": { - "expiresAt": { - "type": "integer" - }, - "token": { - "type": "string" - }, - "user": { - "$ref": "#/definitions/system.SysUser" - } - } - }, - "response.PageResult": { - "type": "object", - "properties": { - "list": { - "type": "object" - }, - "page": { - "type": "integer" - }, - "pageSize": { - "type": "integer" - }, - "total": { - "type": "integer" - } - } - }, - "response.PolicyPathResponse": { - "type": "object", - "properties": { - "paths": { - "type": "array", - "items": { - "$ref": "#/definitions/request.CasbinInfo" - } - } - } - }, - "response.Response": { - "type": "object", - "properties": { - "code": { - "type": "integer" - }, - "data": { - "type": "object" - }, - "msg": { - "type": "string" - } - } - }, - "response.SysAPIListResponse": { - "type": "object", - "properties": { - "apis": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysApi" - } - } - } - }, - "response.SysAPIResponse": { - "type": "object", - "properties": { - "api": { - "$ref": "#/definitions/system.SysApi" - } - } - }, - "response.SysAuthorityBtnRes": { - "type": "object", - "properties": { - "selected": { - "type": "array", - "items": { - "type": "integer" - } - } - } - }, - "response.SysAuthorityCopyResponse": { - "type": "object", - "properties": { - "authority": { - "$ref": "#/definitions/system.SysAuthority" - }, - "oldAuthorityId": { - "description": "旧角色ID", - "type": "integer" - } - } - }, - "response.SysAuthorityResponse": { - "type": "object", - "properties": { - "authority": { - "$ref": "#/definitions/system.SysAuthority" - } - } - }, - "response.SysBaseMenuResponse": { - "type": "object", - "properties": { - "menu": { - "$ref": "#/definitions/system.SysBaseMenu" - } - } - }, - "response.SysBaseMenusResponse": { - "type": "object", - "properties": { - "menus": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysBaseMenu" - } - } - } - }, - "response.SysCaptchaResponse": { - "type": "object", - "properties": { - "captchaId": { - "type": "string" - }, - "captchaLength": { - "type": "integer" - }, - "picPath": { - "type": "string" - } - } - }, - "response.SysConfigResponse": { - "type": "object", - "properties": { - "config": { - "$ref": "#/definitions/config.Server" - } - } - }, - "response.SysMenusResponse": { - "type": "object", - "properties": { - "menus": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysMenu" - } - } - } - }, - "response.SysUserResponse": { - "type": "object", - "properties": { - "user": { - "$ref": "#/definitions/system.SysUser" - } - } - }, - "system.AutoCodeStruct": { - "type": "object", - "properties": { - "abbreviation": { - "description": "Struct简称", - "type": "string" - }, - "autoCreateApiToSql": { - "description": "是否自动创建api", - "type": "boolean" - }, - "autoCreateResource": { - "description": "是否自动创建资源标识", - "type": "boolean" - }, - "autoMoveFile": { - "description": "是否自动移动文件", - "type": "boolean" - }, - "description": { - "description": "Struct中文名称", - "type": "string" - }, - "fields": { - "type": "array", - "items": { - "$ref": "#/definitions/system.Field" - } - }, - "hasTimer": { - "type": "boolean" - }, - "humpPackageName": { - "description": "go文件名称", - "type": "string" - }, - "package": { - "type": "string" - }, - "packageName": { - "description": "文件名称", - "type": "string" - }, - "structName": { - "description": "Struct名称", - "type": "string" - }, - "tableName": { - "description": "表名", - "type": "string" - } - } - }, - "system.Field": { - "type": "object", - "properties": { - "clearable": { - "description": "是否可清空", - "type": "boolean" - }, - "columnName": { - "description": "数据库字段", - "type": "string" - }, - "comment": { - "description": "数据库字段描述", - "type": "string" - }, - "dataTypeLong": { - "description": "数据库字段长度", - "type": "string" - }, - "dictType": { - "description": "字典", - "type": "string" - }, - "errorText": { - "description": "校验失败文字", - "type": "string" - }, - "fieldDesc": { - "description": "中文名", - "type": "string" - }, - "fieldJson": { - "description": "FieldJson", - "type": "string" - }, - "fieldName": { - "description": "Field名", - "type": "string" - }, - "fieldSearchType": { - "description": "搜索条件", - "type": "string" - }, - "fieldType": { - "description": "Field数据类型", - "type": "string" - }, - "require": { - "description": "是否必填", - "type": "boolean" - } - } - }, - "system.SysApi": { - "type": "object", - "properties": { - "apiGroup": { - "description": "api组", - "type": "string" - }, - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "description": { - "description": "api中文描述", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "method": { - "description": "方法:创建POST(默认)|查看GET|更新PUT|删除DELETE", - "type": "string" - }, - "path": { - "description": "api路径", - "type": "string" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "system.SysAuthority": { - "type": "object", - "properties": { - "authorityId": { - "description": "角色ID", - "type": "integer" - }, - "authorityName": { - "description": "角色名", - "type": "string" - }, - "children": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysAuthority" - } - }, - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "dataAuthorityId": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysAuthority" - } - }, - "defaultRouter": { - "description": "默认菜单(默认dashboard)", - "type": "string" - }, - "deletedAt": { - "type": "string" - }, - "menus": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysBaseMenu" - } - }, - "parentId": { - "description": "父角色ID", - "type": "integer" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "system.SysAutoCode": { - "type": "object", - "properties": { - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "desc": { - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "label": { - "type": "string" - }, - "packageName": { - "type": "string" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "system.SysBaseMenu": { - "type": "object", - "properties": { - "authoritys": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysAuthority" - } - }, - "children": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysBaseMenu" - } - }, - "closeTab": { - "description": "自动关闭tab", - "type": "boolean" - }, - "component": { - "description": "对应前端文件路径", - "type": "string" - }, - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "defaultMenu": { - "description": "是否是基础路由(开发中)", - "type": "boolean" - }, - "hidden": { - "description": "是否在列表隐藏", - "type": "boolean" - }, - "icon": { - "description": "菜单图标", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "keepAlive": { - "description": "是否缓存", - "type": "boolean" - }, - "menuBtn": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysBaseMenuBtn" - } - }, - "name": { - "description": "路由name", - "type": "string" - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysBaseMenuParameter" - } - }, - "parentId": { - "description": "父菜单ID", - "type": "string" - }, - "path": { - "description": "路由path", - "type": "string" - }, - "sort": { - "description": "排序标记", - "type": "integer" - }, - "title": { - "description": "菜单名", - "type": "string" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "system.SysBaseMenuBtn": { - "type": "object", - "properties": { - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "desc": { - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "name": { - "type": "string" - }, - "sysBaseMenuID": { - "type": "integer" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "system.SysBaseMenuParameter": { - "type": "object", - "properties": { - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "key": { - "description": "地址栏携带参数的key", - "type": "string" - }, - "sysBaseMenuID": { - "type": "integer" - }, - "type": { - "description": "地址栏携带参数为params还是query", - "type": "string" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - }, - "value": { - "description": "地址栏携带参数的值", - "type": "string" - } - } - }, - "system.SysDictionary": { - "type": "object", - "properties": { - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "desc": { - "description": "描述", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "name": { - "description": "字典名(中)", - "type": "string" - }, - "status": { - "description": "状态", - "type": "boolean" - }, - "sysDictionaryDetails": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysDictionaryDetail" - } - }, - "type": { - "description": "字典名(英)", - "type": "string" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "system.SysDictionaryDetail": { - "type": "object", - "properties": { - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "label": { - "description": "展示值", - "type": "string" - }, - "sort": { - "description": "排序标记", - "type": "integer" - }, - "status": { - "description": "启用状态", - "type": "boolean" - }, - "sysDictionaryID": { - "description": "关联标记", - "type": "integer" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - }, - "value": { - "description": "字典值", - "type": "integer" - } - } - }, - "system.SysMenu": { - "type": "object", - "properties": { - "authoritys": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysAuthority" - } - }, - "btns": { - "type": "object", - "additionalProperties": { - "type": "integer" - } - }, - "children": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysMenu" - } - }, - "closeTab": { - "description": "自动关闭tab", - "type": "boolean" - }, - "component": { - "description": "对应前端文件路径", - "type": "string" - }, - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "defaultMenu": { - "description": "是否是基础路由(开发中)", - "type": "boolean" - }, - "hidden": { - "description": "是否在列表隐藏", - "type": "boolean" - }, - "icon": { - "description": "菜单图标", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "keepAlive": { - "description": "是否缓存", - "type": "boolean" - }, - "menuBtn": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysBaseMenuBtn" - } - }, - "menuId": { - "type": "string" - }, - "name": { - "description": "路由name", - "type": "string" - }, - "parameters": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysBaseMenuParameter" - } - }, - "parentId": { - "description": "父菜单ID", - "type": "string" - }, - "path": { - "description": "路由path", - "type": "string" - }, - "sort": { - "description": "排序标记", - "type": "integer" - }, - "title": { - "description": "菜单名", - "type": "string" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - } - } - }, - "system.SysOperationRecord": { - "type": "object", - "properties": { - "agent": { - "description": "代理", - "type": "string" - }, - "body": { - "description": "请求Body", - "type": "string" - }, - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "error_message": { - "description": "错误信息", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "ip": { - "description": "请求ip", - "type": "string" - }, - "latency": { - "description": "延迟", - "type": "string" - }, - "method": { - "description": "请求方法", - "type": "string" - }, - "path": { - "description": "请求路径", - "type": "string" - }, - "resp": { - "description": "响应Body", - "type": "string" - }, - "status": { - "description": "请求状态", - "type": "integer" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - }, - "user": { - "$ref": "#/definitions/system.SysUser" - }, - "user_id": { - "description": "用户id", - "type": "integer" - } - } - }, - "system.SysUser": { - "type": "object", - "properties": { - "activeColor": { - "description": "活跃颜色", - "type": "string" - }, - "authorities": { - "type": "array", - "items": { - "$ref": "#/definitions/system.SysAuthority" - } - }, - "authority": { - "$ref": "#/definitions/system.SysAuthority" - }, - "authorityId": { - "description": "用户角色ID", - "type": "integer" - }, - "baseColor": { - "description": "基础颜色", - "type": "string" - }, - "createdAt": { - "description": "创建时间", - "type": "string" - }, - "email": { - "description": "用户邮箱", - "type": "string" - }, - "enable": { - "description": "用户是否被冻结 1正常 2冻结", - "type": "integer" - }, - "headerImg": { - "description": "用户头像", - "type": "string" - }, - "id": { - "description": "主键ID", - "type": "integer" - }, - "nickName": { - "description": "用户昵称", - "type": "string" - }, - "phone": { - "description": "用户手机号", - "type": "string" - }, - "sideMode": { - "description": "用户侧边主题", - "type": "string" - }, - "updatedAt": { - "description": "更新时间", - "type": "string" - }, - "userName": { - "description": "用户登录名", - "type": "string" - }, - "uuid": { - "description": "用户UUID", - "type": "string" - } - } - }, - "system.System": { - "type": "object", - "properties": { - "config": { - "$ref": "#/definitions/config.Server" - } - } - } - }, - "securityDefinitions": { - "ApiKeyAuth": { - "type": "apiKey", - "name": "x-token", - "in": "header" - } - } -} \ No newline at end of file diff --git a/docs/swagger.yaml b/docs/swagger.yaml deleted file mode 100644 index 08a0a83..0000000 --- a/docs/swagger.yaml +++ /dev/null @@ -1,4120 +0,0 @@ -basePath: / -definitions: - config.AliyunOSS: - properties: - access-key-id: - type: string - access-key-secret: - type: string - base-path: - type: string - bucket-name: - type: string - bucket-url: - type: string - endpoint: - type: string - type: object - config.Autocode: - properties: - root: - type: string - server: - type: string - server-api: - type: string - server-initialize: - type: string - server-model: - type: string - server-plug: - type: string - server-request: - type: string - server-router: - type: string - server-service: - type: string - transfer-restart: - type: boolean - web: - type: string - web-api: - type: string - web-form: - type: string - web-table: - type: string - type: object - config.AwsS3: - properties: - base-url: - type: string - bucket: - type: string - disable-ssl: - type: boolean - endpoint: - type: string - path-prefix: - type: string - region: - type: string - s3-force-path-style: - type: boolean - secret-id: - type: string - secret-key: - type: string - type: object - config.CORS: - properties: - mode: - type: string - whitelist: - items: - $ref: '#/definitions/config.CORSWhitelist' - type: array - type: object - config.CORSWhitelist: - properties: - allow-credentials: - type: boolean - allow-headers: - type: string - allow-methods: - type: string - allow-origin: - type: string - expose-headers: - type: string - type: object - config.Captcha: - properties: - img-height: - description: 验证码高度 - type: integer - img-width: - description: 验证码宽度 - type: integer - key-long: - description: 验证码长度 - type: integer - type: object - config.Detail: - properties: - compareField: - description: 需要比较时间的字段 - type: string - interval: - description: 时间间隔 - type: string - tableName: - description: 需要清理的表名 - type: string - type: object - config.Email: - properties: - from: - description: 收件人 - type: string - host: - description: 服务器地址 - type: string - is-ssl: - description: 是否SSL - type: boolean - nickname: - description: 昵称 - type: string - port: - description: 端口 - type: integer - secret: - description: 密钥 - type: string - to: - description: 收件人:多个以英文逗号分隔 - type: string - type: object - config.Excel: - properties: - dir: - type: string - type: object - config.HuaWeiObs: - properties: - access-key: - type: string - bucket: - type: string - endpoint: - type: string - path: - type: string - secret-key: - type: string - type: object - config.JWT: - properties: - buffer-time: - description: 缓冲时间 - type: string - expires-time: - description: 过期时间 - type: string - issuer: - description: 签发者 - type: string - signing-key: - description: jwt签名 - type: string - type: object - config.Local: - properties: - path: - description: 本地文件访问路径 - type: string - store-path: - description: 本地文件存储路径 - type: string - type: object - config.Mysql: - properties: - config: - description: 高级配置 - type: string - db-name: - description: 数据库名 - type: string - log-mode: - description: 是否开启Gorm全局日志 - type: string - log-zap: - description: 是否通过zap写入日志文件 - type: boolean - max-idle-conns: - description: 空闲中的最大连接数 - type: integer - max-open-conns: - description: 打开到数据库的最大连接数 - type: integer - password: - description: 数据库密码 - type: string - path: - description: 服务器地址:端口 - type: string - port: - description: :端口 - type: string - username: - description: 数据库用户名 - type: string - type: object - config.Pgsql: - properties: - config: - description: 高级配置 - type: string - db-name: - description: 数据库名 - type: string - log-mode: - description: 是否开启Gorm全局日志 - type: string - log-zap: - description: 是否通过zap写入日志文件 - type: boolean - max-idle-conns: - description: 空闲中的最大连接数 - type: integer - max-open-conns: - description: 打开到数据库的最大连接数 - type: integer - password: - description: 数据库密码 - type: string - path: - description: 服务器地址:端口 - type: string - port: - description: :端口 - type: string - username: - description: 数据库用户名 - type: string - type: object - config.Qiniu: - properties: - access-key: - description: 秘钥AK - type: string - bucket: - description: 空间名称 - type: string - img-path: - description: CDN加速域名 - type: string - secret-key: - description: 秘钥SK - type: string - use-cdn-domains: - description: 上传是否使用CDN上传加速 - type: boolean - use-https: - description: 是否使用https - type: boolean - zone: - description: 存储区域 - type: string - type: object - config.Redis: - properties: - addr: - description: 服务器地址:端口 - type: string - db: - description: redis的哪个数据库 - type: integer - password: - description: 密码 - type: string - type: object - config.Server: - properties: - aliyun-oss: - $ref: '#/definitions/config.AliyunOSS' - autocode: - $ref: '#/definitions/config.Autocode' - description: auto - aws-s3: - $ref: '#/definitions/config.AwsS3' - captcha: - $ref: '#/definitions/config.Captcha' - cors: - $ref: '#/definitions/config.CORS' - description: 跨域配置 - db-list: - items: - $ref: '#/definitions/config.SpecializedDB' - type: array - email: - $ref: '#/definitions/config.Email' - excel: - $ref: '#/definitions/config.Excel' - hua-wei-obs: - $ref: '#/definitions/config.HuaWeiObs' - jwt: - $ref: '#/definitions/config.JWT' - local: - $ref: '#/definitions/config.Local' - description: oss - mysql: - $ref: '#/definitions/config.Mysql' - description: gorm - system: - $ref: '#/definitions/config.System' - tencent-cos: - $ref: '#/definitions/config.TencentCOS' - timer: - $ref: '#/definitions/config.Timer' - zap: - $ref: '#/definitions/config.Zap' - type: object - config.SpecializedDB: - properties: - alias-name: - type: string - config: - description: 高级配置 - type: string - db-name: - description: 数据库名 - type: string - disable: - type: boolean - log-mode: - description: 是否开启Gorm全局日志 - type: string - log-zap: - description: 是否通过zap写入日志文件 - type: boolean - max-idle-conns: - description: 空闲中的最大连接数 - type: integer - max-open-conns: - description: 打开到数据库的最大连接数 - type: integer - password: - description: 数据库密码 - type: string - path: - description: 服务器地址:端口 - type: string - port: - description: :端口 - type: string - type: - type: string - username: - description: 数据库用户名 - type: string - type: object - config.System: - properties: - addr: - description: 端口值 - type: integer - db-type: - description: 数据库类型:mysql(默认)|sqlite|sqlserver|postgresql - type: string - env: - description: 环境值 - type: string - iplimit-count: - type: integer - iplimit-time: - type: integer - oss-type: - description: Oss类型 - type: string - use-multipoint: - description: 多点登录拦截 - type: boolean - type: object - config.TencentCOS: - properties: - base-url: - type: string - bucket: - type: string - path-prefix: - type: string - region: - type: string - secret-id: - type: string - secret-key: - type: string - type: object - config.Timer: - properties: - detail: - items: - $ref: '#/definitions/config.Detail' - type: array - spec: - description: CRON表达式 - type: string - start: - description: 是否启用 - type: boolean - with_seconds: - description: 是否精确到秒 - type: boolean - type: object - config.Zap: - properties: - director: - description: 日志文件夹 - type: string - encode-level: - description: 编码级 - type: string - format: - description: 输出 - type: string - level: - description: 级别 - type: string - log-in-console: - description: 输出控制台 - type: boolean - max-age: - description: 日志留存时间 - type: integer - prefix: - description: 日志前缀 - type: string - show-line: - description: 显示行 - type: boolean - stacktrace-key: - description: 栈名 - type: string - type: object - example.ExaCustomer: - properties: - createdAt: - description: 创建时间 - type: string - customerName: - description: 客户名 - type: string - customerPhoneData: - description: 客户手机号 - type: string - id: - description: 主键ID - type: integer - sysUser: - $ref: '#/definitions/system.SysUser' - description: 管理详情 - sysUserAuthorityID: - description: 管理角色ID - type: integer - sysUserId: - description: 管理ID - type: integer - updatedAt: - description: 更新时间 - type: string - type: object - example.ExaFile: - properties: - chunkTotal: - type: integer - createdAt: - description: 创建时间 - type: string - exaFileChunk: - items: - $ref: '#/definitions/example.ExaFileChunk' - type: array - fileMd5: - type: string - fileName: - type: string - filePath: - type: string - id: - description: 主键ID - type: integer - isFinish: - type: boolean - updatedAt: - description: 更新时间 - type: string - type: object - example.ExaFileChunk: - properties: - createdAt: - description: 创建时间 - type: string - exaFileID: - type: integer - fileChunkNumber: - type: integer - fileChunkPath: - type: string - id: - description: 主键ID - type: integer - updatedAt: - description: 更新时间 - type: string - type: object - example.ExaFileUploadAndDownload: - properties: - createdAt: - description: 创建时间 - type: string - id: - description: 主键ID - type: integer - key: - description: 编号 - type: string - name: - description: 文件名 - type: string - tag: - description: 文件标签 - type: string - updatedAt: - description: 更新时间 - type: string - url: - description: 文件地址 - type: string - type: object - example.ExcelInfo: - properties: - fileName: - description: 文件名 - type: string - infoList: - items: - $ref: '#/definitions/system.SysBaseMenu' - type: array - type: object - request.AddMenuAuthorityInfo: - properties: - authorityId: - description: 角色ID - type: integer - menus: - items: - $ref: '#/definitions/system.SysBaseMenu' - type: array - type: object - request.CasbinInReceive: - properties: - authorityId: - description: 权限id - type: integer - casbinInfos: - items: - $ref: '#/definitions/request.CasbinInfo' - type: array - type: object - request.CasbinInfo: - properties: - method: - description: 方法 - type: string - path: - description: 路径 - type: string - type: object - request.ChangePasswordReq: - properties: - newPassword: - description: 新密码 - type: string - password: - description: 密码 - type: string - type: object - request.Empty: - type: object - request.GetAuthorityId: - properties: - authorityId: - description: 角色ID - type: integer - type: object - request.GetById: - properties: - id: - description: 主键ID - type: integer - type: object - request.IdsReq: - properties: - ids: - items: - type: integer - type: array - type: object - request.InitDB: - properties: - dbName: - description: 数据库名 - type: string - dbType: - description: 数据库类型 - type: string - host: - description: 服务器地址 - type: string - password: - description: 数据库密码 - type: string - port: - description: 数据库连接端口 - type: string - userName: - description: 数据库用户名 - type: string - required: - - dbName - - userName - type: object - request.Login: - properties: - captcha: - description: 验证码 - type: string - captchaId: - description: 验证码ID - type: string - password: - description: 密码 - type: string - username: - description: 用户名 - type: string - type: object - request.PageInfo: - properties: - keyword: - description: 关键字 - type: string - page: - description: 页码 - type: integer - pageSize: - description: 每页大小 - type: integer - type: object - request.Register: - properties: - authorityId: - type: integer - authorityIds: - items: - type: integer - type: array - enable: - type: integer - headerImg: - type: string - nickName: - type: string - passWord: - type: string - userName: - type: string - type: object - request.RollBack: - properties: - deleteTable: - description: 是否删除表 - type: boolean - id: - description: 主键ID - type: integer - type: object - request.SearchApiParams: - properties: - apiGroup: - description: api组 - type: string - createdAt: - description: 创建时间 - type: string - desc: - description: 排序方式:升序false(默认)|降序true - type: boolean - description: - description: api中文描述 - type: string - id: - description: 主键ID - type: integer - keyword: - description: 关键字 - type: string - method: - description: 方法:创建POST(默认)|查看GET|更新PUT|删除DELETE - type: string - orderKey: - description: 排序 - type: string - page: - description: 页码 - type: integer - pageSize: - description: 每页大小 - type: integer - path: - description: api路径 - type: string - updatedAt: - description: 更新时间 - type: string - type: object - request.SetUserAuth: - properties: - authorityId: - description: 角色ID - type: integer - type: object - request.SetUserAuthorities: - properties: - authorityIds: - description: 角色ID - items: - type: integer - type: array - id: - type: integer - type: object - request.SysAuthorityBtnReq: - properties: - authorityId: - type: integer - menuID: - type: integer - selected: - items: - type: integer - type: array - type: object - request.SysAutoHistory: - properties: - keyword: - description: 关键字 - type: string - page: - description: 页码 - type: integer - pageSize: - description: 每页大小 - type: integer - type: object - response.Email: - properties: - body: - description: 邮件内容 - type: string - subject: - description: 邮件标题 - type: string - to: - description: 邮件发送给谁 - type: string - type: object - response.ExaCustomerResponse: - properties: - customer: - $ref: '#/definitions/example.ExaCustomer' - type: object - response.ExaFileResponse: - properties: - file: - $ref: '#/definitions/example.ExaFileUploadAndDownload' - type: object - response.FilePathResponse: - properties: - filePath: - type: string - type: object - response.FileResponse: - properties: - file: - $ref: '#/definitions/example.ExaFile' - type: object - response.LoginResponse: - properties: - expiresAt: - type: integer - token: - type: string - user: - $ref: '#/definitions/system.SysUser' - type: object - response.PageResult: - properties: - list: - type: object - page: - type: integer - pageSize: - type: integer - total: - type: integer - type: object - response.PolicyPathResponse: - properties: - paths: - items: - $ref: '#/definitions/request.CasbinInfo' - type: array - type: object - response.Response: - properties: - code: - type: integer - data: - type: object - msg: - type: string - type: object - response.SysAPIListResponse: - properties: - apis: - items: - $ref: '#/definitions/system.SysApi' - type: array - type: object - response.SysAPIResponse: - properties: - api: - $ref: '#/definitions/system.SysApi' - type: object - response.SysAuthorityBtnRes: - properties: - selected: - items: - type: integer - type: array - type: object - response.SysAuthorityCopyResponse: - properties: - authority: - $ref: '#/definitions/system.SysAuthority' - oldAuthorityId: - description: 旧角色ID - type: integer - type: object - response.SysAuthorityResponse: - properties: - authority: - $ref: '#/definitions/system.SysAuthority' - type: object - response.SysBaseMenuResponse: - properties: - menu: - $ref: '#/definitions/system.SysBaseMenu' - type: object - response.SysBaseMenusResponse: - properties: - menus: - items: - $ref: '#/definitions/system.SysBaseMenu' - type: array - type: object - response.SysCaptchaResponse: - properties: - captchaId: - type: string - captchaLength: - type: integer - picPath: - type: string - type: object - response.SysConfigResponse: - properties: - config: - $ref: '#/definitions/config.Server' - type: object - response.SysMenusResponse: - properties: - menus: - items: - $ref: '#/definitions/system.SysMenu' - type: array - type: object - response.SysUserResponse: - properties: - user: - $ref: '#/definitions/system.SysUser' - type: object - system.AutoCodeStruct: - properties: - abbreviation: - description: Struct简称 - type: string - autoCreateApiToSql: - description: 是否自动创建api - type: boolean - autoCreateResource: - description: 是否自动创建资源标识 - type: boolean - autoMoveFile: - description: 是否自动移动文件 - type: boolean - description: - description: Struct中文名称 - type: string - fields: - items: - $ref: '#/definitions/system.Field' - type: array - hasTimer: - type: boolean - humpPackageName: - description: go文件名称 - type: string - package: - type: string - packageName: - description: 文件名称 - type: string - structName: - description: Struct名称 - type: string - tableName: - description: 表名 - type: string - type: object - system.Field: - properties: - clearable: - description: 是否可清空 - type: boolean - columnName: - description: 数据库字段 - type: string - comment: - description: 数据库字段描述 - type: string - dataTypeLong: - description: 数据库字段长度 - type: string - dictType: - description: 字典 - type: string - errorText: - description: 校验失败文字 - type: string - fieldDesc: - description: 中文名 - type: string - fieldJson: - description: FieldJson - type: string - fieldName: - description: Field名 - type: string - fieldSearchType: - description: 搜索条件 - type: string - fieldType: - description: Field数据类型 - type: string - require: - description: 是否必填 - type: boolean - type: object - system.SysApi: - properties: - apiGroup: - description: api组 - type: string - createdAt: - description: 创建时间 - type: string - description: - description: api中文描述 - type: string - id: - description: 主键ID - type: integer - method: - description: 方法:创建POST(默认)|查看GET|更新PUT|删除DELETE - type: string - path: - description: api路径 - type: string - updatedAt: - description: 更新时间 - type: string - type: object - system.SysAuthority: - properties: - authorityId: - description: 角色ID - type: integer - authorityName: - description: 角色名 - type: string - children: - items: - $ref: '#/definitions/system.SysAuthority' - type: array - createdAt: - description: 创建时间 - type: string - dataAuthorityId: - items: - $ref: '#/definitions/system.SysAuthority' - type: array - defaultRouter: - description: 默认菜单(默认dashboard) - type: string - deletedAt: - type: string - menus: - items: - $ref: '#/definitions/system.SysBaseMenu' - type: array - parentId: - description: 父角色ID - type: integer - updatedAt: - description: 更新时间 - type: string - type: object - system.SysAutoCode: - properties: - createdAt: - description: 创建时间 - type: string - desc: - type: string - id: - description: 主键ID - type: integer - label: - type: string - packageName: - type: string - updatedAt: - description: 更新时间 - type: string - type: object - system.SysBaseMenu: - properties: - authoritys: - items: - $ref: '#/definitions/system.SysAuthority' - type: array - children: - items: - $ref: '#/definitions/system.SysBaseMenu' - type: array - closeTab: - description: 自动关闭tab - type: boolean - component: - description: 对应前端文件路径 - type: string - createdAt: - description: 创建时间 - type: string - defaultMenu: - description: 是否是基础路由(开发中) - type: boolean - hidden: - description: 是否在列表隐藏 - type: boolean - icon: - description: 菜单图标 - type: string - id: - description: 主键ID - type: integer - keepAlive: - description: 是否缓存 - type: boolean - menuBtn: - items: - $ref: '#/definitions/system.SysBaseMenuBtn' - type: array - name: - description: 路由name - type: string - parameters: - items: - $ref: '#/definitions/system.SysBaseMenuParameter' - type: array - parentId: - description: 父菜单ID - type: string - path: - description: 路由path - type: string - sort: - description: 排序标记 - type: integer - title: - description: 菜单名 - type: string - updatedAt: - description: 更新时间 - type: string - type: object - system.SysBaseMenuBtn: - properties: - createdAt: - description: 创建时间 - type: string - desc: - type: string - id: - description: 主键ID - type: integer - name: - type: string - sysBaseMenuID: - type: integer - updatedAt: - description: 更新时间 - type: string - type: object - system.SysBaseMenuParameter: - properties: - createdAt: - description: 创建时间 - type: string - id: - description: 主键ID - type: integer - key: - description: 地址栏携带参数的key - type: string - sysBaseMenuID: - type: integer - type: - description: 地址栏携带参数为params还是query - type: string - updatedAt: - description: 更新时间 - type: string - value: - description: 地址栏携带参数的值 - type: string - type: object - system.SysDictionary: - properties: - createdAt: - description: 创建时间 - type: string - desc: - description: 描述 - type: string - id: - description: 主键ID - type: integer - name: - description: 字典名(中) - type: string - status: - description: 状态 - type: boolean - sysDictionaryDetails: - items: - $ref: '#/definitions/system.SysDictionaryDetail' - type: array - type: - description: 字典名(英) - type: string - updatedAt: - description: 更新时间 - type: string - type: object - system.SysDictionaryDetail: - properties: - createdAt: - description: 创建时间 - type: string - id: - description: 主键ID - type: integer - label: - description: 展示值 - type: string - sort: - description: 排序标记 - type: integer - status: - description: 启用状态 - type: boolean - sysDictionaryID: - description: 关联标记 - type: integer - updatedAt: - description: 更新时间 - type: string - value: - description: 字典值 - type: integer - type: object - system.SysMenu: - properties: - authoritys: - items: - $ref: '#/definitions/system.SysAuthority' - type: array - btns: - additionalProperties: - type: integer - type: object - children: - items: - $ref: '#/definitions/system.SysMenu' - type: array - closeTab: - description: 自动关闭tab - type: boolean - component: - description: 对应前端文件路径 - type: string - createdAt: - description: 创建时间 - type: string - defaultMenu: - description: 是否是基础路由(开发中) - type: boolean - hidden: - description: 是否在列表隐藏 - type: boolean - icon: - description: 菜单图标 - type: string - id: - description: 主键ID - type: integer - keepAlive: - description: 是否缓存 - type: boolean - menuBtn: - items: - $ref: '#/definitions/system.SysBaseMenuBtn' - type: array - menuId: - type: string - name: - description: 路由name - type: string - parameters: - items: - $ref: '#/definitions/system.SysBaseMenuParameter' - type: array - parentId: - description: 父菜单ID - type: string - path: - description: 路由path - type: string - sort: - description: 排序标记 - type: integer - title: - description: 菜单名 - type: string - updatedAt: - description: 更新时间 - type: string - type: object - system.SysOperationRecord: - properties: - agent: - description: 代理 - type: string - body: - description: 请求Body - type: string - createdAt: - description: 创建时间 - type: string - error_message: - description: 错误信息 - type: string - id: - description: 主键ID - type: integer - ip: - description: 请求ip - type: string - latency: - description: 延迟 - type: string - method: - description: 请求方法 - type: string - path: - description: 请求路径 - type: string - resp: - description: 响应Body - type: string - status: - description: 请求状态 - type: integer - updatedAt: - description: 更新时间 - type: string - user: - $ref: '#/definitions/system.SysUser' - user_id: - description: 用户id - type: integer - type: object - system.SysUser: - properties: - activeColor: - description: 活跃颜色 - type: string - authorities: - items: - $ref: '#/definitions/system.SysAuthority' - type: array - authority: - $ref: '#/definitions/system.SysAuthority' - authorityId: - description: 用户角色ID - type: integer - baseColor: - description: 基础颜色 - type: string - createdAt: - description: 创建时间 - type: string - email: - description: 用户邮箱 - type: string - enable: - description: 用户是否被冻结 1正常 2冻结 - type: integer - headerImg: - description: 用户头像 - type: string - id: - description: 主键ID - type: integer - nickName: - description: 用户昵称 - type: string - phone: - description: 用户手机号 - type: string - sideMode: - description: 用户侧边主题 - type: string - updatedAt: - description: 更新时间 - type: string - userName: - description: 用户登录名 - type: string - uuid: - description: 用户UUID - type: string - type: object - system.System: - properties: - config: - $ref: '#/definitions/config.Server' - type: object -info: - contact: {} - description: This is a sample Server pets - title: Swagger Example API - version: 0.0.1 -paths: - /api/createApi: - post: - consumes: - - application/json - parameters: - - description: api路径, api中文描述, api组, 方法 - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysApi' - produces: - - application/json - responses: - "200": - description: 创建基础api - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 创建基础api - tags: - - SysApi - /api/deleteApi: - post: - consumes: - - application/json - parameters: - - description: ID - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysApi' - produces: - - application/json - responses: - "200": - description: 删除api - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 删除api - tags: - - SysApi - /api/deleteApisByIds: - delete: - consumes: - - application/json - parameters: - - description: ID - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.IdsReq' - produces: - - application/json - responses: - "200": - description: 删除选中Api - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 删除选中Api - tags: - - SysApi - /api/getAllApis: - post: - consumes: - - application/json - produces: - - application/json - responses: - "200": - description: 获取所有的Api 不分页,返回包括api列表 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.SysAPIListResponse' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 获取所有的Api 不分页 - tags: - - SysApi - /api/getApiById: - post: - consumes: - - application/json - parameters: - - description: 根据id获取api - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.GetById' - produces: - - application/json - responses: - "200": - description: 根据id获取api,返回包括api详情 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.SysAPIResponse' - type: object - security: - - ApiKeyAuth: [] - summary: 根据id获取api - tags: - - SysApi - /api/getApiList: - post: - consumes: - - application/json - parameters: - - description: 分页获取API列表 - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.SearchApiParams' - produces: - - application/json - responses: - "200": - description: 分页获取API列表,返回包括列表,总数,页码,每页数量 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.PageResult' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 分页获取API列表 - tags: - - SysApi - /api/updateApi: - post: - consumes: - - application/json - parameters: - - description: api路径, api中文描述, api组, 方法 - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysApi' - produces: - - application/json - responses: - "200": - description: 修改基础api - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 修改基础api - tags: - - SysApi - /authority/copyAuthority: - post: - consumes: - - application/json - parameters: - - description: 旧角色id, 新权限id, 新权限名, 新父角色id - in: body - name: data - required: true - schema: - $ref: '#/definitions/response.SysAuthorityCopyResponse' - produces: - - application/json - responses: - "200": - description: 拷贝角色,返回包括系统角色详情 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.SysAuthorityResponse' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 拷贝角色 - tags: - - Authority - /authority/createAuthority: - post: - consumes: - - application/json - parameters: - - description: 权限id, 权限名, 父角色id - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysAuthority' - produces: - - application/json - responses: - "200": - description: 创建角色,返回包括系统角色详情 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.SysAuthorityResponse' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 创建角色 - tags: - - Authority - /authority/deleteAuthority: - post: - consumes: - - application/json - parameters: - - description: 删除角色 - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysAuthority' - produces: - - application/json - responses: - "200": - description: 删除角色 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 删除角色 - tags: - - Authority - /authority/getAuthorityList: - post: - consumes: - - application/json - parameters: - - description: 页码, 每页大小 - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.PageInfo' - produces: - - application/json - responses: - "200": - description: 分页获取角色列表,返回包括列表,总数,页码,每页数量 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.PageResult' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 分页获取角色列表 - tags: - - Authority - /authority/setDataAuthority: - post: - consumes: - - application/json - parameters: - - description: 设置角色资源权限 - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysAuthority' - produces: - - application/json - responses: - "200": - description: 设置角色资源权限 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 设置角色资源权限 - tags: - - Authority - /authority/updateAuthority: - post: - consumes: - - application/json - parameters: - - description: 权限id, 权限名, 父角色id - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysAuthority' - produces: - - application/json - responses: - "200": - description: 更新角色信息,返回包括系统角色详情 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.SysAuthorityResponse' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 更新角色信息 - tags: - - Authority - /authorityBtn/canRemoveAuthorityBtn: - post: - consumes: - - application/json - produces: - - application/json - responses: - "200": - description: 删除成功 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 设置权限按钮 - tags: - - AuthorityBtn - /authorityBtn/getAuthorityBtn: - post: - consumes: - - application/json - parameters: - - description: 菜单id, 角色id, 选中的按钮id - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.SysAuthorityBtnReq' - produces: - - application/json - responses: - "200": - description: 返回列表成功 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.SysAuthorityBtnRes' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 获取权限按钮 - tags: - - AuthorityBtn - /authorityBtn/setAuthorityBtn: - post: - consumes: - - application/json - parameters: - - description: 菜单id, 角色id, 选中的按钮id - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.SysAuthorityBtnReq' - produces: - - application/json - responses: - "200": - description: 返回列表成功 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 设置权限按钮 - tags: - - AuthorityBtn - /autoCode/createPackage: - post: - consumes: - - application/json - parameters: - - description: 创建package - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysAutoCode' - produces: - - application/json - responses: - "200": - description: 创建package成功 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - additionalProperties: true - type: object - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 创建package - tags: - - AutoCode - /autoCode/createPlug: - post: - consumes: - - multipart/form-data - parameters: - - description: this is a test file - in: formData - name: plug - required: true - type: file - produces: - - application/json - responses: - "200": - description: 安装插件成功 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - items: - type: object - type: array - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 安装插件 - tags: - - AutoCode - /autoCode/createTemp: - post: - consumes: - - application/json - parameters: - - description: 创建自动代码 - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.AutoCodeStruct' - produces: - - application/json - responses: - "200": - description: '{"success":true,"data":{},"msg":"创建成功"}' - schema: - type: string - security: - - ApiKeyAuth: [] - summary: 自动代码模板 - tags: - - AutoCode - /autoCode/delPackage: - post: - consumes: - - application/json - parameters: - - description: 创建package - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysAutoCode' - produces: - - application/json - responses: - "200": - description: 删除package成功 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - additionalProperties: true - type: object - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 删除package - tags: - - AutoCode - /autoCode/delSysHistory: - post: - consumes: - - application/json - parameters: - - description: 请求参数 - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.GetById' - produces: - - application/json - responses: - "200": - description: 删除回滚记录 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 删除回滚记录 - tags: - - AutoCode - /autoCode/getColumn: - get: - consumes: - - application/json - produces: - - application/json - responses: - "200": - description: 获取当前表所有字段 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - additionalProperties: true - type: object - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 获取当前表所有字段 - tags: - - AutoCode - /autoCode/getDatabase: - get: - consumes: - - application/json - produces: - - application/json - responses: - "200": - description: 获取当前所有数据库 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - additionalProperties: true - type: object - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 获取当前所有数据库 - tags: - - AutoCode - /autoCode/getMeta: - post: - consumes: - - application/json - parameters: - - description: 请求参数 - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.GetById' - produces: - - application/json - responses: - "200": - description: 获取meta信息 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - additionalProperties: true - type: object - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 获取meta信息 - tags: - - AutoCode - /autoCode/getPackage: - post: - consumes: - - application/json - produces: - - application/json - responses: - "200": - description: 创建package成功 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - additionalProperties: true - type: object - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 获取package - tags: - - AutoCode - /autoCode/getSysHistory: - post: - consumes: - - application/json - parameters: - - description: 请求参数 - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.SysAutoHistory' - produces: - - application/json - responses: - "200": - description: 查询回滚记录,返回包括列表,总数,页码,每页数量 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.PageResult' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 查询回滚记录 - tags: - - AutoCode - /autoCode/getTables: - get: - consumes: - - application/json - produces: - - application/json - responses: - "200": - description: 获取当前数据库所有表 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - additionalProperties: true - type: object - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 获取当前数据库所有表 - tags: - - AutoCode - /autoCode/preview: - post: - consumes: - - application/json - parameters: - - description: 预览创建代码 - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.AutoCodeStruct' - produces: - - application/json - responses: - "200": - description: 预览创建后的代码 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - additionalProperties: true - type: object - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 预览创建后的代码 - tags: - - AutoCode - /autoCode/rollback: - post: - consumes: - - application/json - parameters: - - description: 请求参数 - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.RollBack' - produces: - - application/json - responses: - "200": - description: 回滚自动生成代码 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 回滚自动生成代码 - tags: - - AutoCode - /base/captcha: - post: - consumes: - - application/json - produces: - - application/json - responses: - "200": - description: 生成验证码,返回包括随机数id,base64,验证码长度 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.SysCaptchaResponse' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 生成验证码 - tags: - - Base - /base/login: - post: - parameters: - - description: 用户名, 密码, 验证码 - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.Login' - produces: - - application/json - responses: - "200": - description: 返回包括用户信息,token,过期时间 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.LoginResponse' - msg: - type: string - type: object - summary: 用户登录 - tags: - - Base - /casbin/UpdateCasbin: - post: - consumes: - - application/json - parameters: - - description: 权限id, 权限模型列表 - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.CasbinInReceive' - produces: - - application/json - responses: - "200": - description: 更新角色api权限 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 更新角色api权限 - tags: - - Casbin - /casbin/getPolicyPathByAuthorityId: - post: - consumes: - - application/json - parameters: - - description: 权限id, 权限模型列表 - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.CasbinInReceive' - produces: - - application/json - responses: - "200": - description: 获取权限列表,返回包括casbin详情列表 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.PolicyPathResponse' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 获取权限列表 - tags: - - Casbin - /customer/customer: - delete: - consumes: - - application/json - parameters: - - description: 客户ID - in: body - name: data - required: true - schema: - $ref: '#/definitions/example.ExaCustomer' - produces: - - application/json - responses: - "200": - description: 删除客户 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 删除客户 - tags: - - ExaCustomer - get: - consumes: - - application/json - parameters: - - description: 创建时间 - in: query - name: createdAt - type: string - - description: 客户名 - in: query - name: customerName - type: string - - description: 客户手机号 - in: query - name: customerPhoneData - type: string - - description: 主键ID - in: query - name: id - type: integer - - description: 管理角色ID - in: query - name: sysUserAuthorityID - type: integer - - description: 管理ID - in: query - name: sysUserId - type: integer - - description: 更新时间 - in: query - name: updatedAt - type: string - produces: - - application/json - responses: - "200": - description: 获取单一客户信息,返回包括客户详情 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.ExaCustomerResponse' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 获取单一客户信息 - tags: - - ExaCustomer - post: - consumes: - - application/json - parameters: - - description: 客户用户名, 客户手机号码 - in: body - name: data - required: true - schema: - $ref: '#/definitions/example.ExaCustomer' - produces: - - application/json - responses: - "200": - description: 创建客户 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 创建客户 - tags: - - ExaCustomer - put: - consumes: - - application/json - parameters: - - description: 客户ID, 客户信息 - in: body - name: data - required: true - schema: - $ref: '#/definitions/example.ExaCustomer' - produces: - - application/json - responses: - "200": - description: 更新客户信息 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 更新客户信息 - tags: - - ExaCustomer - /customer/customerList: - get: - consumes: - - application/json - parameters: - - description: 关键字 - in: query - name: keyword - type: string - - description: 页码 - in: query - name: page - type: integer - - description: 每页大小 - in: query - name: pageSize - type: integer - produces: - - application/json - responses: - "200": - description: 分页获取权限客户列表,返回包括列表,总数,页码,每页数量 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.PageResult' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 分页获取权限客户列表 - tags: - - ExaCustomer - /email/emailTest: - post: - produces: - - application/json - responses: - "200": - description: '{"success":true,"data":{},"msg":"发送成功"}' - schema: - type: string - security: - - ApiKeyAuth: [] - summary: 发送测试邮件 - tags: - - System - /email/sendEmail: - post: - parameters: - - description: 发送邮件必须的参数 - in: body - name: data - required: true - schema: - $ref: '#/definitions/response.Email' - produces: - - application/json - responses: - "200": - description: '{"success":true,"data":{},"msg":"发送成功"}' - schema: - type: string - security: - - ApiKeyAuth: [] - summary: 发送邮件 - tags: - - System - /excel/downloadTemplate: - get: - consumes: - - multipart/form-data - parameters: - - description: 模板名称 - in: query - name: fileName - required: true - type: string - produces: - - application/json - responses: - "200": - description: "" - security: - - ApiKeyAuth: [] - summary: 下载模板 - tags: - - excel - /excel/exportExcel: - post: - consumes: - - application/json - parameters: - - description: 导出Excel文件信息 - in: body - name: data - required: true - schema: - $ref: '#/definitions/example.ExcelInfo' - produces: - - application/octet-stream - responses: - "200": - description: "" - security: - - ApiKeyAuth: [] - summary: 导出Excel - tags: - - excel - /excel/importExcel: - post: - consumes: - - multipart/form-data - parameters: - - description: 导入Excel文件 - in: formData - name: file - required: true - type: file - produces: - - application/json - responses: - "200": - description: 导入Excel文件 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 导入Excel文件 - tags: - - excel - /excel/loadExcel: - get: - produces: - - application/json - responses: - "200": - description: 加载Excel数据,返回包括列表,总数,页码,每页数量 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.PageResult' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 加载Excel数据 - tags: - - excel - /fileUploadAndDownload/breakpointContinue: - post: - consumes: - - multipart/form-data - parameters: - - description: an example for breakpoint resume, 断点续传示例 - in: formData - name: file - required: true - type: file - produces: - - application/json - responses: - "200": - description: 断点续传到服务器 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 断点续传到服务器 - tags: - - ExaFileUploadAndDownload - /fileUploadAndDownload/deleteFile: - post: - parameters: - - description: 传入文件里面id即可 - in: body - name: data - required: true - schema: - $ref: '#/definitions/example.ExaFileUploadAndDownload' - produces: - - application/json - responses: - "200": - description: 删除文件 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 删除文件 - tags: - - ExaFileUploadAndDownload - /fileUploadAndDownload/findFile: - post: - consumes: - - multipart/form-data - parameters: - - description: 上传文件完成 - in: formData - name: file - required: true - type: file - produces: - - application/json - responses: - "200": - description: 创建文件,返回包括文件路径 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.FilePathResponse' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 创建文件 - tags: - - ExaFileUploadAndDownload - /fileUploadAndDownload/getFileList: - post: - consumes: - - application/json - parameters: - - description: 页码, 每页大小 - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.PageInfo' - produces: - - application/json - responses: - "200": - description: 分页文件列表,返回包括列表,总数,页码,每页数量 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.PageResult' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 分页文件列表 - tags: - - ExaFileUploadAndDownload - /fileUploadAndDownload/removeChunk: - post: - consumes: - - multipart/form-data - parameters: - - description: 删除缓存切片 - in: formData - name: file - required: true - type: file - produces: - - application/json - responses: - "200": - description: 删除切片 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 删除切片 - tags: - - ExaFileUploadAndDownload - /fileUploadAndDownload/upload: - post: - consumes: - - multipart/form-data - parameters: - - description: 上传文件示例 - in: formData - name: file - required: true - type: file - produces: - - application/json - responses: - "200": - description: 上传文件示例,返回包括文件详情 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.ExaFileResponse' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 上传文件示例 - tags: - - ExaFileUploadAndDownload - /init/checkdb: - post: - produces: - - application/json - responses: - "200": - description: 初始化用户数据库 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - additionalProperties: true - type: object - msg: - type: string - type: object - summary: 初始化用户数据库 - tags: - - CheckDB - /init/initdb: - post: - parameters: - - description: 初始化数据库参数 - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.InitDB' - produces: - - application/json - responses: - "200": - description: 初始化用户数据库 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - type: string - type: object - summary: 初始化用户数据库 - tags: - - InitDB - /jwt/jsonInBlacklist: - post: - consumes: - - application/json - produces: - - application/json - responses: - "200": - description: jwt加入黑名单 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: jwt加入黑名单 - tags: - - Jwt - /menu/addBaseMenu: - post: - consumes: - - application/json - parameters: - - description: 路由path, 父菜单ID, 路由name, 对应前端文件路径, 排序标记 - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysBaseMenu' - produces: - - application/json - responses: - "200": - description: 新增菜单 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 新增菜单 - tags: - - Menu - /menu/addMenuAuthority: - post: - consumes: - - application/json - parameters: - - description: 角色ID - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.AddMenuAuthorityInfo' - produces: - - application/json - responses: - "200": - description: 增加menu和角色关联关系 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 增加menu和角色关联关系 - tags: - - AuthorityMenu - /menu/deleteBaseMenu: - post: - consumes: - - application/json - parameters: - - description: 菜单id - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.GetById' - produces: - - application/json - responses: - "200": - description: 删除菜单 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 删除菜单 - tags: - - Menu - /menu/getBaseMenuById: - post: - consumes: - - application/json - parameters: - - description: 菜单id - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.GetById' - produces: - - application/json - responses: - "200": - description: 根据id获取菜单,返回包括系统菜单列表 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.SysBaseMenuResponse' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 根据id获取菜单 - tags: - - Menu - /menu/getBaseMenuTree: - post: - parameters: - - description: 空 - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.Empty' - produces: - - application/json - responses: - "200": - description: 获取用户动态路由,返回包括系统菜单列表 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.SysBaseMenusResponse' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 获取用户动态路由 - tags: - - AuthorityMenu - /menu/getMenu: - post: - parameters: - - description: 空 - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.Empty' - produces: - - application/json - responses: - "200": - description: 获取用户动态路由,返回包括系统菜单详情列表 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.SysMenusResponse' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 获取用户动态路由 - tags: - - AuthorityMenu - /menu/getMenuAuthority: - post: - consumes: - - application/json - parameters: - - description: 角色ID - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.GetAuthorityId' - produces: - - application/json - responses: - "200": - description: 获取指定角色menu - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - additionalProperties: true - type: object - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 获取指定角色menu - tags: - - AuthorityMenu - /menu/getMenuList: - post: - consumes: - - application/json - parameters: - - description: 页码, 每页大小 - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.PageInfo' - produces: - - application/json - responses: - "200": - description: 分页获取基础menu列表,返回包括列表,总数,页码,每页数量 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.PageResult' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 分页获取基础menu列表 - tags: - - Menu - /menu/updateBaseMenu: - post: - consumes: - - application/json - parameters: - - description: 路由path, 父菜单ID, 路由name, 对应前端文件路径, 排序标记 - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysBaseMenu' - produces: - - application/json - responses: - "200": - description: 更新菜单 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 更新菜单 - tags: - - Menu - /sysDictionary/createSysDictionary: - post: - consumes: - - application/json - parameters: - - description: SysDictionary模型 - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysDictionary' - produces: - - application/json - responses: - "200": - description: 创建SysDictionary - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 创建SysDictionary - tags: - - SysDictionary - /sysDictionary/deleteSysDictionary: - delete: - consumes: - - application/json - parameters: - - description: SysDictionary模型 - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysDictionary' - produces: - - application/json - responses: - "200": - description: 删除SysDictionary - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 删除SysDictionary - tags: - - SysDictionary - /sysDictionary/findSysDictionary: - get: - consumes: - - application/json - parameters: - - description: 创建时间 - in: query - name: createdAt - type: string - - description: 描述 - in: query - name: desc - type: string - - description: 主键ID - in: query - name: id - type: integer - - description: 字典名(中) - in: query - name: name - type: string - - description: 状态 - in: query - name: status - type: boolean - - description: 字典名(英) - in: query - name: type - type: string - - description: 更新时间 - in: query - name: updatedAt - type: string - produces: - - application/json - responses: - "200": - description: 用id查询SysDictionary - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - additionalProperties: true - type: object - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 用id查询SysDictionary - tags: - - SysDictionary - /sysDictionary/getSysDictionaryList: - get: - consumes: - - application/json - parameters: - - description: 创建时间 - in: query - name: createdAt - type: string - - description: 描述 - in: query - name: desc - type: string - - description: 主键ID - in: query - name: id - type: integer - - description: 关键字 - in: query - name: keyword - type: string - - description: 字典名(中) - in: query - name: name - type: string - - description: 页码 - in: query - name: page - type: integer - - description: 每页大小 - in: query - name: pageSize - type: integer - - description: 状态 - in: query - name: status - type: boolean - - description: 字典名(英) - in: query - name: type - type: string - - description: 更新时间 - in: query - name: updatedAt - type: string - produces: - - application/json - responses: - "200": - description: 分页获取SysDictionary列表,返回包括列表,总数,页码,每页数量 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.PageResult' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 分页获取SysDictionary列表 - tags: - - SysDictionary - /sysDictionary/updateSysDictionary: - put: - consumes: - - application/json - parameters: - - description: SysDictionary模型 - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysDictionary' - produces: - - application/json - responses: - "200": - description: 更新SysDictionary - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 更新SysDictionary - tags: - - SysDictionary - /sysDictionaryDetail/createSysDictionaryDetail: - post: - consumes: - - application/json - parameters: - - description: SysDictionaryDetail模型 - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysDictionaryDetail' - produces: - - application/json - responses: - "200": - description: 创建SysDictionaryDetail - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 创建SysDictionaryDetail - tags: - - SysDictionaryDetail - /sysDictionaryDetail/deleteSysDictionaryDetail: - delete: - consumes: - - application/json - parameters: - - description: SysDictionaryDetail模型 - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysDictionaryDetail' - produces: - - application/json - responses: - "200": - description: 删除SysDictionaryDetail - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 删除SysDictionaryDetail - tags: - - SysDictionaryDetail - /sysDictionaryDetail/findSysDictionaryDetail: - get: - consumes: - - application/json - parameters: - - description: 创建时间 - in: query - name: createdAt - type: string - - description: 主键ID - in: query - name: id - type: integer - - description: 展示值 - in: query - name: label - type: string - - description: 排序标记 - in: query - name: sort - type: integer - - description: 启用状态 - in: query - name: status - type: boolean - - description: 关联标记 - in: query - name: sysDictionaryID - type: integer - - description: 更新时间 - in: query - name: updatedAt - type: string - - description: 字典值 - in: query - name: value - type: integer - produces: - - application/json - responses: - "200": - description: 用id查询SysDictionaryDetail - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - additionalProperties: true - type: object - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 用id查询SysDictionaryDetail - tags: - - SysDictionaryDetail - /sysDictionaryDetail/getSysDictionaryDetailList: - get: - consumes: - - application/json - parameters: - - description: 创建时间 - in: query - name: createdAt - type: string - - description: 主键ID - in: query - name: id - type: integer - - description: 关键字 - in: query - name: keyword - type: string - - description: 展示值 - in: query - name: label - type: string - - description: 页码 - in: query - name: page - type: integer - - description: 每页大小 - in: query - name: pageSize - type: integer - - description: 排序标记 - in: query - name: sort - type: integer - - description: 启用状态 - in: query - name: status - type: boolean - - description: 关联标记 - in: query - name: sysDictionaryID - type: integer - - description: 更新时间 - in: query - name: updatedAt - type: string - - description: 字典值 - in: query - name: value - type: integer - produces: - - application/json - responses: - "200": - description: 分页获取SysDictionaryDetail列表,返回包括列表,总数,页码,每页数量 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.PageResult' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 分页获取SysDictionaryDetail列表 - tags: - - SysDictionaryDetail - /sysDictionaryDetail/updateSysDictionaryDetail: - put: - consumes: - - application/json - parameters: - - description: 更新SysDictionaryDetail - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysDictionaryDetail' - produces: - - application/json - responses: - "200": - description: 更新SysDictionaryDetail - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 更新SysDictionaryDetail - tags: - - SysDictionaryDetail - /sysOperationRecord/createSysOperationRecord: - post: - consumes: - - application/json - parameters: - - description: 创建SysOperationRecord - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysOperationRecord' - produces: - - application/json - responses: - "200": - description: 创建SysOperationRecord - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 创建SysOperationRecord - tags: - - SysOperationRecord - /sysOperationRecord/deleteSysOperationRecord: - delete: - consumes: - - application/json - parameters: - - description: SysOperationRecord模型 - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysOperationRecord' - produces: - - application/json - responses: - "200": - description: 删除SysOperationRecord - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 删除SysOperationRecord - tags: - - SysOperationRecord - /sysOperationRecord/deleteSysOperationRecordByIds: - delete: - consumes: - - application/json - parameters: - - description: 批量删除SysOperationRecord - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.IdsReq' - produces: - - application/json - responses: - "200": - description: 批量删除SysOperationRecord - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 批量删除SysOperationRecord - tags: - - SysOperationRecord - /sysOperationRecord/findSysOperationRecord: - get: - consumes: - - application/json - parameters: - - description: 代理 - in: query - name: agent - type: string - - description: 请求Body - in: query - name: body - type: string - - description: 创建时间 - in: query - name: createdAt - type: string - - description: 错误信息 - in: query - name: error_message - type: string - - description: 主键ID - in: query - name: id - type: integer - - description: 请求ip - in: query - name: ip - type: string - - description: 延迟 - in: query - name: latency - type: string - - description: 请求方法 - in: query - name: method - type: string - - description: 请求路径 - in: query - name: path - type: string - - description: 响应Body - in: query - name: resp - type: string - - description: 请求状态 - in: query - name: status - type: integer - - description: 更新时间 - in: query - name: updatedAt - type: string - - description: 用户id - in: query - name: user_id - type: integer - produces: - - application/json - responses: - "200": - description: 用id查询SysOperationRecord - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - additionalProperties: true - type: object - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 用id查询SysOperationRecord - tags: - - SysOperationRecord - /sysOperationRecord/getSysOperationRecordList: - get: - consumes: - - application/json - parameters: - - description: 代理 - in: query - name: agent - type: string - - description: 请求Body - in: query - name: body - type: string - - description: 创建时间 - in: query - name: createdAt - type: string - - description: 错误信息 - in: query - name: error_message - type: string - - description: 主键ID - in: query - name: id - type: integer - - description: 请求ip - in: query - name: ip - type: string - - description: 关键字 - in: query - name: keyword - type: string - - description: 延迟 - in: query - name: latency - type: string - - description: 请求方法 - in: query - name: method - type: string - - description: 页码 - in: query - name: page - type: integer - - description: 每页大小 - in: query - name: pageSize - type: integer - - description: 请求路径 - in: query - name: path - type: string - - description: 响应Body - in: query - name: resp - type: string - - description: 请求状态 - in: query - name: status - type: integer - - description: 更新时间 - in: query - name: updatedAt - type: string - - description: 用户id - in: query - name: user_id - type: integer - produces: - - application/json - responses: - "200": - description: 分页获取SysOperationRecord列表,返回包括列表,总数,页码,每页数量 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.PageResult' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 分页获取SysOperationRecord列表 - tags: - - SysOperationRecord - /system/getServerInfo: - post: - produces: - - application/json - responses: - "200": - description: 获取服务器信息 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - additionalProperties: true - type: object - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 获取服务器信息 - tags: - - System - /system/getSystemConfig: - post: - produces: - - application/json - responses: - "200": - description: 获取配置文件内容,返回包括系统配置 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.SysConfigResponse' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 获取配置文件内容 - tags: - - System - /system/reloadSystem: - post: - produces: - - application/json - responses: - "200": - description: 重启系统 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 重启系统 - tags: - - System - /system/setSystemConfig: - post: - parameters: - - description: 设置配置文件内容 - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.System' - produces: - - application/json - responses: - "200": - description: 设置配置文件内容 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 设置配置文件内容 - tags: - - System - /user/SetSelfInfo: - put: - consumes: - - application/json - parameters: - - description: ID, 用户名, 昵称, 头像链接 - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysUser' - produces: - - application/json - responses: - "200": - description: 设置用户信息 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - additionalProperties: true - type: object - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 设置用户信息 - tags: - - SysUser - /user/admin_register: - post: - parameters: - - description: 用户名, 昵称, 密码, 角色ID - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.Register' - produces: - - application/json - responses: - "200": - description: 用户注册账号,返回包括用户信息 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.SysUserResponse' - msg: - type: string - type: object - summary: 用户注册账号 - tags: - - SysUser - /user/changePassword: - post: - parameters: - - description: 用户名, 原密码, 新密码 - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.ChangePasswordReq' - produces: - - application/json - responses: - "200": - description: 用户修改密码 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 用户修改密码 - tags: - - SysUser - /user/deleteUser: - delete: - consumes: - - application/json - parameters: - - description: 用户ID - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.GetById' - produces: - - application/json - responses: - "200": - description: 删除用户 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 删除用户 - tags: - - SysUser - /user/getUserInfo: - get: - consumes: - - application/json - produces: - - application/json - responses: - "200": - description: 获取用户信息 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - additionalProperties: true - type: object - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 获取用户信息 - tags: - - SysUser - /user/getUserList: - post: - consumes: - - application/json - parameters: - - description: 页码, 每页大小 - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.PageInfo' - produces: - - application/json - responses: - "200": - description: 分页获取用户列表,返回包括列表,总数,页码,每页数量 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - $ref: '#/definitions/response.PageResult' - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 分页获取用户列表 - tags: - - SysUser - /user/resetPassword: - post: - parameters: - - description: ID - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysUser' - produces: - - application/json - responses: - "200": - description: 重置用户密码 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 重置用户密码 - tags: - - SysUser - /user/setUserAuthorities: - post: - consumes: - - application/json - parameters: - - description: 用户UUID, 角色ID - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.SetUserAuthorities' - produces: - - application/json - responses: - "200": - description: 设置用户权限 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 设置用户权限 - tags: - - SysUser - /user/setUserAuthority: - post: - consumes: - - application/json - parameters: - - description: 用户UUID, 角色ID - in: body - name: data - required: true - schema: - $ref: '#/definitions/request.SetUserAuth' - produces: - - application/json - responses: - "200": - description: 设置用户权限 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 更改用户权限 - tags: - - SysUser - /user/setUserInfo: - put: - consumes: - - application/json - parameters: - - description: ID, 用户名, 昵称, 头像链接 - in: body - name: data - required: true - schema: - $ref: '#/definitions/system.SysUser' - produces: - - application/json - responses: - "200": - description: 设置用户信息 - schema: - allOf: - - $ref: '#/definitions/response.Response' - - properties: - data: - additionalProperties: true - type: object - msg: - type: string - type: object - security: - - ApiKeyAuth: [] - summary: 设置用户信息 - tags: - - SysUser -securityDefinitions: - ApiKeyAuth: - in: header - name: x-token - type: apiKey -swagger: "2.0" diff --git a/global/global.go b/global/global.go index 82c5c3d..8944336 100644 --- a/global/global.go +++ b/global/global.go @@ -1,10 +1,6 @@ package global import ( - "sync" - - "oplian/utils/timer" - "golang.org/x/sync/singleflight" "go.uber.org/zap" @@ -18,40 +14,16 @@ import ( var ( ZC_DB *gorm.DB - ZC_DBList map[string]*gorm.DB ZC_CONFIG config.Server ZC_VP *viper.Viper // ZC_LOG *oplogging.Logger ROOM_CONFIG config.ServerRoom ZC_LOG *zap.Logger - ZC_Timer timer.Timer = timer.NewTimerTask() - ZC_Concurrency_Control = &singleflight.Group{} - - BlackCache map[string]int64 - BlackLock sync.RWMutex + ZC_Concurrency_Control = &singleflight.Group{} - lock sync.RWMutex OpUUID uuid.UUID OpC2UUID uuid.UUID GateWayID uuid.UUID LocalIP string ) - -// GetGlobalDBByDBName 通过名称获取db list中的db -func GetGlobalDBByDBName(dbname string) *gorm.DB { - lock.RLock() - defer lock.RUnlock() - return ZC_DBList[dbname] -} - -// MustGetGlobalDBByDBName 通过名称获取db 如果不存在则panic -func MustGetGlobalDBByDBName(dbname string) *gorm.DB { - lock.RLock() - defer lock.RUnlock() - db, ok := ZC_DBList[dbname] - if !ok || db == nil { - panic("db no init") - } - return db -} diff --git a/go.mod b/go.mod index 1e06ff6..7694e69 100644 --- a/go.mod +++ b/go.mod @@ -13,12 +13,10 @@ require ( github.com/filecoin-project/go-address v1.1.0 github.com/filecoin-project/go-fil-commcid v0.1.0 github.com/filecoin-project/go-fil-commp-hashhash v0.1.0 - github.com/filecoin-project/lotus v1.25.0 github.com/flipped-aurora/ws v1.0.2 github.com/fsnotify/fsnotify v1.6.0 github.com/fvbock/endless v0.0.0-20170109170031-447134032cb6 github.com/gin-gonic/gin v1.9.0 - github.com/go-redis/redis/v8 v8.11.4 github.com/go-sql-driver/mysql v1.6.0 github.com/golang-jwt/jwt/v4 v4.3.0 github.com/golang/protobuf v1.5.3 @@ -52,7 +50,6 @@ require ( github.com/shirou/gopsutil/v3 v3.22.5 github.com/shopspring/decimal v1.2.0 github.com/spf13/viper v1.7.0 - github.com/stretchr/testify v1.8.4 github.com/swaggo/files v1.0.1 github.com/swaggo/gin-swagger v1.6.0 github.com/swaggo/swag v1.8.12 @@ -63,7 +60,6 @@ require ( go.uber.org/zap v1.25.0 golang.org/x/crypto v0.12.0 golang.org/x/sync v0.3.0 - golang.org/x/text v0.12.0 golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 google.golang.org/grpc v1.55.0 google.golang.org/protobuf v1.31.0 @@ -73,49 +69,17 @@ require ( ) require ( - github.com/DataDog/zstd v1.4.5 // indirect - github.com/GeertJohan/go.incremental v1.0.0 // indirect - github.com/GeertJohan/go.rice v1.0.3 // indirect github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible // indirect github.com/KyleBanks/depth v1.2.1 // indirect github.com/PuerkitoBio/purell v1.1.1 // indirect github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect - github.com/StackExchange/wmi v1.2.1 // indirect - github.com/akavel/rsrc v0.8.0 // indirect github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 // indirect + github.com/benbjohnson/clock v1.3.5 // indirect github.com/bytedance/sonic v1.8.0 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect github.com/crackcomm/go-gitignore v0.0.0-20170627025303-887ab5e44cc3 // indirect - github.com/daaku/go.zipexe v1.0.2 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/denisenkom/go-mssqldb v0.12.0 // indirect - github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/filecoin-project/go-amt-ipld/v2 v2.1.0 // indirect - github.com/filecoin-project/go-amt-ipld/v3 v3.1.0 // indirect - github.com/filecoin-project/go-amt-ipld/v4 v4.2.0 // indirect - github.com/filecoin-project/go-bitfield v0.2.4 // indirect - github.com/filecoin-project/go-cbor-util v0.0.1 // indirect - github.com/filecoin-project/go-data-transfer/v2 v2.0.0-rc7 // indirect - github.com/filecoin-project/go-fil-markets v1.28.3 // indirect - github.com/filecoin-project/go-hamt-ipld v0.1.5 // indirect - github.com/filecoin-project/go-hamt-ipld/v2 v2.0.0 // indirect - github.com/filecoin-project/go-hamt-ipld/v3 v3.1.0 // indirect - github.com/filecoin-project/go-padreader v0.0.1 // indirect - github.com/filecoin-project/go-state-types v0.12.8 // indirect - github.com/filecoin-project/go-statemachine v1.0.3 // indirect - github.com/filecoin-project/go-statestore v0.2.0 // indirect - github.com/filecoin-project/kubo-api-client v0.0.1 // indirect - github.com/filecoin-project/specs-actors v0.9.15 // indirect - github.com/filecoin-project/specs-actors/v2 v2.3.6 // indirect - github.com/filecoin-project/specs-actors/v3 v3.1.2 // indirect - github.com/filecoin-project/specs-actors/v4 v4.0.2 // indirect - github.com/filecoin-project/specs-actors/v5 v5.0.6 // indirect - github.com/filecoin-project/specs-actors/v6 v6.0.2 // indirect - github.com/filecoin-project/specs-actors/v7 v7.0.1 // indirect - github.com/gbrlsnchs/jwt/v3 v3.0.1 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/glebarez/go-sqlite v1.16.0 // indirect github.com/glebarez/sqlite v1.4.3 // indirect @@ -134,20 +98,14 @@ require ( github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect github.com/golang-sql/sqlexp v0.0.0-20170517235910-f1bb20e5a188 // indirect github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect - github.com/golang/mock v1.6.0 // indirect - github.com/hannahhoward/cbor-gen-for v0.0.0-20230214144701-5d17c9d5243c // indirect - github.com/hannahhoward/go-pubsub v0.0.0-20200423002714-8d62886cc36e // indirect + github.com/gopherjs/gopherjs v0.0.0-20190812055157-5d271430af9f // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/golang-lru v0.6.0 // indirect - github.com/hashicorp/golang-lru/v2 v2.0.5 // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/icza/backscanner v0.0.0-20210726202459-ac2ffc679f94 // indirect github.com/ipfs/bbloom v0.0.4 // indirect github.com/ipfs/go-bitfield v1.1.0 // indirect github.com/ipfs/go-block-format v0.1.2 // indirect - github.com/ipfs/go-graphsync v0.14.6 // indirect - github.com/ipfs/go-ipfs-cmds v0.9.0 // indirect github.com/ipfs/go-ipfs-ds-help v1.1.0 // indirect github.com/ipfs/go-ipfs-exchange-interface v0.2.0 // indirect github.com/ipfs/go-ipfs-posinfo v0.0.1 // indirect @@ -167,12 +125,10 @@ require ( github.com/jackc/pgtype v1.10.0 // indirect github.com/jackc/pgx/v4 v4.15.0 // indirect github.com/jbenet/goprocess v0.1.4 // indirect - github.com/jessevdk/go-flags v1.4.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect github.com/jonboulle/clockwork v0.2.2 // indirect github.com/josharian/intern v1.0.0 // indirect - github.com/jpillora/backoff v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.16.7 // indirect github.com/klauspost/cpuid/v2 v2.2.5 // indirect @@ -180,40 +136,30 @@ require ( github.com/lestrrat-go/strftime v1.0.6 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/libp2p/go-libp2p v0.30.0 // indirect - github.com/libp2p/go-libp2p-pubsub v0.9.3 // indirect - github.com/libp2p/go-msgio v0.3.0 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/magefile/mage v1.9.0 // indirect github.com/magiconair/properties v1.8.1 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-isatty v0.0.19 // indirect - github.com/miekg/dns v1.1.55 // indirect github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 // indirect github.com/minio/sha256-simd v1.0.1 // indirect - github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mr-tron/base58 v1.2.0 // indirect github.com/multiformats/go-base36 v0.2.0 // indirect github.com/multiformats/go-multiaddr v0.11.0 // indirect - github.com/multiformats/go-multiaddr-dns v0.3.1 // indirect github.com/multiformats/go-multibase v0.2.0 // indirect github.com/multiformats/go-multicodec v0.9.0 // indirect github.com/multiformats/go-multihash v0.2.3 // indirect - github.com/multiformats/go-multistream v0.4.1 // indirect github.com/multiformats/go-varint v0.0.7 // indirect - github.com/nkovacs/streamquote v1.0.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pelletier/go-toml v1.6.0 // indirect github.com/pelletier/go-toml/v2 v2.0.6 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect github.com/polydawn/refmt v0.89.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/raulk/clock v1.1.0 // indirect + github.com/prometheus/common v0.42.0 // indirect + github.com/prometheus/procfs v0.9.0 // indirect github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 // indirect - github.com/rs/cors v1.7.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect - github.com/shirou/gopsutil v2.18.12+incompatible // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect github.com/spf13/afero v1.2.2 // indirect github.com/spf13/cast v1.3.1 // indirect @@ -224,26 +170,22 @@ require ( github.com/tklauser/numcpus v0.4.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.2.9 // indirect - github.com/valyala/bytebufferpool v1.0.0 // indirect - github.com/valyala/fasttemplate v1.0.1 // indirect - github.com/whyrusleeping/bencher v0.0.0-20190829221104-bb6607aa8bba // indirect github.com/whyrusleeping/cbor-gen v0.0.0-20230923211252-36a87e1ba72f // indirect github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect github.com/yinheli/mahonia v0.0.0-20131226213531-0eef680515cc // indirect github.com/yusufpapurcu/wmi v1.2.2 // indirect - go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/otel v1.16.0 // indirect go.opentelemetry.io/otel/metric v1.16.0 // indirect go.opentelemetry.io/otel/trace v1.16.0 // indirect go.uber.org/atomic v1.11.0 // indirect + go.uber.org/goleak v1.2.1 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect - golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 // indirect golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb // indirect - golang.org/x/mod v0.12.0 // indirect golang.org/x/net v0.14.0 // indirect golang.org/x/sys v0.15.0 // indirect + golang.org/x/text v0.12.0 // indirect golang.org/x/tools v0.12.1-0.20230815132531-74c255bcf846 // indirect google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect gopkg.in/ini.v1 v1.55.0 // indirect diff --git a/go.sum b/go.sum index c4c06db..9e77133 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,5 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.31.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.37.0/go.mod h1:TS1dMSSfndXH133OKGwekG838Om/cQT0BUHV3HcBgoo= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= @@ -12,14 +10,7 @@ cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7 cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU= -dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4= -dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU= -git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= -github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= -github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= github.com/Azure/azure-sdk-for-go/sdk/azcore v0.19.0/go.mod h1:h6H6c8enJmmocHUbLiiGY6sx7f9i+X3m1CHdd5c6Rdw= github.com/Azure/azure-sdk-for-go/sdk/azidentity v0.11.0/go.mod h1:HcM1YX14R7CJcghJGOYCgdezslRSVzqwLf/q+4Y2r/0= github.com/Azure/azure-sdk-for-go/sdk/internal v0.7.0/go.mod h1:yqy467j36fJxcRV2TzfVZ1pCb5vxm4BtZPUdYWe/Xo8= @@ -27,15 +18,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ= -github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= -github.com/GeertJohan/go.incremental v1.0.0 h1:7AH+pY1XUgQE4Y1HcXYaMqAI0m9yrFqo/jt0CW30vsg= -github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0= -github.com/GeertJohan/go.rice v1.0.3 h1:k5viR+xGtIhF61125vCE1cmJ5957RQGXG6dmbaWZSmI= -github.com/GeertJohan/go.rice v1.0.3/go.mod h1:XVdrU4pW00M4ikZed5q56tPf1v2KwnIKeIdc9CBYNt4= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible h1:1G1pk05UrOh0NlF1oeaaix1x8XzrfjIDK47TY0Zehcw= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc= github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE= github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc= @@ -45,107 +29,47 @@ github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tN github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= -github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= -github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= -github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= -github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= -github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= -github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= -github.com/akavel/rsrc v0.8.0 h1:zjWn7ukO9Kc5Q62DOJCcxGpXC18RawVtYAGdz2aLlfw= -github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/alecthomas/units v0.0.0-20210927113745-59d0afb8317a/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 h1:s6gZFSlWYmbqAuRjVTiNNhvNRfY2Wxp9nhfyel4rklc= github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= -github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= -github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= -github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= -github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= +github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bep/debounce v1.2.1 h1:v67fRdBA9UQu2NhLFXrSg0Brw7CexQekrBwDMM8bzeY= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= -github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= -github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= -github.com/btcsuite/btcd v0.0.0-20190523000118-16327141da8c/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI= -github.com/btcsuite/btcd v0.0.0-20190824003749-130ea5bddde3/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI= -github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= -github.com/btcsuite/btcd v0.21.0-beta/go.mod h1:ZSWyehm27aAuS9bvkATT+Xte3hjHZ+MRgMY/8NJ7K94= -github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= -github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= -github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= -github.com/btcsuite/btcutil v1.0.2/go.mod h1:j9HUFwoQRsZL3V4n+qG+CUnEGHOarIxfC3Le2Yhbcts= -github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= -github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= -github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= -github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= -github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= -github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= -github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= -github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= github.com/bytedance/sonic v1.8.0 h1:ea0Xadu+sHlu7x5O3gKhRpQ1IKiMrSiHttPF0ybECuA= github.com/bytedance/sonic v1.8.0/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= -github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/casbin/casbin/v2 v2.37.4/go.mod h1:vByNa/Fchek0KZUgG5wEsl7iFsiviAYKRtgrQfcJqHg= github.com/casbin/casbin/v2 v2.51.0 h1:BC41imD9Z2coIJpELapy2h5kMT+lB4vFDTYpMhTsU4A= github.com/casbin/casbin/v2 v2.51.0/go.mod h1:vByNa/Fchek0KZUgG5wEsl7iFsiviAYKRtgrQfcJqHg= github.com/casbin/gorm-adapter/v3 v3.7.3 h1:tp3EL3vS31dF+GX0n3QwUytQlrFOPXtOKKZ7SZtLOA8= github.com/casbin/gorm-adapter/v3 v3.7.3/go.mod h1:7mwHmC2phiw6N4gDWlzi+c4DUX7zaVmQC/hINsRgBDg= -github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams= github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= -github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/codegangsta/negroni v1.0.0 h1:+aYywywx4bnKXWvoWtRfJ91vC59NbEhEY03sZjQhbVY= github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= -github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f h1:JOrtw2xFKzlg+cbHpyrpLDmnN1HqhBfnX7WDiW7eG2c= github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -154,152 +78,37 @@ github.com/crackcomm/go-gitignore v0.0.0-20170627025303-887ab5e44cc3/go.mod h1:p github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cskr/pubsub v1.0.2 h1:vlOzMhl6PFn60gRlTQQsIfVwaPB/B/8MziK8FhEPt/0= -github.com/cskr/pubsub v1.0.2/go.mod h1:/8MzYXk/NJAz782G8RPkFzXTZVu63VotefPnR9TIRis= -github.com/daaku/go.zipexe v1.0.2 h1:Zg55YLYTr7M9wjKn8SY/WcpuuEi+kR2u4E8RhvpyXmk= -github.com/daaku/go.zipexe v1.0.2/go.mod h1:5xWogtqlYnfBXkSB1o9xysukNP9GTvaNkqzUZbt3Bw8= -github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018/go.mod h1:rQYf4tfk5sSwFsnDg3qYaBxSjsD9S8+59vW0dKUgme4= github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c h1:pFUpOrbxDR6AkioZ1ySsx5yxlDQZ8stG2b88gTPxgJU= -github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c/go.mod h1:6UhI8N9EjYm1c2odKpFpAYeR8dsBeM7PtzQhRgxRr9U= -github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= -github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= github.com/denisenkom/go-mssqldb v0.12.0 h1:VtrkII767ttSPNRfFekePK3sctr+joXgO58stqQbtUA= github.com/denisenkom/go-mssqldb v0.12.0/go.mod h1:iiK0YP1ZeepvmBQk/QpLEhhTNJgfzrpArPY/aFvc9yU= -github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= -github.com/dgraph-io/badger v1.6.0-rc1/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= -github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= -github.com/dgraph-io/badger v1.6.1/go.mod h1:FRmFw3uxvcpa8zG3Rxs0th+hCLIuaQg8HlNV5bjgnuU= -github.com/dgraph-io/ristretto v0.0.2/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= -github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= -github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/elastic/gosigar v0.14.2 h1:Dg80n8cr90OZ7x+bAax/QjoW/XqTI11RmA79ZwIm9/4= -github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/filecoin-project/dagstore v0.5.2 h1:Nd6oXdnolbbVhpMpkYT5PJHOjQp4OBSntHpMV5pxj3c= -github.com/filecoin-project/filecoin-ffi v0.30.4-0.20200910194244-f640612a1a1f/go.mod h1:+If3s2VxyjZn+KGGZIoRXBDSFQ9xL404JBJGf4WhEj0= -github.com/filecoin-project/filecoin-ffi v0.30.4-0.20220519234331-bfd1f5f9fe38 h1:z33TKlxrdCmZHHu9QTy26AmmrcqYbpIZq+9VaQIyFQo= -github.com/filecoin-project/go-address v0.0.3/go.mod h1:jr8JxKsYx+lQlQZmF5i2U0Z+cGQ59wMIps/8YW/lDj8= -github.com/filecoin-project/go-address v0.0.5/go.mod h1:jr8JxKsYx+lQlQZmF5i2U0Z+cGQ59wMIps/8YW/lDj8= github.com/filecoin-project/go-address v1.1.0 h1:ofdtUtEsNxkIxkDw67ecSmvtzaVSdcea4boAmLbnHfE= github.com/filecoin-project/go-address v1.1.0/go.mod h1:5t3z6qPmIADZBtuE9EIzi0EwzcRy2nVhpo0I/c1r0OA= -github.com/filecoin-project/go-amt-ipld/v2 v2.1.0 h1:t6qDiuGYYngDqaLc2ZUvdtAg4UNxPeOYaXhBWSNsVaM= -github.com/filecoin-project/go-amt-ipld/v2 v2.1.0/go.mod h1:nfFPoGyX0CU9SkXX8EoCcSuHN1XcbN0c6KBh7yvP5fs= -github.com/filecoin-project/go-amt-ipld/v3 v3.0.0/go.mod h1:Qa95YNAbtoVCTSVtX38aAC1ptBnJfPma1R/zZsKmx4o= -github.com/filecoin-project/go-amt-ipld/v3 v3.1.0 h1:ZNJ9tEG5bE72vBWYiuh5bkxJVM3ViHNOmQ7qew9n6RE= -github.com/filecoin-project/go-amt-ipld/v3 v3.1.0/go.mod h1:UjM2QhDFrrjD5s1CdnkJkat4ga+LqZBZgTMniypABRo= -github.com/filecoin-project/go-amt-ipld/v4 v4.0.0/go.mod h1:gF053YQ4BIpzTNDoEwHZas7U3oAwncDVGvOHyY8oDpE= -github.com/filecoin-project/go-amt-ipld/v4 v4.2.0 h1:DQTXQwMXxaetd+lhZGODjt5qC1WYT7tMAlYrWqI/fwI= -github.com/filecoin-project/go-amt-ipld/v4 v4.2.0/go.mod h1:0eDVF7pROvxrsxvLJx+SJZXqRaXXcEPUcgb/rG0zGU4= -github.com/filecoin-project/go-bitfield v0.2.0/go.mod h1:CNl9WG8hgR5mttCnUErjcQjGvuiZjRqK9rHVBsQF4oM= -github.com/filecoin-project/go-bitfield v0.2.3/go.mod h1:CNl9WG8hgR5mttCnUErjcQjGvuiZjRqK9rHVBsQF4oM= -github.com/filecoin-project/go-bitfield v0.2.4 h1:uZ7MeE+XfM5lqrHJZ93OnhQKc/rveW8p9au0C68JPgk= -github.com/filecoin-project/go-bitfield v0.2.4/go.mod h1:CNl9WG8hgR5mttCnUErjcQjGvuiZjRqK9rHVBsQF4oM= -github.com/filecoin-project/go-cbor-util v0.0.0-20191219014500-08c40a1e63a2/go.mod h1:pqTiPHobNkOVM5thSRsHYjyQfq7O5QSCMhvuu9JoDlg= -github.com/filecoin-project/go-cbor-util v0.0.1 h1:E1LYZYTtjfAQwCReho0VXvbu8t3CYAVPiMx8EiV/VAs= -github.com/filecoin-project/go-cbor-util v0.0.1/go.mod h1:pqTiPHobNkOVM5thSRsHYjyQfq7O5QSCMhvuu9JoDlg= -github.com/filecoin-project/go-commp-utils v0.1.3 h1:rTxbkNXZU7FLgdkBk8RsQIEOuPONHykEoX3xGk41Fkw= -github.com/filecoin-project/go-commp-utils v0.1.3/go.mod h1:3ENlD1pZySaUout0p9ANQrY3fDFoXdqyX04J+dWpK30= -github.com/filecoin-project/go-commp-utils/nonffi v0.0.0-20220905160352-62059082a837/go.mod h1:e2YBjSblNVoBckkbv3PPqsq71q98oFkFqL7s1etViGo= -github.com/filecoin-project/go-crypto v0.0.0-20191218222705-effae4ea9f03/go.mod h1:+viYnvGtUTgJRdy6oaeF4MTFKAfatX071MPDPBL11EQ= -github.com/filecoin-project/go-crypto v0.0.1 h1:AcvpSGGCgjaY8y1az6AMfKQWreF/pWO2JJGLl6gCq6o= -github.com/filecoin-project/go-data-transfer/v2 v2.0.0-rc7 h1:v+zJS5B6pA3ptWZS4t8tbt1Hz9qENnN4nVr1w99aSWc= -github.com/filecoin-project/go-data-transfer/v2 v2.0.0-rc7/go.mod h1:V3Y4KbttaCwyg1gwkP7iai8CbQx4mZUGjd3h9GZWLKE= -github.com/filecoin-project/go-ds-versioning v0.1.2 h1:to4pTadv3IeV1wvgbCbN6Vqd+fu+7tveXgv/rCEZy6w= -github.com/filecoin-project/go-fil-commcid v0.0.0-20200716160307-8f644712406f/go.mod h1:Eaox7Hvus1JgPrL5+M3+h7aSPHc0cVqpSxA+TxIEpZQ= -github.com/filecoin-project/go-fil-commcid v0.0.0-20201016201715-d41df56b4f6a/go.mod h1:Eaox7Hvus1JgPrL5+M3+h7aSPHc0cVqpSxA+TxIEpZQ= +github.com/filecoin-project/go-crypto v0.0.0-20191218222705-effae4ea9f03 h1:2pMXdBnCiXjfCYx/hLqFxccPoqsSveQFxVLvNxy9bus= github.com/filecoin-project/go-fil-commcid v0.1.0 h1:3R4ds1A9r6cr8mvZBfMYxTS88OqLYEo6roi+GiIeOh8= github.com/filecoin-project/go-fil-commcid v0.1.0/go.mod h1:Eaox7Hvus1JgPrL5+M3+h7aSPHc0cVqpSxA+TxIEpZQ= github.com/filecoin-project/go-fil-commp-hashhash v0.1.0 h1:imrrpZWEHRnNqqv0tN7LXep5bFEVOVmQWHJvl2mgsGo= github.com/filecoin-project/go-fil-commp-hashhash v0.1.0/go.mod h1:73S8WSEWh9vr0fDJVnKADhfIv/d6dCbAGaAGWbdJEI8= -github.com/filecoin-project/go-fil-markets v1.28.3 h1:2cFu7tLZYrfNz4LnxjgERaVD7k5+Wwp0H76mnnTGPBk= -github.com/filecoin-project/go-fil-markets v1.28.3/go.mod h1:eryxo/oVgIxaR5g5CNr9PlvZOi+u/bak0IsPL/PT1hk= -github.com/filecoin-project/go-hamt-ipld v0.1.5 h1:uoXrKbCQZ49OHpsTCkrThPNelC4W3LPEk0OrS/ytIBM= -github.com/filecoin-project/go-hamt-ipld v0.1.5/go.mod h1:6Is+ONR5Cd5R6XZoCse1CWaXZc0Hdb/JeX+EQCQzX24= -github.com/filecoin-project/go-hamt-ipld/v2 v2.0.0 h1:b3UDemBYN2HNfk3KOXNuxgTTxlWi3xVvbQP0IT38fvM= -github.com/filecoin-project/go-hamt-ipld/v2 v2.0.0/go.mod h1:7aWZdaQ1b16BVoQUYR+eEvrDCGJoPLxFpDynFjYfBjI= -github.com/filecoin-project/go-hamt-ipld/v3 v3.0.1/go.mod h1:gXpNmr3oQx8l3o7qkGyDjJjYSRX7hp/FGOStdqrWyDI= -github.com/filecoin-project/go-hamt-ipld/v3 v3.1.0 h1:rVVNq0x6RGQIzCo1iiJlGFm9AGIZzeifggxtKMU7zmI= -github.com/filecoin-project/go-hamt-ipld/v3 v3.1.0/go.mod h1:bxmzgT8tmeVQA1/gvBwFmYdT8SOFUwB3ovSUfG1Ux0g= -github.com/filecoin-project/go-padreader v0.0.0-20200903213702-ed5fae088b20/go.mod h1:mPn+LRRd5gEKNAtc+r3ScpW2JRU/pj4NBKdADYWHiak= -github.com/filecoin-project/go-padreader v0.0.1 h1:8h2tVy5HpoNbr2gBRr+WD6zV6VD6XHig+ynSGJg8ZOs= -github.com/filecoin-project/go-padreader v0.0.1/go.mod h1:VYVPJqwpsfmtoHnAmPx6MUwmrK6HIcDqZJiuZhtmfLQ= -github.com/filecoin-project/go-state-types v0.0.0-20200903145444-247639ffa6ad/go.mod h1:IQ0MBPnonv35CJHtWSN3YY1Hz2gkPru1Q9qoaYLxx9I= -github.com/filecoin-project/go-state-types v0.0.0-20200904021452-1883f36ca2f4/go.mod h1:IQ0MBPnonv35CJHtWSN3YY1Hz2gkPru1Q9qoaYLxx9I= -github.com/filecoin-project/go-state-types v0.0.0-20200928172055-2df22083d8ab/go.mod h1:ezYnPf0bNkTsDibL/psSz5dy4B5awOJ/E7P2Saeep8g= -github.com/filecoin-project/go-state-types v0.0.0-20201102161440-c8033295a1fc/go.mod h1:ezYnPf0bNkTsDibL/psSz5dy4B5awOJ/E7P2Saeep8g= -github.com/filecoin-project/go-state-types v0.1.0/go.mod h1:ezYnPf0bNkTsDibL/psSz5dy4B5awOJ/E7P2Saeep8g= -github.com/filecoin-project/go-state-types v0.1.6/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q= -github.com/filecoin-project/go-state-types v0.1.10/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q= -github.com/filecoin-project/go-state-types v0.12.8 h1:W/UObdAsv+LbB9EfyLg92DSYoatzUWmlfV8FGyh30VA= -github.com/filecoin-project/go-state-types v0.12.8/go.mod h1:gR2NV0CSGSQwopxF+3In9nDh1sqvoYukLcs5vK0AHCA= -github.com/filecoin-project/go-statemachine v1.0.3 h1:N07o6alys+V1tNoSTi4WuuoeNC4erS/6jE74+NsgQuk= -github.com/filecoin-project/go-statemachine v1.0.3/go.mod h1:jZdXXiHa61n4NmgWFG4w8tnqgvZVHYbJ3yW7+y8bF54= -github.com/filecoin-project/go-statestore v0.1.0/go.mod h1:LFc9hD+fRxPqiHiaqUEZOinUJB4WARkRfNl10O7kTnI= -github.com/filecoin-project/go-statestore v0.2.0 h1:cRRO0aPLrxKQCZ2UOQbzFGn4WDNdofHZoGPjfNaAo5Q= -github.com/filecoin-project/go-statestore v0.2.0/go.mod h1:8sjBYbS35HwPzct7iT4lIXjLlYyPor80aU7t7a/Kspo= -github.com/filecoin-project/kubo-api-client v0.0.1 h1:IR1b+sm+VYxSRvbgECVv9SbhIgygcXcSoN1Q7xsHDXg= -github.com/filecoin-project/kubo-api-client v0.0.1/go.mod h1:c36PPMIVOkKfHDwDG5U05gUlPRY9wNuh/BePwo0e+6Y= -github.com/filecoin-project/lotus v1.25.0 h1:okHySAq5Z2ZCRtooIBmqi5jujFBoXzuay+KkdHGxp1c= -github.com/filecoin-project/lotus v1.25.0/go.mod h1:7How7BIQEbV/2gHJBjsNQ7ynHb7zXUmtO7QYImo4L3w= -github.com/filecoin-project/specs-actors v0.9.4/go.mod h1:BStZQzx5x7TmCkLv0Bpa07U6cPKol6fd3w9KjMPZ6Z4= -github.com/filecoin-project/specs-actors v0.9.13/go.mod h1:TS1AW/7LbG+615j4NsjMK1qlpAwaFsG9w0V2tg2gSao= -github.com/filecoin-project/specs-actors v0.9.15-0.20220514164640-94e0d5e123bd/go.mod h1:pjGEe3QlWtK20ju/aFRsiArbMX6Cn8rqEhhsiCM9xYE= -github.com/filecoin-project/specs-actors v0.9.15 h1:3VpKP5/KaDUHQKAMOg4s35g/syDaEBueKLws0vbsjMc= -github.com/filecoin-project/specs-actors v0.9.15/go.mod h1:pjGEe3QlWtK20ju/aFRsiArbMX6Cn8rqEhhsiCM9xYE= -github.com/filecoin-project/specs-actors/v2 v2.3.6 h1:UxnWTfQd7JsOae39/aHCK0m1IBjdcyymCJfqxuSkn+g= -github.com/filecoin-project/specs-actors/v2 v2.3.6/go.mod h1:DJMpxVRXvev9t8P0XWA26RmTzN+MHiL9IlItVLT0zUc= -github.com/filecoin-project/specs-actors/v3 v3.1.2 h1:Gq3gAbvdGLA/D0GKz1IJfewt9Fh7gA32TPt46Xv+1Cw= -github.com/filecoin-project/specs-actors/v3 v3.1.2/go.mod h1:uOJn+m6W8OW/1mdWMEvxeM1cjQPxmps7s1Z4bJ9V4kY= -github.com/filecoin-project/specs-actors/v4 v4.0.2 h1:VTsv30kIf1Keo8Jlu6Omco+2Ud0pG4EN5UAzyYCibh8= -github.com/filecoin-project/specs-actors/v4 v4.0.2/go.mod h1:zT0GVFxwFS93prGK0b/rMd1sePjRQKfAuodQ9DFAd6Y= -github.com/filecoin-project/specs-actors/v5 v5.0.6 h1:TLtA9hT3pHQF5vB83GmB+m6anw9u6MjdT+VVn/lyC+c= -github.com/filecoin-project/specs-actors/v5 v5.0.6/go.mod h1:myb/UGwESp0V1f1BACXSUrFgTWLvGUoG0ZZH7eqriFM= -github.com/filecoin-project/specs-actors/v6 v6.0.2 h1:K1xPRJoW5PBvb08QF9+4w1AjcnqwR6BjTmeltQFCvWo= -github.com/filecoin-project/specs-actors/v6 v6.0.2/go.mod h1:wnfVvPnYmzPZilNvSqCSSA/ZQX3rdV/U/Vf9EIoQhrI= -github.com/filecoin-project/specs-actors/v7 v7.0.1 h1:w72xCxijK7xs1qzmJiw+WYJaVt2EPHN8oiwpA1Ay3/4= -github.com/filecoin-project/specs-actors/v7 v7.0.1/go.mod h1:tPLEYXoXhcpyLh69Ccq91SOuLXsPWjHiY27CzawjUEk= github.com/flipped-aurora/ws v1.0.2 h1:oEUz7sgrbPENvgli7Q4QpC0NIEbJucgR4yjcDMg/AjY= github.com/flipped-aurora/ws v1.0.2/go.mod h1:RdyM2Fnvxx7f7A6WSmU1aAhDrQIAVW7LS/0LsAUE5mE= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/flynn/noise v1.0.0 h1:DlTHqmzmvcEiKj+4RYo/imoswx/4r6iBlCMfVtrMXpQ= -github.com/flynn/noise v1.0.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag= github.com/francoispqt/gojay v1.2.13 h1:d2m3sFjloqoIUQU3TsHBgj6qg/BVGlTBeHDUmyJnXKk= -github.com/francoispqt/gojay v1.2.13/go.mod h1:ehT5mTG4ua4581f1++1WLG0vPdaA9HaiDsoyrBGkyDY= -github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= -github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= -github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= -github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/fvbock/endless v0.0.0-20170109170031-447134032cb6 h1:6VSn3hB5U5GeA6kQw4TwWIWbOhtvR2hmbBJnTOtqTWc= github.com/fvbock/endless v0.0.0-20170109170031-447134032cb6/go.mod h1:YxOVT5+yHzKvwhsiSIWmbAYM3Dr9AEEbER2dVayfBkg= -github.com/gbrlsnchs/jwt/v3 v3.0.1 h1:lbUmgAKpxnClrKloyIwpxm4OuWeDl5wLk52G91ODPw4= -github.com/gbrlsnchs/jwt/v3 v3.0.1/go.mod h1:AncDcjXz18xetI3A6STfXq2w+LuTx8pQ8bGEwRN8zVM= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= @@ -311,13 +120,8 @@ github.com/glebarez/go-sqlite v1.16.0 h1:h28rHued+hGof3fNLksBcLwz/a71fiGZ/eIJHK0 github.com/glebarez/go-sqlite v1.16.0/go.mod h1:i8/JtqoqzBAFkrUTxbQFkQ05odCOds3j7NlDaXjqiPY= github.com/glebarez/sqlite v1.4.3 h1:ZABNo+2YIau8F8sZ7Qh/1h/ZnlSUMHFGD4zJKPval7A= github.com/glebarez/sqlite v1.4.3/go.mod h1:FcJlwP9scnxlQ5zxyl0+bn/qFjYcqG4eRvKYhs39QAQ= -github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= -github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= -github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= @@ -327,7 +131,6 @@ github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= @@ -351,14 +154,10 @@ github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91 github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-playground/validator/v10 v10.11.2 h1:q3SHpufmypg+erIExEKUmsgmhDTyhcJ38oeKGACXohU= github.com/go-playground/validator/v10 v10.11.2/go.mod h1:NieE624vt4SCTJtD87arVLvdmjPAeV8BQlHtMnw9D7s= -github.com/go-redis/redis/v8 v8.11.4 h1:kHoYkfZP6+pe04aFTnhDH6GDROa5yJdHJVNxV3F46Tg= -github.com/go-redis/redis/v8 v8.11.4/go.mod h1:2Z2wHZXdQpCDXEGzqMockDpNyYvi2l4Pxt6RJr792+w= -github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-yaml/yaml v2.1.0+incompatible/go.mod h1:w2MrLa16VYP0jy6N7M5kHaCkaLENm+P+Tv+MfurjSw0= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= @@ -369,15 +168,10 @@ github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= github.com/goccy/go-json v0.10.0 h1:mXKd9Qw4NuzShiRlOXKews24ufknHO7gx30lsDyokKA= github.com/goccy/go-json v0.10.0/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v4 v4.3.0 h1:kHL1vqdqWNfATmA0FNMdmZNMyZI1U6O31X4rlIPoBog= @@ -390,73 +184,40 @@ github.com/golang-sql/sqlexp v0.0.0-20170517235910-f1bb20e5a188/go.mod h1:vXjM/+ github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= -github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= -github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= -github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gopacket v1.1.17/go.mod h1:UdDNZ1OO62aGYVnPhxT1U6aI7ukYtA/kB8vaU0diBUM= github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= -github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20230817174616-7a8ec2ada47b h1:h9U78+dx9a4BKdQkBBos92HalKpaGKHrp+3Uo6yTodo= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= -github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/gookit/color v1.3.1 h1:PPD/C7sf8u2L8XQPdPgsWRoAiLQGZEZOzU3cf5IYYUk= @@ -464,32 +225,17 @@ github.com/gookit/color v1.3.1/go.mod h1:R3ogXq2B9rTbXoSHJ1HyUVAZ3poOJHpd9nQmyGZ github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v0.0.0-20190812055157-5d271430af9f h1:KMlcu9X58lhTA/KrfX8Bi1LQSO4pzoVjTiL3h4Jk+Zk= github.com/gopherjs/gopherjs v0.0.0-20190812055157-5d271430af9f/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= -github.com/hannahhoward/cbor-gen-for v0.0.0-20230214144701-5d17c9d5243c h1:iiD+p+U0M6n/FsO6XIZuOgobnNa48FxtyYFfWwLttUQ= -github.com/hannahhoward/cbor-gen-for v0.0.0-20230214144701-5d17c9d5243c/go.mod h1:jvfsLIxk0fY/2BKSQ1xf2406AKA5dwMmKKv0ADcOfN8= -github.com/hannahhoward/go-pubsub v0.0.0-20200423002714-8d62886cc36e h1:3YKHER4nmd7b5qy5t0GWDTwSn4OyRgfAXSmo6VnryBY= -github.com/hannahhoward/go-pubsub v0.0.0-20200423002714-8d62886cc36e/go.mod h1:I8h3MITA53gN9OnWGCgaMa0JWVRdXthWw4M3CPM54OY= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -504,197 +250,92 @@ github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerX github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o8jga4= github.com/hashicorp/golang-lru v0.6.0/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/golang-lru/v2 v2.0.5 h1:wW7h1TG88eUIJ2i69gaE3uNVtEPIagzhGvHgwfx2Vm4= -github.com/hashicorp/golang-lru/v2 v2.0.5/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= -github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= github.com/huin/goupnp v1.2.0 h1:uOKW26NG1hsSSbXIZ1IR7XP9Gjd1U8pnLaCMgntmkmY= -github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= -github.com/icza/backscanner v0.0.0-20210726202459-ac2ffc679f94 h1:9tcYMdi+7Rb1y0E9Del1DRHui7Ne3za5lLw6CjMJv/M= -github.com/icza/backscanner v0.0.0-20210726202459-ac2ffc679f94/go.mod h1:GYeBD1CF7AqnKZK+UCytLcY3G+UKo0ByXX/3xfdNyqQ= -github.com/icza/mighty v0.0.0-20180919140131-cfd07d671de6 h1:8UsGZ2rr2ksmEru6lToqnXgA8Mz1DP11X4zSJ159C3k= -github.com/icza/mighty v0.0.0-20180919140131-cfd07d671de6/go.mod h1:xQig96I1VNBDIWGCdTt54nHt6EeI639SmHycLYL7FkA= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= -github.com/ipfs/bbloom v0.0.1/go.mod h1:oqo8CVWsJFMOZqTglBG4wydCE4IQA/G2/SEofB0rjUI= github.com/ipfs/bbloom v0.0.4 h1:Gi+8EGJ2y5qiD5FbsbpX/TMNcJw8gSqr7eyjHa4Fhvs= github.com/ipfs/bbloom v0.0.4/go.mod h1:cS9YprKXpoZ9lT0n/Mw/a6/aFV6DTjTLYHeA+gyqMG0= github.com/ipfs/boxo v0.10.1 h1:q0ZhbyN6iNZLipd6txt1xotCiP/icfvdAQ4YpUi+cL4= github.com/ipfs/boxo v0.10.1/go.mod h1:1qgKq45mPRCxf4ZPoJV2lnXxyxucigILMJOrQrVivv8= -github.com/ipfs/go-bitfield v1.0.0/go.mod h1:N/UiujQy+K+ceU1EF5EkVd1TNqevLrCQMIcAEPrdtus= github.com/ipfs/go-bitfield v1.1.0 h1:fh7FIo8bSwaJEh6DdTWbCeZ1eqOaOkKFI74SCnsWbGA= github.com/ipfs/go-bitfield v1.1.0/go.mod h1:paqf1wjq/D2BBmzfTVFlJQ9IlFOZpg422HL0HqsGWHU= -github.com/ipfs/go-bitswap v0.1.0/go.mod h1:FFJEf18E9izuCqUtHxbWEvq+reg7o4CW5wSAE1wsxj0= -github.com/ipfs/go-bitswap v0.5.1/go.mod h1:P+ckC87ri1xFLvk74NlXdP0Kj9RmWAh4+H78sC6Qopo= github.com/ipfs/go-bitswap v0.11.0 h1:j1WVvhDX1yhG32NTC9xfxnqycqYIlhzEzLXG/cU1HyQ= -github.com/ipfs/go-block-format v0.0.1/go.mod h1:DK/YYcsSUIVAFNwo/KZCdIIbpN0ROH/baNLgayt4pFc= github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY= -github.com/ipfs/go-block-format v0.0.3/go.mod h1:4LmD4ZUw0mhO+JSKdpWwrzATiEfM7WWgQ8H5l6P8MVk= github.com/ipfs/go-block-format v0.1.2 h1:GAjkfhVx1f4YTODS6Esrj1wt2HhrtwTnhEr+DyPUaJo= github.com/ipfs/go-block-format v0.1.2/go.mod h1:mACVcrxarQKstUU3Yf/RdwbC4DzPV6++rO2a3d+a/KE= -github.com/ipfs/go-blockservice v0.1.0/go.mod h1:hzmMScl1kXHg3M2BjTymbVPjv627N7sYcvYaKbop39M= -github.com/ipfs/go-blockservice v0.2.1/go.mod h1:k6SiwmgyYgs4M/qt+ww6amPeUH9EISLRBnvUurKJhi8= github.com/ipfs/go-blockservice v0.5.1 h1:9pAtkyKAz/skdHTh0kH8VulzWp+qmSDD0aI17TYP/s0= github.com/ipfs/go-blockservice v0.5.1/go.mod h1:VpMblFEqG67A/H2sHKAemeH9vlURVavlysbdUI632yk= github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= -github.com/ipfs/go-cid v0.0.2/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= github.com/ipfs/go-cid v0.0.3/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= -github.com/ipfs/go-cid v0.0.4-0.20191112011718-79e75dffeb10/go.mod h1:/BYOuUoxkE+0f6tGzlzMvycuN+5l35VOR4Bpg2sCmds= -github.com/ipfs/go-cid v0.0.4/go.mod h1:4LLaPOQwmk5z9LBgQnpkivrx8BJjUyGwTXCd5Xfj6+M= github.com/ipfs/go-cid v0.0.5/go.mod h1:plgt+Y5MnOey4vO4UlUazGqdbEXuFYitED67FexhXog= -github.com/ipfs/go-cid v0.0.6-0.20200501230655-7c82f3b81c00/go.mod h1:plgt+Y5MnOey4vO4UlUazGqdbEXuFYitED67FexhXog= github.com/ipfs/go-cid v0.0.6/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I= -github.com/ipfs/go-cid v0.0.7/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I= -github.com/ipfs/go-cid v0.2.0/go.mod h1:P+HXFDF4CVhaVayiEb4wkAy7zBHxBwsJyt0Y5U6MLro= -github.com/ipfs/go-cid v0.3.2/go.mod h1:gQ8pKqT/sUxGY+tIwy1RPpAojYu7jAyCp5Tz1svoupw= github.com/ipfs/go-cid v0.4.1 h1:A/T3qGvxi4kpKWWcPC/PgbvDA2bjVLO7n4UeVwnbs/s= github.com/ipfs/go-cid v0.4.1/go.mod h1:uQHwDeX4c6CtyrFwdqyhpNcxVewur1M7l7fNU7LKwZk= -github.com/ipfs/go-cidutil v0.1.0 h1:RW5hO7Vcf16dplUU60Hs0AKDkQAVPVplr7lk97CFL+Q= -github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= -github.com/ipfs/go-datastore v0.0.5/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= -github.com/ipfs/go-datastore v0.1.1/go.mod h1:w38XXW9kVFNp57Zj5knbKWM2T+KOZCGDRVNdgPHtbHw= -github.com/ipfs/go-datastore v0.4.0/go.mod h1:SX/xMIKoCszPqp+z9JhPYCmoOoXTvaa13XEbGtsFUhA= -github.com/ipfs/go-datastore v0.4.1/go.mod h1:SX/xMIKoCszPqp+z9JhPYCmoOoXTvaa13XEbGtsFUhA= -github.com/ipfs/go-datastore v0.4.4/go.mod h1:SX/xMIKoCszPqp+z9JhPYCmoOoXTvaa13XEbGtsFUhA= -github.com/ipfs/go-datastore v0.4.5/go.mod h1:eXTcaaiN6uOlVCLS9GjJUJtlvJfM3xk23w3fyfrmmJs= github.com/ipfs/go-datastore v0.5.0/go.mod h1:9zhEApYMTl17C8YDp7JmU7sQZi2/wqiYh73hakZ90Bk= github.com/ipfs/go-datastore v0.6.0 h1:JKyz+Gvz1QEZw0LsX1IBn+JFCJQH4SJVFtM4uWU0Myk= github.com/ipfs/go-datastore v0.6.0/go.mod h1:rt5M3nNbSO/8q1t4LNkLyUwRs8HupMeN/8O4Vn9YAT8= github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= -github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= -github.com/ipfs/go-ds-badger v0.0.5/go.mod h1:g5AuuCGmr7efyzQhLL8MzwqcauPojGPUaHzfGTzuE3s= -github.com/ipfs/go-ds-badger v0.2.1/go.mod h1:Tx7l3aTph3FMFrRS838dcSJh+jjA7cX9DrGVwx/NOwE= -github.com/ipfs/go-ds-badger v0.2.3/go.mod h1:pEYw0rgg3FIrywKKnL+Snr+w/LjJZVMTBRn4FS6UHUk= -github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= -github.com/ipfs/go-ds-leveldb v0.4.1/go.mod h1:jpbku/YqBSsBc1qgME8BkWS4AxzF2cEu1Ii2r79Hh9s= -github.com/ipfs/go-ds-leveldb v0.4.2/go.mod h1:jpbku/YqBSsBc1qgME8BkWS4AxzF2cEu1Ii2r79Hh9s= -github.com/ipfs/go-graphsync v0.14.6 h1:NPxvuUy4Z08Mg8dwpBzwgbv/PGLIufSJ1sle6iAX8yo= -github.com/ipfs/go-graphsync v0.14.6/go.mod h1:yT0AfjFgicOoWdAlUJ96tQ5AkuGI4r1taIQX/aHbBQo= -github.com/ipfs/go-hamt-ipld v0.1.1/go.mod h1:1EZCr2v0jlCnhpa+aZ0JZYp8Tt2w16+JJOAVz17YcDk= -github.com/ipfs/go-ipfs-blockstore v0.0.1/go.mod h1:d3WClOmRQKFnJ0Jz/jj/zmksX0ma1gROTlovZKBmN08= -github.com/ipfs/go-ipfs-blockstore v0.2.1/go.mod h1:jGesd8EtCM3/zPgx+qr0/feTXGUeRai6adgwC+Q+JvE= github.com/ipfs/go-ipfs-blockstore v1.3.0 h1:m2EXaWgwTzAfsmt5UdJ7Is6l4gJcaM/A12XwJyvYvMM= github.com/ipfs/go-ipfs-blockstore v1.3.0/go.mod h1:KgtZyc9fq+P2xJUiCAzbRdhhqJHvsw8u2Dlqy2MyRTE= github.com/ipfs/go-ipfs-blocksutil v0.0.1 h1:Eh/H4pc1hsvhzsQoMEP3Bke/aW5P5rVM1IWFJMcGIPQ= -github.com/ipfs/go-ipfs-blocksutil v0.0.1/go.mod h1:Yq4M86uIOmxmGPUHv/uI7uKqZNtLb449gwKqXjIsnRk= -github.com/ipfs/go-ipfs-chunker v0.0.1/go.mod h1:tWewYK0we3+rMbOh7pPFGDyypCtvGcBFymgY4rSDLAw= github.com/ipfs/go-ipfs-chunker v0.0.5 h1:ojCf7HV/m+uS2vhUGWcogIIxiO5ubl5O57Q7NapWLY8= github.com/ipfs/go-ipfs-chunker v0.0.5/go.mod h1:jhgdF8vxRHycr00k13FM8Y0E+6BoalYeobXmUyTreP8= -github.com/ipfs/go-ipfs-cmds v0.9.0 h1:K0VcXg1l1k6aY6sHnoxYcyimyJQbcV1ueXuWgThmK9Q= -github.com/ipfs/go-ipfs-cmds v0.9.0/go.mod h1:SBFHK8WNwC416QWH9Vz1Ql42SSMAOqKpaHUMBu3jpLo= github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= github.com/ipfs/go-ipfs-delay v0.0.1 h1:r/UXYyRcddO6thwOnhiznIAiSvxMECGgtv35Xs1IeRQ= -github.com/ipfs/go-ipfs-delay v0.0.1/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= -github.com/ipfs/go-ipfs-ds-help v0.0.1/go.mod h1:gtP9xRaZXqIQRh1HRpp595KbBEdgqWFxefeVKOV8sxo= -github.com/ipfs/go-ipfs-ds-help v0.1.1/go.mod h1:SbBafGJuGsPI/QL3j9Fc5YPLeAu+SzOkI0gFwAg+mOs= github.com/ipfs/go-ipfs-ds-help v1.1.0 h1:yLE2w9RAsl31LtfMt91tRZcrx+e61O5mDxFRR994w4Q= github.com/ipfs/go-ipfs-ds-help v1.1.0/go.mod h1:YR5+6EaebOhfcqVCyqemItCLthrpVNot+rsOU/5IatU= -github.com/ipfs/go-ipfs-exchange-interface v0.0.1/go.mod h1:c8MwfHjtQjPoDyiy9cFquVtVHkO9b9Ob3FG91qJnWCM= -github.com/ipfs/go-ipfs-exchange-interface v0.1.0/go.mod h1:ych7WPlyHqFvCi/uQI48zLZuAWVP5iTQPXEfVaw5WEI= github.com/ipfs/go-ipfs-exchange-interface v0.2.0 h1:8lMSJmKogZYNo2jjhUs0izT+dck05pqUw4mWNW9Pw6Y= github.com/ipfs/go-ipfs-exchange-interface v0.2.0/go.mod h1:z6+RhJuDQbqKguVyslSOuVDhqF9JtTrO3eptSAiW2/Y= -github.com/ipfs/go-ipfs-exchange-offline v0.0.1/go.mod h1:WhHSFCVYX36H/anEKQboAzpUws3x7UeEGkzQc3iNkM0= -github.com/ipfs/go-ipfs-exchange-offline v0.1.1/go.mod h1:vTiBRIbzSwDD0OWm+i3xeT0mO7jG2cbJYatp3HPk5XY= github.com/ipfs/go-ipfs-exchange-offline v0.3.0 h1:c/Dg8GDPzixGd0MC8Jh6mjOwU57uYokgWRFidfvEkuA= github.com/ipfs/go-ipfs-exchange-offline v0.3.0/go.mod h1:MOdJ9DChbb5u37M1IcbrRB02e++Z7521fMxqCNRrz9s= -github.com/ipfs/go-ipfs-files v0.0.3/go.mod h1:INEFm0LL2LWXBhNJ2PMIIb2w45hpXgPjNoE7yA8Y1d4= -github.com/ipfs/go-ipfs-files v0.0.4/go.mod h1:INEFm0LL2LWXBhNJ2PMIIb2w45hpXgPjNoE7yA8Y1d4= github.com/ipfs/go-ipfs-files v0.3.0 h1:fallckyc5PYjuMEitPNrjRfpwl7YFt69heCOUhsbGxQ= github.com/ipfs/go-ipfs-files v0.3.0/go.mod h1:xAUtYMwB+iu/dtf6+muHNSFQCJG2dSiStR2P6sn9tIM= github.com/ipfs/go-ipfs-posinfo v0.0.1 h1:Esoxj+1JgSjX0+ylc0hUmJCOv6V2vFoZiETLR6OtpRs= github.com/ipfs/go-ipfs-posinfo v0.0.1/go.mod h1:SwyeVP+jCwiDu0C313l/8jg6ZxM0qqtlt2a0vILTc1A= -github.com/ipfs/go-ipfs-pq v0.0.1/go.mod h1:LWIqQpqfRG3fNc5XsnIhz/wQ2XXGyugQwls7BgUmUfY= -github.com/ipfs/go-ipfs-pq v0.0.2/go.mod h1:LWIqQpqfRG3fNc5XsnIhz/wQ2XXGyugQwls7BgUmUfY= github.com/ipfs/go-ipfs-pq v0.0.3 h1:YpoHVJB+jzK15mr/xsWC574tyDLkezVrDNeaalQBsTE= -github.com/ipfs/go-ipfs-routing v0.1.0/go.mod h1:hYoUkJLyAUKhF58tysKpids8RNDPO42BVMgK5dNsoqY= -github.com/ipfs/go-ipfs-routing v0.2.1/go.mod h1:xiNNiwgjmLqPS1cimvAw6EyB9rkVDbiocA4yY+wRNLM= github.com/ipfs/go-ipfs-routing v0.3.0 h1:9W/W3N+g+y4ZDeffSgqhgo7BsBSJwPMcyssET9OWevc= github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= -github.com/ipfs/go-ipfs-util v0.0.2/go.mod h1:CbPtkWJzjLdEcezDns2XYaehFVNXG9zrdrtMecczcsQ= github.com/ipfs/go-ipfs-util v0.0.3 h1:2RFdGez6bu2ZlZdI+rWfIdbQb1KudQp3VGwPtdNCmE0= github.com/ipfs/go-ipfs-util v0.0.3/go.mod h1:LHzG1a0Ig4G+iZ26UUOMjHd+lfM84LZCrn17xAKWBvs= -github.com/ipfs/go-ipld-cbor v0.0.2/go.mod h1:wTBtrQZA3SoFKMVkp6cn6HMRteIB1VsmHA0AQFOn7Nc= -github.com/ipfs/go-ipld-cbor v0.0.3/go.mod h1:wTBtrQZA3SoFKMVkp6cn6HMRteIB1VsmHA0AQFOn7Nc= -github.com/ipfs/go-ipld-cbor v0.0.4/go.mod h1:BkCduEx3XBCO6t2Sfo5BaHzuok7hbhdMm9Oh8B2Ftq4= -github.com/ipfs/go-ipld-cbor v0.0.5/go.mod h1:BkCduEx3XBCO6t2Sfo5BaHzuok7hbhdMm9Oh8B2Ftq4= -github.com/ipfs/go-ipld-cbor v0.0.6-0.20211211231443-5d9b9e1f6fa8/go.mod h1:ssdxxaLJPXH7OjF5V4NSjBbcfh+evoR4ukuru0oPXMA= github.com/ipfs/go-ipld-cbor v0.0.6 h1:pYuWHyvSpIsOOLw4Jy7NbBkCyzLDcl64Bf/LZW7eBQ0= github.com/ipfs/go-ipld-cbor v0.0.6/go.mod h1:ssdxxaLJPXH7OjF5V4NSjBbcfh+evoR4ukuru0oPXMA= github.com/ipfs/go-ipld-format v0.0.1/go.mod h1:kyJtbkDALmFHv3QR6et67i35QzO3S0dCDnkOJhcZkms= -github.com/ipfs/go-ipld-format v0.0.2/go.mod h1:4B6+FM2u9OJ9zCV+kSbgFAZlOrv1Hqbf0INGQgiKf9k= -github.com/ipfs/go-ipld-format v0.2.0/go.mod h1:3l3C1uKoadTPbeNfrDi+xMInYKlx2Cvg1BuydPSdzQs= github.com/ipfs/go-ipld-format v0.5.0 h1:WyEle9K96MSrvr47zZHKKcDxJ/vlpET6PSiQsAFO+Ds= github.com/ipfs/go-ipld-format v0.5.0/go.mod h1:ImdZqJQaEouMjCvqCe0ORUS+uoBmf7Hf+EO/jh+nk3M= -github.com/ipfs/go-ipld-legacy v0.1.0/go.mod h1:86f5P/srAmh9GcIcWQR9lfFLZPrIyyXQeVlOWeeWEuI= github.com/ipfs/go-ipld-legacy v0.2.1 h1:mDFtrBpmU7b//LzLSypVrXsD8QxkEWxu5qVxN99/+tk= github.com/ipfs/go-ipld-legacy v0.2.1/go.mod h1:782MOUghNzMO2DER0FlBR94mllfdCJCkTtDtPM51otM= github.com/ipfs/go-libipfs v0.7.0 h1:Mi54WJTODaOL2/ZSm5loi3SwI3jI2OuFWUrQIkJ5cpM= github.com/ipfs/go-libipfs v0.7.0/go.mod h1:KsIf/03CqhICzyRGyGo68tooiBE2iFbI/rXW7FhAYr0= github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= -github.com/ipfs/go-log v1.0.0/go.mod h1:JO7RzlMK6rA+CIxFMLOuB6Wf5b81GDiKElL7UPSIKjA= -github.com/ipfs/go-log v1.0.2/go.mod h1:1MNjMxe0u6xvJZgeqbJ8vdo2TKaGwZ1a0Bpza+sr2Sk= -github.com/ipfs/go-log v1.0.3/go.mod h1:OsLySYkwIbiSUR/yBTdv1qPtcE4FW3WPWk/ewz9Ru+A= -github.com/ipfs/go-log v1.0.4/go.mod h1:oDCg2FkjogeFOhqqb+N39l2RpTNPL6F/StPkB3kPgcs= github.com/ipfs/go-log v1.0.5 h1:2dOuUCB1Z7uoczMWgAyDck5JLb72zHzrMnGnCNNbvY8= github.com/ipfs/go-log v1.0.5/go.mod h1:j0b8ZoR+7+R99LD9jZ6+AJsrzkPbSXbZfGakb5JPtIo= -github.com/ipfs/go-log/v2 v2.0.1/go.mod h1:O7P1lJt27vWHhOwQmcFEvlmo49ry2VY2+JfBWFaa9+0= -github.com/ipfs/go-log/v2 v2.0.2/go.mod h1:O7P1lJt27vWHhOwQmcFEvlmo49ry2VY2+JfBWFaa9+0= -github.com/ipfs/go-log/v2 v2.0.3/go.mod h1:O7P1lJt27vWHhOwQmcFEvlmo49ry2VY2+JfBWFaa9+0= -github.com/ipfs/go-log/v2 v2.0.5/go.mod h1:eZs4Xt4ZUJQFM3DlanGhy7TkwwawCZcSByscwkWG+dw= -github.com/ipfs/go-log/v2 v2.1.1/go.mod h1:2v2nsGfZsvvAJz13SyFzf9ObaqwHiHxsPLEHntrv9KM= -github.com/ipfs/go-log/v2 v2.1.2-0.20200626104915-0016c0b4b3e4/go.mod h1:2v2nsGfZsvvAJz13SyFzf9ObaqwHiHxsPLEHntrv9KM= github.com/ipfs/go-log/v2 v2.1.3/go.mod h1:/8d0SH3Su5Ooc31QlL1WysJhvyOTDCjcCZ9Axpmri6g= -github.com/ipfs/go-log/v2 v2.3.0/go.mod h1:QqGoj30OTpnKaG/LKTGTxoP2mmQtjVMEnK72gynbe/g= github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY= github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI= -github.com/ipfs/go-merkledag v0.2.3/go.mod h1:SQiXrtSts3KGNmgOzMICy5c0POOpUNQLvB3ClKnBAlk= -github.com/ipfs/go-merkledag v0.2.4/go.mod h1:SQiXrtSts3KGNmgOzMICy5c0POOpUNQLvB3ClKnBAlk= -github.com/ipfs/go-merkledag v0.5.1/go.mod h1:cLMZXx8J08idkp5+id62iVftUQV+HlYJ3PIhDfZsjA4= github.com/ipfs/go-merkledag v0.11.0 h1:DgzwK5hprESOzS4O1t/wi6JDpyVQdvm9Bs59N/jqfBY= github.com/ipfs/go-merkledag v0.11.0/go.mod h1:Q4f/1ezvBiJV0YCIXvt51W/9/kqJGH4I1LsA7+djsM4= github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg= github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY= -github.com/ipfs/go-peertaskqueue v0.1.0/go.mod h1:Jmk3IyCcfl1W3jTW3YpghSwSEC6IJ3Vzz/jUmWw8Z0U= -github.com/ipfs/go-peertaskqueue v0.7.0/go.mod h1:M/akTIE/z1jGNXMU7kFB4TeSEFvj68ow0Rrb04donIU= github.com/ipfs/go-peertaskqueue v0.8.1 h1:YhxAs1+wxb5jk7RvS0LHdyiILpNmRIRnZVztekOF0pg= -github.com/ipfs/go-unixfsnode v1.7.1 h1:RRxO2b6CSr5UQ/kxnGzaChTjp5LWTdf3Y4n8ANZgB/s= -github.com/ipfs/go-verifcid v0.0.1/go.mod h1:5Hrva5KBeIog4A+UpqlaIU+DEstipcJYQQZc0g37pY0= github.com/ipfs/go-verifcid v0.0.2 h1:XPnUv0XmdH+ZIhLGKg6U2vaPaRDXb9urMyNVCE7uvTs= github.com/ipfs/go-verifcid v0.0.2/go.mod h1:40cD9x1y4OWnFXbLNJYRe7MpNvWlMn3LZAG5Wb4xnPU= -github.com/ipld/go-car v0.1.0/go.mod h1:RCWzaUh2i4mOEkB3W45Vc+9jnS/M6Qay5ooytiBHl3g= github.com/ipld/go-car v0.6.1 h1:blWbEHf1j62JMWFIqWE//YR0m7k5ZMw0AuUOU5hjrH8= github.com/ipld/go-car v0.6.1/go.mod h1:oEGXdwp6bmxJCZ+rARSkDliTeYnVzv3++eXajZ+Bmr8= -github.com/ipld/go-car/v2 v2.10.1 h1:MRDqkONNW9WRhB79u+Z3U5b+NoN7lYA5B8n8qI3+BoI= -github.com/ipld/go-codec-dagpb v1.3.0/go.mod h1:ga4JTU3abYApDC3pZ00BC2RSvC3qfBb9MSJkMLSwnhA= github.com/ipld/go-codec-dagpb v1.6.0 h1:9nYazfyu9B1p3NAgfVdpRco3Fs2nFC72DqVsMj6rOcc= github.com/ipld/go-codec-dagpb v1.6.0/go.mod h1:ANzFhfP2uMJxRBr8CE+WQWs5UsNa0pYtmKZ+agnUw9s= -github.com/ipld/go-ipld-adl-hamt v0.0.0-20220616142416-9004dbd839e0 h1:QAI/Ridj0+foHD6epbxmB4ugxz9B4vmNdYSmQLGa05E= -github.com/ipld/go-ipld-prime v0.0.2-0.20191108012745-28a82f04c785/go.mod h1:bDDSvVz7vaK12FNvMeRYnpRFkSUPNQOiCYQezMD/P3w= -github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8= -github.com/ipld/go-ipld-prime v0.11.0/go.mod h1:+WIAkokurHmZ/KwzDOMUuoeJgaRQktHtEaLglS3ZeV8= -github.com/ipld/go-ipld-prime v0.19.0/go.mod h1:Q9j3BaVXwaA3o5JUDNvptDDr/x8+F7FG6XJ8WI3ILg4= github.com/ipld/go-ipld-prime v0.20.0 h1:Ud3VwE9ClxpO2LkCYP7vWPc0Fo+dYdYzgxUJZ3uRG4g= github.com/ipld/go-ipld-prime v0.20.0/go.mod h1:PzqZ/ZR981eKbgdr3y2DJYeD/8bgMawdGVlJDE8kK+M= -github.com/ipld/go-ipld-prime-proto v0.0.0-20191113031812-e32bd156a1e5/go.mod h1:gcvzoEDBjwycpXt3LBE061wT9f46szXGHAmj9uoP6fU= -github.com/ipni/go-libipni v0.0.8 h1:0wLfZRSBG84swmZwmaLKul/iB/FlBkkl9ZcR1ub+Z+w= -github.com/ipni/index-provider v0.12.0 h1:R3F6dxxKNv4XkE4GJZNLOG0bDEbBQ/S5iztXwSD8jhQ= github.com/ipsn/go-secp256k1 v0.0.0-20180726113642-9d62b9f0bc52 h1:QG4CGBqCeuBo6aZlGAamSkxWdgWfZGeE49eUOWJPA4c= -github.com/ipsn/go-secp256k1 v0.0.0-20180726113642-9d62b9f0bc52/go.mod h1:fdg+/X9Gg4AsAIzWpEHwnqd+QY3b7lajxyjE1m4hkq4= github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= @@ -742,25 +383,11 @@ github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0f github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.2.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackpal/gateway v1.0.5/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= -github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= -github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= -github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec/go.mod h1:rGaEvXB4uRSZMmzKNLoXvTu1sfx+1kv/DojUlPrSZGs= github.com/jbenet/go-cienv v0.1.0/go.mod h1:TqNnHUmJgXau0nCzC7kXWeotg3J9W34CUv5Djy1+FlA= -github.com/jbenet/go-random v0.0.0-20190219211222-123a90aedc0c h1:uUx61FiAa1GI6ZmVd2wf2vULeQZIKG66eybjNXKYCz4= -github.com/jbenet/go-random v0.0.0-20190219211222-123a90aedc0c/go.mod h1:sdx1xVM9UuLw1tXnhJWN3piypTUO3vCIHYmG15KE/dU= -github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= github.com/jbenet/go-temp-err-catcher v0.1.0 h1:zpb3ZH6wIE8Shj2sKS+khgRvf7T7RABoLk/+KKHggpk= -github.com/jbenet/go-temp-err-catcher v0.1.0/go.mod h1:0kJRvmDZXNMIiJirNPEYfhpPwbGVtZVWC34vc5WLsDk= -github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= -github.com/jbenet/goprocess v0.1.3/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= github.com/jbenet/goprocess v0.1.4 h1:DRGOFReOMqqDNXwW70QkacFW0YN9QnwLV0Vqk+3oU0o= github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= -github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= -github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= @@ -769,7 +396,6 @@ github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jlaffaye/ftp v0.1.0 h1:DLGExl5nBoSFoNshAUHwXAezXwXBvFdx7/qwhucWNSE= github.com/jlaffaye/ftp v0.1.0/go.mod h1:hhq4G4crv+nW2qXtNYcuzLeOudG92Ps37HEKeg2e3lE= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ= github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= @@ -777,14 +403,8 @@ github.com/jordan-wright/email v0.0.0-20200824153738-3f5bafa1cd84 h1:pS0A6cr4aHY github.com/jordan-wright/email v0.0.0-20200824153738-3f5bafa1cd84/go.mod h1:1c7szIrayyPPB/987hsnvNzLushdWf4o/79s3P08L8A= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= @@ -792,36 +412,25 @@ github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVY github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/kami-zh/go-capturer v0.0.0-20171211120116-e492ea43421d/go.mod h1:P2viExyCEfeWGU259JnaQ34Inuec4R38JCyBx2edgD0= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk= -github.com/koron/go-ssdp v0.0.0-20191105050749-2e1c40ed0b5d/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk= github.com/koron/go-ssdp v0.0.4 h1:1IDwrghSKYM7yLf7XCzbByg2sJ/JcNOZRXS2jczTwz0= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -840,255 +449,51 @@ github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.10.2 h1:AqzbZs4ZoCBp+GtejcpCpcxM3zlSMx29dXbUSeVtJb8= github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= -github.com/libp2p/go-addr-util v0.0.2/go.mod h1:Ecd6Fb3yIuLzq4bD7VcywcVSBtefcAwnUISBM3WG15E= -github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= github.com/libp2p/go-buffer-pool v0.0.2/go.mod h1:MvaB6xw5vOrDl8rYZGLFdKAuk/hRoRZd1Vi32+RXyFM= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/libp2p/go-cidranger v1.1.0 h1:ewPN8EZ0dd1LSnrtuwd4709PXVcITVeuwbag38yPW7c= -github.com/libp2p/go-conn-security-multistream v0.1.0/go.mod h1:aw6eD7LOsHEX7+2hJkDxw1MteijaVcI+/eP2/x3J1xc= -github.com/libp2p/go-conn-security-multistream v0.2.0/go.mod h1:hZN4MjlNetKD3Rq5Jb/P5ohUnFLNzEAR4DLSzpn2QLU= -github.com/libp2p/go-conn-security-multistream v0.2.1/go.mod h1:cR1d8gA0Hr59Fj6NhaTpFhJZrjSYuNmhpT2r25zYR70= -github.com/libp2p/go-eventbus v0.1.0/go.mod h1:vROgu5cs5T7cv7POWlWxBaVLxfSegC5UGQf8A2eEmx4= -github.com/libp2p/go-eventbus v0.2.1/go.mod h1:jc2S4SoEVPP48H9Wpzm5aiGwUCBMfGhVhhBjyhhCJs8= -github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= -github.com/libp2p/go-flow-metrics v0.0.3/go.mod h1:HeoSNUrOJVK1jEpDqVEiUOIXqhbnS27omG0uWU5slZs= -github.com/libp2p/go-flow-metrics v0.1.0 h1:0iPhMI8PskQwzh57jB9WxIuIOQ0r+15PChFGkx3Q3WM= -github.com/libp2p/go-libp2p v0.1.0/go.mod h1:6D/2OBauqLUoqcADOJpn9WbKqvaM07tDw68qHM0BxUM= -github.com/libp2p/go-libp2p v0.6.1/go.mod h1:CTFnWXogryAHjXAKEbOf1OWY+VeAP3lDMZkfEI5sT54= -github.com/libp2p/go-libp2p v0.7.0/go.mod h1:hZJf8txWeCduQRDC/WSqBGMxaTHCOYHt2xSU1ivxn0k= -github.com/libp2p/go-libp2p v0.7.4/go.mod h1:oXsBlTLF1q7pxr+9w6lqzS1ILpyHsaBPniVO7zIHGMw= -github.com/libp2p/go-libp2p v0.8.1/go.mod h1:QRNH9pwdbEBpx5DTJYg+qxcVaDMAz3Ee/qDKwXujH5o= -github.com/libp2p/go-libp2p v0.14.3/go.mod h1:d12V4PdKbpL0T1/gsUNN8DfgMuRPDX8bS2QxCZlwRH0= github.com/libp2p/go-libp2p v0.30.0 h1:9EZwFtJPFBcs/yJTnP90TpN1hgrT/EsFfM+OZuwV87U= github.com/libp2p/go-libp2p v0.30.0/go.mod h1:nr2g5V7lfftwgiJ78/HrID+pwvayLyqKCEirT2Y3Byg= github.com/libp2p/go-libp2p-asn-util v0.3.0 h1:gMDcMyYiZKkocGXDQ5nsUQyquC9+H+iLEQHwOCZ7s8s= -github.com/libp2p/go-libp2p-autonat v0.1.0/go.mod h1:1tLf2yXxiE/oKGtDwPYWTSYG3PtvYlJmg7NeVtPRqH8= -github.com/libp2p/go-libp2p-autonat v0.1.1/go.mod h1:OXqkeGOY2xJVWKAGV2inNF5aKN/djNA3fdpCWloIudE= -github.com/libp2p/go-libp2p-autonat v0.2.0/go.mod h1:DX+9teU4pEEoZUqR1PiMlqliONQdNbfzE1C718tcViI= -github.com/libp2p/go-libp2p-autonat v0.2.1/go.mod h1:MWtAhV5Ko1l6QBsHQNSuM6b1sRkXrpk0/LqCr+vCVxI= -github.com/libp2p/go-libp2p-autonat v0.2.2/go.mod h1:HsM62HkqZmHR2k1xgX34WuWDzk/nBwNHoeyyT4IWV6A= -github.com/libp2p/go-libp2p-autonat v0.4.2/go.mod h1:YxaJlpr81FhdOv3W3BTconZPfhaYivRdf53g+S2wobk= -github.com/libp2p/go-libp2p-blankhost v0.1.1/go.mod h1:pf2fvdLJPsC1FsVrNP3DUUvMzUts2dsLLBEpo1vW1ro= -github.com/libp2p/go-libp2p-blankhost v0.1.4/go.mod h1:oJF0saYsAXQCSfDq254GMNmLNz6ZTHTOvtF4ZydUvwU= -github.com/libp2p/go-libp2p-blankhost v0.2.0/go.mod h1:eduNKXGTioTuQAUcZ5epXi9vMl+t4d8ugUBRQ4SqaNQ= -github.com/libp2p/go-libp2p-circuit v0.1.0/go.mod h1:Ahq4cY3V9VJcHcn1SBXjr78AbFkZeIRmfunbA7pmFh8= -github.com/libp2p/go-libp2p-circuit v0.1.4/go.mod h1:CY67BrEjKNDhdTk8UgBX1Y/H5c3xkAcs3gnksxY7osU= -github.com/libp2p/go-libp2p-circuit v0.2.1/go.mod h1:BXPwYDN5A8z4OEY9sOfr2DUQMLQvKt/6oku45YUmjIo= -github.com/libp2p/go-libp2p-circuit v0.4.0/go.mod h1:t/ktoFIUzM6uLQ+o1G6NuBl2ANhBKN9Bc8jRIk31MoA= -github.com/libp2p/go-libp2p-core v0.0.1/go.mod h1:g/VxnTZ/1ygHxH3dKok7Vno1VfpvGcGip57wjTU4fco= -github.com/libp2p/go-libp2p-core v0.0.2/go.mod h1:9dAcntw/n46XycV4RnlBq3BpgrmyUi9LuoTNdPrbUco= -github.com/libp2p/go-libp2p-core v0.0.4/go.mod h1:jyuCQP356gzfCFtRKyvAbNkyeuxb7OlyhWZ3nls5d2I= -github.com/libp2p/go-libp2p-core v0.2.0/go.mod h1:X0eyB0Gy93v0DZtSYbEM7RnMChm9Uv3j7yRXjO77xSI= -github.com/libp2p/go-libp2p-core v0.2.2/go.mod h1:8fcwTbsG2B+lTgRJ1ICZtiM5GWCWZVoVrLaDRvIRng0= -github.com/libp2p/go-libp2p-core v0.2.4/go.mod h1:STh4fdfa5vDYr0/SzYYeqnt+E6KfEV5VxfIrm0bcI0g= -github.com/libp2p/go-libp2p-core v0.3.0/go.mod h1:ACp3DmS3/N64c2jDzcV429ukDpicbL6+TrrxANBjPGw= -github.com/libp2p/go-libp2p-core v0.3.1/go.mod h1:thvWy0hvaSBhnVBaW37BvzgVV68OUhgJJLAa6almrII= -github.com/libp2p/go-libp2p-core v0.4.0/go.mod h1:49XGI+kc38oGVwqSBhDEwytaAxgZasHhFfQKibzTls0= -github.com/libp2p/go-libp2p-core v0.5.0/go.mod h1:49XGI+kc38oGVwqSBhDEwytaAxgZasHhFfQKibzTls0= -github.com/libp2p/go-libp2p-core v0.5.1/go.mod h1:uN7L2D4EvPCvzSH5SrhR72UWbnSGpt5/a35Sm4upn4Y= -github.com/libp2p/go-libp2p-core v0.5.4/go.mod h1:uN7L2D4EvPCvzSH5SrhR72UWbnSGpt5/a35Sm4upn4Y= -github.com/libp2p/go-libp2p-core v0.5.5/go.mod h1:vj3awlOr9+GMZJFH9s4mpt9RHHgGqeHCopzbYKZdRjM= -github.com/libp2p/go-libp2p-core v0.5.6/go.mod h1:txwbVEhHEXikXn9gfC7/UDDw7rkxuX0bJvM49Ykaswo= -github.com/libp2p/go-libp2p-core v0.5.7/go.mod h1:txwbVEhHEXikXn9gfC7/UDDw7rkxuX0bJvM49Ykaswo= -github.com/libp2p/go-libp2p-core v0.6.0/go.mod h1:txwbVEhHEXikXn9gfC7/UDDw7rkxuX0bJvM49Ykaswo= -github.com/libp2p/go-libp2p-core v0.7.0/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8= -github.com/libp2p/go-libp2p-core v0.8.0/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8= -github.com/libp2p/go-libp2p-core v0.8.1/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8= -github.com/libp2p/go-libp2p-core v0.8.2/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8= -github.com/libp2p/go-libp2p-core v0.8.5/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8= -github.com/libp2p/go-libp2p-crypto v0.1.0/go.mod h1:sPUokVISZiy+nNuTTH/TY+leRSxnFj/2GLjtOTW90hI= -github.com/libp2p/go-libp2p-discovery v0.1.0/go.mod h1:4F/x+aldVHjHDHuX85x1zWoFTGElt8HnoDzwkFZm29g= -github.com/libp2p/go-libp2p-discovery v0.2.0/go.mod h1:s4VGaxYMbw4+4+tsoQTqh7wfxg97AEdo4GYBt6BadWg= -github.com/libp2p/go-libp2p-discovery v0.3.0/go.mod h1:o03drFnz9BVAZdzC/QUQ+NeQOu38Fu7LJGEOK2gQltw= -github.com/libp2p/go-libp2p-discovery v0.5.0/go.mod h1:+srtPIU9gDaBNu//UHvcdliKBIcr4SfDcm0/PfPJLug= -github.com/libp2p/go-libp2p-loggables v0.1.0/go.mod h1:EyumB2Y6PrYjr55Q3/tiJ/o3xoDasoRYM7nOzEpoa90= -github.com/libp2p/go-libp2p-mplex v0.2.0/go.mod h1:Ejl9IyjvXJ0T9iqUTE1jpYATQ9NM3g+OtR+EMMODbKo= -github.com/libp2p/go-libp2p-mplex v0.2.1/go.mod h1:SC99Rxs8Vuzrf/6WhmH41kNn13TiYdAWNYHrwImKLnE= -github.com/libp2p/go-libp2p-mplex v0.2.2/go.mod h1:74S9eum0tVQdAfFiKxAyKzNdSuLqw5oadDq7+L/FELo= -github.com/libp2p/go-libp2p-mplex v0.2.3/go.mod h1:CK3p2+9qH9x+7ER/gWWDYJ3QW5ZxWDkm+dVvjfuG3ek= -github.com/libp2p/go-libp2p-mplex v0.4.0/go.mod h1:yCyWJE2sc6TBTnFpjvLuEJgTSw/u+MamvzILKdX7asw= -github.com/libp2p/go-libp2p-mplex v0.4.1/go.mod h1:cmy+3GfqfM1PceHTLL7zQzAAYaryDu6iPSC+CIb094g= -github.com/libp2p/go-libp2p-nat v0.0.4/go.mod h1:N9Js/zVtAXqaeT99cXgTV9e75KpnWCvVOiGzlcHmBbY= -github.com/libp2p/go-libp2p-nat v0.0.5/go.mod h1:1qubaE5bTZMJE+E/uu2URroMbzdubFz1ChgiN79yKPE= -github.com/libp2p/go-libp2p-nat v0.0.6/go.mod h1:iV59LVhB3IkFvS6S6sauVTSOrNEANnINbI/fkaLimiw= -github.com/libp2p/go-libp2p-netutil v0.1.0/go.mod h1:3Qv/aDqtMLTUyQeundkKsA+YCThNdbQD54k3TqjpbFU= -github.com/libp2p/go-libp2p-noise v0.2.0/go.mod h1:IEbYhBBzGyvdLBoxxULL/SGbJARhUeqlO8lVSREYu2Q= -github.com/libp2p/go-libp2p-peer v0.2.0/go.mod h1:RCffaCvUyW2CJmG2gAWVqwePwW7JMgxjsHm7+J5kjWY= -github.com/libp2p/go-libp2p-peerstore v0.1.0/go.mod h1:2CeHkQsr8svp4fZ+Oi9ykN1HBb6u0MOvdJ7YIsmcwtY= -github.com/libp2p/go-libp2p-peerstore v0.1.3/go.mod h1:BJ9sHlm59/80oSkpWgr1MyY1ciXAXV397W6h1GH/uKI= -github.com/libp2p/go-libp2p-peerstore v0.2.0/go.mod h1:N2l3eVIeAitSg3Pi2ipSrJYnqhVnMNQZo9nkSCuAbnQ= -github.com/libp2p/go-libp2p-peerstore v0.2.1/go.mod h1:NQxhNjWxf1d4w6PihR8btWIRjwRLBr4TYKfNgrUkOPA= -github.com/libp2p/go-libp2p-peerstore v0.2.2/go.mod h1:NQxhNjWxf1d4w6PihR8btWIRjwRLBr4TYKfNgrUkOPA= -github.com/libp2p/go-libp2p-peerstore v0.2.6/go.mod h1:ss/TWTgHZTMpsU/oKVVPQCGuDHItOpf2W8RxAi50P2s= -github.com/libp2p/go-libp2p-peerstore v0.2.7/go.mod h1:ss/TWTgHZTMpsU/oKVVPQCGuDHItOpf2W8RxAi50P2s= -github.com/libp2p/go-libp2p-pnet v0.2.0/go.mod h1:Qqvq6JH/oMZGwqs3N1Fqhv8NVhrdYcO0BW4wssv21LA= -github.com/libp2p/go-libp2p-pubsub v0.9.3 h1:ihcz9oIBMaCK9kcx+yHWm3mLAFBMAUsM4ux42aikDxo= -github.com/libp2p/go-libp2p-pubsub v0.9.3/go.mod h1:RYA7aM9jIic5VV47WXu4GkcRxRhrdElWf8xtyli+Dzc= -github.com/libp2p/go-libp2p-quic-transport v0.10.0/go.mod h1:RfJbZ8IqXIhxBRm5hqUEJqjiiY8xmEuq3HUDS993MkA= -github.com/libp2p/go-libp2p-record v0.1.0/go.mod h1:ujNc8iuE5dlKWVy6wuL6dd58t0n7xI4hAIl8pE6wu5Q= github.com/libp2p/go-libp2p-record v0.2.0 h1:oiNUOCWno2BFuxt3my4i1frNrt7PerzB3queqa1NkQ0= -github.com/libp2p/go-libp2p-secio v0.1.0/go.mod h1:tMJo2w7h3+wN4pgU2LSYeiKPrfqBgkOsdiKK77hE7c8= -github.com/libp2p/go-libp2p-secio v0.2.0/go.mod h1:2JdZepB8J5V9mBp79BmwsaPQhRPNN2NrnB2lKQcdy6g= -github.com/libp2p/go-libp2p-secio v0.2.1/go.mod h1:cWtZpILJqkqrSkiYcDBh5lA3wbT2Q+hz3rJQq3iftD8= -github.com/libp2p/go-libp2p-secio v0.2.2/go.mod h1:wP3bS+m5AUnFA+OFO7Er03uO1mncHG0uVwGrwvjYlNY= -github.com/libp2p/go-libp2p-swarm v0.1.0/go.mod h1:wQVsCdjsuZoc730CgOvh5ox6K8evllckjebkdiY5ta4= -github.com/libp2p/go-libp2p-swarm v0.2.2/go.mod h1:fvmtQ0T1nErXym1/aa1uJEyN7JzaTNyBcHImCxRpPKU= -github.com/libp2p/go-libp2p-swarm v0.2.3/go.mod h1:P2VO/EpxRyDxtChXz/VPVXyTnszHvokHKRhfkEgFKNM= -github.com/libp2p/go-libp2p-swarm v0.2.8/go.mod h1:JQKMGSth4SMqonruY0a8yjlPVIkb0mdNSwckW7OYziM= -github.com/libp2p/go-libp2p-swarm v0.3.0/go.mod h1:hdv95GWCTmzkgeJpP+GK/9D9puJegb7H57B5hWQR5Kk= -github.com/libp2p/go-libp2p-swarm v0.5.0/go.mod h1:sU9i6BoHE0Ve5SKz3y9WfKrh8dUat6JknzUehFx8xW4= -github.com/libp2p/go-libp2p-testing v0.0.2/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E= -github.com/libp2p/go-libp2p-testing v0.0.3/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E= -github.com/libp2p/go-libp2p-testing v0.0.4/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E= -github.com/libp2p/go-libp2p-testing v0.1.0/go.mod h1:xaZWMJrPUM5GlDBxCeGUi7kI4eqnjVyavGroI2nxEM0= -github.com/libp2p/go-libp2p-testing v0.1.1/go.mod h1:xaZWMJrPUM5GlDBxCeGUi7kI4eqnjVyavGroI2nxEM0= -github.com/libp2p/go-libp2p-testing v0.1.2-0.20200422005655-8775583591d8/go.mod h1:Qy8sAncLKpwXtS2dSnDOP8ktexIAHKu+J+pnZOFZLTc= -github.com/libp2p/go-libp2p-testing v0.3.0/go.mod h1:efZkql4UZ7OVsEfaxNHZPzIehtsBXMrXnCfJIgDti5g= -github.com/libp2p/go-libp2p-testing v0.4.0/go.mod h1:Q+PFXYoiYFN5CAEG2w3gLPEzotlKsNSbKQ/lImlOWF0= github.com/libp2p/go-libp2p-testing v0.12.0 h1:EPvBb4kKMWO29qP4mZGyhVzUyR25dvfUIK5WDu6iPUA= -github.com/libp2p/go-libp2p-tls v0.1.3/go.mod h1:wZfuewxOndz5RTnCAxFliGjvYSDA40sKitV4c50uI1M= -github.com/libp2p/go-libp2p-transport-upgrader v0.1.1/go.mod h1:IEtA6or8JUbsV07qPW4r01GnTenLW4oi3lOPbUMGJJA= -github.com/libp2p/go-libp2p-transport-upgrader v0.2.0/go.mod h1:mQcrHj4asu6ArfSoMuyojOdjx73Q47cYD7s5+gZOlns= -github.com/libp2p/go-libp2p-transport-upgrader v0.3.0/go.mod h1:i+SKzbRnvXdVbU3D1dwydnTmKRPXiAR/fyvi1dXuL4o= -github.com/libp2p/go-libp2p-transport-upgrader v0.4.2/go.mod h1:NR8ne1VwfreD5VIWIU62Agt/J18ekORFU/j1i2y8zvk= -github.com/libp2p/go-libp2p-yamux v0.2.0/go.mod h1:Db2gU+XfLpm6E4rG5uGCFX6uXA8MEXOxFcRoXUODaK8= -github.com/libp2p/go-libp2p-yamux v0.2.2/go.mod h1:lIohaR0pT6mOt0AZ0L2dFze9hds9Req3OfS+B+dv4qw= -github.com/libp2p/go-libp2p-yamux v0.2.5/go.mod h1:Zpgj6arbyQrmZ3wxSZxfBmbdnWtbZ48OpsfmQVTErwA= -github.com/libp2p/go-libp2p-yamux v0.2.7/go.mod h1:X28ENrBMU/nm4I3Nx4sZ4dgjZ6VhLEn0XhIoZ5viCwU= -github.com/libp2p/go-libp2p-yamux v0.2.8/go.mod h1:/t6tDqeuZf0INZMTgd0WxIRbtK2EzI2h7HbFm9eAKI4= -github.com/libp2p/go-libp2p-yamux v0.4.0/go.mod h1:+DWDjtFMzoAwYLVkNZftoucn7PelNoy5nm3tZ3/Zw30= -github.com/libp2p/go-libp2p-yamux v0.5.0/go.mod h1:AyR8k5EzyM2QN9Bbdg6X1SkVVuqLwTGf0L4DFq9g6po= -github.com/libp2p/go-libp2p-yamux v0.5.4/go.mod h1:tfrXbyaTqqSU654GTvK3ocnSZL3BuHoeTSqhcel1wsE= -github.com/libp2p/go-maddr-filter v0.0.4/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= -github.com/libp2p/go-maddr-filter v0.0.5/go.mod h1:Jk+36PMfIqCJhAnaASRH83bdAvfDRp/w6ENFaC9bG+M= -github.com/libp2p/go-maddr-filter v0.1.0/go.mod h1:VzZhTXkMucEGGEOSKddrwGiOv0tUhgnKqNEmIAz/bPU= -github.com/libp2p/go-mplex v0.0.3/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= -github.com/libp2p/go-mplex v0.1.0/go.mod h1:SXgmdki2kwCUlCCbfGLEgHjC4pFqhTp0ZoV6aiKgxDU= -github.com/libp2p/go-mplex v0.1.1/go.mod h1:Xgz2RDCi3co0LeZfgjm4OgUF15+sVR8SRcu3SFXI1lk= -github.com/libp2p/go-mplex v0.1.2/go.mod h1:Xgz2RDCi3co0LeZfgjm4OgUF15+sVR8SRcu3SFXI1lk= -github.com/libp2p/go-mplex v0.2.0/go.mod h1:0Oy/A9PQlwBytDRp4wSkFnzHYDKcpLot35JQ6msjvYQ= -github.com/libp2p/go-mplex v0.3.0/go.mod h1:0Oy/A9PQlwBytDRp4wSkFnzHYDKcpLot35JQ6msjvYQ= -github.com/libp2p/go-msgio v0.0.2/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= -github.com/libp2p/go-msgio v0.0.4/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= -github.com/libp2p/go-msgio v0.0.6/go.mod h1:4ecVB6d9f4BDSL5fqvPiC4A3KivjWn+Venn/1ALLMWA= github.com/libp2p/go-msgio v0.3.0 h1:mf3Z8B1xcFN314sWX+2vOTShIE0Mmn2TXn3YCUQGNj0= -github.com/libp2p/go-msgio v0.3.0/go.mod h1:nyRM819GmVaF9LX3l03RMh10QdOroF++NBbxAb0mmDM= -github.com/libp2p/go-nat v0.0.3/go.mod h1:88nUEt0k0JD45Bk93NIwDqjlhiOwOoV36GchpcVc1yI= -github.com/libp2p/go-nat v0.0.4/go.mod h1:Nmw50VAvKuk38jUBcmNh6p9lUJLoODbJRvYAa/+KSDo= -github.com/libp2p/go-nat v0.0.5/go.mod h1:B7NxsVNPZmRLvMOwiEO1scOSyjA56zxYAGv1yQgRkEU= github.com/libp2p/go-nat v0.2.0 h1:Tyz+bUFAYqGyJ/ppPPymMGbIgNRH+WqC5QrT5fKrrGk= -github.com/libp2p/go-netroute v0.1.2/go.mod h1:jZLDV+1PE8y5XxBySEBgbuVAXbhtuHSdmLPL2n9MKbk= -github.com/libp2p/go-netroute v0.1.3/go.mod h1:jZLDV+1PE8y5XxBySEBgbuVAXbhtuHSdmLPL2n9MKbk= -github.com/libp2p/go-netroute v0.1.5/go.mod h1:V1SR3AaECRkEQCoFFzYwVYWvYIEtlxx89+O3qcpCl4A= -github.com/libp2p/go-netroute v0.1.6/go.mod h1:AqhkMh0VuWmfgtxKPp3Oc1LdU5QSWS7wl0QLhSZqXxQ= github.com/libp2p/go-netroute v0.2.1 h1:V8kVrpD8GK0Riv15/7VN6RbUQ3URNZVosw7H2v9tksU= -github.com/libp2p/go-openssl v0.0.2/go.mod h1:v8Zw2ijCSWBQi8Pq5GAixw6DbFfa9u6VIYDXnvOXkc0= -github.com/libp2p/go-openssl v0.0.3/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= -github.com/libp2p/go-openssl v0.0.4/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= -github.com/libp2p/go-openssl v0.0.5/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= -github.com/libp2p/go-openssl v0.0.7/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= -github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= -github.com/libp2p/go-reuseport v0.0.2/go.mod h1:SPD+5RwGC7rcnzngoYC86GjPzjSywuQyMVAheVBD9nQ= -github.com/libp2p/go-reuseport v0.4.0 h1:nR5KU7hD0WxXCJbmw7r2rhRYruNRl2koHw8fQscQm2s= -github.com/libp2p/go-reuseport-transport v0.0.2/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= -github.com/libp2p/go-reuseport-transport v0.0.3/go.mod h1:Spv+MPft1exxARzP2Sruj2Wb5JSyHNncjf1Oi2dEbzM= -github.com/libp2p/go-reuseport-transport v0.0.4/go.mod h1:trPa7r/7TJK/d+0hdBLOCGvpQQVOU74OXbNCIMkufGw= -github.com/libp2p/go-sockaddr v0.0.2/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k= -github.com/libp2p/go-sockaddr v0.1.0/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k= -github.com/libp2p/go-sockaddr v0.1.1/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k= -github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= -github.com/libp2p/go-stream-muxer-multistream v0.2.0/go.mod h1:j9eyPol/LLRqT+GPLSxvimPhNph4sfYfMoDPd7HkzIc= -github.com/libp2p/go-stream-muxer-multistream v0.3.0/go.mod h1:yDh8abSIzmZtqtOt64gFJUXEryejzNb0lisTt+fAMJA= -github.com/libp2p/go-tcp-transport v0.1.0/go.mod h1:oJ8I5VXryj493DEJ7OsBieu8fcg2nHGctwtInJVpipc= -github.com/libp2p/go-tcp-transport v0.1.1/go.mod h1:3HzGvLbx6etZjnFlERyakbaYPdfjg2pWP97dFZworkY= -github.com/libp2p/go-tcp-transport v0.2.0/go.mod h1:vX2U0CnWimU4h0SGSEsg++AzvBcroCGYw28kh94oLe0= -github.com/libp2p/go-tcp-transport v0.2.3/go.mod h1:9dvr03yqrPyYGIEN6Dy5UvdJZjyPFvl1S/igQ5QD1SU= -github.com/libp2p/go-testutil v0.1.0/go.mod h1:81b2n5HypcVyrCg/MJx4Wgfp/VHojytjVe/gLzZ2Ehc= -github.com/libp2p/go-ws-transport v0.1.0/go.mod h1:rjw1MG1LU9YDC6gzmwObkPd/Sqwhw7yT74kj3raBFuo= -github.com/libp2p/go-ws-transport v0.2.0/go.mod h1:9BHJz/4Q5A9ludYWKoGCFC5gUElzlHoKzu0yY9p/klM= -github.com/libp2p/go-ws-transport v0.3.0/go.mod h1:bpgTJmRZAvVHrgHybCVyqoBmyLQ1fiZuEaBYusP5zsk= -github.com/libp2p/go-ws-transport v0.4.0/go.mod h1:EcIEKqf/7GDjth6ksuS/6p7R49V4CBY6/E7R/iyhYUA= -github.com/libp2p/go-yamux v1.2.2/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow= -github.com/libp2p/go-yamux v1.3.0/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow= -github.com/libp2p/go-yamux v1.3.3/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow= -github.com/libp2p/go-yamux v1.3.5/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow= -github.com/libp2p/go-yamux v1.3.7/go.mod h1:fr7aVgmdNGJK+N1g+b6DW6VxzbRCjCOejR/hkmpooHE= -github.com/libp2p/go-yamux v1.4.0/go.mod h1:fr7aVgmdNGJK+N1g+b6DW6VxzbRCjCOejR/hkmpooHE= -github.com/libp2p/go-yamux v1.4.1 h1:P1Fe9vF4th5JOxxgQvfbOHkrGqIZniTLf+ddhZp8YTI= -github.com/libp2p/go-yamux v1.4.1/go.mod h1:fr7aVgmdNGJK+N1g+b6DW6VxzbRCjCOejR/hkmpooHE= -github.com/libp2p/go-yamux/v2 v2.2.0/go.mod h1:3So6P6TV6r75R9jiBpiIKgU/66lOarCZjqROGxzPpPQ= -github.com/libp2p/go-yamux/v4 v4.0.1 h1:FfDR4S1wj6Bw2Pqbc8Uz7pCxeRBPbwsBbEdfwiCypkQ= -github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= -github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/lucas-clemente/quic-go v0.19.3/go.mod h1:ADXpNbTQjq1hIzCpB+y/k5iz4n4z4IwqoLb94Kh5Hu8= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= -github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= -github.com/magefile/mage v1.9.0 h1:t3AU2wNwehMCW97vuqQLtw6puppWXHO+O2MHo5a50XE= -github.com/magefile/mage v1.9.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/marten-seemann/qpack v0.2.1/go.mod h1:F7Gl5L1jIgN1D11ucXefiuJS9UMVP2opoCp2jDKb7wc= -github.com/marten-seemann/qtls v0.10.0/go.mod h1:UvMd1oaYDACI99/oZUYLzMCkBXQVT0aGm99sJhbT8hs= -github.com/marten-seemann/qtls-go1-15 v0.1.1/go.mod h1:GyFwywLKkRt+6mfU99csTEY1joMZz5vmB1WNZH3P81I= -github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd h1:br0buuQ854V8u83wA0rVZ8ttrq5CpaPZdvrK0LP2lOk= -github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd/go.mod h1:QuCEs1Nt24+FYQEqAAncTDPJIuGs+LxK1MCiFL25pMU= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= -github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.13/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-sqlite3 v1.14.12/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= -github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.12/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.28/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= -github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= github.com/miekg/dns v1.1.55 h1:GoQ4hpsj0nFLYe+bWiCToyrBEJXkQfOOIvFGFy0lEgo= -github.com/miekg/dns v1.1.55/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY= -github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c/go.mod h1:0SQS9kMwD2VsyFEB++InYyBJroV/FRmBgcydeSUcJms= -github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b h1:z78hV3sbSMAUoyUMM0I83AUIT6Hu17AWfgjzIbtrYFc= -github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b/go.mod h1:lxPUiZwKoFL8DUUmalo2yJJUCxbPKtm8OKfqr2/FTNU= -github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc h1:PTfri+PuQmWDqERdnNMiD9ZejrlswWrCpBEZgWOiTrc= -github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc/go.mod h1:cGKTAVKx4SxOuR/czcZ/E2RSJ3sfHs8FpHhQ5CWMf9s= github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= -github.com/minio/sha256-simd v0.0.0-20190328051042-05b4dd3047e5/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= -github.com/minio/sha256-simd v0.1.0/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= -github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= @@ -1107,7 +512,6 @@ github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3P github.com/mojocn/base64Captcha v1.3.1 h1:2Wbkt8Oc8qjmNJ5GyOfSo4tgVQPsbKMftqASnq8GlT0= github.com/mojocn/base64Captcha v1.3.1/go.mod h1:wAQCKEc5bDujxKRmbT6/vTnTt5CjStQ8bRfPWUuz/iY= github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= -github.com/mr-tron/base58 v1.1.1/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/mr-tron/base58 v1.1.3/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= @@ -1118,262 +522,106 @@ github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYg github.com/multiformats/go-base36 v0.1.0/go.mod h1:kFGE83c6s80PklsHO9sRn2NCoffoRdUUOENyW/Vv6sM= github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0= github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4= -github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= -github.com/multiformats/go-multiaddr v0.0.2/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= -github.com/multiformats/go-multiaddr v0.0.4/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= -github.com/multiformats/go-multiaddr v0.1.0/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= -github.com/multiformats/go-multiaddr v0.1.1/go.mod h1:aMKBKNEYmzmDmxfX88/vz+J5IU55txyt0p4aiWVohjo= -github.com/multiformats/go-multiaddr v0.2.0/go.mod h1:0nO36NvPpyV4QzvTLi/lafl2y95ncPj0vFwVF6k6wJ4= -github.com/multiformats/go-multiaddr v0.2.1/go.mod h1:s/Apk6IyxfvMjDafnhJgJ3/46z7tZ04iMk5wP4QMGGE= -github.com/multiformats/go-multiaddr v0.2.2/go.mod h1:NtfXiOtHvghW9KojvtySjH5y0u0xW5UouOmQQrn6a3Y= -github.com/multiformats/go-multiaddr v0.3.0/go.mod h1:dF9kph9wfJ+3VLAaeBqo9Of8x4fJxp6ggJGteB8HQTI= -github.com/multiformats/go-multiaddr v0.3.1/go.mod h1:uPbspcUPd5AfaP6ql3ujFY+QWzmBD8uLLL4bXW0XfGc= -github.com/multiformats/go-multiaddr v0.3.3/go.mod h1:lCKNGP1EQ1eZ35Za2wlqnabm9xQkib3fyB+nZXHLag0= github.com/multiformats/go-multiaddr v0.11.0 h1:XqGyJ8ufbCE0HmTDwx2kPdsrQ36AGPZNZX6s6xfJH10= github.com/multiformats/go-multiaddr v0.11.0/go.mod h1:gWUm0QLR4thQ6+ZF6SXUw8YjtwQSPapICM+NmCkxHSM= -github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= -github.com/multiformats/go-multiaddr-dns v0.0.2/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= -github.com/multiformats/go-multiaddr-dns v0.2.0/go.mod h1:TJ5pr5bBO7Y1B18djPuRsVkduhQH2YqYSbxWJzYGdK0= github.com/multiformats/go-multiaddr-dns v0.3.1 h1:QgQgR+LQVt3NPTjbrLLpsaT2ufAA2y0Mkk+QRVJbW3A= -github.com/multiformats/go-multiaddr-dns v0.3.1/go.mod h1:G/245BRQ6FJGmryJCrOuTdB37AMA5AMOVuO6NY3JwTk= -github.com/multiformats/go-multiaddr-fmt v0.0.1/go.mod h1:aBYjqL4T/7j4Qx+R73XSv/8JsgnRFlf0w2KGLCmXl3Q= github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E= -github.com/multiformats/go-multiaddr-fmt v0.1.0/go.mod h1:hGtDIW4PU4BqJ50gW2quDuPVjyWNZxToGUh/HwTZYJo= -github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= -github.com/multiformats/go-multiaddr-net v0.1.0/go.mod h1:5JNbcfBOP4dnhoZOv10JJVkJO0pCCEf8mTnipAo2UZQ= -github.com/multiformats/go-multiaddr-net v0.1.1/go.mod h1:5JNbcfBOP4dnhoZOv10JJVkJO0pCCEf8mTnipAo2UZQ= -github.com/multiformats/go-multiaddr-net v0.1.2/go.mod h1:QsWt3XK/3hwvNxZJp92iMQKME1qHfpYmyIjFVsSOY6Y= -github.com/multiformats/go-multiaddr-net v0.1.3/go.mod h1:ilNnaM9HbmVFqsb/qcNysjCu4PVONlrBZpHIrw/qQuA= -github.com/multiformats/go-multiaddr-net v0.1.4/go.mod h1:ilNnaM9HbmVFqsb/qcNysjCu4PVONlrBZpHIrw/qQuA= -github.com/multiformats/go-multiaddr-net v0.1.5/go.mod h1:ilNnaM9HbmVFqsb/qcNysjCu4PVONlrBZpHIrw/qQuA= -github.com/multiformats/go-multiaddr-net v0.2.0/go.mod h1:gGdH3UXny6U3cKKYCvpXI5rnK7YaOIEOPVDI9tsJbEA= github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= github.com/multiformats/go-multibase v0.0.3/go.mod h1:5+1R4eQrT3PkYZ24C3W2Ue2tPwIdYQD509ZjSb5y9Oc= github.com/multiformats/go-multibase v0.2.0 h1:isdYCVLvksgWlMW9OZRYJEa9pZETFivncJHmHnnd87g= github.com/multiformats/go-multibase v0.2.0/go.mod h1:bFBZX4lKCA/2lyOFSAoKH5SS6oPyjtnzK/XTFDPkNuk= -github.com/multiformats/go-multicodec v0.6.0/go.mod h1:GUC8upxSBE4oG+q3kWZRw/+6yC1BqO550bjhWsJbZlw= github.com/multiformats/go-multicodec v0.9.0 h1:pb/dlPnzee/Sxv/j4PmkDRxCOi3hXTz3IbPKOXWJkmg= github.com/multiformats/go-multicodec v0.9.0/go.mod h1:L3QTQvMIaVBkXOXXtVmYE+LI16i14xuaojr/H7Ai54k= github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= -github.com/multiformats/go-multihash v0.0.5/go.mod h1:lt/HCbqlQwlPBz7lv0sQCdtfcMtlJvakRUn/0Ual8po= -github.com/multiformats/go-multihash v0.0.8/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew= -github.com/multiformats/go-multihash v0.0.9/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew= github.com/multiformats/go-multihash v0.0.10/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew= github.com/multiformats/go-multihash v0.0.13/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc= github.com/multiformats/go-multihash v0.0.14/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc= -github.com/multiformats/go-multihash v0.0.15/go.mod h1:D6aZrWNLFTV/ynMpKsNtB40mJzmCl4jb1alC0OvHiHg= -github.com/multiformats/go-multihash v0.2.1/go.mod h1:WxoMcYG85AZVQUyRyo9s4wULvW5qrI9vb2Lt6evduFc= github.com/multiformats/go-multihash v0.2.3 h1:7Lyc8XfX/IY2jWb/gI7JP+o7JEq9hOa7BFvVU9RSh+U= github.com/multiformats/go-multihash v0.2.3/go.mod h1:dXgKXCXjBzdscBLk9JkjINiEsCKRVch90MdaGiKsvSM= -github.com/multiformats/go-multistream v0.1.0/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= -github.com/multiformats/go-multistream v0.1.1/go.mod h1:KmHZ40hzVxiaiwlj3MEbYgK9JFk2/9UktWZAF54Du38= -github.com/multiformats/go-multistream v0.2.1/go.mod h1:5GZPQZbkWOLOn3J2y4Y99vVW7vOfsAflxARk3x14o6k= -github.com/multiformats/go-multistream v0.2.2/go.mod h1:UIcnm7Zuo8HKG+HkWgfQsGL+/MIEhyTqbODbIUwSXKs= github.com/multiformats/go-multistream v0.4.1 h1:rFy0Iiyn3YT0asivDUIR05leAdwZq3de4741sbiSdfo= -github.com/multiformats/go-multistream v0.4.1/go.mod h1:Mz5eykRVAjJWckE2U78c6xqdtyNUEhKSM0Lwar2p77Q= -github.com/multiformats/go-varint v0.0.1/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= -github.com/multiformats/go-varint v0.0.2/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= github.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= -github.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8= github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= -github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= -github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= -github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= -github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= -github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nkovacs/streamquote v1.0.0 h1:PmVIV08Zlx2lZK5fFZlMZ04eHcDTIFJCv/5/0twVUow= -github.com/nkovacs/streamquote v1.0.0/go.mod h1:BN+NaZ2CmdKqUuTUXUEm9j95B2TRbpOWpxbJYzzgUsc= -github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= -github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= -github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= -github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU= -github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.16.0 h1:6gjqkI8iiRHMvdccRJM8rVKjCWk6ZIm6FTm3ddIe4/c= -github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= -github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= -github.com/opencontainers/runtime-spec v1.1.0 h1:HHUyrt9mwHUjtasSbXSMvs4cyFxh+Bll4AjJ9odEGpg= -github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= -github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= -github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= -github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= -github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= -github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.6.0 h1:aetoXYr0Tv7xRU/V4B4IZJ2QcbtMUFoNb3ORp7TzIK4= github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys= github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= -github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= -github.com/petar/GoLLRB v0.0.0-20210522233825-ae3b015fd3e9 h1:1/WtZae0yGtPq+TI6+Tv1WTxkukpXeMlviSxvL7SRgk= -github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= -github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= -github.com/polydawn/refmt v0.0.0-20190408063855-01bf1e26dd14/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= -github.com/polydawn/refmt v0.0.0-20190807091052-3d65705ee9f1/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= -github.com/polydawn/refmt v0.0.0-20190809202753-05966cbd336a/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= -github.com/polydawn/refmt v0.0.0-20201211092308-30ac6d18308e/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= github.com/polydawn/refmt v0.89.0 h1:ADJTApkvkeBZsN0tBTx8QjpD9JkmxbKp0cxfr9qszm4= github.com/polydawn/refmt v0.89.0/go.mod h1:/zvteZs/GwLtCgZ4BL6CBsk9IKIlexP43ObX9AxTqTw= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.10.0/go.mod h1:WJM3cc3yu7XKBKa/I8WeZm+V3eltZnBwfENSU7mdogU= github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= -github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= -github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= +github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo= -github.com/quic-go/qtls-go1-20 v0.3.3 h1:17/glZSLI9P9fDAeyCHBFSWSqJcwx1byhLwP5eUIDCM= +github.com/quic-go/qtls-go1-20 v0.3.2 h1:rRgN3WfnKbyik4dBV8A6girlJVxGand/d+jVKbQq5GI= github.com/quic-go/quic-go v0.37.6 h1:2IIUmQzT5YNxAiaPGjs++Z4hGOtIR0q79uS5qE9ccfY= github.com/quic-go/webtransport-go v0.5.3 h1:5XMlzemqB4qmOlgIus5zB45AcZ2kCgCy2EptUrfOPWU= -github.com/raulk/clock v1.1.0 h1:dpb29+UKMbLqiU/jqIJptgLR1nn23HLgMY0sTCDza5Y= -github.com/raulk/clock v1.1.0/go.mod h1:3MpVxdZ/ODBQDxbN+kzshf5OSZwPjtMDx6BBXBmOeY0= -github.com/raulk/go-watchdog v1.3.0 h1:oUmdlHxdkXRJlwfG0O9omj8ukerm8MEQavSiDTEtBsk= -github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= -github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shirou/gopsutil v2.18.12+incompatible h1:1eaJvGomDnH74/5cF4CTmTbLHAriGFsTZppLXDX93OM= -github.com/shirou/gopsutil v2.18.12+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shirou/gopsutil/v3 v3.22.5 h1:atX36I/IXgFiB81687vSiBI5zrMsxcIBkP9cQMJQoJA= github.com/shirou/gopsutil/v3 v3.22.5/go.mod h1:so9G9VzeHt/hsd0YwqprnjHnfARAUktauykSbr+y2gA= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= -github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= -github.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0= -github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= -github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= -github.com/shurcooL/gofontwoff v0.0.0-20180329035133-29b52fc0a18d/go.mod h1:05UtEgK5zq39gLST6uB0cf3NEHjETfB4Fgr3Gx5R9Vw= -github.com/shurcooL/gopherjslib v0.0.0-20160914041154-feb6d3990c2c/go.mod h1:8d3azKNyqcHP1GaQE/c6dDgjkgSx2BZ4IoEi4F1reUI= -github.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b/go.mod h1:ZpfEhSmds4ytuByIcDnOLkTHGUI6KNqRNPDLHDk+mUU= -github.com/shurcooL/highlight_go v0.0.0-20181028180052-98c3abbbae20/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag= -github.com/shurcooL/home v0.0.0-20181020052607-80b7ffcb30f9/go.mod h1:+rgNQw2P9ARFAs37qieuu7ohDNQ3gds9msbT2yn85sg= -github.com/shurcooL/htmlg v0.0.0-20170918183704-d01228ac9e50/go.mod h1:zPn1wHpTIePGnXSHpsVPWEktKXHr6+SS6x/IKRb7cpw= -github.com/shurcooL/httperror v0.0.0-20170206035902-86b7830d14cc/go.mod h1:aYMfkZ6DWSJPJ6c4Wwz3QtW22G7mf/PEgaB9k/ik5+Y= -github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= -github.com/shurcooL/httpgzip v0.0.0-20180522190206-b1c53ac65af9/go.mod h1:919LwcH0M7/W4fcZ0/jy0qGght1GIhqyS/EgWGH2j5Q= -github.com/shurcooL/issues v0.0.0-20181008053335-6292fdc1e191/go.mod h1:e2qWDig5bLteJ4fwvDAc2NHzqFEthkqn7aOZAOpj+PQ= -github.com/shurcooL/issuesapp v0.0.0-20180602232740-048589ce2241/go.mod h1:NPpHK2TI7iSaM0buivtFUc9offApnI0Alt/K8hcHy0I= -github.com/shurcooL/notifications v0.0.0-20181007000457-627ab5aea122/go.mod h1:b5uSkrEVM1jQUspwbixRBhaIjIzL2xazXp6kntxYle0= -github.com/shurcooL/octicon v0.0.0-20181028054416-fa4f57f9efb2/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ= -github.com/shurcooL/reactions v0.0.0-20181006231557-f2e0b4ca5b82/go.mod h1:TCR1lToEk4d2s07G3XGfz2QrgHXg4RJBvjrOozvoWfk= -github.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4= -github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/assertions v1.0.1/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM= github.com/smartystreets/assertions v1.2.0 h1:42S6lae5dvLc7BrLu/0ugRtcFVjoJNMC/N3yZFZkDFs= github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo= github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa/go.mod h1:2RVY1rIf+2J2o/IM9+vPq9RzmHDSseB7FoXiSNIUsoU= -github.com/smartystreets/goconvey v0.0.0-20190731233626-505e41936337/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.7.2 h1:9RBaZCeXEQ3UselpuwUQHltGVXvdwm6cv1hgR6gDIPg= github.com/smartystreets/goconvey v1.7.2/go.mod h1:Vw0tHAZW6lzCRk3xgdin6fKYcG+G3Pg9vgXWeJpQFMM= -github.com/smola/gocompat v0.2.0/go.mod h1:1B0MlxbmoZNo3h8guHp8HztB3BSYR5itql9qtVc0ypY= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= -github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE= -github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= -github.com/spacemonkeygo/openssl v0.0.0-20181017203307-c2dcc5cca94a/go.mod h1:7AyxJNCJ7SBZ1MfVQCWD6Uqo2oubI2Eq2y2eqf+A5r0= -github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572/go.mod h1:w0SWMsp6j9O/dk4/ZpIhL+3CkG8ofA2vuv7k+ltqUMc= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -1383,22 +631,14 @@ github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTd github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.7.0 h1:xVKxvI7ouOI5I+U9s2eeiUfMaWBVoXA3AWskkrqK0VM= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/src-d/envconfig v1.0.0/go.mod h1:Q9YQZ7BKITldTBnoxsE5gOeB5y66RyPXeue/R4aaNBc= -github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -1414,7 +654,6 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/swaggo/files v1.0.1 h1:J1bVJ4XHZNq0I46UU90611i9/YzdrF7x92oX1ig5IdE= @@ -1423,83 +662,37 @@ github.com/swaggo/gin-swagger v1.6.0 h1:y8sxvQ3E20/RCyrXeFfg60r6H0Z+SwpTjMYsMm+z github.com/swaggo/gin-swagger v1.6.0/go.mod h1:BG00cCEy294xtVpyIAHG6+e2Qzj/xKlRdOqDkvq0uzo= github.com/swaggo/swag v1.8.12 h1:pctzkNPu0AlQP2royqX3apjKCQonAnf7KGoxeO4y64w= github.com/swaggo/swag v1.8.12/go.mod h1:lNfm6Gg+oAq3zRJQNEMBE66LIJKM44mxFqhEEgy2its= -github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= -github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= github.com/tealeg/xlsx v1.0.5 h1:+f8oFmvY8Gw1iUXzPk+kz+4GpbDZPK1FhPiQRd+ypgE= github.com/tealeg/xlsx v1.0.5/go.mod h1:btRS8dz54TDnvKNosuAqxrM1QgN1udgk9O34bDCnORM= github.com/tech-greedy/go-unixfs v0.3.2-0.20220430222503-e8f92930674d h1:W1jI505rj/6vzEnwEZb534rMi8xSNdMBgD6voDS/66o= github.com/tech-greedy/go-unixfs v0.3.2-0.20220430222503-e8f92930674d/go.mod h1:I7Nqtm06HgOOd+setAoCU6rf/HgVFHE+peeNuOv/5+g= -github.com/tj/go-spin v1.1.0/go.mod h1:Mg1mzmePZm4dva8Qz60H2lHwmJ2loum4VIrLgVnKwh4= github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03OUqALw= github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk= github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o= github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= -github.com/twmb/murmur3 v1.1.6 h1:mqrRot1BRxm+Yct+vavLMou2/iJt0tNVTTC0QoIjaZg= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/ugorji/go/codec v1.2.9 h1:rmenucSohSTiyL09Y+l2OCk+FrMxGMzho2+tjr5ticU= github.com/ugorji/go/codec v1.2.9/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= github.com/unrolled/secure v1.0.7 h1:BcQHp3iKZyZCKj5gRqwQG+5urnGBF00wGgoPPwtheVQ= github.com/unrolled/secure v1.0.7/go.mod h1:uGc1OcRF8gCVBA+ANksKmvM85Hka6SZtQIbrKc3sHS4= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.10/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli/v2 v2.0.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= github.com/urfave/cli/v2 v2.25.5 h1:d0NIAyhh5shGscroL7ek/Ya9QYQE0KNabJgiUinIQkc= github.com/urfave/cli/v2 v2.25.5/go.mod h1:GHupkWPMM0M/sj1a2b4wUrWBPzazNrIjouW6fmdJLxc= -github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasttemplate v1.0.1 h1:tY9CJiPnMXf1ERmG2EyK7gNUd+c6RKGD0IfU8WdUSz8= -github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= -github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49uaYMPRU= -github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM= -github.com/warpfork/go-testmark v0.10.0/go.mod h1:jhEf8FVxd+F17juRubpmut64NEG6I2rgkUhlcqqXwE0= github.com/warpfork/go-testmark v0.11.0 h1:J6LnV8KpceDvo7spaNU4+DauH2n1x+6RaO2rJrmpQ9U= github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= -github.com/warpfork/go-wish v0.0.0-20190328234359-8b3e70f8e830/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= -github.com/warpfork/go-wish v0.0.0-20200122115046-b9ea61034e4a/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= github.com/warpfork/go-wish v0.0.0-20220906213052-39a1cc7a02d0 h1:GDDkbFiaK8jsSDJfjId/PEGEShv6ugrt4kYsC5UIDaQ= github.com/warpfork/go-wish v0.0.0-20220906213052-39a1cc7a02d0/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= -github.com/whyrusleeping/bencher v0.0.0-20190829221104-bb6607aa8bba h1:X4n8JG2e2biEZZXdBKt9HX7DN3bYGFUqljqqy0DqgnY= -github.com/whyrusleeping/bencher v0.0.0-20190829221104-bb6607aa8bba/go.mod h1:CHQnYnQUEPydYCwuy8lmTHfGmdw9TKrhWV0xLx8l0oM= -github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11 h1:5HZfQkwe0mIfyDmc1Em5GqlNRzcdtlv4HTNmdpt7XH0= -github.com/whyrusleeping/cbor-gen v0.0.0-20191216205031-b047b6acb3c0/go.mod h1:xdlJQaiqipF0HW+Mzpg7XRM3fWbGvfgFlcppuvlkIvY= github.com/whyrusleeping/cbor-gen v0.0.0-20200123233031-1cdf64d27158/go.mod h1:Xj/M2wWU+QdTdRbu/L/1dIZY8/Wb2K9pAhtroQuxJJI= -github.com/whyrusleeping/cbor-gen v0.0.0-20200414195334-429a0b5e922e/go.mod h1:Xj/M2wWU+QdTdRbu/L/1dIZY8/Wb2K9pAhtroQuxJJI= -github.com/whyrusleeping/cbor-gen v0.0.0-20200504204219-64967432584d/go.mod h1:W5MvapuoHRP8rz4vxjwCK1pDqF1aQcWsV5PZ+AHbqdg= -github.com/whyrusleeping/cbor-gen v0.0.0-20200710004633-5379fc63235d/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ= -github.com/whyrusleeping/cbor-gen v0.0.0-20200715143311-227fab5a2377/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ= -github.com/whyrusleeping/cbor-gen v0.0.0-20200723185710-6a3894a6352b/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ= -github.com/whyrusleeping/cbor-gen v0.0.0-20200806213330-63aa96ca5488/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ= -github.com/whyrusleeping/cbor-gen v0.0.0-20200810223238-211df3b9e24c/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ= -github.com/whyrusleeping/cbor-gen v0.0.0-20200812213548-958ddffe352c/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ= -github.com/whyrusleeping/cbor-gen v0.0.0-20210118024343-169e9d70c0c2/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ= -github.com/whyrusleeping/cbor-gen v0.0.0-20210303213153-67a261a1d291/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ= -github.com/whyrusleeping/cbor-gen v0.0.0-20220323183124-98fa8256a799/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ= github.com/whyrusleeping/cbor-gen v0.0.0-20230923211252-36a87e1ba72f h1:SBuSxXJL0/ZJMtTxbXZgHZkThl9dNrzyaNhlyaqscRo= github.com/whyrusleeping/cbor-gen v0.0.0-20230923211252-36a87e1ba72f/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ= github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f h1:jQa4QT2UP9WYv2nzyawpKMOCl+Z/jW7djv2/J50lj9E= github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f/go.mod h1:p9UJB6dDgdPgMJZs7UjUOdulKyRr9fqkS+6JKAInPy8= -github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= -github.com/whyrusleeping/go-logging v0.0.1/go.mod h1:lDPYj54zutzG1XYfHAhcc7oNXEburHQBn+Iqd4yS4vE= -github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f/go.mod h1:cZNvX9cFybI01GriPRMXDtczuvUhgbcYr9iCGaNlRv8= -github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= -github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= -github.com/whyrusleeping/mdns v0.0.0-20190826153040-b9b60ed33aa9/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= -github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= -github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/c-for-go v0.0.0-20200718154222-87b0065af829/go.mod h1:h/1PEBwj7Ym/8kOuMWvO2ujZ6Lt+TMbySEXNhjjR87I= -github.com/xlab/pkgconfig v0.0.0-20170226114623-cea12a0fd245/go.mod h1:C+diUUz7pxhNY6KAoLgrTYARGWnt82zWTylZlxT92vk= -github.com/xorcare/golden v0.6.0/go.mod h1:7T39/ZMvaSEZlBPoYfVFmsBLmUl3uz9IuzWj/U6FtvQ= -github.com/xorcare/golden v0.6.1-0.20191112154924-b87f686d7542 h1:oWgZJmC1DorFZDpfMfWg7xk29yEOZiXmo/wZl+utTI8= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= github.com/yinheli/mahonia v0.0.0-20131226213531-0eef680515cc h1:7VHQaaNwHymWbj8lAcXMYX1qopebSBHwYC3ceXLWONU= @@ -1507,7 +700,6 @@ github.com/yinheli/mahonia v0.0.0-20131226213531-0eef680515cc/go.mod h1:Pcc297eV github.com/yinheli/qqwry v0.0.0-20160229183603-f50680010f4a h1:VUPXGL4N1B5xqomxI4vZn0momgleh0hcH0PE/oIOsAI= github.com/yinheli/qqwry v0.0.0-20160229183603-f50680010f4a/go.mod h1:Zva9ErVtC2arl+9xtHwiXujgejX1S3VpOYExADJ9kio= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= @@ -1515,25 +707,12 @@ github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPR github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= -go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= -go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= -go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/otel v1.16.0 h1:Z7GVAX/UkAXPKsy94IU+i6thsQS4nb7LviLpnaNeW8s= go.opentelemetry.io/otel v1.16.0/go.mod h1:vl0h9NUa1D5s1nv3A5vZOYWn8av4K8Ml6JDeHrT/bx4= go.opentelemetry.io/otel/metric v1.16.0 h1:RbrpwVG1Hfv85LgnZ7+txXioPDoh6EdbZHo26Q3hqOo= go.opentelemetry.io/otel/metric v1.16.0/go.mod h1:QE47cpOmkwipPiefDwo2wDzwJrlfxxNYodqc4xnGCo4= -go.opentelemetry.io/otel/sdk v1.16.0 h1:Z1Ok1YsijYL0CSJpHt4cS3wDDh7p572grzNrBMiMWgE= go.opentelemetry.io/otel/trace v1.16.0 h1:8JRpaObFoW0pxuVPapkgH8UhHQj+bJW8jJsCZEu5MQs= go.opentelemetry.io/otel/trace v1.16.0/go.mod h1:Yt9vYq1SdNz3xdjZZK7wcXv1qv2pwLkqr2QVwea0ef0= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -1543,12 +722,11 @@ go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -go.uber.org/goleak v1.0.0/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= +go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/multierr v1.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -1557,53 +735,29 @@ go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9E go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.14.1/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= -go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c= go.uber.org/zap v1.25.0/go.mod h1:JIAUzQIH94IC4fOJQm7gMmBJP5k7wQfdcnYdPoEXJYk= -go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/x/arch v0.0.0-20210923205945-b76863e36670 h1:18EFjUmQOcUvxNYSkA6jO9VAiXCnxFY6NyDX0bHDmkU= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= -golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw= -golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= -golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190618222545-ea8f1a30c443/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190927123631-a832865fa7ad/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200602180216-279210d13fed/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210506145944-38f3c27a63bf/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk= golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1612,13 +766,11 @@ golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxT golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 h1:m64FZMko/V45gv0bNmrNYoDEq8U5YUhetc9cBWKS1TQ= -golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63/go.mod h1:0v4NqG35kSWCMzLaMeX+IQrlSnVE/bqGSyC2cz/9Le8= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190501045829-6d32002ffd75/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb h1:fqpd0EBDzlHRCjiphRR5Zo/RSWWQlWv34418dnEixWk= golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1626,7 +778,6 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= @@ -1637,69 +788,43 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= -golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181029044818-c44066c5c816/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190313220215-9f648a60d977/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= -golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= @@ -1707,64 +832,32 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181029174526-d69651ed3497/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190302025703-b6889370fb10/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190316082340-a2f829d7f35f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190405154228-4b34438f7a67/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190524122548-abf6ff778158/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190526052359-791d8a0f4d09/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201126233918-771906719818/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210317225723-c4fcb01b228e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210426080607-c94f62235c83/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1774,10 +867,8 @@ golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220405052023-b1e9470b6e64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= @@ -1785,9 +876,7 @@ golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= @@ -1795,20 +884,14 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030000716-a0a13e073c7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181130052023-1c3d964395ce/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -1818,30 +901,21 @@ golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200711155855-7342f9734a7d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.12.1-0.20230815132531-74c255bcf846 h1:Vve/L0v7CXXuxUmaMGIEK/dEeq7uiqb5qBgQrZzIE7E= @@ -1854,69 +928,33 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= -google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= -google.golang.org/api v0.1.0/go.mod h1:UGEZY7KEX120AnNLIHFMKIo4obdJhkp2tPbaPlQx13Y= -google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20181202183823-bd91e49a0898/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg= -google.golang.org/genproto v0.0.0-20190306203927-b5d61aea6440/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA= google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= -google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= -google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= -google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.1/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag= google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= @@ -1925,29 +963,17 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= -gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.55.0 h1:E8yzL5unfpW3M6fz/eB7Cb5MQAYSZ7GKo4Qth+N2sgQ= gopkg.in/ini.v1 v1.55.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/src-d/go-cli.v0 v0.0.0-20181105080154-d492247bbc0d/go.mod h1:z+K8VcOYVYcSwSjGebuDL6176A1XskgbtNl64NSg+n8= -gopkg.in/src-d/go-log.v1 v1.0.1/go.mod h1:GN34hKP0g305ysm2/hctJ0Y8nWP3zxXXJ8GFabTyABE= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= @@ -1969,20 +995,13 @@ gorm.io/gorm v1.23.4 h1:1BKWM67O6CflSLcwGQR7ccfmC4ebOxQrTfOQGRE9wjg= gorm.io/gorm v1.23.4/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/plugin/dbresolver v1.1.0 h1:cegr4DeprR6SkLIQlKhJLYxH8muFbJ4SmnojXvoeb00= gorm.io/plugin/dbresolver v1.1.0/go.mod h1:tpImigFAEejCALOttyhWqsy4vfa2Uh/vAUVnL5IRF7Y= -gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= -honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -lukechampine.com/blake3 v1.1.6/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA= lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI= lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k= lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= modernc.org/cc/v3 v3.33.6/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g= modernc.org/cc/v3 v3.33.9/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g= modernc.org/cc/v3 v3.33.11/go.mod h1:iPJg1pkwXqAV16SNgFBVYmggfMg6xhs+2oiO0vclK3g= @@ -2052,7 +1071,6 @@ modernc.org/ccgo/v3 v3.15.19/go.mod h1:TDJj+DxR26pkDteH2E5WQDj/xlmtsX7JdzkJkaZhO modernc.org/ccgo/v3 v3.16.2/go.mod h1:w55kPTAqvRMAYS3Lwij6qhqIuBEYS3Z8QtDkjD8cnik= modernc.org/ccorpus v1.11.1/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= modernc.org/libc v1.9.8/go.mod h1:U1eq8YWr/Kc1RWCMFUWEdkTg8OTcfLw2kY8EDwl039w= modernc.org/libc v1.9.11/go.mod h1:NyF3tsA5ArIjJ83XB0JlqhjTabTCHm9aX4XMPHyQn0Q= @@ -2117,20 +1135,12 @@ modernc.org/memory v1.0.7/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= modernc.org/sqlite v1.16.0 h1:DdvOGaWN0y+X7t2L7RUD63gcwbVjYZjcBZnA68g44EI= modernc.org/sqlite v1.16.0/go.mod h1:Jwe13ItpESZ+78K5WS6+AjXsUg+JvirsjN3iIDO4C8k= -modernc.org/strutil v1.1.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= modernc.org/tcl v1.11.2/go.mod h1:BRzgpajcGdS2qTxniOx9c/dcxjlbA7p12eJNmiriQYo= modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= modernc.org/z v1.3.2/go.mod h1:PEU2oK2OEA1CfzDTd+8E908qEXhC9s0MfyKp5LZsd+k= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g= nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= -sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= -sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= -sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= diff --git a/initialize/create_config.go b/initialize/create_config.go index 324172b..de16d16 100644 --- a/initialize/create_config.go +++ b/initialize/create_config.go @@ -8,7 +8,7 @@ import ( var ConfigList = []ScriptFile{ { Name: "config.yaml", - Content: "autocode:\n transfer-restart: true\n root: G:\\project\\zc-admin\n server: /server\n server-api: /api/v1/%s\n server-plug: /plugin/%s\n server-initialize: /initialize\n server-model: /model/%s\n server-request: /model/%s/request/\n server-router: /router/%s\n server-service: /service/%s\n web: /web/src\n web-api: /api\n web-form: /view\n web-table: /view\ncaptcha:\n key-long: 6\n img-width: 240\n img-height: 80\ncors:\n mode: whitelist\n whitelist:\n - allow-origin: example1.com\n allow-methods: GET, POST\n allow-headers: content-type\n expose-headers: Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers,\n Content-Type\n allow-credentials: true\n - allow-origin: example2.com\n allow-methods: GET, POST\n allow-headers: content-type\n expose-headers: Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers,\n Content-Type\n allow-credentials: true\njwt:\n signing-key: 8b356e3d-5e35-47a6-a933-07baa8cc0fcb\n expires-time: 7d\n buffer-time: 1d\n issuer: qmPlus\nlocal:\n path: uploads/file\n store-path: uploads/file\nmysql:\n path: 8.129.83.148\n port: \"3306\"\n config: charset=utf8mb4&parseTime=True&loc=Local\n db-name: zc_test\n username: root\n password: ZCXTong@2023!+\n max-idle-conns: 10\n max-open-conns: 100\n log-mode: error\n log-zap: false\nredis:\n db: 0\n addr: 127.0.0.1:6379\n password: \"\"\nsystem:\n env: public\n addr: 50005\n db-type: mysql\n oss-type: local\n use-multipoint: false\n use-redis: false\n iplimit-count: 15000\n iplimit-time: 3600\ntimer:\n start: true\n spec: '@daily'\n with_seconds: false\n detail:\n - tableName: sys_operation_records\n compareField: created_at\n interval: 2160h\n - tableName: jwt_blacklists\n compareField: created_at\n interval: 168h", + Content: "cors:\n mode: whitelist\n whitelist:\n - allow-origin: example1.com\n allow-methods: GET, POST\n allow-headers: content-type\n expose-headers: Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers,\n Content-Type\n allow-credentials: true\n - allow-origin: example2.com\n allow-methods: GET, POST\n allow-headers: content-type\n expose-headers: Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers,\n Content-Type\n allow-credentials: true\njwt:\n signing-key: 8b356e3d-5e35-47a6-a933-07baa8cc0fcb\n expires-time: 7d\n buffer-time: 1d\n issuer: qmPlus\nlocal:\n path: uploads/file\n store-path: uploads/file\nmysql:\n path: 8.129.83.148\n port: \"3306\"\n config: charset=utf8mb4&parseTime=True&loc=Local\n db-name: zc_test\n username: root\n password: ZCXTong@2023!+\n max-idle-conns: 10\n max-open-conns: 100\n log-mode: error\n log-zap: false\nredis:\n db: 0\n addr: 127.0.0.1:6379\n password: \"\"\nsystem:\n env: public\n addr: 50005\n db-type: mysql\n oss-type: local\n use-multipoint: false\n use-redis: false\n iplimit-count: 15000\n iplimit-time: 3600\ntimer:\n start: true\n spec: '@daily'\n with_seconds: false\n detail:\n - tableName: sys_operation_records\n compareField: created_at\n interval: 2160h\n - tableName: jwt_blacklists\n compareField: created_at\n interval: 168h", }, { Name: "config_room.yaml", diff --git a/initialize/db_list.go b/initialize/db_list.go deleted file mode 100644 index 2f55774..0000000 --- a/initialize/db_list.go +++ /dev/null @@ -1,30 +0,0 @@ -package initialize - -import ( - "gorm.io/gorm" - "oplian/config" - "oplian/global" -) - -const sys = "system" - -func DBList() { - dbMap := make(map[string]*gorm.DB) - for _, info := range global.ZC_CONFIG.DBList { - if info.Disable { - continue - } - switch info.Type { - case "mysql": - dbMap[info.AliasName] = GormMysqlByConfig(config.Mysql{GeneralDB: info.GeneralDB}) - default: - continue - } - } - // Make a special judgment, whether there is migration - // Migrate multiple database versions for earlier versions - if sysDB, ok := dbMap[sys]; ok { - global.ZC_DB = sysDB - } - global.ZC_DBList = dbMap -} diff --git a/initialize/gorm_mysql.go b/initialize/gorm_mysql.go index c34e0db..c6ed0a3 100644 --- a/initialize/gorm_mysql.go +++ b/initialize/gorm_mysql.go @@ -3,7 +3,6 @@ package initialize import ( "gorm.io/driver/mysql" "gorm.io/gorm" - "oplian/config" "oplian/global" "oplian/initialize/internal" ) @@ -29,23 +28,3 @@ func GormMysql() *gorm.DB { return db } } - -// GormMysqlByConfig Initialize the configuration used to Mysql database -func GormMysqlByConfig(m config.Mysql) *gorm.DB { - if m.Dbname == "" { - return nil - } - mysqlConfig := mysql.Config{ - DSN: m.Dsn(), - DefaultStringSize: 191, - SkipInitializeWithVersion: false, - } - if db, err := gorm.Open(mysql.New(mysqlConfig), internal.Gorm.Config()); err != nil { - panic(err) - } else { - sqlDB, _ := db.DB() - sqlDB.SetMaxIdleConns(m.MaxIdleConns) - sqlDB.SetMaxOpenConns(m.MaxOpenConns) - return db - } -} diff --git a/initialize/plugin.go b/initialize/plugin.go deleted file mode 100644 index ae546e8..0000000 --- a/initialize/plugin.go +++ /dev/null @@ -1,35 +0,0 @@ -package initialize - -import ( - "fmt" - "github.com/gin-gonic/gin" - "oplian/global" - "oplian/middleware" - "oplian/plugin/email" - "oplian/utils/plugin" -) - -func PluginInit(group *gin.RouterGroup, Plugin ...plugin.Plugin) { - for i := range Plugin { - PluginGroup := group.Group(Plugin[i].RouterPath()) - Plugin[i].Register(PluginGroup) - } -} - -func InstallPlugin(Router *gin.Engine) { - PublicGroup := Router.Group("") - fmt.Println("No authentication plug-in is installed==》", PublicGroup) - PrivateGroup := Router.Group("") - fmt.Println("Authentication plug-in installation==》", PrivateGroup) - PrivateGroup.Use(middleware.JWTAuth()).Use(middleware.CasbinHandler()) - //Add plugins with role-linked permissions Example Local example mode in online warehouse mode Note that import above can be switched on its own with the same effect - PluginInit(PrivateGroup, email.CreateEmailPlug( - global.ZC_CONFIG.Email.To, - global.ZC_CONFIG.Email.From, - global.ZC_CONFIG.Email.Host, - global.ZC_CONFIG.Email.Secret, - global.ZC_CONFIG.Email.Nickname, - global.ZC_CONFIG.Email.Port, - global.ZC_CONFIG.Email.IsSSL, - )) -} diff --git a/initialize/router.go b/initialize/router.go index d4605e2..ab92f19 100644 --- a/initialize/router.go +++ b/initialize/router.go @@ -2,11 +2,8 @@ package initialize import ( "github.com/gin-gonic/gin" - swaggerFiles "github.com/swaggo/files" - ginSwagger "github.com/swaggo/gin-swagger" "log" "net/http" - _ "oplian/docs" "oplian/global" "oplian/middleware" "oplian/router" @@ -32,9 +29,6 @@ func routers() *gin.Engine { //Router.UsePercent(middleware.Cors()) //Router.UsePercent(middleware.CorsByRules()) //log.Println("use middleware cors") - Router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) - log.Println("register swagger handler") - // Add routing group prefixes in a unified manner. Multiple servers go online PublicGroup := Router.Group("") { @@ -58,10 +52,8 @@ func routers() *gin.Engine { systemRouter.InitMenuRouter(PrivateGroup) systemRouter.InitSystemRouter(PrivateGroup) systemRouter.InitCasbinRouter(PrivateGroup) - systemRouter.InitAutoCodeRouter(PrivateGroup) systemRouter.InitAuthorityRouter(PrivateGroup) systemRouter.InitSysDictionaryRouter(PrivateGroup) - systemRouter.InitAutoCodeHistoryRouter(PrivateGroup) systemRouter.InitSysOperationRecordRouter(PrivateGroup) systemRouter.InitSysDictionaryDetailRouter(PrivateGroup) systemRouter.InitAuthorityBtnRouterRouter(PrivateGroup) diff --git a/initialize/timer.go b/initialize/timer.go index cd9d4fd..b53f50a 100644 --- a/initialize/timer.go +++ b/initialize/timer.go @@ -40,28 +40,6 @@ import ( "oplian/utils" ) -func Timer() { - if global.ZC_CONFIG.Timer.Start { - for i := range global.ZC_CONFIG.Timer.Detail { - go func(detail config.Detail) { - var option []cron.Option - if global.ZC_CONFIG.Timer.WithSeconds { - option = append(option, cron.WithSeconds()) - } - _, err := global.ZC_Timer.AddTaskByFunc("ClearDB", global.ZC_CONFIG.Timer.Spec, func() { - err := utils.ClearTable(global.ZC_DB, detail.TableName, detail.CompareField, detail.Interval) - if err != nil { - fmt.Println("timer error:", err) - } - }, option...) - if err != nil { - fmt.Println("add timer error:", err) - } - }(global.ZC_CONFIG.Timer.Detail[i]) - } - } -} - // ConnectWeb gateway Connection web func ConnectWeb(ctx context.Context) error { //gid := uuid.New() diff --git a/middleware/email.go b/middleware/email.go deleted file mode 100644 index ecf735f..0000000 --- a/middleware/email.go +++ /dev/null @@ -1,60 +0,0 @@ -package middleware - -import ( - "bytes" - "io" - "strconv" - "time" - - "oplian/plugin/email/utils" - utils2 "oplian/utils" - - "github.com/gin-gonic/gin" - "go.uber.org/zap" - "oplian/global" - "oplian/model/system" - "oplian/service" -) - -var userService = service.ServiceGroupApp.SystemServiceGroup.UserService - -func ErrorToEmail() gin.HandlerFunc { - return func(c *gin.Context) { - var username string - claims, _ := utils2.GetClaims(c) - if claims.Username != "" { - username = claims.Username - } else { - id, _ := strconv.Atoi(c.Request.Header.Get("x-user-id")) - user, err := userService.FindUserById(id) - if err != nil { - username = "Unknown" - } - username = user.Username - } - body, _ := io.ReadAll(c.Request.Body) - // 再重新写回请求体body中,ioutil.ReadAll会清空c.Request.Body中的数据 - c.Request.Body = io.NopCloser(bytes.NewBuffer(body)) - record := system.SysOperationRecord{ - Ip: c.ClientIP(), - Method: c.Request.Method, - Path: c.Request.URL.Path, - Agent: c.Request.UserAgent(), - Body: string(body), - } - now := time.Now() - - c.Next() - - latency := time.Since(now) - status := c.Writer.Status() - record.ErrorMessage = c.Errors.ByType(gin.ErrorTypePrivate).String() - str := "接收到的请求为" + record.Body + "\n" + "请求方式为" + record.Method + "\n" + "报错信息如下" + record.ErrorMessage + "\n" + "耗时" + latency.String() + "\n" - if status != 200 { - subject := username + "" + record.Ip + "调用了" + record.Path + "报错了" - if err := utils.ErrorToEmail(subject, str); err != nil { - global.ZC_LOG.Error("ErrorToEmail Failed, err:", zap.Error(err)) - } - } - } -} diff --git a/packfile/notUsePackFile.go b/packfile/notUsePackFile.go deleted file mode 100644 index 53871d6..0000000 --- a/packfile/notUsePackFile.go +++ /dev/null @@ -1,4 +0,0 @@ -//go:build !packfile -// +build !packfile - -package packfile diff --git a/packfile/usePackFile.go b/packfile/usePackFile.go deleted file mode 100644 index d39a84f..0000000 --- a/packfile/usePackFile.go +++ /dev/null @@ -1,44 +0,0 @@ -//go:build packfile -// +build packfile - -package packfile - -import ( - "fmt" - "os" - "path/filepath" - "strings" -) - -//go:generate go-bindata -o=staticFile.go -pkg=packfile -tags=packfile ../resource/... ../config.yaml - -func writeFile(path string, data []byte) { - - if lastSeparator := strings.LastIndex(path, "/"); lastSeparator != -1 { - dirPath := path[:lastSeparator] - if _, err := os.Stat(dirPath); err != nil && os.IsNotExist(err) { - os.MkdirAll(dirPath, os.ModePerm) - } - } - - if _, err := os.Stat(path); os.IsNotExist(err) { - if err2 := os.WriteFile(path, data, os.ModePerm); err2 != nil { - fmt.Printf("Write file failed: %s\n", path) - } - } else { - fmt.Printf("File exist, skip: %s\n", path) - } -} - -func init() { - for key := range _bindata { - filePath, _ := filepath.Abs(strings.TrimPrefix(key, ".")) - data, err := Asset(key) - if err != nil { - // Asset was not found. - fmt.Printf("Fail to find: %s\n", filePath) - } else { - writeFile(filePath, data) - } - } -} diff --git a/plugin/email/README.MD b/plugin/email/README.MD deleted file mode 100644 index 302528f..0000000 --- a/plugin/email/README.MD +++ /dev/null @@ -1,75 +0,0 @@ -## ZC 邮件发送功能插件 -#### 开发者:GIN-VUE-ADMIN 官方 - -### 使用步骤 - -#### 1. 前往ZC主程序下的initialize/router.go 在Routers 方法最末尾按照你需要的及安全模式添加本插件 - 例: - 本插件可以采用gva的配置文件 也可以直接写死内容作为配置 建议为gva添加配置文件结构 然后将配置传入 - PluginInit(PrivateGroup, email.CreateEmailPlug( - global.ZC_CONFIG.Email.To, - global.ZC_CONFIG.Email.From, - global.ZC_CONFIG.Email.Host, - global.ZC_CONFIG.Email.Secret, - global.ZC_CONFIG.Email.Nickname, - global.ZC_CONFIG.Email.Port, - global.ZC_CONFIG.Email.IsSSL, - )) - - 同样也可以再传入时写死 - - PluginInit(PrivateGroup, email.CreateEmailPlug( - "a@qq.com", - "b@qq.com", - "smtp.qq.com", - "global.ZC_CONFIG.Email.Secret", - "登录密钥", - 465, - true, - )) - -### 2. 配置说明 - -#### 2-1 全局配置结构体说明 - //其中 Form 和 Secret 通常来说就是用户名和密码 - - type Email struct { - To string // 收件人:多个以英文逗号分隔 例:a@qq.com b@qq.com 正式开发中请把此项目作为参数使用 此处配置主要用于发送错误监控邮件 - From string // 发件人 你自己要发邮件的邮箱 - Host string // 服务器地址 例如 smtp.qq.com 请前往QQ或者你要发邮件的邮箱查看其smtp协议 - Secret string // 密钥 用于登录的密钥 最好不要用邮箱密码 去邮箱smtp申请一个用于登录的密钥 - Nickname string // 昵称 发件人昵称 自定义即可 可以不填 - Port int // 端口 请前往QQ或者你要发邮件的邮箱查看其smtp协议 大多为 465 - IsSSL bool // 是否SSL 是否开启SSL - } -#### 2-2 入参结构说明 - //其中 Form 和 Secret 通常来说就是用户名和密码 - - type Email struct { - To string `json:"to"` // 邮件发送给谁 - Subject string `json:"subject"` // 邮件标题 - Body string `json:"body"` // 邮件内容 - } - - -### 3. 方法API - - utils.EmailTest(邮件标题,邮件主体) 发送测试邮件 - 例:utils.EmailTest("测试邮件","测试邮件") - utils.ErrorToEmail(邮件标题,邮件主体) 错误监控 - 例:utils.ErrorToEmail("测试邮件","测试邮件") - utils.Email(目标邮箱多个的话用逗号分隔,邮件标题,邮件主体) 发送测试邮件 - 例:utils.Email(”a.qq.com,b.qq.com“,"测试邮件","测试邮件") - -### 4. 可直接调用的接口 - - 测试接口: /email/emailTest [post] 已配置swagger - - 发送邮件接口接口: /email/emailSend [post] 已配置swagger - 入参: - type Email struct { - To string `json:"to"` // 邮件发送给谁 - Subject string `json:"subject"` // 邮件标题 - Body string `json:"body"` // 邮件内容 - } - diff --git a/plugin/email/api/enter.go b/plugin/email/api/enter.go deleted file mode 100644 index 353404d..0000000 --- a/plugin/email/api/enter.go +++ /dev/null @@ -1,7 +0,0 @@ -package api - -type ApiGroup struct { - EmailApi -} - -var ApiGroupApp = new(ApiGroup) diff --git a/plugin/email/api/sys_email.go b/plugin/email/api/sys_email.go deleted file mode 100644 index 77f44b0..0000000 --- a/plugin/email/api/sys_email.go +++ /dev/null @@ -1,53 +0,0 @@ -package api - -import ( - "github.com/gin-gonic/gin" - "go.uber.org/zap" - "oplian/global" - "oplian/model/common/response" - email_response "oplian/plugin/email/model/response" - "oplian/plugin/email/service" -) - -type EmailApi struct{} - -// EmailTest -// @Tags System -// @Summary 发送测试邮件 -// @Security ApiKeyAuth -// @Produce application/json -// @Success 200 {string} string "{"success":true,"data":{},"msg":"发送成功"}" -// @Router /email/emailTest [post] -func (s *EmailApi) EmailTest(c *gin.Context) { - err := service.ServiceGroupApp.EmailTest() - if err != nil { - global.ZC_LOG.Error("发送失败!", zap.Error(err)) - response.FailWithMessage("发送失败", c) - return - } - response.OkWithMessage("发送成功", c) -} - -// SendEmail -// @Tags System -// @Summary 发送邮件 -// @Security ApiKeyAuth -// @Produce application/json -// @Param data body email_response.Email true "发送邮件必须的参数" -// @Success 200 {string} string "{"success":true,"data":{},"msg":"发送成功"}" -// @Router /email/sendEmail [post] -func (s *EmailApi) SendEmail(c *gin.Context) { - var email email_response.Email - err := c.ShouldBindJSON(&email) - if err != nil { - response.FailWithMessage(err.Error(), c) - return - } - err = service.ServiceGroupApp.SendEmail(email.To, email.Subject, email.Body) - if err != nil { - global.ZC_LOG.Error("发送失败!", zap.Error(err)) - response.FailWithMessage("发送失败", c) - return - } - response.OkWithMessage("发送成功", c) -} diff --git a/plugin/email/config/email.go b/plugin/email/config/email.go deleted file mode 100644 index c535348..0000000 --- a/plugin/email/config/email.go +++ /dev/null @@ -1,11 +0,0 @@ -package config - -type Email struct { - To string `mapstructure:"to" json:"to" yaml:"to"` // 收件人:多个以英文逗号分隔 例:a@qq.com b@qq.com 正式开发中请把此项目作为参数使用 - From string `mapstructure:"from" json:"from" yaml:"from"` // 发件人 你自己要发邮件的邮箱 - Host string `mapstructure:"host" json:"host" yaml:"host"` // 服务器地址 例如 smtp.qq.com 请前往QQ或者你要发邮件的邮箱查看其smtp协议 - Secret string `mapstructure:"secret" json:"secret" yaml:"secret"` // 密钥 用于登录的密钥 最好不要用邮箱密码 去邮箱smtp申请一个用于登录的密钥 - Nickname string `mapstructure:"nickname" json:"nickname" yaml:"nickname"` // 昵称 发件人昵称 通常为自己的邮箱 - Port int `mapstructure:"port" json:"port" yaml:"port"` // 端口 请前往QQ或者你要发邮件的邮箱查看其smtp协议 大多为 465 - IsSSL bool `mapstructure:"is-ssl" json:"isSSL" yaml:"is-ssl"` // 是否SSL 是否开启SSL -} diff --git a/plugin/email/global/gloabl.go b/plugin/email/global/gloabl.go deleted file mode 100644 index 42417e1..0000000 --- a/plugin/email/global/gloabl.go +++ /dev/null @@ -1,5 +0,0 @@ -package global - -import "oplian/plugin/email/config" - -var GlobalConfig = new(config.Email) diff --git a/plugin/email/main.go b/plugin/email/main.go deleted file mode 100644 index 04375b9..0000000 --- a/plugin/email/main.go +++ /dev/null @@ -1,28 +0,0 @@ -package email - -import ( - "github.com/gin-gonic/gin" - "oplian/plugin/email/global" - "oplian/plugin/email/router" -) - -type emailPlugin struct{} - -func CreateEmailPlug(To, From, Host, Secret, Nickname string, Port int, IsSSL bool) *emailPlugin { - global.GlobalConfig.To = To - global.GlobalConfig.From = From - global.GlobalConfig.Host = Host - global.GlobalConfig.Secret = Secret - global.GlobalConfig.Nickname = Nickname - global.GlobalConfig.Port = Port - global.GlobalConfig.IsSSL = IsSSL - return &emailPlugin{} -} - -func (*emailPlugin) Register(group *gin.RouterGroup) { - router.RouterGroupApp.InitEmailRouter(group) -} - -func (*emailPlugin) RouterPath() string { - return "email" -} diff --git a/plugin/email/model/response/email.go b/plugin/email/model/response/email.go deleted file mode 100644 index ed25475..0000000 --- a/plugin/email/model/response/email.go +++ /dev/null @@ -1,7 +0,0 @@ -package response - -type Email struct { - To string `json:"to"` // 邮件发送给谁 - Subject string `json:"subject"` // 邮件标题 - Body string `json:"body"` // 邮件内容 -} diff --git a/plugin/email/router/enter.go b/plugin/email/router/enter.go deleted file mode 100644 index e081a54..0000000 --- a/plugin/email/router/enter.go +++ /dev/null @@ -1,7 +0,0 @@ -package router - -type RouterGroup struct { - EmailRouter -} - -var RouterGroupApp = new(RouterGroup) diff --git a/plugin/email/router/sys_email.go b/plugin/email/router/sys_email.go deleted file mode 100644 index 908b9e1..0000000 --- a/plugin/email/router/sys_email.go +++ /dev/null @@ -1,19 +0,0 @@ -package router - -import ( - "github.com/gin-gonic/gin" - "oplian/middleware" - "oplian/plugin/email/api" -) - -type EmailRouter struct{} - -func (s *EmailRouter) InitEmailRouter(Router *gin.RouterGroup) { - emailRouter := Router.Use(middleware.OperationRecord()) - EmailApi := api.ApiGroupApp.EmailApi.EmailTest - SendEmail := api.ApiGroupApp.EmailApi.SendEmail - { - emailRouter.POST("emailTest", EmailApi) // 发送测试邮件 - emailRouter.POST("sendEmail", SendEmail) // 发送邮件 - } -} diff --git a/plugin/email/service/enter.go b/plugin/email/service/enter.go deleted file mode 100644 index e96e267..0000000 --- a/plugin/email/service/enter.go +++ /dev/null @@ -1,7 +0,0 @@ -package service - -type ServiceGroup struct { - EmailService -} - -var ServiceGroupApp = new(ServiceGroup) diff --git a/plugin/email/service/sys_email.go b/plugin/email/service/sys_email.go deleted file mode 100644 index ee98884..0000000 --- a/plugin/email/service/sys_email.go +++ /dev/null @@ -1,32 +0,0 @@ -package service - -import ( - "oplian/plugin/email/utils" -) - -type EmailService struct{} - -// -//@function: EmailTest -//@description: 发送邮件测试 -//@return: err error - -func (e *EmailService) EmailTest() (err error) { - subject := "test" - body := "test" - err = utils.EmailTest(subject, body) - return err -} - -// -//@function: EmailTest -//@description: 发送邮件测试 -//@return: err error -//@params to string 收件人 -//@params subject string 标题(主题) -//@params body string 邮件内容 - -func (e *EmailService) SendEmail(to, subject, body string) (err error) { - err = utils.Email(to, subject, body) - return err -} diff --git a/plugin/email/utils/email.go b/plugin/email/utils/email.go deleted file mode 100644 index c39158d..0000000 --- a/plugin/email/utils/email.go +++ /dev/null @@ -1,81 +0,0 @@ -package utils - -import ( - "crypto/tls" - "fmt" - "net/smtp" - "strings" - - "oplian/plugin/email/global" - - "github.com/jordan-wright/email" -) - -// -//@function: Email -//@description: Email发送方法 -//@param: subject string, body string -//@return: error - -func Email(To, subject string, body string) error { - to := strings.Split(To, ",") - return send(to, subject, body) -} - -//@function: ErrorToEmail -//@description: 给email中间件错误发送邮件到指定邮箱 -//@param: subject string, body string -//@return: error - -func ErrorToEmail(subject string, body string) error { - to := strings.Split(global.GlobalConfig.To, ",") - if to[len(to)-1] == "" { // 判断切片的最后一个元素是否为空,为空则移除 - to = to[:len(to)-1] - } - return send(to, subject, body) -} - -// -//@function: EmailTest -//@description: Email测试方法 -//@param: subject string, body string -//@return: error - -func EmailTest(subject string, body string) error { - to := []string{global.GlobalConfig.From} - return send(to, subject, body) -} - -// -//@function: send -//@description: Email发送方法 -//@param: subject string, body string -//@return: error - -func send(to []string, subject string, body string) error { - from := global.GlobalConfig.From - nickname := global.GlobalConfig.Nickname - secret := global.GlobalConfig.Secret - host := global.GlobalConfig.Host - port := global.GlobalConfig.Port - isSSL := global.GlobalConfig.IsSSL - - auth := smtp.PlainAuth("", from, secret, host) - e := email.NewEmail() - if nickname != "" { - e.From = fmt.Sprintf("%s <%s>", nickname, from) - } else { - e.From = from - } - e.To = to - e.Subject = subject - e.HTML = []byte(body) - var err error - hostAddr := fmt.Sprintf("%s:%d", host, port) - if isSSL { - err = e.SendWithTLS(hostAddr, auth, &tls.Config{ServerName: host}) - } else { - err = e.Send(hostAddr, auth) - } - return err -} diff --git a/plugin/plugin-tool/utils/check.go b/plugin/plugin-tool/utils/check.go deleted file mode 100644 index 6af6c35..0000000 --- a/plugin/plugin-tool/utils/check.go +++ /dev/null @@ -1,53 +0,0 @@ -package utils - -import ( - "fmt" - "oplian/global" - "oplian/model/system" - "strconv" -) - -func RegisterApis(apis ...system.SysApi) { - var count int64 - var apiPaths []string - for i := range apis { - apiPaths = append(apiPaths, apis[i].Path) - } - global.ZC_DB.Find(&[]system.SysApi{}, "path in (?)", apiPaths).Count(&count) - if count > 0 { - fmt.Println("插件已安装或存在同名路由") - return - } - err := global.ZC_DB.Create(&apis).Error - if err != nil { - fmt.Println(err) - } -} - -func RegisterMenus(menus ...system.SysBaseMenu) { - var count int64 - var menuNames []string - parentMenu := menus[0] - otherMenus := menus[1:] - for i := range menus { - menuNames = append(menuNames, menus[i].Name) - } - global.ZC_DB.Find(&[]system.SysBaseMenu{}, "name in (?)", menuNames).Count(&count) - if count > 0 { - fmt.Println("插件已安装或存在同名菜单") - return - } - parentMenu.ParentId = "0" - err := global.ZC_DB.Create(&parentMenu).Error - if err != nil { - fmt.Println(err) - } - for i := range otherMenus { - pid := strconv.Itoa(int(parentMenu.ID)) - otherMenus[i].ParentId = pid - } - err = global.ZC_DB.Create(&otherMenus).Error - if err != nil { - fmt.Println(err) - } -} diff --git a/plugin/ws/ws.go b/plugin/ws/ws.go deleted file mode 100644 index bd6926e..0000000 --- a/plugin/ws/ws.go +++ /dev/null @@ -1,84 +0,0 @@ -package ws - -import ( - "github.com/flipped-aurora/ws/core/biz" - "github.com/flipped-aurora/ws/core/data" - "github.com/gin-gonic/gin" - "go.uber.org/zap" - "nhooyr.io/websocket" -) - -type wsPlugin struct { - logger *zap.Logger // 日志输出对象 - manageBuf int64 // buffer - registeredMsgHandler map[int32]func(biz.IMessage) bool // 消息处理 - checkMap map[string]biz.CheckFunc // 用户校验 - - admin biz.IManage - adminCase *biz.AdminCase -} - -func DefaultRegisteredMsgHandler(admin biz.IManage, logger *zap.Logger) map[int32]func(biz.IMessage) bool { - return map[int32]func(msg biz.IMessage) bool{ - 1: func(msg biz.IMessage) bool { - // w.admin 里面找到注册客户端的方法 - client, ok := admin.FindClient(msg.GetTo()) - if !ok { - logger.Info("没有找到该用户") - return false - } - return client.SendMes(msg) - }, - } -} - -func DefaultCheckMap() map[string]biz.CheckFunc { - return map[string]biz.CheckFunc{ - "gva_ws": func(c interface{}) (string, bool) { - // 先断言是gin.content - cc, ok := c.(*gin.Context) - if !ok { - return "", false - } - token := cc.Query("jwt") - // 可以携带jwt - if len(token) == 0 { - return "", false - } - // 解析 jwt... - - return token, true - }, - } -} - -func (w *wsPlugin) Register(g *gin.RouterGroup) { - // gva_ws 为身份校验函数 - g.GET("/ws", w.adminCase.HandlerWS("gva_ws", &websocket.AcceptOptions{ - InsecureSkipVerify: true, - })) - g.POST("/sendMsg", w.adminCase.SendMsg("gva_ws")) -} - -func (w *wsPlugin) RouterPath() string { - return "gva_ws" -} - -func GenerateWs(logger *zap.Logger, manageBuf int64, checkMap map[string]biz.CheckFunc) *wsPlugin { - m := data.NewManage(manageBuf) - t := data.NewTopic() - h := data.NewHandle() - admin := data.NewAdmin(m, t, h, logger) - for s, checkFunc := range checkMap { - admin.AddCheckFunc(s, checkFunc) - } - registeredMsgHandler := DefaultRegisteredMsgHandler(admin, logger) - - for key, handler := range registeredMsgHandler { - admin.RegisteredMsgHandler(key, handler) - } - return &wsPlugin{ - logger: logger, manageBuf: manageBuf, - registeredMsgHandler: registeredMsgHandler, checkMap: checkMap, admin: admin, adminCase: biz.NewAdmin(admin), - } -} diff --git a/resource/autocode_template/readme.txt.tpl b/resource/autocode_template/readme.txt.tpl deleted file mode 100644 index 238e419..0000000 --- a/resource/autocode_template/readme.txt.tpl +++ /dev/null @@ -1,7 +0,0 @@ -代码解压后把fe的api文件内容粘贴进前端api文件夹下并修改为自己想要的名字即可 - -后端代码解压后同理,放到自己想要的 mvc对应路径 并且到 initRouter中注册自动生成的路由 到registerTable中注册自动生成的model - -项目github:"https://github.com/piexlmax/zc-admin/server" - -希望大家给个star多多鼓励 diff --git a/resource/autocode_template/server/api.go.tpl b/resource/autocode_template/server/api.go.tpl deleted file mode 100644 index 266358c..0000000 --- a/resource/autocode_template/server/api.go.tpl +++ /dev/null @@ -1,210 +0,0 @@ -package {{.Package}} - -import ( - "zc-admin/server/global" - "zc-admin/server/model/{{.Package}}" - "zc-admin/server/model/common/request" - {{.Package}}Req "zc-admin/server/model/{{.Package}}/request" - "zc-admin/server/model/common/response" - "zc-admin/server/service" - "github.com/gin-gonic/gin" - "go.uber.org/zap" - {{- if .NeedValid }} - "zc-admin/server/utils" - {{- else if .AutoCreateResource}} - "zc-admin/server/utils" - {{- end }} -) - -type {{.StructName}}Api struct { -} - -var {{.Abbreviation}}Service = service.ServiceGroupApp.{{.PackageT}}ServiceGroup.{{.StructName}}Service - - -// Create{{.StructName}} 创建{{.StructName}} -// @Tags {{.StructName}} -// @Summary 创建{{.StructName}} -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data body {{.Package}}.{{.StructName}} true "创建{{.StructName}}" -// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}" -// @Router /{{.Abbreviation}}/create{{.StructName}} [post] -func ({{.Abbreviation}}Api *{{.StructName}}Api) Create{{.StructName}}(c *gin.Context) { - var {{.Abbreviation}} {{.Package}}.{{.StructName}} - err := c.ShouldBindJSON(&{{.Abbreviation}}) - if err != nil { - response.FailWithMessage(err.Error(), c) - return - } - {{- if .AutoCreateResource }} - {{.Abbreviation}}.CreatedBy = utils.GetUserID(c) - {{- end }} - {{- if .NeedValid }} - verify := utils.Rules{ - {{- range $index,$element := .Fields }} - {{- if $element.Require }} - "{{$element.FieldName}}":{utils.NotEmpty()}, - {{- end }} - {{- end }} - } - if err := utils.Verify({{.Abbreviation}}, verify); err != nil { - response.FailWithMessage(err.Error(), c) - return - } - {{- end }} - if err := {{.Abbreviation}}Service.Create{{.StructName}}({{.Abbreviation}}); err != nil { - global.ZC_LOG.Error("创建失败!", zap.Error(err)) - response.FailWithMessage("创建失败", c) - } else { - response.OkWithMessage("创建成功", c) - } -} - -// Delete{{.StructName}} 删除{{.StructName}} -// @Tags {{.StructName}} -// @Summary 删除{{.StructName}} -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data body {{.Package}}.{{.StructName}} true "删除{{.StructName}}" -// @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}" -// @Router /{{.Abbreviation}}/delete{{.StructName}} [delete] -func ({{.Abbreviation}}Api *{{.StructName}}Api) Delete{{.StructName}}(c *gin.Context) { - var {{.Abbreviation}} {{.Package}}.{{.StructName}} - err := c.ShouldBindJSON(&{{.Abbreviation}}) - if err != nil { - response.FailWithMessage(err.Error(), c) - return - } - {{- if .AutoCreateResource }} - {{.Abbreviation}}.DeletedBy = utils.GetUserID(c) - {{- end }} - if err := {{.Abbreviation}}Service.Delete{{.StructName}}({{.Abbreviation}}); err != nil { - global.ZC_LOG.Error("删除失败!", zap.Error(err)) - response.FailWithMessage("删除失败", c) - } else { - response.OkWithMessage("删除成功", c) - } -} - -// Delete{{.StructName}}ByIds 批量删除{{.StructName}} -// @Tags {{.StructName}} -// @Summary 批量删除{{.StructName}} -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data body request.IdsReq true "批量删除{{.StructName}}" -// @Success 200 {string} string "{"success":true,"data":{},"msg":"批量删除成功"}" -// @Router /{{.Abbreviation}}/delete{{.StructName}}ByIds [delete] -func ({{.Abbreviation}}Api *{{.StructName}}Api) Delete{{.StructName}}ByIds(c *gin.Context) { - var IDS request.IdsReq - err := c.ShouldBindJSON(&IDS) - if err != nil { - response.FailWithMessage(err.Error(), c) - return - } - {{- if .AutoCreateResource }} - deletedBy := utils.GetUserID(c) - {{- end }} - if err := {{.Abbreviation}}Service.Delete{{.StructName}}ByIds(IDS{{- if .AutoCreateResource }},deletedBy{{- end }}); err != nil { - global.ZC_LOG.Error("批量删除失败!", zap.Error(err)) - response.FailWithMessage("批量删除失败", c) - } else { - response.OkWithMessage("批量删除成功", c) - } -} - -// Update{{.StructName}} 更新{{.StructName}} -// @Tags {{.StructName}} -// @Summary 更新{{.StructName}} -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data body {{.Package}}.{{.StructName}} true "更新{{.StructName}}" -// @Success 200 {string} string "{"success":true,"data":{},"msg":"更新成功"}" -// @Router /{{.Abbreviation}}/update{{.StructName}} [put] -func ({{.Abbreviation}}Api *{{.StructName}}Api) Update{{.StructName}}(c *gin.Context) { - var {{.Abbreviation}} {{.Package}}.{{.StructName}} - err := c.ShouldBindJSON(&{{.Abbreviation}}) - if err != nil { - response.FailWithMessage(err.Error(), c) - return - } - {{- if .AutoCreateResource }} - {{.Abbreviation}}.UpdatedBy = utils.GetUserID(c) - {{- end }} - {{- if .NeedValid }} - verify := utils.Rules{ - {{- range $index,$element := .Fields }} - {{- if $element.Require }} - "{{$element.FieldName}}":{utils.NotEmpty()}, - {{- end }} - {{- end }} - } - if err := utils.Verify({{.Abbreviation}}, verify); err != nil { - response.FailWithMessage(err.Error(), c) - return - } - {{- end }} - if err := {{.Abbreviation}}Service.Update{{.StructName}}({{.Abbreviation}}); err != nil { - global.ZC_LOG.Error("更新失败!", zap.Error(err)) - response.FailWithMessage("更新失败", c) - } else { - response.OkWithMessage("更新成功", c) - } -} - -// Find{{.StructName}} 用id查询{{.StructName}} -// @Tags {{.StructName}} -// @Summary 用id查询{{.StructName}} -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data query {{.Package}}.{{.StructName}} true "用id查询{{.StructName}}" -// @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}" -// @Router /{{.Abbreviation}}/find{{.StructName}} [get] -func ({{.Abbreviation}}Api *{{.StructName}}Api) Find{{.StructName}}(c *gin.Context) { - var {{.Abbreviation}} {{.Package}}.{{.StructName}} - err := c.ShouldBindQuery(&{{.Abbreviation}}) - if err != nil { - response.FailWithMessage(err.Error(), c) - return - } - if re{{.Abbreviation}}, err := {{.Abbreviation}}Service.Get{{.StructName}}({{.Abbreviation}}.ID); err != nil { - global.ZC_LOG.Error("查询失败!", zap.Error(err)) - response.FailWithMessage("查询失败", c) - } else { - response.OkWithData(gin.H{"re{{.Abbreviation}}": re{{.Abbreviation}}}, c) - } -} - -// Get{{.StructName}}List 分页获取{{.StructName}}列表 -// @Tags {{.StructName}} -// @Summary 分页获取{{.StructName}}列表 -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data query {{.Package}}Req.{{.StructName}}Search true "分页获取{{.StructName}}列表" -// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}" -// @Router /{{.Abbreviation}}/get{{.StructName}}List [get] -func ({{.Abbreviation}}Api *{{.StructName}}Api) Get{{.StructName}}List(c *gin.Context) { - var pageInfo {{.Package}}Req.{{.StructName}}Search - err := c.ShouldBindQuery(&pageInfo) - if err != nil { - response.FailWithMessage(err.Error(), c) - return - } - if list, total, err := {{.Abbreviation}}Service.Get{{.StructName}}InfoList(pageInfo); err != nil { - global.ZC_LOG.Error("获取失败!", zap.Error(err)) - response.FailWithMessage("获取失败", c) - } else { - response.OkWithDetailed(response.PageResult{ - List: list, - Total: total, - Page: pageInfo.Page, - PageSize: pageInfo.PageSize, - }, "获取成功", c) - } -} diff --git a/resource/autocode_template/server/model.go.tpl b/resource/autocode_template/server/model.go.tpl deleted file mode 100644 index df0d57c..0000000 --- a/resource/autocode_template/server/model.go.tpl +++ /dev/null @@ -1,31 +0,0 @@ -// 自动生成模板{{.StructName}} -package {{.Package}} - -import ( - "zc-admin/server/global" - {{ if .HasTimer }}"time"{{ end }} -) - -// {{.StructName}} 结构体 -type {{.StructName}} struct { - global.ZC_MODEL {{- range .Fields}} - {{- if eq .FieldType "enum" }} - {{.FieldName}} string `json:"{{.FieldJson}}" form:"{{.FieldJson}}" gorm:"column:{{.ColumnName}};type:enum({{.DataTypeLong}});comment:{{.Comment}};"` - {{- else if ne .FieldType "string" }} - {{.FieldName}} *{{.FieldType}} `json:"{{.FieldJson}}" form:"{{.FieldJson}}" gorm:"column:{{.ColumnName}};comment:{{.Comment}};{{- if .DataTypeLong -}}size:{{.DataTypeLong}};{{- end -}}"` - {{- else }} - {{.FieldName}} {{.FieldType}} `json:"{{.FieldJson}}" form:"{{.FieldJson}}" gorm:"column:{{.ColumnName}};comment:{{.Comment}};{{- if .DataTypeLong -}}size:{{.DataTypeLong}};{{- end -}}"` - {{- end }} {{- end }} - {{- if .AutoCreateResource }} - CreatedBy uint `gorm:"column:created_by;comment:创建者"` - UpdatedBy uint `gorm:"column:updated_by;comment:更新者"` - DeletedBy uint `gorm:"column:deleted_by;comment:删除者"` - {{- end}} -} - -{{ if .TableName }} -// TableName {{.StructName}} 表名 -func ({{.StructName}}) TableName() string { - return "{{.TableName}}" -} -{{ end }} diff --git a/resource/autocode_template/server/request.go.tpl b/resource/autocode_template/server/request.go.tpl deleted file mode 100644 index abb6b17..0000000 --- a/resource/autocode_template/server/request.go.tpl +++ /dev/null @@ -1,20 +0,0 @@ -package request - -import ( - "zc-admin/server/model/{{.Package}}" - "zc-admin/server/model/common/request" - "time" -) - -type {{.StructName}}Search struct{ - {{.Package}}.{{.StructName}} - StartCreatedAt *time.Time `json:"startCreatedAt" form:"startCreatedAt"` - EndCreatedAt *time.Time `json:"endCreatedAt" form:"endCreatedAt"` - {{- range .Fields}} - {{- if eq .FieldSearchType "BETWEEN" "NOT BETWEEN"}} - Start{{.FieldName}} *{{.FieldType}} `json:"start{{.FieldName}}" form:"start{{.FieldName}}"` - End{{.FieldName}} *{{.FieldType}} `json:"end{{.FieldName}}" form:"end{{.FieldName}}"` - {{- end }} - {{- end }} - request.PageInfo -} diff --git a/resource/autocode_template/server/router.go.tpl b/resource/autocode_template/server/router.go.tpl deleted file mode 100644 index 552d697..0000000 --- a/resource/autocode_template/server/router.go.tpl +++ /dev/null @@ -1,27 +0,0 @@ -package {{.Package}} - -import ( - "zc-admin/server/api/v1" - "zc-admin/server/middleware" - "github.com/gin-gonic/gin" -) - -type {{.StructName}}Router struct { -} - -// Init{{.StructName}}Router 初始化 {{.StructName}} 路由信息 -func (s *{{.StructName}}Router) Init{{.StructName}}Router(Router *gin.RouterGroup) { - {{.Abbreviation}}Router := Router.Group("{{.Abbreviation}}").Use(middleware.OperationRecord()) - {{.Abbreviation}}RouterWithoutRecord := Router.Group("{{.Abbreviation}}") - var {{.Abbreviation}}Api = v1.ApiGroupApp.{{.PackageT}}ApiGroup.{{.StructName}}Api - { - {{.Abbreviation}}Router.POST("create{{.StructName}}", {{.Abbreviation}}Api.Create{{.StructName}}) // 新建{{.StructName}} - {{.Abbreviation}}Router.DELETE("delete{{.StructName}}", {{.Abbreviation}}Api.Delete{{.StructName}}) // 删除{{.StructName}} - {{.Abbreviation}}Router.DELETE("delete{{.StructName}}ByIds", {{.Abbreviation}}Api.Delete{{.StructName}}ByIds) // 批量删除{{.StructName}} - {{.Abbreviation}}Router.PUT("update{{.StructName}}", {{.Abbreviation}}Api.Update{{.StructName}}) // 更新{{.StructName}} - } - { - {{.Abbreviation}}RouterWithoutRecord.GET("find{{.StructName}}", {{.Abbreviation}}Api.Find{{.StructName}}) // 根据ID获取{{.StructName}} - {{.Abbreviation}}RouterWithoutRecord.GET("get{{.StructName}}List", {{.Abbreviation}}Api.Get{{.StructName}}List) // 获取{{.StructName}}列表 - } -} diff --git a/resource/autocode_template/server/service.go.tpl b/resource/autocode_template/server/service.go.tpl deleted file mode 100644 index e77d67a..0000000 --- a/resource/autocode_template/server/service.go.tpl +++ /dev/null @@ -1,117 +0,0 @@ -package {{.Package}} - -import ( - "zc-admin/server/global" - "zc-admin/server/model/{{.Package}}" - "zc-admin/server/model/common/request" - {{.Package}}Req "zc-admin/server/model/{{.Package}}/request" - {{- if .AutoCreateResource }} - "gorm.io/gorm" - {{- end}} -) - -type {{.StructName}}Service struct { -} - -{{- $db := "" }} -{{- if eq .BusinessDB "" }} - {{- $db = "global.ZC_DB" }} -{{- else}} - {{- $db = printf "global.MustGetGlobalDBByDBName(\"%s\")" .BusinessDB }} -{{- end}} - -// Create{{.StructName}} 创建{{.StructName}}记录 - -func ({{.Abbreviation}}Service *{{.StructName}}Service) Create{{.StructName}}({{.Abbreviation}} {{.Package}}.{{.StructName}}) (err error) { - err = {{$db}}.Create(&{{.Abbreviation}}).Error - return err -} - -// Delete{{.StructName}} 删除{{.StructName}}记录 - -func ({{.Abbreviation}}Service *{{.StructName}}Service)Delete{{.StructName}}({{.Abbreviation}} {{.Package}}.{{.StructName}}) (err error) { - {{- if .AutoCreateResource }} - err = {{$db}}.Transaction(func(tx *gorm.DB) error { - if err := tx.Model(&{{.Package}}.{{.StructName}}{}).Where("id = ?", {{.Abbreviation}}.ID).Update("deleted_by", {{.Abbreviation}}.DeletedBy).Error; err != nil { - return err - } - if err = tx.Delete(&{{.Abbreviation}}).Error; err != nil { - return err - } - return nil - }) - {{- else }} - err = {{$db}}.Delete(&{{.Abbreviation}}).Error - {{- end }} - return err -} - -// Delete{{.StructName}}ByIds 批量删除{{.StructName}}记录 - -func ({{.Abbreviation}}Service *{{.StructName}}Service)Delete{{.StructName}}ByIds(ids request.IdsReq{{- if .AutoCreateResource }},deleted_by uint{{- end}}) (err error) { - {{- if .AutoCreateResource }} - err = {{$db}}.Transaction(func(tx *gorm.DB) error { - if err := tx.Model(&{{.Package}}.{{.StructName}}{}).Where("id in ?", ids.Ids).Update("deleted_by", deleted_by).Error; err != nil { - return err - } - if err := tx.Where("id in ?", ids.Ids).Delete(&{{.Package}}.{{.StructName}}{}).Error; err != nil { - return err - } - return nil - }) - {{- else}} - err = {{$db}}.Delete(&[]{{.Package}}.{{.StructName}}{},"id in ?",ids.Ids).Error - {{- end}} - return err -} - -// Update{{.StructName}} 更新{{.StructName}}记录 - -func ({{.Abbreviation}}Service *{{.StructName}}Service)Update{{.StructName}}({{.Abbreviation}} {{.Package}}.{{.StructName}}) (err error) { - err = {{$db}}.Save(&{{.Abbreviation}}).Error - return err -} - -// Get{{.StructName}} 根据id获取{{.StructName}}记录 - -func ({{.Abbreviation}}Service *{{.StructName}}Service)Get{{.StructName}}(id uint) ({{.Abbreviation}} {{.Package}}.{{.StructName}}, err error) { - err = {{$db}}.Where("id = ?", id).First(&{{.Abbreviation}}).Error - return -} - -// Get{{.StructName}}InfoList 分页获取{{.StructName}}记录 - -func ({{.Abbreviation}}Service *{{.StructName}}Service)Get{{.StructName}}InfoList(info {{.Package}}Req.{{.StructName}}Search) (list []{{.Package}}.{{.StructName}}, total int64, err error) { - limit := info.PageSize - offset := info.PageSize * (info.Page - 1) - // 创建db - db := {{$db}}.Model(&{{.Package}}.{{.StructName}}{}) - var {{.Abbreviation}}s []{{.Package}}.{{.StructName}} - // 如果有条件搜索 下方会自动创建搜索语句 - if info.StartCreatedAt !=nil && info.EndCreatedAt !=nil { - db = db.Where("created_at BETWEEN ? AND ?", info.StartCreatedAt, info.EndCreatedAt) - } - {{- range .Fields}} - {{- if .FieldSearchType}} - {{- if eq .FieldType "string" }} - if info.{{.FieldName}} != "" { - db = db.Where("{{.ColumnName}} {{.FieldSearchType}} ?",{{if eq .FieldSearchType "LIKE"}}"%"+ {{ end }}info.{{.FieldName}}{{if eq .FieldSearchType "LIKE"}}+"%"{{ end }}) - } - {{- else if eq .FieldSearchType "BETWEEN" "NOT BETWEEN"}} - if info.Start{{.FieldName}} != nil && info.End{{.FieldName}} != nil { - db = db.Where("{{.ColumnName}} {{.FieldSearchType}} ? AND ? ",info.Start{{.FieldName}},info.End{{.FieldName}}) - } - {{- else}} - if info.{{.FieldName}} != nil { - db = db.Where("{{.ColumnName}} {{.FieldSearchType}} ?",{{if eq .FieldSearchType "LIKE"}}"%"+{{ end }}info.{{.FieldName}}{{if eq .FieldSearchType "LIKE"}}+"%"{{ end }}) - } - {{- end }} - {{- end }} - {{- end }} - err = db.Count(&total).Error - if err!=nil { - return - } - err = db.Limit(limit).Offset(offset).Find(&{{.Abbreviation}}s).Error - return {{.Abbreviation}}s, total, err -} diff --git a/resource/autocode_template/subcontract/api_enter.go.tpl b/resource/autocode_template/subcontract/api_enter.go.tpl deleted file mode 100644 index b979432..0000000 --- a/resource/autocode_template/subcontract/api_enter.go.tpl +++ /dev/null @@ -1,7 +0,0 @@ -package {{ .PackageName }} - -type ApiGroup struct { - // Code generated by zc-admin/server Begin; DO NOT EDIT. - - // Code generated by zc-admin/server End; DO NOT EDIT. -} diff --git a/resource/autocode_template/subcontract/data.go b/resource/autocode_template/subcontract/data.go deleted file mode 100644 index cb445a5..0000000 --- a/resource/autocode_template/subcontract/data.go +++ /dev/null @@ -1,14 +0,0 @@ -package subcontract - -import ( - _ "embed" -) - -//go:embed api_enter.go.tpl -var API []byte - -//go:embed router_enter.go.tpl -var Router []byte - -//go:embed service_enter.go.tpl -var Server []byte diff --git a/resource/autocode_template/subcontract/router_enter.go.tpl b/resource/autocode_template/subcontract/router_enter.go.tpl deleted file mode 100644 index 0a4b609..0000000 --- a/resource/autocode_template/subcontract/router_enter.go.tpl +++ /dev/null @@ -1,7 +0,0 @@ -package {{ .PackageName }} - -type RouterGroup struct { - // Code generated by zc-admin/server Begin; DO NOT EDIT. - - // Code generated by zc-admin/server End; DO NOT EDIT. -} diff --git a/resource/autocode_template/subcontract/service_enter.go.tpl b/resource/autocode_template/subcontract/service_enter.go.tpl deleted file mode 100644 index 6febb87..0000000 --- a/resource/autocode_template/subcontract/service_enter.go.tpl +++ /dev/null @@ -1,9 +0,0 @@ -package {{ .PackageName }} - - -type ServiceGroup struct { - // Code generated by zc-admin/server Begin; DO NOT EDIT. - - // Code generated by zc-admin/server End; DO NOT EDIT. -} - diff --git a/resource/autocode_template/web/api.js.tpl b/resource/autocode_template/web/api.js.tpl deleted file mode 100644 index a8b77cf..0000000 --- a/resource/autocode_template/web/api.js.tpl +++ /dev/null @@ -1,97 +0,0 @@ -import service from '@/utils/request' - -// @Tags {{.StructName}} -// @Summary 创建{{.StructName}} -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data body model.{{.StructName}} true "创建{{.StructName}}" -// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}" -// @Router /{{.Abbreviation}}/create{{.StructName}} [post] -export const create{{.StructName}} = (data) => { - return service({ - url: '/{{.Abbreviation}}/create{{.StructName}}', - method: 'post', - data - }) -} - -// @Tags {{.StructName}} -// @Summary 删除{{.StructName}} -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data body model.{{.StructName}} true "删除{{.StructName}}" -// @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}" -// @Router /{{.Abbreviation}}/delete{{.StructName}} [delete] -export const delete{{.StructName}} = (data) => { - return service({ - url: '/{{.Abbreviation}}/delete{{.StructName}}', - method: 'delete', - data - }) -} - -// @Tags {{.StructName}} -// @Summary 删除{{.StructName}} -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data body request.IdsReq true "批量删除{{.StructName}}" -// @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}" -// @Router /{{.Abbreviation}}/delete{{.StructName}} [delete] -export const delete{{.StructName}}ByIds = (data) => { - return service({ - url: '/{{.Abbreviation}}/delete{{.StructName}}ByIds', - method: 'delete', - data - }) -} - -// @Tags {{.StructName}} -// @Summary 更新{{.StructName}} -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data body model.{{.StructName}} true "更新{{.StructName}}" -// @Success 200 {string} string "{"success":true,"data":{},"msg":"更新成功"}" -// @Router /{{.Abbreviation}}/update{{.StructName}} [put] -export const update{{.StructName}} = (data) => { - return service({ - url: '/{{.Abbreviation}}/update{{.StructName}}', - method: 'put', - data - }) -} - -// @Tags {{.StructName}} -// @Summary 用id查询{{.StructName}} -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data query model.{{.StructName}} true "用id查询{{.StructName}}" -// @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}" -// @Router /{{.Abbreviation}}/find{{.StructName}} [get] -export const find{{.StructName}} = (params) => { - return service({ - url: '/{{.Abbreviation}}/find{{.StructName}}', - method: 'get', - params - }) -} - -// @Tags {{.StructName}} -// @Summary 分页获取{{.StructName}}列表 -// @Security ApiKeyAuth -// @accept application/json -// @Produce application/json -// @Param data query request.PageInfo true "分页获取{{.StructName}}列表" -// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}" -// @Router /{{.Abbreviation}}/get{{.StructName}}List [get] -export const get{{.StructName}}List = (params) => { - return service({ - url: '/{{.Abbreviation}}/get{{.StructName}}List', - method: 'get', - params - }) -} diff --git a/resource/autocode_template/web/form.vue.tpl b/resource/autocode_template/web/form.vue.tpl deleted file mode 100644 index cf9e151..0000000 --- a/resource/autocode_template/web/form.vue.tpl +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - diff --git a/resource/autocode_template/web/table.vue.tpl b/resource/autocode_template/web/table.vue.tpl deleted file mode 100644 index a6b99d0..0000000 --- a/resource/autocode_template/web/table.vue.tpl +++ /dev/null @@ -1,437 +0,0 @@ - - - - - - - diff --git a/resource/excel/ExcelExport.xlsx b/resource/excel/ExcelExport.xlsx deleted file mode 100644 index 4f75781..0000000 Binary files a/resource/excel/ExcelExport.xlsx and /dev/null differ diff --git a/resource/excel/ExcelImport.xlsx b/resource/excel/ExcelImport.xlsx deleted file mode 100644 index 6a6156d..0000000 Binary files a/resource/excel/ExcelImport.xlsx and /dev/null differ diff --git a/resource/excel/ExcelTemplate.xlsx b/resource/excel/ExcelTemplate.xlsx deleted file mode 100644 index d0d53e9..0000000 Binary files a/resource/excel/ExcelTemplate.xlsx and /dev/null differ diff --git a/resource/page/css/app.7832f89c.css b/resource/page/css/app.7832f89c.css deleted file mode 100644 index 39a4456..0000000 --- a/resource/page/css/app.7832f89c.css +++ /dev/null @@ -1 +0,0 @@ -.primary-color[data-v-c59cf5f6]{color:#409eff}.background-opacity[data-v-c59cf5f6]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-c59cf5f6]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-c59cf5f6]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-c59cf5f6]{margin-top:8px}.el-form-item--small .el-radio[data-v-c59cf5f6]{line-height:32px!important}.el-form-item--small .el-rate[data-v-c59cf5f6]{margin-top:6px}.el-form-item--mini .el-radio[data-v-c59cf5f6]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-c59cf5f6]{margin-top:4px}.el-card[data-v-c59cf5f6]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-c59cf5f6]::-ms-reveal{display:none}[data-v-c59cf5f6]::-webkit-scrollbar{width:8px;height:8px}[data-v-c59cf5f6]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-c59cf5f6]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-c59cf5f6]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-c59cf5f6]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.color-svg-icon[data-v-c59cf5f6]{color:#409eff}.side-scroll-bar[data-v-c59cf5f6] .el-scrollbar__wrap{overflow-x:hidden}div.panel-container[data-v-c59cf5f6]{padding-bottom:10px}.no-bottom-margin[data-v-c59cf5f6] .el-tabs__header{margin-bottom:0}.indent-left-margin[data-v-c59cf5f6] .el-tabs__nav{margin-left:20px}.el-collapse-item[data-v-c59cf5f6] ul>li{list-style:none}.widget-collapse[data-v-c59cf5f6]{border-top-width:0}.widget-collapse[data-v-c59cf5f6] .el-collapse-item__header{margin-left:8px;font-style:italic;font-weight:700}.widget-collapse[data-v-c59cf5f6] .el-collapse-item__content{padding-bottom:6px}.widget-collapse[data-v-c59cf5f6] .el-collapse-item__content ul{padding-left:10px;margin:0;-webkit-margin-before:0;margin-block-start:0;-webkit-margin-after:.25em;margin-block-end:.25em;-webkit-padding-start:10px;padding-inline-start:10px}.widget-collapse[data-v-c59cf5f6] .el-collapse-item__content ul:after{content:"";display:block;clear:both}.widget-collapse[data-v-c59cf5f6] .el-collapse-item__content ul .container-widget-item,.widget-collapse[data-v-c59cf5f6] .el-collapse-item__content ul .field-widget-item{display:inline-block;height:28px;line-height:28px;width:115px;float:left;margin:2px 6px 6px 0;cursor:move;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;background:#f1f2f3}.widget-collapse[data-v-c59cf5f6] .el-collapse-item__content ul .container-widget-item:hover,.widget-collapse[data-v-c59cf5f6] .el-collapse-item__content ul .field-widget-item:hover{background:#ebeef5;outline:1px solid #409eff}.widget-collapse[data-v-c59cf5f6] .el-collapse-item__content ul .drag-handler{position:absolute;top:0;left:160px;background-color:#ddd;border-radius:5px;padding-right:5px;font-size:11px;color:#666}.el-card.ft-card[data-v-c59cf5f6]{border:1px solid #8896b3}.ft-card[data-v-c59cf5f6]{margin-bottom:10px}.ft-card .bottom[data-v-c59cf5f6]{margin-top:10px;line-height:12px}.ft-card .ft-title[data-v-c59cf5f6]{font-size:13px;font-weight:700}.ft-card .right-button[data-v-c59cf5f6]{padding:0;float:right}.ft-card .clear-fix[data-v-c59cf5f6]:after,.ft-card .clear-fix[data-v-c59cf5f6]:before{display:table;content:""}.ft-card .clear-fix[data-v-c59cf5f6]:after{clear:both}.primary-color[data-v-c1251358]{color:#409eff}.background-opacity[data-v-c1251358]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-c1251358]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-c1251358]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-c1251358]{margin-top:8px}.el-form-item--small .el-radio[data-v-c1251358]{line-height:32px!important}.el-form-item--small .el-rate[data-v-c1251358]{margin-top:6px}.el-form-item--mini .el-radio[data-v-c1251358]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-c1251358]{margin-top:4px}.el-card[data-v-c1251358]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-c1251358]::-ms-reveal{display:none}[data-v-c1251358]::-webkit-scrollbar{width:8px;height:8px}[data-v-c1251358]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-c1251358]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-c1251358]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-c1251358]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.design-time-bottom-margin[data-v-c1251358]{margin-bottom:5px}.field-wrapper[data-v-c1251358]{position:relative}.field-wrapper .field-action[data-v-c1251358]{position:absolute;bottom:0;right:-2px;height:22px;line-height:22px;background:#409eff;z-index:9}.field-wrapper .field-action i[data-v-c1251358]{font-size:14px;color:#fff;margin:0 5px;cursor:pointer}.field-wrapper .drag-handler[data-v-c1251358]{position:absolute;top:0;left:-1px;height:20px;line-height:20px;z-index:9}.field-wrapper .drag-handler i[data-v-c1251358]{font-size:12px;font-style:normal;color:#fff;margin:4px;cursor:move}.field-wrapper .drag-handler[data-v-c1251358]:hover{background:#409eff}.static-content-item[data-v-c1251358]{min-height:20px;display:flex;align-items:center}.static-content-item[data-v-c1251358] .el-divider--horizontal{margin:0}.el-form-item.selected[data-v-c1251358],.static-content-item.selected[data-v-c1251358]{outline:2px solid #409eff}.primary-color[data-v-1293f105]{color:#409eff}.background-opacity[data-v-1293f105]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-1293f105]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-1293f105]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-1293f105]{margin-top:8px}.el-form-item--small .el-radio[data-v-1293f105]{line-height:32px!important}.el-form-item--small .el-rate[data-v-1293f105]{margin-top:6px}.el-form-item--mini .el-radio[data-v-1293f105]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-1293f105]{margin-top:4px}.el-card[data-v-1293f105]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-1293f105]::-ms-reveal{display:none}[data-v-1293f105]::-webkit-scrollbar{width:8px;height:8px}[data-v-1293f105]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-1293f105]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-1293f105]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-1293f105]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.primary-color[data-v-0bf26fd2]{color:#409eff}.background-opacity[data-v-0bf26fd2]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-0bf26fd2]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-0bf26fd2]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-0bf26fd2]{margin-top:8px}.el-form-item--small .el-radio[data-v-0bf26fd2]{line-height:32px!important}.el-form-item--small .el-rate[data-v-0bf26fd2]{margin-top:6px}.el-form-item--mini .el-radio[data-v-0bf26fd2]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-0bf26fd2]{margin-top:4px}.el-card[data-v-0bf26fd2]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-0bf26fd2]::-ms-reveal{display:none}[data-v-0bf26fd2]::-webkit-scrollbar{width:8px;height:8px}[data-v-0bf26fd2]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-0bf26fd2]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-0bf26fd2]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-0bf26fd2]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.design-time-bottom-margin[data-v-0bf26fd2]{margin-bottom:5px}.field-wrapper[data-v-0bf26fd2]{position:relative}.field-wrapper .field-action[data-v-0bf26fd2]{position:absolute;bottom:0;right:-2px;height:22px;line-height:22px;background:#409eff;z-index:9}.field-wrapper .field-action i[data-v-0bf26fd2]{font-size:14px;color:#fff;margin:0 5px;cursor:pointer}.field-wrapper .drag-handler[data-v-0bf26fd2]{position:absolute;top:0;left:-1px;height:20px;line-height:20px;z-index:9}.field-wrapper .drag-handler i[data-v-0bf26fd2]{font-size:12px;font-style:normal;color:#fff;margin:4px;cursor:move}.field-wrapper .drag-handler[data-v-0bf26fd2]:hover{background:#409eff}.el-form-item[data-v-0bf26fd2]{position:relative}.el-form-item[data-v-0bf26fd2] .el-form-item__label{white-space:nowrap;text-overflow:ellipsis}.el-form-item span.custom-label i[data-v-0bf26fd2]{margin:0 3px}.el-form-item[data-v-0bf26fd2] .hide-spin-button input::-webkit-inner-spin-button,.el-form-item[data-v-0bf26fd2] .hide-spin-button input::-webkit-outer-spin-button{-webkit-appearance:none!important}.el-form-item[data-v-0bf26fd2] .hide-spin-button input[type=number]{-moz-appearance:textfield}.required[data-v-0bf26fd2] .el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.static-content-item[data-v-0bf26fd2]{min-height:20px;display:flex;align-items:center}.static-content-item[data-v-0bf26fd2] .el-divider--horizontal{margin:0}.el-form-item.selected[data-v-0bf26fd2],.static-content-item.selected[data-v-0bf26fd2]{outline:2px solid #409eff}[data-v-0bf26fd2] .label-left-align .el-form-item__label{text-align:left}[data-v-0bf26fd2] .label-center-align .el-form-item__label{text-align:center}[data-v-0bf26fd2] .label-right-align .el-form-item__label{text-align:right}.primary-color[data-v-40c2df66]{color:#409eff}.background-opacity[data-v-40c2df66]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-40c2df66]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-40c2df66]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-40c2df66]{margin-top:8px}.el-form-item--small .el-radio[data-v-40c2df66]{line-height:32px!important}.el-form-item--small .el-rate[data-v-40c2df66]{margin-top:6px}.el-form-item--mini .el-radio[data-v-40c2df66]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-40c2df66]{margin-top:4px}.el-card[data-v-40c2df66]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-40c2df66]::-ms-reveal{display:none}[data-v-40c2df66]::-webkit-scrollbar{width:8px;height:8px}[data-v-40c2df66]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-40c2df66]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-40c2df66]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-40c2df66]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.full-width-input[data-v-40c2df66]{width:100%!important}.primary-color[data-v-608e81d3]{color:#409eff}.background-opacity[data-v-608e81d3]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-608e81d3]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-608e81d3]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-608e81d3]{margin-top:8px}.el-form-item--small .el-radio[data-v-608e81d3]{line-height:32px!important}.el-form-item--small .el-rate[data-v-608e81d3]{margin-top:6px}.el-form-item--mini .el-radio[data-v-608e81d3]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-608e81d3]{margin-top:4px}.el-card[data-v-608e81d3]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-608e81d3]::-ms-reveal{display:none}[data-v-608e81d3]::-webkit-scrollbar{width:8px;height:8px}[data-v-608e81d3]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-608e81d3]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-608e81d3]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-608e81d3]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.primary-color[data-v-53ad0c08]{color:#409eff}.background-opacity[data-v-53ad0c08]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-53ad0c08]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-53ad0c08]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-53ad0c08]{margin-top:8px}.el-form-item--small .el-radio[data-v-53ad0c08]{line-height:32px!important}.el-form-item--small .el-rate[data-v-53ad0c08]{margin-top:6px}.el-form-item--mini .el-radio[data-v-53ad0c08]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-53ad0c08]{margin-top:4px}.el-card[data-v-53ad0c08]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-53ad0c08]::-ms-reveal{display:none}[data-v-53ad0c08]::-webkit-scrollbar{width:8px;height:8px}[data-v-53ad0c08]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-53ad0c08]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-53ad0c08]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-53ad0c08]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.full-width-input[data-v-53ad0c08]{width:100%!important}.primary-color[data-v-76c3fdc8]{color:#409eff}.background-opacity[data-v-76c3fdc8]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-76c3fdc8]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-76c3fdc8]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-76c3fdc8]{margin-top:8px}.el-form-item--small .el-radio[data-v-76c3fdc8]{line-height:32px!important}.el-form-item--small .el-rate[data-v-76c3fdc8]{margin-top:6px}.el-form-item--mini .el-radio[data-v-76c3fdc8]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-76c3fdc8]{margin-top:4px}.el-card[data-v-76c3fdc8]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-76c3fdc8]::-ms-reveal{display:none}[data-v-76c3fdc8]::-webkit-scrollbar{width:8px;height:8px}[data-v-76c3fdc8]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-76c3fdc8]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-76c3fdc8]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-76c3fdc8]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.full-width-input[data-v-76c3fdc8]{width:100%!important}.primary-color[data-v-ea728dba]{color:#409eff}.background-opacity[data-v-ea728dba]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-ea728dba]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-ea728dba]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-ea728dba]{margin-top:8px}.el-form-item--small .el-radio[data-v-ea728dba]{line-height:32px!important}.el-form-item--small .el-rate[data-v-ea728dba]{margin-top:6px}.el-form-item--mini .el-radio[data-v-ea728dba]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-ea728dba]{margin-top:4px}.el-card[data-v-ea728dba]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-ea728dba]::-ms-reveal{display:none}[data-v-ea728dba]::-webkit-scrollbar{width:8px;height:8px}[data-v-ea728dba]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-ea728dba]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-ea728dba]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-ea728dba]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.full-width-input[data-v-ea728dba]{width:100%!important}.primary-color[data-v-0faf59b2]{color:#409eff}.background-opacity[data-v-0faf59b2]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-0faf59b2]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-0faf59b2]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-0faf59b2]{margin-top:8px}.el-form-item--small .el-radio[data-v-0faf59b2]{line-height:32px!important}.el-form-item--small .el-rate[data-v-0faf59b2]{margin-top:6px}.el-form-item--mini .el-radio[data-v-0faf59b2]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-0faf59b2]{margin-top:4px}.el-card[data-v-0faf59b2]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-0faf59b2]::-ms-reveal{display:none}[data-v-0faf59b2]::-webkit-scrollbar{width:8px;height:8px}[data-v-0faf59b2]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-0faf59b2]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-0faf59b2]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-0faf59b2]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.primary-color[data-v-3f51f292]{color:#409eff}.background-opacity[data-v-3f51f292]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-3f51f292]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-3f51f292]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-3f51f292]{margin-top:8px}.el-form-item--small .el-radio[data-v-3f51f292]{line-height:32px!important}.el-form-item--small .el-rate[data-v-3f51f292]{margin-top:6px}.el-form-item--mini .el-radio[data-v-3f51f292]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-3f51f292]{margin-top:4px}.el-card[data-v-3f51f292]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-3f51f292]::-ms-reveal{display:none}[data-v-3f51f292]::-webkit-scrollbar{width:8px;height:8px}[data-v-3f51f292]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-3f51f292]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-3f51f292]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-3f51f292]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.full-width-input[data-v-3f51f292]{width:100%!important}.dynamicPseudoAfter[data-v-3f51f292] .el-upload.el-upload--text{color:#409eff;font-size:12px}.dynamicPseudoAfter[data-v-3f51f292] .el-upload.el-upload--text .el-icon-plus:after{content:var(--select-file-action)}.hideUploadDiv[data-v-3f51f292] div.el-upload--picture-card,.hideUploadDiv[data-v-3f51f292] div.el-upload--text,.hideUploadDiv[data-v-3f51f292] div.el-upload__tip{display:none}.upload-file-list[data-v-3f51f292]{font-size:12px}.upload-file-list .file-action[data-v-3f51f292]{color:#409eff;margin-left:5px;margin-right:5px;cursor:pointer}.primary-color[data-v-5b64c2ea]{color:#409eff}.background-opacity[data-v-5b64c2ea]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-5b64c2ea]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-5b64c2ea]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-5b64c2ea]{margin-top:8px}.el-form-item--small .el-radio[data-v-5b64c2ea]{line-height:32px!important}.el-form-item--small .el-rate[data-v-5b64c2ea]{margin-top:6px}.el-form-item--mini .el-radio[data-v-5b64c2ea]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-5b64c2ea]{margin-top:4px}.el-card[data-v-5b64c2ea]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-5b64c2ea]::-ms-reveal{display:none}[data-v-5b64c2ea]::-webkit-scrollbar{width:8px;height:8px}[data-v-5b64c2ea]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-5b64c2ea]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-5b64c2ea]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-5b64c2ea]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.primary-color[data-v-97099720]{color:#409eff}.background-opacity[data-v-97099720]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-97099720]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-97099720]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-97099720]{margin-top:8px}.el-form-item--small .el-radio[data-v-97099720]{line-height:32px!important}.el-form-item--small .el-rate[data-v-97099720]{margin-top:6px}.el-form-item--mini .el-radio[data-v-97099720]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-97099720]{margin-top:4px}.el-card[data-v-97099720]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-97099720]::-ms-reveal{display:none}[data-v-97099720]::-webkit-scrollbar{width:8px;height:8px}[data-v-97099720]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-97099720]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-97099720]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-97099720]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.primary-color[data-v-a039267e]{color:#409eff}.background-opacity[data-v-a039267e]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-a039267e]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-a039267e]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-a039267e]{margin-top:8px}.el-form-item--small .el-radio[data-v-a039267e]{line-height:32px!important}.el-form-item--small .el-rate[data-v-a039267e]{margin-top:6px}.el-form-item--mini .el-radio[data-v-a039267e]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-a039267e]{margin-top:4px}.el-card[data-v-a039267e]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-a039267e]::-ms-reveal{display:none}[data-v-a039267e]::-webkit-scrollbar{width:8px;height:8px}[data-v-a039267e]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-a039267e]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-a039267e]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-a039267e]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.full-width-input[data-v-a039267e]{width:100%!important}.primary-color[data-v-7aa66af0]{color:#409eff}.background-opacity[data-v-7aa66af0]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-7aa66af0]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-7aa66af0]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-7aa66af0]{margin-top:8px}.el-form-item--small .el-radio[data-v-7aa66af0]{line-height:32px!important}.el-form-item--small .el-rate[data-v-7aa66af0]{margin-top:6px}.el-form-item--mini .el-radio[data-v-7aa66af0]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-7aa66af0]{margin-top:4px}.el-card[data-v-7aa66af0]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-7aa66af0]::-ms-reveal{display:none}[data-v-7aa66af0]::-webkit-scrollbar{width:8px;height:8px}[data-v-7aa66af0]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-7aa66af0]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-7aa66af0]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-7aa66af0]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.full-width-input[data-v-7aa66af0]{width:100%!important}.hideUploadDiv[data-v-7aa66af0] div.el-upload--picture-card,.hideUploadDiv[data-v-7aa66af0] div.el-upload--text,.hideUploadDiv[data-v-7aa66af0] div.el-upload__tip{display:none}.primary-color[data-v-ef35f5b6]{color:#409eff}.background-opacity[data-v-ef35f5b6]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-ef35f5b6]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-ef35f5b6]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-ef35f5b6]{margin-top:8px}.el-form-item--small .el-radio[data-v-ef35f5b6]{line-height:32px!important}.el-form-item--small .el-rate[data-v-ef35f5b6]{margin-top:6px}.el-form-item--mini .el-radio[data-v-ef35f5b6]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-ef35f5b6]{margin-top:4px}.el-card[data-v-ef35f5b6]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-ef35f5b6]::-ms-reveal{display:none}[data-v-ef35f5b6]::-webkit-scrollbar{width:8px;height:8px}[data-v-ef35f5b6]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-ef35f5b6]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-ef35f5b6]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-ef35f5b6]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.primary-color[data-v-02bf17e4]{color:#409eff}.background-opacity[data-v-02bf17e4]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-02bf17e4]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-02bf17e4]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-02bf17e4]{margin-top:8px}.el-form-item--small .el-radio[data-v-02bf17e4]{line-height:32px!important}.el-form-item--small .el-rate[data-v-02bf17e4]{margin-top:6px}.el-form-item--mini .el-radio[data-v-02bf17e4]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-02bf17e4]{margin-top:4px}.el-card[data-v-02bf17e4]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-02bf17e4]::-ms-reveal{display:none}[data-v-02bf17e4]::-webkit-scrollbar{width:8px;height:8px}[data-v-02bf17e4]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-02bf17e4]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-02bf17e4]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-02bf17e4]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.full-width-input[data-v-02bf17e4]{width:100%!important}.primary-color[data-v-29731672]{color:#409eff}.background-opacity[data-v-29731672]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-29731672]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-29731672]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-29731672]{margin-top:8px}.el-form-item--small .el-radio[data-v-29731672]{line-height:32px!important}.el-form-item--small .el-rate[data-v-29731672]{margin-top:6px}.el-form-item--mini .el-radio[data-v-29731672]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-29731672]{margin-top:4px}.el-card[data-v-29731672]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-29731672]::-ms-reveal{display:none}[data-v-29731672]::-webkit-scrollbar{width:8px;height:8px}[data-v-29731672]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-29731672]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-29731672]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-29731672]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.full-width-input[data-v-29731672]{width:100%!important}.primary-color[data-v-19724718]{color:#409eff}.background-opacity[data-v-19724718]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-19724718]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-19724718]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-19724718]{margin-top:8px}.el-form-item--small .el-radio[data-v-19724718]{line-height:32px!important}.el-form-item--small .el-rate[data-v-19724718]{margin-top:6px}.el-form-item--mini .el-radio[data-v-19724718]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-19724718]{margin-top:4px}.el-card[data-v-19724718]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-19724718]::-ms-reveal{display:none}[data-v-19724718]::-webkit-scrollbar{width:8px;height:8px}[data-v-19724718]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-19724718]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-19724718]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-19724718]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.full-width-input[data-v-19724718]{width:100%!important}.primary-color[data-v-ddcdb608]{color:#409eff}.background-opacity[data-v-ddcdb608]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-ddcdb608]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-ddcdb608]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-ddcdb608]{margin-top:8px}.el-form-item--small .el-radio[data-v-ddcdb608]{line-height:32px!important}.el-form-item--small .el-rate[data-v-ddcdb608]{margin-top:6px}.el-form-item--mini .el-radio[data-v-ddcdb608]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-ddcdb608]{margin-top:4px}.el-card[data-v-ddcdb608]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-ddcdb608]::-ms-reveal{display:none}[data-v-ddcdb608]::-webkit-scrollbar{width:8px;height:8px}[data-v-ddcdb608]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-ddcdb608]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-ddcdb608]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-ddcdb608]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.full-width-input[data-v-ddcdb608]{width:100%!important}.primary-color[data-v-856e2df6]{color:#409eff}.background-opacity[data-v-856e2df6]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-856e2df6]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-856e2df6]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-856e2df6]{margin-top:8px}.el-form-item--small .el-radio[data-v-856e2df6]{line-height:32px!important}.el-form-item--small .el-rate[data-v-856e2df6]{margin-top:6px}.el-form-item--mini .el-radio[data-v-856e2df6]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-856e2df6]{margin-top:4px}.el-card[data-v-856e2df6]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-856e2df6]::-ms-reveal{display:none}[data-v-856e2df6]::-webkit-scrollbar{width:8px;height:8px}[data-v-856e2df6]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-856e2df6]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-856e2df6]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-856e2df6]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.slot-wrapper-design[data-v-856e2df6]{width:100%;min-height:26px;background:linear-gradient(45deg,#ccc 25%,#eee 0,#eee 50%,#ccc 0,#ccc 75%,#eee 0);background-size:20px 20px;text-align:center}.slot-wrapper-design .slot-title[data-v-856e2df6]{font-size:13px}.primary-color[data-v-15a81133]{color:#409eff}.background-opacity[data-v-15a81133]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-15a81133]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-15a81133]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-15a81133]{margin-top:8px}.el-form-item--small .el-radio[data-v-15a81133]{line-height:32px!important}.el-form-item--small .el-rate[data-v-15a81133]{margin-top:6px}.el-form-item--mini .el-radio[data-v-15a81133]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-15a81133]{margin-top:4px}.el-card[data-v-15a81133]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-15a81133]::-ms-reveal{display:none}[data-v-15a81133]::-webkit-scrollbar{width:8px;height:8px}[data-v-15a81133]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-15a81133]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-15a81133]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-15a81133]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.primary-color[data-v-88bb0ad8]{color:#409eff}.background-opacity[data-v-88bb0ad8]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-88bb0ad8]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-88bb0ad8]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-88bb0ad8]{margin-top:8px}.el-form-item--small .el-radio[data-v-88bb0ad8]{line-height:32px!important}.el-form-item--small .el-rate[data-v-88bb0ad8]{margin-top:6px}.el-form-item--mini .el-radio[data-v-88bb0ad8]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-88bb0ad8]{margin-top:4px}.el-card[data-v-88bb0ad8]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-88bb0ad8]::-ms-reveal{display:none}[data-v-88bb0ad8]::-webkit-scrollbar{width:8px;height:8px}[data-v-88bb0ad8]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-88bb0ad8]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-88bb0ad8]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-88bb0ad8]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.full-width-input[data-v-88bb0ad8]{width:100%!important}.primary-color[data-v-90e01c78]{color:#409eff}.background-opacity[data-v-90e01c78]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-90e01c78]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-90e01c78]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-90e01c78]{margin-top:8px}.el-form-item--small .el-radio[data-v-90e01c78]{line-height:32px!important}.el-form-item--small .el-rate[data-v-90e01c78]{margin-top:6px}.el-form-item--mini .el-radio[data-v-90e01c78]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-90e01c78]{margin-top:4px}.el-card[data-v-90e01c78]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-90e01c78]::-ms-reveal{display:none}[data-v-90e01c78]::-webkit-scrollbar{width:8px;height:8px}[data-v-90e01c78]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-90e01c78]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-90e01c78]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-90e01c78]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.primary-color[data-v-68ea79e5]{color:#409eff}.background-opacity[data-v-68ea79e5]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-68ea79e5]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-68ea79e5]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-68ea79e5]{margin-top:8px}.el-form-item--small .el-radio[data-v-68ea79e5]{line-height:32px!important}.el-form-item--small .el-rate[data-v-68ea79e5]{margin-top:6px}.el-form-item--mini .el-radio[data-v-68ea79e5]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-68ea79e5]{margin-top:4px}.el-card[data-v-68ea79e5]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-68ea79e5]::-ms-reveal{display:none}[data-v-68ea79e5]::-webkit-scrollbar{width:8px;height:8px}[data-v-68ea79e5]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-68ea79e5]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-68ea79e5]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-68ea79e5]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.full-width-input[data-v-68ea79e5]{width:100%!important}.primary-color[data-v-0761446e]{color:#409eff}.background-opacity[data-v-0761446e]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-0761446e]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-0761446e]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-0761446e]{margin-top:8px}.el-form-item--small .el-radio[data-v-0761446e]{line-height:32px!important}.el-form-item--small .el-rate[data-v-0761446e]{margin-top:6px}.el-form-item--mini .el-radio[data-v-0761446e]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-0761446e]{margin-top:4px}.el-card[data-v-0761446e]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-0761446e]::-ms-reveal{display:none}[data-v-0761446e]::-webkit-scrollbar{width:8px;height:8px}[data-v-0761446e]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-0761446e]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-0761446e]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-0761446e]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.full-width-input[data-v-0761446e]{width:100%!important}.primary-color[data-v-943e926a]{color:#409eff}.background-opacity[data-v-943e926a]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-943e926a]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-943e926a]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-943e926a]{margin-top:8px}.el-form-item--small .el-radio[data-v-943e926a]{line-height:32px!important}.el-form-item--small .el-rate[data-v-943e926a]{margin-top:6px}.el-form-item--mini .el-radio[data-v-943e926a]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-943e926a]{margin-top:4px}.el-card[data-v-943e926a]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-943e926a]::-ms-reveal{display:none}[data-v-943e926a]::-webkit-scrollbar{width:8px;height:8px}[data-v-943e926a]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-943e926a]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-943e926a]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-943e926a]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.blank-cell[data-v-943e926a]{font-style:italic;color:#ccc}.blank-cell span.invisible-content[data-v-943e926a]{opacity:0}.primary-color[data-v-0cc705e0]{color:#409eff}.background-opacity[data-v-0cc705e0]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-0cc705e0]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-0cc705e0]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-0cc705e0]{margin-top:8px}.el-form-item--small .el-radio[data-v-0cc705e0]{line-height:32px!important}.el-form-item--small .el-rate[data-v-0cc705e0]{margin-top:6px}.el-form-item--mini .el-radio[data-v-0cc705e0]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-0cc705e0]{margin-top:4px}.el-card[data-v-0cc705e0]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-0cc705e0]::-ms-reveal{display:none}[data-v-0cc705e0]::-webkit-scrollbar{width:8px;height:8px}[data-v-0cc705e0]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-0cc705e0]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-0cc705e0]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-0cc705e0]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.sub-form-container[data-v-0cc705e0]{margin-bottom:8px;text-align:left}.sub-form-container[data-v-0cc705e0] .el-row.header-row{padding-bottom:0}.sub-form-container[data-v-0cc705e0] .el-row.sub-form-row{padding-top:3px;padding-bottom:3px}.sub-form-container[data-v-0cc705e0] .el-row.sub-form-row .row-number-span{margin-left:16px}div.action-header-column[data-v-0cc705e0]{display:inline-block;width:120px}div.action-header-column .action-label[data-v-0cc705e0]{margin-right:12px}div.action-header-column .action-button[data-v-0cc705e0]{padding-left:8px;padding-right:8px}div.field-header-column[data-v-0cc705e0]{display:inline-block}div.field-header-column span.custom-label i[data-v-0cc705e0]{margin:0 3px}div.field-header-column.is-required[data-v-0cc705e0]:before{content:"*";color:#f56c6c;margin-right:4px}div.label-center-left[data-v-0cc705e0]{text-align:left}div.label-center-align[data-v-0cc705e0]{text-align:center}div.label-right-align[data-v-0cc705e0]{text-align:right}div.sub-form-action-column[data-v-0cc705e0]{display:inline-block;width:120px}div.sub-form-action-column[data-v-0cc705e0] .el-form-item{margin-bottom:0}div.sub-form-action-column[data-v-0cc705e0] .el-button{font-size:18px;padding:0;background:#dcdfe6;border:4px solid #dcdfe6}div.sub-form-action-column.hide-label[data-v-0cc705e0] .el-form-item__label{display:none}div.sub-form-table-column[data-v-0cc705e0]{display:inline-block}div.sub-form-table-column[data-v-0cc705e0] .el-form-item{margin-left:4px;margin-right:4px;margin-bottom:0}div.sub-form-table-column[data-v-0cc705e0] .el-form-item__content{margin-left:0!important}div.sub-form-table-column.hide-label[data-v-0cc705e0] .el-form-item__label{display:none}.primary-color[data-v-79b5d9f8]{color:#409eff}.background-opacity[data-v-79b5d9f8]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-79b5d9f8]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-79b5d9f8]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-79b5d9f8]{margin-top:8px}.el-form-item--small .el-radio[data-v-79b5d9f8]{line-height:32px!important}.el-form-item--small .el-rate[data-v-79b5d9f8]{margin-top:6px}.el-form-item--mini .el-radio[data-v-79b5d9f8]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-79b5d9f8]{margin-top:4px}.el-card[data-v-79b5d9f8]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-79b5d9f8]::-ms-reveal{display:none}[data-v-79b5d9f8]::-webkit-scrollbar{width:8px;height:8px}[data-v-79b5d9f8]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-79b5d9f8]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-79b5d9f8]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-79b5d9f8]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}td.table-cell[data-v-79b5d9f8]{display:table-cell;height:36px;border:1px solid #e5e5e5}.primary-color[data-v-5a8d7072]{color:#409eff}.background-opacity[data-v-5a8d7072]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-5a8d7072]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-5a8d7072]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-5a8d7072]{margin-top:8px}.el-form-item--small .el-radio[data-v-5a8d7072]{line-height:32px!important}.el-form-item--small .el-rate[data-v-5a8d7072]{margin-top:6px}.el-form-item--mini .el-radio[data-v-5a8d7072]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-5a8d7072]{margin-top:4px}.el-card[data-v-5a8d7072]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-5a8d7072]::-ms-reveal{display:none}[data-v-5a8d7072]::-webkit-scrollbar{width:8px;height:8px}[data-v-5a8d7072]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-5a8d7072]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-5a8d7072]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-5a8d7072]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}div.table-container table.table-layout[data-v-5a8d7072]{width:100%;table-layout:fixed;border-collapse:collapse}.primary-color[data-v-70ce788c]{color:#409eff}.background-opacity[data-v-70ce788c]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-70ce788c]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-70ce788c]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-70ce788c]{margin-top:8px}.el-form-item--small .el-radio[data-v-70ce788c]{line-height:32px!important}.el-form-item--small .el-rate[data-v-70ce788c]{margin-top:6px}.el-form-item--mini .el-radio[data-v-70ce788c]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-70ce788c]{margin-top:4px}.el-card[data-v-70ce788c]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-70ce788c]::-ms-reveal{display:none}[data-v-70ce788c]::-webkit-scrollbar{width:8px;height:8px}[data-v-70ce788c]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-70ce788c]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-70ce788c]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-70ce788c]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.el-form[data-v-70ce788c] .el-row{padding:8px}.primary-color[data-v-d13460f4]{color:#409eff}.background-opacity[data-v-d13460f4]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-d13460f4]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-d13460f4]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-d13460f4]{margin-top:8px}.el-form-item--small .el-radio[data-v-d13460f4]{line-height:32px!important}.el-form-item--small .el-rate[data-v-d13460f4]{margin-top:6px}.el-form-item--mini .el-radio[data-v-d13460f4]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-d13460f4]{margin-top:4px}.el-card[data-v-d13460f4]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-d13460f4]::-ms-reveal{display:none}[data-v-d13460f4]::-webkit-scrollbar{width:8px;height:8px}[data-v-d13460f4]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-d13460f4]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-d13460f4]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-d13460f4]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.ace-editor[data-v-d13460f4]{min-height:300px}.primary-color[data-v-a010c82e]{color:#409eff}.background-opacity[data-v-a010c82e]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-a010c82e]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-a010c82e]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-a010c82e]{margin-top:8px}.el-form-item--small .el-radio[data-v-a010c82e]{line-height:32px!important}.el-form-item--small .el-rate[data-v-a010c82e]{margin-top:6px}.el-form-item--mini .el-radio[data-v-a010c82e]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-a010c82e]{margin-top:4px}.el-card[data-v-a010c82e]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-a010c82e]::-ms-reveal{display:none}[data-v-a010c82e]::-webkit-scrollbar{width:8px;height:8px}[data-v-a010c82e]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-a010c82e]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-a010c82e]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-a010c82e]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.left-toolbar[data-v-a010c82e]{float:left;font-size:16px}.right-toolbar[data-v-a010c82e]{float:right;text-align:right;overflow:hidden}.right-toolbar .right-toolbar-con[data-v-a010c82e]{text-align:left;width:600px}.right-toolbar[data-v-a010c82e] .el-button--text{font-size:14px!important}.el-button i[data-v-a010c82e]{margin-right:3px}.small-padding-dialog[data-v-a010c82e] .el-dialog__header{background:#f1f2f3}.small-padding-dialog[data-v-a010c82e] .el-dialog__body{padding:12px 15px 12px 15px}.small-padding-dialog[data-v-a010c82e] .el-dialog__body .el-alert.alert-padding{padding:0 10px}.small-padding-dialog[data-v-a010c82e] .ace-container{border:1px solid #dcdfe6}.dialog-title-light-bg[data-v-a010c82e] .el-dialog__header{background:#f1f2f3}.no-box-shadow[data-v-a010c82e]{box-shadow:none}.no-padding.el-tabs--border-card[data-v-a010c82e] .el-tabs__content{padding:0}.form-render-wrapper.h5-layout[data-v-a010c82e]{width:420px}.form-render-wrapper.h5-layout[data-v-a010c82e],.form-render-wrapper.pad-layout[data-v-a010c82e]{margin:0 auto;border-radius:15px;box-shadow:0 0 1px 10px #495060;height:calc(100vh - 142px);overflow-y:auto;overflow-x:hidden}.form-render-wrapper.pad-layout[data-v-a010c82e]{width:960px}.node-tree-drawer[data-v-a010c82e] .el-drawer{padding:10px;overflow:auto}.node-tree-drawer[data-v-a010c82e] .el-drawer__header{margin-bottom:12px;padding:5px 5px 0}.node-tree-drawer[data-v-a010c82e] .el-drawer__body{padding-left:5px}.node-tree[data-v-a010c82e] .el-tree-node{position:relative;padding-left:12px}.node-tree[data-v-a010c82e] .el-tree-node__content{padding-left:0!important}.node-tree[data-v-a010c82e] .el-tree-node__expand-icon.is-leaf{display:none}.node-tree[data-v-a010c82e] .el-tree-node__children{padding-left:12px;overflow:visible!important}.node-tree[data-v-a010c82e] .el-tree-node :last-child:before{height:38px}.node-tree[data-v-a010c82e] .el-tree>.el-tree-node:before{border-left:none}.node-tree[data-v-a010c82e] .el-tree>.el-tree-node:after{border-top:none}.node-tree[data-v-a010c82e] .el-tree-node:after,.node-tree[data-v-a010c82e] .el-tree-node:before{content:"";left:-4px;position:absolute;right:auto;border-width:1px}.node-tree[data-v-a010c82e] .el-tree-node:before{border-left:1px dashed #4386c6;bottom:0;height:100%;top:-10px;width:1px}.node-tree[data-v-a010c82e] .el-tree-node:after{border-top:1px dashed #4386c6;height:20px;top:12px;width:16px}.node-tree[data-v-a010c82e] .el-tree-node.is-current>.el-tree-node__content{background:#c2d6ea!important}.node-tree[data-v-a010c82e] .el-tree-node__expand-icon{margin-left:-3px;padding:6px 6px 6px 0;font-size:16px}.primary-color[data-v-ebfa1f06]{color:#409eff}.background-opacity[data-v-ebfa1f06]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-ebfa1f06]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-ebfa1f06]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-ebfa1f06]{margin-top:8px}.el-form-item--small .el-radio[data-v-ebfa1f06]{line-height:32px!important}.el-form-item--small .el-rate[data-v-ebfa1f06]{margin-top:6px}.el-form-item--mini .el-radio[data-v-ebfa1f06]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-ebfa1f06]{margin-top:4px}.el-card[data-v-ebfa1f06]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-ebfa1f06]::-ms-reveal{display:none}[data-v-ebfa1f06]::-webkit-scrollbar{width:8px;height:8px}[data-v-ebfa1f06]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-ebfa1f06]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-ebfa1f06]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-ebfa1f06]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}li.col-item[data-v-ebfa1f06]{list-style:none}li.col-item span.col-span-title[data-v-ebfa1f06]{display:inline-block;font-size:13px;width:120px}li.col-item .col-delete-button[data-v-ebfa1f06]{margin-left:6px}.primary-color[data-v-66fb0270]{color:#409eff}.background-opacity[data-v-66fb0270]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-66fb0270]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-66fb0270]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-66fb0270]{margin-top:8px}.el-form-item--small .el-radio[data-v-66fb0270]{line-height:32px!important}.el-form-item--small .el-rate[data-v-66fb0270]{margin-top:6px}.el-form-item--mini .el-radio[data-v-66fb0270]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-66fb0270]{margin-top:4px}.el-card[data-v-66fb0270]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-66fb0270]::-ms-reveal{display:none}[data-v-66fb0270]::-webkit-scrollbar{width:8px;height:8px}[data-v-66fb0270]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-66fb0270]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-66fb0270]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-66fb0270]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.radio-group-custom[data-v-66fb0270] .el-radio-button__inner{padding-left:12px;padding-right:12px}.primary-color[data-v-6ddd24c1]{color:#409eff}.background-opacity[data-v-6ddd24c1]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-6ddd24c1]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-6ddd24c1]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-6ddd24c1]{margin-top:8px}.el-form-item--small .el-radio[data-v-6ddd24c1]{line-height:32px!important}.el-form-item--small .el-rate[data-v-6ddd24c1]{margin-top:6px}.el-form-item--mini .el-radio[data-v-6ddd24c1]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-6ddd24c1]{margin-top:4px}.el-card[data-v-6ddd24c1]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-6ddd24c1]::-ms-reveal{display:none}[data-v-6ddd24c1]::-webkit-scrollbar{width:8px;height:8px}[data-v-6ddd24c1]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-6ddd24c1]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-6ddd24c1]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-6ddd24c1]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}li.col-item[data-v-6ddd24c1]{list-style:none}li.col-item span.col-span-title[data-v-6ddd24c1]{display:inline-block;font-size:13px;width:120px}li.col-item .col-delete-button[data-v-6ddd24c1]{margin-left:6px}.panes-setting ul[data-v-6ddd24c1]{-webkit-padding-start:0;padding-inline-start:0;padding-left:0;margin:0}.panes-setting .drag-option[data-v-6ddd24c1]{cursor:move}.panes-setting li.ghost[data-v-6ddd24c1]{background:#fff;border:2px dotted #409eff}.html-content-editor[data-v-a3fcc8ba]{font-size:13px}.primary-color[data-v-3312ca7f]{color:#409eff}.background-opacity[data-v-3312ca7f]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-3312ca7f]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-3312ca7f]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-3312ca7f]{margin-top:8px}.el-form-item--small .el-radio[data-v-3312ca7f]{line-height:32px!important}.el-form-item--small .el-rate[data-v-3312ca7f]{margin-top:6px}.el-form-item--mini .el-radio[data-v-3312ca7f]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-3312ca7f]{margin-top:4px}.el-card[data-v-3312ca7f]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-3312ca7f]::-ms-reveal{display:none}[data-v-3312ca7f]::-webkit-scrollbar{width:8px;height:8px}[data-v-3312ca7f]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-3312ca7f]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-3312ca7f]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-3312ca7f]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.radio-group-custom[data-v-3312ca7f] .el-radio-button__inner{padding-left:12px;padding-right:12px}.primary-color[data-v-7202e5fc]{color:#409eff}.background-opacity[data-v-7202e5fc]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-7202e5fc]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-7202e5fc]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-7202e5fc]{margin-top:8px}.el-form-item--small .el-radio[data-v-7202e5fc]{line-height:32px!important}.el-form-item--small .el-rate[data-v-7202e5fc]{margin-top:6px}.el-form-item--mini .el-radio[data-v-7202e5fc]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-7202e5fc]{margin-top:4px}.el-card[data-v-7202e5fc]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-7202e5fc]::-ms-reveal{display:none}[data-v-7202e5fc]::-webkit-scrollbar{width:8px;height:8px}[data-v-7202e5fc]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-7202e5fc]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-7202e5fc]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-7202e5fc]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.option-items-pane ul[data-v-7202e5fc]{-webkit-padding-start:6px;padding-inline-start:6px;padding-left:6px}li.ghost[data-v-7202e5fc]{background:#fff;border:2px dotted #409eff}.drag-option[data-v-7202e5fc]{cursor:move}.small-padding-dialog[data-v-7202e5fc] .el-dialog__body{padding:10px 15px}.dialog-footer .el-button[data-v-7202e5fc]{width:100px}.primary-color[data-v-c9642832]{color:#409eff}.background-opacity[data-v-c9642832]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-c9642832]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-c9642832]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-c9642832]{margin-top:8px}.el-form-item--small .el-radio[data-v-c9642832]{line-height:32px!important}.el-form-item--small .el-rate[data-v-c9642832]{margin-top:6px}.el-form-item--mini .el-radio[data-v-c9642832]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-c9642832]{margin-top:4px}.el-card[data-v-c9642832]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-c9642832]::-ms-reveal{display:none}[data-v-c9642832]::-webkit-scrollbar{width:8px;height:8px}[data-v-c9642832]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-c9642832]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-c9642832]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-c9642832]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.setting-form[data-v-c9642832] .el-form-item__label{font-size:13px;overflow:hidden;white-space:nowrap}.setting-form[data-v-c9642832] .el-form-item--mini.el-form-item{margin-bottom:6px}.setting-form .radio-group-custom[data-v-c9642832] .el-radio-button__inner{padding-left:12px;padding-right:12px}.setting-form .custom-divider.el-divider--horizontal[data-v-c9642832]{margin:10px 0}.setting-collapse[data-v-c9642832] .el-collapse-item__content{padding-bottom:6px}.setting-collapse[data-v-c9642832] .el-collapse-item__header{font-style:italic;font-weight:700}.small-padding-dialog[data-v-c9642832] .el-dialog__body{padding:6px 15px 12px 15px}.primary-color[data-v-c0de647a]{color:#409eff}.background-opacity[data-v-c0de647a]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-c0de647a]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-c0de647a]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-c0de647a]{margin-top:8px}.el-form-item--small .el-radio[data-v-c0de647a]{line-height:32px!important}.el-form-item--small .el-rate[data-v-c0de647a]{margin-top:6px}.el-form-item--mini .el-radio[data-v-c0de647a]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-c0de647a]{margin-top:4px}.el-card[data-v-c0de647a]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-c0de647a]::-ms-reveal{display:none}[data-v-c0de647a]::-webkit-scrollbar{width:8px;height:8px}[data-v-c0de647a]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-c0de647a]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-c0de647a]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-c0de647a]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.panel-container[data-v-c0de647a]{padding:0 8px}.setting-scrollbar[data-v-c0de647a] .el-scrollbar__wrap{overflow-x:hidden}.setting-collapse[data-v-c0de647a] .el-collapse-item__content{padding-bottom:6px}.setting-collapse[data-v-c0de647a] .el-collapse-item__header{font-style:italic;font-weight:700}.setting-form[data-v-c0de647a] .el-form-item__label{font-size:13px;overflow:hidden;white-space:nowrap}.setting-form[data-v-c0de647a] .el-form-item--mini.el-form-item{margin-bottom:6px}[data-v-c0de647a] .hide-spin-button input::-webkit-inner-spin-button,[data-v-c0de647a] .hide-spin-button input::-webkit-outer-spin-button{-webkit-appearance:none!important}[data-v-c0de647a] .hide-spin-button input[type=number]{-moz-appearance:textfield}[data-v-c0de647a] .custom-divider.el-divider--horizontal{margin:10px 0}[data-v-c0de647a] .custom-divider-margin-top.el-divider--horizontal{margin:20px 0}.small-padding-dialog[data-v-c0de647a] .el-dialog__body{padding:6px 15px 12px 15px}.primary-color[data-v-b98cf8dc]{color:#409eff}.background-opacity[data-v-b98cf8dc]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-b98cf8dc]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-b98cf8dc]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-b98cf8dc]{margin-top:8px}.el-form-item--small .el-radio[data-v-b98cf8dc]{line-height:32px!important}.el-form-item--small .el-rate[data-v-b98cf8dc]{margin-top:6px}.el-form-item--mini .el-radio[data-v-b98cf8dc]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-b98cf8dc]{margin-top:4px}.el-card[data-v-b98cf8dc]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-b98cf8dc]::-ms-reveal{display:none}[data-v-b98cf8dc]::-webkit-scrollbar{width:8px;height:8px}[data-v-b98cf8dc]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-b98cf8dc]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-b98cf8dc]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-b98cf8dc]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.container-wrapper[data-v-b98cf8dc]{position:relative;margin-bottom:5px}.container-wrapper .container-action[data-v-b98cf8dc]{position:absolute;bottom:0;right:-2px;height:28px;line-height:28px;background:#409eff;z-index:999}.container-wrapper .container-action i[data-v-b98cf8dc]{font-size:14px;color:#fff;margin:0 5px;cursor:pointer}.container-wrapper .drag-handler[data-v-b98cf8dc]{position:absolute;top:-2px;left:-2px;height:22px;line-height:22px;background:#409eff;z-index:9}.container-wrapper .drag-handler i[data-v-b98cf8dc]{font-size:14px;font-style:normal;color:#fff;margin:4px;cursor:move}.primary-color[data-v-07e1e7bf]{color:#409eff}.background-opacity[data-v-07e1e7bf]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-07e1e7bf]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-07e1e7bf]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-07e1e7bf]{margin-top:8px}.el-form-item--small .el-radio[data-v-07e1e7bf]{line-height:32px!important}.el-form-item--small .el-rate[data-v-07e1e7bf]{margin-top:6px}.el-form-item--mini .el-radio[data-v-07e1e7bf]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-07e1e7bf]{margin-top:4px}.el-card[data-v-07e1e7bf]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-07e1e7bf]::-ms-reveal{display:none}[data-v-07e1e7bf]::-webkit-scrollbar{width:8px;height:8px}[data-v-07e1e7bf]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-07e1e7bf]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-07e1e7bf]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-07e1e7bf]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.grid-cell[data-v-07e1e7bf]{min-height:38px;padding:3px;outline:1px dashed #369;position:relative}.grid-cell .form-widget-list[data-v-07e1e7bf]{min-height:28px}.grid-cell .grid-col-action[data-v-07e1e7bf]{position:absolute;bottom:0;right:-2px;height:28px;line-height:28px;background:#409eff;z-index:999}.grid-cell .grid-col-action i[data-v-07e1e7bf]{font-size:14px;color:#fff;margin:0 5px;cursor:pointer}.grid-cell .grid-col-handler[data-v-07e1e7bf]{position:absolute;top:-2px;left:-2px;height:22px;line-height:22px;background:#409eff;z-index:9}.grid-cell .grid-col-handler i[data-v-07e1e7bf]{font-size:14px;font-style:normal;color:#fff;margin:4px;cursor:default}.primary-color[data-v-ec57838c]{color:#409eff}.background-opacity[data-v-ec57838c]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-ec57838c]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-ec57838c]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-ec57838c]{margin-top:8px}.el-form-item--small .el-radio[data-v-ec57838c]{line-height:32px!important}.el-form-item--small .el-rate[data-v-ec57838c]{margin-top:6px}.el-form-item--mini .el-radio[data-v-ec57838c]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-ec57838c]{margin-top:4px}.el-card[data-v-ec57838c]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-ec57838c]::-ms-reveal{display:none}[data-v-ec57838c]::-webkit-scrollbar{width:8px;height:8px}[data-v-ec57838c]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-ec57838c]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-ec57838c]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-ec57838c]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.el-row.grid-container[data-v-ec57838c]{min-height:50px;outline:1px dashed #369}.el-row.grid-container .form-widget-list[data-v-ec57838c]{min-height:28px}.grid-cell.selected[data-v-ec57838c],.grid-container.selected[data-v-ec57838c]{outline:2px solid #409eff!important}.primary-color[data-v-5a6a2ce9]{color:#409eff}.background-opacity[data-v-5a6a2ce9]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-5a6a2ce9]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-5a6a2ce9]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-5a6a2ce9]{margin-top:8px}.el-form-item--small .el-radio[data-v-5a6a2ce9]{line-height:32px!important}.el-form-item--small .el-rate[data-v-5a6a2ce9]{margin-top:6px}.el-form-item--mini .el-radio[data-v-5a6a2ce9]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-5a6a2ce9]{margin-top:4px}.el-card[data-v-5a6a2ce9]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-5a6a2ce9]::-ms-reveal{display:none}[data-v-5a6a2ce9]::-webkit-scrollbar{width:8px;height:8px}[data-v-5a6a2ce9]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-5a6a2ce9]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-5a6a2ce9]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-5a6a2ce9]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.tab-container[data-v-5a6a2ce9]{margin:2px}.tab-container .form-widget-list[data-v-5a6a2ce9]{min-height:28px}.tab-container.selected[data-v-5a6a2ce9]{outline:2px solid #409eff!important}.primary-color[data-v-5f7bc992]{color:#409eff}.background-opacity[data-v-5f7bc992]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-5f7bc992]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-5f7bc992]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-5f7bc992]{margin-top:8px}.el-form-item--small .el-radio[data-v-5f7bc992]{line-height:32px!important}.el-form-item--small .el-rate[data-v-5f7bc992]{margin-top:6px}.el-form-item--mini .el-radio[data-v-5f7bc992]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-5f7bc992]{margin-top:4px}.el-card[data-v-5f7bc992]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-5f7bc992]::-ms-reveal{display:none}[data-v-5f7bc992]::-webkit-scrollbar{width:8px;height:8px}[data-v-5f7bc992]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-5f7bc992]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-5f7bc992]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-5f7bc992]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.table-cell[data-v-5f7bc992]{border:1px dashed #369;display:table-cell;position:relative}.table-cell .draggable-div[data-v-5f7bc992]{position:relative;height:100%}.table-cell .form-widget-list[data-v-5f7bc992]{border:1px dashed #369;margin:3px;height:100%}.table-cell .table-cell-action[data-v-5f7bc992]{position:absolute;bottom:0;right:-2px;height:28px;line-height:28px;background:#409eff;z-index:999}.table-cell .table-cell-action i[data-v-5f7bc992]{font-size:14px;color:#fff;margin:0 5px;cursor:pointer}.table-cell .table-cell-handler[data-v-5f7bc992]{position:absolute;top:-2px;left:-2px;height:22px;line-height:22px;background:#409eff;z-index:9}.table-cell .table-cell-handler i[data-v-5f7bc992]{font-size:14px;font-style:normal;color:#fff;margin:4px;cursor:default}.table-cell.selected[data-v-5f7bc992]{outline:2px solid #409eff!important}.primary-color[data-v-37d3c0b7]{color:#409eff}.background-opacity[data-v-37d3c0b7]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-37d3c0b7]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-37d3c0b7]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-37d3c0b7]{margin-top:8px}.el-form-item--small .el-radio[data-v-37d3c0b7]{line-height:32px!important}.el-form-item--small .el-rate[data-v-37d3c0b7]{margin-top:6px}.el-form-item--mini .el-radio[data-v-37d3c0b7]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-37d3c0b7]{margin-top:4px}.el-card[data-v-37d3c0b7]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-37d3c0b7]::-ms-reveal{display:none}[data-v-37d3c0b7]::-webkit-scrollbar{width:8px;height:8px}[data-v-37d3c0b7]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-37d3c0b7]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-37d3c0b7]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-37d3c0b7]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}div.table-container[data-v-37d3c0b7]{padding:5px;border:1px dashed #369;box-sizing:border-box}div.table-container table.table-layout[data-v-37d3c0b7]{width:100%;text-align:center;border-collapse:collapse;table-layout:fixed}div.table-container table.table-layout[data-v-37d3c0b7] td{height:48px;border:1px dashed #369;padding:3px;display:table-cell}div.table-container table.table-layout .form-widget-list[data-v-37d3c0b7]{border:1px dashed #369;min-height:36px}.table-container.selected[data-v-37d3c0b7]{outline:2px solid #409eff!important}.primary-color[data-v-7372c190]{color:#409eff}.background-opacity[data-v-7372c190]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-7372c190]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-7372c190]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-7372c190]{margin-top:8px}.el-form-item--small .el-radio[data-v-7372c190]{line-height:32px!important}.el-form-item--small .el-rate[data-v-7372c190]{margin-top:6px}.el-form-item--mini .el-radio[data-v-7372c190]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-7372c190]{margin-top:4px}.el-card[data-v-7372c190]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-7372c190]::-ms-reveal{display:none}[data-v-7372c190]::-webkit-scrollbar{width:8px;height:8px}[data-v-7372c190]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-7372c190]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-7372c190]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-7372c190]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.container-scroll-bar[data-v-7372c190] .el-scrollbar__view,.container-scroll-bar[data-v-7372c190] .el-scrollbar__wrap{overflow-x:hidden}.form-widget-container[data-v-7372c190]{padding:10px;background:#f1f2f3;overflow-x:hidden;overflow-y:auto}.form-widget-container .el-form.full-height-width[data-v-7372c190]{height:100%;padding:3px;background:#fff}.form-widget-container .el-form.full-height-width .no-widget-hint[data-v-7372c190]{position:absolute;left:0;right:0;top:0;bottom:0;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:18px;color:#999}.form-widget-container .el-form.full-height-width .form-widget-list[data-v-7372c190]{min-height:calc(100vh - 124px);padding:3px}.form-widget-container .el-form.Pad-layout[data-v-7372c190]{margin:0 auto;max-width:960px;border-radius:15px;box-shadow:0 0 1px 10px #495060}.form-widget-container .el-form.H5-layout[data-v-7372c190]{margin:0 auto;width:420px;border-radius:15px;box-shadow:0 0 1px 10px #495060}.form-widget-container .el-form.widget-form[data-v-7372c190] .el-row{padding:2px;border:1px dashed hsla(0,0%,66.7%,.75)}.grid-cell[data-v-7372c190]{min-height:30px;border-right:1px dotted #ccc}.fade-enter-active[data-v-7372c190],.fade-leave-active[data-v-7372c190]{transition:opacity .5s}.fade-enter[data-v-7372c190],.fade-leave-to[data-v-7372c190]{opacity:0}.primary-color[data-v-7e9e197b]{color:#409eff}.background-opacity[data-v-7e9e197b]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-7e9e197b]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-7e9e197b]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-7e9e197b]{margin-top:8px}.el-form-item--small .el-radio[data-v-7e9e197b]{line-height:32px!important}.el-form-item--small .el-rate[data-v-7e9e197b]{margin-top:6px}.el-form-item--mini .el-radio[data-v-7e9e197b]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-7e9e197b]{margin-top:4px}.el-card[data-v-7e9e197b]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-7e9e197b]::-ms-reveal{display:none}[data-v-7e9e197b]::-webkit-scrollbar{width:8px;height:8px}[data-v-7e9e197b]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-7e9e197b]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-7e9e197b]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-7e9e197b]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.el-container.main-container[data-v-7e9e197b]{background:#fff}.el-container.main-container[data-v-7e9e197b] aside{margin:0;padding:0;background:inherit}.el-container.full-height[data-v-7e9e197b]{height:100%;overflow-y:hidden}.el-container.center-layout-container[data-v-7e9e197b]{min-width:680px;border-left:2px dotted #ebeef5;border-right:2px dotted #ebeef5}.el-header.main-header[data-v-7e9e197b]{border-bottom:2px dotted #ebeef5;height:48px!important;line-height:48px!important;min-width:800px}div.main-title[data-v-7e9e197b]{font-size:18px;color:#242424;display:flex;align-items:center;justify-items:center}div.main-title img[data-v-7e9e197b]{cursor:pointer;width:36px;height:36px}div.main-title span.bold[data-v-7e9e197b]{font-size:20px;font-weight:700;margin:0 6px 0 6px}div.main-title span.version-span[data-v-7e9e197b]{font-size:14px;color:#101f1c;margin-left:6px}.float-left[data-v-7e9e197b]{float:left}.float-right[data-v-7e9e197b]{float:right}.el-dropdown-link[data-v-7e9e197b]{margin-right:12px;cursor:pointer}div.external-link a[data-v-7e9e197b]{font-size:13px;text-decoration:none;margin-right:10px;color:#606266}.el-header.toolbar-header[data-v-7e9e197b]{font-size:14px;border-bottom:1px dotted #ccc;height:42px!important}.el-aside.side-panel[data-v-7e9e197b]{width:260px!important;overflow-y:hidden}.el-main.form-widget-main[data-v-7e9e197b]{padding:0;position:relative;overflow-x:hidden}.container-scroll-bar[data-v-7e9e197b] .el-scrollbar__view,.container-scroll-bar[data-v-7e9e197b] .el-scrollbar__wrap{overflow-x:hidden}#app{height:100%}.primary-color[data-v-1a7581a2]{color:#409eff}.background-opacity[data-v-1a7581a2]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-1a7581a2]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-1a7581a2]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-1a7581a2]{margin-top:8px}.el-form-item--small .el-radio[data-v-1a7581a2]{line-height:32px!important}.el-form-item--small .el-rate[data-v-1a7581a2]{margin-top:6px}.el-form-item--mini .el-radio[data-v-1a7581a2]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-1a7581a2]{margin-top:4px}.el-card[data-v-1a7581a2]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-1a7581a2]::-ms-reveal{display:none}[data-v-1a7581a2]::-webkit-scrollbar{width:8px;height:8px}[data-v-1a7581a2]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-1a7581a2]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-1a7581a2]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-1a7581a2]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.svg-icon[data-v-1a7581a2]{width:1.1em;height:1.1em;margin-left:.35em;margin-right:.35em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.primary-color{color:#409eff}.background-opacity{background:rgba(64,158,255,.6)}.form-widget-list .ghost{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio{line-height:36px!important}.el-form-item--medium .el-rate{margin-top:8px}.el-form-item--small .el-radio{line-height:32px!important}.el-form-item--small .el-rate{margin-top:6px}.el-form-item--mini .el-radio{line-height:28px!important}.el-form-item--mini .el-rate{margin-top:4px}.el-card{margin-top:3px;margin-bottom:3px}input[type=password]::-ms-reveal{display:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}*{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}html{box-sizing:border-box}body,html{height:100%}body{margin:0;background-color:#fff;text-rendering:optimizeLegibility;font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif}@font-face{font-family:iconfont;src:url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQiCLJXoAAAE4AAAAVE9TLzI8i0leAAABjAAAAFZjbWFw7bW54gAAAfgAAAGqZ2x5Zpkon+wAAAOwAAADNGhlYWQcnMJsAAAA4AAAADZoaGVhB4IDhgAAALwAAAAkaG10eBQAAAAAAAHkAAAAFGxvY2EBeAI2AAADpAAAAAxtYXhwARcAagAAARgAAAAgbmFtZT5U/n0AAAbkAAACbXBvc3T0IfeLAAAJVAAAAFAAAQAAA4D/gAAABAAAAAAABAAAAQAAAAAAAAAAAAAAAAAAAAUAAQAAAAEAALwRH5pfDzz1AAsEAAAAAADcvr83AAAAANy+vzcAAP+ABAADgQAAAAgAAgAAAAAAAAABAAAABQBeAAgAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAEEAAGQAAUAAAKJAswAAACPAokCzAAAAesAMgEIAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAQOYd52sDgP+AAFwDgQCAAAAAAQAAAAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAABQAAAAMAAAAsAAAABAAAAWoAAQAAAAAAZAADAAEAAAAsAAMACgAAAWoABAA4AAAACAAIAAIAAOYd51Tna///AADmHedT52v//wAAAAAAAAABAAgACAAKAAAABAABAAIAAwAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAQAAAAAAAAAAEAADmHQAA5h0AAAAEAADnUwAA51MAAAABAADnVAAA51QAAAACAADnawAA52sAAAADAAAAAAAAAE4AnAEqAZoABAAA/8AEAANAABoAHgAmAC4AACU2MhcWDwEUDwEGDwEiFAcjIiYvASY+ATIfAQMRIREBESMRIREjAyERIxEhESMDAo0KGwoFAQEJfQIJAgICAwQJBYwJBRQbCmmlAUD9wEABAD8BAkBAAQA/AbYKCgUMBg0KfwIEAQEBBASACRsUCmQC7v3AAkD9gP8AAUD+wAEA/wABQP7AAQAABAAA/4ADwANAABoAHgAmAC4AACUWFAcGLwEiLwEmLwE0Iic1NDY/ATYeARQPASUhESEBITUhESE1JREhNSERITUlATYKCgUMBg0KfwIEAQEBBASACRsUCmQC7v3AAkD9gP8AAUD+wAEA/wABQP7AAQDzChsKBQEBCX0CCQICAgMECQWMCQUUGwpppf7AAkBA/wA/Af3AQP8APwEABQAAAAADwgL9ACYAOQBBAEkAXQAAASYnNzY0JiIPASYjIgcGBwYUFxYXFhcHBhQXFjI/ARYzMjY3Njc2BTY3NjMyFwcuASMiDgEVFBcHJiUUBiMiJzcWBzQ2MzIXByYXIic3HgEzMj4BNTQnNxYXDgEHBgO9TWNpChMaCXRdeZF9XlEFBSIqMDRtCQkPGAl0YHZcs0RHIwX8xEZSanhcSlAQLRksSSsaWlIBkjcpFhSACsA3KRYUgApgXEpQEC0ZLEkrGlpUSSF6SkwBkINKaQoaEwpzQGRLgQcSBzkyOSltCRoJCgpzPU9FR1gPAm5AUi1QDg8rSSwxKVlBcik3CoAUFik3CoAU6i1QDg8rSSwxKVlAc0l1ICIAAAAIAAD/gANBA4EACAARABoAIwAsADUAPgBHAAABIiY0NjIWFAYDIiY0NjIWFAYDIiY0NjIWFAYDIiY0NjIWFAYBIiY0NjIWFAYDIiY0NjIWFAYDIiY0NjIWFAYDIiY0NjIWFAYBICg4OFA4OCgoODhQODgoKDg4UDg4KCg4OFA4OAGYKDg4UDg4KCg4OFA4OCgoODhQODgoKDg4UDg4AsA4UDg4UDj+6zhPOTlPOP7qOU84OE85/us4UDg4UDgDQDhQODhQOP7rOE85OU84/uo5Tzg4Tzn+6zhQODhQOAAAAAAAEgDeAAEAAAAAAAAAFQAAAAEAAAAAAAEACAAVAAEAAAAAAAIABwAdAAEAAAAAAAMACAAkAAEAAAAAAAQACAAsAAEAAAAAAAUACwA0AAEAAAAAAAYACAA/AAEAAAAAAAoAKwBHAAEAAAAAAAsAEwByAAMAAQQJAAAAKgCFAAMAAQQJAAEAEACvAAMAAQQJAAIADgC/AAMAAQQJAAMAEADNAAMAAQQJAAQAEADdAAMAAQQJAAUAFgDtAAMAAQQJAAYAEAEDAAMAAQQJAAoAVgETAAMAAQQJAAsAJgFpCkNyZWF0ZWQgYnkgaWNvbmZvbnQKaWNvbmZvbnRSZWd1bGFyaWNvbmZvbnRpY29uZm9udFZlcnNpb24gMS4waWNvbmZvbnRHZW5lcmF0ZWQgYnkgc3ZnMnR0ZiBmcm9tIEZvbnRlbGxvIHByb2plY3QuaHR0cDovL2ZvbnRlbGxvLmNvbQAKAEMAcgBlAGEAdABlAGQAIABiAHkAIABpAGMAbwBuAGYAbwBuAHQACgBpAGMAbwBuAGYAbwBuAHQAUgBlAGcAdQBsAGEAcgBpAGMAbwBuAGYAbwBuAHQAaQBjAG8AbgBmAG8AbgB0AFYAZQByAHMAaQBvAG4AIAAxAC4AMABpAGMAbwBuAGYAbwBuAHQARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQECAQMBBAEFAQYADGluc2VydGNvbHVtbglpbnNlcnRyb3cEaGlkZQRkcmFnAAA=) format("truetype")}.iconfont,body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal}.icon-insertcolumn:before{content:"\e753"}.icon-insertrow:before{content:"\e754"}.icon-hide:before{content:"\e76b"}.icon-drag:before{content:"\e61d"}.primary-color[data-v-228afde5]{color:#409eff}.background-opacity[data-v-228afde5]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-228afde5]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-228afde5]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-228afde5]{margin-top:8px}.el-form-item--small .el-radio[data-v-228afde5]{line-height:32px!important}.el-form-item--small .el-rate[data-v-228afde5]{margin-top:6px}.el-form-item--mini .el-radio[data-v-228afde5]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-228afde5]{margin-top:4px}.el-card[data-v-228afde5]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-228afde5]::-ms-reveal{display:none}[data-v-228afde5]::-webkit-scrollbar{width:8px;height:8px}[data-v-228afde5]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-228afde5]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-228afde5]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-228afde5]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}.card-container.selected[data-v-228afde5]{outline:2px solid #409eff!important}.card-container[data-v-228afde5]{margin:3px}.card-container .form-widget-list[data-v-228afde5]{min-height:28px}[data-v-228afde5] .el-card__header{padding:10px 12px}.folded[data-v-228afde5] .el-card__body{display:none}.clear-fix[data-v-228afde5]:after,.clear-fix[data-v-228afde5]:before{display:table;content:""}.clear-fix[data-v-228afde5]:after{clear:both}.float-right[data-v-228afde5]{float:right}.primary-color[data-v-159d5068]{color:#409eff}.background-opacity[data-v-159d5068]{background:rgba(64,158,255,.6)}.form-widget-list .ghost[data-v-159d5068]{content:"";font-size:0;height:3px;box-sizing:border-box;background:#409eff;border:2px solid #409eff;outline-width:0;padding:0;overflow:hidden}.el-form-item--medium .el-radio[data-v-159d5068]{line-height:36px!important}.el-form-item--medium .el-rate[data-v-159d5068]{margin-top:8px}.el-form-item--small .el-radio[data-v-159d5068]{line-height:32px!important}.el-form-item--small .el-rate[data-v-159d5068]{margin-top:6px}.el-form-item--mini .el-radio[data-v-159d5068]{line-height:28px!important}.el-form-item--mini .el-rate[data-v-159d5068]{margin-top:4px}.el-card[data-v-159d5068]{margin-top:3px;margin-bottom:3px}input[type=password][data-v-159d5068]::-ms-reveal{display:none}[data-v-159d5068]::-webkit-scrollbar{width:8px;height:8px}[data-v-159d5068]::-webkit-scrollbar-track{width:8px;background:rgba(16,31,28,.1);border-radius:2em}[data-v-159d5068]::-webkit-scrollbar-thumb{background-color:rgba(16,31,28,.35);background-clip:padding-box;min-height:28px;border-radius:2em}[data-v-159d5068]::-webkit-scrollbar-thumb:hover{background-color:rgba(16,31,28,.85)}[data-v-159d5068]{scrollbar-color:#e5e5e5 #f7f7f9;scrollbar-width:thin}[data-v-159d5068] .el-card__header{padding:10px 12px}.folded[data-v-159d5068] .el-card__body{display:none}.clear-fix[data-v-159d5068]:after,.clear-fix[data-v-159d5068]:before{display:table;content:""}.clear-fix[data-v-159d5068]:after{clear:both}.float-right[data-v-159d5068]{float:right} \ No newline at end of file diff --git a/resource/page/css/chunk-vendors.a16c4353.css b/resource/page/css/chunk-vendors.a16c4353.css deleted file mode 100644 index c7a0f01..0000000 --- a/resource/page/css/chunk-vendors.a16c4353.css +++ /dev/null @@ -1 +0,0 @@ -.el-pagination--small .arrow.disabled,.el-table--hidden,.el-table .el-table__cell.is-hidden>*,.el-table .hidden-columns{visibility:hidden}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing),.el-message__closeBtn:focus,.el-message__content:focus,.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing),.el-rate:active,.el-rate:focus,.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing),.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-input__suffix,.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}@font-face{font-family:element-icons;src:url(../fonts/element-icons.535877f5.woff) format("woff"),url(../fonts/element-icons.732389de.ttf) format("truetype");font-weight:400;font-display:"auto";font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:"\e6a0"}.el-icon-ice-cream-square:before{content:"\e6a3"}.el-icon-lollipop:before{content:"\e6a4"}.el-icon-potato-strips:before{content:"\e6a5"}.el-icon-milk-tea:before{content:"\e6a6"}.el-icon-ice-drink:before{content:"\e6a7"}.el-icon-ice-tea:before{content:"\e6a9"}.el-icon-coffee:before{content:"\e6aa"}.el-icon-orange:before{content:"\e6ab"}.el-icon-pear:before{content:"\e6ac"}.el-icon-apple:before{content:"\e6ad"}.el-icon-cherry:before{content:"\e6ae"}.el-icon-watermelon:before{content:"\e6af"}.el-icon-grape:before{content:"\e6b0"}.el-icon-refrigerator:before{content:"\e6b1"}.el-icon-goblet-square-full:before{content:"\e6b2"}.el-icon-goblet-square:before{content:"\e6b3"}.el-icon-goblet-full:before{content:"\e6b4"}.el-icon-goblet:before{content:"\e6b5"}.el-icon-cold-drink:before{content:"\e6b6"}.el-icon-coffee-cup:before{content:"\e6b8"}.el-icon-water-cup:before{content:"\e6b9"}.el-icon-hot-water:before{content:"\e6ba"}.el-icon-ice-cream:before{content:"\e6bb"}.el-icon-dessert:before{content:"\e6bc"}.el-icon-sugar:before{content:"\e6bd"}.el-icon-tableware:before{content:"\e6be"}.el-icon-burger:before{content:"\e6bf"}.el-icon-knife-fork:before{content:"\e6c1"}.el-icon-fork-spoon:before{content:"\e6c2"}.el-icon-chicken:before{content:"\e6c3"}.el-icon-food:before{content:"\e6c4"}.el-icon-dish-1:before{content:"\e6c5"}.el-icon-dish:before{content:"\e6c6"}.el-icon-moon-night:before{content:"\e6ee"}.el-icon-moon:before{content:"\e6f0"}.el-icon-cloudy-and-sunny:before{content:"\e6f1"}.el-icon-partly-cloudy:before{content:"\e6f2"}.el-icon-cloudy:before{content:"\e6f3"}.el-icon-sunny:before{content:"\e6f6"}.el-icon-sunset:before{content:"\e6f7"}.el-icon-sunrise-1:before{content:"\e6f8"}.el-icon-sunrise:before{content:"\e6f9"}.el-icon-heavy-rain:before{content:"\e6fa"}.el-icon-lightning:before{content:"\e6fb"}.el-icon-light-rain:before{content:"\e6fc"}.el-icon-wind-power:before{content:"\e6fd"}.el-icon-baseball:before{content:"\e712"}.el-icon-soccer:before{content:"\e713"}.el-icon-football:before{content:"\e715"}.el-icon-basketball:before{content:"\e716"}.el-icon-ship:before{content:"\e73f"}.el-icon-truck:before{content:"\e740"}.el-icon-bicycle:before{content:"\e741"}.el-icon-mobile-phone:before{content:"\e6d3"}.el-icon-service:before{content:"\e6d4"}.el-icon-key:before{content:"\e6e2"}.el-icon-unlock:before{content:"\e6e4"}.el-icon-lock:before{content:"\e6e5"}.el-icon-watch:before{content:"\e6fe"}.el-icon-watch-1:before{content:"\e6ff"}.el-icon-timer:before{content:"\e702"}.el-icon-alarm-clock:before{content:"\e703"}.el-icon-map-location:before{content:"\e704"}.el-icon-delete-location:before{content:"\e705"}.el-icon-add-location:before{content:"\e706"}.el-icon-location-information:before{content:"\e707"}.el-icon-location-outline:before{content:"\e708"}.el-icon-location:before{content:"\e79e"}.el-icon-place:before{content:"\e709"}.el-icon-discover:before{content:"\e70a"}.el-icon-first-aid-kit:before{content:"\e70b"}.el-icon-trophy-1:before{content:"\e70c"}.el-icon-trophy:before{content:"\e70d"}.el-icon-medal:before{content:"\e70e"}.el-icon-medal-1:before{content:"\e70f"}.el-icon-stopwatch:before{content:"\e710"}.el-icon-mic:before{content:"\e711"}.el-icon-copy-document:before{content:"\e718"}.el-icon-full-screen:before{content:"\e719"}.el-icon-switch-button:before{content:"\e71b"}.el-icon-aim:before{content:"\e71c"}.el-icon-crop:before{content:"\e71d"}.el-icon-odometer:before{content:"\e71e"}.el-icon-time:before{content:"\e71f"}.el-icon-bangzhu:before{content:"\e724"}.el-icon-close-notification:before{content:"\e726"}.el-icon-microphone:before{content:"\e727"}.el-icon-turn-off-microphone:before{content:"\e728"}.el-icon-position:before{content:"\e729"}.el-icon-postcard:before{content:"\e72a"}.el-icon-message:before{content:"\e72b"}.el-icon-chat-line-square:before{content:"\e72d"}.el-icon-chat-dot-square:before{content:"\e72e"}.el-icon-chat-dot-round:before{content:"\e72f"}.el-icon-chat-square:before{content:"\e730"}.el-icon-chat-line-round:before{content:"\e731"}.el-icon-chat-round:before{content:"\e732"}.el-icon-set-up:before{content:"\e733"}.el-icon-turn-off:before{content:"\e734"}.el-icon-open:before{content:"\e735"}.el-icon-connection:before{content:"\e736"}.el-icon-link:before{content:"\e737"}.el-icon-cpu:before{content:"\e738"}.el-icon-thumb:before{content:"\e739"}.el-icon-female:before{content:"\e73a"}.el-icon-male:before{content:"\e73b"}.el-icon-guide:before{content:"\e73c"}.el-icon-news:before{content:"\e73e"}.el-icon-price-tag:before{content:"\e744"}.el-icon-discount:before{content:"\e745"}.el-icon-wallet:before{content:"\e747"}.el-icon-coin:before{content:"\e748"}.el-icon-money:before{content:"\e749"}.el-icon-bank-card:before{content:"\e74a"}.el-icon-box:before{content:"\e74b"}.el-icon-present:before{content:"\e74c"}.el-icon-sell:before{content:"\e6d5"}.el-icon-sold-out:before{content:"\e6d6"}.el-icon-shopping-bag-2:before{content:"\e74d"}.el-icon-shopping-bag-1:before{content:"\e74e"}.el-icon-shopping-cart-2:before{content:"\e74f"}.el-icon-shopping-cart-1:before{content:"\e750"}.el-icon-shopping-cart-full:before{content:"\e751"}.el-icon-smoking:before{content:"\e752"}.el-icon-no-smoking:before{content:"\e753"}.el-icon-house:before{content:"\e754"}.el-icon-table-lamp:before{content:"\e755"}.el-icon-school:before{content:"\e756"}.el-icon-office-building:before{content:"\e757"}.el-icon-toilet-paper:before{content:"\e758"}.el-icon-notebook-2:before{content:"\e759"}.el-icon-notebook-1:before{content:"\e75a"}.el-icon-files:before{content:"\e75b"}.el-icon-collection:before{content:"\e75c"}.el-icon-receiving:before{content:"\e75d"}.el-icon-suitcase-1:before{content:"\e760"}.el-icon-suitcase:before{content:"\e761"}.el-icon-film:before{content:"\e763"}.el-icon-collection-tag:before{content:"\e765"}.el-icon-data-analysis:before{content:"\e766"}.el-icon-pie-chart:before{content:"\e767"}.el-icon-data-board:before{content:"\e768"}.el-icon-data-line:before{content:"\e76d"}.el-icon-reading:before{content:"\e769"}.el-icon-magic-stick:before{content:"\e76a"}.el-icon-coordinate:before{content:"\e76b"}.el-icon-mouse:before{content:"\e76c"}.el-icon-brush:before{content:"\e76e"}.el-icon-headset:before{content:"\e76f"}.el-icon-umbrella:before{content:"\e770"}.el-icon-scissors:before{content:"\e771"}.el-icon-mobile:before{content:"\e773"}.el-icon-attract:before{content:"\e774"}.el-icon-monitor:before{content:"\e775"}.el-icon-search:before{content:"\e778"}.el-icon-takeaway-box:before{content:"\e77a"}.el-icon-paperclip:before{content:"\e77d"}.el-icon-printer:before{content:"\e77e"}.el-icon-document-add:before{content:"\e782"}.el-icon-document:before{content:"\e785"}.el-icon-document-checked:before{content:"\e786"}.el-icon-document-copy:before{content:"\e787"}.el-icon-document-delete:before{content:"\e788"}.el-icon-document-remove:before{content:"\e789"}.el-icon-tickets:before{content:"\e78b"}.el-icon-folder-checked:before{content:"\e77f"}.el-icon-folder-delete:before{content:"\e780"}.el-icon-folder-remove:before{content:"\e781"}.el-icon-folder-add:before{content:"\e783"}.el-icon-folder-opened:before{content:"\e784"}.el-icon-folder:before{content:"\e78a"}.el-icon-edit-outline:before{content:"\e764"}.el-icon-edit:before{content:"\e78c"}.el-icon-date:before{content:"\e78e"}.el-icon-c-scale-to-original:before{content:"\e7c6"}.el-icon-view:before{content:"\e6ce"}.el-icon-loading:before{content:"\e6cf"}.el-icon-rank:before{content:"\e6d1"}.el-icon-sort-down:before{content:"\e7c4"}.el-icon-sort-up:before{content:"\e7c5"}.el-icon-sort:before{content:"\e6d2"}.el-icon-finished:before{content:"\e6cd"}.el-icon-refresh-left:before{content:"\e6c7"}.el-icon-refresh-right:before{content:"\e6c8"}.el-icon-refresh:before{content:"\e6d0"}.el-icon-video-play:before{content:"\e7c0"}.el-icon-video-pause:before{content:"\e7c1"}.el-icon-d-arrow-right:before{content:"\e6dc"}.el-icon-d-arrow-left:before{content:"\e6dd"}.el-icon-arrow-up:before{content:"\e6e1"}.el-icon-arrow-down:before{content:"\e6df"}.el-icon-arrow-right:before{content:"\e6e0"}.el-icon-arrow-left:before{content:"\e6de"}.el-icon-top-right:before{content:"\e6e7"}.el-icon-top-left:before{content:"\e6e8"}.el-icon-top:before{content:"\e6e6"}.el-icon-bottom:before{content:"\e6eb"}.el-icon-right:before{content:"\e6e9"}.el-icon-back:before{content:"\e6ea"}.el-icon-bottom-right:before{content:"\e6ec"}.el-icon-bottom-left:before{content:"\e6ed"}.el-icon-caret-top:before{content:"\e78f"}.el-icon-caret-bottom:before{content:"\e790"}.el-icon-caret-right:before{content:"\e791"}.el-icon-caret-left:before{content:"\e792"}.el-icon-d-caret:before{content:"\e79a"}.el-icon-share:before{content:"\e793"}.el-icon-menu:before{content:"\e798"}.el-icon-s-grid:before{content:"\e7a6"}.el-icon-s-check:before{content:"\e7a7"}.el-icon-s-data:before{content:"\e7a8"}.el-icon-s-opportunity:before{content:"\e7aa"}.el-icon-s-custom:before{content:"\e7ab"}.el-icon-s-claim:before{content:"\e7ad"}.el-icon-s-finance:before{content:"\e7ae"}.el-icon-s-comment:before{content:"\e7af"}.el-icon-s-flag:before{content:"\e7b0"}.el-icon-s-marketing:before{content:"\e7b1"}.el-icon-s-shop:before{content:"\e7b4"}.el-icon-s-open:before{content:"\e7b5"}.el-icon-s-management:before{content:"\e7b6"}.el-icon-s-ticket:before{content:"\e7b7"}.el-icon-s-release:before{content:"\e7b8"}.el-icon-s-home:before{content:"\e7b9"}.el-icon-s-promotion:before{content:"\e7ba"}.el-icon-s-operation:before{content:"\e7bb"}.el-icon-s-unfold:before{content:"\e7bc"}.el-icon-s-fold:before{content:"\e7a9"}.el-icon-s-platform:before{content:"\e7bd"}.el-icon-s-order:before{content:"\e7be"}.el-icon-s-cooperation:before{content:"\e7bf"}.el-icon-bell:before{content:"\e725"}.el-icon-message-solid:before{content:"\e799"}.el-icon-video-camera:before{content:"\e772"}.el-icon-video-camera-solid:before{content:"\e796"}.el-icon-camera:before{content:"\e779"}.el-icon-camera-solid:before{content:"\e79b"}.el-icon-download:before{content:"\e77c"}.el-icon-upload2:before{content:"\e77b"}.el-icon-upload:before{content:"\e7c3"}.el-icon-picture-outline-round:before{content:"\e75f"}.el-icon-picture-outline:before{content:"\e75e"}.el-icon-picture:before{content:"\e79f"}.el-icon-close:before{content:"\e6db"}.el-icon-check:before{content:"\e6da"}.el-icon-plus:before{content:"\e6d9"}.el-icon-minus:before{content:"\e6d8"}.el-icon-help:before{content:"\e73d"}.el-icon-s-help:before{content:"\e7b3"}.el-icon-circle-close:before{content:"\e78d"}.el-icon-circle-check:before{content:"\e720"}.el-icon-circle-plus-outline:before{content:"\e723"}.el-icon-remove-outline:before{content:"\e722"}.el-icon-zoom-out:before{content:"\e776"}.el-icon-zoom-in:before{content:"\e777"}.el-icon-error:before{content:"\e79d"}.el-icon-success:before{content:"\e79c"}.el-icon-circle-plus:before{content:"\e7a0"}.el-icon-remove:before{content:"\e7a2"}.el-icon-info:before{content:"\e7a1"}.el-icon-question:before{content:"\e7a4"}.el-icon-warning-outline:before{content:"\e6c9"}.el-icon-warning:before{content:"\e7a3"}.el-icon-goods:before{content:"\e7c2"}.el-icon-s-goods:before{content:"\e7b2"}.el-icon-star-off:before{content:"\e717"}.el-icon-star-on:before{content:"\e797"}.el-icon-more-outline:before{content:"\e6cc"}.el-icon-more:before{content:"\e794"}.el-icon-phone-outline:before{content:"\e6cb"}.el-icon-phone:before{content:"\e795"}.el-icon-user:before{content:"\e6e3"}.el-icon-user-solid:before{content:"\e7a5"}.el-icon-setting:before{content:"\e6ca"}.el-icon-s-tools:before{content:"\e7ac"}.el-icon-delete:before{content:"\e6d7"}.el-icon-delete-solid:before{content:"\e7c9"}.el-icon-eleme:before{content:"\e7c7"}.el-icon-platform-eleme:before{content:"\e7ca"}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-pagination{white-space:nowrap;padding:2px 5px;color:#303133;font-weight:700}.el-pagination:after,.el-pagination:before{display:table;content:""}.el-pagination:after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;vertical-align:top;box-sizing:border-box}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-input__suffix{right:0;transform:scale(.8)}.el-pagination .el-select .el-input{width:100px;margin:0 5px}.el-pagination .el-select .el-input .el-input__inner{padding-right:25px;border-radius:3px}.el-pagination button{border:none;padding:0 6px;background:0 0}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:#409eff}.el-pagination button:disabled{color:#c0c4cc;background-color:#fff;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:50% no-repeat #fff;background-size:16px;cursor:pointer;margin:0;color:#303133}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#c0c4cc;cursor:not-allowed}.el-pager li,.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.el-pagination--small .more:before,.el-pagination--small li.more:before{line-height:24px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination__sizes{margin:0 10px 0 0;font-weight:400;color:#606266}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#409eff}.el-pagination__total{margin-right:10px;font-weight:400;color:#606266}.el-pagination__jump{margin-left:24px;font-weight:400;color:#606266}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{line-height:18px;padding:0 2px;height:28px;text-align:center;margin:0 2px;box-sizing:border-box;border-radius:3px}.el-pager,.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#606266;min-width:30px;border-radius:2px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.disabled{color:#c0c4cc}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#409eff}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#409eff;color:#fff}.el-dialog,.el-pager li{background:#fff;-webkit-box-sizing:border-box}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager,.el-pager li{vertical-align:top;margin:0;display:inline-block}.el-pager{-ms-user-select:none;user-select:none;list-style:none;font-size:0}.el-date-table,.el-pager,.el-table th.el-table__cell{-webkit-user-select:none;-moz-user-select:none}.el-pager .more:before{line-height:30px}.el-pager li{padding:0 4px;font-size:13px;min-width:35.5px;height:28px;line-height:28px;box-sizing:border-box;text-align:center}.el-menu--collapse .el-menu .el-submenu,.el-menu--popup{min-width:200px}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:28px;color:#303133}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#c0c4cc}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#409eff}.el-pager li.active{color:#409eff;cursor:default}@-webkit-keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}.el-dialog{position:relative;margin:0 auto 50px;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.3);box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:0 0;border:none;outline:0;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#409eff}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px;word-break:break-all}.el-dialog__footer{padding:10px 20px 20px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{-webkit-animation:dialog-fade-in .3s;animation:dialog-fade-in .3s}.dialog-fade-leave-active{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .3s}@-webkit-keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete-suggestion{margin:5px 0;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:4px;border:1px solid #e4e7ed;box-sizing:border-box;background-color:#fff}.el-dropdown-menu,.el-menu--collapse .el-submenu .el-menu{z-index:10;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:#606266;font-size:14px;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#f5f7fa}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #000}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#fff}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{display:inline-block;position:relative;color:#606266;font-size:14px}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{padding-left:5px;padding-right:5px;position:relative;border-left:none}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:5px;bottom:5px;left:0;background:hsla(0,0%,100%,.5)}.el-dropdown .el-dropdown__caret-button.el-button--default:before{background:rgba(220,223,230,.5)}.el-dropdown .el-dropdown__caret-button:hover:not(.is-disabled):before{top:0;bottom:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown [disabled]{cursor:not-allowed;color:#bbb}.el-dropdown-menu{position:absolute;top:0;left:0;padding:10px 0;margin:5px 0;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-dropdown-menu__item{list-style:none;line-height:36px;padding:0 20px;margin:0;font-size:14px;color:#606266;cursor:pointer;outline:0}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#ecf5ff;color:#66b1ff}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #ebeef5}.el-dropdown-menu__item--divided:before{content:"";height:6px;display:block;margin:0 -20px;background-color:#fff}.el-dropdown-menu__item.is-disabled{cursor:default;color:#bbb;pointer-events:none}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{line-height:30px;padding:0 17px;font-size:14px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{line-height:27px;padding:0 15px;font-size:13px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{line-height:24px;padding:0 10px;font-size:12px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{border-right:1px solid #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0}.el-menu,.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu:after,.el-menu:before{display:table;content:""}.el-menu:after{clear:both}.el-menu.el-menu--horizontal{border-bottom:1px solid #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:0}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #409eff;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #409eff;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;border:1px solid #e4e7ed;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu-item,.el-submenu__title{height:56px;line-height:56px;position:relative;-webkit-box-sizing:border-box;white-space:nowrap;list-style:none}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:none}.el-menu--popup{z-index:100;border:none;padding:5px 0;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:0;background-color:#ecf5ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#409eff}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:0;background-color:#ecf5ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu__title:hover{background-color:#ecf5ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;transition:transform .3s;font-size:12px}.el-submenu.is-active .el-submenu__title{border-bottom-color:#409eff}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:rotate(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.el-radio-button__inner,.el-radio-group{display:inline-block;line-height:1;vertical-align:middle}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{transition:.2s;opacity:0}.el-radio-group{font-size:0}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{white-space:nowrap;background:#fff;border:1px solid #dcdfe6;font-weight:500;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#409eff}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;box-shadow:-1px 0 0 0 #409eff}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-popover,.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){box-shadow:0 0 2px 2px #409eff}.el-switch{display:inline-flex;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch__core,.el-switch__label{display:inline-block;cursor:pointer}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:.2s;height:20px;font-size:14px;font-weight:500;vertical-align:middle;color:#303133}.el-switch__label.is-active{color:#409eff}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__core{margin:0;position:relative;width:40px;height:20px;border:1px solid #dcdfe6;outline:0;border-radius:10px;box-sizing:border-box;background:#dcdfe6;transition:border-color .3s,background-color .3s;vertical-align:middle}.el-switch__core:after{content:"";position:absolute;top:1px;left:1px;border-radius:100%;transition:all .3s;width:16px;height:16px;background-color:#fff}.el-switch.is-checked .el-switch__core{border-color:#409eff;background-color:#409eff}.el-switch.is-checked .el-switch__core:after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item{padding-right:40px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#409eff;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{position:absolute;right:20px;font-family:element-icons;content:"\e6da";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#409eff;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#e4e7ed}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative}.el-select .el-select__tags>span{display:contents}.el-select:hover .el-input__inner{border-color:#c0c4cc}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#409eff}.el-select .el-input .el-select__caret{color:#c0c4cc;font-size:14px;transition:transform .3s;transform:rotate(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(0)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;transform:rotate(180deg);border-radius:100%;color:#c0c4cc;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#e4e7ed}.el-select .el-input.is-focus .el-input__inner{border-color:#409eff}.el-select>.el-input{display:block}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#c0c4cc;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;transform:translateY(-50%);display:flex;align-items:center;flex-wrap:wrap}.el-select__tags-text{overflow:hidden;text-overflow:ellipsis}.el-select .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5;display:flex;max-width:100%;align-items:center}.el-select .el-tag__close.el-icon-close{background-color:#c0c4cc;top:0;color:#fff;flex-shrink:0}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-table,.el-table__expanded-cell{background-color:#fff}.el-select .el-tag__close.el-icon-close:before{display:block;transform:translateY(.5px)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;flex:1;width:100%;max-width:100%;font-size:14px;color:#606266}.el-table--mini,.el-table--small,.el-table__expand-icon{font-size:12px}.el-table__empty-block{min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;transition:transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th.el-table__cell{background:#f5f7fa}.el-table .el-table__cell{padding:12px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table--medium .el-table__cell{padding:10px 0}.el-table--small .el-table__cell{padding:8px 0}.el-table--mini .el-table__cell{padding:6px 0}.el-table--border .el-table__cell:first-child .cell,.el-table .cell{padding-left:10px}.el-table tr{background-color:#fff}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:1px solid #ebeef5}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{overflow:hidden;-ms-user-select:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:#fff}.el-table th.el-table__cell>.cell{display:inline-block;box-sizing:border-box;position:relative;vertical-align:middle;padding-left:10px;padding-right:10px;width:100%}.el-table th.el-table__cell>.cell.highlight{color:#409eff}.el-table th.el-table__cell.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding-right:10px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #ebeef5}.el-table--border:after,.el-table--group:after,.el-table:before{content:"";position:absolute;background-color:#ebeef5;z-index:1}.el-table--border:after,.el-table--group:after{top:0;right:0;width:1px;height:100%}.el-table:before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border .el-table__cell,.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #ebeef5}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:1px solid #ebeef5;border-bottom-width:1px}.el-table--border th.el-table__cell,.el-table__fixed-right-patch{border-bottom:1px solid #ebeef5}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right:before,.el-table__fixed:before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#ebeef5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#fff}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td.el-table__cell{border-top:1px solid #ebeef5;background-color:#f5f7fa;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td.el-table__cell{border-top:1px solid #ebeef5}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td.el-table__cell,.el-table__header-wrapper tbody td.el-table__cell{background-color:#f5f7fa;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{box-shadow:none}.el-picker-panel,.el-table-filter{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #ebeef5}.el-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#c0c4cc;top:5px}.el-table .sort-caret.descending{border-top-color:#c0c4cc;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#409eff}.el-table .descending .sort-caret.descending{border-top-color:#409eff}.el-table .hidden-columns{position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:#ecf5ff}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:#f5f7fa}.el-table__body tr.current-row>td.el-table__cell{background-color:#ecf5ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #ebeef5;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;transform:scale(.75)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:20px;line-height:20px;height:20px;text-align:center;margin-right:3px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #ebeef5;border-radius:2px;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:2px 0}.el-date-table td,.el-date-table td div{height:30px;-webkit-box-sizing:border-box}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#ecf5ff;color:#66b1ff}.el-table-filter__list-item.is-active{background-color:#409eff;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #ebeef5;padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-date-table.is-week-mode .el-date-table__row.current div,.el-date-table.is-week-mode .el-date-table__row:hover div,.el-date-table td.in-range div,.el-date-table td.in-range div:hover{background-color:#f2f6fc}.el-table-filter__bottom button:hover{color:#409eff}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-ms-user-select:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#606266}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td{width:32px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td div{padding:3px 0;box-sizing:border-box}.el-date-table td span{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translateX(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:#c0c4cc}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#409eff;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#fff}.el-date-table td.available:hover{color:#409eff}.el-date-table td.current:not(.disabled) span{color:#fff;background-color:#409eff}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#fff}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#409eff}.el-date-table td.start-date div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled div{background-color:#f5f7fa;opacity:1;cursor:not-allowed;color:#c0c4cc}.el-date-table td.selected div{margin-left:5px;margin-right:5px;background-color:#f2f6fc;border-radius:15px}.el-date-table td.selected div:hover{background-color:#f2f6fc}.el-date-table td.selected span{background-color:#409eff;color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:#606266}.el-month-table,.el-year-table{font-size:12px;border-collapse:collapse}.el-date-table th{padding:5px;color:#606266;font-weight:400;border-bottom:1px solid #ebeef5}.el-month-table{margin:-1px}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:#409eff;font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-month-table td.disabled .cell:hover{color:#c0c4cc}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:#606266;margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:#409eff}.el-month-table td.in-range div,.el-month-table td.in-range div:hover{background-color:#f2f6fc}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:#409eff}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:#409eff}.el-year-table{margin:-1px}.el-year-table .el-icon{color:#303133}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:#409eff;font-weight:700}.el-year-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-year-table td.disabled .cell:hover{color:#c0c4cc}.el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px;color:#606266;margin:0 auto}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#409eff}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#303133}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:1px solid #ebeef5}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#606266}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#409eff}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.selected:not(.disabled){color:#409eff;font-weight:700}.time-select-item.disabled{color:#e4e7ed;cursor:not-allowed}.time-select-item:hover{background-color:#f5f7fa;font-weight:700;cursor:pointer}.el-date-editor{position:relative;display:inline-block;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--monthrange.el-input,.el-date-editor--monthrange.el-input__inner{width:300px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#c0c4cc;float:left;line-height:32px}.el-date-editor .el-range-input,.el-date-editor .el-range-separator{height:100%;margin:0;text-align:center;display:inline-block;font-size:14px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;padding:0;width:39%;color:#606266}.el-date-editor .el-range-input:-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-moz-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::placeholder{color:#c0c4cc}.el-date-editor .el-range-separator{padding:0 5px;line-height:32px;width:5%;color:#303133}.el-date-editor .el-range__close-icon{font-size:14px;color:#c0c4cc;width:25px;display:inline-block;float:right;line-height:32px}.el-range-editor.el-input__inner{display:inline-flex;align-items:center;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-range-editor.is-active,.el-range-editor.is-active:hover{border-color:#409eff}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#e4e7ed}.el-range-editor.is-disabled input{background-color:#f5f7fa;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled input:-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-moz-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::placeholder{color:#c0c4cc}.el-range-editor.is-disabled .el-range-separator{color:#c0c4cc}.el-picker-panel{color:#606266;border:1px solid #e4e7ed;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#fff;border-radius:4px;line-height:30px;margin:5px 0}.el-popover,.el-time-panel{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#fff;position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#606266;padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:#409eff}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#409eff}.el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:#303133;border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:#409eff}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;box-sizing:border-box;padding-top:6px;background-color:#fff;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.el-time-spinner__arrow{font-size:12px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:#409eff}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__list{margin:0;list-style:none}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#606266}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#c0c4cc;cursor:not-allowed}.el-time-panel{margin:5px 0;border:1px solid #e4e7ed;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;width:180px;left:0;z-index:1000;user-select:none;box-sizing:content-box}.el-slider__button,.el-slider__button-wrapper,.el-time-panel{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #e4e7ed;border-bottom:1px solid #e4e7ed}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%}.el-time-panel__content.has-seconds:after{left:66.66667%}.el-time-panel__content.has-seconds:before{padding-left:33.33333%}.el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:#303133}.el-time-panel__btn.confirm{font-weight:800;color:#409eff}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid #e4e7ed}.el-popover{position:absolute;background:#fff;min-width:150px;border:1px solid #ebeef5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#fff;border-radius:4px;border:1px solid #ebeef5;font-size:18px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px 15px 10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:0;background:0 0;font-size:16px;cursor:pointer}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus,.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#f56c6c}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#409eff}.el-message-box__content{padding:10px 15px;color:#606266;font-size:14px}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#67c23a}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#e6a23c}.el-message-box__status.el-icon-error{color:#f56c6c}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#f56c6c;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{-webkit-animation:msgbox-fade-in .3s;animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{-webkit-animation:msgbox-fade-out .3s;animation:msgbox-fade-out .3s}@-webkit-keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#c0c4cc}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner.is-link,.el-breadcrumb__inner a{font-weight:700;text-decoration:none;transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner.is-link:hover,.el-breadcrumb__inner a:hover{color:#409eff;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover{font-weight:400;color:#606266;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{display:table;content:""}.el-form-item:after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content:after,.el-form-item__content:before{display:table;content:""}.el-form-item__content:after{clear:both}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#f56c6c;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#f56c6c}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409eff;z-index:1;transition:transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;transition:all .15s}.el-collapse-item__arrow,.el-tabs__nav{-webkit-transition:-webkit-transform .3s}.el-tabs__new-tab .el-icon-plus{transform:scale(.8)}.el-tabs__new-tab:hover{color:#409eff}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#e4e7ed;z-index:1}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after,.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;transition:transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:flex}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus.is-active.is-focus:not(:active){box-shadow:inset 0 0 2px 2px #409eff;border-radius:3px}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{transform:scale(.9);display:inline-block}.el-tabs__item .el-icon-close:hover{background-color:#c0c4cc;color:#fff}.el-tabs__item.is-active{color:#409eff}.el-tabs__item:hover{color:#409eff;cursor:pointer}.el-tabs__item.is-disabled{color:#c0c4cc;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #e4e7ed}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #e4e7ed;border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close,.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--border-card{background:#fff;border:1px solid #dcdfe6;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #e4e7ed;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin-top:-1px;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#409eff;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#409eff}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#c0c4cc}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #dcdfe6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{right:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left,.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #e4e7ed;border-bottom:none;border-top:1px solid #e4e7ed;text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #e4e7ed;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #e4e7ed;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #e4e7ed;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #e4e7ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #e4e7ed;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #e4e7ed;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #e4e7ed;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter .3s;animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave .3s;animation:slideInRight-leave .3s}.slideInLeft-enter{-webkit-animation:slideInLeft-enter .3s;animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave .3s;animation:slideInLeft-leave .3s}@-webkit-keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@-webkit-keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}to{transform-origin:0 0;transform:translateX(100%);opacity:0}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}to{transform-origin:0 0;transform:translateX(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(-100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(-100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@-webkit-keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}to{transform-origin:0 0;transform:translateX(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}to{transform-origin:0 0;transform:translateX(-100%);opacity:0}}.el-tree{position:relative;cursor:default;background:#fff;color:#606266}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#909399;font-size:14px}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:#409eff}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:#f5f7fa}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#409eff;color:#fff}.el-tree-node__content{display:flex;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:#f5f7fa}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:#c0c4cc;font-size:12px;transform:rotate(0);transition:transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:8px;font-size:14px;color:#c0c4cc}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#f0f7ff}.el-alert{width:100%;padding:8px 16px;margin:0;box-sizing:border-box;border-radius:4px;position:relative;background-color:#fff;overflow:hidden;opacity:1;display:flex;align-items:center;transition:opacity .2s}.el-alert.is-light .el-alert__closebtn{color:#c0c4cc}.el-alert.is-dark .el-alert__closebtn,.el-alert.is-dark .el-alert__description{color:#fff}.el-alert.is-center{justify-content:center}.el-alert--success.is-light{background-color:#f0f9eb;color:#67c23a}.el-alert--success.is-light .el-alert__description{color:#67c23a}.el-alert--success.is-dark{background-color:#67c23a;color:#fff}.el-alert--info.is-light{background-color:#f4f4f5;color:#909399}.el-alert--info.is-dark{background-color:#909399;color:#fff}.el-alert--info .el-alert__description{color:#909399}.el-alert--warning.is-light{background-color:#fdf6ec;color:#e6a23c}.el-alert--warning.is-light .el-alert__description{color:#e6a23c}.el-alert--warning.is-dark{background-color:#e6a23c;color:#fff}.el-alert--error.is-light{background-color:#fef0f0;color:#f56c6c}.el-alert--error.is-light .el-alert__description{color:#f56c6c}.el-alert--error.is-dark{background-color:#f56c6c;color:#fff}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0}.el-alert__closebtn{font-size:12px;opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert-fade-enter,.el-alert-fade-leave-active,.el-loading-fade-enter,.el-loading-fade-leave-active,.el-notification-fade-leave-active{opacity:0}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-notification{display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;box-sizing:border-box;border:1px solid #ebeef5;position:fixed;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;overflow:hidden}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:13px;margin-right:8px}.el-notification__title{font-weight:700;font-size:16px;color:#303133;margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:6px 0 0;color:#606266;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{height:24px;width:24px;font-size:24px}.el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:#909399;font-size:16px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#67c23a}.el-notification .el-icon-error{color:#f56c6c}.el-notification .el-icon-info{color:#909399}.el-notification .el-icon-warning{color:#e6a23c}.el-notification-fade-enter.right{right:0;transform:translateX(100%)}.el-notification-fade-enter.left{left:0;transform:translateX(-100%)}.el-input-number{position:relative;display:inline-block;width:180px;line-height:38px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{position:absolute;z-index:1;top:1px;width:40px;height:auto;text-align:center;background:#f5f7fa;color:#606266;cursor:pointer;font-size:13px}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#409eff}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#409eff}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 4px 4px 0;border-left:1px solid #dcdfe6}.el-input-number__decrease{left:1px;border-radius:4px 0 0 4px;border-right:1px solid #dcdfe6}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#e4e7ed;color:#e4e7ed}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#e4e7ed;cursor:not-allowed}.el-input-number--medium{width:200px;line-height:34px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{width:36px;font-size:14px}.el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.el-input-number--small{width:130px;line-height:30px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:32px;font-size:13px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.el-input-number--mini{width:130px;line-height:26px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{width:28px;font-size:12px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 4px 0 0;border-bottom:1px solid #dcdfe6}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;bottom:1px;top:auto;left:auto;border-right:none;border-left:1px solid #dcdfe6;border-radius:0 0 4px}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow:after{content:" ";border-width:5px}.el-progress-bar__inner:after,.el-row:after,.el-row:before,.el-slider:after,.el-slider:before,.el-slider__button-wrapper:after,.el-upload-cover:after{content:""}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow:after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow:after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow:after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow:after{border-right-color:#fff}.el-slider:after,.el-slider:before{display:table}.el-slider__button-wrapper .el-tooltip,.el-slider__button-wrapper:after{vertical-align:middle;display:inline-block}.el-slider:after{clear:both}.el-slider__runway{width:100%;height:6px;margin:16px 0;background-color:#e4e7ed;border-radius:3px;position:relative;cursor:pointer;vertical-align:middle}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button{border-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{transform:scale(1);cursor:not-allowed}.el-slider__button-wrapper,.el-slider__stop{-webkit-transform:translateX(-50%);position:absolute}.el-slider__input{float:right;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{height:6px;background-color:#409eff;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.el-slider__button-wrapper{height:36px;width:36px;z-index:1001;top:-15px;transform:translateX(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal}.el-slider__button-wrapper:after{height:100%}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{width:16px;height:16px;border:2px solid #409eff;background-color:#fff;border-radius:50%;transition:.2s;user-select:none}.el-image-viewer__btn,.el-slider__button,.el-step__icon-inner{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{height:6px;width:6px;border-radius:100%;background-color:#fff;transform:translateX(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;transform:translateX(-50%);font-size:14px;color:#909399;margin-top:15px}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{width:6px;height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:6px;height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:-15px;transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{overflow:visible;float:none;position:absolute;bottom:22px;width:36px;margin-top:15px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{text-align:center;padding-left:5px;padding-right:5px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{top:32px;margin-top:-1px;border:1px solid #dcdfe6;line-height:20px;box-sizing:border-box;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{width:18px;right:18px;border-bottom-left-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{width:19px;border-bottom-right-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#c0c4cc}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#409eff}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:hsla(0,0%,100%,.9);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-col-pull-0,.el-col-pull-1,.el-col-pull-2,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-pull-10,.el-col-pull-11,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-push-0,.el-col-push-1,.el-col-push-2,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24,.el-row{position:relative}.el-loading-spinner .el-loading-text{color:#409eff;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#409eff;stroke-linecap:round}.el-loading-spinner i{color:#409eff}@-webkit-keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-rotate{to{transform:rotate(1turn)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{box-sizing:border-box}.el-row:after,.el-row:before{display:table}.el-row:after{clear:both}.el-row--flex{display:flex}.el-col-0,.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{justify-content:center}.el-row--flex.is-justify-end{justify-content:flex-end}.el-row--flex.is-justify-space-between{justify-content:space-between}.el-row--flex.is-justify-space-around{justify-content:space-around}.el-row--flex.is-align-top{align-items:flex-start}.el-row--flex.is-align-middle{align-items:center}.el-row--flex.is-align-bottom{align-items:flex-end}[class*=el-col-]{float:left;box-sizing:border-box}.el-upload--picture-card,.el-upload-dragger{-webkit-box-sizing:border-box;cursor:pointer}.el-col-0{width:0}.el-col-offset-0{margin-left:0}.el-col-pull-0{right:0}.el-col-push-0{left:0}.el-col-1{width:4.16667%}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{right:4.16667%}.el-col-push-1{left:4.16667%}.el-col-2{width:8.33333%}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{right:8.33333%}.el-col-push-2{left:8.33333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{right:12.5%}.el-col-push-3{left:12.5%}.el-col-4{width:16.66667%}.el-col-offset-4{margin-left:16.66667%}.el-col-pull-4{right:16.66667%}.el-col-push-4{left:16.66667%}.el-col-5{width:20.83333%}.el-col-offset-5{margin-left:20.83333%}.el-col-pull-5{right:20.83333%}.el-col-push-5{left:20.83333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{right:25%}.el-col-push-6{left:25%}.el-col-7{width:29.16667%}.el-col-offset-7{margin-left:29.16667%}.el-col-pull-7{right:29.16667%}.el-col-push-7{left:29.16667%}.el-col-8{width:33.33333%}.el-col-offset-8{margin-left:33.33333%}.el-col-pull-8{right:33.33333%}.el-col-push-8{left:33.33333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{right:37.5%}.el-col-push-9{left:37.5%}.el-col-10{width:41.66667%}.el-col-offset-10{margin-left:41.66667%}.el-col-pull-10{right:41.66667%}.el-col-push-10{left:41.66667%}.el-col-11{width:45.83333%}.el-col-offset-11{margin-left:45.83333%}.el-col-pull-11{right:45.83333%}.el-col-push-11{left:45.83333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%}.el-col-13{width:54.16667%}.el-col-offset-13{margin-left:54.16667%}.el-col-pull-13{right:54.16667%}.el-col-push-13{left:54.16667%}.el-col-14{width:58.33333%}.el-col-offset-14{margin-left:58.33333%}.el-col-pull-14{right:58.33333%}.el-col-push-14{left:58.33333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{right:62.5%}.el-col-push-15{left:62.5%}.el-col-16{width:66.66667%}.el-col-offset-16{margin-left:66.66667%}.el-col-pull-16{right:66.66667%}.el-col-push-16{left:66.66667%}.el-col-17{width:70.83333%}.el-col-offset-17{margin-left:70.83333%}.el-col-pull-17{right:70.83333%}.el-col-push-17{left:70.83333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{right:75%}.el-col-push-18{left:75%}.el-col-19{width:79.16667%}.el-col-offset-19{margin-left:79.16667%}.el-col-pull-19{right:79.16667%}.el-col-push-19{left:79.16667%}.el-col-20{width:83.33333%}.el-col-offset-20{margin-left:83.33333%}.el-col-pull-20{right:83.33333%}.el-col-push-20{left:83.33333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{right:87.5%}.el-col-push-21{left:87.5%}.el-col-22{width:91.66667%}.el-col-offset-22{margin-left:91.66667%}.el-col-pull-22{right:91.66667%}.el-col-push-22{left:91.66667%}.el-col-23{width:95.83333%}.el-col-offset-23{margin-left:95.83333%}.el-col-pull-23{right:95.83333%}.el-col-push-23{left:95.83333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{right:100%}.el-col-push-24{left:100%}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.16667%}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{width:8.33333%}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.66667%}.el-col-xs-offset-4{margin-left:16.66667%}.el-col-xs-pull-4{position:relative;right:16.66667%}.el-col-xs-push-4{position:relative;left:16.66667%}.el-col-xs-5{width:20.83333%}.el-col-xs-offset-5{margin-left:20.83333%}.el-col-xs-pull-5{position:relative;right:20.83333%}.el-col-xs-push-5{position:relative;left:20.83333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.16667%}.el-col-xs-offset-7{margin-left:29.16667%}.el-col-xs-pull-7{position:relative;right:29.16667%}.el-col-xs-push-7{position:relative;left:29.16667%}.el-col-xs-8{width:33.33333%}.el-col-xs-offset-8{margin-left:33.33333%}.el-col-xs-pull-8{position:relative;right:33.33333%}.el-col-xs-push-8{position:relative;left:33.33333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.66667%}.el-col-xs-offset-10{margin-left:41.66667%}.el-col-xs-pull-10{position:relative;right:41.66667%}.el-col-xs-push-10{position:relative;left:41.66667%}.el-col-xs-11{width:45.83333%}.el-col-xs-offset-11{margin-left:45.83333%}.el-col-xs-pull-11{position:relative;right:45.83333%}.el-col-xs-push-11{position:relative;left:45.83333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.16667%}.el-col-xs-offset-13{margin-left:54.16667%}.el-col-xs-pull-13{position:relative;right:54.16667%}.el-col-xs-push-13{position:relative;left:54.16667%}.el-col-xs-14{width:58.33333%}.el-col-xs-offset-14{margin-left:58.33333%}.el-col-xs-pull-14{position:relative;right:58.33333%}.el-col-xs-push-14{position:relative;left:58.33333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.66667%}.el-col-xs-offset-16{margin-left:66.66667%}.el-col-xs-pull-16{position:relative;right:66.66667%}.el-col-xs-push-16{position:relative;left:66.66667%}.el-col-xs-17{width:70.83333%}.el-col-xs-offset-17{margin-left:70.83333%}.el-col-xs-pull-17{position:relative;right:70.83333%}.el-col-xs-push-17{position:relative;left:70.83333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.16667%}.el-col-xs-offset-19{margin-left:79.16667%}.el-col-xs-pull-19{position:relative;right:79.16667%}.el-col-xs-push-19{position:relative;left:79.16667%}.el-col-xs-20{width:83.33333%}.el-col-xs-offset-20{margin-left:83.33333%}.el-col-xs-pull-20{position:relative;right:83.33333%}.el-col-xs-push-20{position:relative;left:83.33333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.66667%}.el-col-xs-offset-22{margin-left:91.66667%}.el-col-xs-pull-22{position:relative;right:91.66667%}.el-col-xs-push-22{position:relative;left:91.66667%}.el-col-xs-23{width:95.83333%}.el-col-xs-offset-23{margin-left:95.83333%}.el-col-xs-pull-23{position:relative;right:95.83333%}.el-col-xs-push-23{position:relative;left:95.83333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.16667%}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{width:8.33333%}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.66667%}.el-col-sm-offset-4{margin-left:16.66667%}.el-col-sm-pull-4{position:relative;right:16.66667%}.el-col-sm-push-4{position:relative;left:16.66667%}.el-col-sm-5{width:20.83333%}.el-col-sm-offset-5{margin-left:20.83333%}.el-col-sm-pull-5{position:relative;right:20.83333%}.el-col-sm-push-5{position:relative;left:20.83333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.16667%}.el-col-sm-offset-7{margin-left:29.16667%}.el-col-sm-pull-7{position:relative;right:29.16667%}.el-col-sm-push-7{position:relative;left:29.16667%}.el-col-sm-8{width:33.33333%}.el-col-sm-offset-8{margin-left:33.33333%}.el-col-sm-pull-8{position:relative;right:33.33333%}.el-col-sm-push-8{position:relative;left:33.33333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.66667%}.el-col-sm-offset-10{margin-left:41.66667%}.el-col-sm-pull-10{position:relative;right:41.66667%}.el-col-sm-push-10{position:relative;left:41.66667%}.el-col-sm-11{width:45.83333%}.el-col-sm-offset-11{margin-left:45.83333%}.el-col-sm-pull-11{position:relative;right:45.83333%}.el-col-sm-push-11{position:relative;left:45.83333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.16667%}.el-col-sm-offset-13{margin-left:54.16667%}.el-col-sm-pull-13{position:relative;right:54.16667%}.el-col-sm-push-13{position:relative;left:54.16667%}.el-col-sm-14{width:58.33333%}.el-col-sm-offset-14{margin-left:58.33333%}.el-col-sm-pull-14{position:relative;right:58.33333%}.el-col-sm-push-14{position:relative;left:58.33333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.66667%}.el-col-sm-offset-16{margin-left:66.66667%}.el-col-sm-pull-16{position:relative;right:66.66667%}.el-col-sm-push-16{position:relative;left:66.66667%}.el-col-sm-17{width:70.83333%}.el-col-sm-offset-17{margin-left:70.83333%}.el-col-sm-pull-17{position:relative;right:70.83333%}.el-col-sm-push-17{position:relative;left:70.83333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.16667%}.el-col-sm-offset-19{margin-left:79.16667%}.el-col-sm-pull-19{position:relative;right:79.16667%}.el-col-sm-push-19{position:relative;left:79.16667%}.el-col-sm-20{width:83.33333%}.el-col-sm-offset-20{margin-left:83.33333%}.el-col-sm-pull-20{position:relative;right:83.33333%}.el-col-sm-push-20{position:relative;left:83.33333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.66667%}.el-col-sm-offset-22{margin-left:91.66667%}.el-col-sm-pull-22{position:relative;right:91.66667%}.el-col-sm-push-22{position:relative;left:91.66667%}.el-col-sm-23{width:95.83333%}.el-col-sm-offset-23{margin-left:95.83333%}.el-col-sm-pull-23{position:relative;right:95.83333%}.el-col-sm-push-23{position:relative;left:95.83333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.16667%}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{width:8.33333%}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.66667%}.el-col-md-offset-4{margin-left:16.66667%}.el-col-md-pull-4{position:relative;right:16.66667%}.el-col-md-push-4{position:relative;left:16.66667%}.el-col-md-5{width:20.83333%}.el-col-md-offset-5{margin-left:20.83333%}.el-col-md-pull-5{position:relative;right:20.83333%}.el-col-md-push-5{position:relative;left:20.83333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.16667%}.el-col-md-offset-7{margin-left:29.16667%}.el-col-md-pull-7{position:relative;right:29.16667%}.el-col-md-push-7{position:relative;left:29.16667%}.el-col-md-8{width:33.33333%}.el-col-md-offset-8{margin-left:33.33333%}.el-col-md-pull-8{position:relative;right:33.33333%}.el-col-md-push-8{position:relative;left:33.33333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.66667%}.el-col-md-offset-10{margin-left:41.66667%}.el-col-md-pull-10{position:relative;right:41.66667%}.el-col-md-push-10{position:relative;left:41.66667%}.el-col-md-11{width:45.83333%}.el-col-md-offset-11{margin-left:45.83333%}.el-col-md-pull-11{position:relative;right:45.83333%}.el-col-md-push-11{position:relative;left:45.83333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.16667%}.el-col-md-offset-13{margin-left:54.16667%}.el-col-md-pull-13{position:relative;right:54.16667%}.el-col-md-push-13{position:relative;left:54.16667%}.el-col-md-14{width:58.33333%}.el-col-md-offset-14{margin-left:58.33333%}.el-col-md-pull-14{position:relative;right:58.33333%}.el-col-md-push-14{position:relative;left:58.33333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.66667%}.el-col-md-offset-16{margin-left:66.66667%}.el-col-md-pull-16{position:relative;right:66.66667%}.el-col-md-push-16{position:relative;left:66.66667%}.el-col-md-17{width:70.83333%}.el-col-md-offset-17{margin-left:70.83333%}.el-col-md-pull-17{position:relative;right:70.83333%}.el-col-md-push-17{position:relative;left:70.83333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.16667%}.el-col-md-offset-19{margin-left:79.16667%}.el-col-md-pull-19{position:relative;right:79.16667%}.el-col-md-push-19{position:relative;left:79.16667%}.el-col-md-20{width:83.33333%}.el-col-md-offset-20{margin-left:83.33333%}.el-col-md-pull-20{position:relative;right:83.33333%}.el-col-md-push-20{position:relative;left:83.33333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.66667%}.el-col-md-offset-22{margin-left:91.66667%}.el-col-md-pull-22{position:relative;right:91.66667%}.el-col-md-push-22{position:relative;left:91.66667%}.el-col-md-23{width:95.83333%}.el-col-md-offset-23{margin-left:95.83333%}.el-col-md-pull-23{position:relative;right:95.83333%}.el-col-md-push-23{position:relative;left:95.83333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.16667%}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{width:8.33333%}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.66667%}.el-col-lg-offset-4{margin-left:16.66667%}.el-col-lg-pull-4{position:relative;right:16.66667%}.el-col-lg-push-4{position:relative;left:16.66667%}.el-col-lg-5{width:20.83333%}.el-col-lg-offset-5{margin-left:20.83333%}.el-col-lg-pull-5{position:relative;right:20.83333%}.el-col-lg-push-5{position:relative;left:20.83333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.16667%}.el-col-lg-offset-7{margin-left:29.16667%}.el-col-lg-pull-7{position:relative;right:29.16667%}.el-col-lg-push-7{position:relative;left:29.16667%}.el-col-lg-8{width:33.33333%}.el-col-lg-offset-8{margin-left:33.33333%}.el-col-lg-pull-8{position:relative;right:33.33333%}.el-col-lg-push-8{position:relative;left:33.33333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.66667%}.el-col-lg-offset-10{margin-left:41.66667%}.el-col-lg-pull-10{position:relative;right:41.66667%}.el-col-lg-push-10{position:relative;left:41.66667%}.el-col-lg-11{width:45.83333%}.el-col-lg-offset-11{margin-left:45.83333%}.el-col-lg-pull-11{position:relative;right:45.83333%}.el-col-lg-push-11{position:relative;left:45.83333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.16667%}.el-col-lg-offset-13{margin-left:54.16667%}.el-col-lg-pull-13{position:relative;right:54.16667%}.el-col-lg-push-13{position:relative;left:54.16667%}.el-col-lg-14{width:58.33333%}.el-col-lg-offset-14{margin-left:58.33333%}.el-col-lg-pull-14{position:relative;right:58.33333%}.el-col-lg-push-14{position:relative;left:58.33333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.66667%}.el-col-lg-offset-16{margin-left:66.66667%}.el-col-lg-pull-16{position:relative;right:66.66667%}.el-col-lg-push-16{position:relative;left:66.66667%}.el-col-lg-17{width:70.83333%}.el-col-lg-offset-17{margin-left:70.83333%}.el-col-lg-pull-17{position:relative;right:70.83333%}.el-col-lg-push-17{position:relative;left:70.83333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.16667%}.el-col-lg-offset-19{margin-left:79.16667%}.el-col-lg-pull-19{position:relative;right:79.16667%}.el-col-lg-push-19{position:relative;left:79.16667%}.el-col-lg-20{width:83.33333%}.el-col-lg-offset-20{margin-left:83.33333%}.el-col-lg-pull-20{position:relative;right:83.33333%}.el-col-lg-push-20{position:relative;left:83.33333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.66667%}.el-col-lg-offset-22{margin-left:91.66667%}.el-col-lg-pull-22{position:relative;right:91.66667%}.el-col-lg-push-22{position:relative;left:91.66667%}.el-col-lg-23{width:95.83333%}.el-col-lg-offset-23{margin-left:95.83333%}.el-col-lg-pull-23{position:relative;right:95.83333%}.el-col-lg-push-23{position:relative;left:95.83333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.16667%}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{width:8.33333%}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.66667%}.el-col-xl-offset-4{margin-left:16.66667%}.el-col-xl-pull-4{position:relative;right:16.66667%}.el-col-xl-push-4{position:relative;left:16.66667%}.el-col-xl-5{width:20.83333%}.el-col-xl-offset-5{margin-left:20.83333%}.el-col-xl-pull-5{position:relative;right:20.83333%}.el-col-xl-push-5{position:relative;left:20.83333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.16667%}.el-col-xl-offset-7{margin-left:29.16667%}.el-col-xl-pull-7{position:relative;right:29.16667%}.el-col-xl-push-7{position:relative;left:29.16667%}.el-col-xl-8{width:33.33333%}.el-col-xl-offset-8{margin-left:33.33333%}.el-col-xl-pull-8{position:relative;right:33.33333%}.el-col-xl-push-8{position:relative;left:33.33333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.66667%}.el-col-xl-offset-10{margin-left:41.66667%}.el-col-xl-pull-10{position:relative;right:41.66667%}.el-col-xl-push-10{position:relative;left:41.66667%}.el-col-xl-11{width:45.83333%}.el-col-xl-offset-11{margin-left:45.83333%}.el-col-xl-pull-11{position:relative;right:45.83333%}.el-col-xl-push-11{position:relative;left:45.83333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.16667%}.el-col-xl-offset-13{margin-left:54.16667%}.el-col-xl-pull-13{position:relative;right:54.16667%}.el-col-xl-push-13{position:relative;left:54.16667%}.el-col-xl-14{width:58.33333%}.el-col-xl-offset-14{margin-left:58.33333%}.el-col-xl-pull-14{position:relative;right:58.33333%}.el-col-xl-push-14{position:relative;left:58.33333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.66667%}.el-col-xl-offset-16{margin-left:66.66667%}.el-col-xl-pull-16{position:relative;right:66.66667%}.el-col-xl-push-16{position:relative;left:66.66667%}.el-col-xl-17{width:70.83333%}.el-col-xl-offset-17{margin-left:70.83333%}.el-col-xl-pull-17{position:relative;right:70.83333%}.el-col-xl-push-17{position:relative;left:70.83333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.16667%}.el-col-xl-offset-19{margin-left:79.16667%}.el-col-xl-pull-19{position:relative;right:79.16667%}.el-col-xl-push-19{position:relative;left:79.16667%}.el-col-xl-20{width:83.33333%}.el-col-xl-offset-20{margin-left:83.33333%}.el-col-xl-pull-20{position:relative;right:83.33333%}.el-col-xl-push-20{position:relative;left:83.33333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.66667%}.el-col-xl-offset-22{margin-left:91.66667%}.el-col-xl-pull-22{position:relative;right:91.66667%}.el-col-xl-push-22{position:relative;left:91.66667%}.el-col-xl-23{width:95.83333%}.el-col-xl-offset-23{margin-left:95.83333%}.el-col-xl-pull-23{position:relative;right:95.83333%}.el-col-xl-push-23{position:relative;left:95.83333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}@-webkit-keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-upload{display:inline-block;text-align:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:#606266;margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0;filter:alpha(opacity=0)}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;box-sizing:border-box;width:148px;height:148px;line-height:146px;vertical-align:top}.el-upload--picture-card i{font-size:28px;color:#8c939d}.el-upload--picture-card:hover,.el-upload:focus{border-color:#409eff;color:#409eff}.el-upload:focus .el-upload-dragger{border-color:#409eff}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;box-sizing:border-box;width:360px;height:180px;text-align:center;position:relative;overflow:hidden}.el-upload-dragger .el-icon-upload{font-size:67px;color:#c0c4cc;margin:40px 0 16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #dcdfe6;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#606266;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#409eff;font-style:normal}.el-upload-dragger:hover{border-color:#409eff}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #409eff}.el-upload-list{margin:0;padding:0;list-style:none}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:#606266;line-height:1.8;margin-top:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#67c23a}.el-upload-list__item .el-icon-close{display:none;position:absolute;top:5px;right:5px;cursor:pointer;opacity:.75;color:#606266}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{display:none;position:absolute;top:5px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:#409eff}.el-upload-list__item:hover{background-color:#f5f7fa}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#409eff;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#606266;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{height:100%;margin-right:7px;color:#909399;line-height:inherit}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:#606266;display:none}.el-upload-list__item-delete:hover{color:#409eff}.el-upload-list--picture-card{margin:0;display:inline;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;width:148px;height:148px;margin:0 8px 8px 0;display:inline-block}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;text-align:center;color:#fff;opacity:0;font-size:20px;background-color:rgba(0,0,0,.5);transition:opacity .3s}.el-upload-list--picture-card .el-upload-list__item-actions:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px 10px 10px 90px;height:92px}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:0 0;box-shadow:none;top:-2px;right:-12px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{vertical-align:middle;display:inline-block;width:70px;height:70px;float:left;position:relative;z-index:1;margin-left:-80px;background-color:#fff}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;line-height:1;position:absolute;left:9px;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 1px 1px #ccc}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.72);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);margin-top:60px}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:#303133}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1}.el-progress__text{font-size:14px;color:#606266;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress-bar,.el-progress-bar__inner:after,.el-progress-bar__innerText,.el-spinner{display:inline-block;vertical-align:middle}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#67c23a}.el-progress.is-success .el-progress__text{color:#67c23a}.el-progress.is-warning .el-progress-bar__inner{background-color:#e6a23c}.el-progress.is-warning .el-progress__text{color:#e6a23c}.el-progress.is-exception .el-progress-bar__inner{background-color:#f56c6c}.el-progress.is-exception .el-progress__text{color:#f56c6c}.el-progress-bar{padding-right:50px;width:100%;margin-right:-55px;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#ebeef5;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#409eff;text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-card,.el-message{border-radius:4px;overflow:hidden}.el-progress-bar__inner:after{height:100%}.el-progress-bar__innerText{color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{to{transform:rotate(1turn)}}@keyframes rotate{to{transform:rotate(1turn)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{min-width:380px;box-sizing:border-box;border-width:1px;border-style:solid;border-color:#ebeef5;position:fixed;left:50%;top:20px;transform:translateX(-50%);background-color:#edf2fc;transition:opacity .3s,transform .4s,top .4s;padding:15px 15px 15px 20px;display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67c23a}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#e6a23c}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#f56c6c}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__closeBtn{position:absolute;top:50%;right:15px;transform:translateY(-50%);cursor:pointer;color:#c0c4cc;font-size:16px}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67c23a}.el-message .el-icon-error{color:#f56c6c}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#e6a23c}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;transform:translate(-50%,-100%)}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#f56c6c;border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #fff}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;transform:translateY(-50%) translateX(100%)}.el-rate__icon,.el-rate__item{position:relative;display:inline-block}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:#409eff}.el-badge__content--success{background-color:#67c23a}.el-badge__content--warning{background-color:#e6a23c}.el-badge__content--info{background-color:#909399}.el-badge__content--danger{background-color:#f56c6c}.el-card{border:1px solid #ebeef5;background-color:#fff;color:#303133;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #ebeef5;box-sizing:border-box}.el-card__body{padding:20px}.el-rate{height:20px;line-height:1}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon{font-size:18px;margin-right:6px;color:#c0c4cc;transition:.3s}.el-rate__decimal,.el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate__icon.hover{transform:scale(1.15)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-step.is-vertical,.el-steps{display:-ms-flexbox}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:#f5f7fa}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;flex-flow:column}.el-step{position:relative;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-shrink:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:#303133;border-color:#303133}.el-step__head.is-wait{color:#c0c4cc;border-color:#c0c4cc}.el-step__head.is-success{color:#67c23a;border-color:#67c23a}.el-step__head.is-error{color:#f56c6c;border-color:#f56c6c}.el-step__head.is-finish{color:#409eff;border-color:#409eff}.el-step__icon{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:#fff;transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:#c0c4cc}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:#303133}.el-step__title.is-wait{color:#c0c4cc}.el-step__title.is-success{color:#67c23a}.el-step__title.is-error{color:#f56c6c}.el-step__title.is-finish{color:#409eff}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#c0c4cc}.el-step__description.is-success{color:#67c23a}.el-step__description.is-error{color:#f56c6c}.el-step__description.is-finish{color:#409eff}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:flex;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:flex;align-items:stretch;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{flex-grow:1;display:flex;align-items:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:#c0c4cc}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:36px;width:36px;cursor:pointer;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:2}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#c0c4cc;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:12px 4px}.el-carousel__indicator--vertical{padding:4px 12px}.el-carousel__indicator--vertical .el-carousel__button{width:2px;height:15px}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;transition:.3s}.el-carousel__item,.el-carousel__mask{height:100%;top:0;left:0;position:absolute}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{transform:translateY(-50%) translateX(10px);opacity:0}.el-carousel__item{width:100%;display:inline-block;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item--card,.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{width:100%;background-color:#fff;opacity:.24;transition:.2s}.el-fade-in-enter,.el-fade-in-leave-active,.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active,.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active,.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:opacity .2s linear}.el-fade-in-enter-active,.el-fade-in-leave-active,.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out}.horizontal-collapse-transition{transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;transform:translateY(-30px)}.el-opacity-transition{transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #ebeef5;border-bottom:1px solid #ebeef5}.el-collapse-item.is-disabled .el-collapse-item__header{color:#bbb;cursor:not-allowed}.el-collapse-item__header{display:flex;align-items:center;height:48px;line-height:48px;background-color:#fff;color:#303133;cursor:pointer;border-bottom:1px solid #ebeef5;font-size:13px;font-weight:500;transition:border-bottom-color .3s;outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:transform .3s;font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#409eff}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:#fff;overflow:hidden;box-sizing:border-box;border-bottom:1px solid #ebeef5}.el-cascader__tags,.el-tag{-webkit-box-sizing:border-box}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.769230769230769}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper .popper__arrow,.el-popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;filter:drop-shadow(0 2px 12px rgba(0,0,0,.03))}.el-popper .popper__arrow:after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#ebeef5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#ebeef5}.el-popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#ebeef5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow:after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#ebeef5}.el-popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-tag{background-color:#ecf5ff;border-color:#d9ecff;display:inline-block;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#409eff;border-width:1px;border-style:solid;border-radius:4px;box-sizing:border-box;white-space:nowrap}.el-tag.is-hit{border-color:#409eff}.el-tag .el-tag__close{color:#409eff}.el-tag .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag.el-tag--success{background-color:#f0f9eb;border-color:#e1f3d8;color:#67c23a}.el-tag.el-tag--success.is-hit{border-color:#67c23a}.el-tag.el-tag--success .el-tag__close{color:#67c23a}.el-tag.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag.el-tag--warning{background-color:#fdf6ec;border-color:#faecd8;color:#e6a23c}.el-tag.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag.el-tag--danger{background-color:#fef0f0;border-color:#fde2e2;color:#f56c6c}.el-tag.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close:before{display:block}.el-tag--dark{background-color:#409eff;color:#fff}.el-tag--dark,.el-tag--dark.is-hit{border-color:#409eff}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#fff;background-color:#66b1ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#fff;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#67c23a;border-color:#67c23a;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#67c23a}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#fff;background-color:#85ce61}.el-tag--dark.el-tag--warning{background-color:#e6a23c;border-color:#e6a23c;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ebb563}.el-tag--dark.el-tag--danger{background-color:#f56c6c;border-color:#f56c6c;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f78989}.el-tag--plain{background-color:#fff;border-color:#b3d8ff;color:#409eff}.el-tag--plain.is-hit{border-color:#409eff}.el-tag--plain .el-tag__close{color:#409eff}.el-tag--plain .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#c2e7b0;color:#67c23a}.el-tag--plain.el-tag--success.is-hit{border-color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close{color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#f5dab1;color:#e6a23c}.el-tag--plain.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#fbc4c4;color:#f56c6c}.el-tag--plain.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;transform:scale(.7)}.el-cascader{display:inline-block;position:relative;font-size:14px;line-height:40px}.el-cascader:not(.is-disabled):hover .el-input__inner{cursor:pointer;border-color:#c0c4cc}.el-cascader .el-input .el-input__inner:focus,.el-cascader .el-input.is-focus .el-input__inner{border-color:#409eff}.el-cascader .el-input{cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-icon-arrow-down{transition:transform .3s;font-size:14px}.el-cascader .el-input .el-icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .el-icon-circle-close:hover{color:#909399}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{z-index:2;color:#c0c4cc}.el-cascader__dropdown{margin:5px 0;font-size:14px;background:#fff;border:1px solid #e4e7ed;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;transform:translateY(-50%);display:flex;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:#f0f2f5}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{flex:none;background-color:#c0c4cc;color:#fff}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:#909399}.el-cascader__suggestion-panel{border-radius:4px}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:14px;color:#606266;text-align:center}.el-cascader__suggestion-item{display:flex;justify-content:space-between;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:#f5f7fa}.el-cascader__suggestion-item.is-checked{color:#409eff;font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:#c0c4cc}.el-cascader__search-input{flex:1;height:24px;min-width:60px;margin:2px 0 2px 15px;padding:0;color:#606266;border:none;outline:0;box-sizing:border-box}.el-cascader__search-input:-ms-input-placeholder{color:#c0c4cc}.el-cascader__search-input::-moz-placeholder{color:#c0c4cc}.el-cascader__search-input::placeholder{color:#c0c4cc}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px #409eff}.el-color-predefine__color-selector>div{display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px}.el-color-hue-slider__bar{position:relative;background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.el-color-svpanel__black{background:linear-gradient(0deg,#000,transparent)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#fff);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#409eff;border-color:#409eff}.el-color-dropdown__link-btn{cursor:pointer;color:#409eff;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:tint(#409eff,20%)}.el-color-picker{display:inline-block;position:relative;line-height:normal;height:40px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker__mask{height:38px;width:38px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:hsla(0,0%,100%,.7)}.el-color-picker__trigger{display:inline-block;box-sizing:border-box;height:40px;width:40px;padding:4px;border:1px solid #e6e6e6;border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty,.el-color-picker__icon{top:50%;left:50%;font-size:12px;position:absolute}.el-color-picker__empty{color:#999;transform:translate3d(-50%,-50%,0)}.el-color-picker__icon{display:inline-block;width:100%;transform:translate3d(-50%,-50%,0);color:#fff;text-align:center}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;box-sizing:content-box;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;color:#606266;background-color:#fff;background-image:none;border:1px solid #dcdfe6;border-radius:4px;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea__inner:hover{border-color:#c0c4cc}.el-textarea__inner:focus{outline:0;border-color:#409eff}.el-textarea .el-input__count{color:#909399;background:#fff;position:absolute;font-size:12px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea.is-exceed .el-textarea__inner{border-color:#f56c6c}.el-textarea.is-exceed .el-input__count{color:#f56c6c}.el-input{position:relative;font-size:14px;display:inline-block;width:100%}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#c0c4cc;font-size:14px;cursor:pointer;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:#909399;font-size:12px}.el-input .el-input__count .el-input__count-inner{background:#fff;line-height:normal;display:inline-block;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:0;padding:0 15px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__prefix,.el-input__suffix{position:absolute;top:0;-webkit-transition:all .3s;height:100%;color:#c0c4cc;text-align:center}.el-input__inner::-ms-reveal{display:none}.el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input__inner::placeholder{color:#c0c4cc}.el-input__inner:hover{border-color:#c0c4cc}.el-input.is-active .el-input__inner,.el-input__inner:focus{border-color:#409eff;outline:0}.el-input__suffix{right:5px;transition:all .3s}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{left:5px;transition:all .3s}.el-input__icon{height:100%;width:25px;text-align:center;transition:all .3s;line-height:40px}.el-input__icon:after{content:"";height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-link,.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-input.is-exceed .el-input__inner{border-color:#f56c6c}.el-input.is-exceed .el-input__suffix .el-input__count{color:#f56c6c}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#f5f7fa;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #dcdfe6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner,.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-transfer{font-size:14px}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{display:block;margin:0 auto;padding:10px;border-radius:50%;color:#fff;background-color:#409eff;font-size:0}.el-transfer-panel__item+.el-transfer-panel__item,.el-transfer__button [class*=el-icon-]+span{margin-left:0}.el-transfer__button.is-with-texts{border-radius:4px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{border:1px solid #dcdfe6;background-color:#f5f7fa;color:#c0c4cc}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer-panel{border:1px solid #ebeef5;border-radius:4px;overflow:hidden;background:#fff;display:inline-block;vertical-align:middle;width:200px;max-height:100%;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:246px;overflow:auto;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{height:30px;line-height:30px;padding-left:15px;display:block!important}.el-transfer-panel__item.el-checkbox{color:#606266}.el-transfer-panel__item:hover{color:#409eff}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:24px;line-height:30px}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;box-sizing:border-box;display:block;width:auto}.el-transfer-panel__filter .el-input__inner{height:32px;width:100%;font-size:12px;display:inline-block;box-sizing:border-box;border-radius:16px;padding-right:10px;padding-left:30px}.el-transfer-panel__filter .el-input__icon{margin-left:5px}.el-transfer-panel .el-transfer-panel__header{height:40px;line-height:40px;background:#f5f7fa;margin:0;padding-left:15px;border-bottom:1px solid #ebeef5;box-sizing:border-box;color:#000}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:#303133;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;color:#909399;font-size:12px;font-weight:400}.el-divider__text,.el-link{font-weight:500;font-size:14px}.el-transfer-panel .el-transfer-panel__footer{height:40px;background:#fff;margin:0;padding:0;border-top:1px solid #ebeef5;position:absolute;bottom:0;left:0;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-container,.el-timeline-item__node{display:-ms-flexbox}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:#606266}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:30px;line-height:30px;padding:6px 15px 0;color:#909399;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.el-aside,.el-header{-webkit-box-sizing:border-box}.el-container.is-vertical{flex-direction:column}.el-header{padding:0 20px}.el-aside,.el-header{box-sizing:border-box;flex-shrink:0}.el-aside{overflow:auto}.el-footer,.el-main{-webkit-box-sizing:border-box}.el-main{display:block;flex:1;flex-basis:auto;overflow:auto;padding:20px}.el-footer,.el-main{box-sizing:border-box}.el-footer{padding:0 20px;flex-shrink:0}.el-timeline{margin:0;font-size:14px;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid #e4e7ed}.el-timeline-item__icon{color:#fff;font-size:13px}.el-timeline-item__node{position:absolute;background-color:#e4e7ed;border-radius:50%;display:flex;justify-content:center;align-items:center}.el-image__error,.el-timeline-item__dot{display:-ms-flexbox}.el-timeline-item__node--normal{left:-1px;width:12px;height:12px}.el-timeline-item__node--large{left:-2px;width:14px;height:14px}.el-timeline-item__node--primary{background-color:#409eff}.el-timeline-item__node--success{background-color:#67c23a}.el-timeline-item__node--warning{background-color:#e6a23c}.el-timeline-item__node--danger{background-color:#f56c6c}.el-timeline-item__node--info{background-color:#909399}.el-timeline-item__dot{position:absolute;display:flex;justify-content:center;align-items:center}.el-timeline-item__content{color:#303133}.el-timeline-item__timestamp{color:#909399;line-height:1;font-size:13px}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-link{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;padding:0}.el-drawer,.el-empty,.el-result{-webkit-box-orient:vertical}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid #409eff}.el-link.el-link--default:after,.el-link.el-link--primary.is-underline:hover:after,.el-link.el-link--primary:after{border-color:#409eff}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default{color:#606266}.el-link.el-link--default:hover{color:#409eff}.el-link.el-link--default.is-disabled{color:#c0c4cc}.el-link.el-link--primary{color:#409eff}.el-link.el-link--primary:hover{color:#66b1ff}.el-link.el-link--primary.is-disabled{color:#a0cfff}.el-link.el-link--danger.is-underline:hover:after,.el-link.el-link--danger:after{border-color:#f56c6c}.el-link.el-link--danger{color:#f56c6c}.el-link.el-link--danger:hover{color:#f78989}.el-link.el-link--danger.is-disabled{color:#fab6b6}.el-link.el-link--success.is-underline:hover:after,.el-link.el-link--success:after{border-color:#67c23a}.el-link.el-link--success{color:#67c23a}.el-link.el-link--success:hover{color:#85ce61}.el-link.el-link--success.is-disabled{color:#b3e19d}.el-link.el-link--warning.is-underline:hover:after,.el-link.el-link--warning:after{border-color:#e6a23c}.el-link.el-link--warning{color:#e6a23c}.el-link.el-link--warning:hover{color:#ebb563}.el-link.el-link--warning.is-disabled{color:#f3d19e}.el-link.el-link--info.is-underline:hover:after,.el-link.el-link--info:after{border-color:#909399}.el-link.el-link--info{color:#909399}.el-link.el-link--info:hover{color:#a6a9ad}.el-link.el-link--info.is-disabled{color:#c8c9cc}.el-divider{background-color:#dcdfe6;position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative}.el-divider__text{position:absolute;background-color:#fff;padding:0 20px;color:#303133}.el-image__error,.el-image__placeholder{background:#f5f7fa}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-image__error,.el-image__inner,.el-image__placeholder{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top}.el-image__inner--center{position:relative;top:50%;left:50%;transform:translate(-50%,-50%);display:block}.el-image__error{display:flex;justify-content:center;align-items:center;font-size:14px;color:#c0c4cc;vertical-align:middle}.el-image__preview{cursor:pointer}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;box-sizing:border-box;user-select:none}.el-button,.el-checkbox,.el-image-viewer__btn{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:24px;color:#fff;background-color:#606266}.el-image-viewer__canvas{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.el-image-viewer__actions{left:50%;bottom:30px;transform:translateX(-50%);width:282px;height:44px;padding:0 23px;background-color:#606266;border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:flex;align-items:center;justify-content:space-around}.el-image-viewer__next,.el-image-viewer__prev{top:50%;width:44px;height:44px;font-size:24px;color:#fff;background-color:#606266;border-color:#fff}.el-image-viewer__prev{transform:translateY(-50%);left:40px}.el-image-viewer__next{transform:translateY(-50%);right:40px;text-indent:2px}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in .3s;animation:viewer-fade-in .3s}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out .3s;animation:viewer-fade-out .3s}@-webkit-keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;transition:.1s;font-weight:500;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button{margin-left:10px}.el-button:focus,.el-button:hover{color:#409eff;border-color:#c6e2ff;background-color:#ecf5ff}.el-button:active{color:#3a8ee6;border-color:#3a8ee6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#409eff;color:#409eff}.el-button.is-active,.el-button.is-plain:active{color:#3a8ee6;border-color:#3a8ee6}.el-button.is-plain:active{background:#fff;outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#ebeef5;color:#c0c4cc}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:hsla(0,0%,100%,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#fff;background-color:#409eff;border-color:#409eff}.el-button--primary:focus,.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff;color:#fff}.el-button--primary.is-active,.el-button--primary:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff}.el-button--primary:active{outline:0}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#fff;background-color:#a0cfff;border-color:#a0cfff}.el-button--primary.is-plain{color:#409eff;background:#ecf5ff;border-color:#b3d8ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#409eff;border-color:#409eff;color:#fff}.el-button--primary.is-plain:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff;outline:0}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#8cc5ff;background-color:#ecf5ff;border-color:#d9ecff}.el-button--success{color:#fff;background-color:#67c23a;border-color:#67c23a}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#fff}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#fff}.el-button--success:active{outline:0}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#fff;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67c23a;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67c23a;border-color:#67c23a;color:#fff}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#fff;outline:0}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#fff;background-color:#e6a23c;border-color:#e6a23c}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#fff}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#fff}.el-button--warning:active{outline:0}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#fff;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#e6a23c;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#e6a23c;border-color:#e6a23c;color:#fff}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#fff;outline:0}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#fff}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#fff}.el-button--danger:active{outline:0}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#fff;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#f56c6c;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#f56c6c;border-color:#f56c6c;color:#fff}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#fff;outline:0}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#fff;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#fff}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#fff}.el-button--info:active{outline:0}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#fff;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#fff}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#fff;outline:0}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--text,.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--mini,.el-button--small{font-size:12px;border-radius:3px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small,.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini,.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{color:#409eff;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#66b1ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#3a8ee6;background-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button.is-disabled{z-index:1}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button.is-active,.el-button-group>.el-button:not(.is-disabled):active,.el-button-group>.el-button:not(.is-disabled):focus,.el-button-group>.el-button:not(.is-disabled):hover{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-calendar{background-color:#fff}.el-calendar__header{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #ebeef5}.el-backtop,.el-page-header{display:-ms-flexbox}.el-calendar__title{color:#000;align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:#606266;font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:#c0c4cc}.el-backtop,.el-calendar-table td.is-today{color:#409eff}.el-calendar-table td{border-bottom:1px solid #ebeef5;border-right:1px solid #ebeef5;vertical-align:top;transition:background-color .2s ease}.el-calendar-table td.is-selected{background-color:#f2f8fe}.el-calendar-table tr:first-child td{border-top:1px solid #ebeef5}.el-calendar-table tr td:first-child{border-left:1px solid #ebeef5}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;padding:8px;height:85px}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:#f2f8fe}.el-backtop{position:fixed;background-color:#fff;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 0 6px rgba(0,0,0,.12);cursor:pointer;z-index:5}.el-backtop:hover{background-color:#f2f6fc}.el-page-header{display:flex;line-height:24px}.el-page-header__left{display:flex;cursor:pointer;margin-right:40px;position:relative}.el-page-header__left:after{content:"";position:absolute;width:1px;height:16px;right:-20px;top:50%;transform:translateY(-50%);background-color:#dcdfe6}.el-checkbox,.el-checkbox__input{display:inline-block;position:relative;white-space:nowrap}.el-page-header__left .el-icon-back{font-size:18px;margin-right:6px;align-self:center}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:#303133}.el-checkbox{color:#606266;font-weight:500;font-size:14px;cursor:pointer;user-select:none;margin-right:30px}.el-checkbox,.el-checkbox-button__inner,.el-empty__image img,.el-radio{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409eff}.el-checkbox.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox__input{cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dcdfe6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:#c0c4cc}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:#c0c4cc}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:#c0c4cc;border-color:#c0c4cc}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#409eff;border-color:#409eff}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#c0c4cc;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#409eff}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#409eff}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:#fff;height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #dcdfe6;border-radius:2px;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#409eff}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in .05s;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox-button,.el-checkbox-button__inner{display:inline-block;position:relative}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button__inner{line-height:1;font-weight:500;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#409eff}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-radio,.el-radio__input{line-height:1;white-space:nowrap;outline:0}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-radio,.el-radio__inner,.el-radio__input{position:relative;display:inline-block}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;box-shadow:-1px 0 0 0 #8cc5ff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#409eff}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#ebeef5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#409eff}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-radio,.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.el-radio{color:#606266;font-weight:500;cursor:pointer;margin-right:30px}.el-cascader-node>.el-radio,.el-radio:last-child{margin-right:0}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;height:40px}.el-radio.is-bordered.is-checked{border-color:#409eff}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#ebeef5}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--mini.is-bordered .el-radio__label,.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio__input{cursor:pointer;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:#f5f7fa}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:#c0c4cc}.el-radio__input.is-disabled+span.el-radio__label{color:#c0c4cc;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#409eff;background:#409eff}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#409eff}.el-radio__input.is-focus .el-radio__inner{border-color:#409eff}.el-radio__inner{border:1px solid #dcdfe6;border-radius:100%;width:14px;height:14px;background-color:#fff;cursor:pointer;box-sizing:border-box}.el-radio__inner:hover{border-color:#409eff}.el-radio__inner:after{width:4px;height:4px;border-radius:100%;background-color:#fff;content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px #409eff}.el-radio__label{font-size:14px;padding-left:10px}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;transition:opacity .34s ease-out}.el-scrollbar__wrap{overflow:scroll;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);transition:background-color .3s}.el-scrollbar__thumb:hover{background-color:rgba(144,147,153,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;transition:opacity .12s ease-out}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-cascader-panel{display:flex;border-radius:4px;font-size:14px}.el-cascader-panel.is-bordered{border:1px solid #e4e7ed;border-radius:4px}.el-cascader-menu{min-width:180px;box-sizing:border-box;color:#606266;border-right:1px solid #e4e7ed}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;box-sizing:border-box}.el-avatar,.el-drawer{-webkit-box-sizing:border-box;overflow:hidden}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#c0c4cc}.el-cascader-node{position:relative;display:flex;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.el-cascader-node.is-selectable.in-active-path{color:#606266}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:#409eff;font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:#f5f7fa}.el-cascader-node.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{flex:1;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-avatar{display:inline-block;box-sizing:border-box;text-align:center;color:#fff;background:#c0c4cc;width:40px;height:40px;line-height:40px;font-size:14px}.el-avatar>img{display:block;height:100%;vertical-align:middle}.el-drawer,.el-drawer__header{display:-ms-flexbox}.el-empty__image img,.el-empty__image svg{vertical-align:top;height:100%;width:100%}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:4px}.el-avatar--icon{font-size:18px}.el-avatar--large{width:40px;height:40px;line-height:40px}.el-avatar--medium{width:36px;height:36px;line-height:36px}.el-avatar--small{width:28px;height:28px;line-height:28px}.el-drawer.ltr,.el-drawer.rtl,.el-drawer__container{top:0;bottom:0;height:100%}@-webkit-keyframes el-drawer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes el-drawer-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes rtl-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rtl-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@-webkit-keyframes rtl-drawer-out{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes rtl-drawer-out{0%{transform:translate(0)}to{transform:translate(100%)}}@-webkit-keyframes ltr-drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes ltr-drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}@-webkit-keyframes ltr-drawer-out{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes ltr-drawer-out{0%{transform:translate(0)}to{transform:translate(-100%)}}@-webkit-keyframes ttb-drawer-in{0%{transform:translateY(-100%)}to{transform:translate(0)}}@keyframes ttb-drawer-in{0%{transform:translateY(-100%)}to{transform:translate(0)}}@-webkit-keyframes ttb-drawer-out{0%{transform:translate(0)}to{transform:translateY(-100%)}}@keyframes ttb-drawer-out{0%{transform:translate(0)}to{transform:translateY(-100%)}}@-webkit-keyframes btt-drawer-in{0%{transform:translateY(100%)}to{transform:translate(0)}}@keyframes btt-drawer-in{0%{transform:translateY(100%)}to{transform:translate(0)}}@-webkit-keyframes btt-drawer-out{0%{transform:translate(0)}to{transform:translateY(100%)}}@keyframes btt-drawer-out{0%{transform:translate(0)}to{transform:translateY(100%)}}.el-drawer{position:absolute;box-sizing:border-box;background-color:#fff;display:flex;flex-direction:column;box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);outline:0}.el-drawer__body>*,.el-empty{-webkit-box-sizing:border-box}.el-drawer.rtl{-webkit-animation:rtl-drawer-out .3s;animation:rtl-drawer-out .3s;right:0}.el-drawer__open .el-drawer.rtl{-webkit-animation:rtl-drawer-in .3s 1ms;animation:rtl-drawer-in .3s 1ms}.el-drawer.ltr{-webkit-animation:ltr-drawer-out .3s;animation:ltr-drawer-out .3s;left:0}.el-drawer__open .el-drawer.ltr{-webkit-animation:ltr-drawer-in .3s 1ms;animation:ltr-drawer-in .3s 1ms}.el-drawer.ttb{-webkit-animation:ttb-drawer-out .3s;animation:ttb-drawer-out .3s;top:0}.el-drawer__open .el-drawer.ttb{-webkit-animation:ttb-drawer-in .3s 1ms;animation:ttb-drawer-in .3s 1ms}.el-drawer.btt{-webkit-animation:btt-drawer-out .3s;animation:btt-drawer-out .3s;bottom:0}.el-drawer__open .el-drawer.btt{-webkit-animation:btt-drawer-in .3s 1ms;animation:btt-drawer-in .3s 1ms}.el-drawer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0}.el-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:20px 20px 0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{margin:0;flex:1;line-height:inherit;font-size:1rem}.el-drawer__close-btn{border:none;cursor:pointer;font-size:20px;color:inherit;background-color:transparent}.el-drawer__body{flex:1;overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.btt,.el-drawer.ttb,.el-drawer__container{width:100%;left:0;right:0}.el-drawer__container{position:relative}.el-drawer-fade-enter-active{-webkit-animation:el-drawer-fade-in .3s;animation:el-drawer-fade-in .3s}.el-drawer-fade-leave-active{animation:el-drawer-fade-in .3s reverse}.el-popconfirm__main{display:flex;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin:0}@-webkit-keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{height:16px;margin-top:16px;background:#f2f2f2}.el-skeleton.is-animated .el-skeleton__item{background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);background-size:400% 100%;-webkit-animation:el-skeleton-loading 1.4s ease infinite;animation:el-skeleton-loading 1.4s ease infinite}.el-skeleton__item{background:#f2f2f2;display:inline-block;height:16px;border-radius:4px;width:100%}.el-empty,.el-skeleton__image{display:-ms-flexbox}.el-skeleton__circle{border-radius:50%;width:36px;height:36px;line-height:36px}.el-skeleton__circle--lg{width:40px;height:40px;line-height:40px}.el-skeleton__circle--md{width:28px;height:28px;line-height:28px}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:13px}.el-skeleton__caption{height:12px}.el-skeleton__h1{height:20px}.el-skeleton__h3{height:18px}.el-skeleton__h5{height:16px}.el-skeleton__image{width:unset;display:flex;align-items:center;justify-content:center;border-radius:0}.el-skeleton__image svg{fill:#dcdde0;width:22%;height:22%}.el-empty{display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:40px 0}.el-empty__image{width:160px}.el-empty__image img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-o-object-fit:contain;object-fit:contain}.el-empty__image svg{fill:#dcdde0}.el-empty__description{margin-top:20px}.el-empty__description p{margin:0;font-size:14px;color:#909399}.el-empty__bottom,.el-result__title{margin-top:20px}.el-descriptions{box-sizing:border-box;font-size:14px;color:#303133}.el-descriptions__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.el-descriptions__title{font-size:16px;font-weight:700}.el-descriptions--mini,.el-descriptions--small{font-size:12px}.el-descriptions__body{color:#606266;background-color:#fff}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%;table-layout:fixed}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell{box-sizing:border-box;text-align:left;font-weight:400;line-height:1.5}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-right{text-align:right}.el-descriptions .is-bordered{table-layout:auto}.el-descriptions .is-bordered .el-descriptions-item__cell{border:1px solid #ebeef5;padding:12px 10px}.el-descriptions :not(.is-bordered) .el-descriptions-item__cell{padding-bottom:12px}.el-descriptions--medium.is-bordered .el-descriptions-item__cell{padding:10px}.el-descriptions--medium:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:10px}.el-descriptions--small.is-bordered .el-descriptions-item__cell{padding:8px 10px}.el-descriptions--small:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:8px}.el-descriptions--mini.is-bordered .el-descriptions-item__cell{padding:6px 10px}.el-descriptions--mini:not(.is-bordered) .el-descriptions-item__cell{padding-bottom:6px}.el-descriptions-item__container{display:flex}.el-descriptions-item__label.has-colon:after{content:":";position:relative;top:-.5px}.el-descriptions-item__label.is-bordered-label{font-weight:700;color:#909399;background:#fafafa}.el-descriptions-item__label:not(.is-bordered-label){margin-right:10px}.el-result{display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:40px 30px}.el-result__icon svg{width:64px;height:64px}.el-result__title p{margin:0;font-size:20px;color:#303133;line-height:1.3}.el-result__subtitle{margin-top:10px}.el-result__subtitle p{margin:0;font-size:14px;color:#606266;line-height:1.3}.el-result__extra{margin-top:30px}.el-result .icon-success{fill:#67c23a}.el-result .icon-error{fill:#f56c6c}.el-result .icon-info{fill:#909399}.el-result .icon-warning{fill:#e6a23c} \ No newline at end of file diff --git a/resource/page/fonts/element-icons.535877f5.woff b/resource/page/fonts/element-icons.535877f5.woff deleted file mode 100644 index 02b9a25..0000000 Binary files a/resource/page/fonts/element-icons.535877f5.woff and /dev/null differ diff --git a/resource/page/fonts/element-icons.732389de.ttf b/resource/page/fonts/element-icons.732389de.ttf deleted file mode 100644 index 91b74de..0000000 Binary files a/resource/page/fonts/element-icons.732389de.ttf and /dev/null differ diff --git a/resource/page/index.html b/resource/page/index.html deleted file mode 100644 index a193235..0000000 --- a/resource/page/index.html +++ /dev/null @@ -1 +0,0 @@ -variant-form
\ No newline at end of file diff --git a/resource/page/js/app.9fe02340.js b/resource/page/js/app.9fe02340.js deleted file mode 100644 index 6d3e3c6..0000000 --- a/resource/page/js/app.9fe02340.js +++ /dev/null @@ -1 +0,0 @@ -(function(e){function t(t){for(var n,s,a=t[0],r=t[1],d=t[2],u=0,f=[];u=this.colLength-1||e>this.colLength-1||this.colArray[e].options.rowspan!==this.widget.options.rowspan},mergeWholeRowDisabled:function(){return this.colLength<=1||this.colLength===this.widget.options.colspan},mergeAboveRowDisabled:function(){return this.rowIndex<=0||this.rowArray[this.rowIndex-1].cols[this.colIndex].options.colspan!==this.widget.options.colspan},mergeBelowRowDisabled:function(){var e=this.rowIndex+this.widget.options.rowspan;return this.rowIndex>=this.rowLength-1||e>this.rowLength-1||this.rowArray[e].cols[this.colIndex].options.colspan!==this.widget.options.colspan},mergeWholeColDisabled:function(){return this.rowLength<=1||this.rowLength===this.widget.options.rowspan},undoMergeColDisabled:function(){return this.widget.merged||this.widget.options.colspan<=1},undoMergeRowDisabled:function(){return this.widget.merged||this.widget.options.rowspan<=1},deleteWholeColDisabled:function(){return 1===this.colLength||this.widget.options.colspan===this.colLength},deleteWholeRowDisabled:function(){return 1===this.rowLength||this.widget.options.rowspan===this.rowLength}},watch:{},created:function(){this.initRefList()},methods:{selectWidget:function(e){this.designer.setSelected(e)},checkContainerMove:function(e){return this.designer.checkWidgetMove(e)},onTableDragEnd:function(e,t){},onTableDragAdd:function(e,t){var i=e.newIndex;t[i]&&this.designer.setSelected(t[i]),this.designer.emitHistoryChange(),this.designer.emitEvent("field-selected",this.widget)},onTableDragUpdate:function(){this.designer.emitHistoryChange()},selectParentWidget:function(){this.parentWidget?this.designer.setSelected(this.parentWidget):this.designer.clearSelected()},handleTableCellCommand:function(e){"insertLeftCol"===e?this.insertLeftCol():"insertRightCol"===e?this.insertRightCol():"insertAboveRow"===e?this.insertAboveRow():"insertBelowRow"===e?this.insertBelowRow():"mergeLeftCol"===e?this.mergeLeftCol():"mergeRightCol"===e?this.mergeRightCol():"mergeWholeCol"===e?this.mergeWholeCol():"mergeAboveRow"===e?this.mergeAboveRow():"mergeBelowRow"===e?this.mergeBelowRow():"mergeWholeRow"===e?this.mergeWholeRow():"undoMergeCol"===e?this.undoMergeCol():"undoMergeRow"===e?this.undoMergeRow():"deleteWholeCol"===e?this.deleteWholeCol():"deleteWholeRow"===e&&this.deleteWholeRow()},insertLeftCol:function(){this.designer.insertTableCol(this.parentWidget,this.colIndex,this.rowIndex,!0)},insertRightCol:function(){this.designer.insertTableCol(this.parentWidget,this.colIndex,this.rowIndex,!1)},insertAboveRow:function(){this.designer.insertTableRow(this.parentWidget,this.rowIndex,this.rowIndex,this.colIndex,!0)},insertBelowRow:function(){this.designer.insertTableRow(this.parentWidget,this.rowIndex,this.rowIndex,this.colIndex,!1)},mergeLeftCol:function(){this.designer.mergeTableCol(this.rowArray,this.colArray,this.rowIndex,this.colIndex,!0,this.widget)},mergeRightCol:function(){this.designer.mergeTableCol(this.rowArray,this.colArray,this.rowIndex,this.colIndex,!1,this.widget)},mergeWholeRow:function(){this.designer.mergeTableWholeRow(this.rowArray,this.colArray,this.rowIndex,this.colIndex)},mergeAboveRow:function(){this.designer.mergeTableRow(this.rowArray,this.rowIndex,this.colIndex,!0,this.widget)},mergeBelowRow:function(){this.designer.mergeTableRow(this.rowArray,this.rowIndex,this.colIndex,!1,this.widget)},mergeWholeCol:function(){this.designer.mergeTableWholeCol(this.rowArray,this.colArray,this.rowIndex,this.colIndex)},undoMergeCol:function(){this.designer.undoMergeTableCol(this.rowArray,this.rowIndex,this.colIndex,this.widget.options.colspan,this.widget.options.rowspan)},undoMergeRow:function(){this.designer.undoMergeTableRow(this.rowArray,this.rowIndex,this.colIndex,this.widget.options.colspan,this.widget.options.rowspan)},deleteWholeCol:function(){this.designer.deleteTableWholeCol(this.rowArray,this.colIndex)},deleteWholeRow:function(){this.designer.deleteTableWholeRow(this.rowArray,this.rowIndex)}}},f=u,p=(i("6e5c"),i("2877")),m=Object(p["a"])(f,n,o,!1,null,"5f7bc992",null);t["default"]=m.exports},"15c6":function(e,t,i){"use strict";i.r(t);var n=i("e017"),o=i.n(n),l=i("21a1"),s=i.n(l),a=new o.a({id:"icon-picture-upload-field",use:"icon-picture-upload-field-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(a);t["default"]=a},"16f3":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.prefixIcon")}},[i("el-input",{attrs:{type:"text"},model:{value:e.optionModel.prefixIcon,callback:function(t){e.$set(e.optionModel,"prefixIcon",t)},expression:"optionModel.prefixIcon"}})],1)},o=[],l=i("79fa"),s={name:"prefixIcon-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"28d62b7a",null);t["default"]=d.exports},1795:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.inactiveColor")}},[i("el-color-picker",{model:{value:e.optionModel.inactiveColor,callback:function(t){e.$set(e.optionModel,"inactiveColor",t)},expression:"optionModel.inactiveColor"}})],1)},o=[],l=i("79fa"),s={name:"inactiveColor-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"03b49a61",null);t["default"]=d.exports},"17f0":function(e,t,i){},1895:function(e,t,i){"use strict";i.r(t);var n=i("e017"),o=i.n(n),l=i("21a1"),s=i.n(l),a=new o.a({id:"icon-switch-field",use:"icon-switch-field-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(a);t["default"]=a},"18ba":function(e,t,i){"use strict";i.r(t);var n=i("e017"),o=i.n(n),l=i("21a1"),s=i.n(l),a=new o.a({id:"icon-redo",use:"icon-redo-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(a);t["default"]=a},1973:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:"onSubFormRowChange","label-width":"150px"}},[i("el-button",{attrs:{type:"info",icon:"el-icon-edit",plain:"",round:""},on:{click:function(t){return e.editEventHandler("onSubFormRowChange",e.eventParams)}}},[e._v(" "+e._s(e.i18nt("designer.setting.addEventHandler")))])],1)},o=[],l=i("79fa"),s=i("7d6c"),a={name:"onSubFormRowChange-editor",mixins:[l["b"],s["a"]],props:{designer:Object,selectedWidget:Object,optionModel:Object},data:function(){return{eventParams:["subFormData"]}}},r=a,d=i("2877"),c=Object(d["a"])(r,n,o,!1,null,"7109dd9a",null);t["default"]=c.exports},"19fd":function(e,t,i){"use strict";i("554e")},"1bdc":function(e,t,i){},"1d42":function(e,t,i){"use strict";i.r(t);var n=i("e017"),o=i.n(n),l=i("21a1"),s=i.n(l),a=new o.a({id:"icon-time-field",use:"icon-time-field-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(a);t["default"]=a},"1e67":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.clearable")}},[i("el-switch",{model:{value:e.optionModel.clearable,callback:function(t){e.$set(e.optionModel,"clearable",t)},expression:"optionModel.clearable"}})],1)},o=[],l=i("79fa"),s={name:"clearable-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"5534f7e5",null);t["default"]=d.exports},"20c0":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("form-item-wrapper",{attrs:{designer:e.designer,field:e.field,rules:e.rules,"design-state":e.designState,"parent-widget":e.parentWidget,"parent-list":e.parentList,"index-of-parent-list":e.indexOfParentList,"sub-form-row-index":e.subFormRowIndex,"sub-form-col-index":e.subFormColIndex,"sub-form-row-id":e.subFormRowId}},[i("el-time-picker",{ref:"fieldEditor",staticClass:"full-width-input",attrs:{disabled:e.field.options.disabled,readonly:e.field.options.readonly,size:e.field.options.size,clearable:e.field.options.clearable,editable:e.field.options.editable,format:e.field.options.format,"value-format":"HH:mm:ss",placeholder:e.field.options.placeholder||e.i18nt("render.hint.timePlaceholder")},on:{focus:e.handleFocusCustomEvent,blur:e.handleBlurCustomEvent,change:e.handleChangeEvent},model:{value:e.fieldModel,callback:function(t){e.fieldModel=t},expression:"fieldModel"}})],1)},o=[],l=(i("a9e3"),i("9eeb")),s=i("c6e3"),a=i("79fa"),r=i("2d11"),d={name:"time-widget",componentName:"FieldWidget",mixins:[s["a"],r["a"],a["b"]],props:{field:Object,parentWidget:Object,parentList:Array,indexOfParentList:Number,designer:Object,designState:{type:Boolean,default:!1},subFormRowIndex:{type:Number,default:-1},subFormColIndex:{type:Number,default:-1},subFormRowId:{type:String,default:""}},components:{FormItemWrapper:l["default"]},inject:["refList","formConfig","globalOptionData","globalModel"],data:function(){return{oldFieldValue:null,fieldModel:null,rules:[]}},computed:{},beforeCreate:function(){},created:function(){this.initFieldModel(),this.registerToRefList(),this.initEventHandler(),this.buildFieldRules(),this.handleOnCreated()},mounted:function(){this.handleOnMounted()},beforeDestroy:function(){this.unregisterFromRefList()},methods:{}},c=d,u=(i("9ebd"),i("2877")),f=Object(u["a"])(c,n,o,!1,null,"0761446e",null);t["default"]=f.exports},"20e0":function(e,t,i){"use strict";i.r(t);var n=i("e017"),o=i.n(n),l=i("21a1"),s=i.n(l),a=new o.a({id:"icon-slot-component",use:"icon-slot-component-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(a);t["default"]=a},"22a7":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.buttonStyle")}},[i("el-switch",{model:{value:e.optionModel.buttonStyle,callback:function(t){e.$set(e.optionModel,"buttonStyle",t)},expression:"optionModel.buttonStyle"}})],1)},o=[],l=i("79fa"),s={name:"buttonStyle-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"e14fae56",null);t["default"]=d.exports},2305:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",[i("span",{attrs:{slot:"label"},slot:"label"},[e._v(e._s(e.i18nt("designer.setting.fileTypes"))+" "),i("el-tooltip",{attrs:{effect:"light",content:e.i18nt("designer.setting.fileTypesHelp")}},[i("i",{staticClass:"el-icon-info"})])],1),i("el-select",{staticStyle:{width:"100%"},attrs:{multiple:"","allow-create":"",filterable:"","default-first-option":""},model:{value:e.optionModel.fileTypes,callback:function(t){e.$set(e.optionModel,"fileTypes",t)},expression:"optionModel.fileTypes"}},e._l(e.uploadPictureTypes,(function(e,t){return i("el-option",{key:t,attrs:{label:e.label,value:e.value}})})),1)],1)},o=[],l=i("79fa"),s={name:"picture-upload-fileTypes-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object},data:function(){return{uploadPictureTypes:[{value:"jpg",label:"jpg"},{value:"jpeg",label:"jpeg"},{value:"png",label:"png"},{value:"gif",label:"gif"}]}}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"651805a2",null);t["default"]=d.exports},2445:function(e,t,i){"use strict";i("e905")},"25e2":function(e,t,i){"use strict";i.r(t);var n=i("e017"),o=i.n(n),l=i("21a1"),s=i.n(l),a=new o.a({id:"icon-radio-field",use:"icon-radio-field-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(a);t["default"]=a},"26a6":function(e,t,i){"use strict";i("b0c0");t["a"]={methods:{initRefList:function(){null!==this.refList&&this.widget.options.name&&(this.refList[this.widget.options.name]=this)},getWidgetRef:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.refList[e];return!i&&t&&this.$message.error(this.i18nt("render.hint.refNotFound")+e),i},registerToRefList:function(e){null!==this.refList&&this.widget.options.name&&(e&&delete this.refList[e],this.refList[this.widget.options.name]=this)}}}},"26cb":function(e,t,i){},"27a8":function(e,t,i){"use strict";i.r(t);var n=i("e017"),o=i.n(n),l=i("21a1"),s=i.n(l),a=new o.a({id:"icon-date-field",use:"icon-date-field-usage",viewBox:"0 0 1132 1024",content:''});s.a.add(a);t["default"]=a},"28ed":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.showScore")}},[i("el-switch",{model:{value:e.optionModel.showScore,callback:function(t){e.$set(e.optionModel,"showScore",t)},expression:"optionModel.showScore"}})],1)},o=[],l=i("79fa"),s={name:"showScore-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"1bb4aaaf",null);t["default"]=d.exports},"28f2":function(e,t,i){},"29a3":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.checkStrictly")}},[i("el-switch",{model:{value:e.optionModel.checkStrictly,callback:function(t){e.$set(e.optionModel,"checkStrictly",t)},expression:"optionModel.checkStrictly"}})],1)},o=[],l=i("79fa"),s={name:"checkStrictly-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"615c8dbf",null);t["default"]=d.exports},"2b13":function(e,t,i){"use strict";i("eed3")},"2b47":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.showRowNumber")}},[i("el-switch",{model:{value:e.optionModel.showRowNumber,callback:function(t){e.$set(e.optionModel,"showRowNumber",t)},expression:"optionModel.showRowNumber"}})],1)},o=[],l=i("79fa"),s={name:"showRowNumber-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"148dc69b",null);t["default"]=d.exports},"2c6d":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.hidden")}},[i("el-switch",{model:{value:e.optionModel.hidden,callback:function(t){e.$set(e.optionModel,"hidden",t)},expression:"optionModel.hidden"}})],1)},o=[],l=i("79fa"),s={name:"hidden-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"d798e8e2",null);t["default"]=d.exports},"2d11":function(e,t,i){"use strict";i("b0c0"),i("a434"),i("d3b7"),i("159b"),i("d81d");var n=i("ca00"),o=i("a00a");t["a"]={inject:["refList","formConfig","globalOptionData","globalModel","getOptionData"],computed:{subFormName:function(){return this.parentWidget?this.parentWidget.options.name:""},subFormItemFlag:function(){return!!this.parentWidget&&"sub-form"===this.parentWidget.type},formModel:{cache:!1,get:function(){return this.globalModel.formModel}}},methods:{getPropName:function(){return this.subFormItemFlag&&!this.designState?this.subFormName+"."+this.subFormRowIndex+"."+this.field.options.name:this.field.options.name},initFieldModel:function(){var e=this;if(this.field.formItemFlag){if(this.subFormItemFlag&&!this.designState){var t=this.formModel[this.subFormName];return void 0!==t&&void 0!==t[this.subFormRowIndex]&&void 0!==t[this.subFormRowIndex][this.field.options.name]||void 0===this.field.options.defaultValue?void 0===t[this.subFormRowIndex][this.field.options.name]?(this.fieldModel=null,t[this.subFormRowIndex][this.field.options.name]=null):this.fieldModel=t[this.subFormRowIndex][this.field.options.name]:(this.fieldModel=this.field.options.defaultValue,t[this.subFormRowIndex][this.field.options.name]=this.field.options.defaultValue),setTimeout((function(){e.handleOnChangeForSubForm(e.fieldModel,e.oldFieldValue,t,e.subFormRowId)}),800),this.oldFieldValue=Object(n["d"])(this.fieldModel),void this.initFileList()}void 0===this.formModel[this.field.options.name]&&void 0!==this.field.options.defaultValue?this.fieldModel=this.field.options.defaultValue:void 0===this.formModel[this.field.options.name]?this.formModel[this.field.options.name]=null:this.fieldModel=this.formModel[this.field.options.name],this.oldFieldValue=Object(n["d"])(this.fieldModel),this.initFileList()}},initFileList:function(){"picture-upload"!==this.field.type&&"file-upload"!==this.field.type||!0===this.designState||this.fieldModel&&(Array.isArray(this.fieldModel)?this.fileList=Object(n["d"])(this.fieldModel):this.fileList.splice(0,0,Object(n["d"])(this.fieldModel)))},initEventHandler:function(){this.$on("setFormData",(function(e){this.subFormItemFlag||this.setValue(e[this.field.options.name])})),this.$on("field-value-changed",(function(e){if(this.subFormItemFlag){var t=this.formModel[this.subFormName];this.handleOnChangeForSubForm(e[0],e[1],t,this.subFormRowId)}else this.handleOnChange(e[0],e[1])})),this.$on("reloadOptionItems",(function(e){(0===e.length||e.indexOf(this.field.options.name)>-1)&&this.initOptionItems(!0)}))},handleOnCreated:function(){if(this.field.options.onCreated){var e=new Function(this.field.options.onCreated);e.call(this)}},handleOnMounted:function(){if(this.field.options.onMounted){var e=new Function(this.field.options.onMounted);e.call(this)}},registerToRefList:function(e){null!==this.refList&&this.field.options.name&&(this.subFormItemFlag&&!this.designState?(e&&delete this.refList[e+"@row"+this.subFormRowId],this.refList[this.field.options.name+"@row"+this.subFormRowId]=this):(e&&delete this.refList[e],this.refList[this.field.options.name]=this))},unregisterFromRefList:function(){if(null!==this.refList&&this.field.options.name){var e=this.field.options.name;this.subFormItemFlag&&!this.designState?delete this.refList[e+"@row"+this.subFormRowId]:delete this.refList[e]}},initOptionItems:function(e){if(!this.designState&&("radio"===this.field.type||"checkbox"===this.field.type||"select"===this.field.type||"cascader"===this.field.type)){var t=this.getOptionData();t&&t.hasOwnProperty(this.field.options.name)&&(e?this.reloadOptions(t[this.field.options.name]):this.loadOptions(t[this.field.options.name]))}},refreshDefaultValue:function(){!0===this.designState&&void 0!==this.field.options.defaultValue&&(this.fieldModel=this.field.options.defaultValue)},clearFieldRules:function(){this.field.formItemFlag&&this.rules.splice(0,this.rules.length)},buildFieldRules:function(){var e=this;if(this.field.formItemFlag){if(this.rules.splice(0,this.rules.length),this.field.options.required&&this.rules.push({required:!0,trigger:["blur"],message:this.field.options.requiredHint||this.i18nt("render.hint.fieldRequired")}),this.field.options.validation){var t=this.field.options.validation;o["a"][t]?this.rules.push({validator:o["a"][t],trigger:["blur","change"],label:this.field.options.label,errorMsg:this.field.options.validationHint}):this.rules.push({validator:o["a"]["regExp"],trigger:["blur","change"],regExp:t,label:this.field.options.label,errorMsg:this.field.options.validationHint})}if(this.field.options.onValidate){var i=function(t,i,n){var o=new Function("rule","value","callback",e.field.options.onValidate);return o.call(e,t,i,n)};this.rules.push({validator:i,trigger:["blur","change"],label:this.field.options.label})}}},disableChangeValidate:function(){this.rules&&this.rules.forEach((function(e){e.trigger&&e.trigger.splice(0,e.trigger.length)}))},enableChangeValidate:function(){this.rules&&this.rules.forEach((function(e){e.trigger&&(e.trigger.push("blur"),e.trigger.push("change"))}))},disableOptionOfList:function(e,t){e&&e.length>0&&e.forEach((function(e){e.value===t&&(e.disabled=!0)}))},enableOptionOfList:function(e,t){e&&e.length>0&&e.forEach((function(e){e.value===t&&(e.disabled=!1)}))},emitFieldDataChange:function(e,t){this.$emit("field-value-changed",[e,t]),this.dispatch("VFormRender","fieldChange",[this.field.options.name,e,t,this.subFormName,this.subFormRowIndex])},syncUpdateFormModel:function(e){if(!this.designState)if(this.subFormItemFlag){var t=this.formModel[this.subFormName]||[{}],i=t[this.subFormRowIndex];i[this.field.options.name]=e}else this.formModel[this.field.options.name]=e},handleChangeEvent:function(e){this.syncUpdateFormModel(e),this.emitFieldDataChange(e,this.oldFieldValue),this.oldFieldValue=Object(n["d"])(e),this.dispatch("VFormRender","fieldValidation",[this.getPropName()])},handleFocusCustomEvent:function(e){if(this.oldFieldValue=Object(n["d"])(this.fieldModel),this.field.options.onFocus){var t=new Function("event",this.field.options.onFocus);t.call(this,e)}},handleBlurCustomEvent:function(e){if(this.field.options.onBlur){var t=new Function("event",this.field.options.onBlur);t.call(this,e)}},handleInputCustomEvent:function(e){if(this.syncUpdateFormModel(e),this.dispatch("VFormRender","fieldValidation",[this.getPropName()]),this.field.options.onInput){var t=new Function("value",this.field.options.onInput);t.call(this,e)}},emitAppendButtonClick:function(){if(!this.designState)if(this.field.options.onAppendButtonClick){var e=new Function(this.field.options.onAppendButtonClick);e.call(this)}else this.dispatch("VFormRender","appendButtonClick",[this])},handleOnChange:function(e,t){if(this.field.options.onChange){var i=new Function("value","oldValue",this.field.options.onChange);i.call(this,e,t)}},handleOnChangeForSubForm:function(e,t,i,n){if(this.field.options.onChange){var o=new Function("value","oldValue","subFormData","rowId",this.field.options.onChange);o.call(this,e,t,i,n)}},handleButtonWidgetClick:function(){if(!this.designState)if(this.field.options.onClick){var e=new Function(this.field.options.onClick);e.call(this)}else this.dispatch("VFormRender","buttonClick",[this])},remoteQuery:function(e){if(this.field.options.onRemoteQuery){var t=new Function("keyword",this.field.options.onRemoteQuery);t.call(this,e)}},getFormRef:function(){return this.refList["v_form_ref"]},getWidgetRef:function(e,t){var i=this.refList[e];return!i&&t&&this.$message.error(this.i18nt("render.hint.refNotFound")+e),i},getFieldEditor:function(){return this.$refs["fieldEditor"]},setValue:function(e){if(this.field.formItemFlag){var t=Object(n["d"])(this.fieldModel);this.fieldModel=e,this.initFileList(),this.syncUpdateFormModel(e),this.emitFieldDataChange(e,t)}},getValue:function(){return this.fieldModel},resetField:function(){if(!this.subFormItemFlag){var e=this.field.options.defaultValue;this.setValue(e),"picture-upload"!==this.field.type&&"file-upload"!==this.field.type||(this.$refs["fieldEditor"].clearFiles(),this.fileList.splice(0,this.fileList.length))}},setWidgetOption:function(e,t){this.field.options.hasOwnProperty(e)&&(this.field.options[e]=t)},setReadonly:function(e){this.field.options.readonly=e},setDisabled:function(e){this.field.options.disabled=e},setAppendButtonVisible:function(e){this.field.options.appendButton=e},setAppendButtonDisabled:function(e){this.field.options.appendButtonDisabled=e},setHidden:function(e){this.field.options.hidden=e,e?this.clearFieldRules():this.buildFieldRules()},setRequired:function(e){this.field.options.required=e,this.buildFieldRules()},setLabel:function(e){this.field.options.label=e},focus:function(){this.getFieldEditor()&&this.getFieldEditor().focus&&this.getFieldEditor().focus()},clearSelectedOptions:function(){"checkbox"!==this.field.type&&"radio"!==this.field.type&&"select"!==this.field.type||("checkbox"===this.field.type||"select"===this.field.type&&this.field.options.multiple?this.fieldModel=[]:this.fieldModel="")},loadOptions:function(e){this.field.options.optionItems=Object(n["d"])(e)},reloadOptions:function(e){this.field.options.optionItems=Object(n["d"])(e)},getOptions:function(){return this.field.options.optionItems},disableOption:function(e){this.disableOptionOfList(this.field.options.optionItems,e)},enableOption:function(e){this.enableOptionOfList(this.field.options.optionItems,e)},setUploadHeader:function(e,t){this.$set(this.uploadHeaders,e,t)},setUploadData:function(e,t){this.$set(this.uploadData,e,t)},setToolbar:function(e){this.customToolbar=e},isSubFormItem:function(){return!!this.parentWidget&&"sub-form"===this.parentWidget.type},addCssClass:function(e){this.field.options.customClass?this.field.options.customClass.push(e):this.field.options.customClass=[e]},removeCssClass:function(e){if(this.field.options.customClass){var t=-1;this.field.options.customClass.map((function(i,n){i===e&&(t=n)})),t>-1&&this.field.options.customClass.splice(t,1)}}}}},"2d13":function(e,t,i){},"2d9e":function(e,t,i){"use strict";i.r(t);var n=i("e017"),o=i.n(n),l=i("21a1"),s=i.n(l),a=new o.a({id:"icon-card",use:"icon-card-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(a);t["default"]=a},"2dc5":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.limit")}},[i("el-input-number",{staticClass:"hide-spin-button",staticStyle:{width:"100%"},attrs:{min:1},model:{value:e.optionModel.limit,callback:function(t){e.$set(e.optionModel,"limit",t)},expression:"optionModel.limit"}})],1)},o=[],l=i("79fa"),s={name:"limit-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"41408032",null);t["default"]=d.exports},"2dd9":function(e,t,i){},"2ec9":function(e,t,i){"use strict";i("04fd")},"2faa":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("form-item-wrapper",{attrs:{designer:e.designer,field:e.field,rules:e.rules,"design-state":e.designState,"parent-widget":e.parentWidget,"parent-list":e.parentList,"index-of-parent-list":e.indexOfParentList,"sub-form-row-index":e.subFormRowIndex,"sub-form-col-index":e.subFormColIndex,"sub-form-row-id":e.subFormRowId}},[i("el-rate",{ref:"fieldEditor",attrs:{disabled:e.field.options.disabled,max:e.field.options.max,"low-threshold":e.field.options.lowThreshold,"high-threshold":e.field.options.highThreshold,"allow-half":e.field.options.allowHalf,"show-text":e.field.options.showText,"show-score":e.field.options.showScore},on:{change:e.handleChangeEvent},model:{value:e.fieldModel,callback:function(t){e.fieldModel=t},expression:"fieldModel"}})],1)},o=[],l=(i("a9e3"),i("9eeb")),s=i("c6e3"),a=i("79fa"),r=i("2d11"),d={name:"rate-widget",componentName:"FieldWidget",mixins:[s["a"],r["a"],a["b"]],props:{field:Object,parentWidget:Object,parentList:Array,indexOfParentList:Number,designer:Object,designState:{type:Boolean,default:!1},subFormRowIndex:{type:Number,default:-1},subFormColIndex:{type:Number,default:-1},subFormRowId:{type:String,default:""}},components:{FormItemWrapper:l["default"]},inject:["refList","formConfig","globalOptionData","globalModel"],data:function(){return{oldFieldValue:null,fieldModel:null,rules:[]}},computed:{},beforeCreate:function(){},created:function(){this.initFieldModel(),this.registerToRefList(),this.initEventHandler(),this.buildFieldRules(),this.handleOnCreated()},mounted:function(){this.handleOnMounted()},beforeDestroy:function(){this.unregisterFromRefList()},methods:{}},c=d,u=(i("623d"),i("2877")),f=Object(u["a"])(c,n,o,!1,null,"02bf17e4",null);t["default"]=f.exports},"30ac":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.automaticDropdown")}},[i("el-switch",{model:{value:e.optionModel.automaticDropdown,callback:function(t){e.$set(e.optionModel,"automaticDropdown",t)},expression:"optionModel.automaticDropdown"}})],1)},o=[],l=i("79fa"),s={name:"automaticDropdown-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"82662fa2",null);t["default"]=d.exports},"31ab":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.inactiveText")}},[i("el-input",{model:{value:e.optionModel.inactiveText,callback:function(t){e.$set(e.optionModel,"inactiveText",t)},expression:"optionModel.inactiveText"}})],1)},o=[],l=i("79fa"),s={name:"inactiveText-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"03f5012d",null);t["default"]=d.exports},"31b7":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("el-form-item",{attrs:{"label-width":"0"}},[i("el-divider",{staticClass:"custom-divider"},[e._v(e._s(e.i18nt("designer.setting.uploadSetting")))])],1),i("el-form-item",{attrs:{label:e.i18nt("designer.setting.uploadURL")}},[i("el-input",{attrs:{type:"text"},model:{value:e.optionModel.uploadURL,callback:function(t){e.$set(e.optionModel,"uploadURL",t)},expression:"optionModel.uploadURL"}})],1)],1)},o=[],l=i("79fa"),s={name:"uploadURL-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"2b299867",null);t["default"]=d.exports},"329d":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.colOffsetTitle")}},[i("el-input-number",{staticStyle:{width:"100%"},attrs:{min:0,max:24},model:{value:e.optionModel.offset,callback:function(t){e.$set(e.optionModel,"offset",e._n(t))},expression:"optionModel.offset"}})],1)},o=[],l=i("79fa"),s={name:"grid-col-offset-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"b3fd22fe",null);t["default"]=d.exports},"333d":function(e,t,i){"use strict";i("5660")},"345a":function(e,t,i){"use strict";i("c372")},"34c5":function(e,t,i){"use strict";i("baf1")},"34f0":function(e,t,i){"use strict";i("b0c0"),i("d3b7"),i("159b"),i("a434"),i("d81d");var n=i("ca00");t["a"]={computed:{customClass:function(){return this.widget.options.customClass||""},formModel:{cache:!1,get:function(){return this.globalModel.formModel}}},mounted:function(){this.callSetHidden()},methods:{unregisterFromRefList:function(){if(null!==this.refList&&this.widget.options.name){var e=this.widget.options.name;delete this.refList[e]}},callSetHidden:function(){!0===this.widget.options.hidden&&this.setHidden(!0)},setHidden:function(e){var t=this;this.widget.options.hidden=e;var i=function(i){var n=i.options.name,o=t.getWidgetRef(n);e&&o&&o.clearFieldRules&&o.clearFieldRules(),!e&&o&&o.buildFieldRules&&o.buildFieldRules()};Object(n["t"])(this.widget,i)},activeTab:function(e){var t=this;e>=0&&e=0&&e=0&&e=0&&e=0&&e0&&this.rowIdData.forEach((function(t,i){e.disableSubFormRow(i)})),this.actionDisabled=!0},enableSubForm:function(){var e=this;this.rowIdData.length>0&&this.rowIdData.forEach((function(t,i){e.enableSubFormRow(i)})),this.actionDisabled=!1},resetSubForm:function(){if("sub-form"===this.widget.type){var e=this.formModel[this.widget.options.name];e&&(e.splice(0,e.length),this.rowIdData.splice(0,this.rowIdData.length)),this.widget.options.showBlankRow&&this.addSubFormRow()}},getSubFormValues:function(){if("sub-form"===this.widget.type)return this.formModel[this.widget.options.name];this.$message.error(this.i18nt("render.hint.nonSubFormType"))},setSubFormValues:function(e){},addCssClass:function(e){this.widget.options.customClass?this.widget.options.customClass.push(e):this.widget.options.customClass=[e]},removeCssClass:function(e){if(this.widget.options.customClass){var t=-1;this.widget.options.customClass.map((function(i,n){i===e&&(t=n)})),t>-1&&this.widget.options.customClass.splice(t,1)}}}}},3559:function(e,t,i){},"35c2":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.contentPosition")}},[i("el-select",{model:{value:e.optionModel.contentPosition,callback:function(t){e.$set(e.optionModel,"contentPosition",t)},expression:"optionModel.contentPosition"}},[i("el-option",{attrs:{label:"center",value:"center"}}),i("el-option",{attrs:{label:"left",value:"left"}}),i("el-option",{attrs:{label:"right",value:"right"}})],1)],1)},o=[],l=i("79fa"),s={name:"contentPosition-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"d4bc4820",null);t["default"]=d.exports},"36ad":function(e,t,i){},"36c7":function(e,t,i){},"36f6":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.labelHidden")}},[i("el-switch",{model:{value:e.optionModel.labelHidden,callback:function(t){e.$set(e.optionModel,"labelHidden",t)},expression:"optionModel.labelHidden"}})],1)},o=[],l=i("79fa"),s={name:"labelHidden-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"086f4433",null);t["default"]=d.exports},"37ab":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticStyle:{display:"none"}})},o=[],l={name:"checkbox-defaultValue-editor",props:{designer:Object,selectedWidget:Object,optionModel:Object}},s=l,a=i("2877"),r=Object(a["a"])(s,n,o,!1,null,"b77e89ba",null);t["default"]=r.exports},"38b9":function(e,t,i){"use strict";i("d6e6")},"390e":function(e,t,i){"use strict";i("d85f")},3918:function(e,t,i){"use strict";i.r(t);var n=i("e017"),o=i.n(n),l=i("21a1"),s=i.n(l),a=new o.a({id:"icon-time-range-field",use:"icon-time-range-field-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(a);t["default"]=a},3952:function(e,t,i){"use strict";i.r(t);var n=i("e017"),o=i.n(n),l=i("21a1"),s=i.n(l),a=new o.a({id:"icon-rich-editor-field",use:"icon-rich-editor-field-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(a);t["default"]=a},"3ad3":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("form-item-wrapper",{attrs:{designer:e.designer,field:e.field,rules:e.rules,"design-state":e.designState,"parent-widget":e.parentWidget,"parent-list":e.parentList,"index-of-parent-list":e.indexOfParentList,"sub-form-row-index":e.subFormRowIndex,"sub-form-col-index":e.subFormColIndex,"sub-form-row-id":e.subFormRowId}},[i("el-color-picker",{ref:"fieldEditor",attrs:{size:e.field.options.size,disabled:e.field.options.disabled},on:{change:e.handleChangeEvent},model:{value:e.fieldModel,callback:function(t){e.fieldModel=t},expression:"fieldModel"}})],1)},o=[],l=(i("a9e3"),i("9eeb")),s=i("c6e3"),a=i("79fa"),r=i("2d11"),d={name:"color-widget",componentName:"FieldWidget",mixins:[s["a"],r["a"],a["b"]],props:{field:Object,parentWidget:Object,parentList:Array,indexOfParentList:Number,designer:Object,designState:{type:Boolean,default:!1},subFormRowIndex:{type:Number,default:-1},subFormColIndex:{type:Number,default:-1},subFormRowId:{type:String,default:""}},components:{FormItemWrapper:l["default"]},inject:["refList","formConfig","globalOptionData","globalModel"],data:function(){return{oldFieldValue:null,fieldModel:null,rules:[]}},computed:{},beforeCreate:function(){},created:function(){this.initFieldModel(),this.registerToRefList(),this.initEventHandler(),this.buildFieldRules(),this.handleOnCreated()},mounted:function(){this.handleOnMounted()},beforeDestroy:function(){this.unregisterFromRefList()},methods:{}},c=d,u=(i("a906"),i("2877")),f=Object(u["a"])(c,n,o,!1,null,"53ad0c08",null);t["default"]=f.exports},"3bc5":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.maxStars")}},[i("el-input-number",{staticClass:"hide-spin-button",staticStyle:{width:"100%"},attrs:{min:1,max:10},model:{value:e.optionModel.max,callback:function(t){e.$set(e.optionModel,"max",t)},expression:"optionModel.max"}})],1)},o=[],l=i("79fa"),s={name:"rate-max-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"59c5a4f2",null);t["default"]=d.exports},"3c10":function(e,t,i){"use strict";i("848c")},"3e10":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.labelAlign")}},[i("el-radio-group",{staticClass:"radio-group-custom",model:{value:e.optionModel.labelAlign,callback:function(t){e.$set(e.optionModel,"labelAlign",t)},expression:"optionModel.labelAlign"}},[i("el-radio-button",{attrs:{label:"label-left-align"}},[e._v(" "+e._s(e.i18nt("designer.setting.leftAlign")))]),i("el-radio-button",{attrs:{label:"label-center-align"}},[e._v(" "+e._s(e.i18nt("designer.setting.centerAlign")))]),i("el-radio-button",{attrs:{label:"label-right-align"}},[e._v(" "+e._s(e.i18nt("designer.setting.rightAlign")))])],1)],1)},o=[],l=i("79fa"),s={name:"sub-form-labelAlign-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=(i("0dee"),i("2877")),d=Object(r["a"])(a,n,o,!1,null,"66fb0270",null);t["default"]=d.exports},"3f28":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:"onUploadError","label-width":"150px"}},[i("el-button",{attrs:{type:"info",icon:"el-icon-edit",plain:"",round:""},on:{click:function(t){return e.editEventHandler("onUploadError",e.eventParams)}}},[e._v(" "+e._s(e.i18nt("designer.setting.addEventHandler")))])],1)},o=[],l=i("79fa"),s=i("7d6c"),a={name:"onUploadError-editor",mixins:[l["b"],s["a"]],props:{designer:Object,selectedWidget:Object,optionModel:Object},data:function(){return{eventParams:["error","file","fileList"]}}},r=a,d=i("2877"),c=Object(d["a"])(r,n,o,!1,null,"a1332e98",null);t["default"]=c.exports},"401c":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.showFileList")}},[i("el-switch",{model:{value:e.optionModel.showFileList,callback:function(t){e.$set(e.optionModel,"showFileList",t)},expression:"optionModel.showFileList"}})],1)},o=[],l=i("79fa"),s={name:"showFileList-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"6901fcd5",null);t["default"]=d.exports},"40fa":function(e,t,i){"use strict";i.r(t);var n=i("e017"),o=i.n(n),l=i("21a1"),s=i.n(l),a=new o.a({id:"icon-text-field",use:"icon-text-field-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(a);t["default"]=a},4120:function(e,t,i){"use strict";i("1bdc")},"423c":function(e,t,i){},"43b3":function(e,t,i){},"447a":function(e,t,i){"use strict";i("6043")},"44fb":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.showText")}},[i("el-switch",{model:{value:e.optionModel.showText,callback:function(t){e.$set(e.optionModel,"showText",t)},expression:"optionModel.showText"}})],1)},o=[],l=i("79fa"),s={name:"showText-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"ed97a906",null);t["default"]=d.exports},4595:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.placeholder")}},[i("el-input",{attrs:{type:"text"},model:{value:e.optionModel.placeholder,callback:function(t){e.$set(e.optionModel,"placeholder",t)},expression:"optionModel.placeholder"}})],1)},o=[],l=i("79fa"),s=i("b2bf"),a={name:"placeholder-editor",mixins:[l["b"],s["a"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},r=a,d=i("2877"),c=Object(d["a"])(r,n,o,!1,null,"03f971ba",null);t["default"]=c.exports},"47f1":function(e,t,i){"use strict";i.r(t);var n=i("e017"),o=i.n(n),l=i("21a1"),s=i.n(l),a=new o.a({id:"icon-table",use:"icon-table-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(a);t["default"]=a},"491c":function(e,t,i){"use strict";i.r(t);var n=i("e017"),o=i.n(n),l=i("21a1"),s=i.n(l),a=new o.a({id:"icon-divider",use:"icon-divider-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(a);t["default"]=a},"4a70":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("form-item-wrapper",{attrs:{designer:e.designer,field:e.field,rules:e.rules,"design-state":e.designState,"parent-widget":e.parentWidget,"parent-list":e.parentList,"index-of-parent-list":e.indexOfParentList,"sub-form-row-index":e.subFormRowIndex,"sub-form-col-index":e.subFormColIndex,"sub-form-row-id":e.subFormRowId}},[i("el-upload",{ref:"fieldEditor",staticClass:"dynamicPseudoAfter",class:{hideUploadDiv:e.uploadBtnHidden},style:e.styleVariables,attrs:{disabled:e.field.options.disabled,action:e.field.options.uploadURL,headers:e.uploadHeaders,data:e.uploadData,"with-credentials":e.field.options.withCredentials,multiple:e.field.options.multipleSelect,"file-list":e.fileList,"show-file-list":e.field.options.showFileList,limit:e.field.options.limit,"on-exceed":e.handleFileExceed,"before-upload":e.beforeFileUpload,"on-success":e.handleFileUpload,"on-error":e.handelUploadError,"on-remove":e.handleFileRemove},scopedSlots:e._u([{key:"file",fn:function(t){var n=t.file;return[i("div",{staticClass:"upload-file-list"},[i("span",{staticClass:"upload-file-name",attrs:{title:n.name}},[e._v(e._s(n.name))]),i("a",{attrs:{href:n.url,download:""}},[i("i",{staticClass:"el-icon-download file-action",attrs:{title:e.i18nt("render.hint.downloadFile")}})]),e.field.options.disabled?e._e():i("i",{staticClass:"el-icon-delete file-action",attrs:{title:e.i18nt("render.hint.removeFile")},on:{click:function(t){return e.removeUploadFile(n.name)}}})])]}}])},[e.field.options.uploadTip?i("div",{staticClass:"el-upload__tip",attrs:{slot:"tip"},slot:"tip"},[e._v(e._s(e.field.options.uploadTip))]):e._e(),i("i",{staticClass:"el-icon-plus avatar-uploader-icon",attrs:{slot:"default"},slot:"default"})])],1)},o=[],l=(i("a9e3"),i("ac1f"),i("5319"),i("b0c0"),i("d3b7"),i("159b"),i("a434"),i("9eeb")),s=i("c6e3"),a=i("79fa"),r=i("ca00"),d=i("2d11"),c="'"+Object(a["c"])("render.hint.selectFile")+"'",u={name:"file-upload-widget",componentName:"FieldWidget",mixins:[s["a"],d["a"],a["b"]],props:{field:Object,parentWidget:Object,parentList:Array,indexOfParentList:Number,designer:Object,designState:{type:Boolean,default:!1},subFormRowIndex:{type:Number,default:-1},subFormColIndex:{type:Number,default:-1},subFormRowId:{type:String,default:""}},components:{FormItemWrapper:l["default"]},inject:["refList","formConfig","globalOptionData","globalModel"],data:function(){return{oldFieldValue:null,fieldModel:null,rules:[],uploadHeaders:{},uploadData:{key:""},fileList:[],uploadBtnHidden:!1,styleVariables:{"--select-file-action":c}}},computed:{},beforeCreate:function(){},created:function(){this.initFieldModel(),this.registerToRefList(),this.initEventHandler(),this.buildFieldRules(),this.handleOnCreated()},mounted:function(){this.handleOnMounted()},beforeDestroy:function(){this.unregisterFromRefList()},methods:{handleFileExceed:function(){var e=this.field.options.limit;this.$message.warning(this.i18nt("render.hint.uploadExceed").replace("${uploadLimit}",e))},updateUploadFieldModelAndEmitDataChange:function(e){var t=Object(r["d"])(this.fieldModel);this.fieldModel=Object(r["d"])(e),this.syncUpdateFormModel(this.fieldModel),this.emitFieldDataChange(this.fieldModel,t)},beforeFileUpload:function(e){var t=!1,i=e.name.substring(e.name.lastIndexOf(".")+1);if(this.field.options&&this.field.options.fileTypes){var n=this.field.options.fileTypes;n.length>0&&(t=n.some((function(e){return i.toLowerCase()===e.toLowerCase()})))}if(!t)return this.$message.error(this.i18nt("render.hint.unsupportedFileType")+i),!1;var o=!1,l=5;return this.field.options&&this.field.options.fileMaxSize&&(l=this.field.options.fileMaxSize),o=e.size/1024/1024<=l,o?(this.uploadData.key=e.name,this.handleOnBeforeUpload(e)):(this.$message.error(this.i18nt("render.hint.fileSizeExceed")+l+"MB"),!1)},handleOnBeforeUpload:function(e){if(this.field.options.onBeforeUpload){var t=new Function("file",this.field.options.onBeforeUpload),i=t.call(this,e);return"boolean"!==typeof i||i}return!0},handleFileUpload:function(e,t,i){if("success"===t.status&&(this.updateUploadFieldModelAndEmitDataChange(i),this.fileList=Object(r["d"])(i),this.uploadBtnHidden=i.length>=this.field.options.limit,this.field.options.onUploadSuccess)){var n=new Function("result","file","fileList",this.field.options.onUploadSuccess);n.call(this,e,t,i)}},handleFileRemove:function(e,t){if(this.fileList=Object(r["d"])(t),this.updateUploadFieldModelAndEmitDataChange(t),this.uploadBtnHidden=t.length>=this.field.options.limit,this.field.options.onFileRemove){var i=new Function("file","fileList",this.field.options.onFileRemove);i.call(this,e,t)}},removeUploadFile:function(e){var t=-1,i=null;if(this.fileList.forEach((function(n,o){n.name===e&&(t=o,i=n)})),t>=0&&(this.fileList.splice(t,1),this.updateUploadFieldModelAndEmitDataChange(this.fileList),this.uploadBtnHidden=this.fileList.length>=this.field.options.limit,this.field.options.onFileRemove)){var n=new Function("file","fileList",this.field.options.onFileRemove);n.call(this,i,this.fileList)}},handelUploadError:function(e,t,i){if(this.field.options.onUploadError){var n=new Function("error","file","fileList",this.field.options.onUploadError);n.call(this,e,t,i)}else this.$message({message:this.i18nt("render.hint.uploadError")+e,duration:3e3,type:"error"})}}},f=u,p=(i("390e"),i("2877")),m=Object(p["a"])(f,n,o,!1,null,"3f51f292",null);t["default"]=m.exports},"4be5":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.valueFormat")}},[i("el-select",{attrs:{filterable:"","allow-create":""},model:{value:e.optionModel.valueFormat,callback:function(t){e.$set(e.optionModel,"valueFormat",t)},expression:"optionModel.valueFormat"}},[i("el-option",{attrs:{label:"yyyy-MM-dd",value:"yyyy-MM-dd"}}),i("el-option",{attrs:{label:"yyyy-MM-dd HH:mm:ss",value:"yyyy-MM-dd HH:mm:ss"}})],1)],1)},o=[],l=i("79fa"),s={name:"date-range-valueFormat-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"584a5ccb",null);t["default"]=d.exports},"4cde":function(e,t,i){"use strict";i.r(t);var n=i("e017"),o=i.n(n),l=i("21a1"),s=i.n(l),a=new o.a({id:"icon-static-text",use:"icon-static-text-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(a);t["default"]=a},"4e3d":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:"onBlur","label-width":"150px"}},[i("el-button",{attrs:{type:"info",icon:"el-icon-edit",plain:"",round:""},on:{click:function(t){return e.editEventHandler("onBlur",e.eventParams)}}},[e._v(" "+e._s(e.i18nt("designer.setting.addEventHandler")))])],1)},o=[],l=i("79fa"),s=i("7d6c"),a={name:"onBlur-editor",mixins:[l["b"],s["a"]],props:{designer:Object,selectedWidget:Object,optionModel:Object},data:function(){return{eventParams:["event"]}}},r=a,d=i("2877"),c=Object(d["a"])(r,n,o,!1,null,"ab3f95fc",null);t["default"]=c.exports},"4e94":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.format")}},[i("el-select",{attrs:{filterable:"","allow-create":""},model:{value:e.optionModel.format,callback:function(t){e.$set(e.optionModel,"format",t)},expression:"optionModel.format"}},[i("el-option",{attrs:{label:"yyyy-MM-dd",value:"yyyy-MM-dd"}}),i("el-option",{attrs:{label:"yyyy/MM/dd",value:"yyyy/MM/dd"}}),i("el-option",{attrs:{label:"yyyy年MM月dd日",value:"yyyy年MM月dd日"}}),i("el-option",{attrs:{label:"yyyy-MM-dd HH:mm:ss",value:"yyyy-MM-dd HH:mm:ss"}}),i("el-option",{attrs:{label:"yyyy-MM-dd hh:mm:ss",value:"yyyy-MM-dd hh:mm:ss"}})],1)],1)},o=[],l=i("79fa"),s={name:"date-range-format-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"04dfb3ed",null);t["default"]=d.exports},"4ebe":function(e,t,i){},"4ed4":function(e,t,i){"use strict";i.r(t);var n=i("e017"),o=i.n(n),l=i("21a1"),s=i.n(l),a=new o.a({id:"icon-button",use:"icon-button-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(a);t["default"]=a},"4eff":function(e,t,i){},5112:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.remote")}},[i("el-switch",{on:{change:e.onRemoteChange},model:{value:e.optionModel.remote,callback:function(t){e.$set(e.optionModel,"remote",t)},expression:"optionModel.remote"}})],1)},o=[],l=i("79fa"),s=i("b2bf"),a={name:"remote-editor",mixins:[l["b"],s["a"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},r=a,d=i("2877"),c=Object(d["a"])(r,n,o,!1,null,"83c35cae",null);t["default"]=c.exports},"51ff":function(e,t,i){var n={"./alert.svg":"f2db","./button.svg":"4ed4","./card.svg":"2d9e","./cascader-field.svg":"5fe5","./checkbox-field.svg":"f582","./color-field.svg":"5bc5","./custom-component.svg":"c885","./data-table.svg":"6592","./date-field.svg":"27a8","./date-range-field.svg":"6947","./divider.svg":"491c","./document.svg":"fd28","./drag.svg":"9bbf","./file-upload-field.svg":"d119","./github.svg":"558d","./grid.svg":"d8ec","./html-text.svg":"89ef","./node-tree.svg":"e486","./number-field.svg":"9b6e","./picture-upload-field.svg":"15c6","./radio-field.svg":"25e2","./rate-field.svg":"f250","./redo.svg":"18ba","./rich-editor-field.svg":"3952","./section.svg":"e934","./select-field.svg":"b8d7","./slider-field.svg":"7007","./slot-component.svg":"20e0","./slot-field.svg":"ecf2","./static-text.svg":"4cde","./sub-form.svg":"db13","./switch-field.svg":"1895","./tab.svg":"8fb7","./table.svg":"47f1","./text-field.svg":"40fa","./textarea-field.svg":"d2e4","./time-field.svg":"1d42","./time-range-field.svg":"3918","./undo.svg":"612b","./vue-sfc.svg":"8740"};function o(e){var t=l(e);return i(t)}function l(e){if(!i.o(n,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n[e]}o.keys=function(){return Object.keys(n)},o.resolve=l,e.exports=o,o.id="51ff"},5479:function(e,t,i){"use strict";i("f355")},"54cf":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.rows")}},[i("el-input-number",{staticStyle:{width:"100%"},model:{value:e.optionModel.rows,callback:function(t){e.$set(e.optionModel,"rows",t)},expression:"optionModel.rows"}})],1)},o=[],l=i("79fa"),s={name:"rows-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"99e99dee",null);t["default"]=d.exports},"54d3":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.controlsPosition")}},[i("el-select",{model:{value:e.optionModel.controlsPosition,callback:function(t){e.$set(e.optionModel,"controlsPosition",t)},expression:"optionModel.controlsPosition"}},[i("el-option",{attrs:{label:"default",value:""}}),i("el-option",{attrs:{label:"right",value:"right"}})],1)],1)},o=[],l=i("79fa"),s={name:"controlsPosition-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"320a7676",null);t["default"]=d.exports},"554e":function(e,t,i){},"558d":function(e,t,i){"use strict";i.r(t);var n=i("e017"),o=i.n(n),l=i("21a1"),s=i.n(l),a=new o.a({id:"icon-github",use:"icon-github-usage",viewBox:"0 0 1024 1024",content:''});s.a.add(a);t["default"]=a},5660:function(e,t,i){},"566c":function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.step")}},[i("el-input-number",{staticClass:"hide-spin-button",staticStyle:{width:"100%"},model:{value:e.optionModel.step,callback:function(t){e.$set(e.optionModel,"step",t)},expression:"optionModel.step"}})],1)},o=[],l=i("79fa"),s={name:"step-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"3dde34f4",null);t["default"]=d.exports},5674:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form-item",{attrs:{label:e.i18nt("designer.setting.cellWidth")}},[i("el-input",{attrs:{type:"text"},model:{value:e.optionModel.cellWidth,callback:function(t){e.$set(e.optionModel,"cellWidth",t)},expression:"optionModel.cellWidth"}})],1)},o=[],l=i("79fa"),s={name:"cellWidth-editor",mixins:[l["b"]],props:{designer:Object,selectedWidget:Object,optionModel:Object}},a=s,r=i("2877"),d=Object(r["a"])(a,n,o,!1,null,"8ddfb426",null);t["default"]=d.exports},"56d7":function(e,t,i){"use strict";i.r(t);i("e260"),i("e6cf"),i("cca6"),i("a79d"),i("db4d"),i("768f");var n=i("a026"),o=i("bc3a"),l=i.n(o),s=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{attrs:{id:"app"}},[i("VFormDesigner",{ref:"vfDesignerRef",attrs:{"designer-config":e.designerConfig}})],1)},a=[],r=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-container",{staticClass:"main-container full-height"},[i("el-header",{staticClass:"main-header"},[i("div",{staticClass:"float-left main-title"},[i("span",{staticClass:"bold"},[e._v("ZC")]),e._v(" "+e._s(e.i18nt("application.productTitle"))+" ")]),i("div",{staticClass:"float-right external-link"},[e.showLink("languageMenu")?i("el-dropdown",{attrs:{"hide-timeout":2e3},on:{command:e.handleLanguageChanged}},[i("span",{staticClass:"el-dropdown-link"},[e._v(e._s(e.curLangName)),i("i",{staticClass:"el-icon-arrow-down el-icon--right"})]),i("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[i("el-dropdown-item",{attrs:{command:"zh-CN"}},[e._v(e._s(e.i18nt("application.zh-CN")))]),i("el-dropdown-item",{attrs:{command:"en-US"}},[e._v(e._s(e.i18nt("application.en-US")))])],1)],1):e._e()],1)]),i("el-container",[i("el-aside",{staticClass:"side-panel"},[i("widget-panel",{attrs:{designer:e.designer}})],1),i("el-container",{staticClass:"center-layout-container"},[i("el-header",{staticClass:"toolbar-header"},[i("toolbar-panel",{ref:"toolbarRef",attrs:{designer:e.designer},scopedSlots:e._u([e._l(e.$slots,(function(t,i){return{key:i,fn:function(){return[e._t(i)]},proxy:!0}}))],null,!0)})],1),i("el-main",{staticClass:"form-widget-main"},[i("el-scrollbar",{staticClass:"container-scroll-bar",style:{height:e.scrollerHeight}},[i("v-form-widget",{ref:"formRef",attrs:{designer:e.designer,"form-config":e.designer.formConfig}})],1)],1)],1),i("el-aside",[i("setting-panel",{attrs:{designer:e.designer,"selected-widget":e.designer.selectedWidget,"form-config":e.designer.formConfig}})],1)],1)],1)},d=[],c=(i("a434"),i("d3b7"),i("159b"),function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-scrollbar",{staticClass:"side-scroll-bar",style:{height:e.scrollerHeight}},[i("div",{staticClass:"panel-container"},[i("el-tabs",{staticClass:"no-bottom-margin indent-left-margin",model:{value:e.firstTab,callback:function(t){e.firstTab=t},expression:"firstTab"}},[i("el-tab-pane",{attrs:{name:"componentLib"}},[i("span",{attrs:{slot:"label"},slot:"label"},[i("i",{staticClass:"el-icon-set-up"}),e._v(" "+e._s(e.i18nt("designer.componentLib")))]),i("el-collapse",{staticClass:"widget-collapse",model:{value:e.activeNames,callback:function(t){e.activeNames=t},expression:"activeNames"}},[i("el-collapse-item",{attrs:{name:"1",title:e.i18nt("designer.containerTitle")}},[i("draggable",{attrs:{tag:"ul",list:e.containers,group:{name:"dragGroup",pull:"clone",put:!1},clone:e.handleContainerWidgetClone,"ghost-class":"ghost",sort:!1,move:e.checkContainerMove},on:{end:e.onContainerDragEnd}},e._l(e.containers,(function(t,n){return i("li",{key:n,staticClass:"container-widget-item",attrs:{title:t.displayName},on:{dblclick:function(i){return e.addContainerByDbClick(t)}}},[i("span",[i("svg-icon",{attrs:{"icon-class":t.icon,"class-name":"color-svg-icon"}}),e._v(e._s(e.i18n2t("designer.widgetLabel."+t.type,"extension.widgetLabel."+t.type)))],1)])})),0)],1),i("el-collapse-item",{attrs:{name:"2",title:e.i18nt("designer.basicFieldTitle")}},[i("draggable",{attrs:{tag:"ul",list:e.basicFields,group:{name:"dragGroup",pull:"clone",put:!1},move:e.checkFieldMove,clone:e.handleFieldWidgetClone,"ghost-class":"ghost",sort:!1}},e._l(e.basicFields,(function(t,n){return i("li",{key:n,staticClass:"field-widget-item",attrs:{title:t.displayName},on:{dblclick:function(i){return e.addFieldByDbClick(t)}}},[i("span",[i("svg-icon",{attrs:{"icon-class":t.icon,"class-name":"color-svg-icon"}}),e._v(e._s(e.i18n2t("designer.widgetLabel."+t.type,"extension.widgetLabel."+t.type)))],1)])})),0)],1),i("el-collapse-item",{attrs:{name:"3",title:e.i18nt("designer.advancedFieldTitle")}},[i("draggable",{attrs:{tag:"ul",list:e.advancedFields,group:{name:"dragGroup",pull:"clone",put:!1},move:e.checkFieldMove,clone:e.handleFieldWidgetClone,"ghost-class":"ghost",sort:!1}},e._l(e.advancedFields,(function(t,n){return i("li",{key:n,staticClass:"field-widget-item",attrs:{title:t.displayName},on:{dblclick:function(i){return e.addFieldByDbClick(t)}}},[i("span",[i("svg-icon",{attrs:{"icon-class":t.icon,"class-name":"color-svg-icon"}}),e._v(e._s(e.i18n2t("designer.widgetLabel."+t.type,"extension.widgetLabel."+t.type)))],1)])})),0)],1),i("el-collapse-item",{attrs:{name:"4",title:e.i18nt("designer.customFieldTitle")}},[i("draggable",{attrs:{tag:"ul",list:e.customFields,group:{name:"dragGroup",pull:"clone",put:!1},move:e.checkFieldMove,clone:e.handleFieldWidgetClone,"ghost-class":"ghost",sort:!1}},e._l(e.customFields,(function(t,n){return i("li",{key:n,staticClass:"field-widget-item",attrs:{title:t.displayName},on:{dblclick:function(i){return e.addFieldByDbClick(t)}}},[i("span",[i("svg-icon",{attrs:{"icon-class":t.icon,"class-name":"color-svg-icon"}}),e._v(e._s(e.i18n2t("designer.widgetLabel."+t.type,"extension.widgetLabel."+t.type)))],1)])})),0)],1)],1)],1),e.showFormTemplates()?i("el-tab-pane",{staticStyle:{padding:"8px"},attrs:{name:"formLib"}},[i("span",{attrs:{slot:"label"},slot:"label"},[i("i",{staticClass:"el-icon-c-scale-to-original"}),e._v(" "+e._s(e.i18nt("designer.formLib")))]),e._l(e.formTemplates,(function(t,n){return[i("el-card",{key:n,staticClass:"ft-card",attrs:{"bord-style":{padding:"0"},shadow:"hover"}},[i("el-popover",{attrs:{placement:"right",trigger:"hover"}},[i("img",{staticStyle:{width:"200px"},attrs:{slot:"reference",src:t.imgUrl},slot:"reference"}),i("img",{staticStyle:{height:"600px",width:"720px"},attrs:{src:t.imgUrl}})]),i("div",{staticClass:"bottom clear-fix"},[i("span",{staticClass:"ft-title"},[e._v("#"+e._s(n+1)+" "+e._s(t.title))]),i("el-button",{staticClass:"right-button",attrs:{type:"text"},on:{click:function(i){return e.loadFormTemplate(t.jsonUrl)}}},[e._v(" "+e._s(e.i18nt("designer.hint.loadFormTemplate")))])],1)],1)]}))],2):e._e()],1)],1)])}),u=[],f=i("5530"),p=(i("4de4"),i("d81d"),i("b76a")),m=i.n(p),g=[{type:"grid",category:"container",icon:"grid",cols:[],options:{name:"",hidden:!1,gutter:12,colHeight:null,customClass:""}},{type:"table",category:"container",icon:"table",rows:[],options:{name:"",hidden:!1,customClass:""}},{type:"tab",category:"container",icon:"tab",displayType:"border-card",tabs:[],options:{name:"",hidden:!1,customClass:""}},{type:"grid-col",category:"container",icon:"grid-col",internal:!0,widgetList:[],options:{name:"",hidden:!1,span:12,offset:0,push:0,pull:0,responsive:!1,md:12,sm:12,xs:12,customClass:""}},{type:"table-cell",category:"container",icon:"table-cell",internal:!0,widgetList:[],merged:!1,options:{name:"",cellWidth:"",cellHeight:"",colspan:1,rowspan:1,customClass:""}},{type:"tab-pane",category:"container",icon:"tab-pane",internal:!0,widgetList:[],options:{name:"",label:"",hidden:!1,active:!1,disabled:!1,customClass:""}}],h=[{type:"input",icon:"text-field",formItemFlag:!0,options:{name:"",label:"",labelAlign:"",type:"text",defaultValue:"",placeholder:"",columnWidth:"200px",size:"",labelWidth:null,labelHidden:!1,readonly:!1,disabled:!1,hidden:!1,clearable:!0,showPassword:!1,required:!1,requiredHint:"",validation:"",validationHint:"",customClass:"",labelIconClass:null,labelIconPosition:"rear",labelTooltip:null,minLength:null,maxLength:null,showWordLimit:!1,prefixIcon:"",suffixIcon:"",appendButton:!1,appendButtonDisabled:!1,buttonIcon:"el-icon-search",onCreated:"",onMounted:"",onInput:"",onChange:"",onFocus:"",onBlur:"",onValidate:"",onAppendButtonClick:""}},{type:"textarea",icon:"textarea-field",formItemFlag:!0,options:{name:"",label:"",labelAlign:"",rows:3,defaultValue:"",placeholder:"",columnWidth:"200px",size:"",labelWidth:null,labelHidden:!1,readonly:!1,disabled:!1,hidden:!1,required:!1,requiredHint:"",validation:"",validationHint:"",customClass:"",labelIconClass:null,labelIconPosition:"rear",labelTooltip:null,minLength:null,maxLength:null,showWordLimit:!1,onCreated:"",onMounted:"",onInput:"",onChange:"",onFocus:"",onBlur:"",onValidate:""}},{type:"number",icon:"number-field",formItemFlag:!0,options:{name:"",label:"",labelAlign:"",defaultValue:0,placeholder:"",columnWidth:"200px",size:"",labelWidth:null,labelHidden:!1,disabled:!1,hidden:!1,required:!1,requiredHint:"",validation:"",validationHint:"",customClass:"",labelIconClass:null,labelIconPosition:"rear",labelTooltip:null,min:-1e11,max:1e11,precision:0,step:1,controlsPosition:"right",onCreated:"",onMounted:"",onChange:"",onFocus:"",onBlur:"",onValidate:""}},{type:"radio",icon:"radio-field",formItemFlag:!0,options:{name:"",label:"",labelAlign:"",defaultValue:null,columnWidth:"200px",size:"",displayStyle:"inline",buttonStyle:!1,border:!1,labelWidth:null,labelHidden:!1,disabled:!1,hidden:!1,optionItems:[{label:"radio 1",value:1},{label:"radio 2",value:2},{label:"radio 3",value:3}],required:!1,requiredHint:"",validation:"",validationHint:"",customClass:"",labelIconClass:null,labelIconPosition:"rear",labelTooltip:null,onCreated:"",onMounted:"",onChange:"",onValidate:""}},{type:"checkbox",icon:"checkbox-field",formItemFlag:!0,options:{name:"",label:"",labelAlign:"",defaultValue:[],columnWidth:"200px",size:"",displayStyle:"inline",buttonStyle:!1,border:!1,labelWidth:null,labelHidden:!1,disabled:!1,hidden:!1,optionItems:[{label:"check 1",value:1},{label:"check 2",value:2},{label:"check 3",value:3}],required:!1,requiredHint:"",validation:"",validationHint:"",customClass:"",labelIconClass:null,labelIconPosition:"rear",labelTooltip:null,onCreated:"",onMounted:"",onChange:"",onValidate:""}},{type:"select",icon:"select-field",formItemFlag:!0,options:{name:"",label:"",labelAlign:"",defaultValue:"",placeholder:"",columnWidth:"200px",size:"",labelWidth:null,labelHidden:!1,disabled:!1,hidden:!1,clearable:!0,filterable:!1,allowCreate:!1,remote:!1,automaticDropdown:!1,multiple:!1,multipleLimit:0,optionItems:[{label:"select 1",value:1},{label:"select 2",value:2},{label:"select 3",value:3}],required:!1,requiredHint:"",validation:"",validationHint:"",customClass:"",labelIconClass:null,labelIconPosition:"rear",labelTooltip:null,onCreated:"",onMounted:"",onRemoteQuery:"",onChange:"",onFocus:"",onBlur:"",onValidate:""}},{type:"time",icon:"time-field",formItemFlag:!0,options:{name:"",label:"",labelAlign:"",defaultValue:null,placeholder:"",columnWidth:"200px",size:"",labelWidth:null,labelHidden:!1,readonly:!1,disabled:!1,hidden:!1,clearable:!0,editable:!1,format:"HH:mm:ss",required:!1,requiredHint:"",validation:"",validationHint:"",customClass:"",labelIconClass:null,labelIconPosition:"rear",labelTooltip:null,onCreated:"",onMounted:"",onChange:"",onFocus:"",onBlur:"",onValidate:""}},{type:"time-range",icon:"time-range-field",formItemFlag:!0,options:{name:"",label:"",labelAlign:"",defaultValue:null,startPlaceholder:"",endPlaceholder:"",columnWidth:"200px",size:"",labelWidth:null,labelHidden:!1,readonly:!1,disabled:!1,hidden:!1,clearable:!0,editable:!1,format:"HH:mm:ss",required:!1,requiredHint:"",validation:"",validationHint:"",customClass:"",labelIconClass:null,labelIconPosition:"rear",labelTooltip:null,onCreated:"",onMounted:"",onChange:"",onFocus:"",onBlur:"",onValidate:""}},{type:"date",icon:"date-field",formItemFlag:!0,options:{name:"",label:"",labelAlign:"",type:"date",defaultValue:null,placeholder:"",columnWidth:"200px",size:"",labelWidth:null,labelHidden:!1,readonly:!1,disabled:!1,hidden:!1,clearable:!0,editable:!1,format:"yyyy-MM-dd",valueFormat:"yyyy-MM-dd",required:!1,requiredHint:"",validation:"",validationHint:"",customClass:"",labelIconClass:null,labelIconPosition:"rear",labelTooltip:null,onCreated:"",onMounted:"",onChange:"",onFocus:"",onBlur:"",onValidate:""}},{type:"date-range",icon:"date-range-field",formItemFlag:!0,options:{name:"",label:"",labelAlign:"",type:"daterange",defaultValue:null,startPlaceholder:"",endPlaceholder:"",columnWidth:"200px",size:"",labelWidth:null,labelHidden:!1,readonly:!1,disabled:!1,hidden:!1,clearable:!0,editable:!1,format:"yyyy-MM-dd",valueFormat:"yyyy-MM-dd",required:!1,requiredHint:"",validation:"",validationHint:"",customClass:"",labelIconClass:null,labelIconPosition:"rear",labelTooltip:null,onCreated:"",onMounted:"",onChange:"",onFocus:"",onBlur:"",onValidate:""}},{type:"switch",icon:"switch-field",formItemFlag:!0,options:{name:"",label:"",labelAlign:"",defaultValue:null,columnWidth:"200px",labelWidth:null,labelHidden:!1,disabled:!1,hidden:!1,customClass:"",labelIconClass:null,labelIconPosition:"rear",labelTooltip:null,switchWidth:40,activeText:"",inactiveText:"",activeColor:null,inactiveColor:null,onCreated:"",onMounted:"",onChange:"",onValidate:""}},{type:"rate",icon:"rate-field",formItemFlag:!0,options:{name:"",label:"",labelAlign:"",defaultValue:null,columnWidth:"200px",labelWidth:null,labelHidden:!1,disabled:!1,hidden:!1,required:!1,requiredHint:"",validation:"",validationHint:"",customClass:"",labelIconClass:null,labelIconPosition:"rear",labelTooltip:null,max:5,lowThreshold:2,highThreshold:4,allowHalf:!1,showText:!1,showScore:!1,onCreated:"",onMounted:"",onChange:"",onValidate:""}},{type:"color",icon:"color-field",formItemFlag:!0,options:{name:"",label:"",labelAlign:"",defaultValue:null,columnWidth:"200px",size:"",labelWidth:null,labelHidden:!1,disabled:!1,hidden:!1,required:!1,requiredHint:"",validation:"",validationHint:"",customClass:"",labelIconClass:null,labelIconPosition:"rear",labelTooltip:null,onCreated:"",onMounted:"",onChange:"",onValidate:""}},{type:"slider",icon:"slider-field",formItemFlag:!0,options:{name:"",label:"",labelAlign:"",columnWidth:"200px",showStops:!0,size:"",labelWidth:null,labelHidden:!1,disabled:!1,hidden:!1,required:!1,requiredHint:"",validation:"",validationHint:"",customClass:"",labelIconClass:null,labelIconPosition:"rear",labelTooltip:null,min:0,max:100,step:10,range:!1,height:null,onCreated:"",onMounted:"",onChange:"",onValidate:""}},{type:"static-text",icon:"static-text",formItemFlag:!1,options:{name:"",columnWidth:"200px",hidden:!1,textContent:"static text",fontSize:"13px",customClass:"",onCreated:"",onMounted:""}},{type:"html-text",icon:"html-text",formItemFlag:!1,options:{name:"",columnWidth:"200px",hidden:!1,htmlContent:"html text",customClass:"",onCreated:"",onMounted:""}},{type:"button",icon:"button",formItemFlag:!1,options:{name:"",label:"",columnWidth:"200px",size:"",displayStyle:"block",disabled:!1,hidden:!1,type:"",plain:!1,round:!1,circle:!1,icon:null,customClass:"",onCreated:"",onMounted:"",onClick:""}},{type:"divider",icon:"divider",formItemFlag:!1,options:{name:"",label:"",columnWidth:"200px",direction:"horizontal",contentPosition:"center",hidden:!1,customClass:"",onCreated:"",onMounted:""}}],b=[{type:"picture-upload",icon:"picture-upload-field",formItemFlag:!0,options:{name:"",label:"",labelAlign:"",labelWidth:null,labelHidden:!1,columnWidth:"200px",disabled:!1,hidden:!1,required:!1,requiredHint:"",customRule:"",customRuleHint:"",uploadURL:"",uploadTip:"",withCredentials:!1,multipleSelect:!1,showFileList:!0,limit:3,fileMaxSize:5,fileTypes:["jpg","jpeg","png"],customClass:"",labelIconClass:null,labelIconPosition:"rear",labelTooltip:null,onCreated:"",onMounted:"",onBeforeUpload:"",onUploadSuccess:"",onUploadError:"",onFileRemove:"",onValidate:""}},{type:"file-upload",icon:"file-upload-field",formItemFlag:!0,options:{name:"",label:"",labelAlign:"",labelWidth:null,labelHidden:!1,columnWidth:"200px",disabled:!1,hidden:!1,required:!1,requiredHint:"",customRule:"",customRuleHint:"",uploadURL:"",uploadTip:"",withCredentials:!1,multipleSelect:!1,showFileList:!0,limit:3,fileMaxSize:5,fileTypes:["doc","docx","xls","xlsx"],customClass:"",labelIconClass:null,labelIconPosition:"rear",labelTooltip:null,onCreated:"",onMounted:"",onBeforeUpload:"",onUploadSuccess:"",onUploadError:"",onFileRemove:"",onValidate:""}},{type:"rich-editor",icon:"rich-editor-field",formItemFlag:!0,options:{name:"",label:"",labelAlign:"",placeholder:"",labelWidth:null,labelHidden:!1,columnWidth:"200px",disabled:!1,hidden:!1,required:!1,requiredHint:"",customRule:"",customRuleHint:"",customClass:"",labelIconClass:null,labelIconPosition:"rear",labelTooltip:null,minLength:null,maxLength:null,showWordLimit:!1,onCreated:"",onMounted:"",onValidate:""}},{type:"cascader",icon:"cascader-field",formItemFlag:!0,options:{name:"",label:"",labelAlign:"",defaultValue:"",placeholder:"",size:"",labelWidth:null,labelHidden:!1,columnWidth:"200px",disabled:!1,hidden:!1,clearable:!0,filterable:!1,multiple:!1,checkStrictly:!1,optionItems:[{label:"select 1",value:1,children:[{label:"child 1",value:11}]},{label:"select 2",value:2},{label:"select 3",value:3}],required:!1,requiredHint:"",customRule:"",customRuleHint:"",customClass:"",labelIconClass:null,labelIconPosition:"rear",labelTooltip:null,onCreated:"",onMounted:"",onChange:"",onFocus:"",onBlur:"",onValidate:""}}],v=[];function w(e){g.push(e)}function y(e){v.push(e)}var C=[{title:"单列表单",imgUrl:"https://ks3-cn-beijing.ksyuncs.com/vform-static/form-samples/t1.png",jsonUrl:"https://ks3-cn-beijing.ksyuncs.com/vform-static/form-samples/json1.txt",description:"表单模板详细说明..."},{title:"多列表单",imgUrl:"https://ks3-cn-beijing.ksyuncs.com/vform-static/form-samples/t2.png",jsonUrl:"https://ks3-cn-beijing.ksyuncs.com/vform-static/form-samples/json2.txt",description:"表单模板详细说明..."},{title:"分组表单",imgUrl:"https://ks3-cn-beijing.ksyuncs.com/vform-static/form-samples/t3.png",jsonUrl:"https://ks3-cn-beijing.ksyuncs.com/vform-static/form-samples/json3.txt",description:"表单模板详细说明..."},{title:"标签页表单",imgUrl:"https://ks3-cn-beijing.ksyuncs.com/vform-static/form-samples/t4.png",jsonUrl:"https://ks3-cn-beijing.ksyuncs.com/vform-static/form-samples/json4.txt",description:"表单模板详细说明..."},{title:"主从表单",imgUrl:"https://ks3-cn-beijing.ksyuncs.com/vform-static/form-samples/t5.png",jsonUrl:"https://ks3-cn-beijing.ksyuncs.com/vform-static/form-samples/json5.txt",description:"表单模板详细说明..."},{title:"响应式表单",imgUrl:"https://ks3-cn-beijing.ksyuncs.com/vform-static/form-samples/t6.png",jsonUrl:"https://ks3-cn-beijing.ksyuncs.com/vform-static/form-samples/json6.txt",description:"表单模板详细说明..."},{title:"问卷调查表",imgUrl:"https://ks3-cn-beijing.ksyuncs.com/vform-static/form-samples/t7.png",jsonUrl:"https://ks3-cn-beijing.ksyuncs.com/vform-static/form-samples/json7.txt",description:"表单模板详细说明..."},{title:"固定表格表单",imgUrl:"https://ks3-cn-beijing.ksyuncs.com/vform-static/form-samples/t8.png",jsonUrl:"https://ks3-cn-beijing.ksyuncs.com/vform-static/form-samples/json8.txt",description:"表单模板详细说明..."}],x=i("ca00"),_=i("79fa"),O={name:"FieldPanel",mixins:[_["b"]],components:{Draggable:m.a},props:{designer:Object},inject:["getBannedWidgets","getDesignerConfig"],data:function(){return{designerConfig:this.getDesignerConfig(),firstTab:"componentLib",scrollerHeight:0,activeNames:["1","2","3","4"],containers:g,basicFields:h,advancedFields:b,customFields:v,formTemplates:C}},computed:{},mounted:function(){var e=this;this.loadWidgets(),this.scrollerHeight=window.innerHeight-56+"px",Object(x["a"])((function(){e.$nextTick((function(){e.scrollerHeight=window.innerHeight-56+"px"}))}))},methods:{isBanned:function(e){return this.getBannedWidgets().indexOf(e)>-1},showFormTemplates:function(){return void 0===this.designerConfig["formTemplates"]||!!this.designerConfig["formTemplates"]},loadWidgets:function(){var e=this;this.containers=this.containers.map((function(t){return Object(f["a"])(Object(f["a"])({},t),{},{displayName:e.i18n2t("designer.widgetLabel.".concat(t.type),"extension.widgetLabel.".concat(t.type))})})).filter((function(t){return!t.internal&&!e.isBanned(t.type)})),this.basicFields=this.basicFields.map((function(t){return Object(f["a"])(Object(f["a"])({},t),{},{displayName:e.i18n2t("designer.widgetLabel.".concat(t.type),"extension.widgetLabel.".concat(t.type))})})).filter((function(t){return!e.isBanned(t.type)})),this.advancedFields=this.advancedFields.map((function(t){return Object(f["a"])(Object(f["a"])({},t),{},{displayName:e.i18n2t("designer.widgetLabel.".concat(t.type),"extension.widgetLabel.".concat(t.type))})})).filter((function(t){return!e.isBanned(t.type)})),this.customFields=this.customFields.map((function(t){return Object(f["a"])(Object(f["a"])({},t),{},{displayName:e.i18n2t("designer.widgetLabel.".concat(t.type),"extension.widgetLabel.".concat(t.type))})})).filter((function(t){return!e.isBanned(t.type)}))},handleContainerWidgetClone:function(e){return this.designer.copyNewContainerWidget(e)},handleFieldWidgetClone:function(e){return this.designer.copyNewFieldWidget(e)},checkContainerMove:function(e){return this.designer.checkWidgetMove(e)},checkFieldMove:function(e){return this.designer.checkFieldMove(e)},onContainerDragEnd:function(e){},addContainerByDbClick:function(e){this.designer.addContainerByDbClick(e)},addFieldByDbClick:function(e){this.designer.addFieldByDbClick(e)},loadFormTemplate:function(e){var t=this;this.$confirm(this.i18nt("designer.hint.loadFormTemplateHint"),this.i18nt("render.hint.prompt"),{confirmButtonText:this.i18nt("render.hint.confirm"),cancelButtonText:this.i18nt("render.hint.cancel")}).then((function(){l.a.get(e).then((function(e){var i=!1;"string"===typeof e.data?i=t.designer.loadFormJson(JSON.parse(e.data)):e.data.constructor===Object&&(i=t.designer.loadFormJson(e.data)),i&&t.designer.emitHistoryChange(),t.$message.success(t.i18nt("designer.hint.loadFormTemplateSuccess"))})).catch((function(e){t.$message.error(t.i18nt("designer.hint.loadFormTemplateFailed")+":"+e)}))})).catch((function(e){console.error(e)}))}}},F=O,M=(i("d43b"),i("2877")),j=Object(M["a"])(F,c,u,!1,null,"c59cf5f6",null),L=j.exports,S=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"toolbar-container"},[i("div",{staticClass:"left-toolbar"},[i("el-button",{attrs:{type:"text",disabled:e.undoDisabled,title:e.i18nt("designer.toolbar.undoHint")},on:{click:e.undoHistory}},[i("svg-icon",{attrs:{"icon-class":"undo"}})],1),i("el-button",{attrs:{type:"text",disabled:e.redoDisabled,title:e.i18nt("designer.toolbar.redoHint")},on:{click:e.redoHistory}},[i("svg-icon",{attrs:{"icon-class":"redo"}})],1),i("el-button-group",{staticStyle:{"margin-left":"20px"}},[i("el-button",{attrs:{type:"PC"===e.layoutType?"info":""},on:{click:function(t){return e.changeLayoutType("PC")}}},[e._v(" "+e._s(e.i18nt("designer.toolbar.pcLayout")))]),i("el-button",{attrs:{type:"Pad"===e.layoutType?"info":""},on:{click:function(t){return e.changeLayoutType("Pad")}}},[e._v(" "+e._s(e.i18nt("designer.toolbar.padLayout")))]),i("el-button",{attrs:{type:"H5"===e.layoutType?"info":""},on:{click:function(t){return e.changeLayoutType("H5")}}},[e._v(" "+e._s(e.i18nt("designer.toolbar.mobileLayout")))])],1),i("el-button",{staticStyle:{"margin-left":"20px"},attrs:{type:"",title:e.i18nt("designer.toolbar.nodeTreeHint")},on:{click:e.showNodeTreeDrawer}},[i("svg-icon",{attrs:{"icon-class":"node-tree"}})],1)],1),i("el-drawer",{staticClass:"node-tree-drawer",attrs:{title:e.i18nt("designer.toolbar.nodeTreeTitle"),direction:"ltr",visible:e.showNodeTreeDrawerFlag,modal:!1,size:280,"destroy-on-close":!0},on:{"update:visible":function(t){e.showNodeTreeDrawerFlag=t}}},[i("el-tree",{ref:"nodeTree",staticClass:"node-tree",attrs:{data:e.nodeTreeData,"node-key":"id","default-expand-all":"","highlight-current":"","icon-class":"el-icon-arrow-right"},on:{"node-click":e.onNodeTreeClick}})],1),i("div",{staticClass:"right-toolbar",style:{width:e.toolbarWidth+"px"}},[i("div",{staticClass:"right-toolbar-con"},[e.showToolButton("clearDesignerButton")?i("el-button",{attrs:{type:"text"},on:{click:e.clearFormWidget}},[i("i",{staticClass:"el-icon-delete"}),e._v(e._s(e.i18nt("designer.toolbar.clear")))]):e._e(),e.showToolButton("previewFormButton")?i("el-button",{attrs:{type:"text"},on:{click:e.previewForm}},[i("i",{staticClass:"el-icon-view"}),e._v(e._s(e.i18nt("designer.toolbar.preview")))]):e._e(),e.showToolButton("generateSFCButton")?i("el-button",{attrs:{type:"text"},on:{click:e.generateSFC}},[i("svg-icon",{attrs:{"icon-class":"vue-sfc"}}),e._v(e._s(e.i18nt("designer.toolbar.generateSFC")))],1):e._e(),e._l(e.$slots,(function(t,i){return[e._t(i)]}))],2)]),e.showPreviewDialogFlag?i("el-dialog",{directives:[{name:"dialog-drag",rawName:"v-dialog-drag"}],staticClass:"small-padding-dialog",attrs:{title:e.i18nt("designer.toolbar.preview"),visible:e.showPreviewDialogFlag,"show-close":!0,"close-on-click-modal":!1,"close-on-press-escape":!1,center:"","destroy-on-close":!0,"append-to-body":!0,width:"75%",fullscreen:"H5"===e.layoutType||"Pad"===e.layoutType},on:{"update:visible":function(t){e.showPreviewDialogFlag=t}}},[i("div",[i("div",{staticClass:"form-render-wrapper",class:["H5"===e.layoutType?"h5-layout":"Pad"===e.layoutType?"pad-layout":""]},[i("VFormRender",{ref:"preForm",attrs:{"form-json":e.formJson,"form-data":e.testFormData,"preview-state":!0,"option-data":e.testOptionData},on:{appendButtonClick:e.testOnAppendButtonClick,buttonClick:e.testOnButtonClick,formChange:e.handleFormChange}})],1)]),i("code-editor",{staticStyle:{display:"none"},model:{value:e.testFunc,callback:function(t){e.testFunc=t},expression:"testFunc"}}),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{type:"primary"},on:{click:e.getFormData}},[e._v(e._s(e.i18nt("designer.hint.getFormData")))]),i("el-button",{attrs:{type:"primary"},on:{click:e.resetForm}},[e._v(e._s(e.i18nt("designer.hint.resetForm")))]),i("el-button",{attrs:{type:"primary"},on:{click:e.setFormDisabled}},[e._v(e._s(e.i18nt("designer.hint.disableForm")))]),i("el-button",{attrs:{type:"primary"},on:{click:e.setFormEnabled}},[e._v(e._s(e.i18nt("designer.hint.enableForm")))]),i("el-button",{attrs:{type:""},on:{click:function(t){e.showPreviewDialogFlag=!1}}},[e._v(e._s(e.i18nt("designer.hint.closePreview")))]),e._e(),e._e(),e._e()],1)],1):e._e(),e.showImportJsonDialogFlag?i("el-dialog",{directives:[{name:"dialog-drag",rawName:"v-dialog-drag"}],staticClass:"small-padding-dialog",attrs:{title:e.i18nt("designer.toolbar.importJson"),visible:e.showImportJsonDialogFlag,"show-close":!0,center:"","close-on-click-modal":!1,"close-on-press-escape":!1,"destroy-on-close":!0},on:{"update:visible":function(t){e.showImportJsonDialogFlag=t}}},[i("el-alert",{staticClass:"alert-padding",attrs:{type:"info",title:e.i18nt("designer.hint.importJsonHint"),"show-icon":""}}),i("code-editor",{attrs:{mode:"json",readonly:!1},model:{value:e.importTemplate,callback:function(t){e.importTemplate=t},expression:"importTemplate"}}),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{type:"primary"},on:{click:e.doJsonImport}},[e._v(" "+e._s(e.i18nt("designer.hint.import")))]),i("el-button",{on:{click:function(t){e.showImportJsonDialogFlag=!1}}},[e._v(" "+e._s(e.i18nt("designer.hint.cancel")))])],1)],1):e._e(),e.showExportJsonDialogFlag?i("el-dialog",{directives:[{name:"dialog-drag",rawName:"v-dialog-drag"}],staticClass:"small-padding-dialog",attrs:{title:e.i18nt("designer.toolbar.exportJson"),visible:e.showExportJsonDialogFlag,"show-close":!0,center:"","close-on-click-modal":!1,"close-on-press-escape":!1,"destroy-on-close":!0},on:{"update:visible":function(t){e.showExportJsonDialogFlag=t}}},[i("code-editor",{attrs:{mode:"json",readonly:!0},model:{value:e.jsonContent,callback:function(t){e.jsonContent=t},expression:"jsonContent"}}),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{staticClass:"copy-json-btn",attrs:{type:"primary","data-clipboard-text":e.jsonRawContent},on:{click:e.copyFormJson}},[e._v(" "+e._s(e.i18nt("designer.hint.copyJson")))]),i("el-button",{on:{click:e.saveFormJson}},[e._v(e._s(e.i18nt("designer.hint.saveFormJson")))]),i("el-button",{attrs:{type:""},on:{click:function(t){e.showExportJsonDialogFlag=!1}}},[e._v(" "+e._s(e.i18nt("designer.hint.closePreview")))])],1)],1):e._e(),e.showExportCodeDialogFlag?i("el-dialog",{directives:[{name:"dialog-drag",rawName:"v-dialog-drag"}],staticClass:"small-padding-dialog",attrs:{title:e.i18nt("designer.toolbar.exportCode"),visible:e.showExportCodeDialogFlag,"show-close":!0,center:"",width:"65%","close-on-click-modal":!1,"close-on-press-escape":!1,"destroy-on-close":!0},on:{"update:visible":function(t){e.showExportCodeDialogFlag=t}}},[i("el-tabs",{staticClass:"no-box-shadow no-padding",attrs:{type:"border-card"},model:{value:e.activeCodeTab,callback:function(t){e.activeCodeTab=t},expression:"activeCodeTab"}},[i("el-tab-pane",{attrs:{label:"Vue",name:"vue"}},[i("code-editor",{attrs:{mode:"html",readonly:!0,"user-worker":!1},model:{value:e.vueCode,callback:function(t){e.vueCode=t},expression:"vueCode"}})],1),i("el-tab-pane",{attrs:{label:"HTML",name:"html"}},[i("code-editor",{attrs:{mode:"html",readonly:!0,"user-worker":!1},model:{value:e.htmlCode,callback:function(t){e.htmlCode=t},expression:"htmlCode"}})],1)],1),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{staticClass:"copy-vue-btn",attrs:{type:"primary","data-clipboard-text":e.vueCode},on:{click:e.copyVueCode}},[e._v(" "+e._s(e.i18nt("designer.hint.copyVueCode")))]),i("el-button",{staticClass:"copy-html-btn",attrs:{type:"primary","data-clipboard-text":e.htmlCode},on:{click:e.copyHtmlCode}},[e._v(" "+e._s(e.i18nt("designer.hint.copyHtmlCode")))]),i("el-button",{on:{click:e.saveVueCode}},[e._v(e._s(e.i18nt("designer.hint.saveVueCode")))]),i("el-button",{on:{click:e.saveHtmlCode}},[e._v(e._s(e.i18nt("designer.hint.saveHtmlCode")))]),i("el-button",{attrs:{type:""},on:{click:function(t){e.showExportCodeDialogFlag=!1}}},[e._v(" "+e._s(e.i18nt("designer.hint.closePreview")))])],1)],1):e._e(),e.showFormDataDialogFlag?i("el-dialog",{directives:[{name:"dialog-drag",rawName:"v-dialog-drag"}],staticClass:"dialog-title-light-bg",attrs:{title:e.i18nt("designer.hint.exportFormData"),visible:e.showFormDataDialogFlag,"show-close":!0,center:"","close-on-click-modal":!1,"close-on-press-escape":!1,"destroy-on-close":!0,"append-to-body":!0},on:{"update:visible":function(t){e.showFormDataDialogFlag=t}}},[i("div",{staticStyle:{border:"1px solid #DCDFE6"}},[i("code-editor",{attrs:{mode:"json",readonly:!0},model:{value:e.formDataJson,callback:function(t){e.formDataJson=t},expression:"formDataJson"}})],1),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{staticClass:"copy-form-data-json-btn",attrs:{type:"primary","data-clipboard-text":e.formDataRawJson},on:{click:e.copyFormDataJson}},[e._v(" "+e._s(e.i18nt("designer.hint.copyFormData")))]),i("el-button",{on:{click:e.saveFormData}},[e._v(e._s(e.i18nt("designer.hint.saveFormData")))]),i("el-button",{attrs:{type:""},on:{click:function(t){e.showFormDataDialogFlag=!1}}},[e._v(" "+e._s(e.i18nt("designer.hint.closePreview")))])],1)]):e._e(),e.showExportSFCDialogFlag?i("el-dialog",{directives:[{name:"dialog-drag",rawName:"v-dialog-drag"}],staticClass:"small-padding-dialog",attrs:{title:e.i18nt("designer.toolbar.generateSFC"),visible:e.showExportSFCDialogFlag,"show-close":!0,center:"",width:"65%","close-on-click-modal":!1,"close-on-press-escape":!1,"destroy-on-close":!0},on:{"update:visible":function(t){e.showExportSFCDialogFlag=t}}},[i("el-tabs",{staticClass:"no-box-shadow no-padding",attrs:{type:"border-card"},model:{value:e.activeSFCTab,callback:function(t){e.activeSFCTab=t},expression:"activeSFCTab"}},[i("el-tab-pane",{attrs:{label:"Vue2",name:"vue2"}},[i("code-editor",{attrs:{mode:"html",readonly:!0,"user-worker":!1},model:{value:e.sfcCode,callback:function(t){e.sfcCode=t},expression:"sfcCode"}})],1),i("el-tab-pane",{attrs:{label:"Vue3",name:"vue3"}},[i("code-editor",{attrs:{mode:"html",readonly:!0,"user-worker":!1},model:{value:e.sfcCodeV3,callback:function(t){e.sfcCodeV3=t},expression:"sfcCodeV3"}})],1)],1),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{staticClass:"copy-vue2-sfc-btn",attrs:{type:"primary","data-clipboard-text":e.sfcCode},on:{click:e.copyV2SFC}},[e._v(" "+e._s(e.i18nt("designer.hint.copyVue2SFC")))]),i("el-button",{staticClass:"copy-vue3-sfc-btn",attrs:{type:"primary","data-clipboard-text":e.sfcCodeV3},on:{click:e.copyV3SFC}},[e._v(" "+e._s(e.i18nt("designer.hint.copyVue3SFC")))]),i("el-button",{on:{click:e.saveV2SFC}},[e._v(e._s(e.i18nt("designer.hint.saveVue2SFC")))]),i("el-button",{on:{click:e.saveV3SFC}},[e._v(e._s(e.i18nt("designer.hint.saveVue3SFC")))]),i("el-button",{attrs:{type:""},on:{click:function(t){e.showExportSFCDialogFlag=!1}}},[e._v(" "+e._s(e.i18nt("designer.hint.closePreview")))])],1)],1):e._e()],1)},k=[],W=(i("b0c0"),i("e9c4"),function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-form",{ref:"renderForm",staticClass:"render-form",class:[e.customClass],attrs:{"label-position":e.labelPosition,size:e.size,"label-width":e.labelWidth,"validate-on-rule-change":!1,model:e.formDataModel},nativeOn:{submit:function(e){e.preventDefault()}}},[e._l(e.widgetList,(function(t,n){return["container"===t.category?[i(e.getContainerWidgetName(t),{key:t.id,tag:"component",attrs:{widget:t,"parent-list":e.widgetList,"index-of-parent-list":n,"parent-widget":null},scopedSlots:e._u([e._l(Object.keys(e.$scopedSlots),(function(t){return{key:t,fn:function(i){return[e._t(t,null,null,i)]}}}))],null,!0)})]:[i(e.getWidgetName(t),{key:t.id,tag:"component",attrs:{field:t,"form-model":e.formDataModel,designer:null,"parent-list":e.widgetList,"index-of-parent-list":n,"parent-widget":null},scopedSlots:e._u([e._l(Object.keys(e.$scopedSlots),(function(t){return{key:t,fn:function(i){return[e._t(t,null,null,i)]}}}))],null,!0)})]]}))],2)}),E=[],D=i("2909"),I=(i("b64b"),i("c6e3")),R=(i("ddb0"),i("10ae"));R.keys().map((function(e){var t=R(e).default;n["default"].component(t.name,t)}));var T,P=i("c029"),H={name:"VFormRender",componentName:"VFormRender",mixins:[I["a"],_["b"]],components:Object(f["a"])({},P["a"]),props:{formJson:{type:Object,default:function(){return Object(x["b"])()}},formData:{type:Object,default:function(){return{}}},optionData:{type:Object,default:function(){return{}}},previewState:{type:Boolean,default:!1}},provide:function(){var e=this;return{refList:this.widgetRefList,sfRefList:this.subFormRefList,formConfig:this.formConfig,globalOptionData:this.optionData,getOptionData:function(){return e.optionData},globalModel:{formModel:this.formDataModel},previewState:this.previewState}},data:function(){return{formJsonObj:this.formJson,formDataModel:{},widgetRefList:{},subFormRefList:{},formId:null,externalComponents:{}}},computed:{formConfig:function(){return this.formJsonObj.formConfig},widgetList:function(){return this.formJsonObj.widgetList},labelPosition:function(){return this.formConfig&&this.formConfig.labelPosition?this.formConfig.labelPosition:"left"},labelWidth:function(){return this.formConfig&&this.formConfig.labelWidth?this.formConfig.labelWidth+"px":"80px"},size:function(){return this.formConfig&&this.formConfig.size?this.formConfig.size:"medium"},customClass:function(){return this.formConfig&&this.formConfig.customClass?this.formConfig.customClass:""}},watch:{},created:function(){this.buildFormModel(this.formJsonObj?this.formJsonObj.widgetList:null),this.initFormObject()},mounted:function(){this.initLocale(),this.handleOnMounted()},methods:{initFormObject:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.formId="vfRender"+Object(x["e"])(),e&&this.insertCustomStyleAndScriptNode(),this.addFieldChangeEventHandler(),this.addFieldValidateEventHandler(),this.registerFormToRefList(),this.handleOnCreated()},getContainerWidgetName:function(e){return e.type+"-item"},getWidgetName:function(e){return e.type+"-widget"},initLocale:function(){var e=localStorage.getItem("v_form_locale")||"zh-CN";this.changeLanguage(e)},insertCustomStyleAndScriptNode:function(){this.formConfig&&this.formConfig.cssCode&&Object(x["j"])(this.formConfig.cssCode,this.previewState?"":this.formId),this.formConfig&&this.formConfig.functions&&Object(x["k"])(this.formConfig.functions,this.previewState?"":this.formId)},buildFormModel:function(e){var t=this;e&&e.length>0&&e.forEach((function(e){t.buildDataFromWidget(e)}))},buildDataFromWidget:function(e){var t=this;if("container"===e.category)if("grid"===e.type)e.cols&&e.cols.length>0&&e.cols.forEach((function(e){t.buildDataFromWidget(e)}));else if("table"===e.type)e.rows&&e.rows.length>0&&e.rows.forEach((function(e){e.cols&&e.cols.length>0&&e.cols.forEach((function(e){t.buildDataFromWidget(e)}))}));else if("tab"===e.type)e.tabs&&e.tabs.length>0&&e.tabs.forEach((function(e){e.widgetList&&e.widgetList.length>0&&e.widgetList.forEach((function(e){t.buildDataFromWidget(e)}))}));else if("sub-form"===e.type){var i=e.options.name;if(this.formData.hasOwnProperty(i)){var n=this.formData[i];this.$set(this.formDataModel,i,Object(x["d"])(n))}else{var o={};e.options.showBlankRow?(e.widgetList.forEach((function(e){e.formItemFlag&&(o[e.options.name]=e.options.defaultValue)})),this.$set(this.formDataModel,i,[o])):this.$set(this.formDataModel,i,[])}}else"grid-col"===e.type||e.type,e.widgetList&&e.widgetList.length>0&&e.widgetList.forEach((function(e){t.buildDataFromWidget(e)}));else if(e.formItemFlag)if(this.formData.hasOwnProperty(e.options.name)){var l=this.formData[e.options.name];this.$set(this.formDataModel,e.options.name,Object(x["d"])(l))}else this.$set(this.formDataModel,e.options.name,e.options.defaultValue)},addFieldChangeEventHandler:function(){var e=this;this.$off("fieldChange"),this.$on("fieldChange",(function(t,i,n,o,l){e.handleFieldDataChange(t,i,n,o,l),e.$emit("formChange",t,i,n,e.formDataModel,o,l)}))},addFieldValidateEventHandler:function(){var e=this;this.$off("fieldValidation"),this.$on("fieldValidation",(function(t){e.$refs.renderForm.validateField(t)}))},registerFormToRefList:function(){this.widgetRefList["v_form_ref"]=this},handleFieldDataChange:function(e,t,i,n,o){if(this.formConfig&&this.formConfig.onFormDataChange){var l=new Function("fieldName","newValue","oldValue","formModel","subFormName","subFormRowIndex",this.formConfig.onFormDataChange);l.call(this,e,t,i,this.formDataModel,n,o)}},handleOnCreated:function(){if(this.formConfig&&this.formConfig.onFormCreated){var e=new Function(this.formConfig.onFormCreated);e.call(this)}},handleOnMounted:function(){if(this.formConfig&&this.formConfig.onFormMounted){var e=new Function(this.formConfig.onFormMounted);e.call(this)}},findWidgetAndSetDisabled:function(e,t){var i=this.getWidgetRef(e);i?i.setDisabled(t):this.findWidgetOfSubFormAndSetDisabled(e,t)},findWidgetOfSubFormAndSetDisabled:function(e,t){var i=this;this.findWidgetNameInSubForm(e).forEach((function(e){var n=i.getWidgetRef(e);n&&n.setDisabled(t)}))},findWidgetAndSetHidden:function(e,t){var i=this.getWidgetRef(e);i?i.setHidden(t):this.findWidgetOfSubFormAndSetHidden(e,t)},findWidgetOfSubFormAndSetHidden:function(e,t){var i=this;this.findWidgetNameInSubForm(e).forEach((function(e){var n=i.getWidgetRef(e);n&&n.setHidden(t)}))},findWidgetNameInSubForm:function(e){var t=[],i=null,n=function(t,n){t.options&&t.options.name===e&&(i=n.options.name)};if(Object(x["s"])(this.widgetList,n),i){var o=this.getWidgetRef(i);if(o){var l=o.getRowIdData();l&&l.length>0&&l.forEach((function(i){t.push(e+"@row"+i)}))}}return t},changeLanguage:function(e){Object(_["a"])(e)},getNativeForm:function(){return this.$refs["renderForm"]},getWidgetRef:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.widgetRefList[e];return!i&&t&&this.$message.error(this.i18nt("render.hint.refNotFound")+e),i},clearFormDataModel:function(){for(var e in this.formDataModel)delete this.formDataModel[e]},setFormJson:function(e){var t=this;if(e)if("string"===typeof e||e.constructor===Object){var i=null;if(i="string"===typeof e?JSON.parse(e):e,!i.formConfig||!i.widgetList)return void this.$message.error("Invalid format of form json.");this.clearFormDataModel(),this.buildFormModel(i.widgetList),this.$set(this.formJsonObj,"formConfig",i.formConfig),this._provided.formConfig=i.formConfig,this.$set(this.formJsonObj,"widgetList",i.widgetList),this.insertCustomStyleAndScriptNode(),this.$nextTick((function(){t.initFormObject(!1),t.handleOnMounted()}))}else this.$message.error("Set form json failed.")},reloadOptionData:function(e){var t=[];e&&"string"===typeof e?t=[e]:e&&Array.isArray(e)&&(t=Object(D["a"])(e)),this.broadcast("FieldWidget","reloadOptionItems",[t])},getFormData:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];if(!t)return this.formDataModel;var i=function(){},n=new window.Promise((function(e,t){i=function(i,n){n?t(n):e(i)}}));return this.$refs["renderForm"].validate((function(t){t?i(e.formDataModel):i(e.formDataModel,e.i18nt("render.hint.validationFailed"))})),n},setFormData:function(e){var t=this;Object.keys(this.formDataModel).forEach((function(i){e&&e.hasOwnProperty(i)&&(t.formDataModel[i]=Object(x["d"])(e[i]))})),this.broadcast("ContainerItem","setFormData",this.formDataModel),this.broadcast("FieldWidget","setFormData",this.formDataModel)},getFieldValue:function(e){var t=this,i=this.getWidgetRef(e);if(i&&i.getValue)return i.getValue();if(!i){var n=[];return this.findWidgetNameInSubForm(e).forEach((function(e){var i=t.getWidgetRef(e);i&&i.getValue&&n.push(i.getValue())})),n}},setFieldValue:function(e,t){var i=this,n=this.getWidgetRef(e);n&&n.setValue&&n.setValue(t),n||this.findWidgetNameInSubForm(e).forEach((function(e){var n=i.getWidgetRef(e);n&&n.setValue&&n.setValue(t)}))},getSubFormValues:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.subFormRefList[e];return i.getSubFormValues(t)},setSubFormValues:function(e,t){},disableForm:function(){var e=this,t=Object.keys(this.widgetRefList);t.forEach((function(t){var i=e.getWidgetRef(t);i&&(i.widget&&"sub-form"===i.widget.type?i.disableSubForm():i.setDisabled&&i.setDisabled(!0))}))},enableForm:function(){var e=this,t=Object.keys(this.widgetRefList);t.forEach((function(t){var i=e.getWidgetRef(t);i&&(i.widget&&"sub-form"===i.widget.type?i.enableSubForm():i.setDisabled&&i.setDisabled(!1))}))},resetForm:function(){var e=this,t=Object.keys(this.subFormRefList);t.forEach((function(t){e.subFormRefList[t].resetSubForm&&e.subFormRefList[t].resetSubForm()}));var i=Object.keys(this.widgetRefList);i.forEach((function(t){var i=e.getWidgetRef(t);i&&!i.subFormItemFlag&&i.resetField&&i.resetField()})),this.$nextTick((function(){e.clearValidate()}))},clearValidate:function(e){this.$refs.renderForm.clearValidate(e)},validateForm:function(e){this.$refs["renderForm"].validate((function(t){e(t)}))},validateFields:function(){},disableWidgets:function(e){var t=this;e&&("string"===typeof e?this.findWidgetAndSetDisabled(e,!0):Array.isArray(e)&&e.forEach((function(e){t.findWidgetAndSetDisabled(e,!0)})))},enableWidgets:function(e){var t=this;e&&("string"===typeof e?this.findWidgetAndSetDisabled(e,!1):Array.isArray(e)&&e.forEach((function(e){t.findWidgetAndSetDisabled(e,!1)})))},hideWidgets:function(e){var t=this;e&&("string"===typeof e?this.findWidgetAndSetHidden(e,!0):Array.isArray(e)&&e.forEach((function(e){t.findWidgetAndSetHidden(e,!0)})))},showWidgets:function(e){var t=this;e&&("string"===typeof e?this.findWidgetAndSetHidden(e,!1):Array.isArray(e)&&e.forEach((function(e){t.findWidgetAndSetHidden(e,!1)})))},getFieldWidgets:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return e?Object(x["g"])(e):Object(x["g"])(this.formJsonObj.widgetList)},getContainerWidgets:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return e?Object(x["f"])(e):Object(x["f"])(this.formJsonObj.widgetList)},addEC:function(e,t){this.externalComponents[e]=t},hasEC:function(e){return this.externalComponents.hasOwnProperty(e)},getEC:function(e){return this.externalComponents[e]}}},N=H,$=(i("5a4b"),Object(M["a"])(N,W,E,!1,null,"70ce788c",null)),V=$.exports,A=i("9470"),B=i("b311"),z=i.n(B),U=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"vue",i=JSON.stringify(e);return"html"===t?'\n\n\n\t\n\t\n\tVForm Demo\n\t\n\t\n\t\n\n\n\n
\n\t \n \n\t Submit\n
\n\n - - - - - - - - -
- - - diff --git a/resource/plug_template/api/api.go.tpl b/resource/plug_template/api/api.go.tpl deleted file mode 100644 index 989043e..0000000 --- a/resource/plug_template/api/api.go.tpl +++ /dev/null @@ -1,35 +0,0 @@ -package api - -import ( - "zc-admin/server/global" - "zc-admin/server/model/common/response" -{{ if .NeedModel }} "zc-admin/server/plugin/{{ .Snake}}/model" {{ end }} - "zc-admin/server/plugin/{{ .Snake}}/service" - "github.com/gin-gonic/gin" - "go.uber.org/zap" -) - -type {{ .PlugName}}Api struct{} - -// @Tags {{ .PlugName}} -// @Summary 请手动填写接口功能 -// @Produce application/json -// @Success 200 {string} string "{"success":true,"data":{},"msg":"发送成功"}" -// @Router /{{ .RouterGroup}}/routerName [post] -func (p *{{ .PlugName}}Api) ApiName(c *gin.Context) { - {{ if .HasRequest}} - var plug model.Request - _ = c.ShouldBindJSON(&plug) - {{ end }} - if {{ if .HasResponse }} res, {{ end }} err:= service.ServiceGroupApp.PlugService({{ if .HasRequest }}plug{{ end -}}); err != nil { - global.ZC_LOG.Error("失败!", zap.Error(err)) - response.FailWithMessage("失败", c) - } else { - {{if .HasResponse }} - response.OkWithDetailed(res,"成功",c) - {{else}} - response.OkWithData("成功", c) - {{ end -}} - - } -} diff --git a/resource/plug_template/api/enter.go.tpl b/resource/plug_template/api/enter.go.tpl deleted file mode 100644 index ca5687c..0000000 --- a/resource/plug_template/api/enter.go.tpl +++ /dev/null @@ -1,7 +0,0 @@ -package api - -type ApiGroup struct { - {{ .PlugName}}Api -} - -var ApiGroupApp = new(ApiGroup) diff --git a/resource/plug_template/config/config.go.tpl b/resource/plug_template/config/config.go.tpl deleted file mode 100644 index 0bd87bc..0000000 --- a/resource/plug_template/config/config.go.tpl +++ /dev/null @@ -1,9 +0,0 @@ -package config - -{{- if .HasGlobal }} -type {{ .PlugName }} struct { - {{- range .Global }} - {{ .Key }} {{ .Type }} {{- if ne .Desc "" }} // {{ .Desc }} {{ end -}} - {{- end }} -} -{{ end -}} \ No newline at end of file diff --git a/resource/plug_template/global/global.go.tpl b/resource/plug_template/global/global.go.tpl deleted file mode 100644 index 25e1968..0000000 --- a/resource/plug_template/global/global.go.tpl +++ /dev/null @@ -1,8 +0,0 @@ -package global - -{{- if .HasGlobal }} - -import "zc-admin/server/plugin/{{ .Snake}}/config" - -var GlobalConfig = new(config.{{ .PlugName}}) -{{ end -}} diff --git a/resource/plug_template/main.go.tpl b/resource/plug_template/main.go.tpl deleted file mode 100644 index 43b9999..0000000 --- a/resource/plug_template/main.go.tpl +++ /dev/null @@ -1,29 +0,0 @@ -package {{ .Snake}} - -import ( -{{- if .HasGlobal }} - "zc-admin/server/plugin/{{ .Snake}}/global" -{{- end }} - "zc-admin/server/plugin/{{ .Snake}}/router" - "github.com/gin-gonic/gin" -) - -type {{ .PlugName}}Plugin struct { -} - -func Create{{ .PlugName}}Plug({{- range .Global}} {{.Key}} {{.Type}}, {{- end }})*{{ .PlugName}}Plugin { -{{- if .HasGlobal }} - {{- range .Global}} - global.GlobalConfig.{{.Key}} = {{.Key}} - {{- end }} -{{ end }} - return &{{ .PlugName}}Plugin{} -} - -func (*{{ .PlugName}}Plugin) Register(group *gin.RouterGroup) { - router.RouterGroupApp.Init{{ .PlugName}}Router(group) -} - -func (*{{ .PlugName}}Plugin) RouterPath() string { - return "{{ .RouterGroup}}" -} diff --git a/resource/plug_template/model/model.go.tpl b/resource/plug_template/model/model.go.tpl deleted file mode 100644 index 137f147..0000000 --- a/resource/plug_template/model/model.go.tpl +++ /dev/null @@ -1,17 +0,0 @@ -package model - -{{- if .HasRequest }} -type Request struct { - {{- range .Request }} - {{ .Key }} {{ .Type }} {{- if ne .Desc "" }} // {{ .Desc }} {{ end -}} - {{- end }} -} -{{ end -}} - -{{- if .HasResponse }} -type Response struct { - {{- range .Response }} - {{ .Key }} {{ .Type }} {{- if ne .Desc "" }} // {{ .Desc }} {{ end -}} - {{- end }} -} -{{ end -}} diff --git a/resource/plug_template/router/enter.go.tpl b/resource/plug_template/router/enter.go.tpl deleted file mode 100644 index 70a9d6c..0000000 --- a/resource/plug_template/router/enter.go.tpl +++ /dev/null @@ -1,7 +0,0 @@ -package router - -type RouterGroup struct { - {{ .PlugName}}Router -} - -var RouterGroupApp = new(RouterGroup) diff --git a/resource/plug_template/router/router.go.tpl b/resource/plug_template/router/router.go.tpl deleted file mode 100644 index 362ed6c..0000000 --- a/resource/plug_template/router/router.go.tpl +++ /dev/null @@ -1,17 +0,0 @@ -package router - -import ( - "zc-admin/server/plugin/{{ .Snake}}/api" - "github.com/gin-gonic/gin" -) - -type {{ .PlugName}}Router struct { -} - -func (s *{{ .PlugName}}Router) Init{{ .PlugName}}Router(Router *gin.RouterGroup) { - plugRouter := Router - plugApi := api.ApiGroupApp.{{ .PlugName}}Api - { - plugRouter.POST("routerName", plugApi.ApiName) - } -} diff --git a/resource/plug_template/service/enter.go.tpl b/resource/plug_template/service/enter.go.tpl deleted file mode 100644 index 5f9e425..0000000 --- a/resource/plug_template/service/enter.go.tpl +++ /dev/null @@ -1,7 +0,0 @@ -package service - -type ServiceGroup struct { - {{ .PlugName}}Service -} - -var ServiceGroupApp = new(ServiceGroup) diff --git a/resource/plug_template/service/service.go.tpl b/resource/plug_template/service/service.go.tpl deleted file mode 100644 index c07f443..0000000 --- a/resource/plug_template/service/service.go.tpl +++ /dev/null @@ -1,14 +0,0 @@ -package service - - {{- if .NeedModel }} -import ( - "zc-admin/server/plugin/{{ .Snake}}/model" -) -{{ end }} - -type {{ .PlugName}}Service struct{} - -func (e *{{ .PlugName}}Service) PlugService({{- if .HasRequest }}req model.Request {{ end -}}) ({{- if .HasResponse }}res model.Response,{{ end -}} err error) { - // 写你的业务逻辑 - return {{- if .HasResponse }} res,{{ end }} nil -} diff --git a/router/system/enter.go b/router/system/enter.go index c3c2e01..13aae1a 100644 --- a/router/system/enter.go +++ b/router/system/enter.go @@ -8,7 +8,6 @@ type RouterGroup struct { MenuRouter UserRouter CasbinRouter - AutoCodeRouter AuthorityRouter DictionaryRouter OperationRecordRouter diff --git a/router/system/sys_auto_code.go b/router/system/sys_auto_code.go deleted file mode 100644 index 856f638..0000000 --- a/router/system/sys_auto_code.go +++ /dev/null @@ -1,25 +0,0 @@ -package system - -import ( - "github.com/gin-gonic/gin" - v1 "oplian/api/v1" -) - -type AutoCodeRouter struct{} - -func (s *AutoCodeRouter) InitAutoCodeRouter(Router *gin.RouterGroup) { - autoCodeRouter := Router.Group("autoCode") - autoCodeApi := v1.ApiGroupApp.SystemApiGroup.AutoCodeApi - { - autoCodeRouter.GET("getDB", autoCodeApi.GetDB) // Get database - autoCodeRouter.GET("getTables", autoCodeApi.GetTables) // Gets the tables for the corresponding database - autoCodeRouter.GET("getColumn", autoCodeApi.GetColumn) // Gets information about all fields of a specified table - autoCodeRouter.POST("preview", autoCodeApi.PreviewTemp) // Get a preview of the automatically created code - autoCodeRouter.POST("createTemp", autoCodeApi.CreateTemp) // Create automated code - autoCodeRouter.POST("createPackage", autoCodeApi.CreatePackage) // Create a package - autoCodeRouter.POST("getPackage", autoCodeApi.GetPackage) // Get package - autoCodeRouter.POST("delPackage", autoCodeApi.DelPackage) // Delete package - autoCodeRouter.POST("createPlug", autoCodeApi.AutoPlug) // Automatic plugin package template - autoCodeRouter.POST("installPlugin", autoCodeApi.InstallPlugin) // Automatic installation plug-in - } -} diff --git a/router/system/sys_auto_code_history.go b/router/system/sys_auto_code_history.go deleted file mode 100644 index 825de58..0000000 --- a/router/system/sys_auto_code_history.go +++ /dev/null @@ -1,19 +0,0 @@ -package system - -import ( - "github.com/gin-gonic/gin" - v1 "oplian/api/v1" -) - -type AutoCodeHistoryRouter struct{} - -func (s *AutoCodeRouter) InitAutoCodeHistoryRouter(Router *gin.RouterGroup) { - autoCodeHistoryRouter := Router.Group("autoCode") - autoCodeHistoryApi := v1.ApiGroupApp.SystemApiGroup.AutoCodeHistoryApi - { - autoCodeHistoryRouter.POST("getMeta", autoCodeHistoryApi.First) // Get meta information based on id - autoCodeHistoryRouter.POST("rollback", autoCodeHistoryApi.RollBack) // rollback - autoCodeHistoryRouter.POST("delSysHistory", autoCodeHistoryApi.Delete) // Delete the rollback record - autoCodeHistoryRouter.POST("getSysHistory", autoCodeHistoryApi.GetList) // Gets the rollback record page - } -} diff --git a/service/lotus/oplocal/sealing.go b/service/lotus/oplocal/sealing.go index b6a00ab..a173932 100644 --- a/service/lotus/oplocal/sealing.go +++ b/service/lotus/oplocal/sealing.go @@ -22,7 +22,6 @@ func (p *OpLotusService) SealingAbort(args *pb.FilRestWorker) error { for _, tk := range tasks { switch tk.TType { case define.AddPiece.String(), define.SealPreCommit1.String(): - //判断扇区状态 var actor, _ = strconv.ParseUint(tk.MinerId, 10, 64) log.Println("SealingAbort()", args.Host.Token, args.Host.Ip, actor, tk.SectorId, tk.Tid) if err := lotusrpc.FullApi.SealingAbort(args.Host.Token, args.Host.Ip, actor, tk.SectorId, tk.Tid); err != nil { diff --git a/service/lotus/oplocal/storage.go b/service/lotus/oplocal/storage.go index 5d64448..970c504 100644 --- a/service/lotus/oplocal/storage.go +++ b/service/lotus/oplocal/storage.go @@ -212,7 +212,7 @@ func (deploy StorageService) FindSealStorage(workerPath string, sector *pb.Secto continue } - count := PathSealCount.GetRun(path.Path, minerSector) + count := PathSealCount.GetRun(path.Path, minerSector, sector.ProofType) filepath.Walk(filepath.Join(path.Path, "/cache"), func(spath string, info fs.FileInfo, err error) error { if info == nil { @@ -420,14 +420,13 @@ func (deploy StorageService) FindAllSector(dir string, sectorPath []string, mine actor := utils.MinerActorID(miner) var wg sync.WaitGroup wg.Add(len(storages.StoragePaths)) + var ssize int64 = define.Ss32GiB for _, paths1 := range storages.StoragePaths { go func(paths LocalPath) { defer func() { wg.Done() }() - //扇区数量统计 - //startTime := time.Now() var wg1 sync.WaitGroup wg1.Add(len(sectorPath)) for _, sectorPathStr1 := range sectorPath { @@ -445,7 +444,7 @@ func (deploy StorageService) FindAllSector(dir string, sectorPath []string, mine if actorId == 0 { return nil } - + ssize = info.Size() switch sectorPathStr { case define.FTUnsealed.String(): go func() { @@ -487,10 +486,9 @@ func (deploy StorageService) FindAllSector(dir string, sectorPath []string, mine } wg1.Wait() - //log.Println("FindAllSector 扇区数量统计 耗时:", time.Now().Sub(startTime)) - - //扇区路径 - //startTime1 := time.Now() + if utils.DiskSpaceSufficientCount(paths.Path, uint64(ssize), PathSealCount.GetRun(paths.Path, "", uint64(ssize))) == 0 { + return + } var meta LocalStorageMeta cfgBuf, err := os.ReadFile(filepath.Join(paths.Path, define.SectorStoreConfig)) if err != nil { @@ -520,7 +518,6 @@ func (deploy StorageService) FindAllSector(dir string, sectorPath []string, mine return nil }) } - //log.Println("FindAllSector 扇区路径 耗时:", time.Now().Sub(startTime1)) }(paths1) } diff --git a/service/lotus/oplocal/struct.go b/service/lotus/oplocal/struct.go index 0cf216c..9a03721 100644 --- a/service/lotus/oplocal/struct.go +++ b/service/lotus/oplocal/struct.go @@ -3,6 +3,7 @@ package oplocal import ( "oplian/define" "oplian/service/pb" + "path/filepath" "sync" "time" ) @@ -110,7 +111,6 @@ func (s SealSectorDisk) Remove(sector string) { delete(s, sector) } - type DiskSealCount map[string]map[string]bool var dscLock sync.RWMutex @@ -121,7 +121,7 @@ func (d DiskSealCount) Get(path string) int { return len(d[path]) } -func (d DiskSealCount) GetRun(path string, sector string) int { +func (d DiskSealCount) GetRun(path string, sector string, ssize uint64) int { dscLock.RLock() defer dscLock.RUnlock() count := 0 @@ -130,7 +130,7 @@ func (d DiskSealCount) GetRun(path string, sector string) int { if sector == sect { continue } - if run { + if run && define.CacheFile.ProgressP1(filepath.Join(path, "/cache", sect), ssize) > 40 { count++ } } diff --git a/service/pb/slot_gateway.pb.go b/service/pb/slot_gateway.pb.go index ac43f53..edb9f18 100644 --- a/service/pb/slot_gateway.pb.go +++ b/service/pb/slot_gateway.pb.go @@ -31,117 +31,105 @@ var file_service_proto_slot_slot_gateway_proto_rawDesc = []byte{ 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x6c, 0x6f, 0x74, 0x2f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x81, 0x07, 0x0a, 0x0f, 0x53, 0x6c, 0x6f, 0x74, 0x47, - 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x41, 0x64, - 0x64, 0x55, 0x6e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x12, 0x0e, 0x2e, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x55, 0x6e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x32, 0x0a, 0x0f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x55, 0x6e, 0x73, 0x65, - 0x61, 0x6c, 0x65, 0x64, 0x12, 0x07, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x57, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x07, 0x2e, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x1a, 0x14, 0x2e, 0x43, 0x61, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x61, - 0x73, 0x6b, 0x4e, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x0f, 0x4d, 0x6f, - 0x64, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x12, 0x14, 0x2e, - 0x43, 0x61, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x49, - 0x6e, 0x66, 0x6f, 0x1a, 0x0c, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x73, - 0x67, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x43, 0x61, 0x72, 0x57, 0x6f, 0x72, - 0x6b, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x2e, - 0x43, 0x61, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0c, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x4d, 0x73, 0x67, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x75, - 0x6e, 0x43, 0x61, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0f, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x96, 0x06, 0x0a, 0x0f, 0x53, 0x6c, 0x6f, 0x74, 0x47, + 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x33, 0x0a, 0x10, 0x47, 0x65, + 0x74, 0x52, 0x75, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x07, + 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x14, 0x2e, 0x43, 0x61, 0x72, 0x57, 0x6f, 0x72, + 0x6b, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, + 0x37, 0x0a, 0x0f, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72, 0x54, 0x61, 0x73, 0x6b, + 0x4e, 0x6f, 0x12, 0x14, 0x2e, 0x43, 0x61, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x61, + 0x73, 0x6b, 0x4e, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0c, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x4d, 0x73, 0x67, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x43, + 0x61, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x12, 0x18, 0x2e, 0x43, 0x61, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x61, + 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0c, 0x2e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x73, 0x67, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x13, + 0x47, 0x65, 0x74, 0x52, 0x75, 0x6e, 0x43, 0x61, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x12, 0x0f, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x61, 0x72, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x18, 0x2e, 0x43, 0x61, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, + 0x12, 0x43, 0x0a, 0x17, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72, 0x54, 0x61, 0x73, + 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x2e, 0x43, 0x61, + 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x0c, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x4d, 0x73, 0x67, 0x22, 0x00, 0x12, 0x1f, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, + 0x12, 0x07, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x09, 0x2e, 0x52, 0x61, 0x6e, 0x64, + 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x61, 0x69, + 0x74, 0x43, 0x61, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0f, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x61, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x18, 0x2e, 0x43, 0x61, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x17, 0x4d, - 0x6f, 0x64, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x2e, 0x43, 0x61, 0x72, 0x57, 0x6f, 0x72, 0x6b, - 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, - 0x1a, 0x0c, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x73, 0x67, 0x22, 0x00, - 0x12, 0x1f, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x12, 0x07, 0x2e, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x09, 0x2e, 0x52, 0x61, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, - 0x00, 0x12, 0x43, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x61, 0x69, 0x74, 0x43, 0x61, 0x72, 0x54, - 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0f, 0x2e, 0x57, 0x6f, 0x72, 0x6b, - 0x65, 0x72, 0x43, 0x61, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x18, 0x2e, 0x43, 0x61, 0x72, - 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, - 0x43, 0x61, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0f, 0x2e, - 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x61, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x18, - 0x2e, 0x43, 0x61, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, 0x24, 0x0a, 0x0e, 0x47, 0x65, - 0x74, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x07, 0x2e, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x07, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x00, - 0x12, 0x21, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x12, - 0x07, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x07, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x22, 0x00, 0x12, 0x2a, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x07, 0x2e, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x07, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x00, 0x12, - 0x20, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x43, 0x61, 0x72, 0x52, 0x61, 0x6e, 0x64, 0x12, 0x07, 0x2e, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x07, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, - 0x00, 0x12, 0x24, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x45, 0x78, 0x69, 0x73, - 0x74, 0x12, 0x09, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x1a, 0x07, 0x2e, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x22, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x43, 0x61, - 0x72, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x09, 0x2e, 0x43, 0x61, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x73, - 0x1a, 0x07, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x0f, 0x52, - 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x10, - 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x07, 0x5a, 0x05, 0x2e, 0x2f, - 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x13, 0x47, + 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x12, 0x0f, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x61, 0x72, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x1a, 0x18, 0x2e, 0x43, 0x61, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, + 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x12, + 0x24, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x07, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x07, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x21, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x69, 0x6e, + 0x44, 0x69, 0x73, 0x6b, 0x12, 0x07, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x07, 0x2e, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x2a, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, + 0x12, 0x07, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x07, 0x2e, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x22, 0x00, 0x12, 0x20, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x43, 0x61, 0x72, 0x52, 0x61, + 0x6e, 0x64, 0x12, 0x07, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0x07, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x24, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x46, 0x69, 0x6c, + 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x09, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x49, + 0x44, 0x1a, 0x07, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x00, 0x12, 0x22, 0x0a, 0x0a, + 0x41, 0x64, 0x64, 0x43, 0x61, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x09, 0x2e, 0x43, 0x61, 0x72, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x07, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x00, + 0x12, 0x3d, 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x46, + 0x69, 0x6c, 0x65, 0x12, 0x10, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x46, 0x69, 0x6c, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, + 0x07, 0x5a, 0x05, 0x2e, 0x2f, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_service_proto_slot_slot_gateway_proto_goTypes = []interface{}{ - (*BatchUnsealed)(nil), // 0: batchUnsealed - (*String)(nil), // 1: String - (*CarWorkerTaskNoInfo)(nil), // 2: CarWorkerTaskNoInfo - (*CarWorkerTaskDetailInfo)(nil), // 3: CarWorkerTaskDetailInfo - (*WorkerCarParam)(nil), // 4: WorkerCarParam - (*SectorID)(nil), // 5: SectorID - (*CarFiles)(nil), // 6: CarFiles - (*ReplaceFileInfo)(nil), // 7: ReplaceFileInfo - (*emptypb.Empty)(nil), // 8: google.protobuf.Empty - (*ResponseMsg)(nil), // 9: ResponseMsg - (*RandList)(nil), // 10: RandList - (*CarWorkerTaskDetailList)(nil), // 11: CarWorkerTaskDetailList + (*String)(nil), // 0: String + (*CarWorkerTaskNoInfo)(nil), // 1: CarWorkerTaskNoInfo + (*CarWorkerTaskDetailInfo)(nil), // 2: CarWorkerTaskDetailInfo + (*WorkerCarParam)(nil), // 3: WorkerCarParam + (*SectorID)(nil), // 4: SectorID + (*CarFiles)(nil), // 5: CarFiles + (*ReplaceFileInfo)(nil), // 6: ReplaceFileInfo + (*ResponseMsg)(nil), // 7: ResponseMsg + (*RandList)(nil), // 8: RandList + (*CarWorkerTaskDetailList)(nil), // 9: CarWorkerTaskDetailList + (*emptypb.Empty)(nil), // 10: google.protobuf.Empty } var file_service_proto_slot_slot_gateway_proto_depIdxs = []int32{ - 0, // 0: SlotGateService.AddUnsealed:input_type -> batchUnsealed - 1, // 1: SlotGateService.InstallUnsealed:input_type -> String - 1, // 2: SlotGateService.GetRunWorkerTask:input_type -> String - 2, // 3: SlotGateService.ModifyCarTaskNo:input_type -> CarWorkerTaskNoInfo - 3, // 4: SlotGateService.AddCarWorkerTaskDetail:input_type -> CarWorkerTaskDetailInfo - 4, // 5: SlotGateService.GetRunCarTaskDetail:input_type -> WorkerCarParam - 3, // 6: SlotGateService.ModifyCarTaskDetailInfo:input_type -> CarWorkerTaskDetailInfo - 1, // 7: SlotGateService.GetRand:input_type -> String - 4, // 8: SlotGateService.GetWaitCarTaskDetail:input_type -> WorkerCarParam - 4, // 9: SlotGateService.GetAllCarTaskDetail:input_type -> WorkerCarParam - 1, // 10: SlotGateService.GetBoostConfig:input_type -> String - 1, // 11: SlotGateService.GetMainDisk:input_type -> String - 1, // 12: SlotGateService.DistributeWorkerTask:input_type -> String - 1, // 13: SlotGateService.AddCarRand:input_type -> String - 5, // 14: SlotGateService.CarFileExist:input_type -> SectorID - 6, // 15: SlotGateService.AddCarFile:input_type -> CarFiles - 7, // 16: SlotGateService.ReplacePlugFile:input_type -> ReplaceFileInfo - 8, // 17: SlotGateService.AddUnsealed:output_type -> google.protobuf.Empty - 8, // 18: SlotGateService.InstallUnsealed:output_type -> google.protobuf.Empty - 2, // 19: SlotGateService.GetRunWorkerTask:output_type -> CarWorkerTaskNoInfo - 9, // 20: SlotGateService.ModifyCarTaskNo:output_type -> ResponseMsg - 9, // 21: SlotGateService.AddCarWorkerTaskDetail:output_type -> ResponseMsg - 3, // 22: SlotGateService.GetRunCarTaskDetail:output_type -> CarWorkerTaskDetailInfo - 9, // 23: SlotGateService.ModifyCarTaskDetailInfo:output_type -> ResponseMsg - 10, // 24: SlotGateService.GetRand:output_type -> RandList - 3, // 25: SlotGateService.GetWaitCarTaskDetail:output_type -> CarWorkerTaskDetailInfo - 11, // 26: SlotGateService.GetAllCarTaskDetail:output_type -> CarWorkerTaskDetailList - 1, // 27: SlotGateService.GetBoostConfig:output_type -> String - 1, // 28: SlotGateService.GetMainDisk:output_type -> String - 1, // 29: SlotGateService.DistributeWorkerTask:output_type -> String - 1, // 30: SlotGateService.AddCarRand:output_type -> String - 1, // 31: SlotGateService.CarFileExist:output_type -> String - 1, // 32: SlotGateService.AddCarFile:output_type -> String - 8, // 33: SlotGateService.ReplacePlugFile:output_type -> google.protobuf.Empty - 17, // [17:34] is the sub-list for method output_type - 0, // [0:17] is the sub-list for method input_type + 0, // 0: SlotGateService.GetRunWorkerTask:input_type -> String + 1, // 1: SlotGateService.ModifyCarTaskNo:input_type -> CarWorkerTaskNoInfo + 2, // 2: SlotGateService.AddCarWorkerTaskDetail:input_type -> CarWorkerTaskDetailInfo + 3, // 3: SlotGateService.GetRunCarTaskDetail:input_type -> WorkerCarParam + 2, // 4: SlotGateService.ModifyCarTaskDetailInfo:input_type -> CarWorkerTaskDetailInfo + 0, // 5: SlotGateService.GetRand:input_type -> String + 3, // 6: SlotGateService.GetWaitCarTaskDetail:input_type -> WorkerCarParam + 3, // 7: SlotGateService.GetAllCarTaskDetail:input_type -> WorkerCarParam + 0, // 8: SlotGateService.GetBoostConfig:input_type -> String + 0, // 9: SlotGateService.GetMainDisk:input_type -> String + 0, // 10: SlotGateService.DistributeWorkerTask:input_type -> String + 0, // 11: SlotGateService.AddCarRand:input_type -> String + 4, // 12: SlotGateService.CarFileExist:input_type -> SectorID + 5, // 13: SlotGateService.AddCarFile:input_type -> CarFiles + 6, // 14: SlotGateService.ReplacePlugFile:input_type -> ReplaceFileInfo + 1, // 15: SlotGateService.GetRunWorkerTask:output_type -> CarWorkerTaskNoInfo + 7, // 16: SlotGateService.ModifyCarTaskNo:output_type -> ResponseMsg + 7, // 17: SlotGateService.AddCarWorkerTaskDetail:output_type -> ResponseMsg + 2, // 18: SlotGateService.GetRunCarTaskDetail:output_type -> CarWorkerTaskDetailInfo + 7, // 19: SlotGateService.ModifyCarTaskDetailInfo:output_type -> ResponseMsg + 8, // 20: SlotGateService.GetRand:output_type -> RandList + 2, // 21: SlotGateService.GetWaitCarTaskDetail:output_type -> CarWorkerTaskDetailInfo + 9, // 22: SlotGateService.GetAllCarTaskDetail:output_type -> CarWorkerTaskDetailList + 0, // 23: SlotGateService.GetBoostConfig:output_type -> String + 0, // 24: SlotGateService.GetMainDisk:output_type -> String + 0, // 25: SlotGateService.DistributeWorkerTask:output_type -> String + 0, // 26: SlotGateService.AddCarRand:output_type -> String + 0, // 27: SlotGateService.CarFileExist:output_type -> String + 0, // 28: SlotGateService.AddCarFile:output_type -> String + 10, // 29: SlotGateService.ReplacePlugFile:output_type -> google.protobuf.Empty + 15, // [15:30] is the sub-list for method output_type + 0, // [0:15] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name diff --git a/service/pb/slot_gateway_grpc.pb.go b/service/pb/slot_gateway_grpc.pb.go index 8b44bb8..7826aa8 100644 --- a/service/pb/slot_gateway_grpc.pb.go +++ b/service/pb/slot_gateway_grpc.pb.go @@ -23,8 +23,6 @@ const _ = grpc.SupportPackageIsVersion7 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type SlotGateServiceClient interface { - AddUnsealed(ctx context.Context, in *BatchUnsealed, opts ...grpc.CallOption) (*emptypb.Empty, error) - InstallUnsealed(ctx context.Context, in *String, opts ...grpc.CallOption) (*emptypb.Empty, error) //workerCar RPC GetRunWorkerTask(ctx context.Context, in *String, opts ...grpc.CallOption) (*CarWorkerTaskNoInfo, error) ModifyCarTaskNo(ctx context.Context, in *CarWorkerTaskNoInfo, opts ...grpc.CallOption) (*ResponseMsg, error) @@ -51,24 +49,6 @@ func NewSlotGateServiceClient(cc grpc.ClientConnInterface) SlotGateServiceClient return &slotGateServiceClient{cc} } -func (c *slotGateServiceClient) AddUnsealed(ctx context.Context, in *BatchUnsealed, opts ...grpc.CallOption) (*emptypb.Empty, error) { - out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/SlotGateService/AddUnsealed", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *slotGateServiceClient) InstallUnsealed(ctx context.Context, in *String, opts ...grpc.CallOption) (*emptypb.Empty, error) { - out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/SlotGateService/InstallUnsealed", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *slotGateServiceClient) GetRunWorkerTask(ctx context.Context, in *String, opts ...grpc.CallOption) (*CarWorkerTaskNoInfo, error) { out := new(CarWorkerTaskNoInfo) err := c.cc.Invoke(ctx, "/SlotGateService/GetRunWorkerTask", in, out, opts...) @@ -208,8 +188,6 @@ func (c *slotGateServiceClient) ReplacePlugFile(ctx context.Context, in *Replace // All implementations should embed UnimplementedSlotGateServiceServer // for forward compatibility type SlotGateServiceServer interface { - AddUnsealed(context.Context, *BatchUnsealed) (*emptypb.Empty, error) - InstallUnsealed(context.Context, *String) (*emptypb.Empty, error) //workerCar RPC GetRunWorkerTask(context.Context, *String) (*CarWorkerTaskNoInfo, error) ModifyCarTaskNo(context.Context, *CarWorkerTaskNoInfo) (*ResponseMsg, error) @@ -232,12 +210,6 @@ type SlotGateServiceServer interface { type UnimplementedSlotGateServiceServer struct { } -func (UnimplementedSlotGateServiceServer) AddUnsealed(context.Context, *BatchUnsealed) (*emptypb.Empty, error) { - return nil, status.Errorf(codes.Unimplemented, "method AddUnsealed not implemented") -} -func (UnimplementedSlotGateServiceServer) InstallUnsealed(context.Context, *String) (*emptypb.Empty, error) { - return nil, status.Errorf(codes.Unimplemented, "method InstallUnsealed not implemented") -} func (UnimplementedSlotGateServiceServer) GetRunWorkerTask(context.Context, *String) (*CarWorkerTaskNoInfo, error) { return nil, status.Errorf(codes.Unimplemented, "method GetRunWorkerTask not implemented") } @@ -295,42 +267,6 @@ func RegisterSlotGateServiceServer(s grpc.ServiceRegistrar, srv SlotGateServiceS s.RegisterService(&SlotGateService_ServiceDesc, srv) } -func _SlotGateService_AddUnsealed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(BatchUnsealed) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(SlotGateServiceServer).AddUnsealed(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/SlotGateService/AddUnsealed", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(SlotGateServiceServer).AddUnsealed(ctx, req.(*BatchUnsealed)) - } - return interceptor(ctx, in, info, handler) -} - -func _SlotGateService_InstallUnsealed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(String) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(SlotGateServiceServer).InstallUnsealed(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/SlotGateService/InstallUnsealed", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(SlotGateServiceServer).InstallUnsealed(ctx, req.(*String)) - } - return interceptor(ctx, in, info, handler) -} - func _SlotGateService_GetRunWorkerTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(String) if err := dec(in); err != nil { @@ -608,14 +544,6 @@ var SlotGateService_ServiceDesc = grpc.ServiceDesc{ ServiceName: "SlotGateService", HandlerType: (*SlotGateServiceServer)(nil), Methods: []grpc.MethodDesc{ - { - MethodName: "AddUnsealed", - Handler: _SlotGateService_AddUnsealed_Handler, - }, - { - MethodName: "InstallUnsealed", - Handler: _SlotGateService_InstallUnsealed_Handler, - }, { MethodName: "GetRunWorkerTask", Handler: _SlotGateService_GetRunWorkerTask_Handler, diff --git a/service/proto/slot/slot_gateway.proto b/service/proto/slot/slot_gateway.proto index 0c3c95f..55c8954 100644 --- a/service/proto/slot/slot_gateway.proto +++ b/service/proto/slot/slot_gateway.proto @@ -5,8 +5,6 @@ import "service/proto/slot/slot_header.proto"; import "service/proto/header.proto"; service SlotGateService{ - rpc AddUnsealed (batchUnsealed) returns (google.protobuf.Empty); - rpc InstallUnsealed (String) returns (google.protobuf.Empty); //workerCar RPC rpc GetRunWorkerTask(String)returns (CarWorkerTaskNoInfo){} rpc ModifyCarTaskNo(CarWorkerTaskNoInfo)returns (ResponseMsg){} diff --git a/service/proto/slot/slot_op.proto b/service/proto/slot/slot_op.proto index c0b21e4..1fbbc8f 100644 --- a/service/proto/slot/slot_op.proto +++ b/service/proto/slot/slot_op.proto @@ -5,7 +5,6 @@ import "service/proto/slot/slot_header.proto"; import "service/proto/header.proto"; service SlotOpService{ - rpc AddUnsealed (batchUnsealed) returns (google.protobuf.Empty); //workerCar RPC rpc GetRunWorkerTask(String)returns (CarWorkerTaskNoInfo){} rpc ModifyCarTaskNo(CarWorkerTaskNoInfo)returns (ResponseMsg){} diff --git a/service/system/enter.go b/service/system/enter.go index 16b3128..da8e196 100644 --- a/service/system/enter.go +++ b/service/system/enter.go @@ -6,12 +6,10 @@ type ServiceGroup struct { UserService CasbinService InitDBService - AutoCodeService BaseMenuService AuthorityService DictionaryService SystemConfigService - AutoCodeHistoryService OperationRecordService DictionaryDetailService AuthorityBtnService diff --git a/service/system/sys_auto_code.go b/service/system/sys_auto_code.go deleted file mode 100644 index 32634a0..0000000 --- a/service/system/sys_auto_code.go +++ /dev/null @@ -1,886 +0,0 @@ -package system - -import ( - "bytes" - "encoding/json" - "errors" - "fmt" - "go/ast" - "go/format" - "go/parser" - "go/token" - "io" - "log" - "mime/multipart" - "os" - "path/filepath" - "strconv" - "strings" - "text/template" - - "go.uber.org/zap" - "golang.org/x/text/cases" - "golang.org/x/text/language" - - "oplian/resource/autocode_template/subcontract" - - "oplian/global" - "oplian/model/system" - "oplian/utils" - - "gorm.io/gorm" -) - -const ( - autoPath = "autocode_template/" - autocodePath = "resource/autocode_template" - plugPath = "resource/plug_template" - packageService = "service/%s/enter.go" - packageServiceName = "service" - packageRouter = "router/%s/enter.go" - packageRouterName = "router" - packageAPI = "api/v1/%s/enter.go" - packageAPIName = "api/v1" -) - -type autoPackage struct { - path string - temp string - name string -} - -var ( - packageInjectionMap map[string]astInjectionMeta - injectionPaths []injectionMeta - caser = cases.Title(language.English) -) - -func Init(Package string) { - injectionPaths = []injectionMeta{ - { - path: filepath.Join(global.ZC_CONFIG.AutoCode.Root, - global.ZC_CONFIG.AutoCode.Server, global.ZC_CONFIG.AutoCode.SInitialize, "gorm.go"), - funcName: "MysqlTables", - structNameF: Package + ".%s{},", - }, - { - path: filepath.Join(global.ZC_CONFIG.AutoCode.Root, - global.ZC_CONFIG.AutoCode.Server, global.ZC_CONFIG.AutoCode.SInitialize, "router.go"), - funcName: "Routers", - structNameF: Package + "Router.Init%sRouter(PrivateGroup)", - }, - { - path: filepath.Join(global.ZC_CONFIG.AutoCode.Root, - global.ZC_CONFIG.AutoCode.Server, fmt.Sprintf(global.ZC_CONFIG.AutoCode.SApi, Package), "enter.go"), - funcName: "ApiGroup", - structNameF: "%sApi", - }, - { - path: filepath.Join(global.ZC_CONFIG.AutoCode.Root, - global.ZC_CONFIG.AutoCode.Server, fmt.Sprintf(global.ZC_CONFIG.AutoCode.SRouter, Package), "enter.go"), - funcName: "RouterGroup", - structNameF: "%sRouter", - }, - { - path: filepath.Join(global.ZC_CONFIG.AutoCode.Root, - global.ZC_CONFIG.AutoCode.Server, fmt.Sprintf(global.ZC_CONFIG.AutoCode.SService, Package), "enter.go"), - funcName: "ServiceGroup", - structNameF: "%sService", - }, - } - - packageInjectionMap = map[string]astInjectionMeta{ - packageServiceName: { - path: filepath.Join(global.ZC_CONFIG.AutoCode.Root, - global.ZC_CONFIG.AutoCode.Server, "service", "enter.go"), - importCodeF: "oplian/%s/%s", - packageNameF: "%s", - groupName: "ServiceGroup", - structNameF: "%sServiceGroup", - }, - packageRouterName: { - path: filepath.Join(global.ZC_CONFIG.AutoCode.Root, - global.ZC_CONFIG.AutoCode.Server, "router", "enter.go"), - importCodeF: "oplian/%s/%s", - packageNameF: "%s", - groupName: "RouterGroup", - structNameF: "%s", - }, - packageAPIName: { - path: filepath.Join(global.ZC_CONFIG.AutoCode.Root, - global.ZC_CONFIG.AutoCode.Server, "api/v1", "enter.go"), - importCodeF: "oplian/%s/%s", - packageNameF: "%s", - groupName: "ApiGroup", - structNameF: "%sApiGroup", - }, - } -} - -type injectionMeta struct { - path string - funcName string - structNameF string -} - -type astInjectionMeta struct { - path string - importCodeF string - structNameF string - packageNameF string - groupName string -} - -type tplData struct { - template *template.Template - autoPackage string - locationPath string - autoCodePath string - autoMoveFilePath string -} - -type AutoCodeService struct{} - -var AutoCodeServiceApp = new(AutoCodeService) - -func (autoCodeService *AutoCodeService) PreviewTemp(autoCode system.AutoCodeStruct) (map[string]string, error) { - makeDictTypes(&autoCode) - for i := range autoCode.Fields { - if autoCode.Fields[i].FieldType == "time.Time" { - autoCode.HasTimer = true - break - } - if autoCode.Fields[i].Require { - autoCode.NeedValid = true - break - } - } - dataList, _, needMkdir, err := autoCodeService.getNeedList(&autoCode) - if err != nil { - return nil, err - } - - // Create a folder before writing files - if err = utils.CreateDir(needMkdir...); err != nil { - return nil, err - } - - // Create a map - ret := make(map[string]string) - - // Generate map - for _, value := range dataList { - ext := "" - if ext = filepath.Ext(value.autoCodePath); ext == ".txt" { - continue - } - f, err := os.OpenFile(value.autoCodePath, os.O_CREATE|os.O_WRONLY, 0o755) - if err != nil { - return nil, err - } - if err = value.template.Execute(f, autoCode); err != nil { - return nil, err - } - _ = f.Close() - f, err = os.OpenFile(value.autoCodePath, os.O_CREATE|os.O_RDONLY, 0o755) - if err != nil { - return nil, err - } - builder := strings.Builder{} - builder.WriteString("```") - - if ext != "" && strings.Contains(ext, ".") { - builder.WriteString(strings.Replace(ext, ".", "", -1)) - } - builder.WriteString("\n\n") - data, err := io.ReadAll(f) - if err != nil { - return nil, err - } - builder.Write(data) - builder.WriteString("\n\n```") - - pathArr := strings.Split(value.autoCodePath, string(os.PathSeparator)) - ret[pathArr[1]+"-"+pathArr[3]] = builder.String() - _ = f.Close() - - } - defer func() { - if err := os.RemoveAll(autoPath); err != nil { - return - } - }() - return ret, nil -} - -func makeDictTypes(autoCode *system.AutoCodeStruct) { - DictTypeM := make(map[string]string) - for _, v := range autoCode.Fields { - if v.DictType != "" { - DictTypeM[v.DictType] = "" - } - } - - for k := range DictTypeM { - autoCode.DictTypes = append(autoCode.DictTypes, k) - } -} - -func (autoCodeService *AutoCodeService) CreateTemp(autoCode system.AutoCodeStruct, ids ...uint) (err error) { - makeDictTypes(&autoCode) - for i := range autoCode.Fields { - if autoCode.Fields[i].FieldType == "time.Time" { - autoCode.HasTimer = true - break - } - if autoCode.Fields[i].Require { - autoCode.NeedValid = true - break - } - } - - if autoCode.AutoMoveFile && AutoCodeHistoryServiceApp.Repeat(autoCode.BusinessDB, autoCode.StructName, autoCode.Package) { - return RepeatErr - } - dataList, fileList, needMkdir, err := autoCodeService.getNeedList(&autoCode) - if err != nil { - return err - } - meta, _ := json.Marshal(autoCode) - - if err = utils.CreateDir(needMkdir...); err != nil { - return err - } - - for _, value := range dataList { - f, err := os.OpenFile(value.autoCodePath, os.O_CREATE|os.O_WRONLY, 0o755) - if err != nil { - return err - } - if err = value.template.Execute(f, autoCode); err != nil { - return err - } - _ = f.Close() - } - - defer func() { - if err := os.RemoveAll(autoPath); err != nil { - return - } - }() - bf := strings.Builder{} - idBf := strings.Builder{} - injectionCodeMeta := strings.Builder{} - for _, id := range ids { - idBf.WriteString(strconv.Itoa(int(id))) - idBf.WriteString(";") - } - if autoCode.AutoMoveFile { - Init(autoCode.Package) - for index := range dataList { - autoCodeService.addAutoMoveFile(&dataList[index]) - } - - for _, value := range dataList { - if utils.FileExist(value.autoMoveFilePath) { - return errors.New(fmt.Sprintf("the target file already exists:%s\n", value.autoMoveFilePath)) - } - } - for _, value := range dataList { - if err := utils.FileMove(value.autoCodePath, value.autoMoveFilePath); err != nil { - return err - } - } - err = injectionCode(autoCode.StructName, &injectionCodeMeta) - if err != nil { - return - } - // 保存生成信息 - for _, data := range dataList { - if len(data.autoMoveFilePath) != 0 { - bf.WriteString(data.autoMoveFilePath) - bf.WriteString(";") - } - } - - var gormPath = filepath.Join(global.ZC_CONFIG.AutoCode.Root, - global.ZC_CONFIG.AutoCode.Server, global.ZC_CONFIG.AutoCode.SInitialize, "gorm.go") - var routePath = filepath.Join(global.ZC_CONFIG.AutoCode.Root, - global.ZC_CONFIG.AutoCode.Server, global.ZC_CONFIG.AutoCode.SInitialize, "router.go") - var imporStr = fmt.Sprintf("oplian/model/%s", autoCode.Package) - _ = ImportReference(routePath, "", "", autoCode.Package, "") - _ = ImportReference(gormPath, imporStr, "", "", "") - - } else { - if err = utils.ZipFiles("./ginvueadmin.zip", fileList, ".", "."); err != nil { - return err - } - } - if autoCode.AutoMoveFile || autoCode.AutoCreateApiToSql { - if autoCode.TableName != "" { - err = AutoCodeHistoryServiceApp.CreateAutoCodeHistory( - string(meta), - autoCode.StructName, - autoCode.Description, - bf.String(), - injectionCodeMeta.String(), - autoCode.TableName, - idBf.String(), - autoCode.Package, - ) - } else { - err = AutoCodeHistoryServiceApp.CreateAutoCodeHistory( - string(meta), - autoCode.StructName, - autoCode.Description, - bf.String(), - injectionCodeMeta.String(), - autoCode.StructName, - idBf.String(), - autoCode.Package, - ) - } - } - if err != nil { - return err - } - if autoCode.AutoMoveFile { - return system.ErrAutoMove - } - return nil -} - -func (autoCodeService *AutoCodeService) GetAllTplFile(pathName string, fileList []string) ([]string, error) { - files, err := os.ReadDir(pathName) - for _, fi := range files { - if fi.IsDir() { - fileList, err = autoCodeService.GetAllTplFile(pathName+"/"+fi.Name(), fileList) - if err != nil { - return nil, err - } - } else { - if strings.HasSuffix(fi.Name(), ".tpl") { - fileList = append(fileList, pathName+"/"+fi.Name()) - } - } - } - return fileList, err -} - -func (autoCodeService *AutoCodeService) DropTable(BusinessDb, tableName string) error { - if BusinessDb != "" { - return global.ZC_DB.Exec("DROP TABLE " + tableName).Error - } else { - return global.MustGetGlobalDBByDBName(BusinessDb).Exec("DROP TABLE " + tableName).Error - } -} - -func (autoCodeService *AutoCodeService) addAutoMoveFile(data *tplData) { - base := filepath.Base(data.autoCodePath) - fileSlice := strings.Split(data.autoCodePath, string(os.PathSeparator)) - n := len(fileSlice) - if n <= 2 { - return - } - if strings.Contains(fileSlice[1], "server") { - if strings.Contains(fileSlice[n-2], "router") { - data.autoMoveFilePath = filepath.Join(global.ZC_CONFIG.AutoCode.Root, global.ZC_CONFIG.AutoCode.Server, - fmt.Sprintf(global.ZC_CONFIG.AutoCode.SRouter, data.autoPackage), base) - } else if strings.Contains(fileSlice[n-2], "api") { - data.autoMoveFilePath = filepath.Join(global.ZC_CONFIG.AutoCode.Root, - global.ZC_CONFIG.AutoCode.Server, fmt.Sprintf(global.ZC_CONFIG.AutoCode.SApi, data.autoPackage), base) - } else if strings.Contains(fileSlice[n-2], "service") { - data.autoMoveFilePath = filepath.Join(global.ZC_CONFIG.AutoCode.Root, - global.ZC_CONFIG.AutoCode.Server, fmt.Sprintf(global.ZC_CONFIG.AutoCode.SService, data.autoPackage), base) - } else if strings.Contains(fileSlice[n-2], "model") { - data.autoMoveFilePath = filepath.Join(global.ZC_CONFIG.AutoCode.Root, - global.ZC_CONFIG.AutoCode.Server, fmt.Sprintf(global.ZC_CONFIG.AutoCode.SModel, data.autoPackage), base) - } else if strings.Contains(fileSlice[n-2], "request") { - data.autoMoveFilePath = filepath.Join(global.ZC_CONFIG.AutoCode.Root, - global.ZC_CONFIG.AutoCode.Server, fmt.Sprintf(global.ZC_CONFIG.AutoCode.SRequest, data.autoPackage), base) - } - } else if strings.Contains(fileSlice[1], "web") { - if strings.Contains(fileSlice[n-1], "js") { - data.autoMoveFilePath = filepath.Join(global.ZC_CONFIG.AutoCode.Root, - global.ZC_CONFIG.AutoCode.Web, global.ZC_CONFIG.AutoCode.WApi, base) - } else if strings.Contains(fileSlice[n-2], "form") { - data.autoMoveFilePath = filepath.Join(global.ZC_CONFIG.AutoCode.Root, - global.ZC_CONFIG.AutoCode.Web, global.ZC_CONFIG.AutoCode.WForm, filepath.Base(filepath.Dir(filepath.Dir(data.autoCodePath))), strings.TrimSuffix(base, filepath.Ext(base))+"Form.vue") - } else if strings.Contains(fileSlice[n-2], "table") { - data.autoMoveFilePath = filepath.Join(global.ZC_CONFIG.AutoCode.Root, - global.ZC_CONFIG.AutoCode.Web, global.ZC_CONFIG.AutoCode.WTable, filepath.Base(filepath.Dir(filepath.Dir(data.autoCodePath))), base) - } - } -} - -func (autoCodeService *AutoCodeService) AutoCreateApi(a *system.AutoCodeStruct) (ids []uint, err error) { - apiList := []system.SysApi{ - { - Path: "/" + a.Abbreviation + "/" + "create" + a.StructName, - Description: "新增" + a.Description, - ApiGroup: a.Abbreviation, - Method: "POST", - }, - { - Path: "/" + a.Abbreviation + "/" + "delete" + a.StructName, - Description: "删除" + a.Description, - ApiGroup: a.Abbreviation, - Method: "DELETE", - }, - { - Path: "/" + a.Abbreviation + "/" + "delete" + a.StructName + "ByIds", - Description: "批量删除" + a.Description, - ApiGroup: a.Abbreviation, - Method: "DELETE", - }, - { - Path: "/" + a.Abbreviation + "/" + "update" + a.StructName, - Description: "更新" + a.Description, - ApiGroup: a.Abbreviation, - Method: "PUT", - }, - { - Path: "/" + a.Abbreviation + "/" + "find" + a.StructName, - Description: "根据ID获取" + a.Description, - ApiGroup: a.Abbreviation, - Method: "GET", - }, - { - Path: "/" + a.Abbreviation + "/" + "get" + a.StructName + "List", - Description: "获取" + a.Description + "列表", - ApiGroup: a.Abbreviation, - Method: "GET", - }, - } - err = global.ZC_DB.Transaction(func(tx *gorm.DB) error { - for _, v := range apiList { - var api system.SysApi - if errors.Is(tx.Where("path = ? AND method = ?", v.Path, v.Method).First(&api).Error, gorm.ErrRecordNotFound) { - if err = tx.Create(&v).Error; err != nil { // 遇到错误时回滚事务 - return err - } else { - ids = append(ids, v.ID) - } - } - } - return nil - }) - return ids, err -} - -func (autoCodeService *AutoCodeService) getNeedList(autoCode *system.AutoCodeStruct) (dataList []tplData, fileList []string, needMkdir []string, err error) { - - utils.TrimSpace(autoCode) - for _, field := range autoCode.Fields { - utils.TrimSpace(field) - } - - tplFileList, err := autoCodeService.GetAllTplFile(autocodePath, nil) - if err != nil { - return nil, nil, nil, err - } - dataList = make([]tplData, 0, len(tplFileList)) - fileList = make([]string, 0, len(tplFileList)) - needMkdir = make([]string, 0, len(tplFileList)) - - for _, value := range tplFileList { - dataList = append(dataList, tplData{locationPath: value, autoPackage: autoCode.Package}) - } - - for index, value := range dataList { - dataList[index].template, err = template.ParseFiles(value.locationPath) - if err != nil { - return nil, nil, nil, err - } - } - - for index, value := range dataList { - trimBase := strings.TrimPrefix(value.locationPath, autocodePath+"/") - if trimBase == "readme.txt.tpl" { - dataList[index].autoCodePath = autoPath + "readme.txt" - continue - } - - if lastSeparator := strings.LastIndex(trimBase, "/"); lastSeparator != -1 { - origFileName := strings.TrimSuffix(trimBase[lastSeparator+1:], ".tpl") - firstDot := strings.Index(origFileName, ".") - if firstDot != -1 { - var fileName string - if origFileName[firstDot:] != ".go" { - fileName = autoCode.PackageName + origFileName[firstDot:] - } else { - fileName = autoCode.HumpPackageName + origFileName[firstDot:] - } - - dataList[index].autoCodePath = filepath.Join(autoPath, trimBase[:lastSeparator], autoCode.PackageName, - origFileName[:firstDot], fileName) - } - } - - if lastSeparator := strings.LastIndex(dataList[index].autoCodePath, string(os.PathSeparator)); lastSeparator != -1 { - needMkdir = append(needMkdir, dataList[index].autoCodePath[:lastSeparator]) - } - } - for _, value := range dataList { - fileList = append(fileList, value.autoCodePath) - } - return dataList, fileList, needMkdir, err -} - -func injectionCode(structName string, bf *strings.Builder) error { - for _, meta := range injectionPaths { - code := fmt.Sprintf(meta.structNameF, structName) - if err := utils.AutoInjectionCode(meta.path, meta.funcName, code); err != nil { - return err - } - bf.WriteString(fmt.Sprintf("%s@%s@%s;", meta.path, meta.funcName, code)) - } - return nil -} - -func (autoCodeService *AutoCodeService) CreateAutoCode(s *system.SysAutoCode) error { - if s.PackageName == "autocode" || s.PackageName == "system" || s.PackageName == "example" || s.PackageName == "" { - return errors.New("cannot use reserved package name") - } - if !errors.Is(global.ZC_DB.Where("package_name = ?", s.PackageName).First(&system.SysAutoCode{}).Error, gorm.ErrRecordNotFound) { - return errors.New("same PackageName exists") - } - if e := autoCodeService.CreatePackageTemp(s.PackageName); e != nil { - return e - } - return global.ZC_DB.Create(&s).Error -} - -func (autoCodeService *AutoCodeService) GetPackage() (pkgList []system.SysAutoCode, err error) { - err = global.ZC_DB.Find(&pkgList).Error - return pkgList, err -} - -func (autoCodeService *AutoCodeService) DelPackage(a system.SysAutoCode) error { - return global.ZC_DB.Delete(&a).Error -} - -func (autoCodeService *AutoCodeService) CreatePackageTemp(packageName string) error { - Init(packageName) - pendingTemp := []autoPackage{{ - path: packageService, - name: packageServiceName, - temp: string(subcontract.Server), - }, { - path: packageRouter, - name: packageRouterName, - temp: string(subcontract.Router), - }, { - path: packageAPI, - name: packageAPIName, - temp: string(subcontract.API), - }} - for i, s := range pendingTemp { - pendingTemp[i].path = filepath.Join(global.ZC_CONFIG.AutoCode.Root, global.ZC_CONFIG.AutoCode.Server, filepath.Clean(fmt.Sprintf(s.path, packageName))) - } - // 选择模板 - for _, s := range pendingTemp { - err := os.MkdirAll(filepath.Dir(s.path), 0755) - if err != nil { - return err - } - - f, err := os.Create(s.path) - if err != nil { - return err - } - - defer f.Close() - - temp, err := template.New("").Parse(s.temp) - if err != nil { - return err - } - err = temp.Execute(f, struct { - PackageName string `json:"package_name"` - }{packageName}) - if err != nil { - return err - } - } - - for _, v := range pendingTemp { - meta := packageInjectionMap[v.name] - if err := ImportReference(meta.path, fmt.Sprintf(meta.importCodeF, v.name, packageName), fmt.Sprintf(meta.structNameF, caser.String(packageName)), fmt.Sprintf(meta.packageNameF, packageName), meta.groupName); err != nil { - return err - } - } - return nil -} - -type Visitor struct { - ImportCode string - StructName string - PackageName string - GroupName string -} - -func (vi *Visitor) Visit(node ast.Node) ast.Visitor { - switch n := node.(type) { - case *ast.GenDecl: - - if n.Tok == token.IMPORT && vi.ImportCode != "" { - vi.addImport(n) - return nil - } - if n.Tok == token.TYPE && vi.StructName != "" && vi.PackageName != "" && vi.GroupName != "" { - vi.addStruct(n) - return nil - } - case *ast.FuncDecl: - if n.Name.Name == "Routers" { - vi.addFuncBodyVar(n) - return nil - } - - } - return vi -} - -func (vi *Visitor) addStruct(genDecl *ast.GenDecl) ast.Visitor { - for i := range genDecl.Specs { - switch n := genDecl.Specs[i].(type) { - case *ast.TypeSpec: - if strings.Index(n.Name.Name, "Group") > -1 { - switch t := n.Type.(type) { - case *ast.StructType: - f := &ast.Field{ - Names: []*ast.Ident{ - { - Name: vi.StructName, - Obj: &ast.Object{ - Kind: ast.Var, - Name: vi.StructName, - }, - }, - }, - Type: &ast.SelectorExpr{ - X: &ast.Ident{ - Name: vi.PackageName, - }, - Sel: &ast.Ident{ - Name: vi.GroupName, - }, - }, - } - t.Fields.List = append(t.Fields.List, f) - } - } - } - } - return vi -} - -func (vi *Visitor) addImport(genDecl *ast.GenDecl) ast.Visitor { - hasImported := false - for _, v := range genDecl.Specs { - importSpec := v.(*ast.ImportSpec) - if importSpec.Path.Value == strconv.Quote(vi.ImportCode) { - hasImported = true - } - } - if !hasImported { - genDecl.Specs = append(genDecl.Specs, &ast.ImportSpec{ - Path: &ast.BasicLit{ - Kind: token.STRING, - Value: strconv.Quote(vi.ImportCode), - }, - }) - } - return vi -} - -func (vi *Visitor) addFuncBodyVar(funDecl *ast.FuncDecl) ast.Visitor { - hasVar := false - for _, v := range funDecl.Body.List { - switch varSpec := v.(type) { - case *ast.AssignStmt: - for i := range varSpec.Lhs { - switch nn := varSpec.Lhs[i].(type) { - case *ast.Ident: - if nn.Name == vi.PackageName+"Router" { - hasVar = true - } - } - } - } - } - if !hasVar { - assignStmt := &ast.AssignStmt{ - Lhs: []ast.Expr{ - &ast.Ident{ - Name: vi.PackageName + "Router", - Obj: &ast.Object{ - Kind: ast.Var, - Name: vi.PackageName + "Router", - }, - }, - }, - Tok: token.DEFINE, - Rhs: []ast.Expr{ - &ast.SelectorExpr{ - X: &ast.SelectorExpr{ - X: &ast.Ident{ - Name: "router", - }, - Sel: &ast.Ident{ - Name: "RouterGroupApp", - }, - }, - Sel: &ast.Ident{ - Name: caser.String(vi.PackageName), - }, - }, - }, - } - funDecl.Body.List = append(funDecl.Body.List, funDecl.Body.List[1]) - index := 1 - copy(funDecl.Body.List[index+1:], funDecl.Body.List[index:]) - funDecl.Body.List[index] = assignStmt - } - return vi -} - -func ImportReference(filepath, importCode, structName, packageName, groupName string) error { - fSet := token.NewFileSet() - fParser, err := parser.ParseFile(fSet, filepath, nil, parser.ParseComments) - if err != nil { - return err - } - importCode = strings.TrimSpace(importCode) - v := &Visitor{ - ImportCode: importCode, - StructName: structName, - PackageName: packageName, - GroupName: groupName, - } - if importCode == "" { - ast.Print(fSet, fParser) - } - - ast.Walk(v, fParser) - - var output []byte - buffer := bytes.NewBuffer(output) - err = format.Node(buffer, fSet, fParser) - if err != nil { - log.Fatal(err) - } - return os.WriteFile(filepath, buffer.Bytes(), 0o600) -} - -func (autoCodeService *AutoCodeService) CreatePlug(plug system.AutoPlugReq) error { - plug.CheckList() - tplFileList, _ := autoCodeService.GetAllTplFile(plugPath, nil) - for _, tpl := range tplFileList { - temp, err := template.ParseFiles(tpl) - if err != nil { - zap.L().Error("parse err", zap.String("tpl", tpl), zap.Error(err)) - return err - } - pathArr := strings.SplitAfter(tpl, "/") - if strings.Index(pathArr[2], "tpl") < 0 { - dirPath := filepath.Join(global.ZC_CONFIG.AutoCode.Root, global.ZC_CONFIG.AutoCode.Server, fmt.Sprintf(global.ZC_CONFIG.AutoCode.SPlug, plug.Snake+"/"+pathArr[2])) - os.MkdirAll(dirPath, 0755) - } - file := filepath.Join(global.ZC_CONFIG.AutoCode.Root, global.ZC_CONFIG.AutoCode.Server, fmt.Sprintf(global.ZC_CONFIG.AutoCode.SPlug, plug.Snake+"/"+tpl[len(plugPath):len(tpl)-4])) - f, err := os.OpenFile(file, os.O_WRONLY|os.O_CREATE, 0666) - if err != nil { - zap.L().Error("open file", zap.String("tpl", tpl), zap.Error(err), zap.Any("plug", plug)) - return err - } - defer f.Close() - - err = temp.Execute(f, plug) - if err != nil { - zap.L().Error("exec err", zap.String("tpl", tpl), zap.Error(err), zap.Any("plug", plug)) - return err - } - } - return nil -} - -func (autoCodeService *AutoCodeService) InstallPlugin(file *multipart.FileHeader) (web, server int, err error) { - const ZCPLUGPINATH = "./gva-plug-temp/" - defer os.RemoveAll(ZCPLUGPINATH) - _, err = os.Stat(ZCPLUGPINATH) - if os.IsNotExist(err) { - os.Mkdir(ZCPLUGPINATH, os.ModePerm) - } - - src, err := file.Open() - if err != nil { - return -1, -1, err - } - defer src.Close() - - out, err := os.Create(ZCPLUGPINATH + file.Filename) - if err != nil { - return -1, -1, err - } - defer out.Close() - - _, err = io.Copy(out, src) - - paths, err := utils.Unzip(ZCPLUGPINATH+file.Filename, ZCPLUGPINATH) - paths = filterFile(paths) - var webIndex = -1 - var serverIndex = -1 - for i := range paths { - paths[i] = filepath.ToSlash(paths[i]) - pathArr := strings.Split(paths[i], "/") - ln := len(pathArr) - if ln < 2 { - continue - } - if pathArr[ln-2] == "server" && pathArr[ln-1] == "plugin" { - serverIndex = i - } - if pathArr[ln-2] == "web" && pathArr[ln-1] == "plugin" { - webIndex = i - } - } - if webIndex == -1 && serverIndex == -1 { - zap.L().Error("non standard plugins, please automatically migrate and use according to the documentation") - return webIndex, serverIndex, errors.New("non standard plugins, please automatically migrate and use according to the documentation") - } - - if webIndex != -1 { - err = installation(paths[webIndex], global.ZC_CONFIG.AutoCode.Server, global.ZC_CONFIG.AutoCode.Web) - if err != nil { - return webIndex, serverIndex, err - } - } - - if serverIndex != -1 { - err = installation(paths[serverIndex], global.ZC_CONFIG.AutoCode.Server, global.ZC_CONFIG.AutoCode.Server) - } - return webIndex, serverIndex, err -} - -func installation(path string, formPath string, toPath string) error { - return nil -} - -func filterFile(paths []string) []string { - np := make([]string, 0, len(paths)) - for _, path := range paths { - if ok, _ := skipMacSpecialDocument(path); ok { - continue - } - np = append(np, path) - } - return np -} - -func skipMacSpecialDocument(src string) (bool, error) { - if strings.Contains(src, ".DS_Store") || strings.Contains(src, "__MACOSX") { - return true, nil - } - return false, nil -} diff --git a/service/system/sys_auto_code_interface.go b/service/system/sys_auto_code_interface.go deleted file mode 100644 index 0fa3af6..0000000 --- a/service/system/sys_auto_code_interface.go +++ /dev/null @@ -1,38 +0,0 @@ -package system - -import ( - "oplian/global" - "oplian/model/system/response" -) - -type Database interface { - GetDB(businessDB string) (data []response.Db, err error) - GetTables(businessDB string, dbName string) (data []response.Table, err error) - GetColumn(businessDB string, tableName string, dbName string) (data []response.Column, err error) -} - -func (autoCodeService *AutoCodeService) Database(businessDB string) Database { - - if businessDB == "" { - switch global.ZC_CONFIG.System.DbType { - case "mysql": - return AutoCodeMysql - default: - return AutoCodeMysql - } - } else { - for _, info := range global.ZC_CONFIG.DBList { - if info.AliasName == businessDB { - - switch info.Type { - case "mysql": - return AutoCodeMysql - default: - return AutoCodeMysql - } - } - } - return AutoCodeMysql - } - -} diff --git a/service/system/sys_auto_code_mysql.go b/service/system/sys_auto_code_mysql.go deleted file mode 100644 index 1c12fad..0000000 --- a/service/system/sys_auto_code_mysql.go +++ /dev/null @@ -1,66 +0,0 @@ -package system - -import ( - "oplian/global" - "oplian/model/system/response" -) - -var AutoCodeMysql = new(autoCodeMysql) - -type autoCodeMysql struct{} - -// GetDB Gets all database names for the database - -func (s *autoCodeMysql) GetDB(businessDB string) (data []response.Db, err error) { - var entities []response.Db - sql := "SELECT SCHEMA_NAME AS `database` FROM INFORMATION_SCHEMA.SCHEMATA;" - if businessDB == "" { - err = global.ZC_DB.Raw(sql).Scan(&entities).Error - } else { - err = global.ZC_DBList[businessDB].Raw(sql).Scan(&entities).Error - } - return entities, err -} - -// GetTables Gets all the table names for the database - -func (s *autoCodeMysql) GetTables(businessDB string, dbName string) (data []response.Table, err error) { - var entities []response.Table - sql := `select table_name as table_name from information_schema.tables where table_schema = ?` - if businessDB == "" { - err = global.ZC_DB.Raw(sql, dbName).Scan(&entities).Error - } else { - err = global.ZC_DBList[businessDB].Raw(sql, dbName).Scan(&entities).Error - } - - return entities, err -} - -// GetColumn Gets all field names, type values, and so on for the specified database and specified data table - -func (s *autoCodeMysql) GetColumn(businessDB string, tableName string, dbName string) (data []response.Column, err error) { - var entities []response.Column - sql := ` - SELECT COLUMN_NAME column_name, - DATA_TYPE data_type, - CASE DATA_TYPE - WHEN 'longtext' THEN c.CHARACTER_MAXIMUM_LENGTH - WHEN 'varchar' THEN c.CHARACTER_MAXIMUM_LENGTH - WHEN 'double' THEN CONCAT_WS(',', c.NUMERIC_PRECISION, c.NUMERIC_SCALE) - WHEN 'decimal' THEN CONCAT_WS(',', c.NUMERIC_PRECISION, c.NUMERIC_SCALE) - WHEN 'int' THEN c.NUMERIC_PRECISION - WHEN 'bigint' THEN c.NUMERIC_PRECISION - ELSE '' END AS data_type_long, - COLUMN_COMMENT column_comment - FROM INFORMATION_SCHEMA.COLUMNS c - WHERE table_name = ? - AND table_schema = ? - ` - if businessDB == "" { - err = global.ZC_DB.Raw(sql, tableName, dbName).Scan(&entities).Error - } else { - err = global.ZC_DBList[businessDB].Raw(sql, tableName, dbName).Scan(&entities).Error - } - - return entities, err -} diff --git a/service/system/sys_autocode_history.go b/service/system/sys_autocode_history.go deleted file mode 100644 index b6ee67d..0000000 --- a/service/system/sys_autocode_history.go +++ /dev/null @@ -1,137 +0,0 @@ -package system - -import ( - "errors" - "fmt" - systemReq "oplian/model/system/request" - "path/filepath" - "strconv" - "strings" - "time" - - "oplian/model/system/response" - - "oplian/global" - "oplian/model/common/request" - "oplian/model/system" - "oplian/utils" - - "go.uber.org/zap" -) - -var RepeatErr = errors.New("重复创建") - -type AutoCodeHistoryService struct{} - -var AutoCodeHistoryServiceApp = new(AutoCodeHistoryService) - -// CreateAutoCodeHistory Create a code generator history -// RouterPath : RouterPath@RouterString;RouterPath2@RouterString2 -func (autoCodeHistoryService *AutoCodeHistoryService) CreateAutoCodeHistory(meta, structName, structCNName, autoCodePath string, injectionMeta string, tableName string, apiIds string, Package string) error { - return global.ZC_DB.Create(&system.SysAutoCodeHistory{ - Package: Package, - RequestMeta: meta, - AutoCodePath: autoCodePath, - InjectionMeta: injectionMeta, - StructName: structName, - StructCNName: structCNName, - TableName: tableName, - ApiIDs: apiIds, - }).Error -} - -// First Gets data for code generator history based on id - -func (autoCodeHistoryService *AutoCodeHistoryService) First(info *request.GetById) (string, error) { - var meta string - return meta, global.ZC_DB.Model(system.SysAutoCodeHistory{}).Select("request_meta").Where("id = ?", info.Uint()).First(&meta).Error -} - -// Repeat Detection duplication - -func (autoCodeHistoryService *AutoCodeHistoryService) Repeat(businessDB, structName, Package string) bool { - var count int64 - global.ZC_DB.Model(&system.SysAutoCodeHistory{}).Where("business_db = ? and struct_name = ? and package = ? and flag = 0", businessDB, structName, Package).Count(&count) - return count > 0 -} - -// RollBack rollback - -func (autoCodeHistoryService *AutoCodeHistoryService) RollBack(info *systemReq.RollBack) error { - md := system.SysAutoCodeHistory{} - if err := global.ZC_DB.Where("id = ?", info.ID).First(&md).Error; err != nil { - return err - } - - ids := request.IdsReq{} - idsStr := strings.Split(md.ApiIDs, ";") - for i := range idsStr[0 : len(idsStr)-1] { - id, err := strconv.Atoi(idsStr[i]) - if err != nil { - return err - } - ids.Ids = append(ids.Ids, id) - } - err := ApiServiceApp.DeleteApisByIds(ids) - if err != nil { - global.ZC_LOG.Error("ClearTag DeleteApiByIds:", zap.Error(err)) - } - - if info.DeleteTable { - if err = AutoCodeServiceApp.DropTable(md.BusinessDB, md.TableName); err != nil { - global.ZC_LOG.Error("ClearTag DropTable:", zap.Error(err)) - } - } - - for _, path := range strings.Split(md.AutoCodePath, ";") { - - _path, err := filepath.Abs(path) - if err != nil || _path != path { - continue - } - - nPath := filepath.Join(global.ZC_CONFIG.AutoCode.Root, - "rm_file", time.Now().Format("20060102"), filepath.Base(filepath.Dir(filepath.Dir(path))), filepath.Base(filepath.Dir(path)), filepath.Base(path)) - - for utils.FileExist(nPath) { - - nPath += fmt.Sprintf("_%d", time.Now().Nanosecond()) - } - err = utils.FileMove(path, nPath) - if err != nil { - global.ZC_LOG.Error("file move err ", zap.Error(err)) - } - //_ = utils.DeLFile(path) - } - - for _, v := range strings.Split(md.InjectionMeta, ";") { - // RouterPath@functionName@RouterString - meta := strings.Split(v, "@") - if len(meta) == 3 { - _ = utils.AutoClearCode(meta[0], meta[2]) - } - } - md.Flag = 1 - return global.ZC_DB.Save(&md).Error -} - -// Delete Delete historical data - -func (autoCodeHistoryService *AutoCodeHistoryService) Delete(info *request.GetById) error { - return global.ZC_DB.Where("id = ?", info.Uint()).Delete(&system.SysAutoCodeHistory{}).Error -} - -// GetList Obtain historical system data - -func (autoCodeHistoryService *AutoCodeHistoryService) GetList(info request.PageInfo) (list []response.AutoCodeHistory, total int64, err error) { - limit := info.PageSize - offset := info.PageSize * (info.Page - 1) - db := global.ZC_DB.Model(&system.SysAutoCodeHistory{}) - var entities []response.AutoCodeHistory - err = db.Count(&total).Error - if err != nil { - return nil, total, err - } - err = db.Limit(limit).Offset(offset).Order("updated_at desc").Find(&entities).Error - return entities, total, err -} diff --git a/service/system/sys_initdb_mysql.go b/service/system/sys_initdb_mysql.go index 854c114..d0fd2c5 100644 --- a/service/system/sys_initdb_mysql.go +++ b/service/system/sys_initdb_mysql.go @@ -4,8 +4,6 @@ import ( "context" "errors" "fmt" - "path/filepath" - "github.com/gookit/color" "oplian/config" @@ -66,7 +64,7 @@ func (h MysqlInitHandler) EnsureDB(ctx context.Context, conf *request.InitDB) (n }), &gorm.Config{DisableForeignKeyConstraintWhenMigrating: true}); err != nil { return ctx, err } - global.ZC_CONFIG.AutoCode.Root, _ = filepath.Abs("..") + next = context.WithValue(next, "db", db) return next, err } diff --git a/service/timing/black.go b/service/timing/black.go deleted file mode 100644 index 632ac6b..0000000 --- a/service/timing/black.go +++ /dev/null @@ -1,31 +0,0 @@ -package timing - -import ( - "log" - "oplian/global" - "time" -) - -func DelBlackCache() { - now := time.Now() - zero := time.After(time.Date(now.Year(), now.Month(), now.Day()+1, 0, 0, 0, 0, now.Location()).Sub(now)) - atime := time.NewTimer(time.Hour * 24) - go func() { - for { - select { - case <-atime.C: - case <-zero: - } - global.BlackLock.Lock() - for token, exp := range global.BlackCache { - //Remove expired tokens - if time.Now().Unix() > exp { - delete(global.BlackCache, token) - log.Panicln("移除:", token) - } - } - global.BlackLock.Unlock() - atime = time.NewTimer(time.Hour * 24) - } - }() -} diff --git a/utils/captcha/redis.go b/utils/captcha/redis.go deleted file mode 100644 index 3466773..0000000 --- a/utils/captcha/redis.go +++ /dev/null @@ -1,57 +0,0 @@ -package captcha - -import ( - "context" - "time" - - "github.com/mojocn/base64Captcha" - "go.uber.org/zap" - "oplian/global" -) - -func NewDefaultRedisStore() *RedisStore { - return &RedisStore{ - Expiration: time.Second * 180, - PreKey: "CAPTCHA_", - } -} - -type RedisStore struct { - Expiration time.Duration - PreKey string - Context context.Context -} - -func (rs *RedisStore) UseWithCtx(ctx context.Context) base64Captcha.Store { - rs.Context = ctx - return rs -} - -func (rs *RedisStore) Set(id string, value string) { - err := global.ZC_REDIS.Set(rs.Context, rs.PreKey+id, value, rs.Expiration).Err() - if err != nil { - global.ZC_LOG.Error("RedisStoreSetError!", zap.Error(err)) - } -} - -func (rs *RedisStore) Get(key string, clear bool) string { - val, err := global.ZC_REDIS.Get(rs.Context, key).Result() - if err != nil { - global.ZC_LOG.Error("RedisStoreGetError!", zap.Error(err)) - return "" - } - if clear { - err := global.ZC_REDIS.Del(rs.Context, key).Err() - if err != nil { - global.ZC_LOG.Error("RedisStoreClearError!", zap.Error(err)) - return "" - } - } - return val -} - -func (rs *RedisStore) Verify(id, answer string, clear bool) bool { - key := rs.PreKey + id - v := rs.Get(key, clear) - return v == answer -} diff --git a/utils/timer/timed_task.go b/utils/timer/timed_task.go deleted file mode 100644 index b0bfb80..0000000 --- a/utils/timer/timed_task.go +++ /dev/null @@ -1,106 +0,0 @@ -package timer - -import ( - "sync" - - "github.com/robfig/cron/v3" -) - -type Timer interface { - AddTaskByFunc(taskName string, spec string, task func(), option ...cron.Option) (cron.EntryID, error) - AddTaskByJob(taskName string, spec string, job interface{ Run() }, option ...cron.Option) (cron.EntryID, error) - FindCron(taskName string) (*cron.Cron, bool) - StartTask(taskName string) - StopTask(taskName string) - Remove(taskName string, id int) - Clear(taskName string) - Close() -} - -// timer 定时任务管理 -type timer struct { - taskList map[string]*cron.Cron - sync.Mutex -} - -// AddTaskByFunc 通过函数的方法添加任务 -func (t *timer) AddTaskByFunc(taskName string, spec string, task func(), option ...cron.Option) (cron.EntryID, error) { - t.Lock() - defer t.Unlock() - if _, ok := t.taskList[taskName]; !ok { - t.taskList[taskName] = cron.New(option...) - } - id, err := t.taskList[taskName].AddFunc(spec, task) - t.taskList[taskName].Start() - return id, err -} - -// AddTaskByJob 通过接口的方法添加任务 -func (t *timer) AddTaskByJob(taskName string, spec string, job interface{ Run() }, option ...cron.Option) (cron.EntryID, error) { - t.Lock() - defer t.Unlock() - if _, ok := t.taskList[taskName]; !ok { - t.taskList[taskName] = cron.New(option...) - } - id, err := t.taskList[taskName].AddJob(spec, job) - t.taskList[taskName].Start() - return id, err -} - -// FindCron 获取对应taskName的cron 可能会为空 -func (t *timer) FindCron(taskName string) (*cron.Cron, bool) { - t.Lock() - defer t.Unlock() - v, ok := t.taskList[taskName] - return v, ok -} - -// StartTask 开始任务 -func (t *timer) StartTask(taskName string) { - t.Lock() - defer t.Unlock() - if v, ok := t.taskList[taskName]; ok { - v.Start() - } -} - -// StopTask 停止任务 -func (t *timer) StopTask(taskName string) { - t.Lock() - defer t.Unlock() - if v, ok := t.taskList[taskName]; ok { - v.Stop() - } -} - -// Remove 从taskName 删除指定任务 -func (t *timer) Remove(taskName string, id int) { - t.Lock() - defer t.Unlock() - if v, ok := t.taskList[taskName]; ok { - v.Remove(cron.EntryID(id)) - } -} - -// Clear 清除任务 -func (t *timer) Clear(taskName string) { - t.Lock() - defer t.Unlock() - if v, ok := t.taskList[taskName]; ok { - v.Stop() - delete(t.taskList, taskName) - } -} - -// Close 释放资源 -func (t *timer) Close() { - t.Lock() - defer t.Unlock() - for _, v := range t.taskList { - v.Stop() - } -} - -func NewTimerTask() Timer { - return &timer{taskList: make(map[string]*cron.Cron)} -} diff --git a/utils/timer/timed_task_test.go b/utils/timer/timed_task_test.go deleted file mode 100644 index aa9ddec..0000000 --- a/utils/timer/timed_task_test.go +++ /dev/null @@ -1,67 +0,0 @@ -package timer - -import ( - "fmt" - "testing" - "time" - - "github.com/stretchr/testify/assert" -) - -var job = mockJob{} - -type mockJob struct{} - -func (job mockJob) Run() { - mockFunc() -} - -func mockFunc() { - time.Sleep(time.Second) - fmt.Println("1s...") -} - -func TestNewTimerTask(t *testing.T) { - tm := NewTimerTask() - _tm := tm.(*timer) - - { - _, err := tm.AddTaskByFunc("func", "@every 1s", mockFunc) - assert.Nil(t, err) - _, ok := _tm.taskList["func"] - if !ok { - t.Error("no find func") - } - } - - { - _, err := tm.AddTaskByJob("job", "@every 1s", job) - assert.Nil(t, err) - _, ok := _tm.taskList["job"] - if !ok { - t.Error("no find job") - } - } - - { - _, ok := tm.FindCron("func") - if !ok { - t.Error("no find func") - } - _, ok = tm.FindCron("job") - if !ok { - t.Error("no find job") - } - _, ok = tm.FindCron("none") - if ok { - t.Error("find none") - } - } - { - tm.Clear("func") - _, ok := tm.FindCron("func") - if ok { - t.Error("find func") - } - } -}