Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
@@ -103,7 +103,7 @@
|
|||||||
<!-- <div v-if="scope.row.enable === '1'">未启用</div>-->
|
<!-- <div v-if="scope.row.enable === '1'">未启用</div>-->
|
||||||
<!-- </template>-->
|
<!-- </template>-->
|
||||||
<!-- </el-table-column>-->
|
<!-- </el-table-column>-->
|
||||||
<el-table-column prop="creationTime" label="创建时间" sortable>
|
<el-table-column prop="creationTime" label="创建时间" >
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- <el-table-column-->
|
<!-- <el-table-column-->
|
||||||
<!-- fixed="right"-->
|
<!-- fixed="right"-->
|
||||||
|
|||||||
@@ -601,7 +601,10 @@ export default {
|
|||||||
var fileSuffix = filename.substring(index1, index2)
|
var fileSuffix = filename.substring(index1, index2)
|
||||||
// const fileSuffix = file.name.split('.')[1] // 后缀名
|
// const fileSuffix = file.name.split('.')[1] // 后缀名
|
||||||
// 判断上传文件格式
|
// 判断上传文件格式
|
||||||
if (fileSuffix === '.ZIP' || fileSuffix === '.docx' || fileSuffix === '.DOCX' || fileSuffix === '.zip' || fileSuffix === '.xls' || fileSuffix === '.xlsx' || fileSuffix === '.pdf' || fileSuffix === '.PDF') {
|
if (fileSuffix === '.ZIP' || fileSuffix === '.docx' || fileSuffix === '.DOCX' || fileSuffix === '.zip'
|
||||||
|
|| fileSuffix === '.xls' || fileSuffix === '.xlsx' || fileSuffix === '.pdf' || fileSuffix === '.PDF'
|
||||||
|
|| fileSuffix === '.PNG'|| fileSuffix === '.JPG'|| fileSuffix === '.JPEG' || fileSuffix === '.PPT'
|
||||||
|
|| fileSuffix === '.doc' || fileSuffix === '.DOC' || fileSuffix === '.bmp') {
|
||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
this.spinShow = false
|
this.spinShow = false
|
||||||
|
|||||||
@@ -537,7 +537,11 @@ export default {
|
|||||||
var fileSuffix = filename.substring(index1, index2)
|
var fileSuffix = filename.substring(index1, index2)
|
||||||
// const fileSuffix = file.name.split('.')[1] // 后缀名
|
// const fileSuffix = file.name.split('.')[1] // 后缀名
|
||||||
// 判断上传文件格式
|
// 判断上传文件格式
|
||||||
if (fileSuffix === '.ZIP' || fileSuffix === '.docx' || fileSuffix === '.DOCX' || fileSuffix === '.zip' || fileSuffix === '.xls' || fileSuffix === '.xlsx' || fileSuffix === '.pdf' || fileSuffix === '.PDF') {
|
if (fileSuffix === '.ZIP' || fileSuffix === '.docx' || fileSuffix === '.DOCX' || fileSuffix === '.zip'
|
||||||
|
|| fileSuffix === '.xls' || fileSuffix === '.xlsx' || fileSuffix === '.pdf' || fileSuffix === '.PDF'
|
||||||
|
|| fileSuffix === '.PNG'|| fileSuffix === '.JPG'|| fileSuffix === '.JPEG' || fileSuffix === '.PPT'
|
||||||
|
|| fileSuffix === '.doc' || fileSuffix === '.DOC' || fileSuffix === '.bmp'
|
||||||
|
) {
|
||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
this.spinShow = false
|
this.spinShow = false
|
||||||
@@ -872,11 +876,6 @@ export default {
|
|||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.meeting_table {
|
|
||||||
/deep/ .el-input__inner {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/deep/ .el-table th {
|
/deep/ .el-table th {
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
|
|||||||
@@ -480,12 +480,6 @@ export default {
|
|||||||
height: auto !important;
|
height: auto !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.meeting_table {
|
|
||||||
/deep/ .el-input__inner {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/deep/ .el-textarea__inner {
|
/deep/ .el-textarea__inner {
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -533,11 +533,6 @@ export default {
|
|||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.meeting_table {
|
|
||||||
/deep/ .el-input__inner {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/deep/ .el-table__body-wrapper {
|
/deep/ .el-table__body-wrapper {
|
||||||
height: auto !important;
|
height: auto !important;
|
||||||
|
|||||||
@@ -454,11 +454,6 @@ export default {
|
|||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.meeting_table {
|
|
||||||
/deep/ .el-input__inner {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/deep/ .el-table__body-wrapper {
|
/deep/ .el-table__body-wrapper {
|
||||||
height: auto !important;
|
height: auto !important;
|
||||||
|
|||||||
@@ -631,11 +631,6 @@ export default {
|
|||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.meeting_table {
|
|
||||||
/deep/ .el-input__inner {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/deep/ .el-table__body-wrapper {
|
/deep/ .el-table__body-wrapper {
|
||||||
height: auto !important;
|
height: auto !important;
|
||||||
@@ -645,11 +640,6 @@ export default {
|
|||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
.meeting_table {
|
|
||||||
/deep/ .el-input__inner {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/deep/ .el-table th {
|
/deep/ .el-table th {
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
|
|||||||
@@ -358,11 +358,6 @@ export default {
|
|||||||
/deep/.el-textarea__inner {
|
/deep/.el-textarea__inner {
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
}
|
}
|
||||||
.meeting_table {
|
|
||||||
/deep/ .el-input__inner {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/deep/.el-upload {
|
/deep/.el-upload {
|
||||||
display: unset;
|
display: unset;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -527,11 +527,6 @@ export default {
|
|||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
.meeting_table {
|
|
||||||
/deep/ .el-input__inner {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/deep/ .el-upload {
|
/deep/ .el-upload {
|
||||||
display: unset;
|
display: unset;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
+545
-366
File diff suppressed because it is too large
Load Diff
+797
-622
File diff suppressed because it is too large
Load Diff
@@ -269,12 +269,12 @@
|
|||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<!-- {{ formatIssueDate(scope.row.putTime) }}-->
|
<!-- {{ formatIssueDate(scope.row.putTime) }}-->
|
||||||
<span v-if="textStatusMap[scope.row.textStatus] === '废止' || textStatusMap[scope.row.textStatus] === '被代替'" style="color: #F56C6C">{{
|
<span v-if="textStatusMap[scope.row.textStatus] === '废止' || textStatusMap[scope.row.textStatus] === '被代替'" style="color: #F56C6C">{{
|
||||||
scope.row.SSRQ ? scope.row.SSRQ.substring(0, 10) : '-'
|
scope.row.SSRQ
|
||||||
}}</span>
|
}}</span>
|
||||||
<span v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF">{{
|
<span v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF">{{
|
||||||
scope.row.SSRQ ? scope.row.SSRQ.substring(0, 10) : '-'
|
scope.row.SSRQ
|
||||||
}}</span>
|
}}</span>
|
||||||
<span v-else style="color: #333333">{{ scope.row.SSRQ ? scope.row.SSRQ.substring(0, 10) : '-' }}</span>
|
<span v-else style="color: #333333">{{ scope.row.SSRQ }}</span>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -285,13 +285,13 @@
|
|||||||
label="新车型实施日期">
|
label="新车型实施日期">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-if="textStatusMap[scope.row.textStatus] === '废止' || textStatusMap[scope.row.textStatus] === '被代替'" style="color: #F56C6C">{{
|
<span v-if="textStatusMap[scope.row.textStatus] === '废止' || textStatusMap[scope.row.textStatus] === '被代替'" style="color: #F56C6C">{{
|
||||||
scope.row.XCXSSRQ ? scope.row.XCXSSRQ.substring(0, 10) : '-'
|
scope.row.XCXSSRQ
|
||||||
}}</span>
|
}}</span>
|
||||||
<span v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF">{{
|
<span v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF">{{
|
||||||
scope.row.XCXSSRQ ? scope.row.XCXSSRQ.substring(0, 10) : '-'
|
scope.row.XCXSSRQ
|
||||||
}}</span>
|
}}</span>
|
||||||
<span v-else style="color: #333333">{{
|
<span v-else style="color: #333333">{{
|
||||||
scope.row.XCXSSRQ ? scope.row.XCXSSRQ.substring(0, 10) : '-'
|
scope.row.XCXSSRQ
|
||||||
}}</span>
|
}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -302,13 +302,13 @@
|
|||||||
label="在产车实施日期">
|
label="在产车实施日期">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-if="textStatusMap[scope.row.textStatus] === '废止' || textStatusMap[scope.row.textStatus] === '被代替'" style="color: #F56C6C">{{
|
<span v-if="textStatusMap[scope.row.textStatus] === '废止' || textStatusMap[scope.row.textStatus] === '被代替'" style="color: #F56C6C">{{
|
||||||
scope.row.ZCCSSRQ ? scope.row.ZCCSSRQ.substring(0, 10) : '-'
|
scope.row.ZCCSSRQ
|
||||||
}}</span>
|
}}</span>
|
||||||
<span v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF">{{
|
<span v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF">{{
|
||||||
scope.row.ZCCSSRQ ? scope.row.ZCCSSRQ.substring(0, 10) : '-'
|
scope.row.ZCCSSRQ
|
||||||
}}</span>
|
}}</span>
|
||||||
<span v-else style="color: #333333">{{
|
<span v-else style="color: #333333">{{
|
||||||
scope.row.ZCCSSRQ ? scope.row.ZCCSSRQ.substring(0, 10) : '-'
|
scope.row.ZCCSSRQ
|
||||||
}}</span>
|
}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -2279,20 +2279,15 @@ export default {
|
|||||||
synopsis: [
|
synopsis: [
|
||||||
{type: 'string', max: 1000, message: '文本说明不能超过1000个字符', trigger: 'change'}
|
{type: 'string', max: 1000, message: '文本说明不能超过1000个字符', trigger: 'change'}
|
||||||
],
|
],
|
||||||
standYear: [
|
standEnName: [
|
||||||
{required: true, message: '标准年份不能为空', trigger: 'change'},
|
{required: true, message: '英文名称不能为空', trigger: 'change'},
|
||||||
// {validator: this.verify.testNumberCode, trigger: 'change'},
|
// {validator: this.verify.valiateEnName, trigger: 'blur'},
|
||||||
{type: 'string', max: 100, message: '标准年份不能超过100个字符', trigger: 'change'}
|
{type: 'string', max: 500, message: '英文名称不能超过500个字符不', trigger: 'change'}
|
||||||
],
|
],
|
||||||
standName: [
|
standName: [
|
||||||
{required: false, message: '中文名称不能为空', trigger: 'change'},
|
{required: false, message: '中文名称不能为空', trigger: 'change'},
|
||||||
{type: 'string', max: 500, message: '中文名称不能超过500个字符', trigger: 'change'}
|
{type: 'string', max: 500, message: '中文名称不能超过500个字符', trigger: 'change'}
|
||||||
],
|
],
|
||||||
standEnName: [
|
|
||||||
{required: false, message: '英文名称不能为空', trigger: 'change'},
|
|
||||||
{type: 'string', max: 500, message: '英文名称不能超过500个字符', trigger: 'change'}
|
|
||||||
// {validator: this.verify.valiateEnName, trigger: 'blur'}
|
|
||||||
],
|
|
||||||
textStatus: [
|
textStatus: [
|
||||||
{required: true, message: '文本状态不能为空', trigger: 'change'}
|
{required: true, message: '文本状态不能为空', trigger: 'change'}
|
||||||
],
|
],
|
||||||
@@ -2591,7 +2586,6 @@ export default {
|
|||||||
this.modalShowFlag3 = false
|
this.modalShowFlag3 = false
|
||||||
},
|
},
|
||||||
popoverHideModel(checkedIds, checkedData, isShow, isLoadChild, topId) {
|
popoverHideModel(checkedIds, checkedData, isShow, isLoadChild, topId) {
|
||||||
console.log(checkedData)
|
|
||||||
if (checkedData && checkedData.length != 0) {
|
if (checkedData && checkedData.length != 0) {
|
||||||
if (checkedData.length > 0) {
|
if (checkedData.length > 0) {
|
||||||
this.sarStandardsInfoEO.DYBXH = checkedData.map(item => item.model).join(",")
|
this.sarStandardsInfoEO.DYBXH = checkedData.map(item => item.model).join(",")
|
||||||
@@ -2613,7 +2607,6 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
choiceZRRS (type, title, id) {
|
choiceZRRS (type, title, id) {
|
||||||
console.log('2077',title)
|
|
||||||
this.nodeList = []
|
this.nodeList = []
|
||||||
this.nodeList.push(id)
|
this.nodeList.push(id)
|
||||||
this.userType = type
|
this.userType = type
|
||||||
@@ -2621,7 +2614,6 @@ export default {
|
|||||||
this.modalShowRoleFlag = true
|
this.modalShowRoleFlag = true
|
||||||
},
|
},
|
||||||
checkedRole2 (data) {
|
checkedRole2 (data) {
|
||||||
console.log('1712',this.drawerTitle)
|
|
||||||
let idList = ''
|
let idList = ''
|
||||||
let nameList = ''
|
let nameList = ''
|
||||||
data.forEach( item => {
|
data.forEach( item => {
|
||||||
@@ -2861,8 +2853,6 @@ export default {
|
|||||||
// 编辑标准属性
|
// 编辑标准属性
|
||||||
selectStandardPro(row, state) {
|
selectStandardPro(row, state) {
|
||||||
// this.sarStandardsInfoEO.country=JSON.parse(item.country );
|
// this.sarStandardsInfoEO.country=JSON.parse(item.country );
|
||||||
|
|
||||||
// console.log(this.sarStandardsInfoEO.country);
|
|
||||||
this.$http.get('sarStandardsInfo/sar-standards-info/getStandInfoUpdateById', {id: row.id}, {
|
this.$http.get('sarStandardsInfo/sar-standards-info/getStandInfoUpdateById', {id: row.id}, {
|
||||||
_this: this
|
_this: this
|
||||||
}, res => {
|
}, res => {
|
||||||
@@ -2874,7 +2864,6 @@ export default {
|
|||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
Promise.all([this.queryDisplayLocation()]).then((values) => {
|
Promise.all([this.queryDisplayLocation()]).then((values) => {
|
||||||
const [displayLocation] = values
|
const [displayLocation] = values
|
||||||
console.log('2717', displayLocation)
|
|
||||||
const formFieldList = this.formFieldList
|
const formFieldList = this.formFieldList
|
||||||
this.sarStandardsInfoEO = JSON.parse(JSON.stringify(item))
|
this.sarStandardsInfoEO = JSON.parse(JSON.stringify(item))
|
||||||
this.defaultCheckedKeys = [this.sarStandardsInfoEO.standSystem];
|
this.defaultCheckedKeys = [this.sarStandardsInfoEO.standSystem];
|
||||||
@@ -2929,7 +2918,6 @@ export default {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
this.dynamicFormField = displayLocation
|
this.dynamicFormField = displayLocation
|
||||||
console.log('2771',this.dynamicFormField)
|
|
||||||
this.loading = false
|
this.loading = false
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -3366,7 +3354,6 @@ export default {
|
|||||||
const formFieldList = this.formFieldList
|
const formFieldList = this.formFieldList
|
||||||
formFieldList.forEach((field) => {
|
formFieldList.forEach((field) => {
|
||||||
displayLocation.forEach((location) => {
|
displayLocation.forEach((location) => {
|
||||||
console.log(location)
|
|
||||||
let value = dynamicFormField[field.attrField]
|
let value = dynamicFormField[field.attrField]
|
||||||
if (value && typeof value === 'number') {
|
if (value && typeof value === 'number') {
|
||||||
value = this.$dateFormat(value, 'yyyy-MM-dd')
|
value = this.$dateFormat(value, 'yyyy-MM-dd')
|
||||||
@@ -3810,11 +3797,8 @@ export default {
|
|||||||
// // 自定义属性字段高级搜索处理
|
// // 自定义属性字段高级搜索处理
|
||||||
//advanceSearchVOStr
|
//advanceSearchVOStr
|
||||||
const advanceSearchVOList = [];
|
const advanceSearchVOList = [];
|
||||||
console.log('4333',this.advanceSearchMapping)
|
|
||||||
for (let key in this.advanceSearchMapping) {
|
for (let key in this.advanceSearchMapping) {
|
||||||
console.log('key',key)
|
|
||||||
const value = this.advanceSearchMapping[key];
|
const value = this.advanceSearchMapping[key];
|
||||||
console.log('value',value)
|
|
||||||
if (value !== null && value !== '' && (key === 'NYLX' || key === 'SYRZ' || key === 'SYCPX' || (item.CLLX&&item.CLLX.length>0)) ){
|
if (value !== null && value !== '' && (key === 'NYLX' || key === 'SYRZ' || key === 'SYCPX' || (item.CLLX&&item.CLLX.length>0)) ){
|
||||||
advanceSearchVOList.push({
|
advanceSearchVOList.push({
|
||||||
connect: "and",
|
connect: "and",
|
||||||
@@ -4818,7 +4802,6 @@ export default {
|
|||||||
})
|
})
|
||||||
// this.rules = rules
|
// this.rules = rules
|
||||||
this.$set(this, 'sarStandardsInfoRules', rules)
|
this.$set(this, 'sarStandardsInfoRules', rules)
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.reloadAddForm = true
|
this.reloadAddForm = true
|
||||||
}, 1000)
|
}, 1000)
|
||||||
@@ -4902,6 +4885,7 @@ export default {
|
|||||||
// rules.standState = [{required: true, message: '标准状态不能为空', trigger: 'change'}]
|
// rules.standState = [{required: true, message: '标准状态不能为空', trigger: 'change'}]
|
||||||
rules.issueTime = [{required: false, message: '发布日期不能为空', trigger: 'change'}]
|
rules.issueTime = [{required: false, message: '发布日期不能为空', trigger: 'change'}]
|
||||||
this.$set(this, 'sarStandardsInfoRules', rules)
|
this.$set(this, 'sarStandardsInfoRules', rules)
|
||||||
|
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.sarStandardsInfoForm.clearValidate()
|
this.$refs.sarStandardsInfoForm.clearValidate()
|
||||||
})
|
})
|
||||||
@@ -5103,10 +5087,10 @@ export default {
|
|||||||
this.$http.get('sys/dictype/getDicTypeListCode', '', {
|
this.$http.get('sys/dictype/getDicTypeListCode', '', {
|
||||||
_this: this
|
_this: this
|
||||||
}, res => {
|
}, res => {
|
||||||
|
this.setMap(res.data.WBZTCLASS)
|
||||||
this.allSelectOptions = res.data || {}
|
this.allSelectOptions = res.data || {}
|
||||||
this.standSortOptions = res.data.STANDCLASSIFY // 标准类别
|
this.standSortOptions = res.data.STANDCLASSIFY // 标准类别
|
||||||
this.standNatureOptions = res.data.SARPROPERTY // 标准性质
|
this.standNatureOptions = res.data.SARPROPERTY // 标准性质
|
||||||
this.standStateOptions = res.data.WBZTCLASS // 文本状态
|
|
||||||
this.standSystemOptions = res.data.BZTXCLASS // 标准体系
|
this.standSystemOptions = res.data.BZTXCLASS // 标准体系
|
||||||
this.categoryOptions.options = res.data.NYLXCLASS // 能源类型
|
this.categoryOptions.options = res.data.NYLXCLASS // 能源类型
|
||||||
this.applyAuthOptions.options = res.data.SYRZCLASS // 适用认证
|
this.applyAuthOptions.options = res.data.SYRZCLASS // 适用认证
|
||||||
@@ -5127,11 +5111,11 @@ export default {
|
|||||||
this.nylxOptions.options = res.data.NYLXCLASS;//能源类型
|
this.nylxOptions.options = res.data.NYLXCLASS;//能源类型
|
||||||
this.syrzOptions.options = res.data.SYRZCLASS;//适用认证
|
this.syrzOptions.options = res.data.SYRZCLASS;//适用认证
|
||||||
this.gkglbmOptions = res.data.GKGLBM;//归口管理部门
|
this.gkglbmOptions = res.data.GKGLBM;//归口管理部门
|
||||||
|
this.standStateOptions = res.data.WBZTCLASS // 文本状态
|
||||||
// 模块结构单元变型号
|
// 模块结构单元变型号
|
||||||
this.dybxhOptions.options = res.data.DYBXH
|
this.dybxhOptions.options = res.data.DYBXH
|
||||||
|
|
||||||
this.getGzzOption()
|
this.getGzzOption()
|
||||||
this.setMap(this.standStateOptions)
|
|
||||||
}, e => {
|
}, e => {
|
||||||
})
|
})
|
||||||
this.getDomesticStandardTable()
|
this.getDomesticStandardTable()
|
||||||
|
|||||||
Reference in New Issue
Block a user