Browse Source

首页tab

master
maochaoying 2 years ago
parent
commit
7f20de8110
  1. 7
      src/components/Debug.vue
  2. 290
      src/components/Publish.vue
  3. 2
      src/components/Task.vue
  4. 213
      src/components/User.vue
  5. 90
      src/pages/index.vue
  6. 1
      src/service/request.js

7
src/components/Debug.vue

@ -0,0 +1,7 @@
<template>
<div>debug</div>
</template>
<script setup></script>
<style lang="scss" scoped></style>

290
src/components/Publish.vue

@ -0,0 +1,290 @@
<template>
<!-- scrollToFirstError="smooth" -->
<t-form
:data="formData"
:rules="rules"
ref="form"
@reset="onReset"
@submit="onSubmit"
>
<t-form-item label="用户名" help="这里可以展示一段说明文字" name="account">
<t-input v-model="formData.account" placeholder="请输入用户名"></t-input>
</t-form-item>
<t-form-item label="年龄" name="age">
<t-input-number v-model="formData.age" placeholder="年龄" />
</t-form-item>
<t-form-item label="籍贯" name="region">
<t-cascader
v-model="formData.region"
placeholder="请选择籍贯"
:options="regionOptions"
clearable
filterable
/>
</t-form-item>
<t-form-item label="密码" name="password">
<t-input
type="password"
v-model="formData.password"
placeholder="请输入密码"
></t-input>
</t-form-item>
<t-form-item label="邮箱" name="email">
<t-input v-model="formData.email" placeholder="请输入邮箱"></t-input>
</t-form-item>
<t-form-item label="性别" name="gender">
<t-radio-group v-model="formData.gender">
<t-radio value="male"></t-radio>
<t-radio value="female"></t-radio>
</t-radio-group>
</t-form-item>
<t-form-item label="课程" name="course">
<t-checkbox-group
v-model="formData.course"
:options="courseOptions"
></t-checkbox-group>
</t-form-item>
<t-form-item label="学院" name="college">
<t-select
v-model="formData.college"
class="demo-select-base"
clearable
filterable
placeholder="请选择所在学院"
>
<t-option
v-for="(item, index) in options"
:value="item.value"
:label="item.label"
:key="index"
>
{{ item.label }}
</t-option>
</t-select>
</t-form-item>
<t-form-item
label="入学时间"
name="date"
:rules="[
{ required: true, message: '此项必填' },
{ date: { delimiters: ['/', '-', '.'] }, message: '日期格式有误' },
]"
>
<t-date-picker v-model="formData.date"></t-date-picker>
</t-form-item>
<t-form-item label="个人网站" name="content.url">
<t-input
v-model="formData.content.url"
placeholder="请输入个人网站地址"
></t-input>
</t-form-item>
<t-form-item label="个人简介" help="请用一句话介绍自己" name="description">
<t-textarea
v-model="formData.description"
placeholder="请用一句话介绍自己"
></t-textarea>
</t-form-item>
<t-form-item label="兴趣爱好" name="hobby">
<t-tree-select
v-model="formData.hobby"
filterable
:data="hobbyOptions"
placeholder="请选择你的兴趣爱好"
></t-tree-select>
</t-form-item>
<t-form-item>
<t-space size="10px">
<t-button theme="primary" type="submit">提交</t-button>
<t-button theme="default" variant="base" type="reset">重置</t-button>
</t-space>
</t-form-item>
</t-form>
</template>
<script>
const INITIAL_DATA = {
account: '',
password: '',
// description: '',
age: undefined,
region: '',
email: '',
gender: '',
college: '',
date: '',
content: {
url: '',
},
hobby: [],
course: [],
}
export default {
data() {
return {
formData: { ...INITIAL_DATA },
hobbyOptions: [
{
label: '运动',
value: 'sports',
children: [
{
label: '足球',
value: 'soccer',
},
{
label: '篮球',
value: 'basketball',
},
],
},
{
label: '娱乐',
value: 'entertainment',
children: [
{
label: '电影',
value: 'movie',
},
{
label: '旅游',
value: 'trip',
},
],
},
],
regionOptions: [
{
label: '广东',
value: '1',
children: [
{
label: '深圳',
value: '1.1',
},
{
label: '广州',
value: '1.2',
},
],
},
{
label: '湖南',
value: '2',
children: [
{
label: '长沙',
value: '2.1',
},
],
},
],
courseOptions: [
{ label: '语文', value: '1' },
{ label: '数学', value: '2' },
{ label: '英语', value: '3' },
{ label: '体育', value: '4' },
],
options: [
{ label: '计算机学院', value: '1' },
{ label: '软件学院', value: '2' },
{ label: '物联网学院', value: '3' },
],
// FormItem.rules Form.rules
rules: {
account: [
{
required: true,
message: '姓名必填',
type: 'error',
trigger: 'blur',
},
// trigger 'change'
{ required: true, message: '姓名必填', type: 'error' },
{ whitespace: true, message: '姓名不能为空' },
{
min: 2,
message: '至少需要两个字符,一个中文等于两个字符',
type: 'warning',
trigger: 'blur',
},
{
max: 10,
message: '姓名字符长度超出',
type: 'warning',
trigger: 'blur',
},
],
description: [
{
validator: val => val.length >= 5,
message: '至少 5 个字,中文长度等于英文长度',
type: 'warning',
},
{
validator: val => val.length < 20,
message: '不能超过 20 个字,中文长度等于英文长度',
type: 'warning',
},
],
age: [{ required: true, message: '年龄必填', type: 'error' }],
region: [{ required: true, message: '籍贯必填', type: 'error' }],
password: [
{ required: true, message: '密码必填', type: 'error' },
{ len: 8, message: '请输入 8 位密码', type: 'warning' },
{
pattern: /[A-Z]+/,
message: '密码必须包含大写字母',
type: 'warning',
},
],
college: [{ required: true, message: '此项必填' }],
email: [
{ required: true, message: '邮箱必填' },
{
email: { ignore_max_length: true },
message: '请输入正确的邮箱地址',
},
],
gender: [{ required: true, message: '性别必填' }],
course: [
{ required: true, message: '课程必填' },
{
validator: val => val.length <= 2,
message: '最多选择 2 门课程',
type: 'warning',
},
],
hobby: [{ required: true, message: '爱好必填', type: 'error' }],
'content.url': [
{ required: true, message: '个人网站必填' },
{
url: {
protocols: ['http', 'https', 'ftp'],
require_protocol: true,
},
message: '请输入正确的个人主页',
},
],
},
}
},
methods: {
onReset() {
this.$message.success('重置成功')
console.log('formData', this.formData)
},
onSubmit({ validateResult, firstError }) {
if (validateResult === true) {
this.$message.success('提交成功')
} else {
console.log('Errors: ', validateResult)
this.$message.warning(firstError)
}
},
},
}
</script>
<style scoped></style>

