caozong
parent
2c0bc99c03
commit
6c71bccd83
@ -0,0 +1,116 @@ |
||||
<template> |
||||
<el-dialog title="分发" :close-on-click-modal="false" append-to-body :visible.sync="visible" width="600px" @close="closeDialog"> |
||||
<el-form ref="dialogForm" :model="dialogForm" :rules="rules" label-width="110px"> |
||||
<el-row> |
||||
<el-col :span="24"> |
||||
<el-form-item label="场地" prop="newPlaceList"> |
||||
<span v-if="oldForm.placeNames">{{oldForm.placeNames}}</span> |
||||
|
||||
<el-select v-model="dialogForm.newPlaceList" filterable multiple placeholder="请选择" clearable style="width: 100%;"> |
||||
<el-option v-for="dict in placeOptions" :key="dict.placeId" :label="dict.name" :value="dict.placeId" /> |
||||
</el-select> |
||||
</el-form-item> |
||||
</el-col> |
||||
</el-row> |
||||
</el-form> |
||||
<span slot="footer" class="dialog-footer"> |
||||
<el-button plain @click="(visible = false)">取消</el-button> |
||||
<el-button v-jclick type="primary" :disabled="!canSubmit" @click="dialogFormSubmit()">确定</el-button> |
||||
</span> |
||||
</el-dialog> |
||||
</template> |
||||
<script> |
||||
import { getCluePlaceList, saveCluePlace } from '@/api/zs/clue'; |
||||
import { getAllPlaces } from '@/api/sch/place'; |
||||
|
||||
export default { |
||||
name: 'DistributeFormDialog', |
||||
|
||||
data() { |
||||
return { |
||||
visible: false, |
||||
canSubmit: true, |
||||
dialogForm: {}, |
||||
oldForm: {}, |
||||
rules: { |
||||
newPlaceList: { |
||||
required: true, |
||||
message: '场地不能为空不能为空', |
||||
trigger: 'blur' |
||||
} |
||||
}, |
||||
placeOptions: [] |
||||
}; |
||||
}, |
||||
methods: { |
||||
init(info = undefined) { |
||||
this.getPlaces() |
||||
this.visible = true; |
||||
this.$nextTick(() => { |
||||
this.resetDialogForm(); |
||||
this.$refs['dialogForm'].resetFields(); |
||||
if (info) { |
||||
|
||||
this.dialogForm.clueId = info; |
||||
//查询该线索的分发情况 |
||||
this.getDistributePlaces(info); |
||||
} |
||||
}); |
||||
}, |
||||
resetDialogForm() { |
||||
this.dialogForm = { |
||||
oldPlaceList: [], |
||||
newPlaceList: [], |
||||
placeIdList: [], |
||||
clueId: undefined |
||||
}; |
||||
this.oldForm = {} |
||||
}, |
||||
closeDialog() { |
||||
this.$emit('update:dialog.batchUpdateVisible', false); |
||||
}, |
||||
getDistributePlaces(clueId) { |
||||
getCluePlaceList({ clueId: clueId }).then(resp => { |
||||
if (resp.code == 200) { |
||||
this.oldForm = resp.data |
||||
this.dialogForm.oldPlaceList = this.oldForm.placeIdList; |
||||
if (this.oldForm.placeIdList && this.oldForm.placeIdList) { |
||||
this.placeOptions = this.placeOptions.filter(item => this.oldForm.placeIdList.indexOf(item.placeId) == -1) |
||||
} |
||||
} |
||||
|
||||
}) |
||||
}, |
||||
// 表单提交 |
||||
dialogFormSubmit() { |
||||
this.$refs.dialogForm.validate((valid) => { |
||||
if (valid) { |
||||
this.canSubmit = false; |
||||
this.dialogForm.placeIdList = this.dialogForm.oldPlaceList.concat(this.dialogForm.newPlaceList) |
||||
// 校验完成,调接口 |
||||
saveCluePlace(this.dialogForm) |
||||
.then((resp) => { |
||||
this.canSubmit = true; |
||||
if (resp.code == 200) { |
||||
this.$message.success('分发成功'); |
||||
this.$emit('refreshDataList'); |
||||
this.visible = false; |
||||
} |
||||
}) |
||||
.catch(() => { |
||||
this.canSubmit = true; |
||||
}); |
||||
} |
||||
}); |
||||
}, |
||||
getPlaces() { |
||||
getAllPlaces({ status: '0' }).then((resp) => { |
||||
this.placeOptions = resp.data; |
||||
|
||||
}); |
||||
}, |
||||
} |
||||
}; |
||||
</script> |
||||
|
||||
|
@ -0,0 +1,180 @@ |
||||
<template> |
||||
<div class="app-container" style="width:90%;margin:auto;"> |
||||
<!-- 添加或修改线索反馈对话框 --> |
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
||||
<el-form-item label="学员姓名" prop="clueId"> |
||||
<el-input v-model="form.clueId" placeholder="请输入线索id" /> |
||||
</el-form-item> |
||||
<el-form-item label="联系方式" prop="clueId"> |
||||
<el-input v-model="form.clueId" placeholder="请输入线索id" /> |
||||
</el-form-item> |
||||
<el-form-item label="教练id" prop="coachId"> |
||||
<el-input v-model="form.coachId" placeholder="请输入教练id" /> |
||||
</el-form-item> |
||||
<el-form-item label="是否联系" prop="isContact"> |
||||
<el-input v-model="form.isContact" placeholder="请输入是否联系" /> |
||||
</el-form-item> |
||||
<el-form-item label="到场时间" prop="arrivalTime"> |
||||
<el-date-picker v-model="form.arrivalTime" clearable type="date" value-format="yyyy-MM-dd" placeholder="请选择到场时间" /> |
||||
</el-form-item> |
||||
<el-form-item label="备注" prop="remark"> |
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" /> |
||||
</el-form-item> |
||||
</el-form> |
||||
<div slot="footer" class="dialog-footer"> |
||||
<el-button type="primary" @click="submitForm">确 定</el-button> |
||||
<el-button @click="cancel">取 消</el-button> |
||||
</div> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
import { addFeedback, updateFeedback } from '@/api/zs/feedback'; |
||||
|
||||
export default { |
||||
name: 'First', |
||||
data () { |
||||
return { |
||||
// 遮罩层 |
||||
loading: true, |
||||
// 选中数组 |
||||
ids: [], |
||||
// 非单个禁用 |
||||
single: true, |
||||
// 非多个禁用 |
||||
multiple: true, |
||||
// 显示搜索条件 |
||||
showSearch: true, |
||||
// 总条数 |
||||
total: 0, |
||||
// 线索反馈表格数据 |
||||
feedbackList: [], |
||||
// 弹出层标题 |
||||
title: '', |
||||
// 是否显示弹出层 |
||||
open: false, |
||||
// 查询参数 |
||||
queryParams: { |
||||
pageNum: 1, |
||||
pageSize: 10, |
||||
clueId: null, |
||||
feedbackType: null, |
||||
coachId: null, |
||||
content: null, |
||||
feedbackTime: null, |
||||
isContact: null, |
||||
arrivalTime: null, |
||||
arrivalStatus: null |
||||
}, |
||||
// 表单参数 |
||||
form: {}, |
||||
// 表单校验 |
||||
rules: { |
||||
} |
||||
}; |
||||
}, |
||||
created () { |
||||
this.getList(); |
||||
}, |
||||
methods: { |
||||
/** 查询线索反馈列表 */ |
||||
getList () { |
||||
this.loading = true; |
||||
listFeedback(this.queryParams).then(response => { |
||||
this.feedbackList = response.rows; |
||||
this.total = response.total; |
||||
this.loading = false; |
||||
}); |
||||
}, |
||||
// 取消按钮 |
||||
cancel () { |
||||
this.open = false; |
||||
this.reset(); |
||||
}, |
||||
// 表单重置 |
||||
reset () { |
||||
this.form = { |
||||
feedbackId: null, |
||||
clueId: null, |
||||
feedbackType: null, |
||||
coachId: null, |
||||
content: null, |
||||
feedbackTime: null, |
||||
isContact: null, |
||||
arrivalTime: null, |
||||
arrivalStatus: 0, |
||||
remark: null |
||||
}; |
||||
this.resetForm('form'); |
||||
}, |
||||
/** 搜索按钮操作 */ |
||||
handleQuery () { |
||||
this.queryParams.pageNum = 1; |
||||
this.getList(); |
||||
}, |
||||
/** 重置按钮操作 */ |
||||
resetQuery () { |
||||
this.resetForm('queryForm'); |
||||
this.handleQuery(); |
||||
}, |
||||
// 多选框选中数据 |
||||
handleSelectionChange (selection) { |
||||
this.ids = selection.map(item => item.feedbackId); |
||||
this.single = selection.length !== 1; |
||||
this.multiple = !selection.length; |
||||
}, |
||||
/** 新增按钮操作 */ |
||||
handleAdd () { |
||||
this.reset(); |
||||
this.open = true; |
||||
this.title = '添加线索反馈'; |
||||
}, |
||||
/** 修改按钮操作 */ |
||||
handleUpdate (row) { |
||||
this.reset(); |
||||
const feedbackId = row.feedbackId || this.ids; |
||||
getFeedback(feedbackId).then(response => { |
||||
this.form = response.data; |
||||
this.open = true; |
||||
this.title = '修改线索反馈'; |
||||
}); |
||||
}, |
||||
/** 提交按钮 */ |
||||
submitForm () { |
||||
this.$refs['form'].validate(valid => { |
||||
if (valid) { |
||||
if (this.form.feedbackId != null) { |
||||
updateFeedback(this.form).then(response => { |
||||
this.$modal.msgSuccess('修改成功'); |
||||
this.open = false; |
||||
this.getList(); |
||||
}); |
||||
} else { |
||||
addFeedback(this.form).then(response => { |
||||
this.$modal.msgSuccess('新增成功'); |
||||
this.open = false; |
||||
this.getList(); |
||||
}); |
||||
} |
||||
} |
||||
}); |
||||
}, |
||||
/** 删除按钮操作 */ |
||||
handleDelete (row) { |
||||
const feedbackIds = row.feedbackId || this.ids; |
||||
this.$modal.confirm('是否确认删除线索反馈编号为"' + feedbackIds + '"的数据项?').then(function () { |
||||
return delFeedback(feedbackIds); |
||||
}).then(() => { |
||||
this.getList(); |
||||
this.$modal.msgSuccess('删除成功'); |
||||
}).catch(() => { }); |
||||
}, |
||||
/** 导出按钮操作 */ |
||||
handleExport () { |
||||
this.download('system/feedback/export', { |
||||
...this.queryParams |
||||
}, `feedback_${new Date().getTime()}.xlsx`); |
||||
} |
||||
} |
||||
}; |
||||
</script> |
Loading…
Reference in new issue