Przeglądaj źródła

feat:customRoom

xiao007 2 miesięcy temu
rodzic
commit
924e9436d9

+ 7 - 5
src/components/header.vue

@@ -40,7 +40,7 @@
                 <!-- 用户名下拉菜单 -->
                 <el-dropdown class="user-name" trigger="click" @command="handleCommand">
                     <span class="el-dropdown-link">
-                      {{ userInfo.username}}
+                      {{ userInfo.nickName}}
                         <el-icon class="el-icon--right">
                             <arrow-down />
                         </el-icon>
@@ -48,7 +48,7 @@
                     <template #dropdown>
                         <el-dropdown-menu>
                             <!-- <el-dropdown-item command="user">个人中心</el-dropdown-item> -->
-                            <el-dropdown-item divided command="loginout">{{$t('loginout')}}</el-dropdown-item>
+                            <el-dropdown-item command="loginout">{{$t('loginout')}}</el-dropdown-item>
                         </el-dropdown-menu>
                     </template>
                 </el-dropdown>
@@ -85,11 +85,13 @@ onMounted(() => {
 // 用户名下拉菜单选择事件
 const router = useRouter();
 const loginout = async () => {
-  // const res = await request('post', '/api/live/video/user/logout',{username:userInfo.username},'application/x-www-form-urlencoded')
-  // if (res.code === 200) {
+  console.log(userInfo.value.nickName, 'userInfo');
+  
+  const res = await request('post', 'admin/user/logout',{username:userInfo.value.nickName})
+  if (res.code === 200) {
     userStore.clearUserInfo();
       router.push('/login');
-  // } 
+  } 
 };
 const handleCommand = (command) => {
     if (command == 'loginout') {

+ 0 - 3
src/components/ruleform.vue

@@ -155,7 +155,4 @@ const updateRoom = async ()=>{
   display: flex;
   margin-right: 16px;
 }
-::v-deep .el-input__wrapper{
-  background-color: #fff6ea !important;
-}
 </style>

+ 3 - 0
src/i18n/en.ts

@@ -64,9 +64,12 @@ export default {
   maximumTicket:'Maximum ticket',
   quantity:'quantity',
   customRoom:'Custom room',
+  roomLength:'Customize room duration (minutes)',
+  configuration:'Customize the room duration configuration',
   sessionRooms:'Number of rooms per session',
   loginout:'Log out',
   fieldRequired:'Tickets are required',
+  lengthRequired:'Duration required',
   greaterThanZero:'The value must be greater than 0',
   mustNumber:'Please enter the number',
   two:'Keep at most two decimals'

+ 6 - 3
src/i18n/es.ts

@@ -64,11 +64,14 @@ export default {
   maximumTicket:'El ticket más alto',
   quantity:'El número de',
   customRoom:'Personaliza tu habitación',
+  roomLength:'Duración personalizada de la habitación (minutos)',
+  configuration:'Configuración personalizada de la duración de la sala',
   sessionRooms:'Número de habitaciones',
   loginout:'Salir del login',
   fieldRequired:'Entrada de sesión obligatoria',
-    greaterThanZero:'El valor debe ser mayor que 0',
-      mustNumber:'Por favor ingrese los números',
-        two:'Mantenga hasta dos decimales'
+  lengthRequired:'Duración requerido',
+  greaterThanZero:'El valor debe ser mayor que 0',
+  mustNumber:'Por favor ingrese los números',
+  two:'Mantenga hasta dos decimales'
 
 }

+ 47 - 10
src/views/pages/rule.vue

@@ -1,39 +1,59 @@
 <template>
   <Group style="height: 100%;">
-    <el-tabs>
-      <el-tab-pane :label="$t('primaryField')">
+    <el-tabs v-model="activeName"  @tab-click="handleClick">
+      <el-tab-pane :label="$t('primaryField')" name="primaryField">
         <Ruleform @getPageData="getPageData" :formData="pageData[0]" />
       </el-tab-pane>
-      <el-tab-pane :label="$t('intermediateField')">
+      <el-tab-pane :label="$t('intermediateField')" name="intermediateField">
         <Ruleform @getPageData="getPageData" :formData="pageData[1]" />
       </el-tab-pane>
-      <el-tab-pane :label="$t('higherOrderField')">
+      <el-tab-pane :label="$t('higherOrderField')" name="higherOrderField">
         <Ruleform @getPageData="getPageData" :formData="pageData[2]" />
       </el-tab-pane>
-      <el-tab-pane :label="$t('customRoom')">
+      <el-tab-pane :label="$t('customRoom')" name="customRoom">
         <el-form :model="formData">
           <el-form-item>
             <span style="width: 360px;">{{$t('customizeRoom')}}:</span>
           </el-form-item>
+          <el-form-item prop="pokerRoomTicket" :rules="[
+          { required: true, message: $t('fieldRequired'), trigger: 'blur' },
+          { type:'number',min:0.1,message: $t('greaterThanZero'), trigger: 'blur' }
+        ]">
+            <div class="row">
+              <span style="color: red;">*</span><span style="width: 460px;">{{$t('customizeRoomRates')}}:</span>
+              <el-input v-model.number="formData.pokerRoomTicket" :placeholder="$t('pleaseEnter')" />
+            </div>
+          </el-form-item>
           <el-form-item>
+            <span style="width: 360px;">{{$t('configuration')}}:</span>
+          </el-form-item>
+          <el-form-item prop="pokerRoomDuration" :rules="[
+          { required: true, message: $t('lengthRequired'), trigger: 'blur' },
+          { type:'number',min:0.1,message: $t('greaterThanZero'), trigger: 'blur' }
+        ]">
             <div class="row">
-              <span style="width: 280px;">{{$t('customizeRoomRates')}}:</span>
-              <el-input v-model="formData.roomNumber" :placeholder="$t('pleaseEnter')" />
+              <span style="color: red;">*</span><span style="width: 580px;">{{$t('roomLength')}}:</span>
+              <el-input v-model.number="formData.pokerRoomDuration" :placeholder="$t('pleaseEnter')" />
             </div>
           </el-form-item>
         </el-form>
+        <div style="display: flex;justify-content: flex-end;">
+          <el-button  type="primary" @click="handleSubmit">{{$t('save')}}</el-button>
+        </div>
       </el-tab-pane>
     </el-tabs>
   </Group>
 </template>
 
 <script setup name="user">
-import { ref, reactive, onMounted } from 'vue';
+import { ref, reactive, onMounted, computed} from 'vue';
 import Group from '@/components/group.vue';
 import Ruleform from '@/components/ruleform.vue';
 import request from '@/utils/request';
-
+import { ElMessage } from 'element-plus';
+import i18n from '@/utils/i18n'
 const pageData = ref([{}, {}, {}]);
+const activeName = ref('primaryField')
 const formData = reactive({
   roomNumber: ''
 });
@@ -48,7 +68,21 @@ const getPageData = async () => {
     console.error('error:', error);
   }
 };
-
+const handleSubmit = async() => {
+  const res = await request('post', 'admin/updateSystemConfigure', {...formData,roomNumber:'customRoom'})
+  if (res.code === 200) {
+    ElMessage.success(i18n.global.t('successfulOperation'))
+  }
+}
+const handleClick = async(tab) => {
+  if (tab.paneName === 'customRoom') {
+    const res = await request('get', 'admin/getSystemConfigure')
+    if (res.code === 200) {
+      Object.assign(formData, res.data)
+    }
+  }
+  
+}
 onMounted(() => {
   getPageData();
 });
@@ -63,4 +97,7 @@ onMounted(() => {
   display: flex;
   margin-right: 16px;
 }
+::v-deep .el-input__wrapper{
+  background-color: #fffdef !important;
+}
 </style>