2
src/components/Task.vue

@ -5,7 +5,7 @@
<t-space direction="vertical"> <t-space direction="vertical">
<t-breadcrumb> <t-breadcrumb>
<t-breadcrumbItem>首页</t-breadcrumbItem> <t-breadcrumbItem>首页</t-breadcrumbItem>
<t-breadcrumbItem>核查任务管理中心</t-breadcrumbItem>
<t-breadcrumbItem>任务管理中心</t-breadcrumbItem>
</t-breadcrumb> </t-breadcrumb>
</t-space> </t-space>
</template> </template>

213
src/components/User.vue

@ -0,0 +1,213 @@
<template>
<div class="user_component">
<t-card>
<template #title>
<t-space direction="vertical">
<t-breadcrumb>
<t-breadcrumbItem>首页</t-breadcrumbItem>
<t-breadcrumbItem>用户管理中心</t-breadcrumbItem>
</t-breadcrumb>
</t-space>
</template>
<t-table
bordered
hover
tableLayout="auto"
row-key="id"
:data="data"
:columns="columns"
resizable
/>
<t-pagination class="page" :total="30" />
</t-card>
</div>
</template>
<script lang="jsx">
import { MessagePlugin } from 'tdesign-vue-next'
import {
FileCopyIcon,
ErrorCircleFilledIcon,
CheckCircleFilledIcon,
CloseCircleFilledIcon,
} from 'tdesign-icons-vue-next'
function copyToClipboard(text) {
if (navigator.clipboard) {
navigator.clipboard.writeText(text)
} else {
const textarea = document.createElement('textarea')
document.body.appendChild(textarea)
textarea.style.position = 'fixed'
textarea.style.clip = 'rect(0 0 0 0)'
textarea.style.top = '10px'
textarea.value = text
textarea.select()
document.execCommand('copy', true)
document.body.removeChild(textarea)
}
MessagePlugin.success('文本复制成功')
}
const data = []
const total = 5
for (let i = 0; i < total; i++) {
data.push({
id: i + 1,
applicant: ['贾明(kyrieJia)', '张三(threeZhang)', '王芳(fangWang)'][
i % 3
],
status: i % 3,
channel: ['电子签署', '纸质签署', '纸质签署'][i % 3],
desc: ['单元格文本超出省略设置', '这是普通文本的超出省略'][i % 2],
link: '点击查看审批详情',
something: '仅标题省略',
// Tooltip Props
ellipsisProps: [
'w.cezkdudy@lhll.au',
'r.nmgw@peurezgn.sl',
'p.cumx@rampblpa.ru',
][i % 3],
// Tips
ellipsisContent: [
'宣传物料制作费用',
'algolia 服务报销',
'相关周边制作费',
'激励奖品快递费',
][i % 4],
propsAndContent1: [
'2021-11-01',
'2021-12-01',
'2022-01-01',
'2022-02-01',
'2022-03-01',
][i % 4],
propsAndContent2: [2, 3, 1, 4][i % 4],
})
}
export default {
data() {
return {
data,
columns: [
{
colKey: 'applicant',
title: '申请人',
ellipsis: true,
},
{
colKey: 'status',
title: '审批状态',
width: 120,
cell: (h, { row }) => {
const statusNameListMap = {
0: {
label: '审批通过',
theme: 'success',
icon: <CheckCircleFilledIcon />,
},
1: {
label: '审批失败',
theme: 'danger',
icon: <CloseCircleFilledIcon />,
},
2: {
label: '审批过期',
theme: 'warning',
icon: <ErrorCircleFilledIcon />,
},
}
return (
<t-tag
shape="round"
theme={statusNameListMap[row.status].theme}
variant="light-outline"
>
{statusNameListMap[row.status].icon}
{statusNameListMap[row.status].label}
</t-tag>
)
},
},
{
title: '签署方式(超长标题示例)',
colKey: 'channel',
width: 120,
ellipsisTitle: true,
},
{
title: '邮箱地址',
colKey: 'ellipsisProps',
//
ellipsis: {
theme: 'light',
placement: 'bottom',
},
},
{
title: '申请事项',
colKey: 'ellipsisContent',
// ellipsis cell
ellipsis: (h, { row }) => (
<div>
{row.ellipsisContent}
<FileCopyIcon
style={{ cursor: 'pointer', marginLeft: '4px' }}
onClick={() => copyToClipboard(row.ellipsisContent)}
/>
</div>
),
},
{
title: '审核时间',
colKey: 'propsAndContent1',
// tooltipProps ,
width: 100,
ellipsis: {
props: {
theme: 'light',
placement: 'bottom-right',
},
content: (h, { row }) => (
<div>
<p>
<b>创建日期:</b> {row.propsAndContent1}
</p>
<p>
<b>审核时长():</b> {row.propsAndContent2}
</p>
</div>
),
},
},
{
title: '操作',
colKey: 'link',
//
ellipsis: (h, { row }) => row.link,
// JSX <script lang="jsx" setup>
cell: (h, { row }) => (
<a href="/vue-next/components/table" target="_blank">
{row.link}
</a>
),
},
],
}
},
// methods: {
// getAttach() {
// return document.body;
// },
// },
}
</script>
<style lang="scss" scoped>
.user_component {
.page {
margin-top: 30px;
}
}
</style>

