'前后端内容修改、样式、中英文'

This commit is contained in:
Fanzink
2023-01-13 16:54:26 +08:00
parent 3265b4a580
commit 5798e5b6e0
56 changed files with 761 additions and 142 deletions

56
src/views/Footerbar.vue Normal file
View File

@@ -0,0 +1,56 @@
<!--
* @Author: your name
* @Date: 2021-01-27 10:07:42
* @LastEditTime: 2023-01-13 16:22:01
* @LastEditors: fzq
* @Description: In User Settings Edit
* @FilePath: \mt-bus-fe\src\layout\components\FooterBar.vue
-->
<template>
<div v-if="this.$route.meta.hiddenSiderbar !== true" :class="[$store.state.sidebarFold == true ? 'footerbar' : 'footerbar2']">
© {{ $t('copyright') }}
</div>
</template>
<script>
export default {
components: {},
computed: {},
watch: {},
methods: {}
}
</script>
<style lang="scss">
.footerbar{
position: fixed;
bottom: 0;
width: 100%;
height: 20px;
// line-height: 50px;
// text-indent: 2em;
// background: #fff;
// z-index: 999;
// box-shadow: 2px -2px 2px rgba($color: #000000, $alpha: .1);
text-align: center;
font-size: 12px;
color: #C7C7C7;
margin: 5px 0;
}
.footerbar2{
position: fixed;
bottom: 0;
width: 100%;
height: 20px;
// line-height: 50px;
// text-indent: 2em;
// background: #fff;
// z-index: 999;
// box-shadow: 2px -2px 2px rgba($color: #000000, $alpha: .1);
left: 50vw;
font-size: 12px;
color: #C7C7C7;
margin: 5px 0;
}
</style>

View File

