Commit c4a187a2 authored by 沈翠玲's avatar 沈翠玲

5分钟内的报工记录可以修改

parent 8eb9a909
...@@ -84,13 +84,19 @@ const install = (Vue, vm) => { ...@@ -84,13 +84,19 @@ const install = (Vue, vm) => {
vm.$u.delete(config.adminPath + '/mes/pro/feedback/deleteOut5Min/' + recordId), vm.$u.delete(config.adminPath + '/mes/pro/feedback/deleteOut5Min/' + recordId),
// 修改修改报工列表 // 修改修改报工列表
updateFeedback: (params) => updateFeedback: (params) =>
vm.$u.putJson(config.adminPath + '/mes/pro/feedback//editOut5Mi', params), vm.$u.putJson(config.adminPath + '/mes/pro/feedback/editOut5Min', params),
//生产报工feedBackPackage //生产报工feedBackPackage
feedBackPackage: (params = {}) => feedBackPackage: (params = {}) =>
vm.$u.post( vm.$u.post(
config.adminPath + '/mobile/pro/protask/feedBackPackage', config.adminPath + '/mobile/pro/protask/feedBackPackage',
params params
), ),
//生产报工补打印
rePackageInfoPrint: (params = {}) =>
vm.$u.post(
config.adminPath + '/dev-api/pro/packagePrintRecord/rePackageInfoPrint',
params
),
// 生产指令列表 // 生产指令列表
workOrderSoDirectiveApi: (params = {}) => workOrderSoDirectiveApi: (params = {}) =>
vm.$u.postJson( vm.$u.postJson(
......
<template>
<view>
<u-modal title="修改报工" @cancel="(show = false, $emit('close'))" show-cancel-button
cancelText="关闭" :show-confirm-button="false"
:title-style="{ 'background-color': '#1E3770', color: '#FFFFFF', 'line-height': '37px', 'padding-top': '0px' }"
v-model="show" width="100%" height="100%" :content-style="{ height: '87vh' }">
<zb-table :columns="editFeedingColumn" :stripe="true" :border="true" :data="editFeedingTable" style="height: calc(100% - 40px)">
<template slot="number" slot-scope="scope">
<span>{{ getSumNumber(scope.row) }}</span>
</template>
<template slot="pro" slot-scope="scope">
<u-button
size="mini"
type="text"
@click="handleView(scope.row)"
>查看</u-button>
<u-button
size="mini"
type="text"
style="margin-left: 10rpx"
icon="edit-pen"
@click="handleUpdate(scope.row)"
v-if="scope.row.status =='PREPARE'"
>修改</u-button>
<u-button
size="mini"
type="text"
style="margin-left: 10rpx"
icon="trash"
@click="handleDelete(scope.row)"
v-if="scope.row.status =='PREPARE'"
>删除</u-button>
</template>
</zb-table>
<uni-pagination :show-icon="true" style="margin-top: 10rpx;" v-if="total" :total="total" :current="queryParams.pageNum" :pageSize="queryParams.pageSize" @change="handlePage" />
</u-modal>
<!-- 添加或修改生产报工记录对话框 -->
<u-modal :title="title" v-model="open" width="80%" :show-confirm-button="form.status =='PREPARE' && optType !='view' " show-cancel-button
@confirm="submitForm" :title-style="{ 'background-color': '#1E3770', color: '#FFFFFF', 'line-height': '37px', 'padding-top': '0px' }" :content-style="{ padding: '10rpx' }">
<u-form ref="form" :model="form" label-width="100px">
<u-row>
<u-col :span="4">
<u-form-item label="报工类型" prop="feedbackType">
<uni-data-select v-model="form.feedbackType"
:localdata="dict.type.mes_feedback_type" disabled></uni-data-select>
</u-form-item>
</u-col>
<u-col v-if="form.feedbackType == 'ASSIST_PROCESS'" :span="4">
<u-form-item label="外协单号" prop="assistProcessCode">
{{form.assistProcessCode}}
</u-form-item>
</u-col>
<u-col v-if="form.feedbackType == 'ASSIST_PROCESS'" :span="4">
<u-form-item label="是否关单" prop="closeType">
<u-radio-group v-model="form.closeType" disabled>
<u-radio :label="1"></u-radio>
<u-radio :label="0"></u-radio>
</u-radio-group>
</u-form-item>
</u-col>
<u-col :span="4">
<u-form-item label="生产工单" prop="workorderCode">
{{form.workorderCode}}
</u-form-item>
</u-col>
<u-col :span="4">
<u-form-item label="生产任务" prop="taskCode">
{{form.taskCode}}
</u-form-item>
</u-col>
</u-row>
<u-row>
<u-col :span="4">
<u-form-item label="产品编码" prop="sapItemCode">
{{form.sapItemCode}}
</u-form-item>
</u-col>
<u-col :span="4">
<u-form-item label="产品名称" prop="itemName">
{{form.itemName}}
</u-form-item>
</u-col>
<u-col :span="4">
<u-form-item label="单位" prop="unitOfMeasure">
{{form.unitOfMeasure}}
</u-form-item>
</u-col>
</u-row>
<u-row>
<u-col :span="24">
<u-form-item label="规格型号" prop="specification">
{{form.specification}}
</u-form-item>
</u-col>
</u-row>
<u-row>
<u-col :span="4">
<u-form-item label="报工数量" prop="quantityFeedback">
<u-input disabled v-model="form.quantityFeedback" />
</u-form-item>
</u-col>
<u-col :span="4">
<u-form-item label="良品报工" prop="quantityQualify">
<u-number-box :min="0" @change="handleQuantityChanged" v-model="form.quantityQualify" :long-press="false" placeholder="请输入良品报工" />
</u-form-item>
</u-col>
<u-col :span="4">
<u-form-item label="不良品报工" prop="quantityUnqualify">
<u-number-box :min="0" @change="handleQuantityChanged" v-model="form.quantityUnqualify" :long-press="false" placeholder="请输入不良品报工" />
</u-form-item>
</u-col>
</u-row>
<u-row>
<u-col :span="4">
<u-form-item label="加工工时" prop="machineTime">
<u-number-box :min="0" v-model="form.machineTime" placeholder="请输入加工工时" :long-press="false" />
</u-form-item>
</u-col>
</u-row>
<u-row>
<u-col :span="3">
<u-form-item label="报工人" prop="nickName">
{{form.nickName}}
</u-form-item>
</u-col>
<u-col :span="5">
<u-form-item label="报工时间" prop="feedbackTime">
{{form.feedbackTime}}
</u-form-item>
</u-col>
<u-col :span="4">
<u-form-item label="审核人" prop="recordNick">
{{form.recordNick}}
</u-form-item>
</u-col>
</u-row>
<u-row>
<u-col :span="24">
<u-form-item label="备注" prop="remark">
{{form.remark}}
</u-form-item>
</u-col>
</u-row>
</u-form>
</u-modal>
</view>
</template>
<script>
import UButton from '../../../../uview-ui/components/u-button/u-button.vue';
import dayjs from 'dayjs'
export default {
name: 'editFeeding',
props: ['value'],
dicts: ["mes_feedback_type"],
components: {
UButton
},
data() {
return {
editFeedingColumn: [
{
name: 'workstationName',
label: '工作中心',
width: 170
},
{
name: 'workunitName',
label: '工作单元',
width: 170
},
{
name: 'workorderCode',
label: '生产工单编号',
width: 120
},
{
name: 'feedbackTime',
label: '报工数量',
width: 100,
type: 'slot',
slot: 'number'
},
{
name: 'quantityQualify',
label: '合格数量',
width: 80
},
{
name: 'quantityUnqualify',
label: '不合格数量',
width: 80
},
{
name: 'nickName',
label: '报工人',
width: 80
},
{
name: 'feedbackTime',
label: '报工时间',
width: 180
},
{
name: 'peration',
label: '操作',
width: 170,
type: 'slot',
slot: 'pro'
}
],
total: 0,
queryParams: {
pageNum: 1,
pageSize: 10,
taskWorkunitId: null,
workunitId: null
},
title: '',
open: false,
optType: '',
form: {},
show: false,
editFeedingTable: [],
}
},
watch: {
value () {
this.show = this.value
}
},
methods: {
handleQuantityChanged(){
this.form.quantityFeedback = this.form.quantityQualify + this.form.quantityUnqualify;
},
getSumNumber(row) {
const first = row.quantityQualify? Number(row.quantityQualify): 0
const last = row.quantityUnqualify? Number(row.quantityUnqualify): 0
return first + last
},
/** 删除按钮操作 */
handleDelete(row) {
const recordIds = row.recordId;
uni.showModal({
title: '系统提示',
content: '是否确认删除生产报工记录编号为"' + recordIds + '"的数据项?',
success: (res) => {
if (res.confirm) {
this.$u.api.delFeedback(recordIds).then((response) => {
if(response.code && response.code === 200) {
this.getList();
this.$u.toast("删除成功");
} else {
this.$u.toast(response.msg || "删除失败");
}
})
}
}
})
},
/** 修改按钮操作 */
handleUpdate(row) {
this.form = {}
const recordId = row.recordId
this.$u.api.getFeedback(recordId).then(response => {
this.form = response.data;
if(dayjs(response.data.feedbackTime, 'YYYY-MM-DD', true).isValid()){
this.form.feedbackTime = response.data.feedbackTime + ' 00:00:00'
}
this.open = true;
this.title = "修改生产报工记录";
this.optType = "edit";
});
},
// 查询明细按钮操作
handleView(row){
this.form = {}
const recordId = row.recordId;
this.$u.api.getFeedback(recordId).then(response => {
this.form = response.data;
if(dayjs(response.data.feedbackTime, 'YYYY-MM-DD', true).isValid()){
this.form.feedbackTime = response.data.feedbackTime + ' 00:00:00'
}
this.open = true;
this.title = "查看生产报工单信息";
this.optType = "view";
});
},
submitForm() {
if (this.form.recordId != null) {
this.form.sizeReportData = this.form.sizeReportData ? this.form.sizeReportData : []
this.form.directiveReportData = this.form.directiveReportData ? this.form.directiveReportData : []
this.$u.api.updateFeedback(this.form).then(response => {
if(response.code && response.code === 200) {
this.$u.toast("修改成功");
this.open=false;
this.getList();
} else {
this.$u.toast(response.msg || "修改失败");
}
});
}
},
// 分页点击事件
handlePage(params) {
this.queryParams.pageNum = params.current;
this.getList() // 点击的时候去请求查询列表
},
getList(row) {
if(row && row.workunitId) this.queryParams.workunitId = row.workunitId
if(row && row.taskWorkunitId) this.queryParams.taskWorkunitId = row.taskWorkunitId
const params = {
...this.queryParams,
createStartTime: dayjs().subtract(5, 'minute').format('YYYY-MM-DD HH:mm:ss'),
createEndTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
userId: this.vuex_user.userId
}
return new Promise((resolve, reject) => {
this.$u.api.feedbacklist(params).then((res)=>{
if (res.code === 200) {
this.editFeedingTable = res.rows
this.total = res.total
resolve()
} else {
reject()
}
})
})
}
}
}
</script>
<style>
</style>
\ No newline at end of file
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
<!-- </u-col>--> <!-- </u-col>-->
<!-- <u-col span="2">--> <!-- <u-col span="2">-->
<!-- <u-form-item label="数量">--> <!-- <u-form-item label="数量">-->
<!-- <u-number-box :min="0" v-model="materialRecordInfo.quantity"></u-number-box>--> <!-- <uni-number-box :min="0" v-model="materialRecordInfo.quantity"></uni-number-box>-->
<!-- </u-form-item>--> <!-- </u-form-item>-->
<!-- </u-col>--> <!-- </u-col>-->
<!-- <u-col span="1">--> <!-- <u-col span="1">-->
...@@ -83,13 +83,13 @@ ...@@ -83,13 +83,13 @@
<u-button type="success" @click="commonClick('StartTask')">开始作业</u-button> <u-button type="success" @click="commonClick('StartTask')">开始作业</u-button>
<u-button type="warning" @click="commonClick('StopTask')">暂停作业</u-button> <u-button type="warning" @click="commonClick('StopTask')">暂停作业</u-button>
<u-button type="success" @click="commonClick('Prod')">生产报工</u-button> <u-button type="success" @click="commonClick('Prod')">生产报工</u-button>
<u-button type="success" @click="commonClick('editProd')">修改报工</u-button>
<u-button type="primary" @click="commonClick('FinshTask')">完成作业</u-button> <u-button type="primary" @click="commonClick('FinshTask')">完成作业</u-button>
<!-- <u-button type="primary" @click="commonClick('KnifeTemp2')">刀模版上下机2</u-button> --> <!-- <u-button type="primary" @click="commonClick('KnifeTemp2')">刀模版上下机2</u-button> -->
<u-button type="primary" @click="commonClick('MaterialRequest')">补料申请</u-button> <u-button type="primary" @click="commonClick('MaterialRequest')">补料申请</u-button>
<u-button type="primary" @click="commonClick('MaterialReturn')">退料申请</u-button> <u-button type="primary" @click="commonClick('MaterialReturn')">退料申请</u-button>
<u-button type="primary" @click="commonClick('ViewPpicture')">查看图片</u-button> <u-button type="primary" @click="commonClick('ViewPpicture')">查看图片</u-button>
<!-- <u-button type="primary" @click="commonClick('jobAssignment')">作业分派</u-button> -->
<u-button type="warning" @click="commonClick('abnormal')">异常报告</u-button> <u-button type="warning" @click="commonClick('abnormal')">异常报告</u-button>
<!-- <u-button type="primary" @click="commonClick('StockIn')">完工入库申请</u-button> --> <!-- <u-button type="primary" @click="commonClick('StockIn')">完工入库申请</u-button> -->
</scroll-view> </scroll-view>
...@@ -240,6 +240,11 @@ ...@@ -240,6 +240,11 @@
style="margin-left: 20rpx" size="mini"> style="margin-left: 20rpx" size="mini">
打印/报工 打印/报工
</u-button> </u-button>
<u-button v-if="scope.row.feedbackQuantity && Number(scope.row.feedbackQuantity) > 0"
@tap="rePackageInfoPrint(feedback, scope.row, i)" type="success"
style="margin-left: 20rpx" size="mini">
补打印
</u-button>
<!-- <u-input v-model="scope.row.reportQuantity" type="number"></u-input> --> <!-- <u-input v-model="scope.row.reportQuantity" type="number"></u-input> -->
</template> </template>
</zb-table> </zb-table>
...@@ -408,14 +413,14 @@ ...@@ -408,14 +413,14 @@
<view class="box" v-if="timeTest.isshow"> <view class="box" v-if="timeTest.isshow">
<u-col span="6"> <u-col span="6">
<u-form-item label="合格数量(副):" prop="feedbackQuantityFu"> <u-form-item label="合格数量(副):" prop="feedbackQuantityFu">
<u-number-box :min="0" @change="quantityChangedV2(feedback, feedbackQuantityFu)" <uni-number-box :min="0" @change="quantityChangedV2(feedback, feedbackQuantityFu)"
v-model="feedbackQuantityFu"></u-number-box> v-model="feedbackQuantityFu"></uni-number-box>
</u-form-item> </u-form-item>
</u-col> </u-col>
<u-col span="6"> <u-col span="6">
<u-form-item label="不良品数量(副):" prop="feedbackUnQuantityFu"> <u-form-item label="不良品数量(副):" prop="feedbackUnQuantityFu">
<u-number-box :min="0" @change="quantityChangedV2(feedback, feedbackUnQuantityFu)" <uni-number-box :min="0" @change="quantityChangedV2(feedback, feedbackUnQuantityFu)"
v-model="feedbackUnQuantityFu"></u-number-box> v-model="feedbackUnQuantityFu"></uni-number-box>
</u-form-item> </u-form-item>
</u-col> </u-col>
</view> --> </view> -->
...@@ -701,7 +706,7 @@ ...@@ -701,7 +706,7 @@
<u-col> <u-col>
<u-form-item label="补料数量"> <u-form-item label="补料数量">
<u-number-box v-model="materialRequestFormData.applyNum" :long-press="false" :positive-integer="false" <u-number-box v-model="materialRequestFormData.applyNum" :long-press="false" :positive-integer="false"
:input-width="190"></u-number-box> :input-width="190"></u-number-box>
</u-form-item> </u-form-item>
</u-col> </u-col>
</u-row> </u-row>
...@@ -811,6 +816,7 @@ ...@@ -811,6 +816,7 @@
<zb-table :columns="tableDetailColumn" :stripe="true" :border="true" :data="tableDataDetail"></zb-table> <zb-table :columns="tableDetailColumn" :stripe="true" :border="true" :data="tableDataDetail"></zb-table>
</view> </view>
</u-modal> </u-modal>
<u-modal title="查看倒冲批次" :showRecoilMaterialButton="true" @confirm="$refs.appScan.start()" <u-modal title="查看倒冲批次" :showRecoilMaterialButton="true" @confirm="$refs.appScan.start()"
:title-style="{ 'background-color': '#1E3770', color: '#FFFFFF', 'line-height': '37px', 'padding-top': '0px',' z-index': 9999 }" :title-style="{ 'background-color': '#1E3770', color: '#FFFFFF', 'line-height': '37px', 'padding-top': '0px',' z-index': 9999 }"
v-model="recoilMaterialFlag" width="1300rpx"> v-model="recoilMaterialFlag" width="1300rpx">
...@@ -865,23 +871,6 @@ ...@@ -865,23 +871,6 @@
</view> </view>
</u-modal> </u-modal>
<u-modal title="作业分派" @confirm="handleSubmitJobAssignment" show-cancel-button
:title-style="{ 'background-color': '#1E3770', color: '#FFFFFF', 'line-height': '37px', 'padding-top': '0px' }"
v-model="jobAssignmentVisible" width="1200rpx">
<view class="feedback-card">
<u-form :mode="jobAssignmentForm" label-width="100px">
<u-form-item label="排产数量">
<u-number-box v-model="jobAssignmentForm.quantity" :long-press="false" :positive-integer="false" :size="50"
:input-width="190"></u-number-box>
</u-form-item>
<u-form-item label="工作单元">
<u-input disabled v-model="jobAssignmentForm.workunitName" placeholder="选择工作单元"></u-input>
<u-button @tap="workunitVisible = true" type="success" size="mini">选择工作单元</u-button>
</u-form-item>
</u-form>
</view>
</u-modal>
<u-modal title="选择工作单元" @confirm="handleSubmitWorkunit" show-cancel-button <u-modal title="选择工作单元" @confirm="handleSubmitWorkunit" show-cancel-button
:title-style="{ 'background-color': '#1E3770', color: '#FFFFFF', 'line-height': '37px', 'padding-top': '0px' }" :title-style="{ 'background-color': '#1E3770', color: '#FFFFFF', 'line-height': '37px', 'padding-top': '0px' }"
v-model="workunitVisible" width="1800rpx"> v-model="workunitVisible" width="1800rpx">
...@@ -889,6 +878,7 @@ ...@@ -889,6 +878,7 @@
<workunitList ref="workunitRef" /> <workunitList ref="workunitRef" />
</view> </view>
</u-modal> </u-modal>
<editFeeding ref="editFeeding" v-model="editFeedingVisible" @close="editFeedingVisible = false"/>
</view> </view>
</template> </template>
<style scoped> <style scoped>
...@@ -901,6 +891,7 @@ import dModelList from './components/dModelList.vue'; ...@@ -901,6 +891,7 @@ import dModelList from './components/dModelList.vue';
import User from '@/components/User/User.vue'; import User from '@/components/User/User.vue';
import userPersonnel from './components/userPersonnel.vue'; import userPersonnel from './components/userPersonnel.vue';
import printTemplate from './components/printTemplate.vue'; import printTemplate from './components/printTemplate.vue';
import editFeeding from './components/editFeeding.vue';
import workunitList from './components/workunitList.vue'; import workunitList from './components/workunitList.vue';
import ProogingSpecificationSheet from './components/ProogingSpecificationSheet.vue'; import ProogingSpecificationSheet from './components/ProogingSpecificationSheet.vue';
import UButton from '../../../uview-ui/components/u-button/u-button.vue'; import UButton from '../../../uview-ui/components/u-button/u-button.vue';
...@@ -913,6 +904,7 @@ export default { ...@@ -913,6 +904,7 @@ export default {
mixins: [cameraAuthMixin], mixins: [cameraAuthMixin],
components: { components: {
SearchInput, SearchInput,
editFeeding,
dModelList, dModelList,
userPersonnel, userPersonnel,
printTemplate, printTemplate,
...@@ -925,6 +917,7 @@ export default { ...@@ -925,6 +917,7 @@ export default {
data() { data() {
return { return {
getWorkorderDirectiveLoading: false, getWorkorderDirectiveLoading: false,
editFeedingVisible: false,
tableOrderColumn: [ tableOrderColumn: [
{ {
name: 'quantity', name: 'quantity',
...@@ -1614,6 +1607,13 @@ export default { ...@@ -1614,6 +1607,13 @@ export default {
} }
this.doFeedback(); this.doFeedback();
break; break;
case 'editProd':
if (this.tableSelectData[0].status === 'PREPARE') {
this.$u.toast('工序未开工');
return;
}
this.doEditProd();
break;
case 'MaterialUsageRecord': case 'MaterialUsageRecord':
this.addMaterialUsageRecord(); this.addMaterialUsageRecord();
break; break;
...@@ -1642,9 +1642,6 @@ export default { ...@@ -1642,9 +1642,6 @@ export default {
case 'MaterialReturn': case 'MaterialReturn':
this.materialReturnShow(); this.materialReturnShow();
break; break;
case 'jobAssignment': // 作业分派
this.handleJobAssignment();
break;
case 'StockIn': case 'StockIn':
this.stockInShow(); this.stockInShow();
break; break;
...@@ -1665,6 +1662,14 @@ export default { ...@@ -1665,6 +1662,14 @@ export default {
this.jobAssignmentForm.workunitId = this.$refs.workunitRef.tableSelectData[0].workunitId; this.jobAssignmentForm.workunitId = this.$refs.workunitRef.tableSelectData[0].workunitId;
this.jobAssignmentForm.workunitName = this.$refs.workunitRef.tableSelectData[0].workunitName; this.jobAssignmentForm.workunitName = this.$refs.workunitRef.tableSelectData[0].workunitName;
}, },
doEditProd(){
const datas = Object.assign({}, this.tableSelectData[0]);
this.$refs['editFeeding'].getList(datas).then(() => {
this.editFeedingVisible = true
}).catch(()=>{
this.$u.toast('修改报工出现问题')
})
},
handleSubmitJobAssignment() { handleSubmitJobAssignment() {
let datas = Object.assign({}, this.tableSelectData[0]); let datas = Object.assign({}, this.tableSelectData[0]);
datas.taskWorkunit = this.jobAssignmentForm; datas.taskWorkunit = this.jobAssignmentForm;
...@@ -2030,6 +2035,7 @@ export default { ...@@ -2030,6 +2035,7 @@ export default {
} }
}); });
}, },
addMaterialUsageRecord() { addMaterialUsageRecord() {
if (this.materialRecordInfo.materialBatchNumber !== this.curTaskInfo.itemCode && this.currentType === 0) { if (this.materialRecordInfo.materialBatchNumber !== this.curTaskInfo.itemCode && this.currentType === 0) {
this.$u.toast('物料不在生产目录中!'); this.$u.toast('物料不在生产目录中!');
...@@ -2368,6 +2374,39 @@ export default { ...@@ -2368,6 +2374,39 @@ export default {
} }
}); });
}, },
rePackageInfoPrint(item, row, i){
if (item.printTemplate && !this.vuex_printConnect) {
this.$u.toast('打印机连接失败');
return;
}
item.feedbackTime = this.parseTime(new Date())
this.$u.api
.rePackageInfoPrint({
workorderId: item.workorderId,
qrcode: row.qrcode,
})
.then((res) => {
if (res.code === 200) {
// this.proVisible = false;
item.quantityUnqualify = 0;
this.$u.toast('上报成功');
this.getWorkorderDirectiveList(item, i)
if (item.printTemplate) {
let params = {};
res.data.forEach((datas) => {
params = {
reportName: 'mysql:' + item.printTemplate,
values: {
packagePrint: datas
}
};
this.printPdfSocket(params);
});
}
this.getTaskList();
}
});
},
handleSubmitPackageFeedback(item, row, i) { handleSubmitPackageFeedback(item, row, i) {
if (item.printTemplate && !this.vuex_printConnect) { if (item.printTemplate && !this.vuex_printConnect) {
this.$u.toast('打印机连接失败'); this.$u.toast('打印机连接失败');
......
...@@ -28,4 +28,7 @@ ...@@ -28,4 +28,7 @@
body { body {
position: relative; position: relative;
}
uni-modal {
z-index: 999999 !important;
} }
\ No newline at end of file
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