90
src/pages/index.vue

@ -43,7 +43,7 @@
</g> </g>
</svg> </svg>
<div class="menu_list"> <div class="menu_list">
<div class="menu">
<div class="menu" @click="changePage(1)">
<svg <svg
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
@ -62,7 +62,70 @@
/> />
</g> </g>
</svg> </svg>
<p class="title" @click="changePage(1)">核查任务管理中心</p>
<p class="title">任务管理中心</p>
</div>
<div class="menu" @click="changePage(2)">
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
fill="none"
version="1.1"
width="30.133363723754883"
height="25.885509490966797"
viewBox="0 0 30.133363723754883 25.885509490966797"
>
<g>
<path
d="M2.16892,25.8855L24.069,25.8855C25.1625,25.8855,26.2349,24.7739,26.2319,23.6413L26.2439,8.84358L26.3523,8.73556L26.2955,8.67851L29.7384,5.03974C30.2655,4.48244,30.2655,3.58776,29.7354,3.04252L27.2441,0.418722C26.9911,0.153631,26.6296,0,26.253,0C25.8765,0,25.515,0.153631,25.2619,0.418722L20.1921,5.74162L2.16591,5.76271C0.966979,5.76271,0,6.99177,0,8.00996L0,23.6383C0,24.2076,0.250029,24.783,0.686826,25.2198C1.11157,25.6445,1.65079,25.8855,2.16892,25.8855ZM25.045,8.33916L25.0451,8.24794L28.8648,4.20229C28.9491,4.11192,28.9521,3.95527,28.8708,3.87394L28.8648,3.86792L26.3705,1.24412C26.3313,1.20797,26.2741,1.20496,26.253,1.20496C26.2289,1.20496,26.1747,1.20797,26.1355,1.25014L21.3025,6.32475L21.3336,6.35593L14.7003,12.9952C14.6732,13.0193,14.6582,13.0495,14.6491,13.0796L14.6401,13.1127L13.5508,16.25C14.7659,16.2318,15.9935,16.1717,16.5169,16.0436C16.7036,15.9984,16.8633,15.9593,17.0019,15.9262C17.276,15.8599,17.5381,15.7966,17.5863,15.7665Q17.5923,15.7635,17.6043,15.7514L17.6134,15.7424L25.045,8.33916ZM19.0383,6.94821L13.8508,12.1427C13.6701,12.3205,13.5436,12.5404,13.4833,12.7814L12.2743,16.2546L12.2634,16.2545L12.2423,16.2545L12.242,16.3472L11.9922,17.065L12.24,17.1509L12.2393,17.4595L12.2513,17.4595C12.3688,17.4625,12.5224,17.4625,12.7062,17.4625C13.7997,17.4625,15.9174,17.4354,16.806,17.2185C16.9898,17.1703,17.1495,17.1341,17.282,17.101C17.9146,16.9504,18.1797,16.8841,18.4629,16.5949L25.0436,10.0392L25.033,23.6353C25.033,24.1293,24.4606,24.6775,24.072,24.6775L2.17194,24.6775C1.79237,24.6775,1.21098,24.2106,1.21098,23.6353L1.21098,8.00695C1.21098,7.58521,1.71706,6.96466,2.17194,6.96466L19.0383,6.94821ZM20.4996,19.493L5.75994,19.493C5.53703,19.493,5.35327,19.3093,5.35327,19.0864L5.35327,18.6948C5.35327,18.4718,5.53703,18.2881,5.75994,18.2881L20.4996,18.2881C20.7225,18.2881,20.9063,18.4718,20.9063,18.6948L20.9063,19.0864C20.9063,19.3093,20.7225,19.493,20.4996,19.493Z"
fill-rule="evenodd"
fill="#FFFFFF"
fill-opacity="1"
/>
</g>
</svg>
<p class="title">发布任务</p>
</div>
<div class="menu" @click="changePage(3)">
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
fill="none"
version="1.1"
width="26.02972984313965"
height="26.029712677001953"
viewBox="0 0 26.02972984313965 26.029712677001953"
>
<g>
<path
d="M17.867,6.55125C17.867,2.94281,14.9242,0,11.2808,0C7.63729,0,4.69448,2.94281,4.69448,6.55125C4.69448,8.54815,5.60535,10.44,7.21688,11.7012L7.63729,12.0165C7.67232,12.0515,7.67232,12.0865,7.67232,12.1216C7.67232,12.1566,7.63729,12.1916,7.60225,12.1916L7.11178,12.4018C2.80267,14.1185,0,18.1823,0,22.7717L0,25.0839C0,25.5043,0.350334,25.8196,0.770735,25.8196L13.1726,25.8196C12.8222,25.3642,12.5069,24.8387,12.2617,24.3132L1.64657,24.3132C1.5765,24.3132,1.54147,24.2782,1.54147,24.2081L1.54147,22.7367C1.54147,17.7269,5.32508,13.593,10.3349,13.1025L11.4209,13.1025C12.3668,13.0324,14.0484,12.7872,14.9242,12.0165L15.3446,11.7012C16.9562,10.44,17.867,8.54815,17.867,6.55125ZM11.2808,11.5961C8.47809,11.5961,6.20091,9.31889,6.20091,6.55125C6.20091,3.78361,8.47809,1.50644,11.2808,1.50644C14.0834,1.50644,16.3606,3.78361,16.3606,6.55125C16.3606,9.31889,14.0834,11.5961,11.2808,11.5961ZM25.8896,20.8798C25.8195,21.3352,25.5042,21.6505,25.1539,21.6505L25.1539,21.6856L25.0838,21.6856C24.243,21.6856,23.5424,22.3862,23.5424,23.227C23.5424,23.4022,23.5774,23.6124,23.6825,23.8226C23.8577,24.243,23.7526,24.7335,23.3672,24.9787L21.6506,25.9246C21.5104,25.9947,21.3703,26.0297,21.2302,26.0297C20.9499,26.0297,20.6346,25.9246,20.4594,25.7144C20.2842,25.5042,19.6536,24.9437,19.1982,24.9437C18.7428,24.9437,18.1472,25.4341,17.937,25.6794C17.6217,25.9947,17.1663,26.0998,16.7809,25.9246L15.0993,24.9787C14.7139,24.6984,14.5738,24.208,14.749,23.7876C14.784,23.6825,14.8891,23.4022,14.8891,23.192C14.8891,22.3512,14.1884,21.6505,13.3476,21.6505L13.2776,21.6505C12.8922,21.6505,12.6119,21.3703,12.5068,20.8798Q12.3667,20.1441,12.3667,19.5485Q12.3667,18.953,12.5068,18.2173C12.5769,17.7618,12.8922,17.4465,13.2425,17.4465L13.3126,17.4465C14.1534,17.4465,14.8541,16.7459,14.8541,15.9051Q14.8541,15.6248,14.7139,15.3095C14.5388,14.8891,14.6789,14.3986,15.0292,14.1534L16.7809,13.1724L16.8159,13.1724C17.2013,13.0323,17.6567,13.1024,17.972,13.4177C18.1472,13.5928,18.7428,14.1183,19.1982,14.1183C19.6186,14.1183,20.2142,13.6279,20.4244,13.4177C20.7397,13.1024,21.1951,13.0323,21.5805,13.1724L23.2971,14.1183C23.6825,14.3986,23.8226,14.8891,23.6475,15.3095C23.6475,15.3445,23.5073,15.6248,23.5073,15.9051C23.5073,16.7459,24.208,17.4465,25.0488,17.4465L25.1189,17.4465C25.5042,17.4465,25.7845,17.7618,25.8896,18.2173C25.9246,18.3224,26.0297,19.023,26.0297,19.5485C26.0297,19.7587,25.9947,20.1791,25.8896,20.8448L25.8896,20.8798ZM24.8036,20.5295L24.8036,20.4594C24.8386,20.2492,24.8736,19.8638,24.8736,19.5485C24.8736,19.2332,24.8386,18.8479,24.8036,18.6377L24.8036,18.5676L24.7335,18.5676C23.4022,18.3924,22.3863,17.2714,22.3863,15.9051C22.3863,15.6248,22.4213,15.3796,22.5264,15.0993L22.5614,15.0292L21.2302,14.2935L21.1951,14.3285C21.09,14.4336,20.9149,14.5738,20.7047,14.7139C20.1792,15.0642,19.6887,15.2394,19.2333,15.2394C18.7778,15.2394,18.2873,15.0292,17.7618,14.6789C17.5166,14.5037,17.3414,14.3285,17.2714,14.2585L17.2363,14.2234L15.835,14.9942L15.87,15.1343C15.9401,15.3095,16.0102,15.6248,16.0102,15.9401C16.0102,17.2714,14.9942,18.4275,13.6629,18.6026L13.5929,18.6026L13.5929,18.6727C13.5578,19.023,13.5228,19.3383,13.5228,19.5836C13.5228,19.8989,13.5578,20.2142,13.5929,20.4944L13.5929,20.5645L13.6629,20.5645C14.9942,20.7397,16.0102,21.8607,16.0102,23.227C16.0102,23.5423,15.9401,23.8226,15.87,24.0328L15.835,24.1029L17.1663,24.7685L17.2013,24.7335C17.3414,24.5933,17.5166,24.4532,17.6918,24.3131C18.2173,23.9627,18.7428,23.7525,19.1982,23.7525C19.6537,23.7525,20.1792,23.9627,20.7047,24.3481C20.9499,24.5233,21.1251,24.6984,21.1951,24.7685L21.2302,24.8035L22.5614,24.0678L22.5264,23.9978C22.4563,23.8226,22.3863,23.5073,22.3863,23.192C22.3863,21.8607,23.4022,20.7046,24.7335,20.5295L24.8036,20.5295ZM19.1632,17.0612C17.7969,17.0612,16.6759,18.1822,16.6759,19.5485C16.6759,20.9148,17.7969,22.0359,19.1632,22.0359C20.5295,22.0359,21.6506,20.9148,21.6506,19.5485C21.6506,18.1822,20.5295,17.0612,19.1632,17.0612ZM20.1091,20.4944C19.8639,20.7397,19.5136,20.8798,19.1632,20.8798C18.4275,20.8798,17.832,20.2842,17.832,19.5485C17.867,18.8128,18.4626,18.2523,19.1632,18.2523C19.8639,18.2523,20.4595,18.8128,20.4945,19.5485C20.4945,19.8989,20.3544,20.2492,20.1091,20.4944Z"
fill-rule="evenodd"
fill="#FFFFFF"
fill-opacity="1"
/>
</g>
</svg>
<p class="title">用户管理</p>
</div>
<div class="menu" @click="changePage(4)">
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
fill="none"
version="1.1"
width="26.271926879882812"
height="21.392486572265625"
viewBox="0 0 26.271926879882812 21.392486572265625"
>
<g>
<path
d="M19.2738,3.31288L23.8579,3.31288C25.1907,3.31288,26.2719,4.39406,26.2719,5.72692L26.2719,18.9784C26.2719,20.3113,25.1907,21.3925,23.8579,21.3925L2.41404,21.3925C1.08118,21.3925,0,20.3113,0,18.9784L0,5.72692C0,4.39406,1.08118,3.31288,2.41404,3.31288L6.99814,3.31288C7.2113,3.31288,7.38336,3.14082,7.38336,2.92766L7.38336,2.41404C7.38336,1.08118,8.46454,0,9.7974,0L16.4745,0C17.8074,0,18.8886,1.08118,18.8886,2.41404L18.8886,2.92766C18.8886,3.14082,19.0606,3.31288,19.2738,3.31288ZM23.8579,19.8516C24.3407,19.8516,24.7311,19.4613,24.7311,18.9784L24.7311,5.72692C24.7311,5.24411,24.3407,4.85376,23.8579,4.85376L18.1181,4.85376C17.6918,4.85376,17.3477,4.50963,17.3477,4.08332L17.3477,2.41404C17.3477,1.93123,16.9573,1.54088,16.4745,1.54088L9.7974,1.54088C9.31459,1.54088,8.92424,1.93123,8.92424,2.41404L8.92424,4.08332C8.92424,4.50963,8.58011,4.85376,8.1538,4.85376L2.41404,4.85376C1.93123,4.85376,1.54087,5.24411,1.54087,5.72692L1.54087,18.9784C1.54087,19.4613,1.93123,19.8516,2.41404,19.8516L23.8579,19.8516ZM21.3538,9.11679C22.2615,9.11679,22.9974,8.38093,22.9974,7.47319C22.9974,6.56545,22.2615,5.82959,21.3538,5.82959C20.4461,5.82959,19.7102,6.56545,19.7102,7.47319C19.7102,8.38093,20.4461,9.11679,21.3538,9.11679ZM9.09363,8.27185C10.1799,7.18553,11.6258,6.58716,13.1615,6.58716C14.6973,6.58716,16.1431,7.18553,17.2295,8.27185C18.3158,9.35817,18.9141,10.804,18.9141,12.3398C18.9141,13.8755,18.3158,15.3214,17.2295,16.4077C16.1431,17.494,14.6973,18.0924,13.1615,18.0924C11.6258,18.0924,10.1799,17.494,9.09363,16.4077C8.00731,15.3214,7.40894,13.8755,7.40894,12.3398C7.40894,10.804,8.00731,9.35817,9.09363,8.27185ZM8.94981,12.3398C8.94981,14.6613,10.84,16.5515,13.1615,16.5515C15.4831,16.5515,17.3733,14.6613,17.3733,12.3398C17.3733,10.0182,15.4831,8.12803,13.1615,8.12803C10.84,8.12803,8.94981,10.0182,8.94981,12.3398Z"
fill-rule="evenodd"
fill="#FFFFFF"
fill-opacity="1"
/>
</g>
</svg>
<p class="title">相机调试</p>
</div> </div>
</div> </div>
<t-popup class="placement bottom center" overlayStyle> <t-popup class="placement bottom center" overlayStyle>
@ -98,13 +161,20 @@
<Image /> <Image />
<Excel :excelData="excelData" /> <Excel :excelData="excelData" />
</div> </div>
<div class="bottom_operation_container">
<Upload />
</div>
<div class="bottom_operation_container"></div>
</div> </div>
<div class="task_container" v-if="activePage == 1"> <div class="task_container" v-if="activePage == 1">
<Task /> <Task />
</div> </div>
<div class="publish_container" v-if="activePage == 2">
<Publish />
</div>
<div class="task_container" v-if="activePage == 3">
<User />
</div>
<div class="task_container" v-if="activePage == 4">
<Debug />
</div>
</div> </div>
</template> </template>
@ -115,7 +185,9 @@ import { ref, onMounted } from 'vue'
import Excel from 'cpns/Excel' import Excel from 'cpns/Excel'
import Image from 'cpns/Image' import Image from 'cpns/Image'
import Task from 'cpns/Task' import Task from 'cpns/Task'
import Upload from 'cpns/Upload'
import Publish from 'cpns/Publish'
import User from 'cpns/User'
import Debug from 'cpns/Debug'
import { getNuclearExcelApi } from '@/api' import { getNuclearExcelApi } from '@/api'
const accountStore = useAccountStore() const accountStore = useAccountStore()
const activePage = ref(0) const activePage = ref(0)
@ -237,5 +309,11 @@ onMounted(async () => {
background: #f4f2f8; background: #f4f2f8;
box-sizing: border-box; box-sizing: border-box;
} }
.publish_container {
flex: 1;
padding: 30px 700px;
background: #f4f2f8;
box-sizing: border-box;
}
} }
</style> </style>

1
src/service/request.js

@ -55,7 +55,6 @@ class Request {
return res.data return res.data
}, },
err => { err => {
console.log(err)
if (err.response.status == 403) { if (err.response.status == 403) {
// token超时 // token超时
Cookie.clearAllCookie() Cookie.clearAllCookie()

Loading…
Cancel
Save