|
|
@ -1,17 +1,35 @@ |
|
|
|
<template> |
|
|
|
<main> |
|
|
|
<main class="matrix_main"> |
|
|
|
<div class="opt_btn p-[3rem]"> |
|
|
|
<el-button type="primary" @click="onAdd">新增基质</el-button> |
|
|
|
<el-button @click="onEdit">编辑</el-button> |
|
|
|
<el-button @click="onDel">删除</el-button> |
|
|
|
|
|
|
|
<el-input |
|
|
|
class="ml-[20px]" |
|
|
|
v-model="searchForm.matrixName" |
|
|
|
style="width: 240px" |
|
|
|
placeholder="基质名称" |
|
|
|
clearable |
|
|
|
/> |
|
|
|
|
|
|
|
<el-button @click="getMatrixList">搜索</el-button> |
|
|
|
|
|
|
|
</div> |
|
|
|
<div class="matrix_list pl-[3rem]"> |
|
|
|
<div v-for="(item, index) in matrixList" class="w-[8rem] h-[3rem] matrix_module" @click="toggleSelection(index)" :style="{ backgroundColor: item.isSelected ? '#65a8ff' : '#ffffff' }"> |
|
|
|
<!-- <div v-for="(item, index) in matrixList" class="w-[8rem] h-[3rem] matrix_module" @click="toggleSelection(index)" :style="{ backgroundColor: item.isSelected ? '#65a8ff' : '#ffffff' }"> |
|
|
|
{{ item.name }} |
|
|
|
</div> |
|
|
|
</div> --> |
|
|
|
<div style="padding:20px"> |
|
|
|
<el-table :data="matrixList" empty-text="无数据" stripe style="width: 100%;" ref="matrixTableRef" v-loading="loading"> |
|
|
|
<el-table-column type="selection" /> |
|
|
|
<el-table-column prop="name" label="基质名称" /> |
|
|
|
</el-table> |
|
|
|
</div> |
|
|
|
<Add ref="addRef" @save="onSave"/> |
|
|
|
</main> |
|
|
|
<footer class="footer"> |
|
|
|
<el-pagination background layout="prev, pager, next" :total="totalData" /> |
|
|
|
</footer> |
|
|
|
</template> |
|
|
|
<script lang="ts" setup> |
|
|
|
import { ref, reactive, onMounted } from 'vue' |
|
|
@ -21,6 +39,11 @@ |
|
|
|
import Add from './add.vue' |
|
|
|
const addRef:any = ref() |
|
|
|
const matrixList = ref<Array<MatrixItem>>([]) |
|
|
|
const loading = ref(false) |
|
|
|
const totalData = ref() |
|
|
|
const searchForm = ref({ |
|
|
|
matrixName:'', |
|
|
|
}) |
|
|
|
onMounted(()=>{ |
|
|
|
getMatrixList() |
|
|
|
}) |
|
|
@ -29,12 +52,17 @@ |
|
|
|
const params = { |
|
|
|
pageNum:1, |
|
|
|
pageSize:20, |
|
|
|
...searchForm.value |
|
|
|
} |
|
|
|
loading.value = true; |
|
|
|
getList(params).then(res => { |
|
|
|
if(res.success){ |
|
|
|
const { list } = res.data; |
|
|
|
const { list, total } = res.data; |
|
|
|
matrixList.value = list; |
|
|
|
totalData.value = total |
|
|
|
} |
|
|
|
}).finally(()=>{ |
|
|
|
loading.value = false; |
|
|
|
}) |
|
|
|
} |
|
|
|
const toggleSelection = (index:number) => { |
|
|
@ -48,14 +76,18 @@ |
|
|
|
name:'', |
|
|
|
id:0 |
|
|
|
}) |
|
|
|
|
|
|
|
const matrixTableRef = ref() |
|
|
|
const onEdit = () => { |
|
|
|
let list = matrixList.value.filter((item:MatrixItem) => !!item.isSelected) |
|
|
|
if(list.length !== 1){ |
|
|
|
ElMessage.error("请选择一条数据") |
|
|
|
|
|
|
|
const selectRows = matrixTableRef.value.getSelectionRows() |
|
|
|
if(selectRows.length !== 1){ |
|
|
|
ElMessage.error('请选择一条数据进行编辑') |
|
|
|
return; |
|
|
|
} |
|
|
|
editItem.value = list[0] |
|
|
|
addRef.value.showDialog('edit', editItem.value) |
|
|
|
const sel = selectRows[0] |
|
|
|
editItem.value = sel |
|
|
|
addRef.value.showDialog('edit', sel) |
|
|
|
} |
|
|
|
const onSave = (dataFrom:{name:string,id:number}, type:string) => { |
|
|
|
if(type == 'add'){ |
|
|
@ -81,12 +113,12 @@ |
|
|
|
} |
|
|
|
|
|
|
|
const onDel = ()=>{ |
|
|
|
let list = matrixList.value.filter((item:MatrixItem) => !!item.isSelected) |
|
|
|
if(list.length !== 1){ |
|
|
|
ElMessage.error("请选择一条数据") |
|
|
|
const selectRows = matrixTableRef.value.getSelectionRows() |
|
|
|
if(selectRows.length !== 1){ |
|
|
|
ElMessage.error('请选择一条数据进行编辑') |
|
|
|
return; |
|
|
|
} |
|
|
|
let item = list[0] |
|
|
|
const item = selectRows[0] |
|
|
|
const ids = item.id; |
|
|
|
ElMessageBox.confirm('确认删除此条数据吗?','提示',{ |
|
|
|
confirmButtonText: '确认', |
|
|
@ -121,6 +153,9 @@ |
|
|
|
background: linear-gradient(90deg, #0657c0 24%, #096ae0 101%);; |
|
|
|
} |
|
|
|
|
|
|
|
.matrix_main{ |
|
|
|
height:80vh; |
|
|
|
} |
|
|
|
.matrix_list{ |
|
|
|
display: grid; |
|
|
|
grid-template-columns:repeat(6, 1fr); |
|
|
@ -131,4 +166,16 @@ |
|
|
|
line-height: 3rem; |
|
|
|
text-align: center; |
|
|
|
} |
|
|
|
|
|
|
|
.footer{ |
|
|
|
display: flex; |
|
|
|
justify-content: end; |
|
|
|
position: relative; |
|
|
|
|
|
|
|
.pagination{ |
|
|
|
position: absolute; |
|
|
|
bottom: 0; |
|
|
|
right: 3rem; |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |