瀏覽代碼

国际化优化

kuaifan 5 年之前
父節點
當前提交
35fcf6a28e

+ 4 - 2
app/Http/Controllers/Api/SystemController.php

@@ -28,7 +28,7 @@ class SystemController extends Controller
      *
      * @apiParam {String} type
      * - get: 获取(默认)
-     * - save: 保存设置(支持:reg)
+     * - save: 保存设置(参数:logo、github、reg)
      */
     public function setting()
     {
@@ -45,14 +45,16 @@ class SystemController extends Controller
             }
             $all = Request::input();
             foreach ($all AS $key => $value) {
-                if (!in_array($key, ['reg'])) {
+                if (!in_array($key, ['logo', 'github', 'reg'])) {
                     unset($all[$key]);
                 }
             }
+            $all['logo'] = is_array($all['logo']) ? $all['logo'][0]['path'] : $all['logo'];
             $setting = Base::setting('system', Base::newTrim($all));
         } else {
             $setting = Base::setting('system');
         }
+        $setting['logo'] = Base::fillUrl($setting['logo']);
         return Base::retSuccess('success', $setting ? $setting : json_decode('{}'));
     }
 }

+ 2 - 2
app/Http/Controllers/Api/UsersController.php

@@ -328,7 +328,7 @@ class UsersController extends Controller
         }
         //
         if (Base::isError(Users::identity('admin'))) {
-            return Base::retError('身份权限不足!', [], -1);
+            return Base::retError('权限不足!', [], -1);
         }
         //头像
         $userimg = Request::input('userimg');
