wangxingyuan 9 months ago
parent
commit
ae4325830b
13 changed files with 1082 additions and 174 deletions
  1. +61
    -0
      src/api/area/area.js
  2. +56
    -0
      src/api/area/area_management.js
  3. +16
    -0
      src/api/basedata/patrolpointmnt/patrolpoint.js
  4. +41
    -0
      src/api/basedata/patrolpointmnt/patroltype.js
  5. +8
    -8
      src/api/monitor/job.js
  6. +5
    -5
      src/api/monitor/jobLog.js
  7. +2
    -1
      src/plugins/download.js
  8. +251
    -78
      src/views/area/area.vue
  9. +242
    -35
      src/views/area/area_management.vue
  10. +146
    -0
      src/views/area/components/treeSelect.vue
  11. +104
    -17
      src/views/basedata/patrolpointmnt/patrolpoint/index.vue
  12. +148
    -28
      src/views/basedata/patrolpointmnt/patroltype/index.vue
  13. +2
    -2
      src/views/monitor/job/index.vue

+ 61
- 0
src/api/area/area.js View File

@ -0,0 +1,61 @@
import request from '@/utils/request';
// 初始化list
export function getList(query) {
return request({
url: '/basedata/area/list',
method: 'get',
params: query
})
}
// 区域类型查询
export function areaType(query) {
return request({
url: '/system/dict/data/type/area_type',
method: 'get',
// params: query
})
}
// 区域类型查询
export function sysNormalDisable(query) {
return request({
url: '/system/dict/data/type/sys_normal_disable',
method: 'get',
// params: query
})
}
// 新增
export function postAdd(query) {
return request({
url: '/basedata/area/add',
method: 'POST',
data: query
})
}
// 编辑查询
export function getItem(query) {
return request({
url: `/basedata/area/${query}`,
method: 'get',
})
}
// 编辑
export function edit(query) {
return request({
url: `/basedata/area/update`,
method: 'post',
data: query
})
}
// 删除
export function postRemove(query) {
return request({
url: `/basedata/area/remove/${query}`,
method: 'post',
// params: query
})
}

+ 56
- 0
src/api/area/area_management.js View File

@ -0,0 +1,56 @@
import request from '@/utils/request';
// 初始化list
export function getList(query) {
return request({
url: '/patrol/maintarea/list',
method: 'get',
params: query
})
}
// 树结构查询
export function treeAreaDeviceSelectAgain(query) {
return request({
url: '/basedata/prodevmnt/device/treeAreaDeviceSelectAgain',
method: 'get',
// params: query
})
}
// 新增
export function postAdd(query) {
return request({
url: '/patrol/maintarea',
method: 'POST',
data: query
})
}
// 删除
export function postRemove(query) {
return request({
url: `/patrol/maintarea/remove/${query}`,
method: 'post',
// params: query
})
}
// 编辑查询
// export function getItem(query) {
// return request({
// url: `/basedata/alg/${query}`,
// method: 'get',
// })
// }
// 编辑
export function edit(query) {
// console.log(query,1111111)
// return
return request({
url: `/patrol/maintarea/update?lineId=${query.lineId}&enable=${query.enable}`,
method: 'get',
// data: query
})
}

+ 16
- 0
src/api/basedata/patrolpointmnt/patrolpoint.js View File

@ -39,4 +39,20 @@ export function edit(query) {
method: 'post',
data: query
})
}
// 智能识别类型父级
export function algList(query) {
return request({
url: `/basedata/alg/list`,
method: 'get',
// params: query
})
}
// 智能识别类型子级
export function subtypeList(query) {
return request({
url: `/basedata/subtype/list`,
method: 'get',
// params: query
})
}

+ 41
- 0
src/api/basedata/patrolpointmnt/patroltype.js View File

@ -0,0 +1,41 @@
import request from '@/utils/request';
export function getList(query) {
return request({
url: '/basedata/patrolpointmnt/patroltype/list',
method: 'get',
params: query
})
}
// 新增
export function postAdd(query) {
return request({
url: '/basedata/patrolpointmnt/patroltype',
method: 'post',
data: query
})
}
// 编辑查询
export function getItem(query) {
return request({
url: `/basedata/patrolpointmnt/patroltype/${query}`,
method: 'get',
})
}
// 编辑
export function edit(query) {
return request({
url: `/basedata/patrolpointmnt/patroltype/edit`,
method: 'post',
data: query
})
}
// 删除
export function postRemove(query) {
return request({
url: `/basedata/patrolpointmnt/patroltype/remove/${query}`,
method: 'post',
// params: query
})
}

+ 8
- 8
src/api/monitor/job.js View File

