jn517618 2 years ago
commit 5e0b4f946b
  1. 4
      package-lock.json
  2. 55
      src/api/energySources/energySources.js
  3. 25
      src/const/limsConfig/equipmentManage.js
  4. 6
      src/views/capital/analysis.vue
  5. 5
      src/views/capital/productstoreList.vue
  6. 6
      src/views/capital/supplier.vue
  7. 112
      src/views/energySources/component/all.vue
  8. 67
      src/views/energySources/component/dosage.vue
  9. 52
      src/views/energySources/component/equipmentLoad.vue
  10. 7
      src/views/energySources/component/header.vue
  11. 27
      src/views/energySources/component/load.vue
  12. 2
      src/views/energySources/component/tit.vue
  13. 6
      src/views/inspection/errorTask.vue
  14. 45
      src/views/inspection/insTask.vue
  15. 12
      src/views/inspection/insstatistics.vue
  16. 6
      src/views/inspection/leavepoints.vue
  17. 18
      src/views/inspection/plan.vue
  18. 6
      src/views/inspection/setting/check.vue
  19. 6
      src/views/inspection/setting/path.vue
  20. 12
      src/views/inspection/setting/points.vue
  21. 1
      src/views/limsConfig/equipmentManage.vue
  22. 46
      src/views/oiling/plan.vue
  23. 11
      src/views/oiling/project.vue
  24. 7
      src/views/oiling/statistics.vue
  25. 42
      src/views/oiling/task.vue
  26. 3
      src/views/plugin/workflow/components/wf-user-select/index.vue
  27. 10
      src/views/plugin/workflow/process/components/user-select.vue
  28. 6
      src/views/repair/confirm.vue
  29. 12
      src/views/repair/proposer.vue
  30. 11
      src/views/repair/repairAppyDetail.vue

4
package-lock.json generated

