|
|
@@ -54,17 +54,17 @@
|
|
|
>
|
|
|
新建
|
|
|
</el-button>
|
|
|
-<!-- <el-button-->
|
|
|
-<!-- size="small"-->
|
|
|
-<!-- type="danger"-->
|
|
|
-<!-- el-icon-delete-->
|
|
|
-<!-- class="ele-btn-icon"-->
|
|
|
-<!-- v-if="$hasPermission('eom:contact:delete')"-->
|
|
|
-<!-- @click="allDelBtn"-->
|
|
|
-<!-- :disabled="selection?.length === 0"-->
|
|
|
-<!-- >-->
|
|
|
-<!-- 批量删除-->
|
|
|
-<!-- </el-button>-->
|
|
|
+ <!-- <el-button-->
|
|
|
+ <!-- size="small"-->
|
|
|
+ <!-- type="danger"-->
|
|
|
+ <!-- el-icon-delete-->
|
|
|
+ <!-- class="ele-btn-icon"-->
|
|
|
+ <!-- v-if="$hasPermission('eom:contact:delete')"-->
|
|
|
+ <!-- @click="allDelBtn"-->
|
|
|
+ <!-- :disabled="selection?.length === 0"-->
|
|
|
+ <!-- >-->
|
|
|
+ <!-- 批量删除-->
|
|
|
+ <!-- </el-button>-->
|
|
|
<el-button
|
|
|
size="small"
|
|
|
type="primary"
|
|
|
@@ -86,7 +86,11 @@
|
|
|
批量释放
|
|
|
</el-button>
|
|
|
</template>
|
|
|
-
|
|
|
+ <template v-slot:qrCode="{ row }">
|
|
|
+ <el-link type="primary" :underline="false" @click="setCode(row)">
|
|
|
+ 二维码</el-link
|
|
|
+ >
|
|
|
+ </template>
|
|
|
<template v-slot:name="{ row }">
|
|
|
<el-link type="primary" :underline="false" @click="openDetail(row)">
|
|
|
{{ row.name }}</el-link
|
|
|
@@ -100,31 +104,39 @@
|
|
|
:underline="false"
|
|
|
icon="el-icon-edit"
|
|
|
@click="openEdit('编辑', row)"
|
|
|
- v-if="row.assignStatus !== 1&& $hasPermission('eom:contact:update')&&[0, 3].includes(row.approvalStatus)"
|
|
|
+ v-if="
|
|
|
+ row.assignStatus !== 1 &&
|
|
|
+ $hasPermission('eom:contact:update') &&
|
|
|
+ [0, 3].includes(row.approvalStatus)
|
|
|
+ "
|
|
|
>
|
|
|
修改
|
|
|
</el-link>
|
|
|
- <!-- <el-link-->
|
|
|
-<!-- type="primary"-->
|
|
|
-<!-- v-if="isNeed_process_is_close&&[0, 3].includes(row.approvalStatus)"-->
|
|
|
-<!-- :underline="false"-->
|
|
|
-<!-- icon="el-icon-plus"-->
|
|
|
-<!-- @click="sub(row)"-->
|
|
|
-<!-- >-->
|
|
|
-<!-- 提交-->
|
|
|
-<!-- </el-link> -->
|
|
|
+ <!-- <el-link-->
|
|
|
+ <!-- type="primary"-->
|
|
|
+ <!-- v-if="isNeed_process_is_close&&[0, 3].includes(row.approvalStatus)"-->
|
|
|
+ <!-- :underline="false"-->
|
|
|
+ <!-- icon="el-icon-plus"-->
|
|
|
+ <!-- @click="sub(row)"-->
|
|
|
+ <!-- >-->
|
|
|
+ <!-- 提交-->
|
|
|
+ <!-- </el-link> -->
|
|
|
<el-link
|
|
|
type="primary"
|
|
|
v-if="
|
|
|
- row.assignStatus === 0 && $hasPermission('eom:contact:assign')&&[2].includes(row.approvalStatus)
|
|
|
- "
|
|
|
+ row.assignStatus === 0 &&
|
|
|
+ $hasPermission('eom:contact:assign') &&
|
|
|
+ [2].includes(row.approvalStatus)
|
|
|
+ "
|
|
|
:underline="false"
|
|
|
@click="assign('', row)"
|
|
|
>
|
|
|
指派
|
|
|
</el-link>
|
|
|
<el-link
|
|
|
- v-if="row.assignStatus === 1&& $hasPermission('eom:contact:free')"
|
|
|
+ v-if="
|
|
|
+ row.assignStatus === 1 && $hasPermission('eom:contact:free')
|
|
|
+ "
|
|
|
type="warning"
|
|
|
:underline="false"
|
|
|
@click="setFree('', row)"
|
|
|
@@ -132,7 +144,11 @@
|
|
|
释放
|
|
|
</el-link>
|
|
|
<el-link
|
|
|
- v-if="row.status === 2 && row.assignStatus !== 1&& $hasPermission('eom:contact:update')"
|
|
|
+ v-if="
|
|
|
+ row.status === 2 &&
|
|
|
+ row.assignStatus !== 1 &&
|
|
|
+ $hasPermission('eom:contact:update')
|
|
|
+ "
|
|
|
type="primary"
|
|
|
:underline="false"
|
|
|
icon="el-icon-check"
|
|
|
@@ -141,7 +157,11 @@
|
|
|
启用
|
|
|
</el-link>
|
|
|
<el-link
|
|
|
- v-if="row.status === 1 && row.assignStatus !== 1&& $hasPermission('eom:contact:update')"
|
|
|
+ v-if="
|
|
|
+ row.status === 1 &&
|
|
|
+ row.assignStatus !== 1 &&
|
|
|
+ $hasPermission('eom:contact:update')
|
|
|
+ "
|
|
|
type="primary"
|
|
|
:underline="false"
|
|
|
icon="el-icon-close"
|
|
|
@@ -153,7 +173,15 @@
|
|
|
<el-popconfirm
|
|
|
class="ele-action"
|
|
|
title="确定要删除此信息吗?"
|
|
|
- v-if="(row.assignStatus !== 1&& $hasPermission('eom:contact:delete')&&[0, 3].includes(row.approvalStatus)&&isNeed_process_is_close)||(row.assignStatus !== 1&& $hasPermission('eom:contact:delete')&&!isNeed_process_is_close)"
|
|
|
+ v-if="
|
|
|
+ (row.assignStatus !== 1 &&
|
|
|
+ $hasPermission('eom:contact:delete') &&
|
|
|
+ [0, 3].includes(row.approvalStatus) &&
|
|
|
+ isNeed_process_is_close) ||
|
|
|
+ (row.assignStatus !== 1 &&
|
|
|
+ $hasPermission('eom:contact:delete') &&
|
|
|
+ !isNeed_process_is_close)
|
|
|
+ "
|
|
|
@confirm="remove(row)"
|
|
|
>
|
|
|
<template v-slot:reference>
|
|
|
@@ -181,402 +209,415 @@
|
|
|
@done="commitBtn"
|
|
|
/>
|
|
|
<drawer ref="drawerRef"></drawer>
|
|
|
- <process-submit-dialog :processSubmitDialogFlag.sync="processSubmitDialogFlag" v-if="processSubmitDialogFlag" ref="processSubmitDialogRef" @reload="reload"></process-submit-dialog>
|
|
|
+ <process-submit-dialog
|
|
|
+ :processSubmitDialogFlag.sync="processSubmitDialogFlag"
|
|
|
+ v-if="processSubmitDialogFlag"
|
|
|
+ ref="processSubmitDialogRef"
|
|
|
+ @reload="reload"
|
|
|
+ ></process-submit-dialog>
|
|
|
+ <myqsCode ref="qsCodeRef"></myqsCode>
|
|
|
|
|
|
</ele-split-layout>
|
|
|
- <!-- </el-card> -->
|
|
|
|
|
|
- <!-- </div> -->
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import ContactSearch from './components/contactSearch.vue';
|
|
|
-import AddContactDialog from './components/addContactDialog.vue';
|
|
|
-import assignDialog from './components/assignDialog.vue';
|
|
|
-import ContactDetailDialog from './components/contactDetailDialog.vue';
|
|
|
-import popModal from '@/components/pop-modal';
|
|
|
-import AssetTree from '@/components/AssetTree';
|
|
|
-import {
|
|
|
- contactDelete,
|
|
|
- contactPage,
|
|
|
- contactTypeTree,
|
|
|
- updateStatus,
|
|
|
- free
|
|
|
-} from '@/api/saleManage/contact';
|
|
|
-import dictMixins from '@/mixins/dictMixins';
|
|
|
-import drawer from './components/drawer.vue';
|
|
|
-import { mapGetters } from 'vuex';
|
|
|
-import {reviewStatus} from "@/enum/dict";
|
|
|
-import processSubmitDialog from "@/BIZComponents/processSubmitDialog/processSubmitDialog.vue";
|
|
|
+ import ContactSearch from './components/contactSearch.vue';
|
|
|
+ import AddContactDialog from './components/addContactDialog.vue';
|
|
|
+ import assignDialog from './components/assignDialog.vue';
|
|
|
+ import ContactDetailDialog from './components/contactDetailDialog.vue';
|
|
|
+ import popModal from '@/components/pop-modal';
|
|
|
+ import AssetTree from '@/components/AssetTree';
|
|
|
+ import {
|
|
|
+ contactDelete,
|
|
|
+ contactPage,
|
|
|
+ contactTypeTree,
|
|
|
+ updateStatus,
|
|
|
+ free
|
|
|
+ } from '@/api/saleManage/contact';
|
|
|
+ import dictMixins from '@/mixins/dictMixins';
|
|
|
+ import drawer from './components/drawer.vue';
|
|
|
+ import { mapGetters } from 'vuex';
|
|
|
+ import { reviewStatus } from '@/enum/dict';
|
|
|
+ import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
|
|
|
+ import myqsCode from './components/qsCode.vue';
|
|
|
|
|
|
-export default {
|
|
|
- mixins: [dictMixins],
|
|
|
- components: {
|
|
|
- processSubmitDialog,
|
|
|
- AssetTree,
|
|
|
- ContactSearch,
|
|
|
- popModal,
|
|
|
- AddContactDialog,
|
|
|
- ContactDetailDialog,
|
|
|
- assignDialog,
|
|
|
- drawer
|
|
|
- },
|
|
|
- data() {
|
|
|
- return {
|
|
|
- selection: [],
|
|
|
- defaultExpandedKeys: [],
|
|
|
- delVisible: false,
|
|
|
- processSubmitDialogFlag: false,
|
|
|
- // 加载状态
|
|
|
- loading: false,
|
|
|
- columns: [
|
|
|
- {
|
|
|
- width: 45,
|
|
|
- type: 'selection',
|
|
|
- columnKey: 'selection',
|
|
|
- align: 'center'
|
|
|
- },
|
|
|
- {
|
|
|
- columnKey: 'index',
|
|
|
- label: '序号',
|
|
|
- type: 'index',
|
|
|
- width: 55,
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- fixed: 'left'
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'code',
|
|
|
- label: '编码',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 140, fixed: 'left'
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'name',
|
|
|
- label: '名称',
|
|
|
- align: 'center',
|
|
|
- slot: 'name',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 200, fixed: 'left'
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'serialNo',
|
|
|
- label: '代号',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 140
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'phone',
|
|
|
- label: '电话',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 120
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'addressName',
|
|
|
- label: '单位地址',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 120,
|
|
|
- formatter: (_row, _column, cellValue) => {
|
|
|
- let addr =
|
|
|
- '' + _row.addressName ? _row.addressName.replaceAll(',', '') : '';
|
|
|
- addr += _row.address ? _row.address : '';
|
|
|
- return addr;
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'linkName',
|
|
|
- label: '联系人',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 120
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'linkPhone',
|
|
|
- label: '联系人电话',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 120
|
|
|
- },
|
|
|
+ export default {
|
|
|
+ mixins: [dictMixins],
|
|
|
+ components: {
|
|
|
+ processSubmitDialog,
|
|
|
+ AssetTree,
|
|
|
+ ContactSearch,
|
|
|
+ popModal,
|
|
|
+ AddContactDialog,
|
|
|
+ ContactDetailDialog,
|
|
|
+ assignDialog,
|
|
|
+ drawer,myqsCode
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ selection: [],
|
|
|
+ defaultExpandedKeys: [],
|
|
|
+ delVisible: false,
|
|
|
+ processSubmitDialogFlag: false,
|
|
|
+
|
|
|
+ // 加载状态
|
|
|
+ loading: false,
|
|
|
+ columns: [
|
|
|
+ {
|
|
|
+ width: 45,
|
|
|
+ type: 'selection',
|
|
|
+ columnKey: 'selection',
|
|
|
+ align: 'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ columnKey: 'index',
|
|
|
+ label: '序号',
|
|
|
+ type: 'index',
|
|
|
+ width: 55,
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ fixed: 'left'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'code',
|
|
|
+ label: '编码',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 140,
|
|
|
+ fixed: 'left'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'name',
|
|
|
+ label: '名称',
|
|
|
+ align: 'center',
|
|
|
+ slot: 'name',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 200,
|
|
|
+ fixed: 'left'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'serialNo',
|
|
|
+ label: '代号',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 140
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'phone',
|
|
|
+ label: '电话',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 120
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'addressName',
|
|
|
+ label: '单位地址',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 120,
|
|
|
+ formatter: (_row, _column, cellValue) => {
|
|
|
+ let addr =
|
|
|
+ '' + _row.addressName
|
|
|
+ ? _row.addressName.replaceAll(',', '')
|
|
|
+ : '';
|
|
|
+ addr += _row.address ? _row.address : '';
|
|
|
+ return addr;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'linkName',
|
|
|
+ label: '联系人',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 120
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'linkPhone',
|
|
|
+ label: '联系人电话',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 120
|
|
|
+ },
|
|
|
|
|
|
- {
|
|
|
- prop: 'parentName',
|
|
|
- label: '上级单位',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 120
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'salesmanName',
|
|
|
- label: '销售员',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 120
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'assignStatus',
|
|
|
- label: '是否指派',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 100,
|
|
|
- formatter: (_row, _column, cellValue) => {
|
|
|
- return _row.assignStatus === 1 ? '是' : '否';
|
|
|
- }
|
|
|
- },
|
|
|
+ {
|
|
|
+ prop: 'parentName',
|
|
|
+ label: '上级单位',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 120
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'salesmanName',
|
|
|
+ label: '销售员',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 120
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'assignStatus',
|
|
|
+ label: '是否指派',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 100,
|
|
|
+ formatter: (_row, _column, cellValue) => {
|
|
|
+ return _row.assignStatus === 1 ? '是' : '否';
|
|
|
+ }
|
|
|
+ },
|
|
|
|
|
|
- {
|
|
|
- prop: 'status',
|
|
|
- label: '状态',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 100,
|
|
|
- formatter: (_row, _column, cellValue) => {
|
|
|
- return _row.status === 1 ? '启用' : '禁用';
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'approvalStatus',
|
|
|
- label: '审批状态',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 100,
|
|
|
- formatter: (_row, _column, cellValue) => {
|
|
|
- return reviewStatus[_row.approvalStatus];
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'createUsername',
|
|
|
- label: '创建人',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 100
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'createTime',
|
|
|
- label: '创建时间',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 160,
|
|
|
- formatter: (_row, _column, cellValue) => {
|
|
|
- return this.$util.toDateString(cellValue);
|
|
|
+ {
|
|
|
+ prop: 'status',
|
|
|
+ label: '状态',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 100,
|
|
|
+ formatter: (_row, _column, cellValue) => {
|
|
|
+ return _row.status === 1 ? '启用' : '禁用';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'approvalStatus',
|
|
|
+ label: '审批状态',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 100,
|
|
|
+ formatter: (_row, _column, cellValue) => {
|
|
|
+ return reviewStatus[_row.approvalStatus];
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'createUsername',
|
|
|
+ label: '创建人',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 100
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'createTime',
|
|
|
+ label: '创建时间',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 160,
|
|
|
+ formatter: (_row, _column, cellValue) => {
|
|
|
+ return this.$util.toDateString(cellValue);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ columnKey: 'action',
|
|
|
+ label: '操作',
|
|
|
+ width: 280,
|
|
|
+ align: 'center',
|
|
|
+ resizable: false,
|
|
|
+ slot: 'action',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ fixed: 'right'
|
|
|
}
|
|
|
+ ],
|
|
|
+ current: {},
|
|
|
+ curNodeData: {},
|
|
|
+ treeList: [],
|
|
|
+ treeLoading: false,
|
|
|
+ formData: {},
|
|
|
+ rootTreeId: null,
|
|
|
+ defaultProps: {
|
|
|
+ children: 'children',
|
|
|
+ label: 'name'
|
|
|
},
|
|
|
- {
|
|
|
- columnKey: 'action',
|
|
|
- label: '操作',
|
|
|
- width: 280,
|
|
|
- align: 'center',
|
|
|
- resizable: false,
|
|
|
- slot: 'action',
|
|
|
- showOverflowTooltip: true,
|
|
|
- fixed: 'right'
|
|
|
- }
|
|
|
- ],
|
|
|
- current: {},
|
|
|
- curNodeData: {},
|
|
|
- treeList: [],
|
|
|
- treeLoading: false,
|
|
|
- formData: {},
|
|
|
- rootTreeId: null,
|
|
|
- defaultProps: {
|
|
|
- children: 'children',
|
|
|
- label: 'name'
|
|
|
- },
|
|
|
- showEdit: true
|
|
|
- };
|
|
|
- },
|
|
|
-
|
|
|
- computed: {
|
|
|
- ...mapGetters(['user'])
|
|
|
- },
|
|
|
- created() {
|
|
|
- this.requestDict('状态');
|
|
|
- this.getTreeData();
|
|
|
- },
|
|
|
- methods: {
|
|
|
- /* 表格数据源 */
|
|
|
- datasource({ page, limit, where, order }) {
|
|
|
- return contactPage({
|
|
|
- pageNum: page,
|
|
|
- size: limit,
|
|
|
- type: 1,
|
|
|
- ...where
|
|
|
- });
|
|
|
- },
|
|
|
- async getTreeData() {
|
|
|
- try {
|
|
|
- this.treeLoading = true;
|
|
|
- const res = await contactTypeTree({ type: 17 });
|
|
|
- this.treeLoading = false;
|
|
|
- if (res?.code === '0') {
|
|
|
- this.treeList = res.data;
|
|
|
- this.$nextTick(() => {
|
|
|
- this.defaultExpandedKeys = this.treeList?.map(
|
|
|
- (item) => item.id
|
|
|
- ) || [17];
|
|
|
- // 默认高亮第一级树节点
|
|
|
- // if (this.treeList[0]) {
|
|
|
- // this.rootTreeId = this.treeList[0].id;
|
|
|
- // this.getDetail(this.treeList[0].id);
|
|
|
- // }
|
|
|
- });
|
|
|
- return this.treeList;
|
|
|
- }
|
|
|
- } catch (error) {}
|
|
|
- this.treeLoading = false;
|
|
|
- },
|
|
|
- handleNodeClick(data, node) {
|
|
|
- this.curNodeData = data;
|
|
|
- this.reload({ categoryId: data.id });
|
|
|
- },
|
|
|
- /* 刷新表格 */
|
|
|
- reload(where) {
|
|
|
- this.$refs.table.reload({ page: 1, where });
|
|
|
+ showEdit: true
|
|
|
+ };
|
|
|
},
|
|
|
- openEdit(type,row) {
|
|
|
- // console.log(row,'user')
|
|
|
- // this.user.info.id
|
|
|
- this.current = row;
|
|
|
- this.showEdit = true;
|
|
|
- this.$refs.addContactDialogRef.open( type,row, this.curNodeData.id);
|
|
|
- this.$refs.addContactDialogRef.$refs.form &&
|
|
|
- this.$refs.addContactDialogRef.$refs.form.clearValidate();
|
|
|
- },
|
|
|
- sub(res) {
|
|
|
- this.processSubmitDialogFlag = true
|
|
|
- this.$nextTick(()=>{
|
|
|
- let params = {
|
|
|
- businessId:res.id,
|
|
|
- businessKey : 'contact_approve',
|
|
|
- formCreateUserId: res.createUserId,
|
|
|
- variables:{
|
|
|
- certificationType: 1
|
|
|
- },
|
|
|
- // callBackMethodType : '1',
|
|
|
- // callBackMethod : 'proTargetPlanApproveApiImpl.updatePlanApprovalStatus',
|
|
|
- // pcHandle : '/bpm/handleTask/components/project-manage/plan-manage/submit.vue',
|
|
|
- // pcView : '/bpm/handleTask/components/project-manage/plan-manage/detailDialog.vue',
|
|
|
- // miniHandle : '',
|
|
|
- // miniView : '',
|
|
|
- }
|
|
|
|
|
|
-
|
|
|
- this.$refs.processSubmitDialogRef.init(params)
|
|
|
- })
|
|
|
- // submit({
|
|
|
- // businessId: res.id
|
|
|
- // }).then((res) => {
|
|
|
- // this.$message.success('提交成功!');
|
|
|
- // this.reload();
|
|
|
- // });
|
|
|
- },
|
|
|
- //批量删除
|
|
|
- allDelBtn() {
|
|
|
- if (this.selection.length === 0) return;
|
|
|
- this.delVisible = true;
|
|
|
- },
|
|
|
- commitBtn() {
|
|
|
- const dataId = this.selection.map((v) => v.id);
|
|
|
- contactDelete(dataId).then((res) => {
|
|
|
- this.$message.success('删除成功!');
|
|
|
- this.reload();
|
|
|
- });
|
|
|
+ computed: {
|
|
|
+ ...mapGetters(['user'])
|
|
|
},
|
|
|
- remove(row) {
|
|
|
- contactDelete([row.id]).then((res) => {
|
|
|
- this.$message.success('删除成功!');
|
|
|
- this.reload();
|
|
|
- });
|
|
|
+ created() {
|
|
|
+ this.requestDict('状态');
|
|
|
+ this.getTreeData();
|
|
|
},
|
|
|
- /** 启用 */
|
|
|
- enableOption(row) {
|
|
|
- updateStatus(row.id, 1)
|
|
|
- .then((msg) => {
|
|
|
- this.$message.success('启用成功');
|
|
|
+ methods: {
|
|
|
+ /* 表格数据源 */
|
|
|
+ datasource({ page, limit, where, order }) {
|
|
|
+ return contactPage({
|
|
|
+ pageNum: page,
|
|
|
+ size: limit,
|
|
|
+ type: 1,
|
|
|
+ ...where
|
|
|
+ });
|
|
|
+ },
|
|
|
+ async getTreeData() {
|
|
|
+ try {
|
|
|
+ this.treeLoading = true;
|
|
|
+ const res = await contactTypeTree({ type: 17 });
|
|
|
+ this.treeLoading = false;
|
|
|
+ if (res?.code === '0') {
|
|
|
+ this.treeList = res.data;
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.defaultExpandedKeys = this.treeList?.map(
|
|
|
+ (item) => item.id
|
|
|
+ ) || [17];
|
|
|
+ // 默认高亮第一级树节点
|
|
|
+ // if (this.treeList[0]) {
|
|
|
+ // this.rootTreeId = this.treeList[0].id;
|
|
|
+ // this.getDetail(this.treeList[0].id);
|
|
|
+ // }
|
|
|
+ });
|
|
|
+ return this.treeList;
|
|
|
+ }
|
|
|
+ } catch (error) {}
|
|
|
+ this.treeLoading = false;
|
|
|
+ },
|
|
|
+ handleNodeClick(data, node) {
|
|
|
+ this.curNodeData = data;
|
|
|
+ this.reload({ categoryId: data.id });
|
|
|
+ },
|
|
|
+ /* 刷新表格 */
|
|
|
+ reload(where) {
|
|
|
+ this.$refs.table.reload({ page: 1, where });
|
|
|
+ },
|
|
|
+ openEdit(type, row) {
|
|
|
+ // console.log(row,'user')
|
|
|
+ // this.user.info.id
|
|
|
+ this.current = row;
|
|
|
+ this.showEdit = true;
|
|
|
+ this.$refs.addContactDialogRef.open(type, row, this.curNodeData.id);
|
|
|
+ this.$refs.addContactDialogRef.$refs.form &&
|
|
|
+ this.$refs.addContactDialogRef.$refs.form.clearValidate();
|
|
|
+ },
|
|
|
+ sub(res) {
|
|
|
+ this.processSubmitDialogFlag = true;
|
|
|
+ this.$nextTick(() => {
|
|
|
+ let params = {
|
|
|
+ businessId: res.id,
|
|
|
+ businessKey: 'contact_approve',
|
|
|
+ formCreateUserId: res.createUserId,
|
|
|
+ variables: {
|
|
|
+ certificationType: 1
|
|
|
+ }
|
|
|
+ // callBackMethodType : '1',
|
|
|
+ // callBackMethod : 'proTargetPlanApproveApiImpl.updatePlanApprovalStatus',
|
|
|
+ // pcHandle : '/bpm/handleTask/components/project-manage/plan-manage/submit.vue',
|
|
|
+ // pcView : '/bpm/handleTask/components/project-manage/plan-manage/detailDialog.vue',
|
|
|
+ // miniHandle : '',
|
|
|
+ // miniView : '',
|
|
|
+ };
|
|
|
+
|
|
|
+ this.$refs.processSubmitDialogRef.init(params);
|
|
|
+ });
|
|
|
+ // submit({
|
|
|
+ // businessId: res.id
|
|
|
+ // }).then((res) => {
|
|
|
+ // this.$message.success('提交成功!');
|
|
|
+ // this.reload();
|
|
|
+ // });
|
|
|
+ },
|
|
|
+ //批量删除
|
|
|
+ allDelBtn() {
|
|
|
+ if (this.selection.length === 0) return;
|
|
|
+ this.delVisible = true;
|
|
|
+ },
|
|
|
+ commitBtn() {
|
|
|
+ const dataId = this.selection.map((v) => v.id);
|
|
|
+ contactDelete(dataId).then((res) => {
|
|
|
+ this.$message.success('删除成功!');
|
|
|
this.reload();
|
|
|
- })
|
|
|
- .catch((e) => {
|
|
|
- this.$message.error(e.message);
|
|
|
});
|
|
|
- },
|
|
|
- /** 禁用 */
|
|
|
- disableOption(row) {
|
|
|
- updateStatus(row.id, 2)
|
|
|
- .then((msg) => {
|
|
|
- this.$message.success('禁用成功');
|
|
|
+ },
|
|
|
+ remove(row) {
|
|
|
+ contactDelete([row.id]).then((res) => {
|
|
|
+ this.$message.success('删除成功!');
|
|
|
this.reload();
|
|
|
- })
|
|
|
- .catch((e) => {
|
|
|
- this.$message.error(e.message);
|
|
|
});
|
|
|
- },
|
|
|
- //指派
|
|
|
- assign(type, row) {
|
|
|
- let contactIds = [];
|
|
|
- let contactNames = [];
|
|
|
- let isAssign = false;
|
|
|
- if (type == 'all') {
|
|
|
- contactIds = this.selection.map((item) => item.id);
|
|
|
- contactNames = this.selection.map((item) => item.name);
|
|
|
- this.selection.forEach((item) => {
|
|
|
- if (item.assignStatus === 1) {
|
|
|
- isAssign = true;
|
|
|
- }
|
|
|
+ },
|
|
|
+ /** 启用 */
|
|
|
+ enableOption(row) {
|
|
|
+ updateStatus(row.id, 1)
|
|
|
+ .then((msg) => {
|
|
|
+ this.$message.success('启用成功');
|
|
|
+ this.reload();
|
|
|
+ })
|
|
|
+ .catch((e) => {
|
|
|
+ this.$message.error(e.message);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /** 禁用 */
|
|
|
+ disableOption(row) {
|
|
|
+ updateStatus(row.id, 2)
|
|
|
+ .then((msg) => {
|
|
|
+ this.$message.success('禁用成功');
|
|
|
+ this.reload();
|
|
|
+ })
|
|
|
+ .catch((e) => {
|
|
|
+ this.$message.error(e.message);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //指派
|
|
|
+ assign(type, row) {
|
|
|
+ let contactIds = [];
|
|
|
+ let contactNames = [];
|
|
|
+ let isAssign = false;
|
|
|
+ if (type == 'all') {
|
|
|
+ contactIds = this.selection.map((item) => item.id);
|
|
|
+ contactNames = this.selection.map((item) => item.name);
|
|
|
+ this.selection.forEach((item) => {
|
|
|
+ if (item.assignStatus === 1) {
|
|
|
+ isAssign = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ contactIds = [row.id];
|
|
|
+ contactNames = [row.name];
|
|
|
+ }
|
|
|
+ if (isAssign) {
|
|
|
+ this.$message.warning('请先释放已指派的!');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.$refs.assignDialogRef.open(contactIds, contactNames);
|
|
|
+ },
|
|
|
+ setCode(row){
|
|
|
+ this.$refs.qsCodeRef.open(row)
|
|
|
+
|
|
|
+ },
|
|
|
+ //释放
|
|
|
+ setFree(type, row) {
|
|
|
+ let contactIds = [];
|
|
|
+ let contactNames = [];
|
|
|
+ if (type == 'all') {
|
|
|
+ contactIds = this.selection.map((item) => item.id).toString();
|
|
|
+ contactNames = this.selection.map((item) => item.name).toString();
|
|
|
+ } else {
|
|
|
+ contactIds = row.id;
|
|
|
+ contactNames = row.name;
|
|
|
+ }
|
|
|
+ free({ contactIds, contactNames }).then((res) => {
|
|
|
+ this.$message.success('释放成功');
|
|
|
+ this.reload();
|
|
|
});
|
|
|
- } else {
|
|
|
- contactIds = [row.id];
|
|
|
- contactNames = [row.name];
|
|
|
- }
|
|
|
- if (isAssign) {
|
|
|
- this.$message.warning('请先释放已指派的!');
|
|
|
- return;
|
|
|
- }
|
|
|
- this.$refs.assignDialogRef.open(contactIds, contactNames);
|
|
|
- },
|
|
|
- //释放
|
|
|
- setFree(type, row) {
|
|
|
- let contactIds = [];
|
|
|
- let contactNames = [];
|
|
|
- if (type == 'all') {
|
|
|
- contactIds = this.selection.map((item) => item.id).toString();
|
|
|
- contactNames = this.selection.map((item) => item.name).toString();
|
|
|
- } else {
|
|
|
- contactIds = row.id;
|
|
|
- contactNames = row.name;
|
|
|
- }
|
|
|
- free({ contactIds, contactNames }).then((res) => {
|
|
|
- this.$message.success('释放成功');
|
|
|
- this.reload();
|
|
|
- });
|
|
|
- },
|
|
|
+ },
|
|
|
|
|
|
- openDetail(row) {
|
|
|
- // this.$refs.contactDetailDialogRef.open(row);
|
|
|
- this.$refs.drawerRef.open(row,'allList');
|
|
|
+ openDetail(row) {
|
|
|
+ // this.$refs.contactDetailDialogRef.open(row);
|
|
|
+ this.$refs.drawerRef.open(row, 'allList');
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
-};
|
|
|
+ };
|
|
|
</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 :deep(.el-tree-node__content) {
|
|
|
- height: 40px;
|
|
|
- & > .el-tree-node__expand-icon {
|
|
|
- margin-left: 10px;
|
|
|
+ .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;
|
|
|
+ & > .el-tree-node__expand-icon {
|
|
|
+ margin-left: 10px;
|
|
|
+ }
|
|
|
}
|
|
|
-}
|
|
|
</style>
|