YangJian0701 1 year ago
parent
commit
9e5354da3b

+ 1 - 0
env.d.ts

@@ -0,0 +1 @@
+declare module 'element-plus/dist/locale/zh-cn.mjs'

+ 6 - 1
src/App.vue

@@ -1,8 +1,12 @@
 <template>
-  <router-view />
+  <el-config-provider :locale="zhCn">
+    <router-view />
+  </el-config-provider>
 </template>
 <script lang="ts" setup>
 import * as AOS from "aos";
+import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
+
 AOS.init();
 </script>
 <style lang="scss">
@@ -11,6 +15,7 @@ AOS.init();
 @import url('@/assets/scss/config.scss');
 @import url('@/assets/icons/iconfont.css');
 @import "../node_modules/aos/dist/aos.css";
+
 #app {
   font-family: Avenir, Helvetica, Arial, sans-serif;
   -webkit-font-smoothing: antialiased;

BIN
src/assets/img/1700227167756.jpg


BIN
src/assets/img/1700227576514.jpg


BIN
src/assets/img/1700228167058.jpg


BIN
src/assets/img/1700228181332.jpg


BIN
src/assets/img/1700228207945.jpg


+ 32 - 0
src/components/Carousel.vue

@@ -0,0 +1,32 @@
+<template>
+    <div class="block text-center" m="t-4" style="margin-bottom: 20px;">
+        <el-carousel trigger="click" height="250px">
+            <el-carousel-item v-for="item in 4" :key="item">
+                <h3 class="small justify-center" text="2xl">{{ item }}</h3>
+            </el-carousel-item>
+        </el-carousel>
+    </div>
+</template>
+  
+<style scoped>
+.demonstration {
+    color: var(--el-text-color-secondary);
+}
+
+.el-carousel__item h3 {
+    color: #475669;
+    opacity: 0.75;
+    line-height: 150px;
+    margin: 0;
+    text-align: center;
+}
+
+.el-carousel__item:nth-child(2n) {
+    background-color: #99a9bf;
+}
+
+.el-carousel__item:nth-child(2n + 1) {
+    background-color: #d3dce6;
+}
+</style>
+  

+ 43 - 0
src/components/bg.vue

@@ -0,0 +1,43 @@
+<template>
+    <div class="bg">
+        <div class="bg-tit">
+            <markGreen></markGreen>
+            <el-text style="margin-left: 20px;" tag="b">
+                <slot name="tit">{{props.istitle}}</slot>
+            </el-text>
+        </div>
+        <slot name="bg"></slot>
+    </div>
+</template>
+<script setup lang="ts">
+import markGreen from "@/components/mark-green.vue";
+const props = defineProps({
+  istitle: {
+    type: String,
+    default: () => '',
+  },
+})
+</script>
+
+<style lang="scss">
+.bg {
+    border-radius: var(--el-card-border-radius);
+    background-color: var(--el-card-bg-color);
+    overflow: hidden;
+    color: var(--el-text-color-primary);
+    transition: var(--el-transition-duration);
+    --el-card-border-color: var(--el-border-color-light);
+    --el-card-border-radius: 4px;
+    --el-card-bg-color: var(--el-fill-color-blank);
+    padding: var(--y-padding);
+    margin-bottom: var(--y-margin);
+
+    &-tit {
+        padding: var(--y-padding) 0;
+        border-bottom: 1px solid var(--el-card-border-color);
+        box-sizing: border-box;
+        margin-bottom: var(--y-margin);
+        display: flex;
+        align-items: center;
+    }
+}</style>

+ 38 - 0
src/components/mark-green.vue

