Commit e151f0f6 authored by 李苏's avatar 李苏 💬

中广核调整

parent 05a8623e
...@@ -309,6 +309,20 @@ export const powerRoutes = [ ...@@ -309,6 +309,20 @@ export const powerRoutes = [
name: 'fmezbpgl', name: 'fmezbpgl',
path: "fmezbpgl", path: "fmezbpgl",
}, },
{
erpComponent: false,
component: 'fmegl/fmekpigl/index',
hidden: false,
meta: {
"title": "FME-KPI管理",
"icon": "",
"noCache": false,
"link": null,
"mkid": '920050510',
},
name: 'fmekpigl',
path: "fmekpigl",
},
{ {
erpComponent: false, erpComponent: false,
component: 'fmegl/glqwpdj/index', component: 'fmegl/glqwpdj/index',
......
<template>
<DefaultDialog :app='app'>
<div slot="form" style="display: flex;height: 70vh;">
</div>
<div slot="reFooter" class="refooter" >
<span slot="footer" class="dialog-footer" >
<el-button @click="app.showDialog=false">取 消</el-button>
<el-button type="primary" @click="save()">保 存</el-button>
</span>
</div>
</DefaultDialog>
</template>
<script>
export default {
props: {
app: {
type: Object,
default: ()=>{
return {}
}
}
},
async mounted() {
},
data() {
return {
}
},
methods: {
}
}
</script>
<style scoped>
</style>
<!--
* @Description:生成基础baseEdit组件,屏蔽不必要细节
* @Author: lisu lisu@gavelinfo.com
* @Date: 2024-09-19 10:47:46
* @LastEditors: lisu lisu@gavelinfo.com
* @LastEditTime: 2024-10-30 11:02:01
* @FilePath: /zghywpc-vue/src/views/fmegl/fmekpigl/biao/edit.vue
-->
<template>
<!-- prop 穿透赋值 -->
<BaseEdit labelWidth='130px' v-bind="$attrs" :config='editConfig'>
<template #dialog="ctx">
<!-- 嵌入默认页面额外弹框的插槽 ctx.editPage来操作默认页面 -->
</template>
<template #toolbar="ctx">
<!-- 嵌入默认页面从表上方插槽 ctx.editPage来操作默认页面 -->
<!-- <el-button @click="demo(ctx.editPage)" size='mini' type="primary">示例按钮</el-button> -->
<!-- <AuxButton :dynamic='true' :queryParams="{
sbxxTreeId:that.form.sbxxTreeId,
zt:'N'
}" :component='Qxsj' rename='选择缺陷数据' code='dynamic' @save="saveQxsj" /> -->
</template>
</BaseEdit>
</template>
<script>
export default {
data() {
return {
editConfig: {
/* 生成form表单 */
editColItemList: [
{
label: "机组名称",
prop: "jzmc",
span: 12,
type: "RelSelect",
required:true,
typeConfig:{
src:'fme/ufmekpi/init/jz/type'
}
},
{
label: "FME1级别",
prop: "fmeone",
span: 12,
type: "input"
},
{
label: "FME2级别",
prop: "fmetwo",
span: 12,
type: "input"
},
{
label: "FME3级别",
prop: "fmethree",
span: 12,
type: "input"
},
{
label: "FME4级别",
prop: "fmefour",
span: 12,
type: "input"
},
{
label: "kpi",
prop: "kpi",
span: 12,
type: "inputNumber"
},
{
label: "及格kpi",
prop: "jgkpi",
span: 12,
type: "inputNumber"
},
{
label: "优秀kpi",
prop: "yxkpi",
span: 12,
type: "inputNumber"
},
{
label: "m1",
prop: "mone",
span: 12,
type: "input"
},
{
label: "m2",
prop: "mtwo",
span: 12,
type: "input"
},
{
label: "m3",
prop: "mthree",
span: 12,
type: "input"
},
{
label: "年",
prop: "year",
span: 12,
type: "year",
required:true,
},
{
label: "历史遗留",
prop: "lsyl",
span: 12, // 注意这里的span为24,因为虽然未明确说明,但假设bz类型或其他特殊情况的span为24的规则适用于width较大的字段,或根据实际需求调整
type: "inputNumber" // 假设未特殊说明的宽度较大字段默认为input类型,或根据实际业务需求调整
},
{
label: "设备缺陷",
prop: "sbqx",
span: 12,
type: "inputNumber"
},
{
label: "外部引入",
prop: "wbyr",
span: 12,
type: "inputNumber"
},
{
label: "腐蚀老化",
prop: "fslh",
span: 12,
type: "inputNumber"
},
{
label: "未取出异物",
prop: "wqcyw",
span: 12,
type: "inputNumber"
}
],
/* 生成主从表,为空数组默认不展示 */
editTableTitle: [
// {
// title: "序号",
// field: "xh",
// width: 50,
// align: "center"
// },
// {
// title: "点检部位",
// field: "bw",
// width: 180,
// },
// {
// title: "点检项目",
// field: "project",
// width: 160
// },
// {
// title: "点检标准",
// field: "standard",
// width: 140
// },
],
/* 子表名,可选 同editTableTitle一起用*/
detailTable: ''
}
}
},
methods: {
/**
* @description:示例按钮
* @param {*} ctx操作edit实例内容
* @return {*}
* @author: lisu
*/
// demo(ctx){}
}
}
</script>
<style>
</style>
<!--
* @Description: 生成基础basePage组件,屏蔽不必要细节
* @Author: lisu lisu@gavelinfo.com
* @Date: 2024-09-19 10:55:27
* @LastEditors: lisu lisu@gavelinfo.com
* @LastEditTime: 2024-10-30 09:58:21
* @FilePath: /zghywpc-vue/src/views/fmegl/fmekpigl/biao/index.vue
-->
<template>
<BasePage ref="basePage" class="min_full" :config="config">
<template #dialog="ctx">
<!-- 嵌入默认页面额外弹框的插槽 ctx.pagePage来操作默认页面 -->
</template>
<template #toolbar="ctx">
<!-- 嵌入默认页面工具栏的插槽 ctx.pagePage来操作默认页面 -->
<!-- <el-button @click="demo(ctx.basePage)" size='mini' type="primary">示例按钮</el-button> -->
</template>
</BasePage>
</template>
<script>
import Edit from './edit.vue'
export default {
name: 'template',
data() {
let nowYear = new Date().getFullYear()
let lastYearKpi=`${nowYear-1}年kpi`
let yearBeforeLastKpi=`${nowYear-2}年kpi`
return {
config: {
/* 基本配置*/
url: 'fme/ufmekpi',
tableTitle: [{
title: "机组名称",
field: "jzmc",
width: 130
},
{
title: "FME1级别",
field: "fmeone",
width: 130
},
{
title: "FME2级别",
field: "fmetwo",
width: 100
},
{
title: "FME3级别",
field: "fmethree",
width: 100
},
{
title: "FME4级别",
field: "fmefour",
width: 100
},
{
title: yearBeforeLastKpi,
field: "yearBeforeLastKpi",
width: 140
},
{
title: lastYearKpi,
field: "lastYearKpi",
width: 140
},
{
title: "kpi",
field: "kpi",
width: 100
},
{
title: "及格kpi",
field: "jgkpi",
width: 100
},
{
title: "优秀kpi",
field: "yxkpi",
width: 100
},
{
title: "m1",
field: "mone",
width: 140
},
{
title: "m2",
field: "mtwo",
width: 140
},
{
title: "m3",
field: "mthree",
width: 140
},
{
title: "年",
field: "year",
width: 140
},
{
title: "历史遗留",
field: "lsyl",
width: 200
},
{
title: "设备缺陷",
field: "sbqx",
width: 200
},
{
title: "外部引入",
field: "wbyr",
width: 200
},
{
title: "腐蚀老化",
field: "fslh",
width: 200
},
{
title: "未取出异物",
field: "wqcyw",
width: 200
}
],
queryParams: [
[{
label: '年度',
prop: 'year',
span: 6,
type: 'year',
value: new Date().getFullYear(),
typeConfig: {
onChange: (e) => {
let nowYear = this.$refs.basePage.queryParams.year
let lastYearKpi=`${nowYear-1}年kpi`
let yearBeforeLastKpi=`${nowYear-2}年kpi`
let list =this.$refs.basePage.$refs.TablePager.newGridList
list.forEach(item=>{
if(item.prop=='lastYearKpi'){
item.label=lastYearKpi
}
if(item.prop=='yearBeforeLastKpi'){
item.label=yearBeforeLastKpi
}
})
this.$refs.basePage.refresh()
}
}
}
]
],
/* 默认启停用 */
}
}
},
methods: {
/**
* @description:示例按钮
* @param {*} ctx操作basePage实例内容
* @return {*}
* @author: lisu
*/
// demo(ctx){}
},
components: {
Edit
}
}
</script>
<style>
</style>
<!--
* @Description: 生成基础basePage组件,屏蔽不必要细节
* @Author: lisu lisu@gavelinfo.com
* @Date: 2024-09-19 10:55:27
* @LastEditors: lisu lisu@gavelinfo.com
* @LastEditTime: 2024-10-30 10:15:06
* @FilePath: /zghywpc-vue/src/views/fmegl/fmekpigl/index.vue
-->
<template>
<div class="fmezbpgl">
<!-- 切换-->
<div class="qh">
<el-button @click="showPic=!showPic" type="success" icon="el-icon-refresh" circle></el-button>
</div>
<Tu class="leftOpt animate__animated " v-show="showPic" :class="{
'animate__fadeInLeft':showPic,
'animate__fadeOutLeft':!showPic
}" />
<Biao class="leftOpt animate__animated " v-show="!showPic" :class="{
'animate__fadeInRight':!showPic,
'animate__fadeOutRight':showPic
}" />
</div>
</template>
<script>
import Biao from './biao'
import Tu from './tu'
export default {
name: 'fmekpigl',
components: {
Biao,
Tu
},
data() {
return {
showPic: true
}
}
}
</script>
<style lang="scss" scoped>
.fmezbpgl {
position: relative
}
.qh {
position: absolute;
right: 55px;
bottom: 55px;
z-index: 9999;
font-size: 18px;
color: cornflowerblue;
}
</style>
<template>
<div class="min_full">
<div class="search">
<!-- <SearchButton :app='app'></SearchButton> -->
<el-row :gutter="20" class="search-row-1">
<el-col :span="6" class="search-col">
<div class="search-item">
<span class="search-span">年度:</span>
<RelYearSelect @change="initAll()" v-model="queryParams.year" size="small" class="search-input">
</RelYearSelect>
</div>
</el-col>
</el-row>
</div>
<!-- 展示-->
<div class="fmekpiglBody">
<div class="bbItem">
<div class="full">
<div class="bbItemtTitle">
{{`${queryParams.year}年度电厂KPI`}}
</div>
<div class="bbItemtBody">
<!-- echarts-->
<div ref="dckpi" class="full">
</div>
</div>
</div>
</div>
<div class="bbItem">
<div class="full">
<div class="bbItemtTitle">
{{`${queryParams.year}年度机组问题统计`}}
</div>
<div class="bbItemtBody">
<div ref="jzwttj" class="full">
</div>
</div>
</div>
</div>
<div class="bbItem">
<div class="full">
<div class="bbItemtTitle">
{{`${queryParams.year}年度专业KPI`}}
</div>
<div class="bbItemtBody">
<div ref="zykpi" class="full">
</div>
</div>
</div>
</div>
<div class="bbItem">
<div class="full">
<div class="bbItemtTitle">
{{`${queryParams.year}年度FME统计`}}
</div>
<div class="bbItemtBody">
<div ref="fmetj" class="full">
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
queryParams: {
year: new Date().getFullYear(),
},
timer: null
}
},
mounted() {
this.$nextTick(() => {
this.edckpi = this.$echarts.init(this.$refs.dckpi)
this.ejzwttj = this.$echarts.init(this.$refs.jzwttj)
this.ezykpi = this.$echarts.init(this.$refs.zykpi)
this.efmetj = this.$echarts.init(this.$refs.fmetj)
/* 生成图表*/
this.initAll()
// this.timer = setInterval(() => {
// this.initAll()
// }, 1000 * 10)
})
},
methods: {
initAll() {
this.$post('fme/ufmekpi/query', this.queryParams).then(res => {
let records = res.data.records || []
this.initEdckpi(records)
this.initEzykpi(records)
this.initEjzwttj(records)
this.initEfmetj(records)
})
},
/* 年度机组kpi*/
initEdckpi(records) {
let xData = ['1号机组', '2号机组', '3号机组', '4号机组', '5号机组', '6号机组', '电厂']
/* 根据XDate 找数据*/
let kpiList = xData.map(key => {
let value = 0
records.forEach(item => {
if (item.jzmc == key) {
value = item.kpi
}
})
return value
})
let jgkpiList = xData.map(key => {
let value = 0
records.forEach(item => {
if (item.jzmc == key) {
value = item.jgkpi
}
})
return value
})
let yxkpiList = xData.map(key => {
let value = 0
records.forEach(item => {
if (item.jzmc == key) {
value = item.yxkpi
}
})
return value
})
let option = {
tooltip: {
trigger: 'axis', // 触发类型为坐标轴触发
axisPointer: {
type: 'line' // 指示器类型为线
}
},
legend: {
data: ['年度KPI', '及格KPI', '优秀KPI']
},
color: ['#409EFF', '#FF7474', '#86ff65'],
grid: {
top: '10%',
left: '3%',
right: '6%',
bottom: '10%',
containLabel: true,
},
xAxis: {
type: 'category',
data: xData
},
yAxis: {
type: 'value'
},
series: [{
name: '年度KPI',
type: 'bar',
data: kpiList,
},
{
name: '及格KPI',
type: 'bar',
data: jgkpiList,
},
{
name: '优秀KPI',
type: 'bar',
data: yxkpiList,
},
]
};
this.edckpi.setOption(option);
},
/* 问题统计*/
initEjzwttj(records){
let xData = ['1号机组', '2号机组', '3号机组', '4号机组', '5号机组', '6号机组']
/* 根据XDate 找数据*/
let lsylList = xData.map(key => {
let value = 0
records.forEach(item => {
if (item.jzmc == key) {
value = item.lsyl
}
})
return value
})
let alllsyl=records.reduce((a,c)=>{
return a+parseFloat(c.lsyl)
},0)
lsylList.push(alllsyl)
let sbqxList = xData.map(key => {
let value = 0
records.forEach(item => {
if (item.jzmc == key) {
value = item.sbqx
}
})
return value
})
/* 累计数据*/
let allsbqx=records.reduce((a,c)=>{
return a+ parseFloat(c.sbqx)
},0)
sbqxList.push(allsbqx)
let wbyrList = xData.map(key => {
let value = 0
records.forEach(item => {
if (item.jzmc == key) {
value = item.wbyr
}
})
return value
})
let allwbyr=records.reduce((a,c)=>{
return a+ parseFloat( c.wbyr)
},0)
wbyrList.push(allwbyr)
let fslhList = xData.map(key => {
let value = 0
records.forEach(item => {
if (item.jzmc == key) {
value = item.fslh
}
})
return value
})
let allfslh=records.reduce((a,c)=>{
return a+ parseFloat(c.fslh)
},0)
fslhList.push(allfslh)
let wqcywList = xData.map(key => {
let value = 0
records.forEach(item => {
if (item.jzmc == key) {
value = item.wqcyw
}
})
return value
})
let allwqcyw=records.reduce((a,c)=>{
return a+ parseFloat(c.wqcyw)
},0)
wqcywList.push(allwqcyw)
xData.push('合计')
let option = {
tooltip: {
trigger: 'axis', // 触发类型为坐标轴触发
axisPointer: {
type: 'line' // 指示器类型为线
}
},
legend: {
data: ['历史遗留', '设备缺陷', '外部引入','腐蚀老化','未取出异物']
},
color: ['#409EFF', '#FF7474', '#a6bbff','#ffde79','#7be1ff'],
grid: {
top: '10%',
left: '3%',
right: '6%',
bottom: '10%',
containLabel: true,
},
xAxis: {
type: 'category',
data: xData
},
yAxis: {
type: 'value'
},
series: [{
name: '历史遗留',
type: 'bar',
data: lsylList,
},
{
name: '设备缺陷',
type: 'bar',
data: sbqxList,
},
{
name: '外部引入',
type: 'bar',
data: wbyrList,
},
{
name: '腐蚀老化',
type: 'bar',
data: fslhList,
},
{
name: '未取出异物',
type: 'bar',
data: wqcywList,
},
]
};
this.ejzwttj.setOption(option);
},
/* 年度专业kpi*/
initEzykpi(records) {
let xData = [
"MMV",
"MMC",
"MMU",
"MMD",
"MMM",
"YME",
"YMI",
"YGS",
"YTS",
"YEN",
"YSE",
"YSP",
"YCP",
"YPC",
"YTC"
]
/* 根据XDate 找数据*/
let kpiList = xData.map(key => {
let value = 0
records.forEach(item => {
if (item.jzmc == key) {
value = item.kpi
}
})
return value
})
let jgkpiList = xData.map(key => {
let value = 0
records.forEach(item => {
if (item.jzmc == key) {
value = item.jgkpi
}
})
return value
})
let yxkpiList = xData.map(key => {
let value = 0
records.forEach(item => {
if (item.jzmc == key) {
value = item.yxkpi
}
})
return value
})
let option = {
tooltip: {
trigger: 'axis', // 触发类型为坐标轴触发
axisPointer: {
type: 'line' // 指示器类型为线
}
},
legend: {
data: ['年度KPI', '及格KPI', '优秀KPI']
},
color: ['#409EFF', '#FF7474', '#86ff65'],
grid: {
top: '10%',
left: '3%',
right: '6%',
bottom: '10%',
containLabel: true,
},
xAxis: {
type: 'category',
data: xData
},
yAxis: {
type: 'value'
},
series: [{
name: '年度KPI',
type: 'bar',
data: kpiList,
},
{
name: '及格KPI',
type: 'bar',
data: jgkpiList,
},
{
name: '优秀KPI',
type: 'bar',
data: yxkpiList,
},
]
};
this.ezykpi.setOption(option);
},
initEfmetj(records){
let xData = ['1号机组', '2号机组', '3号机组', '4号机组', '5号机组', '6号机组', '电厂']
/* 根据XDate 找数据*/
let fmeoneList = xData.map(key => {
let value = 0
records.forEach(item => {
if (item.jzmc == key) {
value = item.fmeone
}
})
return value
})
let fmetwoList = xData.map(key => {
let value = 0
records.forEach(item => {
if (item.jzmc == key) {
value = item.fmetwo
}
})
return value
})
let fmethreeList = xData.map(key => {
let value = 0
records.forEach(item => {
if (item.jzmc == key) {
value = item.fmethree
}
})
return value
})
let fmefourList = xData.map(key => {
let value = 0
records.forEach(item => {
if (item.jzmc == key) {
value = item.fmefour
}
})
return value
})
let option = {
tooltip: {
trigger: 'axis', // 触发类型为坐标轴触发
axisPointer: {
type: 'line' // 指示器类型为线
}
},
legend: {
data: ['年度KPI', '及格KPI', '优秀KPI']
},
color: ['#409EFF', '#FF7474', '#86ff65'],
grid: {
top: '10%',
left: '3%',
right: '6%',
bottom: '10%',
containLabel: true,
},
xAxis: {
type: 'category',
data: xData
},
yAxis: {
type: 'value'
},
series: [{
name: 'FME1级',
type: 'bar',
data: fmeoneList,
},
{
name: 'FME2级',
type: 'bar',
data: fmetwoList,
},
{
name: 'FME3级',
type: 'bar',
data: fmethreeList,
},
{
name: 'FME4级',
type: 'bar',
data: fmefourList,
},
]
};
this.efmetj.setOption(option);
}
}
}
</script>
<style lang="scss" scoped>
.fmekpiglBody {
width: 100%;
height: calc(100% - 50px);
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(2, 1fr);
// background-color: #eee;
.bbItem {
padding: 6px;
&>div {
background-color: #fff;
/* 标题*/
.bbItemtTitle {
line-height: 40px;
font-size: 16px;
color: #666;
border-bottom: 1px solid #eee;
width: 100%;
padding-left: 10px;
font-weight: 700;
}
/* echarts*/
.bbItemtBody {
height: calc(100% - 41px);
width: 100%;
}
}
}
.bbItem:nth-child(1) {
padding-right: 3px;
padding-bottom: 3px;
}
.bbItem:nth-child(2) {
padding-left: 3px;
padding-bottom: 3px;
}
.bbItem:nth-child(3) {
padding-right: 3px;
padding-top: 3px;
}
.bbItem:nth-child(4) {
padding-left: 3px;
padding-top: 3px;
}
}
</style>
<template>
<DefaultDialog :app='app'>
<div slot="form" style="display: flex;height: 70vh;">
</div>
<div slot="reFooter" class="refooter" >
<span slot="footer" class="dialog-footer" >
<el-button @click="app.showDialog=false">取 消</el-button>
<el-button type="primary" @click="save()">保 存</el-button>
</span>
</div>
</DefaultDialog>
</template>
<script>
export default {
props: {
app: {
type: Object,
default: ()=>{
return {}
}
}
},
async mounted() {
},
data() {
return {
}
},
methods: {
}
}
</script>
<style scoped>
</style>
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
</div> </div>
<div class="showYearBodyItem flex1" :class="{ <div class="showYearBodyItem flex1" :class="{
'bg-green':yearItem.twoywsj<4, 'bg-green':yearItem.twoywsj<4,
'bg-yellow':yearItem.twoywsj>=4, 'bg-yellow':yearItem.twoywsj>=4&&yearItem.twoywsj<=6,
'bg-red':yearItem.twoywsj>6, 'bg-red':yearItem.twoywsj>6,
}"> }">
<div class="showYearBodyItemTitle"> <div class="showYearBodyItemTitle">
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
</div> </div>
<div class="showYearBodyItem flex1" :class="{ <div class="showYearBodyItem flex1" :class="{
'bg-yellow':yearItem.wbyrywsj<=12, 'bg-yellow':yearItem.wbyrywsj<=12&&yearItem.wbyrywsj>=6,
'bg-green':yearItem.wbyrywsj<6, 'bg-green':yearItem.wbyrywsj<6,
'bg-red':yearItem.wbyrywsj>12, 'bg-red':yearItem.wbyrywsj>12,
}"> }">
...@@ -126,7 +126,7 @@ ...@@ -126,7 +126,7 @@
</div> </div>
<div class="showYearBodyItem flex1" :class="{ <div class="showYearBodyItem flex1" :class="{
'bg-green':monthItem.wbyrywsj<3, 'bg-green':monthItem.wbyrywsj<3,
'bg-yellow':monthItem.wbyrywsj>=3, 'bg-yellow':monthItem.wbyrywsj>=3&&monthItem.wbyrywsj<=6,
'bg-red':monthItem.wbyrywsj>6, 'bg-red':monthItem.wbyrywsj>6,
......
<template>
<DefaultDialog :app='app'>
<el-form slot="form" ref="form" :model="form" label-width="100px" :rules="rules">
<!-- 辅助编码-->
<el-row :gutter="20" :app="this">
<EditColItem :required="item.required||false" :readonly="item.readonly?true:false "
v-for="(item,index) in editColItemList " :value="item.value" :span="item.span" :label="item.label"
:prop='item.prop' :key="item.prop" :type="item.type" :typeConfig='item.typeConfig' :rule="item.rule" />
</el-row>
</el-form>
<div slot="reFooter" class="refooter">
<span slot="footer" class="dialog-footer">
<el-button @click="app.showDialog=false">取 消</el-button>
<el-button type="primary" @click="save()">保 存</el-button>
</span>
</div>
</DefaultDialog>
</template>
<script>
import {
editMixin
} from 'common'
import sbxx from '@/views/auxinput/sbxx'
export default {
props: {
app: {
type: Object,
default: () => {
return {}
}
}
},
mixins: [editMixin],
async mounted() {
},
data() {
return {
readonly: false,
editColItemList: [{
label: '设备名称',
prop: 'sbxxName',
span: 12,
required: true,
type: 'AuxInput',
typeConfig: {
isRequest: false,
dynamic: true,
code: true,
component: sbxx,
label: 'sbxxName',
transform: {
value: 'id',
label: 'name'
},
give(res) {
this.form.sbxxCode = res.code
}
}
},
{
label: '设备编码',
prop: 'sbxxCode',
span: 12,
type: 'input',
required: true,
readonly: true
},
{
label: '检修作业方法',
prop: 'name',
span: 24,
type: 'input',
required: true,
},
{
label: '检修作业编码',
prop: 'code',
span: 24,
type: 'input',
required: true,
},
]
}
},
methods: {
save() {
this.$refs['form'].validate((valid) => {
if (valid) {
this.$emit('save', this.form)
}
})
}
}
}
</script>
<style scoped>
</style>
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
<addgjmx @save='addgjmxbc' v-if="showDialog&&DialogTitle=='新增工具'" :app="this"></addgjmx> <addgjmx @save='addgjmxbc' v-if="showDialog&&DialogTitle=='新增工具'" :app="this"></addgjmx>
<addbpbjmx @save='savebpbj' v-if="showDialog&&DialogTitle=='新增备品备件'" :app="this"></addbpbjmx> <addbpbjmx @save='savebpbj' v-if="showDialog&&DialogTitle=='新增备品备件'" :app="this"></addbpbjmx>
<addhcmx @save='savehc' v-if="showDialog&&DialogTitle=='新增耗材'" :app="this"></addhcmx> <addhcmx @save='savehc' v-if="showDialog&&DialogTitle=='新增耗材'" :app="this"></addhcmx>
<addjxzyff @save='savejxzyff' v-if="showDialog&&DialogTitle=='新增检修作业方法'" :app="this" />
<el-row :gutter="20" :app="this"> <el-row :gutter="20" :app="this">
<EditColItem :required="item.required||false" :readonly="item.readonly?true:false " <EditColItem :required="item.required||false" :readonly="item.readonly?true:false "
v-for="(item,index) in editColItemList " :value="item.value" :span="item.span" :label="item.label" v-for="(item,index) in editColItemList " :value="item.value" :span="item.span" :label="item.label"
...@@ -43,6 +44,18 @@ ...@@ -43,6 +44,18 @@
</editTableForEdit> </editTableForEdit>
</div> </div>
</el-tab-pane> </el-tab-pane>
<!-- 检修作业方法-->
<el-tab-pane label="检修作业方法" name="5">
<div style="height: 300px;">
<editTableForEdit :phsxTitle='false' :expandTitle='false' code='false' :AuxButton='false' :indexApp='app'
:type='type' ref="editTableForEdit1" :editTableTitle='editTableTitle4' :editTableData="editTableData4">
<template v-if="type!='view'" #toolbar="ctx">
<el-button @click="addjxzyff" size='mini' type="primary">新增检修作业</el-button>
</template>
</editTableForEdit>
</div>
</el-tab-pane>
<el-tab-pane label="完工附件" name="4"> <el-tab-pane label="完工附件" name="4">
<!-- 上传div--> <!-- 上传div-->
...@@ -120,6 +133,7 @@ ...@@ -120,6 +133,7 @@
import addgjmx from './addgjmx.vue' import addgjmx from './addgjmx.vue'
import addbpbjmx from './addbpbjmx.vue' import addbpbjmx from './addbpbjmx.vue'
import addhcmx from './addhcmx.vue' import addhcmx from './addhcmx.vue'
import addjxzyff from './addjxzyff.vue'
import { import {
autoAttachDownload, autoAttachDownload,
} from "common/src/api/system/dmgSystem.js"; } from "common/src/api/system/dmgSystem.js";
...@@ -134,7 +148,8 @@ ...@@ -134,7 +148,8 @@
components: { components: {
addgjmx, addgjmx,
addbpbjmx, addbpbjmx,
addhcmx addhcmx,
addjxzyff
}, },
computed: { computed: {
sfsybpbj() { sfsybpbj() {
...@@ -236,10 +251,33 @@ ...@@ -236,10 +251,33 @@
label: '型号', label: '型号',
prop: 'xh', prop: 'xh',
} }
],
editTableTitle4:[{
label: '设备名称',
prop: 'sbxxName',
width: '260'
},
{
label: '设备编码',
prop: 'sbxxCode',
width: '260'
},
{
label: '检修作业方法',
prop: 'name',
width: '260'
},
{
label: '检修作业方法编码',
prop: 'code',
width: '260'
}
], ],
editTableData1: [], editTableData1: [],
editTableData2: [], editTableData2: [],
editTableData3: [], editTableData3: [],
editTableData4: [],
/* 调整*/ /* 调整*/
activeName: '1', activeName: '1',
editColItemList: [{ editColItemList: [{
...@@ -411,6 +449,14 @@ ...@@ -411,6 +449,14 @@
}) })
}) })
this.$post('jxgl/ujxzyff/query', {
mid: form.id
}).then(res => {
res.data.records.forEach(item => {
this.editTableData4.push(item)
})
})
}, },
save() { save() {
...@@ -436,6 +482,10 @@ ...@@ -436,6 +482,10 @@
{ {
id: 'U_BPBJ', id: 'U_BPBJ',
records: [...this.editTableData2] || [] records: [...this.editTableData2] || []
},
{
id: 'U_JXZYFF',
records: [...this.editTableData4] || []
} }
], ],
master: this.form master: this.form
...@@ -515,7 +565,11 @@ ...@@ -515,7 +565,11 @@
} }
}) })
}, },
savejxzyff(data){
let ndata = _.cloneDeep(data)
this.editTableData4.push(ndata)
this.showDialog = false
},
savehc(data) { savehc(data) {
let ndata = _.cloneDeep(data) let ndata = _.cloneDeep(data)
this.editTableData3.push(ndata) this.editTableData3.push(ndata)
...@@ -542,6 +596,10 @@ ...@@ -542,6 +596,10 @@
addhcmx() { addhcmx() {
this.DialogTitle = '新增耗材' this.DialogTitle = '新增耗材'
this.showDialog = true this.showDialog = true
},
addjxzyff(){
this.DialogTitle = '新增检修作业方法'
this.showDialog = true
} }
} }
} }
......
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