| | |
| | | <template> |
| | | <div> |
| | | 用户管理 |
| | | <div style="height: 100%"> |
| | | <el-card style="height: 100%"> |
| | | <template slot="header"> |
| | | <el-form :inline="true" :model="queryInfo" class="demo-form-inline"> |
| | | <el-form-item label="手机号:"> |
| | | <el-input placeholder="请输入" v-model="queryInfo.userMobile"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="用户姓名:"> |
| | | <el-input placeholder="请输入" v-model="queryInfo.realName"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="search">查询</el-button> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="addPublicityVisibel = true">添加</el-button> |
| | | <el-button type="primary" @click="exportList">导出</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </template> |
| | | <template> |
| | | <el-table :data="publicityList" style="width: 100%"> |
| | | <el-table-column prop="nickName" label="用户名" width="180" align="center"> |
| | | </el-table-column> |
| | | |
| | | <el-table-column prop="realName" label="用户姓名" width="180" header-align="center" align="center"> |
| | | </el-table-column> |
| | | <el-table-column prop="userMobile" label="手机号码" width="180" header-align="center" align="center"> |
| | | </el-table-column> |
| | | <el-table-column prop="ctime" label="创建时间" width="180" header-align="center" align="center"> |
| | | </el-table-column> |
| | | <el-table-column prop="userMemo" label="备注" width="180" align="center"> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="conter"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="medium" @click="details(scope.row)">编辑</el-button> |
| | | <!-- <el-button type="text" size="medium" @click="reset(scope.row.id)">重置密码</el-button>--> |
| | | |
| | | <el-button type="text" size="medium" @click="handleToManager(scope.row)">设为警员</el-button> |
| | | <el-button type="text" size="medium" @click="updateStatus(scope.row.id,scope.row.status)"> |
| | | {{ scope.row.status == 1 ? "禁用" : "启用" }} |
| | | </el-button> |
| | | <el-popconfirm |
| | | title="确定删除吗?" |
| | | @confirm="removeuser(scope.row.id)" |
| | | > |
| | | <el-button type="text" style="margin-left: 5px;color: red" slot="reference">删除</el-button> |
| | | </el-popconfirm> |
| | | |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </template> |
| | | <el-pagination @current-change="handleCurrentChange" :current-page="queryInfo.current" :page-size="queryInfo.size" |
| | | layout="prev, pager, next" :total="total"></el-pagination> |
| | | </el-card> |
| | | |
| | | <!--添加用户弹窗--> |
| | | <el-dialog title="用户添加" :visible.sync="addPublicityVisibel" width="50%" :before-close="addPublicityClose" |
| | | :append-to-body="true"> |
| | | <el-row :gutter="15"> |
| | | <el-form ref="addPublicityForm" :model="addPublicityForm" :rules="rules" size="medium" label-width="100px"> |
| | | |
| | | <el-col :span="12"> |
| | | <el-form-item label="用户名" prop="nickName"> |
| | | <el-input v-model="addPublicityForm.nickName" clearable placeholder="请输入用户名"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="用户姓名" prop="realName"> |
| | | <el-input v-model="addPublicityForm.realName" clearable placeholder="请输入用户姓名"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="手机号" prop="userMobile"> |
| | | <el-input v-model="addPublicityForm.userMobile" clearable placeholder="请输入手机号"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="身份证" prop="userIdcard"> |
| | | <el-input v-model="addPublicityForm.userIdcard" clearable placeholder="请输入身份证"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-form> |
| | | </el-row> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="addPublicityVisibel = false">取 消</el-button> |
| | | <el-button type="primary" @click="add">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | |
| | | <el-dialog title="编辑" :visible.sync="detailsVisible" width="50%" :append-to-body="true" |
| | | :before-close="detailsVisibleclose"> |
| | | <el-row :gutter="15"> |
| | | <el-form ref="detailsRow" :model="detailsRow" size="medium" label-width="100px"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="用户名" prop="nickName"> |
| | | <el-input v-model="detailsRow.nickName" placeholder="请输入用户名" clearable :style="{ width: '100%' }"> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="用户姓名" prop="realName"> |
| | | <el-input v-model="detailsRow.realName" placeholder="请输入用户姓名" clearable :style="{ width: '100%' }"> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="手机号码" prop="userMobile"> |
| | | <el-input v-model="detailsRow.userMobile" placeholder="请输入手机号码" clearable |
| | | :style="{ width: '100%' }"> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="身份证号" prop="userIdcard"> |
| | | <el-input v-model="detailsRow.userIdcard" placeholder="请输入身份证号" clearable |
| | | :style="{ width: '100%' }"> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="备注" prop="userMemo"> |
| | | <el-input v-model="detailsRow.userMemo" placeholder="请输入备注" clearable |
| | | :style="{ width: '100%' }"> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-form> |
| | | </el-row> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="detailsVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="update">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getPublicityList, |
| | | addPublicityList, |
| | | toManager, deleteUser |
| | | } from '@/api/User' |
| | | |
| | | |
| | | export default { |
| | | name: "User" |
| | | name: "User", |
| | | data() { |
| | | return { |
| | | visible:false, |
| | | rules: { |
| | | nickName: [{ |
| | | required: true, |
| | | message: '请输入用户名 ', |
| | | trigger: 'blur' |
| | | }], |
| | | realName: [{ |
| | | required: true, |
| | | message: '请输入用户姓名', |
| | | trigger: 'blur' |
| | | }], |
| | | userMobile: [{ |
| | | required: true, |
| | | message: '请输入手机号 ', |
| | | trigger: 'blur' |
| | | }], |
| | | userIdcard: [{ |
| | | required: true, |
| | | message: '请输入身份证 ', |
| | | trigger: 'blur' |
| | | }], |
| | | }, |
| | | //详细内容弹框 |
| | | detailsVisible: false, |
| | | //详细内容 |
| | | detailsRow: |
| | | {} |
| | | , |
| | | //表单提交内容 |
| | | addPublicityForm: { |
| | | nickName: '', |
| | | realName: '' |
| | | }, |
| | | //添加弹框 |
| | | addPublicityVisibel: false, |
| | | //序号当前页 |
| | | current: 1, |
| | | //序号数目 |
| | | size: 10, |
| | | //页面查询总数 |
| | | total: null, |
| | | //查询条件 |
| | | queryInfo: { |
| | | userMobile: '', |
| | | realName: '', |
| | | current: 1, |
| | | size: 10 |
| | | }, |
| | | options: [ |
| | | { |
| | | value: null, |
| | | label: '全部' |
| | | }, |
| | | { |
| | | value: '0', |
| | | label: '未发布' |
| | | }, |
| | | { |
| | | value: '1', |
| | | label: '已发布' |
| | | } |
| | | , { |
| | | value: '2', |
| | | label: '下架 ' |
| | | } |
| | | ], |
| | | publicityList: [] |
| | | , |
| | | } |
| | | }, |
| | | created() { |
| | | this.init(); |
| | | |
| | | }, |
| | | methods: |
| | | { |
| | | exportList(){ |
| | | this.$http({ |
| | | url:'/api/user/exp', |
| | | responseType: 'blob', |
| | | method: 'post', |
| | | }).then(res=>{ |
| | | console.log(res) |
| | | this.$message.success('操作成功'); |
| | | let time = new Date() |
| | | let deathdate =time.toLocaleDateString() |
| | | const blob = new Blob([res.data], { |
| | | type: "application/vnd.ms-excel;charset=utf-8", |
| | | }); |
| | | if (window.navigator.msSaveBlob) { |
| | | window.navigator.msSaveBlob(blob, deathdate + ".xlsx"); |
| | | } else { |
| | | const url = window.URL.createObjectURL(blob); |
| | | const link = document.createElement("a"); |
| | | link.style.display = "none"; |
| | | link.href = url; |
| | | link.download = deathdate + ".xlsx"; |
| | | document.body.appendChild(link); |
| | | link.click(); |
| | | document.body.removeChild(link); |
| | | } |
| | | }) |
| | | }, |
| | | handleToManager(data) { |
| | | toManager(data.id).then(res => { |
| | | this.$message({ |
| | | message: '设置成功', |
| | | type: 'success' |
| | | }) |
| | | this.search(); |
| | | }) |
| | | }, |
| | | //更新用户状态 |
| | | updateStatus(id, status) { |
| | | var _this = this; |
| | | this.$confirm('确认修改账户状态吗?').then(() => { |
| | | _this.$http.get('/api/user/status', {params: {id: id, status: status}}).then(res => { |
| | | _this.$message({ |
| | | message: '修改成功', |
| | | type: 'success' |
| | | }) |
| | | this.search(); |
| | | }) |
| | | } |
| | | ) |
| | | |
| | | }, |
| | | // //发布/下架 |
| | | // punlish(val, val2) { |
| | | // if (val2 == 0) { |
| | | // this.$http.get('/api/commonQuestion/release/' + val).then(res => { |
| | | // this.$message({ |
| | | // message: '发布成功', |
| | | // type: 'success' |
| | | // }) |
| | | |
| | | // this.search(); |
| | | // } |
| | | // ) |
| | | // } |
| | | // if (val2 == 1) { |
| | | // this.$http.get('/api/commonQuestion/offline/' + val).then(res => { |
| | | // this.$message({ |
| | | // message: '下架成功', |
| | | // type: 'success' |
| | | // }) |
| | | // this.search(); |
| | | // } |
| | | // ); |
| | | // } |
| | | // }, |
| | | removeuser(id){ |
| | | console.log(id) |
| | | deleteUser(id).then(res=>{ |
| | | console.log(res) |
| | | this.init() |
| | | }) |
| | | }, |
| | | //编辑 |
| | | details(val) { |
| | | this.detailsVisible = true; |
| | | this.detailsRow = Object.assign({}, val); |
| | | }, |
| | | update() { |
| | | this.$http.put('/api/user', this.detailsRow).then(res => { |
| | | console.log(res) |
| | | if (res.data.code == 200){ |
| | | this.$message({ |
| | | message: '编辑成功', |
| | | type: 'success' |
| | | } |
| | | ) |
| | | this.search(); |
| | | }else { |
| | | this.$message.error(res.data.msg) |
| | | this.search(); |
| | | } |
| | | |
| | | } |
| | | ); |
| | | this.detailsVisible = false; |
| | | }, |
| | | |
| | | //重置密码 |
| | | reset(val) { |
| | | this.$http.get('/api/user/resetPassword/' + val).then(res => this.$message({ |
| | | message: '重置成功', |
| | | type: 'success' |
| | | })); |
| | | }, |
| | | //添加 |
| | | add() { |
| | | this.$refs.addPublicityForm.validate(async (vaild) => { |
| | | if (!vaild) return this.$message.error('输入有误') |
| | | let param = null; |
| | | param = this.addPublicityForm; |
| | | addPublicityList(param).then(res => { |
| | | this.$message({ |
| | | message: '操作成功', |
| | | type: 'success' |
| | | }); |
| | | this.addPublicityForm = {}; |
| | | this.init(); |
| | | } |
| | | ) |
| | | this.addPublicityVisibel = false; |
| | | }) |
| | | }, |
| | | //关闭之前 |
| | | addPublicityClose() { |
| | | this.addPublicityVisibel = false; |
| | | }, |
| | | detailsVisibleclose() { |
| | | this.detailsVisible = false; |
| | | }, |
| | | //分页方法 |
| | | handleCurrentChange(val) { |
| | | this.queryInfo.current = val; |
| | | this.search(); |
| | | }, |
| | | |
| | | //公共宣传加载 |
| | | init() { |
| | | let param = {} |
| | | param.current = this.queryInfo.current |
| | | param.size = this.queryInfo.size |
| | | getPublicityList(param).then(res => { |
| | | this.publicityList = res.records; |
| | | this.total = res.total |
| | | }) |
| | | }, |
| | | //查询 |
| | | search() { |
| | | let param = {} |
| | | param.current = this.queryInfo.current |
| | | param.realName = this.queryInfo.realName |
| | | param.userMobile = this.queryInfo.userMobile |
| | | param.size = this.queryInfo.size |
| | | getPublicityList(param).then(res => { |
| | | this.publicityList = res.records; |
| | | this.total = res.total |
| | | this.current = res.current |
| | | }) |
| | | }, |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
| | | ::v-deep(.el-table thead) { |
| | | color: #000000; |
| | | } |
| | | </style> |