feat: 适配分辨率

This commit is contained in:
zhanghao 2025-10-24 09:48:24 +08:00
parent 907d75ffc1
commit 1cf8cba6c4
4 changed files with 1684 additions and 1657 deletions

View File

@ -1,87 +1,92 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch"> <div ref="topContainerRef">
<el-form-item label="菜单名称" prop="menuName"> <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch">
<el-input <el-form-item label="菜单名称" prop="menuName">
v-model="queryParams.menuName" <el-input
placeholder="请输入菜单名称" v-model="queryParams.menuName"
clearable placeholder="请输入菜单名称"
style="width: 200px" clearable
@keyup.enter="handleQuery" style="width: 200px"
/> @keyup.enter="handleQuery"
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="菜单状态" clearable style="width: 200px">
<el-option
v-for="dict in sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/> />
</el-select> </el-form-item>
</el-form-item> <el-form-item label="状态" prop="status">
<el-form-item> <el-select v-model="queryParams.status" placeholder="菜单状态" clearable style="width: 200px">
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button> <el-option
<el-button icon="Refresh" @click="resetQuery">重置</el-button> v-for="dict in sys_normal_disable"
</el-form-item> :key="dict.value"
</el-form> :label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="primary" type="primary"
plain plain
icon="Plus" icon="Plus"
@click="handleAdd" @click="handleAdd"
v-hasPermi="['system:menu:add']" v-hasPermi="['system:menu:add']"
>新增</el-button> >新增</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="info" type="info"
plain plain
icon="Sort" icon="Sort"
@click="toggleExpandAll" @click="toggleExpandAll"
>展开/折叠</el-button> >展开/折叠</el-button>
</el-col> </el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div>
<el-table <div :style="containerHeight">
v-if="refreshTable" <el-table
v-loading="loading" v-if="refreshTable"
:data="menuList" height="100%"
row-key="menuId" v-loading="loading"
:default-expand-all="isExpandAll" :data="menuList"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }" row-key="menuId"
> :default-expand-all="isExpandAll"
<el-table-column prop="menuName" label="菜单名称" :show-overflow-tooltip="true" width="160"></el-table-column> :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
<el-table-column prop="icon" label="图标" align="center" width="100"> >
<template #default="scope"> <el-table-column prop="menuName" label="菜单名称" :show-overflow-tooltip="true" width="160"></el-table-column>
<svg-icon :icon-class="scope.row.icon" /> <el-table-column prop="icon" label="图标" align="center" width="100">
</template> <template #default="scope">
</el-table-column> <svg-icon :icon-class="scope.row.icon" />
<el-table-column prop="orderNum" label="排序" width="60"></el-table-column> </template>
<el-table-column prop="perms" label="权限标识" :show-overflow-tooltip="true"></el-table-column> </el-table-column>
<el-table-column prop="component" label="组件路径" :show-overflow-tooltip="true"></el-table-column> <el-table-column prop="orderNum" label="排序" width="60"></el-table-column>
<el-table-column prop="status" label="状态" width="80"> <el-table-column prop="perms" label="权限标识" :show-overflow-tooltip="true"></el-table-column>
<template #default="scope"> <el-table-column prop="component" label="组件路径" :show-overflow-tooltip="true"></el-table-column>
<dict-tag :options="sys_normal_disable" :value="scope.row.status" /> <el-table-column prop="status" label="状态" width="80">
</template> <template #default="scope">
</el-table-column> <dict-tag :options="sys_normal_disable" :value="scope.row.status" />
<el-table-column label="创建时间" align="center" width="160" prop="createTime"> </template>
<template #default="scope"> </el-table-column>
<span>{{ parseTime(scope.row.createTime) }}</span> <el-table-column label="创建时间" align="center" width="160" prop="createTime">
</template> <template #default="scope">
</el-table-column> <span>{{ parseTime(scope.row.createTime) }}</span>
<el-table-column label="操作" align="center" width="210" class-name="small-padding fixed-width"> </template>
<template #default="scope"> </el-table-column>
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:menu:edit']">修改</el-button> <el-table-column label="操作" align="center" width="210" class-name="small-padding fixed-width">
<el-button link type="primary" icon="Plus" @click="handleAdd(scope.row)" v-hasPermi="['system:menu:add']">新增</el-button> <template #default="scope">
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:menu:remove']">删除</el-button> <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:menu:edit']">修改</el-button>
</template> <el-button link type="primary" icon="Plus" @click="handleAdd(scope.row)" v-hasPermi="['system:menu:add']">新增</el-button>
</el-table-column> <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:menu:remove']">删除</el-button>
</el-table> </template>
</el-table-column>
</el-table>
</div>
<!-- 添加或修改菜单对话框 --> <!-- 添加或修改菜单对话框 -->
<el-dialog :title="title" v-model="open" width="680px" append-to-body> <el-dialog :title="title" v-model="open" width="680px" append-to-body>
@ -292,6 +297,10 @@
import { addMenu, delMenu, getMenu, listMenu, updateMenu } from "@/api/system/menu"; import { addMenu, delMenu, getMenu, listMenu, updateMenu } from "@/api/system/menu";
import SvgIcon from "@/components/SvgIcon"; import SvgIcon from "@/components/SvgIcon";
import IconSelect from "@/components/IconSelect"; import IconSelect from "@/components/IconSelect";
import { useContainerHeight } from "@/hooks/tableHeight";
const topContainerRef = ref();
const containerHeight = useContainerHeight(topContainerRef);
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const { sys_show_hide, sys_normal_disable } = proxy.useDict("sys_show_hide", "sys_normal_disable"); const { sys_show_hide, sys_normal_disable } = proxy.useDict("sys_show_hide", "sys_normal_disable");

