update:数据总览
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
class="select"
|
class="select"
|
||||||
v-model="choseData"
|
v-model="choseData"
|
||||||
:options="listData"
|
:options="listData"
|
||||||
placeholder="请选择"
|
:placeholder="disabled ? '' : '请选择'"
|
||||||
filterable
|
filterable
|
||||||
clearable
|
clearable
|
||||||
@change="changeFun"
|
@change="changeFun"
|
||||||
@@ -18,10 +18,12 @@ import { systemApproveQueryApproveFlowTempalteApi } from '@/api/system/systemApp
|
|||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
modelValue: string;
|
modelValue: string;
|
||||||
|
disabled: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
const props = withDefaults(defineProps<Props>(), {
|
const props = withDefaults(defineProps<Props>(), {
|
||||||
modelValue: '',
|
modelValue: '',
|
||||||
|
disabled: false,
|
||||||
});
|
});
|
||||||
const listData = ref<any>([]);
|
const listData = ref<any>([]);
|
||||||
const choseData = ref<any>('');
|
const choseData = ref<any>('');
|
||||||
|
|||||||
@@ -182,6 +182,7 @@ const updateNavFun = (data: any) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const reloadFun = () => {
|
const reloadFun = () => {
|
||||||
|
navList.value = [];
|
||||||
visible.value = false;
|
visible.value = false;
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
visible.value = true;
|
visible.value = true;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
class="select"
|
class="select"
|
||||||
v-model="choseList"
|
v-model="choseList"
|
||||||
:options="listData"
|
:options="listData"
|
||||||
placeholder="请选择"
|
:placeholder="disabled ? '' : '请选择'"
|
||||||
filterable
|
filterable
|
||||||
clearable
|
clearable
|
||||||
:multiple="multiple"
|
:multiple="multiple"
|
||||||
@@ -20,11 +20,13 @@ import { queryNodeListApi } from '@/api/project/node';
|
|||||||
interface Props {
|
interface Props {
|
||||||
modelValue: string;
|
modelValue: string;
|
||||||
multiple?: boolean;
|
multiple?: boolean;
|
||||||
|
disabled: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
const props = withDefaults(defineProps<Props>(), {
|
const props = withDefaults(defineProps<Props>(), {
|
||||||
modelValue: '',
|
modelValue: '',
|
||||||
multiple: false,
|
multiple: false,
|
||||||
|
disabled: false,
|
||||||
});
|
});
|
||||||
const listData = ref<any>([]);
|
const listData = ref<any>([]);
|
||||||
const choseList = ref<any>([]);
|
const choseList = ref<any>([]);
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
v-if="item.inputMode === 'input'"
|
v-if="item.inputMode === 'input'"
|
||||||
v-model="formData[item.key]"
|
v-model="formData[item.key]"
|
||||||
placeholder="请输入"
|
:placeholder="(item.disabled && showDisabled) ? '' : '请输入'"
|
||||||
clearable
|
clearable
|
||||||
:disabled="item.disabled && showDisabled"
|
:disabled="item.disabled && showDisabled"
|
||||||
@input="(val: any) => changeFun(item.key, val)"
|
@input="(val: any) => changeFun(item.key, val)"
|
||||||
@@ -13,14 +13,14 @@
|
|||||||
v-model="formData[item.key]"
|
v-model="formData[item.key]"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
autosize
|
autosize
|
||||||
placeholder="请输入"
|
:placeholder="(item.disabled && showDisabled) ? '' : '请输入'"
|
||||||
:disabled="item.disabled && showDisabled"
|
:disabled="item.disabled && showDisabled"
|
||||||
@input="(val: any) => changeFun(item.key, val)"
|
@input="(val: any) => changeFun(item.key, val)"
|
||||||
/>
|
/>
|
||||||
<el-input-number
|
<el-input-number
|
||||||
v-if="item.inputMode === 'inputNumber'"
|
v-if="item.inputMode === 'inputNumber'"
|
||||||
v-model="formData[item.key]"
|
v-model="formData[item.key]"
|
||||||
placeholder="请输入"
|
:placeholder="(item.disabled && showDisabled) ? '' : '请输入'"
|
||||||
:min="0"
|
:min="0"
|
||||||
:step="item.step"
|
:step="item.step"
|
||||||
step-strictly
|
step-strictly
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
<el-select
|
<el-select
|
||||||
v-if="item.inputMode === 'select'"
|
v-if="item.inputMode === 'select'"
|
||||||
v-model="formData[item.key]"
|
v-model="formData[item.key]"
|
||||||
placeholder="请选择"
|
:placeholder="(item.disabled && showDisabled) ? '' : '请选择'"
|
||||||
clearable
|
clearable
|
||||||
:options="item.options"
|
:options="item.options"
|
||||||
:disabled="item.disabled && showDisabled"
|
:disabled="item.disabled && showDisabled"
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
type="datetime"
|
type="datetime"
|
||||||
format="YYYY-MM-DD HH:mm:ss"
|
format="YYYY-MM-DD HH:mm:ss"
|
||||||
value-format="YYYY-MM-DD HH:mm:ss"
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
placeholder="请选择"
|
:placeholder="(item.disabled && showDisabled) ? '' : '请选择'"
|
||||||
clearable
|
clearable
|
||||||
:disabled="item.disabled && showDisabled"
|
:disabled="item.disabled && showDisabled"
|
||||||
@change="(val: any) => changeFun(item.key, val)"
|
@change="(val: any) => changeFun(item.key, val)"
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ interface Props {
|
|||||||
colNum?: number;
|
colNum?: number;
|
||||||
showDisabled?: boolean;
|
showDisabled?: boolean;
|
||||||
ruleData?: any;
|
ruleData?: any;
|
||||||
|
data?: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
const props = withDefaults(defineProps<Props>(), {
|
const props = withDefaults(defineProps<Props>(), {
|
||||||
@@ -47,13 +48,18 @@ const props = withDefaults(defineProps<Props>(), {
|
|||||||
colNum: 1,
|
colNum: 1,
|
||||||
showDisabled: false,
|
showDisabled: false,
|
||||||
ruleData: {},
|
ruleData: {},
|
||||||
|
data: {},
|
||||||
|
});
|
||||||
|
|
||||||
|
watch(() => props.data, (data: any) => {
|
||||||
|
formData.value = data;
|
||||||
});
|
});
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getHeadDataFun();
|
getHeadDataFun();
|
||||||
});
|
});
|
||||||
|
|
||||||
const formData = ref<any>({});
|
const formData = ref<any>(props.data);
|
||||||
const tableData = ref<any>([]);
|
const tableData = ref<any>([]);
|
||||||
const rules = ref<any>({});
|
const rules = ref<any>({});
|
||||||
const formRef = ref<any>();
|
const formRef = ref<any>();
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
v-model="diaVisible"
|
v-model="diaVisible"
|
||||||
:diaTitle="`表名【${name}】字段设置`"
|
:diaTitle="`表名【${name}】字段设置`"
|
||||||
top="2vh"
|
top="2vh"
|
||||||
width="98%"
|
width="80%"
|
||||||
height="90%"
|
height="80%"
|
||||||
show-footer
|
show-footer
|
||||||
@close="closeFun"
|
@close="closeFun"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
class="select"
|
class="select"
|
||||||
v-model="choseList"
|
v-model="choseList"
|
||||||
:options="listData"
|
:options="listData"
|
||||||
placeholder="请选择"
|
:placeholder="disabled ? '' : '请选择'"
|
||||||
filterable
|
filterable
|
||||||
clearable
|
clearable
|
||||||
:multiple="multiple"
|
:multiple="multiple"
|
||||||
@@ -20,11 +20,13 @@ import { userListUserApi } from '@/api/system/user';
|
|||||||
interface Props {
|
interface Props {
|
||||||
modelValue: string;
|
modelValue: string;
|
||||||
multiple?: boolean;
|
multiple?: boolean;
|
||||||
|
disabled: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
const props = withDefaults(defineProps<Props>(), {
|
const props = withDefaults(defineProps<Props>(), {
|
||||||
modelValue: '',
|
modelValue: '',
|
||||||
multiple: false,
|
multiple: false,
|
||||||
|
disabled: false,
|
||||||
});
|
});
|
||||||
const listData = ref<any>([]);
|
const listData = ref<any>([]);
|
||||||
const choseList = ref<any>([]);
|
const choseList = ref<any>([]);
|
||||||
|
|||||||
@@ -1,42 +1,55 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-drawer
|
<div class="comp-data-info">
|
||||||
v-model="visible"
|
|
||||||
title="属性信息"
|
|
||||||
:size="400"
|
|
||||||
:close-on-click-modal="false"
|
|
||||||
@close="closeFun"
|
|
||||||
>
|
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<TableForm ref="tableFormRef" tableName="DATA_OVERVIEW_FILE_INFO" showDisabled />
|
<TableForm ref="tableFormRef" :data="data" tableName="DATA_OVERVIEW" showDisabled>
|
||||||
|
<template #form-originalName="{ row }">
|
||||||
|
{{ row.originalName || '--' }}
|
||||||
|
</template>
|
||||||
|
<template #form-dataType="{ row }">
|
||||||
|
{{ DATA_TYPE.O[row.dataType] || '--' }}
|
||||||
|
</template>
|
||||||
|
<template #form-creatorName="{ row }">
|
||||||
|
{{ row.creatorName || '--' }}
|
||||||
|
</template>
|
||||||
|
<template #form-createTime="{ row }">
|
||||||
|
{{ row.createTime || '--' }}
|
||||||
|
</template>
|
||||||
|
<template #form-updateTime="{ row }">
|
||||||
|
{{ row.updateTime || '--' }}
|
||||||
|
</template>
|
||||||
|
<template #form-fileSize="{ row }">
|
||||||
|
{{ formatFileSize(row.fileSize) || '--' }}
|
||||||
|
</template>
|
||||||
|
</TableForm>
|
||||||
</div>
|
</div>
|
||||||
<template #footer>
|
</div>
|
||||||
<div>
|
|
||||||
<el-button @click="closeFun">关闭</el-button>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</el-drawer>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, watch } from 'vue';
|
import { ref } from 'vue';
|
||||||
import TableForm from '@/components/common/table/tableForm.vue';
|
import TableForm from '@/components/common/table/tableForm.vue';
|
||||||
|
import { formatFileSize } from '@/utils/file';
|
||||||
|
import { useDict } from '@/utils/useDict';
|
||||||
|
|
||||||
const emit = defineEmits(['update:modelValue']);
|
const { DATA_TYPE } = useDict('DATA_TYPE');
|
||||||
const visible = ref(false);
|
const tableFormRef = ref();
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
modelValue: boolean;
|
data: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
const props = withDefaults(defineProps<Props>(), {
|
withDefaults(defineProps<Props>(), {
|
||||||
modelValue: false,
|
data: {},
|
||||||
});
|
});
|
||||||
|
|
||||||
watch(() => props.modelValue, (val: boolean) => {
|
|
||||||
visible.value = val;
|
|
||||||
});
|
|
||||||
|
|
||||||
const closeFun = () => {
|
|
||||||
emit('update:modelValue', false);
|
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.comp-data-info {
|
||||||
|
width: 100%;
|
||||||
|
min-height: 100%;
|
||||||
|
padding: 10px;
|
||||||
|
border: solid 1px var(--el-border-color);
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
@@ -30,71 +30,88 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #table>
|
<template #table>
|
||||||
<BaseTable
|
<div class="table-content">
|
||||||
ref="BaseTableRef"
|
<div class="table">
|
||||||
tableName="DATA_OVERVIEW"
|
<BaseTable
|
||||||
:api="dataOverViewListSimulationNodeFilesApi"
|
ref="BaseTableRef"
|
||||||
:params="{
|
tableName="DATA_OVERVIEW"
|
||||||
dimensionTemplateId: currentDimension,
|
:api="dataOverViewListSimulationNodeFilesApi"
|
||||||
fileId: currentData.id,
|
:params="{
|
||||||
}"
|
dimensionTemplateId: currentDimension,
|
||||||
showCheckbox
|
fileId: currentData.id,
|
||||||
@checkbox-all="checkboxChangeFun"
|
}"
|
||||||
@checkbox-change="checkboxChangeFun"
|
showCheckbox
|
||||||
>
|
@checkbox-all="checkboxChangeFun"
|
||||||
<template #leftOptions>
|
@checkbox-change="checkboxChangeFun"
|
||||||
<div>
|
@cell-click="cellClickFun"
|
||||||
<el-dropdown trigger="click">
|
>
|
||||||
<el-button :icon="CirclePlus" type="primary" class="option-btn">
|
<template #leftOptions>
|
||||||
新增<el-icon class="el-icon--right"><arrow-down /></el-icon>
|
<div>
|
||||||
</el-button>
|
<el-dropdown trigger="click">
|
||||||
<template #dropdown>
|
<el-button :icon="CirclePlus" type="primary" class="option-btn">
|
||||||
<el-dropdown-menu>
|
新增<el-icon class="el-icon--right"><arrow-down /></el-icon>
|
||||||
<el-dropdown-item @click="addDiaFun(NODE_TYPE.PROJECT)">新增项目</el-dropdown-item>
|
</el-button>
|
||||||
<el-dropdown-item @click="addDiaFun(NODE_TYPE.PHASE)">新增阶段</el-dropdown-item>
|
<template #dropdown>
|
||||||
<el-dropdown-item @click="addDiaFun(NODE_TYPE.CATEGORY)">新增分类</el-dropdown-item>
|
<el-dropdown-menu>
|
||||||
<el-dropdown-item @click="addDiaFun(NODE_TYPE.TASK)">新增任务</el-dropdown-item>
|
<el-dropdown-item @click="addDiaFun(NODE_TYPE.PROJECT)">新增项目</el-dropdown-item>
|
||||||
<!-- <el-dropdown-item>新增算例</el-dropdown-item> -->
|
<el-dropdown-item @click="addDiaFun(NODE_TYPE.PHASE)">新增阶段</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
<el-dropdown-item @click="addDiaFun(NODE_TYPE.CATEGORY)">新增分类</el-dropdown-item>
|
||||||
</template>
|
<el-dropdown-item @click="addDiaFun(NODE_TYPE.TASK)">新增任务</el-dropdown-item>
|
||||||
</el-dropdown>
|
<!-- <el-dropdown-item>新增算例</el-dropdown-item> -->
|
||||||
<el-dropdown trigger="click">
|
</el-dropdown-menu>
|
||||||
<el-button :icon="Upload" type="primary" class="option-btn">
|
</template>
|
||||||
上传<el-icon class="el-icon--right"><arrow-down /></el-icon>
|
</el-dropdown>
|
||||||
</el-button>
|
<el-dropdown trigger="click">
|
||||||
<template #dropdown>
|
<el-button :icon="Upload" type="primary" class="option-btn">
|
||||||
<el-dropdown-menu>
|
上传<el-icon class="el-icon--right"><arrow-down /></el-icon>
|
||||||
<el-dropdown-item @click="openAddDirFun">新建文件夹</el-dropdown-item>
|
</el-button>
|
||||||
<el-dropdown-item>
|
<template #dropdown>
|
||||||
<el-upload :show-file-list="false" :before-upload="beforeUploadFun">
|
<el-dropdown-menu>
|
||||||
上传文件
|
<el-dropdown-item @click="openAddDirFun">新建文件夹</el-dropdown-item>
|
||||||
</el-upload>
|
<el-dropdown-item>
|
||||||
</el-dropdown-item>
|
<el-upload :show-file-list="false" :before-upload="beforeUploadFun">
|
||||||
</el-dropdown-menu>
|
上传文件
|
||||||
</template>
|
</el-upload>
|
||||||
</el-dropdown>
|
</el-dropdown-item>
|
||||||
<el-button :icon="Edit" type="primary" @click="editFun">编辑</el-button>
|
</el-dropdown-menu>
|
||||||
<el-button :icon="Delete" type="danger" :disabled="chosenData.length === 0" @click="delFun">删除</el-button>
|
</template>
|
||||||
<el-button :icon="Refresh" @click="reloadFun">刷新</el-button>
|
</el-dropdown>
|
||||||
<el-button :icon="Warning" @click="infoShow = true">属性信息</el-button>
|
<el-button :icon="Edit" type="primary" @click="editFun">编辑</el-button>
|
||||||
</div>
|
<el-button :icon="Delete" type="danger" :disabled="chosenData.length === 0" @click="delFun">删除</el-button>
|
||||||
</template>
|
<el-button :icon="Refresh" @click="reloadFun">刷新</el-button>
|
||||||
<template #originalName="{ row }">
|
<span class="info-switch">
|
||||||
<div class="file-name" @dblclick="goDetailFun(row)">
|
<el-switch
|
||||||
<el-icon :size="16">
|
v-model="infoShow"
|
||||||
<Folder v-if="row.dataType === 1" />
|
inline-prompt
|
||||||
<Document v-else />
|
active-text="详细信息"
|
||||||
</el-icon>
|
inactive-text="详细信息"
|
||||||
<el-link type="primary" class="name">{{ row.originalName }}</el-link>
|
/>
|
||||||
</div>
|
</span>
|
||||||
</template>
|
</div>
|
||||||
<template #dataType="{ row }">
|
</template>
|
||||||
{{ DATA_TYPE.O[row.dataType] }}
|
<template #originalName="{ row }">
|
||||||
</template>
|
<div class="file-name" @dblclick="goDetailFun(row)">
|
||||||
<template #fileSize="{ row }">
|
<el-icon :size="16">
|
||||||
{{ formatFileSize(row.fileSize) }}
|
<Folder v-if="row.dataType === 1" />
|
||||||
</template>
|
<Document v-else />
|
||||||
</BaseTable>
|
</el-icon>
|
||||||
|
<el-link type="primary" class="name">{{ row.originalName }}</el-link>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template #dataType="{ row }">
|
||||||
|
{{ DATA_TYPE.O[row.dataType] }}
|
||||||
|
</template>
|
||||||
|
<template #fileSize="{ row }">
|
||||||
|
{{ formatFileSize(row.fileSize) }}
|
||||||
|
</template>
|
||||||
|
</BaseTable>
|
||||||
|
</div>
|
||||||
|
<div v-if="infoShow" class="info">
|
||||||
|
<FileInfo
|
||||||
|
:data="fileData"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</FileTree>
|
</FileTree>
|
||||||
</div>
|
</div>
|
||||||
@@ -107,9 +124,6 @@
|
|||||||
:dirId="currentData.id"
|
:dirId="currentData.id"
|
||||||
@search="searchFileFun"
|
@search="searchFileFun"
|
||||||
/>
|
/>
|
||||||
<FileInfo
|
|
||||||
v-model="infoShow"
|
|
||||||
/>
|
|
||||||
<AddDir
|
<AddDir
|
||||||
v-model="addDirShow"
|
v-model="addDirShow"
|
||||||
:data="currentData"
|
:data="currentData"
|
||||||
@@ -150,7 +164,7 @@ import PhaseInfoDia from '@/components/project/phaseInfoDialog.vue';
|
|||||||
import NodeDetailDialog from '@/components/common/treeCaseTable/nodeDetailDialog.vue';
|
import NodeDetailDialog from '@/components/common/treeCaseTable/nodeDetailDialog.vue';
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus';
|
import { ElMessage, ElMessageBox } from 'element-plus';
|
||||||
import ProjectInfoDialog from '@/components/project/projectInfoDialog.vue';
|
import ProjectInfoDialog from '@/components/project/projectInfoDialog.vue';
|
||||||
import { CirclePlus, Upload, Edit, Refresh, Delete, Warning, Folder, Document } from '@element-plus/icons-vue';
|
import { CirclePlus, Upload, Edit, Refresh, Delete, Folder, Document } from '@element-plus/icons-vue';
|
||||||
import { NODE_TYPE } from '@/utils/enum/node';
|
import { NODE_TYPE } from '@/utils/enum/node';
|
||||||
import { useDict } from '@/utils/useDict';
|
import { useDict } from '@/utils/useDict';
|
||||||
import { formatFileSize } from '@/utils/file';
|
import { formatFileSize } from '@/utils/file';
|
||||||
@@ -170,6 +184,7 @@ const FileTreeRef = ref();
|
|||||||
const editId = ref('');
|
const editId = ref('');
|
||||||
const chosenData = ref<any>([]);
|
const chosenData = ref<any>([]);
|
||||||
const BaseTableRef = ref();
|
const BaseTableRef = ref();
|
||||||
|
const fileData = ref<any>({});
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getAllTemplateFun();
|
getAllTemplateFun();
|
||||||
@@ -239,6 +254,11 @@ const delFun = () => {
|
|||||||
}).catch(() => {});
|
}).catch(() => {});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const cellClickFun = (data: any) => {
|
||||||
|
const { row } = data;
|
||||||
|
fileData.value = row;
|
||||||
|
};
|
||||||
|
|
||||||
const beforeUploadFun = (file: any) => {
|
const beforeUploadFun = (file: any) => {
|
||||||
if (!currentData.value) {
|
if (!currentData.value) {
|
||||||
ElMessage.warning('请选择一个目录');
|
ElMessage.warning('请选择一个目录');
|
||||||
@@ -291,6 +311,7 @@ const checkboxChangeFun = (data: any) => {
|
|||||||
|
|
||||||
const reloadFun = () => {
|
const reloadFun = () => {
|
||||||
chosenData.value = [];
|
chosenData.value = [];
|
||||||
|
currentData.value = '';
|
||||||
if (FileTreeRef.value) {
|
if (FileTreeRef.value) {
|
||||||
FileTreeRef.value.reloadFun();
|
FileTreeRef.value.reloadFun();
|
||||||
}
|
}
|
||||||
@@ -326,5 +347,18 @@ const reloadFun = () => {
|
|||||||
padding-left: 4px;
|
padding-left: 4px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.info-switch {
|
||||||
|
margin-left: 12px;
|
||||||
|
}
|
||||||
|
.table-content {
|
||||||
|
display: flex;
|
||||||
|
.table {
|
||||||
|
flex: 1;
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
.info {
|
||||||
|
width: 250px;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user