分发
This commit is contained in:
@@ -16,7 +16,7 @@ NProgress.configure({
|
||||
showSpinner: false
|
||||
});
|
||||
|
||||
const whiteList = ['/login', '/auth-redirect', '/bind', '/register', '/question'];
|
||||
const whiteList = ['/login', '/auth-redirect', '/bind', '/register', '/question', '/clue/feedback'];
|
||||
|
||||
router.beforeEach((to, from, next) => {
|
||||
NProgress.start();
|
||||
|
||||
@@ -53,6 +53,11 @@ export const constantRoutes = [{
|
||||
component: () => import('@/views/question'),
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '/clue/feedback',
|
||||
component: () => import('@/views/zs/feedback/first'),
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '/404',
|
||||
component: () => import('@/views/error/404'),
|
||||
|
||||
@@ -81,7 +81,7 @@ export default {
|
||||
components: {
|
||||
QuestionForm, QuestionAddForm
|
||||
},
|
||||
data() {
|
||||
data () {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: false,
|
||||
@@ -98,12 +98,12 @@ export default {
|
||||
dialogAddVisible: false
|
||||
};
|
||||
},
|
||||
created() {
|
||||
created () {
|
||||
// this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询文件列表 */
|
||||
getList() {
|
||||
getList () {
|
||||
this.loading = true;
|
||||
searchQuestion(this.queryParams).then(response => {
|
||||
this.tableList = response.data;
|
||||
@@ -113,7 +113,7 @@ export default {
|
||||
},
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
handleQuery () {
|
||||
if (this.queryParams.question) {
|
||||
this.getList();
|
||||
} else {
|
||||
@@ -121,17 +121,17 @@ export default {
|
||||
}
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
resetQuery () {
|
||||
this.queryParams.question = '';
|
||||
this.handleQuery();
|
||||
},
|
||||
handleEdit(item) {
|
||||
handleEdit (item) {
|
||||
this.dialogVisible = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.dialogForm.init(item);
|
||||
});
|
||||
},
|
||||
handleAdd(item) {
|
||||
handleAdd (item) {
|
||||
this.dialogAddVisible = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.dialogAddForm.init(item);
|
||||
|
||||
116
src/views/zs/clue/components/DistributeFormDialog copy.vue
Normal file
116
src/views/zs/clue/components/DistributeFormDialog copy.vue
Normal file
@@ -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>
|
||||
|
||||
|
||||
@@ -3,14 +3,19 @@
|
||||
<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-form-item label="场地" prop="placeId">
|
||||
<el-select v-model="dialogForm.placeId" filterable 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-col :span="24">
|
||||
<el-form-item label="教练" prop="coachId">
|
||||
<el-select v-model="dialogForm.coachId" filterable placeholder="请选择" clearable style="width: 100%;">
|
||||
<el-option v-for="dict in coachOptions" :key="dict.coachId" :label="dict.coachName" :value="dict.coachId" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
@@ -19,74 +24,68 @@
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
<script>
|
||||
import { getCluePlaceList, saveCluePlace } from '@/api/zs/clue';
|
||||
import { getAllPlaces } from '@/api/sch/place';
|
||||
|
||||
export default {
|
||||
name: 'DistributeFormDialog',
|
||||
|
||||
data() {
|
||||
data () {
|
||||
return {
|
||||
visible: false,
|
||||
canSubmit: true,
|
||||
dialogForm: {},
|
||||
oldForm: {},
|
||||
rules: {
|
||||
newPlaceList: {
|
||||
required: true,
|
||||
message: '场地不能为空不能为空',
|
||||
trigger: 'blur'
|
||||
}
|
||||
placeId: { required: true, message: '场地不能为空', trigger: 'blur, change' },
|
||||
coachId: { required: true, message: '教练不能为空', trigger: 'blur, change' }
|
||||
},
|
||||
placeOptions: []
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
init(info = undefined) {
|
||||
this.getPlaces()
|
||||
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() {
|
||||
resetDialogForm () {
|
||||
this.dialogForm = {
|
||||
oldPlaceList: [],
|
||||
newPlaceList: [],
|
||||
placeIdList: [],
|
||||
clueId: undefined
|
||||
placeId: undefined,
|
||||
clueId: undefined,
|
||||
coachId: undefined
|
||||
};
|
||||
this.oldForm = {}
|
||||
this.oldForm = {};
|
||||
},
|
||||
closeDialog() {
|
||||
closeDialog () {
|
||||
this.$emit('update:dialog.batchUpdateVisible', false);
|
||||
},
|
||||
getDistributePlaces(clueId) {
|
||||
getDistributePlaces (clueId) {
|
||||
getCluePlaceList({ clueId: clueId }).then(resp => {
|
||||
if (resp.code == 200) {
|
||||
this.oldForm = resp.data
|
||||
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)
|
||||
this.placeOptions = this.placeOptions.filter(item => this.oldForm.placeIdList.indexOf(item.placeId) == -1);
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
});
|
||||
},
|
||||
// 表单提交
|
||||
dialogFormSubmit() {
|
||||
dialogFormSubmit () {
|
||||
this.$refs.dialogForm.validate((valid) => {
|
||||
if (valid) {
|
||||
this.canSubmit = false;
|
||||
this.dialogForm.placeIdList = this.dialogForm.oldPlaceList.concat(this.dialogForm.newPlaceList)
|
||||
this.dialogForm.placeIdList = this.dialogForm.oldPlaceList.concat(this.dialogForm.newPlaceList);
|
||||
// 校验完成,调接口
|
||||
saveCluePlace(this.dialogForm)
|
||||
.then((resp) => {
|
||||
@@ -103,14 +102,12 @@ export default {
|
||||
}
|
||||
});
|
||||
},
|
||||
getPlaces() {
|
||||
getPlaces () {
|
||||
getAllPlaces({ status: '0' }).then((resp) => {
|
||||
this.placeOptions = resp.data;
|
||||
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
180
src/views/zs/feedback/first.vue
Normal file
180
src/views/zs/feedback/first.vue
Normal file
@@ -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>
|
||||
@@ -48,7 +48,7 @@
|
||||
<el-table-column label="反馈时间" align="center" prop="feedbackTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.feedbackTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</template>00000000000000000000000
|
||||
</el-table-column>
|
||||
<el-table-column label="是否联系" align="center" prop="isContact" />
|
||||
<el-table-column label="到场时间" align="center" prop="arrivalTime" width="180">
|
||||
|
||||
Reference in New Issue
Block a user