<template> <modal-inner aria-label="与 Gitee 同步"> <div class="modal__content"> <div class="modal__image"> <icon-provider provider-id="gitee"></icon-provider> </div> <p>从您的<b> Gitee </b>仓库中打开文件,并保持同步。</p> <form-entry label="仓库URL" error="repoUrl"> <input slot="field" class="textfield" type="text" v-model.trim="repoUrl" @keydown.enter="resolve()"> <div class="form-entry__info"> <b>例如:</b> https://gitee.com/owner/my-repo </div> </form-entry> <form-entry label="File path" error="path"> <input slot="field" class="textfield" type="text" v-model.trim="path" @keydown.enter="resolve()"> <div class="form-entry__info"> <b>例如:</b> path/to/README.md </div> </form-entry> <form-entry label="分支" info="可选的"> <input slot="field" class="textfield" type="text" v-model.trim="branch" @keydown.enter="resolve()"> <div class="form-entry__info"> 如果未提供,将使用<code> master </code>分支。 </div> </form-entry> </div> <div class="modal__button-bar"> <button class="button" @click="config.reject()">取消</button> <button class="button button--resolve" @click="resolve()">确认</button> </div> </modal-inner> </template> <script> import giteeProvider from '../../../services/providers/giteeProvider'; import modalTemplate from '../common/modalTemplate'; import utils from '../../../services/utils'; export default modalTemplate({ data: () => ({ branch: '', path: '', }), computedLocalSettings: { repoUrl: 'giteeRepoUrl', }, methods: { resolve() { const parsedRepo = utils.parseGithubRepoUrl(this.repoUrl); if (!parsedRepo) { this.setError('repoUrl'); } if (!this.path) { this.setError('path'); } if (parsedRepo && this.path) { // Return new location const location = giteeProvider.makeLocation( this.config.token, parsedRepo.owner, parsedRepo.repo, this.branch || 'master', this.path, ); this.config.resolve(location); } }, }, }); </script>