@ -20,7 +20,7 @@ export function getJob(jobId) {
// 新增定时任务调度
export function addJob(data) {
return request({
url: '/monitor/job',
url: '/schedule/job',
method: 'post',
data: data
})
@ -30,7 +30,7 @@ export function addJob(data) {
export function updateJob(data) {
return request({
url: '/schedule/job/edit',
method: 'put',
method: 'POST',
data: data
})
}
@ -38,8 +38,8 @@ export function updateJob(data) {
// 删除定时任务调度
export function delJob(jobId) {
return request({
url: '/monitor/job/' + jobId,
method: 'delete'
url: '/schedule/job/remove/' + jobId,
method: 'POST'
})
}
@ -50,8 +50,8 @@ export function changeJobStatus(jobId, status) {
status
}
return request({
url: '/monitor/job/changeStatus',
method: 'put',
url: '/schedule/job/changeStatus',
method: 'POST',
data: data
})
}
@ -64,8 +64,8 @@ export function runJob(jobId, jobGroup) {
jobGroup
}
return request({
url: '/monitor/job/run',
method: 'put',
url: '/schedule/job/run',
method: 'POST',
data: data
})
}

+ 5
- 5
src/api/monitor/jobLog.js View File

@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询调度日志列表
export function listJobLog(query) {
return request({
url: '/monitor/jobLog/list',
url: '/schedule/job/log/list',
method: 'get',
params: query
})
@ -12,15 +12,15 @@ export function listJobLog(query) {
// 删除调度日志
export function delJobLog(jobLogId) {
return request({
url: '/monitor/jobLog/' + jobLogId,
method: 'delete'
url: '/schedule/jobLog/' + jobLogId,
method: 'POST'
})
}
// 清空调度日志
export function cleanJobLog() {
return request({
url: '/monitor/jobLog/clean',
method: 'delete'
url: '/schedule/job/log/clean',
method: 'POST'
})
}

+ 2
- 1
src/plugins/download.js View File

@ -15,7 +15,8 @@ export default {
method: 'get',
url: url,
responseType: 'blob',
headers: { 'Authorization': 'Bearer ' + getToken() }
// headers: { 'Authorization': 'Bearer ' + getToken() }
headers: {'Content-Type': 'multipart/form-data'},
}).then((res) => {
const isBlob = blobValidate(res.data);
if (isBlob) {


+ 251
- 78
src/views/area/area.vue View File

@ -3,30 +3,38 @@
<el-form :inline="true" :model="queryParams">
<el-form-item :label="$t('area.areaName')">
<el-input
v-model="queryParams.user"
v-model="queryParams.areaName"
:placeholder="$t('share.PleaseEnter') + $t('area.areaName')"
></el-input>
</el-form-item>
<el-form-item :label="$t('area.regionCode')">
<el-input
v-model="queryParams.user"
v-model="queryParams.areaCode"
:placeholder="$t('share.PleaseEnter') + $t('area.regionCode')"
></el-input>
</el-form-item>
<el-form-item :label="$t('area.areaType')">
<el-select
v-model="queryParams.region"
v-model="queryParams.areaType"
:placeholder="$t('share.PleaseChoose') + $t('area.areaType')"
>
<!-- <el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option> -->
<el-option
:label="item.dictLabel"
:value="item.dictValue"
v-for="item in areaTypeData"
:key="item.dictValue"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini">{{
$t("share.search")
}}</el-button>
<el-button icon="el-icon-refresh" size="mini">{{
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>{{ $t("share.search") }}</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">{{
$t("share.reset")
}}</el-button>
</el-form-item>
@ -43,12 +51,12 @@
>
</el-col>
<el-col :span="1.5">
<el-button icon="el-icon-sort" plain size="mini">{{
<el-button icon="el-icon-sort" plain size="mini" @click="toggleExpandAll(isExpandAll)">{{
$t("area.UnfoldAndFold")
}}</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" size="mini">{{
<el-button type="primary" size="mini" @click="handleExport">{{
$t("share.export")
}}</el-button>
</el-col>
@ -57,56 +65,53 @@
<el-table
:data="tableData"
style="width: 100%; margin-bottom: 20px"
row-key="id"
default-expand-all
row-key="areaId"
:default-expand-all="isExpandAll"
:key="treeKey"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
>
<el-table-column prop="date" :label="$t('area.areaName')">
<el-table-column prop="areaName" :label="$t('area.areaName')">
</el-table-column>
<el-table-column
prop="name"
prop="areaCode"
:label="$t('area.regionCode')"
width="180"
align="center"
>
</el-table-column>
<el-table-column prop="address" :label="$t('area.sort')" align="center">
<el-table-column prop="orderNum" :label="$t('area.sort')" align="center">
</el-table-column>
<el-table-column
prop="address"
:label="$t('area.areaType')"
align="center"
>
<el-table-column :label="$t('area.areaType')" align="center">
<template slot-scope="scope">
<el-tag type="success">{{ areaTypeFn(scope.row.areaType) }}</el-tag>
</template>
</el-table-column>
<el-table-column
prop="address"
prop="createTime"
:label="$t('share.CreationTime')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
:label="$t('share.operate')"
width="180"
align="center"
>
<el-table-column :label="$t('share.operate')" width="180" align="center">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="handleEdit(scope.$index, scope.row)"
@click="handleEdit(scope.row.areaId)"
>{{ $t("share.edit") }}</el-button
>
<el-button
type="text"
size="small"
@click="handleAdd(scope.$index, scope.row)"
@click="handleAdd(scope.row.areaId)"
>{{ $t("share.new") }}</el-button
>
<el-button
type="text"
size="small"
@click="handleDelete(scope.$index, scope.row)"
@click="handleDelete(scope.row.areaId)"
v-if="scope.row.parentId !== 0"
>{{ $t("share.delete") }}</el-button
>
</template>
@ -126,21 +131,13 @@
:rules="rules"
ref="ruleForm"
>
<el-col :span="12">
<el-form-item
:label="$t('area.SuperiorRegion')"
prop="SuperiorRegion"
>
<el-select
v-model="dialogForm.SuperiorRegion"
:placeholder="
$t('share.PleaseChoose') + $t('area.SuperiorRegion')
"
style="width: 100%"
>
<!-- <el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option> -->
</el-select>
<el-col :span="12" v-if="dialogForm.parentId !== 0">
<el-form-item :label="$t('area.SuperiorRegion')" prop="parentId">
<treeSelect
:menuOptions="menuOptions"
@selectValue="selectValue"
:editData="editData"
/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -148,10 +145,13 @@
<el-select
v-model="dialogForm.areaType"
:placeholder="$t('share.PleaseChoose') + $t('area.areaType')"
style="width: 100%"
>
<!-- <el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option> -->
<el-option
:label="item.dictLabel"
:value="item.dictValue"
v-for="item in areaTypeData"
:key="item.dictValue"
></el-option>
</el-select>
</el-form-item>
</el-col>
@ -166,14 +166,15 @@
<el-col :span="12">
<el-form-item :label="$t('area.regionCode')">
<el-input
v-model="dialogForm.areaCode"
:placeholder="$t('share.PleaseEnter') + $t('area.regionCode')"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('area.sort')" prop="sort">
<el-form-item :label="$t('area.sort')" prop="orderNum">
<el-input-number
v-model="dialogForm.sort"
v-model="dialogForm.orderNum"
controls-position="right"
:min="0"
></el-input-number>
@ -182,67 +183,239 @@
</el-form>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">{{$t('share.cancel')}}</el-button>
<el-button type="primary" @click="dialogVisible = false"
>{{$t('share.confirm')}}</el-button
>
<el-button @click="dialogVisible = false">{{
$t("share.cancel")
}}</el-button>
<el-button type="primary" @click="submitForm">{{
$t("share.confirm")
}}</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {
getList,
areaType,
postRemove,
postAdd,
getItem,
edit,
} from "@/api/area/area";
// import Treeselect from "@riophae/vue-treeselect";
// import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import treeSelect from "./components/treeSelect.vue";
export default {
components: { treeSelect },
data() {
return {
queryParams: {},
tableData: [{}],
dialogVisible: false,
title: this.$t("area.AddArea"),
dialogForm: {
// num: 0,
},
dialogForm: {},
rules: {
SuperiorRegion: [
{
required: true,
message:
this.$t("share.PleaseChoose") + this.$t("area.SuperiorRegion"),
trigger: "change",
},
],
// parentId: [
// {
// required: true,
// message:
// this.$t("share.PleaseChoose") + this.$t("area.SuperiorRegion"),
// trigger: "change",
// },
// ],
areaName: [
{
required: true,
message:
this.$t("share.PleaseEnter") + this.$t("area.areaName"),
message: this.$t("share.PleaseEnter") + this.$t("area.areaName"),
trigger: "blur",
},
],
sort:[
{
orderNum: [
{
required: true,
message:
this.$t("share.PleaseChoose") + this.$t("area.sort"),
message: this.$t("share.PleaseChoose") + this.$t("area.sort"),
trigger: "change",
}
]
},
],
},
areaTypeData: [],
queryParamsType: 0,
//
menuOptions: [],
type: 0,
editData: {},
isExpandAll:true
};
},
mounted() {
this.init();
areaType().then((res) => {
console.log(res, 1111111);
if (res.code == 200) {
this.areaTypeData = res.data;
}
});
},
methods: {
//
init() {
getList(this.queryParams).then((res) => {
if (res.code == 200) {
this.menuOptions = this.tableListFn(res.data);
if (this.queryParamsType == 0) {
this.tableData = this.tableListFn(res.data);
} else {
this.tableData = res.data;
}
this.$message({
type: "success",
message: "查询成功",
});
}
});
},
//
tableListFn(list) {
var map = {},
node,
tree = [];
for (let i = 0; i < list.length; i++) {
map[list[i].areaId] = list[i];
list[i].children = [];
}
for (let i = 0; i < list.length; i += 1) {
list[i];
if (list[i].parentId !== 0) {
//
map[list[i].parentId].children.push(list[i]); // children
} else {
//
tree.push(list[i]); //
}
}
return tree;
},
areaTypeFn(type) {
var name = "";
this.areaTypeData.forEach((item) => {
if (item.dictValue == type) {
name = item.dictLabel;
}
});
return name;
},
//
handleQuery() {
console.log(this.queryParams);
if (JSON.stringify(this.queryParams) === "{}") {
this.queryParamsType = 0;
} else {
this.queryParamsType = 1;
}
this.init();
},
//
resetQuery() {
this.queryParams = {};
this.queryParamsType = 0;
this.init();
},
add() {
this.dialogForm = {};
this.type = 0;
this.dialogVisible = true;
this.title = this.$t("area.AddArea");
},
handleEdit(){
this.dialogVisible = true;
handleEdit(id) {
this.type = 1;
this.title = this.$t("area.EditArea");
getItem(id).then((res) => {
if (res.code == 200) {
this.dialogForm = res.data;
this.editData = res.data;
this.dialogVisible = true;
}
});
},
handleAdd() {
this.dialogVisible = true;
handleAdd(areaId) {
this.dialogForm = {};
this.dialogForm.parentId=areaId;
let data = {
parentId: areaId,
};
this.title = this.$t("area.AddArea");
this.editData = data;
this.dialogVisible = true;
},
selectValue(val) {
this.dialogForm.parentId = val;
},
submitForm() {
console.log(this.dialogForm, 111111111);
// return
if (!this.dialogForm.parentId)
return this.$message.error("请选择上级区域");
if (this.type == 0) {
postAdd(this.dialogForm).then((res) => {
if (res.code == 200) {
this.$message({
type: "success",
message: "添加成功!",
});
this.dialogVisible = false;
this.init();
}
});
} else {
edit(this.dialogForm).then((res) => {
if (res.code == 200) {
this.$message({
type: "success",
message: "编辑成功!",
});
this.dialogVisible = false;
this.init();
}
});
}
},
//
handleDelete(id) {
this.$confirm(`确定要删除Id为${id}的数据吗?`, "删除", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
postRemove(id).then((res) => {
if (res.code == 200) {
this.$message({
type: "success",
message: "删除成功!",
});
this.init();
}
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
toggleExpandAll(isExpandAll){
this.treeKey = +new Date()
this.isExpandAll = !isExpandAll;
},
/** 导出按钮操作 */
handleExport() {
this.download('/basedata/area/export', {
...this.queryParams
}, `area_${new Date().getTime()}.xlsx`)
}
},
};
</script>


+ 242
- 35
src/views/area/area_management.vue View File

@ -2,37 +2,97 @@
<div class="app-container">
<el-form :inline="true" :model="queryParams" class="demo-form-inline">
<el-form-item :label="$t('area_management.StartDate')">
<el-date-picker v-model="value1" type="date" :placeholder="$t('share.PleaseChoose')+$t('share.StartDate')">
<el-date-picker
v-model="queryParams.createTime"
type="date"
:placeholder="
$t('share.PleaseChoose') + $t('area_management.StartDate')
"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item :label="$t('area_management.EndDate')">
<el-date-picker v-model="value1" type="date" :placeholder="$t('share.PleaseChoose')+$t('share.EndDate')">
<el-date-picker
v-model="queryParams.startTime"
type="date"
:placeholder="
$t('share.PleaseChoose') + $t('area_management.EndDate')
"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search">{{$t('share.search')}}</el-button>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{
$t("share.search")
}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{
$t("share.reset")
}}</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10">
<el-col :span="1.5">
<el-button type="primary" icon="el-icon-plus" @click="add">{{$t('share.new')}}</el-button>
<el-button type="primary" icon="el-icon-plus" @click="add">{{
$t("share.new")
}}</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain>{{ $t('area_management.RegionalDistribution') }}</el-button>
<el-button type="primary" plain>{{
$t("area_management.RegionalDistribution")
}}</el-button>
</el-col>
</el-row>
<el-table :data="tableData" border style="width: 100%; margin-top: 10px">
<el-table-column type="selection" width="55" align="center" />
<el-table-column :label="$t('area_management.index')" type="index" align="center" width="55"/>
<el-table-column prop="date" :label="$t('area_management.MaintenanceAreaConfigurationCode')" align="center" />
<el-table-column prop="date" :label="$t('area_management.TheMaintenanceTimelineBegins')" align="center" />
<el-table-column prop="date" :label="$t('area_management.EndOfMaintenanceTimeNode')" align="center" />
<el-table-column prop="date" :label="$t('area_management.ValidOrNot')" align="center" />
<el-table-column
:label="$t('area_management.index')"
type="index"
align="center"
width="55"
/>
<el-table-column
prop="configCode"
:label="$t('area_management.MaintenanceAreaConfigurationCode')"
align="center"
/>
<el-table-column
prop="createTime"
:label="$t('area_management.TheMaintenanceTimelineBegins')"
align="center"
/>
<el-table-column
prop="endTime"
:label="$t('area_management.EndOfMaintenanceTimeNode')"
align="center"
/>
<el-table-column
prop="enable"
:label="$t('area_management.ValidOrNot')"
align="center"
>
<template slot-scope="scope">
<el-tag type="success" v-if="scope.row.enable == 1">有效</el-tag>
<el-tag type="info" v-if="scope.row.enable == 0">无效</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button type="text" icon="el-icon-edit"> {{ $t('area_management.loseEfficacy') }} </el-button>
<el-button type="text" icon="el-icon-delete"> {{ $t('share.delete') }}</el-button>
<el-button
type="text"
icon="el-icon-edit"
@click="handleEdit(scope.row)"
>
<!-- {{ $t("area_management.loseEfficacy") }} -->
{{ scope.row.enable == 1 ? "无效" : "有效" }}
</el-button>
<el-button type="text" icon="el-icon-delete" @click="handleDelete(scope.row.lineId)">
{{ $t("share.delete") }}</el-button
>
</template>
</el-table-column>
</el-table>
@ -51,38 +111,59 @@
<el-row :gutter="10">
<el-col :span="9">
<el-input></el-input>
<!-- :data="treeData"
:props="defaultProps"
@check-change="handleCheckChange"
:render-after-expand="false"
show-checkbox -->
<el-tree
:data="treeData"
:props="defaultProps"
@node-click="handleNodeClick"
:load="loadNode"
lazy
show-checkbox
></el-tree>
</el-col>
<el-col :span="15">
<el-form :model="dialogForm" label-width="160px">
<el-form-item :label="$t('area_management.type')" >
<el-select :placeholder="$t('share.PleaseChoose')+$t('area_management.type')">
<el-form-item :label="$t('area_management.type')">
<el-select
v-model="dialogForm.deviceLevel"
:placeholder="
$t('share.PleaseChoose') + $t('area_management.type')
"
>
<el-option label="item.label" value="item.value"> </el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('area_management.MaintenanceAreaConfigurationCode')" >
<el-input :placeholder="$t('share.PleaseEnter')+$t('area_management.MaintenanceAreaConfigurationCode')"></el-input>
<el-form-item
:label="$t('area_management.MaintenanceAreaConfigurationCode')"
>
<el-input
v-model="dialogForm.configCode"
:placeholder="
$t('share.PleaseEnter') +
$t('area_management.MaintenanceAreaConfigurationCode')
"
></el-input>
</el-form-item>
<el-form-item :label="$t('area_management.TimeAndDate')" >
<el-form-item :label="$t('area_management.TimeAndDate')">
<el-date-picker
v-model="value1"
v-model="dateRange"
type="daterange"
range-separator="-"
:start-placeholder="$t('area_management.StartDate')"
:end-placeholder="$t('area_management.EndDate')"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item >
<div style="text-align: center;">
<el-button type="primary" >{{ $t('share.confirm') }}</el-button>
<el-button>{{ $t('share.cancel') }}</el-button>
</div>
<el-form-item>
<div style="text-align: center">
<el-button type="primary" @click="submitForm">{{
$t("share.confirm")
}}</el-button>
<el-button>{{ $t("share.cancel") }}</el-button>
</div>
</el-form-item>
</el-form>
</el-col>
@ -92,37 +173,163 @@
</template>
<script>
import {
getList,
treeAreaDeviceSelectAgain,
postRemove,
postAdd,
edit,
} from "@/api/area/area_management";
export default {
data() {
return {
queryParams: {
user: "",
pageNum: 1,
pageSize: 10,
},
total: 4,
tableData: [{}],
title: this.$t('area_management.AddMaintenancePlan'),
tableData: [],
title: this.$t("area_management.AddMaintenancePlan"),
dialogVisible: false,
treeData: [],
defaultProps: {
children: "children",
label: "label",
isLeaf: "leaf", //
},
dialogForm: {},
dateRange: [],
};
},
created() {
this.init();
this.initTree();
},
mounted() {},
methods: {
add(){
submitForm() {
this.dialogForm.startTime = this.dateRange[0];
this.dialogForm.endTime = this.dateRange[1];
},
//
init() {
getList(this.queryParams).then((res) => {
if (res.code == 200) {
this.tableData = res.rows;
this.total = res.total;
this.$message({
message: `查询成功`,
type: "success",
});
}
});
},
initTree() {
treeAreaDeviceSelectAgain().then((res) => {
if (res.code == 200) {
this.treeData = res.data;
// this.treeData=this.flattenTree(res.data)
console.log(this.treeData, 1111111111);
}
});
},
//
handleQuery() {
console.log(this.queryParams);
this.init();
},
//
resetQuery() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
};
this.init();
},
add() {
this.dialogVisible = true;
}
},
handleClose() {
this.dialogVisible = false;
},
// flattenTree(tree) {
// return tree.reduce((acc, node) => {
// acc.push(node);
// if (node.children && node.children.length) {
// acc.push(...this.flattenTree(node.children));
// }
// return acc;
// }, []);
// },
//
handleCheckChange(data, checked, indeterminate) {
console.log(data, checked, indeterminate);
},
loadNode(node, resolve) {
console.log(node);
if (node.level === 0) {
setTimeout(() => {
resolve(this.treeData);
}, 50);
} else if (!node.data.children) {
setTimeout(() => {
resolve([]);
}, 50);
} else if (node.data.children) {
setTimeout(() => {
resolve(node.data.children);
console.log(node.data.children);
}, 50);
}
},
//
handleEdit(row) {
// lineId
let data = {
lineId: row.lineId,
enable: row.enable == 0 ? 1 : 0,
};
edit(data).then((res) => {
if (res.code == 200) {
this.init();
}
});
},
//
handleDelete(id) {
this.$confirm(`确定要删除Id为${id}的数据吗?`, "删除", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
postRemove(id).then((res) => {
if (res.code == 200) {
this.$message({
type: "success",
message: "删除成功!",
});
this.init();
}
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
},
};
</script>
<style lang="scss" scoped>
::v-deep .el-date-editor{
width: 100%;
::v-deep .el-date-editor {
width: 100%;
}
::v-deep .el-select{
width: 100%;
::v-deep .el-select {
width: 100%;
}
</style>

+ 146
- 0
src/views/area/components/treeSelect.vue View File

@ -0,0 +1,146 @@
<template>
<div>
<el-select
class="main-select-tree"
ref="selectTree"
v-model="selectValue"
name="option 1"
style="width: 100%"
>
<!-- otion 1 -->
<el-option
v-for="item in optionData(menuOptions)"
:label="item.label"
:value="item.value"
style="display: none"
/>
<el-tree
class="main-select-el-tree"
ref="selectelTree"
:data="menuOptions"
:props="treeProps"
highlight-current
@node-click="handleNodeClick"
:expand-on-click-node="expandOnClickNode"
default-expand-all
/>
<!-- option 2 -->
<!-- <el-option style="height: 100%; padding: 0;" value="">
<el-tree
class="main-select-el-tree"
ref="selectelTree"
:data="cityData"
:props='treeProps'
@node-click="handleNodeClick"
:expand-on-click-node="expandOnClickNode"
highlight-current
default-expand-all
style="font-weight: normal;"/>
</el-option> -->
</el-select>
</div>
</template>
<script>
export default {
props: {
menuOptions: {
type: Array,
required: true,
},
editData: {
type: Object,
required: true,
},
},
watch: {
editData: {
handler(newVal, oldVal) {
console.log(newVal,11111111);
this.selectValue = newVal.parentId;
},
immediate: true,
},
},
data() {
return {
selectValue: "",
expandOnClickNode: true,
options: [],
treeProps: {
children: "children",
label: "areaName",
},
cityData: [
{
id: 1,
label: "重庆",
children: [
{
id: 2,
label: "渝北区",
},
],
},
{
id: 3,
label: "北京",
children: [
{ id: 4, label: "海淀区" },
{ id: 5, label: "朝阳区" },
],
},
{
id: 6,
label: "四川",
children: [
{
id: 7,
label: "成都",
children: [{ id: "8", label: "成华区" }],
},
],
},
],
};
},
methods: {
/**
* 树形转平面的迭代方法
* option 1的el-option需要此方法绑定数据
*/
optionData(array, result = []) {
array.forEach((item) => {
result.push({ label: item.areaName, value: item.areaId });
if (item.children && item.children.length !== 0) {
this.optionData(item.children, result);
}
});
return JSON.parse(JSON.stringify(result));
},
//
handleNodeClick(node) {
this.selectValue = node.areaName;
this.$refs.selectTree.blur();
console.log(node.areaName, node);
this.$emit("selectValue", node.areaId);
},
},
};
</script>
<style>
.main-select-el-tree .el-tree-node .is-current > .el-tree-node__content {
font-weight: bold;
color: #409eff;
}
.main-select-el-tree .el-tree-node.is-current > .el-tree-node__content {
font-weight: bold;
color: #409eff;
}
</style>

+ 104
- 17
src/views/basedata/patrolpointmnt/patrolpoint/index.vue View File

@ -82,7 +82,7 @@
align="center"
>
<template slot-scope="scope">
<span @click="tableTyle()" class="intelligenceType">
<span @click="tableTyle(scope.row)" class="intelligenceType">
{{
scope.row.algSubtypeName
? scope.row.algSubtypeName
@ -216,10 +216,14 @@
:before-close="typehandleClose"
>
<el-table
:data="tableData"
:data="dialogTable"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
row-key="id"
height="500px"
@selection-change="handleSelectionChangeDialog"
ref="multipleTable"
default-expand-all
border
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
@ -228,28 +232,43 @@
width="55"
align="center"
/>
<el-table-column :label="$t('patrolpoint.AlgorithmName')" prop="name" />
<el-table-column :label="$t('patrolpoint.AlgorithmName')">
<template slot-scope="scope">
{{
scope.row.algSubtypeName
? scope.row.algSubtypeName
: scope.row.algName
}}
</template>
</el-table-column>
<el-table-column
:label="$t('patrolpoint.ThresholdUpperLimit')"
align="center"
prop="name"
prop="upperValue"
:render-header="addRedStar"
>
<template slot-scope="scope" v-if="scope.row.type == 0">
<el-input v-model="scope.row.name" />
<template slot-scope="scope" v-if="scope.row.upperFlag == 1">
<el-input v-model="scope.row.upperValue" />
</template>
</el-table-column>
<el-table-column
:label="$t('patrolpoint.LowerThresholdLimit')"
align="center"
:render-header="addRedStar"
prop="name"
prop="lowerValue"
>
<template slot-scope="scope" v-if="scope.row.type == 0">
<el-input v-model="scope.row.name" />
<template slot-scope="scope" v-if="scope.row.lowerFlag == 1">
<el-input v-model="scope.row.lowerValue" />
</template>
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="typehandleClose">{{ $t("share.cancel") }}</el-button>
<el-button type="primary" @click="dialogTableOk">{{
$t("share.confirm")
}}</el-button>
</span>
</el-dialog>
</div>
</template>
@ -262,7 +281,8 @@ import {
postAdd,
postRemove,
edit,
postUpdate,
algList,
subtypeList,
} from "@/api/basedata/patrolpointmnt/patrolpoint";
export default {
data() {
@ -272,7 +292,7 @@ export default {
pageSize: 10,
},
tableData: [],
total: 10,
total: 0,
dialogVisible: false,
title: this.$t("patrolpoint.AddInspectionPoints"),
typeTitle: this.$t("patrolpoint.SetIntelligentRecognitionType"),
@ -287,6 +307,9 @@ export default {
},
],
},
dialogTable: [],
dialogTableSelect: [],
tableItem: {},
};
},
mounted() {
@ -297,7 +320,7 @@ export default {
init() {
getList(this.queryParams).then((res) => {
this.tableData = res.rows;
this.total = res.data.total;
this.total = res.total;
});
},
//
@ -327,14 +350,12 @@ export default {
this.dialogVisible = true;
this.title = this.$t("patrolpoint.EditInspectionPoints");
getItem(id).then((res) => {
if(res.code==200){
if (res.code == 200) {
this.dialogForm = res.data;
}
});
},
tableTyle() {
this.typedialogVisible = true;
},
//
submitForm(ruleForm) {
this.$refs[ruleForm].validate((v) => {
@ -369,7 +390,6 @@ export default {
this.dialogVisible = false;
},
//
//
handleDelete(id) {
this.$confirm(`确定要删除Id为${id}的数据吗?`, "删除", {
confirmButtonText: "确定",
@ -394,6 +414,73 @@ export default {
});
});
},
//
tableTyle(row) {
this.type = 1;
this.tableItem = row;
this.tableItem.alarmThreshold = JSON.parse(row.alarmThreshold);
subtypeList().then((res0) => {
if (res0.code == 200) {
algList().then((res1) => {
if (res1.code == 200) {
let list = res1.rows;
list.forEach((item) => {
item.children = [];
item.id = `${item.algId}_${item.algId}`;
res0.rows.forEach((i) => {
i.id = i.algSubtypeId;
if (item.algId == i.algId && item.algName == i.algName) {
item.children.push(i);
}
});
});
this.dialogTable = list;
this.typedialogVisible = true;
}
});
}
});
},
//
rowKeyFunc(row) {
if (row.algSubtypeId) {
return row.algSubtypeId;
} else {
return row.algId;
}
},
//
handleSelectionChangeDialog(val) {
this.dialogTableSelect = [];
console.log(val);
val.forEach((item) => {
let data = {
id: `sub_${item.algSubtypeId}`,
code: item.algSubtypeCode || "",
upperValue: item.upperValue || "",
lowerValue: item.lowerValue || "",
};
this.dialogTableSelect.push(data);
});
},
dialogTableOk() {
this.tableItem.alarmThreshold = JSON.stringify(this.dialogTableSelect);
edit(this.tableItem).then((res) => {
if (res.code == 200) {
this.$message({
type: "success",
message: "编辑成功",
});
this.typedialogVisible = false;
this.init();
}
});
},
//
typehandleClose() {
this.typedialogVisible = false;
},
},
};
</script>


+ 148
- 28
src/views/basedata/patrolpointmnt/patroltype/index.vue View File

@ -3,6 +3,7 @@
<el-form v-model="queryParams" :inline="true">
<el-form-item :label="$t('patroltype.ParentDeviceTypeID')">
<el-input
v-model="queryParams.parentId"
:placeholder="
$t('share.PleaseEnter') + ' ' + $t('patroltype.ParentDeviceTypeID')
"
@ -10,6 +11,7 @@
</el-form-item>
<el-form-item :label="$t('patroltype.InspectionTypeName')">
<el-input
v-model="queryParams.patrolTypeName"
:placeholder="
$t('share.PleaseEnter') + ' ' + $t('patroltype.InspectionTypeName')
"
@ -17,6 +19,7 @@
</el-form-item>
<el-form-item :label="$t('patroltype.InspectionTypeCode')">
<el-input
v-model="queryParams.patrolTypeCode"
:placeholder="
$t('share.PleaseEnter') + ' ' + $t('patroltype.InspectionTypeCode')
"
@ -24,6 +27,7 @@
</el-form-item>
<el-form-item :label="$t('patroltype.level')">
<el-input
v-model="queryParams.patrolTypeLevel"
:placeholder="$t('share.PleaseEnter') + ' ' + $t('patroltype.level')"
></el-input>
</el-form-item>
@ -51,7 +55,7 @@
>{{ $t("share.new") }}</el-button
>
</el-col>
<el-col :span="1.5">
<!-- <el-col :span="1.5">
<el-button
type="success"
icon="el-icon-edit"
@ -60,11 +64,16 @@
@click="handleEdit()"
>{{ $t("share.edit") }}</el-button
>
</el-col>
</el-col> -->
<el-col :span="1.5">
<el-button type="danger" icon="el-icon-delete" plain size="mini">{{
$t("share.delete")
}}</el-button>
<el-button
type="danger"
icon="el-icon-delete"
plain
size="mini"
@click="handleDeleteAll"
>{{ $t("share.delete") }}</el-button
>
</el-col>
<el-col :span="1.5">
<el-button type="warning" icon="el-icon-download" plain size="mini">{{
@ -72,50 +81,50 @@
}}</el-button>
</el-col>
</el-row>
<el-table :data="tableData" style="width: 100%; margin-bottom: 20px">
<el-table
:data="tableData"
style="width: 100%; margin-bottom: 20px"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
:label="$t('patroltype.InspectionTypeID')"
prop="name"
prop="patrolTypeId"
align="center"
/>
<el-table-column
:label="$t('patroltype.ParentDeviceTypeID')"
prop="name"
prop="parentId"
align="center"
/>
<el-table-column
:label="$t('patroltype.InspectionTypeName')"
prop="name"
prop="patrolTypeName"
align="center"
/>
<el-table-column
:label="$t('patroltype.InspectionTypeCode')"
prop="name"
prop="patrolTypeCode"
align="center"
/>
<el-table-column
:label="$t('patroltype.level')"
prop="name"
align="center"
/>
<el-table-column
:label="$t('patroltype.notes')"
prop="name"
prop="patrolTypeLevel"
align="center"
/>
<el-table-column :label="$t('patroltype.notes')" align="center" />
<el-table-column :label="$t('share.operate')" align="center">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="handleEdit(scope.$index, scope.row)"
@click="handleEdit(scope.row.patrolTypeId)"
>{{ $t("share.edit") }}</el-button
>
<el-button
type="text"
size="small"
@click="handleDelete(scope.$index, scope.row)"
@click="handleDelete(scope.row.patrolTypeId)"
>{{ $t("share.delete") }}</el-button
>
</template>
@ -126,6 +135,7 @@
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="init"
/>
<el-dialog
:title="title"
@ -136,6 +146,7 @@
<el-form v-model="dialogForm">
<el-form-item :label="$t('patroltype.ParentDeviceTypeID')">
<el-input
v-model="dialogForm.parentId"
:placeholder="
$t('share.PleaseEnter') +
' ' +
@ -145,6 +156,7 @@
</el-form-item>
<el-form-item :label="$t('patroltype.InspectionTypeName')">
<el-input
v-model="dialogForm.patrolTypeName"
:placeholder="
$t('share.PleaseEnter') +
' ' +
@ -154,6 +166,7 @@
</el-form-item>
<el-form-item :label="$t('patroltype.InspectionTypeCode')">
<el-input
v-model="dialogForm.patrolTypeCode"
:placeholder="
$t('share.PleaseEnter') +
' ' +
@ -163,6 +176,7 @@
</el-form-item>
<el-form-item :label="$t('patroltype.DeleteFlag')">
<el-input
v-model="dialogForm.delFlag"
:placeholder="
$t('share.PleaseEnter') + ' ' + $t('patroltype.DeleteFlag')
"
@ -170,6 +184,7 @@
</el-form-item>
<el-form-item :label="$t('patroltype.level')">
<el-input
v-model="dialogForm.patrolTypeLevel"
:placeholder="
$t('share.PleaseEnter') + ' ' + $t('patroltype.level')
"
@ -177,6 +192,7 @@
</el-form-item>
<el-form-item :label="$t('patroltype.notes')">
<el-input
v-model="dialogForm.patrolTypeRemark"
:placeholder="
$t('share.PleaseEnter') + ' ' + $t('patroltype.notes')
"
@ -185,10 +201,8 @@
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">{{
$t("share.cancel")
}}</el-button>
<el-button type="primary" @click="dialogVisible = false">{{
<el-button @click="handleClose">{{ $t("share.cancel") }}</el-button>
<el-button type="primary" @click="submitForm">{{
$t("share.confirm")
}}</el-button>
</span>
@ -197,26 +211,132 @@
</template>
<script>
import {
getList,
getItem,
postAdd,
postRemove,
edit,
// algList,
// subtypeList,
} from "@/api/basedata/patrolpointmnt/patroltype";
export default {
data() {
return {
queryParams: {},
queryParams: {
pageNum: 1,
pageSize: 10,
},
tableData: [],
total: 10,
total: 0,
dialogVisible: false,
title: this.$t("patroltype.AddPresetInspectionPoints"),
dialogForm: {},
ids: [],
};
},
mounted() {},
mounted() {
this.init();
},
methods: {
//
init() {
getList(this.queryParams).then((res) => {
if (res.code == 200) {
this.tableData = res.rows;
this.total = res.total;
}
});
},
//
handleQuery() {
this.init();
},
//
resetQuery() {
this.queryParams = {};
this.init();
},
//
submitForm() {
console.log(111);
if (this.type == 0) {
postAdd(this.dialogForm).then((res) => {
if (res.code == 200) {
this.$message({
type: "success",
message: "添加成功!",
});
this.dialogVisible = false;
this.init();
}
});
} else {
edit(this.dialogForm).then((res) => {
if (res.code == 200) {
this.$message({
type: "success",
message: "编辑成功!",
});
this.dialogVisible = false;
this.init();
}
});
}
},
handleEdit(id) {
this.type = 1;
this.dialogVisible = true;
this.title = this.$t("patrolpoint.EditInspectionPoints");
getItem(id).then((res) => {
if (res.code == 200) {
this.dialogForm = res.data;
}
});
},
add() {
this.dialogForm = {};
this.type = 0;
this.dialogVisible = true;
this.title = this.$t("patroltype.AddPresetInspectionPoints");
},
handleEdit() {
this.dialogVisible = true;
this.title = this.$t("patroltype.EditInspectionPointPresetPositions");
handleClose() {
this.dialogVisible = false;
},
//
handleDelete(id) {
this.$confirm(`确定要删除Id为${id}的数据吗?`, "删除", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
postRemove(id).then((res) => {
if (res.code == 200) {
this.$message({
type: "success",
message: "删除成功!",
});
this.init();
}
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.patrolTypeId);
},
//
handleDeleteAll() {
let ids = this.ids.toString();
this.handleDelete(ids);
},
},
};


+ 2
- 2
src/views/monitor/job/index.vue View File

@ -56,7 +56,7 @@
}}</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
@ -732,7 +732,7 @@ export default {
/** 导出按钮操作 */
handleExport() {
this.download(
"monitor/job/export",
"/schedule/job/export",
{
...this.queryParams,
},


Loading…
Cancel
Save