Commit 2d7610a9 by 罗承锋

提交页面基础功能报错、配置网点充值奖励机制

parent c2301dcd
...@@ -12,7 +12,7 @@ const local = { ...@@ -12,7 +12,7 @@ const local = {
'^/api/auth/ciop': '/auth/ciop' '^/api/auth/ciop': '/auth/ciop'
} }
}, },
/*'/api/api/ciop': { '/api/api/ciop': {
target: 'http://localhost:11091', target: 'http://localhost:11091',
//target: 'http://132.97.54.60:58334', //target: 'http://132.97.54.60:58334',
ws: false, ws: false,
...@@ -41,7 +41,7 @@ const local = { ...@@ -41,7 +41,7 @@ const local = {
//默认所有请求都加了api前缀,需要去掉 //默认所有请求都加了api前缀,需要去掉
'^/api/app': '/' '^/api/app': '/'
} }
},*/ },
'/api/manager': { '/api/manager': {
target: 'http://localhost:10001', target: 'http://localhost:10001',
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
SET HOST_NAME=172.18.101.172 SET HOST_NAME=172.18.101.172
:: 每次发版都需要改的版本号 :: 每次发版都需要改的版本号
SET APP_VERSION=0.0.2 SET APP_VERSION=0.0.3
SET APP_NAME=gdtelgztelschoolcenterui SET APP_NAME=gdtelgztelschoolcenterui
cd %APP_NAME% cd %APP_NAME%
......
...@@ -9,4 +9,10 @@ export default new Router({ ...@@ -9,4 +9,10 @@ export default new Router({
base: process.env.BASE_URL, base: process.env.BASE_URL,
scrollBehavior: () => ({ y: 0 }), scrollBehavior: () => ({ y: 0 }),
routes: asyncRouterMap routes: asyncRouterMap
}) })
\ No newline at end of file
const originalPush = Router.prototype.push
//修改原型对象中的push方法
Router.prototype.push = function push(location) {
return originalPush.call(this, location).catch(err => err)
}
\ No newline at end of file
...@@ -80,7 +80,7 @@ ...@@ -80,7 +80,7 @@
</p> </p>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="24" :v-show="KDmoBan"> <a-row :gutter="24">
<a-col :md="24" :sm="12"> <a-col :md="24" :sm="12">
<p>说明:</p> <p>说明:</p>
<p>1.批量导入请严格按照模版进行导入;</p> <p>1.批量导入请严格按照模版进行导入;</p>
...@@ -378,7 +378,7 @@ ...@@ -378,7 +378,7 @@
"weeklyMeeting": data.weeklyMeeting, "weeklyMeeting": data.weeklyMeeting,
"organTraining": data.organTraining, "organTraining": data.organTraining,
"designPlan": data.designPlan, "designPlan": data.designPlan,
"month": data.month, "month": data.month != '' ? data.month : null,
"kpi": data.kpi, "kpi": data.kpi,
"isDel": data.isDel "isDel": data.isDel
}) })
......
...@@ -95,7 +95,7 @@ ...@@ -95,7 +95,7 @@
</p> </p>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="24" :v-show="KDmoBan"> <a-row :gutter="24">
<a-col :md="24" :sm="12"> <a-col :md="24" :sm="12">
<p>说明:</p> <p>说明:</p>
<p>1.批量导入请严格按照模版进行导入;</p> <p>1.批量导入请严格按照模版进行导入;</p>
......
...@@ -259,7 +259,7 @@ ...@@ -259,7 +259,7 @@
}, },
createfunctionCancel() { createfunctionCancel() {
this.zjlkpivisible = false; this.zjlkpivisible = false;
this.clearmodel0(); this.clearmodel();
}, },
clearmodel() { clearmodel() {
this.importTile = ""; this.importTile = "";
......
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
</p> </p>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="24" :v-show="KDmoBan"> <a-row :gutter="24">
<a-col :md="24" :sm="12"> <a-col :md="24" :sm="12">
<p>说明:</p> <p>说明:</p>
<p>1.批量导入请严格按照模版进行导入;</p> <p>1.批量导入请严格按照模版进行导入;</p>
...@@ -131,7 +131,7 @@ ...@@ -131,7 +131,7 @@
title: ConstantActivity.title, title: ConstantActivity.title,
queryParam: { queryParam: {
name: '', name: '',
month: '', month: [],
}, },
columns: [ columns: [
{dataIndex: 'month', width: 80, title: '月份 '}, {dataIndex: 'month', width: 80, title: '月份 '},
......
...@@ -41,8 +41,13 @@ ...@@ -41,8 +41,13 @@
<a-select placeholder="请选择" v-model="queryParam.orderType"> <a-select placeholder="请选择" v-model="queryParam.orderType">
<a-select-option key="">请选择</a-select-option> <a-select-option key="">请选择</a-select-option>
<a-select-option key="1">放号登记</a-select-option> <a-select-option key="1">放号登记</a-select-option>
<a-select-option key="2">新用户办理</a-select-option> <a-select-option key="0">新用户办理</a-select-option>
<a-select-option key="3">羊城通</a-select-option> <a-select-option key="2">存量升级</a-select-option>
<a-select-option key="3">小白卡</a-select-option>
<a-select-option key="4">羊城通</a-select-option>
<a-select-option key="5">线上预制卡</a-select-option>
<a-select-option key="6">线上小白卡</a-select-option>
<a-select-option key="7">自助终端</a-select-option>
</a-select> </a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
...@@ -92,8 +97,13 @@ ...@@ -92,8 +97,13 @@
</template> </template>
<template slot="orderTypeScope" slot-scope="text"> <template slot="orderTypeScope" slot-scope="text">
<p v-if="text=='1'">放号登记</p> <p v-if="text=='1'">放号登记</p>
<p v-if="text=='2'">新用户办卡</p> <p v-if="text=='0'">新用户办卡</p>
<p v-if="text=='3'">存量升级</p> <p v-if="text=='2'">存量升级</p>
<p v-if="text=='3'">小白卡</p>
<p v-if="text=='4'">羊城通</p>
<p v-if="text=='5'">线上预制卡</p>
<p v-if="text=='6'">线上小白卡</p>
<p v-if="text=='7'">自助终端</p>
</template> </template>
<template slot="statusScope" slot-scope="text"> <template slot="statusScope" slot-scope="text">
<p v-if="text=='0'">重复放号</p> <p v-if="text=='0'">重复放号</p>
...@@ -151,7 +161,7 @@ ...@@ -151,7 +161,7 @@
<script> <script>
import STable from '@/components/table'; import STable from '@/components/table';
import moment from 'dayjs'
import { import {
getList, getList,
deleteOrder,getSubstList,getSchoolList, deleteOrder,getSubstList,getSchoolList,
...@@ -216,7 +226,11 @@ ...@@ -216,7 +226,11 @@
{dataIndex: 'orderPhone', width: 200, title: '电信激活号码', align: "center"}, {dataIndex: 'orderPhone', width: 200, title: '电信激活号码', align: "center"},
{dataIndex: 'name', width: 200, title: '放号人', align: "center"}, {dataIndex: 'name', width: 200, title: '放号人', align: "center"},
{dataIndex: 'account', width: 200, title: '放号人账号', align: "center"}, {dataIndex: 'account', width: 200, title: '放号人账号', align: "center"},
{dataIndex: 'createTime', width: 200, title: '上传时间', align: "center"}, {dataIndex: 'createTime', width: 200, title: '上传时间', align: "center",
customRender: (text, row, index) => {
return moment(text).format("YYYY-MM-DD HH:mm:ss");
}
},
{ {
dataIndex: 'orderType', width: 200, title: '订单类型', align: "center", dataIndex: 'orderType', width: 200, title: '订单类型', align: "center",
scopedSlots: {customRender: "orderTypeScope"} scopedSlots: {customRender: "orderTypeScope"}
...@@ -228,8 +242,22 @@ ...@@ -228,8 +242,22 @@
scopedSlots: {customRender: "statusScope"} scopedSlots: {customRender: "statusScope"}
}, },
{dataIndex: 'remark', width: 200, title: '审核备注', align: "center"}, {dataIndex: 'remark', width: 200, title: '审核备注', align: "center"},
{dataIndex: 'auditTime', width: 200, title: '审核时间', align: "center"}, {dataIndex: 'auditTime', width: 200, title: '审核时间', align: "center",
{dataIndex: 'activateTime', width: 200, title: '激活时间', align: "center"}, customRender: (text, row, index) => {
if (text == null) {
return "";
}
return moment(text).format("YYYY-MM-DD HH:mm:ss");
}
},
{dataIndex: 'activateTime', width: 200, title: '激活时间', align: "center",
customRender: (text, row, index) => {
if (text == null) {
return "";
}
return moment(text).format("YYYY-MM-DD HH:mm:ss");
}
},
{dataIndex: 'recentlyAmount', width: 200, title: '最近充值', align: "center"}, {dataIndex: 'recentlyAmount', width: 200, title: '最近充值', align: "center"},
{dataIndex: 'recentlyBonus', width: 200, title: '最近充值激励', align: "center"}, {dataIndex: 'recentlyBonus', width: 200, title: '最近充值激励', align: "center"},
{dataIndex: 'capitalBonus', width: 200, title: '本金佣金', align: "center"}, {dataIndex: 'capitalBonus', width: 200, title: '本金佣金', align: "center"},
...@@ -350,9 +378,9 @@ ...@@ -350,9 +378,9 @@
this.$message.error(response.msg ? response.msg : "上传文件出错!", 5); this.$message.error(response.msg ? response.msg : "上传文件出错!", 5);
return false; return false;
} }
this.$message.success("上传成功!" + response.data, 5); this.$message.success("上传成功!" + response.data.msg, 5);
if(response.data.indexOf("返回导入结果清单") > -1){ if(response.data.msg.indexOf("返回导入结果清单") > -1){
exportFile(downloadResult(), "导入结果清单.xlsx"); exportFile(downloadResult({"key": response.data.key}), "导入结果清单.xlsx");
} }
this.createfunctionCancel(); this.createfunctionCancel();
this.search(); this.search();
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
</a-col> </a-col>
<a-col :md="3" :sm="6"> <a-col :md="3" :sm="6">
<a-form-item label="销售状态"> <a-form-item label="销售状态">
<a-select v-model="queryParam.state" @change="getSchoolNames"> <a-select v-model="queryParam.state">
<a-select-option key="">--全部--</a-select-option> <a-select-option key="">--全部--</a-select-option>
<a-select-option key="1">未出售</a-select-option> <a-select-option key="1">未出售</a-select-option>
<a-select-option key="2">已出售</a-select-option> <a-select-option key="2">已出售</a-select-option>
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
</p> </p>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="24" :v-show="KDmoBan"> <a-row :gutter="24">
<a-col :md="24" :sm="12"> <a-col :md="24" :sm="12">
<p>说明:</p> <p>说明:</p>
<p>1.批量导入请严格按照模版进行导入;</p> <p>1.批量导入请严格按照模版进行导入;</p>
......
...@@ -43,9 +43,7 @@ ...@@ -43,9 +43,7 @@
<a-form-item :labelCol="{span: 6}" :wrapperCol="{span: 8, offset: 1}" label="套餐全称"> <a-form-item :labelCol="{span: 6}" :wrapperCol="{span: 8, offset: 1}" label="套餐全称">
<a-auto-complete placeholder="套餐全称" v-decorator="[ 'name', {rules: [{ required: true, message: '县分不能为空!' ,whitespace:true}]} ]"> <a-auto-complete placeholder="套餐全称" v-decorator="[ 'name', {rules: [{ required: true, message: '县分不能为空!' ,whitespace:true}]} ]">
<template slot="dataSource"> <template slot="dataSource">
<a-select-option v-for="website in autoCompleteResult" :key="website"> <a-select-option v-for="website in autoCompleteResult" :key="website">{{ website }}</a-select-option>
{{ website }}
</a-select-option>
</template> </template>
</a-auto-complete> </a-auto-complete>
</a-form-item> </a-form-item>
......
...@@ -185,7 +185,7 @@ ...@@ -185,7 +185,7 @@
}, },
data() { data() {
return { return {
universityIdtrue: true, universityId: true,
universityName: '', universityName: '',
regularName: '请选择', regularName: '请选择',
visibleT: false, visibleT: false,
...@@ -340,12 +340,14 @@ ...@@ -340,12 +340,14 @@
}, },
modifyfunction(data) { modifyfunction(data) {
universitySchool().then(res => { universitySchool().then(res => {
this.universitySchool = res.data this.universitySchool = res.data;
res.data.forEach(value => { if (data != undefined) {
res.data.forEach(value => {
if (data.universityId == value.universityId) { if (data.universityId == value.universityId) {
this.chouti = value this.chouti = value
} }
}) })
}
//console.log(this.universitySchool) //console.log(this.universitySchool)
}) })
if (data != undefined) { if (data != undefined) {
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<a-col :md="3" :sm="6"> <a-col :md="3" :sm="6">
<a-form-item label="县分"> <a-form-item label="县分">
<a-select v-model="queryParam.universityRegion" @change="getSchoolNames"> <a-select v-model="queryParam.universityRegion" @change="getSchool">
<a-select-option key="">--全部--</a-select-option> <a-select-option key="">--全部--</a-select-option>
<a-select-option v-for="d in subNames" :key="d.value" :value="d.value">{{d.text}}</a-select-option> <a-select-option v-for="d in subNames" :key="d.value" :value="d.value">{{d.text}}</a-select-option>
</a-select> </a-select>
...@@ -302,10 +302,10 @@ ...@@ -302,10 +302,10 @@
"publicNumber":'' "publicNumber":''
}) })
}, },
getSchoolNames() { getSchool() {
this.schoolNames = [] this.schoolNames = [];
this.queryParam.universityRegion = '' this.queryParam.productUniversity = '';
getSchoolNames({"substName": this.queryParam.universityName}).then((res) => { getSchoolNames({"substName": this.queryParam.universityRegion}).then((res) => {
if (res.state == "success") { if (res.state == "success") {
const result = res.data const result = res.data
result.forEach((r) => { result.forEach((r) => {
...@@ -337,7 +337,7 @@ ...@@ -337,7 +337,7 @@
}, },
mounted() { mounted() {
this.initSubstName(); this.initSubstName();
this.getSchoolNames(); this.getSchool();
} }
} }
</script> </script>
......
...@@ -153,6 +153,7 @@ ...@@ -153,6 +153,7 @@
let obj = cloneObject(this.queryParam); let obj = cloneObject(this.queryParam);
//表示 //表示
return reportList(Object.assign(params, obj)).then(res => { return reportList(Object.assign(params, obj)).then(res => {
console.log(res);
let data = {}; let data = {};
if (res.state !== "success") { if (res.state !== "success") {
this.$message.error("查询失败!", 5); this.$message.error("查询失败!", 5);
......
...@@ -151,9 +151,7 @@ ...@@ -151,9 +151,7 @@
<a-form-item :labelCol="{span: 6}" :wrapperCol="{span: 8, offset: 1}" label="县分"> <a-form-item :labelCol="{span: 6}" :wrapperCol="{span: 8, offset: 1}" label="县分">
<a-select placeholder="请选择" @change="changeSubst(1)" v-model="addForm.subName" > <a-select placeholder="请选择" @change="changeSubst(1)" v-model="addForm.subName" >
<a-select-option key="">请选择</a-select-option> <a-select-option key="">请选择</a-select-option>
<a-select-option v-for="data in subNameList" :value="data"> <a-select-option v-for="d in subNames" :key="d.value" :value="d.value">{{d.text}}</a-select-option>
{{ data}}
</a-select-option>
</a-select> </a-select>
</a-form-item> </a-form-item>
...@@ -236,9 +234,7 @@ ...@@ -236,9 +234,7 @@
<a-form-item :labelCol="{span: 6}" :wrapperCol="{span: 8, offset: 1}" label="县分"> <a-form-item :labelCol="{span: 6}" :wrapperCol="{span: 8, offset: 1}" label="县分">
<a-select placeholder="请选择" @change="changeSubst(2)" v-model="modifyForm.subName" > <a-select placeholder="请选择" @change="changeSubst(2)" v-model="modifyForm.subName" >
<a-select-option key="">请选择</a-select-option> <a-select-option key="">请选择</a-select-option>
<a-select-option v-for="data in subNameList" :value="data"> <a-select-option v-for="d in subNames" :key="d.value" :value="d.value">{{d.text}}</a-select-option>
{{ data}}
</a-select-option>
</a-select> </a-select>
</a-form-item> </a-form-item>
...@@ -312,6 +308,7 @@ ...@@ -312,6 +308,7 @@
emptyText: {emptyText: '暂无数据'}, emptyText: {emptyText: '暂无数据'},
Formtable: this.$form.createForm(this, {name: 'Formtable'}), Formtable: this.$form.createForm(this, {name: 'Formtable'}),
addFormtable: this.$form.createForm(this, {name: 'addFormtable'}), addFormtable: this.$form.createForm(this, {name: 'addFormtable'}),
titleName : "新增",
queryParam: { queryParam: {
name: '', name: '',
account: '', account: '',
...@@ -464,7 +461,7 @@ ...@@ -464,7 +461,7 @@
this.changeSchool(data.schoolId); this.changeSchool(data.schoolId);
this.changePosition(2); this.changePosition(2);
this.$refs.tree2.setValue2(data.roleid); this.$refs.tree2.setValue2(data.roleid);
}, 0) }, 500)
getlistysm().then(res => { getlistysm().then(res => {
if (res.state == "success") { if (res.state == "success") {
this.autoCompleteResult = res.data this.autoCompleteResult = res.data
...@@ -536,28 +533,29 @@ ...@@ -536,28 +533,29 @@
openAddUser() { openAddUser() {
this.titleName = "新增" this.titleName = "新增"
this.addUser = true; this.addUser = true;
this.addFormtable.setFieldsValue({ setTimeout(()=>{
account: '', this.addFormtable.setFieldsValue({
phone: '', account: '',
name: '', phone: '',
idCard: '', name: '',
sex: '', idCard: '',
grade: '', sex: '',
password: '', grade: '',
repassword: '', password: '',
schoolId: '', schoolId: '',
parentId: '', parentId: '',
ysm: '', ysm: '',
}) })
this.addForm.subName = ''; this.addForm.subName = '';
this.addForm.position = ''; this.addForm.position = '';
this.addForm.parentIds = ''; this.addForm.parentIds = '';
getlistysm().then(res => { getlistysm().then(res => {
if (res.state == "success") { if (res.state == "success") {
this.autoCompleteResult = res.data this.autoCompleteResult = res.data
} }
}) })
},0)
}, },
createOk(){ createOk(){
this.addFormtable.validateFields(["account", 'phone', "name", "idCard", "sex", 'grade',"password",'schoolId','role','position','parentId','ysm'], {force: true}, (err, values)=>{ this.addFormtable.validateFields(["account", 'phone', "name", "idCard", "sex", 'grade',"password",'schoolId','role','position','parentId','ysm'], {force: true}, (err, values)=>{
...@@ -610,7 +608,6 @@ ...@@ -610,7 +608,6 @@
} }
//修改数据 //修改数据
addPartner(this.addForm).then(res=>{ addPartner(this.addForm).then(res=>{
console.log(JSON.stringify(res));
if (res.state=="success") { if (res.state=="success") {
this.$message.success(res.data ? res.data : '修改成功!', 5); this.$message.success(res.data ? res.data : '修改成功!', 5);
this.search(); this.search();
......
...@@ -57,9 +57,30 @@ ...@@ -57,9 +57,30 @@
<a-modal :title="titleName" :visible="modifyvisible" @ok="createfunctionOk" @cancel="createfunctionCancel" html-type="submit" width="720px" height="1600px"> <a-modal :title="titleName" :visible="modifyvisible" @ok="createfunctionOk" @cancel="createfunctionCancel" html-type="submit" width="720px" height="1600px">
<a-form :form="Formtable"> <a-form :form="Formtable">
<a-form-item :labelCol="{span: 6}" :wrapperCol="{span: 8, offset: 1}" label="账号"> <a-form-item :labelCol="{span: 6}" :wrapperCol="{span: 8, offset: 1}" label="账号">
<a-select mode="tags" v-model="modifyForm.userName" placeholder="请选择账号" @change="handleChange"> <template v-for="(tag, index) in modifyForm.userName">
<a-select-option v-for="d in userList" :value="d.name">{{ d.name}}</a-select-option> <a-tooltip v-if="tag.length > 20" :key="tag" :title="tag">
</a-select> <a-tag :key="tag" :closable="index !== 0" @close="() => handleClose(tag)">
{{ `${tag.slice(0, 20)}...` }}
</a-tag>
</a-tooltip>
<a-tag v-else :key="tag" :closable="index !== 0" @close="() => handleClose(tag)">
{{ tag }}
</a-tag>
</template>
<a-input
v-if="inputVisible"
ref="input"
type="text"
size="small"
:style="{ width: '78px' }"
:value="inputValue"
@change="handleInputChange"
@blur="handleInputConfirm"
@keyup.enter="handleInputConfirm"
/>
<a-tag v-else style="background: #fff; borderStyle: dashed;" @click="showInput">
<a-icon type="plus" /> 添加账号
</a-tag>
</a-form-item> </a-form-item>
<a-form-item :labelCol="{span: 6}" :wrapperCol="{span: 8, offset: 1}" label="县分"> <a-form-item :labelCol="{span: 6}" :wrapperCol="{span: 8, offset: 1}" label="县分">
<a-select placeholder="请选择" @change="getSchoolNames2" v-model="modifyForm.subName" > <a-select placeholder="请选择" @change="getSchoolNames2" v-model="modifyForm.subName" >
...@@ -97,6 +118,8 @@ ...@@ -97,6 +118,8 @@
}, },
data: function () { data: function () {
return { return {
inputVisible: false,
inputValue: '',
emptyText: {emptyText: '暂无数据'}, emptyText: {emptyText: '暂无数据'},
Formtable: this.$form.createForm(this, {name: 'Formtable'}), Formtable: this.$form.createForm(this, {name: 'Formtable'}),
queryParam: { queryParam: {
...@@ -114,7 +137,7 @@ ...@@ -114,7 +137,7 @@
schoolNames2: [], schoolNames2: [],
modifyForm: { modifyForm: {
id: '', id: '',
userName: '', userName: [],
subName: '', subName: '',
account: '', account: '',
schoolId: '', schoolId: '',
...@@ -186,13 +209,8 @@ ...@@ -186,13 +209,8 @@
createfunctionOk(){ createfunctionOk(){
this.Formtable.validateFields(["account"], {force: true}, (err, values)=>{ this.Formtable.validateFields(["account"], {force: true}, (err, values)=>{
if (!err){ if (!err){
var userNames = this.modifyForm.userName.split(","); for (const userName of this.modifyForm.userName) {
for (const userName of userNames) { this.modifyForm.account = userName +",";
for (const obj of this.userList) {
if(userName === obj.name){
this.modifyForm.account = obj.account +",";
}
}
} }
addAllocation({"account":this.modifyForm.account,"schoolId":this.modifyForm.schoolId}).then(res=>{ addAllocation({"account":this.modifyForm.account,"schoolId":this.modifyForm.schoolId}).then(res=>{
if (res.state=="success") { if (res.state=="success") {
...@@ -260,6 +278,35 @@ ...@@ -260,6 +278,35 @@
} }
}) })
}, },
handleClose(removedTag) {
const tags = this.modifyForm.userName.filter(tag => tag !== removedTag);
console.log(tags);
this.modifyForm.userName = tags;
},
showInput() {
this.inputVisible = true;
this.$nextTick(function() {
this.$refs.input.focus();
});
},
handleInputChange(e) {
this.inputValue = e.target.value;
},
handleInputConfirm() {
const inputValue = this.inputValue;
let tags = this.modifyForm.userName;
if (inputValue && tags.indexOf(inputValue) === -1) {
tags = [...tags, inputValue];
}
console.log(tags);
this.modifyForm.userName = tags;
this.inputVisible = false;
this.inputValue = '';
},
getSchoolNames2() { getSchoolNames2() {
this.schoolNames2 = [] this.schoolNames2 = []
this.modifyForm.schoolId = '' this.modifyForm.schoolId = ''
......
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