From 5e6e726564e5cf1520f95b7f4f13707a39da4bad Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期五, 30 八月 2024 19:43:42 +0800
Subject: [PATCH] fix: 修改bug
---
src/views/sessionManager/components/updataFile.vue | 687 ++++++++++++++++++++++++++++++---------------------------
1 files changed, 361 insertions(+), 326 deletions(-)
diff --git a/src/views/sessionManager/components/updataFile.vue b/src/views/sessionManager/components/updataFile.vue
index 65892da..f1e9980 100644
--- a/src/views/sessionManager/components/updataFile.vue
+++ b/src/views/sessionManager/components/updataFile.vue
@@ -1,18 +1,7 @@
<template>
- <a-popover
- :popup-visible="visible"
- title=""
- trigger="click"
- position="tl">
- <a-button
- type="text"
- style="border-radius: 24px"
- @click="visibleChange"
- >
- <icon-attachment
- size="28"
- style="color: #0960bd"
- />
+ <a-popover :popup-visible="visible" title="" trigger="click" position="tl">
+ <a-button type="text" style="border-radius: 24px" @click="visibleChange">
+ <icon-attachment size="28" style="color: #0960bd" />
</a-button>
<template #title>
<div style="display: flex; justify-content: space-between">
@@ -33,26 +22,43 @@
multiple
:limit="1"
/>
- <div style="width: 100%;margin-top: 10px;display: flex; justify-content: space-between;" class="upload-wrap">
+ <div
+ style="
+ width: 100%;
+ margin-top: 10px;
+ display: flex;
+ justify-content: space-between;
+ "
+ class="upload-wrap"
+ >
<div>
<span>瑙f瀽鏂规硶: </span>
- <a-radio-group v-model="parser_id" style="width: 400px;" @change="parserChange">
- <a-popover title=""
- v-for="item in filterData"
- :key="item.value"
- >
- <a-radio
- :value="item.value"
- style="margin-right: 10px"
- >{{item.name}}</a-radio>
+ <a-radio-group
+ v-model="parser_id"
+ style="width: 400px"
+ @change="parserChange"
+ >
+ <a-popover v-for="item in filterData" :key="item.value">
+ <a-radio :value="item.value" style="margin-right: 10px">{{
+ item.name
+ }}</a-radio>
+
<template #content>
- <p style="max-width: 300px">{{item.parser_config_str}}</p>
+ <p>{{ item.parser_config_str }}</p>
</template>
</a-popover>
</a-radio-group>
</div>
- <a-select :style="{width:'100px', margin: '0 10px'}" :default-value="['閫氱敤', '澶氭ā鎬�']" v-model="parser_configs" multiple size="small">
- <a-option v-for="item in parser_ids" :key="item.value">{{ item.name }}</a-option>
+ <a-select
+ :style="{ width: '100px', margin: '0 10px' }"
+ :default-value="['閫氱敤', '澶氭ā鎬�']"
+ v-model="parser_configs"
+ multiple
+ size="small"
+ >
+ <a-option v-for="item in parser_ids" :key="item.value">{{
+ item.name
+ }}</a-option>
</a-select>
<p class="config-text">鏇村閰嶇疆</p>
<a-button
@@ -60,11 +66,9 @@
@click="upDataFile"
type="primary"
size="mini"
- style="border-radius: 24px;"
+ style="border-radius: 24px"
>
- <span style="font-size: 12px;">
- 涓婁紶
- </span>
+ <span style="font-size: 12px"> 涓婁紶 </span>
</a-button>
</div>
</template>
@@ -72,317 +76,348 @@
</template>
<script lang="ts" setup>
-import { onMounted, onBeforeMount, reactive, ref, computed, watch } from "vue";
-import axios from "axios";
-import { Message } from "@arco-design/web-vue";
-import { getParseMethodsListApi, uploadWithoutKb } from "@/api/session";
+ import {
+ onMounted,
+ onBeforeMount,
+ reactive,
+ ref,
+ computed,
+ watch,
+ } from 'vue';
+ import axios from 'axios';
+ import { Message } from '@arco-design/web-vue';
+ import {
+ addSessionApi,
+ getParseMethodsListApi,
+ getSessionDetailsApi,
+ uploadWithoutKb,
+ uploadAndParse,
+ } from '@/api/session';
-const visible = ref(false);
-const loading = ref(false);
-const chatDis = ref(false);
-const directory = ref(false);
-const filesBtn = ref(null);
-const onFileSelectedLoading = ref(false);
-const parser_id = ref("");
-const parseridConfig = ref(false);
-const uploaditemList = ref([]);
-const activeSessionId = ref('');
-let kbtenantInfo = reactive({
- asr_id: 'paraformer-realtime-8k-v1',
- embd_id: 'BAAI/bge-large-zh-v1.5',
- img2txt_id: 'qwen-vl-max',
- llm_id: 'qwen-plus',
- name: 'wanghaos Kingdom',
- // parser_ids: 'naive:General,qa:Q&A,resume:Resume,manual:Manual,table:Table,paper:Paper,book:Book,laws:Laws,presentation:Presentation,picture:Picture,one:One',
- parser_ids: 'naive:閫氱敤,qa:Q&A,resume:绠�鍘�,manual:璇存槑涔�,table:琛ㄦ牸,paper:澶氭ā鎬�,book:涔︾睄,laws:娉曞緥鏂囦欢,presentation:PPT,picture:鍥剧墖,one:鏁翠綋',
- rerank_id: 'BAAI/bge-reranker-v2-m3',
- role: 'owner',
- tenant_id: '948fc6fa41ab11ef8fb80242ac120004',
- parser_idObj: {},
-});
-const parser = reactive({
- naive: {
- "chunk_token_num": 676,
- "layout_recognize": true,
- "raptor": {
- "use_raptor": true,
- "prompt": "璇锋�荤粨浠ヤ笅娈佃惤銆� 灏忓績鏁板瓧锛屼笉瑕佺紪閫犮�� 娈佃惤濡備笅锛歕n {cluster_content}\n浠ヤ笂灏辨槸浣犻渶瑕佹�荤粨鐨勫唴瀹广��",
- "max_token": 600,
- "threshold": 0.32,
- "max_cluster": 233,
- "random_seed": 1500
- }
- }, // 鐢ㄦ埛鍚�
- qa: {
- "entity_types": [
- "organization",
- "person",
- "location",
- "event",
- "time"
- ],
- "raptor": {
- "use_raptor": false
- }
- },
- resume: {},
- manual: {},
- table: {},
- paper: {},
- book: {},
- laws: {},
- presentation: {},
- picture: {},
- one: {},
-
-});
-const parser_configs = ref(['閫氱敤', '澶氭ā鎬�']);
-const parser_ids = ref([
- {
- name: '閫氱敤',
- value: 'naive',
- parser_config: parser.naive,
- parser_config_str: '鏀寔鐨勬枃浠舵牸寮忎负DOCX銆丒XCEL銆丳PT銆両MAGE銆丳DF銆乀XT'
- },
- {
- name: 'Q&A',
- value: 'qa',
- parser_config: parser.qa,
- parser_config_str: '鏀寔 excel 鍜� csv/txt 鏂囦欢鏍煎紡銆� \n' +
- '濡傛灉鏂囦欢浠� excel 鏍煎紡锛屽垯搴旂敱涓や釜鍒楃粍鎴� 娌℃湁鏍囬锛氫竴涓彁鍑洪棶棰橈紝鍙︿竴涓敤浜庣瓟妗堬紝 绛旀鍒椾箣鍓嶇殑闂鍒椼�俓n' +
- '濡傛灉鏂囦欢浠� csv/txt 鏍煎紡涓� 鐢ㄤ綔鍒嗗紑闂鍜岀瓟妗堢殑瀹氱晫绗︺�俓n'
- },
- {
- name: '绠�鍘�',
- value: 'resume',
- parser_config: parser.resume,
- parser_config_str: '鏀寔鐨勬枃浠舵牸寮忎负DOCX銆丳DF銆乀XT'
- },
- {
- name: '璇存槑涔�',
- value: 'manual',
- parser_config: parser.manual,
- parser_config_str: '浠呮敮鎸丳DF'
- },
- {
- name: '琛ㄦ牸',
- value: 'table',
- parser_config: parser.table,
- parser_config_str: '鏀寔EXCEL鍜孋SV/TXT鏍煎紡鏂囥�� \n' +
- '瀵逛簬 csv 鎴� txt 鏂囦欢锛屽垪涔嬮棿鐨勫垎闅旂涓� TAB锛孿n' +
- '绗竴琛屽繀椤绘槸鍒楁爣棰樸�俓n'
- },
- {
- name: '澶氭ā鎬�',
- value: 'paper',
- parser_config: parser.paper,
- parser_config_str: '浠呮敮鎸丳DF鏂囦欢'
- },
- {
- name: '涔︾睄',
- value: 'book',
- parser_config: parser.book,
- parser_config_str: '鏀寔鐨勬枃浠舵牸寮忎负DOCX銆丳DF銆乀XT'
- },
- {
- name: '娉曞緥鏂囦欢',
- value: 'laws',
- parser_config: parser.laws,
- parser_config_str: '鏀寔鐨勬枃浠舵牸寮忎负DOCX銆丳DF銆乀XT'
- },
- {
- name: 'PPT',
- value: 'presentation',
- parser_config: parser.presentation,
- parser_config_str: '鏀寔鐨勬枃浠舵牸寮忎负PDF銆丳PTX'
- },
- {
- name: '鍥剧墖',
- value: 'picture',
- parser_config: parser.picture,
- parser_config_str: '鏀寔鍥惧儚鏂囦欢'
- },
- {
- name: '鏁翠綋',
- value: 'one',
- parser_config: parser.one,
- parser_config_str: '鏀寔鐨勬枃浠舵牸寮忎负DOCX銆丒XCEL銆丳DF銆乀XT'
- },
-]);
-const parser_idsArr = ref([]);
-const uploadList = ref([]);
-const props = defineProps(["sessionId"]);
-const emit = defineEmits(["selectFileCallback"]);
-const uploadRef = ref();
-const files = ref([]);
-const acceptNameList = computed(() => {
- return ".word, .pdf, .ppt, .excel, .txt, .zip, .rar, .7z, .doc, .docx, .xls, .xlsx, .pptx, .ppt, .pdf, .mp4, .avi, .mp3,.wav, .wma, .wmv, .rm,";
-});
-
-const filterData = computed(() => {
- const result = parser_ids.value.filter(val => parser_configs.value.includes(val.name)).reverse().slice(0,4).reverse();
- result.unshift({
- name: '鏅鸿兘璇嗗埆',
- value: '',
- parser_config_str: '',
- parser_config: ''
+ const visible = ref(false);
+ const loading = ref(false);
+ const chatDis = ref(false);
+ const directory = ref(false);
+ const filesBtn = ref(null);
+ const onFileSelectedLoading = ref(false);
+ const parser_id = ref('');
+ const parseridConfig = ref(false);
+ const uploaditemList = ref([]);
+ const activeSessionId = ref('');
+ let kbtenantInfo = reactive({
+ asr_id: 'paraformer-realtime-8k-v1',
+ embd_id: 'BAAI/bge-large-zh-v1.5',
+ img2txt_id: 'qwen-vl-max',
+ llm_id: 'qwen-plus',
+ name: 'wanghaos Kingdom',
+ // parser_ids: 'naive:General,qa:Q&A,resume:Resume,manual:Manual,table:Table,paper:Paper,book:Book,laws:Laws,presentation:Presentation,picture:Picture,one:One',
+ parser_ids:
+ 'naive:閫氱敤,qa:Q&A,resume:绠�鍘�,manual:璇存槑涔�,table:琛ㄦ牸,paper:澶氭ā鎬�,book:涔︾睄,laws:娉曞緥鏂囦欢,presentation:PPT,picture:鍥剧墖,one:鏁翠綋',
+ rerank_id: 'BAAI/bge-reranker-v2-m3',
+ role: 'owner',
+ tenant_id: '948fc6fa41ab11ef8fb80242ac120004',
+ parser_idObj: {},
});
- return result;
-});
-
-const init = () => {
- // parser_ids.value = kbtenantInfo.parser_ids.split(",").map((item) => {
- // const [value1, value2] = item.split(":");
- // return {
- // name: value2,
- // value: value1
- // };
- // });
- getParseMethodsList();
-}
-
-const chooseParser = (item) => {
- console.log(item);
-};
-
-const onChange = (fileList) => {
- files.value = fileList;
- files.value.forEach((item) => {
-
+ const parser = reactive({
+ naive: {
+ chunk_token_num: 676,
+ layout_recognize: true,
+ raptor: {
+ use_raptor: true,
+ prompt:
+ '璇锋�荤粨浠ヤ笅娈佃惤銆� 灏忓績鏁板瓧锛屼笉瑕佺紪閫犮�� 娈佃惤濡備笅锛歕n {cluster_content}\n浠ヤ笂灏辨槸浣犻渶瑕佹�荤粨鐨勫唴瀹广��',
+ max_token: 600,
+ threshold: 0.32,
+ max_cluster: 233,
+ random_seed: 1500,
+ },
+ }, // 鐢ㄦ埛鍚�
+ qa: {
+ entity_types: ['organization', 'person', 'location', 'event', 'time'],
+ raptor: {
+ use_raptor: false,
+ },
+ },
+ resume: {},
+ manual: {},
+ table: {},
+ paper: {},
+ book: {},
+ laws: {},
+ presentation: {},
+ picture: {},
+ one: {},
+ });
+ const parser_configs = ref(['閫氱敤', '澶氭ā鎬�']);
+ const parser_ids = ref([
+ {
+ name: '閫氱敤',
+ value: 'naive',
+ parser_config: parser.naive,
+ parser_config_str: '鏀寔鐨勬枃浠舵牸寮忎负DOCX銆丒XCEL銆丳PT銆両MAGE銆丳DF銆乀XT',
+ },
+ {
+ name: 'Q&A',
+ value: 'qa',
+ parser_config: parser.qa,
+ parser_config_str:
+ '鏀寔 excel 鍜� csv/txt 鏂囦欢鏍煎紡銆� \n' +
+ '濡傛灉鏂囦欢浠� excel 鏍煎紡锛屽垯搴旂敱涓や釜鍒楃粍鎴� 娌℃湁鏍囬锛氫竴涓彁鍑洪棶棰橈紝鍙︿竴涓敤浜庣瓟妗堬紝 绛旀鍒椾箣鍓嶇殑闂鍒椼�俓n' +
+ '濡傛灉鏂囦欢浠� csv/txt 鏍煎紡涓� 鐢ㄤ綔鍒嗗紑闂鍜岀瓟妗堢殑瀹氱晫绗︺�俓n',
+ },
+ {
+ name: '绠�鍘�',
+ value: 'resume',
+ parser_config: parser.resume,
+ parser_config_str: '鏀寔鐨勬枃浠舵牸寮忎负DOCX銆丳DF銆乀XT',
+ },
+ {
+ name: '璇存槑涔�',
+ value: 'manual',
+ parser_config: parser.manual,
+ parser_config_str: '浠呮敮鎸丳DF',
+ },
+ {
+ name: '琛ㄦ牸',
+ value: 'table',
+ parser_config: parser.table,
+ parser_config_str:
+ '鏀寔EXCEL鍜孋SV/TXT鏍煎紡鏂囥�� \n' +
+ '瀵逛簬 csv 鎴� txt 鏂囦欢锛屽垪涔嬮棿鐨勫垎闅旂涓� TAB锛孿n' +
+ '绗竴琛屽繀椤绘槸鍒楁爣棰樸�俓n',
+ },
+ {
+ name: '澶氭ā鎬�',
+ value: 'paper',
+ parser_config: parser.paper,
+ parser_config_str: '浠呮敮鎸丳DF鏂囦欢',
+ },
+ {
+ name: '涔︾睄',
+ value: 'book',
+ parser_config: parser.book,
+ parser_config_str: '鏀寔鐨勬枃浠舵牸寮忎负DOCX銆丳DF銆乀XT',
+ },
+ {
+ name: '娉曞緥鏂囦欢',
+ value: 'laws',
+ parser_config: parser.laws,
+ parser_config_str: '鏀寔鐨勬枃浠舵牸寮忎负DOCX銆丳DF銆乀XT',
+ },
+ {
+ name: 'PPT',
+ value: 'presentation',
+ parser_config: parser.presentation,
+ parser_config_str: '鏀寔鐨勬枃浠舵牸寮忎负PDF銆丳PTX',
+ },
+ {
+ name: '鍥剧墖',
+ value: 'picture',
+ parser_config: parser.picture,
+ parser_config_str: '鏀寔鍥惧儚鏂囦欢',
+ },
+ {
+ name: '鏁翠綋',
+ value: 'one',
+ parser_config: parser.one,
+ parser_config_str: '鏀寔鐨勬枃浠舵牸寮忎负DOCX銆丒XCEL銆丳DF銆乀XT',
+ },
+ ]);
+ const parser_idsArr = ref([]);
+ const uploadList = ref([]);
+ const props = defineProps(['sessionId']);
+ const emit = defineEmits(['selectFileCallback']);
+ const uploadRef = ref();
+ const files = ref([]);
+ const acceptNameList = computed(() => {
+ return '.word, .pdf, .ppt, .excel, .txt, .zip, .rar, .7z, .doc, .docx, .xls, .xlsx, .pptx, .ppt, .pdf, .mp4, .avi, .mp3,.wav, .wma, .wmv, .rm,';
});
-};
-const parserChange = ()=>{
- parseridConfig.value = false;
-}
-
-const visibleChange = (e) => {
- e.stopPropagation();
- visible.value = !visible.value;
-}
-
-
-const getIconByExtension = (extension) => {
- const fileExtension = ref('');
- fileExtension.value = extension.split('.').pop();
- let type = '';
- parser_idsArr.value.forEach((item)=>{
- // 鍖呭惈鍏冪礌
- if (item.formats.includes(fileExtension.value)){
- type = item.id;
- }
- })
- return type;
-};
-
-const upDataFile = () => {
- console.log(files.value, "files");
- console.log(parser_ids.value, "瑙f瀽鏂规硶");
- if(files.value.length == 0){
- Message.warning('璇烽�夋嫨鏂囦欢');
- return;
- }
- uploaditemList.value = files.value.map((item,index)=>{
- return {
- index: index,
- name: item.name,
- size: (item.file.size/1024).toFixed(2) + 'K',
- }
- })
- onFileSelectedLoading.value = true;
- const formData = new FormData();
- for (let i = 0; i < files.value.length; i++) {
- formData.append('file', files.value[i].file);
- formData.append('conversation_id', activeSessionId.value);
- formData.append('parser_config', '');
- if(!parser_id.value){
- formData.append('parser_id', getIconByExtension(files.value[i].name));
- }else{
- formData.append('parser_id', parser_id.value);
- }
- }
- uploadWithoutKb(formData).then((res) => {
- onFileSelectedLoading.value = false;
- if (res.code == 200) {
- cancel();
- // uploaditemList.value = [];
- emit('selectFileCallback', uploaditemList.value);
- Message.success('涓婁紶鎴愬姛');
- } else {
- Message.error('涓婁紶澶辫触');
- }
- });
-
- // cancel();
- // emit('selectFileCallback', uploaditemList.value);
-
-
-
-};
-
-
-const cancel = () => {
- if(!onFileSelectedLoading.value){
- visible.value = false;
- parser_id.value = "";
- }
-};
-
-defineExpose({
- cancel
-})
-
-const getParseMethodsList = async () => {
- let res = await getParseMethodsListApi();
- parser_ids.value = res.data.map((item) => {
- return {
- name: item.name,
- value: item.id,
+ const filterData = computed(() => {
+ const result = parser_ids.value
+ .filter((val) => parser_configs.value.includes(val.name))
+ .reverse()
+ .slice(0, 4)
+ .reverse();
+ result.unshift({
+ name: '鏅鸿兘璇嗗埆',
+ value: '',
+ parser_config_str: '',
parser_config: '',
- parser_config_str: item.parser_config_str
- };
+ });
+ return result;
});
- parser_idsArr.value = res.data;
-}
+ const init = () => {
+ // parser_ids.value = kbtenantInfo.parser_ids.split(",").map((item) => {
+ // const [value1, value2] = item.split(":");
+ // return {
+ // name: value2,
+ // value: value1
+ // };
+ // });
+ getParseMethodsList();
+ };
-onBeforeMount(() => {
- init();
+ const chooseParser = (item) => {
+ console.log(item);
+ };
+ const onChange = (fileList) => {
+ files.value = fileList;
+ files.value.forEach((item) => {});
+ };
+ const parserChange = () => {
+ parseridConfig.value = false;
+ };
+ const visibleChange = (e) => {
+ e.stopPropagation();
+ visible.value = !visible.value;
+ };
-});
-onMounted(() => {
-});
+ const getIconByExtension = (extension) => {
+ const fileExtension = ref('');
+ fileExtension.value = extension.split('.').pop();
+ let type = '';
+ parser_idsArr.value.forEach((item) => {
+ // 鍖呭惈鍏冪礌
+ if (item.formats.includes(fileExtension.value)) {
+ type = item.id;
+ }
+ });
+ return type;
+ };
-watch(
- ()=>props.sessionId,
- (value, oldValue)=>{
- activeSessionId.value = value;
- }
-)
+ const upDataFile = async () => {
+ if (!activeSessionId.value) {
+ //鏂板缓浼氳瘽
+ const res = await addSessionApi({
+ dialog_id: '',
+ conversation_desc: '',
+ });
+ // console.log(res, "res");
+ if (res.code == 200) {
+ // console.log(res.data.conversation_id);
+ activeSessionId.value = res.data?.conversation_id;
+ const { code, data } = await getSessionDetailsApi(
+ res.data?.conversation_id
+ );
+ if (code === 200) {
+ console.log(data, '鏂板缓浼氳瘽璇︽儏');
+ }
+ } else {
+ Message.error('鍒涘缓浼氳瘽澶辫触锛岃閲嶈瘯');
+ }
+ }
+ console.log(files.value, 'files');
+ console.log(parser_ids.value, '瑙f瀽鏂规硶');
+ if (files.value.length == 0) {
+ Message.warning('璇烽�夋嫨鏂囦欢');
+ return;
+ }
+ uploaditemList.value = files.value.map((item, index) => {
+ return {
+ index: index,
+ name: item.name,
+ size: (item.file.size / 1024).toFixed(2) + 'K',
+ };
+ });
+ onFileSelectedLoading.value = true;
+ const formData = new FormData();
+ for (let i = 0; i < files.value.length; i++) {
+ formData.append('file', files.value[i].file);
+ formData.append('conversation_id', activeSessionId.value);
+ formData.append('parser_config', '');
+ if (!parser_id.value) {
+ formData.append('parser_id', getIconByExtension(files.value[i].name));
+ } else {
+ formData.append('parser_id', parser_id.value);
+ }
+ }
+ console.log(formData, 'formData');
+ // uploadAndParse(formData).then((res) => {
+ // debugger;
+ // onFileSelectedLoading.value = false;
+ // if (res.code == 200) {
+ // cancel();
+ // // uploaditemList.value = [];
+ // emit('selectFileCallback', uploaditemList.value);
+ // Message.success('涓婁紶鎴愬姛');
+ // } else {
+ // Message.error('涓婁紶澶辫触');
+ // }
+ // });
+ uploadWithoutKb(formData).then((res) => {
+ onFileSelectedLoading.value = false;
+ if (res.code == 200) {
+ cancel();
+ // uploaditemList.value = [];
+ emit('selectFileCallback', uploaditemList.value);
+ Message.success('涓婁紶鎴愬姛');
+ } else {
+ Message.error('涓婁紶澶辫触');
+ }
+ });
+ };
+ const cancel = () => {
+ if (!onFileSelectedLoading.value) {
+ visible.value = false;
+ parser_id.value = '';
+ }
+ };
+
+ defineExpose({
+ cancel,
+ });
+
+ const getParseMethodsList = async () => {
+ let res = await getParseMethodsListApi();
+ parser_ids.value = res.data.map((item) => {
+ console.log(item, item.parser_config_str, 78787);
+ return {
+ name: item.name,
+ value: item.id,
+ parser_config: '',
+ parser_config_str: JSON.stringify(item.formats),
+ };
+ });
+ parser_idsArr.value = res.data;
+ };
+
+ onBeforeMount(() => {
+ init();
+ });
+ onMounted(() => {});
+
+ watch(
+ () => props.sessionId,
+ (value, oldValue) => {
+ activeSessionId.value = value;
+ }
+ );
</script>
<style>
-.upload-wrap .arco-select-view-inner{
- display: none;
-}
+ .upload-wrap .arco-select-view-inner {
+ display: none;
+ }
</style>
<style scoped lang="less">
-.aUpload {
- width: 100%;
- max-height: 500px;
- overflow: hidden;
- overflow-y: auto;
-}
-.upload-wrap {
- position: relative;
-}
-.config-text {
- position: absolute;
- right: 70px;
- bottom: -11px;
- font-size: 12px;
-}
+ .aUpload {
+ width: 100%;
+ max-height: 500px;
+ overflow: hidden;
+ overflow-y: auto;
+ }
+ .upload-wrap {
+ position: relative;
+ }
+ .config-text {
+ position: absolute;
+ right: 70px;
+ bottom: -11px;
+ font-size: 12px;
+ }
</style>
--
Gitblit v1.8.0