|  | 
| 1 | 1 | <template> | 
| 2 | 2 |   <div class="system"> | 
| 3 | 3 |     <el-form | 
| 4 |  | -      ref="form" | 
| 5 |  | -      :model="config" | 
| 6 |  | -      label-width="240px" | 
|  | 4 | +        ref="form" | 
|  | 5 | +        :model="config" | 
|  | 6 | +        label-width="240px" | 
| 7 | 7 |     > | 
| 8 | 8 |       <!--  System start  --> | 
| 9 | 9 |       <el-collapse v-model="activeNames"> | 
| 10 | 10 |         <el-collapse-item | 
| 11 |  | -          title="系统配置" | 
| 12 |  | -          name="1" | 
|  | 11 | +            title="系统配置" | 
|  | 12 | +            name="1" | 
| 13 | 13 |         > | 
| 14 | 14 |           <el-form-item label="端口值"> | 
| 15 | 15 |             <el-input v-model.number="config.system.addr" /> | 
| 16 | 16 |           </el-form-item> | 
| 17 | 17 |           <el-form-item label="数据库类型"> | 
| 18 | 18 |             <el-select | 
| 19 |  | -              v-model="config.system['db-type']" | 
| 20 |  | -              style="width:100%" | 
|  | 19 | +                v-model="config.system['db-type']" | 
|  | 20 | +                style="width:100%" | 
| 21 | 21 |             > | 
| 22 | 22 |               <el-option value="mysql" /> | 
| 23 | 23 |               <el-option value="pgsql" /> | 
| 24 | 24 |             </el-select> | 
| 25 | 25 |           </el-form-item> | 
| 26 | 26 |           <el-form-item label="Oss类型"> | 
| 27 | 27 |             <el-select | 
| 28 |  | -              v-model="config.system['oss-type']" | 
| 29 |  | -              style="width:100%" | 
|  | 28 | +                v-model="config.system['oss-type']" | 
|  | 29 | +                style="width:100%" | 
| 30 | 30 |             > | 
| 31 | 31 |               <el-option value="local" /> | 
| 32 | 32 |               <el-option value="qiniu" /> | 
| 33 | 33 |               <el-option value="tencent-cos" /> | 
| 34 | 34 |               <el-option value="aliyun-oss" /> | 
| 35 | 35 |               <el-option value="huawei-obs" /> | 
|  | 36 | +              <el-option value="cloudflare-r2" /> | 
| 36 | 37 |             </el-select> | 
| 37 | 38 |           </el-form-item> | 
| 38 | 39 |           <el-form-item label="多点登录拦截"> | 
|  | 
| 48 | 49 |             <el-input-number v-model.number="config.system['iplimit-time']" /> | 
| 49 | 50 |           </el-form-item> | 
| 50 | 51 |           <el-tooltip | 
| 51 |  | -            content="请修改完成后,注意一并修改前端env环境下的VITE_BASE_PATH" | 
| 52 |  | -            placement="top-start" | 
|  | 52 | +              content="请修改完成后,注意一并修改前端env环境下的VITE_BASE_PATH" | 
|  | 53 | +              placement="top-start" | 
| 53 | 54 |           > | 
| 54 | 55 |             <el-form-item label="全局路由前缀"> | 
| 55 | 56 |               <el-input v-model="config.system['router-prefix']" /> | 
| 56 | 57 |             </el-form-item> | 
| 57 | 58 |           </el-tooltip> | 
| 58 | 59 |         </el-collapse-item> | 
| 59 | 60 |         <el-collapse-item | 
| 60 |  | -          title="jwt签名" | 
| 61 |  | -          name="2" | 
|  | 61 | +            title="jwt签名" | 
|  | 62 | +            name="2" | 
| 62 | 63 |         > | 
| 63 | 64 |           <el-form-item label="jwt签名"> | 
| 64 | 65 |             <el-input v-model="config.jwt['signing-key']" /> | 
|  | 
| 74 | 75 |           </el-form-item> | 
| 75 | 76 |         </el-collapse-item> | 
| 76 | 77 |         <el-collapse-item | 
| 77 |  | -          title="Zap日志配置" | 
| 78 |  | -          name="3" | 
|  | 78 | +            title="Zap日志配置" | 
|  | 79 | +            name="3" | 
| 79 | 80 |         > | 
| 80 | 81 |           <el-form-item label="级别"> | 
| 81 | 82 |             <el-input v-model.number="config.zap.level" /> | 
|  | 
| 106 | 107 |           </el-form-item> | 
| 107 | 108 |         </el-collapse-item> | 
| 108 | 109 |         <el-collapse-item | 
| 109 |  | -          title="Redis admin数据库配置" | 
| 110 |  | -          name="4" | 
|  | 110 | +            title="Redis admin数据库配置" | 
|  | 111 | +            name="4" | 
| 111 | 112 |         > | 
| 112 | 113 |           <el-form-item label="库"> | 
| 113 | 114 |             <el-input v-model.number="config.redis.db" /> | 
|  | 
| 121 | 122 |         </el-collapse-item> | 
| 122 | 123 | 
 | 
