|
|
<template> <div class="mod-user"> <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> <el-form-item> <el-input v-model="dataForm.userName" :placeholder="$t('sys.user.userAccount')" clearable></el-input> </el-form-item> <el-form-item> <el-input v-model="dataForm.userNo" :placeholder="$t('sys.user.userNo')" clearable></el-input> </el-form-item> <el-form-item> <el-input v-model="dataForm.userDisplay" :placeholder="$t('sys.user.userName')" clearable></el-input> </el-form-item> <el-form-item> <el-input v-model="dataForm.domainControlAccount" :placeholder="$t('sys.user.domainControlAccount')" clearable></el-input> </el-form-item> <el-form-item> <el-button @click="getDataList()" type="primary">{{ buttons.search || $t('sys.common.search') }}</el-button> <el-button v-if="isAuth('sys:user:save')" type="primary" @click="addOrUpdateHandle()">{{ buttons.add || $t('sys.common.add') }}</el-button> <el-button v-if="isAuth('sys:user:save')" :disabled="this.showButton" type="primary" @click="siteAuthorize()"> {{ buttons.factoryAuthorization || $t('sys.user.factoryAuthorization') }}</el-button> <el-button v-if="isAuth('sys:user:save')" :disabled="this.showButton" type="primary" @click="buAuthorize()">{{ buttons.buAuthorization || $t('sys.user.buAuthorization') }}</el-button> <el-button v-if="isAuth('sys:user:save')" :disabled="this.showButton" type="primary" @click="deptAuthorize()">{{ buttons.deptAuthorization || $t('sys.user.deptAuthorization') }}</el-button> <el-button v-if="isAuth('sys:user:save')" :disabled="this.showButton" type="primary" @click="roleAuthorize()">{{ buttons.roleAuthorization || '岗位授权' }}</el-button> <!-- <el-button v-if="isAuth('sys:user:save')" :disabled="this.showButton" type="primary" @click="machineResourceAuthorize()">{{ buttons.machineResourceAuthorization || $t('sys.user.machineResourceAuthorization') }}</el-button> --> </el-form-item> </el-form>
<el-table :data="dataList" border :height="height" v-loading="dataListLoading" @selection-change="selectionChangeHandle" highlight-current-row @current-change="handleCurrentChange" style="width: 100%;"> <el-table-column prop="username" header-align="center" align="center" :label="buttons.username||$t('sys.user.userAccount')"> </el-table-column> <el-table-column prop="userNo" header-align="center" align="center" :label="buttons.userNo||$t('sys.user.userNo')"> </el-table-column> <el-table-column prop="userDisplay" header-align="center" align="center" :label="buttons.userDisplay||$t('sys.user.userName')"> </el-table-column> <el-table-column prop="domainControlAccount" header-align="center" align="center" :label="$t('sys.user.domainControlAccount')"> </el-table-column> <el-table-column prop="isDomainControl" header-align="center" align="center" width="110" :label="$t('sys.user.isDomainControl')"> <template slot-scope="scope"> <span>{{ scope.row.isDomainControl === 1 ? $t('sys.common.yes') : $t('sys.common.no') }}</span> </template> </el-table-column> <el-table-column prop="ifsUsername" header-align="center" align="center" :label="$t('sys.user.ifsUsername')"> </el-table-column> <el-table-column prop="email" header-align="center" align="center" :label="buttons.email||$t('sys.user.email')"> </el-table-column> <el-table-column prop="mobile" header-align="center" align="center" :label="buttons.mobile||$t('sys.user.mobile')"> </el-table-column> <el-table-column prop="languageDefault" header-align="center" align="center" width="100" :label="$t('sys.user.defaultLanguage')"> <template slot-scope="scope"> {{ formatLanguageDefault(scope.row.languageDefault) }} </template> </el-table-column> <el-table-column prop="status" header-align="center" align="center" :label="buttons.status||$t('sys.user.status')"> <template slot-scope="scope"> <el-link v-if="scope.row.status === 0" type="success">{{ buttons.disable || $t('sys.user.disabled') }}</el-link> <el-link v-else type="danger">{{ buttons.normal || $t('sys.user.normal') }}</el-link> </template> </el-table-column> <el-table-column prop="createTime" header-align="center" align="center" width="180" :label="buttons.createTime||$t('sys.common.createTime')"> </el-table-column> <el-table-column fixed="right" header-align="center" align="center" width="110" :label="buttons.cz||$t('sys.common.operation')"> <template slot-scope="scope"> <a v-if="isAuth('sys:user:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.userId)">{{ buttons.edit || $t('sys.common.edit') }}</a> <a v-if="isAuth('sys:user:delete')" type="text" size="small" @click="deleteHandle(scope.row.userId)">{{ buttons.delete || $t('sys.common.delete') }}</a> </template> </el-table-column> </el-table>
<el-pagination style="margin-top: 0px" @size-change="sizeChangeHandle" @current-change="currentChangeHandle" :current-page="pageIndex" :page-sizes="[20, 50, 100, 200,500]" :page-size="pageSize" :total="totalPage" layout="total, sizes, prev, pager, next, jumper"> </el-pagination>
<!-- 弹窗, 新增 / 修改 --> <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList" @close="closeDialog"></add-or-update>
<!-- 新增用户site --> <el-dialog :title="$t('sys.user.factory')" :close-on-click-modal="false" v-drag :visible.sync="siteAddModal" width="900px"> <div style="font-size: 12px"> <el-form :inline="true" label-position="top" :model="siteData"> <el-form-item :label="$t('sys.user.factoryCode')"> <el-input v-model="siteData.siteid" clearable style="width: 120px"></el-input> </el-form-item> <el-form-item :label="$t('sys.user.factoryName')"> <el-input v-model="siteData.sitename" clearable style="width: 200px"></el-input> </el-form-item> <el-form-item :label="' '"> <el-button type="primary" @click="getSite()">{{ $t('sys.common.search') }}</el-button> </el-form-item> </el-form> </div> <el-container style="margin-top: 0px;"> <el-main style="width: 400px; padding: 1px"> <span style="font-size: 12px" >{{ $t('sys.user.availableFactory') }}</span> <el-table height="400px" :data="siteList1" border ref="siteTable1" @row-click="siteClickRow1" @selection-change="selectionSite1" highlight-current-row style="width: 100%"> <el-table-column type="selection" header-align="center" align="center" width="50"> </el-table-column> <el-table-column prop="siteid" header-align="center" align="center" min-width="80" :label="$t('sys.user.factoryCode')"> </el-table-column> <el-table-column prop="sitename" header-align="center" align="center" min-width="120" :label="$t('sys.user.factoryName')"> </el-table-column> </el-table> </el-main> <el-main style="width: 111px;padding: 1px"> <div style="margin-top: 182px;margin-left: 18px"> <el-button type="primary" @click="addSite()">{{ $t('sys.user.addToRight') }}</el-button> </div> <div style="margin-top: 15px;margin-left: 18px"> <el-button type="primary" @click="deleteSite()">{{ $t('sys.user.removeToLeft') }}</el-button> </div> </el-main> <el-main style="width: 400px;padding: 1px"> <span style="font-size: 12px" >{{ $t('sys.user.existingFactory') }}</span> <el-table height="400px" :data="siteList2" border ref="siteTable2" @row-click="siteClickRow2" @selection-change="selectionSite2" highlight-current-row style="width: 100%"> <el-table-column type="selection" header-align="center" align="center" width="50"> </el-table-column> <el-table-column prop="siteid" header-align="center" align="center" min-width="80" :label="$t('sys.user.factoryCode')"> </el-table-column> <el-table-column prop="sitename" header-align="center" align="center" min-width="120" :label="$t('sys.user.factoryName')"> </el-table-column> </el-table> </el-main> </el-container> <el-footer style="height:40px;margin-top: 20px;text-align:center"> <el-button type="primary" @click="siteAddModal = false">{{ $t('sys.common.close') }}</el-button> </el-footer> </el-dialog>
<!-- 新增用户bu --> <el-dialog title="BU" :close-on-click-modal="false" v-drag :visible.sync="buAddModal" width="900px"> <div style="font-size: 12px"> <el-form :inline="true" label-position="top" :model="buData"> <el-form-item :label="$t('sys.user.factoryCode')"> <el-input v-model="buData.site" clearable style="width: 120px"></el-input> </el-form-item> <el-form-item :label="$t('sys.user.buCode')"> <el-input v-model="buData.buNo" clearable style="width: 120px"></el-input> </el-form-item> <el-form-item :label="$t('sys.user.buName')"> <el-input v-model="buData.buDesc" clearable style="width: 200px"></el-input> </el-form-item> <el-form-item :label="' '"> <el-button type="primary" @click="getBu()">{{ $t('sys.common.search') }}</el-button> </el-form-item> </el-form> </div> <el-container style="margin-top: 0px;"> <el-main style="width: 400px; padding: 1px"> <span style="font-size: 12px" >{{ $t('sys.user.availableBu') }}</span> <el-table height="400px" :data="buList1" border ref="buTable1" @row-click="buClickRow1" @selection-change="selectionBu1" highlight-current-row style="width: 100%"> <el-table-column type="selection" header-align="center" align="center" width="50"> </el-table-column> <el-table-column prop="site" header-align="center" align="center" min-width="80" :label="$t('sys.user.factoryCode')"> </el-table-column> <el-table-column prop="buNo" header-align="center" align="center" min-width="80" :label="$t('sys.user.buCode')"> </el-table-column> <el-table-column prop="buDesc" header-align="center" align="center" min-width="120" :label="$t('sys.user.buName')"> </el-table-column> </el-table> </el-main> <el-main style="width: 111px;padding: 1px"> <div style="margin-top: 182px;margin-left: 18px"> <el-button type="primary" @click="addBu()">{{ $t('sys.user.addToRight') }}</el-button> </div> <div style="margin-top: 15px;margin-left: 18px"> <el-button type="primary" @click="deleteBu()">{{ $t('sys.user.removeToLeft') }}</el-button> </div> </el-main> <el-main style="width: 400px;padding: 1px"> <span style="font-size: 12px" >{{ $t('sys.user.existingBu') }}</span> <el-table height="400px" :data="buList2" border ref="buTable2" @row-click="buClickRow2" @selection-change="selectionBu2" highlight-current-row style="width: 100%"> <el-table-column type="selection" header-align="center" align="center" width="50"> </el-table-column> <el-table-column prop="site" header-align="center" align="center" min-width="80" :label="$t('sys.user.factoryCode')"> </el-table-column> <el-table-column prop="buNo" header-align="center" align="center" min-width="80" :label="$t('sys.user.buCode')"> </el-table-column> <el-table-column prop="buDesc" header-align="center" align="center" min-width="120" :label="$t('sys.user.buName')"> </el-table-column> </el-table> </el-main> </el-container> <el-footer style="height:40px;margin-top: 20px;text-align:center"> <el-button type="primary" @click="buAddModal = false">{{ $t('sys.common.close') }}</el-button> </el-footer> </el-dialog>
<!-- 新增用户部门 --> <el-dialog :title="$t('sys.user.dept')" :close-on-click-modal="false" v-drag :visible.sync="deptAddModal" width="900px"> <div style="font-size: 12px"> <el-form :inline="true" label-position="top" :model="deptData"> <el-form-item :label="$t('sys.user.deptCode')"> <el-input v-model="deptData.departmentId" clearable style="width: 120px"></el-input> </el-form-item> <el-form-item :label="$t('sys.user.deptName')"> <el-input v-model="deptData.departmentName" clearable style="width: 200px"></el-input> </el-form-item> <el-form-item :label="' '"> <el-button type="primary" @click="getDept()">{{ $t('sys.common.search') }}</el-button> </el-form-item> </el-form> </div> <el-container style="margin-top: 0px;"> <el-main style="width: 400px; padding: 1px"> <span style="font-size: 12px" >{{ $t('sys.user.availableDept') }}</span> <el-table height="400px" :data="deptList1" border ref="deptTable1" @row-click="deptClickRow1" @selection-change="selectionDept1" highlight-current-row style="width: 100%"> <el-table-column type="selection" header-align="center" align="center" width="50"> </el-table-column> <el-table-column prop="buDesc" header-align="center" align="center" min-width="80" label="BU"> </el-table-column> <el-table-column prop="departmentId" header-align="center" align="center" min-width="80" :label="$t('sys.user.deptCode')"> </el-table-column> <el-table-column prop="departmentName" header-align="center" align="center" min-width="120" :label="$t('sys.user.deptName')"> </el-table-column> </el-table> </el-main> <el-main style="width: 111px;padding: 1px"> <div style="margin-top: 182px;margin-left: 18px"> <el-button type="primary" @click="addDept()">{{ $t('sys.user.addToRight') }}</el-button> </div> <div style="margin-top: 15px;margin-left: 18px"> <el-button type="primary" @click="deleteDept()">{{ $t('sys.user.removeToLeft') }}</el-button> </div> </el-main> <el-main style="width: 400px;padding: 1px"> <span style="font-size: 12px" >{{ $t('sys.user.existingDept') }}</span> <el-table height="400px" :data="deptList2" border ref="deptTable2" @row-click="deptClickRow2" @selection-change="selectionDept2" highlight-current-row style="width: 100%"> <el-table-column type="selection" header-align="center" align="center" width="50"> </el-table-column> <el-table-column prop="buDesc" header-align="center" align="center" min-width="80" label="BU"> </el-table-column> <el-table-column prop="departmentId" header-align="center" align="center" min-width="80" :label="$t('sys.user.deptCode')"> </el-table-column> <el-table-column prop="departmentName" header-align="center" align="center" min-width="120" :label="$t('sys.user.deptName')"> </el-table-column> </el-table> </el-main> </el-container> <el-footer style="height:40px;margin-top: 20px;text-align:center"> <el-button type="primary" @click="deptAddModal = false">{{ $t('sys.common.close') }}</el-button> </el-footer> </el-dialog>
<!-- 岗位授权 --> <el-dialog style="font-size: 12px" v-drag :title="'岗位授权'" :visible.sync="roleVisible" width="680px" :append-to-body="true"> <el-transfer class="rq" filterable v-model="selectRoleList" :props="{ key: 'roleKey', label: 'roleLabel' }" :data="roleList" :titles="['未授权岗位', '已授权岗位']"></el-transfer> <span slot="footer" class="dialog-footer"> <div style="margin-top: 5px"> <el-button type="primary" @click="saveRoleAssessSite()">确定</el-button> <el-button @click="roleVisible = false" type="primary">取消</el-button> </div>
</span> </el-dialog>
<!-- 机台授权弹窗 --> <el-dialog :title="$t('sys.user.machineResourceAuthorization')" :close-on-click-modal="false" v-drag :visible.sync="machineResourceAddModal" width="900px"> <div style="font-size: 12px"> <el-form :inline="true" label-position="top" :model="machineResourceData"> <el-form-item :label="$t('sys.user.factoryCode')"> <el-input v-model="machineResourceData.site" clearable style="width: 120px"></el-input> </el-form-item> <el-form-item :label="$t('sys.user.machineCode')"> <el-input v-model="machineResourceData.resourceID" clearable style="width: 120px"></el-input> </el-form-item> <el-form-item :label="$t('sys.user.machineDesc')"> <el-input v-model="machineResourceData.resourceDesc" clearable style="width: 200px"></el-input> </el-form-item> <el-form-item :label="' '"> <el-button type="primary" @click="getMachineResource()">{{ $t('sys.common.search') }}</el-button> </el-form-item> </el-form> </div> <el-container style="margin-top: 0px;"> <el-main style="width: 400px; padding: 1px"> <span style="font-size: 12px" >{{ $t('sys.user.availableMachine') }}</span> <el-table height="400px" :data="machineResourceList1" border ref="machineResourceTable1" @row-click="machineResourceClickRow1" @selection-change="selectionMachineResource1" highlight-current-row style="width: 100%"> <el-table-column type="selection" header-align="center" align="center" width="50"> </el-table-column> <el-table-column prop="resourceID" header-align="center" align="center" min-width="80" :label="$t('sys.user.machineCode')"> </el-table-column> <el-table-column prop="resourceDesc" header-align="center" align="center" min-width="120" :label="$t('sys.user.machineDesc')"> </el-table-column> </el-table> </el-main> <el-main style="width: 111px;padding: 1px"> <div style="margin-top: 182px;margin-left: 18px"> <el-button type="primary" @click="addMachineResource()">{{ $t('sys.user.addToRight') }}</el-button> </div> <div style="margin-top: 15px;margin-left: 18px"> <el-button type="primary" @click="deleteMachineResource()">{{ $t('sys.user.removeToLeft') }}</el-button> </div> </el-main> <el-main style="width: 400px;padding: 1px"> <span style="font-size: 12px" >{{ $t('sys.user.existingMachine') }}</span> <el-table height="400px" :data="machineResourceList2" border ref="machineResourceTable2" @row-click="machineResourceClickRow2" @selection-change="selectionMachineResource2" highlight-current-row style="width: 100%"> <el-table-column type="selection" header-align="center" align="center" width="50"> </el-table-column> <el-table-column prop="resourceID" header-align="center" align="center" min-width="80" :label="$t('sys.user.machineCode')"> </el-table-column> <el-table-column prop="resourceDesc" header-align="center" align="center" min-width="120" :label="$t('sys.user.machineDesc')"> </el-table-column> </el-table> </el-main> </el-container> <el-footer style="height:40px;margin-top: 20px;text-align:center"> <el-button type="primary" @click="machineResourceAddModal = false">{{ $t('sys.common.close') }}</el-button> </el-footer> </el-dialog> </div></template>
<script>import { getSiteList, addUserSite, delUserSite, getSite, getBuList, addUserBu, delUserBu, getBu, getDeptList, addUserDept, delUserDept, getDept, getMachineResourceList, addUserMachineResource, delUserMachineResource,} from '@/api/factory/site.js'import {searchAccessRoleList, saveAccessRole} from '@/api/base/site.js'import AddOrUpdate from './user-add-or-update'import {throttle} from "../../../utils/common";import { searchFunctionButtonList,} from "@/api/sysLanguage.js"import { normalizeLocale } from '@/i18n/i18n'
export default { data() { return { showButton: true, height: 200, currentData: {}, userId: this.$store.state.user.name, dataForm: { userName: '', userNo: '', userDisplay: '', domainControlAccount: '' }, buttons: { cz: this.$t('sys.common.operation'), search: this.$t('sys.common.search'), add: this.$t('sys.common.add'), edit: this.$t('sys.common.edit'), delete: this.$t('sys.common.delete'), specialCompetencies: this.$t('sys.role.authorize'), factoryAuthorization: this.$t('sys.user.factoryAuthorization'), buAuthorization: this.$t('sys.user.buAuthorization'), deptAuthorization: this.$t('sys.user.deptAuthorization'), roleAuthorization: '岗位授权', machineResourceAuthorization: this.$t('sys.user.machineResourceAuthorization'), createTime: this.$t('sys.common.createTime'), username: this.$t('sys.user.userAccount'), userNo: this.$t('sys.user.userNo'), userDisplay: this.$t('sys.user.userName'), email: this.$t('sys.user.email'), mobile: this.$t('sys.user.mobile'), status: this.$t('sys.user.status'), disable: this.$t('sys.user.disabled'), normal: this.$t('sys.user.normal'), auth: this.$t('sys.role.authorize'), allAuth: this.$t('sys.role.authorize'), currentAuth: this.$t('sys.role.authorize') }, dataList: [], selectUser: {}, pageIndex: 1, pageSize: 50, totalPage: 0, dataListLoading: false, dataListSelections: [], addOrUpdateVisible: false, siteData: { username: '', siteid: '', sitename: '', active: '' }, buData: { site: '', buNo: '', buDesc: '', active: '', username: '' }, deptData: { site: '', buNo: '', departmentId: '', departmentName: '', active: '', username: '' }, machineResourceData: { site: '', buNo: '', resourceID: '', resourceDesc: '', username: '' }, roleVisible: false, selectRoleList: [], roleList: [], siteList1:[], siteList2:[], buList1:[], buList2:[], deptList1:[], deptList2:[], machineResourceList1:[], machineResourceList2:[], siteSelections1: [], siteSelections2: [], buSelections1: [], buSelections2: [], deptSelections1: [], deptSelections2: [], machineResourceSelections1: [], machineResourceSelections2: [], siteAddModal: false, buAddModal: false, deptAddModal: false, machineResourceAddModal: false, } }, components: { AddOrUpdate }, activated() { this.getDataList() }, mounted() { this.$nextTick(() => { this.height = window.innerHeight - 155; }) }, methods: {
formatLanguageDefault (languageDefault) { const lang = normalizeLocale(languageDefault || 'cn') return this.$t(`main.languageName.${lang}`) },
// 获取button的词典
getFunctionButtonList() { let queryButton = { functionId: this.$route.meta.menuId, tableId: '*', languageCode: this.$i18n.locale, objectType: 'button' } searchFunctionButtonList(queryButton).then(({data}) => { if (data.code == 0 && data.data) { this.buttons = data.data } }) },
// 选中行
handleCurrentChange (val) { this.selectUser = val this.showButton = false },
// 获取数据列表
getDataList: throttle(function () { this.dataListLoading = true this.$http({ url: this.$http.adornUrl('/sys/user/list'), method: 'get', params: this.$http.adornParams({ 'page': this.pageIndex, 'limit': this.pageSize, 'username': this.dataForm.userName, 'userNo': this.dataForm.userNo, 'userDisplay': this.dataForm.userDisplay, 'domainControlAccount': this.dataForm.domainControlAccount }) }).then(({data}) => { if (data && data.code === 0) { this.dataList = data.page.list this.totalPage = data.page.totalCount } else { this.dataList = [] this.totalPage = 0 } this.dataListLoading = false }) }, 1000),
// 每页数
sizeChangeHandle(val) { this.pageSize = val this.pageIndex = 1 this.getDataList() },
// 当前页
currentChangeHandle(val) { this.pageIndex = val this.getDataList() },
// 多选
selectionChangeHandle(val) { this.dataListSelections = val },
// 新增 / 修改
addOrUpdateHandle(id) { this.addOrUpdateVisible = true this.$nextTick(() => { this.$refs.addOrUpdate.init(id) }) },
// 删除
deleteHandle (id) { let userIds = id ? [id] : this.dataListSelections.map(item => { return item.userId }) this.$confirm(this.$t('sys.user.confirmDelete', { ids: userIds.join(','), action: id ? this.$t('sys.common.delete') : this.$t('sys.user.batchDelete') }), this.$t('sys.common.tip'), { confirmButtonText: this.$t('sys.common.confirm'), cancelButtonText: this.$t('sys.common.cancel'), type: 'warning' }).then(() => { this.$http({ url: this.$http.adornUrl('/sys/user/delete'), method: 'post', data: this.$http.adornData(userIds, false) }).then(({data}) => { if (data && data.code === 0) { this.$message.success(this.$t('sys.common.operationSuccess')) this.getDataList() } else { this.$message.error(data.msg) } }) }) },
closeDialog() { this.$refs.addOrUpdate.closeDialog() },
// ========================== 授权工厂 ==========================
// 授权工厂
siteAuthorize () { this.siteData = { siteid: '', sitename: '', active: '' } this.siteSelections1 = null this.siteSelections2 = null getSiteList(this.selectUser).then(({data}) => { this.siteList1 = data.row1 this.siteList2 = data.row2 }) this.siteAddModal = true },
// 查询可用site
getSite () { this.siteData.username = this.selectUser.username getSite(this.siteData).then(({data}) => { if (data.code === 0) { this.siteList1 = data.rows } }) },
// 可选site
siteClickRow1 (row) { this.$refs.siteTable1.toggleRowSelection(row) },
// 已有site
siteClickRow2 (row) { this.$refs.siteTable2.toggleRowSelection(row) },
selectionSite1 (val) { this.siteSelections1 = val },
selectionSite2 (val) { this.siteSelections2 = val },
// 添加site
addSite () { if(this.siteSelections1 == null || this.siteSelections1.length === 0){ this.$message.warning(this.$t('sys.user.selectAvailableFactory')) return } let inData = { username: this.selectUser.username, siteList: this.siteSelections1 } addUserSite(inData).then(({data}) => { if (data && data.code === 0) { getSiteList(this.selectUser).then(({data}) => { this.siteList1 = data.row1 this.siteList2 = data.row2 }) this.siteSelections1 = [] } else { this.$alert(data.msg, this.$t('sys.user.error'), { confirmButtonText: this.$t('sys.common.confirm') }) } }) },
// 删除site
deleteSite () { if(this.siteSelections2 == null || this.siteSelections2.length === 0){ this.$message.warning(this.$t('sys.user.selectExistingFactory')) return } let inData = { username: this.selectUser.username, siteList: this.siteSelections2 } delUserSite(inData).then(({data}) => { if (data && data.code === 0) { getSiteList(this.selectUser).then(({data}) => { this.siteList1 = data.row1 this.siteList2 = data.row2 }) this.siteSelections2 = [] } else { this.$alert(data.msg, this.$t('sys.user.error'), { confirmButtonText: this.$t('sys.common.confirm') }) } }) },
// ========================== 授权BU ==========================
// 授权BU
buAuthorize () { this.buData = { site: '', buNo: '', buDesc: '', active: '', username: '' } this.buSelections1 = null this.buSelections2 = null getBuList(this.selectUser).then(({data}) => { this.buList1 = data.row1 this.buList2 = data.row2 }) this.buAddModal = true },
// 查询可用bu
getBu () { this.buData.username = this.selectUser.username getBu(this.buData).then(({data}) => { if (data.code === 0) { this.buList1 = data.rows } }) },
// 可选bu
buClickRow1 (row) { this.$refs.buTable1.toggleRowSelection(row) },
// 已有bu
buClickRow2 (row) { this.$refs.buTable2.toggleRowSelection(row) },
selectionBu1 (val) { this.buSelections1 = val },
selectionBu2 (val) { this.buSelections2 = val },
// 添加bu
addBu () { if (this.buSelections1 == null || this.buSelections1.length === 0) { this.$message.warning(this.$t('sys.user.selectAvailableBu')) return } let inData = { username: this.selectUser.username, buList: this.buSelections1 } addUserBu(inData).then(({data}) => { if (data && data.code === 0) { getBuList(this.selectUser).then(({data}) => { this.buList1 = data.row1 this.buList2 = data.row2 }) this.buSelections1 = [] } else { this.$alert(data.msg, this.$t('sys.user.error'), { confirmButtonText: this.$t('sys.common.confirm') }) } }) },
// 删除bu
deleteBu () { if (this.buSelections2 == null || this.buSelections2.length === 0) { this.$message.warning(this.$t('sys.user.selectExistingBu')) return } let inData = { username: this.selectUser.username, buList: this.buSelections2 } delUserBu(inData).then(({data}) => { if (data && data.code === 0) { getBuList(this.selectUser).then(({data}) => { this.buList1 = data.row1 this.buList2 = data.row2 }) this.buSelections2 = [] } else { this.$alert(data.msg, this.$t('sys.user.error'), { confirmButtonText: this.$t('sys.common.confirm') }) } }) },
// ========================== 授权部门 ==========================
// 授权部门
deptAuthorize () { this.deptData = { site: '', buNo: '', departmentId: '', departmentName: '', active: '', username: '' } this.deptSelections1 = null this.deptSelections2 = null getDeptList(this.selectUser).then(({data}) => { this.deptList1 = data.row1 this.deptList2 = data.row2 }) this.deptAddModal = true },
// 查询可用部门
getDept () { this.deptData.username = this.selectUser.username getDept(this.deptData).then(({data}) => { if (data.code === 0) { this.deptList1 = data.rows } }) },
// 可选部门
deptClickRow1 (row) { this.$refs.deptTable1.toggleRowSelection(row) },
// 已有部门
deptClickRow2 (row) { this.$refs.deptTable2.toggleRowSelection(row) },
selectionDept1 (val) { this.deptSelections1 = val },
selectionDept2 (val) { this.deptSelections2 = val },
// 添加部门
addDept () { if (this.deptSelections1 == null || this.deptSelections1.length === 0) { this.$message.warning(this.$t('sys.user.selectAvailableDept')) return } let inData = { username: this.selectUser.username, deptList: this.deptSelections1 } addUserDept(inData).then(({data}) => { if (data && data.code === 0) { getDeptList(this.selectUser).then(({data}) => { this.deptList1 = data.row1 this.deptList2 = data.row2 }) this.deptSelections1 = [] } else { this.$alert(data.msg, this.$t('sys.user.error'), { confirmButtonText: this.$t('sys.common.confirm') }) } }) },
// 删除部门
deleteDept () { if (this.deptSelections2 == null || this.deptSelections2.length === 0) { this.$message.warning(this.$t('sys.user.selectExistingDept')) return } let inData = { username: this.selectUser.username, deptList: this.deptSelections2 } delUserDept(inData).then(({data}) => { if (data && data.code === 0) { getDeptList(this.selectUser).then(({data}) => { this.deptList1 = data.row1 this.deptList2 = data.row2 }) this.deptSelections2 = [] } else { this.$alert(data.msg, this.$t('sys.user.error'), { confirmButtonText: this.$t('sys.common.confirm') }) } }) },
// ========================== 岗位授权 ==========================
roleAuthorize () { this.roleVisible = true this.searchRoleList() },
searchRoleList () { searchAccessRoleList({ username: this.selectUser.username, active: 'Y' }).then(({data}) => { this.selectRoleList = data.selectRoleList || [] this.roleList = (data.roleList || []).map(item => { const site = String((item && item.site) || '').trim() const roleNo = String((item && item.roleNo) || '').trim() const roleDesc = String((item && item.roleDesc) || '').trim() return Object.assign({}, item, { roleKey: item.roleKey || (site + '|' + roleNo), roleLabel: item.roleLabel || (site + ' - ' + roleDesc) }) }) }) },
parseRoleKey (roleKey) { const rawKey = String(roleKey || '') const splitIndex = rawKey.indexOf('|') if (splitIndex < 0) { return { site: '', roleNo: rawKey } } return { site: rawKey.substring(0, splitIndex), roleNo: rawKey.substring(splitIndex + 1) } },
saveRoleAssessSite () { if (this.selectRoleList.length === 0) { this.$message.warning('请选择角色') return false } let inList = [] for (let i = 0; i < this.selectRoleList.length; i++) { const roleInfo = this.parseRoleKey(this.selectRoleList[i]) let inData = { site: roleInfo.site, username: this.selectUser.username, roleNo: roleInfo.roleNo } inList.push(inData) } saveAccessRole(inList).then(({data}) => { if (data && data.code === 0) { this.$message.success('操作成功') this.roleVisible = false } else { this.$message.error(data.msg) } }) },
// ========================== 机台授权 ==========================
// 机台授权
machineResourceAuthorize () { this.machineResourceData = { site: '', buNo: '', resourceID: '', resourceDesc: '', username: '' } this.machineResourceSelections1 = null this.machineResourceSelections2 = null getMachineResourceList(this.selectUser).then(({data}) => { this.machineResourceList1 = data.row1 this.machineResourceList2 = data.row2 }) this.machineResourceAddModal = true },
// 查询可用机台
getMachineResource () { this.machineResourceData.username = this.selectUser.username getMachineResourceList(this.machineResourceData).then(({data}) => { if (data.code === 0) { this.machineResourceList1 = data.row1 } }) },
// 可选机台
machineResourceClickRow1 (row) { this.$refs.machineResourceTable1.toggleRowSelection(row) },
// 已有机台
machineResourceClickRow2 (row) { this.$refs.machineResourceTable2.toggleRowSelection(row) },
selectionMachineResource1 (val) { this.machineResourceSelections1 = val },
selectionMachineResource2 (val) { this.machineResourceSelections2 = val },
// 添加机台
addMachineResource () { if (this.machineResourceSelections1 == null || this.machineResourceSelections1.length === 0) { this.$message.warning(this.$t('sys.user.selectAvailableMachine')) return } let inData = { username: this.selectUser.username, resourceList: this.machineResourceSelections1 } addUserMachineResource(inData).then(({data}) => { if (data && data.code === 0) { getMachineResourceList(this.selectUser).then(({data}) => { this.machineResourceList1 = data.row1 this.machineResourceList2 = data.row2 }) this.machineResourceSelections1 = [] } else { this.$alert(data.msg, this.$t('sys.user.error'), { confirmButtonText: this.$t('sys.common.confirm') }) } }) },
// 删除机台
deleteMachineResource () { if (this.machineResourceSelections2 == null || this.machineResourceSelections2.length === 0) { this.$message.warning(this.$t('sys.user.selectExistingMachine')) return } let inData = { username: this.selectUser.username, resourceList: this.machineResourceSelections2 } delUserMachineResource(inData).then(({data}) => { if (data && data.code === 0) { getMachineResourceList(this.selectUser).then(({data}) => { this.machineResourceList1 = data.row1 this.machineResourceList2 = data.row2 }) this.machineResourceSelections2 = [] } else { this.$alert(data.msg, this.$t('sys.user.error'), { confirmButtonText: this.$t('sys.common.confirm') }) } }) },
}, created() { // this.getFunctionButtonList()
}}</script><style>.rq .el-transfer-panel { width: 260px;}
.el-transfer-panel { border: 2px solid #17b3a3; border-radius: 4px; overflow: hidden; background: #fff; display: inline-block; vertical-align: middle; width: 200px; max-height: 100%; -webkit-box-sizing: border-box; box-sizing: border-box; position: relative;}
.el-transfer-panel .el-transfer-panel__header { height: 40px; line-height: 40px; background: #17b3a3; margin: 0; padding-left: 15px; border-bottom: 1px solid #17b3a3; -webkit-box-sizing: border-box; box-sizing: border-box; color: #000;}
.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label { font-size: 14px; color: #303133; font-weight: 400;}
.el-dialog__title { line-height: 24px; font-size: 16px; color: #303133;}</style>
|