宁波三菜单调整
This commit is contained in:
parent
d5c3227909
commit
06ecb8dd1a
@ -120,6 +120,8 @@
|
||||
<running-interval ref="runningInterval" />
|
||||
<adjust-strategy ref="adjustStrategy" />
|
||||
<train-depart ref="trainDepart" />
|
||||
<train-jump-stop ref="trainJumpStop" />
|
||||
<train-cancel-deviation ref="trainCancelDeviation" />
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@ -162,6 +164,8 @@ import SystemDetain from './menuDialog/systemDetain';
|
||||
import RunningInterval from './menuDialog/runningInterval';
|
||||
import AdjustStrategy from './menuDialog/adjustStrategy';
|
||||
import TrainDepart from './menuDialog/trainDepart';
|
||||
import TrainJumpStop from './menuDialog/trainJumpStop';
|
||||
import TrainCancelDeviation from './menuDialog/trainCancelDeviation';
|
||||
|
||||
export default {
|
||||
name: 'MenuBar',
|
||||
@ -198,7 +202,9 @@ export default {
|
||||
SystemDetain,
|
||||
RunningInterval,
|
||||
AdjustStrategy,
|
||||
TrainDepart
|
||||
TrainDepart,
|
||||
TrainJumpStop,
|
||||
TrainCancelDeviation
|
||||
},
|
||||
props: {
|
||||
selected: {
|
||||
@ -298,11 +304,11 @@ export default {
|
||||
},
|
||||
{
|
||||
title: '跳停',
|
||||
click: this.undeveloped
|
||||
click: this.setJumpStop
|
||||
},
|
||||
{
|
||||
title: '设置/取消偏离',
|
||||
click: this.undeveloped
|
||||
click: this.cancelDeviation
|
||||
},
|
||||
{
|
||||
title: '更新偏差',
|
||||
@ -765,11 +771,11 @@ export default {
|
||||
},
|
||||
{
|
||||
title: '跳停',
|
||||
click: this.undeveloped
|
||||
click: this.setJumpStop
|
||||
},
|
||||
{
|
||||
title: '设置/取消偏离',
|
||||
click: this.undeveloped
|
||||
click: this.cancelDeviation
|
||||
},
|
||||
{
|
||||
title: '更新偏差',
|
||||
@ -1774,6 +1780,32 @@ export default {
|
||||
this.$refs.trainDepart.doShow(operate);
|
||||
}
|
||||
});
|
||||
},
|
||||
setJumpStop() {
|
||||
const operate = {
|
||||
type: 'bar',
|
||||
operation: ''
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', operate).then(({valid}) => {
|
||||
if (valid) {
|
||||
this.closeMenu(true);
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', {break: true});
|
||||
this.$refs.trainJumpStop.doShow(operate);
|
||||
}
|
||||
});
|
||||
},
|
||||
cancelDeviation() {
|
||||
const operate = {
|
||||
type: 'bar',
|
||||
operation: ''
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.closeMenu(true);
|
||||
this.$store.dispatch('menuOperation/handleBreakFlag', {break: true});
|
||||
this.$refs.trainCancelDeviation.doShow(operate);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -0,0 +1,213 @@
|
||||
<template>
|
||||
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="900px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-tabs type="border-card">
|
||||
<el-tab-pane label="列车">
|
||||
<el-row>
|
||||
<div>从列车</div>
|
||||
<el-table :data="trainList" height="150px">
|
||||
<el-table-column prop="id" label="列车" />
|
||||
<el-table-column prop="interval" label="班次" />
|
||||
<el-table-column prop="interval" width="400" label="运行线" />
|
||||
<el-table-column prop="interval" label="模式" />
|
||||
<el-table-column prop="interval" label="偏离" />
|
||||
</el-table>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="14">
|
||||
<div>到运行线</div>
|
||||
<el-table :data="trainList" height="150px">
|
||||
<el-table-column prop="interval" label="运行线" />
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col :span="5" style="padding-left: 5px;">
|
||||
<div>起始站台</div>
|
||||
<el-table :data="stationStandList" height="150px">
|
||||
<el-table-column prop="name" label="站台" />
|
||||
<el-table-column prop="status" label="状态" />
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col :span="5" style="padding-left: 5px;">
|
||||
<div>复位站台</div>
|
||||
<el-table :data="stationStandList" height="150px">
|
||||
<el-table-column prop="name" label="站台" />
|
||||
<el-table-column prop="status" label="状态" />
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="运行线">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<div>从运行线</div>
|
||||
<el-table :data="trainList" height="300px">
|
||||
<el-table-column prop="interval" label="运行线" />
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col :span="8" style="padding-left: 5px;">
|
||||
<div>到运行线</div>
|
||||
<el-table :data="trainList" height="300px">
|
||||
<el-table-column prop="interval" label="运行线" />
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col :span="4" style="padding-left: 5px;">
|
||||
<div>起始站台</div>
|
||||
<el-table :data="stationStandList" height="300px">
|
||||
<el-table-column prop="name" label="站台" />
|
||||
<el-table-column prop="status" label="状态" />
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col :span="4" style="padding-left: 5px;">
|
||||
<div>复位站台</div>
|
||||
<el-table :data="stationStandList" height="300px">
|
||||
<el-table-column prop="name" label="站台" />
|
||||
<el-table-column prop="status" label="状态" />
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="清除">
|
||||
<div>清除偏离</div>
|
||||
<el-table :data="trainList" height="300px">
|
||||
<el-table-column prop="code" label="偏离目标" />
|
||||
<el-table-column prop="status" label="运行线" />
|
||||
<el-table-column prop="status" label="起始站台" />
|
||||
<el-table-column prop="status" label="复位站台" />
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定(O)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button>应用(A)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdCancel" @click="cancel">关闭(C)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button>帮助(H)</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
// import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
import { mapGetters } from 'vuex';
|
||||
|
||||
export default {
|
||||
name: 'TrainJumpStop',
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
status: false,
|
||||
command: true,
|
||||
allChecked: false,
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
selected: null,
|
||||
activeName: 'first',
|
||||
operate: {},
|
||||
allCheck: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'trainList',
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdChoose() {
|
||||
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.choose.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '设置/清除站台跳停';
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'$store.state.map.keyboardEnterCount': function (val) {
|
||||
if (this.show) {
|
||||
this.commit();
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.$nextTick(() => {
|
||||
this.$store.dispatch('training/tipReload');
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, selected) {
|
||||
this.selected = selected;
|
||||
this.operate = operate;
|
||||
// 如果不是断点激活,而是第一次显示,则需要设置初始值
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
},
|
||||
handleClick() {
|
||||
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.doClose();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||
.menu-li {
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-align: left;
|
||||
list-style:none;
|
||||
padding-left: 5px;
|
||||
border-right: 2px solid #696969;
|
||||
color: #000;
|
||||
}
|
||||
.set-status-box {
|
||||
position: relative;
|
||||
top: 80px;
|
||||
border: 1px solid #AFAFAF;
|
||||
padding: 10px 5px;
|
||||
}
|
||||
.set-status-title{
|
||||
position: relative;
|
||||
top: 95px;
|
||||
background: #F0F0F0;
|
||||
width: 40px;
|
||||
text-align: center;
|
||||
z-index: 22;
|
||||
left: 10px;
|
||||
}
|
||||
</style>
|
174
src/jmapNew/theme/ningbo_03/menus/menuDialog/trainJumpStop.vue
Normal file
174
src/jmapNew/theme/ningbo_03/menus/menuDialog/trainJumpStop.vue
Normal file
@ -0,0 +1,174 @@
|
||||
<template>
|
||||
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="600px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-row>
|
||||
<el-col :span="20">
|
||||
<el-tabs type="border-card">
|
||||
<el-tab-pane label="运行线">
|
||||
<el-table :data="trainList" height="300px">
|
||||
<el-table-column prop="interval" label="运行线" />
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="列车">
|
||||
<el-row>
|
||||
<el-col :span="14">
|
||||
<el-table :data="trainList" height="300px">
|
||||
<el-table-column prop="code" label="列车" />
|
||||
<el-table-column prop="interval" label="运行线" />
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col :span="10" style="padding-left: 5px;">
|
||||
<el-table :data="stationStandList" height="260px">
|
||||
<el-table-column prop="name" label="站台" />
|
||||
<el-table-column prop="jump" label="跳停" />
|
||||
</el-table>
|
||||
<el-checkbox v-model="allCheck" style="margin-top: 10px;">所有站台</el-checkbox>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-col>
|
||||
<el-col :span="4" style="padding-left: 5px;">
|
||||
<div class="set-status-title">跳停</div>
|
||||
<div class="set-status-box">
|
||||
<el-radio v-model="command" :disabled="true" :label="true">设置(S)</el-radio>
|
||||
<br>
|
||||
<el-radio v-model="command" :label="false">清除(R)</el-radio>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定(O)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button>应用(A)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdCancel" @click="cancel">关闭(C)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button>帮助(H)</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
// import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
import { mapGetters } from 'vuex';
|
||||
|
||||
export default {
|
||||
name: 'TrainJumpStop',
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
status: false,
|
||||
command: true,
|
||||
allChecked: false,
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
selected: null,
|
||||
activeName: 'first',
|
||||
operate: {},
|
||||
allCheck: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'trainList',
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdChoose() {
|
||||
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.choose.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '设置/清除站台跳停';
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'$store.state.map.keyboardEnterCount': function (val) {
|
||||
if (this.show) {
|
||||
this.commit();
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.$nextTick(() => {
|
||||
this.$store.dispatch('training/tipReload');
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, selected) {
|
||||
this.selected = selected;
|
||||
this.operate = operate;
|
||||
// 如果不是断点激活,而是第一次显示,则需要设置初始值
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
},
|
||||
handleClick() {
|
||||
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.doClose();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||
.menu-li {
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-align: left;
|
||||
list-style:none;
|
||||
padding-left: 5px;
|
||||
border-right: 2px solid #696969;
|
||||
color: #000;
|
||||
}
|
||||
.set-status-box {
|
||||
position: relative;
|
||||
top: 80px;
|
||||
border: 1px solid #AFAFAF;
|
||||
padding: 10px 5px;
|
||||
}
|
||||
.set-status-title{
|
||||
position: relative;
|
||||
top: 95px;
|
||||
background: #F0F0F0;
|
||||
width: 40px;
|
||||
text-align: center;
|
||||
z-index: 22;
|
||||
left: 10px;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,155 @@
|
||||
<template>
|
||||
<el-dialog v-dialogDrag class="ningbo-01__systerm route-setting" :title="title" :visible.sync="show" width="600px" :before-close="doClose" :z-index="2000" :modal="false" :close-on-click-modal="false">
|
||||
<el-row>
|
||||
<el-col :span="16">
|
||||
<el-table :data="trainList" height="300px">
|
||||
<el-table-column prop="code" label="列车" />
|
||||
<el-table-column prop="trip" label="班次" />
|
||||
<el-table-column prop="deviation" label="偏差" />
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col :span="4" style="padding-left: 5px;">
|
||||
<div class="set-status-title">跳停</div>
|
||||
<div class="set-status-box">
|
||||
<el-radio v-model="command" :disabled="true" :label="true">设置(S)</el-radio>
|
||||
<br>
|
||||
<el-radio v-model="command" :label="false">清除(R)</el-radio>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row justify="center" class="button-group">
|
||||
<el-col :span="4" :offset="1">
|
||||
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定(O)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button>应用(A)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button :id="domIdCancel" @click="cancel">关闭(C)</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" :offset="2">
|
||||
<el-button>帮助(H)</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<notice-info ref="noticeInfo" pop-class="ningbo-01__systerm" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
||||
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
|
||||
// import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
|
||||
import { mapGetters } from 'vuex';
|
||||
|
||||
export default {
|
||||
name: 'TrainUpdateDeviation',
|
||||
components: {
|
||||
NoticeInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
status: false,
|
||||
command: true,
|
||||
allChecked: false,
|
||||
dialogShow: false,
|
||||
loading: false,
|
||||
selected: null,
|
||||
activeName: 'first',
|
||||
operate: {},
|
||||
allCheck: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'trainList',
|
||||
'stationStandList'
|
||||
]),
|
||||
show() {
|
||||
return this.dialogShow && !this.$store.state.menuOperation.break;
|
||||
},
|
||||
domIdCancel() {
|
||||
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
|
||||
},
|
||||
domIdChoose() {
|
||||
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.choose.domId : '';
|
||||
},
|
||||
domIdConfirm() {
|
||||
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
|
||||
},
|
||||
title() {
|
||||
return '设置/清除站台跳停';
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'$store.state.map.keyboardEnterCount': function (val) {
|
||||
if (this.show) {
|
||||
this.commit();
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.$nextTick(() => {
|
||||
this.$store.dispatch('training/tipReload');
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
doShow(operate, selected) {
|
||||
this.selected = selected;
|
||||
this.operate = operate;
|
||||
// 如果不是断点激活,而是第一次显示,则需要设置初始值
|
||||
this.dialogShow = true;
|
||||
this.$nextTick(function () {
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
this.loading = false;
|
||||
this.dialogShow = false;
|
||||
this.$store.dispatch('training/emitTipFresh');
|
||||
},
|
||||
commit() {
|
||||
},
|
||||
handleClick() {
|
||||
|
||||
},
|
||||
cancel() {
|
||||
const operate = {
|
||||
operation: OperationEvent.Command.cancel.menu.operation
|
||||
};
|
||||
this.$store.dispatch('training/nextNew', operate).then(({ valid }) => {
|
||||
if (valid) {
|
||||
this.doClose();
|
||||
}
|
||||
}).catch(() => {
|
||||
this.doClose();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||
.menu-li {
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
text-align: left;
|
||||
list-style:none;
|
||||
padding-left: 5px;
|
||||
border-right: 2px solid #696969;
|
||||
color: #000;
|
||||
}
|
||||
.set-status-box {
|
||||
position: relative;
|
||||
top: 80px;
|
||||
border: 1px solid #AFAFAF;
|
||||
padding: 10px 5px;
|
||||
}
|
||||
.set-status-title{
|
||||
position: relative;
|
||||
top: 95px;
|
||||
background: #F0F0F0;
|
||||
width: 40px;
|
||||
text-align: center;
|
||||
z-index: 22;
|
||||
left: 10px;
|
||||
}
|
||||
</style>
|
Loading…
Reference in New Issue
Block a user