Commit 8b8ba6b7 authored by yanzhongrong's avatar yanzhongrong

Merge branch 'dev' into dev_yzr

parents 39e6c236 fafe7550
...@@ -92,10 +92,30 @@ export const constantRoutes = [ ...@@ -92,10 +92,30 @@ export const constantRoutes = [
path: 'statistics', path: 'statistics',
name: 'settingAtatistics', name: 'settingAtatistics',
component: () => import('@/views/setting/statistics/index'), component: () => import('@/views/setting/statistics/index'),
meta: { title: '配置信息统计' } meta: { title: '配置信息统计' },
} children: [
]
},
{
path: "/detail",
name: "detail",
component: () => import('@/views/setting/statistics/detail'),
meta: { title: "详情" },
hidden: true,
},
{
path: "/sitedetail",
name: "sitedetail",
component: () => import('@/views/setting/statistics/sitedetail'),
meta: { title: "站点详情" },
hidden: true,
},
] ]
}, },
{ {
path: '/monitor', path: '/monitor',
component: Layout, component: Layout,
...@@ -122,7 +142,7 @@ export const constantRoutes = [ ...@@ -122,7 +142,7 @@ export const constantRoutes = [
component: Layout, component: Layout,
redirect: '/maintain/oneself', redirect: '/maintain/oneself',
name: 'Maintain', name: 'Maintain',
meta: { title: '维护管理', icon:'maintain' }, meta: { title: '维护管理', icon: 'maintain' },
children: [ children: [
{ {
path: 'oneself', path: 'oneself',
......
...@@ -9,6 +9,7 @@ import railWay from './modules/railWay' ...@@ -9,6 +9,7 @@ import railWay from './modules/railWay'
import station from './modules/station' import station from './modules/station'
import FSU from './modules/FSU' import FSU from './modules/FSU'
import monitor from './modules/monitor' import monitor from './modules/monitor'
import leaky from './modules/leaky'
Vue.use(Vuex) Vue.use(Vuex)
...@@ -21,7 +22,8 @@ const store = new Vuex.Store({ ...@@ -21,7 +22,8 @@ const store = new Vuex.Store({
railWay, railWay,
station, station,
FSU, FSU,
monitor monitor,
leaky
}, },
getters getters
}) })
......
import { leakyCablelist } from "../../views/setting/api"
const state = {
list: [],
pageNum:1,
pageSize:10,
}
const mutations = {
changeList(state, arr) {
state.list = arr
},
}
const actions = {
asyncList(context) {
leakyCablelist( {
current: context.state.pageNum,
size: context.state.pageSize,
}).then(res => {
let arr = res.records?res.records:[]
context.commit("changeList", arr)
})
}
}
const getters = {
list(state) {
return state.list
}
}
export default {
state,
mutations,
actions,
getters,
namespaced: true
}
\ No newline at end of file
...@@ -51,4 +51,10 @@ ...@@ -51,4 +51,10 @@
} }
.form .el-form-item .el-select{ .form .el-form-item .el-select{
width: 100%; width: 100%;
}
.search-input-box{
display: inline-block;
margin-right: 20px;
margin-bottom: 20px;
} }
\ No newline at end of file
...@@ -51,6 +51,7 @@ export default { ...@@ -51,6 +51,7 @@ export default {
}, },
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
......
...@@ -54,9 +54,9 @@ ...@@ -54,9 +54,9 @@
> >
<el-option <el-option
v-for="item in backupModeSelect" v-for="item in backupModeSelect"
:key="item.key" :key="item.id"
:label="item.label" :label="item.dictValue"
:value="item.key" :value="item.dictValue"
></el-option ></el-option
></el-select> ></el-select>
</el-form-item> </el-form-item>
...@@ -64,9 +64,9 @@ ...@@ -64,9 +64,9 @@
<el-select v-model="FSUForm.connectMode" placeholder="请选择通信方式"> <el-select v-model="FSUForm.connectMode" placeholder="请选择通信方式">
<el-option <el-option
v-for="item in connectModeSelect" v-for="item in connectModeSelect"
:key="item.key" :key="item.id"
:label="item.label" :label="item.dictValue"
:value="item.key" :value="item.dictValue"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -74,9 +74,9 @@ ...@@ -74,9 +74,9 @@
<el-select v-model="FSUForm.equipType" placeholder="请选择设备类型"> <el-select v-model="FSUForm.equipType" placeholder="请选择设备类型">
<el-option <el-option
v-for="item in equipTypeSelect" v-for="item in equipTypeSelect"
:key="item.key" :key="item.id"
:label="item.label" :label="item.dictValue"
:value="item.key" :value="item.dictValue"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -87,9 +87,9 @@ ...@@ -87,9 +87,9 @@
> >
<el-option <el-option
v-for="item in equipSubTypeSelect" v-for="item in equipSubTypeSelect"
:key="item.key" :key="item.id"
:label="item.label" :label="item.dictValue"
:value="item.key" :value="item.dictValue"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -119,7 +119,7 @@ ...@@ -119,7 +119,7 @@
</div> </div>
</template> </template>
<script> <script>
import { fsusave, selectForSite } from "../../api"; import { fsusave, selectFsuItem, selectForSite } from "../../api";
import { mapGetters, mapActions } from "vuex"; import { mapGetters, mapActions } from "vuex";
import { successAlert, warningAlert } from "@/utils/alert"; import { successAlert, warningAlert } from "@/utils/alert";
export default { export default {
...@@ -127,82 +127,36 @@ export default { ...@@ -127,82 +127,36 @@ export default {
components: {}, components: {},
data() { data() {
return { return {
asd: {
"01": [{ ss: "dasda", fsa: "dasd" }],
"02": [{ ss2: "dasda", fsasdasd: "dasd" }],
},
type: 1,
railWaySelect: [], railWaySelect: [],
stationSelect: [], stationSelect: [],
stationSelect2: [], stationSelect2: [],
backupModeSelect: [ backupModeSelect: [],
{ connectModeSelect: [],
key: 0, equipTypeSelect: [],
label: "整机备份", equipSubTypeSelect: [],
},
{
key: 1,
label: "整机备份2",
},
{
key: 2,
label: "整机备份3",
},
],
connectModeSelect: [
{
key: 0,
label: "以太网",
},
{
key: 1,
label: "以太网2",
},
{
key: 2,
label: "以太网3",
},
],
equipTypeSelect: [
{
key: 0,
label: "漏缆监控单元",
},
{
key: 1,
label: "漏缆监控单元2",
},
{
key: 2,
label: "漏缆监控单元3",
},
],
equipSubTypeSelect: [
{
key: 0,
label: "故障定位设备",
},
{
key: 1,
label: "故障定位设备2",
},
{
key: 2,
label: "故障定位设备3",
},
],
FSUForm: { FSUForm: {
backupMode: 2, backupMode: '',
connectMode: 1, connectMode: '',
equipFactory: "打发点", equipFactory: "设备厂商1",
equipName: "阿达21", equipName: "设备名称1",
equipSerialNumber: "4651", equipSerialNumber: "4651",
equipSubType: 2, equipSubType: '',
equipType: 0, equipType: '',
fsuCode: "212", fsuCode: "212",
fsuPort: 10, fsuPort: 10,
ip: "151511", ip: "192.168.2.1",
kmSign: "46511", kmSign: "46511",
parentId: 17, parentId: '',
siteId: 11, siteId: '',
siteName:"asd", wayId: '',
softVersion: "8451", siteName: "站点1",
wayId: 17 softVersion: "6.0.2",
}, },
rules: { rules: {
wayId: [{ required: true, message: "请选择铁路线", trigger: "blur" }], wayId: [{ required: true, message: "请选择铁路线", trigger: "blur" }],
...@@ -312,12 +266,22 @@ wayId: 17 ...@@ -312,12 +266,22 @@ wayId: 17
}); });
}, },
}, },
created() {
selectFsuItem().then((res) => {
this.backupModeSelect = res["01"];
this.connectModeSelect = res["02"];
this.equipTypeSelect = res["03"];
this.equipSubTypeSelect = res["04"];
});
},
mounted() { mounted() {
this.asyncrailWayList(); this.asyncrailWayList();
this.asyncstationList(); this.asyncstationList();
this.railWaySelect = this.railWaylist; this.railWaySelect = this.railWaylist;
this.stationSelect = this.stationlist; this.stationSelect = this.stationlist;
console.log(this.asd);
}, },
}; };
</script> </script>
......
...@@ -128,12 +128,9 @@ export default { ...@@ -128,12 +128,9 @@ export default {
components: {}, components: {},
data() { data() {
return { return {
railWaySelect: [], railWaySelect: [],
stationSelect: [], stationSelect2: [],
stationSelect2: [],
fsuSelect: [],
fsuSelect2: [], fsuSelect2: [],
monitorSelect: [],
monitor2: [], monitor2: [],
FSUrailway: [ FSUrailway: [
{ {
...@@ -233,17 +230,17 @@ export default { ...@@ -233,17 +230,17 @@ export default {
}, },
changesite() { changesite() {
this.fsuSelect2 = this.fsuSelect.filter( this.fsuSelect2 = this.fsulist.filter(
(item) => item.parentId === this.leakyCableForm.siteId (item) => item.parentId === this.leakyCableForm.siteId
); );
}, },
changefsu() { changefsu() {
console.log(this.leakyCableForm.fsuId);
this.monitor2 = this.monitorSelect.filter( this.monitor2 = this.monitorEquiplist.filter(
(item) => item.parentId === this.leakyCableForm.fsuId (item) => item.parentId === this.leakyCableForm.fsuId
); );
console.log(this.monitorSelect);
}, },
reset() { reset() {
this.$refs.leakyCableForm.resetFields(); this.$refs.leakyCableForm.resetFields();
...@@ -287,9 +284,7 @@ export default { ...@@ -287,9 +284,7 @@ export default {
this.asyncmonitorList(); this.asyncmonitorList();
this.railWaySelect = this.railWaylist; this.railWaySelect = this.railWaylist;
this.stationSelect = this.stationlist;
this.fsuSelect = this.fsulist;
this.monitorSelect = this.monitorEquiplist;
}, },
}; };
</script> </script>
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
label-width="200px" label-width="200px"
class="form" class="form"
> >
<el-form-item label="所在铁路线:" prop="wayId"> <el-form-item label="所在铁路线:" prop="wayId">
<el-select <el-select
v-model="monitorForm.wayId" v-model="monitorForm.wayId"
placeholder="请选择铁路线" placeholder="请选择铁路线"
...@@ -22,7 +22,11 @@ ...@@ -22,7 +22,11 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="所在站点:" prop="siteId"> <el-form-item label="所在站点:" prop="siteId">
<el-select v-model="monitorForm.siteId" placeholder="请选择站点" @change="changesite()"> <el-select
v-model="monitorForm.siteId"
placeholder="请选择站点"
@change="changesite()"
>
<el-option <el-option
v-for="item in stationSelect2" v-for="item in stationSelect2"
:key="item.id" :key="item.id"
...@@ -31,7 +35,7 @@ ...@@ -31,7 +35,7 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="所在FSU:" prop="fsuId"> <el-form-item label="所在FSU:" prop="fsuId">
<el-select v-model="monitorForm.fsuId" placeholder="请选择FSU"> <el-select v-model="monitorForm.fsuId" placeholder="请选择FSU">
<el-option <el-option
v-for="item in fsuSelect2" v-for="item in fsuSelect2"
...@@ -47,8 +51,11 @@ ...@@ -47,8 +51,11 @@
placeholder="请输入设备身份编号" placeholder="请输入设备身份编号"
/> />
</el-form-item> </el-form-item>
<el-form-item label="设备名称:" prop="equipName"> <el-form-item label="设备名称:" prop="equipName">
<el-input v-model="monitorForm.equipName" placeholder="请输入设备名称" /> <el-input
v-model="monitorForm.equipName"
placeholder="请输入设备名称"
/>
</el-form-item> </el-form-item>
<el-form-item label="设备厂商:" prop="equipFactory"> <el-form-item label="设备厂商:" prop="equipFactory">
<el-input <el-input
...@@ -56,40 +63,34 @@ ...@@ -56,40 +63,34 @@
placeholder="请输入设备厂商" placeholder="请输入设备厂商"
/> />
</el-form-item> </el-form-item>
<el-form-item label="设备类别:" prop="equipType"> <el-form-item label="设备类别:" prop="equipType">
<el-select <el-select v-model="monitorForm.equipType" placeholder="请输入设备类别">
v-model="monitorForm.equipType"
placeholder="请输入设备类别"
>
<el-option <el-option
v-for="item in equipTypeSelect" v-for="item in equipTypeSelect"
:key="item.key" :key="item.id"
:label="item.label" :label="item.dictValue"
:value="item.key" :value="item.dictValue"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="设备型号:" prop="equipMode"> <el-form-item label="设备型号:" prop="equipMode">
<el-select <el-select v-model="monitorForm.equipMode" placeholder="请输入设备型号">
v-model="monitorForm.equipMode"
placeholder="请输入设备型号"
>
<el-option <el-option
v-for="item in equipModeSelect" v-for="item in equipModeSelect"
:key="item.key" :key="item.id"
:label="item.label" :label="item.dictValue"
:value="item.key" :value="item.dictValue"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="设备生产序列号:" prop="equipSerialNumber"> <el-form-item label="设备生产序列号:" prop="equipSerialNumber">
<el-input <el-input
v-model="monitorForm.equipSerialNumber" v-model="monitorForm.equipSerialNumber"
placeholder="请输入设备生产序列号" placeholder="请输入设备生产序列号"
/> />
</el-form-item> </el-form-item>
<el-form-item label="设备所在铁路公里标:" prop="kmSign"> <el-form-item label="设备所在铁路公里标:" prop="kmSign">
<el-input <el-input
v-model="monitorForm.kmSign" v-model="monitorForm.kmSign"
placeholder="请输入设备所在铁路公里标" placeholder="请输入设备所在铁路公里标"
...@@ -101,7 +102,7 @@ ...@@ -101,7 +102,7 @@
placeholder="请输入安装日期" placeholder="请输入安装日期"
/> />
</el-form-item> </el-form-item>
<el-form-item label=" 维护日期:" prop="repairDate"> <el-form-item label=" 维护日期:" prop="repairDate">
<el-input <el-input
v-model="monitorForm.repairDate" v-model="monitorForm.repairDate"
...@@ -116,15 +117,15 @@ ...@@ -116,15 +117,15 @@
</div> </div>
</template> </template>
<script> <script>
import { monitorEquipsave } from "../../api"; import { monitorEquipsave, selectMonitorItem } from "../../api";
import { mapGetters, mapActions } from "vuex"; import { mapGetters, mapActions } from "vuex";
import { successAlert,warningAlert } from "@/utils/alert"; import { successAlert, warningAlert } from "@/utils/alert";
export default { export default {
props: [], props: [],
components: {}, components: {},
data() { data() {
return { return {
railWaySelect: [], railWaySelect: [],
stationSelect: [], stationSelect: [],
stationSelect2: [], stationSelect2: [],
fsuSelect: [], fsuSelect: [],
...@@ -139,48 +140,22 @@ export default { ...@@ -139,48 +140,22 @@ export default {
label: "南昆客运专线", label: "南昆客运专线",
}, },
], ],
equipTypeSelect: [ equipTypeSelect: [],
{ equipModeSelect: [],
key: 0,
label: "漏缆监控单元",
},
{
key: 1,
label: "漏缆监控单元2",
},
{
key: 2,
label: "漏缆监控单元3",
},
],
equipModeSelect: [
{
key: 0,
label: "型号",
},
{
key: 1,
label: "型号2",
},
{
key: 2,
label: "型号3",
},
],
monitorForm: { monitorForm: {
wayId:"", wayId: "",
parentId:"", parentId: "",
siteId:"", siteId: "",
fsuId:"", fsuId: "",
equipCode: "", equipCode: "",
equipFactory: "", equipFactory: "",
equipMode: 0, equipMode: '',
equipName: "", equipName: "",
equipSerialNumber: "", equipSerialNumber: "",
equipType: 0, equipType: '',
installDate: "2022-02-24 12:24:84", installDate: "2022-02-24 12:24:84",
kmSign: "", kmSign: "",
repairDate: "2022-02-24 12:24:84", repairDate: "2022-02-24 12:24:84",
}, },
rules: { rules: {
...@@ -235,18 +210,14 @@ export default { ...@@ -235,18 +210,14 @@ export default {
asyncfsuList: "FSU/asyncList", asyncfsuList: "FSU/asyncList",
}), }),
changerailWay() { changerailWay() {
this.stationSelect2 = this.stationlist.filter( this.stationSelect2 = this.stationlist.filter(
(item) => item.parentId === this.monitorForm.wayId (item) => item.parentId === this.monitorForm.wayId
); );
}, },
changesite() { changesite() {
this.fsuSelect2 = this.fsulist.filter(
this.fsuSelect2 = this.fsuSelect.filter(
(item) => item.parentId === this.monitorForm.siteId (item) => item.parentId === this.monitorForm.siteId
); );
}, },
reset() { reset() {
this.$refs.monitorForm.resetFields(); this.$refs.monitorForm.resetFields();
...@@ -254,43 +225,47 @@ export default { ...@@ -254,43 +225,47 @@ export default {
submit() { submit() {
this.$refs.monitorForm.validate((valid) => { this.$refs.monitorForm.validate((valid) => {
if (valid) { if (valid) {
this.monitorForm.parentId=this.monitorForm.fsuId this.monitorForm.parentId = this.monitorForm.fsuId;
monitorEquipsave(this.monitorForm).then((res) => { monitorEquipsave(this.monitorForm).then((res) => {
if (res.code==200) { if (res.code == 200) {
successAlert("添加成功") successAlert("添加成功");
console.log(res); } else {
}else{ warning("添加失败");
warning("添加失败")
} }
}); });
} }
this.monitorForm = { this.monitorForm = {
wayId:"", wayId: "",
parentId:"", parentId: "",
siteId:"", siteId: "",
fsuId:"", fsuId: "",
equipCode: "", equipCode: "",
equipFactory: "", equipFactory: "",
equipMode: 0, equipMode: '',
equipName: "", equipName: "",
equipSerialNumber: "", equipSerialNumber: "",
equipType: 0, equipType: '',
installDate: "2022-02-22 12:24:84", installDate: "2022-02-22 12:24:84",
kmSign: "", kmSign: "",
repairDate: "2022-02-24 12:24:84", repairDate: "2022-02-24 12:24:84",
}; };
}); });
}, },
}, },
created() {
selectMonitorItem().then((res) => {
this.equipTypeSelect=res["03"]
this.equipModeSelect=res["09"]
});
},
mounted() { mounted() {
this.asyncrailWayList(); this.asyncrailWayList();
this.asyncstationList(); this.asyncstationList();
this.asyncfsuList(); this.asyncfsuList();
this.railWaySelect = this.railWaylist; this.railWaySelect = this.railWaylist;
this.stationSelect = this.stationlist; this.stationSelect = this.stationlist;
this.fsuSelect = this.fsulist; this.fsuSelect = this.fsulist;
}, },
}; };
</script> </script>
......
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
<script> <script>
import { railWaysave } from "../../api"; import { railWaysave } from "../../api";
import { successAlert,warningAlert } from "@/utils/alert"; import { successAlert,warningAlert } from "@/utils/alert";
import { mapGetters, mapActions } from "vuex";
export default { export default {
props: [], props: [],
components: {}, components: {},
...@@ -72,6 +73,9 @@ export default { ...@@ -72,6 +73,9 @@ export default {
}, },
computed: {}, computed: {},
methods: { methods: {
...mapActions({
asyncrailWayList: "railWay/asyncList",
}),
reset() { reset() {
this.$refs.form.resetFields(); this.$refs.form.resetFields();
}, },
...@@ -81,7 +85,7 @@ export default { ...@@ -81,7 +85,7 @@ export default {
railWaysave(this.formData).then((res) => { railWaysave(this.formData).then((res) => {
if (res.code==200) { if (res.code==200) {
successAlert("添加成功") successAlert("添加成功")
console.log(res); this.asyncrailWayList()
}else{ }else{
warning("添加失败") warning("添加失败")
} }
......
...@@ -19,13 +19,16 @@ const path = { ...@@ -19,13 +19,16 @@ const path = {
fsusave: 'fsu/save', fsusave: 'fsu/save',
fsubatchDelete: 'fsu/batchDeleteFsu', fsubatchDelete: 'fsu/batchDeleteFsu',
fsuselectList: 'fsu/selectList', fsuselectList: 'fsu/selectList',
selectFsuItem:'dict/selectFsuItem',//fsu数据字典
monitorEquipList: 'monitorEquip/selectPage', monitorEquipList: 'monitorEquip/selectPage',
monitorEquipdetail: 'monitorEquip/detail', monitorEquipdetail: 'monitorEquip/detail',
monitorEquipsave: 'monitorEquip/save', monitorEquipsave: 'monitorEquip/save',
monitorEquipbatchDelete: 'monitorEquip/batchDeleteEquip', monitorEquipbatchDelete: 'monitorEquip/batchDeleteEquip',
monitorEquipselectList: 'monitorEquip/selectList', monitorEquipselectList: 'monitorEquip/selectList',
selectMonitorItem:'dict/selectMonitorItem',//监测设备字典
leakyCableList: 'leakyCable/selectPage', leakyCableList: 'leakyCable/selectPage',
leakyCabledetail: 'leakyCable/detail', leakyCabledetail: 'leakyCable/detail',
leakyCablesave: 'leakyCable/save', leakyCablesave: 'leakyCable/save',
...@@ -75,6 +78,10 @@ export function sitelist() { ...@@ -75,6 +78,10 @@ export function sitelist() {
return request.post(path.siteselectList, ...arguments) return request.post(path.siteselectList, ...arguments)
} }
//fsu //fsu
export function selectFsuItem() {//fsu字典
return request.post(path.selectFsuItem, ...arguments)
}
export function fsulist() { export function fsulist() {
return request.post(path.fsuList, ...arguments) return request.post(path.fsuList, ...arguments)
} }
...@@ -93,6 +100,10 @@ export function sitelist() { ...@@ -93,6 +100,10 @@ export function sitelist() {
return request.post(path.fsuselectList, ...arguments) return request.post(path.fsuselectList, ...arguments)
} }
//监测 //监测
export function selectMonitorItem() {
return request.post(path.selectMonitorItem, ...arguments)
}
export function monitorEquiplist() { export function monitorEquiplist() {
return request.post(path.monitorEquipList, ...arguments) return request.post(path.monitorEquipList, ...arguments)
} }
......
...@@ -14,6 +14,76 @@ ...@@ -14,6 +14,76 @@
<el-button type="primary" @click="query">查询</el-button> <el-button type="primary" @click="query">查询</el-button>
<el-button type="primary" @click="exportData">导出</el-button> <el-button type="primary" @click="exportData">导出</el-button>
</div> </div>
</div>
<div>
<div class="search-input-box">
<label>设备名称:</label>
<el-input
size="small"
placeholder="请输入设备名称"
style="width: 180px"
v-model="FSUForm.equipName"
clearable
>
</el-input>
</div>
<div class="search-input-box">
<label>FSU身份编号:</label>
<el-input
size="small"
placeholder="请输入FSU身份编号"
style="width: 180px"
v-model="FSUForm.fsuCode"
clearable
>
</el-input>
</div>
<div class="search-input-box">
<label>IP地址:</label>
<el-input
size="small"
placeholder="请输入IP地址"
style="width: 180px"
v-model="FSUForm.ip"
clearable
>
</el-input>
</div>
<div class="search-input-box">
<label>所在铁路线:</label>
<el-select
size="small"
placeholder="请选择所在铁路线"
style="width: 180px"
v-model="FSUForm.wayId"
clearable
@change="changerailWay()"
>
<el-option
v-for="item in railWaySelect"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</div>
<div class="search-input-box">
<label>所在站点:</label>
<el-select
size="small"
placeholder="请选择所在站点"
style="width: 180px"
v-model="FSUForm.siteId"
clearable
>
<el-option
v-for="item in stationSelect2"
:key="item.id"
:label="item.siteName"
:value="item.id"
></el-option>
</el-select>
</div>
</div> </div>
<el-table <el-table
ref="multipleTable" ref="multipleTable"
...@@ -269,11 +339,25 @@ ...@@ -269,11 +339,25 @@
import Pagination from "@/components/Pagination"; import Pagination from "@/components/Pagination";
import { fsulist, fsubatchDelete, fsudetail } from "../../api"; import { fsulist, fsubatchDelete, fsudetail } from "../../api";
import { successAlert,warningAlert } from "@/utils/alert"; import { successAlert,warningAlert } from "@/utils/alert";
import { mapGetters, mapActions } from "vuex";
export default { export default {
props: [], props: [],
components: { Pagination }, components: { Pagination },
data() { data() {
return { return {
railWaySelect: [],
stationSelect: [],
stationSelect2: [],
FSUForm: {
fsuCode:"",
equipName: "阿达21",
equipSerialNumber: "4651",
ip: "151511",
parentId: "",
siteId: "",
siteName: "asd",
wayId: "",
},
Info:[], Info:[],
visible:false, visible:false,
tableData: [], tableData: [],
...@@ -286,8 +370,25 @@ export default { ...@@ -286,8 +370,25 @@ export default {
ids: [], ids: [],
}; };
}, },
computed: {}, computed: {
...mapGetters({
railWaylist: "railWay/list",
stationlist: "station/list",
}),
},
methods: { methods: {
...mapActions({
asyncrailWayList: "railWay/asyncList",
asyncstationList: "station/asyncList",
asyncfsuList: "FSU/asyncList",
}),
changerailWay() {
this.stationSelect2 = this.stationlist.filter(
(item) => item.wayId === this.FSUForm.wayId
);
},
tableRowClassName({ row, rowIndex }) { tableRowClassName({ row, rowIndex }) {
return rowIndex % 2 === 0 ? "" : "single-row"; return rowIndex % 2 === 0 ? "" : "single-row";
}, },
...@@ -299,6 +400,7 @@ export default { ...@@ -299,6 +400,7 @@ export default {
fsubatchDelete({ ids }).then((res) => { fsubatchDelete({ ids }).then((res) => {
if (res.code==200) { if (res.code==200) {
successAlert("删除成功"); successAlert("删除成功");
this.asyncfsuList();
this.getTableData(); this.getTableData();
}else{ }else{
warningAlert("删除失败") warningAlert("删除失败")
...@@ -319,7 +421,14 @@ export default { ...@@ -319,7 +421,14 @@ export default {
}, },
handleView(row) { handleView(row) {
this.$router.push({
path:'/detail',
query:{
id:row.id
},
})
let id = row.id; let id = row.id;
fsudetail({ id }).then((res) => { fsudetail({ id }).then((res) => {
this.Info=res this.Info=res
...@@ -347,6 +456,10 @@ export default { ...@@ -347,6 +456,10 @@ export default {
}, },
mounted() { mounted() {
this.getTableData(); this.getTableData();
this.asyncrailWayList();
this.asyncstationList();
this.railWaySelect = this.railWaylist;
// this.stationSelect = this.stationlist;
}, },
}; };
</script> </script>
......
...@@ -15,6 +15,113 @@ ...@@ -15,6 +15,113 @@
<el-button type="primary" @click="exportData">导出</el-button> <el-button type="primary" @click="exportData">导出</el-button>
</div> </div>
</div> </div>
<div>
<div class="search-input-box">
<label>漏缆描述:</label>
<el-input
size="small"
placeholder="请输入漏缆描述"
style="width: 180px"
v-model="leakyCableForm.leakyCableDescribe"
clearable
>
</el-input>
</div>
<div class="search-input-box">
<label>漏缆编号:</label>
<el-input
size="small"
placeholder="请输入漏缆编号"
style="width: 180px"
v-model="leakyCableForm.leakyCableCode"
clearable
>
</el-input>
</div>
<div class="search-input-box">
<label>漏缆型号:</label>
<el-input
size="small"
placeholder="请输入漏缆型号"
style="width: 180px"
v-model="leakyCableForm.leakyCableMode"
clearable
>
</el-input>
</div>
<div class="search-input-box">
<label>所在铁路线:</label>
<el-select
size="small"
placeholder="请选择所在铁路线"
style="width: 180px"
v-model="leakyCableForm.wayId"
clearable
@change="changerailWay()"
>
<el-option
v-for="item in railWaySelect"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</div>
<div class="search-input-box">
<label>所在站点:</label>
<el-select
size="small"
placeholder="请选择所在站点"
style="width: 180px"
v-model="leakyCableForm.siteId"
@change="changesite()"
clearable
>
<el-option
v-for="item in stationSelect2"
:key="item.id"
:label="item.siteName"
:value="item.id"
></el-option>
</el-select>
</div>
<div class="search-input-box">
<label>所在FSU:</label>
<el-select
size="small"
placeholder="请选择所在FSU"
style="width: 180px"
v-model="leakyCableForm.fsuId"
@change="changefsu()"
clearable
>
<el-option
v-for="item in fsuSelect2"
:key="item.id"
:label="item.equipName"
:value="item.id"
></el-option>
</el-select>
</div>
<div class="search-input-box">
<label>所在监测设备:</label>
<el-select
size="small"
placeholder="请选择所在监测设备"
style="width: 180px"
v-model="leakyCableForm.monitor"
clearable
>
<el-option
v-for="item in monitor2"
:key="item.id"
:label="item.equipName"
:value="item.id"
></el-option>
</el-select>
</div>
</div>
<el-table <el-table
ref="multipleTable" ref="multipleTable"
class="statistics-table" class="statistics-table"
...@@ -32,63 +139,68 @@ ...@@ -32,63 +139,68 @@
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column <el-table-column prop="wayId" label="所在铁路线" align="center" />
prop="wayId"
label="所在铁路线"
align="center"
/>
<el-table-column <el-table-column
prop="hundredMetersLoss" prop="hundredMetersLoss"
label="漏缆百米损耗" label="漏缆百米损耗"
show-overflow-tooltip show-overflow-tooltip
align="center" align="center"
/> />
<el-table-column <el-table-column
prop="leakyCableCode" prop="leakyCableCode"
label="漏缆编号" label="漏缆编号"
show-overflow-tooltip show-overflow-tooltip
align="center" align="center"
/> <el-table-column />
<el-table-column
prop="leakyCableDescribe" prop="leakyCableDescribe"
label="描述" label="描述"
show-overflow-tooltip show-overflow-tooltip
align="center" align="center"
/> <el-table-column />
<el-table-column
prop="leakyCableLength" prop="leakyCableLength"
label="漏缆长度" label="漏缆长度"
show-overflow-tooltip show-overflow-tooltip
align="center" align="center"
/> <el-table-column />
<el-table-column
prop="leakyCableMode" prop="leakyCableMode"
label="漏缆型号" label="漏缆型号"
show-overflow-tooltip show-overflow-tooltip
align="center" align="center"
/> <el-table-column />
<el-table-column
prop="reductRatio" prop="reductRatio"
label="漏缆速度衰减系数:" label="漏缆速度衰减系数:"
show-overflow-tooltip show-overflow-tooltip
align="center" align="center"
/> <el-table-column />
<el-table-column
prop="sendPower" prop="sendPower"
label="发射功率" label="发射功率"
show-overflow-tooltip show-overflow-tooltip
align="center" align="center"
/> />
<el-table-column <el-table-column
prop="jumperLength" prop="jumperLength"
label="跳线长度" label="跳线长度"
show-overflow-tooltip show-overflow-tooltip
align="center" align="center"
/> />
<el-table-column <el-table-column
prop="inserterLength" prop="inserterLength"
label="插入器长度" label="插入器长度"
show-overflow-tooltip show-overflow-tooltip
align="center" align="center"
/> />
<el-table-column prop="antennaFeederLength" label="天馈线长度:" align="center" /> <el-table-column
prop="antennaFeederLength"
label="天馈线长度:"
align="center"
/>
<el-table-column <el-table-column
prop="action" prop="action"
label="详细信息" label="详细信息"
...@@ -113,13 +225,33 @@ ...@@ -113,13 +225,33 @@
</template> </template>
<script> <script>
import Pagination from "@/components/Pagination"; import Pagination from "@/components/Pagination";
import { leakyCablelist, leakyCablebatchDelete, leakyCabledetail } from "../../api"; import {
import { successAlert,warningAlert } from "@/utils/alert"; leakyCablelist,
leakyCablebatchDelete,
leakyCabledetail,
} from "../../api";
import { successAlert, warningAlert } from "@/utils/alert";
import { mapGetters, mapActions } from "vuex";
export default { export default {
props: [], props: [],
components: { Pagination }, components: { Pagination },
data() { data() {
return { return {
railWaySelect: [],
stationSelect2: [],
fsuSelect2: [],
monitor2: [],
leakyCableForm: {
wayId: "",
parentId: "",
siteId: "",
fsuId: "",
monitor:"",
leakyCableCode: "22",
leakyCableDescribe: "打打",
leakyCableMode: "打打",
},
tableData: [], tableData: [],
params: { params: {
pageNum: 1, pageNum: 1,
...@@ -130,8 +262,38 @@ export default { ...@@ -130,8 +262,38 @@ export default {
ids: [], ids: [],
}; };
}, },
computed: {}, computed: {
...mapGetters({
railWaylist: "railWay/list",
stationlist: "station/list",
fsulist: "FSU/list",
monitorEquiplist: "monitor/list",
}),
},
methods: { methods: {
...mapActions({
asyncrailWayList: "railWay/asyncList",
asyncstationList: "station/asyncList",
asyncfsuList: "FSU/asyncList",
asyncmonitorList: "monitor/asyncList",
asyncleakyList: "leaky/asyncList",
}),
changerailWay() {
this.stationSelect2 = this.stationlist.filter(
(item) => item.parentId === this.leakyCableForm.wayId
);
},
changesite() {
this.fsuSelect2 = this.fsulist.filter(
(item) => item.parentId === this.leakyCableForm.siteId
);
},
changefsu() {
this.monitor2 = this.monitorEquiplist.filter(
(item) => item.parentId === this.leakyCableForm.fsuId
);
},
tableRowClassName({ row, rowIndex }) { tableRowClassName({ row, rowIndex }) {
return rowIndex % 2 === 0 ? "" : "single-row"; return rowIndex % 2 === 0 ? "" : "single-row";
}, },
...@@ -141,15 +303,14 @@ export default { ...@@ -141,15 +303,14 @@ export default {
delData() { delData() {
let ids = this.ids; let ids = this.ids;
leakyCablebatchDelete({ ids }).then((res) => { leakyCablebatchDelete({ ids }).then((res) => {
if (res.code==200) { if (res.code == 200) {
successAlert("删除成功"); successAlert("删除成功");
this.asyncleakyList()
this.getTableData(); this.getTableData();
}else{ } else {
warningAlert("删除失败") warningAlert("删除失败");
} }
}); });
}, },
refresh() { refresh() {
this.getTableData(); this.getTableData();
...@@ -160,15 +321,17 @@ export default { ...@@ -160,15 +321,17 @@ export default {
this.multipleSelection = val; this.multipleSelection = val;
this.ids = this.multipleSelection.map((i) => i.id); this.ids = this.multipleSelection.map((i) => i.id);
}, },
handleView(row) { handleView(row) {
this.$router.push({
let id = row.id; path: "/detail",
leakyCabledetail({ id }).then((res) => { query: {
id: row.id,
},
}); });
let id = row.id;
leakyCabledetail({ id }).then((res) => {});
}, },
handlePageChange(pageData) { handlePageChange(pageData) {
this.params.pageSize = pageData.size; this.params.pageSize = pageData.size;
...@@ -193,6 +356,14 @@ export default { ...@@ -193,6 +356,14 @@ export default {
}, },
mounted() { mounted() {
this.getTableData(); this.getTableData();
this.asyncrailWayList();
this.asyncstationList();
this.asyncfsuList();
this.asyncmonitorList();
this.railWaySelect = this.railWaylist;
this.monitorSelect = this.monitorEquiplist;
}, },
}; };
</script> </script>
......
...@@ -14,6 +14,94 @@ ...@@ -14,6 +14,94 @@
<el-button type="primary" @click="query">查询</el-button> <el-button type="primary" @click="query">查询</el-button>
<el-button type="primary" @click="exportData">导出</el-button> <el-button type="primary" @click="exportData">导出</el-button>
</div> </div>
</div>
<div>
<div class="search-input-box">
<label>设备名称:</label>
<el-input
size="small"
placeholder="请输入设备名称"
style="width: 180px"
v-model="monitorForm.equipName"
clearable
>
</el-input>
</div>
<div class="search-input-box">
<label>设备身份编号:</label>
<el-input
size="small"
placeholder="请输入设备身份编号"
style="width: 180px"
v-model="monitorForm.equipCode"
clearable
>
</el-input>
</div>
<div class="search-input-box">
<label>IP地址:</label>
<el-input
size="small"
placeholder="请输入IP地址"
style="width: 180px"
v-model="monitorForm.ip"
clearable
>
</el-input>
</div>
<div class="search-input-box">
<label>所在铁路线:</label>
<el-select
size="small"
placeholder="请选择所在铁路线"
style="width: 180px"
v-model="monitorForm.wayId"
clearable
@change="changerailWay()"
>
<el-option
v-for="item in railWaySelect"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</div>
<div class="search-input-box">
<label>所在站点:</label>
<el-select
size="small"
placeholder="请选择所在站点"
style="width: 180px"
v-model="monitorForm.siteId"
@change="changesite()"
clearable
>
<el-option
v-for="item in stationSelect2"
:key="item.id"
:label="item.siteName"
:value="item.id"
></el-option>
</el-select>
</div>
<div class="search-input-box">
<label>所在FSU:</label>
<el-select
size="small"
placeholder="请选择所在FSU"
style="width: 180px"
v-model="monitorForm.fsuId"
clearable
>
<el-option
v-for="item in fsuSelect2"
:key="item.id"
:label="item.equipName"
:value="item.id"
></el-option>
</el-select>
</div>
</div> </div>
<el-table <el-table
ref="multipleTable" ref="multipleTable"
...@@ -113,11 +201,25 @@ import { ...@@ -113,11 +201,25 @@ import {
monitorEquipdetail, monitorEquipdetail,
} from "../../api"; } from "../../api";
import { successAlert,warningAlert } from "@/utils/alert"; import { successAlert,warningAlert } from "@/utils/alert";
import { mapGetters, mapActions } from "vuex";
export default { export default {
props: [], props: [],
components: { Pagination }, components: { Pagination },
data() { data() {
return { return {
railWaySelect: [],
stationSelect2: [],
fsuSelect2: [],
monitorForm: {
wayId:"",
parentId:"",
siteId:"",
fsuId:"",
equipCode: "",
equipName: "",
},
tableData: [], tableData: [],
params: { params: {
pageNum: 1, pageNum: 1,
...@@ -128,8 +230,34 @@ export default { ...@@ -128,8 +230,34 @@ export default {
ids: [], ids: [],
}; };
}, },
computed: {}, computed: {
...mapGetters({
railWaylist: "railWay/list",
stationlist: "station/list",
fsulist: "FSU/list",
}),
},
methods: { methods: {
...mapActions({
asyncrailWayList: "railWay/asyncList",
asyncstationList: "station/asyncList",
asyncfsuList: "FSU/asyncList",
asyncmonitorList: "monitor/asyncList",
}),
changerailWay() {
this.stationSelect2 = this.stationlist.filter(
(item) => item.parentId === this.monitorForm.wayId
);
},
changesite() {
this.fsuSelect2 = this.fsuSelect.filter(
(item) => item.parentId === this.monitorForm.siteId
);
},
tableRowClassName({ row, rowIndex }) { tableRowClassName({ row, rowIndex }) {
return rowIndex % 2 === 0 ? "" : "single-row"; return rowIndex % 2 === 0 ? "" : "single-row";
}, },
...@@ -141,6 +269,7 @@ export default { ...@@ -141,6 +269,7 @@ export default {
monitorEquipbatchDelete({ ids }).then((res) => { monitorEquipbatchDelete({ ids }).then((res) => {
if (res.code==200) { if (res.code==200) {
successAlert("删除成功"); successAlert("删除成功");
this.asyncmonitorList();
this.getTableData(); this.getTableData();
}else{ }else{
warningAlert("删除失败") warningAlert("删除失败")
...@@ -161,7 +290,14 @@ export default { ...@@ -161,7 +290,14 @@ export default {
}, },
handleView(row) { handleView(row) {
this.$router.push({
path:'/detail',
query:{
id:row.id
},
})
let id = row.id; let id = row.id;
monitorEquipdetail({ id }).then((res) => { monitorEquipdetail({ id }).then((res) => {
...@@ -191,6 +327,11 @@ export default { ...@@ -191,6 +327,11 @@ export default {
}, },
mounted() { mounted() {
this.getTableData(); this.getTableData();
this.asyncrailWayList();
this.asyncstationList();
this.asyncfsuList();
this.railWaySelect = this.railWaylist;
this.fsuSelect = this.fsulist;
}, },
}; };
</script> </script>
......
...@@ -15,6 +15,38 @@ ...@@ -15,6 +15,38 @@
<el-button type="primary" @click="exportData">导出</el-button> <el-button type="primary" @click="exportData">导出</el-button>
</div> </div>
</div> </div>
<div>
<div class="search-input-box">
<label>铁路名称:</label>
<el-input
size="small"
placeholder="请输入铁路名称"
style="width: 180px"
clearable
>
</el-input>
</div>
<div class="search-input-box">
<label>铁路起点站名:</label>
<el-input
size="small"
placeholder="请输入起点站名"
style="width: 180px"
clearable
>
</el-input>
</div>
<div class="search-input-box">
<label>铁路终点站名:</label>
<el-input
size="small"
placeholder="请输入终点站名"
style="width: 180px"
clearable
>
</el-input>
</div>
</div>
<el-table <el-table
ref="multipleTable" ref="multipleTable"
class="statistics-table" class="statistics-table"
...@@ -63,62 +95,53 @@ ...@@ -63,62 +95,53 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-dialog <el-dialog
:showClose="false"
title="铁路线详情"
:showClose="false" :visible.sync="visible"
title="铁路线详情" width="500px"
:visible.sync="visible" >
width="500px"> <table style="margin: auto" class="device-detail-tb">
<table style="margin: auto" class="device-detail-tb"> <tr style="line-height: 50px">
<tr style="line-height: 50px"> <td style="width: 145px">
<label>铁路名:</label>
<td style="width: 145px"> </td>
<label >铁路名:</label> <td style="width: 180px; text-align: left">
</td> <label v-text="Info.name"></label>
<td style="width: 180px; text-align: left"> </td>
<label v-text="Info.name"></label> </tr>
</td>
</tr>
<tr style="line-height: 50px"> <tr style="line-height: 50px">
<td style="width: 145px">
<td style="width: 145px"> <label>铁路线起点站名:</label>
<label >铁路线起点站名:</label> </td>
</td> <td style="width: 180px; text-align: left">
<td style="width: 180px; text-align: left"> <label v-text="Info.startPointName"></label>
<label v-text="Info.startPointName"></label> </td>
</tr>
</td> <tr style="line-height: 50px">
</tr> <td style="width: 145px">
<tr style="line-height: 50px"> <label>铁路线终点站名:</label>
</td>
<td style="width: 145px"> <td style="width: 180px; text-align: left">
<label >铁路线终点站名:</label> <label v-text="Info.endPointName"></label>
</td> </td>
<td style="width: 180px; text-align: left"> </tr>
<label v-text="Info.endPointName"></label> <tr style="line-height: 50px">
</td> <td style="width: 145px">
</tr> <label>铁路全长(公里):</label>
<tr style="line-height: 50px"> </td>
<td style="width: 180px; text-align: left">
<td style="width: 145px"> <label v-text="Info.totalLong"></label>
<label >铁路全长(公里):</label> </td>
</td> </tr>
<td style="width: 180px; text-align: left"> </table>
<label v-text="Info.totalLong"></label> <span slot="footer" class="dialog-footer">
</td> <el-button type="primary" @click="visible = false"
</tr> >关闭</el-button
></span
>
</table> </el-dialog>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="visible=false"
>关闭</el-button
></span>
</el-dialog>
<pagination <pagination
:limit="params.pageSize" :limit="params.pageSize"
:page="params.pageNum" :page="params.pageNum"
...@@ -130,15 +153,16 @@ ...@@ -130,15 +153,16 @@
</template> </template>
<script> <script>
import Pagination from "@/components/Pagination"; import Pagination from "@/components/Pagination";
import { railWaylist, railWaybatchDelete, railWaydetail } from "../../api"; import { railWaylist,railWaydetail, railWaybatchDelete } from "../../api";
import { successAlert,warningAlert } from "@/utils/alert"; import { mapGetters, mapActions } from "vuex";
import { successAlert, warningAlert } from "@/utils/alert";
export default { export default {
props: [], props: [],
components: { Pagination }, components: { Pagination },
data() { data() {
return { return {
visible: false, visible: false,
Info:[], Info: [],
tableData: [], tableData: [],
params: { params: {
pageNum: 1, pageNum: 1,
...@@ -151,7 +175,9 @@ export default { ...@@ -151,7 +175,9 @@ export default {
}, },
computed: {}, computed: {},
methods: { methods: {
...mapActions({
asyncrailWayList: "railWay/asyncList",
}),
tableRowClassName({ row, rowIndex }) { tableRowClassName({ row, rowIndex }) {
return rowIndex % 2 === 0 ? "" : "single-row"; return rowIndex % 2 === 0 ? "" : "single-row";
}, },
...@@ -161,14 +187,14 @@ export default { ...@@ -161,14 +187,14 @@ export default {
delData() { delData() {
let ids = this.ids; let ids = this.ids;
railWaybatchDelete({ ids }).then((res) => { railWaybatchDelete({ ids }).then((res) => {
if (res.code==200) { if (res.code == 200) {
successAlert("删除成功"); successAlert("删除成功");
this.getTableData(); this.asyncrailWayList()
}else{ this.getTableData();
warningAlert("删除失败") } else {
warningAlert("删除失败");
} }
}); });
}, },
refresh() { refresh() {
this.getTableData(); this.getTableData();
...@@ -182,13 +208,17 @@ export default { ...@@ -182,13 +208,17 @@ export default {
}, },
handleView(row) { handleView(row) {
this.$router.push({
path: "/detail",
query: {
id: row.id,
},
});
let id = row.id; let id = row.id;
railWaydetail({ id }).then((res) => { railWaydetail({ id }).then((res) => {
console.log(res);
// this.$router.push('/')
// this.visible=true // this.visible=true
this.Info=res this.Info = res;
console.log(this.Info);
}); });
}, },
handlePageChange(pageData) { handlePageChange(pageData) {
...@@ -197,10 +227,6 @@ export default { ...@@ -197,10 +227,6 @@ export default {
this.getTableData(); this.getTableData();
}, },
getTableData() { getTableData() {
// this.tableData2 = this.tableData.slice(( this.params.pageNum - 1) * this.params.pageSize,
// this.params.pageNum * this.params.pageSize
// );
// this.total = this.tableData.length
let params = { let params = {
current: this.params.pageNum, current: this.params.pageNum,
size: this.params.pageSize, size: this.params.pageSize,
......
...@@ -14,6 +14,55 @@ ...@@ -14,6 +14,55 @@
<el-button type="primary" @click="query">查询</el-button> <el-button type="primary" @click="query">查询</el-button>
<el-button type="primary" @click="exportData">导出</el-button> <el-button type="primary" @click="exportData">导出</el-button>
</div> </div>
</div>
<div>
<div class="search-input-box">
<label>站名:</label>
<el-input
size="small"
placeholder="请输入站名"
style="width: 180px"
clearable
>
</el-input>
</div>
<div class="search-input-box">
<label>站点编号:</label>
<el-input
size="small"
placeholder="请输入起点编号"
style="width: 180px"
clearable
>
</el-input>
</div>
<div class="search-input-box">
<label>站点地址:</label>
<el-input
size="small"
placeholder="请输入站点地址"
style="width: 180px"
clearable
>
</el-input>
</div>
<div class="search-input-box">
<label>所在铁路线:</label>
<el-select
size="small"
placeholder="请选择所在铁路线"
style="width: 180px"
clearable
>
<el-option
v-for="item in railWaySelect"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</div>
</div> </div>
<el-table <el-table
ref="multipleTable" ref="multipleTable"
...@@ -209,11 +258,13 @@ ...@@ -209,11 +258,13 @@
import Pagination from "@/components/Pagination"; import Pagination from "@/components/Pagination";
import { sitelist,sitebatchDelete,sitedetail } from "../../api"; import { sitelist,sitebatchDelete,sitedetail } from "../../api";
import { successAlert,warningAlert } from "@/utils/alert"; import { successAlert,warningAlert } from "@/utils/alert";
import { mapGetters, mapActions } from "vuex";
export default { export default {
props: [], props: [],
components: { Pagination }, components: { Pagination },
data() { data() {
return { return {
railWaySelect:[],
visible:false, visible:false,
Info:[], Info:[],
tableData:[], tableData:[],
...@@ -226,9 +277,17 @@ export default { ...@@ -226,9 +277,17 @@ export default {
ids: [], ids: [],
}; };
}, },
computed: {}, computed: {
...mapGetters({
railWaylist:"railWay/list",
}),
},
methods: { methods: {
...mapActions({
asyncrailWayList: "railWay/asyncList",
asyncstationList: "station/asyncList",
}),
tableRowClassName({ row, rowIndex }) { tableRowClassName({ row, rowIndex }) {
return rowIndex % 2 === 0 ? "" : "single-row"; return rowIndex % 2 === 0 ? "" : "single-row";
}, },
...@@ -240,6 +299,7 @@ export default { ...@@ -240,6 +299,7 @@ export default {
sitebatchDelete({ ids }).then((res) => { sitebatchDelete({ ids }).then((res) => {
if (res.code==200) { if (res.code==200) {
successAlert("删除成功"); successAlert("删除成功");
this.asyncstationList();
this.getTableData(); this.getTableData();
}else{ }else{
warningAlert("删除失败") warningAlert("删除失败")
...@@ -260,7 +320,14 @@ export default { ...@@ -260,7 +320,14 @@ export default {
}, },
handleView(row) { handleView(row) {
this.$router.push({
path:'/sitedetail',
query:{
id:row.id
},
})
let id = row.id; let id = row.id;
sitedetail({ id }).then((res) => { sitedetail({ id }).then((res) => {
this.Info=res this.Info=res
...@@ -292,7 +359,9 @@ export default { ...@@ -292,7 +359,9 @@ export default {
}, },
mounted() { mounted() {
this.getTableData(); this.getTableData();
this.asyncrailWayList()
this.railWaySelect= this.railWaylist;
}, },
}; };
......
<template>
<div class="dashboard-container">
<!-- 首页 -->
<header class="header_title">{{titleinfo}}</header>
<el-row :gutter="24">
<el-col :span="12" v-for="item in listData" class="mb20">
<el-card shadow="never">
<div slot="header" class="clearfix posa">
<span>{{ item.title }}</span>
<el-button v-if="item.option" style="float: right; padding: 3px 0;margin-right:20px" type="text" class="savebtn">保存</el-button>
</div>
<div v-for="k in item.list" :key="k.name" :class="item.list.length<=2? 'text2' : 'text'">
<el-row :gutter="24">
<el-col :span="10">
<div class="item_name">{{ k.name }}</div>
</el-col>
<el-col :span="10">
<div v-if="item.option">
<el-input v-model="k.value" clearable placeholder="请输入内容">{{ k.value }}</el-input>
</div>
<el-row :gutter="20" v-else-if="k.handle">
<el-col :span="10" class="value_handle">{{ k.value }}</el-col>
<el-col :span="10"><el-button class="alarmbtn" type="primary" size="mini">处理告警</el-button></el-col>
</el-row>
<div class="item_data" v-else>{{ k.value }}</div>
</el-col>
</el-row>
</div>
</el-card>
</el-col>
</el-row>
<div>
</div>
</div>
</template>
<script>
import { mapGetters, mapActions } from "vuex";
import { railWaydetail,sitedetail,fsudetail,monitorEquipdetail } from "../api";
export default {
props: [],
components: {},
data() {
return {
titleinfo:'',
listData2: [],
listData : [
{
title: '服务器信息',
list: [
{
name: '服务器IP',
value: '192.168.1.110',
},
{
name: '操作系统',
value: 'Red Hat EnterpiseLin...',
},
{
name: '系统软件版本',
value: '192.168.1.110',
},
]
},
{
title: '当前状态',
list: [
{
handle: true,
name: '设备状态',
value: '告警',
},
{
handle: true,
name: '漏缆状态',
value: '紧急告警',
}
]
},
{
title: '管理员(admin)管理范围',
list: [
{
name: '基站',
value: '20个',
},
{
name: 'FSU',
value: '20台',
},
{
name: '监测设备',
value: '81台',
},
{
name: '混缆',
value: '142根',
},
]
},
{
title: '基本信息',
option: true,
list: [
{
name: '铁路名称',
value: '张呼铁路客运专线',
},
{
name: '铁路起点站名',
value: '张家口',
},
{
name: '铁路终点站名',
value: '呼和浩特',
},
{
name: '铁路总长度(公里)',
value: '286.8',
},
]
},
],
id: "",
};
},
computed: {
...mapGetters({}),
},
methods: {
...mapActions({}),
},
methods: {
getParams() {
this.id = this.$route.query.id;
// console.log(this.id);
railWaydetail({ id: this.id }).then((res) => {
this.titleinfo=res.name + '信息'
this.listData[3].list[0].value=res.name
this.listData[3].list[1].value=res.startPointName
this.listData[3].list[2].value=res.endPointName
this.listData[3].list[3].value=res.totalLong
});
},
},
created() {
this.getParams();
},
mounted() {},
};
</script>
<style lang="scss" scoped>
.header_title {
font-size: 23px;
font-family: Source Han Sans CN;
font-weight: 500;
line-height: 40px;
text-align: center;
color: #0058ff;
letter-spacing: 10px;
opacity: 1;
margin-bottom: 20px;
}
::v-deep.el-card {
border: 1px solid #e3e3e3;
border-radius: 8px;
min-height: 243px;
.el-card__header {
font-size: 18px;
color: #333333;
font-weight: 500;
text-align: center;
background: rgba(226, 235, 255, 0.39);
opacity: 1;
}
.el-card__body {
padding: 0px;
}
}
.posa {
position: relative;
}
.savebtn {
position: absolute;
right: 2%;
}
// .el-col {
// margin-bottom: 20px;
// }
.text {
// display: flex;
padding: 10px 20px 10px 20px;
border-bottom: 1px solid #e3e3e3;
&:last-child {
border-bottom: none;
}
.item_name,
.item_data,
.value_handle {
height: 16px;
line-height: 16px;
margin-top: 12px;
margin-bottom: 12px;
}
.item_name {
width: 262px;
height: 16px;
line-height: 16px;
color: #7e7e7e;
margin-top: 12px;
margin-bottom: 12px;
}
.item_data {
}
.value_handle {
color: red;
margin-right: 10px;
}
.alarmbtn {
margin-top: 6px;
margin-bottom: 6px;
}
.el-card:last-child .text {
border-bottom: none !important;
}
}
.text2 {
// display: flex;
padding: 10px 20px 10px 20px;
border-bottom: 1px solid #e3e3e3;
.item_name,
.item_data,
.value_handle {
height: 16px;
line-height: 16px;
margin-top: 12px;
margin-bottom: 12px;
}
.item_name {
width: 262px;
height: 16px;
line-height: 16px;
color: #7e7e7e;
margin-top: 12px;
margin-bottom: 12px;
}
.item_data {
}
.value_handle {
color: red;
margin-right: 10px;
min-width: 52px;
}
.alarmbtn {
margin-top: 6px;
margin-bottom: 6px;
}
.el-card:last-child .text {
border-bottom: none !important;
}
}
</style>
<template>
<div class="dashboard-container">
<!-- 首页 -->
<header class="header_title">{{titleinfo}}</header>
<el-row :gutter="24">
<el-col :span="12" v-for="item in listData" class="mb20">
<el-card shadow="never">
<div slot="header" class="clearfix posa">
<span>{{ item.title }}</span>
<el-button v-if="item.option" style="float: right; padding: 3px 0;margin-right:20px" type="text" class="savebtn">保存</el-button>
</div>
<div v-for="k in item.list" :key="k.name" :class="item.list.length<=2? 'text2' : 'text'">
<el-row :gutter="24">
<el-col :span="10">
<div class="item_name">{{ k.name }}</div>
</el-col>
<el-col :span="10">
<div v-if="item.option">
<el-input v-model="k.value" clearable placeholder="请输入内容">{{ k.value }}</el-input>
</div>
<el-row :gutter="20" v-else-if="k.handle">
<el-col :span="10" class="value_handle">{{ k.value }}</el-col>
<el-col :span="10"><el-button class="alarmbtn" type="primary" size="mini">处理告警</el-button></el-col>
</el-row>
<div class="item_data" v-else>{{ k.value }}</div>
</el-col>
</el-row>
</div>
</el-card>
</el-col>
</el-row>
<div>
</div>
</div>
</template>
<script>
import {mapGetters,mapActions} from 'vuex';
import { railWaydetail,sitedetail,fsudetail,monitorEquipdetail } from "../api";
export default {
props: [],
components: {},
data() {
return {
titleinfo:'',
id: "",
listData : [
{
title: '管理范围',
list: [
{
name: 'FSU',
value: '1台',
},
{
name: '监测设备',
value: '1台',
},
{
name: '漏缆',
value: '2根',
},
]
},
{
title: '基本信息',
option: true,
list: [
{
name: '站点编号',
value: '',
},
{
name: '站名',
value: '',
}, {
name: '站点地址',
value: '',
}, {
name: '所在铁路线',
value: '',
}, {
name: '站点所在局',
value: '',
},
{
name: '站点所在段号',
value: '',
}, {
name: '站点所在铁路公里标',
value: '',
}, {
name: '站点经度',
value: '',
}, {
name: '站点纬度',
value: '',
}, {
name:'站点监控时间',
value: '',
},
{
name:'站点其他信息',
value: '',
},
]
},
{
title: '当前状态',
list: [
{
handle: true,
name: '设备状态',
value: '正常',
},
{
handle: true,
name: '漏缆状态',
value: '正常',
}
]
},
],
};
},
computed: {
...mapGetters({}),
},
methods: {
...mapActions({}),
getParams() {
this.id = this.$route.query.id;
sitedetail({ id: this.id }).then((res) => {
this.titleinfo='站点(' + res.siteName + ")"
this.listData[1].list[0].value=res.siteCode
this.listData[1].list[1].value=res.siteName
this.listData[1].list[2].value=res.siteAddress
this.listData[1].list[3].value=res.siteArea
this.listData[1].list[4].value=res.wayId
this.listData[1].list[5].value=res.siteSectionCode
this.listData[1].list[6].value=res.siteKmSign
this.listData[1].list[7].value=res.siteLatitude
this.listData[1].list[8].value=res.siteLongitude
this.listData[1].list[10].value=res.siteOtherMessage
});
},
},
created() {
this.getParams();
},
mounted() {},
};
</script>
<style lang="scss" scoped>
.header_title {
font-size: 23px;
font-family: Source Han Sans CN;
font-weight: 500;
line-height: 40px;
text-align: center;
color: #0058ff;
letter-spacing: 10px;
opacity: 1;
margin-bottom: 20px;
}
::v-deep.el-card {
border: 1px solid #e3e3e3;
border-radius: 8px;
min-height: 243px;
.el-card__header {
font-size: 18px;
color: #333333;
font-weight: 500;
text-align: center;
background: rgba(226, 235, 255, 0.39);
opacity: 1;
}
.el-card__body {
padding: 0px;
}
}
.posa {
position: relative;
}
.savebtn {
position: absolute;
right: 2%;
}
// .el-col {
// margin-bottom: 20px;
// }
.text {
// display: flex;
padding: 10px 20px 10px 20px;
border-bottom: 1px solid #e3e3e3;
&:last-child {
border-bottom: none;
}
.item_name,
.item_data,
.value_handle {
height: 16px;
line-height: 16px;
margin-top: 12px;
margin-bottom: 12px;
}
.item_name {
width: 262px;
height: 16px;
line-height: 16px;
color: #7e7e7e;
margin-top: 12px;
margin-bottom: 12px;
}
.item_data {
}
.value_handle {
color: red;
margin-right: 10px;
}
.alarmbtn {
margin-top: 6px;
margin-bottom: 6px;
}
.el-card:last-child .text {
border-bottom: none !important;
}
}
.text2 {
// display: flex;
padding: 10px 20px 10px 20px;
border-bottom: 1px solid #e3e3e3;
.item_name,
.item_data,
.value_handle {
height: 16px;
line-height: 16px;
margin-top: 12px;
margin-bottom: 12px;
}
.item_name {
width: 262px;
height: 16px;
line-height: 16px;
color: #7e7e7e;
margin-top: 12px;
margin-bottom: 12px;
}
.item_data {
}
.value_handle {
color: red;
margin-right: 10px;
min-width: 52px;
}
.alarmbtn {
margin-top: 6px;
margin-bottom: 6px;
}
.el-card:last-child .text {
border-bottom: none !important;
}
}
</style>
\ No newline at end of file
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