| 123 | 124 |         <el-collapse-item | 
| 124 |  | -          title="Mongo 数据库配置" | 
| 125 |  | -          name="14" | 
|  | 125 | +            title="Mongo 数据库配置" | 
|  | 126 | +            name="14" | 
| 126 | 127 |         > | 
| 127 | 128 |           <el-form-item label="collection name(表名,一般不写)"> | 
| 128 | 129 |             <el-input v-model="config.mongo.coll" /> | 
|  | 
| 156 | 157 |           </el-form-item> | 
| 157 | 158 |           <el-form-item label="hosts"> | 
| 158 | 159 |             <template v-for="(item,k) in config.mongo.hosts"> | 
| 159 |  | -            <div | 
| 160 |  | -              v-for="(_,k2) in item" | 
| 161 |  | -              :key="k2" | 
| 162 |  | -            > | 
| 163 |  | -              <el-form-item | 
| 164 |  | -                :key="k+k2" | 
| 165 |  | -                :label="k2" | 
|  | 160 | +              <div | 
|  | 161 | +                  v-for="(_,k2) in item" | 
|  | 162 | +                  :key="k2" | 
| 166 | 163 |               > | 
| 167 |  | -                <el-input v-model="item[k2]" /> | 
| 168 |  | -              </el-form-item> | 
| 169 |  | -            </div> | 
| 170 |  | -          </template> | 
|  | 164 | +                <el-form-item | 
|  | 165 | +                    :key="k+k2" | 
|  | 166 | +                    :label="k2" | 
|  | 167 | +                > | 
|  | 168 | +                  <el-input v-model="item[k2]" /> | 
|  | 169 | +                </el-form-item> | 
|  | 170 | +              </div> | 
|  | 171 | +            </template> | 
| 171 | 172 |           </el-form-item> | 
| 172 | 173 |         </el-collapse-item> | 
| 173 | 174 | 
 | 
| 174 | 175 |         <el-collapse-item | 
| 175 |  | -          title="邮箱配置" | 
| 176 |  | -          name="5" | 
|  | 176 | +            title="邮箱配置" | 
|  | 177 | +            name="5" | 
| 177 | 178 |         > | 
| 178 | 179 |           <el-form-item label="接收者邮箱"> | 
| 179 | 180 |             <el-input | 
| 180 |  | -              v-model="config.email.to" | 
| 181 |  | -              placeholder="可多个,以逗号分隔" | 
|  | 181 | +                v-model="config.email.to" | 
|  | 182 | +                placeholder="可多个,以逗号分隔" | 
| 182 | 183 |             /> | 
| 183 | 184 |           </el-form-item> | 
| 184 | 185 |           <el-form-item label="端口"> | 
|  | 
| 201 | 202 |           </el-form-item> | 
| 202 | 203 |         </el-collapse-item> | 
| 203 | 204 |         <el-collapse-item | 
| 204 |  | -          title="验证码配置" | 
| 205 |  | -          name="7" | 
|  | 205 | +            title="验证码配置" | 
|  | 206 | +            name="7" | 
| 206 | 207 |         > | 
| 207 | 208 |           <el-form-item label="字符长度"> | 
| 208 | 209 |             <el-input v-model.number="config.captcha['key-long']" /> | 
|  | 
| 215 | 216 |           </el-form-item> | 
| 216 | 217 |         </el-collapse-item> | 
| 217 | 218 |         <el-collapse-item | 
| 218 |  | -          title="数据库配置" | 
| 219 |  | -          name="9" | 
|  | 219 | +            title="数据库配置" | 
|  | 220 | +            name="9" | 
| 220 | 221 |         > | 
| 221 | 222 |           <template v-if="config.system['db-type'] === 'mysql'"> | 
| 222 | 223 |             <el-form-item label="用户名"> | 
|  | 
| 291 | 292 |         </el-collapse-item> | 
| 292 | 293 | 
 | 