@@ -1,6 +1,6 @@
<template>
<!-- <main :class="['aui-content', { 'aui-content--tabs': $route.meta.isTab }]"> -->
<main :class="[this.$route.meta.hiddenSiderbar !== true? ['aui-content', { 'aui-content--tabs': $route.meta.isTab }] : 'aui-sidebar.close']">
<main :class="[this.$route.meta.hiddenSiderbar !== true ? ['aui-content', { 'aui-content--tabs': $route.meta.isTab }] : 'aui-sidebar.close']">
<!-- tab展示内容 -->
<template v-if="$route.meta.isTab">
<el-dropdown class="aui-content--tabs-tools">
@@ -11,18 +11,17 @@
<el-dropdown-item @click.native="tabsCloseAllHandle()">{{ $t('contentTabs.closeAll') }}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-tabs v-model="$store.state.contentTabsActiveName" @tab-click="tabSelectedHandle" @tab-remove="tabRemoveHandle">
<el-tabs v-model="$store.state.contentTabsActiveName" @tab-click="tabSelectedHandle" @tab-remove="tabRemoveHandle" ref="tabs">
<el-tab-pane
v-for="item in $store.state.contentTabs"
:key="item.name"
:name="item.name"
:label="item.title"
:closable="item.name !== 'home'"
:class="{ 'is-iframe': tabIsIframe(item.iframeURL) }"
>
<template v-if="item.name === 'home'">
:closable="item.name !== ''"
:class="{ 'is-iframe': tabIsIframe(item.iframeURL) }">
<!-- <template v-if="item.name === 'home'">
<svg slot="label" class="icon-svg aui-content--tabs-icon-nav" aria-hidden="true"><use xlink:href="#icon-home"></use></svg>
</template>
</template> -->
<iframe v-if="tabIsIframe(item.iframeURL)" :src="item.iframeURL" width="100%" height="100%" frameborder="0" scrolling="yes"></iframe>
<keep-alive v-else>
<router-view v-if="item.name === $store.state.contentTabsActiveName" />
@@ -45,6 +44,19 @@ export default {
data() {
return {}
},
mounted() {
this.$nextTick(() => {
// 通过加上ref再删除数组第一个元素来把空元素删除不知道为何会出现这个元素
this.$store.state.contentTabs.splice(0, 1)
// 加个判断防止home页面报$children的错
if (this.$route.meta.hiddenSiderbar !== true) {
this.$refs.tabs.$children[0].$refs.tabs[0].style.display = 'none'
}
// console.log(this.$refs.tabs.$children[0].$refs)
// console.log('11',this.$refs.tabs.$children[0].$refs.tabs[0])
// console.log('22',this.$store.state.contentTabs)
})
},
methods: {
// tabs, 是否通过iframe展示
tabIsIframe(url) {
@@ -52,7 +64,7 @@ export default {
},
// tabs, 选中tab
tabSelectedHandle(tab) {
tab = this.$store.state.contentTabs.filter(item => item.name === tab.name)[0]
tab = this.$store.state.contentTabs.filter((item) => item.name === tab.name)[0]
if (tab) {
this.$router.push({
name: tab.name,
@@ -66,10 +78,11 @@ export default {
if (tabName === 'home') {
return false
}
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => item.name !== tabName)
this.$store.state.contentTabs = this.$store.state.contentTabs.filter((item) => item.name !== tabName)
if (this.$store.state.contentTabs.length <= 0) {
this.$store.state.sidebarMenuActiveName = this.$store.state.contentTabsActiveName = 'home'
return false
// return false
this.$router.push({ name: 'home' })
}
// 当前选中tab被删除
if (tabName === this.$store.state.contentTabsActiveName) {
@@ -83,13 +96,13 @@ export default {
},
// tabs, 关闭其它
tabsCloseOtherHandle() {
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => {
this.$store.state.contentTabs = this.$store.state.contentTabs.filter((item) => {
return item.name === 'home' || item.name === this.$store.state.contentTabsActiveName
})
},
// tabs, 关闭全部
tabsCloseAllHandle() {
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => item.name === 'home')
this.$store.state.contentTabs = this.$store.state.contentTabs.filter((item) => item.name === 'home')
// this.$router.push({ name: 'sys-log-login' })
this.$router.push({ name: 'home' })
}

View File

@@ -10,7 +10,7 @@
<h1 class="aui-navbar__brand" @click="$router.push({ name: 'home' })">
<a class="aui-navbar__brand-lg" href="javascript:;">
<!-- 36px -->
<img src="../assets/img/cnbm.png" style="width: 26px; height: 26px; position: relative; top: -.075em; margin-right: 12px" alt="" />
<img src="../assets/img/cnbm.png" style="width: 26px; height: 26px; position: relative; top: -0.075em; margin-right: 12px" alt="" />
{{ $t('brand.lg') }}
</a>
<!-- <a class="aui-navbar__brand-mini" href="javascript:;">{{ $t('brand.mini') }}</a> -->
@@ -25,15 +25,30 @@
<div
class="aui-navbar__body"
:style="{
backgroundColor: this.$route.meta.hiddenSiderbar !== true ? '#fff' : 'rgb(13,43,104)'
backgroundColor: this.$route.meta.hiddenSiderbar !== true ? '#fff' : 'rgb(13,43,104)',
color: this.$route.meta.hiddenSiderbar !== true ? '#000' : '#fff'
}">
<el-menu class="aui-navbar__menu mr-auto" mode="horizontal">
<el-menu-item v-if="this.$route.meta.hiddenSiderbar !== true" index="1" @click="$store.state.sidebarFold = !$store.state.sidebarFold">
<el-menu-item
v-if="this.$route.meta.hiddenSiderbar !== true"
index="1"
@click="$store.state.sidebarFold = !$store.state.sidebarFold"
:style="{
backgroundColor: this.$route.meta.hiddenSiderbar !== true ? '#fff' : 'rgb(13,43,104)',
color: this.$route.meta.hiddenSiderbar !== true ? '#000' : '#fff'
}">
<svg class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--switch" aria-hidden="true">
<use xlink:href="#icon-outdent"></use>
</svg>
</el-menu-item>
<el-menu-item v-if="this.$route.meta.hiddenSiderbar !== true" index="2" @click="refresh()">
<el-menu-item
v-if="this.$route.meta.hiddenSiderbar !== true"
index="2"
@click="refresh()"
:style="{
backgroundColor: this.$route.meta.hiddenSiderbar !== true ? '#fff' : 'rgb(13,43,104)',
color: this.$route.meta.hiddenSiderbar !== true ? '#000' : '#fff'
}">
<svg class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--refresh" aria-hidden="true">
<use xlink:href="#icon-sync"></use>
</svg>
@@ -50,10 +65,39 @@
<svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true"><use xlink:href="#gitee"></use></svg>
</a>
</el-menu-item> -->
<!-- <el-dropdown :style="showTitle ? 'color: #fff' : '#000'" class="avatar-container right-menu-item hover-effect" trigger="click">
<el-badge :hidden="alarmNum > 0 ? false : true" :value="alarmNum" class="item" style="line-height: 0; margin: 0 10px; vertical-align: -3px" @click.native="handleAlarm">
<svg-icon style="width: 24px; height: 24px" class="item-icon" icon-class="alarm" />
</el-badge>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>暂无数据</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown> -->
<!-- <el-menu-item
:style="{
backgroundColor: this.$route.meta.hiddenSiderbar !== true ? '#fff' : 'rgb(13,43,104)',
color: this.$route.meta.hiddenSiderbar !== true ? '#000' : '#fff'
}">
<svg style="width: 24px; height: 24px; vertical-align: -7px">
<use v-if="this.$route.meta.hiddenSiderbar" xlink:href="#countdown"></use>
<use v-if="!this.$route.meta.hiddenSiderbar" xlink:href="#countdown2"></use>
</svg>
{{ formatTime }}
</el-menu-item> -->
<el-menu-item v-if="this.$route.meta.hiddenSiderbar !== true" @click="toHome">
<svg
style="width: 24px; height: 24px; vertical-align: -7px;backgroundColor: '#fff';color: '#000'">
<use xlink:href="#home"></use>
</svg>
<span style="color: #000">
{{ $t('brand.home') }}
</span>
</el-menu-item>
<el-menu-item
index="3"
:style="{
backgroundColor: this.$route.meta.hiddenSiderbar !== true ? '#fff' : 'rgb(13,43,104)'
backgroundColor: this.$route.meta.hiddenSiderbar !== true ? '#fff' : 'rgb(13,43,104)',
color: this.$route.meta.hiddenSiderbar !== true ? '#fff' : '#000'
}">
<!-- <el-dropdown :style="showTitle ? 'color: #fff' : '#000'" class="hover-effect" trigger="click">
<el-badge :hidden="alarmNum > 0 ? false : true" :value="alarmNum" class="item" style="line-height: 0; margin: 0 10px; vertical-align: -3px" @click.native="handleAlarm">
@@ -64,25 +108,71 @@
</el-dropdown-menu>
</el-dropdown> -->
<el-dropdown placement="bottom" :show-timeout="0" @command="handleCommand">
<span class="el-dropdown-link">
<svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true">
<use xlink:href="#icon-earth"></use>
<span>
<!-- <svg class="icon-svg aui-navbar__icon-menu hover-effect" aria-hidden="true"> -->
<svg
class="icon-svg aui-navbar__icon-menu"
:style="{
backgroundColor: this.$route.meta.hiddenSiderbar !== true ? '#fff' : 'rgb(13,43,104)',
color: this.$route.meta.hiddenSiderbar !== true ? '#000' : '#fff'
}">
<!-- 根据路由2选1隐藏 -->
<use v-if="this.$route.meta.hiddenSiderbar" xlink:href="#language2"></use>
<use v-if="!this.$route.meta.hiddenSiderbar" xlink:href="#language3"></use>
</svg>
<!-- <i class="el-icon-arrow-down el-icon--right"></i> -->
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :disabled="getLang() === 'zh-CN'" command="toCN">中文</el-dropdown-item>
<el-dropdown-item :disabled="getLang() === 'en'" command="toEN">En</el-dropdown-item>
<el-dropdown-item :disabled="getLang() === 'en'" command="toEN">English</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-menu-item>
<el-menu-item
:style="{
backgroundColor: this.$route.meta.hiddenSiderbar !== true ? '#fff' : 'rgb(13,43,104)',
color: this.$route.meta.hiddenSiderbar !== true ? '#000' : '#fff'
}">
<a href="Lodap.zip"
><svg
:style="this.$route.meta.hiddenSiderbar !== true ? 'color: #000' : 'color: #fff'"
style="width: 24px; height: 24px; vertical-align: -7px"
icon-class="download"
>
<use v-if="this.$route.meta.hiddenSiderbar" xlink:href="#download2"></use>
<use v-if="!this.$route.meta.hiddenSiderbar" xlink:href="#download"></use>
</svg>
</a>
</el-menu-item>
<el-menu-item
:style="{
backgroundColor: this.$route.meta.hiddenSiderbar !== true ? '#fff' : 'rgb(13,43,104)',
color: this.$route.meta.hiddenSiderbar !== true ? '#000' : '#fff'
}">
<a href="google.exe">
<!-- <svg-icon style="width: 24px; height: 24px; vertical-align: -7px" icon-class="chrome" /></a> -->
<svg v-if="this.$route.meta.hiddenSiderbar" style="color: #fff; width: 24px; height: 24px; vertical-align: -7px">
<use xlink:href="#chrome2"></use>
</svg>
<svg v-if="!this.$route.meta.hiddenSiderbar" style="width: 24px; height: 24px; vertical-align: -7px">
<use xlink:href="#chrome"></use>
</svg>
</a>
</el-menu-item>
<el-menu-item
index="4"
@click="fullscreenHandle()"
:style="{
backgroundColor: this.$route.meta.hiddenSiderbar !== true ? '#fff' : 'rgb(13,43,104)'
backgroundColor: this.$route.meta.hiddenSiderbar !== true ? '#fff' : 'rgb(13,43,104)',
color: this.$route.meta.hiddenSiderbar !== true ? '#000' : '#fff'
}">
<svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true">
<svg
class="icon-svg aui-navbar__icon-menu"
aria-hidden="true"
:style="{
backgroundColor: this.$route.meta.hiddenSiderbar !== true ? '#fff' : 'rgb(13,43,104)',
color: this.$route.meta.hiddenSiderbar !== true ? '#000' : '#fff'
}">
<use xlink:href="#icon-fullscreen"></use>
</svg>
</el-menu-item>
@@ -90,9 +180,16 @@
index="5"
class="aui-navbar__avatar"
:style="{
backgroundColor: this.$route.meta.hiddenSiderbar !== true ? '#fff' : 'rgb(13,43,104)'
backgroundColor: this.$route.meta.hiddenSiderbar !== true ? '#fff' : 'rgb(13,43,104)',
color: this.$route.meta.hiddenSiderbar !== true ? '#000' : '#fff'
}">
<el-dropdown placement="bottom" :show-timeout="0">
<el-dropdown
placement="bottom"
:show-timeout="0"
:style="{
backgroundColor: this.$route.meta.hiddenSiderbar !== true ? '#fff' : 'rgb(13,43,104)',
color: this.$route.meta.hiddenSiderbar !== true ? '#000' : '#fff'
}">
<span class="el-dropdown-link">
<img src="~@/assets/img/avatar.png" />
<span>{{ $store.state.user.name }}</span>
@@ -116,20 +213,97 @@ import Cookies from 'js-cookie'
import screenfull from 'screenfull'
import UpdatePassword from './main-navbar-update-password'
import { clearLoginInfo } from '@/utils'
import moment from 'moment'
// let logoutInterval = null
// const timeInterval = null
export default {
inject: ['refresh'],
data() {
return {
// logoutTime: 1800000,
updatePasswordVisible: false,
messageTip: false
}
},
computed: {
// formatTime() {
// return moment(this.logoutTime - 28800000).format('HH:mm:ss')
// }
},
watch: {
// logoutTime: function (val) {
// if (val <= 0) {
// this.logout()
// }
// }
// $route: function () {
// this.getAlarm()
// }
},
// mounted() {
// // this.getAlarm()
// logoutInterval = setInterval(() => {
// this.logoutTime -= 1000
// }, 1000)
// addEventListener('click', this.logoutTimeReset)
// addEventListener('keydown', this.logoutTimeReset)
// addEventListener('visibilitychange', this.visibilitychangeListener)
// },
// destroyed() {
// clearInterval(logoutInterval)
// clearInterval(timeInterval)
// removeEventListener('click', this.logoutTimeReset)
// removeEventListener('keydown', this.logoutTimeReset)
// removeEventListener('visibilitychange', this.visibilitychangeListener)
// },
components: {
UpdatePassword
// Hamburger
},
methods: {
// 获取当前语言环境
// winBlur() {
// this.blurTime = new Date()
// clearInterval(logoutInterval)
// },
// // 浏览器获取焦点
// winFocus() {
// if (this.logoutTime - (new Date() - this.blurTime).valueOf() <= 0) {
// this.logout()
// } else {
// this.logoutTime -= (new Date() - this.blurTime).valueOf()
// logoutInterval = setInterval(() => {
// this.logoutTime -= 1000
// }, 1000)
// }
// },
// // 重置退出时间
// logoutTimeReset() {
// this.logoutTime = this.time * 60000
// },
// visibilitychangeListener() {
// if (document.hidden) {
// this.winBlur()
// } else {
// this.winFocus()
// }
// },
// async logout() {
// console.log("sessionStorage.getItem('loginspc')", sessionStorage.getItem('loginspc'))
// if (sessionStorage.getItem('loginspc') === 'login') {
// const spcUrl = `/spc/upms/userinfo/logoutUser?account=${'ZJCadmin'}`
// axios.get(spcUrl).then((res) => {
// if (res.data.code !== 'OK') {
// this.$message.error(this.$t('module.quality.spc.error'))
// }
// sessionStorage.setItem('loginspc', 'logout')
// })
// }
// await this.$store.dispatch('user/logout')
// console.log('`/login?redirect=${this.$route.fullPath}`', `/login?redirect=${this.$route.fullPath}`)
// this.$router.push(`/login?redirect=${this.$route.fullPath}`)
// clearInterval(logoutInterval)
// },
// // 获取当前语言环境
getLang() {
return Cookies.get('language')
},
@@ -167,6 +341,9 @@ export default {
this.$refs.updatePassword.init()
})
},
async toHome() {
this.$router.push('/')
},
// 退出
logoutHandle() {
this.$confirm(this.$t('prompt.info', { handle: this.$t('logout') }), this.$t('prompt.title'), {

View File

@@ -6,11 +6,13 @@
<div :class="[this.$route.meta.hiddenSiderbar !== true? 'aui-content__wrapper':'aui-sidebar.close']">
<main-content v-if="!$store.state.contentIsNeedRefresh" />
</div>
<footerbar />
</template>
</div>
</template>
<script>
import Footerbar from './Footerbar'
import MainNavbar from './main-navbar'
import MainSidebar from './main-sidebar'
import MainContent from './main-content'
@@ -35,7 +37,8 @@ export default {
components: {
MainNavbar,
MainSidebar,
MainContent
MainContent,
Footerbar
},
watch: {
$route: 'routeHandle'
@@ -65,6 +68,7 @@ export default {
if (!route.meta.isTab) {
return false
}
// console.log('tab',this.$store.state.contentTabs);
var tab = this.$store.state.contentTabs.filter(item => item.name === route.name)[0]
if (!tab) {
tab = {

View File

@@ -124,7 +124,7 @@ export default {
// } else {
// this.toRouter(item)
// }
console.log('item',item)
// console.log('item',item)
this.toRouter(item)
},
toRouter(item) {

View File

@@ -1,11 +1,22 @@
<!--
* @Descripttion:
* @version:
* @Author: fzq
* @Date: 2022-11-25 09:51:46
* @LastEditors: fzq
* @LastEditTime: 2023-01-13 09:04:39
-->
<template>
<el-dialog :visible.sync="visible" :title="$t('schedule.log')" :close-on-click-modal="false" :close-on-press-escape="false" width="75%">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
{{ $t('schedule.jobId') }}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.jobId" :placeholder="$t('schedule.jobId')" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="currentChangeHandle(1)">{{ $t('query') }}</el-button>
<el-button class="buttonColor" @click="currentChangeHandle(1)">{{ $t('query') }}</el-button>
</el-form-item>
</el-form>
<el-table
@@ -78,3 +89,20 @@ export default {
}
}
</script>
<style>
.blueTip::before {
display: inline-block;
content: '';
width: 4px;
height: 24px;
background: #0b58ff;
border-radius: 1px;
margin-right: 8px;
margin-top: 4px;
}
.buttonColor {
color: #fff;
background: #0b58ff;
}
</style>

View File

@@ -2,6 +2,9 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-job__schedule">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
{{ $t('schedule.beanName') }}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.beanName" :placeholder="$t('schedule.beanName')" clearable></el-input>
</el-form-item>

View File

@@ -1,6 +1,9 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
{{$t('eq.name')}}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.key" :placeholder="$t('eq.name') + ' / ' + $t('eq.code')" clearable></el-input>
</el-form-item>

View File

@@ -2,12 +2,18 @@
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
<el-select v-model="dataForm.lineId" :placeholder="'产线'" clearable>
{{ $t('pl.name') }}
</el-form-item>
<el-form-item>
<el-select v-model="dataForm.lineId" :placeholder="$t('pl.name')" clearable>
<el-option v-for="line in lineList" :key="line.code" :value="line.id" :label="line.name" />
</el-select>
</el-form-item>
<el-form-item>
<el-select v-model="dataForm.equipmentId" :placeholder="'设备名称'" clearable>
{{ $t('eq.name') }}
</el-form-item>
<el-form-item>
<el-select v-model="dataForm.equipmentId" :placeholder="$t('eq.name')" clearable>
<el-option v-for="eq in eqList" :key="eq.code" :value="eq.id" :label="eq.name" />
</el-select>
</el-form-item>

View File

@@ -3,6 +3,9 @@
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<!-- 工厂 -->
<el-form-item>
{{ $t('factory.title') }}
</el-form-item>
<el-form-item>
<!-- <el-select v-model="dataForm.factoryId" :placeholder="$t('eq.name') + ' / ' + $t('eq.code')" clearable></el-select> -->
<el-select v-model="dataForm.ftId" :placeholder="$t('factory.title')" clearable>
@@ -10,6 +13,9 @@
</el-select>
</el-form-item>
<!-- 产线 -->
<el-form-item>
{{ $t('pl.title') }}
</el-form-item>
<el-form-item>
<el-select v-model="dataForm.productlines" :placeholder="$t('pl.title')" multiple clearable>
<el-option v-for="productLine in productLineList" :key="productLine.id" :value="productLine.id" :label="productLine.name" />
@@ -17,6 +23,9 @@
</el-form-item>
<!-- 时间类型 -->
<!-- 按时间段 -->
<el-form-item>
{{ $t('timetype') }}
</el-form-item>
<el-form-item>
<el-select v-model="timeType" :placeholder="$t('timetype')" clearable>
<el-option value="range" :label="$t('reftimerange')" />
@@ -24,6 +33,9 @@
</el-select>
</el-form-item>
<!-- 日期选择 -->
<el-form-item>
{{ $t('time') }}
</el-form-item>
<el-form-item v-if="timeType === 'date'">
<el-date-picker key="range-picker" v-model="rawTime" type="date" :placeholder="$t('hints.date')" format="yyyy-MM-dd" />
</el-form-item>

View File

@@ -2,11 +2,17 @@
<!-- 设备效率分析 -->
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
{{ $t('prompt.month') }}
</el-form-item>
<!-- 月份 -->
<el-form-item>
<el-date-picker key="month-picker" v-model="rawTime" type="month" :placeholder="$t('prompt.month')" format="yyyy-MM" />
</el-form-item>
<!-- 产线 -->
<el-form-item>
{{ $t('pl.title') }}
</el-form-item>
<el-form-item>
<el-select v-model="dataForm.productlines" :placeholder="$t('pl.title')" multiple clearable>
<el-option v-for="productLine in productLineList" :key="productLine.id" :value="productLine.id" :label="productLine.name" />

View File

@@ -1,6 +1,9 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
{{ $t('eq.groupname') }}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.key" :placeholder="$t('eq.groupname') + ' / ' + $t('eq.groupcode')" clearable></el-input>
</el-form-item>

View File

@@ -1,6 +1,9 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
{{$t('name')}}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.key" :placeholder="$t('name') + ' / ' + $t('code')" clearable></el-input>
</el-form-item>

View File

@@ -1,6 +1,9 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
{{$t('eq.name')}}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.key" :placeholder="$t('eq.name') + ' / ' + $t('eq.code')" clearable></el-input>
</el-form-item>

View File

@@ -4,21 +4,30 @@
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()" class="blueTip" size="small">
<!-- 产线 -->
<el-form-item>
<el-select v-model="dataForm.productlines" :placeholder="'产线'" @change="handleProductLineChange" clearable>
{{ $t('pl.title') }}
</el-form-item>
<el-form-item>
<el-select v-model="dataForm.productlines" :placeholder="$t('pl.title')" @change="handleProductLineChange" clearable>
<el-option v-for="productLine in productLineList" :key="productLine.id" :value="productLine.id"
:label="productLine.name" />
</el-select>
</el-form-item>
<!-- 工序 -->
<el-form-item>
{{ $t('pl.process') }}
</el-form-item>
<el-form-item>
<!-- <el-select v-model="dataForm.factoryId" :placeholder="$t('eq.name') + ' / ' + $t('eq.code')" clearable></el-select> -->
<el-select v-model="dataForm.wsId" :placeholder="'工序'" clearable>
<el-select v-model="dataForm.wsId" :placeholder="$t('pl.process')" clearable>
<el-option v-for="ws in wsList" :key="ws.id" :value="ws.id" :label="ws.name" />
</el-select>
</el-form-item>
<!-- 日期选择 -->
<el-form-item>
<el-date-picker key="date-picker" v-model="rawTime" type="date" :placeholder="'请选择日期'" format="yyyy-MM-dd" />
{{ $t('time') }}
</el-form-item>
<el-form-item>
<el-date-picker key="date-picker" v-model="rawTime" type="date" :placeholder="$t('time')" format="yyyy-MM-dd" />
</el-form-item>
<!-- 按钮 -->
<el-form-item>
@@ -26,24 +35,24 @@
<!-- <el-button v-if="$hasPermission('monitoring:equipmentEffiency:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> -->
</el-form-item>
<el-form-item>
<el-button type="success" @click="addEq()">{{ '添加设备' }}</el-button>
<el-button type="success" @click="addEq()">{{ $t('pl.add') }}</el-button>
</el-form-item>
</el-form>
<div class="time-chart" style="margin-top: 10px;">
<div v-show="equipmentCount > 0" id="time-chart__inner" ref="time-chart__inner" class="time-chart__inner"
style="min-height: 50vh;" :style="{ height: autoHeight + 'px', width: '100%' }" />
<div v-show="equipmentCount === 0">请先查询数据</div>
<div v-show="equipmentCount === 0">{{ $t('pl.queryFirst') }}</div>
<!-- <div v-show="equipmentCount === 0">{{ $t('module.basicData.visual.hints.searchFirst') }}</div> -->
</div>
<el-dialog :visible.sync="dialogVisible" :title="'添加设备'" width="30%">
<el-select v-model="eqId" style="width: 100%" placeholder="请选择设备" clearable>
<el-dialog :visible.sync="dialogVisible" :title="$t('pl.add')" width="30%">
<el-select v-model="eqId" style="width: 100%" :placeholder="$t('pl.choose')" clearable>
<el-option v-for="eq in dialogEqList" :key="eq.id" :label="eq.name" :value="eq.id" />
</el-select>
<div slot="footer">
<el-button @click="dialogVisible = false">{{ '取消' }}</el-button>
<el-button type="primary" @click="dialogConfirm">{{ '确定' }}</el-button>
<el-button @click="dialogVisible = false">{{ $t('pl.cancel') }}</el-button>
<el-button type="primary" @click="dialogConfirm">{{ $t('pl.confirm') }}</el-button>
</div>
</el-dialog>
</div>
@@ -51,7 +60,7 @@
<script>
import * as echarts from 'echarts'
// import i18n from '@/i18n'
import i18n from '@/i18n'
import BaseTable from '@/components/base-table'
import { calcMaxHeight } from '@/utils'
import moment from 'moment'
@@ -91,9 +100,9 @@ class ChartOption {
this.legend = {
data: [
// i18n.t('module.basicData.visual.echartLegends.working'),
'正常',
'停机',
'故障'
i18n.t('normal'),
i18n.t('shutdown'),
i18n.t('malfunction')
],
bottom: '0%',
selectedMode: false,
@@ -108,7 +117,7 @@ class ChartOption {
}
this.title = {
// text: i18n.t('module.basicData.visual.echartTitles.eqStatus'),
text: '设备状态时序图',
text: i18n.t('diagram'),
left: 'center'
}
this.xAxis = {
@@ -142,9 +151,9 @@ class ChartOption {
data: []
}
this.series = [
{ name: /** i18n.t('module.basicData.visual.echartLegends.working') */ '正常', type: 'bar', data: [] },
{ name: '停机', type: 'bar', data: [] },
{ name: '故障', type: 'bar', data: [] },
{ name: /** i18n.t('module.basicData.visual.echartLegends.working') */ i18n.t('normal'), type: 'bar', data: [] },
{ name: i18n.t('shutdown'), type: 'bar', data: [] },
{ name: i18n.t('malfunction'), type: 'bar', data: [] },
{
type: 'custom',
renderItem: renderItem,
@@ -189,7 +198,7 @@ export default {
chart: null,
chartOption: new ChartOption(),
equipments: {},
state: ['正常', '停机', '故障'],
state: [this.$t('normal'),this.$t('shutdown'),this.$t('malfunction')],
colors: ['#4caf50', '#ffb300', '#e53935'],
// queryBuffer: {},
// tableConfigs,
@@ -286,12 +295,12 @@ export default {
}).then(({ data: res }) => {
if (res && res.code === 0) {
this.wsList = res.data.list
/** set default */
if (this.wsList.length) {
this.dataForm.wsId = this.wsList[0].id
} else {
this.dataForm.wsId = null
}
/** select 默认选项set default */
// if (this.wsList.length) {
// this.dataForm.wsId = this.wsList[0].id
// } else {
// this.dataForm.wsId = null
// }
} else {
this.wsList.splice(0)
}
@@ -338,7 +347,7 @@ export default {
value: [index, status.startTime, status.endTime],
itemStyle: {
normal: {
color: status.status === '正常' ? '#4caf50' : status.status === '停机' ? '#ffb300' : status.status === '故障' ? '#e53935' : null
color: status.status === this.$t('normal') ? '#4caf50' : status.status === this.$t('shutdown') ? '#ffb300' : status.status === this.$t('malfunction') ? '#e53935' : null
}
}
})
@@ -460,7 +469,7 @@ export default {
if (this.equipmentCount) {
this.dialogVisible = true
} else {
this.$message.warning('请先查询数据')
this.$message.warning(this.$t('pl.queryFirst'))
}
},
@@ -496,13 +505,13 @@ export default {
} else {
/** handle new equipment */
const newEqStatusList = res.data
console.log('添加设备', res)
// console.log('添加设备', res)
const newEq = this.transformDataToEquipments(newEqStatusList)
this.$set(this.equipments, Object.keys(newEq)[0], newEq[Object.keys(newEq)[0]])
this.chartOption.setYAxis(Object.keys(this.equipments).map(item => this.equipments[item].name))
this.chartOption.setData(this.transformEquipmentsToSeries(this.equipments))
this.$message.success('新设备数据获取成功')
this.$message.success(this.$t('pl.success'))
this.$nextTick(() => {
this.dialogVisible = false
this.renderChart()

View File

@@ -1,6 +1,9 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
{{ $t('eq.type') }}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.key" :placeholder="$t('eq.type')" clearable></el-input>
</el-form-item>

View File

@@ -1,6 +1,9 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
{{ $t('factory.name') }}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.key" :placeholder="$t('factory.name') + ' / ' + $t('factory.code')" clearable></el-input>
</el-form-item>

View File

@@ -2,6 +2,10 @@
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
{{ $t('prod.name') }}
</el-form-item>
<el-form-item>
<!-- {{$t('prod.name')}} -->
<el-input v-model="dataForm.key" :placeholder="$t('prod.name') + ' / ' + $t('prod.code')" clearable></el-input>
</el-form-item>
<el-form-item>
@@ -96,7 +100,7 @@ const addOrUpdateConfigs = {
{
type: 'number',
trigger: 'blur',
transform: val => Number(val),
transform: (val) => Number(val),
message: i18n.t('hints.number')
}
]
@@ -122,7 +126,7 @@ const addOrUpdateConfigs = {
name: 'area',
label: i18n.t('prod.area'),
type: 'number',
rules: [{ type: 'number', transform: val => Number(val), message: i18n.t('hints.number'), trigger: 'blur' }]
rules: [{ type: 'number', transform: (val) => Number(val), message: i18n.t('hints.number'), trigger: 'blur' }]
},
'specifications',
'remark'
@@ -139,7 +143,7 @@ const addOrUpdateConfigs = {
relatedField: 'productId',
tableConfigs: [
{ type: 'index', width: 100, name: i18n.t('index') },
{ prop: 'createTime', name: i18n.t('createTime'), filter: val => (val ? moment(val).format('YYYY-MM-DD hh:mm:ss') : '-') },
{ prop: 'createTime', name: i18n.t('createTime'), filter: (val) => (val ? moment(val).format('YYYY-MM-DD hh:mm:ss') : '-') },
{ prop: 'name', name: i18n.t('attrName'), formField: true, rules: [{ required: true, message: i18n.t('required'), trigger: 'blur' }] },
{ prop: 'code', name: i18n.t('attrValue'), formField: true },
{ prop: 'operations', name: i18n.t('handle'), fixed: 'right', width: 180, subcomponent: TableOperateComponent, options: ['edit', 'delete'] }
@@ -175,7 +179,7 @@ export default {
},
created() {
this.initDictList([UnitDictTypeId, ProductTypeDictTypeId])
this.addOrUpdateConfigs.fields.forEach(item => {
this.addOrUpdateConfigs.fields.forEach((item) => {
if (item.name) {
if (item.name === 'typeDictValue') {
item.options = this.dictList[ProductTypeDictTypeId]
@@ -271,7 +275,7 @@ export default {
var ids = id
? [id]
: // ? [1556817256347828335]
this.dataListSelections.map(item => {
this.dataListSelections.map((item) => {
return item.id
})
this.$confirm(`${i18n.t('prompt.info', { handle: id ? i18n.t('delete').toLowerCase() : i18n.t('deleteBatch').toLowerCase() })}`, i18n.t('prompt.title'), {

View File

@@ -1,6 +1,9 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
{{ $t('pl.name') }}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.key" :placeholder="$t('pl.name')" clearable></el-input>
</el-form-item>

View File

@@ -1,6 +1,9 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" :rules="dataFormRules" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
{{ $t('inspect.det') }}
</el-form-item>
<el-form-item>
<!-- <el-input v-model="dataForm.key" :placeholder="$t('eq.name') + ' / ' + $t('eq.code')" clearable></el-input> -->
<el-input v-model="dataForm.key" :placeholder="$t('inspect.det')" clearable></el-input>
@@ -327,8 +330,8 @@ export default {
}).then(({ data: res }) => {
if (res && res.code === 0) {
this.addOrUpdateConfigs.fields.forEach((item) => {
console.log('item',item)
console.log('res',res)
// console.log('item',item)
// console.log('res',res)
if (item.name === 'inspectionDetContent')
item.options = res.data.list.map((item) => ({ label: item.content, value: item.content, inspectionDetId: item.code }))
// console.log('item',item)

View File

@@ -1,6 +1,9 @@
<template>
<div class="mod-config">
<el-form :inline="true" @keyup.enter.native="getDataList()" class="blueTip" size="small">
<el-form-item>
{{ $t('time')}}
</el-form-item>
<el-form-item>
<!-- type="datetimerange" -->
<el-date-picker
@@ -399,4 +402,8 @@ export default {
background: #fff;
padding: 12px;
}
.buttonColor {
color: #fff;
background: #0b58ff;
}
</style>

View File

@@ -1,6 +1,9 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
{{ $t('inspect.det') }}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.key" :placeholder="$t('inspect.det')" clearable></el-input>
</el-form-item>

View File

@@ -1,11 +1,17 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
{{ $t('pl.title') }}
</el-form-item>
<el-form-item>
<el-select v-model="dataForm.lineId" :placeholder="$t('pl.title')" clearable filterable>
<el-option v-for="pl in plList" :key="pl.value" :value="pl.value" :label="pl.label" />
</el-select>
</el-form-item>
<el-form-item>
{{ $t('inspect.det') }}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.key" :placeholder="$t('inspect.det')" clearable></el-input>
</el-form-item>

View File

@@ -1,6 +1,9 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
{{ $t('inspect.typename') }}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.key" :placeholder="$t('inspect.typename')" clearable></el-input>
</el-form-item>

View File

@@ -1,6 +1,9 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
{{ $t('categoryName') }}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.name" :placeholder="$t('categoryName')" clearable></el-input>
</el-form-item>

View File

@@ -1,6 +1,9 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
{{ $t('report.name') }}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.name" :placeholder="$t('report.name')" clearable></el-input>
</el-form-item>
@@ -77,7 +80,7 @@ const CategoryList = {
render: function(h) {
const childOptions = []
this.injectData.head.options?.forEach(item => {
console.log('item', item.value)
// console.log('item', item.value)
childOptions.push(h('el-option', { props: { label: item.label, value: item.value } }, null))
})
return h('el-select', { props: { value: this.pickedId }, on: { change: this.handleChange } }, childOptions)

View File

@@ -2,6 +2,9 @@
<div class="mod-config">
<!-- 1. class="blueTip" size="small" -->
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
{{ $t('ws.name') }}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.key" :placeholder="$t('ws.name')" clearable></el-input>
</el-form-item>

View File

@@ -1,15 +1,29 @@
<!--
* @Descripttion:
* @version:
* @Author: fzq
* @Date: 2022-11-25 09:51:46
* @LastEditors: fzq
* @LastEditTime: 2023-01-12 16:41:08
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__dict">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()" class="blueTip" size="small">
<el-form-item>
{{$t('dict.dictValue')}}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.dictValue" :placeholder="$t('dict.dictValue')" clearable></el-input>
</el-form-item>
<el-form-item>
{{$t('dict.dictLabel')}}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.dictLabel" :placeholder="$t('dict.dictLabel')" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
<el-button class="buttonColor" @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('sys:dict:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
@@ -95,3 +109,20 @@ export default {
}
}
</script>
<style>
.blueTip::before {
display: inline-block;
content: '';
width: 4px;
height: 24px;
background: #0b58ff;
border-radius: 1px;
margin-right: 8px;
margin-top: 4px;
}
.buttonColor {
color: #fff;
background: #0b58ff;
}
</style>

View File

@@ -2,9 +2,15 @@
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__dict">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()" class="blueTip" size="small">
<el-form-item>
{{ $t('dict.dictName') }}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.dictName" :placeholder="$t('dict.dictName')" clearable></el-input>
</el-form-item>
<el-form-item>
{{ $t('dict.dictType') }}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.dictType" :placeholder="$t('dict.dictType')" clearable></el-input>
</el-form-item>

View File

@@ -4,15 +4,21 @@
* @Author: fzq
* @Date: 2022-11-25 09:51:46
* @LastEditors: fzq
* @LastEditTime: 2023-01-03 11:13:55
* @LastEditTime: 2023-01-13 08:59:37
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__log-login">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()" class="blueTip" size="small">
<el-form-item>
{{ $t('logLogin.creatorName') }}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.creatorName" :placeholder="$t('logLogin.creatorName')" clearable></el-input>
</el-form-item>
<el-form-item>
{{ $t('logLogin.status') }}
</el-form-item>
<el-form-item>
<el-select v-model="dataForm.status" :placeholder="$t('logLogin.status')" clearable>
<el-option :label="$t('logLogin.status0')" :value="0"></el-option>

View File

@@ -4,12 +4,15 @@
* @Author: fzq
* @Date: 2022-11-25 09:51:46
* @LastEditors: fzq
* @LastEditTime: 2023-01-03 11:15:45
* @LastEditTime: 2023-01-13 09:01:16
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__log-operation">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()" class="blueTip" size="small">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()" class="blueTip" size="small">
<el-form-item>
{{ $t('logOperation.status') }}
</el-form-item>
<el-form-item>
<el-select v-model="dataForm.status" :placeholder="$t('logOperation.status')" clearable>
<el-option :label="$t('logOperation.status0')" :value="0"></el-option>
@@ -23,7 +26,7 @@
<el-button type="info" @click="exportHandle()">{{ $t('export') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @sort-change="dataListSortChangeHandle" style="width: 100%;">
<el-table v-loading="dataListLoading" :data="dataList" border @sort-change="dataListSortChangeHandle" style="width: 100%">
<el-table-column prop="creatorName" :label="$t('logOperation.creatorName')" header-align="center" align="center"></el-table-column>
<el-table-column prop="operation" :label="$t('logOperation.operation')" header-align="center" align="center"></el-table-column>
<el-table-column prop="requestUri" :label="$t('logOperation.requestUri')" header-align="center" align="center"></el-table-column>
@@ -34,8 +37,7 @@
header-align="center"
align="center"
width="150"
:show-overflow-tooltip="true"
></el-table-column>
:show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="requestTime" :label="$t('logOperation.requestTime')" sortable="custom" header-align="center" align="center">
<template slot-scope="scope">
{{ `${scope.row.requestTime}ms` }}
@@ -58,8 +60,7 @@
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle"
>
@current-change="pageCurrentChangeHandle">
</el-pagination>
</div>
</el-card>

View File

@@ -4,14 +4,14 @@
* @Author: fzq
* @Date: 2022-11-25 09:51:46
* @LastEditors: fzq
* @LastEditTime: 2023-01-03 11:17:22
* @LastEditTime: 2023-01-13 09:06:03
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__menu">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()" size="small">
<el-form-item>
<el-button class="buttonColor" v-if="$hasPermission('sys:menu:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
<el-button v-if="$hasPermission('sys:menu:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading" :data="dataList" row-key="id" border style="width: 100%;">

View File

@@ -4,12 +4,15 @@
* @Author: fzq
* @Date: 2022-11-25 09:51:46
* @LastEditors: fzq
* @LastEditTime: 2023-01-03 11:19:31
* @LastEditTime: 2023-01-13 09:02:03
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__params">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()" class="blueTip" size="small">
<el-form-item>
{{ $t('params.paramCode') }}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.paramCode" :placeholder="$t('params.paramCode')" clearable></el-input>
</el-form-item>

View File

@@ -4,12 +4,15 @@
* @Author: fzq
* @Date: 2022-11-25 09:51:46
* @LastEditors: fzq
* @LastEditTime: 2023-01-03 11:24:35
* @LastEditTime: 2023-01-13 09:08:04
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__role">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()" class="blueTip" size="small">
<el-form-item>
{{ $t('role.name') }}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.name" :placeholder="$t('role.name')" clearable></el-input>
</el-form-item>

View File

@@ -4,18 +4,27 @@
* @Author: fzq
* @Date: 2022-11-25 09:51:46
* @LastEditors: fzq
* @LastEditTime: 2023-01-03 11:22:15
* @LastEditTime: 2023-01-13 09:06:52
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()" class="blueTip" size="small">
<el-form-item>
{{ $t('user.username') }}
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.username" :placeholder="$t('user.username')" clearable></el-input>
</el-form-item>
<el-form-item>
{{ $t('user.gender') }}
</el-form-item>
<el-form-item>
<ren-select v-model="dataForm.gender" dict-type="gender" :placeholder="$t('user.gender')"></ren-select>
</el-form-item>
<el-form-item>
{{ $t('dept.title') }}
</el-form-item>
<el-form-item>
<ren-dept-tree v-model="dataForm.deptId" :placeholder="$t('dept.title')" :query="true"></ren-dept-tree>
</el-form-item>