|
@@ -34,31 +34,32 @@
|
|
prop="id"
|
|
prop="id"
|
|
label="用户ID"
|
|
label="用户ID"
|
|
width="80"></el-table-column>
|
|
width="80"></el-table-column>
|
|
- <el-table-column
|
|
|
|
- prop="userName"
|
|
|
|
- label="用户姓名"></el-table-column>
|
|
|
|
- <el-table-column prop="accountName" label="登录名"></el-table-column>
|
|
|
|
- <el-table-column label="性别">
|
|
|
|
- <template slot-scope="scope">
|
|
|
|
- <span v-if="scope.row.male == 1">男</span>
|
|
|
|
- <span v-else>女</span>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- prop="birthday"
|
|
|
|
- label="出生日期"></el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- prop="mobile"
|
|
|
|
- label="手机号"></el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- prop="job"
|
|
|
|
- label="职务"></el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- prop="address"
|
|
|
|
- label="住址"></el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- prop="remark"
|
|
|
|
- label="备注"></el-table-column>
|
|
|
|
|
|
+<!-- <el-table-column-->
|
|
|
|
+<!-- prop="userName"-->
|
|
|
|
+<!-- label="用户姓名"></el-table-column>-->
|
|
|
|
+ <el-table-column prop="account" label="登录名"></el-table-column>
|
|
|
|
+<!-- <el-table-column label="性别">-->
|
|
|
|
+<!-- <template slot-scope="scope">-->
|
|
|
|
+<!-- <span v-if="scope.row.male == 1">男</span>-->
|
|
|
|
+<!-- <span v-else>女</span>-->
|
|
|
|
+<!-- </template>-->
|
|
|
|
+<!-- </el-table-column>-->
|
|
|
|
+ <el-table-column prop="password" label="密码"></el-table-column>
|
|
|
|
+<!-- <el-table-column-->
|
|
|
|
+<!-- prop="birthday"-->
|
|
|
|
+<!-- label="出生日期"></el-table-column>-->
|
|
|
|
+<!-- <el-table-column-->
|
|
|
|
+<!-- prop="mobile"-->
|
|
|
|
+<!-- label="手机号"></el-table-column>-->
|
|
|
|
+<!-- <el-table-column-->
|
|
|
|
+<!-- prop="job"-->
|
|
|
|
+<!-- label="职务"></el-table-column>-->
|
|
|
|
+<!-- <el-table-column-->
|
|
|
|
+<!-- prop="address"-->
|
|
|
|
+<!-- label="住址"></el-table-column>-->
|
|
|
|
+<!-- <el-table-column-->
|
|
|
|
+<!-- prop="remark"-->
|
|
|
|
+<!-- label="备注"></el-table-column>-->
|
|
<el-table-column
|
|
<el-table-column
|
|
v-if="hasPerm('user:is')"
|
|
v-if="hasPerm('user:is')"
|
|
label="是否启用">
|
|
label="是否启用">
|
|
@@ -70,12 +71,24 @@
|
|
<el-table-column label="操作">
|
|
<el-table-column label="操作">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<el-button type="primary" v-if="hasPerm('user:edit')" size="mini" style="margin-right: 10px;" @click="edit(scope.row)">编辑</el-button>
|
|
<el-button type="primary" v-if="hasPerm('user:edit')" size="mini" style="margin-right: 10px;" @click="edit(scope.row)">编辑</el-button>
|
|
- <el-popconfirm
|
|
|
|
- title=" 确定要删除这个用户吗?"
|
|
|
|
- @confirm="del(scope.row)"
|
|
|
|
- >
|
|
|
|
- <el-button type="danger" v-if="hasPerm('user:del')" size="mini" slot="reference">删除</el-button>
|
|
|
|
- </el-popconfirm>
|
|
|
|
|
|
+ <el-dropdown>
|
|
|
|
+ <span class="el-dropdown-link">
|
|
|
|
+ 操作<i class="el-icon-arrow-down el-icon--right"></i>
|
|
|
|
+ </span>
|
|
|
|
+ <el-dropdown-menu slot="dropdown">
|
|
|
|
+ <el-dropdown-item>
|
|
|
|
+ <el-popconfirm
|
|
|
|
+ title=" 确定要删除这个用户吗?"
|
|
|
|
+ @confirm="del(scope.row)"
|
|
|
|
+ >
|
|
|
|
+ <el-button type="text" v-if="hasPerm('user:del')" size="mini" slot="reference">删除</el-button>
|
|
|
|
+ </el-popconfirm>
|
|
|
|
+ </el-dropdown-item>
|
|
|
|
+ <el-dropdown-item>
|
|
|
|
+ <el-button type="text" @click="handleFarm(scope.row)" size="mini" >分配牧场</el-button>
|
|
|
|
+ </el-dropdown-item>
|
|
|
|
+ </el-dropdown-menu>
|
|
|
|
+ </el-dropdown>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
@@ -93,30 +106,33 @@
|
|
width="50%">
|
|
width="50%">
|
|
<div>
|
|
<div>
|
|
<el-form ref="form" :model="forms" label-width="80px" :rules="rules">
|
|
<el-form ref="form" :model="forms" label-width="80px" :rules="rules">
|
|
- <el-form-item label="用户姓名" prop="userName">
|
|
|
|
- <el-input v-model="forms.userName" placeholder="默认手机号为登录名,如没有填写手机号则是用户姓名为登录名"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="性别">
|
|
|
|
- <el-radio-group v-model="forms.male">
|
|
|
|
- <el-radio :label="0">女</el-radio>
|
|
|
|
- <el-radio :label="1">男</el-radio>
|
|
|
|
- </el-radio-group>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="出生日期">
|
|
|
|
- <el-date-picker type="date" placeholder="选择日期" v-model="forms.birthday" value-format="yyyy-MM-dd" style="width: 100%;"></el-date-picker>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="手机号">
|
|
|
|
- <el-input v-model="forms.mobile" placeholder="默认手机号为登录名,如没有填写手机号则是用户姓名为登录名"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="住址">
|
|
|
|
- <el-input v-model="forms.address"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="职务">
|
|
|
|
- <el-input v-model="forms.job"></el-input>
|
|
|
|
|
|
+ <el-form-item label="登录名" prop="account">
|
|
|
|
+ <el-input v-model="forms.account" placeholder="默认手机号为登录名,如没有填写手机号则是用户姓名为登录名"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="描述">
|
|
|
|
- <el-input v-model="forms.remark"></el-input>
|
|
|
|
|
|
+ <el-form-item label="密码" prop="account">
|
|
|
|
+ <el-input type="password" v-model="forms.password" ></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
+<!-- <el-form-item label="性别">-->
|
|
|
|
+<!-- <el-radio-group v-model="forms.male">-->
|
|
|
|
+<!-- <el-radio :label="0">女</el-radio>-->
|
|
|
|
+<!-- <el-radio :label="1">男</el-radio>-->
|
|
|
|
+<!-- </el-radio-group>-->
|
|
|
|
+<!-- </el-form-item>-->
|
|
|
|
+<!-- <el-form-item label="出生日期">-->
|
|
|
|
+<!-- <el-date-picker type="date" placeholder="选择日期" v-model="forms.birthday" value-format="yyyy-MM-dd" style="width: 100%;"></el-date-picker>-->
|
|
|
|
+<!-- </el-form-item>-->
|
|
|
|
+<!-- <el-form-item label="手机号">-->
|
|
|
|
+<!-- <el-input v-model="forms.mobile" placeholder="默认手机号为登录名,如没有填写手机号则是用户姓名为登录名"></el-input>-->
|
|
|
|
+<!-- </el-form-item>-->
|
|
|
|
+<!-- <el-form-item label="住址">-->
|
|
|
|
+<!-- <el-input v-model="forms.address"></el-input>-->
|
|
|
|
+<!-- </el-form-item>-->
|
|
|
|
+<!-- <el-form-item label="职务">-->
|
|
|
|
+<!-- <el-input v-model="forms.job"></el-input>-->
|
|
|
|
+<!-- </el-form-item>-->
|
|
|
|
+<!-- <el-form-item label="描述">-->
|
|
|
|
+<!-- <el-input v-model="forms.remark"></el-input>-->
|
|
|
|
+<!-- </el-form-item>-->
|
|
</el-form>
|
|
</el-form>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
@@ -125,12 +141,41 @@
|
|
<el-button type="primary" @click="onSubmit('form')">{{showType ? '更 新' : '新 增'}}</el-button>
|
|
<el-button type="primary" @click="onSubmit('form')">{{showType ? '更 新' : '新 增'}}</el-button>
|
|
</span>
|
|
</span>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
+ <el-dialog
|
|
|
|
+ title="牧场分配"
|
|
|
|
+ :visible.sync="dialogFarm"
|
|
|
|
+ width="50%">
|
|
|
|
+ <div>
|
|
|
|
+ <el-table
|
|
|
|
+ :data="farmList"
|
|
|
|
+ ref="multipleTable"
|
|
|
|
+ tooltip-effect="dark"
|
|
|
|
+ @selection-change="handleFarmChange">
|
|
|
|
+ <el-table-column
|
|
|
|
+ type="selection"
|
|
|
|
+ width="55">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="id"
|
|
|
|
+ label="牧场id">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="farmName"
|
|
|
|
+ label="牧场名称">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+ </div>
|
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
|
+ <el-button @click="dialogFarm = false">取 消</el-button>
|
|
|
|
+ <el-button type="primary" @click="farmSave">保存</el-button>
|
|
|
|
+ </span>
|
|
|
|
+ </el-dialog>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
import TableFooter from '../../components/TableFooter';
|
|
import TableFooter from '../../components/TableFooter';
|
|
-import {getUserList, addUser, editUser, isUser, delUser} from '../../utils/api';
|
|
|
|
|
|
+import {getUserList, addUser, editUser, isUser, delUser, getFarm} from '../../utils/api';
|
|
export default {
|
|
export default {
|
|
name: "UserAdmin",
|
|
name: "UserAdmin",
|
|
components: {
|
|
components: {
|
|
@@ -146,7 +191,8 @@ export default {
|
|
size: 20,
|
|
size: 20,
|
|
pageNum: 1,
|
|
pageNum: 1,
|
|
forms: {
|
|
forms: {
|
|
- userName: '',
|
|
|
|
|
|
+ account: '',
|
|
|
|
+ password: '',
|
|
remark: '',
|
|
remark: '',
|
|
mobile: '',
|
|
mobile: '',
|
|
male: 0,
|
|
male: 0,
|
|
@@ -158,7 +204,11 @@ export default {
|
|
selectList: '',
|
|
selectList: '',
|
|
rules: {
|
|
rules: {
|
|
userName: [ { required: true, message: '请输入用户姓名', trigger: 'blur' },]
|
|
userName: [ { required: true, message: '请输入用户姓名', trigger: 'blur' },]
|
|
- }
|
|
|
|
|
|
+ },
|
|
|
|
+ dialogFarm: false,
|
|
|
|
+ farmList: [],
|
|
|
|
+ // 选中牧场的id
|
|
|
|
+ selectFarm: '',
|
|
};
|
|
};
|
|
},
|
|
},
|
|
created() {
|
|
created() {
|
|
@@ -187,14 +237,22 @@ export default {
|
|
};
|
|
};
|
|
getUserList(params)
|
|
getUserList(params)
|
|
.then(res => {
|
|
.then(res => {
|
|
- if(res.code === 10001) {
|
|
|
|
- this.tableData = res.data;
|
|
|
|
- this.total = res.totalElements;
|
|
|
|
|
|
+ if(res.code === 10000) {
|
|
|
|
+ this.tableData = res.data.records;
|
|
|
|
+ this.total = res.data.total;
|
|
} else {
|
|
} else {
|
|
this.$message(res.message);
|
|
this.$message(res.message);
|
|
}
|
|
}
|
|
})
|
|
})
|
|
},
|
|
},
|
|
|
|
+ getFarm() {
|
|
|
|
+ getFarm().then(res => {
|
|
|
|
+ console.log(res)
|
|
|
|
+ if(res.code === 10000) {
|
|
|
|
+ this.farmList = res.data;
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
// 添加用户
|
|
// 添加用户
|
|
addUser() {
|
|
addUser() {
|
|
this.dialogVisible = true;
|
|
this.dialogVisible = true;
|
|
@@ -203,7 +261,8 @@ export default {
|
|
// 用户编辑
|
|
// 用户编辑
|
|
edit(data) {
|
|
edit(data) {
|
|
this.forms = {
|
|
this.forms = {
|
|
- userName: data.userName,
|
|
|
|
|
|
+ account: data.account,
|
|
|
|
+ password: data.password,
|
|
remark: data.remark,
|
|
remark: data.remark,
|
|
mobile: data.mobile,
|
|
mobile: data.mobile,
|
|
male: parseInt(data.male),
|
|
male: parseInt(data.male),
|
|
@@ -234,7 +293,8 @@ export default {
|
|
if (valid) {
|
|
if (valid) {
|
|
if(this.showType) {
|
|
if(this.showType) {
|
|
let params = {};
|
|
let params = {};
|
|
- params.userName = this.forms.userName;
|
|
|
|
|
|
+ params.account = this.forms.account;
|
|
|
|
+ params.password = this.forms.password;
|
|
params.male = this.forms.male;
|
|
params.male = this.forms.male;
|
|
params.birthday = this.forms.birthday;
|
|
params.birthday = this.forms.birthday;
|
|
params.mobile = this.forms.mobile;
|
|
params.mobile = this.forms.mobile;
|
|
@@ -255,7 +315,8 @@ export default {
|
|
})
|
|
})
|
|
} else {
|
|
} else {
|
|
let params = {};
|
|
let params = {};
|
|
- params.userName = this.forms.userName;
|
|
|
|
|
|
+ params.account = this.forms.account;
|
|
|
|
+ params.password = this.forms.password;
|
|
params.male = this.forms.male;
|
|
params.male = this.forms.male;
|
|
params.birthday = this.forms.birthday;
|
|
params.birthday = this.forms.birthday;
|
|
params.mobile = this.forms.mobile;
|
|
params.mobile = this.forms.mobile;
|
|
@@ -283,7 +344,8 @@ export default {
|
|
// 重置
|
|
// 重置
|
|
reset() {
|
|
reset() {
|
|
this.forms = {
|
|
this.forms = {
|
|
- userName: '',
|
|
|
|
|
|
+ account: '',
|
|
|
|
+ password: '',
|
|
remark: '',
|
|
remark: '',
|
|
mobile: '',
|
|
mobile: '',
|
|
male: '',
|
|
male: '',
|
|
@@ -349,10 +411,62 @@ export default {
|
|
this.$message.error(res.message);
|
|
this.$message.error(res.message);
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
+ },
|
|
|
|
+ // 打开分配牧场
|
|
|
|
+ handleFarm(data) {
|
|
|
|
+ this.dialogFarm = true;
|
|
|
|
+ this.selectId = data.id;
|
|
|
|
+ if(data.farmIds === null) {
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
+ this.$refs.multipleTable.clearSelection();
|
|
|
|
+ this.$forceUpdate();
|
|
|
|
+ });
|
|
|
|
+ } else {
|
|
|
|
+ let arr = data.farmIds.split(',');
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
+ this.$refs.multipleTable.clearSelection();
|
|
|
|
+ for (let key in this.farmList) {
|
|
|
|
+ for(let i in arr) {
|
|
|
|
+ if(this.farmList[key]['id'] == arr[i]) {
|
|
|
|
+ this.$refs.multipleTable.toggleRowSelection(this.farmList[key], true);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ // 选择牧场
|
|
|
|
+ handleFarmChange(val) {
|
|
|
|
+ let arr = [];
|
|
|
|
+ val.forEach(item => {
|
|
|
|
+ arr.push(item.id);
|
|
|
|
+ });
|
|
|
|
+ this.selectFarm = arr.join(',');
|
|
|
|
+ },
|
|
|
|
+ // 牧场保存
|
|
|
|
+ farmSave() {
|
|
|
|
+ let params = {
|
|
|
|
+ id: this.selectId,
|
|
|
|
+ farmIds: this.selectFarm
|
|
|
|
+ }
|
|
|
|
+ editUser(params).then(res => {
|
|
|
|
+ this.dialogFarm = false;
|
|
|
|
+ this.selectFarm = '';
|
|
|
|
+ this.selectId = '';
|
|
|
|
+ if(res.code === 10000) {
|
|
|
|
+ this.$message.success('绑定成功!');
|
|
|
|
+ this.init();
|
|
|
|
+ } else {
|
|
|
|
+ this.$message.error('绑定失败!');
|
|
|
|
+ }
|
|
|
|
+ })
|
|
}
|
|
}
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
this.init();
|
|
this.init();
|
|
|
|
+ // 获取牧场列表
|
|
|
|
+ this.getFarm();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|