<script setup lang="ts"> import { ref, reactive, computed } from "vue"; import { ElMessageBox, ElMessage, ElTable } from "element-plus"; import { Search } from "@element-plus/icons-vue"; import { textSpanOverlapsWith } from "typescript"; import { getStateData, getStateType } from "@/config/tag"; const dialogVisibleAdd = ref(false); const handleClose = () => { ElMessageBox.confirm("确认关闭弹窗吗?") .then(() => { dialogVisibleAdd.value = !dialogVisibleAdd.value; ElMessage({ message: "已关闭" }); }) .catch(() => { // catch error }); }; const tableData = [ { date: "2016-05-04", name: "Aleyna Kutzner", address: "Lohrbergstr", index: 1 }, { date: "2016-05-03", name: "Helen Jacobi", address: "760 A St", index: 2 }, { date: "2016-05-02", name: "Brandon Deckert", address: "Arnold-O", index: 0 }, { date: "2016-05-01", name: "Margie Smith", address: "23618 ", index: 0 } ]; // 添加部门保存 const saveDepartment = () => { ElMessageBox.confirm("不保存,更新的信息将会丢失", "需要保存吗?", { type: "warning" }) .then(() => { dialogVisibleAdd.value = false; ElMessage({ message: "已保存", type: "success" }); }) .catch(() => { // catch error }); }; const open = () => { dialogVisibleAdd.value = true; }; // 选中 const selectedNums = ref(0); const handleSelectionChange = selectedRows => { // this.selectedRows = selectedRows; selectedNums.value = selectedRows.length; console.log("选中的行:", selectedRows); }; defineExpose({ open }); </script> <template> <div> <el-dialog v-model="dialogVisibleAdd" title="添加成员" width="600" :before-close="handleClose" > <div class="w-full flex justify-between items-center"> <div><el-text>指标分类</el-text></div> <div><el-input placeholder="请输入" :prefix-icon="Search" /></div> </div> <el-table :data="tableData" style="width: 100%" @selection-change="handleSelectionChange" > <el-table-column type="selection" width="55" /> <el-table-column label="指标名称"> <template #default="scope">{{ scope.row.date }}</template> </el-table-column> <el-table-column property="name" label="指标分类" width="100" /> <el-table-column property="address" label="状态" width="100" show-overflow-tooltip > <template #default="scope"> <el-tag :type="getStateType(scope.row.index)"> {{ getStateData(scope.row.index) }} </el-tag> </template> </el-table-column> <el-table-column property="address" label="数据来源" width="120" /> </el-table> <div class="w-full flex justify-evenly items-center"> <div class="mt-5"><el-text>共111项数据</el-text></div> <div class="ml-10"> <el-pagination size="small" background layout="prev, pager, next" :total="50" class="mt-4" /> </div> </div> <template #footer> <div class="dialog-footer w-full flex justify-between mt-4"> <div> <el-text>已选择</el-text> <el-text type="primary"> {{ selectedNums }} </el-text> <el-text>项</el-text> </div> <div> <el-button @click="handleClose">取消</el-button> <el-button type="primary" @click="saveDepartment"> 确认 </el-button> </div> </div> </template> </el-dialog> </div> </template>