parent
fd24f914f7
commit
2c0bc99c03
@ -0,0 +1,51 @@ |
|||||||
|
/* |
||||||
|
* @Author: riverQiu |
||||||
|
* @Date: 2023-10-07 17:14:32 |
||||||
|
* @LastEditors: riverQiu |
||||||
|
* @LastEditTime: 2023-10-07 18:02:01 |
||||||
|
* @Description:教练接口 |
||||||
|
*/ |
||||||
|
import request from '@/utils/request'; |
||||||
|
|
||||||
|
// 查询教练列表
|
||||||
|
export function listCoach(query) { |
||||||
|
return request({ |
||||||
|
url: '/sch/coach/list', |
||||||
|
method: 'get', |
||||||
|
params: query |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
// 查询教练详细
|
||||||
|
export function getCoach(coachId) { |
||||||
|
return request({ |
||||||
|
url: '/sch/coach/' + coachId, |
||||||
|
method: 'get' |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
// 新增教练
|
||||||
|
export function addCoach(data) { |
||||||
|
return request({ |
||||||
|
url: '/sch/coach', |
||||||
|
method: 'post', |
||||||
|
data: data |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
// 修改教练
|
||||||
|
export function updateCoach(data) { |
||||||
|
return request({ |
||||||
|
url: '/sch/coach', |
||||||
|
method: 'put', |
||||||
|
data: data |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
// 删除教练
|
||||||
|
export function delCoach(coachId) { |
||||||
|
return request({ |
||||||
|
url: '/sch/coach/' + coachId, |
||||||
|
method: 'delete' |
||||||
|
}); |
||||||
|
} |
@ -0,0 +1,51 @@ |
|||||||
|
/* |
||||||
|
* @Author: riverQiu |
||||||
|
* @Date: 2023-10-07 17:14:38 |
||||||
|
* @LastEditors: riverQiu |
||||||
|
* @LastEditTime: 2023-10-07 17:14:44 |
||||||
|
* @Description: 线索反馈接口 |
||||||
|
*/ |
||||||
|
import request from '@/utils/request'; |
||||||
|
|
||||||
|
// 查询线索反馈列表
|
||||||
|
export function listFeedback(query) { |
||||||
|
return request({ |
||||||
|
url: '/zs/feedback/list', |
||||||
|
method: 'get', |
||||||
|
params: query |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
// 查询线索反馈详细
|
||||||
|
export function getFeedback(feedbackId) { |
||||||
|
return request({ |
||||||
|
url: '/zs/feedback/' + feedbackId, |
||||||
|
method: 'get' |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
// 新增线索反馈
|
||||||
|
export function addFeedback(data) { |
||||||
|
return request({ |
||||||
|
url: '/zs/feedback', |
||||||
|
method: 'post', |
||||||
|
data: data |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
// 修改线索反馈
|
||||||
|
export function updateFeedback(data) { |
||||||
|
return request({ |
||||||
|
url: '/zs/feedback', |
||||||
|
method: 'put', |
||||||
|
data: data |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
// 删除线索反馈
|
||||||
|
export function delFeedback(feedbackId) { |
||||||
|
return request({ |
||||||
|
url: '/zs/feedback/' + feedbackId, |
||||||
|
method: 'delete' |
||||||
|
}); |
||||||
|
} |
@ -0,0 +1,135 @@ |
|||||||
|
|
||||||
|
<template> |
||||||
|
<el-dialog title="教练信息" :close-on-click-modal="false" append-to-body :visible.sync="visible" width="600px" @close="closeDialog"> |
||||||
|
<div> |
||||||
|
<el-form ref="dialogForm" :model="dialogForm" :rules="dataRule" label-position="top" @keyup.enter.native="dialogFormSubmit()"> |
||||||
|
<el-form-item label="所属驾校" prop="schoolId"> |
||||||
|
<el-select v-model="dialogForm.schoolId" filterable placeholder="请选择" value-key="schoolId" clearable size="small" style="width:100%"> |
||||||
|
<el-option v-for="(dict, index) in schoolOptions" :key="index" :label="dict.schoolName" :value="dict.schoolId" /> |
||||||
|
</el-select> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="所属场地" prop="placeId"> |
||||||
|
<el-select v-model="dialogForm.placeId" filterable placeholder="请选择" clearable value-key="placeId" size="small" style="width:100%"> |
||||||
|
<el-option v-for="(dict, index) in placeOptions.filter(item => item.schoolId === dialogForm.schoolId)" :key="index" :label="dict.name" :value="dict.placeId" /> |
||||||
|
</el-select> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="教练名" prop="coachName"> |
||||||
|
<el-input v-model="dialogForm.coachName" placeholder="请输入教练名" /> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="联系方式" prop="phone"> |
||||||
|
<el-input v-model="dialogForm.phone" placeholder="请输入联系方式" /> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="微信openid" prop="openId"> |
||||||
|
<el-input v-model="dialogForm.openId" placeholder="请输入微信openid" /> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
|
||||||
|
</div> |
||||||
|
<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 { addCoach, updateCoach } from '@/api/sch/coach'; |
||||||
|
|
||||||
|
export default { |
||||||
|
props: { |
||||||
|
schoolOptions: { |
||||||
|
type: Array, |
||||||
|
default: [] |
||||||
|
}, |
||||||
|
placeOptions: { |
||||||
|
type: Array, |
||||||
|
default: [] |
||||||
|
} |
||||||
|
}, |
||||||
|
data () { |
||||||
|
return { |
||||||
|
visible: false, |
||||||
|
canSubmit: true, |
||||||
|
dialogForm: { |
||||||
|
coachId: null, |
||||||
|
deptId: null, |
||||||
|
schoolId: null, |
||||||
|
placeId: null, |
||||||
|
coachName: null, |
||||||
|
phone: null, |
||||||
|
openId: null |
||||||
|
}, |
||||||
|
dataRule: { |
||||||
|
schoolId: [{ required: true, message: '所属驾校不能为空', trigger: 'blur' }], |
||||||
|
coachName: [{ required: true, message: '教练名不能为空', trigger: 'blur' }], |
||||||
|
phone: [{ required: true, message: '联系方式不能为空', trigger: 'blur' }] |
||||||
|
|
||||||
|
} |
||||||
|
}; |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
init (info = undefined) { |
||||||
|
// debugger |
||||||
|
this.visible = true; |
||||||
|
this.$nextTick(() => { |
||||||
|
this.resetDialogForm(); |
||||||
|
this.$refs['dialogForm'].resetFields(); |
||||||
|
if (info) { |
||||||
|
this.dialogForm = this.deepClone(info); |
||||||
|
} |
||||||
|
}); |
||||||
|
}, |
||||||
|
resetDialogForm () { |
||||||
|
this.dialogForm = { |
||||||
|
coachId: null, |
||||||
|
deptId: null, |
||||||
|
schoolId: null, |
||||||
|
placeId: null, |
||||||
|
coachName: null, |
||||||
|
phone: null, |
||||||
|
openId: null |
||||||
|
}; |
||||||
|
}, |
||||||
|
closeDialog () { |
||||||
|
this.$emit('update:dialogVisible', false); |
||||||
|
}, |
||||||
|
// 表单提交 |
||||||
|
dialogFormSubmit () { |
||||||
|
this.$refs.dialogForm.validate((valid) => { |
||||||
|
if (valid) { |
||||||
|
this.canSubmit = false; |
||||||
|
|
||||||
|
if (this.dialogForm.coachId) { |
||||||
|
// 校验完成,调接口 |
||||||
|
updateCoach(this.dialogForm) |
||||||
|
.then((resp) => { |
||||||
|
this.canSubmit = true; |
||||||
|
if (resp.code == 200) { |
||||||
|
this.$message.success('保存成功'); |
||||||
|
this.$emit('refreshDataList'); |
||||||
|
this.visible = false; |
||||||
|
} |
||||||
|
}) |
||||||
|
.catch(() => { |
||||||
|
this.canSubmit = true; |
||||||
|
}); |
||||||
|
} else { |
||||||
|
addCoach(this.dialogForm) |
||||||
|
.then((resp) => { |
||||||
|
this.canSubmit = true; |
||||||
|
if (resp.code == 200) { |
||||||
|
this.$message.success('保存成功'); |
||||||
|
this.$emit('refreshDataList'); |
||||||
|
this.visible = false; |
||||||
|
} |
||||||
|
}) |
||||||
|
.catch(() => { |
||||||
|
this.canSubmit = true; |
||||||
|
}); |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
|
} |
||||||
|
}; |
||||||
|
</script> |
@ -0,0 +1,159 @@ |
|||||||
|
<template> |
||||||
|
<div class="app-container"> |
||||||
|
<el-form v-show="showSearch" ref="queryForm" :model="queryParams" size="small" :inline="true" label-width="68px"> |
||||||
|
<el-form-item label="所属驾校" prop="schoolId"> |
||||||
|
<el-select v-model="queryParams.schoolId" filterable placeholder="请选择" value-key="schoolId" clearable size="small"> |
||||||
|
<el-option v-for="(dict, index) in schoolOptions" :key="index" :label="dict.schoolName" :value="dict.schoolId" /> |
||||||
|
</el-select> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="所属场地" prop="placeId"> |
||||||
|
<el-select v-model="queryParams.placeId" filterable placeholder="请选择" clearable value-key="placeId" size="small"> |
||||||
|
<el-option v-for="(dict, index) in placeOptions.filter(item => item.schoolId === queryParams.schoolId)" :key="index" :label="dict.name" :value="dict.placeId" /> |
||||||
|
</el-select> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="教练名" prop="coachName"> |
||||||
|
<el-input v-model="queryParams.coachName" placeholder="请输入教练名" clearable @keyup.enter.native="handleQuery" /> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="联系方式" prop="phone"> |
||||||
|
<el-input v-model="queryParams.phone" placeholder="请输入联系方式" clearable @keyup.enter.native="handleQuery" /> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item> |
||||||
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
|
||||||
|
<el-row :gutter="10" class="mb8"> |
||||||
|
<el-col :span="1.5"> |
||||||
|
<el-button v-hasPermi="['sch:coach:add']" type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddAndUpdate(undefined)">新增</el-button> |
||||||
|
</el-col> |
||||||
|
<right-toolbar :show-search.sync="showSearch" @queryTable="getList" /> |
||||||
|
</el-row> |
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="coachList"> |
||||||
|
<el-table-column type="index" width="55" align="center" /> |
||||||
|
<el-table-column label="所属驾校" align="center" prop="schoolName" /> |
||||||
|
<el-table-column label="所属场地" align="center" prop="placeName" /> |
||||||
|
<el-table-column label="教练名" align="center" prop="coachName" /> |
||||||
|
<el-table-column label="联系方式" align="center" prop="phone" /> |
||||||
|
<el-table-column label="微信openid" align="center" prop="openId" /> |
||||||
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
||||||
|
<template slot-scope="scope"> |
||||||
|
<el-button v-hasPermi="['sch:coach:edit']" size="mini" type="text" icon="el-icon-edit" @click="handleAddAndUpdate(scope.row)">修改</el-button> |
||||||
|
<el-button v-hasPermi="['sch:coach:remove']" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
</el-table> |
||||||
|
|
||||||
|
<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> |
||||||
|
|
||||||
|
<!-- 添加或修改教练对话框 --> |
||||||
|
<coach-form v-if="dialogVisible" ref="dialogForm" :dialog-visible="dialogVisible" :school-options="schoolOptions" :place-options="placeOptions" @refreshDataList="getList" /> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
import { listCoach, getCoach, delCoach } from '@/api/sch/coach'; |
||||||
|
import CoachForm from './components/CoachForm.vue'; |
||||||
|
import schoolAPi from '@/api/sch/school'; |
||||||
|
import { getAllPlaces } from '@/api/sch/place'; |
||||||
|
|
||||||
|
export default { |
||||||
|
name: 'Coach', |
||||||
|
components: { CoachForm }, |
||||||
|
data () { |
||||||
|
return { |
||||||
|
// 遮罩层 |
||||||
|
loading: true, |
||||||
|
// 选中数组 |
||||||
|
ids: [], |
||||||
|
// 非单个禁用 |
||||||
|
single: true, |
||||||
|
// 非多个禁用 |
||||||
|
multiple: true, |
||||||
|
// 显示搜索条件 |
||||||
|
showSearch: true, |
||||||
|
// 总条数 |
||||||
|
total: 0, |
||||||
|
// 教练表格数据 |
||||||
|
coachList: [], |
||||||
|
// 查询参数 |
||||||
|
queryParams: { |
||||||
|
pageNum: 1, |
||||||
|
pageSize: 10, |
||||||
|
schoolId: null, |
||||||
|
placeId: null, |
||||||
|
coachName: null, |
||||||
|
phone: null |
||||||
|
}, |
||||||
|
dialogVisible: false, |
||||||
|
schoolOptions: [], |
||||||
|
placeOptions: [] |
||||||
|
}; |
||||||
|
}, |
||||||
|
created () { |
||||||
|
this.getSchools(); |
||||||
|
this.getPlaces(); |
||||||
|
this.getList(); |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
/** 查询教练列表 */ |
||||||
|
getList () { |
||||||
|
this.loading = true; |
||||||
|
listCoach(this.queryParams).then(response => { |
||||||
|
this.coachList = response.rows; |
||||||
|
this.total = response.total; |
||||||
|
this.loading = false; |
||||||
|
}); |
||||||
|
}, |
||||||
|
// 取消按钮 |
||||||
|
cancel () { |
||||||
|
this.open = false; |
||||||
|
this.reset(); |
||||||
|
}, |
||||||
|
/** 搜索按钮操作 */ |
||||||
|
handleQuery () { |
||||||
|
this.queryParams.pageNum = 1; |
||||||
|
this.getList(); |
||||||
|
}, |
||||||
|
/** 重置按钮操作 */ |
||||||
|
resetQuery () { |
||||||
|
this.resetForm('queryForm'); |
||||||
|
this.handleQuery(); |
||||||
|
}, |
||||||
|
/** 新增或修改按钮操作 */ |
||||||
|
handleAddAndUpdate (item) { |
||||||
|
this.dialogVisible = true; |
||||||
|
this.$nextTick(() => { |
||||||
|
this.$refs.dialogForm.init(item); |
||||||
|
}); |
||||||
|
}, |
||||||
|
/** 删除按钮操作 */ |
||||||
|
handleDelete (row) { |
||||||
|
const coachIds = row.coachId || this.ids; |
||||||
|
this.$modal.confirm('是否确认删除教练编号为"' + coachIds + '"的数据项?').then(function () { |
||||||
|
return delCoach(coachIds); |
||||||
|
}).then(() => { |
||||||
|
this.getList(); |
||||||
|
this.$modal.msgSuccess('删除成功'); |
||||||
|
}).catch(() => { }); |
||||||
|
}, |
||||||
|
/** 导出按钮操作 */ |
||||||
|
handleExport () { |
||||||
|
this.download('system/coach/export', { |
||||||
|
...this.queryParams |
||||||
|
}, `coach_${new Date().getTime()}.xlsx`); |
||||||
|
}, |
||||||
|
getSchools () { |
||||||
|
schoolAPi.allList().then((resp) => { |
||||||
|
this.schoolOptions = resp.data; |
||||||
|
}); |
||||||
|
}, |
||||||
|
getPlaces () { |
||||||
|
getAllPlaces({ status: '0', showInMap: true }).then((resp) => { |
||||||
|
this.placeOptions = resp.data; |
||||||
|
}); |
||||||
|
} |
||||||
|
} |
||||||
|
}; |
||||||
|
</script> |
@ -0,0 +1,253 @@ |
|||||||
|
<template> |
||||||
|
<div class="app-container"> |
||||||
|
<el-form v-show="showSearch" ref="queryForm" :model="queryParams" size="small" :inline="true" label-width="68px"> |
||||||
|
<el-form-item label="线索id" prop="clueId"> |
||||||
|
<el-input v-model="queryParams.clueId" placeholder="请输入线索id" clearable @keyup.enter.native="handleQuery" /> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="教练id" prop="coachId"> |
||||||
|
<el-input v-model="queryParams.coachId" placeholder="请输入教练id" clearable @keyup.enter.native="handleQuery" /> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="反馈时间" prop="feedbackTime"> |
||||||
|
<el-date-picker v-model="queryParams.feedbackTime" clearable type="date" value-format="yyyy-MM-dd" placeholder="请选择反馈时间" /> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="是否联系" prop="isContact"> |
||||||
|
<el-input v-model="queryParams.isContact" placeholder="请输入是否联系" clearable @keyup.enter.native="handleQuery" /> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="到场时间" prop="arrivalTime"> |
||||||
|
<el-date-picker v-model="queryParams.arrivalTime" clearable type="date" value-format="yyyy-MM-dd" placeholder="请选择到场时间" /> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item> |
||||||
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
|
||||||
|
<el-row :gutter="10" class="mb8"> |
||||||
|
<el-col :span="1.5"> |
||||||
|
<el-button v-hasPermi="['system:feedback:add']" type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button> |
||||||
|
</el-col> |
||||||
|
<el-col :span="1.5"> |
||||||
|
<el-button v-hasPermi="['system:feedback:edit']" type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate">修改</el-button> |
||||||
|
</el-col> |
||||||
|
<el-col :span="1.5"> |
||||||
|
<el-button v-hasPermi="['system:feedback:remove']" type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete">删除</el-button> |
||||||
|
</el-col> |
||||||
|
<el-col :span="1.5"> |
||||||
|
<el-button v-hasPermi="['system:feedback:export']" type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出</el-button> |
||||||
|
</el-col> |
||||||
|
<right-toolbar :show-search.sync="showSearch" @queryTable="getList" /> |
||||||
|
</el-row> |
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="feedbackList" @selection-change="handleSelectionChange"> |
||||||
|
<el-table-column type="selection" width="55" align="center" /> |
||||||
|
<el-table-column label="${comment}" align="center" prop="feedbackId" /> |
||||||
|
<el-table-column label="线索id" align="center" prop="clueId" /> |
||||||
|
<el-table-column label="反馈类型 1 跟进反馈 2 到场负反馈" align="center" prop="feedbackType" /> |
||||||
|
<el-table-column label="教练id" align="center" prop="coachId" /> |
||||||
|
<el-table-column label="反馈内容" align="center" prop="content" /> |
||||||
|
<el-table-column label="反馈时间" align="center" prop="feedbackTime" width="180"> |
||||||
|
<template slot-scope="scope"> |
||||||
|
<span>{{ parseTime(scope.row.feedbackTime, '{y}-{m}-{d}') }}</span> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
<el-table-column label="是否联系" align="center" prop="isContact" /> |
||||||
|
<el-table-column label="到场时间" align="center" prop="arrivalTime" width="180"> |
||||||
|
<template slot-scope="scope"> |
||||||
|
<span>{{ parseTime(scope.row.arrivalTime, '{y}-{m}-{d}') }}</span> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
<el-table-column label="到场状态" align="center" prop="arrivalStatus" /> |
||||||
|
<el-table-column label="备注" align="center" prop="remark" /> |
||||||
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
||||||
|
<template slot-scope="scope"> |
||||||
|
<el-button v-hasPermi="['system:feedback:edit']" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button> |
||||||
|
<el-button v-hasPermi="['system:feedback:remove']" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
</el-table> |
||||||
|
|
||||||
|
<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> |
||||||
|
|
||||||
|
<!-- 添加或修改线索反馈对话框 --> |
||||||
|
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> |
||||||
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
||||||
|
<el-form-item label="线索id" 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="反馈内容"> |
||||||
|
<editor v-model="form.content" :min-height="192" /> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="反馈时间" prop="feedbackTime"> |
||||||
|
<el-date-picker v-model="form.feedbackTime" clearable type="date" value-format="yyyy-MM-dd" placeholder="请选择反馈时间" /> |
||||||
|
</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> |
||||||
|
</el-dialog> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
import { listFeedback, getFeedback, delFeedback, addFeedback, updateFeedback } from '@/api/zs/feedback'; |
||||||
|
|
||||||
|
export default { |
||||||
|
name: 'Feedback', |
||||||
|
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