Browse Source

标准点位管理联调、检修区域管理联调

dev
wangxingyuan 9 months ago
parent
commit
3691411e36
4 changed files with 352 additions and 139 deletions
  1. +8
    -13
      src/api/area/area_management.js
  2. +48
    -2
      src/api/point/point_mang.js
  3. +151
    -51
      src/views/area/area_management.vue
  4. +145
    -73
      src/views/point/point_mang.vue

+ 8
- 13
src/api/area/area_management.js View File

@ -24,8 +24,6 @@ export function postAdd(query) {
})
}
// 删除
export function postRemove(query) {
return request({
@ -35,22 +33,19 @@ export function postRemove(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
})
}
// 区域下发
export function issue(query) {
return request({
url: `/patrol/maintarea/issue?ids=${query}`,
method: 'get',
// data: query
})
}

+ 48
- 2
src/api/point/point_mang.js View File

@ -1,9 +1,55 @@
import request from '@/utils/request';
// 初始化树结构
export function getTreeAreaDeviceSelect(query) {
if (query) {
return request({
url: `/basedata/devicetype/getCommpTypeTreeSelectByMainDevicetypeId?devicetypeId=${query}`,
method: 'get',
// params: query
})
} else {
return request({
url: `/basedata/devicetype/getCommpTypeTreeSelectByMainDevicetypeId`,
method: 'get',
// params: query
})
}
}
// 点击树结构
export function cilikList(query) {
return request({
url: '/basedata/prodevmnt/device/treeAreaDeviceSelect',
url: `/basedata/patrolpointmnt/stdpatrolpoint/list?mainDevicetypeId=${query}`,
method: 'get',
// params: query
})
}
// 数据格式
export function dataFormat(query) {
return request({
url: `/system/dict/data/type/data_format`,
method: 'get',
})
}
// 设备分类
export function devicetype(query) {
return request({
url: `/basedata/devicetype/list?powerMainEquFlag=Yes`,
method: 'get',
})
}
// 添加
export function add(query) {
return request({
url: `/basedata/patrolpointmnt/stdpatrolpoint/addBatchList`,
method: 'post',
data: query
})
}
// 删除
export function remove(query) {
return request({
url: `/basedata/patrolpointmnt/stdpatrolpoint/remove/${query}`,
method: 'post',
})
}

+ 151
- 51
src/views/area/area_management.vue View File

@ -42,12 +42,21 @@
}}</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
:disabled="ids.length <= 0"
@click="issueFn"
>{{ $t("area_management.RegionalDistribution") }}</el-button
>
</el-col>
</el-row>
<el-table :data="tableData" border style="width: 100%; margin-top: 10px">
<el-table
:data="tableData"
border
style="width: 100%; margin-top: 10px"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
:label="$t('area_management.index')"
@ -90,7 +99,11 @@
<!-- {{ $t("area_management.loseEfficacy") }} -->
{{ scope.row.enable == 1 ? "无效" : "有效" }}
</el-button>
<el-button type="text" icon="el-icon-delete" @click="handleDelete(scope.row.lineId)">
<el-button
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row.lineId)"
>
{{ $t("share.delete") }}</el-button
>
</template>
@ -111,32 +124,43 @@
<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
:props="defaultProps"
:load="loadNode"
lazy
show-checkbox
></el-tree>
:data="treeData"
node-key="id"
:render-content="renderContent"
@check-change="handleCheckChange"
ref="tree"
>
</el-tree>
</el-col>
<el-col :span="15">
<el-form :model="dialogForm" label-width="160px">
<el-form-item :label="$t('area_management.type')">
<el-form
:model="dialogForm"
label-width="160px"
:rules="rules"
ref="form"
>
<el-form-item
:label="$t('area_management.type')"
prop="deviceLevel"
>
<el-select
v-model="dialogForm.deviceLevel"
:placeholder="
$t('share.PleaseChoose') + $t('area_management.type')
"
@change="deviceLevelChange"
>
<el-option label="item.label" value="item.value"> </el-option>
<el-option label="区域" value="area"></el-option>
<el-option label="主设备" value="main"></el-option>
<el-option label="部件" value="part"></el-option>
<el-option label="点位" value="point"></el-option>
</el-select>
</el-form-item>
<el-form-item
:label="$t('area_management.MaintenanceAreaConfigurationCode')"
prop="configCode"
>
<el-input
v-model="dialogForm.configCode"
@ -146,7 +170,10 @@
"
></el-input>
</el-form-item>
<el-form-item :label="$t('area_management.TimeAndDate')">
<el-form-item
:label="$t('area_management.TimeAndDate')"
prop="dateRange"
>
<el-date-picker
v-model="dateRange"
type="daterange"
@ -162,7 +189,9 @@
<el-button type="primary" @click="submitForm">{{
$t("share.confirm")
}}</el-button>
<el-button>{{ $t("share.cancel") }}</el-button>
<el-button @click="handleClose">{{
$t("share.cancel")
}}</el-button>
</div>
</el-form-item>
</el-form>
@ -179,6 +208,7 @@ import {
postRemove,
postAdd,
edit,
issue,
} from "@/api/area/area_management";
export default {
data() {
@ -197,10 +227,37 @@ export default {
label: "label",
isLeaf: "leaf", //
},
dialogForm: {},
dialogForm: {
deviceLevel: "area",
},
dateRange: [],
ids: [],
rules: {
deviceLevel: [
{
required: true,
message: "请选择设备类型",
trigger: "change",
},
],
configCode: [
{
required: true,
message: "请输入检修区域配置编码",
trigger: "blur",
},
],
// dateRange: [
// {
// required: true,
// message: "",
// trigger: "change",
// },
// ],
},
};
},
created() {
this.init();
this.initTree();
@ -210,6 +267,21 @@ export default {
submitForm() {
this.dialogForm.startTime = this.dateRange[0];
this.dialogForm.endTime = this.dateRange[1];
this.$refs["form"].validate((valid) => {
if (valid) {
// return
postAdd(this.dialogForm).then((res) => {
if (res.code == 200) {
this.dialogVisible = false;
this.$message({
message: `新增成功`,
type: "success",
});
this.init();
}
});
}
});
},
//
init() {
@ -251,39 +323,11 @@ export default {
},
handleClose() {
this.dialogVisible = false;
this.dialogForm.deviceLevel = "area";
this.$refs.form.resetFields();
},
// 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 = {
@ -321,6 +365,62 @@ export default {
});
});
},
//
renderContent(h, { node, data, store }) {
const showCheckbox = data.type == this.dialogForm.deviceLevel;
return h("span", [
showCheckbox
? h("el-checkbox", {
style: { marginRight: "8px" },
on: {
change: (checked) => {
store.setChecked(node, checked, false);
},
},
})
: null,
h("span", node.label),
]);
},
handleCheckChange(data, checked, indeterminate) {
this.dialogForm.deviceList = null;
this.dialogForm.pointList = null;
let deviceList = [];
let pointList = [];
let allCheckedNodes = this.$refs.tree.getCheckedNodes();
allCheckedNodes.forEach((item) => {
deviceList.push(item.id);
if (item.children && item.children.length > 0) {
item.children.forEach((child) => {
pointList.push(child.id);
});
}
});
this.dialogForm.deviceList = deviceList.toString();
this.dialogForm.pointList = pointList.toString();
console.log(this.dialogForm);
// console.log(this.dialogForm, allCheckedNodes);
},
deviceLevelChange() {
this.dialogForm.deviceList = null;
this.dialogForm.pointList = null;
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.lineId);
},
issueFn() {
issue(this.ids.toString()).then((res) => {
if (res.code == 200) {
this.$message({
message: `下发成功`,
type: "success",
});
this.init();
}
});
},
},
};
</script>