View File

@ -1,98 +1,101 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<div ref="topContainerRef">
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" :inline="true" label-width="68px"> <el-form :model="queryParams" ref="queryRef" v-show="showSearch" :inline="true" label-width="68px">
<el-form-item label="角色名称" prop="roleName"> <el-form-item label="角色名称" prop="roleName">
<el-input <el-input
v-model="queryParams.roleName" v-model="queryParams.roleName"
placeholder="请输入角色名称" placeholder="请输入角色名称"
clearable clearable
style="width: 240px" style="width: 240px"
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="权限字符" prop="roleKey"> <el-form-item label="权限字符" prop="roleKey">
<el-input <el-input
v-model="queryParams.roleKey" v-model="queryParams.roleKey"
placeholder="请输入权限字符" placeholder="请输入权限字符"
clearable clearable
style="width: 240px" style="width: 240px"
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-select <el-select
v-model="queryParams.status" v-model="queryParams.status"
placeholder="角色状态" placeholder="角色状态"
clearable clearable
style="width: 240px" style="width: 240px"
> >
<el-option <el-option
v-for="dict in sys_normal_disable" v-for="dict in sys_normal_disable"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="创建时间" style="width: 308px"> <el-form-item label="创建时间" style="width: 308px">
<el-date-picker <el-date-picker
v-model="dateRange" v-model="dateRange"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
type="daterange" type="daterange"
range-separator="-" range-separator="-"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button> <el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="primary" type="primary"
plain plain
icon="Plus" icon="Plus"
@click="handleAdd" @click="handleAdd"
v-hasPermi="['system:role:add']" v-hasPermi="['system:role:add']"
>新增</el-button> >新增</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="success" type="success"
plain plain
icon="Edit" icon="Edit"
:disabled="single" :disabled="single"
@click="handleUpdate" @click="handleUpdate"
v-hasPermi="['system:role:edit']" v-hasPermi="['system:role:edit']"
>修改</el-button> >修改</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="danger" type="danger"
plain plain
icon="Delete" icon="Delete"
:disabled="multiple" :disabled="multiple"
@click="handleDelete" @click="handleDelete"
v-hasPermi="['system:role:remove']" v-hasPermi="['system:role:remove']"
>删除</el-button> >删除</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="warning" type="warning"
plain plain
icon="Download" icon="Download"
@click="handleExport" @click="handleExport"
v-hasPermi="['system:role:export']" v-hasPermi="['system:role:export']"
>导出</el-button> >导出</el-button>
</el-col> </el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div>
<div :style="containerHeight">
<!-- 表格数据 --> <!-- 表格数据 -->
<el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange"> <el-table height="100%" v-loading="loading" :data="roleList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="角色编号" prop="roleId" width="120" /> <el-table-column label="角色编号" prop="roleId" width="120" />
<el-table-column label="角色名称" prop="roleName" :show-overflow-tooltip="true" width="150" /> <el-table-column label="角色名称" prop="roleName" :show-overflow-tooltip="true" width="150" />
@ -139,6 +142,8 @@
@pagination="getList" @pagination="getList"
/> />
</div>
<!-- 添加或修改角色配置对话框 --> <!-- 添加或修改角色配置对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body> <el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="roleRef" :model="form" :rules="rules" label-width="100px"> <el-form ref="roleRef" :model="form" :rules="rules" label-width="100px">
@ -244,6 +249,10 @@
<script setup name="Role"> <script setup name="Role">
import { addRole, changeRoleStatus, dataScope, delRole, getRole, listRole, updateRole, deptTreeSelect } from "@/api/system/role"; import { addRole, changeRoleStatus, dataScope, delRole, getRole, listRole, updateRole, deptTreeSelect } from "@/api/system/role";
import { roleMenuTreeselect, treeselect as menuTreeselect } from "@/api/system/menu"; import { roleMenuTreeselect, treeselect as menuTreeselect } from "@/api/system/menu";
import { useContainerHeight } from "@/hooks/tableHeight";
const topContainerRef = ref();
const containerHeight = useContainerHeight(topContainerRef);
const router = useRouter(); const router = useRouter();
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();

