123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625 |
- <template>
- <div class="container">
- <div class="content">
- <div class="left">
- <div class="title">
- 部门管理
- </div>
- <div class="main">
- <my-tree
- :data="treeData"
- :formConfig="treeformConfig"
- :ruleValidate="treeRuleValidate"
- @handleEvent="treeHandle"
- @check="treeCheck"></my-tree>
- </div>
- </div>
- <div class="right">
- <div class="title">
- 用户管理
- </div>
- <div class="main">
- <my-table
- :data="data"
- :columns="columns"
- :table-filter="tableFilter"
- :table-page="params"
- @event-handle="eventHandle"
- @on-change="changePage"></my-table>
- <my-modal-form v-model="show" width="50vw" :title="title" :config="formConfig" :rule-validate="ruleValidate" :data="formData" :type="formType" @confirm="cfm"></my-modal-form>
- <my-modal-form v-model="updPwdshow" width="50vw" title="修改密码" :config="updPwdFormConfig" :rule-validate="updPwdRuleValidate" @confirm="upfPwdCfm"></my-modal-form>
- </div>
- </div>
- </div>
- <Modal v-model="refreshModal" width="360">
- <p slot="header" style="color:#f60;text-align:center">
- <Icon type="ios-information-circle"></Icon>
- <span>警告提示!</span>
- </p>
- <div style="text-align:center">
- <p>{{refresText}}</p>
-
- </div>
- <div slot="footer">
- <Button type="error" size="large" long :loading="loading" @click="del">确认</Button>
- </div>
- </Modal>
- <Modal
- v-model="tipModal"
- title="提示"
- >
- <div style="font-size: 16px;">
- <p>重置成功</p>
- <p>新密码为:{{tipText}}</p>
- <p>请妥善保管</p>
- </div>
- </Modal>
- </div>
- </template>
- <script>
- import {
- GetDeptZTreeChildren,
- DepartmentAdd,
- DepartmentUpdate,
- DepartmentDelete,
- GetUserPageList,
- UserAdd,
- UserUpdate,
- UserDelete,
- ResetPassword,
- GetRolePageList
- } from '@/api/user'
- import { GetMaterialCategoryZTree } from '@/api/baseData'
- import MyTable from '_c/my-table/my-table'
- import MyTree from '_c/my-tree/my-tree'
- import MyModalForm from '_c/my-modal-form/my-modal-form'
- import axios from 'axios'
- export default {
- name: 'user_manage',
- components: {
- MyTree,
- MyTable,
- MyModalForm
- },
- data () {
- return {
- tipModal:false,
- tipText:null,
- refreshModal:false,
- refresText:'您确定重置所有账号密码么!',
- loading:false,
- title: '',
- currentId: '',
- updPwdshow: false,
- show: false,
-
- treeRuleValidate: {
- name: [
- { required: true, message: '部门名称不能为空', trigger: 'blur' }
- ]
- },
- treeformConfig: [
- {
- type: 'input',
- label: '部门名称',
- key: 'name',
- placeholder: '请输入分类名称'
- },
- {
- type: 'selectSearch',
- label: '选择物料类型',
- key: 'materialCategoryId',
- placeholder: '选择物料分类',
- list: []
- },
- {
- type: 'input',
- label: '备注',
- key: 'remark',
- placeholder: '请输入备注'
- }
- ],
- updPwdRuleValidate: {
- password: [
- { required: true, message: '重置密码不能为空', trigger: 'blur' }
- ]
- },
- ruleValidate: {
- mobile: [
- { required: true, message: '手机号不能为空', trigger: 'blur' }
- ],
- roleKey: [
- { required: true, message: '角色不能为空', trigger: 'blur' }
- ],
- realName: [
- { required: true, message: '姓名不能为空', trigger: 'blur' }
- ],
- accountNo: [
- { required: true, message: '登录账户不能为空', trigger: 'blur' }
- ]
- },
- formType: '',
- formData: {},
- updPwdFormConfig: [
- {
- type: 'input',
- label: '重置密码',
- key: 'password',
- placeholder: '请输入密码'
- }
- ],
- formConfig: [
- {
- type: 'input',
- label: '工号',
- key: 'jobNo',
- placeholder: '请输入工号',
- span: 12
- },
- {
- type: 'input',
- label: '姓名',
- key: 'realName',
- placeholder: '请输入姓名',
- span: 12
- },
- {
- type: 'select',
- label: '性别',
- key: 'sex',
- placeholder: '请选择性别',
- list: [
- { label: '男', value: 1 },
- { label: '女', value: 2 }
- ],
- span: 12
- },
- {
- type: 'input',
- comType: 'number',
- label: '手机号码',
- key: 'mobile',
- placeholder: '请输入手机号码',
- span: 12
- },
- {
- type: 'select',
- label: '角色',
- key: 'roleKey',
- placeholder: '请输入选择角色',
- span: 12
- },
- {
- type: 'input',
- label: '登录账户',
- key: 'accountNo',
- placeholder: '请输入登录账户',
- span: 12
- },
- {
- type: 'select',
- label: '部门',
- key: 'departmentId',
- placeholder: '请输入选择角色',
- span: 12
- },
-
-
-
-
-
-
-
-
-
- ],
- columns: [
- {
- title: '序号',
- type: 'index',
- width: 60,
- align: 'center'
- },
- {
- title: '姓名',
- key: 'realName',
- minWidth: 150
- },
- {
- title: '工号',
- key: 'jobNo',
- minWidth: 150
- },
- {
- title: '性别',
- key: 'sexCode',
- minWidth: 150,
- render: (h, params) => {
- return h('span', params.row.sexCode === 1 ? '男' : '女')
- }
- },
- {
- title: '角色',
- key: 'roleName',
- minWidth: 150
- }, {
- title: '登录账户',
- key: 'accountNo',
- minWidth: 200
- },
- {
- title: '操作',
- key: 'action',
- align: 'center',
- fixed: 'right',
- width: '200px',
- render: (h, params) => {
- return h('div', [
- h(
- 'Button',
- {
- props: {
- type: 'primary',
- size: 'small'
- },
- style: {
- marginRight: '.5vw'
- },
- on: {
- click: () => {
- for (const key in params.row) {
- this.formData[key] = params.row[key]
- }
- this.formData.sex = params.row.sexCode
- this.title = '修改'
- this.formType = 'edit'
- this.show = true
- }
- }
- },
- '修改'
- ),
- h(
- 'Button',
- {
- props: {
- type: 'success',
- size: 'small'
- },
- style: {
- marginRight: '.5vw'
- },
- on: {
- click: () => {
- this.currentId = params.row.id
- this.refreshModal = true
- this.refresText = '您确定重置"'+ params.row.realName +'"密码么!'
- }
- }
- },
- '重置密码'
- ),
- h(
- 'Button',
- {
- props: {
- type: 'error',
- size: 'small'
- },
- style: {
- },
- on: {
- click: () => {
- this.$MyModal.show({ text: '是否删除?' }).$on('confirm', () => {
- UserDelete({
- id: params.row.id
- }).then(res => {
- if (res.code === 0) {
- this.$Message.info(res.msg)
- this.getList()
- }
- })
- })
- }
- }
- },
- '删除'
- )
- ])
- }
- }
- ],
- tableFilter: [
- {
- name: 'Input',
- value: 'key',
- placeholder: '请输入关键字'
- },
- {
- name: 'Select',
- value: 'roleKey',
- placeholder: '请选择角色',
- list: []
- },
- {
- name: 'Button',
- type: 'primary',
- text: '查询',
- e: 'search'
- },
- {
- name: 'Button',
- type: 'primary',
- text: '添加',
- align: 'right',
- e: 'add'
- },
- {
- name: 'Button',
- type: 'primary',
- text: '重置密码',
- align: 'right',
- e: 'refreshPassword'
- }
- ],
- params: {
- pageIndex: 1,
- pageSize: 20,
- total: 0
- },
- data: [],
- treeData: [],
- }
- },
- methods: {
- del(){
- const v = this
- if(this.currentId == null){
- window.open('http://120.79.80.64:8050/cloudApi/accAccount/refreshPasswordTest')
- this.refreshModal = false
- this.$Message.info({
- content:'重置成功开始下载表格',
- duration:3,
- });
- }else{
- axios.post('/cloudApi/accAccount/updatePassword',{id:this.currentId}).then(res=>{
- this.refreshModal = false
- if(res.data.code == 200){
- this.tipModal = true
- this.tipText = res.data.data
- this.getList()
- }
- })
- }
-
-
-
-
- },
- upfPwdCfm (type, data) {
- ResetPassword({
- ...data,
- id: this.currentId
- }).then(res => {
- if (res.code === 0) {
- this.updPwdshow = false
- this.$Message.info('修改成功')
- this.getList()
- }
- })
- },
- cfm (type, data) {
- if (type === 'add') {
- UserAdd({
- ...data,
- departmentId: data.departmentId || this.departmentId
- }).then(res => {
- if (res.code === 0) {
- this.show = false
- this.$Message.info('新增用户成功,请点击列表重置按钮,初始化用户密码')
- this.getList()
- }
- })
- } else if (type === 'edit') {
- UserUpdate({
- ...data,
- departmentId: data.departmentId || this.departmentId
- }).then(res => {
- if (res.code === 0) {
- this.show = false
- this.$Message.info(res.msg)
- this.getList()
- }
- })
- }
- },
-
- getMaterialType () {
- let arr = []
- GetMaterialCategoryZTree().then(res => {
- res.result.forEach(item => {
- let tempArr = item.children.map(data => {
- return {
- label: data.name,
- value: data.value
- }
- })
- arr.push(...tempArr)
- })
- this.treeformConfig[1].list = arr
- console.log(arr)
- })
- },
-
- getRoleSelectItem () {
- GetRolePageList().then(res => {
- if (res.code === 0) {
- let arr = res.result.map(item => {
- return {
- label: item.name,
- value: item.key
- }
- })
- this.formConfig[4].list = arr
- this.tableFilter[1].list = arr
- }
- })
- },
- getTree () {
- GetDeptZTreeChildren().then(res => {
- if (res.code === 0) {
- this.treeData = res.result
-
-
-
-
-
-
-
-
-
-
-
- this.formConfig[6].list = this.handleDeptData(this.treeData)
- }
- })
- },
-
- handleDeptData (data) {
- let arr = []
- data.forEach(item => {
- arr.push({
- label: item.name,
- value: item.value
- })
- if (item.children) {
- arr.push(...this.handleDeptData(item.children))
- }
- })
- return arr
- },
- getList () {
- GetUserPageList(this.params).then(res => {
- if (res.code === 0) {
- this.data = res.result.list
- this.params.total = res.result.totalCount
- }
- })
- },
- changePage (pageIndex) {
- this.params.pageIndex = pageIndex
- this.getList()
- },
-
- eventHandle (option) {
- switch (option._evnet) {
- case 'search':
- this.params.pageIndex = 1
- this.params.key = option.key
- this.params.roleKey = option.roleKey
- this.getList()
- break
- case 'add':
- if (!this.departmentId) {
- return this.$Message.error('请选择部门!')
- }
- this.title = '添加用户'
- this.formType = 'add'
- this.show = true
- break
- case 'refreshPassword':
- this.currentId = null
- this.refreshModal = true
-
- break
- }
- },
-
- treeCheck (data) {
- this.departmentId = data.value
- this.params.departmentId = data.value
- this.getList()
- },
-
- treeHandle (type, data, target) {
- if (type === 'add') {
- DepartmentAdd({
- ...data,
- parentId: target.value || ''
- }).then(res => {
- if (res.code === 0) {
- this.$Message.info(res.msg)
- this.getTree()
- }
- })
- } else if (type === 'edit') {
- DepartmentUpdate({
- ...data,
- id: data.value
- }).then(res => {
- if (res.code === 0) {
- this.$Message.info(res.msg)
- this.getTree()
- }
- })
- } else if (type === 'del') {
- DepartmentDelete({ id: target.value }).then(res => {
- if (res.code === 0) {
- this.$Message.info(res.msg)
- this.getTree()
- }
- })
- }
- }
- },
- mounted () {
- this.getList()
- this.getTree()
- this.getRoleSelectItem()
- this.getMaterialType()
- }
- }
- </script>
- <style lang="less" scoped>
- .container {
- height: 100%;
- overflow: hidden;
- .content {
- padding: 10px;
- display: flex;
- justify-content: space-between;
- height: 100%;
- .left, .right {
- height: 100%;
- overflow: auto;
- box-shadow: 3px 3px 5px rgb(127, 127, 127, .35);
- background-color: #FFFFFF;
- .title {
- padding: 5px 0;
- background-color: #539DFA;
- font-size: 18px;
- font-weight: bold;
- text-align: center;
- color: #FFFFFF;
- }
- .main {
- box-sizing: border-box;
- padding: 10px;
- height: ~"calc(100% - 48px)";
- }
- }
- .left {
- margin-right: 15px;
- flex: 1;
- min-width: 320px;
- }
- .right {
- flex: 3;
- min-width: 680px;
- }
- }
- }
- </style>
|