mirror of
				https://github.com/yangjian102621/geekai.git
				synced 2025-11-04 08:13:43 +08:00 
			
		
		
		
	细节处修改
This commit is contained in:
		@@ -8,6 +8,9 @@
 | 
			
		||||
    ::v-deep (.el-message-box__message){
 | 
			
		||||
      font-size: 18px !important
 | 
			
		||||
    }
 | 
			
		||||
    .newChat{
 | 
			
		||||
      margin-bottom: 10px  
 | 
			
		||||
    }
 | 
			
		||||
    // left side
 | 
			
		||||
    .el-container{
 | 
			
		||||
      height: 100%;
 | 
			
		||||
@@ -115,7 +118,7 @@
 | 
			
		||||
              background-color :var(--theme-bg);
 | 
			
		||||
              box-shadow: 0px 3px 9px rgba(112,144,176,0.12);
 | 
			
		||||
            
 | 
			
		||||
            border: 1px solid var(--border-active);
 | 
			
		||||
            border: 1px solid var(--shadow-color);
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
@@ -219,6 +222,8 @@
 | 
			
		||||
          .chat-box {
 | 
			
		||||
            overflow-y: auto;
 | 
			
		||||
            //border-bottom: 1px solid #4f4f4f
 | 
			
		||||
  scrollbar-width: none; /* 隐藏滚动条(Firefox) */
 | 
			
		||||
  -ms-overflow-style: none; /* 隐藏滚动条(IE、Edge) */
 | 
			
		||||
 | 
			
		||||
            // 变量定义
 | 
			
		||||
            --content-font-size: 16px;
 | 
			
		||||
@@ -234,6 +239,9 @@
 | 
			
		||||
              
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            ::-webkit-scrollbar {
 | 
			
		||||
  display: none; /* 隐藏滚动条(Webkit 浏览器) */
 | 
			
		||||
}
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          .input-box {
 | 
			
		||||
 
 | 
			
		||||
@@ -23,7 +23,8 @@
 | 
			
		||||
 --el-input-focus-border-color: #b0a0f8;
 | 
			
		||||
 --little-btn-bg:#e9d3f6;
 | 
			
		||||
 --gray-btn-bg:#ededf591;
 | 
			
		||||
  --a-link-color: #3561ff
 | 
			
		||||
  // --a-link-color: #3561ff
 | 
			
		||||
  --a-link-color: #6e8eff
 | 
			
		||||
  --shadow-color:rgba(223,71,255,0.6)
 | 
			
		||||
  --sm-btn-bg:#6052ed;
 | 
			
		||||
--theme-text-tertiary: #595959;
 | 
			
		||||
 
 | 
			
		||||
@@ -23,4 +23,15 @@
 | 
			
		||||
  ::-webkit-scrollbar-thumb:hover {
 | 
			
		||||
    background-color: #666666;
 | 
			
		||||
  }
 | 
			
		||||
  overflow: auto; /* 保持滚动功能 */
 | 
			
		||||
  scrollbar-width: none; /* 隐藏滚动条(Firefox) */
 | 
			
		||||
  -ms-overflow-style: none; /* 隐藏滚动条(IE、Edge) */
 | 
			
		||||
  ::-webkit-scrollbar {
 | 
			
		||||
    display: none; /* 隐藏滚动条(Webkit 浏览器) */
 | 
			
		||||
  }
 | 
			
		||||
  &.showScrollbar {
 | 
			
		||||
    ::-webkit-scrollbar {
 | 
			
		||||
      display: none; /* 隐藏滚动条(Webkit 浏览器) */
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -379,7 +379,7 @@
 | 
			
		||||
                            display block
 | 
			
		||||
                            cursor pointer
 | 
			
		||||
                            background-color #4E5058
 | 
			
		||||
                            color var(--text-theme-color)
 | 
			
		||||
                            color #fff
 | 
			
		||||
 | 
			
		||||
                            &:hover {
 | 
			
		||||
                              background-color #6D6F78
 | 
			
		||||
 
 | 
			
		||||
@@ -259,7 +259,7 @@
 | 
			
		||||
              background none
 | 
			
		||||
              padding 6px
 | 
			
		||||
              transition background 0.6s ease 0s
 | 
			
		||||
              color #726E6C
 | 
			
		||||
              color #919191
 | 
			
		||||
 | 
			
		||||
              &:hover {
 | 
			
		||||
                // background #5f5958
 | 
			
		||||
 
 | 
			
		||||
@@ -164,6 +164,8 @@
 | 
			
		||||
          &:hover {
 | 
			
		||||
            // box-shadow: 0 0 10px rgba(71, 255, 241, 0.6); /* 添加阴影效果 */
 | 
			
		||||
            transform: translateY(-10px); /* 向上移动10像素 */
 | 
			
		||||
            box-shadow: 0 0 10px var(--shadow-color);
 | 
			
		||||
            background-color: #30323c;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
.el-overlay-dialog {
 | 
			
		||||
  .el-dialog {
 | 
			
		||||
    background-color #1a1b1e
 | 
			
		||||
    // background-color #1a1b1e
 | 
			
		||||
 | 
			
		||||
    .el-dialog__header {
 | 
			
		||||
      .el-dialog__title {
 | 
			
		||||
@@ -33,14 +33,15 @@
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .task-info {
 | 
			
		||||
          background-color #25262b
 | 
			
		||||
          // background-color #25262b
 | 
			
		||||
          padding 1rem 1.5rem
 | 
			
		||||
         
 | 
			
		||||
 | 
			
		||||
          .info-line {
 | 
			
		||||
            width 100%
 | 
			
		||||
 | 
			
		||||
            .prompt {
 | 
			
		||||
              background-color #35363b
 | 
			
		||||
              // background-color #35363b
 | 
			
		||||
              padding 10px
 | 
			
		||||
              color #999999
 | 
			
		||||
              overflow auto
 | 
			
		||||
@@ -64,16 +65,16 @@
 | 
			
		||||
              label {
 | 
			
		||||
                display flex
 | 
			
		||||
                width 100px
 | 
			
		||||
                color #a5a5a5
 | 
			
		||||
                color :var(--el-text-color-primary)
 | 
			
		||||
              }
 | 
			
		||||
 | 
			
		||||
              .item-value {
 | 
			
		||||
                display flex
 | 
			
		||||
                width 100%
 | 
			
		||||
                background-color #35363b
 | 
			
		||||
                // background-color #35363b
 | 
			
		||||
                padding 2px 5px
 | 
			
		||||
                border-radius 5px
 | 
			
		||||
                color #F5F5F5
 | 
			
		||||
                color: var(--text-theme-color);
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,14 @@
 | 
			
		||||
  height 100%
 | 
			
		||||
  // background-color #0E0808
 | 
			
		||||
  overflow auto
 | 
			
		||||
 | 
			
		||||
  .item-group{
 | 
			
		||||
    scrollbar-width: auto !important; /* 恢复滚动条(Firefox) */
 | 
			
		||||
  -ms-overflow-style: auto !important; /* 恢复滚动条(IE、Edge) */
 | 
			
		||||
  ::-webkit-scrollbar {
 | 
			
		||||
    display: block !important; 
 | 
			
		||||
  }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
  .left-bar {
 | 
			
		||||
    max-width 340px
 | 
			
		||||
    min-width 340px
 | 
			
		||||
@@ -147,8 +154,14 @@
 | 
			
		||||
        position relative
 | 
			
		||||
        overflow-x auto
 | 
			
		||||
        overflow-y hidden
 | 
			
		||||
        scrollbar-width: auto !important; /* 恢复滚动条(Firefox) */
 | 
			
		||||
        -ms-overflow-style: auto !important; /* 恢复滚动条(IE、Edge) */
 | 
			
		||||
        width 100%
 | 
			
		||||
 | 
			
		||||
        ::-webkit-scrollbar {
 | 
			
		||||
          display: block !important; 
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .inner {
 | 
			
		||||
          display flex
 | 
			
		||||
          flex-flow row
 | 
			
		||||
@@ -256,7 +269,7 @@
 | 
			
		||||
            font-weight 700
 | 
			
		||||
 | 
			
		||||
            a {
 | 
			
		||||
              color vae( --a-link-color)
 | 
			
		||||
              color var( --a-link-color)
 | 
			
		||||
              &:hover {
 | 
			
		||||
                text-decoration underline
 | 
			
		||||
              }
 | 
			
		||||
@@ -309,7 +322,7 @@
 | 
			
		||||
              background none
 | 
			
		||||
              padding 6px
 | 
			
		||||
              transition background 0.6s ease 0s
 | 
			
		||||
              color #726E6C
 | 
			
		||||
              color #919191
 | 
			
		||||
 | 
			
		||||
              &:hover {
 | 
			
		||||
                // background #5f5958
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,8 @@
 | 
			
		||||
  --btnColor: linear-gradient(88deg, #af61f0 1.44%, #5b62ce);
 | 
			
		||||
  --border-active:rgba(255, 255, 255, 0.1);
 | 
			
		||||
  // --card-bg: rgba(17, 28, 68, 1);
 | 
			
		||||
  --card-bg: #1f243f;
 | 
			
		||||
  // --card-bg: #1f243f;
 | 
			
		||||
  --card-bg:#252d58;
 | 
			
		||||
   --card-bg-table: rgba(17, 28, 68, 1);
 | 
			
		||||
  --theme-bg:rgb(13, 20, 53);
 | 
			
		||||
  --theme-bg-all:rgb(13, 20, 53);
 | 
			
		||||
@@ -34,7 +35,8 @@
 | 
			
		||||
   --el-bg-color-overlay: rgba(17, 28, 68, 1);
 | 
			
		||||
   --el-border-color-light: rgba(255, 255, 255, 0.2);
 | 
			
		||||
  --line-box:rgba(255, 255, 255, 0.1);
 | 
			
		||||
  --chat-bg:#141a36;
 | 
			
		||||
  // --chat-bg:#141a36;
 | 
			
		||||
  --chat-bg:#1f243f
 | 
			
		||||
  --el-bg-color:#141a36;
 | 
			
		||||
  --el-fill-color-blank: rgba(17, 28, 68, 1);
 | 
			
		||||
  --el-fill-color-light: rgba(86, 86, 95, .2);
 | 
			
		||||
 
 | 
			
		||||
@@ -432,10 +432,12 @@ const reGenerate = (prompt) => {
 | 
			
		||||
              line-height 1.5
 | 
			
		||||
 | 
			
		||||
              code {
 | 
			
		||||
                color:var(--theme-text-color-primary);
 | 
			
		||||
                background-color var( --little-btn-bg)
 | 
			
		||||
                color:#fff;
 | 
			
		||||
                background-color var( --el-color-primary)
 | 
			
		||||
                padding 0 3px;
 | 
			
		||||
                border-radius 5px;
 | 
			
		||||
                font-size: 16px;
 | 
			
		||||
                padding: 5px 7px;
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@@ -539,7 +541,7 @@ const reGenerate = (prompt) => {
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          .bar-item.bg {
 | 
			
		||||
            background-color var( --gray-btn-bg)
 | 
			
		||||
            // background-color var( --gray-btn-bg)
 | 
			
		||||
            cursor pointer
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -41,7 +41,7 @@
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
      </el-table>
 | 
			
		||||
    </el-row>
 | 
			
		||||
    <el-empty :image-size="100" v-else />
 | 
			
		||||
    <el-empty :image-size="100" v-else :image="nodata" description="暂无数据" />
 | 
			
		||||
    <div class="pagination">
 | 
			
		||||
      <el-pagination
 | 
			
		||||
        v-if="total > 0"
 | 
			
		||||
@@ -59,6 +59,8 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script setup>
 | 
			
		||||
import nodata from "@/assets/img/no-data.png";
 | 
			
		||||
 | 
			
		||||
import { onMounted, ref } from "vue";
 | 
			
		||||
import { httpGet } from "@/utils/http";
 | 
			
		||||
import { ElMessage } from "element-plus";
 | 
			
		||||
 
 | 
			
		||||
@@ -1,29 +1,25 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="black-dialog">
 | 
			
		||||
    <el-dialog
 | 
			
		||||
        v-model="showDialog"
 | 
			
		||||
        style="--el-dialog-bg-color:#414141;
 | 
			
		||||
        --el-text-color-primary:#f1f1f1;
 | 
			
		||||
        --el-border-color:#414141;
 | 
			
		||||
        --el-color-primary:#21aa93;
 | 
			
		||||
        --el-color-primary-dark-2:#41555d;
 | 
			
		||||
        --el-color-white: #e1e1e1;
 | 
			
		||||
        --el-color-primary-light-3:#549688;
 | 
			
		||||
        --el-fill-color-blank:#616161;
 | 
			
		||||
         --el-color-primary-light-7:#717171;
 | 
			
		||||
        --el-color-primary-light-9:#717171;
 | 
			
		||||
        --el-text-color-regular:#e1e1e1"
 | 
			
		||||
        :title="title"
 | 
			
		||||
        :width="width"
 | 
			
		||||
        :before-close="cancel"
 | 
			
		||||
      v-model="showDialog"
 | 
			
		||||
      :title="title"
 | 
			
		||||
      :width="width"
 | 
			
		||||
      :before-close="cancel"
 | 
			
		||||
    >
 | 
			
		||||
      <div class="dialog-body">
 | 
			
		||||
        <slot></slot>
 | 
			
		||||
      </div>
 | 
			
		||||
      <template #footer v-if="!hideFooter">
 | 
			
		||||
        <div class="dialog-footer">
 | 
			
		||||
          <el-button @click="cancel">{{cancelText}}</el-button>
 | 
			
		||||
          <el-button type="primary" @click="$emit('confirm')" v-if="!hideConfirm">{{confirmText}}</el-button>
 | 
			
		||||
          <el-button @click="cancel" style="--el-border-radius-base: 8px">{{
 | 
			
		||||
            cancelText
 | 
			
		||||
          }}</el-button>
 | 
			
		||||
          <el-button
 | 
			
		||||
            type="primary"
 | 
			
		||||
            @click="$emit('confirm')"
 | 
			
		||||
            v-if="!hideConfirm"
 | 
			
		||||
            >{{ confirmText }}</el-button
 | 
			
		||||
          >
 | 
			
		||||
        </div>
 | 
			
		||||
      </template>
 | 
			
		||||
    </el-dialog>
 | 
			
		||||
@@ -31,45 +27,47 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script setup>
 | 
			
		||||
 | 
			
		||||
import {ref, watch} from "vue";
 | 
			
		||||
import { ref, watch } from "vue";
 | 
			
		||||
const props = defineProps({
 | 
			
		||||
  show : Boolean,
 | 
			
		||||
  show: Boolean,
 | 
			
		||||
  title: {
 | 
			
		||||
    type: String,
 | 
			
		||||
    default: 'Tips',
 | 
			
		||||
    default: "Tips"
 | 
			
		||||
  },
 | 
			
		||||
  width: {
 | 
			
		||||
    type: String,
 | 
			
		||||
    default: 'auto',
 | 
			
		||||
    default: "auto"
 | 
			
		||||
  },
 | 
			
		||||
  hideFooter:{
 | 
			
		||||
  hideFooter: {
 | 
			
		||||
    type: Boolean,
 | 
			
		||||
    default: false
 | 
			
		||||
  },
 | 
			
		||||
  hideConfirm:{
 | 
			
		||||
  hideConfirm: {
 | 
			
		||||
    type: Boolean,
 | 
			
		||||
    default: false
 | 
			
		||||
  },
 | 
			
		||||
  confirmText: {
 | 
			
		||||
    type: String,
 | 
			
		||||
    default: '确定',
 | 
			
		||||
    default: "确定"
 | 
			
		||||
  },
 | 
			
		||||
  cancelText: {
 | 
			
		||||
    type: String,
 | 
			
		||||
    default: '取消',
 | 
			
		||||
  },
 | 
			
		||||
    default: "取消"
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
const emits = defineEmits(['confirm','cancal']);
 | 
			
		||||
const showDialog = ref(props.show)
 | 
			
		||||
const emits = defineEmits(["confirm", "cancal"]);
 | 
			
		||||
const showDialog = ref(props.show);
 | 
			
		||||
 | 
			
		||||
watch(() => props.show, (newValue) => {
 | 
			
		||||
  showDialog.value = newValue
 | 
			
		||||
})
 | 
			
		||||
watch(
 | 
			
		||||
  () => props.show,
 | 
			
		||||
  (newValue) => {
 | 
			
		||||
    showDialog.value = newValue;
 | 
			
		||||
  }
 | 
			
		||||
);
 | 
			
		||||
const cancel = () => {
 | 
			
		||||
  showDialog.value = false
 | 
			
		||||
  emits('cancal')
 | 
			
		||||
}
 | 
			
		||||
  showDialog.value = false;
 | 
			
		||||
  emits("cancal");
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="stylus">
 | 
			
		||||
@@ -110,5 +108,4 @@ const cancel = () => {
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -3,12 +3,12 @@
 | 
			
		||||
    <el-container>
 | 
			
		||||
      <el-aside>
 | 
			
		||||
        <div class="media-page">
 | 
			
		||||
          <!-- <el-button @click="_newChat" color="#21aa93">
 | 
			
		||||
          <el-button @click="_newChat" type="primary" class="newChat">
 | 
			
		||||
            <el-icon style="margin-right: 5px">
 | 
			
		||||
              <Plus/>
 | 
			
		||||
              <Plus />
 | 
			
		||||
            </el-icon>
 | 
			
		||||
            新建对话
 | 
			
		||||
          </el-button> -->
 | 
			
		||||
          </el-button>
 | 
			
		||||
 | 
			
		||||
          <div class="search-box">
 | 
			
		||||
            <el-input
 | 
			
		||||
@@ -248,7 +248,7 @@
 | 
			
		||||
                        </textarea>
 | 
			
		||||
                      </div>
 | 
			
		||||
                      <div class="flex-between">
 | 
			
		||||
                        <div @click="_newChat" class="flex-center add-new">
 | 
			
		||||
                        <!-- <div @click="_newChat" class="flex-center add-new">
 | 
			
		||||
                          <el-tooltip
 | 
			
		||||
                            class="box-item"
 | 
			
		||||
                            effect="dark"
 | 
			
		||||
@@ -256,7 +256,7 @@
 | 
			
		||||
                          >
 | 
			
		||||
                            <el-icon><CirclePlusFilled /></el-icon>
 | 
			
		||||
                          </el-tooltip>
 | 
			
		||||
                        </div>
 | 
			
		||||
                        </div> -->
 | 
			
		||||
                        <div class="flex little-btns">
 | 
			
		||||
                          <span class="send-btn tool-item-btn">
 | 
			
		||||
                            <!-- showStopGenerate -->
 | 
			
		||||
@@ -688,7 +688,7 @@ const resizeElement = function () {
 | 
			
		||||
 | 
			
		||||
  // leftBoxHeight.value = window.innerHeight - 90 - 45 - 82;
 | 
			
		||||
  // leftBoxHeight.value = window.innerHeight - 90 - 82;
 | 
			
		||||
  leftBoxHeight.value = window.innerHeight - 90 - 50;
 | 
			
		||||
  leftBoxHeight.value = window.innerHeight - 90 - 100;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const _newChat = () => {
 | 
			
		||||
 
 | 
			
		||||
@@ -181,7 +181,7 @@
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <!-- :style="{ 'padding-left': isCollapse ? '65px' : '170px' }" -->
 | 
			
		||||
    <div class="right-main">
 | 
			
		||||
    <el-scrollbar class="right-main">
 | 
			
		||||
      <div
 | 
			
		||||
        v-if="loginUser.id === undefined || !loginUser.id"
 | 
			
		||||
        class="loginMask"
 | 
			
		||||
@@ -205,7 +205,7 @@
 | 
			
		||||
        </router-view>
 | 
			
		||||
      </div>
 | 
			
		||||
      <!-- </div> -->
 | 
			
		||||
    </div>
 | 
			
		||||
    </el-scrollbar>
 | 
			
		||||
    <config-dialog
 | 
			
		||||
      v-if="loginUser.id"
 | 
			
		||||
      :show="showConfigDialog"
 | 
			
		||||
@@ -309,13 +309,20 @@ const changeNav = (item) => {
 | 
			
		||||
  curPath.value = item.url;
 | 
			
		||||
  if (item.url.indexOf("http") !== -1) {
 | 
			
		||||
    // 外部链接
 | 
			
		||||
    router.push({ name: "ExternalLink", query: { url: item.url } });
 | 
			
		||||
    window.open(item.url, "_blank");
 | 
			
		||||
  } else {
 | 
			
		||||
    router.push(item.url);
 | 
			
		||||
    // 路由切换,确保路径变化
 | 
			
		||||
    if (router.currentRoute.value.path !== item.url) {
 | 
			
		||||
      router.push(item.url).then(() => {
 | 
			
		||||
        // 刷新 `routerViewKey` 触发视图重新渲染
 | 
			
		||||
        routerViewKey.value += 1;
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
onMounted(() => {
 | 
			
		||||
  curPath.value = router.currentRoute.value.path;
 | 
			
		||||
  getSystemInfo()
 | 
			
		||||
    .then((res) => {
 | 
			
		||||
      logo.value = res.data.logo;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user