@ -7964,7 +7964,7 @@
},
"moment": {
"version": "2.30.1",
"resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="
},
"move-concurrently": {
@ -12734,7 +12734,7 @@
},
"vue-moment": {
"version": "4.1.0",
"resolved": "https://registry.npmmirror.com/vue-moment/-/vue-moment-4.1.0.tgz",
"resolved": "https://registry.npmjs.org/vue-moment/-/vue-moment-4.1.0.tgz",
"integrity": "sha512-Gzisqpg82ItlrUyiD9d0Kfru+JorW2o4mQOH06lEDZNgxci0tv/fua1Hl0bo4DozDV2JK1r52Atn/8QVCu8qQw==",
"requires": {
"moment": "^2.19.2"

@ -0,0 +1,55 @@
import request from "@/router/axios";
// 总量分析
export const getTotalElectricity = (query) => {
return request({
url: "/api/blade-lims/largeScreen/getTotalElectricity",
method: "get",
params: query,
});
};
// 连续两个月对比
export const getMonthElectricity = (query) => {
return request({
url: "/api/blade-lims/largeScreen/getMonthElectricity",
method: "get",
params: query,
});
};
// 负荷分析-日分析
export const getDayElectricity = (query) => {
return request({
url: "/api/blade-lims/largeScreen/getDayElectricity",
method: "get",
params: query,
});
};
// 负荷分析-周分析
export const getWeekElectricity = (query) => {
return request({
url: "/api/blade-lims/largeScreen/getWeekElectricity",
method: "get",
params: query,
});
};
// 用量分析-每日
export const getPeriodElectricity = (query) => {
return request({
url: "/api/blade-lims/largeScreen/getPeriodElectricity",
method: "get",
params: query,
});
};
// 设备负载率
export const getInstrumentActLoad = (query) => {
return request({
url: "/api/blade-lims/largeScreen/getInstrumentActLoad",
method: "get",
params: query,
});
};

@ -1,4 +1,11 @@
// 仪器设备管理
var num = (rule, value, callback) => {
if (value < 0) {
callback(new Error("必须大于0"));
return false;
}
callback();
};
export const tableOption = {
selection: true,
index: true,
@ -124,7 +131,8 @@ export const tableOption = {
{
type: "input",
span: 8,
label: "生产厂家及品牌",
label: "所属单位",
// label: "生产厂家及品牌",
prop: "manufacturerBrand",
align: "left",
overHidden: true,
@ -202,5 +210,20 @@ export const tableOption = {
value: "dictKey",
},
},
{
type: "input",
span: 8,
label: "额定功率",
prop: "ratedPower",
align: "left",
rules: [
{
pattern: /^[0-9]\d*$/,
message: "额定功率必须是整数",
trigger: "blur",
},
],
overHidden: true,
},
],
};

@ -92,4 +92,10 @@ export default {
/deep/ .el-card__body {
padding: 0;
}
/deep/ .avue-crud__pagination {
height: 20px;
padding: 10px;
// padding-top: 30px;
// padding-bottom: 30px;
}
</style>

@ -2952,8 +2952,9 @@ export default {
//
/deep/ .avue-crud__pagination {
height: 20px;
padding-top: 20px;
padding-bottom: 20px;
padding: 10px;
// padding-top: 20px;
// padding-bottom: 20px;
}
::v-deep .el-pagination .el-select .el-input .el-input__inner {

@ -153,4 +153,10 @@ export default {
border-radius: 0px;
margin-left: 20px;
}
/deep/ .avue-crud__pagination {
height: 20px;
padding: 10px;
// padding-top: 30px;
// padding-bottom: 30px;
}
</style>

@ -10,8 +10,8 @@
</template>
<div class="tit-r">
<span style="color: #fff;">选择月份</span>
<el-date-picker size="mini" v-model="value2" type="month" placeholder="选择月"
style="width: 1.2rem;margin-right: 0.26rem;">
<el-date-picker size="mini" v-model="selectMonth" type="month" placeholder="选择月" @change="changeMonth"
style="width: 1.2rem;margin-right: 0.26rem;" format="yyyy-MM" value-format="yyyy-MM">
</el-date-picker>
单位kw·h
</div>
@ -21,7 +21,7 @@
<div class="card">
<div class="card-tit">{{ $moment().format('YYYY') }}</div>
<div class="card-num">
<div class="card-num-item" v-for="(item, index) in num" :key="index">
<div class="card-num-item" v-for="(item, index) in yearNum" :key="index">
<div :style="item === '.' ? 'background: transparent' : ''"></div>
<div :style="item === '.' ? 'background: transparent' : ''"></div>
<div style="color: #CADEFF;">
@ -35,7 +35,7 @@
<div class="card">
<div class="card-tit">{{ $moment().format('M') }}</div>
<div class="card-num">
<div class="card-num-item" v-for="(item, index) in num" :key="index">
<div class="card-num-item" v-for="(item, index) in monthNum" :key="index">
<div :style="item === '.' ? 'background: transparent' : ''"></div>
<div :style="item === '.' ? 'background: transparent' : ''"></div>
<div style="color: #00FFC6;">
@ -49,7 +49,7 @@
<div class="card">
<div class="card-tit">昨日</div>
<div class="card-num">
<div class="card-num-item" v-for="(item, index) in num" :key="index">
<div class="card-num-item" v-for="(item, index) in yesterdayNum" :key="index">
<div :style="item === '.' ? 'background: transparent' : ''"></div>
<div :style="item === '.' ? 'background: transparent' : ''"></div>
<div style="color: #E0B42F;">
@ -63,7 +63,7 @@
<div class="card">
<div class="card-tit">今日</div>
<div class="card-num">
<div class="card-num-item" v-for="(item, index) in num" :key="index">
<div class="card-num-item" v-for="(item, index) in todayNum" :key="index">
<div :style="item === '.' ? 'background: transparent' : ''"></div>
<div :style="item === '.' ? 'background: transparent' : ''"></div>
<div style="color: #00FFFC;">
@ -83,28 +83,70 @@
<script>
import tit from "./tit.vue";
import { mapGetters } from "vuex";
import {getTotalElectricity,getMonthElectricity} from "@/api/energySources/energySources"
export default {
data() {
return {
num: 0
num: 0,
yearNum:0,
monthNum:0,
yesterdayNum:0,
todayNum:0,
selectMonth:'',
currentMonthData:[120, 200, 150, 80, 70, 110, 130],
lastMonthData:[150, 120, 180, 60, 40, 130, 150]
};
},
components: {
tit
},
created() {
this.selectMonth = this.$moment().format('YYYY-MM')
this.$nextTick(() => {
this.echartsInit()
this.getTotal()
this.getTrend()
})
let nums = 1223.45;
this.num = nums.toString().split('')
// let nums = 1223.45;
// this.num = nums.toString().split('')
},
computed:{
...mapGetters(["userInfo", "permission"]),
},
methods: {
getTotal(){
getTotalElectricity({manufacturerBrand:this.userInfo.dept_name}).then(res =>{
let data = res.data.data
this.yearNum = data.currentYear.toString().split('')
this.monthNum = data.currentMonth.toString().split('')
this.yesterdayNum = data.yesterday.toString().split('')
this.todayNum = data.today.toString().split('')
})
},
getTrend(){
this.currentMonthData = [];
this.lastMonthData = []
getMonthElectricity({manufacturerBrand:this.userInfo.dept_name,currentMonth:this.selectMonth}).then(res =>{
let currData = res.data.data.currentMonth
let lastData = res.data.data.lastMonth
Object.keys(currData).forEach((key) => {
this.currentMonthData.push(currData[key])
});
Object.keys(lastData).forEach((key) => {
this.lastMonthData.push(lastData[key])
});
this.$nextTick(() =>{
this.echartsInit()
})
})
},
changeMonth(){
this.getTrend()
},
echartsInit() {
const chartDom = document.getElementById('mainAll');
const myChart = this.$echarts.init(chartDom);
const currentMonthDays = this.$moment().daysInMonth()
const currentMonthDays = this.$moment(this.selectMonth).daysInMonth()
const xdata = Array(currentMonthDays).fill().map((_, i) => i + 1)
const option = {
// title: {
@ -116,16 +158,16 @@ export default {
bottom: "0",
containLabel: true,
},
// legend: {
// data: ['', '', '', ''],
// right: 0,
// top: 12,
// textStyle: {
// color: "#fff"
// },
// itemWidth: 10,
// itemHeight: 4,
// },
legend: {
data: ['本月', '上月'],
// right: 0,
top: 12,
textStyle: {
color: "#fff"
},
itemWidth: 10,
itemHeight: 4,
},
xAxis: {
type: "category",
data: xdata,
@ -178,10 +220,11 @@ export default {
},
series: [
{
name: "委托",
name: "本月",
type: "bar",
barWidth: "10",
data: [120, 200, 150, 80, 70, 110, 130],
data: this.currentMonthData,
// data: [120, 200, 150, 80, 70, 110, 130],
itemStyle: {
normal: {
color: "#0084FF",
@ -197,6 +240,27 @@ export default {
},
},
},
{
name: "上月",
type: "bar",
barWidth: "10",
data: this.lastMonthData,
// data: [120, 200, 150, 80, 70, 110, 130],
itemStyle: {
normal: {
color: "#10efbd",
// label: {
// show: true,
// position: "top",
// textStyle: {
// //
// color: "#0084FF",
// fontSize: 14,
// },
// },
},
},
},
],
}
myChart.setOption(option);

@ -5,8 +5,8 @@
<span style="color: #0096FF;">监测明细</span>
&nbsp;&nbsp;&nbsp;
<span style="color: #fff;">选择月份</span>
<el-date-picker size="mini" v-model="value2" type="month" placeholder="选择月"
style="width: 1.2rem;margin-right: 0.26rem;">
<el-date-picker size="mini" v-model="selectDay" type="date" placeholder="选择月" @change="changeDate"
style="width: 1.3rem;margin-right: 0.26rem;" value-format="yyyy-MM-dd" format="yyyy-MM-dd">
</el-date-picker>
单位kw·h
</div>
@ -16,9 +16,9 @@
<el-table :data="tableData" style="width: 62%;" height="92%" :stripe="true" :size="mini"
:row-class-name="tableRowClassName">
<el-table-column prop="name" label="部门/车间">
<el-table-column prop="name" label="部门/车间" show-overflow-tooltip>
<template slot-scope="scope">
<span style="color: #fff">{{ scope.row.name }}%</span>
<span style="color: #fff">{{ scope.row.name }}</span>
</template>
</el-table-column>
@ -26,14 +26,14 @@
<template slot-scope="scope">
<!-- <span :style="{ color: scope.row.address > 0 ? '#11F150' : 'rgba($color: #fff, $alpha: 0.2)' }">{{
scope.row.address }}%</span> -->
<span style="color: #11F150">{{ scope.row.address }}%</span>
<span style="color: #11F150">{{ scope.row.sum ? scope.row.sum : 0 }}</span>
</template>
</el-table-column>
<el-table-column prop="address" label="尖时段">
<template slot-scope="scope">
<!-- <span :style="{ color: scope.row.address > 0 ? '#FB5E2D' : 'rgba($color: #fff, $alpha: 0.2)' }">{{
scope.row.address }}%</span> -->
<span style="color: #FB5E2D">{{ scope.row.address }}%</span>
<span style="color: #FB5E2D">{{ scope.row.jian ? scope.row.jian : 0 }}</span>
</template>
</el-table-column>
<el-table-column prop="date" label="峰时段">
@ -41,21 +41,21 @@
<!-- <span :style="{ color: scope.row.address > 0 ? '#FBB02D' : 'rgba($color: #fff, $alpha: 0.2)' }">{{
scope.row.address
}}%</span> -->
<span style="color: #FBB02D">{{ scope.row.address }}%</span>
<span style="color: #FBB02D">{{ scope.row.feng ? scope.row.feng : 0 }}</span>
</template>
</el-table-column>
<el-table-column prop="address" label="时段">
<el-table-column prop="address" label="时段">
<template slot-scope="scope">
<!-- <span :style="{ color: scope.row.address > 0 ? '#00A2FF' : 'rgba($color: #fff, $alpha: 0.2)' }">{{
scope.row.address }}%</span> -->
<span style="color: #00A2FF">{{ scope.row.address }}%</span>
<span style="color: #00A2FF">{{ scope.row.ping ? scope.row.ping : 0 }}</span>
</template>
</el-table-column>
<el-table-column prop="address" label="谷时段">
<template slot-scope="scope">
<!-- <span :style="{ color: scope.row.address > 0 ? '#10EFBD' : 'rgba($color: #fff, $alpha: 0.2)' }">{{
scope.row.address }}%</span> -->
<span style="color: #10EFBD">{{ scope.row.address }}%</span>
<span style="color: #10EFBD">{{ scope.row.gu ? scope.row.gu : 0 }}</span>
</template>
</el-table-column>
</el-table>
@ -85,49 +85,38 @@
<script>
import tit from "./tit.vue";
import { mapGetters } from "vuex";
import {getPeriodElectricity} from "@/api/energySources/energySources"
export default {
data() {
return {
tableData: [{
date: '2016-05-02',
name: '王小虎',
address: 29,
}, {
date: '2016-05-04',
name: '王小虎',
address: 0,
}, {
date: '2016-05-01',
name: '王小虎',
address: 29,
}, {
date: '2016-05-01',
name: '王小虎',
address: 29,
}, {
date: '2016-05-01',
name: '王小虎',
address: 29,
}, {
date: '2016-05-01',
name: '王小虎',
address: 29,
}, {
date: '2016-05-03',
name: '王小虎',
address: 29,
}]
selectDay:'',
tableData: []
};
},
components: {
tit
},
created() {
this.selectDay = this.$moment().format('YYYY-MM-DD')
this.$nextTick(() => {
this.getPeriodData()
this.echartsInit()
})
},
computed:{
...mapGetters(["userInfo", "permission"]),
},
methods: {
getPeriodData(){
getPeriodElectricity({manufacturerBrand:this.userInfo.dept_name,today:this.selectDay}).then(res =>{
console.log('period =====>',res)
this.tableData = res.data.data
})
},
changeDate(){
this.getPeriodData()
},
echartsInit() {
const chartDom = document.getElementById('mainDosage');
const myChart = this.$echarts.init(chartDom);

@ -5,14 +5,14 @@
</tit>
<el-table :data="tableData" style="width: 100%;" height="92%" :stripe="true" :size="mini"
:row-class-name="tableRowClassName">
<el-table-column prop="name" label="设备名称">
<el-table-column prop="name" label="设备名称" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="address" label="负载率">
<template slot-scope="scope">
<span>{{ scope.row.address }}%</span>
<span>{{ scope.row.loadRate }}%</span>
</template>
</el-table-column>
<el-table-column prop="date" label="负载最长时段">
<el-table-column prop="sendTime" label="负载最长时段" show-overflow-tooltip>
</el-table-column>
</el-table>
</div>
@ -20,57 +20,39 @@
<script>
import tit from "./tit.vue";
import { mapGetters } from "vuex";
import {getInstrumentActLoad} from "@/api/energySources/energySources"
export default {
data() {
return {
tableData: [{
date: '2016-05-02',
name: '王小虎',
address: 29,
}, {
date: '2016-05-04',
name: '王小虎',
address: 0,
}, {
date: '2016-05-01',
name: '王小虎',
address: 29,
}, {
date: '2016-05-01',
name: '王小虎',
address: 29,
}, {
date: '2016-05-01',
name: '王小虎',
address: 29,
}, {
date: '2016-05-01',
name: '王小虎',
address: 29,
}, {
date: '2016-05-03',
name: '王小虎',
address: 29,
}]
tableData: []
};
},
components: {
tit
},
computed:{
...mapGetters(["userInfo", "permission"]),
},
created() {
this.getTableData()
},
methods: {
getTableData(){
getInstrumentActLoad({manufacturerBrand:this.userInfo.dept_name}).then(res =>{
this.tableData = res.data.data
})
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 === 0) {
if (row.address > 0) {
if (row.loadRate > 0) {
return 'trEven colorFB5E2D';
} else {
return 'trEven';
}
} else {
if (row.address > 0) {
if (row.loadRate > 0) {
return 'trOdd colorFB5E2D';
} else {
return 'trOdd';

@ -3,7 +3,7 @@
<div class="box">
<div>
{{ $moment().format('HH:mm:ss') }}
{{ time }}
</div>
<div>
{{ $moment().format('yyyy/MM/DD') }}
@ -27,10 +27,13 @@
export default {
data() {
return {
time:''
};
},
created() {
setInterval(() =>{
this.time = this.$moment().format('HH:mm:ss')
},1000)
},
methods: {}
};

@ -3,8 +3,8 @@
<tit :title="'设备负载监控'">
<div class="tit-r">
<span style="color: #fff;">选择月份</span>
<el-date-picker size="mini" v-model="value2" type="month" placeholder="选择月" :prefix-icon="null"
style="width: 1.2rem;margin-right: 0.26rem;">
<el-date-picker size="mini" v-model="selectDate" type="date" placeholder="选择月" :prefix-icon="null"
style="width: 1.3rem;margin-right: 0.26rem;" format="yyyy-MM-dd" value-format="yyyy-MM-dd">
</el-date-picker>
单位kw·h
</div>
@ -21,21 +21,42 @@
<script>
import tit from "./tit.vue";
import { mapGetters } from "vuex";
import {getDayElectricity,getWeekElectricity} from "@/api/energySources/energySources"
export default {
data() {
return {
radio: 3
radio: 3,
selectDate:'',
};
},
components: {
tit
},
created() {
this.selectDate = this.$moment().format('YYYY-MM-DD')
this.$nextTick(() => {
this.getDayData()
this.getWeekData()
this.echartsInit()
})
},
computed:{
...mapGetters(["userInfo", "permission"]),
},
methods: {
//
getDayData(){
getDayElectricity({manufacturerBrand:this.userInfo.dept_name,today:this.selectDate}).then(res =>{
console.log('res ======>',res)
})
},
//
getWeekData(){
getWeekElectricity({manufacturerBrand:this.userInfo.dept_name,today:this.selectDate}).then(res =>{
console.log('res1 ====>',res)
})
},
echartsInit() {
const chartDom = document.getElementById('mainLoad');
const myChart = this.$echarts.init(chartDom);

@ -11,7 +11,6 @@
</template>
<script>
export default {
data() {
return {
@ -38,6 +37,7 @@ export default {
position: absolute;
top: 0.14rem;
left: 0.6rem;
z-index: 10;
box-sizing: border-box;
// margin: 0.14rem 0 0 0.38rem;
width: calc(100% - 0.6rem - 0.22rem);

@ -583,6 +583,12 @@ export default {
// padding-top: 30px;
// padding-bottom: 30px;
// }
/deep/ .avue-crud__pagination {
height: 20px;
padding: 10px;
// padding-top: 30px;
// padding-bottom: 30px;
}
.search-input {
width: 255px;
height: 46px;

@ -113,10 +113,10 @@
</template>
<template slot-scope="{ row, index }" slot="menu">
<el-button @click="handleView(row, index)" class="look">查看</el-button>
<el-button v-show="row.taskStatus == 0 || row.taskStatus == 1" @click="handleEdit(row, index)" class="look">编辑</el-button>
<el-button v-show="row.taskStatus == 0" @click="handleDelete(row, index)" class="look">删除</el-button>
<el-button v-show="row.taskStatus == 1" @click="handleFinish(row, index)" class="look">完成</el-button>
<el-button v-show="row.taskStatus == 0 || row.taskStatus == 1" @click="handleCancel(row, index)" class="look">取消</el-button>
<el-button v-show="(row.taskStatus == 0 || row.taskStatus == 1 )&& permission.inspection_insTask_edit" @click="handleEdit(row, index)" class="look">编辑</el-button>
<el-button v-show="row.taskStatus == 0 && permission.inspection_insTask_delete" @click="handleDelete(row, index)" class="look">删除</el-button>
<el-button v-show="row.taskStatus == 1 && permission.inspection_insTask_finish" @click="handleFinish(row, index)" class="look">完成</el-button>
<el-button v-show="(row.taskStatus == 0 || row.taskStatus == 1) && permission.inspection_insTask_cancel" @click="handleCancel(row, index)" class="look">取消</el-button>
</template>
</avue-crud>
<!-- 新增/编辑巡检任务 弹窗 -->
@ -161,6 +161,7 @@
<el-input
style="width: 98%"
v-model="addForm.planName"
:disabled="isPeople"
placeholder="请输入巡检名称"
></el-input>
</el-form-item>
@ -205,6 +206,7 @@
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
style="width: 98%"
:disabled="isPeople"
>
</el-date-picker>
</el-form-item>
@ -213,6 +215,7 @@
<el-form-item label="实际完成" prop="actFinishTime">
<el-date-picker
v-model="addForm.actFinishTime"
:disabled="isPeople"
type="date"
placeholder="请选择实际完成"
format="yyyy-MM-dd"
@ -224,7 +227,7 @@
</el-col>
<el-col :span="6" style="width: 31%; margin-left: 1%">
<el-form-item label="完成用时(时)" prop="actTotalCost">
<el-input-number style="width: 98%" controls-position="right" v-model="addForm.actTotalCost" :min="0" :precision="1" :step="1"></el-input-number>
<el-input-number :disabled="isPeople" style="width: 98%" controls-position="right" v-model="addForm.actTotalCost" :min="0" :precision="1" :step="1"></el-input-number>
</el-form-item>
</el-col>
</el-row>
@ -235,6 +238,7 @@
style="width: 100%"
type="textarea"
v-model="addForm.content"
:disabled="isPeople"
placeholder="请输入任务反馈"
></el-input>
</el-form-item>
@ -247,6 +251,7 @@
style="width: 100%"
type="textarea"
v-model="addForm.notes"
:disabled="isPeople"
placeholder="请输入备注"
></el-input>
</el-form-item>
@ -285,6 +290,7 @@
<el-select
v-model="addForm.planInspectionMethod"
placeholder="请选择巡检顺序"
:disabled="isPeople"
style="width: 98%"
>
<el-option label="顺序" :value="1"></el-option>
@ -297,6 +303,7 @@
<el-date-picker
v-model="addForm.planStartTime"
type="date"
:disabled="isPeople"
placeholder="请选择应开始时间"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
@ -309,6 +316,7 @@
<el-form-item label="巡检备注" prop="planNotes">
<el-input
style="width: 100%"
:disabled="isPeople"
type="textarea"
v-model="addForm.planNotes"
placeholder="请输入巡检备注"
@ -422,6 +430,7 @@
class="look"
size="mini"
@click="handleExecute(scope.row)"
v-show="permission.inspection_insTask_execute"
>执行</el-button
>
<el-button
@ -792,6 +801,7 @@ import {getPointDetail} from "@/api/inspection/setting/point"
import {getCheckList} from "@/api/inspection/setting/check"
import {getGroup} from "@/api/inspection/plan"
import { getToken } from "@/util/auth";
import { mapGetters } from "vuex";
let that;
export default {
data() {
@ -929,7 +939,8 @@ export default {
{label:'不巡检',value:3},
],
taskForm:{},
checkTableData:[]
checkTableData:[],
isPeople:false
};
},
beforeCreate() {
@ -940,6 +951,12 @@ export default {
getGroup().then(res =>{
this.groupList = res.data.data
})
console.log('user ====>',this.userInfo)
if(this.userInfo.role_name == '巡检人员'){
this.isPeople = true
}else{
this.isPeople = false
}
this.onLoad();
},
filters: {
@ -952,6 +969,9 @@ export default {
}
}
},
computed:{
...mapGetters(["userInfo", "permission"]),
},
methods: {
getRowKey(row) {
return row.id;
@ -973,7 +993,6 @@ export default {
//
handleSuccess(response,file,fileList){
this.imgList.push(response.data)
this.fileList.push({url:response.data})
},
//
handleRemove(file, fileList){
@ -1058,6 +1077,12 @@ export default {
content:row.content,
imageId:null
}
this.fileList = []
this.imgList = []
if(row.imageId){
this.imgList.push(process.env.NODE_ENV == 'development' ? row.imageId.replace('127.0.0.1','192.168.1.104') : row.imageId)
this.fileList = [{url:process.env.NODE_ENV == 'development' ? row.imageId.replace('127.0.0.1','192.168.1.104') : row.imageId}]
}
this.showExecuteDialog = true
},
//
@ -1185,6 +1210,12 @@ export default {
// padding-top: 30px;
// padding-bottom: 30px;
// }
/deep/ .avue-crud__pagination {
height: 20px;
padding: 10px;
// padding-top: 30px;
// padding-bottom: 30px;
}
.search-input {
width: 255px;
height: 46px;

@ -168,10 +168,16 @@ export default {
border-color: #e4e7ec;
color: #333333;
}
// /deep/ .avue-crud__pagination {
// height: 30px;
// padding-top: 30px;
// padding-bottom: 30px;
// }
/deep/ .avue-crud__pagination {
height: 30px;
padding-top: 30px;
padding-bottom: 30px;
height: 20px;
padding: 10px;
// padding-top: 30px;
// padding-bottom: 30px;
}
.search-input {
width: 255px;

@ -675,6 +675,12 @@ export default {
// padding-top: 30px;
// padding-bottom: 30px;
// }
/deep/ .avue-crud__pagination {
height: 20px;
padding: 10px;
// padding-top: 30px;
// padding-bottom: 30px;
}
.search-input {
width: 255px;
height: 46px;

@ -221,8 +221,8 @@
placeholder="请选择巡检顺序"
style="width: 98%"
>
<el-option label="顺序" :value="1"></el-option>
<el-option label="随机" :value="2"></el-option>
<el-option label="顺序" :value="'1'"></el-option>
<el-option label="随机" :value="'2'"></el-option>
</el-select>
</el-form-item>
</el-col>
@ -282,7 +282,7 @@
<el-col
:span="6"
style="width: 31%; margin-left: 1%"
v-show="addForm.actionCycleType == 1"
v-if="addForm.actionCycleType == 1"
>
<el-form-item label="计划间隔" prop="actionCycleTime">
<el-date-picker
@ -300,7 +300,7 @@
<el-col
:span="6"
style="width: 31%; margin-left: 1%"
v-show="addForm.actionCycleType == 2"
v-if="addForm.actionCycleType == 2"
>
<el-form-item label="计划间隔" prop="actionCycleTime">
<!-- <el-input-number
@ -1197,6 +1197,7 @@ export default {
cycleMethod:[{required:true,message:'请选择循环方式',trigger:'blur'}],
startDate:[{required:true,message:'请选择开始日期',trigger:'blur'}],
endDate:[{required:true,message:'请选择截止日期',trigger:'blur'}],
actionCycleType:[{required:true,message:'请选择计划周期',trigger:'blur'}]
},
groupList:[],
methodList:[
@ -1462,7 +1463,8 @@ export default {
this.$refs['addForm'].validate((valid) => {
if(valid){
console.log("row ========>", this.addForm);
if(this.addForm.actionCycleType != ''){
console.log('type ====>',this.addForm.actionCycleType)
if(this.addForm.actionCycleType){
if(!this.addForm.actionCycleTime){
this.$message.warning('计划间隔不可为空')
return
@ -1584,6 +1586,12 @@ export default {
// padding-top: 30px;
// padding-bottom: 30px;
// }
/deep/ .avue-crud__pagination {
height: 20px;
padding: 10px;
// padding-top: 30px;
// padding-bottom: 30px;
}
.search-input {
width: 255px;
height: 46px;

@ -379,6 +379,12 @@ export default {
// padding-top: 30px;
// padding-bottom: 30px;
// }
/deep/ .avue-crud__pagination {
height: 20px;
padding: 10px;
// padding-top: 30px;
// padding-bottom: 30px;
}
.search-input {
width: 255px;
height: 46px;

@ -311,6 +311,12 @@ export default {
// padding-top: 30px;
// padding-bottom: 30px;
// }
/deep/ .avue-crud__pagination {
height: 20px;
padding: 10px;
// padding-top: 30px;
// padding-bottom: 30px;
}
.search-input {
width: 255px;
height: 46px;

@ -1158,7 +1158,7 @@ export default {
//
handleSuccess(response,file,fileList){
this.imgList.push(response.data)
this.fileList.push({url:response.data})
// this.fileList.push({url:response.data})
},
handleRemove(file, fileList){
if(file.status == "success"){
@ -1291,6 +1291,7 @@ export default {
console.log('res ============>',res)
this.pointsForm = res.data.data;
this.pointsForm.orderList = this.pointsForm.checkItemList
this.pointsForm.picture = process.env.NODE_ENV == 'development' ? this.pointsForm.picture.replace('127.0.0.1','192.168.1.104') : this.pointsForm.picture
this.showPointDialog = true;
})
},
@ -1358,7 +1359,8 @@ export default {
console.log('res ============>',res)
this.addForm = res.data.data;
this.addForm.orderList = this.addForm.checkItemList
this.fileList = [{url:this.addForm.picture}]
this.imgList.push(process.env.NODE_ENV == 'development' ? this.addForm.picture.replace('127.0.0.1','192.168.1.104') : this.addForm.picture)
this.fileList = [{url:process.env.NODE_ENV == 'development' ? this.addForm.picture.replace('127.0.0.1','192.168.1.104') : this.addForm.picture}]
this.title = '编辑巡检点位'
this.showAddDialog = true;
this.$nextTick(() =>{
@ -1442,6 +1444,12 @@ export default {
// padding-top: 30px;
// padding-bottom: 30px;
// }
/deep/ .avue-crud__pagination {
height: 20px;
padding: 10px;
// padding-top: 30px;
// padding-bottom: 30px;
}
.search-input {
width: 255px;
height: 46px;

@ -718,4 +718,5 @@ export default {
/deep/ .avue-crud__menu {
display: none;
}
</style>

@ -98,7 +98,7 @@
<template slot-scope="{ row }" slot="status">
<span v-if="row.status === 0" style="color: #e56926">停用</span>
<span v-if="row.status === 1" style="color: #34c447">运行中</span>
<span v-if="row.status === 2" style="color: #34c447">已过期</span>
<span v-if="row.status === 2" style="color: #999">已过期</span>
</template>
<template slot-scope="{ row }" slot="type">
<span v-if="row.type === 1">类型1</span>
@ -312,7 +312,7 @@
<el-col
:span="6"
style="width: 31%; margin-left: 1%"
v-show="addForm.actionCycleType == 1 && addForm.cycleMethod == 2"
v-if="addForm.actionCycleType == 1 && addForm.cycleMethod == 2"
>
<el-form-item label="保养间隔" prop="actionCycleTime">
<el-date-picker
@ -330,19 +330,9 @@
<el-col
:span="6"
style="width: 31%; margin-left: 1%"
v-show="addForm.actionCycleType == 2 && addForm.cycleMethod == 2"
v-if="addForm.actionCycleType == 2 && addForm.cycleMethod == 2"
>
<el-form-item label="保养间隔" prop="actionCycleTime">
<!-- <el-input-number
v-model="addForm.actionCycleTime"
type="date"
placeholder="请选择保养间隔"
style="width: 98%"
controls-position="right"
:min="1"
:max="31"
>
</el-input-number> -->
<el-select
v-model="addForm.actionCycleTime"
placeholder="请选择保养间隔"
@ -355,12 +345,11 @@
<el-col
:span="6"
style="width: 31%; margin-left: 1%"
v-show="addForm.actionCycleType == 3 && addForm.cycleMethod == 2"
v-if="addForm.actionCycleType == 3 && addForm.cycleMethod == 2"
>
<el-form-item label="保养间隔" prop="actionCycleTime">
<el-input-number
v-model="addForm.actionCycleTime"
type="date"
placeholder="请选择保养间隔"
style="width: 98%"
controls-position="right"
@ -770,7 +759,7 @@
</div>
<el-descriptions :column="3" border direction="vertical">
<el-descriptions-item span="1" label="循环方式">{{
planForm.cycleMethod == 1 ? '单' : '周期性'
planForm.cycleMethod == 1 ? '单' : '周期性'
}}</el-descriptions-item>
<el-descriptions-item span="1" label="开始时间">{{
planForm.startTime
@ -778,11 +767,11 @@
<el-descriptions-item span="1" label="结束时间">{{
planForm.endTime
}}</el-descriptions-item>
<el-descriptions-item span="1" label="周期" v-show=" planForm.cycleMethod == 2">{{
planForm.actionCycleType == 1 ? '年' : planForm.actionCycleType == 2 ? '月' : '间隔'
<el-descriptions-item span="1" label="周期" v-if="planForm.cycleMethod == 2">{{
planForm.actionCycleType == 1 ? '年' : planForm.actionCycleType == 2 ? '月' : planForm.actionCycleType == 3 ? '间隔' : ''
}}</el-descriptions-item>
<el-descriptions-item span="1" label="周期时间">{{
planForm.actionCycleTime
<el-descriptions-item span="1" label="周期时间" v-if="planForm.cycleMethod == 2">{{
planForm.actionCycleType == 2 ? planForm.actionCycleTime + '日' : planForm.actionCycleTime
}}</el-descriptions-item>
</el-descriptions>
<div class="add_all">
@ -1285,9 +1274,15 @@ export default {
},
//
handleEdit(row, index) {
this.addForm.actionCycleTime = ''
this.addForm.orderList = []
getPlanDetail(row.id).then(res =>{
this.addForm = res.data.data;
if(this.addForm.actionCycleType == 2){
this.addForm.actionCycleTime = Number(this.addForm.actionCycleTime)
}
this.addForm.orderList = this.addForm.projectList
console.log('actionCycleTime ====>',this.addForm.actionCycleTime)
this.showAddDialog = true
})
},
@ -1361,11 +1356,12 @@ export default {
border-color: #e4e7ec;
color: #333333;
}
// /deep/ .avue-crud__pagination {
// height: 30px;
// padding-top: 30px;
// padding-bottom: 30px;
// }
/deep/ .avue-crud__pagination {
height: 20px;
padding: 10px;
// padding-top: 30px;
// padding-bottom: 30px;
}
.search-input {
width: 255px;
height: 46px;

@ -414,11 +414,12 @@ export default {
border-color: #e4e7ec;
color: #333333;
}
// /deep/ .avue-crud__pagination {
// height: 30px;
// padding-top: 30px;
// padding-bottom: 30px;
// }
/deep/ .avue-crud__pagination {
height: 20px;
padding: 10px;
// padding-top: 30px;
// padding-bottom: 30px;
}
.search-input {
width: 255px;
height: 46px;

@ -239,9 +239,10 @@ export default {
color: #333333;
}
/deep/ .avue-crud__pagination {
height: 30px;
padding-top: 30px;
padding-bottom: 30px;
height: 20px;
padding: 10px;
// padding-top: 20px;
// padding-bottom: 20px;
}
.search-input {
width: 255px;

@ -107,7 +107,7 @@
>
</template>
<template slot="menuRight">
<el-button class="search" style="width: 120px" @click="handleAdd"
<el-button class="search" style="width: 120px" @click="handleAdd" v-show="permission.oiling_task_add"
>新建</el-button
>
</template>
@ -122,10 +122,10 @@
</template>
<template slot-scope="{ row, index }" slot="menu">
<el-button @click="handleView(row, index)" class="look">查看</el-button>
<el-button @click="handleEdit(row, index)" class="look">编辑</el-button>
<el-button v-show="row.status != 3 && row.status != 2" @click="handleCancel(row, index)" class="look">取消</el-button>
<el-button @click="handleRepair(row, index)" class="look" v-show="row.status != 3 && row.status != 2">保养</el-button>
<el-button @click="handleComplete(row, index)" class="look" v-show="row.status != 3 && row.status != 2">完成</el-button
<el-button @click="handleEdit(row, index)" class="look" v-show="permission.oiling_task_edit">编辑</el-button>
<el-button v-show="row.status != 3 && row.status != 2 && permission.oiling_task_cancel" @click="handleCancel(row, index)" class="look" >取消</el-button>
<el-button @click="handleRepair(row, index)" class="look" v-show="row.status != 3 && row.status != 2 && permission.oiling_task_save">保养</el-button>
<el-button @click="handleComplete(row, index)" class="look" v-show="row.status != 3 && row.status != 2 && permission.oiling_task_finish">完成</el-button
>
</template>
</avue-crud>
@ -937,7 +937,7 @@
:before-close="handleClose"
:cell-style="tableCellStyle"
:visible.sync="showRepairDialog"
title="编辑"
title="保养"
width="70%"
:append-to-body="true"
:close-on-click-modal="false"
@ -974,12 +974,13 @@
style="width: 98%"
v-model="repairForm.name"
placeholder="请输入名称"
readonly
></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="width: 31%; margin-left: 1%">
<el-form-item label="执行班组" prop="groupId">
<el-select
<!-- <el-select
v-model="repairForm.groupId"
placeholder="请选择执行班组"
style="width: 98%"
@ -990,17 +991,18 @@
:label="item.fullName"
:value="item.id"
></el-option>
</el-select>
</el-select> -->
<el-input v-if="userInfo.role_name == '保养人员'" v-model="userInfo.dept_name" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="width: 31%; margin-left: 1%">
<el-form-item label="预计工时(时)" prop="time">
<el-form-item label="预计工时(时)" prop="totalCost">
<!-- <el-input
style="width: 98%"
v-model="repairForm.time"
placeholder="请输入预计工时"
></el-input> -->
<el-input-number style="width: 98%" controls-position="right" v-model="addForm.totalCost" :min="0" :precision="1" :step="1"></el-input-number>
<el-input-number disabled style="width: 98%" controls-position="right" v-model="repairForm.totalCost" :min="0" :precision="1" :step="1"></el-input-number>
</el-form-item>
</el-col>
</el-row>
@ -1028,6 +1030,7 @@
v-model="repairForm.assetId"
placeholder="请选择设备"
style="width: 98%"
disabled
>
<el-option
v-for="item in deviceList"
@ -1298,6 +1301,7 @@ import { getGroup, getDeviceList } from "@/api/oiling/plan";
import { getTypeList,getProList } from "@/api/oiling/project";
import {getStatus} from "@/api/lims/instrument";
import { userList } from "@/api/plugin/workflow/process";
import { mapGetters } from "vuex";
let that = this;
export default {
data() {
@ -1491,8 +1495,7 @@ export default {
userList(1,200).then(res =>{
this.userData = res.data.data.records
})
// let json = {"lat":"31.375299094542086", "lng":"31.375299094542086","mac":"YYBJLXDIANXIN001", "type":"2","floorNo":"2","buildingNo": "1"}
// console.log('json ==========>',(json.mac))
console.log('userIn ====>',this.userInfo)
this.onLoad();
},
filters: {
@ -1537,6 +1540,9 @@ export default {
}
},
},
computed:{
...mapGetters(["userInfo", "permission"]),
},
methods: {
//
currentChange(currentPage) {
@ -1636,7 +1642,6 @@ export default {
handleUpdate(){
this.$refs['addForm'].validate((valid) => {
if(valid){
console.log('addForm ===========>',this.addForm)
if(this.addForm.orderList.length == 0){
this.$message.warning('请至少选择一个保养项目')
}else{
@ -1648,7 +1653,6 @@ export default {
this.addForm.projectList.push({id:item.id})
}
})
console.log('projectList ===========>',this.addForm.projectList)
let params = {
name:this.addForm.name,
totalCost:this.addForm.totalCost,
@ -1666,7 +1670,8 @@ export default {
assetName:this.addForm.assetName,
assetStatus:this.addForm.assetStatus,
projectList:this.addForm.projectList,
notes:this.addForm.notes
notes:this.addForm.notes,
id:this.addForm.id
}
saveTask(params).then(res =>{
if(res.data.code == 200){
@ -1896,9 +1901,10 @@ export default {
color: #333333;
}
/deep/ .avue-crud__pagination {
height: 30px;
padding-top: 30px;
padding-bottom: 30px;
height: 20px;
padding: 10px;
// padding-top: 30px;
// padding-bottom: 30px;
}
.search-input {
width: 255px;

@ -41,7 +41,8 @@ export default {
userUrl: {
type: String,
default: () => {
return '/api/blade-user/search/user'
return '/api/blade-user/page'
// return '/api/blade-user/search/user'
}
},
change: Function

@ -58,6 +58,7 @@
<script>
import { getUser } from "@/api/system/user";
import { detail } from "@/api/system/param.js";
import { mapGetters } from "vuex";
export default {
props: {
defaultChecked: String,
@ -65,7 +66,8 @@ export default {
userUrl: {
type: String,
default: () => {
return "/api/blade-user/search/user";
return "/api/blade-user/page";
// return "/api/blade-user/search/user";
},
},
customOption: Object,
@ -110,6 +112,7 @@ export default {
});
return Array.from(names).join(",");
},
...mapGetters(["userInfo", "permission"]),
},
data() {
return {
@ -128,7 +131,7 @@ export default {
query: {},
loading: false,
page: {
pageSize: 8,
pageSize: 10,
currentPage: 1,
total: 0,
},
@ -301,9 +304,12 @@ export default {
const param = {
current: page.currentPage,
size: page.pageSize,
deptId:this.userInfo.dept_id,
...Object.assign(params, this.query),
};
console.log('url ====>',this.userUrl)
this.$axios.get(this.userUrl, { params: param }).then((res) => {
console.log('res ===>',res)
this.page.total = this.getAsVal(res, this.props.total);
this.data = this.getAsVal(res, this.props.records) || [];
this.loading = false;

@ -195,4 +195,10 @@ export default {
border-radius: 0;
margin-left: 10px;
}
/deep/ .avue-crud__pagination {
height: 20px;
padding: 10px;
// padding-top: 30px;
// padding-bottom: 30px;
}
</style>

@ -735,10 +735,16 @@ export default {
border-color: #e4e7ec;
color: #333333;
}
// /deep/ .avue-crud__pagination {
// height: 30px;
// padding-top: 30px;
// padding-bottom: 30px;
// }
/deep/ .avue-crud__pagination {
height: 30px;
padding-top: 30px;
padding-bottom: 30px;
height: 20px;
padding: 10px;
// padding-top: 30px;
// padding-bottom: 30px;
}
.search-input {
width: 255px;

@ -126,6 +126,11 @@
></el-input>
</el-form-item>
</el-col>
<el-col :span="6" v-if="form.attach">
<el-form-item label="实景图片">
<img :src="form.attach" alt="" style="width:150px;height:150px">
</el-form-item>
</el-col>
</el-row>
<!-- 第二组 -->
<!-- <div class="add_all" v-if="this.status !== 0">
@ -646,7 +651,8 @@ export default {
status2: "",
repairTeam:'',
repairPerson:'',
repairContent:''
repairContent:'',
attach:''
},
formRules:{
repairTeam:[
@ -760,6 +766,9 @@ export default {
this.perData = res.data.data
this.form.repairPerson = row.repairPerson
})
if(process.env.NODE_ENV == 'development'){
this.form.attach = this.form.attach.replace('127.0.0.1','192.168.1.104')
}
//
if(row.viewType !== 'view'){

Loading…
Cancel
Save