yamengxing 2 лет назад
Родитель
Сommit
d7033eed2d

+ 1 - 1
.env.development

@@ -5,7 +5,7 @@ VITE_PORT = 8092
 VITE_PUBLIC_PATH = /
 
 # 是否开启mock
-VITE_USE_MOCK = true
+VITE_USE_MOCK = false
 
 # 网站前缀
 VITE_BASE_URL = /

+ 14 - 0
mock/login/routers.ts

@@ -93,6 +93,20 @@ const list = [
           alwaysShow: false,
         },
       },
+      {
+        path: 'template',
+        name: 'template',
+        component: '/system-config/template/TemplateManager',
+        meta: {
+          title: '模板管理',
+          noCache: false,
+          hidden: false,
+          isFrame: '1',
+          status: '0',
+          isRoot: false,
+          alwaysShow: false,
+        },
+      },
     ],
   },
   {

+ 189 - 0
src/api/template/template.ts

@@ -0,0 +1,189 @@
+import { http } from '@/utils/http/axios';
+
+export interface SceneModule {
+    code: string,
+    createdAt: string,
+    id: number,
+    isDeleted: number,
+    name: string,
+    remark: string,
+    status: number,
+    updatedAt: string,
+}
+
+export interface SceneLabel {
+    code: string,
+    createdAt: string,
+    id: number,
+    isDeleted: number,
+    name: string,
+    remark: string,
+    status: number,
+    updatedAt: string,
+}
+
+export interface WorkshopModule {
+    code: string,
+    createdAt: string,
+    id: number,
+    isDeleted: number,
+    name: string,
+    remark: string,
+    status: number,
+    updatedAt: string,
+}
+
+export interface Records {
+    code: string,
+    createdAt: string,
+    id: number,
+    isDeleted: number,
+    name: string,
+    remark: string,
+    status: number,
+    updatedAt: string,
+}
+
+export interface Response<Records> {
+    pageNumber: number,
+    pageSize: number,
+    records: Records[],
+    totalPage: number,
+    totalRow: number,
+}
+
+
+// 查询所有场景模板
+export function getSceneModuleList(pageNumber: number, pageSize: number) {
+    return http.request<Response<Records>>({
+        url: '/template/findSceneModule',
+        method: 'get',
+        params: { pageNumber: pageNumber, pageSize: pageSize },
+    });
+}
+
+// 根据场景名称查询场景模板
+export function findSceneModuleByName(sceneModuleName: string, pageNumber: number, pageSize: number) {
+    return http.request<Response<Records>>({
+        url: '/template/findSceneModule',
+        method: 'get',
+        params: { pageNumber: pageNumber, pageSize: pageSize, sceneModuleName: sceneModuleName, },
+    });
+}
+
+
+// 查询所有场景标签模板
+export function getSceneLabelList(pageNumber: number, pageSize: number) {
+    return http.request<Response<Records>>({
+        url: '/template/findSceneLabel',
+        method: 'get',
+        params: { pageNumber: pageNumber, pageSize: pageSize },
+    });
+}
+
+// 根据场景标签名称查询场景标签模板
+export function findSceneLabelByName(sceneLabelName: string, pageNumber: number, pageSize: number) {
+    return http.request<Response<Records>>({
+        url: '/template/findSceneLabel',
+        method: 'get',
+        params: { sceneLabelName: sceneLabelName, pageNumber: pageNumber, pageSize: pageSize },
+    });
+}
+
+// 查询所有车间模板
+export function getWorkshopModuleList(pageNumber: number, pageSize: number) {
+    return http.request<Response<Records>>({
+        url: '/template/findWorkshopModule',
+        method: 'get',
+        params: { pageNumber: pageNumber, pageSize: pageSize },
+    });
+}
+
+// 根据车间名称查询车间模板
+export function findWorkshopModuleByName(workshopModuleName: string, pageNumber: number, pageSize: number) {
+    return http.request<Response<Records>>({
+        url: '/template/findWorkshopModule',
+        method: 'get',
+        params: { workshopModuleName: workshopModuleName, pageNumber: pageNumber, pageSize: pageSize },
+    });
+}
+
+// 添加场景模板
+export function saveSceneModule(sceneModule: SceneModule) {
+    return http.request({
+        url: '/template/saveSceneModule',
+        method: 'post',
+        params: sceneModule,
+    });
+}
+
+// 添加场景标签模板
+export function saveSceneLabel(sceneLabel: SceneLabel) {
+    return http.request({
+        url: '/template/saveSceneLabel',
+        method: 'post',
+        params: sceneLabel,
+    });
+}
+
+// 添加车间模板
+export function saveWorkshopModule(workshopModule: WorkshopModule) {
+    return http.request({
+        url: '/template/saveWorkshopModule',
+        method: 'post',
+        params: workshopModule,
+    });
+}
+
+// 删除场景模板
+export function deleteSceneModule(sceneModuleId: number) {
+    return http.request({
+        url: `/template/deleteSceneModule?sceneModuleId=${sceneModuleId}`,
+        method: 'delete',
+    });
+}
+
+// 删除场景标签
+export function deleteSceneLabel(sceneLabelId: number) {
+    return http.request({
+        url: `/template/deleteSceneLabel?sceneLabelId=${sceneLabelId}`,
+        method: 'delete',
+
+    });
+}
+
+// 删除车间模板
+export function deleteWorkshopModule(workshopModuleId: number) {
+    return http.request({
+        url: `/template/deleteWorkshopModule?workshopModuleId=${workshopModuleId}`,
+        method: 'delete',
+
+    });
+}
+
+// 编辑场景模板
+export function updateSceneModule(sceneModule: SceneModule) {
+    return http.request({
+        url: '/template/updateSceneModule',
+        method: 'put',
+        params: sceneModule,
+    });
+}
+
+// 编辑场景标签
+export function updateSceneLabel(sceneLabel: SceneLabel) {
+    return http.request({
+        url: '/template/updateSceneLabel',
+        method: 'put',
+        params: sceneLabel,
+    });
+}
+
+// 编辑车间模板
+export function updateWorkshopModule(workshopModule: WorkshopModule) {
+    return http.request({
+        url: '/template/updateWorkshopModule',
+        method: 'put',
+        params: workshopModule,
+    });
+}

+ 188 - 0
src/views/system-config/template/CardCommon.vue

@@ -0,0 +1,188 @@
+<template>
+  <div>
+
+
+    <TitleCommon v-model="cardaddDrawer" :type="currentFormType" :pagesize="props.currentPageSize"
+      :pagenumber="props.currentPage" :drawer="cardaddDrawer" @find-data-by-name="SearchDataByName"
+      @submit-drawer="AddData" @add-form="ClickAddData" @handle-close="CloseDrawer" @clear-data="ClearData">
+    </TitleCommon>
+
+    <div class="table" style="margin-top: 20px;">
+      <el-table style="width: 100%" :data="tableData" highlight-current-row>
+        <el-table-column :label="currentFormType + `名称`" width="250" prop="name" />
+        <el-table-column :label="currentFormType + `代码`" width="200" prop="code" />
+
+        <el-table-column prop="status" label="状态" width="150">
+          <template #default="scope">
+            <el-tag v-if="scope.row.status === 0" type="success">正常</el-tag>
+            <el-tag v-else type="danger">异常</el-tag>
+          </template>
+        </el-table-column>
+
+        <el-table-column label="备注" width="200" prop="remark" />
+        <el-table-column label="创建时间" width="250" prop="createdAt" />
+        <el-table-column label="操作" width="200">
+          <template #default="scoped">
+            <el-button size="small" @click="deleteTableData(scoped.row)">删除</el-button>
+            <el-button size="small" @click="ShowEditDrawer(scoped.row)">编辑</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <el-pagination v-model:currentPage="props.currentPage" v-model:currentPageSize="props.currentPageSize"
+        :page-sizes="[10, 20, 50, 100, 200]" layout="total,sizes,prev,pager,next,jumper" :total="total"
+        @size-change="handeSizeChange" @current-change="handleCurrentPageChange"
+        style="margin-left: 600px; margin-top: 20px" />
+    </div>
+
+    <el-drawer v-model="cardeditDrawer" direction="rtl" :title="currentType" :before-close="handleClose">
+      <DrawerCommonVue :detail="props.drawerFormData" v-if="currentdrawerFormData" @submit-drawer="submitDrawer" />
+    </el-drawer>
+
+  </div>
+</template>
+
+<script setup lang="ts">
+import { onMounted, ref, watch } from 'vue';
+import { ElDrawer, ElMessageBox, } from 'element-plus';
+import DrawerCommonVue, { FormModelCommon } from './DrawerCommon.vue';
+import TitleCommon from './TitleCommon.vue';
+import { Records } from '@/api/template/template';
+
+const currentFormType = ref('场景');
+
+export type CreateType = '添加模板' | '修改模板';
+export interface TableModel {
+  id: number;
+  name: string;
+  code: string;
+  status: number;
+  remark: string;
+  createAt: string;
+}
+
+export interface ModelCommon {
+  drawerFormData: FormModelCommon | null
+}
+
+
+
+const props = defineProps<{ adddrawer: boolean, editdrawer: boolean, total: number, currentPage: number, currentPageSize: number, tableData: Records[], drawerFormData: FormModelCommon }>();
+const currentType = ref<CreateType>('添加模板');
+const currentdrawerFormData = ref<FormModelCommon>({} as FormModelCommon);
+
+
+const emit = defineEmits(['ClearData', 'ClickAddData', 'CloseDrawer', 'ShowEditDrawer', 'AddData', 'SearchDataByName', 'deleteTableData', 'submitDrawer', 'handeSizeChange', 'handleCurrentPageChange', 'GetData'])
+const cardeditDrawer = ref(false);
+const cardaddDrawer = ref(false);
+
+watch(
+  () => props.editdrawer,
+  (newdrawer) => {
+    console.log('cardcommon-editdrawer0', cardeditDrawer.value);
+    cardeditDrawer.value = newdrawer;
+    console.log('cardcommon-editdrawer1', cardeditDrawer.value);
+  },
+  { immediate: true },
+);
+
+watch(
+  () => props.adddrawer,
+  (newdrawer) => {
+    console.log('cardcommon-adddrawer0', cardaddDrawer.value);
+    cardaddDrawer.value = newdrawer;
+    console.log('cardcommon-adddrawer1', cardaddDrawer.value);
+  },
+  { immediate: true },
+);
+
+watch(
+  () => props.drawerFormData,
+  (newdrawerFormData) => {
+    console.log('cardcommon-drawerFormData0', currentdrawerFormData.value);
+    currentdrawerFormData.value = newdrawerFormData;
+    console.log('cardcommon-drawerFormData1', currentdrawerFormData.value);
+  },
+  { immediate: true },
+);
+
+
+
+
+function handeSizeChange(val: number) {
+  emit('handeSizeChange', val)
+}
+function handleCurrentPageChange(val: number) {
+  emit('handleCurrentPageChange', val)
+
+}
+
+function deleteTableData(row: TableModel) {
+
+  emit('deleteTableData', row)
+}
+
+// 编辑数据弹框
+function ShowEditDrawer(row: TableModel) {
+  emit('ShowEditDrawer', row);
+
+}
+
+// 弹框关闭事件
+const handleClose = (done: () => void) => {
+  ElMessageBox.confirm('是否确认关闭?')
+    .then(() => {
+      done();
+      CloseDrawer();
+
+    })
+    .catch(() => {
+      // catch error
+    });
+
+};
+
+
+// 编辑提交数据
+function submitDrawer(data) {
+  emit('submitDrawer', data);
+
+}
+
+
+// 查询数据列表
+function GetData(currentPage: number, currentPageSize: number) {
+  emit('GetData', currentPage, currentPageSize)
+}
+
+// 根据名称找到数据
+function SearchDataByName(data) {
+  emit('SearchDataByName', data)
+}
+
+function ClickAddData() {
+  emit('ClickAddData');
+}
+
+// 添加数据
+function AddData(data) {
+  emit('AddData', data);
+
+
+}
+
+function CloseDrawer() {
+  emit('CloseDrawer');
+}
+
+function ClearData() {
+  emit('ClearData');
+}
+
+onMounted(() => {
+  GetData(props.currentPage, props.currentPageSize);
+
+});
+</script>
+
+<style scoped></style>

+ 117 - 0
src/views/system-config/template/DrawerCommon.vue

@@ -0,0 +1,117 @@
+<template>
+  <div>
+    <el-form ref="ruleDrawerRef" :model="form" label-width="100px">
+      <el-form-item label="模板名称" prop="name" :rules="[
+        {
+          required: true,
+          message: '输入模板名称',
+          trigger: 'blur',
+        },
+      ]">
+        <el-input placeholder="请输入模板名称" v-model="form.name" />
+      </el-form-item>
+
+      <el-form-item label="模板代码" prop="code" :rules="[
+        {
+          required: true,
+          message: '输入模板代码',
+          trigger: 'blur',
+        },
+      ]">
+        <el-input placeholder="请输入模板代码" v-model="form.code" />
+      </el-form-item>
+
+      <el-form-item label="备注" prop="remark">
+        <el-input placeholder="请输入备注" v-model="form.remark" />
+      </el-form-item>
+
+      <el-form-item label="模板上传">
+        <el-upload>
+          <el-button disabled>上传</el-button>
+        </el-upload>
+      </el-form-item>
+
+      <el-form-item label="状态" prop="status">
+        <el-switch v-model="form.status" active-value=1 inactive-value=0 />
+      </el-form-item>
+
+      <div style="margin-top: 100px; margin-left: 250px">
+        <el-button style="margin-left: 50px" @click="resetForm(ruleDrawerRef)">重置</el-button>
+        <el-button style="margin-left: 50px" @click="submitDrawer(ruleDrawerRef)">提交</el-button>
+      </div>
+    </el-form>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { ref, watch } from 'vue';
+import { FormInstance } from 'element-plus';
+import { onMounted } from 'vue';
+
+
+export interface FormModelCommon {
+  id: number;
+  code: string;
+  name: string;
+  status: number;
+  remark: string;
+  // upload: string;
+}
+export type CreateType = 'create' | 'edit';
+const props = defineProps<{ detail: FormModelCommon }>();
+const emit = defineEmits(['submitDrawer']);
+const form = ref<FormModelCommon>({
+  id: props.detail.id,
+  name: props.detail.name,
+  code: props.detail.code,
+  remark: props.detail.remark,
+  status: props.detail.status,
+});
+
+watch(
+  () => props.detail,
+  (newdetail) => {
+    console.log('drawercommon-FormData-detail', props.detail)
+    console.log('drawercommon-FormData0', form.value);
+    form.value = newdetail;
+    console.log('drawercommon-FormData01', form.value);
+  },
+  { immediate: true },
+);
+
+const ruleDrawerRef = ref<FormInstance>();
+
+function resetForm(formE1: FormInstance | undefined) {
+  if (!formE1) return;
+  formE1.resetFields();
+  console.log('resetForm');
+
+}
+
+function submitDrawer(formEl: FormInstance | undefined) {
+  console.log('common-', form, props.detail.code)
+  if (!formEl) return;
+  formEl.validate((valid, fields) => {
+    if (valid) {
+      const drawerData = {
+        id: form.value.id,
+        name: form.value.name,
+        code: form.value.code,
+        remark: form.value.remark,
+        status: form.value.status,
+      };
+      emit('submitDrawer', drawerData);
+
+    } else {
+      console.log('error submit!', fields);
+    }
+  });
+}
+
+onMounted(() => {
+  console.log('drawercommon-form', form);
+  console.log('drawercommon-props', props.detail);
+});
+</script>
+
+<style scoped></style>

