|
|
@@ -39,11 +39,21 @@
|
|
|
</template>
|
|
|
<!-- 操作 -->
|
|
|
<template v-slot:action="{ row }">
|
|
|
+ <el-link
|
|
|
+ type="primary"
|
|
|
+ :underline="false"
|
|
|
+ icon="el-icon-edit"
|
|
|
+ @click="submit(row)"
|
|
|
+ v-if="[0, 3].includes(row.reviewStatus)"
|
|
|
+ >
|
|
|
+ 提交
|
|
|
+ </el-link>
|
|
|
<el-link
|
|
|
type="primary"
|
|
|
:underline="false"
|
|
|
icon="el-icon-edit"
|
|
|
@click="handleAddOrEdit(row, 'update')"
|
|
|
+ v-if="[0, 3].includes(row.reviewStatus)"
|
|
|
>
|
|
|
修改
|
|
|
</el-link>
|
|
|
@@ -51,6 +61,7 @@
|
|
|
class="ele-action"
|
|
|
title="确定要删除此信息吗?"
|
|
|
@confirm="remove([row.id])"
|
|
|
+ v-if="[0, 3].includes(row.reviewStatus)"
|
|
|
>
|
|
|
<template v-slot:reference>
|
|
|
<el-link type="danger" :underline="false" icon="el-icon-delete">
|
|
|
@@ -70,7 +81,13 @@
|
|
|
</template>
|
|
|
</ele-pro-table>
|
|
|
</el-card>
|
|
|
-
|
|
|
+ <process-submit-dialog
|
|
|
+ :isNotNeedProcess="false"
|
|
|
+ :processSubmitDialogFlag.sync="processSubmitDialogFlag"
|
|
|
+ v-if="processSubmitDialogFlag"
|
|
|
+ ref="processSubmitDialogRef"
|
|
|
+ @reload="reload"
|
|
|
+ ></process-submit-dialog>
|
|
|
<add-or-edit-dialog
|
|
|
ref="addOrEditDialogRef"
|
|
|
@reload="reload"
|
|
|
@@ -80,237 +97,270 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import tabMixins from '@/mixins/tableColumnsMixin';
|
|
|
-import dictMixins from '@/mixins/dictMixins';
|
|
|
-import addOrEditDialog from './components/addOrEditDialog.vue';
|
|
|
-import viewDialog from './components/viewDialog.vue';
|
|
|
-import searchTable from './components/searchTable.vue';
|
|
|
-import { salesTargetPage ,settlementAccountRemoveAPI} from '@/api/targetManage/index.js';
|
|
|
+ import tabMixins from '@/mixins/tableColumnsMixin';
|
|
|
+ import dictMixins from '@/mixins/dictMixins';
|
|
|
+ import addOrEditDialog from './components/addOrEditDialog.vue';
|
|
|
+ import viewDialog from './components/viewDialog.vue';
|
|
|
+ import searchTable from './components/searchTable.vue';
|
|
|
+ import {
|
|
|
+ salesTargetPage,
|
|
|
+ settlementAccountRemoveAPI
|
|
|
+ } from '@/api/targetManage/index.js';
|
|
|
+ import { reviewStatus } from '@/enum/dict';
|
|
|
+ import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
|
|
|
|
|
|
-export default {
|
|
|
- mixins: [dictMixins,tabMixins],
|
|
|
- components: {
|
|
|
- addOrEditDialog,
|
|
|
- searchTable,
|
|
|
- viewDialog
|
|
|
- },
|
|
|
- data() {
|
|
|
- return {
|
|
|
- // 加载状态
|
|
|
- loading: false,
|
|
|
- delVisible: false,
|
|
|
- selection: [],
|
|
|
- cacheKeyUrl:'eos-be72e790-targetManage-salesTarget',
|
|
|
- columnsVersion:1,
|
|
|
- };
|
|
|
- },
|
|
|
- computed: {
|
|
|
- columns() {
|
|
|
- // 当columnsVersion变化时会重新计算,用作更新列配置
|
|
|
- const version = this.columnsVersion;
|
|
|
- return [
|
|
|
- {
|
|
|
- width: 45,
|
|
|
- type: 'selection',
|
|
|
- columnKey: 'selection',
|
|
|
- align: 'center'
|
|
|
- },
|
|
|
- {
|
|
|
- width: 60,
|
|
|
- label: '序号',
|
|
|
- type: 'index',
|
|
|
- columnKey: 'index',
|
|
|
- align: 'center'
|
|
|
- },
|
|
|
- {
|
|
|
- minWidth: 200,
|
|
|
- prop: 'code',
|
|
|
- label: '编码',
|
|
|
- align: 'center',
|
|
|
- slot: 'code',
|
|
|
- showOverflowTooltip: true
|
|
|
- },
|
|
|
- {
|
|
|
- minWidth: 200,
|
|
|
- prop: 'name',
|
|
|
- label: '名称',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true
|
|
|
- },
|
|
|
- {
|
|
|
- minWidth: 80,
|
|
|
- prop: 'type',
|
|
|
- label: '类型',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- formatter: (row, column) => {
|
|
|
- return row.type == 1 ? '年度' : row.type == 2 ? '季度' : '月度';
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- minWidth: 200,
|
|
|
- prop: 'assessmentObject',
|
|
|
- label: '目标对象',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- formatter: (row, column) => {
|
|
|
- return row.assessmentObject == 1
|
|
|
- ? '公司'
|
|
|
- : row.assessmentObject == 2
|
|
|
- ? '部门'
|
|
|
- : '个人';
|
|
|
- }
|
|
|
- },
|
|
|
+ export default {
|
|
|
+ mixins: [dictMixins, tabMixins],
|
|
|
+ components: {
|
|
|
+ addOrEditDialog,
|
|
|
+ searchTable,
|
|
|
+ viewDialog,processSubmitDialog
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ // 加载状态
|
|
|
+ loading: false,
|
|
|
+ delVisible: false,
|
|
|
+ selection: [],
|
|
|
+ cacheKeyUrl: 'eos-be72e790-targetManage-salesTarget',
|
|
|
+ columnsVersion: 1,
|
|
|
+ processSubmitDialogFlag:false
|
|
|
+ };
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ columns() {
|
|
|
+ // 当columnsVersion变化时会重新计算,用作更新列配置
|
|
|
+ const version = this.columnsVersion;
|
|
|
+ return [
|
|
|
+ {
|
|
|
+ width: 45,
|
|
|
+ type: 'selection',
|
|
|
+ columnKey: 'selection',
|
|
|
+ align: 'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ width: 60,
|
|
|
+ label: '序号',
|
|
|
+ type: 'index',
|
|
|
+ columnKey: 'index',
|
|
|
+ align: 'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ minWidth: 200,
|
|
|
+ prop: 'code',
|
|
|
+ label: '编码',
|
|
|
+ align: 'center',
|
|
|
+ slot: 'code',
|
|
|
+ showOverflowTooltip: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ minWidth: 200,
|
|
|
+ prop: 'name',
|
|
|
+ label: '名称',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ minWidth: 80,
|
|
|
+ prop: 'type',
|
|
|
+ label: '类型',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ formatter: (row, column) => {
|
|
|
+ return row.type == 1 ? '年度' : row.type == 2 ? '季度' : '月度';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ minWidth: 200,
|
|
|
+ prop: 'assessmentObject',
|
|
|
+ label: '目标对象',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ formatter: (row, column) => {
|
|
|
+ return row.assessmentObject == 1
|
|
|
+ ? '公司'
|
|
|
+ : row.assessmentObject == 2
|
|
|
+ ? '部门'
|
|
|
+ : '个人';
|
|
|
+ }
|
|
|
+ },
|
|
|
|
|
|
- {
|
|
|
- minWidth: 150,
|
|
|
- prop: 'departmentName',
|
|
|
- label: '部门',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true
|
|
|
- },
|
|
|
- {
|
|
|
- minWidth: 100,
|
|
|
- prop: 'userName',
|
|
|
- label: '姓名',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true
|
|
|
- },
|
|
|
- {
|
|
|
- minWidth: 200,
|
|
|
- prop: 'assessmentDimensions',
|
|
|
- label: '统计财年',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true
|
|
|
- },
|
|
|
- {
|
|
|
- minWidth: 80,
|
|
|
- prop: 'enabled',
|
|
|
- label: '状态',
|
|
|
- align: 'center',
|
|
|
- slot: 'modelType',
|
|
|
- showOverflowTooltip: true,
|
|
|
- formatter: (row, column) => {
|
|
|
- // return row.enabled ? '进行中' : '已完成';
|
|
|
+ {
|
|
|
+ minWidth: 150,
|
|
|
+ prop: 'departmentName',
|
|
|
+ label: '部门',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ minWidth: 100,
|
|
|
+ prop: 'userName',
|
|
|
+ label: '姓名',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ minWidth: 200,
|
|
|
+ prop: 'assessmentDimensions',
|
|
|
+ label: '统计财年',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ minWidth: 80,
|
|
|
+ prop: 'status',
|
|
|
+ label: '状态',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ formatter: (row, column) => {
|
|
|
+ return row.status == 1 ? '已发布' : '待发布';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ minWidth: 80,
|
|
|
+ prop: 'reviewStatus',
|
|
|
+ label: '审核状态',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ formatter: (row, column) => {
|
|
|
+ return reviewStatus[row.reviewStatus];
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ minWidth: 100,
|
|
|
+ prop: 'createTime',
|
|
|
+ label: '创建时间',
|
|
|
+ align: 'center',
|
|
|
+ slot: 'createTime',
|
|
|
+ showOverflowTooltip: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ columnKey: 'action',
|
|
|
+ label: '操作',
|
|
|
+ width: 180,
|
|
|
+ align: 'center',
|
|
|
+ resizable: false,
|
|
|
+ slot: 'action',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ fixed: 'right'
|
|
|
}
|
|
|
- },
|
|
|
- {
|
|
|
- minWidth: 100,
|
|
|
- prop: 'createTime',
|
|
|
- label: '创建时间',
|
|
|
- align: 'center',
|
|
|
- slot: 'createTime',
|
|
|
- showOverflowTooltip: true
|
|
|
- },
|
|
|
- {
|
|
|
- columnKey: 'action',
|
|
|
- label: '操作',
|
|
|
- width: 120,
|
|
|
- align: 'center',
|
|
|
- resizable: false,
|
|
|
- slot: 'action',
|
|
|
- showOverflowTooltip: true,
|
|
|
- fixed: 'right'
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {},
|
|
|
+ methods: {
|
|
|
+ //新增、修改
|
|
|
+ handleAddOrEdit(row = {}, type) {
|
|
|
+ if (type == 'view') {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.viewDialogRef.open(row);
|
|
|
+ });
|
|
|
+ return;
|
|
|
}
|
|
|
- ];
|
|
|
- }
|
|
|
- },
|
|
|
- created() {},
|
|
|
- methods: {
|
|
|
- //新增、修改
|
|
|
- handleAddOrEdit(row = {}, type) {
|
|
|
- if (type == 'view') {
|
|
|
this.$nextTick(() => {
|
|
|
- this.$refs.viewDialogRef.open(row);
|
|
|
+ this.$refs.addOrEditDialogRef.open(row, type);
|
|
|
});
|
|
|
- return;
|
|
|
- }
|
|
|
- this.$nextTick(() => {
|
|
|
- this.$refs.addOrEditDialogRef.open(row, type);
|
|
|
- });
|
|
|
- },
|
|
|
- //新增、修改
|
|
|
- handleDetail(row = {}, type) {
|
|
|
- this.detailDialogFlag = true;
|
|
|
- this.$nextTick(() => {
|
|
|
- this.$refs.detailDialogRef.init(row, type);
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- /* 表格数据源 */
|
|
|
- datasource({ page, limit, where, order }) {
|
|
|
- return salesTargetPage({
|
|
|
- pageNum: page,
|
|
|
- size: limit,
|
|
|
- ...where
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- /* 刷新表格 */
|
|
|
- reload(where = {}) {
|
|
|
- console.log(1111);
|
|
|
- this.$refs.table.reload({ page: 1, where });
|
|
|
- },
|
|
|
+ },
|
|
|
+ //新增、修改
|
|
|
+ handleDetail(row = {}, type) {
|
|
|
+ this.detailDialogFlag = true;
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.detailDialogRef.init(row, type);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ submit(row){
|
|
|
+ this.processSubmitDialogFlag = true;
|
|
|
+ this.$nextTick(() => {
|
|
|
+ let params = {
|
|
|
+ businessId: row.id,
|
|
|
+ businessKey: 'sales_target_approve',
|
|
|
+ formCreateUserId: row.createUserId,
|
|
|
+ variables: {
|
|
|
+ businessCode: row.code
|
|
|
+ }
|
|
|
+
|
|
|
+ };
|
|
|
+ this.$refs.processSubmitDialogRef.init(params);
|
|
|
+ });
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ /* 表格数据源 */
|
|
|
+ datasource({ page, limit, where, order }) {
|
|
|
+ return salesTargetPage({
|
|
|
+ pageNum: page,
|
|
|
+ size: limit,
|
|
|
+ ...where
|
|
|
+ });
|
|
|
+ },
|
|
|
|
|
|
- //批量删除
|
|
|
- allDelBtn() {
|
|
|
- if (this.selection.length === 0) return;
|
|
|
- let flag = this.selection.some((item) =>
|
|
|
- [1, 2].includes(item.approvalStatus)
|
|
|
- );
|
|
|
- if (flag)
|
|
|
- return this.$message.warning('抱歉已审核、审核中的数据不能删除,请检查');
|
|
|
- this.delVisible = true;
|
|
|
- },
|
|
|
+ /* 刷新表格 */
|
|
|
+ reload(where = {}) {
|
|
|
+ console.log(1111);
|
|
|
+ this.$refs.table.reload({ page: 1, where });
|
|
|
+ },
|
|
|
|
|
|
- commitBtn() {
|
|
|
- const dataId = this.selection.map((v) => v.id);
|
|
|
- settlementAccountRemoveAPI(dataId).then((res) => {
|
|
|
- this.$message.success('删除成功!');
|
|
|
- this.reload();
|
|
|
- });
|
|
|
- },
|
|
|
- remove(row) {
|
|
|
- settlementAccountRemoveAPI(row).then((res) => {
|
|
|
- this.$message.success('删除成功!');
|
|
|
- this.reload();
|
|
|
- });
|
|
|
- },
|
|
|
+ //批量删除
|
|
|
+ allDelBtn() {
|
|
|
+ if (this.selection.length === 0) return;
|
|
|
+ let flag = this.selection.some((item) =>
|
|
|
+ [1, 2].includes(item.approvalStatus)
|
|
|
+ );
|
|
|
+ if (flag)
|
|
|
+ return this.$message.warning(
|
|
|
+ '抱歉已审核、审核中的数据不能删除,请检查'
|
|
|
+ );
|
|
|
+ this.delVisible = true;
|
|
|
+ },
|
|
|
|
|
|
- sub(res) {
|
|
|
- settlementAccountSubmit({
|
|
|
- businessId: res.id
|
|
|
- })
|
|
|
- .then((res) => {
|
|
|
- this.$message.success('提交成功');
|
|
|
+ commitBtn() {
|
|
|
+ const dataId = this.selection.map((v) => v.id);
|
|
|
+ settlementAccountRemoveAPI(dataId).then((res) => {
|
|
|
+ this.$message.success('删除成功!');
|
|
|
+ this.reload();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ remove(row) {
|
|
|
+ settlementAccountRemoveAPI(row).then((res) => {
|
|
|
+ this.$message.success('删除成功!');
|
|
|
this.reload();
|
|
|
- })
|
|
|
- .catch((e) => {
|
|
|
- this.$message.error(e.message);
|
|
|
});
|
|
|
+ },
|
|
|
+
|
|
|
+ sub(res) {
|
|
|
+ settlementAccountSubmit({
|
|
|
+ businessId: res.id
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ this.$message.success('提交成功');
|
|
|
+ this.reload();
|
|
|
+ })
|
|
|
+ .catch((e) => {
|
|
|
+ this.$message.error(e.message);
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
-};
|
|
|
+ };
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
-:deep(.el-link--inner) {
|
|
|
- margin-left: 0px !important;
|
|
|
-}
|
|
|
+ :deep(.el-link--inner) {
|
|
|
+ margin-left: 0px !important;
|
|
|
+ }
|
|
|
|
|
|
-.sys-organization-list {
|
|
|
- height: calc(100vh - 264px);
|
|
|
- box-sizing: border-box;
|
|
|
- border-width: 1px;
|
|
|
- border-style: solid;
|
|
|
- overflow: auto;
|
|
|
-}
|
|
|
+ .sys-organization-list {
|
|
|
+ height: calc(100vh - 264px);
|
|
|
+ box-sizing: border-box;
|
|
|
+ border-width: 1px;
|
|
|
+ border-style: solid;
|
|
|
+ overflow: auto;
|
|
|
+ }
|
|
|
|
|
|
-.sys-organization-list :deep(.el-tree-node__content) {
|
|
|
- height: 40px;
|
|
|
+ .sys-organization-list :deep(.el-tree-node__content) {
|
|
|
+ height: 40px;
|
|
|
|
|
|
- & > .el-tree-node__expand-icon {
|
|
|
- margin-left: 10px;
|
|
|
+ & > .el-tree-node__expand-icon {
|
|
|
+ margin-left: 10px;
|
|
|
+ }
|
|
|
}
|
|
|
-}
|
|
|
</style>
|