@@ -0,0 +1,38 @@
+<template>
+    <div class="mark-green1">
+        <div class="mark-green2">
+            <div class="mark-green3"></div>
+        </div>
+    </div>
+</template>
+  
+<style lang="scss">
+.mark-green1 {
+    width: 30px;
+    height: 30px;
+    border-radius: 50%;
+    background: #d8f2e3;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+}
+
+.mark-green2 {
+    width: 70%;
+    height: 70%;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    border-radius: 50%;
+    background: #b2efcc;
+}
+
+.mark-green3 {
+    width: 50%;
+    height: 50%;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    border-radius: 50%;
+    background: #69d297;
+}</style>

+ 38 - 0
src/components/mark.vue

@@ -0,0 +1,38 @@
+<template>
+    <div class="mark1">
+        <div class="mark2">
+            <div class="mark3"></div>
+        </div>
+    </div>
+</template>
+  
+<style lang="scss">
+.mark1 {
+    width: 30px;
+    height: 30px;
+    border-radius: 50%;
+    background: #fef3ce;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+}
+
+.mark2 {
+    width: 70%;
+    height: 70%;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    border-radius: 50%;
+    background: #ffe1aa;
+}
+
+.mark3 {
+    width: 50%;
+    height: 50%;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    border-radius: 50%;
+    background: #fdc745;
+}</style>

+ 70 - 0
src/components/searchAdd.vue

@@ -0,0 +1,70 @@
+<!--  -->
+<template>
+  <div class="searchAdd">
+    <div class="searchAdd-left">
+      <marks></marks>
+      <el-text class="searchAdd-left-tit">
+        <slot name="searchAdd-tit">{{ props.istitle }}</slot>
+      </el-text>
+      <el-input v-model="data.input" :placeholder="props.isPlaceholder" style="width: 30%;min-width: 100px;" clearable />
+    </div>
+    <div class="searchAdd-right">
+      <el-button type="primary" @click="subClick">{{ props.isButtom }}</el-button>
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts">
+import marks from "@/components/mark.vue";
+import { reactive } from "vue";
+const props = defineProps({
+  isButtom: {
+    type: String,
+    default: () => '',
+  },
+  istitle: {
+    type: String,
+    default: () => '',
+  },
+  isPlaceholder: {
+    type: String,
+    default: () => '',
+  },
+})
+const data = reactive({
+  input: ''
+})
+const emit = defineEmits<{
+  (e: 'event', myvalue: string): void
+}>()
+const subClick = () => {
+  emit('event', data.input)
+}
+</script>
+<style lang="scss">
+.searchAdd {
+  border-radius: var(--el-card-border-radius);
+  background-color: var(--el-card-bg-color);
+  overflow: hidden;
+  color: var(--el-text-color-primary);
+  transition: var(--el-transition-duration);
+  --el-card-border-color: var(--el-border-color-light);
+  --el-card-border-radius: 4px;
+  --el-card-bg-color: var(--el-fill-color-blank);
+  padding: var(--y-padding);
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  margin-bottom: var(--y-margin);
+
+  &-left {
+    display: flex;
+    align-items: center;
+    flex: 1;
+
+    &-tit {
+      padding: 20px;
+    }
+  }
+}
+</style>

+ 1 - 1
src/hooks/useTable.ts

@@ -39,7 +39,7 @@ export const useTable = (
       // 当前页数
       pageNum: 1,
       // 每页显示条数
-      pageSize: 10,
+      pageSize: 5,
       // 总条数
       total: 0,
       RemainingTime: 0,

+ 9 - 0
src/router/module/dynamicRoutes.ts

@@ -23,6 +23,15 @@ export const dynamicRoutes = [{
             title: '用户管理',
         },
     },{
+        path: '/company',
+        name: 'company', 
+        icon: "icon-zhuye1",
+        component: () => import('@/views/company/index.vue'),
+        meta: {
+            roles:false,
+            title: '公司管理',
+        },
+    },{
         path: '/storageInquire',
         name: 'storageInquire', 
         icon: "icon-fenxixiangmuku",

+ 26 - 14
src/utils/index.ts

@@ -54,21 +54,13 @@ class RequestHttp {
 				//   return Promise.reject(data)
 				// }
 				// * 登陆失效(code == 201)
-				if (data.Code === ResultEnum.OVERDUE) {
-					ElNotification.error({
-						title: '登陆失效',
-						message: data.Msg,
-						position: 'bottom-right'
-					})
-					localStorage.clear()
-					router.replace('/')
-					return Promise.reject(data)
-				}
+				
+				showStatus(data)
 				// * 全局错误信息拦截(防止下载文件得时候返回数据流,没有code,直接报错)
-				if (data.Code && data.Code !== ResultEnum.SUCCESS) {
-					ElMessage.error(data.Msg)
-					return Promise.reject(data)
-				}
+				// if (data.Code && data.Code !== ResultEnum.SUCCESS) {
+				// 	ElMessage.error(data.Msg)
+				// 	return Promise.reject(data)
+				// }
 				// * 成功请求(在页面上除非特殊情况,否则不用在页面处理失败逻辑)
 				return data
 			},
@@ -81,6 +73,24 @@ class RequestHttp {
 				return Promise.reject(error)
 			}
 		)
+		function showStatus(params:any) {
+			switch (params.Code) {
+				case 200:
+					break;
+				case ResultEnum.OVERDUE:
+					ElNotification.error({
+						title: '登陆失效',
+						message: params.Msg,
+						position: 'bottom-right'
+					})
+					localStorage.clear()
+					router.replace('/')
+					break;
+				default:
+					ElMessage.error(params.Msg)
+					break;
+			}
+		}
 	}
 	// * 常用请求方法封装
 	get<T>(url: string, params?: object, _object = {}): Promise<ResultData<T>> {
@@ -95,6 +105,8 @@ class RequestHttp {
 	delete<T>(url: string, params?: any, _object = {}): Promise<ResultData<T>> {
 		return this.service.delete(url, { params, ..._object })
 	}
+
+	
 }
 
 export default new RequestHttp(config)

+ 192 - 0
src/views/company/index.vue

@@ -0,0 +1,192 @@
+<!--  -->
+<template>
+    <div class="company">
+        <searchAdd isButtom="添加" istitle="添加一级目录" isPlaceholder="请输入一级目录"  @event="eventFn"/>
+        <bg istitle="公司列表">
+            <template #bg>
+                <el-tree :data="data" :props="defaultProps" accordion draggable>
+                    <template #default="{ node, data }">
+                        <span class="custom-tree-node">
+                            <span>
+                                <el-icon style="margin: 0 6px 0 2px;" size="16">
+                                    <FolderOpened />
+                                </el-icon>
+                                {{ node.label }}
+                            </span>
+                            <span></span>
+                            <div style="padding-right: 20px;display: flex;align-items: center;">
+                                <el-button @click.stop="addFun(node, data)" type="primary">新增子级</el-button>
+                                <el-button @click.stop="editFun(node, data)" style="margin-left: 20px;"
+                                    type="success">编辑</el-button>
+                                <el-button @click.stop="addFun(node, data)" style="margin-left: 20px;"
+                                    type="warning">进入</el-button>
+                                <el-button @click.stop="delFun(node, data)" style="margin-left: 20px;"
+                                    type="danger">删除</el-button>
+                            </div>
+                        </span>
+                    </template>
+                </el-tree>
+            </template>
+        </bg>
+    </div>
+</template>
+  
+<script setup lang="ts">
+import bg from '@/components/bg.vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import searchAdd from "@/components/searchAdd.vue";
+/**
+ * 
+ * @param val 子传值
+ */
+const eventFn = (val:any) => {
+    console.log('/',val);
+}
+/**
+ * 新增字节
+ */
+const addFun = (node: any, data: any) => {
+    ElMessageBox.prompt('请输入正确子目录名称', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        inputPattern: /\S/,
+        inputErrorMessage: '子目录不允许为空',
+        draggable: true,
+        inputValue: data ? data.label : ''
+    }).then(({ value }) => {
+        ElMessage.success(value)
+    }).catch(() => {
+        ElMessage.info('取消新增子目录')
+    })
+}
+/**
+ * 新增字节
+ */
+const editFun = (node: any, data: any) => {
+    ElMessageBox.prompt('请输入正确子目录名称', '提示', {
+        draggable: true,
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        inputPattern: /\S/,
+        inputErrorMessage: '子目录不允许为空',
+        inputValue: data.label
+    }).then(({ value }) => {
+        ElMessage.success(value)
+    }).catch(() => {
+        ElMessage.info('取消新增子目录')
+    })
+}
+/**
+ * 删除
+ */
+const delFun = (node: any, data: any) => {
+    ElMessageBox.confirm('删除目录操作,是否继续执行删除?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        draggable: true,
+        type: 'warning',
+        center: true,
+    }).then(() => {
+        ElMessage.success('删除成功')
+    }).catch(() => {
+        ElMessage.info('取消删除')
+    })
+}
+interface Tree {
+    label: string
+    children?: Tree[]
+}
+const defaultProps = {
+    children: 'children',
+    label: 'label',
+}
+const data: Tree[] = [
+    {
+        label: '公司名称 one 1',
+        children: [
+            {
+                label: '公司名称 two 1-1',
+                children: [
+                    {
+                        label: '公司名称 three 1-1-1',
+                    },
+                ],
+            },
+        ],
+    },
+    {
+        label: '公司名称 one 2',
+        children: [
+            {
+                label: '公司名称 two 2-1',
+                children: [
+                    {
+                        label: '公司名称 three 2-1-1',
+                    },
+                ],
+            },
+            {
+                label: '公司名称 two 2-2',
+                children: [
+                    {
+                        label: '公司名称 three 2-2-1',
+                    },
+                ],
+            },
+        ],
+    },
+    {
+        label: '公司名称 one 3',
+        children: [
+            {
+                label: '公司名称 two 3-1',
+                children: [
+                    {
+                        label: '公司名称 three 3-1-1',
+                    },
+                ],
+            },
+            {
+                label: '公司名称 two 3-2',
+                children: [
+                    {
+                        label: '公司名称 three 3-2-1',
+                    },
+                ],
+            },
+        ],
+    },
+]
+
+</script>
+<style lang="scss">
+.company{
+    user-select: none;
+}
+.el-tree-node__content {
+    height: 50px;
+}
+
+.custom-tree-node {
+    flex: 1;
+    display: flex;
+    align-items: center;
+}
+
+.el-tree-node:focus>.el-tree-node__content {
+    border-radius: 20px 0 20px 0;
+}
+
+.el-tree-node__content:hover {
+    border-radius: 20px 0 20px 0;
+}
+
+.custom-tree-node>span:nth-child(1) {
+    flex: 1;
+    display: block;
+}
+
+.el-tree {
+    width: 100%;
+}
+</style>

+ 5 - 0
src/views/home/index.vue

@@ -1,6 +1,8 @@
 <!--  -->
 <template>
   <div class="home">
+    <Carousel></Carousel>
+    
     <cards>
       <template #card-tit>
         <div style="display: flex;align-items: center;">
@@ -28,6 +30,9 @@ import { reactive, provide, ref } from "vue";
 import echartbar from '@/components/echart/echart-bar.vue'
 import echartbarlR from '@/components/echart/echart-bar-LR.vue'
 import echartline from '@/components/echart/echart-line.vue'
+import Carousel from '@/components/Carousel.vue'
+
+
 
 import cards from '@/components/card.vue'
 import tables from '@/components/table.vue'

+ 1 - 1
src/views/login/index.vue

@@ -46,7 +46,7 @@ const data = reactive({
 })
 onMounted(()=>{
     const info:any = sessionStorage.getItem('infos')
-    if(data.type){
+    if(JSON.parse(info) && JSON.parse(info).type){
         data.form.bzd_username = JSON.parse(info).bzd_username
         data.form.bzd_password = JSON.parse(info).bzd_password
         data.type = JSON.parse(info).type

+ 148 - 0
src/views/personalInfo/card.vue

@@ -0,0 +1,148 @@
+<template>
+  <div class="y-card">
+    <div class="y-card-main">
+      <div class="y-card-main-img">
+        <div class="y-card-main-img-l">
+          <img src="@/assets/img/1700227167756.jpg" style="width:40px;height: 40px;">
+          <el-text class="elText">疫苗名称</el-text>
+        </div>
+        <div class="y-card-main-img-r"><el-button type="primary">添加</el-button></div>
+      </div>
+      <div class="y-card-main-conter">
+        <tables :requestApi="CompanyTree" :columns="columns" :initParam="initParam">
+          <template #right="{ row }">
+            <el-button link type="primary" size="small">编辑</el-button>
+            <el-button link type="danger" size="small">删除</el-button>
+          </template>
+        </tables>
+      </div>
+    </div>
+    <div class="y-card-main">
+      <div class="y-card-main-img">
+        <div class="y-card-main-img-l">
+          <img src="@/assets/img/1700227576514.jpg" style="width:40px;height: 40px;">
+          <el-text class="elText">生产企业</el-text>
+        </div>
+        <div class="y-card-main-img-r"><el-button type="primary">添加</el-button></div>
+      </div>
+      <div class="y-card-main-conter">
+        <tables :requestApi="CompanyTree" :columns="columns" :initParam="initParam">
+          <template #right="{ row }">
+            <el-button link type="primary" size="small">编辑</el-button>
+            <el-button link type="danger" size="small">删除</el-button>
+          </template>
+        </tables>
+      </div>
+    </div>
+
+    <div class="y-card-main">
+      <div class="y-card-main-img">
+        <div class="y-card-main-img-l">
+          <img src="@/assets/img/1700228167058.jpg" style="width:40px;height: 40px;">
+          <el-text class="elText">规格</el-text>
+        </div>
+        <div class="y-card-main-img-r"><el-button type="primary">添加</el-button></div>
+      </div>
+      <div class="y-card-main-conter">
+        <tables :requestApi="CompanyTree" :columns="columns" :initParam="initParam">
+          <template #right="{ row }">
+            <el-button link type="primary" size="small">编辑</el-button>
+            <el-button link type="danger" size="small">删除</el-button>
+          </template>
+        </tables>
+      </div>
+    </div>
+    <div class="y-card-main">
+      <div class="y-card-main-img">
+        <div class="y-card-main-img-l">
+          <img src="@/assets/img/1700228181332.jpg" style="width:40px;height: 40px;">
+          <el-text class="elText">剂型</el-text>
+        </div>
+        <div class="y-card-main-img-r"><el-button type="primary">添加</el-button></div>
+      </div>
+      <div class="y-card-main-conter">
+        <tables :requestApi="CompanyTree" :columns="columns" :initParam="initParam">
+          <template #right="{ row }">
+            <el-button link type="primary" size="small">编辑</el-button>
+            <el-button link type="danger" size="small">删除</el-button>
+          </template>
+        </tables>
+      </div>
+    </div>
+    <div class="y-card-main">
+      <div class="y-card-main-img">
+        <div class="y-card-main-img-l">
+          <img src="@/assets/img/1700228207945.jpg" style="width:40px;height: 40px;">
+          <el-text class="elText">单位</el-text>
+        </div>
+        <div class="y-card-main-img-r"><el-button type="primary">添加</el-button></div>
+      </div>
+      <div class="y-card-main-conter">
+        <tables :requestApi="CompanyTree" :columns="columns" :initParam="initParam">
+          <template #right="{ row }">
+            <el-button link type="primary" size="small">编辑</el-button>
+            <el-button link type="danger" size="small">删除</el-button>
+          </template>
+        </tables>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { CompanyTree } from "@/api/index";
+import type { TabsPaneContext } from 'element-plus'
+import tables from "@/components/table.vue";
+// 渲染表格
+const columns: any = [
+  { type: 'index', label: '编号', width: 80, },
+  { prop: 'T_D_name', label: '名称', width: 200 },
+  { prop: 'operation', label: '操作', fixed: 'right', 'min-width': 200 }
+]
+//请求参数
+const initParam = { T_name: '' }
+const handleClick = (tab: TabsPaneContext, event: Event) => {
+  console.log(tab, event)
+}
+</script>
+<style lang="scss">
+.y-card {
+  display: grid;
+  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
+  grid-gap: 20px;
+  user-select: none;
+
+  &-main {
+    border-radius: var(--el-card-border-radius);
+    background-color: var(--el-card-bg-color);
+    overflow: hidden;
+    color: var(--el-text-color-primary);
+    transition: var(--el-transition-duration);
+    --el-card-border-color: var(--el-border-color-light);
+    --el-card-border-radius: 10px;
+    --el-card-bg-color: var(--el-fill-color-blank);
+
+    &-img {
+      flex-shrink: 0;
+      display: flex;
+      align-items: center;
+      padding: var(--y-padding);
+      border-bottom: 1px solid var(--el-card-border-color);
+
+      &-l {
+        flex: 1;
+        display: flex;
+        align-items: center;
+      }
+
+      .elText {
+        padding-left: 10px;
+      }
+    }
+
+    &-conter {
+      padding: var(--y-padding);
+    }
+  }
+}
+</style>

+ 32 - 11
src/views/personalInfo/index.vue

@@ -1,25 +1,49 @@
 <!--  -->
 <template>
     <div class="personalInfo">
-        <el-tabs v-model="activeName" tab-position="top" class="demo-tabs" @tab-click="handleClick">
-            <el-tab-pane :label="item.label" :name="item.name" v-for="(item,index) in tabData" :key="index">
-                <tables :requestApi="CompanyTree" :columns="columns" :initParam="initParam" v-if="item.name==activeName">
+        <cards>
+            <template #card-tit>
+                <div style="display: flex;align-items: center;">
+                    <p>单位(栋)</p>
+                    <div style="display: flex;align-items: center;margin:0 30px ;">
+                        <div style="width: 15px;height: 15px;border-radius: 50%;background: #2251f7;"></div>
+                        <p style="margin-left: 10px;">楼宇数量</p>
+                    </div>
+                    <div style="display: flex;align-items: center;">
+                        <div style="width: 15px;height: 15px;border-radius: 50%;background: #fd8c38;"></div>
+                        <p style="margin-left: 10px;">写字楼数量</p>
+                    </div>
+                </div>
+            </template>
+            <template #card-subhead>疫苗名称</template>
+            <template #card-content>
+                <tables :requestApi="CompanyTree" :columns="columns" :initParam="initParam">
+                    <template #right="{ row }">
+                        <el-button link type="primary" size="small">编辑</el-button>
+                        <el-button link type="danger" size="small">删除</el-button>
+                    </template>
+                </tables>
+            </template>
+        </cards>
+        <!-- <el-tabs v-model="activeName" tab-position="top" class="demo-tabs" @tab-click="handleClick">
+            <el-tab-pane :label="item.label" :name="item.name" v-for="(item, index) in tabData" :key="index">
+                <tables :requestApi="CompanyTree" :columns="columns" :initParam="initParam" v-if="item.name == activeName">
                     <template #right="{ row }">
                         <el-button link type="primary" size="small">编辑</el-button>
                         <el-button link type="danger" size="small">删除</el-button>
                     </template>
                 </tables>
             </el-tab-pane>
-        </el-tabs>
+        </el-tabs> -->
     </div>
 </template>
 
 <script setup lang="ts">
 import tables from "@/components/table.vue";
-import tableCustom from "@/components/tableCustom.vue";
+import cards from '@/components/card.vue'
 
 import { CompanyTree } from "@/api/index";
-import {ref} from "vue";
+import { ref } from "vue";
 import type { TabsPaneContext } from 'element-plus'
 
 const tabData = [
@@ -39,14 +63,11 @@ const columns: any = [
 //请求参数
 const initParam = { T_name: '' }
 const handleClick = (tab: TabsPaneContext, event: Event) => {
-  console.log(tab, event)
+    console.log(tab, event)
 }
 
 </script>
 <style lang="scss">
 /* @import url(); 引入css类 */
-.personalInfo {
-    background: var(--y-card-background);
-    padding: var(--y-padding);
-}
+.personalInfo {}
 </style>

+ 31 - 7
src/views/user/index.vue

@@ -1,16 +1,40 @@
-<!--  -->
 <template>
   <div class="user">
-    用户管理
+    <searchAdd isButtom="查询" istitle="用户名称" isPlaceholder="请输入用户名称" @event="eventFn" />
+    <bg istitle="公司列表">
+      <template #bg>
+        <tables :requestApi="CompanyTree" :columns="columns" :initParam="initParam">
+          <template #right="{ row }">
+            <el-button type="primary">编辑</el-button>
+            <el-button type="danger">删除</el-button>
+          </template>
+        </tables>
+      </template>
+    </bg>
   </div>
 </template>
 
 <script setup lang="ts">
-import { reactive, provide, ref } from "vue";
-
+import searchAdd from "@/components/searchAdd.vue";
+import { CompanyTree } from "@/api/index";
+import tables from "@/components/table.vue";
+import bg from '@/components/bg.vue'
+// 渲染表格
+const columns: any = [
+  { type: 'index', label: '编号', width: 80, },
+  { prop: 'T_D_name', label: '名称', width: 200 },
+  { prop: 'operation', label: '操作', fixed: 'right', 'min-width': 200 }
+]
+//请求参数
+const initParam = { T_name: '' }
+/**
+ * 
+ * @param val 子传值
+ */
+const eventFn = (val: any) => {
+  console.log('/', val);
+}
 </script>
 <style lang="scss">
-.user {
-  border:1px solid red;
-}
+.user {}
 </style>

+ 1 - 1
tsconfig.json

@@ -34,7 +34,7 @@
     "src/**/*.vue",
     "tests/**/*.ts",
     "tests/**/*.tsx"
-  ],
+, "env.d.ts"  ],
   "exclude": [
     "node_modules"
   ]