Commit c564e44d authored by 华国豪's avatar 华国豪 🙄

新增较多文件,模块,组件,页面

parent 2718bc8e
......@@ -28,7 +28,7 @@ export default {
<style>
@import './assets/global/font.css';
@import '//at.alicdn.com/t/font_1627123_qxpux1x1ujg.css';
@import '//at.alicdn.com/t/font_1627123_xkwify0v9p.css';
/* @import './assets/css/common.css'; */
@import './assets/css/init.css';
@import './assets/css/tablevoerride.css';
......
.customerManage .tools{
display: flex;
justify-content: space-between;
padding-bottom: 20px;
border-bottom: 1px solid rgba(226,228,235,1);
align-items: center;
}
.customerManage .tools h1{
font-weight: bold;
font-size: 18px;
}
.customerManage .tools .rightmenu{
display: flex;
align-items: center;
}
.customerManage .tools .gaoji{
font-size:12px;
font-weight:400;
color:rgba(13,36,129,1);
margin-right: 35px;
cursor: pointer;
}
.customerManage .tools .gaoji:hover{
color:rgba(13,36,129,.8);
}
.customerManage .tools .gaoji .iconfont{
font-size: 12px;
padding-left: 5px;
}
.customerManage .query-box{
padding: 15px 10px;
background-color: white;
}
.customerManage .table-btn{
display: inline-block;
width: 24px;
height: 24px;
line-height: 24px;
text-align: center;
cursor: pointer;
margin-right: 10px;
}
.customerManage .table-btn.blue{
color: rgba(13, 36, 129, 1);
background-color: rgba(13, 36, 129, .3);
}
.customerManage .table-btn.org{
color: #FFA475;
background-color: rgba(255, 164, 117, .3);
}
.customerManage .table-btn.green{
color: rgba(148, 184, 119, 1);
background-color: rgba(148, 184, 119, .3);
}
.customerManage .table-btn.blue:hover{
background-color: rgba(13, 36, 129, .5);
}
.customerManage .table-btn.org:hover{
background-color: rgba(255, 164, 117, .5);
}
.customerManage .table-btn.green:hover{
background-color: rgba(148, 184, 119, .5);
}
.customerManage .add-box1 .el-dialog{
min-width: 760px;
}
.customerManage .add-box1 .el-tag.el-tag--info{
background-color: rgba(0,0,0,0);
border-color: rgba(0,0,0,0);
display: inline-block;
white-space: nowrap;
width: 60%;
overflow: hidden;
text-overflow:ellipsis;
}
.customerManage .add-box2 .el-tag.el-tag--info{
background-color: rgba(0,0,0,0);
border-color: rgba(0,0,0,0);
display: inline-block;
white-space: nowrap;
overflow: hidden;
text-overflow:ellipsis;
}
.customerManage .add-box2 .el-form-item__label{
text-align: left;
}
\ No newline at end of file
......@@ -24,8 +24,7 @@ table { border-collapse:collapse; border-spacing:0; }
}
.crm-btn.el-button{
border-radius: 0;
padding: 8px 0;
width: 90px;
padding: 8px 10px;
text-align: center;
margin-right: 20px;
}
......@@ -133,6 +132,10 @@ table { border-collapse:collapse; border-spacing:0; }
background:rgba(13, 36, 129, 1);
border-radius: 0;
}
.MyEditForm .MyEditForm-item .form-check .el-form-item__label{
display: block;
width: 100%;
}
.cp{
cursor: pointer;
}
......@@ -150,6 +153,18 @@ table { border-collapse:collapse; border-spacing:0; }
.font-color-danger{
color: #F56C6C!important;
}
.font-color-info{
color: #909399!important;
}
textarea{
resize:none!important;
}
.el-dialog__wrapper{
background-color: rgb(245, 246, 249);
}
.el-dialog{
box-shadow: 2px 1px 3px 0px rgba(0,0,0,.3)
}
/* 字体大小 */
.font-size-12{
font-size: 12px;
......@@ -160,4 +175,14 @@ table { border-collapse:collapse; border-spacing:0; }
.flex-center{
display: flex;
align-items: center;
}
/* padding */
.pad-left-10{
padding-left: 10px;
}
/* margin */
.margin-right0{
margin-right: 0 !important;
}
\ No newline at end of file
This diff is collapsed.
<style>
</style>
<template>
<div class="Agreement">
Agreement
</div>
</template>
<script>
export default {
props:{
},
data() {
return {
};
},watch:{
},
mounted() {
},
methods: {
}
}
</script>
\ No newline at end of file
<style>
</style>
<template>
<div class="Business">
Business
</div>
</template>
<script>
export default {
props:{
},
data() {
return {
};
},watch:{
},
mounted() {
},
methods: {
}
}
</script>
\ No newline at end of file
<style>
.Contacts .add-contacts{
text-align: right;
padding: 10px 0;
}
.Contacts td{
font-size: 12px;
}
</style>
<template>
<div class="Contacts">
<div class="add-contacts">
<el-button icon="el-icon-plus" class="crm-btn query-btn margin-right0" @click="addContactsShow=true">新建联系人</el-button>
</div>
<el-table
v-loading="loading"
stripe
ref="multipleTable"
:data="ContactList"
tooltip-effect="dark"
style="width: 100%"
row-class-name="font-size-12">
<el-table-column
prop="ContactName"
label="姓名"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="ContactPhone"
label="手机"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="ContactDutyStr"
label="职务"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="IsFirstContact"
label="操作"
show-overflow-tooltip>
<template slot-scope="scope">
<p v-if="scope.row.IsFirstContact === 1" class="font-color-warning">首要联系人</p>
<p v-else class="font-color-link cp" @click="SetFirstContact(scope)">设为首要联系人</p>
</template>
</el-table-column>
</el-table>
<div v-if="addContactsShow">
<addContacts :ID="CustomerId" @addContactsOk="addContactsOk"/>
</div>
</div>
</template>
<script>
import addContacts from "./addContacts";
export default {
components: {
addContacts
},
props:{
CustomerId: {
type: Number,
default: 0
}
},
data() {
return {
loading: false,
addContactsShow: false,
ContactList: [],
};
},watch:{
CustomerId: {
handler(val, oldVal){
this.GetContactByCustomerID()
},
deep:true
}
},
mounted() {
let $this = this
this.MsgBus.$on('closeaddContacts', function (){
$this.addContactsShow = false
})
this.GetContactByCustomerID()
},
methods: {
addContactsOk(){
this.GetContactByCustomerID()
},
SetFirstContact(scope){
this.apipost('/api/Customer/SetFirstContact', {CustomerId: this.CustomerId, ID: scope.row.ID}, res=>{
if (res.data.resultCode == 1) {
this.$message.success('操作成功');
this.GetContactByCustomerID();
}
})
},
GetContactByCustomerID(){
if(this.CustomerId === 0) return
this.loading = true
this.apipost('/api/Customer/GetContactByCustomerID', {CustomerId: this.CustomerId}, res=>{
if (res.data.resultCode == 1) {
this.loading = false
this.ContactList = res.data.data
}
})
},
}
}
</script>
\ No newline at end of file
<style>
.Details{
padding: 17px 20px;
margin-top: 20px;
background-color: white;
height: calc(100% - 54px);
overflow-y: auto;
font-size: 12px
}
.Details .Details_box .tit{
border: 4px solid rgba(13,36,129,1);
border-top: 0;
border-bottom: 0;
border-right: 0;
padding-left: 10px;
font-size: 14px;
color: #111;
font-weight:bold;
}
.Details_box_row{
margin-top: 30px;
}
.Details_box_lable{
color: #999999
}
</style>
<template>
<div class="Details">
<div class="Details_box">
<p class="tit">基本信息</p>
<el-row :gutter="40" class="Details_box_row">
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
负责人:
</el-col>
<el-col :span="14">
{{detailsData.PersonChargeStr}}
</el-col>
</el-row>
</el-col>
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
客户来源:
</el-col>
<el-col :span="14">
{{detailsData.CustomerSourceTypeStr}}
</el-col>
</el-row>
</el-col>
</el-row>
<el-row :gutter="40" class="Details_box_row">
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
经营场所:
</el-col>
<el-col :span="14">
{{detailsData.PremisesStr}}
</el-col>
</el-row>
</el-col>
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
客户级别:
</el-col>
<el-col :span="14">
{{detailsData.CustomerIdLevelStr}}
</el-col>
</el-row>
</el-col>
</el-row>
<el-row :gutter="40" class="Details_box_row">
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
客户名称:
</el-col>
<el-col :span="14">
{{detailsData.CustomerName}}
</el-col>
</el-row>
</el-col>
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
手机:
</el-col>
<el-col :span="14">
{{detailsData.ContactNumber}}
</el-col>
</el-row>
</el-col>
</el-row>
<el-row :gutter="40" class="Details_box_row">
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
备注:
</el-col>
<el-col :span="14">
{{detailsData.Remark}}
</el-col>
</el-row>
</el-col>
</el-row>
</div>
<div class="Details_box">
<p class="tit" style="margin-top: 30px;">系统信息</p>
<el-row :gutter="40" class="Details_box_row">
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
获取客户时间:
</el-col>
<el-col :span="14">
{{detailsData.PersonChargeTime}}
</el-col>
</el-row>
</el-col>
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
更新时间:
</el-col>
<el-col :span="14">
{{detailsData.UpdateTime ? detailsData.UpdateTime.replace('T', ' ') : detailsData.UpdateTime}}
</el-col>
</el-row>
</el-col>
</el-row>
<el-row :gutter="40" class="Details_box_row">
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
创建人:
</el-col>
<el-col :span="14">
{{detailsData.CreateByStr}}
</el-col>
</el-row>
</el-col>
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
创建时间:
</el-col>
<el-col :span="14">
{{detailsData.CreateTime ? detailsData.CreateTime.replace('T', ' ') : detailsData.CreateTime }}
</el-col>
</el-row>
</el-col>
</el-row>
<el-row :gutter="40" class="Details_box_row">
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
最后跟进记录:
</el-col>
<el-col :span="14">
{{detailsData.LastFollowUpContent}}
</el-col>
</el-row>
</el-col>
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
最后跟进时间:
</el-col>
<el-col :span="14">
{{detailsData.LastFollowUpTime}}
</el-col>
</el-row>
</el-col>
</el-row>
</div>
</div>
</template>
<script>
export default {
props:{
detailsData: {
type: Object,
default: {}
}
},
data() {
return {
};
},watch:{
},
mounted() {
},
methods: {
}
}
</script>
\ No newline at end of file
<style>
</style>
<template>
<div class="Enclosure">
Enclosure
</div>
</template>
<script>
export default {
props:{
},
data() {
return {
};
},watch:{
},
mounted() {
},
methods: {
}
}
</script>
\ No newline at end of file
<style>
</style>
<template>
<div class="MoneyBack">
MoneyBack
</div>
</template>
<script>
export default {
props:{
},
data() {
return {
};
},watch:{
},
mounted() {
},
methods: {
}
}
</script>
\ No newline at end of file
<style>
</style>
<template>
<div class="Record">
Record
</div>
</template>
<script>
export default {
props:{
},
data() {
return {
};
},watch:{
},
mounted() {
},
methods: {
}
}
</script>
\ No newline at end of file
<style>
</style>
<template>
<div class="TeamMembers">
TeamMembers
</div>
</template>
<script>
export default {
props:{
},
data() {
return {
};
},watch:{
},
mounted() {
},
methods: {
}
}
</script>
\ No newline at end of file
<style>
.addContacts .add-tit{
display: flex;
justify-content: space-between;
align-items: center;
height: 20px;
}
.addContacts .add-tit p{
display: flex;
align-items: center;
font-weight: bold;
color:rgba(17,17,17,1);
font-size:14px;
}
.addContacts .add-tit p span{
display: inline-block;
width:6px;
height:6px;
background:rgba(13,36,129,1);
border-radius:50%;
margin-right: 10px;
}
.addContacts .el-dialog__header{
padding: 15px 20px;
background:rgba(255,255,255,1);
}
.addContacts .dialog-footer{
text-align: center;
background-color: rgba(248,250,251,1);
padding-bottom: 20px;
}
.addContacts .el-dialog__footer{
padding: 0;
}
.addContacts .el-dialog__body{
background-color: rgba(248,250,251,1);
padding-top: 20px;
max-height: 500px;
overflow: auto;
}
.addContacts .add-box-btn.el-button{
border-radius: 0;
background-color: rgba(13, 36, 129, .8);
border-color: rgba(13, 36, 129, .8);
color: white;
padding: 12px 43px;
}
.addContacts .add-box-btn.el-button:hover{
background-color: rgba(13, 36, 129, 1);
border-color: rgba(13, 36, 129, 1);
color: white;
}
.addContacts .add-box-btn.el-button.add-box-cancel{
color: rgba(13, 36, 129, .8);
background-color: white;
}
.addContacts .add-box-btn.el-button.add-box-cancel:hover{
color: rgba(13, 36, 129, 1);
background-color: white;
}
</style>
<template>
<el-dialog @closed="closedDialog" :modal="false" :visible.sync="dialogTableVisible" :close-on-click-modal="false" class="addContacts">
<div class="add-tit" slot="title">
<p><span></span>新建联系人</p>
<span icon="el-icon-close"></span>
</div>
<div class="form-box" >
<el-form :model="form" ref="form" class="MyEditForm" :rules="rules">
<el-row :gutter="30">
<el-col :span="8">
<div class="MyEditForm-item">
<el-form-item label="联系人" prop="ContactName">
<el-input placeholder="请输入联系人姓名" v-model="form.ContactName"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="MyEditForm-item">
<el-form-item label="电话" prop="ContactPhone">
<el-input placeholder="请输入联系电话" v-model="form.ContactPhone"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="MyEditForm-item">
<el-form-item label="职务" prop="ContactDuty">
<el-select v-model="form.ContactDuty" placeholder="请选择联系人职务">
<el-option
v-for='item in zwList'
:label='item.Name'
:value='item.ID'
:key='item.ID'>
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="8">
<div class="MyEditForm-item">
<el-form-item label="性别" prop="ContactDuty">
<el-select v-model="form.Sex" placeholder="请选择联系人性别">
<el-option label='保密' :value='0' :key='0'> </el-option>
<el-option label='男' :value='1' :key='1'> </el-option>
<el-option label='女' :value='2' :key='2'> </el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="MyEditForm-item">
<el-form-item label="是否决策人" prop="IsMain">
<el-select v-model="form.IsMain" placeholder="请选择是否决策人">
<el-option label='否' :value='0' :key='0'> </el-option>
<el-option label='是' :value='1' :key='1'> </el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="MyEditForm-item label-pad-left">
<el-form-item label="备注">
<el-input type="textarea" placeholder="请输入备注" v-model="form.Remark"></el-input>
</el-form-item>
</div>
</el-col>
</el-row>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" class="add-box-btn" @click="submitForm('form')">确 定</el-button>
<el-button class="add-box-btn add-box-cancel" @click="dialogTableVisible = false, resetForm('form')">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
export default {
props:{
ID: {
type: Number,
default: 0
}
},
data() {
return {
dialogTableVisible: true,
rules: {
IsMain: [
{ required: true, message: '请选择是否决策人', trigger: 'change' }
],
Sex: [
{ required: true, message: '请选择联系人性别', trigger: 'change' }
],
ContactDuty: [
{ required: true, message: '请选择联系人职务', trigger: 'change' }
],
ContactName: [
{ required: true, message: '请输入联系人姓名', trigger: 'blur' }
],
ContactPhone: [
{ required: true, message: '请输入联系电话', trigger: 'blur' }
],
},
zwList: [],
form: {
CustomerId: 0,
ContactName: '',
ContactPhone: '',
ContactDuty: '',
Sex: 0,
IsMain: 0,
Remark: '',
ID: 0,
}
};
},watch:{
},
mounted() {
this.getZw()
let $this = this
setTimeout(()=>{
$this.dialogTableVisible = true
},50)
},
methods: {
getZw() {
this.apipost2('app_today_visit_GetCustomerDutyEnum', {}, res => {
if (res.data.resultCode == 1) {
this.zwList = res.data.data
}
}, err => {})
},
closedDialog(){
this.MsgBus.$emit('closeaddContacts')
},
addData(){
this.form.CustomerId = this.ID
this.apipost('/api/Customer/CreateMyCustomerContact', this.form, res=>{
if (res.data.resultCode == 1) {
this.resetForm("form");
this.dialogTableVisible = false;
this.$emit('addContactsOk')
}
})
},
submitForm(addMsg) {
//提交创建、修改表单
this.$refs[addMsg].validate(valid => {
if (valid) {
this.addData();
} else {
return false;
}
});
},
resetForm(formName) { // 重置表单
this.form = {
CustomerId: 0,
ContactName: '',
ContactPhone: '',
ContactDuty: '',
Sex: '',
IsMain: '',
Remark: '',
ID: 0,
}
this.$refs[formName].resetFields();
},
}
}
</script>
\ No newline at end of file
This diff is collapsed.
<style>
.drawer-box{
height: 100%;
}
.drawer-header{
height: 83px;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 30px;
}
.drawer-header .left{
display: flex;
align-items: center;
}
.drawer-header .left img{
display: inline-block;
margin-right: 10px;
}
.drawer-body{
height: calc( 100% - 83px);
}
.drawer-body .top-info{
height: 115px;
padding: 30px;
box-sizing: border-box;
font-size: 12px;
background-color: #F6F4FC;
}
.drawer-body .top-info .info-lable{
display: inline-block;
width: 80px;
color: #999999;
}
.margin-bottom-25{
margin-bottom: 25px;
}
.drawer-box .el-tabs__nav-wrap::after{
height: 0;
}
.drawer-body .el-tabs__header{
padding: 0 25px;
margin-bottom: 0;
}
.drawer-body .content{
height: calc(100% - 115px);
}
.drawer-body .el-tabs{
height: 100%;
}
.drawer-body .el-tabs__content{
background-color: #F6F4FC;
padding: 0 20px 20px 20px;
height: calc(100% - 40px);
box-sizing: border-box;
}
</style>
<template>
<div class="drawer-box" v-if="loading">
<div class="drawer-header">
<div class="left">
<img src="../../assets/img/cust/kehu2.png" alt="">
<p>{{detailsData.CustomerName}}</p>
</div>
<div class="right">
<el-button class="crm-btn query-btn" @click="editCust">编辑</el-button>
<el-button class="crm-btn easy-btn iconfont iconwancheng">更改成交状态</el-button>
<el-dropdown @command="handleCommand" style="top: 1px;">
<el-button class="crm-btn crm-btn-more easy-btn margin-right0">
<i class="iconfont icongengduo"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="z"><i class="iconfont iconplus-transfer"></i> 转移111</el-dropdown-item>
<el-dropdown-item command="g"><i class="iconfont icongonghaiguanli"></i> 放入公海</el-dropdown-item>
<el-dropdown-item command="s"><i class="iconfont iconsuoguan"></i> 锁定</el-dropdown-item>
<el-dropdown-item command="j"><i class="iconfont iconsuokai"></i> 解锁</el-dropdown-item>
<el-dropdown-item command="d"><i class="iconfont icondelete"></i> 删除</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
<div class="drawer-body">
<div class="top-info">
<el-row class="margin-bottom-25">
<el-col :span="12">
<span class="info-lable">客户级别:</span><span>{{detailsData.CustomerIdLevelStr}}</span>
</el-col>
<el-col :span="12">
<span class="info-lable">成交状态:</span><span >已成交</span>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<span class="info-lable">负责人:</span><span>{{detailsData.Contact}}</span>
</el-col>
<el-col :span="12">
<span class="info-lable">更新时间:</span><span>{{detailsData.UpdateTime.replace('T', ' ')}}</span>
</el-col>
</el-row>
</div>
<div class="content">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="活动" name="1">
<Activity :CustomerId="CustomerId" />
</el-tab-pane>
<el-tab-pane label="详细资料" name="2">
<Details :detailsData="detailsData"/>
</el-tab-pane>
<el-tab-pane label="联系人" name="3">
<Contacts :CustomerId="CustomerId" />
</el-tab-pane>
<el-tab-pane label="团队成员" name="4">
<TeamMembers />
</el-tab-pane>
<el-tab-pane label="商机" name="5">
<Business />
</el-tab-pane>
<el-tab-pane label="合同" name="6">
<Agreement />
</el-tab-pane>
<el-tab-pane label="回款" name="7">
<MoneyBack />
</el-tab-pane>
<el-tab-pane label="附件" name="8">
<Enclosure />
</el-tab-pane>
<el-tab-pane label="操作记录" name="9">
<Record />
</el-tab-pane>
</el-tabs>
</div>
</div>
</div>
</template>
<script>
import Activity from "./Activity";
import Details from "./Details";
import Contacts from "./Contacts";
import TeamMembers from "./TeamMembers";
import Business from "./Business";
import Agreement from "./Agreement";
import MoneyBack from "./MoneyBack";
import Enclosure from "./Enclosure";
import Record from "./Record";
export default {
components: {
Activity,
Details,
Contacts,
TeamMembers,
Business,
Agreement,
MoneyBack,
Enclosure,
Record
},
props:{
CustomerId: {
type: Number,
default: 0
}
},
data() {
return {
activeName: '1',
detailsData: {},
loading: false,
};
},watch:{
CustomerId: {
handler(val, oldVal){
this.init()
},
deep:true
}
},
mounted() {
let $this = this
$this.init()
// 监听修改更新界面
this.MsgBus.$on('RefreshInfoBox', function () {
$this.init()
})
},
methods: {
init(){
this.apipost('/api/Customer/GetAllCustmersModel', {CustomerId: this.CustomerId}, res=>{
if (res.data.resultCode == 1) {
let data = res.data.data
if(!data.HousePhotos){
data.HousePhotos = []
}
if(!data.BusinessCardPhotos){
data.BusinessCardPhotos = []
}
if(!data.Images){
data.Images = []
}
if(!data.CustomerSourceType){
data.CustomerSourceType = ''
}
if(!data.CustomerSource){
data.CustomerSource = ''
}
if(!data.Province){
data.Province = ''
}
if(!data.Country){
data.Country = ''
}
if(!data.City){
data.City = ''
}
if(!data.District){
data.District = ''
}
this.detailsData = data
this.loading = true
}
})
},
handleCommand(command){
if (command === 'z') {
this.$emit('transferS', 3);
} else if (command === 'g') {
this.$emit('watersS', 1)
}
},
handleClick(tab, event) {},
editCust(){
this.$emit('editCustS', 1)
},
handleClose(done) {
done();
}
}
}
</script>
\ No newline at end of file
This diff is collapsed.
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