From 76302992e7bcb60682ee6d3ae9de6619b477b968 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 09 六月 2026 10:26:48 +0800
Subject: [PATCH] feat:联系人管理,基本信息修改
---
src/views/CNAS/personnel/personnelInfo/index.vue | 286 ----------------------------
src/api/cnas/personal/personalList.js | 24 ++
src/views/CNAS/personnel/personnelInfo/tabs/personnel-list.vue | 284 ++++++++-------------------
3 files changed, 114 insertions(+), 480 deletions(-)
diff --git a/src/api/cnas/personal/personalList.js b/src/api/cnas/personal/personalList.js
index 16bdee1..0218a76 100644
--- a/src/api/cnas/personal/personalList.js
+++ b/src/api/cnas/personal/personalList.js
@@ -1,5 +1,29 @@
import request from "@/utils/request";
+// 鏂板鑱旂郴浜�
+export function addContactPerson(query) {
+ return request({
+ url: "/personBasicInfo/addContactPerson",
+ method: "post",
+ data: query,
+ });
+}
+// 鏇存柊鑱旂郴浜�
+export function updateContactPerson(query) {
+ return request({
+ url: "/personBasicInfo/updateContactPerson",
+ method: "post",
+ data: query,
+ });
+}
+// 鍒犻櫎鑱旂郴浜�
+export function deleteContactPerson(query) {
+ return request({
+ url: "/personBasicInfo/deleteContactPerson",
+ method: "delete",
+ params: query,
+ });
+}
// 鍒犻櫎浜哄憳鏄庣粏鎵�鍦ㄧ粍缁囨灦鏋�
export function delUserDepardLimsId(query) {
return request({
diff --git a/src/views/CNAS/personnel/personnelInfo/index.vue b/src/views/CNAS/personnel/personnelInfo/index.vue
index 5793240..b2c039c 100644
--- a/src/views/CNAS/personnel/personnelInfo/index.vue
+++ b/src/views/CNAS/personnel/personnelInfo/index.vue
@@ -1,326 +1,46 @@
<template>
<div class="main">
- <div class="main_left">
- <el-row>
- <el-col :span="20">
- <el-input
- v-model="search"
- class="div_left_input"
- clearable
- placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�"
- size="small"
- suffix-icon="el-icon-search"
- @blur="searchFilter"
- @clear="searchFilter"
- @keyup.enter.native="searchFilter"
- ></el-input>
- </el-col>
- <el-col :span="4" style="text-align: center;line-height: 30px; margin-top: 14px">
- <el-button circle icon="el-icon-plus" size="mini" type="primary" @click="handleAdd"></el-button>
- </el-col>
- </el-row>
- <el-tree
- ref="tree"
- :data="list"
- :default-expanded-keys="[22]"
- :expand-on-click-node="false"
- :filter-node-method="filterNode"
- :props="{ children: 'children', label: 'name' }"
- highlight-current
- node-key="id"
- style="height:calc(100% - 70px);overflow-y: scroll;scrollbar-width: none;"
- @node-click="handleNodeClick"
- @node-expand="nodeOpen"
- @node-collapse="nodeClose"
- >
- <div slot-scope="{ node, data }" class="custom-tree-node">
- <el-row style="width: 100%;">
- <el-col :span="22" style="text-align: left;">
- <span><i
- :class="`node_i ${data.children != undefined&&data.children.length>0 ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i>
- {{ data.name }}</span>
- </el-col>
- <el-col v-if="node.level>1 && data.id !== null" :span="2" style="text-align: right;">
- <el-button size="mini" type="text" @click.stop="remove(node, data)">
- <i class="el-icon-delete"></i>
- </el-button>
- </el-col>
- </el-row>
- </div>
- </el-tree>
- </div>
- <div class="main_right">
+ <div class="main_right" style="width: 100%;">
<el-tabs v-model="activeName" :lazy="true" type="border-card">
<el-tab-pane label="鍩烘湰淇℃伅" name="鍩烘湰淇℃伅">
- <PersonnelList v-if="activeName === '鍩烘湰淇℃伅' && isShowAll" ref="personnelList" :currentCompaniesList="currentCompaniesList"
- :departId="departId" @refreshTree="refreshTree"
- @updatePerson="updatePerson"></PersonnelList>
- <personnelInformation v-if="activeName === '鍩烘湰淇℃伅' && !isShowAll" :clickNodeVal="clickNodeVal"></personnelInformation>
+ <PersonnelList v-if="activeName === '鍩烘湰淇℃伅'" ref="personnelList"></PersonnelList>
</el-tab-pane>
-<!-- <el-tab-pane label="鍩硅璁″垝" name="鍩硅璁″垝">-->
-<!-- <PersonnelTraining v-if="activeName === '鍩硅璁″垝'" ref="personnelTraining"-->
-<!-- :departId="departId" :isDepartment="isDepartment"></PersonnelTraining>-->
-<!-- </el-tab-pane>-->
-<!-- <el-tab-pane label="宀椾綅鑱岃矗" name="宀椾綅鑱岃矗">-->
-<!-- <job-responsibilities v-if="activeName === '宀椾綅鑱岃矗'" ref="jobResponsibilities"-->
-<!-- :departId="departId"-->
-<!-- :isDepartment="isDepartment"></job-responsibilities>-->
-<!-- </el-tab-pane>-->
-<!-- <el-tab-pane label="濂栨儵璁板綍" name="濂栨儵璁板綍">-->
-<!-- <rewardPunishmentRecord v-if="activeName === '濂栨儵璁板綍'"-->
-<!-- :departId="departId" :isDepartment="isDepartment"></rewardPunishmentRecord>-->
-<!-- </el-tab-pane>-->
-<!-- <el-tab-pane label="鍩硅璁板綍" name="鍩硅璁板綍">-->
-<!-- <training-record v-if="activeName === '鍩硅璁板綍'" ref="trainingRecord"-->
-<!-- :departId="departId"-->
-<!-- :isDepartment="isDepartment"></training-record>-->
-<!-- </el-tab-pane>-->
-<!-- <el-tab-pane label="浠昏亴鎺堟潈璁板綍" name="浠昏亴鎺堟潈璁板綍">-->
-<!-- <Mandate v-if="activeName === '浠昏亴鎺堟潈璁板綍'" ref="manDateRef" :departId="departId" :isDepartment="isDepartment"></Mandate>-->
-<!-- </el-tab-pane>-->
-<!-- <el-tab-pane label="浜哄憳鑳藉姏" name="浜哄憳鑳藉姏">-->
-<!-- <personnel-capacity v-if="activeName === '浜哄憳鑳藉姏'" ref="personnelCapacity"-->
-<!-- :departId="departId"-->
-<!-- :isDepartment="isDepartment"></personnel-capacity>-->
-<!-- </el-tab-pane>-->
-<!-- <el-tab-pane label="娌熼�氳褰�" name="娌熼�氳褰�">-->
-<!-- <Communicate v-if="activeName === '娌熼�氳褰�'" ref="communicateRef" :departId="departId" :isDepartment="isDepartment"></Communicate>-->
-<!-- </el-tab-pane>-->
</el-tabs>
</div>
- <el-dialog :visible.sync="addDia" title="鏋舵瀯鏂板" width="400px">
- <div class="body">
- <el-row style="line-height: 50px;">
- <el-col :span="6" style="text-align: right;">
- <span class="required-span">* </span>鏋舵瀯鍚嶇О锛�
- </el-col>
- <el-col :offset="1" :span="16">
- <el-input v-model="addOb.name" clearable placeholder="璇疯緭鍏ユ灦鏋勫悕绉�" size="small" @keyup.enter.native="addStandardTree"></el-input>
- </el-col>
- </el-row>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button @click="addDia = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="addStandardTree">纭� 瀹�</el-button>
- </span>
- </el-dialog>
</div>
</template>
<script>
import PersonnelList from './tabs/personnel-list.vue'
-import personnelInformation from './tabs/personnel-information.vue'
-import PersonnelTraining from './tabs/personnelTraining';
-import JobResponsibilities from './tabs/job-responsibilities.vue';
-import rewardPunishmentRecord from "./tabs/reward-punishment-record.vue";
-import TrainingRecord from './tabs/training-record.vue';
-import Mandate from './tabs/mandate.vue';
-import PersonnelCapacity from './tabs/personnel-capacity.vue';
-import Communicate from './tabs/communicate.vue'
-import {addDepartmentLims, delDepartmentLims, selectCNSAPersonTree} from "@/api/cnas/personal/personalList";
export default {
name: 'PersonnelInfo',
components: {
- PersonnelList, personnelInformation, PersonnelTraining, JobResponsibilities, rewardPunishmentRecord, TrainingRecord, Mandate, PersonnelCapacity, Communicate
+ PersonnelList,
},
data() {
return {
- isShowAll: true, // 鏄惁灞曠ず鏍囩鏍�
activeName: '鍩烘湰淇℃伅',
- departId: 1,
- list: [],
- addDia: false,
- addOb: {
- name: '',
- fatherId: ''
- },
- search: '',
- clickNodeVal: {},
- addUserForm: {
- name: ''
- },
- currentCompaniesList: [],
- entity: {
- name: '',
- departLimsId: '',
- orderBy: {
- field: 'id',
- order: 'asc'
- }
- },
- overallRecord: '浜哄憳鍒楄〃',
- isDepartment: false,
};
},
mounted() {
this.activeName = this.$route.query.activeName || '鍩烘湰淇℃伅'
- this.geList();
},
- methods: {
- remove(node, data) {
- this.$confirm("鏄惁鍒犻櫎璇ュ眰绾�", "鎻愮ず", {
- type: "error"
- }).then(() => {
- delDepartmentLims({
- id: data.id
- }).then(res => {
- this.$message.success('宸插垹闄�')
- this.geList();
- })
- }).catch(e => {})
- },
- addStandardTree() {
- if (this.addOb.name == null || this.addOb.factory == '') {
- this.$message.error('鏋勬灦鍚嶇О鏄繀濉」')
- return
- }
- addDepartmentLims(this.addOb).then(res => {
- this.$message.success('娣诲姞鎴愬姛')
- this.addDia = false
- this.geList();
- this.addOb.name = ''
- this.addOb.fatherId = ''
- })
- },
- handleAdd() {
- if (this.addOb.fatherId) {
- this.addDia = true;
- } else {
- this.$message.error('璇烽�夋嫨涓�涓灦鏋勫眰绾�')
- }
- },
- // 浜哄憳鍒楄〃缂栬緫
- updatePerson(row) {
- const node = this.findNodeById(this.list, row.name);
- if (node) {
- this.handleNodeClick(node);
- } else {
- this.$message.warning('鏈壘鍒拌浜哄憳');
- }
- },
- // 鏂板缓浜哄憳鍚庡埛鏂版爲
- refreshTree () {
- this.geList()
- },
- findNodeById(treeData, name) {
- for (let i = 0; i < treeData.length; i++) {
- if (treeData[i].name === name) {
- return treeData[i]; // 鎵惧埌鑺傜偣锛岃繑鍥炶鑺傜偣
- }
- if (treeData[i].children && treeData[i].children.length > 0) {
- const foundNode = this.findNodeById(treeData[i].children, name);
- if (foundNode) {
- return foundNode; // 鍦ㄥ瓙鑺傜偣涓壘鍒帮紝杩斿洖璇ヨ妭鐐�
- }
- }
- }
- return null; // 娌℃湁鎵惧埌鑺傜偣锛岃繑鍥瀗ull
- },
- searchFilter() {
- this.$refs.tree.filter(this.search);
- },
- // 鑾峰彇鏍�
- geList() {
- selectCNSAPersonTree().then(res => {
- this.list = res.data;
- if(this.list.length > 0) {
- this.isDepartment = true;
- }
- });
- },
- filterNode(value, data) {
- if (!value) return true;
- return data.name.indexOf(value) !== -1;
- },
- nodeClose(data, node, el) {
- $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder');
- },
- nodeOpen(data, node, el) {
- $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened');
- },
- handleNodeClick(val, node, el) {
- //鏍戠殑鍊�
- this.clickNodeVal = val;
- // 瀛樺偍鐖剁骇鑺傜偣绾ф暟
- if (node) {
- this.getNodeParent(node);
- this.clickNodeVal.level = node.level;
- this.clickNodeVal.parent = node.parent.data;
- }
- this.entity.departLimsId = val.id;
- this.addOb.fatherId = val.id;
- // 鏄惁鏄剧ず璁惧璇︽儏
- this.isShowAll = val.id !== null;
- if (val.id) { // 濡傛灉鏄疄楠屽
- this.departId = val.id;
- this.isDepartment = true;
- }
- if (val.userId) { // 鏄汉鍛�
- this.departId = val.userId;
- this.isDepartment = false
- }
- },
- getNodeParent(val) {
- if (val.parent != null) {
- this.currentCompaniesList[val.level - 1] = val.data.id;
- this.selectTree += ' - ' + val.label;
- this.getNodeParent(val.parent);
- }
- }
- }
};
</script>
<style scoped>
-.node_i {
- color: orange;
- font-size: 18px;
-}
-.custom-tree-node {
- width: 80%;
- line-height: 32px;
-}
-.custom-tree-node .el-icon-delete {
- color: #3A7BFA;
- opacity: 0;
- font-size: 15px;
-}
-
-.custom-tree-node:hover .el-icon-delete {
- opacity: 1;
-}
-
.main {
- display: flex;
padding: 15px 0;
}
-
-.main_left {
- background: #ffffff;
- text-align: center;
- height: calc(100vh - 8em);
- width: 270px;
- border-radius: 15px;
-}
-
.main_right {
- width: calc(100% - 288px);
border-radius: 15px;
}
-
-.div_left_input {
- margin: 15px 0;
- width: 90%;
-}
-
>>> .el-tabs--border-card > .el-tabs__header .el-tabs__item {
border: 0 none;
}
-
>>> .el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active {
color: black;
}
-
>>> .el-tabs--border-card > .el-tabs__header {
border-bottom: none;
}
diff --git a/src/views/CNAS/personnel/personnelInfo/tabs/personnel-list.vue b/src/views/CNAS/personnel/personnelInfo/tabs/personnel-list.vue
index 282a903..9a52f6f 100644
--- a/src/views/CNAS/personnel/personnelInfo/tabs/personnel-list.vue
+++ b/src/views/CNAS/personnel/personnelInfo/tabs/personnel-list.vue
@@ -3,7 +3,7 @@
<div style="display: flex;justify-content: space-between">
<div style="display: flex;">
<div style="margin-bottom: 18px;margin-right: 10px;display: flex;align-items: center;line-height: 32px;">
- <span style="width: 88px;font-size: 14px;font-weight: 700;color: #606266;">浜哄憳鍚嶇О</span>
+ <span style="width: 88px;font-size: 14px;font-weight: 700;color: #606266;">濮撳悕</span>
<el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="entity.name"
@keyup.enter.native="refreshTable"></el-input>
</div>
@@ -13,8 +13,7 @@
</div>
</div>
<div style="line-height: 30px;">
- <el-button :loading="outLoading" size="small" type="primary" @click="handleDown">瀵煎嚭</el-button>
- <el-button size="small" type="primary" @click="openSelectUserDia">鏂板缓</el-button>
+ <el-button size="small" type="primary" @click="openAddDia">鏂板缓</el-button>
</div>
</div>
<div class="search-table">
@@ -22,20 +21,13 @@
:header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
height="calc(100vh - 21em)" style="width: 100%;">
<el-table-column align="center" label="搴忓彿" type="index" width="60"></el-table-column>
-<!-- <el-table-column label="鍛樺伐缂栧彿" prop="account" width="150"></el-table-column>-->
- <el-table-column label="濮撳悕" prop="name" width="120"></el-table-column>
- <el-table-column label="绫嶈疮" prop="nativePlace" width="120"></el-table-column>
- <el-table-column label="璇佷欢鍦板潃" prop="idAddress" show-overflow-tooltip width="100"></el-table-column>
- <el-table-column label="鎵嬫満鍙�" prop="telephone" show-overflow-tooltip width="100"></el-table-column>
- <el-table-column label="姣曚笟闄㈡牎" prop="graduatedInstitutions1" width="100"></el-table-column>
- <el-table-column label="鎵�瀛︿笓涓�" prop="major1" width="100"></el-table-column>
- <el-table-column label="姣曚笟鏃堕棿" prop="graduationTime1" width="100"></el-table-column>
- <el-table-column label="鏈�楂樺鍘�" prop="officialAcademicRedentials" width="100"></el-table-column>
- <el-table-column label="鏈�楂樺浣�" prop="highestDegree" width="100"></el-table-column>
- <el-table-column label="鑱岀О" prop="professionalTitle" width="100"></el-table-column>
- <el-table-column fixed="right" label="鎿嶄綔" width="120" align="center">
+ <el-table-column label="濮撳悕" prop="name" min-width="120"></el-table-column>
+ <el-table-column label="绫嶈疮" prop="nativePlace" min-width="120"></el-table-column>
+ <el-table-column label="璇佷欢鍦板潃" prop="idAddress" show-overflow-tooltip min-width="150"></el-table-column>
+ <el-table-column label="鎵嬫満鍙�" prop="telephone" show-overflow-tooltip min-width="120"></el-table-column>
+ <el-table-column fixed="right" label="鎿嶄綔" width="150" align="center">
<template slot-scope="scope">
- <el-button size="small" type="text" @click="$emit('updatePerson', scope.row)">缂栬緫</el-button>
+ <el-button size="small" type="text" @click="openEditDia(scope.row)">缂栬緫</el-button>
<el-button size="small" type="text" @click="deletePerson(scope.row)" style="color: #f56c6c">鍒犻櫎</el-button>
</template>
</el-table-column>
@@ -46,169 +38,142 @@
@current-change="handleCurrentChange">
</el-pagination>
</div>
- <el-dialog :visible.sync="selectUserDia" title="閫夋嫨鐢ㄦ埛" width="70%">
- <div class="search" style="margin-bottom: 9px;">
- <div class="search_thing">
- <div class="search_label">鐢ㄦ埛鍚嶏細</div>
- <div class="search_input">
- <el-input v-model="addUserTableInfo.name" clearable placeholder="璇疯緭鍏�" size="small"
- @change="selectUserList"></el-input>
- </div>
- <el-button size="small" style="margin-left: 10px" type="primary" @click="selectUserList">鏌ヨ</el-button>
- </div>
- </div>
- <div v-if="selectUserDia" class="body" style="height: 60vh;">
- <lims-table :tableData="tableData1" :column="column1" :isSelection="true" :handleSelectionChange="selectMethod"
- height="520" :tableLoading="tableLoading1"></lims-table>
- </div>
+ <el-dialog :title="diaTitle" :visible.sync="addDia" width="450px" @close="resetForm">
+ <el-form ref="addForm" :model="form" :rules="formRules" label-width="100px">
+ <el-form-item label="濮撳悕" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏�" size="small" clearable></el-input>
+ </el-form-item>
+ <el-form-item label="绫嶈疮" prop="nativePlace">
+ <el-input v-model="form.nativePlace" placeholder="璇疯緭鍏�" size="small" clearable></el-input>
+ </el-form-item>
+ <el-form-item label="璇佷欢鍦板潃" prop="idAddress">
+ <el-input v-model="form.idAddress" placeholder="璇疯緭鍏�" size="small" clearable></el-input>
+ </el-form-item>
+ <el-form-item label="鎵嬫満鍙�" prop="telephone">
+ <el-input v-model="form.telephone" placeholder="璇疯緭鍏�" size="small" clearable></el-input>
+ </el-form-item>
+ </el-form>
<span slot="footer" class="dialog-footer">
- <el-button @click="selectUserDia = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="selectUser">纭� 瀹�</el-button>
+ <el-button @click="addDia = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submitForm" :loading="submitLoading">纭� 瀹�</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
-import { selectUserCondition } from "@/api/business/inspectionTask";
-import limsTable from "@/components/Table/lims-table.vue";
import {
basicInformationOfPersonnelSelectPage,
- delUserDepardLimsId,
- exportPersonBasicInfo,
- upUserDepardLimsId
+ addContactPerson,
+ updateContactPerson,
+ deleteContactPerson
} from "@/api/cnas/personal/personalList";
-import store from "@/store";
-import { Message } from "element-ui";
export default {
name: 'PersonnelList',
- // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
- components: { limsTable },
- props: {
- departId: {
- type: Number,
- default: () => {
- return null;
- }
- },
- isDepartment: {
- type: Boolean,
- default: false
- },
- currentCompaniesList: {
- type: Array,
- default: []
- }
- },
data() {
- // 杩欓噷瀛樻斁鏁版嵁
return {
page: {
size: 20,
current: 1,
},
- outLoading: false,
tableLoading: false,
- tableData: [], // 浜哄憳鎬诲垪琛ㄦ暟鎹�
- tableData1: [],
- tableLoading1: false,
- column1: [
- { label: '濮撳悕', prop: 'name' },
- { label: '璐﹀彿', prop: 'account' },
- { label: '瑙掕壊', prop: 'roleName' },
- {
- dataType: 'tag',
- label: '鐘舵��',
- prop: 'status',
- formatData: (params) => {
- if (params == 0) {
- return '鍚敤'
- } else {
- return ''
- }
- },
- formatType: (params) => {
- if (params == 0) {
- return 'success'
- } else {
- return 'danger'
- }
- }
- },
- { label: '鐢佃瘽鍙风爜', prop: 'phone' },
- ],
- page1: {
- total: 0,
- size: 10,
- current: 1
- },
- selectUserDia: false, // 娣诲姞浜哄憳寮规
+ tableData: [],
entity: {
name: '',
- orderBy: {
- field: 'id',
- order: 'asc'
- }
},
- addUserTableInfo: {
- name: null,
- isCustom: 0,
+ addDia: false,
+ diaTitle: '',
+ operationType: '',
+ submitLoading: false,
+ form: {
+ id: null,
+ name: '',
+ nativePlace: '',
+ idAddress: '',
+ telephone: '',
},
- multipleSelection: []
+ formRules: {
+ name: [{ required: true, message: '璇疯緭鍏ュ鍚�', trigger: 'blur' }],
+ },
};
},
mounted() {
this.refreshTable();
},
- // 鏂规硶闆嗗悎
methods: {
- /**
- * @desc 鑾峰彇璁惧id
- */
- // 閲嶇疆
refresh() {
- this.page = {
- size: 20,
- current: 1,
- };
- this.entity.name = ''
+ this.page = { size: 20, current: 1 };
+ this.entity.name = '';
this.refreshTable();
},
- // 鏌ヨ浜哄憳鍒楄〃鏁版嵁
refreshTable() {
this.tableLoading = true;
- this.entity.departLimsId = this.departId;
const params = {
size: this.page.size,
current: this.page.current,
- departmentId: this.entity.departLimsId,
name: this.entity.name,
- }
+ };
basicInformationOfPersonnelSelectPage(params).then(res => {
this.tableLoading = false;
this.page.total = res.data.total;
this.tableData = res.data.records;
}).catch(err => {
this.tableLoading = false;
- })
+ });
},
- // 鍒犻櫎浜哄憳
+ openAddDia() {
+ this.operationType = 'add';
+ this.diaTitle = '鏂板缓鑱旂郴浜�';
+ this.form = { id: null, name: '', nativePlace: '', idAddress: '', telephone: '' };
+ this.addDia = true;
+ },
+ openEditDia(row) {
+ this.operationType = 'edit';
+ this.diaTitle = '缂栬緫鑱旂郴浜�';
+ this.form = {
+ id: row.id,
+ name: row.name,
+ nativePlace: row.nativePlace,
+ idAddress: row.idAddress,
+ telephone: row.telephone,
+ };
+ this.addDia = true;
+ },
+ submitForm() {
+ this.$refs.addForm.validate((valid) => {
+ if (valid) {
+ this.submitLoading = true;
+ const api = this.operationType === 'add' ? addContactPerson : updateContactPerson;
+ api(this.form).then(res => {
+ this.submitLoading = false;
+ if (res.code === 200) {
+ this.$message.success(this.operationType === 'add' ? '鏂板鎴愬姛' : '淇敼鎴愬姛');
+ this.addDia = false;
+ this.refreshTable();
+ }
+ }).catch(err => {
+ this.submitLoading = false;
+ });
+ }
+ });
+ },
+ resetForm() {
+ this.$refs.addForm && this.$refs.addForm.resetFields();
+ },
deletePerson(row) {
this.$confirm('鏄惁鍒犻櫎褰撳墠鏁版嵁?', '璀﹀憡', {
confirmButtonText: '纭畾',
cancelButtonText: '鍙栨秷',
type: 'warning'
}).then(() => {
- delUserDepardLimsId({ id: row.userId }).then(res => {
+ deleteContactPerson({ id: row.id }).then(res => {
this.$message.success('鍒犻櫎鎴愬姛');
this.refreshTable();
- this.$emit('refreshTree')
}).catch(e => {
this.$message.error('鍒犻櫎澶辫触');
});
- }).catch(() => {
- });
+ }).catch(() => {});
},
handleSizeChange(val) {
this.page.size = val;
@@ -218,84 +183,9 @@
this.page.current = val;
this.refreshTable();
},
- // 鎵撳紑鏂板浜哄憳寮规
- openSelectUserDia() {
- this.selectUserDia = true;
- this.selectUserList()
- },
- // 鏌ヨ鏂板寮规鐨勪汉鍛樺垪琛�
- selectUserList() {
- this.tableLoading1 = true
- selectUserCondition().then(res => {
- this.tableLoading1 = false
- this.tableData1 = res.data
- }).catch(err => {
- this.tableLoading1 = false
- })
- },
- // 琛ㄦ牸閫夋嫨鏂规硶
- selectMethod(val) {
- this.multipleSelection = val
- },
- // 鎻愪氦闇�瑕佹坊鍔犵殑浜哄憳
- selectUser() {
- if (!this.currentCompaniesList.length > 0) {
- this.$message.warning("璇烽�夋嫨閮ㄩ棬锛�")
- return;
- }
- let selects = this.HaveJson(this.multipleSelection)
- if (selects.length === 0) {
- this.$message.error('鏈�夋嫨鏁版嵁');
- return;
- }
- let ids = [];
- selects.forEach(a => {
- ids.push(a.id);
- });
- let str = '';
- this.currentCompaniesList.forEach(a => {
- if (a) {
- str += a + ',';
- }
- });
- upUserDepardLimsId({
- ids: JSON.stringify(ids),
- id: str
- }).then(res => {
- this.selectUserDia = false;
- this.$message.success('娣诲姞鎴愬姛');
- this.refreshTable();
- this.$emit('refreshTree')
- });
- },
- // 瀵煎嚭浜哄憳淇℃伅
- handleDown() {
- this.outLoading = true;
- let entity = this.HaveJson(this.entity)
- delete entity.orderBy;
- exportPersonBasicInfo({ ...entity }).then(res => {
- this.outLoading = false;
- const blob = new Blob([res], { type: 'application/octet-stream' });
- this.$download.saveAs(blob, '浜哄憳淇℃伅.xlsx')
- })
- },
},
- watch: {
- departId: {
- handler(newId, oldId) {
- if (newId) {
- this.page.current = 1
- this.refreshTable();
- }
- }
- }
- }
};
</script>
<style scoped>
-.search_thing {
- display: flex;
- align-items: center;
-}
</style>
--
Gitblit v1.9.3