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

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

上级 ed435de5
...@@ -71,4 +71,10 @@ export function batchDeleteStudents(data) { ...@@ -71,4 +71,10 @@ export function batchDeleteStudents(data) {
*/ */
export function batchSignin(data) { export function batchSignin(data) {
return httpRequest.post('/api/marketing/admin/v1/activity/students/sign-in', 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 @@ ...@@ -29,7 +29,7 @@
<div class="sign-item-bd-content"> <div class="sign-item-bd-content">
<p>名单人数:{{ item.student_count }}<span style="margin-left:30px;">签到人数:{{ item.student_sign_count }}</span></p> <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.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.address }}</p>
<p>创建时间:{{ item.created_at }}</p> <p>创建时间:{{ item.created_at }}</p>
</div> </div>
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
@close="handleClose"> @close="handleClose">
<person-list :id="selectedActivity.id" /> <person-list :id="selectedActivity.id" />
</el-drawer> </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 <el-upload
class="file-import" class="file-import"
ref="upload" ref="upload"
...@@ -231,10 +231,10 @@ export default { ...@@ -231,10 +231,10 @@ export default {
} }
}, },
fetchFileUpload(data) { fetchFileUpload(data) {
console.log(data)
const formData = new window.FormData() const formData = new window.FormData()
formData.append('file', data.file) formData.append('file', data.file)
importStudents(this.selectedActivity.id, formData).then(res => { importStudents(this.selectedActivity.id, formData).then(res => {
console.log(res)
if (res.code === 0 && res.data && res.data.status) { if (res.code === 0 && res.data && res.data.status) {
this.$message.success('导入数据成功') this.$message.success('导入数据成功')
this.handleRefreshList() this.handleRefreshList()
......
...@@ -18,6 +18,13 @@ ...@@ -18,6 +18,13 @@
<el-option label="未签到" :value="0"></el-option> <el-option label="未签到" :value="0"></el-option>
</el-select> </el-select>
</template> </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> <template #footer>
<div style="font-size:14px;"> <div style="font-size:14px;">
已选中 {{multipleSelection.length}} 已选中 {{multipleSelection.length}}
...@@ -60,11 +67,18 @@ ...@@ -60,11 +67,18 @@
<el-button type="primary" size="mini" @click="submitUpload">确认提交</el-button> <el-button type="primary" size="mini" @click="submitUpload">确认提交</el-button>
</div> </div>
</el-dialog> </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> </div>
</template> </template>
<script> <script>
import AppList from '@/components/base/AppList.vue' 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 { splitStrLast, funDownload } from '@/utils/util'
import XLSX from 'xlsx' import XLSX from 'xlsx'
export default { export default {
...@@ -80,7 +94,12 @@ export default { ...@@ -80,7 +94,12 @@ export default {
multipleSelection: [], multipleSelection: [],
dialogVisible: false, dialogVisible: false,
fileList: [], fileList: [],
importDisabled: false importDisabled: false,
remarkDialogVisible: false,
selectedId: '',
form: {
remark: ''
}
} }
}, },
computed: { computed: {
...@@ -104,7 +123,7 @@ export default { ...@@ -104,7 +123,7 @@ export default {
{ prop: 'company_name', label: '公司名称', minWidth: '140px' }, { prop: 'company_name', label: '公司名称', minWidth: '140px' },
{ prop: 'position', label: '职务', minWidth: '80px' }, { prop: 'position', label: '职务', minWidth: '80px' },
{ prop: 'age', label: '年龄', minWidth: '50px' }, { 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', prop: 'sign_in_status',
label: '签到状态', label: '签到状态',
...@@ -143,6 +162,12 @@ export default { ...@@ -143,6 +162,12 @@ export default {
this.fetchBatchDeleteStudents() this.fetchBatchDeleteStudents()
}).catch(() => {}) }).catch(() => {})
}, },
handleRemarkEdit(val) {
console.log(val)
this.remarkDialogVisible = true
this.form.remark = val.remark
this.selectedId = val.id
},
handleImport() { handleImport() {
this.dialogVisible = true this.dialogVisible = true
}, },
...@@ -260,6 +285,20 @@ export default { ...@@ -260,6 +285,20 @@ export default {
funDownload(url, `学员列表_${Date.now()}.xlsx`) 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 { ...@@ -268,4 +307,23 @@ export default {
.person-list{ .person-list{
padding:15px 20px; 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> </style>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论