|
|
@@ -12,6 +12,16 @@
|
|
|
@clear-data="clearData"
|
|
|
>
|
|
|
</TitleCommon> -->
|
|
|
+ <el-image-viewer
|
|
|
+ v-if="showViewer"
|
|
|
+ :url-list="urlList"
|
|
|
+ @close="
|
|
|
+ () => {
|
|
|
+ showViewer = false;
|
|
|
+ }
|
|
|
+ "
|
|
|
+ :z-index="99"
|
|
|
+ />
|
|
|
|
|
|
<div class="body">
|
|
|
<el-button type="primary" :icon="Plus" @click="addForm" style="margin-bottom: 16px">
|
|
|
@@ -52,7 +62,7 @@
|
|
|
/>
|
|
|
</template> -->
|
|
|
<template #default="scope">
|
|
|
- <el-button link type="primary" size="small" @click="showEditDrawer(scope.row)"
|
|
|
+ <el-button link type="primary" size="small" @click="showPreview(scope.row)"
|
|
|
><el-tooltip class="box-item" effect="dark" content="预览" placement="top">
|
|
|
<el-icon :size="16">
|
|
|
<View />
|
|
|
@@ -67,7 +77,7 @@
|
|
|
</el-tooltip>
|
|
|
</el-button>
|
|
|
|
|
|
- <el-button link type="primary" size="small" @click="deleteTableData(scope.row)"
|
|
|
+ <el-button link type="primary" size="small" @click="showDeleteDialog(scope.row)"
|
|
|
><el-tooltip class="box-item" effect="dark" content="删除" placement="top">
|
|
|
<el-icon :size="16">
|
|
|
<Delete />
|
|
|
@@ -91,20 +101,29 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <el-drawer
|
|
|
- v-model="cardeditDrawer"
|
|
|
- direction="rtl"
|
|
|
- :title="type === '模板' ? '编辑模板' : '编辑标签'"
|
|
|
- :before-close="handleClose"
|
|
|
- >
|
|
|
- <DrawerCommonVue :type="props.type" :drawer-type="drawerType" :add-item="addData" />
|
|
|
- </el-drawer>
|
|
|
+ <DrawerCommonVue
|
|
|
+ ref="childRef"
|
|
|
+ :type="props.type"
|
|
|
+ :drawer-type="drawerType"
|
|
|
+ :add-item="addData"
|
|
|
+ :edit-item="submitDrawer"
|
|
|
+ />
|
|
|
+ <el-dialog v-model="dialogVisible" title="删除该条模板" width="30%" align-center>
|
|
|
+ <p>删除后,其他功能若关联该结构,也将同步更新。</p>
|
|
|
+ <p>是否确认删除?</p>
|
|
|
+ <template #footer>
|
|
|
+ <span class="dialog-footer">
|
|
|
+ <el-button @click="dialogVisible = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="deleteTableData(currentRow)">确定</el-button>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
import { onMounted, ref } from 'vue';
|
|
|
- import { ElDrawer } from 'element-plus';
|
|
|
+ import { ElImageViewer } from 'element-plus';
|
|
|
import { Plus, EditPen, View, Delete } from '@element-plus/icons-vue';
|
|
|
import DrawerCommonVue, { FormModelCommon } from './DrawerCommon.vue';
|
|
|
import { Records, SceneModule } from '@/api/template/template';
|
|
|
@@ -124,7 +143,16 @@
|
|
|
|
|
|
const addForm = () => {
|
|
|
drawerType.value = 'add';
|
|
|
- cardeditDrawer.value = true;
|
|
|
+ openDrawer(true);
|
|
|
+ setDrawerForm({
|
|
|
+ id: null,
|
|
|
+ code: '',
|
|
|
+ name: '',
|
|
|
+ component: '',
|
|
|
+ remark: '',
|
|
|
+ thumbnail: null,
|
|
|
+ isDisabled: 0,
|
|
|
+ });
|
|
|
};
|
|
|
|
|
|
export type CreateType = '添加模板' | '编辑模板' | '添加标签' | '编辑标签';
|
|
|
@@ -132,9 +160,10 @@
|
|
|
id: number;
|
|
|
name: string;
|
|
|
code: string;
|
|
|
- status: number;
|
|
|
+ isDisabled: number;
|
|
|
remark: string;
|
|
|
createAt: string;
|
|
|
+ previewImage: string;
|
|
|
}
|
|
|
|
|
|
export interface ModelCommon {
|
|
|
@@ -147,9 +176,9 @@
|
|
|
}
|
|
|
|
|
|
// const currentType = ref<CreateType>('编辑模板');
|
|
|
- const currentdrawerFormData = ref<FormModelCommon>({} as FormModelCommon);
|
|
|
- const cardeditDrawer = ref(false);
|
|
|
- const cardaddDrawer = ref(false);
|
|
|
+ // const currentdrawerFormData = ref<FormModelCommon>({} as FormModelCommon);
|
|
|
+ // const cardeditDrawer = ref(false);
|
|
|
+ // const cardaddDrawer = ref(false);
|
|
|
const currentPage = ref(1);
|
|
|
const currentPageSize = ref(10);
|
|
|
const total = ref(100);
|
|
|
@@ -157,34 +186,86 @@
|
|
|
|
|
|
const drawerType = ref('add'); //抽屉的功能是新建还是编辑
|
|
|
|
|
|
+ const childRef = ref<typeof DrawerCommonVue | null>(null);
|
|
|
+
|
|
|
+ const setDrawerForm = (detailsData: FormModelCommon) => {
|
|
|
+ if (childRef.value) {
|
|
|
+ // console.log('调用了子组件函数');
|
|
|
+ childRef.value.setForm(detailsData);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ const openDrawer = (index: boolean) => {
|
|
|
+ if (childRef.value) {
|
|
|
+ // console.log('调用了子组件函数');
|
|
|
+ childRef.value.drawerSwitch(index);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ const fillFileList = (name: string, url: string) => {
|
|
|
+ if (childRef.value) {
|
|
|
+ // console.log('调用了子组件函数');
|
|
|
+ childRef.value.setFileList(name, url);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ const dialogVisible = ref(false);
|
|
|
+ const currentRow = ref<TableModel>({} as TableModel);
|
|
|
+
|
|
|
+ const showDeleteDialog = (row: TableModel) => {
|
|
|
+ dialogVisible.value = true;
|
|
|
+ currentRow.value = row;
|
|
|
+ };
|
|
|
+
|
|
|
// 删除数据-finish
|
|
|
function deleteTableData(row: TableModel) {
|
|
|
// emit('deleteTableData', row);
|
|
|
- props.deleteTableData(row).then((res) => {
|
|
|
- console.log('deleteTableData', res);
|
|
|
+ props.deleteTableData(row).then(() => {
|
|
|
+ dialogVisible.value = false;
|
|
|
getData({ pageNumber: currentPage.value, pageSize: currentPageSize.value });
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ const showViewer = ref(false);
|
|
|
+
|
|
|
+ const urlList = ref<string[]>();
|
|
|
+
|
|
|
+ const showPreview = (row: TableModel) => {
|
|
|
+ urlList.value = [];
|
|
|
+ // console.log('preViewImg=', row.previewImage);
|
|
|
+ urlList.value.push(row.previewImage);
|
|
|
+ showViewer.value = true;
|
|
|
+ };
|
|
|
+
|
|
|
// 编辑数据弹框-finish
|
|
|
function showEditDrawer(row: TableModel) {
|
|
|
- cardeditDrawer.value = true;
|
|
|
- console.log('row', row);
|
|
|
- currentdrawerFormData.value = row;
|
|
|
+ drawerType.value = 'edit';
|
|
|
+ openDrawer(true);
|
|
|
+
|
|
|
+ setDrawerForm({
|
|
|
+ id: row.id,
|
|
|
+ code: row.code,
|
|
|
+ name: row.name,
|
|
|
+ component: '',
|
|
|
+ remark: row.remark,
|
|
|
+ thumbnail: row.previewImage,
|
|
|
+ isDisabled: row.isDisabled,
|
|
|
+ });
|
|
|
+ fillFileList(row.name, row.previewImage);
|
|
|
}
|
|
|
|
|
|
// 弹框关闭事件-finish
|
|
|
- const handleClose = (done: () => void) => {
|
|
|
- done();
|
|
|
- closeDrawer();
|
|
|
- };
|
|
|
+ // const handleClose = (done: () => void) => {
|
|
|
+ // done();
|
|
|
+ // closeDrawer();
|
|
|
+ // };
|
|
|
|
|
|
// 编辑提交数据
|
|
|
function submitDrawer(data: SceneModule) {
|
|
|
- console.log('编辑提交数据:', data);
|
|
|
- props.submitDrawer(data).then((res) => {
|
|
|
- console.log('submitDrawer', res);
|
|
|
- closeDrawer();
|
|
|
+ // console.log('编辑提交数据:', data);
|
|
|
+ props.submitDrawer(data).then(() => {
|
|
|
+ // console.log('submitDrawer', res);
|
|
|
+ openDrawer(false);
|
|
|
getData({ pageNumber: currentPage.value, pageSize: currentPageSize.value });
|
|
|
});
|
|
|
}
|
|
|
@@ -192,7 +273,7 @@
|
|
|
// 查询数据列表-finish
|
|
|
function getData(data: Page) {
|
|
|
props.getData(data).then((res) => {
|
|
|
- console.log('getData', res);
|
|
|
+ // console.log('getData', res);
|
|
|
tableData.value = res.records;
|
|
|
total.value = res.totalRow;
|
|
|
});
|
|
|
@@ -207,15 +288,15 @@
|
|
|
// }
|
|
|
|
|
|
// 单机添加按钮,控制弹框显示-finish
|
|
|
- function clickAddData() {
|
|
|
- cardaddDrawer.value = true;
|
|
|
- }
|
|
|
+ // function clickAddData() {
|
|
|
+ // cardaddDrawer.value = true;
|
|
|
+ // }
|
|
|
|
|
|
// 添加数据-finish
|
|
|
function addData(data: SceneModule) {
|
|
|
props.addData(data).then(() => {
|
|
|
// console.log('addData', res);
|
|
|
- closeDrawer();
|
|
|
+ openDrawer(false);
|
|
|
//如果是创建了新的,则列表回到第一页;如果只是编辑则列表位置不变
|
|
|
currentPage.value = 1;
|
|
|
currentPageSize.value = 10;
|
|
|
@@ -223,17 +304,17 @@
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- function closeDrawer() {
|
|
|
- cardaddDrawer.value = false;
|
|
|
- cardeditDrawer.value = false;
|
|
|
- // getData({ pageNumber: currentPage.value, pageSize: currentPageSize.value });更新数据另外干,不用每次关闭抽屉就拉后端
|
|
|
- }
|
|
|
+ // function closeDrawer() {
|
|
|
+ // cardaddDrawer.value = false;
|
|
|
+ // cardeditDrawer.value = false;
|
|
|
+ // // getData({ pageNumber: currentPage.value, pageSize: currentPageSize.value });更新数据另外干,不用每次关闭抽屉就拉后端
|
|
|
+ // }
|
|
|
|
|
|
// 清空输入框数据-finish
|
|
|
- function clearData() {
|
|
|
- // getSceneLabelList(currentPage.value, currentPageSize.value);
|
|
|
- getData({ pageNumber: currentPage.value, pageSize: currentPageSize.value });
|
|
|
- }
|
|
|
+ // function clearData() {
|
|
|
+ // // getSceneLabelList(currentPage.value, currentPageSize.value);
|
|
|
+ // getData({ pageNumber: currentPage.value, pageSize: currentPageSize.value });
|
|
|
+ // }
|
|
|
|
|
|
// 页数-finish
|
|
|
function handleSizeChangeFun(val: number) {
|