+ 169 - 0
src/views/system-config/template/SceneManager.vue

@@ -0,0 +1,169 @@
+<template>
+    <div>
+
+        <CardCommon :adddrawer="adddrawer" :editdrawer="editdrawer" :total="total" :current-page="currentPage"
+            :current-page-size="currentPageSize" :table-data="tableData" :drawer-form-data="drawerFormData"
+            @-search-data-by-name="findSceneModuleFun" @-get-data="getSceneLabelListFun"
+            @hande-size-change="handleSizeChangeFun" @handle-current-page-change="handlePageChangeFun"
+            @delete-table-data="deleteSceneModuleFun" @submit-drawer="updateSceneModuleFun"
+            @show-edit-drawer="ShowEditDrawer" @close-drawer="CloseDrawer" @add-data="saveSceneModuleFun"
+            @click-add-data="ShowAddDrawer" @clear-data="ClearData">
+        </CardCommon>
+
+    </div>
+</template>
+
+<script setup lang="ts">
+import { updateSceneModule, getSceneModuleList, deleteSceneModule, findSceneModuleByName, saveSceneModule, Records } from '@/api/template/template';
+import { FormModelCommon } from './DrawerCommon.vue';
+import { ElMessage, ElMessageBox } from 'element-plus';
+import CardCommon, { TableModel } from './CardCommon.vue'
+import { ref } from 'vue';
+
+
+const adddrawer = ref(false);
+const editdrawer = ref(false);
+const total = ref(100);
+const currentPage = ref(1);
+const currentPageSize = ref(10);
+const tableData = ref<Records[]>([]);
+const drawerFormData = ref<FormModelCommon>({} as FormModelCommon);
+
+// 添加数据
+function saveSceneModuleFun(data) {
+    adddrawer.value = true;
+    saveSceneModule(data).then(res => {
+        console.log(res);
+        adddrawer.value = false;
+        getSceneLabelListFun(currentPage.value, currentPageSize.value);
+    }).catch(error => {
+        ElMessageBox.alert(error, '异常', {
+            confirmButtonText: 'OK',
+            callback: () => {
+                ElMessage({
+                    type: 'info',
+                    message: `添加数据失败`,
+                })
+            },
+        })
+    });
+};
+
+// 根据名称查找-finish
+function findSceneModuleFun(data) {
+    console.log('data', data);
+    findSceneModuleByName(data.name, data.pageNumber, data.pageSize).then((res) => {
+        tableData.value = res.records;
+    }).catch(error => {
+        ElMessageBox.alert(error, '异常', {
+            confirmButtonText: 'OK',
+            callback: () => {
+                ElMessage({
+                    type: 'info',
+                    message: `查询数据失败`,
+                })
+            },
+        })
+    });
+}
+
+// 查找数据列表-finish
+function getSceneLabelListFun(currentPage, currentPageSize) {
+    getSceneModuleList(currentPage, currentPageSize).then((res) => {
+        tableData.value = res.records;
+        total.value = res.totalRow;
+    }).catch(error => {
+        ElMessageBox.alert(error.message, '异常', {
+            confirmButtonText: 'OK',
+            callback: () => {
+                ElMessage({
+                    type: 'info',
+                    message: `查询数据失败`,
+                })
+            },
+        })
+    });
+}
+
+// 删除数据-finish
+function deleteSceneModuleFun(data: TableModel) {
+    console.log('detele', data);
+    deleteSceneModule(data.id).then(res => {
+        console.log(res);
+        getSceneLabelListFun(currentPage.value, currentPageSize.value);
+    }).catch(error => {
+        ElMessageBox.alert(error, '异常', {
+            confirmButtonText: 'OK',
+            callback: () => {
+                ElMessage({
+                    type: 'info',
+                    message: `删除数据失败`,
+                })
+            },
+        })
+    });
+}
+
+// 编辑数据-finish
+function updateSceneModuleFun(data) {
+    console.log('edit', data);
+    updateSceneModule(data).then(res => {
+        console.log(res);
+        editdrawer.value = false;
+        getSceneLabelListFun(currentPage.value, currentPageSize.value);
+    }).catch(error => {
+        ElMessageBox.alert(error, '异常', {
+            confirmButtonText: 'OK',
+            callback: () => {
+                ElMessage({
+                    type: 'info',
+                    message: `编辑数据失败`,
+                })
+            },
+        })
+    });
+}
+
+
+// 翻页-finish
+function handleSizeChangeFun(val: number) {
+    currentPageSize.value = val;
+    console.log('currentPageSize:' + currentPageSize.value);
+    getSceneLabelListFun(currentPage.value, currentPageSize.value);
+}
+
+// 页数-finish
+function handlePageChangeFun(val: number) {
+    currentPage.value = val;
+    console.log('currentPage:' + currentPage.value);
+    getSceneLabelListFun(currentPage.value, currentPageSize.value);
+}
+
+// 打开编辑弹框-finish
+function ShowEditDrawer(row) {
+    editdrawer.value = true;
+    drawerFormData.value = row;
+
+}
+
+// 打开添加弹框
+function ShowAddDrawer() {
+    adddrawer.value = true;
+}
+
+// 关闭弹框-finish
+function CloseDrawer() {
+    adddrawer.value = false;
+    editdrawer.value = false;
+    getSceneLabelListFun(currentPage.value, currentPageSize.value);
+}
+
+// 清空输入框数据
+function ClearData() {
+    getSceneLabelListFun(currentPage.value, currentPageSize.value);
+}
+
+
+</script>
+
+<style scoped></style>

