Commit a80e27c9 authored by dll's avatar dll

完成登录页、首页、导航栏配置

parent 6867b551
......@@ -22,7 +22,7 @@
"js-cookie": "2.2.1",
"jsencrypt": "3.0.0-rc.1",
"json-bigint": "^0.3.0",
"jwt-decode": "^3.1.2",
"jwt-decode": "3.1.2",
"moment": "^2.29.4",
"muse-ui": "^3.0.2",
"nprogress": "^0.2.0",
......@@ -105,7 +105,7 @@ ins,a {
.flex-align-center{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;}
.flex-pack-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}
.flex-pack-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;}
.flex_warp{flex-wrap: wrap;}
.clearfix{
&:after{
content: '';
......
......@@ -62,6 +62,8 @@ export default {
treeProps: {
id: "id",
label: "label",
areaCode:"areaCode",
type: "type",
isLeaf: "isLeaf",
children: "children",
icon: "icon",
......
......@@ -25,13 +25,18 @@ const instance = axios.create({
instance.interceptors.request.use(config => {
// 获取当前页面的主机名和端口号
const hostname = location.hostname;
// const hostname = location.hostname;
const baseURL =config.baseURL;
//const port = location.port;
const port =process.env.VUE_APP_PORTAL_PORT=='undefined'?'11072':process.env.VUE_APP_PORTAL_PORT;
// const port =process.env.VUE_APP_PORTAL_PORT=='undefined'?'11072':process.env.VUE_APP_PORTAL_PORT;
// 动态修改请求地址
// 测试用
//http://192.168.0.98:11039/
const hostname = '192.168.0.98'
const port = '11039'
// 动态修改请求地址
console.log(hostname,baseURL,port)
if (config.url.startsWith('/')) {
// 字符串以 / 开头
config.url = `http://${hostname}:${port}${baseURL}${config.url}`;
......
......@@ -16,27 +16,24 @@
<!-- 一级菜单 -->
<ul class="menu-list flex">
<li v-for='item in menu' :key='item.id'>
<router-link :to="item.path" :active='submenu.path === item.path' :title="item.name">
<!-- :active='submenu.path === item.path' -->
<router-link :to="item.path" :title="item.name" replace>
<i :class="'el-icon-'+item.icon"></i>
{{item.name}}
</router-link>
</li>
</ul>
</div>
<div class="layout-profile">
<!-- <span class="el-dropdown-link">
{{userData.currUserName}}
<i class="el-icon-arrow-down el-icon--right"></i>
</span> -->
<!--
<i class="el-icon-s-home" style="font-size: 15px;margin-right: 10px" > 返回门户</i>
-->
<div class="controllBar">
<i class="el-icon-bell" style="font-size: 15px;margin-right: 10px" > 消息</i>
</div>
<div class="controllBar" @click="returnHome">
<i class="el-icon-s-home" style="font-size: 15px;margin-right: 10px" > 首页</i>
</div>
<!--
<el-link class="el-icon-s-home" style="font-size: 15px;margin-right: 10px" @click="returnHome" > 返回门户</el-link>
-->
<div class="layout-profile">
<el-dropdown @command="handleCommand">
<span class="el-dropdown-link" style="color:white">
......@@ -63,7 +60,7 @@
</ul>
<!-- 二级菜单 -->
<div class="layout-submenu-wrapper flex" v-if='submenu.children && submenu.children.length'>
<!-- <div class="layout-submenu-wrapper flex" v-if='submenu.children && submenu.children.length'>
<div class="layout-submenu">
<ul class="submenu-list flex">
<li v-for='item in submenu.children' :key='item.id'>
......@@ -72,7 +69,7 @@
</li>
</ul>
</div>
</div>
</div> -->
</div>
</template>
......@@ -81,7 +78,7 @@ export default {
name: "Header",
methods: {
returnHome(){
window.close();
this.$router.replace({path:'/'})
},
handleCommand(key) {
if(key === 'update'){
......@@ -138,7 +135,7 @@ export default {
// this.getsocketData = getsocketData;
// // 注册监听事件
// window.addEventListener("onmessageWS", getsocketData,false);
// console.log(this.menu,'菜单数据')
},
computed: {
group() {
......@@ -162,26 +159,30 @@ export default {
return this.userData.flat
},
menu() {
if(!this.userData.barList) return [];
return this.userData.barList.map(item=>{
const url = item.url ? item.url : (item.childList[0] ? (item.childList[0].url || '') : '');
return {
name: item.name,
path: url,
id: item.id,
icon: item.imgPath,
children: item.childList.map(sub=>{
return {
name: sub.name,
path: sub.url ? sub.url : (sub.childList[0] ? (sub.childList[0].url || 0) : ''),
id: sub.id,
parentId: sub.parentId,
icon: sub.imgPath,
isOut: /^https?\:\/\//.test(sub.url)
}
})
}
})
if(!this.headBar.children) {
return []
}else{
return this.headBar.children
}
// return this.userData.children.map(item=>{
// const url = item.path ? item.url : (item.childList[0] ? (item.childList[0].url || '') : '');
// return {
// name: item.name,
// path: url,
// id: item.id,
// icon: item.imgPath,
// children: item.childList.map(sub=>{
// return {
// name: sub.name,
// path: sub.url ? sub.url : (sub.childList[0] ? (sub.childList[0].url || 0) : ''),
// id: sub.id,
// parentId: sub.parentId,
// icon: sub.imgPath,
// isOut: /^https?\:\/\//.test(sub.url)
// }
// })
// }
// })
},
submenu() {
if(!this.menu.length) return {};
......@@ -197,14 +198,22 @@ export default {
})
return matchMenu
},
userData() {
return this.$store.state.userData;
}
// 二级菜单数据
headBar() {
return this.$store.state.headBar;
},
userData(){
return this.$store.state.userData
},
},
data() {
return {
showMobileMenu: false,
}
},
created(){
console.log(this.userData,'用户数据')
console.log(this.menu,'导航栏数据')
}
}
</script>
......@@ -213,9 +222,9 @@ export default {
.layout-header{
.mobile-menu-list{display: none}
.layout-menu-wrapper{
height: 50px;
line-height: 50px;
font-size: 14px;
height: 72px;
line-height: 72px;
font-size: 16px;
color: #eee;
background: #1848c8;
.layout-logo{
......@@ -253,7 +262,18 @@ export default {
padding-right: 30px;
}
}
.controllBar{
background-color: rgba(170, 170, 170, 0.4);
width: 120px;
height: 44px;
line-height: 44px;
margin-top: 34px;
transform: translateY(-50%);
text-align: center;
border-radius: 5px;
margin-right: 15px;
cursor: pointer;
}
.layout-submenu-wrapper{
padding-left: 20px;
background: #fff;
......
......@@ -5,11 +5,16 @@ import { normalCallPost } from './assets/utils';
Vue.use(Vuex)
let userData = {};
let currentParentName = ''
let headBar = []
try {
userData = JSON.parse(window.sessionStorage.userData || '{}');
currentParentName = window.sessionStorage.currentParentName || ''
headBar = JSON.parse(window.sessionStorage.headBar || '{}')
} catch (error) {
console.log('未从session中获取到userData')
console.log('未从session中获取到currentParentName')
}
function convertTreeToList(root, array) {
......@@ -46,9 +51,12 @@ export default new Vuex.Store({
state: {
isLogin: false,
isMobile: !isPc(),
userData,
userData,//用户数据
group: '',
headBar,
currentParentName//当前选择菜单
},
// 同步存储数据
mutations: {
setUserData(state, data) {
data.flat = convertTreeToList(data.barList, []);
......@@ -57,6 +65,10 @@ export default new Vuex.Store({
window.sessionStorage.userData = JSON.stringify(data);
window.sessionStorage.token = data.token;
},
setHeadBar(state,data){
state.headBar = data
window.sessionStorage.headBar = JSON.stringify(data)
},
logout(state) {
state.userData = {};
state.isLogin = false;
......@@ -66,7 +78,12 @@ export default new Vuex.Store({
setGroup(state, data) {
state.group = data;
},
setCurrentParentName(state,data){
state.currentParentName = data
window.sessionStorage.currentParentName = data
}
},
// 异步任务
actions: {
login({commit}) {
normalCallPost('/login/index').then(({data})=>{
......@@ -79,6 +96,6 @@ export default new Vuex.Store({
normalCallPost('/login/logout').then(data=>{}).catch(error=>{}).then(()=>{
commit('logout')
})
},
}
}
})
<template>
<div class="page page-home" style="min-height: 100vh;">
欢迎你,{{userData}}
<div class="page page-home">
<!-- 欢迎你,{{userData}} -->
<el-row type="flex" align="top" justify="space-between" :gutter="40">
<el-col :span="6">
<el-card>
<div class="data_left">
<div class="title">今日数据洞察</div>
<div class="cell1">
<div class="title">人事数据</div>
<div class="datas flex flex-align-center flex-pack-justify flex_warp">
<div class="item">
<div>总人数</div>
<div>999</div>
</div>
<div class="item">
<div>部门人数</div>
<div>20</div>
</div>
</div>
</div>
<div class="cell1">
<div class="title">考勤数据</div>
<div class="datas flex flex-align-center flex-pack-justify flex_warp">
<div class="item">
<div>打卡人数</div>
<div>999</div>
</div>
<div class="item">
<div>出勤率</div>
<div>20</div>
</div>
<div class="item">
<div>请假人数</div>
<div>20</div>
</div>
</div>
</div>
</div>
</el-card>
</el-col>
<el-col :span="18">
<el-card class="right_card">
<div class="data_right">
<div class="title">科学化、精细化、以人为本知行合一的管理理念</div>
<div class="textWord">
坚持政治性与人民性的根本遵循、制度化与规范化的根本依托、考人与考事的相互结合<br>
创新性与技术性的重要支撑以及效能性与发展性的不懈追求
</div>
<div class="selectBars flex flex-align-center flex-pack-justify flex_warp">
<div class="Bar_item" v-for="(item,index) in barList" :key="index" @click="tabChildren(item.barName)">
<div class="icon">
<img :src="item.icon">
</div>
<div class="barnam">{{item.barName}}</div>
<div class="des" v-html="item.desc"></div>
</div>
</div>
</div>
</el-card>
</el-col>
</el-row>
</div>
</template>
......@@ -8,8 +68,174 @@
export default {
computed: {
userData() {
return this.$store.state.userData.currUserName;
return this.$store.state.userData;
},
menu() {
if(!this.userData.barList) return []
return this.userData.barList.map(item=>{
const url = item.url ? item.url : (item.childList[0] ? (item.childList[0].url || '') : '');
return {
name: item.name,
path: url,
id: item.id,
icon: item.imgPath,
children: item.childList.map(sub=>{
return {
name: sub.name,
path: sub.url ? sub.url : (sub.childList[0] ? (sub.childList[0].url || 0) : ''),
id: sub.id,
parentId: sub.parentId,
icon: sub.imgPath,
isOut: /^https?\:\/\//.test(sub.url)
}
})
}
})
}
},
data(){
return{
barList:[
{
icon:require('@/assets/images/u148.png'),
barName:'智能人事',
desc:'提供包括组织管理、职位管理、人事管理、人事<br>统计报表等相关功能',
navList:[]
},
{
icon:require('@/assets/images/u153.png'),
barName:'考勤打卡',
desc:'提供包括组织管理、职位管理、人事管理、人事<br>统计报表等相关功能',
navList:[]
},
};
{
icon:require('@/assets/images/u158.png'),
barName:'绩效管理',
desc:'根据部门/个人承担的目标和任务完成情况以及工作<br>评价结果、加减分纪实现考核结果自动生成。',
navList:[]
},
{
icon:require('@/assets/images/u167.png'),
barName:'OA审批',
desc:'无纸化审批流程,轻松完成打卡请假、移动审批等<br>操作,审批资料查找方便',
navList:[]
},
{
icon:require('@/assets/images/u172.png'),
barName:'数据分析',
desc:'完整团队经营状态的数字化,人财物事数据分析<br>展示,为管理提供智能决策依据',
navList:[]
},
{
icon:require('@/assets/images/u177.png'),
barName:'系统设置',
desc:'提供包括RBAC用户-角色-权限管理、版本管理、<br>操作及登录日志管理等功能',
navList:[]
}
]
}
},
created(){
this.$store.commit('setHeadBar',[])
this.$store.commit("setCurrentParentName",'')
},
methods:{
tabChildren(name){
this.$store.commit("setCurrentParentName",name)//存储选择路由
let result = this.menu.find(item => item.name === name)
this.$store.commit('setHeadBar',result)
// 路由跳转
if(result.children.length>0){
this.$router.push({path:result.children[0].path})
}else{
this.$message.error('暂未完成添加');
}
}
}
}
</script>
<style scoped lang="less">
.page-home{
width: 100%;
height: 100vh;
box-sizing: border-box;
padding: 2% 5%;
background-color: #f3f2f2;
.data_left{
.cell1{
font-size: 16px;
.title{
color: #409EFF;
margin-bottom: 20px;
}
.item{
text-align: left;
width: 50%;
margin-bottom: 20px;
}
.item div:first-child{
color: gray;
margin-bottom: 20px;
}
border-bottom: 1px solid rgb(245, 245, 245);
padding: 10px 0;
}
.cell1:last-child{
border:none
}
}
// 数据标题
.data_left>.title,.data_right>.title{
text-align: center;
font-size: 22px;
font-weight: bold;
}
.right_card{
background-image: url('~@/assets/images/u162.svg');
background-repeat: no-repeat;
background-size: 100% auto;
background-position: bottom;
}
// 导航栏
.data_right{
.textWord{
text-align: center;
margin-top: 30px;
font-size: 16px;
line-height: 1.5em;
}
}
.selectBars{
padding: 0 20px;
}
.Bar_item{
width: 30%;
margin-top: 50px;
border-radius: 10px;
padding: 20px 0;
text-align: center;
background: linear-gradient(90deg, rgba(187, 193, 255,0.3), rgb(235, 235, 235));
cursor: pointer;
.icon img{
width: 40px;
height: 40px;
}
.barnam{
font-size: 18px;
margin-top: 10px;
}
.des{
font-size: 14px;
color: #666;
margin-top: 15px;
}
}
}
::v-deep .el-row,::v-deep .el-col{
height: 100%;
}
::v-deep .el-card{
height: 100%;
}
</style>
\ No newline at end of file
......@@ -3,81 +3,26 @@
<template>
<div class="page page-login flex flex-v">
<div class="form-wrap flex flex-1">
<el-form @submit.prevent='onSubmit' ref="form" :model="form" label-width="80px" size="small">
<h1>考勤绩效管理平台</h1>
<el-form-item label="用户名">
<el-input v-model="form.loginName"></el-input>
<el-form @submit.prevent='onSubmit' ref="form" :model="form" label-width="0px" size="small">
<h1>智慧政务绩效管理系统</h1>
<div class="des">数据驱动绩效改善,强化从指标到目标全过程管理</div>
<el-form-item label="">
<el-input v-model="form.loginName" placeholder="请输入用户名" class="input"></el-input>
</el-form-item>
<el-form-item label="密码">
<el-input v-model="form.password" type='password'></el-input>
<el-form-item label="">
<el-input v-model="form.password" type='password' placeholder="请输入密码" class="input"></el-input>
</el-form-item>
<el-form-item size="large">
<el-button type="primary" native-type='submit' :loading='loading' @click='onSubmit'>登录</el-button>
</el-form-item>
<div class="tips">温馨提示:请使用谷歌或火狐等非ie内核浏览器,观看效果更佳</div>
</el-form>
</div>
<div class="footer">
登陆 &copy; <a href="">信宏翔网络科技有限公司</a> 出品
</div>
<!-- <Map ref="map1" :markersData="originData" @choose="getDetailData" /> -->
<!-- <el-card :body-style="{ padding: '5px' }" style="width: 300px">
<el-row type="flex" class="row-bg" justify="space-around">
<span style="font-size: 18px"><b>高新区政务服务中心</b></span>
<el-button type="text" size="mini" class="button">查看详情</el-button>
</el-row>
<el-divider></el-divider>
<el-row type="flex" justify="space-around">
<el-col :span="4">
<span style="font-size: 13px"><b>100</b></span
><br />
<span style="font-size: 12px">设备总数</span>
</el-col>
<el-col :span="4">
<span style="font-size: 13px"><b>100</b></span
><br />
<span style="font-size: 12px">在线</span>
</el-col>
<el-col :span="4">
<span style="font-size: 13px"><b>100</b></span
><br />
<span style="font-size: 12px">离线</span>
</el-col>
<el-col :span="4">
<span style="font-size: 13px"><b>100</b></span
><br />
<span style="font-size: 12px">停用</span>
</el-col>
<el-col :span="4">
<span style="font-size: 13px"><b>100</b></span
><br />
<span style="font-size: 12px">待激活</span>
</el-col>
</el-row>
<el-divider></el-divider>
<el-descriptions :column="1" size="small">
<el-descriptions-item label="站点编码"
>kooriookami</el-descriptions-item
>
<el-descriptions-item label="站点地址"
>18100000000</el-descriptions-item
>
<el-descriptions-item
label="联系人"
:labelStyle="{ 'text-align': 'right', width: '50px' }"
>苏州市</el-descriptions-item
>
<el-descriptions-item label="联系电话">
<el-tag size="small">学校</el-tag>
</el-descriptions-item>
<el-descriptions-item label="创建时间"
>江苏省苏州市吴中区吴中大道 1188 号</el-descriptions-item
>
</el-descriptions>
</el-card> -->
</div>
</template>
......@@ -86,20 +31,7 @@ import { createSocket } from "@/assets/utils/websocket";
export default {
name: "login",
created() {
// let obj = {};
// obj.lng = 104.21;
// obj.lat = 30.56;
// obj.address = "测试站点";
// obj.siteId = 2;
// this.originData.push(obj);
// this.$nextTick(() => {
// this.$refs.map1.refresh(this.originData);
// });
// window.location.href=process.env.VUE_APP_PORTAL_URL=='undefined'?'http://192.168.0.98:11072':process.env.VUE_APP_PORTAL_URL
},
created() {},
methods: {
login() {
this.loading = true;
......@@ -113,7 +45,7 @@ export default {
this.$store.commit("setUserData", data);
this.$router.replace({
path: this.redirect,
});
})
//成功 创建websocket连接 process.env.VUE_WEBSOCKET_BASE_API +
console.log("process", process.env);
......@@ -149,10 +81,10 @@ export default {
form: {
loginName: "",
password: "",
},
};
},
};
}
}
}
}
</script>
<style lang="less">
......@@ -162,29 +94,63 @@ export default {
border-top: 2px solid #e8eaec;
}
.page-login {
background-image: linear-gradient(45deg, #333, #111);
background-size: 40px 40px;
background-image: url('~@/assets/images/login_bg.jpg');
background-repeat: no-repeat;
background-size: cover;
margin: 0;
height: 100%;
overflow: hidden;
text-align: center;
.des,.tips{
font-size: 14px;
white-space: nowrap;
margin-bottom: 20px;
margin-top: 10px;
color: #666;
}
.el-form {
margin: auto;
width: 400px;
padding: 25px 25px 0 0;
background: #fff;
width: 640px;
padding: 60px 20px;
background: rgba(255, 255, 255, 0.9);
border-radius: 15px;
h1 {
text-align: center;
font-size: 20px;
font-size: 30px;
font-weight: 500;
margin-bottom: 20px;
}
button {
margin-top: 10px;
width: 240px;
}
.el-form-item{
margin-bottom: 28px;
}
.el-input-group__append {
padding: 0;
font-size: 0;
}
.el-input{
width: 80%;
}
.el-input__inner{
border-color: #409EFF;
border-radius: 20px;
}
.el-input--small .el-input__inner{
height: 52px;
line-height: 1em;
font-size: 15px;
}
.el-input__inner::placeholder{
color: #409EFF;
}
button{
width: 80%;
border-radius: 20px;
height: 52px;
background: linear-gradient(90deg, rgba(24, 69, 198, 1) 0%, rgba(41, 153, 255, 1) 100%);
}
}
.footer {
height: 80px;
......@@ -197,5 +163,9 @@ export default {
}
}
}
// ::v-deep .el-input{
// width: 80%;
// border-color: #409EFF;
// }
</style>
......@@ -8,7 +8,7 @@
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="员工姓名" prop="name" v-model="form.name" placeholder="请输入员工姓名"/>
<Field label="性别" prop="gender" v-model="form.gender" type="radio" :enumData="dict.gender" placeholder="请选择性别"/>
<Field label="性别" prop="gender" v-model="form.gender" type="select" :enumData="dict.gender" placeholder="请选择性别"/>
<Field label="出生日期" prop="birthday" v-model="form.birthday" type="date" />
<Field label="照片" prop="photoPath" v-model="form.photoPath" type="textarea" placeholder="请输入照片"/>
<Field label="联系电话" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入联系电话"/>
......
<template>
<div class="page">
<el-row :gutter="20">
<el-col :span="6" :xs="12" class="mytree">
<el-card>
<el-scrollbar style="height: 100%">
<el-tree
size="mini"
ref="siteTree"
:data="areaData"
id="el-tree"
node-key="id"
indent="4"
:props="treeProps"
:load="loadNode"
highlight-current
default-expand-all
:expand-on-click-node="false"
:render-content="renderContent"
@node-click="handleNodeClick"
>
</el-tree>
</el-scrollbar>
</el-card>
</el-col>
<el-col :span="18" :xs="12">
<el-card>
<el-row>
<LayoutTable notAdd
notDel :data="tableData" :config="tableConfig">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
</el-row>
</el-card>
</el-col>
</el-row>
<drawer-show ref="drawerform" @ok="getData" />
</div>
......@@ -44,17 +12,13 @@
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
import tree from "@/assets/mixins/tree";
export default {
name: "StaffList",
components: {
drawerShow
},
mixins: [table,tree],
mixins: [table],
created() {
this.$get("/dept/treeselect", {}).then(({ data }) => {
this.areaData = data.result;
});
},
methods: {
/** 重写新增方法 */
......@@ -70,12 +34,6 @@
this.$refs.drawerform.view(row);
},
handleNodeClick(node) {
this.currentNode = node;
this.query = { deptId: node.id };
this.getData();
},
},
data() {
return {
......@@ -142,99 +100,3 @@
}
};
</script>
\ No newline at end of file
<style>
.el-card__body {
padding: 10px;
}
.el-calendar-table .el-calendar-day {
height: 70px;
}
.is-selected {
color: #fa3b19;
}
</style>
<style lang="scss" scoped>
.cardTitle {
font-size: 16px;
color: rgb(20, 134, 248);
list-style-type: none;
border-bottom: 3px solid rgb(20, 134, 248);
padding-bottom: 2px;
}
.mytree ::v-deep {
.el-tree--highlight-current
::v-deep
.el-tree-node.is-checked
> .el-tree-node__content {
background-color: rgb(255, 255, 255);
color: rgb(64, 158, 255);
}
.el-tree--highlight-current
::v-deep
.el-tree-node.is-current
> .el-tree-node__content {
background-color: rgb(255, 255, 255);
color: rgb(64, 158, 255);
}
.el-tree > .el-tree-node:after {
border-top: none;
}
.el-tree-node {
position: relative;
padding-left: 16px;
}
//节点有间隙,隐藏掉展开按钮就好了,如果觉得空隙没事可以删掉
.el-tree-node__expand-icon.is-leaf {
display: none;
}
.el-tree-node__children {
padding-left: 16px;
}
.el-tree-node :last-child:before {
height: 38px;
}
.el-tree > .el-tree-node:before {
border-left: none;
}
.el-tree > .el-tree-node:after {
border-top: none;
}
.el-tree-node:before {
content: "";
left: -4px;
position: absolute;
right: auto;
border-width: 1px;
}
.el-tree-node:after {
content: "";
left: -4px;
position: absolute;
right: auto;
border-width: 1px;
}
.el-tree-node:before {
border-left: 1px dashed #4386c6;
bottom: 0px;
height: 100%;
top: -26px;
width: 1px;
}
.el-tree-node:after {
border-top: 1px dashed #4386c6;
height: 20px;
top: 12px;
width: 24px;
}
}
</style>
......@@ -113,11 +113,6 @@ export default {
// toView(row) {
// this.$refs.dialogform.view(row);
// },
handAdd(row) {
this.$refs.dialogform.add(row);
},
},
data() {
return {
......@@ -207,17 +202,6 @@ export default {
}}
></el-link>
<el-button
size="mini"
type="text"
icon="el-icon-open"
onClick={() => {
this.handAdd(row);
}}
>
新增
</el-button>
<table-buttons noView row={row} onEdit={this.toEdit} onDel={this.toDel} />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment