项目参数配置
This commit is contained in:
parent
182d43fd84
commit
ddccaa4f32
@ -147,3 +147,27 @@ export function delitemtdh(data?: Object) {
|
|||||||
params: data
|
params: data
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
// 获取仪器参数
|
||||||
|
export function querydouble(data?: Object) {
|
||||||
|
return request({
|
||||||
|
url: '/xminfo/querydouble',
|
||||||
|
method: 'get',
|
||||||
|
params: data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 保存仪器参数
|
||||||
|
export function savedouble(data?: Object) {
|
||||||
|
return request({
|
||||||
|
url: '/xminfo/savedouble',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 获取参数默认模板
|
||||||
|
export function querymbmc(data?: Object) {
|
||||||
|
return request({
|
||||||
|
url: '/xminfo/querymbmc',
|
||||||
|
method: 'get',
|
||||||
|
params: data
|
||||||
|
});
|
||||||
|
}
|
||||||
@ -171,13 +171,7 @@ service.interceptors.response.use(res => {
|
|||||||
})
|
})
|
||||||
return Promise.reject('error');
|
return Promise.reject('error');
|
||||||
} else if (code === 1) {
|
} else if (code === 1) {
|
||||||
//提示并失败
|
//提示并返回数据
|
||||||
ElNotification({
|
|
||||||
title: '提示',
|
|
||||||
message: msg,
|
|
||||||
type: 'error',
|
|
||||||
duration: 0,
|
|
||||||
})
|
|
||||||
return Promise.resolve(res.data)
|
return Promise.resolve(res.data)
|
||||||
} else if (code === 4) {
|
} else if (code === 4) {
|
||||||
//返回特定值,需要后续处理,表示当前操作需要处理后再调用,problemId是步骤关键参数,需要再次调用时引入
|
//返回特定值,需要后续处理,表示当前操作需要处理后再调用,problemId是步骤关键参数,需要再次调用时引入
|
||||||
|
|||||||
@ -1,159 +1,169 @@
|
|||||||
<template>
|
<template>
|
||||||
<!-- 参数列表 -->
|
<!-- 参数列表 -->
|
||||||
<div>
|
<div>
|
||||||
<el-row :gutter="10" class="table-toolbar">
|
<template v-if="paramsFlag">
|
||||||
<el-col :span="1.5">
|
<el-row :gutter="10" class="table-toolbar">
|
||||||
<el-button type="primary" plain icon="Check" @click="handleSave">保存</el-button>
|
<el-col :span="1.5">
|
||||||
</el-col>
|
<el-button type="primary" plain icon="Check" @click="handleSave">保存</el-button>
|
||||||
<el-col :span="1.5">
|
</el-col>
|
||||||
|
<!-- <el-col :span="1.5">
|
||||||
<el-button type="success" plain icon="Edit" @click="handleCancelEdit">取消修改</el-button>
|
<el-button type="success" plain icon="Edit" @click="handleCancelEdit">取消修改</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="danger" plain icon="RefreshRight" @click="handleRestoreDefault">还原默认</el-button>
|
<el-button type="danger" plain icon="RefreshRight" @click="handleRestoreDefault">还原默认</el-button>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-form ref="form" :model="formData" :rules="rules" label-width="120px" class="form-inline" inline>
|
|
||||||
<div class="title">说明:公式中阴阳对照请用NC,PC表示</div>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="测试波长" prop="csbc">
|
|
||||||
<el-select v-model="formData.csbc" style="width: 12rem;">
|
|
||||||
<el-option v-for="item in dzList" :key="item.lgph" :value="item.lgph" :label="item.bc" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8" style="display: flex;">
|
|
||||||
<el-form-item label="参考波长" prop="ckbc">
|
|
||||||
<el-select v-model="formData.ckbc" style="width: 12rem;">
|
|
||||||
<el-option v-for="item in dzList" :key="item.lgph" :value="item.lgph" :label="item.bc" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-button type="primary" @click="openDz">滤光片波长对照表</el-button>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="阳性判断公式" prop="yxgs">
|
|
||||||
<el-input v-model="formData.yxgs" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row>
|
<el-form ref="form" :model="formData" :rules="rules" label-width="120px" class="form-inline" inline>
|
||||||
<el-col :span="8">
|
<div style="display: flex;">
|
||||||
<el-form-item label="上灰区" prop="shq">
|
<el-form-item label="项目" prop="xmdh">
|
||||||
<el-input v-model="formData.shq">
|
<SelectTable v-model:data="xmdh" :tableData="xmList" style="width: 12rem;" @getDataValue='getXmInfo' />
|
||||||
<template #append>% </template>
|
|
||||||
</el-input>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
<div class="title">说明:公式中阴阳对照请用NC,PC表示</div>
|
||||||
<el-col :span="8">
|
</div>
|
||||||
<el-form-item label="下灰区" prop="xhq">
|
<el-row>
|
||||||
<el-input v-model="formData.xhq">
|
<el-col :span="8">
|
||||||
<template #append>% </template>
|
<el-form-item label="测试波长" prop="csbc">
|
||||||
</el-input>
|
<el-select v-model="formData.csbc" style="width: 12rem;">
|
||||||
</el-form-item>
|
<el-option v-for="item in dzList" :key="item.lgph" :value="item.lgph" :label="item.bc" />
|
||||||
</el-col>
|
</el-select>
|
||||||
<el-col :span="8">
|
</el-form-item>
|
||||||
<el-form-item label="阴性对照下限" prop="negxx">
|
</el-col>
|
||||||
<el-input v-model="formData.negxx" />
|
<el-col :span="8" style="display: flex;">
|
||||||
</el-form-item>
|
<el-form-item label="参考波长" prop="ckbc">
|
||||||
</el-col>
|
<el-select v-model="formData.ckbc" style="width: 12rem;">
|
||||||
</el-row>
|
<el-option v-for="item in dzList" :key="item.lgph" :value="item.lgph" :label="item.bc" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-button type="primary" @click="openDz">滤光片波长对照表</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="阳性判断公式" prop="yxgs">
|
||||||
|
<el-input v-model="formData.yxgs" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="阳性对照下限" prop="posxx">
|
<el-form-item label="上灰区" prop="shq">
|
||||||
<el-input v-model="formData.posxx" />
|
<el-input v-model="formData.shq">
|
||||||
</el-form-item>
|
<template #append>% </template>
|
||||||
</el-col>
|
</el-input>
|
||||||
<el-col :span="8">
|
</el-form-item>
|
||||||
<el-form-item label="阴性对照上限" prop="negsx">
|
</el-col>
|
||||||
<el-input v-model="formData.negsx" />
|
<el-col :span="8">
|
||||||
</el-form-item>
|
<el-form-item label="下灰区" prop="xhq">
|
||||||
</el-col>
|
<el-input v-model="formData.xhq">
|
||||||
<el-col :span="8">
|
<template #append>% </template>
|
||||||
<el-form-item label="阳性对照上限" prop="possx">
|
</el-input>
|
||||||
<el-input v-model="formData.possx" />
|
</el-form-item>
|
||||||
</el-form-item>
|
</el-col>
|
||||||
</el-col>
|
<el-col :span="8">
|
||||||
<el-col :span="6">
|
<el-form-item label="阴性对照下限" prop="negxx">
|
||||||
|
<el-input v-model="formData.negxx" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
</el-col>
|
<el-row>
|
||||||
</el-row>
|
<el-col :span="8">
|
||||||
|
<el-form-item label="阳性对照下限" prop="posxx">
|
||||||
|
<el-input v-model="formData.posxx" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="阴性对照上限" prop="negsx">
|
||||||
|
<el-input v-model="formData.negsx" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="阳性对照上限" prop="possx">
|
||||||
|
<el-input v-model="formData.possx" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
|
||||||
<el-divider></el-divider>
|
</el-col>
|
||||||
<el-row>
|
</el-row>
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="项目性质" prop="xmxz">
|
|
||||||
<el-radio-group v-model="formData.xmxz">
|
|
||||||
<el-radio value="1">定性</el-radio>
|
|
||||||
<el-radio value="2">定量</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="移动模式" prop="ydfs">
|
|
||||||
<el-radio-group v-model="formData.ydfs">
|
|
||||||
<el-radio value="1">连续</el-radio>
|
|
||||||
<el-radio value="2">步进</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
|
|
||||||
<el-form-item label="测试模式" prop="csms">
|
<el-divider></el-divider>
|
||||||
<el-radio-group v-model="formData.csms">
|
<el-row>
|
||||||
<el-radio value="1">终点法</el-radio>
|
<el-col :span="8">
|
||||||
<el-radio value="2">两点法</el-radio>
|
<el-form-item label="项目性质" prop="xmxz">
|
||||||
</el-radio-group>
|
<el-radio-group v-model="formData.xmxz">
|
||||||
</el-form-item>
|
<el-radio value="1">定性</el-radio>
|
||||||
</el-col>
|
<el-radio value="2">定量</el-radio>
|
||||||
</el-row>
|
</el-radio-group>
|
||||||
<el-row>
|
</el-form-item>
|
||||||
<el-col :span="8">
|
</el-col>
|
||||||
<el-form-item label="振板频率" prop="zbpl">
|
<el-col :span="8">
|
||||||
<el-radio-group v-model="formData.zbpl">
|
<el-form-item label="移动模式" prop="ydfs">
|
||||||
<el-radio value="1">高</el-radio>
|
<el-radio-group v-model="formData.ydfs">
|
||||||
<el-radio value="2">中</el-radio>
|
<el-radio value="1">连续</el-radio>
|
||||||
<el-radio value="3">低</el-radio>
|
<el-radio value="2">步进</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="空白形式" prop="kbms">
|
|
||||||
<el-radio-group v-model="formData.kbms">
|
<el-form-item label="测试模式" prop="csms">
|
||||||
<el-radio value="1">空气</el-radio>
|
<el-radio-group v-model="formData.csms">
|
||||||
<el-radio value="2">试剂</el-radio>
|
<el-radio value="1">终点法</el-radio>
|
||||||
</el-radio-group>
|
<el-radio value="2">两点法</el-radio>
|
||||||
</el-form-item>
|
</el-radio-group>
|
||||||
</el-col>
|
</el-form-item>
|
||||||
<el-col :span="8">
|
</el-col>
|
||||||
<el-form-item label="振板时间" prop="zbsj">
|
</el-row>
|
||||||
<el-input v-model="formData.zbsj">
|
<el-row>
|
||||||
<template #append>秒</template>
|
<el-col :span="8">
|
||||||
</el-input>
|
<el-form-item label="振板频率" prop="zbpl">
|
||||||
</el-form-item>
|
<el-radio-group v-model="formData.zbpl">
|
||||||
</el-col>
|
<el-radio value="1">高</el-radio>
|
||||||
</el-row>
|
<el-radio value="2">中</el-radio>
|
||||||
<el-divider></el-divider>
|
<el-radio value="3">低</el-radio>
|
||||||
<el-row>
|
</el-radio-group>
|
||||||
<el-col :span="8">
|
</el-form-item>
|
||||||
<el-form-item label="默认模板" prop="mrmb">
|
</el-col>
|
||||||
<el-select v-model="formData.mrmb" style="width: 12rem;">
|
<el-col :span="8">
|
||||||
<!-- <el-option v-for="item in sjtableData" :key="item.sjph" :value="item.sjph" :label="item.sjph" /> -->
|
<el-form-item label="空白形式" prop="kbms">
|
||||||
</el-select>
|
<el-radio-group v-model="formData.kbms">
|
||||||
</el-form-item>
|
<el-radio value="1">空气</el-radio>
|
||||||
</el-col>
|
<el-radio value="2">试剂</el-radio>
|
||||||
<el-col :span="8" style="display: flex;">
|
</el-radio-group>
|
||||||
<el-form-item label="默认试剂" prop="mrsjph">
|
</el-form-item>
|
||||||
<el-select v-model="formData.mrsjph" style="width: 12rem;">
|
</el-col>
|
||||||
<el-option v-for="item in sjtableData" :key="item.sjph" :value="item.sjph" :label="item.sjph" />
|
<el-col :span="8">
|
||||||
</el-select>
|
<el-form-item label="振板时间" prop="zbsj">
|
||||||
</el-form-item>
|
<el-input v-model="formData.zbsj">
|
||||||
<el-button type="primary" @click="sjHandle">试剂维护</el-button>
|
<template #append>秒</template>
|
||||||
</el-col>
|
</el-input>
|
||||||
</el-row>
|
</el-form-item>
|
||||||
</el-form>
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-divider></el-divider>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="默认模板" prop="mrmb">
|
||||||
|
<el-select v-model="formData.mrmb" style="width: 12rem;">
|
||||||
|
<el-option v-for="item in mbList" :key="item.no" :value="item.no" :label="item.na" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" style="display: flex;">
|
||||||
|
<el-form-item label="默认试剂" prop="mrsjph">
|
||||||
|
<el-select v-model="formData.mrsjph" style="width: 12rem;">
|
||||||
|
<el-option v-for="item in sjtableData" :key="item.sjph" :value="item.sjph" :label="item.sjph" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-button type="primary" @click="sjHandle">试剂维护</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<el-empty :image-size="200" description="暂无参数配置" />
|
||||||
|
</template>
|
||||||
|
|
||||||
<!-- 波长对照表 -->
|
<!-- 波长对照表 -->
|
||||||
<el-dialog v-model="dialogVisible" title="滤光波长对照表" draggable :close-on-click-modal="false" width="500px">
|
<el-dialog v-model="dialogVisible" title="滤光波长对照表" draggable :close-on-click-modal="false" width="500px">
|
||||||
@ -217,14 +227,16 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { queryFilter, addXmFilter, delXmFilter, addXmLot, delXmLot, queryXmLot, querySjcs } from '@/api/liswork/xtwh/ComOpt'
|
import { queryFilter, addXmFilter, delXmFilter, addXmLot, delXmLot, queryXmLot, querySjcs, querydouble, savedouble, querymbmc } from '@/api/liswork/xtwh/ComOpt'
|
||||||
import { ElMessage } from 'element-plus';
|
import { ElMessage } from 'element-plus';
|
||||||
import { formatDict, dictData } from '@/hooks'
|
import { formatDict, dictData } from '@/hooks'
|
||||||
import { get } from 'lodash';
|
import { queryXmInfo } from '@/api/liswork/work/LisWork';
|
||||||
|
|
||||||
|
|
||||||
const yq = defineModel<string>()
|
const yq = defineModel<string>()
|
||||||
|
|
||||||
const dialogVisible = ref(false)
|
const dialogVisible = ref(false)
|
||||||
|
const xmdh = ref('');
|
||||||
const formData = ref({
|
const formData = ref({
|
||||||
csbc: '',
|
csbc: '',
|
||||||
ckbc: '',
|
ckbc: '',
|
||||||
@ -242,7 +254,8 @@ const formData = ref({
|
|||||||
kbms: '1',
|
kbms: '1',
|
||||||
zbsj: '',
|
zbsj: '',
|
||||||
mrmb: '',
|
mrmb: '',
|
||||||
mrsjph: ''
|
mrsjph: '',
|
||||||
|
xmdh: '',
|
||||||
});
|
});
|
||||||
const rules = ref({
|
const rules = ref({
|
||||||
csbc: [
|
csbc: [
|
||||||
@ -253,11 +266,18 @@ const rules = ref({
|
|||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const paramsFlag = ref(true);
|
||||||
|
|
||||||
const form = ref();
|
const form = ref();
|
||||||
const handleSave = () => {
|
const handleSave = () => {
|
||||||
form.value.validate((valid: boolean) => {
|
form.value.validate((valid: boolean) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
console.log('submit!')
|
savedouble(formData.value).then((res: any) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
ElMessage.success('保存成功!')
|
||||||
|
getXmInfo()
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -310,6 +330,7 @@ interface sjList {
|
|||||||
sjcs: string, sjph: string, yq: string, yxq: string, csff: string
|
sjcs: string, sjph: string, yq: string, yxq: string, csff: string
|
||||||
}
|
}
|
||||||
const sjShow = ref(false)
|
const sjShow = ref(false)
|
||||||
|
const mbList = ref<Array<{ na: string, no: string }>>([])
|
||||||
const sjtableData = ref<sjList[]>([])
|
const sjtableData = ref<sjList[]>([])
|
||||||
const sjHandle = () => {
|
const sjHandle = () => {
|
||||||
getSjList()
|
getSjList()
|
||||||
@ -363,9 +384,38 @@ const getSjcjList = () => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getXmInfo = () => {
|
||||||
|
querydouble({ yq: yq.value, xmdh: xmdh.value }).then((res: any) => {
|
||||||
|
paramsFlag.value = res.code == 1 ? false : true;
|
||||||
|
formData.value = res.data || {}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const xmList = ref<Array<{ label: string, value: string }>>([])
|
||||||
|
const getXmList = () => {
|
||||||
|
queryXmInfo({ yq: yq.value }).then((res: any) => {
|
||||||
|
xmList.value = res.data.map((item: any) => {
|
||||||
|
return {
|
||||||
|
label: item.xmmc,
|
||||||
|
value: item.xmdh,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
querymbmc().then((res: any) => {
|
||||||
|
mbList.value = res.data || []
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
watch(yq, (newVal) => {
|
watch(yq, (newVal) => {
|
||||||
getDzList()
|
if (newVal) {
|
||||||
getSjList()
|
getXmInfo()
|
||||||
|
getDzList()
|
||||||
|
getSjList()
|
||||||
|
getXmList()
|
||||||
|
}
|
||||||
|
xmdh.value = ''
|
||||||
}, {
|
}, {
|
||||||
immediate: true,
|
immediate: true,
|
||||||
deep: true
|
deep: true
|
||||||
|
|||||||
@ -18,9 +18,9 @@
|
|||||||
<div class="table-row">
|
<div class="table-row">
|
||||||
<CustomTable ref="tableRef" :data="dataList" :columns="columns" :config="tableConfig" :enableRowDrag="true"
|
<CustomTable ref="tableRef" :data="dataList" :columns="columns" :config="tableConfig" :enableRowDrag="true"
|
||||||
@row-drag-end="handleRowDragEnd" @row-click="handleRowClick">
|
@row-drag-end="handleRowDragEnd" @row-click="handleRowClick">
|
||||||
<template #dyxh="{ row }">
|
<!-- <template #dyxh="{ row }">
|
||||||
<el-input v-model="row.dyxh" class="full-width-input" />
|
<el-input v-model="row.dyxh" class="full-width-input" />
|
||||||
</template>
|
</template> -->
|
||||||
</CustomTable>
|
</CustomTable>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -44,7 +44,7 @@ const dataList = ref<DataItem[]>([]);
|
|||||||
const columns = ref([
|
const columns = ref([
|
||||||
{ prop: 'xmid', label: '项目ID', visible: true, align: 'center' },
|
{ prop: 'xmid', label: '项目ID', visible: true, align: 'center' },
|
||||||
{ prop: 'xmmc', label: '项目名称', visible: true, align: 'center' },
|
{ prop: 'xmmc', label: '项目名称', visible: true, align: 'center' },
|
||||||
{ prop: 'dyxh', label: '排序', visible: true, align: 'center', slot: "dyxh" },
|
{ prop: 'dyxh', label: '排序', visible: true, align: 'center', },
|
||||||
]);
|
]);
|
||||||
const tableConfig = ref({
|
const tableConfig = ref({
|
||||||
border: true, // 边框
|
border: true, // 边框
|
||||||
|
|||||||
@ -112,7 +112,7 @@ const tabList = [
|
|||||||
{ key: 'SysSort', label: '项目排序', component: SysSort },
|
{ key: 'SysSort', label: '项目排序', component: SysSort },
|
||||||
{ key: 'SysReport', label: '报告单设置', component: SysReport },
|
{ key: 'SysReport', label: '报告单设置', component: SysReport },
|
||||||
]
|
]
|
||||||
const activeName = ref('SysChannel')
|
const activeName = ref('SysParameter')
|
||||||
|
|
||||||
// 计算当前要渲染的组件
|
// 计算当前要渲染的组件
|
||||||
const currentComponent = computed(() => {
|
const currentComponent = computed(() => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user