| | |
| | | <template> |
| | | <div class="member-manage"> |
| | | <div class="left"> |
| | | <div> |
| | | <el-input placeholder="请输入" v-model="treeWord"> |
| | | <div style="margin-bottom:10px;"> |
| | | <el-input placeholder="请输入" v-model="treeWord" size="small"> |
| | | <el-button slot="append" icon="el-icon-search"></el-button> |
| | | </el-input> |
| | | </div> |
| | | <el-tree :data="treeData" node-key="id" default-expand-all></el-tree> |
| | | <el-tree |
| | | :data="treeData" |
| | | node-key="id" |
| | | default-expand-all |
| | | @node-click="checkNode" |
| | | :expand-on-click-node="false" |
| | | :check-on-click-node="true" |
| | | :highlight-current="true" |
| | | ></el-tree> |
| | | <div class="menuList" v-show="showMenu" :style="{top:menuTop+'px',left:menuLeft+'px'}"> |
| | | <ul> |
| | | <li>创建同级节点</li> |
| | |
| | | <div class="table-area"> |
| | | <div class="actions"> |
| | | <el-button type="primary" size="small" @click="addMember">添加人员</el-button> |
| | | <el-button type="primary" size="small" @click="toggleOrganize">换组织</el-button> |
| | | <el-button |
| | | type="primary" |
| | | :disabled="multipleTableSelection.length<1" |
| | | size="small" |
| | | @click="toggleOrganize" |
| | | >换组织</el-button> |
| | | <el-button type="primary" size="small" @click="batchImport">批量导入</el-button> |
| | | <el-button type="primary" size="small" @click="uploadPic">上传照片</el-button> |
| | | <!-- <el-button type="primary" size="small" @click="uploadPic">上传照片</el-button> --> |
| | | </div> |
| | | <el-table class="thbg" :data="tableData" fit ref="elTable"> |
| | | <el-table |
| | | class="thbg" |
| | | :data="tableData" |
| | | fit |
| | | ref="elTable" |
| | | @selection-change="tableSelection" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column label="姓名" prop="name" sortable> |
| | | <el-table-column label="姓名" prop="Name" sortable> |
| | | <template slot-scope="scope"> |
| | | <div style="cursor:pointer;">{{scope.row.name}}</div> |
| | | <div style="cursor:pointer;">{{scope.row.Name}}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="照片" prop="picture"> |
| | | <template> |
| | | <div></div> |
| | | <el-table-column label="照片" prop="Surface"> |
| | | <template slot-scope="scope"> |
| | | <div class="table-cell-pic"> |
| | | <img :src="`${CLIP}${scope.row.Surface}`" alt /> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="性别" prop="gender"></el-table-column> |
| | | <el-table-column label="所属组织" prop="organization"></el-table-column> |
| | | <el-table-column label="工号" prop="no"></el-table-column> |
| | | <el-table-column label="手机号" prop="phone"></el-table-column> |
| | | <el-table-column label="用户权限" prop="userpermission"></el-table-column> |
| | | <el-table-column label="转储权限" prop="transferpermission"></el-table-column> |
| | | <el-table-column label="操作"> |
| | | <template> |
| | | <el-table-column label="性别" prop="Sex"></el-table-column> |
| | | <el-table-column label="所属组织" prop="Org"></el-table-column> |
| | | <el-table-column label="工号" prop="WorkID"></el-table-column> |
| | | <el-table-column label="手机号" prop="Tel"></el-table-column> |
| | | <el-table-column label="用户权限" prop="userpermission"> |
| | | <template slot-scope="scope"> |
| | | <div> |
| | | <i class="el-icon-edit"></i> |
| | | <i class="el-icon-delete"></i> |
| | | <el-switch v-model="scope.row.UserPermissions" @change="memberUpdate(scope.row)"></el-switch> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="转储权限" prop="transferpermission"> |
| | | <template slot-scope="scope"> |
| | | <div> |
| | | <el-switch v-model="scope.row.DumpPermissions" @change="memberUpdate(scope.row)"></el-switch> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作"> |
| | | <template slot-scope="scope"> |
| | | <div class="operation"> |
| | | <i class="el-icon-edit" @click="editMember(scope.row)"></i> |
| | | <i class="el-icon-delete" @click="delMember(scope.row)"></i> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | class="avatar-uploader" |
| | | action="https://jsonplaceholder.typicode.com/posts/" |
| | | :show-file-list="false" |
| | | :http-request="uploadMemberPic" |
| | | :http-request="uploadMemberPicture" |
| | | > |
| | | <img |
| | | v-if="memberEditForm.memberPicUrl" |
| | | :src="memberEditForm.memberPicUrl" |
| | | v-if="memberEditForm.Surface" |
| | | :src="`/httpImage/`+memberEditForm.Surface" |
| | | class="avatar" |
| | | /> |
| | | <i v-else class="el-icon-plus avatar-uploader-icon"></i> |
| | | </el-upload> |
| | | </el-form-item> |
| | | <el-form-item label="工号:" prop="no"> |
| | | <el-input v-model="memberEditForm.no" size="mini"></el-input> |
| | | <el-form-item label="工号:" prop="WorkID"> |
| | | <el-input v-model="memberEditForm.WorkID" size="mini"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="照片标识:"> |
| | | <el-input v-model="memberEditForm.figure" size="mini"></el-input> |
| | | <el-input v-model="memberEditForm.SurfaceName" size="mini"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="姓名:"> |
| | | <el-input v-model="memberEditForm.name" size="mini"></el-input> |
| | | <el-input v-model="memberEditForm.Name" size="mini"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="用户名:"> |
| | | <el-input v-model="memberEditForm.UserName" size="mini"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="性别:"> |
| | | <el-radio v-model="memberEditForm.gender" label="1">女</el-radio> |
| | | <el-radio v-model="memberEditForm.gender" label="2">男</el-radio> |
| | | <el-radio v-model="memberEditForm.Sex" label="女">女</el-radio> |
| | | <el-radio v-model="memberEditForm.Sex" label="男">男</el-radio> |
| | | </el-form-item> |
| | | <el-form-item label="身份证号:"> |
| | | <el-input v-model="memberEditForm.idCard" size="mini"></el-input> |
| | | <el-input v-model="memberEditForm.OwnerID" size="mini"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="手机号:"> |
| | | <el-input v-model="memberEditForm.phone" size="mini"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="其他:"> |
| | | <el-input v-model="memberEditForm.other" size="mini"></el-input> |
| | | <el-input v-model="memberEditForm.Tel" size="mini"></el-input> |
| | | </el-form-item> |
| | | <div class="btns"> |
| | | <el-button size="small">取消</el-button> |
| | | <el-button size="small" type="primary">保存</el-button> |
| | | <el-button size="small" @click="memberEditDialogVisible=false">取消</el-button> |
| | | <el-button size="small" type="primary" @click="memberSave">保存</el-button> |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | |
| | | @close="toggleOrganizeDialogVisible=false" |
| | | > |
| | | <div class="text-left"> |
| | | <div class="flex-box"> |
| | | <label>人员:</label> |
| | | <span>lisi</span> |
| | | </div> |
| | | <el-input v-model="organizeKeyword" size="small"> |
| | | <el-button slot="append" icon="el-icon-search"></el-button> |
| | | <el-button slot="append" icon="el-icon-search" @clcik="getOrganizeTreeData"></el-button> |
| | | </el-input> |
| | | <div>默认组织</div> |
| | | <el-tree :data="organizeData" node-key="id" default-expand-all></el-tree> |
| | | <el-tree |
| | | :data="organizeData" |
| | | node-key="id" |
| | | default-expand-all |
| | | @node-click="checkOrgNode" |
| | | :expand-on-click-node="false" |
| | | :check-on-click-node="true" |
| | | :highlight-current="true" |
| | | ></el-tree> |
| | | <div slot="footer" class="btns"> |
| | | <el-button size="small">取消</el-button> |
| | | <el-button size="small" type="primary">确定</el-button> |
| | | <el-button size="small" @click="toggleOrganizeDialogVisible=false">取消</el-button> |
| | | <el-button size="small" type="primary" @click="updateOrg">确定</el-button> |
| | | </div> |
| | | </div> |
| | | </el-dialog> |
| | |
| | | <el-table-column prop="time" label="上传时间"></el-table-column> |
| | | <el-table-column prop="state" label="状态"></el-table-column> |
| | | </el-table> |
| | | <el-pagination |
| | | @size-change="handleTableSizeChange" |
| | | @current-change="renderMemberTable" |
| | | :current-page.sync="PageIndex" |
| | | :page-size="PageSize" |
| | | :page-sizes="pageSizes" |
| | | layout="total,sizes, prev, pager, next" |
| | | :total="tableTotal" |
| | | ></el-pagination> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | |
| | | |
| | | <script> |
| | | |
| | | import { getShuohuangDepartTree, getOrganizeTree } from '@/api/shuohuang' |
| | | import { getShuohuangDepartTree, getOrganizeTree, getMemberList, updateMemberInfo, addMember, updateUnit, uploadMemberPic } from '@/api/shuohuang' |
| | | |
| | | export default { |
| | | data () { |
| | | return { |
| | | CLIP: 'http://192.168.20.113/', |
| | | treeWord: '', |
| | | treeData: [], |
| | | showMenu: false, |
| | | deptId: '', |
| | | menuTop: 0, |
| | | menuLeft: 0, |
| | | keyword: '', |
| | | gender: '', |
| | | genders: [{ name: '男', id: 'g0' }, { name: '女', id: 'g1' }], |
| | | tableData: [], |
| | | multipleTableSelection: [], |
| | | PageIndex: 1, |
| | | pageSizes: [2, 8, 12, 24], |
| | | tableTotal: 0, |
| | | PageSize: 8, |
| | | organizeData: [], |
| | | checkedOrg: '', |
| | | organizeKeyword: '', |
| | | memberEditDialogVisible: false, |
| | | toggleOrganizeDialogVisible: false, |
| | | batchImportDialogVisible: false, |
| | |
| | | mounted () { |
| | | this.searchLeftTreeData(); |
| | | this.getOrganizeTreeData(); |
| | | this.renderMemberTable(); |
| | | }, |
| | | methods: { |
| | | uploadPic(){ |
| | | checkOrgNode (a, b, c) { |
| | | this.checkedOrg = a.id |
| | | }, |
| | | updateOrg () { |
| | | let ids = this.multipleTableSelection.map(row => { |
| | | return row.ID |
| | | }); |
| | | let params = { |
| | | DeptID: this.checkedOrg, |
| | | Users: ids.join(',') |
| | | } |
| | | updateUnit(params).then(res => { |
| | | if (res.success) { |
| | | this.$notify({ |
| | | type: 'success', |
| | | message: res.msg |
| | | }); |
| | | this.toggleOrganizeDialogVisible = false; |
| | | this.renderMemberTable(); |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | tableSelection (val) { |
| | | this.multipleTableSelection = val; |
| | | }, |
| | | memberSave () { |
| | | if (this.memberEditForm.ID) { |
| | | updateMemberInfo(this.memberEditForm).then(res => { |
| | | if (res.success) { |
| | | this.$notify({ |
| | | type: 'success', |
| | | message: res.msg |
| | | }); |
| | | this.memberEditDialogVisible = false; |
| | | this.renderMemberTable(); |
| | | } |
| | | }) |
| | | }else{ |
| | | addMember(this.memberEditForm).then(res=>{ |
| | | if(res.success){ |
| | | this.$notify({ |
| | | type:'success', |
| | | message: res.msg |
| | | }) |
| | | this.renderMemberTable(); |
| | | } |
| | | }) |
| | | } |
| | | |
| | | }, |
| | | delMember (member) { |
| | | member.IsDel = true; |
| | | this.memberUpdate(member); |
| | | }, |
| | | editMember (member) { |
| | | debugger |
| | | this.memberEditDialogVisible = true; |
| | | this.memberEditForm = member; |
| | | }, |
| | | memberUpdate (member) { |
| | | updateMemberInfo(member).then(res => { |
| | | if (res.success) { |
| | | this.$notify({ |
| | | type: 'success', |
| | | message: res.msg |
| | | }); |
| | | this.renderMemberTable(); |
| | | } |
| | | }) |
| | | }, |
| | | checkNode (a, b, c) { |
| | | if (a.children) { |
| | | this.deptId = a.id; |
| | | this.renderMemberTable(); |
| | | } |
| | | }, |
| | | handleTableSizeChange (size) { |
| | | this.PageSize = size; |
| | | this.renderMemberTable(); |
| | | }, |
| | | renderMemberTable () { |
| | | let _this = this; |
| | | let params = { |
| | | DeptID: this.deptId, |
| | | keyword: this.keyword, |
| | | Sex: this.gender, |
| | | PageIndex: this.PageIndex, |
| | | PageSize: this.PageSize |
| | | } |
| | | getMemberList(params).then(res => { |
| | | |
| | | _this.tableData = res.data; |
| | | }) |
| | | }, |
| | | uploadPic () { |
| | | |
| | | }, |
| | | batchImportFiles () { |
| | |
| | | toggleOrganize () { |
| | | this.toggleOrganizeDialogVisible = true; |
| | | }, |
| | | uploadMemberPic () { }, |
| | | uploadMemberPicture (params) { |
| | | let param = new FormData(); |
| | | param.append('file', params.file) |
| | | uploadMemberPic(param).then(res => { |
| | | this.$set(this.memberEditForm,'Surface',res.data) |
| | | }) |
| | | }, |
| | | openMenuList (t, l, frame) { |
| | | this.showMenu = true; |
| | | this.menuTop = t; |
| | |
| | | height: 178px; |
| | | display: block; |
| | | } |
| | | .batch-upload{ |
| | | .batch-upload { |
| | | text-align: left; |
| | | margin: 0 20px 20px 10px; |
| | | } |
| | |
| | | background: rgba(152, 170, 190, 0.7); |
| | | } |
| | | .right { |
| | | padding: 8px 0 0 20px; |
| | | padding-left: 20px; |
| | | .filter-bar { |
| | | display: flex; |
| | | margin-bottom: 20px; |
| | |
| | | .actions { |
| | | text-align: left; |
| | | } |
| | | |
| | | .table-cell-pic { |
| | | img { |
| | | width: 70px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |