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