+ 145
- 73
src/views/point/point_mang.vue View File

@ -19,11 +19,15 @@
:data="treeData"
:props="defaultProps"
@node-click="handleNodeClick"
node-key="devicetypeId"
ref="tree"
></el-tree>
</el-col>
<el-col :span="20">
<el-col :span="20" v-if="devicetypeId">
<div>
<el-button type="primary">{{ $t("share.addTo") }}</el-button>
<el-button type="primary" @click="addBtn">{{
$t("share.addTo")
}}</el-button>
<span>0/200{{ $t("point_mang.tableHeadMsg") }}</span>
</div>
<el-table :data="tableData" max-height="700" style="margin-top: 10px">
@ -35,7 +39,6 @@
align="center"
></el-table-column>
<el-table-column
prop="date"
:label="$t('point_mang.equipmentClassification')"
:render-header="addRedStar"
align="center"
@ -46,14 +49,20 @@
$t('share.PleaseChoose') +
$t('point_mang.equipmentClassification')
"
v-model="scope.row.componentDevicetypeId"
>
<el-option label="item.label" value="item.value"> </el-option>
<el-option
:label="item.devicetypeName"
:value="item.devicetypeId"
v-for="item in DevicetypeIdOptions"
:key="item.devicetypeId"
>
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
prop="date"
:label="$t('point_mang.InspectionStandards')"
:render-header="addRedStar"
align="center"
@ -64,30 +73,27 @@
:placeholder="
$t('share.PleaseChoose') + $t('point_mang.PleaseEnter')
"
v-model="scope.row.patrolContent"
></el-input>
</template>
</el-table-column>
<el-table-column
prop="date"
:label="$t('point_mang.dataFormat')"
align="center"
>
<el-table-column :label="$t('point_mang.dataFormat')" align="center">
<template slot-scope="scope">
<el-select
v-model="value"
multiple
<!-- multiple
filterable
allow-create
default-first-option
default-first-option -->
<el-select
v-model="scope.row.mainDevicetypeId"
:placeholder="
$t('share.PleaseChoose') + $t('point_mang.dataFormat')
"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
@ -100,7 +106,7 @@
>
<template slot-scope="scope">
<span class="intelligenceType" @click="intelligenceTypeBtn"
>123123</span
>设置</span
>
</template>
</el-table-column>
@ -109,16 +115,24 @@
<el-button size="mini" type="primary">
{{ $t("share.copy") }}
</el-button>
<el-button size="mini" type="danger">{{
$t("share.delete")
}}</el-button>
<el-button
size="mini"
type="danger"
@click="handleDelete(scope.row)"
>{{ $t("share.delete") }}</el-button
>
</template>
</el-table-column>
</el-table>
<div class="saveBtn">
<el-button type="primary">{{ $t("share.save") }}</el-button>
<el-button type="primary" @click="submitForm">{{
$t("share.save")
}}</el-button>
</div>
</el-col>
<el-col :span="20" v-if="!devicetypeId">
<div style="line-height: 36px">请先选择左侧点位</div>
</el-col>
</el-row>
<el-dialog
:title="$t('point_mang.SetIntelligentRecognitionType')"
@ -139,12 +153,12 @@
:label="$t('point_mang.index')"
></el-table-column>
<el-table-column
prop="name"
prop="componentDevicetypeId"
align="center"
:label="$t('point_mang.AlgorithmName')"
></el-table-column>
<el-table-column
prop="name"
prop="patrolContent"
align="center"
:label="$t('point_mang.ThresholdUpperLimit')"
:render-header="addRedStar"
@ -154,7 +168,7 @@
</template>
</el-table-column>
<el-table-column
prop="name"
prop="mainDevicetypeId"
align="center"
:label="$t('point_mang.LowerThresholdLimit')"
:render-header="addRedStar"
@ -165,72 +179,78 @@
</el-table-column>
</el-table>
<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="dialogVisible = false">{{
$t("share.confirm")
}}</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {
getTreeAreaDeviceSelect,
cilikList,
devicetype,
dataFormat,
add,
remove,
} from "@/api/point/point_mang";
export default {
data() {
return {
treeData: [
{
label: "一级 1",
type: 1,
children: [
{
label: "二级 1-1",
children: [
{
label: "三级 1-1-1",
children: [
{
label: "四级 1-1-1-1",
type: 4,
},
{
label: "四级 1-1-1-2",
type: 4,
},
],
},
],
},
],
},
],
treeData: [],
defaultProps: {
children: "children",
label: "label",
label: "devicetypeName",
},
tableData: [{}],
options: [
{
value: "HTML",
label: "HTML",
},
{
value: "CSS",
label: "CSS",
},
{
value: "JavaScript",
label: "JavaScript",
},
],
tableData: [],
DevicetypeIdOptions: [],
options: [],
value: [],
dialogVisible: false,
intelligenceTypeData: [],
devicetypeId: null,
};
},
created() {},
mounted() {
this.init();
devicetype().then((res) => {
if (res.code == 200) {
res.data.forEach((item) => {
if (item.devicetypeId !== 1) {
this.DevicetypeIdOptions.push(item);
}
});
}
});
dataFormat().then((res) => {
if (res.code == 200) {
console.log(this.options, res.data);
res.data.forEach((item) => {
item.dictValue = String(item.dictValue);
});
this.options = res.data;
}
});
},
methods: {
init(qurey) {
getTreeAreaDeviceSelect(qurey).then((res) => {
this.tableData = [];
if (res.code == 200) {
res.data.forEach((item) => {
if (item.devicetypeId !== 1) {
this.treeData.push(item);
}
});
}
});
},
// *
addRedStar(h, { column }) {
return [
@ -248,6 +268,58 @@ export default {
h("span", " " + column.label),
];
},
//
handleNodeClick(data) {
console.log(data, 11111111111);
this.devicetypeId = data.devicetypeId;
this.tableData = [];
this.initClickList(data);
},
initClickList(data) {
cilikList(data.devicetypeId).then((res) => {
if (res.code == 200) {
console.log(res, 111);
this.tableData = res.rows;
}
});
},
addBtn() {
this.tableData.push({});
},
//
submitForm() {
if (!this.tableData.length) return;
let flag = this.tableData.every((item) => {
if (item.componentDevicetypeId && item.patrolContent) {
return true;
} else {
return false;
}
});
if (flag) {
add(this.tableData).then((res) => {
this.initClickList(this.devicetypeId);
});
} else {
this.$message({
type: "warning",
message: "必填项不能为空!",
});
}
},
//
handleDelete(row) {
remove(row.stdpatrolPointId).then((res) => {
if (res.code == 200) {
this.$message({
type: "success",
message: "删除成功!",
});
this.initClickList(row);
}
});
},
},
};
</script>


Loading…
Cancel
Save