+ 53 - 0
src/views/system-config/template/TemplateManager.vue

@@ -0,0 +1,53 @@
+<template>
+  <div style="width: 100%">
+    <div>
+      <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
+        <el-tab-pane label="场景管理" name="scene">
+          <SceneManagerVue />
+        </el-tab-pane>
+        <el-tab-pane label="场景标签管理" name="label">
+          <!-- <LabelManagerVue /> -->
+        </el-tab-pane>
+        <el-tab-pane label="车间模板" name="workspace">
+          <!-- <WorkspaceManagerVue /> -->
+        </el-tab-pane>
+      </el-tabs>
+    </div>
+
+    <!-- <el-card style="margin-top: 20px">
+      <CardCommon :type="currentLabel" />
+    </el-card> -->
+
+
+  </div>
+</template>
+  
+<script setup lang="ts">
+import { ref } from 'vue';
+import type { TabsPaneContext } from 'element-plus';
+// import LabelManagerVue from './LabelManager.vue';
+// import WorkspaceManagerVue from './WorkspaceManager.vue';
+import SceneManagerVue from './SceneManager.vue';
+
+
+const activeName = ref('scene');
+export type LabelType = 'scene' | 'label' | 'workspace';
+const currentLabel = ref<LabelType>('scene');
+
+const handleClick = (tab: TabsPaneContext) => {
+  console.log(tab.paneName);
+  if (tab.paneName === 'scene') {
+    currentLabel.value = 'scene';
+  } else {
+    if (tab.paneName === 'label') {
+      currentLabel.value = 'label';
+    } else {
+      currentLabel.value = 'workspace';
+
+    }
+  }
+};
+</script>
+  
+<style scoped></style>
+  

