From 082613d446e29e4ec1c16bfaa52345106a498b23 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Tue, 08 Nov 2022 09:03:49 +0800
Subject: [PATCH] 农事操作隐藏后四个,地图模式2d改为3d
---
src/views/system/user.vue | 252 +++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 206 insertions(+), 46 deletions(-)
diff --git a/src/views/system/user.vue b/src/views/system/user.vue
index f056093..1563cdb 100644
--- a/src/views/system/user.vue
+++ b/src/views/system/user.vue
@@ -1,6 +1,6 @@
<template>
<el-row>
- <el-col :span="5">
+ <!-- <el-col :span="5">
<div class="box">
<el-scrollbar>
<basic-container>
@@ -8,8 +8,8 @@
</basic-container>
</el-scrollbar>
</div>
- </el-col>
- <el-col :span="19">
+ </el-col> -->
+ <el-col :span="24">
<basic-container>
<avue-crud :option="option"
:search.sync="search"
@@ -30,6 +30,20 @@
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad">
+ <template slot-scope="{type,row,size}" slot="menu">
+ <el-button
+ :type="type"
+ :size="size"
+ icon="el-icon-edit"
+ :disabled="row.roleId == '1123598816738675201' "
+ @click="update(row)">编辑</el-button>
+ <el-button
+ :type="type"
+ :size="size"
+ icon="el-icon-delete"
+ :disabled="row.roleId == '1123598816738675201' "
+ @click="rowDel(row)">删除</el-button>
+ </template>
<template slot="menuLeft">
<el-button type="danger"
size="small"
@@ -38,13 +52,13 @@
v-if="permission.user_delete"
@click="handleDelete">删 除
</el-button>
- <el-button type="info"
- size="small"
- plain
- v-if="permission.user_role"
- icon="el-icon-user"
- @click="handleGrant">角色配置
- </el-button>
+<!-- <el-button type="info"-->
+<!-- size="small"-->
+<!-- plain-->
+<!-- v-if="permission.user_role"-->
+<!-- icon="el-icon-user"-->
+<!-- @click="handleGrant">角色配置-->
+<!-- </el-button>-->
<el-button type="info"
size="small"
plain
@@ -52,13 +66,13 @@
icon="el-icon-refresh"
@click="handleReset">密码重置
</el-button>
- <el-button type="info"
- size="small"
- plain
- v-if="userInfo.role_name.includes('admin')"
- icon="el-icon-setting"
- @click="handlePlatform">平台配置
- </el-button>
+<!-- <el-button type="info"-->
+<!-- size="small"-->
+<!-- plain-->
+<!-- v-if="userInfo.role_name.includes('admin')"-->
+<!-- icon="el-icon-setting"-->
+<!-- @click="handlePlatform">平台配置-->
+<!-- </el-button>-->
<el-button type="info"
size="small"
plain
@@ -66,20 +80,20 @@
icon="el-icon-coordinate"
@click="handleLock">账号解封
</el-button>
- <el-button type="success"
- size="small"
- plain
- v-if="userInfo.role_name.includes('admin')"
- icon="el-icon-upload2"
- @click="handleImport">导入
- </el-button>
- <el-button type="warning"
- size="small"
- plain
- v-if="userInfo.role_name.includes('admin')"
- icon="el-icon-download"
- @click="handleExport">导出
- </el-button>
+<!-- <el-button type="success"-->
+<!-- size="small"-->
+<!-- plain-->
+<!-- v-if="userInfo.role_name.includes('admin')"-->
+<!-- icon="el-icon-upload2"-->
+<!-- @click="handleImport">导入-->
+<!-- </el-button>-->
+<!-- <el-button type="warning"-->
+<!-- size="small"-->
+<!-- plain-->
+<!-- v-if="userInfo.role_name.includes('admin')"-->
+<!-- icon="el-icon-download"-->
+<!-- @click="handleExport">导出-->
+<!-- </el-button>-->
</template>
<template slot-scope="{row}"
slot="tenantName">
@@ -160,6 +174,28 @@
</template>
</avue-crud>
</el-dialog>
+ <el-drawer
+ title="编辑"
+ size="60%"
+ :visible.sync="dialogVisible"
+ width="width"
+ :modal="true"
+ :modal-append-to-body="false"
+ :append-to-body="true"
+ :close-on-click-modal="false"
+ :close-on-press-escape="false"
+ >
+ <div>
+ <avue-form
+ ref="form"
+ :option="option"
+ v-model="form"
+ @reset-change="emptytChange"
+ @submit="submitUpdate"
+ >
+ </avue-form>
+ </div>
+ </el-drawer>
</basic-container>
</el-col>
</el-row>
@@ -189,7 +225,6 @@
import {dateNow} from "@/util/date";
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
-
export default {
data() {
const validatePass = (rule, value, callback) => {
@@ -208,12 +243,36 @@
callback();
}
};
+ const validatePhone = (rule, value, callback) => {
+ if (value){
+ if (!/^[1]([3-9])[0-9]{9}$/.test(value)) {
+ callback(new Error("请输入正确的手机号格式"));
+ } else {
+ callback();
+ }
+ }else {
+ callback();
+ }
+ };
+ const validateEmail = (rule, value, callback) => {
+ const mal = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/
+ if (value){
+ if (!(mal.test(value))) {
+ callback(new Error('请输入正确邮箱'))
+ } else {
+ callback()
+ }
+ }else {
+ callback()
+ }
+ };
return {
form: {},
search:{},
roleBox: false,
excelBox: false,
platformBox: false,
+ dialogVisible:false,
initFlag: true,
selectionList: [],
query: {},
@@ -275,11 +334,16 @@
index: true,
selection: true,
viewBtn: true,
+ delBtn:false,
+ editBtn:false,
dialogType: 'drawer',
dialogClickModal: false,
refreshBtn:false,
columnBtn:false,
searchShowBtn:false,
+ selectable:(row,index)=>{
+ return row.roleId != "1123598816738675201";
+ },
column: [
{
label: "登录账号",
@@ -291,7 +355,8 @@
label: "所属租户",
prop: "tenantName",
slot: true,
- display: false
+ display: false,
+ hide:true
},
{
label: "用户姓名",
@@ -306,10 +371,24 @@
display: false
},
{
+ display: false,
+ label: "账号状态",
+ prop: "bannedState",
+ slot: true,
+ dicData: [{
+ label: '已封禁',
+ value: "1"
+ }, {
+ label: '正常',
+ value: "0"
+ }],
+ },
+ {
label: "所属部门",
prop: "deptName",
slot: true,
- display: false
+ display: false,
+ hide:true
},
// {
// label: "用户平台",
@@ -347,6 +426,8 @@
label: "所属租户",
prop: "tenantId",
type: "tree",
+ value:"000000",
+ display:false,
dicUrl: "/api/blade-system/tenant/select",
props: {
label: "tenantName",
@@ -370,6 +451,10 @@
required: true,
message: "请输入登录账号",
trigger: "blur"
+ },{
+ min: 2,
+ max: 40,
+ message: '账号长度在2到40个字符'
}],
},
// {
@@ -393,15 +478,20 @@
label: '密码',
prop: 'password',
hide: true,
- editDisplay: false,
+ display: false,
viewDisplay: false,
- rules: [{required: true, validator: validatePass, trigger: 'blur'}]
+ rules: [{required: true, validator: validatePass, trigger: 'blur'},
+ {
+ min: 2,
+ max: 40,
+ message: '密码长度在2到40个字符'
+ }]
},
{
label: '确认密码',
prop: 'password2',
hide: true,
- editDisplay: false,
+ display: false,
viewDisplay: false,
rules: [{required: true, validator: validatePass2, trigger: 'blur'}]
},
@@ -420,6 +510,10 @@
required: true,
message: "请输入用户昵称",
trigger: "blur"
+ },{
+ min: 2,
+ max: 10,
+ message: '昵称长度在2到10个字符'
}]
},
{
@@ -438,13 +532,15 @@
{
label: "手机号码",
prop: "phone",
- overHidden: true
+ overHidden: true,
+ rules: [{required: false, validator: validatePhone, trigger: 'blur'}]
},
{
label: "电子邮箱",
prop: "email",
hide: true,
- overHidden: true
+ overHidden: true,
+ rules: [{required: false, validator: validateEmail, trigger: 'blur'}]
},
{
label: "用户性别",
@@ -513,7 +609,7 @@
prop: "farmId",
labelWidth:110,
type: "tree",
- // multiple: true,
+ multiple: true,
dicData: [],
props: {
label: "farmName",
@@ -591,6 +687,7 @@
label: "所属租户",
prop: "tenantName",
slot: true,
+ hide:true,
display: false
},
{
@@ -746,10 +843,7 @@
const column = this.findObject(this.option.group, "roleId");
column.dicData = res.data.data;
});
- const data = {
- deptId:this.userInfo.dept_id
- }
- getFarmList(data).then(res => {
+ getFarmList().then(res => {
const column = this.findObject(this.option.group, "farmId");
column.dicData = res.data.data;
});
@@ -777,7 +871,10 @@
row['deptId'] = this.userInfo.dept_id;
row.roleId = row.roleId.join(",");
row.farmId = row.farmId.join(",");
- // row.postId = row.postId.join(",");
+ row.id = null
+ if (!row.sex){
+ row.sex = 3
+ }
add(row).then(() => {
this.initFlag = false;
this.onLoad(this.page);
@@ -807,6 +904,51 @@
}, error => {
window.console.log(error);
loading();
+ });
+ },
+ update(row){
+ this.dialogVisible = true
+ this.$nextTick(()=>{
+ this.$refs.form.clearValidate()
+ })
+ this.form = {
+ id:row.id,
+ account:row.account,
+ name:row.name,
+ realName:row.realName,
+ phone:row.phone,
+ email:row.email,
+ sex:row.sex,
+ birthday:row.birthday,
+ roleId:row.roleId.split(','),
+ farmId : row.farmId.split(",")
+ }
+ var passwordColumn = this.findObject(this.option.group,"password");
+ var password2Column = this.findObject(this.option.group,"password2")
+ passwordColumn.display = false;
+ password2Column.display = false;
+ },
+ submitUpdate(row, done, loading){
+ this.form['deptId'] = this.userInfo.dept_id;
+ this.form.roleId = this.form.roleId.join(",")
+ this.form.farmId = this.form.farmId.join(",")
+ if (!row.sex){
+ row.sex = 3
+ }
+ update(this.form).then(() => {
+ this.initFlag = false;
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "操作成功!"
+ });
+ this.dialogVisible = false
+ done();
+
+ }, error => {
+ window.console.log(error);
+ loading();
+ done();
});
},
rowDel(row) {
@@ -922,6 +1064,7 @@
type: "success",
message: "操作成功!"
});
+ this.onLoad(this.page)
});
},
handleImport() {
@@ -952,7 +1095,19 @@
})
},
beforeOpen(done, type) {
+ this.initFlag = true;
+ const column = this.findObject(this.option.group, "farmId");
+ var passwordColumn = this.findObject(this.option.group,"password");
+ var password2Column = this.findObject(this.option.group,"password2")
+ passwordColumn.display = true;
+ password2Column.display = true;
+ if(type == "add"&& column.dicData == ""){
+ this.form = {id:null}
+ this.initData(website.tenantId)
+ }
if (["edit", "view"].includes(type)) {
+ passwordColumn.display = false;
+ password2Column.display = false;
getUser(this.form.id).then(res => {
this.form = res.data.data;
if(this.form.hasOwnProperty("deptId")){
@@ -969,7 +1124,12 @@
// }
});
}
- this.initFlag = true;
+ if (type == "add"){
+ if (this.$refs.form){
+ this.$refs.form.resetForm()
+ }
+ this.form = {id :null }
+ }
done();
},
currentChange(currentPage) {
--
Gitblit v1.9.3