销售月评登记
This commit is contained in:
parent
bf0eba559b
commit
55bc334319
52
src/api/emis/salesMonthlyReview.js
Normal file
52
src/api/emis/salesMonthlyReview.js
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
//新增
|
||||||
|
export function addSalesMonthlyReview(data) {
|
||||||
|
return request({
|
||||||
|
url: '/emis/salesMonthlyReview',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//查询
|
||||||
|
export function listSalesMonthlyReview(data) {
|
||||||
|
return request({
|
||||||
|
url: '/emis/salesMonthlyReview/list',
|
||||||
|
method: 'get',
|
||||||
|
params: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//修改
|
||||||
|
export function updateSalesMonthlyReview(data) {
|
||||||
|
return request({
|
||||||
|
url: '/emis/salesMonthlyReview',
|
||||||
|
method: 'put',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//根据id查询
|
||||||
|
export function getSalesMonthlyReview(id) {
|
||||||
|
return request({
|
||||||
|
url: '/emis/salesMonthlyReview/' + id,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//删除
|
||||||
|
export function deleteSalesMonthlyReview(ids) {
|
||||||
|
return request({
|
||||||
|
url: '/emis/salesMonthlyReview/' + ids,
|
||||||
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//草稿新增
|
||||||
|
export function addSalesMonthlyReviewDraft(data) {
|
||||||
|
return request({
|
||||||
|
url: '/emis/salesMonthlyReview/draftSubmitReview',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
72
src/views/emis/EmisBaseTools/DepartmentPicker.vue
Normal file
72
src/views/emis/EmisBaseTools/DepartmentPicker.vue
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
<template>
|
||||||
|
<el-select
|
||||||
|
style="width:100%"
|
||||||
|
filterable
|
||||||
|
clearable
|
||||||
|
v-model="svalue"
|
||||||
|
:placeholder="placeholder"
|
||||||
|
@change="onChange">
|
||||||
|
<el-option v-for="item in optionItems" :key="item.name" :label="item.name" :value="item.name" />
|
||||||
|
</el-select>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { listPost } from "@/api/system/post";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "PostsPicker",
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
// type: [Array],
|
||||||
|
type:String,
|
||||||
|
required: false
|
||||||
|
},
|
||||||
|
placeholder:{
|
||||||
|
type: String,
|
||||||
|
required: false
|
||||||
|
},
|
||||||
|
isInitiated:{
|
||||||
|
type: [Boolean,String],
|
||||||
|
required: false,
|
||||||
|
default:false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
optionItems: [{"name":"销售一组"},{"name":"销售二组"}
|
||||||
|
,{"name":"销售三组"},{"name":"销售四组"},{"name":"销售五组"}
|
||||||
|
,{"name":"宁波站点"},{"name":"上海站点"},{"name":"柯桥站点"},{"name":"杭州站点"}],
|
||||||
|
svalue: this.value,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
value(newVal) {
|
||||||
|
console.log('newVal---',newVal)
|
||||||
|
this.svalue = newVal;
|
||||||
|
},
|
||||||
|
svalue(newVal, oldVal) {
|
||||||
|
this.$emit("input", this.svalue);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
// this.queryData();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onChange() {
|
||||||
|
this.$emit("input", this.svalue);
|
||||||
|
this.$emit("onChange");
|
||||||
|
},
|
||||||
|
queryData() {
|
||||||
|
|
||||||
|
let queryParams = {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 3000,
|
||||||
|
};
|
||||||
|
listPost(queryParams).then(response => {
|
||||||
|
this.optionItems = response.rows;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
@ -1,23 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<!-- <el-select
|
<el-select
|
||||||
style="width:100%"
|
style="width:100%"
|
||||||
filterable
|
filterable
|
||||||
clearable
|
clearable
|
||||||
multiple
|
|
||||||
v-model="svalue"
|
v-model="svalue"
|
||||||
:placeholder="placeholder"
|
:placeholder="placeholder"
|
||||||
@change="onChange">
|
@change="onChange">
|
||||||
<el-option v-for="item in optionItems" :key="item.postCode" :label="item.postName" :value="item.postCode" />
|
<el-option v-for="item in optionItems" :key="item.postName" :label="item.postName" :value="item.postName" />
|
||||||
</el-select> -->
|
</el-select>
|
||||||
|
|
||||||
|
|
||||||
<el-checkbox-group v-model="svalue" @change="getCheckAll">
|
|
||||||
<el-checkbox
|
|
||||||
v-for="item in optionItems"
|
|
||||||
:key="item.postId"
|
|
||||||
:label="item.postName"
|
|
||||||
></el-checkbox>
|
|
||||||
</el-checkbox-group>
|
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@ -27,7 +17,8 @@ export default {
|
|||||||
name: "PostsPicker",
|
name: "PostsPicker",
|
||||||
props: {
|
props: {
|
||||||
value: {
|
value: {
|
||||||
type: [Array],
|
// type: [Array],
|
||||||
|
type:String,
|
||||||
required: false
|
required: false
|
||||||
},
|
},
|
||||||
placeholder:{
|
placeholder:{
|
||||||
@ -42,7 +33,7 @@ props: {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
optionItems: [],
|
optionItems: [{"postName":"收派员"},{"postName":"销售顾问"},{"postName":"销售主管"},{"postName":"销售支持"},{"postName":"销售经理"},],
|
||||||
svalue: this.value,
|
svalue: this.value,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@ -55,7 +46,7 @@ watch: {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.queryData();
|
// this.queryData();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
onChange() {
|
onChange() {
|
||||||
@ -63,7 +54,6 @@ methods: {
|
|||||||
this.$emit("onChange");
|
this.$emit("onChange");
|
||||||
},
|
},
|
||||||
queryData() {
|
queryData() {
|
||||||
|
|
||||||
let queryParams = {
|
let queryParams = {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 3000,
|
pageSize: 3000,
|
||||||
@ -72,7 +62,6 @@ methods: {
|
|||||||
this.optionItems = response.rows;
|
this.optionItems = response.rows;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
176
src/views/emis/salesMonthlyReview/editForm.vue
Normal file
176
src/views/emis/salesMonthlyReview/editForm.vue
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-form ref="form" size="mini" :model="form" :rules="rules" label-width="120px">
|
||||||
|
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="员工姓名" prop="employeeName">
|
||||||
|
<EmpNamePicker v-model="form.employeeName" placeholder="请选择员工姓名" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="所属部门" prop="department">
|
||||||
|
<DepartmentPicker v-model="form.department" placeholder="请选择部门" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="岗位" prop="position">
|
||||||
|
<PostsPicker v-model="form.position" placeholder="请选择岗位" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="入职日期" prop="entryDate">
|
||||||
|
<el-date-picker
|
||||||
|
style="width: 100%;"
|
||||||
|
v-model="form.entryDate"
|
||||||
|
type="date"
|
||||||
|
placeholder="选择入职日期"
|
||||||
|
format="yyyy-MM-dd"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="考评月份" prop="reviewMonth">
|
||||||
|
<el-date-picker
|
||||||
|
style="width: 100%;"
|
||||||
|
v-model="form.reviewMonth"
|
||||||
|
type="month"
|
||||||
|
placeholder="选择考评月份"
|
||||||
|
format="yyyy-MM"
|
||||||
|
value-format="yyyy-MM"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="考核分数" prop="score">
|
||||||
|
<el-input type="number" v-model="form.score" placeholder="" maxlength="30" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="备注" prop="remark">
|
||||||
|
<el-input type="textarea" v-model="form.remark" placeholder="" maxlength="30" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<div style="text-align: center;margin-bottom: 10px;">
|
||||||
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { addSalesMonthlyReview, getSalesMonthlyReview, updateSalesMonthlyReview } from "@/api/emis/salesMonthlyReview";
|
||||||
|
import EmpNamePicker from '@/views/emis/EmisBaseTools/EmpNamePicker.vue';
|
||||||
|
import DepartmentPicker from "@/views/emis/EmisBaseTools/DepartmentPicker.vue";
|
||||||
|
import PostsPicker from "@/views/emis/EmisBaseTools/PostsPicker.vue";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "SalesMonthlyReviewForm",
|
||||||
|
props: {
|
||||||
|
id: {
|
||||||
|
type: Number
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: { EmpNamePicker,DepartmentPicker,PostsPicker},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
// 默认密码
|
||||||
|
initPassword: undefined,
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
// 表单校验
|
||||||
|
rules: {
|
||||||
|
employeeName: [
|
||||||
|
{ required: true, message: "员工姓名不能为空", trigger: ["change", "blur"] }
|
||||||
|
],
|
||||||
|
department: [
|
||||||
|
{ required: true, message: "所属部门不能为空", trigger: ["change", "blur"] }
|
||||||
|
],
|
||||||
|
position: [
|
||||||
|
{ required: true, message: "岗位不能为空", trigger: ["change", "blur"] }
|
||||||
|
],
|
||||||
|
entryDate: [
|
||||||
|
{ required: true, message: "入职日期不能为空", trigger: ["change", "blur"] }
|
||||||
|
],
|
||||||
|
reviewMonth: [
|
||||||
|
{ required: true, message: "考评月份不能为空", trigger: ["change", "blur"] }
|
||||||
|
],
|
||||||
|
score: [
|
||||||
|
{ required: true, message: "考核分数不能为空", trigger: ["change", "blur"] }
|
||||||
|
],
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
"id": {
|
||||||
|
handler(newValue, oldValue) {
|
||||||
|
this.id = newValue;
|
||||||
|
this.initData();
|
||||||
|
},
|
||||||
|
deep: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.initData();
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
initData() {
|
||||||
|
this.reset();
|
||||||
|
if (this.id !== null) {
|
||||||
|
getSalesMonthlyReview(this.id).then(response => {
|
||||||
|
this.form = response.data;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 取消按钮
|
||||||
|
cancel() {
|
||||||
|
this.reset();
|
||||||
|
this.$emit("on-cancel");
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
salesExecutive: null,
|
||||||
|
salesExecutiveRatio: null,
|
||||||
|
salesmen: null,
|
||||||
|
salesmenRatio: null,
|
||||||
|
salesSupport: null,
|
||||||
|
salesSupportRatio: null,
|
||||||
|
createTime: null,
|
||||||
|
updateBy: null,
|
||||||
|
updateTime: null,
|
||||||
|
remark: null,
|
||||||
|
};
|
||||||
|
this.resetForm("form");
|
||||||
|
},
|
||||||
|
/** 提交按钮 */
|
||||||
|
submitForm() {
|
||||||
|
this.$refs["form"].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
this.form.userName = this.form.empCode;
|
||||||
|
this.form.nickName = this.form.empName;
|
||||||
|
if (this.form.id != null) {
|
||||||
|
updateSalesMonthlyReview(this.form).then(response => {
|
||||||
|
this.$modal.msgSuccess("修改成功");
|
||||||
|
this.$emit("on-changed");
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
addSalesMonthlyReview(this.form).then(response => {
|
||||||
|
this.$modal.msgSuccess("添加成功");
|
||||||
|
this.$emit("on-changed");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style scoped></style>
|
||||||
289
src/views/emis/salesMonthlyReview/index.vue
Normal file
289
src/views/emis/salesMonthlyReview/index.vue
Normal file
@ -0,0 +1,289 @@
|
|||||||
|
<template>
|
||||||
|
<XdPageContainer class="app-container">
|
||||||
|
<SearchForm slot="pageHeader" :model="queryParams" ref="queryForm" size="mini" :maxShow="20" label-width="80px"
|
||||||
|
v-show="showSearch" @search="handleQuery" @reset="resetQuery">
|
||||||
|
<el-form-item label="员工姓名" prop="employeeName">
|
||||||
|
<!-- <el-input v-model="queryParams.employeeName" placeholder="请输入员工姓名" /> -->
|
||||||
|
<emp-name-picker v-model="queryParams.employeeName" placeholder="请输入员工姓名" style="width:100%" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="分数范围" prop="scoreRange">
|
||||||
|
<number-range-picker style="width:200px" v-model="queryParams.params.scoreRange" :min="0" :max="100" :step="1"></number-range-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="所属部门" prop="department">
|
||||||
|
<!-- <treeselect class="myTree" v-model="queryParams.department" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" style="width:100%" /> -->
|
||||||
|
<department-picker v-model="queryParams.department" placeholder="请选择归属部门" style="width:100%" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="岗位类型" prop="position">
|
||||||
|
<PostsPicker v-model="queryParams.position" placeholder="请选择岗位" style="width:100%" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="考评月份" prop="reviewMonth">
|
||||||
|
<el-date-picker
|
||||||
|
value-format="yyyy-MM"
|
||||||
|
style="width: 100%;"
|
||||||
|
v-model="queryParams.reviewMonth"
|
||||||
|
type="month"
|
||||||
|
placeholder="请选择考评月份"
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
</SearchForm>
|
||||||
|
|
||||||
|
<XdTable slot="pageContent" slot-scope="slotProps" :height="(slotProps.contentHeight) + 'px'" ref="refTable"
|
||||||
|
v-loading="loading" border size="mini" :data="list" storageName="emisUser_main" :showSearch.sync="showSearch"
|
||||||
|
:total="total" highlight-current-row @queryTable="getList" :queryParams="queryParams"
|
||||||
|
@selection-change="handleSelectionChange" @sort-change="handleSortChange">
|
||||||
|
|
||||||
|
<div slot="toolbar">
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single"
|
||||||
|
@click="handleUpdate">修改</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="danger" plain icon="el-icon-delete" size="mini" @click="handleDelete">删除</el-button>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
<el-table-column type="selection" width="50" align="center" />
|
||||||
|
<el-table-column label="员工姓名" align="center" prop="employeeName" width="80">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="所属部门" align="left" prop="department" :show-overflow-tooltip="true"
|
||||||
|
min-width="80">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="入职时间" align="left" prop="entryDate" :show-overflow-tooltip="true" min-width="80">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="岗位" align="center" prop="position" :show-overflow-tooltip="true"
|
||||||
|
min-width="100" />
|
||||||
|
<el-table-column label="考核月份" align="center" prop="reviewMonth"></el-table-column>
|
||||||
|
<el-table-column label="考核分数" align="center" prop="score" min-width="100">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="备注" align="center" prop="remark" min-width="100" tooltip>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="创建人" align="center" prop="createByName" width="80" :show-overflow-tooltip="true" />
|
||||||
|
<el-table-column label="创建时间" align="center" prop="createTime" width="170" />
|
||||||
|
<el-table-column label="创建网点" align="center" prop="createSiteName" width="80" :show-overflow-tooltip="true" />
|
||||||
|
<el-table-column label="修改人" align="center" prop="updateByName" width="80" :show-overflow-tooltip="true" />
|
||||||
|
<el-table-column label="修改网点" align="center" prop="updateSiteName" width="80" :show-overflow-tooltip="true" />
|
||||||
|
<el-table-column label="修改时间" align="center" prop="updateTime" width="170" />
|
||||||
|
</XdTable>
|
||||||
|
|
||||||
|
<el-dialog :title="titleForm" :visible.sync="openForm" width="40%" :destroy-on-close="true" v-dialogDrag
|
||||||
|
append-to-body>
|
||||||
|
<SalesMonthlyReviewForm :id="currentId" @on-changed="handleFormChanged" @on-cancel="cancelForm">
|
||||||
|
</SalesMonthlyReviewForm>
|
||||||
|
</el-dialog>
|
||||||
|
</XdPageContainer>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { listSalesMonthlyReview, deleteSalesMonthlyReview } from "@/api/emis/salesMonthlyReview";
|
||||||
|
import SalesMonthlyReviewForm from '@/views/emis/salesMonthlyReview/editForm';
|
||||||
|
import { treeselect } from "@/api/system/dept";
|
||||||
|
import Treeselect from "@riophae/vue-treeselect";
|
||||||
|
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
||||||
|
import PostsPicker from "@/views/emis/EmisBaseTools/PostsPicker.vue";
|
||||||
|
import NumberRangePicker from '@/components/NumberRange/NumberRangePicker';
|
||||||
|
import EmpNamePicker from '@/views/emis/EmisBaseTools/EmpNamePicker.vue';
|
||||||
|
import DepartmentPicker from "@/views/emis/EmisBaseTools/DepartmentPicker.vue";
|
||||||
|
export default {
|
||||||
|
name: "SalesMonthlyReview",
|
||||||
|
components: { SalesMonthlyReviewForm,Treeselect,PostsPicker,NumberRangePicker,EmpNamePicker,DepartmentPicker },
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
tableHeight: 200,
|
||||||
|
// 遮罩层
|
||||||
|
loading: false,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
// 用户表格数据
|
||||||
|
list: null,
|
||||||
|
// 弹出层标题
|
||||||
|
title: "",
|
||||||
|
currentId: null,
|
||||||
|
openForm: false,
|
||||||
|
titleForm: "",
|
||||||
|
selectionList: null,
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 20,
|
||||||
|
employeeName:null,
|
||||||
|
position:null,
|
||||||
|
department:null,
|
||||||
|
reviewMonth:null,
|
||||||
|
params:{
|
||||||
|
scoreRange:null,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 部门树选项
|
||||||
|
deptOptions: [],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getList();
|
||||||
|
this.getTreeselect();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/** 查询用户列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
let qParam = { ...this.queryParams }
|
||||||
|
if (qParam.params.scoreRange && qParam.params.scoreRange.length > 0) {
|
||||||
|
qParam = this.addDateRange(qParam, qParam.params.scoreRange, 'Score')
|
||||||
|
}
|
||||||
|
listSalesMonthlyReview(qParam).then(response => {
|
||||||
|
this.list = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
handleSortChange(column) {
|
||||||
|
this.queryParams.orderByColumn = column.prop;
|
||||||
|
this.queryParams.isAsc = column.order;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
handleFormChanged() {
|
||||||
|
this.openForm = false;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
cancelForm() {
|
||||||
|
this.openForm = false;
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.dateRange = [];
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
// 多选框选中数据
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.ids = selection.map(item => item.id);
|
||||||
|
this.single = selection.length != 1;
|
||||||
|
this.multiple = !selection.length;
|
||||||
|
this.selectionList = selection;
|
||||||
|
},
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
handleAdd() {
|
||||||
|
this.currentId = null;
|
||||||
|
this.openForm = true;
|
||||||
|
this.titleForm = "添加销售月评登记";
|
||||||
|
},
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
handleUpdate(row) {
|
||||||
|
console.log('ids', this.ids)
|
||||||
|
this.currentId = row.id || this.ids[0];
|
||||||
|
this.openForm = true;
|
||||||
|
this.titleForm = "修改销售月评登记";
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(row) {
|
||||||
|
const ids = row.id || this.ids;
|
||||||
|
this.$modal.confirm('注意:确认是否删除?').then(function () {
|
||||||
|
deleteSalesMonthlyReview(ids);
|
||||||
|
}).then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
}).catch(() => { });
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
handleExport() {
|
||||||
|
const loadingInstance = this.$loading({
|
||||||
|
text: '正在导出...'
|
||||||
|
})
|
||||||
|
|
||||||
|
if (this.selectionList && this.selectionList.length > 0) {
|
||||||
|
this.exportData(this.selectionList, loadingInstance);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
let qExportParam = { ...this.queryParams };
|
||||||
|
qExportParam.pageNum = 1;
|
||||||
|
qExportParam.pageSize = 20000;
|
||||||
|
qExportParam = this.addDateRange(qExportParam,qExportParam.params.scoreRange,'Score');
|
||||||
|
|
||||||
|
listSalesMonthlyReview(qExportParam).then(response => {
|
||||||
|
if (response.code === 200) {
|
||||||
|
this.exportData(response.rows, loadingInstance);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
exportData(selData, loadingInstance) {
|
||||||
|
const curList = selData
|
||||||
|
import('@/vendor/Export2Excel').then(excel => {
|
||||||
|
const exportParam = this.$refs.refTable.getExportParam();
|
||||||
|
const tHeader = exportParam.header;
|
||||||
|
const filterVal = exportParam.filter;
|
||||||
|
const data = this.formatJson(filterVal, curList, selData)
|
||||||
|
excel.export_json_to_excel({
|
||||||
|
header: tHeader,
|
||||||
|
data,
|
||||||
|
filename: '销售月评登记表',
|
||||||
|
autoWidth: true
|
||||||
|
})
|
||||||
|
loadingInstance.close()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
formatJson(filterVal, jsonData, resData) {
|
||||||
|
return jsonData.map(v => filterVal.map(j => {
|
||||||
|
|
||||||
|
if (j === 'status') {
|
||||||
|
if (v[j] == 1) {
|
||||||
|
return '启用';
|
||||||
|
} else {
|
||||||
|
return '停用';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return v[j]
|
||||||
|
}))
|
||||||
|
},
|
||||||
|
getTreeselect() {
|
||||||
|
treeselect().then(response => {
|
||||||
|
console.log(response.data)
|
||||||
|
this.deptOptions = response.data;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
// .myTree {
|
||||||
|
// display: inline-block;
|
||||||
|
// width: 200px !important;
|
||||||
|
// ::v-deep .vue-treeselect__control {
|
||||||
|
// height: 28px !important;
|
||||||
|
// border-radius:0px!important;
|
||||||
|
// .vue-treeselect__value-container .vue-treeselect__placeholder{
|
||||||
|
// line-height: 28px!important; //上下居中
|
||||||
|
// font-size: 12px!important;
|
||||||
|
// font-weight: 600!important;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
</style>
|
||||||
Loading…
Reference in New Issue
Block a user