Commit 927e2edf authored by wangjiancheng's avatar wangjiancheng

refactor:新增国际关键零部件模板详情管理列表

parent 8c8abb02
...@@ -52,9 +52,9 @@ export function delLogicTemplate(id) { ...@@ -52,9 +52,9 @@ export function delLogicTemplate(id) {
} }
// 获取全部事业部 // 获取全部事业部
export function getAllUnit() { export function getAllUnit(data) {
return request({ return request({
url: '/control/baseIntlPartTemplate/getAllUnit', url: '/control/baseIntlPartTemplate/getAllUnit/' + data,
method: 'get' method: 'get'
}) })
} }
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<el-table-column label="序号" type="index" align="center" width="55"/> <el-table-column label="序号" type="index" align="center" width="55"/>
<el-table-column label="事业部" prop="divisionCn" align="center"> <el-table-column label="事业部" prop="divisionCn" align="center">
<template #default="scope"> <template #default="scope">
{{Object.values(JSON.parse(scope.row.divisionCn)).join('、')}} {{Object.values(scope.row.divisionCn).join('、')}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建人" prop="createByName" align="center"/> <el-table-column label="创建人" prop="createByName" align="center"/>
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
<template #default="scope"> <template #default="scope">
<el-button link type="primary" @click="handleTemplateDetailView(scope.row)">维护模板内容</el-button> <el-button link type="primary" @click="handleTemplateDetailView(scope.row)">维护模板内容</el-button>
<el-button link type="warning" @click="handleCopyAdd" v-show="scope.row.isDefault === 1">复制新增</el-button> <el-button link type="warning" @click="handleCopyAdd" v-show="scope.row.isDefault === 1">复制新增</el-button>
<el-button link type="primary" @click="handleAddDivision" v-show="scope.row.isDefault === 1">添加事业部</el-button> <el-button link type="primary" @click="handleAddDivision(scope.row)" v-show="scope.row.isDefault === 1">添加事业部</el-button>
<el-button link type="danger" @click="handleDelete(scope.row)" v-show="scope.row.isDefault === 0">删除</el-button> <el-button link type="danger" @click="handleDelete(scope.row)" v-show="scope.row.isDefault === 0">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -46,15 +46,15 @@ ...@@ -46,15 +46,15 @@
</el-form> </el-form>
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button> <el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="submitForm">确 定</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
<!-- 添加事业部对话框 --> <!-- 添加事业部对话框 -->
<el-dialog :title="title" v-model="open2" width="500px" append-to-body> <el-dialog :title="title" v-model="open2" width="500px" append-to-body>
<el-form ref="templateRef" :model="form" :rules="rules" label-width="80px"> <el-form ref="templateRef" :model="form" label-width="80px">
<el-form-item label="事业部" prop="division"> <el-form-item label="事业部" prop="division">
<el-select v-model="form.division" placeholder="请选择"> <el-select v-model="form.division" placeholder="请选择">
<el-option <el-option
...@@ -68,8 +68,8 @@ ...@@ -68,8 +68,8 @@
</el-form> </el-form>
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button> <el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="submitForm">确 定</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
</template> </template>
<script setup> <script setup>
import { listTemplate, addTemplate, getAllUnit } from "@/api/control/baseIntlPartTemplate.js"; import { listTemplate, addTemplate, getAllUnit, delLogicTemplate, updateTemplate } from "@/api/BaseIntlPartTemplate/baseIntlPartTemplate.js";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
...@@ -91,31 +91,18 @@ const title = ref(""); ...@@ -91,31 +91,18 @@ const title = ref("");
const divisionOptions = ref([]); const divisionOptions = ref([]);
const data = reactive({ const data = reactive({
form: {}, form: {
id: null,
division: [],
divisionCn: []
},
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
}, },
rules: {
division: [
// 事业部不能重复 事业部存储为josn
{
validator: (rule, value, callback) => {
for (let i = 0; i < templateList.value.length; i++) {
if (templateList.value[i].division === value) {
callback(new Error("该事业部已存在"));
return;
}
}
callback();
},
trigger: "blur"
}
]
}
}); });
const { queryParams, form, rules } = toRefs(data); const { queryParams, form } = toRefs(data);
/** 查询国际关键零部件模版列表 */ /** 查询国际关键零部件模版列表 */
function getList() { function getList() {
...@@ -128,8 +115,8 @@ function getList() { ...@@ -128,8 +115,8 @@ function getList() {
} }
// 获取事业部下拉框 // 获取事业部下拉框
function getDivisionList() { function getDivisionList(data) {
getAllUnit().then(response => { getAllUnit(data).then(response => {
divisionOptions.value = response.data.map(item => { divisionOptions.value = response.data.map(item => {
return { return {
value: item.id, value: item.id,
...@@ -147,21 +134,45 @@ function handleTemplateDetailView(row) { ...@@ -147,21 +134,45 @@ function handleTemplateDetailView(row) {
// 复制新增 // 复制新增
function handleCopyAdd() { function handleCopyAdd() {
// 候选值为奇瑞之外且未在主列表单独列出的事业部 // 候选值为奇瑞之外且未在主列表单独列出的事业部
getDivisionList(); let type = 0;
getDivisionList(type);
open.value = true; open.value = true;
title.value = "复制新增"; title.value = "复制新增";
} }
let oldDivisionId = [];
let oldDivisionCn = [];
// 添加事业部 // 添加事业部
function handleAddDivision() { function handleAddDivision(row) {
// 候选值为不在主列表中的事业部 // 候选值为不在主列表中的事业部
getDivisionList(); let type = 1;
getDivisionList(type);
oldDivisionId = row.division;
oldDivisionCn = row.divisionCn;
form.value.id = row.id;
open2.value = true; open2.value = true;
title.value = "添加事业部"; title.value = "添加事业部";
} }
// 处理事业部选择变化
function handleDivisionChange(selectedValue) {
const selectedOption = divisionOptions.value.find(option => option.value === selectedValue);
form.value.division = form.value.division.split(','); // 将字符串转换为数组
if (selectedOption) {
if (oldDivisionId){
form.value.division = oldDivisionId.concat(selectedValue);
form.value.divisionCn = oldDivisionCn.concat(selectedOption.label);
}else {
form.value.division.push(selectedValue);
form.value.divisionCn.push(selectedOption.label);
}
}
}
// 取消按钮 // 取消按钮
function cancel() { function cancel() {
open.value = false; open.value = false;
open2.value = false;
divisionOptions.value = [];
reset(); reset();
} }
...@@ -179,25 +190,32 @@ function reset() { ...@@ -179,25 +190,32 @@ function reset() {
function submitForm() { function submitForm() {
proxy.$refs["templateRef"].validate(valid => { proxy.$refs["templateRef"].validate(valid => {
if (valid) { if (valid) {
handleDivisionChange(form.value.division)
if (form.value.id != null) {
// 添加事业部
updateTemplate(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功");
open2.value = false;
reset()
getList();
});
} else {
// 复制新增
addTemplate(form.value).then(response => { addTemplate(form.value).then(response => {
if (response.code === 200){
proxy.$modal.msgSuccess("新增成功"); proxy.$modal.msgSuccess("新增成功");
open.value = false; open.value = false;
open2.value = false; reset()
getList(); getList();
}else {
proxy.$modal.msgError(response.msg)
}
}); });
} }
}
}); });
} }
/** 逻辑删除按钮操作 */ /** 逻辑删除按钮操作 */
function handleDelete(row) { function handleDelete(row) {
const _ids = row.id; proxy.$modal.confirm('是否确认删除事业部为"' + Object.values(row.divisionCn).join('、') + '"的数据项?').then(function() {
proxy.$modal.confirm('是否确认删除事业部为"' + row.divisionCn + '"的数据项?').then(function() { return delLogicTemplate(row.id);
return delLogicTemplate(_ids);
}).then(() => { }).then(() => {
getList(); getList();
proxy.$modal.msgSuccess("删除成功"); proxy.$modal.msgSuccess("删除成功");
......
<template> <template>
<div class="app-container"><div style="margin-bottom: 20px"> <div class="app-container">
<el-button link type="info" size="large" @click="back">返回</el-button> <div style="margin-bottom: 20px">
事业部: <el-button
{{ Object.values(JSON.parse(divisionCn)).join('、') }} link
最近更新人: @click="back"
{{ latestUpdatedBy }} style="font-size: 16px;"
>返回</el-button>
<span style="margin-left: 10px">
<el-text size="large">事业部:</el-text>
{{ Object.values(divisionCn).join('、') }}</span>
<span style="margin-left: 10px">
<el-text size="large">最近更新人:</el-text>
{{ latestUpdateByName }}</span>
</div> </div>
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="150px"> <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="150px">
<el-form-item label="关键零部件名称:" prop="partNameId"> <el-form-item label="关键零部件名称:" prop="partNameId">
...@@ -13,6 +20,7 @@ ...@@ -13,6 +20,7 @@
placeholder="请输入" placeholder="请输入"
clearable clearable
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
style="width: 200px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="英文名称:" prop="partNameId"> <el-form-item label="英文名称:" prop="partNameId">
...@@ -21,6 +29,7 @@ ...@@ -21,6 +29,7 @@
placeholder="请输入" placeholder="请输入"
clearable clearable
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
style="width: 200px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="备注:" prop="remark"> <el-form-item label="备注:" prop="remark">
...@@ -29,15 +38,25 @@ ...@@ -29,15 +38,25 @@
placeholder="请输入" placeholder="请输入"
clearable clearable
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
style="width: 200px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="零部件认证标记要求:" prop="standardRequirements"> <el-form-item label="零部件认证标记要求:" prop="standardRequirements">
<el-input <el-input
v-model="queryParams.standardRequirements" v-model="queryParams.partAuthenticationRequirements"
placeholder="请输入" placeholder="请输入"
clearable clearable
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
style="width: 200px"
/> />
<!-- <el-select v-model="queryParams.partAuthenticationRequirements" placeholder="请选择" clearable>
<el-option
v-for="dict in part_authentication_requirements"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>-->
</el-form-item> </el-form-item>
<el-form-item label="专业部门:" prop="department"> <el-form-item label="专业部门:" prop="department">
<el-input <el-input
...@@ -45,6 +64,7 @@ ...@@ -45,6 +64,7 @@
placeholder="请输入" placeholder="请输入"
clearable clearable
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
style="width: 200px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="P8后批量生产单位:" prop="p8PostProductionUnit"> <el-form-item label="P8后批量生产单位:" prop="p8PostProductionUnit">
...@@ -53,39 +73,64 @@ ...@@ -53,39 +73,64 @@
placeholder="请输入" placeholder="请输入"
clearable clearable
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
style="width: 200px"
/> />
<!-- <el-select v-model="queryParams.p8PostProductionUnit" placeholder="请选择" clearable>-->
<!-- <el-option-->
<!-- v-for="dict in p8_post_production_unit"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!-- </el-select>-->
</el-form-item> </el-form-item>
<el-form-item label="适用市场" prop="suitableMarket"> <el-form-item label="适用市场" prop="suitableMarket">
<el-input <el-input
v-model="queryParams.suitableMarket" v-model="queryParams.applicableMarket"
placeholder="请输入" placeholder="请输入"
clearable clearable
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
style="width: 200px"
/> />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleQuery">查询</el-button> <el-button class="btn-A" icon="Search" @click="handleQuery">搜索</el-button>
<el-button @click="resetQuery">重置</el-button> <el-button class="btn-B" icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="46">
<el-col :offset="22">
<el-button
plain
type="primary"
@click="handleExport"
>导出模板</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="detailList"> <el-table v-loading="loading" :data="detailList">
<el-table-column label="序号" align="center" type="index" width="55" fixed="left"/> <el-table-column label="序号" align="center" type="index" width="55" fixed="left"/>
<el-table-column label="关键零部件名称" prop="criticalPartNameCn" align="center" fixed="left"/> <el-table-column label="关键零部件名称" prop="criticalPartNameCn" align="center" width="150" fixed="left"/>
<el-table-column label="英文名称" prop="criticalPartNameEn" align="center"/> <el-table-column label="英文名称" prop="criticalPartNameEn" align="center" width="150"/>
<el-table-column label="型号" align="center"/> <el-table-column label="型号" align="center" width="100"/>
<el-table-column label="生产厂家" align="center"/> <el-table-column label="生产厂家" align="center" width="120"/>
<el-table-column label="生产厂家(英文)" align="center"/> <el-table-column label="生产厂家(英文)" align="center" width="120"/>
<el-table-column label="零部件认证证书/注册号" width="100" align="center"/> <el-table-column label="零部件认证证书号/注册号" width="120" align="center" />
<el-table-column label="备注" prop="remark" align="center"/> <el-table-column label="零部件认证标记要求" prop="partAuthenticationRequirements" width="100" align="center">
<el-table-column label="零部件认证标准要求" prop="standardRequirements" width="100" align="center"/> <template #default="scope">
<el-table-column label="专业部门" prop="departmentName" align="center"/> <dict-tag :options="part_authentication_requirements" :value="scope.row.partAuthenticationRequirements"/>
<el-table-column label="P8后批量生产单位" prop="p8PostProductionUnit" align="center"> </template>
</el-table-column>
<el-table-column label="P8后批量生产单位" prop="p8PostProductionUnit" align="center" width="100">
<template #default="scope"> <template #default="scope">
<dict-tag :options="p8_post_production_unit" :value="scope.row.p8PostProductionUnit"/> <dict-tag :options="p8_post_production_unit" :value="scope.row.p8PostProductionUnit"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="排序" prop="sort" align="center"/> <el-table-column label="零件总成号" align="center" width="110"/>
<el-table-column label="备注" prop="remark" align="center" width="100"/>
<el-table-column label="专业部门" prop="department" align="center" width="100"/>
<el-table-column label="排序" prop="sort" align="center" width="100"/>
<!-- 适用市场 --> <!-- 适用市场 -->
<el-table-column <el-table-column
align="center" align="center"
...@@ -115,26 +160,26 @@ ...@@ -115,26 +160,26 @@
<el-form-item label="关键零部件名称:" prop="criticalPartNameCn" > <el-form-item label="关键零部件名称:" prop="criticalPartNameCn" >
<el-input v-model="form.criticalPartNameCn" disabled/> <el-input v-model="form.criticalPartNameCn" disabled/>
</el-form-item> </el-form-item>
<el-form-item label="备注:" prop="remark" v-show="isDefault === 1"> <el-form-item label="备注:" prop="remark" v-show="isDefault === '1'">
<el-input v-model="form.remark" placeholder="请输入" /> <el-input v-model="form.remark" placeholder="请输入" />
</el-form-item> </el-form-item>
<el-form-item label="零部件认证标记要求" prop="standardRequirements" v-show="isDefault === 1"> <el-form-item label="零部件认证标记要求" prop="standardRequirements" v-show="isDefault === '1'">
<el-select v-model="form.partAuthenticationRequirements" placeholder="请选择"> <el-select v-model="form.partAuthenticationRequirements" placeholder="请选择">
<el-option <el-option
v-for="dict in standardRequirementsOptions" v-for="dict in part_authentication_requirements"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="专业部门" prop="department"> <el-form-item label="专业部门" prop="department" filterable>
<el-select v-model="form.department" placeholder="请选择"> <el-select v-model="form.department" placeholder="请选择" filterable allow-create>
<el-option <el-option
v-for="dict in department" v-for="dict in departmentOptions"
:key="dict.value" :key="dict"
:label="dict.label" :label="dict"
:value="dict.value" :value="dict"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -148,15 +193,15 @@ ...@@ -148,15 +193,15 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="排序" prop="sort" v-show="isDefault === 1"> <el-form-item label="排序" prop="sort" v-show="isDefault === '1'">
<el-input v-model="form.sort" placeholder="请输入" type="number"/> <el-input v-model="form.sort" placeholder="请输入" type="number"/>
</el-form-item> </el-form-item>
</el-form> </el-form>
</template> </template>
<template #footer> <template #footer>
<div style="flex: auto"> <div style="flex: auto">
<el-button @click="cancel">取消</el-button> <el-button class="btn-A" @click="cancel">取消</el-button>
<el-button type="primary" @click="submitForm">保存</el-button> <el-button class="btn-B" type="primary" @click="submitForm">提交</el-button>
</div> </div>
</template> </template>
</el-drawer> </el-drawer>
...@@ -164,11 +209,11 @@ ...@@ -164,11 +209,11 @@
</template> </template>
<script setup > <script setup >
import { listDetail, getDetail, updateDetail, getMarket} from "@/api/control/baseIntlPartTemplateDetail.js"; import { listDetail, getDetail, updateDetail, getMarket} from "@/api/BaseIntlPartTemplate/baseIntlPartTemplateDetail.js";
import {Check} from "@element-plus/icons-vue"; import {Check} from "@element-plus/icons-vue";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const { p8_post_production_unit } = proxy.useDict('p8_post_production_unit'); const { p8_post_production_unit, part_authentication_requirements } = proxy.useDict('p8_post_production_unit', 'part_authentication_requirements');
const detailList = ref([]); const detailList = ref([]);
const open = ref(false); const open = ref(false);
...@@ -190,7 +235,7 @@ const data = reactive({ ...@@ -190,7 +235,7 @@ const data = reactive({
// 零部件认证标记要求 // 零部件认证标记要求
partAuthenticationRequirements: null, partAuthenticationRequirements: null,
// 适用市场 // 适用市场
applicableMarketList:[], applicableMarket:null,
department: null, department: null,
p8PostProductionUnit: null, p8PostProductionUnit: null,
remark: null, remark: null,
...@@ -203,6 +248,9 @@ const data = reactive({ ...@@ -203,6 +248,9 @@ const data = reactive({
department: [ department: [
{ required: true, message: "专业部门不能为空", trigger: "blur" } { required: true, message: "专业部门不能为空", trigger: "blur" }
], ],
sort: [
{ required: true, message: "排序不能为空", trigger: "blur" }
]
} }
}); });
...@@ -220,40 +268,22 @@ function getList() { ...@@ -220,40 +268,22 @@ function getList() {
}); });
} }
// 获取最近更新人 // 最新更新时间的记录
const latestUpdatedBy = computed(() => { const latestRecord = computed(() => {
if (!detailList.value || detailList.value.length === 0) return "无数据"; if (!detailList.value || detailList.value.length === 0) return null;
const latestRecord = detailList.value.reduce((latest, current) => { return detailList.value.reduce((latest, current) => {
return new Date(current.updateTime) > new Date(latest.updateTime) return new Date(current.updateTime) > new Date(latest.updateTime) ? current : latest;
? current }, detailList.value[0]);
: latest;
});
return latestRecord.updatedByName;
}); });
// 最近更新人
// 零部件认证要求下拉框,是个数据字典!!!! const latestUpdateByName = computed(() => latestRecord.value?.updateByName || "");
const standardRequirementsOptions = ref([
{
value: '1',
label: ''
},
{
value: '2',
label: '2'
},
])
// 专业部门下拉框 // 专业部门下拉框
const department = ref([ const departmentOptions = computed(() => {
{ if (!detailList.value || detailList.value.length === 0) return [];
value: '1', const departments = detailList.value.map(record => record.department);
label: '专业部门1' return [...new Set(departments)]; // 去重并转换为数组
}, });
{
value: '2',
label: '专业部门2'
},
])
// 获取市场法规清单的适用市场 // 获取市场法规清单的适用市场
function getApplicableMarket() { function getApplicableMarket() {
...@@ -266,6 +296,7 @@ function getApplicableMarket() { ...@@ -266,6 +296,7 @@ function getApplicableMarket() {
function back() { function back() {
proxy.$router.push({ path: '/baseData/criticalPartsList/template' }) proxy.$router.push({ path: '/baseData/criticalPartsList/template' })
} }
// 取消按钮 // 取消按钮
function cancel() { function cancel() {
open.value = false; open.value = false;
...@@ -281,6 +312,9 @@ function reset() { ...@@ -281,6 +312,9 @@ function reset() {
department: null, department: null,
p8PostProductionUnit: null, p8PostProductionUnit: null,
remark: null, remark: null,
criticalPartNameCn: null,
criticalPartNameEn: null,
}; };
proxy.resetForm("detailRef"); proxy.resetForm("detailRef");
} }
...@@ -292,7 +326,13 @@ function handleQuery() { ...@@ -292,7 +326,13 @@ function handleQuery() {
/** 重置按钮操作 */ /** 重置按钮操作 */
function resetQuery() { function resetQuery() {
proxy.resetForm("queryRef"); queryParams.value.remark = null
queryParams.value.criticalPartNameCn = null
queryParams.value.criticalPartNameEn = null
queryParams.value.partAuthenticationRequirements = null
queryParams.value.department = null
queryParams.value.p8PostProductionUnit = null
queryParams.value.applicableMarket = null
handleQuery(); handleQuery();
} }
...@@ -323,12 +363,23 @@ function submitForm() { ...@@ -323,12 +363,23 @@ function submitForm() {
}); });
} }
/** 导出按钮操作 */
function handleExport() {
proxy.download('control/baseIntlPartTemplateDetail/export', {
...queryParams.value
}, `国际关键零部件清单模版-${new Date().getFullYear()}${new Date().getMonth() + 1}${new Date().getDate()}.xlsx`)
}
getList(); getList();
getApplicableMarket(); getApplicableMarket();
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
:deep(.el-form--inline .el-form-item) { :deep(.el-form--inline .el-form-item) {
margin-right: 20px; margin-right: 15px;
}
.el-row {
margin-bottom: 20px;
} }
</style> </style>
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