+ 99 - 0
src/views/system-config/template/TitleCommon.vue

@@ -0,0 +1,99 @@
+<template>
+    <div>
+        <el-form inline ref="ruleFormRef" :model="form">
+            <el-form-item style="margin-top: 20px;">
+                <el-input style="width: 200px" :placeholder="`请输入` + props.type + `名称`" v-model="form.name" clearable @clear="ClearData"/>
+            </el-form-item>
+            <el-button type="primary" :icon="Search" @click="FindDataByName(ruleFormRef)">查询</el-button>
+            <el-button type="primary" :icon="Files" @click="addForm"> 添加</el-button>
+        </el-form>
+    </div>
+
+
+    <el-drawer v-model="titleDrawer" direction="rtl" :title="currentType" :before-close="handleClose">
+        <DrawerCommonVue :detail="drawerFormData" @submit-drawer="submitDrawer" />
+    </el-drawer>
+</template>
+
+<script setup lang="ts">
+import { Search, Files } from '@element-plus/icons-vue';
+import { onMounted, ref, watch } from 'vue';
+import { ElMessageBox, FormInstance } from 'element-plus';
+import DrawerCommonVue, { FormModelCommon } from './DrawerCommon.vue';
+
+export type CreateType = '添加模板' | '修改模板';
+const props = defineProps<{ type: string, pagesize: number, pagenumber: number, drawer: boolean }>();
+const emit = defineEmits(['FindDataByName', 'submitDrawer', 'handleClose', 'addForm','ClearData'])
+const form = ref({
+    name: '',
+});
+const ruleFormRef = ref<FormInstance>();
+const currentType = ref<CreateType>('添加模板');
+const drawerFormData = ref<FormModelCommon>({} as FormModelCommon);
+
+const titleDrawer = ref(false);
+watch(
+    () => props.drawer,
+    (newdrawer) => {
+        console.log('title-common-drawerFormData.value0', titleDrawer.value);
+        titleDrawer.value = newdrawer;
+        console.log('title-common-drawerFormData.value1', titleDrawer.value);
+    },
+    { immediate: true },
+);
+
+
+// 根据名称找到数据-finish
+function FindDataByName(formEl: FormInstance | undefined) {
+    if (!formEl) return;
+    formEl.validate((valid, fields) => {
+        if (valid) {
+            console.log('submit!' + form.value.name);
+            const data = {
+                name: form.value.name,
+                pageSize: props.pagesize,
+                pageNumber: props.pagenumber,
+            }
+            emit('FindDataByName', data);
+        } else {
+            console.log('error submit!', fields);
+        }
+    });
+}
+
+function addForm() {
+    console.log('title-common-drawer.value', props.drawer);
+    currentType.value = '添加模板';
+    console.log('title-common-drawerFormData.value', drawerFormData.value);
+
+    emit('addForm')
+}
+
+// 添加
+function submitDrawer(data) {
+    emit('submitDrawer', data);
+}
+
+
+const handleClose = (done: () => void) => {
+    ElMessageBox.confirm('是否确认关闭?')
+        .then(() => {
+            done();
+        })
+        .catch(() => {
+            // catch error
+        });
+    emit('handleClose');
+};
+
+function ClearData(){
+    emit('ClearData');
+}
+
+
+onMounted(() => {
+
+});
+</script>
+
+<style scoped></style>