| 293 | 294 |         <el-collapse-item | 
| 294 |  | -          title="oss配置" | 
| 295 |  | -          name="10" | 
|  | 295 | +            title="oss配置" | 
|  | 296 | +            name="10" | 
| 296 | 297 |         > | 
| 297 | 298 |           <template v-if="config.system['oss-type'] === 'local'"> | 
| 298 | 299 |             <h2>本地文件配置</h2> | 
|  | 
| 384 | 385 |               <el-input v-model="config['hua-wei-obs']['secret-key']" /> | 
| 385 | 386 |             </el-form-item> | 
| 386 | 387 |           </template> | 
|  | 388 | +          <template v-if="config.system['oss-type'] === 'cloudflare-r2'"> | 
|  | 389 | +            <h2>Cloudflare R2上传配置</h2> | 
|  | 390 | +            <el-form-item label="路径"> | 
|  | 391 | +              <el-input v-model="config['cloudflare-r2'].path" /> | 
|  | 392 | +            </el-form-item> | 
|  | 393 | +            <el-form-item label="存储桶名称"> | 
|  | 394 | +              <el-input v-model="config['cloudflare-r2'].bucket" /> | 
|  | 395 | +            </el-form-item> | 
|  | 396 | +            <el-form-item label="Base URL"> | 
|  | 397 | +              <el-input v-model="config['cloudflare-r2']['base-url']" /> | 
|  | 398 | +            </el-form-item> | 
|  | 399 | +            <el-form-item label="Account ID"> | 
|  | 400 | +              <el-input v-model="config['cloudflare-r2']['account-id']" /> | 
|  | 401 | +            </el-form-item> | 
|  | 402 | +            <el-form-item label="Access Key ID"> | 
|  | 403 | +              <el-input v-model="config['cloudflare-r2']['access-key-id']" /> | 
|  | 404 | +            </el-form-item> | 
|  | 405 | +            <el-form-item label="Secret Access Key"> | 
|  | 406 | +              <el-input v-model="config['cloudflare-r2']['secret-access-key']" /> | 
|  | 407 | +            </el-form-item> | 
|  | 408 | +          </template> | 
| 387 | 409 | 
 | 
| 388 | 410 |         </el-collapse-item> | 
| 389 | 411 | 
 | 
| 390 | 412 |         <el-collapse-item | 
| 391 |  | -          title="Excel上传配置" | 
| 392 |  | -          name="11" | 
|  | 413 | +            title="Excel上传配置" | 
|  | 414 | +            name="11" | 
| 393 | 415 |         > | 
| 394 | 416 |           <el-form-item label="合成目标地址"> | 
| 395 | 417 |             <el-input v-model="config.excel.dir" /> | 
| 396 | 418 |           </el-form-item> | 
| 397 | 419 |         </el-collapse-item> | 
| 398 | 420 | 
 | 
| 399 | 421 |         <el-collapse-item | 
| 400 |  | -          title="自动化代码配置" | 
| 401 |  | -          name="12" | 
|  | 422 | +            title="自动化代码配置" | 
|  | 423 | +            name="12" | 
| 402 | 424 |         > | 
| 403 | 425 |           <el-form-item label="是否自动重启(linux)"> | 
| 404 | 426 |             <el-checkbox v-model="config.autocode['transfer-restart']" /> | 
| 405 | 427 |           </el-form-item> | 
| 406 | 428 |           <el-form-item label="root(项目根路径)"> | 
| 407 | 429 |             <el-input | 
| 408 |  | -              v-model="config.autocode.root" | 
| 409 |  | -              disabled | 
|  | 430 | +                v-model="config.autocode.root" | 
|  | 431 | +                disabled | 
| 410 | 432 |             /> | 
| 411 | 433 |           </el-form-item> | 
| 412 | 434 |           <el-form-item label="Server(后端代码地址)"> | 
|  | 
| 447 | 469 |     </el-form> | 
| 448 | 470 |     <div class="mt-4"> | 
| 449 | 471 |       <el-button | 
| 450 |  | -        type="primary" | 
| 451 |  | -        @click="update" | 
|  | 472 | +          type="primary" | 
|  | 473 | +          @click="update" | 
| 452 | 474 |       >立即更新</el-button> | 
| 453 | 475 |       <el-button | 
| 454 |  | -        type="primary" | 
| 455 |  | -        @click="reload" | 
|  | 476 | +          type="primary" | 
|  | 477 | +          @click="reload" | 
| 456 | 478 |       >重启服务(开发中)</el-button> | 
| 457 | 479 |     </div> | 
| 458 | 480 |   </div> | 
| @@ -502,6 +524,7 @@ const config = ref({ | 
| 502 | 524 |   'tencent-cos': {}, | 
| 503 | 525 |   'aliyun-oss': {}, | 
| 504 | 526 |   'hua-wei-obs': {}, | 
|  | 527 | +  'cloudflare-r2': {}, | 
| 505 | 528 |   captcha: {}, | 
| 506 | 529 |   zap: {}, | 
| 507 | 530 |   local: {}, | 
|  | 
0 commit comments