@@ -381,7 +381,7 @@ class UsersController extends Controller
         }
         //
         if (Base::isError(Users::identity('admin'))) {
-            return Base::retError('身份权限不足!', [], -1);
+            return Base::retError('权限不足!', [], -1);
         }
         $username = intval(Request::input('username'));
         if ($user['username'] == $username) {

+ 2 - 2
app/Module/Users.php

@@ -197,9 +197,9 @@ class Users
         $user = Users::auth();
         if (is_array($user['identity'])
             && in_array($identity, $user['identity'])) {
-            return Base::retSuccess("权限通过");
+            return Base::retSuccess("权限通过");
         }
-        return Base::retError("权限不足");
+        return Base::retError("权限不足");
     }
 
     /**

+ 22 - 10
resources/assets/js/main/components/WHeader.vue

@@ -42,12 +42,22 @@
                 </Dropdown>
             </div>
         </div>
-        <WDrawer v-model="systemDrawerShow" maxWidth="640" title="系统设置">
-            <Form ref="formSystem" :model="formSystem" :label-width="80">
+        <WDrawer v-model="systemDrawerShow" maxWidth="640" :title="$L('系统设置')">
+            <Form ref="formSystem" :model="formSystem" :label-width="100">
+                <FormItem :label="$L('首页Logo')" prop="userimg">
+                    <ImgUpload v-model="formSystem.logo" :num="1"></ImgUpload>
+                    <span style="color:#777">{{$L('建议尺寸:%', '300x52')}}</span>
+                </FormItem>
+                <FormItem :label="$L('Github图标')" prop="userimg">
+                    <RadioGroup v-model="formSystem.github">
+                        <Radio label="show">{{$L('显示')}}</Radio>
+                        <Radio label="hidden">{{$L('隐藏')}}</Radio>
+                    </RadioGroup>
+                </FormItem>
                 <FormItem :label="$L('允许注册')" prop="userimg">
                     <RadioGroup v-model="formSystem.reg">
-                        <Radio label="open">允许</Radio>
-                        <Radio label="close">禁止</Radio>
+                        <Radio label="open">{{$L('允许')}}</Radio>
+                        <Radio label="close">{{$L('禁止')}}</Radio>
                     </RadioGroup>
                 </FormItem>
                 <FormItem>
@@ -61,7 +71,8 @@
                 <TabPane :label="$L('个人资料')" name="personal">
                     <Form ref="formDatum" :model="formDatum" :rules="ruleDatum" :label-width="80">
                         <FormItem :label="$L('头像')" prop="userimg">
-                            <ImgUpload v-model="formDatum.userimg"></ImgUpload>
+                            <ImgUpload v-model="formDatum.userimg" :num="1"></ImgUpload>
+                            <span style="color:#777">{{$L('建议尺寸:%', '200x200')}}</span>
                         </FormItem>
                         <FormItem :label="$L('账号')">
                             <Input v-model="userInfo.username" :disabled="true"></Input>
@@ -187,7 +198,7 @@
                     a {
                         color: #fff;
                         display: block;
-                        width: 116px;
+                        min-width: 116px;
                         text-align: center;
                         &:visited {
                             color: #fff;
@@ -281,6 +292,7 @@
                 userDrawerTab: 'personal',
 
                 formSystem: {
+                    github: 'show',
                     reg: 'open',
                 },
 
@@ -341,7 +353,7 @@
                             if (value === '') {
                                 callback(new Error(this.$L('请输入确认新密码!')));
                             } else if (value !== this.formPass.newpass) {
-                                callback(new Error(this.$L('两次密码输入不一致!')));
+                                callback(new Error(this.$L('两次密码输入不一致')));
                             } else {
                                 callback();
                             }
@@ -370,6 +382,7 @@
         watch: {
             '$route' () {
                 this.tabActive = this.$route.meta.tabActive;
+                this.systemDrawerShow = false;
                 this.userDrawerShow = false;
             }
         },
@@ -417,9 +430,8 @@
                     success: (res) => {
                         if (res.ret === 1) {
                             this.formSystem = res.data;
-                            if (!this.formSystem.reg) {
-                                this.formSystem.reg = 'open';
-                            }
+                            this.formSystem.github = this.formSystem.github || 'show';
+                            this.formSystem.reg = this.formSystem.reg || 'open';
                             if (save) {
                                 this.$Message.success(this.$L('修改成功'));
                             }

+ 48 - 24
resources/assets/js/main/pages/index.vue

@@ -7,16 +7,20 @@
             <div class="z-row">
                 <div class="header-col-sub">
                     <h2>
-                        <img src="../../../statics/images/logo4.png">
+                        <img v-if="systemConfig.logo" :src="systemConfig.logo">
+                        <img v-else src="../../../statics/images/logo-white.png">
                         <span>{{$L('轻量级的团队在线协作')}}</span>
                     </h2>
                 </div>
                 <div class="z-1">
                     <dl>
                         <dd>
+                            <a v-if="systemConfig.github=='show'" class="right-info" target="_blank" href="https://github.com/kuaifan/wookteam">
+                                <Icon class="right-icon" type="logo-github"/>
+                            </a>
                             <Dropdown class="right-info" trigger="hover" @on-click="setLanguage" transfer>
                                 <div>
-                                    <Icon class="right-globe" type="md-globe" size="26"/>
+                                    <Icon class="right-icon" type="md-globe"/>
                                     <Icon type="md-arrow-dropdown"/>
                                 </div>
                                 <Dropdown-menu slot="list">
@@ -86,7 +90,7 @@
             </div>
         </div>
 
-        <div class="p-footer"><span>WorkTeam &copy; 2018-2020</span></div>
+        <div class="p-footer"><span>WookTeam &copy; 2018-2020</span></div>
 
         <Modal
             v-model="loginShow"
@@ -110,7 +114,7 @@
             </Form>
             <div slot="header" class="login-header">
                 <div @click="loginType='login'" class="login-header-item" :class="{active:loginType=='login'}">{{$L('用户登录')}}</div>
-                <div v-if="regOpen" @click="loginType='reg'" class="login-header-item" :class="{active:loginType=='reg'}">{{$L('注册账号')}}</div>
+                <div v-if="systemConfig.reg=='open'" @click="loginType='reg'" class="login-header-item" :class="{active:loginType=='reg'}">{{$L('注册账号')}}</div>
             </div>
             <div slot="footer">
                 <Button type="default" @click="loginShow=false">{{$L('取消')}}</Button>
@@ -168,23 +172,19 @@
                 .header-col-sub {
                     width: 500px;
                     h2 {
-                        font-size: 1.2rem;
-                        height: 48px;
-                        line-height: 54px;
-                        display: inline-block;
-                        width: 400px;
                         position: relative;
+                        padding: 1rem 0 0 1rem;
+                        display: flex;
+                        align-items: flex-end;
                         img {
                             width: 150px;
-                            margin: 1rem 0 0 1rem;
+                            margin-right: 6px;
                         }
                         span {
-                            position: absolute;
                             font-size: 12px;
                             font-weight: normal;
-                            top: 8px;
-                            left: 172px;
                             color: rgba(255, 255, 255, 0.85);
+                            line-height: 14px;
                         }
                     }
                 }
@@ -200,8 +200,12 @@
                             cursor: pointer;
                             margin-right: 1px;
                             .right-info {
+                                display: inline-block;
                                 cursor: pointer;
-                                .right-globe {
+                                margin-left: 12px;
+                                color: #ffffff;
+                                .right-icon {
+                                    font-size: 26px;
                                     vertical-align: middle;
                                 }
                             }
@@ -353,13 +357,18 @@
                 loadIng: 0,
                 loginShow: false,
                 loginType: 'login',
+
                 formLogin: {
                     username: '',
                     userpass: '',
                     userpass2: ''
                 },
                 ruleLogin: {},
-                regOpen: false,
+
+                systemConfig: $A.jsonParse($A.storage("systemSetting"), {
+                    github: '',
+                    reg: '',
+                }),
             }
         },
         created() {
@@ -378,7 +387,7 @@
                     {
                         validator: (rule, value, callback) => {
                             if (value !== this.formLogin.userpass) {
-                                callback(new Error(this.$L('两次密码输入不一致!')));
+                                callback(new Error(this.$L('两次密码输入不一致')));
                             } else {
                                 callback();
                             }
@@ -389,26 +398,41 @@
                 ]
             };
         },
+        mounted() {
+            this.getSetting();
+        },
         deactivated() {
             this.loginShow = false;
         },
         watch: {
             loginShow(val) {
                 if (val) {
-                    $A.aAjax({
-                        url: 'system/setting',
-                        success: (res) => {
-                            if (res.ret === 1) {
-                                this.regOpen = res.data.reg || 'open';
-                            }
-                        }
-                    });
+                    this.getSetting();
                 } else {
                     this.loginType = 'login';
                 }
             }
         },
         methods: {
+            getSetting() {
+                $A.aAjax({
+                    url: 'system/setting',
+                    error: () => {
+                        $A.storage("systemSetting", {});
+                    },
+                    success: (res) => {
+                        if (res.ret === 1) {
+                            this.systemConfig = res.data;
+                            this.systemConfig.github = this.systemConfig.github || 'show';
+                            this.systemConfig.reg = this.systemConfig.reg || 'open';
+                            $A.storage("systemSetting", this.systemConfig);
+                        } else {
+                            $A.storage("systemSetting", {});
+                        }
+                    }
+                });
+            },
+
             loginChack() {
                 if ($A.getToken() !== false) {
                     this.goForward({path: '/todo'}, true);

二進制
resources/assets/statics/images/logo-white.png


二進制
resources/assets/statics/images/logo4.png


+ 15 - 1
resources/lang/en/general.js

@@ -58,7 +58,7 @@ export default {
     "密码长度至少6位!": "Password length of at least 6!",
     "请输入新密码!": "Please enter a new password!",
     "请输入确认新密码!": "Please enter confirm the new password!",
-    "两次密码输入不一致!": "Enter the password twice inconsistent!",
+    "两次密码输入不一致": "Enter the password twice inconsistent!",
     "您确定要退出登录吗?": "Are you sure you want to log off?",
     "修改成功": "Successfully modified",
     "修改成功,请重新登录!": "Modified successfully, please log in again!",
@@ -374,4 +374,18 @@ export default {
     "错误详情": "Error Details",
     "修改了工作报告": "Revised work report",
     "发送了工作报告": "Send the work report",
+    "系统设置": "System Settings",
+    "允许注册": "Allowed register",
+    "注册": "Register",
+    "允许": "Allowed",
+    "禁止": "Forbid",
+    "确认密码": "Confirm password",
+    "请填写确认密码!": "Please fill in the confirmation password!",
+    "确认密码错长度至少6位!": "Make sure the password is at least 6 digits long!",
+    "首页Logo": "Logo",
+    "建议尺寸:%": "Suggested size: %",
+    "Github图标": "Github icon",
+    "显示": "Show",
+    "隐藏": "Hidden",
+    "注册账号": "Register",
 }

+ 5 - 3
resources/lang/en/general.php

@@ -87,7 +87,7 @@ return [
     "请填写正确的旧密码!" => "Please fill in the correct old password!",
     "修改成功" => "Successfully modified",
     "未找到任何相关的团队成员" => "Any relevant team members found",
-    "身份权限不足!" => "Lack of identity permission!",
+    "权限不足!" => "No permissions!",
     "用户名不可以少于2个字符!" => "Username can not be less than two characters!",
     "用户名最多只能设置16个字符!" => "User name can only be set up to 16 characters!",
     "用户名由2-16位数字或字母、汉字、下划线组成!" => "The user name of 2-16 digits or letters, Chinese characters, underscores!",
@@ -105,6 +105,8 @@ return [
     "你在项目内" => "You within the project",
     "身份已失效,请重新登录!" => "Status has expired, please login again!",
     "请登录后继续..." => "Please log in to continue ...",
-    "权限通过" => "By permission",
-    "权限不足" => "Insufficient permissions",
+    "权限通过。" => "By permission.",
+    "未开放注册。" => "Registration not open.",
+    "注册成功!" => "Registered!",
+    "注册失败,请稍后再试。" => "Registration failed. Please try again later.",
 ];