From 3f2db4dbaf1c7a721e2b135dd83b0ac83468e04b Mon Sep 17 00:00:00 2001
From: GuLiMmo <2820890765@qq.com>
Date: Fri, 08 Dec 2023 14:05:10 +0800
Subject: [PATCH] 评优任务页面修改
---
src/option/evaluate/evaluateTask.js | 11
/dev/null | 119 ---------
src/views/evaluate/components/addDialog.vue | 108 ++++++++
src/views/employee/list.vue | 46 +++
src/views/assessmentTask/assessmentTaskSetting.vue | 28 +
src/views/evaluate/evaluateTask.vue | 441 ++++++++++++++++++---------------
6 files changed, 423 insertions(+), 330 deletions(-)
diff --git a/src/option/evaluate/evaluateTask.js b/src/option/evaluate/evaluateTask.js
index 233a585..c92f01f 100644
--- a/src/option/evaluate/evaluateTask.js
+++ b/src/option/evaluate/evaluateTask.js
@@ -7,8 +7,11 @@
border: true,
index: true,
viewBtn: true,
+ addBtn: false,
+ editBtn: false,
selection: true,
dialogClickModal: false,
+ menuFixed: 'right',
column: [
{
label: "主键",
@@ -33,11 +36,13 @@
prop: "taskName",
type: "input",
search: true,
+ minWidth: '120px'
},
{
label: "任务类别",
prop: "taskType",
type: "input",
+ minWidth: '100px'
},
{
label: "认定标准描述",
@@ -50,6 +55,7 @@
prop: "candidateNum",
type: "input",
span: 24,
+ minWidth: '100px'
},
{
label: "候选人截止日期",
@@ -57,6 +63,7 @@
type: "date",
format: "YYYY-MM-DD HH:mm:ss",
valueFormat: "YYYY-MM-DD HH:mm:ss",
+ minWidth: '200px'
},
{
label: "候选人状态",
@@ -65,11 +72,13 @@
addDisplay: false,
editDisplay: false,
viewDisplay: false,
+ minWidth: '100px'
},
{
label: "评优数量",
prop: "evaluateNum",
type: "input",
+ minWidth: '100px'
},
{
label: "候选人截止日期",
@@ -77,6 +86,7 @@
type: "date",
format: "YYYY-MM-DD HH:mm:ss",
valueFormat: "YYYY-MM-DD HH:mm:ss",
+ minWidth: '200px'
},
{
label: "评优评选状态",
@@ -85,6 +95,7 @@
addDisplay: false,
editDisplay: false,
viewDisplay: false,
+ minWidth: '100px'
},
{
label: "创建人",
diff --git a/src/views/assessmentTask/assessmentTaskSetting.vue b/src/views/assessmentTask/assessmentTaskSetting.vue
index b6dcf73..a956ea2 100644
--- a/src/views/assessmentTask/assessmentTaskSetting.vue
+++ b/src/views/assessmentTask/assessmentTaskSetting.vue
@@ -19,6 +19,8 @@
<script>
import assessmentWeight from './assessmentWeight.vue'
+import { getList } from '@/api/system/user.js'
+
export default {
components: {
assessmentWeight
@@ -27,6 +29,7 @@
return {
isWeight: true,
form: {},
+ query: {},
search: {},
data: [
{
@@ -54,14 +57,13 @@
menuWidth: 200,
column: [
{
- label: "考核编号",
+ label: "主键",
prop: "id",
type: "input",
addDisplay: false,
editDisplay: false,
viewDisplay: false,
- hide: true,
- search: true
+ hide: true
},
{
label: "被考核人",
@@ -78,11 +80,13 @@
label: "部门",
prop: "section",
type: "input",
+ search: true
},
{
label: "职务",
- prop: "position",
+ prop: "postName",
type: "input",
+ search: true
},
{
label: "人员类型",
@@ -96,7 +100,7 @@
},
{
label: "联系方式",
- prop: "contact",
+ prop: "phone",
type: "input",
},
]
@@ -104,7 +108,7 @@
page: {
pageSize: 10,
currentPage: 1,
- total: 1,
+ total: 0,
},
}
},
@@ -121,7 +125,19 @@
sizeChange() { },
refreshChange() { },
onLoad(page, params = {}) {
+ this.loading = true;
+ const {
+ } = this.query;
+ let values = {
+ };
+ getList(page.currentPage, page.pageSize, values).then(res => {
+ console.log(res);
+ const data = res.data.data;
+ this.page.total = data.total;
+ this.data = data.records;
+ this.loading = false;
+ });
}
}
}
diff --git a/src/views/employee/list.vue b/src/views/employee/list.vue
new file mode 100644
index 0000000..ae336cf
--- /dev/null
+++ b/src/views/employee/list.vue
@@ -0,0 +1,46 @@
+<template>
+ <basic-container>
+ <avue-crud :option="option" v-model:search="search" v-model:page="page" v-model="form" :table-loading="loading"
+ :data="data" :permission="permissionList" :before-open="beforeOpen" ref="crud" @row-update="rowUpdate"
+ @row-save="rowSave" @row-del="rowDel" @search-change="searchChange">
+ </avue-crud>
+ </basic-container>
+</template>
+
+<script>
+export default {
+ data() {
+ return {
+ form: {},
+ query: {},
+ search: {},
+ loading: true,
+ page: {
+ pageSize: 10,
+ currentPage: 1,
+ total: 0
+ },
+ selectionList: [],
+ option: option,
+ data: []
+ }
+ },
+ methods: {
+ onLoad(page, params = {}) {
+ this.loading = true;
+ const {
+ } = this.query;
+ let values = {
+ };
+
+ getList(page.currentPage, page.pageSize, values).then(res => {
+ const data = res.data.data;
+ this.page.total = data.total;
+ this.data = data.records;
+ this.loading = false;
+ });
+ }
+ }
+}
+</script>
+<style></style>
\ No newline at end of file
diff --git a/src/views/evaluate/components/addDialog.vue b/src/views/evaluate/components/addDialog.vue
new file mode 100644
index 0000000..ad11f95
--- /dev/null
+++ b/src/views/evaluate/components/addDialog.vue
@@ -0,0 +1,108 @@
+<template>
+ <el-dialog v-model="params.visible" :title="params.title" width="600px" :destroy-on-close="true">
+ <el-form :model="addForm" label-width="120px">
+ <el-form-item label="任务名称:">
+ <el-input v-model="addForm.taskName" placeholder="请输入任务名称"></el-input>
+ </el-form-item>
+ <el-form-item label="任务类别:">
+ <el-input v-model="addForm.taskType" placeholder="请输入任务类别"></el-input>
+ </el-form-item>
+ <el-form-item label="认定标准描述:">
+ <el-input v-model="addForm.remark" placeholder="请输入任务名称"></el-input>
+ </el-form-item>
+ <el-form-item label="候选人数量:">
+ <ul class="select-group">
+ <li>技术部:<el-select placeholder="请设置该部门的评选人数"></el-select></li>
+ <li>财务部:<el-select placeholder="请设置该部门的评选人数"></el-select></li>
+ <li>人事部:<el-select placeholder="请设置该部门的评选人数"></el-select></li>
+ </ul>
+ </el-form-item>
+ <el-form-item label="候选人截止日期:">
+ <el-date-picker v-model="addForm.candidateCutoffTime" type="datetime" placeholder="请选择截止时间" style="width: 100%;" />
+ </el-form-item>
+ <el-form-item label="候选人截止日期:">
+ <el-date-picker v-model="addForm.evaluateCutoffTime" type="datetime" placeholder="请选择截止时间" style="width: 100%;" />
+ </el-form-item>
+ <el-form-item label="评优数量:">
+ <el-input v-model="addForm.evaluateNum" placeholder="请输入评优数量"></el-input>
+ </el-form-item>
+ </el-form>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="addParams.visible = false">取消</el-button>
+ <el-button type="primary" @click="dialogVisible = false">确认</el-button>
+ </span>
+ </template>
+ </el-dialog>
+</template>
+
+<script>
+export default {
+ props: {
+ params: {
+ type: Object,
+ default: () => {
+ return {
+ visible: false,
+ title: '',
+ addForm: {}
+ };
+ }
+ }
+ },
+ data() {
+ return {
+ title: '新增',
+ addForm: {
+ id: "",
+ tenantId: "",
+ taskName: "",
+ taskType: "",
+ remark: "",
+ candidateNum: "",
+ candidateCutoffTime: "",
+ candidateState: "",
+ evaluateNum: "",
+ evaluateCutoffTime: "",
+ evaluateState: "",
+ createUser: "",
+ createDept: "",
+ createTime: "",
+ updateUser: "",
+ updateTime: "",
+ status: "",
+ isDeleted: ""
+ },
+ }
+ },
+ watch: {
+ 'params.addForm': {
+ handler(val) {
+ this.addForm = val;
+ },
+ deep: true
+ }
+ },
+ methods: {
+
+ }
+}
+</script>
+
+<style scoped>
+.select-group {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ width: 100%;
+}
+.select-group li {
+ margin-top: 15px;
+}
+
+.select-group li:first-child {
+ margin-top: 0;
+}
+
+
+</style>
\ No newline at end of file
diff --git a/src/views/evaluate/evaluateTask.vue b/src/views/evaluate/evaluateTask.vue
index 3bf7368..0f873e2 100644
--- a/src/views/evaluate/evaluateTask.vue
+++ b/src/views/evaluate/evaluateTask.vue
@@ -1,229 +1,260 @@
<template>
<basic-container>
- <avue-crud :option="option"
- v-model:search="search"
- v-model:page="page"
- v-model="form"
- :table-loading="loading"
- :data="data"
- :permission="permissionList"
- :before-open="beforeOpen"
- ref="crud"
- @row-update="rowUpdate"
- @row-save="rowSave"
- @row-del="rowDel"
- @search-change="searchChange"
- @search-reset="searchReset"
- @selection-change="selectionChange"
- @current-change="currentChange"
- @size-change="sizeChange"
- @refresh-change="refreshChange"
- @on-load="onLoad">
+ <avue-crud :option="option" v-model:search="search" v-model:page="page" v-model="form" :table-loading="loading"
+ :data="data" :permission="permissionList" :before-open="beforeOpen" ref="crud" @row-update="rowUpdate"
+ @row-save="rowSave" @row-del="rowDel" @search-change="searchChange" @search-reset="searchReset"
+ @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
+ @refresh-change="refreshChange" @on-load="onLoad">
<template #menu-left>
- <el-button type="danger"
- icon="el-icon-delete"
- plain
- v-if="permission.evaluateTask_delete"
- @click="handleDelete">删 除
+ <el-button type="primary" icon="el-icon-plus" @click="addParams.visible = true">
+ 添加
</el-button>
- <el-button type="warning"
- plain
- icon="el-icon-download"
- @click="handleExport">导 出
+ <el-button type="danger" icon="el-icon-delete" plain v-if="permission.evaluateTask_delete" @click="handleDelete">
+ 删除
+ </el-button>
+ <el-button type="warning" plain icon="el-icon-download" @click="handleExport">
+ 导出
+ </el-button>
+ </template>
+ <template #menu="{ size, row, index }">
+ <el-button type="primary" text plain icon="el-icon-edit" @click="editDialog(row)">
+ 编辑
+ </el-button>
+ <el-button type="primary" text plain icon="el-icon-position" @click="dialogVisible = true">
+ 发布
+ </el-button>
+ <el-button type="primary" text plain icon="el-icon-download" @click="">
+ 导出
</el-button>
</template>
</avue-crud>
+ <!-- 发布弹窗 -->
+ <el-dialog v-model="dialogVisible" title="发布" width="500px">
+ <el-form :model="publicForm">
+ <el-form-item label="评优评先截止时间:">
+ <el-date-picker v-model="publicForm.publicData" type="datetime" placeholder="请选择截止时间" style="width: 100%;" />
+ </el-form-item>
+ </el-form>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="dialogVisible = false">取消</el-button>
+ <el-button type="primary" @click="dialogVisible = false">确认</el-button>
+ </span>
+ </template>
+ </el-dialog>
+ <!-- 新增编辑弹窗 -->
+ <addDialog :params="addParams"/>
</basic-container>
</template>
<script>
- import {getList, getDetail, add, update, remove} from "@/api/evaluate/evaluateTask";
- import option from "@/option/evaluate/evaluateTask";
- import {mapGetters} from "vuex";
- import {exportBlob} from "@/api/common";
- import {getToken} from '@/utils/auth';
- import {downloadXls} from "@/utils/util";
- import {dateNow} from "@/utils/date";
- import NProgress from 'nprogress';
- import 'nprogress/nprogress.css';
+import { getList, getDetail, add, update, remove } from "@/api/evaluate/evaluateTask";
+import option from "@/option/evaluate/evaluateTask";
+import { mapGetters } from "vuex";
+import { exportBlob } from "@/api/common";
+import { getToken } from '@/utils/auth';
+import { downloadXls } from "@/utils/util";
+import { dateNow } from "@/utils/date";
+import NProgress from 'nprogress';
+import 'nprogress/nprogress.css';
+import addDialog from "./components/addDialog.vue";
- export default {
- data() {
+export default {
+ components: {
+ addDialog
+ },
+ data() {
+ return {
+ form: {},
+ query: {},
+ search: {},
+ loading: true,
+ page: {
+ pageSize: 10,
+ currentPage: 1,
+ total: 0
+ },
+ selectionList: [],
+ option: option,
+ data: [],
+ // 发布弹窗
+ dialogVisible: false,
+ publicForm: {
+ publicData: ""
+ },
+ isAddDialogVisible: false,
+ addParams: {},
+ };
+ },
+ computed: {
+ ...mapGetters(["permission"]),
+ permissionList() {
return {
- form: {},
- query: {},
- search: {},
- loading: true,
- page: {
- pageSize: 10,
- currentPage: 1,
- total: 0
- },
- selectionList: [],
- option: option,
- data: []
+ addBtn: this.validData(this.permission.evaluateTask_add, false),
+ viewBtn: this.validData(this.permission.evaluateTask_view, false),
+ delBtn: this.validData(this.permission.evaluateTask_delete, false),
+ editBtn: this.validData(this.permission.evaluateTask_edit, false)
};
},
- computed: {
- ...mapGetters(["permission"]),
- permissionList() {
- return {
- addBtn: this.validData(this.permission.evaluateTask_add, false),
- viewBtn: this.validData(this.permission.evaluateTask_view, false),
- delBtn: this.validData(this.permission.evaluateTask_delete, false),
- editBtn: this.validData(this.permission.evaluateTask_edit, false)
- };
- },
- ids() {
- let ids = [];
- this.selectionList.forEach(ele => {
- ids.push(ele.id);
- });
- return ids.join(",");
+ ids() {
+ let ids = [];
+ this.selectionList.forEach(ele => {
+ ids.push(ele.id);
+ });
+ return ids.join(",");
+ }
+ },
+ methods: {
+ rowSave(row, done, loading) {
+ console.log(row);
+ // add(row).then(() => {
+ // this.onLoad(this.page);
+ // this.$message({
+ // type: "success",
+ // message: "操作成功!"
+ // });
+ // done();
+ // }, error => {
+ // loading();
+ // window.console.log(error);
+ // });
+ },
+ editDialog(row) {
+ this.addParams = {
+ visible: true,
+ title: '编辑',
+ addForm: {
+ ...row
+ }
}
},
- methods: {
- rowSave(row, done, loading) {
- add(row).then(() => {
- this.onLoad(this.page);
- this.$message({
- type: "success",
- message: "操作成功!"
- });
- done();
- }, error => {
- loading();
- window.console.log(error);
- });
- },
- rowUpdate(row, index, done, loading) {
- update(row).then(() => {
- this.onLoad(this.page);
- this.$message({
- type: "success",
- message: "操作成功!"
- });
- done();
- }, error => {
- loading();
- console.log(error);
- });
- },
- rowDel(row) {
- this.$confirm("确定将选择数据删除?", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- })
- .then(() => {
- return remove(row.id);
- })
- .then(() => {
- this.onLoad(this.page);
- this.$message({
- type: "success",
- message: "操作成功!"
- });
- });
- },
- handleDelete() {
- if (this.selectionList.length === 0) {
- this.$message.warning("请选择至少一条数据");
- return;
- }
- this.$confirm("确定将选择数据删除?", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- })
- .then(() => {
- return remove(this.ids);
- })
- .then(() => {
- this.onLoad(this.page);
- this.$message({
- type: "success",
- message: "操作成功!"
- });
- this.$refs.crud.toggleSelection();
- });
- },
- handleExport() {
- let downloadUrl = `/evaluateTask/evaluateTask/export-evaluateTask?${this.website.tokenHeader}=${getToken()}`;
- const {
- taskName,
- } = this.query;
- let values = {
- taskName_like: taskName,
- };
- this.$confirm("是否导出数据?", "提示", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- }).then(() => {
- NProgress.start();
- exportBlob(downloadUrl, values).then(res => {
- downloadXls(res.data, `评优任务表${dateNow()}.xlsx`);
- NProgress.done();
- })
- });
- },
- beforeOpen(done, type) {
- if (["edit", "view"].includes(type)) {
- getDetail(this.form.id).then(res => {
- this.form = res.data.data;
- });
- }
- done();
- },
- searchReset() {
- this.query = {};
+ rowUpdate(row, index, done, loading) {
+ update(row).then(() => {
this.onLoad(this.page);
- },
- searchChange(params, done) {
- this.query = params;
- this.page.currentPage = 1;
- this.onLoad(this.page, params);
+ this.$message({
+ type: "success",
+ message: "操作成功!"
+ });
done();
- },
- selectionChange(list) {
- this.selectionList = list;
- },
- selectionClear() {
- this.selectionList = [];
- this.$refs.crud.toggleSelection();
- },
- currentChange(currentPage){
- this.page.currentPage = currentPage;
- },
- sizeChange(pageSize){
- this.page.pageSize = pageSize;
- },
- refreshChange() {
- this.onLoad(this.page, this.query);
- },
- onLoad(page, params = {}) {
- this.loading = true;
-
- const {
- taskName,
- } = this.query;
-
- let values = {
- taskName_like: taskName,
- };
-
- getList(page.currentPage, page.pageSize, values).then(res => {
- const data = res.data.data;
- this.page.total = data.total;
- this.data = data.records;
- this.loading = false;
- this.selectionClear();
+ }, error => {
+ loading();
+ console.log(error);
+ });
+ },
+ rowDel(row) {
+ this.$confirm("确定将选择数据删除?", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning"
+ })
+ .then(() => {
+ return remove(row.id);
+ })
+ .then(() => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "操作成功!"
+ });
+ });
+ },
+ handleDelete() {
+ if (this.selectionList.length === 0) {
+ this.$message.warning("请选择至少一条数据");
+ return;
+ }
+ this.$confirm("确定将选择数据删除?", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning"
+ })
+ .then(() => {
+ return remove(this.ids);
+ })
+ .then(() => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "操作成功!"
+ });
+ this.$refs.crud.toggleSelection();
+ });
+ },
+ handleExport() {
+ let downloadUrl = `/evaluateTask/evaluateTask/export-evaluateTask?${this.website.tokenHeader}=${getToken()}`;
+ const {
+ taskName,
+ } = this.query;
+ let values = {
+ taskName_like: taskName,
+ };
+ this.$confirm("是否导出数据?", "提示", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning"
+ }).then(() => {
+ NProgress.start();
+ exportBlob(downloadUrl, values).then(res => {
+ downloadXls(res.data, `评优任务表${dateNow()}.xlsx`);
+ NProgress.done();
+ })
+ });
+ },
+ beforeOpen(done, type) {
+ if (["edit", "view"].includes(type)) {
+ getDetail(this.form.id).then(res => {
+ this.form = res.data.data;
});
}
+ done();
+ },
+ searchReset() {
+ this.query = {};
+ this.onLoad(this.page);
+ },
+ searchChange(params, done) {
+ this.query = params;
+ this.page.currentPage = 1;
+ this.onLoad(this.page, params);
+ done();
+ },
+ selectionChange(list) {
+ this.selectionList = list;
+ },
+ selectionClear() {
+ this.selectionList = [];
+ this.$refs.crud.toggleSelection();
+ },
+ currentChange(currentPage) {
+ this.page.currentPage = currentPage;
+ },
+ sizeChange(pageSize) {
+ this.page.pageSize = pageSize;
+ },
+ refreshChange() {
+ this.onLoad(this.page, this.query);
+ },
+ onLoad(page, params = {}) {
+ this.loading = true;
+
+ const {
+ taskName,
+ } = this.query;
+
+ let values = {
+ taskName_like: taskName,
+ };
+
+ getList(page.currentPage, page.pageSize, values).then(res => {
+ const data = res.data.data;
+ this.page.total = data.total;
+ this.data = data.records;
+ this.loading = false;
+ this.selectionClear();
+ });
}
- };
+ }
+};
</script>
-<style>
-</style>
+<style></style>
diff --git a/src/views/evaluate/quest.vue b/src/views/evaluate/quest.vue
deleted file mode 100644
index b50cd0a..0000000
--- a/src/views/evaluate/quest.vue
+++ /dev/null
@@ -1,119 +0,0 @@
-<template>
- <basic-container>
- <template v-if="isWeight">
- <avue-crud ref="crud" v-model="form" v-model:search="search" :option="option" :data="data" v-model:page="page"
- @search-change="searchChange" @search-reset="searchReset" @current-change="currentChange"
- @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
- <template #menu="{ size, row, index }">
- <el-button type="primary" text plain icon="el-icon-position" >
- 发布
- </el-button>
- <el-button type="primary" text plain icon="el-icon-download">
- 导出
- </el-button>
- </template>
- </avue-crud>
- </template>
- </basic-container>
-</template>
-
-<script>
-export default {
- data() {
- return {
- isWeight: true,
- form: {},
- search: {},
- data: [
- {
-
- }
- ],
- option: {
- height: 'auto',
- calcHeight: 32,
- tip: true,
- searchMenuSpan: 6,
- border: true,
- index: true,
- addBtn: true,
- viewBtn: true,
- editBtn: true,
- delBtn: true,
- menuFixed: 'right',
- labelWidth: 150,
- column: [
- {
- label: "考核编号",
- prop: "id",
- type: "input",
- addDisplay: false,
- editDisplay: false,
- viewDisplay: false,
- hide: true,
- },
- {
- label: "评优项目",
- type: "input",
- search: true,
-
- },
- {
- label: "候选人评选状态",
- type: "input",
- width: 200,
- },
- {
- label: "候选人数量",
- type: "input",
- },
- {
- label: "评选人数量",
- type: "input",
- },
- {
- label: "评优评选状态",
- type: "input",
- },
- {
- label: "认定标准描述",
- type: "input",
- },
- {
- label: "候选人截止时间",
- type: "input",
- },
- {
- label: "评优评先截止时间",
- type: "input",
- }
- ]
- },
- page: {
- pageSize: 10,
- currentPage: 1,
- total: 1,
- },
- }
- },
- methods: {
- handleWeight(value) {
- this.isWeight = false
- },
- changeIs(is) {
- this.isWeight = is
- },
- searchChange() { },
- searchReset() { },
- currentChange() { },
- sizeChange() { },
- refreshChange() { },
- onLoad(page, params = {}) {
-
- }
- }
-}
-</script>
-
-<style></style>
-
\ No newline at end of file
--
Gitblit v1.9.3