提交 1743afc3 authored 作者: pengxiaohui's avatar pengxiaohui

update: 新增修改学员备注信息

上级 ed435de5
......@@ -71,4 +71,10 @@ export function batchDeleteStudents(data) {
*/
export function batchSignin(data) {
return httpRequest.post('/api/marketing/admin/v1/activity/students/sign-in', data)
}
/**
* 更新学员信息
*/
export function updateStudentInfo(id, data) {
return httpRequest.put(`/api/marketing/admin/v1/activity/student/${id}`, data)
}
\ No newline at end of file
......@@ -29,7 +29,7 @@
<div class="sign-item-bd-content">
<p>名单人数:{{ item.student_count }}<span style="margin-left:30px;">签到人数:{{ item.student_sign_count }}</span></p>
<p>活动时间:{{ item.start_time }}{{item.end_time}}</p>
<p>签到时间:{{ item.sign_start_time }} {{item.sign_end_time}}</p>
<p>签到时间:{{ item.sign_start_time }} <span v-if="item.sign_start_time"></span> {{item.sign_end_time}}</p>
<p>活动地点:{{ item.address }}</p>
<p>创建时间:{{ item.created_at }}</p>
</div>
......@@ -73,7 +73,7 @@
@close="handleClose">
<person-list :id="selectedActivity.id" />
</el-drawer>
<el-dialog title="导入员" :visible.sync="dialogVisible" width="480px" :destroy-on-close="true" :close-on-click-modal="false" @close="handleDialogClose">
<el-dialog title="导入员" :visible.sync="dialogVisible" width="480px" :destroy-on-close="true" :close-on-click-modal="false" @close="handleDialogClose">
<el-upload
class="file-import"
ref="upload"
......@@ -231,10 +231,10 @@ export default {
}
},
fetchFileUpload(data) {
console.log(data)
const formData = new window.FormData()
formData.append('file', data.file)
importStudents(this.selectedActivity.id, formData).then(res => {
console.log(res)
if (res.code === 0 && res.data && res.data.status) {
this.$message.success('导入数据成功')
this.handleRefreshList()
......
......@@ -18,6 +18,13 @@
<el-option label="未签到" :value="0"></el-option>
</el-select>
</template>
<!-- table 列 -->
<template v-slot:table-remark="{ row }">
<p class="table-remark-col">
<span>{{row.remark}}</span>
<i class="el-icon-edit" @click="handleRemarkEdit(row)"></i>
</p>
</template>
<template #footer>
<div style="font-size:14px;">
已选中 {{multipleSelection.length}}
......@@ -60,11 +67,18 @@
<el-button type="primary" size="mini" @click="submitUpload">确认提交</el-button>
</div>
</el-dialog>
<el-dialog title="编辑备注" :visible.sync="remarkDialogVisible" width="480px" append-to-body :close-on-click-modal="false">
<el-input type="textarea" :rows="3" placeholder="请输入备注" v-model="form.remark" />
<div style="text-align:center;margin-top:15px;">
<el-button size="mini" @click="remarkDialogVisible = false">取消</el-button>
<el-button type="primary" size="mini" @click="fetchUpdate">确认提交</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import AppList from '@/components/base/AppList.vue'
import { getStudentList, batchDeleteStudents, batchSignin, exportStudents, importStudents } from '../../api'
import { getStudentList, batchDeleteStudents, batchSignin, exportStudents, importStudents, updateStudentInfo } from '../../api'
import { splitStrLast, funDownload } from '@/utils/util'
import XLSX from 'xlsx'
export default {
......@@ -80,7 +94,12 @@ export default {
multipleSelection: [],
dialogVisible: false,
fileList: [],
importDisabled: false
importDisabled: false,
remarkDialogVisible: false,
selectedId: '',
form: {
remark: ''
}
}
},
computed: {
......@@ -104,7 +123,7 @@ export default {
{ prop: 'company_name', label: '公司名称', minWidth: '140px' },
{ prop: 'position', label: '职务', minWidth: '80px' },
{ prop: 'age', label: '年龄', minWidth: '50px' },
{ prop: 'remark', label: '备注', minWidth: '160px', 'show-overflow-tooltip': true },
{ prop: 'remark', label: '备注', minWidth: '160px', slots: 'table-remark' },
{
prop: 'sign_in_status',
label: '签到状态',
......@@ -143,6 +162,12 @@ export default {
this.fetchBatchDeleteStudents()
}).catch(() => {})
},
handleRemarkEdit(val) {
console.log(val)
this.remarkDialogVisible = true
this.form.remark = val.remark
this.selectedId = val.id
},
handleImport() {
this.dialogVisible = true
},
......@@ -260,6 +285,20 @@ export default {
funDownload(url, `学员列表_${Date.now()}.xlsx`)
}
})
},
fetchUpdate() {
const params = {
remark: this.form.remark
}
updateStudentInfo(this.selectedId, params).then(res => {
if (res.code === 0 && res.data && res.data.status) {
this.$message.success('编辑备注成功')
this.$refs.appList.refetch(true)
this.remarkDialogVisible = false
} else {
this.$message.error('编辑备注失败')
}
})
}
}
}
......@@ -268,4 +307,23 @@ export default {
.person-list{
padding:15px 20px;
}
.table-remark-col{
display:flex;
}
.table-remark-col span{
flex:1;
display: inline-block;
overflow: hidden;
text-overflow: ellipsis;
cursor:pointer;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
.table-remark-col i{
color:#3276fc;
font-size:16px;
cursor:pointer;
margin-top:6px;
}
</style>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论