From 80c7b8f79ebd7b053a59d2fca99b90db66798f0c Mon Sep 17 00:00:00 2001
From: value <z1292839451@163.com>
Date: 星期四, 30 五月 2024 22:36:12 +0800
Subject: [PATCH] 大改客户和用户
---
src/components/do/b1-ins-order/add.vue | 60 +++----
src/components/view/role-manage.vue | 45 ++++
src/components/view/custom_manage.vue | 128 ++++++---------
src/components/view/person-manage.vue | 195 +++++++++++-------------
src/assets/api/controller.js | 4
5 files changed, 216 insertions(+), 216 deletions(-)
diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index 4b91f5d..b8984c4 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -54,6 +54,8 @@
upUserPassword: "/user/upUserPassword", //淇敼鐢ㄦ埛瀵嗙爜
upUserDepardLimsId: "/user/upUserDepardLimsId", //淇敼浜哄憳鏄庣粏鎵�鍦ㄧ粍缁囨灦鏋�
delUserDepardLimsId: "/user/delUserDepardLimsId", //鍒犻櫎浜哄憳鏄庣粏鎵�鍦ㄧ粍缁囨灦鏋�
+ upCustom: "/user/upCustom", //淇敼瀹㈡埛淇℃伅
+ selectCustomEnum: "/user/selectCustomEnum", //鑾峰彇瀹㈡埛鏋氫妇
}
const dataReporting = {
@@ -246,6 +248,7 @@
selectDepartmentLim: "/department/selectDepartmentLim", //鑾峰彇閮ㄩ棬鏍�
addDepartmentLims: "/department/addDepartmentLims", //娣诲姞閮ㄩ棬
delDepartmentLims: "/department/delDepartmentLims", //鍒犻櫎閮ㄩ棬
+ selectDepartmentEnum: "/department/selectDepartmentEnum", //鑾峰彇缁勭粐鏋舵瀯鏋氫妇
}
const report = {
@@ -299,4 +302,5 @@
selectCompaniesList: "/companies/selectCompaniesList", //鑾峰彇浜轰簨绯荤粺缁勭粐
selectSimpleList: "/companies/selectSimpleList", //鑾峰彇浜轰簨绯荤粺缁勭粐涓嬬殑浜哄憳
addPersonUser: "/companies/addPersonUser", //鑾峰彇浜轰簨绯荤粺缁勭粐涓嬬殑浜哄憳
+ selectPersonUser: "/companies/selectPersonUser", //閫氳繃鍛樺伐鍙疯幏鍙栧憳宸�
}
diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue
index e6dfa2a..91011c5 100644
--- a/src/components/do/b1-ins-order/add.vue
+++ b/src/components/do/b1-ins-order/add.vue
@@ -222,30 +222,6 @@
</div>
</el-col>
<el-col class="search_thing" :span="6">
- <div class="search_label">鏄惁鐣欐牱锛�</div>
- <div class="search_input">
- <el-radio-group v-model="addObj.isLeave">
- <el-radio :label="0">涓嶇暀鏍�</el-radio>
- <el-radio :label="1">鐣欐牱</el-radio>
- </el-radio-group>
- </div>
- </el-col>
- <el-col class="search_thing" :span="6">
- <div class="search_label" style="width: 175px;">鏄惁娑夊強閰嶅鏍峰搧锛�</div>
- <div class="search_input" style="width: calc(100% - 175px);">
- <el-radio-group v-model="addObj.mating" @change="$refs.sampleTable.doLayout()">
- <el-radio :label="1">鏄�</el-radio>
- <el-radio :label="0">鍚�</el-radio>
- </el-radio-group>
- </div>
- </el-col>
- <el-col class="search_thing" :span="6">
- <div class="search_label">OTC璁㈠崟鍙凤細</div>
- <div class="search_input">
- <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.otcCode" :readonly="active>1"></el-input>
- </div>
- </el-col>
- <el-col class="search_thing" :span="6">
<div class="search_label"><span class="required-span">* </span>宸ョ▼鍚嶇О锛�</div>
<div class="search_input">
<el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.engineering" :readonly="active>1"></el-input>
@@ -267,6 +243,30 @@
<div class="search_label"><span class="required-span">* </span>鐢熶骇鍗曚綅EN锛�</div>
<div class="search_input">
<el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.productionEn" :readonly="active>1"></el-input>
+ </div>
+ </el-col>
+ <el-col class="search_thing" :span="6">
+ <div class="search_label">鏄惁鐣欐牱锛�</div>
+ <div class="search_input">
+ <el-radio-group v-model="addObj.isLeave">
+ <el-radio :label="0">涓嶇暀鏍�</el-radio>
+ <el-radio :label="1">鐣欐牱</el-radio>
+ </el-radio-group>
+ </div>
+ </el-col>
+ <el-col class="search_thing" :span="6">
+ <div class="search_label" style="width: 175px;">鏄惁娑夊強閰嶅鏍峰搧锛�</div>
+ <div class="search_input" style="width: calc(100% - 175px);">
+ <el-radio-group v-model="addObj.mating" @change="$refs.sampleTable.doLayout()">
+ <el-radio :label="1">鏄�</el-radio>
+ <el-radio :label="0">鍚�</el-radio>
+ </el-radio-group>
+ </div>
+ </el-col>
+ <el-col class="search_thing" :span="6">
+ <div class="search_label">OTC璁㈠崟鍙凤細</div>
+ <div class="search_input">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.otcCode" :readonly="active>1"></el-input>
</div>
</el-col>
<el-col class="search_thing" :span="6" style="align-items: flex-start;margin: 8px 0;">
@@ -595,6 +595,7 @@
engineeringEn: null,
production: null,
productionEn: null,
+ companyId: null
},
sample: {
sampleCode: null,
@@ -738,19 +739,14 @@
this.$message.error('鏈�夋嫨鏁版嵁')
return
}
- delete selects['orderBy']
- delete selects['updateUser']
- delete selects['updateTime']
- this.addObj.userId = selects.id
this.addObj.company = selects.company
- this.addObj.custom = selects.name
this.addObj.code = selects.code
- this.addObj.phone = selects.phone
+ this.addObj.companyId = selects.id
this.selectUserDia = false
},
save() {
- if (!this.addObj.custom) {
- this.$message.error('鏈�夋嫨涓嬪崟瀹㈡埛')
+ if (!this.addObj.companyId) {
+ this.$message.error('鏈�夋嫨瀹㈡埛鍗曚綅')
return
}
if (!this.addObj.type) {
diff --git a/src/components/view/custom_manage.vue b/src/components/view/custom_manage.vue
index e86a3ea..43b9596 100644
--- a/src/components/view/custom_manage.vue
+++ b/src/components/view/custom_manage.vue
@@ -49,18 +49,8 @@
<div class="search">
<div class="search_thing">
<div class="search_label">瀹㈡埛鍚嶇О锛�</div>
- <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="componentData.entity.name"
+ <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="componentData.entity.company"
@keyup.enter.native="refreshTable()"></el-input></div>
- </div>
- <div class="search_thing">
- <div class="search_label">璐﹀彿鐘舵�侊細</div>
- <div class="search_input">
- <el-select size="small" v-model="componentData.entity.state" style="width: 100%;" @change="refreshTable()">
- <el-option label="鍏ㄩ儴" :value="null"></el-option>
- <el-option label="鍚敤" :value="1"></el-option>
- <el-option label="鍋滅敤" :value="0"></el-option>
- </el-select>
- </div>
</div>
<div class="search_thing" style="padding-left: 30px;">
<el-button size="small" @click="refresh()">閲� 缃�</el-button>
@@ -69,59 +59,22 @@
</div>
<div class="table">
<ValueTable ref="ValueTable" :url="$api.user.selectCustomPageList" :delUrl="$api.user.delCustomById"
- :componentData="componentData" :key="upIndex" />
+ :componentData="componentData" :key="upIndex" :upUrl="$api.user.upCustom"/>
</div>
<el-dialog title="鏂板瀹㈡埛" :visible.sync="addDia" width="450px">
<div style="margin-bottom: 15px;">
<el-row style="line-height: 50px;">
- <el-col :span="7" style="text-align: right;padding-right: 8px;">
- <span class="required-span">* </span>瀹㈡埛鍚嶇О锛�</el-col>
- <el-col :span="15">
- <el-input v-model="user.name" readonly size="small">
- <template slot="append"><el-button slot="append" icon="el-icon-search"
- @click="selectUserDia = true"></el-button></template>
- </el-input>
- </el-col>
- </el-row>
- <el-row style="line-height: 50px;">
<el-col :span="7" style="text-align: right;padding-right: 8px;"><span class="required-span">*
- </span>瀹㈡埛璐︽埛锛�</el-col>
- <el-col :span="15">
- <el-input v-model="user.account" readonly size="small"></el-input>
- </el-col>
- </el-row>
- <el-row style="line-height: 50px;">
- <el-col :span="7" style="text-align: right;padding-right: 8px;">鐢靛瓙閭锛�</el-col>
- <el-col :span="15">
- <el-input v-model="user.email" size="small" clearable></el-input>
- </el-col>
- </el-row>
- <el-row style="line-height: 50px;">
- <el-col :span="7" style="text-align: right;padding-right: 8px;"><span class="required-span">*
- </span>鐢佃瘽鍙风爜锛�</el-col>
- <el-col :span="15">
- <el-input v-model="user.phone" size="small" clearable></el-input>
- </el-col>
- </el-row>
- <el-row style="line-height: 50px;">
- <el-col :span="7" style="text-align: right;padding-right: 8px;"><span class="required-span">*
- </span>瀹㈡埛鍗曚綅锛�</el-col>
+ </span>瀹㈡埛鍚嶇О锛�</el-col>
<el-col :span="15">
<el-input v-model="user.company" size="small" clearable></el-input>
</el-col>
</el-row>
<el-row style="line-height: 50px;">
<el-col :span="7" style="text-align: right;padding-right: 8px;"><span class="required-span">*
- </span>鍗曚綅EN锛�</el-col>
+ </span>瀹㈡埛鍗曚綅EN锛�</el-col>
<el-col :span="15">
<el-input v-model="user.companyEn" size="small" clearable></el-input>
- </el-col>
- </el-row>
- <el-row style="line-height: 50px;">
- <el-col :span="7" style="text-align: right;padding-right: 8px;"><span class="required-span">*
- </span>宸ュ巶鍩燂細</el-col>
- <el-col :span="15">
- <el-input v-model="user.code" size="small" clearable></el-input>
</el-col>
</el-row>
<el-row style="margin-top: 15px;">
@@ -134,12 +87,38 @@
</el-row>
<el-row style="margin-top: 15px;">
<el-col :span="7" style="text-align: right;padding-right: 8px;"><span class="required-span">*
- </span>鍦板潃EN锛�</el-col>
+ </span>瀹㈡埛鍦板潃EN锛�</el-col>
<el-col :span="15">
<el-input type="textarea" v-model="user.addressEn" size="small" clearable
:autosize="{minRows: 2, maxRows: 4}"></el-input>
</el-col>
</el-row>
+ <el-row style="line-height: 50px;">
+ <el-col :span="7" style="text-align: right;padding-right: 8px;"><span class="required-span">*
+ </span>鍔犳�ラ搴︼細</el-col>
+ <el-col :span="15">
+ <el-input v-model="user.num" size="small" clearable></el-input>
+ </el-col>
+ </el-row>
+ <el-row style="line-height: 50px;">
+ <el-col :span="7" style="text-align: right;padding-right: 8px;">鍗曚綅鐢佃瘽锛�</el-col>
+ <el-col :span="15">
+ <el-input v-model="user.phone" size="small" clearable></el-input>
+ </el-col>
+ </el-row>
+ <el-row style="line-height: 50px;">
+ <el-col :span="7" style="text-align: right;padding-right: 8px;">宸ュ巶鍩燂細</el-col>
+ <el-col :span="15">
+ <el-input v-model="user.code" size="small" clearable></el-input>
+ </el-col>
+ </el-row>
+ <el-row style="line-height: 50px;">
+ <el-col :span="7" style="text-align: right;padding-right: 8px;"><span class="required-span">*
+ </span>瀹㈡埛缂栧彿锛�</el-col>
+ <el-col :span="15">
+ <el-input v-model="user.code2" size="small" clearable></el-input>
+ </el-col>
+ </el-row>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="addDia = false">鍙� 娑�</el-button>
@@ -175,8 +154,7 @@
return {
componentData: {
entity: {
- name: null,
- state: null,
+ company: null,
orderBy: {
field: 'id',
order: 'asc'
@@ -193,7 +171,13 @@
font: '鍗忚璁板綍',
type: 'text',
method: 'protocol'
- }, {
+ },{
+ id: 'update',
+ font: '缂栬緫',
+ type: 'text',
+ method: 'doDiy',
+ field:[]
+ },{
id: 'delete',
font: '鍒犻櫎',
type: 'text',
@@ -226,7 +210,7 @@
}
},
requiredAdd: [],
- requiredUp: []
+ requiredUp: ['company','address','code2','companyEn','addressEn','num']
},
entityCopy: {},
upIndex: 0,
@@ -279,24 +263,8 @@
this.upIndex++
},
customAdd() {
- if (this.user.name == '' || this.user.name == null) {
- this.$message.error('璇峰~鍐欏鎴峰悕绉�')
- return
- }
- if (this.user.account == '' || this.user.account == null) {
- this.$message.error('璇峰~鍐欏鎴疯处鎴�')
- return
- }
- if (this.user.phone == '' || this.user.phone == null) {
- this.$message.error('璇峰~鍐欑數璇濆彿鐮�')
- return
- }
if (this.user.company == '' || this.user.company == null) {
this.$message.error('璇峰~鍐欏鎴峰崟浣�')
- return
- }
- if (this.user.code == '' || this.user.code == null) {
- this.$message.error('璇峰~鍐欏伐鍘傚煙')
return
}
if (this.user.address == '' || this.user.address == null) {
@@ -311,6 +279,14 @@
this.$message.error('璇峰~鍐欒嫳鏂囧崟浣嶅湴鍧�')
return
}
+ if (this.user.code2 == '' || this.user.code2 == null) {
+ this.$message.error('璇峰~鍐欏鎴风紪鍙�')
+ return
+ }
+ if (this.user.code2 == '' || this.user.code2 == null) {
+ this.$message.error('璇峰~鍐欏姞鎬ラ搴�')
+ return
+ }
this.loading = true
this.$axios.post(this.$api.user.addCustom, this.user, {
headers: {
@@ -337,10 +313,16 @@
if (power[i].menuMethod == 'addCustom') {
add = true
}
+ if (power[i].menuMethod == 'upCustom') {
+ up = true
+ }
}
if (!del) {
- this.componentData.do.splice(2, 1)
+ this.componentData.do.splice(3, 1)
}
+ if (!up) {
+ this.componentData.do.splice(2, 1)
+ }
this.addPower = add
},
entrust(data) {
diff --git a/src/components/view/person-manage.vue b/src/components/view/person-manage.vue
index 5938846..780fe23 100644
--- a/src/components/view/person-manage.vue
+++ b/src/components/view/person-manage.vue
@@ -119,8 +119,7 @@
<el-row>
<el-col :span="20">
<el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" suffix-icon="el-icon-search" v-model="search" size="small"
- style="margin-bottom: 5px;" clearable @blur="searchFilter" @clear="searchFilter"
- @keyup.enter.native="searchFilter()"></el-input>
+ style="margin-bottom: 5px;" clearable @clear="searchFilter" @keyup.enter.native="searchFilter()"></el-input>
</el-col>
<el-col :span="4" style="text-align: center;line-height: 30px;" v-if="addPower">
<el-button type="primary" icon="el-icon-plus" size="mini" circle @click="handleAdd"></el-button>
@@ -128,8 +127,7 @@
</el-row>
<el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'name' }" node-key="id"
:filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen"
- @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="false"
- :default-expanded-keys="expandedKeys" :default-checked-keys="[1]">
+ @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="false" default-expand-all>
<div class="custom-tree-node" slot-scope="{ node, data }">
<el-row style="width: 100%;">
<el-col :span="21" :class="{sort:node.level>3}">
@@ -203,28 +201,27 @@
<el-dialog title="鑾峰彇浜轰簨绯荤粺浜哄憳淇℃伅" :visible.sync="addthirdParty" width="70%">
<div class="body">
<el-row>
- <el-col :span="9" style="height: 70vh;overflow: hidden;">
+ <el-col :span="8" style="height: 70vh;overflow: hidden;">
<el-input placeholder="杈撳叆鍏抽敭瀛楁悳绱�" v-model="search2" size="small" style="width: 90%;padding: 0 5% 10px 5%;"
- clearable @blur="searchFilter2" @clear="searchFilter2" @keyup.enter.native="searchFilter2()">
+ clearable @clear="searchFilter2" @keyup.enter.native="searchFilter2()">
</el-input>
- <el-tree :data="datathirdParty" node-key="id" :props="defaultProps" @node-click="nodeClick2"
- style="height: calc(100% - 42px);"
- @node-expand="nodeOpen0" :filter-node-method="filterNode2" ref="tree2" highlight-current>
+ <el-tree :data="datathirdParty" node-key="companyId" :props="defaultProps" @node-click="nodeClick2"
+ style="height: calc(100% - 42px);" @node-expand="nodeOpen0" :filter-node-method="filterNode2" ref="tree2"
+ highlight-current>
</el-tree>
</el-col>
- <el-col :span="15" style="height: 70vh;padding-left: 8px;">
- <div class="search_thing" style="width: 360px;margin-bottom: 10px;">
- <div class="search_label" style="width: 140px;">鍛樺伐鍙�/鍛樺伐濮撳悕锛�</div>
+ <el-col :span="16" style="height: 70vh;padding-left: 8px;">
+ <div class="search_thing" style="width: 100%;margin-bottom: 10px;justify-content: right;">
+ <div class="search_label" style="width: 200px;">鍛樺伐鍙�/鍛樺伐濮撳悕锛�</div>
+ <div class="search_input" style="width: 250px;">
+ <el-input size="small" placeholder="璇疯緭鍏ュ伐鍙�/鍛樺伐濮撳悕" @clear="searchPerson" clearable v-model="userSearch2"
+ @keyup.enter.native="searchPerson()"></el-input>
+ </div>
+ <!-- <div class="search_label" style="width: 200px;">鍛樺伐鍙凤細</div>
<div class="search_input">
- <el-input
- size="small"
- placeholder="璇疯緭鍏ュ伐鍙�/鍛樺伐濮撳悕"
- @clear="searchPerson"
- clearable
- v-model="userSearch2"
- @keyup.enter.native="searchPerson()">
- <i slot="suffix" class="el-input__icon el-icon-search" style="cursor: pointer;" @click="searchPerson"></i></el-input>
- </div>
+ <el-input size="small" placeholder="璇疯緭鍏ュ伐鍙�" @clear="searchPerson" clearable v-model="searchEmployeeID"
+ @keyup.enter.native="searchPerson2()"></el-input>
+ </div> -->
</div>
<el-table height="67vh" border stripe :data="personList" v-loading="personLoad" ref="personTable"
@selection-change="handleSelectionChange">
@@ -233,6 +230,8 @@
<el-table-column prop="employeeID" label="鍛樺伐鍙�">
</el-table-column>
<el-table-column prop="name" label="鍛樺伐濮撳悕">
+ </el-table-column>
+ <el-table-column prop="department" label="閮ㄩ棬" min-width="200">
</el-table-column>
<el-table-column prop="isLive" label="宸插瓨鍦�" width="80" align="center">
<template slot-scope="scope">
@@ -265,7 +264,7 @@
datathirdParty: [],
defaultProps: {
children: 'children',
- label: 'label'
+ label: 'companyName'
},
addthirdParty: false,
componentData: {
@@ -273,7 +272,7 @@
name: null,
state: null,
company: null,
- departId: null,
+ roleId: null,
orderBy: {
field: 'id',
order: 'asc'
@@ -290,7 +289,8 @@
type: 'text',
method: 'doDiy',
field: ['roleName', '瑙掕壊=roleId', '瀵嗙爜=password',
- '濮撳悕EN=nameEn','骞撮緞=age','閭=email','鍗曚綅=company','绛惧悕=pictureUrl','鏈汉鐓�=signatureUrl']
+ '濮撳悕EN=nameEn', '骞撮緞=age', '閭=email', '鍗曚綅=company', '绛惧悕=pictureUrl', '鏈汉鐓�=signatureUrl'
+ ]
}],
tagField: {
state: {
@@ -319,7 +319,8 @@
},
roleId: {
select: []
- }
+ },
+ company: {select: []}
},
/* cascaderField:{
departId:{
@@ -349,24 +350,24 @@
delStandardTree: true,
addDia0: false,
addOb: {
- fatherId: '',
+ fatherId: 10001,
name: '',
},
search: null,
list: [],
selectTree: '',
treeLoad: false,
- expandedKeys: [],
addLoad: false,
personList: [],
- personListCopy:[],
+ personListCopy: [],
treeLoad: false,
personLoad: false,
search2: '',
multipleSelection: [],
- companiesList:[],
+ companiesList: [],
currentCompaniesList: [],
- userSearch2:''
+ userSearch2: '',
+ searchEmployeeID: null
}
},
// watch: {
@@ -375,6 +376,7 @@
mounted() {
this.selectTreeList()
this.selectRole()
+ this.selectCustomEnum()
this.entityCopy = this.HaveJson(this.componentData.entity)
this.getPower()
},
@@ -382,40 +384,23 @@
openthirdParty() {
this.addthirdParty = true;
this.$axios.get(this.$api.companies.selectCompaniesList).then(res => {
- this.companiesList = JSON.parse(JSON.stringify(res.data));
- this.datathirdParty = []
- for (let ai = 0; ai < res.data.length; ai++) {
- let a = res.data[ai]
- if (a.parentCompanyId === 'ROOT') {
- this.datathirdParty.push({
- id: a.companyId,
- label: a.companyName,
- children: []
- })
- res.data.splice(ai, 1)
- ai--
- } else {
- this.getOrganizational(a, ai, this.datathirdParty, res.data)
- }
- }
+ this.companiesList = this.HaveJson(res.data);
+ this.datathirdParty = this.tranListToTreeData(res.data, "ROOT");
})
+ if(this.componentData.entity.roleId > 10000)this.$message.warning('鐢变簬鏈�変腑鍏蜂綋瑙掕壊锛屾柊澧炵敤鎴峰皢鎴愪负榛樿瑙掕壊')
},
- getOrganizational(a, ai, children, list) {
- for (let bi = 0; bi < children.length; bi++) {
- let b = children[bi]
- if (a.parentCompanyId === b.id) {
- b.children.push({
- id: a.companyId,
- label: a.companyName,
- children: []
- })
- list.splice(ai, 1)
- ai--
- break
- } else {
- this.getOrganizational(a, ai, b.children, list)
+ tranListToTreeData(list, rootValue) {
+ const arr = [];
+ list.forEach((item) => {
+ if (item.parentCompanyId === rootValue) {
+ const children = this.tranListToTreeData(list, item.companyId);
+ if (children.length) {
+ item.children = children;
+ }
+ arr.push(item);
}
- }
+ });
+ return arr;
},
refreshTable() {
this.$refs['ValueTable'].selectList()
@@ -438,10 +423,6 @@
})
},
opeaAdd() {
- if (!this.addOb.fatherId || this.selectTree == '' || this.selectTree == '鍏ㄩ儴') {
- this.$message.error('璇烽�夋嫨涓�涓粍缁�')
- return
- }
this.$refs.ValueTable.openAddDia(this.$api.user.addUser);
this.$refs['ValueTable'].upData.departId = this.selectTree
},
@@ -490,13 +471,7 @@
this.addUserPower = addUserPower
},
handleAdd() {
- console.log(`output->this.addOb.fatherId`,this.addOb.fatherId)
- console.log(`output->this.addOb.name`,this.addOb.name)
- if (this.addOb.fatherId||this.addOb.name=='鍏ㄩ儴') {
- this.addDia = true;
- } else {
- this.$message.error('璇烽�夋嫨涓�涓灦鏋勫眰绾�')
- }
+ this.addDia = true;
},
searchFilter() {
this.$refs.tree.filter(this.search)
@@ -505,13 +480,12 @@
this.$refs.tree2.filter(this.search2)
},
filterNode(value, data) {
- console.log(data);
if (!value) return true;
return data.name.indexOf(value) !== -1;
},
filterNode2(value, data) {
if (!value) return true;
- return data.label.indexOf(value) !== -1;
+ return data['companyName'].indexOf(value) !== -1;
},
handleNodeClick(val, node, el) { //鏍戠殑鍊�
this.selectTree = ''
@@ -523,15 +497,14 @@
data2 += " - " + data[index]
}
this.selectTree = data2.replace(' - ', '')
- this.addOb.fatherId = val.id;
- this.componentData.entity.departId = val.id + ',';
+ this.componentData.entity.roleId = val.id;
this.refreshTable()
},
nodeOpen(data, node, el) {
$($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened')
},
- nodeOpen0(data, node, el){
- this.currentCompaniesList[node.level-1] = data.id
+ nodeOpen0(data, node, el) {
+ this.currentCompaniesList[node.level - 1] = data.id
},
nodeClose(data, node, el) {
$($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder')
@@ -560,16 +533,8 @@
this.treeLoad = true
this.$axios.get(this.$api.department.selectDepartment).then(res => {
this.list = res.data
- this.list.forEach(a => {
- a.children.forEach(b => {
- b.children.forEach(c => {
- this.expandedKeys.push(c.id)
- })
- })
- })
this.treeLoad = false
- this.componentData.entity.departId = this.list[0].id;
- this.selectTree = '鍏ㄩ儴'
+ this.componentData.entity.roleId = this.list[0].id;
this.refreshTable()
})
},
@@ -593,7 +558,6 @@
this.selectTreeList()
this.addLoad = false
this.addOb.name = ''
- this.addOb.fatherId = ''
}).catch(e => {
this.addDia = false
this.addLoad = false
@@ -601,10 +565,10 @@
},
nodeClick2(ob, node, el) {
this.getNodeParent(node)
- if (ob.id !== 'SC21') {
+ if (ob.companyId !== 'SC21') {
this.personLoad = true
this.$axios.post(this.$api.companies.selectSimpleList, {
- companyId: ob.id
+ companyId: ob.companyId
}).then(res => {
this.personListCopy = JSON.parse(JSON.stringify(res.data))
this.personList = res.data
@@ -613,20 +577,20 @@
})
}
},
- getNodeParent(val){
- this.currentCompaniesList[val.level-1] = val.data.id
- if(val.parent!=null){
+ getNodeParent(val) {
+ this.currentCompaniesList[val.level - 1] = val.data.companyId
+ if (val.parent != null) {
this.getNodeParent(val.parent)
}
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
- addUser2(){
- if(this.multipleSelection.length === 0){
+ addUser2() {
+ if (this.multipleSelection.length === 0) {
return this.$message.error('璇烽�夋嫨浜哄憳')
}
- if(this.currentCompaniesList.length === 0){
+ if (this.currentCompaniesList.length === 0) {
return this.$message.error('璇烽�夋嫨缁勭粐')
}
/* for (let index = this.currentCompaniesList.length-1; index >1; index--) {
@@ -636,14 +600,15 @@
}
} */
let arr = []
- this.currentCompaniesList.forEach(b=>{
- let obj = this.companiesList.find(a=>a.companyId==b)
+ this.currentCompaniesList.forEach(b => {
+ let obj = this.companiesList.find(a => a.companyId == b)
arr.push(obj)
})
this.addLoad = true
this.$axios.post(this.$api.companies.addPersonUser, {
company: arr,
- person: this.multipleSelection
+ person: this.multipleSelection,
+ roleId: this.componentData.entity.roleId
}, {
headers: {
'Content-Type': 'application/json'
@@ -656,23 +621,43 @@
this.$message.success('鎿嶄綔鎴愬姛')
this.multipleSelection = []
this.$refs.personTable.clearSelection()
- this.addthirdParty = false
this.addLoad = false
- this.personList = []
this.userSearch2 = ''
this.selectTreeList()
}).catch(e => {
- this.addthirdParty = false
this.addLoad = false
})
},
- searchPerson(){
+ searchPerson() {
let arr = JSON.parse(JSON.stringify(this.personListCopy))
- this.personList = arr.filter(a=>{
- if(a.employeeID.includes(this.userSearch2)||a.name.includes(this.userSearch2)){
+ this.personList = arr.filter(a => {
+ if (a.employeeID.includes(this.userSearch2) || a.name.includes(this.userSearch2)) {
return true
}
})
+ },
+ searchPerson2(){
+ if(this.searchEmployeeID===null||this.searchEmployeeID===''){
+ this.searchPerson()
+ return
+ }
+ this.$axios.post(this.$api.companies.selectPersonUser, {
+ code: this.searchEmployeeID
+ }).then(res=>{
+ this.personList = []
+ this.personList.push(res.data)
+ })
+ },
+ selectCustomEnum(){
+ this.$axios.get(this.$api.user.selectCustomEnum).then(res=>{
+ this.componentData.selectField.company.select = []
+ res.data.forEach(a=>{
+ this.componentData.selectField.company.select.push({
+ label: a.company,
+ value: a.id
+ })
+ })
+ })
}
}
}
diff --git a/src/components/view/role-manage.vue b/src/components/view/role-manage.vue
index 2b4d91b..5c05314 100644
--- a/src/components/view/role-manage.vue
+++ b/src/components/view/role-manage.vue
@@ -62,12 +62,20 @@
:componentData="componentData" :key="upIndex" @upRole="upRole" @selectRole="selectRole" />
</div>
<el-dialog :title="type" :visible.sync="addDia" width="550px" @closed="closed">
- <div style="max-height: 500px;overflow-y: auto;padding: 10px;" v-if="addDia">
- <el-row style="line-height: 40px;margin-bottom: 20px;">
- <el-col :span="8" style="font-size: 16px;"><span class="required-span">* </span>瑙掕壊鍚�</el-col>
- <el-col :span="16">
+ <div style="max-height: 550px;overflow-y: auto;padding: 10px 20px;" v-if="addDia">
+ <el-row style="line-height: 42px;">
+ <el-col :span="7" style="font-size: 14px;"><span class="required-span">* </span>瑙掕壊鍚�</el-col>
+ <el-col :span="17">
<el-input v-model="addData.roleName" size="medium" placeholder="闇�鍞竴瑙掕壊鍚�" clearable
:disabled="type=='鏌ョ湅'"></el-input>
+ </el-col>
+ </el-row>
+ <el-row style="line-height: 42px;margin-bottom: 20px;">
+ <el-col :span="7" style="font-size: 14px;"><span class="required-span">* </span>瑙掕壊鍒嗙被</el-col>
+ <el-col :span="17">
+ <el-select v-model="addData.category" size="medium" :disabled="type=='鏌ョ湅'" style="width: 100%;">
+ <el-option v-for="(a, i) in deaprtEnum" :key="i" :label="a.name" :value="a.id"></el-option>
+ </el-select>
</el-col>
</el-row>
<el-divider content-position="left">鏉冮檺鍒嗛厤</el-divider>
@@ -137,7 +145,11 @@
type: 'text',
method: 'selectRole',
}],
- tagField: {},
+ tagField: {
+ category: {
+ select: []
+ }
+ },
selectField: {}
},
entityCopy: {},
@@ -147,18 +159,21 @@
addData: {
roleId2: null,
roleName: null,
+ category: null,
powers: []
},
menu: [],
menuCategroy: [],
menuCopy: [],
type: '鏂板',
- addPower: true
+ addPower: true,
+ deaprtEnum: []
}
},
mounted() {
this.entityCopy = this.HaveJson(this.componentData.entity)
this.selectMenuList()
+ this.selectDepartmentEnum()
this.getPower()
},
methods: {
@@ -187,11 +202,13 @@
upRole(row) {
this.type = '淇敼'
this.addData.roleName = row.name
+ this.addData.category = row.category
this.selectPowerByRoleId(row.id)
},
selectRole(row) {
this.type = '鏌ョ湅'
this.addData.roleName = row.name
+ this.addData.category = row.category
this.selectPowerByRoleId(row.id)
},
openAdd() {
@@ -201,6 +218,10 @@
saveAddData() {
if (this.addData.roleName == '' || this.addData.roleName == null) {
this.$message.error('璇峰~鍐欒鑹插悕')
+ return
+ }
+ if (this.addData.category == '' || this.addData.category == null) {
+ this.$message.error('璇烽�夋嫨瑙掕壊鍒嗙被')
return
}
this.addLoad = true
@@ -295,6 +316,18 @@
this.componentData.do.splice(0, 1)
}
this.addPower = add
+ },
+ selectDepartmentEnum(){
+ this.$axios.get(this.$api.department.selectDepartmentEnum).then(res=>{
+ this.deaprtEnum = res.data
+ this.componentData.tagField.category.select = []
+ res.data.forEach(a=>{
+ this.componentData.tagField.category.select.push({
+ label: a.name,
+ value: a.id
+ })
+ })
+ })
}
}
}
--
Gitblit v1.9.3