View File

@ -16,86 +16,90 @@
<!--用户数据--> <!--用户数据-->
<pane size="84"> <pane size="84">
<el-col> <el-col>
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="90px"> <div ref="topContainerRef">
<el-form-item label="用户名称啊" prop="userName"> <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="90px">
<el-input v-model="queryParams.userName" placeholder="请输入用户名称" clearable style="width: 240px" @keyup.enter="handleQuery" /> <el-form-item label="用户名称啊" prop="userName">
</el-form-item> <el-input v-model="queryParams.userName" placeholder="请输入用户名称" clearable style="width: 240px" @keyup.enter="handleQuery" />
<el-form-item label="手机号码" prop="phonenumber"> </el-form-item>
<el-input v-model="queryParams.phonenumber" placeholder="请输入手机号码" clearable style="width: 240px" @keyup.enter="handleQuery" /> <el-form-item label="手机号码" prop="phonenumber">
</el-form-item> <el-input v-model="queryParams.phonenumber" placeholder="请输入手机号码" clearable style="width: 240px" @keyup.enter="handleQuery" />
<el-form-item label="状态" prop="status"> </el-form-item>
<el-select v-model="queryParams.status" placeholder="用户状态" clearable style="width: 240px"> <el-form-item label="状态" prop="status">
<el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label" :value="dict.value" /> <el-select v-model="queryParams.status" placeholder="用户状态" clearable style="width: 240px">
</el-select> <el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-form-item> </el-select>
<el-form-item label="创建时间" style="width: 308px"> </el-form-item>
<el-date-picker v-model="dateRange" value-format="YYYY-MM-DD" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker> <el-form-item label="创建时间" style="width: 308px">
</el-form-item> <el-date-picker v-model="dateRange" value-format="YYYY-MM-DD" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
<el-form-item> </el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button> <el-form-item>
<el-button icon="Refresh" @click="resetQuery">重置</el-button> <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
</el-form-item> <el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form> </el-form-item>
</el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['system:user:add']">新增</el-button> <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['system:user:add']">新增</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate" v-hasPermi="['system:user:edit']">修改</el-button> <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate" v-hasPermi="['system:user:edit']">修改</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete" v-hasPermi="['system:user:remove']">删除</el-button> <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete" v-hasPermi="['system:user:remove']">删除</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="info" plain icon="Upload" @click="handleImport" v-hasPermi="['system:user:import']">导入</el-button> <el-button type="info" plain icon="Upload" @click="handleImport" v-hasPermi="['system:user:import']">导入</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['system:user:export']">导出</el-button> <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['system:user:export']">导出</el-button>
</el-col> </el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar> <right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row> </el-row>
</div>
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange"> <div :style="containerHeight">
<el-table-column type="selection" width="50" align="center" /> <el-table height="100%" v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
<el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" /> <el-table-column type="selection" width="50" align="center" />
<el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" /> <el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
<el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" /> <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
<el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" /> <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
<el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" /> <el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
<el-table-column label="状态" align="center" key="status" v-if="columns[5].visible"> <el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
<template #default="scope"> <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
<el-switch <template #default="scope">
v-model="scope.row.status" <el-switch
active-value="0" v-model="scope.row.status"
inactive-value="0" active-value="0"
@change="handleStatusChange(scope.row)" inactive-value="0"
></el-switch> @change="handleStatusChange(scope.row)"
</template> ></el-switch>
</el-table-column> </template>
<el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160"> </el-table-column>
<template #default="scope"> <el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160">
<span>{{ parseTime(scope.row.createTime) }}</span> <template #default="scope">
</template> <span>{{ parseTime(scope.row.createTime) }}</span>
</el-table-column> </template>
<el-table-column label="操作" align="center" width="150" class-name="small-padding fixed-width"> </el-table-column>
<template #default="scope"> <el-table-column label="操作" align="center" width="150" class-name="small-padding fixed-width">
<el-tooltip content="修改" placement="top" v-if="scope.row.userId !== 1"> <template #default="scope">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:user:edit']"></el-button> <el-tooltip content="修改" placement="top" v-if="scope.row.userId !== 1">
</el-tooltip> <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:user:edit']"></el-button>
<el-tooltip content="删除" placement="top" v-if="scope.row.userId !== 1"> </el-tooltip>
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:user:remove']"></el-button> <el-tooltip content="删除" placement="top" v-if="scope.row.userId !== 1">
</el-tooltip> <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:user:remove']"></el-button>
<el-tooltip content="重置密码" placement="top" v-if="scope.row.userId !== 1"> </el-tooltip>
<el-button link type="primary" icon="Key" @click="handleResetPwd(scope.row)" v-hasPermi="['system:user:resetPwd']"></el-button> <el-tooltip content="重置密码" placement="top" v-if="scope.row.userId !== 1">
</el-tooltip> <el-button link type="primary" icon="Key" @click="handleResetPwd(scope.row)" v-hasPermi="['system:user:resetPwd']"></el-button>
<el-tooltip content="分配角色" placement="top" v-if="scope.row.userId !== 1"> </el-tooltip>
<el-button link type="primary" icon="CircleCheck" @click="handleAuthRole(scope.row)" v-hasPermi="['system:user:edit']"></el-button> <el-tooltip content="分配角色" placement="top" v-if="scope.row.userId !== 1">
</el-tooltip> <el-button link type="primary" icon="CircleCheck" @click="handleAuthRole(scope.row)" v-hasPermi="['system:user:edit']"></el-button>
</template> </el-tooltip>
</el-table-column> </template>
</el-table> </el-table-column>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" /> </el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
</div>
</el-col> </el-col>
</pane> </pane>
</splitpanes> </splitpanes>
@ -220,6 +224,11 @@ import { changeUserStatus, listUser, resetUserPwd, delUser, getUser, updateUser,
import { Splitpanes, Pane } from "splitpanes" import { Splitpanes, Pane } from "splitpanes"
import "splitpanes/dist/splitpanes.css" import "splitpanes/dist/splitpanes.css"
import { useContainerHeight } from "@/hooks/tableHeight";
const topContainerRef = ref();
const containerHeight = useContainerHeight(topContainerRef);
const router = useRouter(); const router = useRouter();
const appStore = useAppStore() const appStore = useAppStore()
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();

View File

@ -142,91 +142,91 @@
<div :style="containerHeight"> <div :style="containerHeight">
<el-table <el-table
v-loading="loading" v-loading="loading"
height="100%" height="100%"
:data="projectList" :data="projectList"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="项目ID" align="center" prop="projectId" width="150" show-overflow-tooltip />
<el-table-column label="项目名称" align="center" prop="projectName" width="150" show-overflow-tooltip />
<el-table-column label="测试人员" align="center" prop="tester" />
<el-table-column
label="计划测试开始时间"
align="center"
prop="planStart"
width="180"
> >
<template #default="{ row }"> <el-table-column type="selection" width="55" align="center" />
<span>{{ parseTime(row.planStart) }}</span> <el-table-column label="项目ID" align="center" prop="projectId" width="150" show-overflow-tooltip />
</template> <el-table-column label="项目名称" align="center" prop="projectName" width="150" show-overflow-tooltip />
</el-table-column> <el-table-column label="测试人员" align="center" prop="tester" />
<el-table-column label="计划测试结束时间" align="center" prop="planEnd" width="180"> <el-table-column
<template #default="{ row }"> label="计划测试开始时间"
<span>{{ parseTime(row.planEnd) }}</span> align="center"
</template> prop="planStart"
</el-table-column> width="180"
<el-table-column label="项目描述" width="200" show-overflow-tooltip align="center" prop="description" /> >
<el-table-column label="样品名称" align="center" prop="sampleName" width="150" show-overflow-tooltip /> <template #default="{ row }">
<el-table-column label="商标" align="center" prop="trademark" width="150" show-overflow-tooltip /> <span>{{ parseTime(row.planStart) }}</span>
<el-table-column label="型号规格" align="center" prop="modelSpec" width="150" show-overflow-tooltip /> </template>
<el-table-column label="数量" align="center" prop="quantity" /> </el-table-column>
<el-table-column label="项目状态" align="center" prop="status"> <el-table-column label="计划测试结束时间" align="center" prop="planEnd" width="180">
<template #default="{ row }"> <template #default="{ row }">
{{ row.status == 0 ? '已执行': '未执行' }} <span>{{ parseTime(row.planEnd) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="300px" class-name="small-padding fixed-width" fixed="right"> <el-table-column label="项目描述" width="200" show-overflow-tooltip align="center" prop="description" />
<template #default="{ row }"> <el-table-column label="样品名称" align="center" prop="sampleName" width="150" show-overflow-tooltip />
<el-button <el-table-column label="商标" align="center" prop="trademark" width="150" show-overflow-tooltip />
size="mini" <el-table-column label="型号规格" align="center" prop="modelSpec" width="150" show-overflow-tooltip />
type="text" <el-table-column label="数量" align="center" prop="quantity" />
@click="handleSetting(row)" <el-table-column label="项目状态" align="center" prop="status">
v-hasPermi="['system:project:add','system:project:edit']" <template #default="{ row }">
>配置 {{ row.status == 0 ? '已执行': '未执行' }}
</el-button> </template>
<el-button </el-table-column>
size="mini" <el-table-column label="操作" align="center" width="300px" class-name="small-padding fixed-width" fixed="right">
type="text" <template #default="{ row }">
v-if="row.status == 1" <el-button
@click="handleExecute(row)" size="mini"
v-hasPermi="['system:project:add','system:project:edit']" type="text"
>执行 @click="handleSetting(row)"
</el-button> v-hasPermi="['system:project:add','system:project:edit']"
<el-button >配置
icon="DataLine" </el-button>
v-if="row.status == 0" <el-button
link size="mini"
type="primary" type="text"
v-hasPermi="['system:project:add','system:project:edit']" v-if="row.status == 1"
@click="handleOpenDashboard(row)" @click="handleExecute(row)"
>可视化 v-hasPermi="['system:project:add','system:project:edit']"
</el-button> >执行
<el-button </el-button>
size="mini" <el-button
type="text" icon="DataLine"
@click="handleUpdate(row)" v-if="row.status == 0"
v-hasPermi="['system:project:edit']" link
>修改</el-button type="primary"
> v-hasPermi="['system:project:add','system:project:edit']"
<el-button @click="handleOpenDashboard(row)"
size="mini" >可视化
type="text" </el-button>
@click="handleDelete(row)" <el-button
v-hasPermi="['system:project:remove']" size="mini"
>删除</el-button type="text"
> @click="handleUpdate(row)"
</template> v-hasPermi="['system:project:edit']"
</el-table-column> >修改</el-button
</el-table> >
<el-button
size="mini"
type="text"
@click="handleDelete(row)"
v-hasPermi="['system:project:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination <pagination
v-show="total > 0" v-show="total > 0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />
</div> </div>
<!-- 添加或修改语料库对话框 --> <!-- 添加或修改语料库对话框 -->