From 999f9a47da7783388d0214b9f8d987ea2d9f2916 Mon Sep 17 00:00:00 2001
From: heyujie <516346543@qq.com>
Date: 星期一, 11 四月 2022 13:55:05 +0800
Subject: [PATCH] 子账户管理新
---
src/views/personalCenter/components/SubAccount.vue | 504 ++++++++++++++-------------
src/views/personalCenter/components/TreeBox.vue | 13
/dev/null | 89 ----
src/views/personalCenter/components/BasicInfo.vue | 374 ++++++--------------
src/api/user.ts | 77 +--
src/views/personalCenter/components/StepCard.vue | 4
6 files changed, 411 insertions(+), 650 deletions(-)
diff --git a/src/api/user copy.ts b/src/api/user copy.ts
deleted file mode 100644
index 0cc8dbd..0000000
--- a/src/api/user copy.ts
+++ /dev/null
@@ -1,89 +0,0 @@
-import request from "@/scripts/httpRequest";
-import qs from "qs";
-
-export const getUsers = () => {
- return request({
- url: "/data/api-u/users/findAllUser",
- method: "get"
- });
-};
-
-
-export const getSysMenus = () => {
- return request({
- url: "/data/api-u/sysmenus/tree",
- method: "get"
- });
-};
-
-export const getUserMenus = (query: any) => {
- return request({
- url: "/data/api-u/users/findById",
- method: "post",
- data: qs.stringify(query)
- });
-};
-
-export const updataUser = (params: any) => {
- return request({
- url: "/data/api-u/users/saveAuth",
- method: "post",
- data: params
- });
-};
-
-export const uploadHeadPic = (params: any) => {
- return request({
- url: "/data/api-u/users/uploadHeadPic",
- method: "post",
- data: params
- });
-};
-
-export const addUser = (params: any) => {
- return request({
- url: "/data/api-u/users/add",
- method: "post",
- data: params
- });
-};
-
-export const updateUser = (params: any) => {
- return request({
- url: "/data/api-u/users/updateProfile",
- method: "post",
- data: params
- });
-};
-
-export const updatePassword = (params: any) => {
- return request({
- url: "/data/api-u/users/updatePwd",
- method: "post",
- data: qs.stringify(params)
- });
-};
-
-export const deleteUser = (params: any) => {
- return request({
- url: "/data/api-u/users/delUser",
- method: "post",
- data: params
- });
-};
-
-
-export const defHeadPics = () => {
- return request({
- url: "/data/api-u/users/defHeadPics",
- method: "get"
- });
-};
-
-
-export const getRoles = () => {
- return request({
- url: "/data/api-v/role/findAll",
- method: "get"
- });
-};
\ No newline at end of file
diff --git a/src/api/user.ts b/src/api/user.ts
index 3b089eb..7dcfbd4 100644
--- a/src/api/user.ts
+++ b/src/api/user.ts
@@ -9,9 +9,9 @@
"type": 0,
"userId": "string"
*/
-export const getMembers = (params: any) => {
+export const findUserList = (params: any) => {
return request({
- url: "/data/api-u/user/findUserList",
+ url: "/saas/api-u/user/findUserList",
method: "post",
data: params
});
@@ -24,30 +24,25 @@
"type": 0,
"userId": "string"
*/
-export const getManager = (params: any) => {
+export const getManagerList = (params: any) => {
return request({
- url: "/data/api-u/user/findManagerList",
+ url: "/saas/api-u/user/findManagerList",
method: "post",
data: params
});
};
-/* 淇濆瓨娉ㄥ唽浼氬憳
- "id": "string",
- "areaId": 0,
- "chPwdFirstLogin": true,
- "companyName": "string",
- "contact": "string",
- "email": "string",
- "industryId": "string",
- "password": "string",
- "trueName": "string",
- "type": 0,
- "userType": 0,
- "username": "string"
-*/
+
+export const saveSubUser = (params: any) => {
+ return request({
+ url: "/saas/api-u/user/saveSubUser",
+ method: "post",
+ data: params
+ });
+};
+
export const saveMember = (params: any) => {
return request({
- url: "/data/api-u/user/saveUser",
+ url: "/saas/api-u/user/saveUser",
method: "post",
data: params
});
@@ -55,57 +50,41 @@
/*
鑾峰彇褰撳墠鐢ㄦ埛鍙鑿滃崟
*/
-export const getCheckedMenu = () => {
+export const getMenu = () => {
return request({
- url: "/data/api-u/menu/tree",
+ url: "/saas/api-u/menu/tree",
method: "get"
});
};
-/*
- 淇濆瓨杩愯惀鐢ㄦ埛
- "chPwdFirstLogin": true,
- "email": "string",
- "id": "string",
- "menuIds": [
- "string"
- ],
- "isChangePwd": "string"
- "password": "string",
- "pos": "string",
- "trueName": "string",
- "username": "string"
-*/
+export const getDataTree = (params) => {
+ return request({
+ url: "/saas/api-u/user/dataTree",
+ method: "post",
+ data: params
+ });
+};
+
export const saveManager = (params: any) => {
return request({
- url: "/data/api-u/user/saveManager",
+ url: "/saas/api-u/user/saveManager",
method: "post",
data: params
});
};
-/*
- 鏌ヨ鐢ㄦ埛鐨勭粺璁′俊鎭細
- "userId": "",
-*/
export const statisticByUser = (params: any) => {
return request({
- url: "/data/api-s/statistic/statisticByUser",
+ url: "/saas/api-s/statistic/statisticByUser",
method: "post",
data: params
});
};
-export const getSysMenus = () => {
- return request({
- url: "/data/api-u/menu/tree",
- method: "get"
- });
-};
export const getUserMenus = (query: any) => {
return request({
- url: "/data/api-u/users/findById",
+ url: "/saas/api-u/users/findById",
method: "post",
data: qs.stringify(query)
});
@@ -113,7 +92,7 @@
export const updataUser = (params: any) => {
return request({
- url: "/data/api-u/users/saveAuth",
+ url: "/saas/api-u/users/saveAuth",
method: "post",
data: params
});
diff --git a/src/views/personalCenter/components/BasicInfo.vue b/src/views/personalCenter/components/BasicInfo.vue
index 934021f..bd41987 100644
--- a/src/views/personalCenter/components/BasicInfo.vue
+++ b/src/views/personalCenter/components/BasicInfo.vue
@@ -1,9 +1,9 @@
<template>
<div class="basic-info">
- <div class="head-name">瀛愯处鎴风鐞�</div>
+ <div class="head-name">鍩烘湰璧勬枡</div>
<el-form
- :model="ruleForm"
+ :model="userInfo"
:rules="rules"
:label-position="'left'"
ref="ruleForm"
@@ -11,60 +11,59 @@
class="add-ruleForm"
>
<div class="area-title">鍩烘湰淇℃伅</div>
- <el-form-item label="鐢ㄦ埛鍚�" prop="name">
- <el-input v-model="ruleForm.name" style="width: 200px"></el-input>
+ <el-form-item label="鐢ㄦ埛鍚�" prop="username">
+ <el-input v-model="userInfo.username" style="width: 200px"></el-input>
</el-form-item>
<el-form-item label="娉ㄥ唽绫诲瀷" prop="type">
- <el-radio v-model="ruleForm.type" label="1">涓汉</el-radio>
- <el-radio v-model="ruleForm.type" label="2">鍏徃</el-radio>
+ <el-radio-group v-model="userInfo.userType">
+ <el-radio :label="1">涓汉</el-radio>
+ <el-radio :label="2">鍏徃</el-radio>
+ </el-radio-group>
</el-form-item>
- <el-form-item label="濮撳悕" prop="name">
- <el-input v-model="ruleForm.name" style="width: 200px"></el-input>
+ <el-form-item label="濮撳悕" prop="trueName">
+ <el-input v-model="userInfo.trueName" style="width: 200px"></el-input>
</el-form-item>
- <div class="area-title" style="margin-top: 60px">涓氬姟淇℃伅</div>
+ <div class="area-title" style="margin-top: 50px">涓氬姟淇℃伅</div>
- <el-form-item label="琛屼笟搴旂敤" prop="region">
+ <el-form-item label="琛屼笟搴旂敤" prop="industryId">
<el-select
- v-model="ruleForm.region"
- placeholder="璇烽�夋嫨琛屼笟搴旂敤"
+ v-model="userInfo.industryId"
+ placeholder="琛屼笟"
style="width: 410px"
>
- <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
- <el-option label="鍖哄煙浜�" value="beijing"></el-option>
+ <el-option
+ v-for="(item, index) in industrys"
+ :label="item.name"
+ :value="item.id"
+ :key="index"
+ ></el-option>
</el-select>
</el-form-item>
- <el-form-item label="鍏徃鍚嶇О" prop="region">
- <el-input v-model="ruleForm.name" style="width: 410px"></el-input>
+ <el-form-item label="鍏徃鍚嶇О" prop="companyName">
+ <el-input
+ v-model="userInfo.companyName"
+ style="width: 410px"
+ ></el-input>
</el-form-item>
- <div class="area-title" style="margin-top: 60px">鑱旂郴淇℃伅</div>
+ <div class="area-title" style="margin-top: 50px">鑱旂郴淇℃伅</div>
- <el-form-item label="鎵�鍦ㄥ湴鍖�" prop="region">
- <el-select
- v-model="ruleForm.region"
- placeholder="璇烽�夋嫨鍩庡競"
- style="width: 200px; margin-right: 10px"
- >
- <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
- <el-option label="鍖哄煙浜�" value="beijing"></el-option>
- </el-select>
- <el-select
- v-model="ruleForm.region"
- placeholder="璇烽�夋嫨鍖�"
- style="width: 200px"
- >
- <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
- <el-option label="鍖哄煙浜�" value="beijing"></el-option>
- </el-select>
+ <el-form-item label="鎵�鍦ㄥ湴鍖�" prop="areaId">
+ <el-cascader
+ v-model="userInfo.address"
+ :props="options"
+ style="width: 410px"
+ @change="handleChange"
+ ></el-cascader>
</el-form-item>
- <el-form-item label="鎵嬫満鍙�" prop="name">
- <el-input v-model="ruleForm.name" style="width: 200px"></el-input>
+ <el-form-item label="鎵嬫満鍙�" prop="phoneNum">
+ <el-input v-model="userInfo.phoneNum" style="width: 200px"></el-input>
</el-form-item>
- <el-form-item label="閭" prop="name">
- <el-input v-model="ruleForm.password" style="width: 410px"></el-input>
+ <el-form-item label="閭" prop="email">
+ <el-input v-model="userInfo.email" style="width: 410px"></el-input>
</el-form-item>
</el-form>
<div class="btns">
@@ -74,6 +73,8 @@
</template>
<script>
+import { getUserInfo, getAreas, getDic, entireUserInfo } from "@/api/login";
+
export default {
components: {},
data() {
@@ -85,23 +86,50 @@
page: 1,
size: 10, //鍒嗛〉鐩稿叧
inputText: "", //杈撳叆妗嗗唴瀹�
- activeStep: 0,
+ industrys: [],
activeIndex: 0,
total: 0, //鎬绘暟
- dataList: [
- {
- name: "basic",
- phone: "1121313232",
- userType: "涓汉",
- duration: "姘镐箙",
- authList: "闆嗙兢1锛岄泦缇�2",
- isBind: 1,
- },
- ],
isShowAdd: false, //鏄惁灞曠ず鏂板寮圭獥
isShowUnbind: false, //鏄惁灞曠ず瑙g粦寮圭獥
isShowRelate: false,
unbindId: "",
+ options: {
+ lazy: true,
+ lazyLoad(node, resolve) {
+ // 鎳掑姞杞借妭鐐圭渷甯傛暟鎹�
+ const { level } = node;
+ let nodes;
+ console.log("鑺傜偣锛�", level, node);
+ getAreas({ parentId: level == 0 ? 0 : node.value })
+ .then((json) => {
+ nodes = json.data.list;
+ nodes = nodes.map((item) => ({
+ value: item.id,
+ label: item.name,
+ level: item.level,
+ leaf: level >= 1,
+ }));
+ resolve(nodes);
+ })
+ .catch((err) => {
+ console.log(err);
+ });
+ },
+ },
+ userInfo: {
+ userId: "",
+ username: "panlei",
+ phoneNum: "17610829559",
+ type: "", // 鏅�氱敤鎴疯繕鏄紑鍙戣��
+ userType: 1, // 涓汉杩樻槸鍏徃
+ industryId: "",
+ address: [110100, 110105],
+ areaId: "",
+ provinceId: "",
+ trueName: "",
+ companyName: "",
+ email: "",
+ },
durationArr: [
{
value: 0,
@@ -116,165 +144,19 @@
showQuit: false, //灞曠ず閫�鍑洪泦缇ょ殑寮圭獥
showJoin: false, //灞曠ず鍔犲叆闆嗙兢鐨勫脊绐�
activeEquipment: null, //澶勭悊涓殑璁惧
- ruleForm: {
- name: "",
- region: "",
- password: "",
- date1: "",
- date2: "",
- delivery: false,
- type: [],
- resource: "",
- desc: "",
- authList: {
- menuAuth: [],
- dataAuth: [],
- },
- },
rules: {
- name: [
- { required: true, message: "璇疯緭鍏ユ椿鍔ㄥ悕绉�", trigger: "blur" },
- { min: 3, max: 5, message: "闀垮害鍦� 3 鍒� 5 涓瓧绗�", trigger: "blur" },
+ trueName: [
+ { required: true, message: "璇峰~鍐欑湡瀹炲鍚�", trigger: "change" },
],
- region: [
- { required: true, message: "璇烽�夋嫨娲诲姩鍖哄煙", trigger: "change" },
+ username: [
+ { required: true, message: "璇峰~鍐欑敤鎴峰悕", trigger: "change" },
],
- date1: [
- {
- type: "date",
- required: true,
- message: "璇烽�夋嫨鏃ユ湡",
- trigger: "change",
- },
- ],
- date2: [
- {
- type: "date",
- required: true,
- message: "璇烽�夋嫨鏃堕棿",
- trigger: "change",
- },
+ phoneNum: [
+ { required: true, message: "璇峰~鍐欐墜鏈哄彿", trigger: "change" },
],
type: [
- {
- type: "array",
- required: true,
- message: "璇疯嚦灏戦�夋嫨涓�涓椿鍔ㄦ�ц川",
- trigger: "change",
- },
+ { required: true, message: "璇烽�夋嫨娉ㄥ唽绫诲瀷", trigger: "change" },
],
- resource: [
- { required: true, message: "璇烽�夋嫨娲诲姩璧勬簮", trigger: "change" },
- ],
- desc: [{ required: true, message: "璇峰~鍐欐椿鍔ㄥ舰寮�", trigger: "blur" }],
- },
- data1: [
- {
- id: 1,
- label: "涓�绾� 1",
- children: [
- {
- id: 4,
- label: "浜岀骇 1-1",
- children: [
- {
- id: 9,
- label: "涓夌骇 1-1-1",
- },
- {
- id: 10,
- label: "涓夌骇 1-1-2",
- },
- ],
- },
- ],
- },
- {
- id: 2,
- label: "涓�绾� 2",
- children: [
- {
- id: 5,
- label: "浜岀骇 2-1",
- },
- {
- id: 6,
- label: "浜岀骇 2-2",
- },
- ],
- },
- {
- id: 3,
- label: "涓�绾� 3",
- children: [
- {
- id: 7,
- label: "浜岀骇 3-1",
- },
- {
- id: 8,
- label: "浜岀骇 3-2",
- },
- ],
- },
- ],
- defaultProps1: {
- children: "children",
- label: "label",
- },
- data2: [
- {
- id: 1,
- label: "涓�绾� 1",
- children: [
- {
- id: 4,
- label: "浜岀骇 1-1",
- children: [
- {
- id: 9,
- label: "涓夌骇 1-1-1",
- },
- {
- id: 10,
- label: "涓夌骇 1-1-2",
- },
- ],
- },
- ],
- },
- {
- id: 2,
- label: "涓�绾� 2",
- children: [
- {
- id: 5,
- label: "浜岀骇 2-1",
- },
- {
- id: 6,
- label: "浜岀骇 2-2",
- },
- ],
- },
- {
- id: 3,
- label: "涓�绾� 3",
- children: [
- {
- id: 7,
- label: "浜岀骇 3-1",
- },
- {
- id: 8,
- label: "浜岀骇 3-2",
- },
- ],
- },
- ],
- defaultProps2: {
- children: "children",
- label: "label",
},
};
},
@@ -286,8 +168,27 @@
goto(i) {
this.activeIndex = i;
},
- save(){
-
+ async getIndustrys() {
+ let res = await getDic();
+ if (res.success) {
+ this.industrys = res.data.dics;
+ } else {
+ console.log("鏌ヨ琛屼笟鍒楄〃澶辫触锛�");
+ }
+ },
+ save() {
+ this.userInfo.provinceId = this.userInfo.address[0];
+ this.userInfo.areaId = this.userInfo.address[1];
+ entireUserInfo(this.userInfo)
+ .then((res) => {
+ this.$notify.success("璐︽埛淇℃伅淇濆瓨鎴愬姛");
+ })
+ .catch((err) => {
+ if (err && err.status == 401) {
+ return;
+ }
+ this.$notify.error("璐︽埛淇℃伅淇濆瓨澶辫触");
+ });
},
// 璺冲埌璁惧璇︽儏
checkDetail(row) {
@@ -313,35 +214,6 @@
},
});
},
-
- // 鏌ヨ鍒楄〃
- // searchingBtn() {
- // let param = {
- // page: this.page,
- // size: this.size,
- // // startTime: this.searchTime[0],
- // // endTime: this.searchTime[1],
- // inputText: this.inputText,
- // };
- // findDevList(param)
- // .then((res) => {
- // this.dataList = res.data.list;
- // //鏃堕棿鍒嗚鏄剧ず
-
- // this.dataList.forEach((item) => {
- // item.installTime = item.installTime.split(" ");
- // item.firstUseTime = item.firstUseTime.split(" ");
- // });
- // this.total = res.data.total;
- // if (res.data.total <= this.size) {
- // this.page = 1;
- // }
- // })
- // .catch((err) => {
- // console.log(err);
- // });
- // },
-
//鍒嗛〉鍔熻兘
handleSizeChange(size) {
this.size = size;
@@ -408,6 +280,13 @@
},
},
mounted() {},
+ created() {
+ getUserInfo().then((res) => {
+ this.userInfo = res.data;
+ this.userInfo.address = [this.userInfo.provinceId, this.userInfo.areaId];
+ });
+ this.getIndustrys();
+ },
};
</script>
@@ -424,6 +303,10 @@
margin-bottom: 30px;
}
.add-ruleForm::v-deep {
+ .el-form-item__label {
+ font-size: 14px;
+ color: #999999;
+ }
.area-title {
font-weight: 700;
color: #666666;
@@ -439,31 +322,14 @@
height: 32px;
line-height: 32px;
}
- .user-tree {
- .el-form-item__content {
- display: flex;
- .tree-box {
- .t {
- height: 32px;
- background: #f0f5fa;
- border-radius: 3px 3px 0px 0px;
- line-height: 32px;
- text-align: center;
- border-bottom: 1px solid #c0c5cc;
- }
- width: 336px;
- height: 480px;
- border: 1px solid #c0c5cc;
- margin-right: 20px;
- box-sizing: border-box;
- }
- }
- }
}
.searchBtn {
- width: 80px;margin-top: 38px;
+ width: 80px;
+ margin-top: 50px;
height: 40px;
line-height: 40px;
+ border-radius: 3px;
+ cursor: pointer;
text-align: center;
color: #fff;
background: #0065ff;
diff --git a/src/views/personalCenter/components/StepCard.vue b/src/views/personalCenter/components/StepCard.vue
index 44af2a4..eb365d0 100644
--- a/src/views/personalCenter/components/StepCard.vue
+++ b/src/views/personalCenter/components/StepCard.vue
@@ -43,7 +43,7 @@
>
</el-tree>
</div>
- <div class="tree-box">
+ <!-- <div class="tree-box">
<div class="t">鏁版嵁鏉冮檺</div>
<el-tree
:data="data2"
@@ -54,7 +54,7 @@
:props="defaultProps2"
>
</el-tree>
- </div>
+ </div> -->
</div>
<div class="btns">
diff --git a/src/views/personalCenter/components/SubAccount.vue b/src/views/personalCenter/components/SubAccount.vue
index 4721b7c..377c64f 100644
--- a/src/views/personalCenter/components/SubAccount.vue
+++ b/src/views/personalCenter/components/SubAccount.vue
@@ -10,7 +10,7 @@
<div class="cluster">
鎺堟潈鏃堕暱
- <el-select v-model="cluster" placeholder="璇烽�夋嫨">
+ <el-select v-model="timeLength" placeholder="璇烽�夋嫨">
<el-option
v-for="item in durationArr"
:key="item.value"
@@ -23,8 +23,8 @@
</div>
<div class="right">
- <div class="button searchBtn" @click="save">鎼滅储</div>
- <div class="button resetBtn" @click="save">閲嶇疆</div>
+ <div class="button searchBtn" @click="findUserList">鎼滅储</div>
+ <div class="button resetBtn" @click="reset">閲嶇疆</div>
</div>
</div>
@@ -55,19 +55,25 @@
}}</template>
</el-table-column>
<el-table-column
- prop="name"
+ prop="trueName"
label="濮撳悕"
show-overflow-tooltip
></el-table-column>
<el-table-column
- prop="phone"
- label="鎵嬫満鍙�"
+ prop="username"
+ label="鐢ㄦ埛鍚�"
show-overflow-tooltip
></el-table-column>
- <el-table-column prop="userType" label="鐢ㄦ埛绫诲瀷"></el-table-column>
- <el-table-column prop="duration" label="鎺堟潈鏃堕暱"></el-table-column>
- <el-table-column prop="authList" label="鏉冮檺"></el-table-column>
-
+ <el-table-column prop="userType" label="鐢ㄦ埛绫诲瀷">
+ <template slot-scope="scope">
+ <span>{{ scope.row.userType == 1 ? "涓汉" : "鍏徃" }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="authDuration" label="鎺堟潈鏃堕暱" > </el-table-column>
+ <el-table-column prop="dataNames" label="鏉冮檺">
+
+ </el-table-column>
+
<el-table-column label="鐘舵��">
<template slot-scope="scope">
<div v-if="scope.row.isBind == 1" class="status green">宸茬粦瀹�</div>
@@ -78,13 +84,13 @@
<el-table-column label="鎿嶄綔">
<template slot-scope="scope">
<!-- 缂栬緫 -->
- <span class="iconfont option" @click="joinCluster(scope.row)"
- ></span
+ <span class="iconfont option" @click="editUser(scope.row)"
+ >缂栬緫</span
>
<!-- 瑙g粦 -->
- <span class="iconfont option" @click="Untying(scope.row)"
- ></span
- >
+ <!-- <span class="iconfont option" @click="Untying(scope.row)"
+ >瑙g粦</span
+ > -->
</template>
</el-table-column>
</el-table>
@@ -101,34 +107,9 @@
></el-pagination>
</div>
</div>
-
- <!-- 瑙g粦寮圭獥 -->
- <UnbindBox
- @close="closeUnbindBox"
- v-if="isShowUnbind"
- :id="unbindId"
- @reflash="reflash"
- ></UnbindBox>
-
- <!-- 娣诲姞璁惧寮圭獥 -->
- <!-- <AddBox @close="closeAddBox" v-if="isShowAdd"></AddBox> -->
-
- <!-- 閫�鍑洪泦缇ゅ脊绐� -->
- <QuitClusterBox
- :equipment="activeEquipment"
- v-if="showQuit"
- @close="showQuit = false"
- ></QuitClusterBox>
-
- <!-- 鍔犲叆闆嗙兢寮圭獥 -->
- <JoinClusterBox
- :equipment="activeEquipment"
- v-if="showJoin"
- @close="showJoin = false"
- ></JoinClusterBox>
</div>
<div class="sub-account" v-else-if="isShowAdd">
- <div class="add-title" @click="isShowAdd=false">
+ <div class="add-title" @click="isShowAdd = false">
<span class="iconfont"></span>
<span>娣诲姞瀛愯处鎴�</span>
</div>
@@ -140,57 +121,97 @@
label-width="100px"
class="add-ruleForm"
>
- <el-form-item label="鐢ㄦ埛鍚�" prop="name">
- <el-input v-model="ruleForm.name"></el-input>
+ <el-form-item label="鐢ㄦ埛鍚�" prop="username">
+ <el-input v-model="ruleForm.username" style="width: 350px"></el-input>
</el-form-item>
- <el-form-item label="瀵嗙爜" prop="name">
- <el-input v-model="ruleForm.password"></el-input>
+ <el-form-item label="瀵嗙爜" prop="password">
+ <el-input v-model="ruleForm.password" style="width: 350px"></el-input>
</el-form-item>
- <el-form-item label="閲嶇疆瀵嗙爜" prop="delivery">
- <el-checkbox v-model="ruleForm.delivery">棣栨鐧婚檰淇敼瀵嗙爜</el-checkbox>
+ <el-form-item label="閲嶇疆瀵嗙爜" prop="isChangePwd">
+ <el-checkbox v-model="ruleForm.isChangePwd"
+ >棣栨鐧婚檰淇敼瀵嗙爜</el-checkbox
+ >
</el-form-item>
- <el-form-item label="鐢ㄦ埛绫诲瀷" prop="type">
- <el-radio v-model="ruleForm.type" label="1">涓汉</el-radio>
- <el-radio v-model="ruleForm.type" label="2">鍏徃</el-radio>
+ <el-form-item label="鐢ㄦ埛绫诲瀷" prop="userType">
+ <el-radio v-model="ruleForm.userType" :label="1">涓汉</el-radio>
+ <el-radio v-model="ruleForm.userType" :label="2">鍏徃</el-radio>
</el-form-item>
- <el-form-item label="濮撳悕" prop="name">
- <el-input v-model="ruleForm.name"></el-input>
+ <el-form-item label="濮撳悕" prop="trueName">
+ <el-input v-model="ruleForm.trueName" style="width: 350px"></el-input>
</el-form-item>
- <el-form-item label="閭" prop="name">
- <el-input v-model="ruleForm.password"></el-input>
+ <el-form-item label="閭" prop="email">
+ <el-input v-model="ruleForm.email" style="width: 350px"></el-input>
</el-form-item>
- <el-form-item label="琛屼笟" prop="region">
- <el-select v-model="ruleForm.region" placeholder="璇烽�夋嫨琛屼笟">
- <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
- <el-option label="鍖哄煙浜�" value="beijing"></el-option>
+ <el-form-item label="琛屼笟" prop="industryId">
+ <el-select
+ v-model="ruleForm.industryId"
+ placeholder="璇烽�夋嫨琛屼笟"
+ style="width: 350px"
+ >
+ <el-option
+ v-for="(item, index) in industrys"
+ :label="item.name"
+ :value="item.id"
+ :key="index"
+ ></el-option>
</el-select>
</el-form-item>
- <el-form-item label="鍦板尯" prop="region">
- <el-select v-model="ruleForm.region" placeholder="璇烽�夋嫨琛屼笟">
- <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
- <el-option label="鍖哄煙浜�" value="beijing"></el-option>
- </el-select>
+ <el-form-item label="鍦板尯" prop="address">
+ <el-cascader
+ v-model="ruleForm.address"
+ :props="options"
+ style="width: 350px"
+ @change="handleChange"
+ ></el-cascader>
</el-form-item>
- <el-form-item label="鎺堟潈鏃堕暱" prop="region">
- <el-select v-model="ruleForm.region" placeholder="璇烽�夋嫨琛屼笟">
- <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
- <el-option label="鍖哄煙浜�" value="beijing"></el-option>
+ <el-form-item label="鎺堟潈鏃堕暱" prop="authDuration">
+ <el-select
+ v-model="ruleForm.authDuration"
+ style="width: 350px"
+ placeholder="璇烽�夋嫨鎺堟潈鏃堕暱"
+ >
+ <el-option label="涓�骞�" value="涓�骞�"></el-option>
+ <el-option label="涓ゅ勾" value="涓ゅ勾"></el-option>
</el-select>
</el-form-item>
- <el-form-item label="鐢ㄦ埛鏉冮檺" prop="authList" class="user-tree">
-
- <TreeBox :defaultProp="defaultProp1" :treeData="data1"></TreeBox>
-
-
- <TreeBox :defaultProp="defaultProp2" :treeData="data2"></TreeBox>
+ <el-form-item label="鐢ㄦ埛鏉冮檺" prop="menuIds" class="user-tree">
+ <!-- <TreeBox :defaultProp="defaultProp" :treeData="sysMenus"></TreeBox> -->
+ <!-- <TreeBox :defaultProp="defaultProp2" :treeData="data2"></TreeBox> -->
+ <div class="tree-box">
+ <div class="t">鑿滃崟鏉冮檺</div>
+ <el-tree
+ ref="treeMenus"
+ :data="sysMenus"
+ show-checkbox
+ default-expand-all
+ node-key="id"
+ :props="defaultProp"
+ :default-checked-keys="checkedMenu"
+ check-on-click-node
+ >
+ </el-tree>
+ </div>
+ <div class="tree-box">
+ <div class="t">鏁版嵁鏉冮檺</div>
+ <el-tree
+ ref="treeData"
+ :data="DataTree"
+ show-checkbox
+ default-expand-all
+ node-key="id"
+ :props="defaultProp"
+ :default-checked-keys="checkedData"
+ check-on-click-node
+ >
+ </el-tree>
+ </div>
</el-form-item>
-
</el-form>
<div class="right">
- <div class="button searchBtn" @click="save">鎼滅储</div>
- <div class="button resetBtn" @click="save">閲嶇疆</div>
+ <div class="button searchBtn" @click="saveSubUser">淇濆瓨</div>
+ <div class="button resetBtn" @click="resetUser">閲嶇疆</div>
</div>
</div>
<div class="sub-account" v-else-if="isShowRelate">
@@ -207,18 +228,14 @@
</template>
<script>
-import UnbindBox from "@/views/equipmentManagement/equipmentDetail/components/UnbindBox";
-import QuitClusterBox from "@/views/equipmentManagement/equipmentList/components/QuitClusterBox";
-import JoinClusterBox from "@/views/equipmentManagement/equipmentList/components/JoinClusterBox";
+import { findUserList, saveSubUser, getMenu, getDataTree } from "@/api/user";
+import { getAreas, getDic } from "@/api/login";
+
import Steps from "./Steps";
import StepsCard from "./StepCard";
import TreeBox from "./TreeBox";
export default {
components: {
- // AddBox,
- UnbindBox,
- QuitClusterBox,
- JoinClusterBox,
Steps,
StepsCard,
TreeBox,
@@ -234,49 +251,66 @@
inputText: "", //杈撳叆妗嗗唴瀹�
activeStep: 0,
activeIndex: 0,
+ industrys: [],
total: 0, //鎬绘暟
- dataList: [
- {
- name: "basic",
- phone: "1121313232",
- userType: "涓汉",
- duration: "姘镐箙",
- authList: "闆嗙兢1锛岄泦缇�2",
- isBind: 1,
+ options: {
+ lazy: true,
+ lazyLoad(node, resolve) {
+ // 鎳掑姞杞借妭鐐圭渷甯傛暟鎹�
+ const { level } = node;
+ let nodes;
+ getAreas({ parentId: level == 0 ? 0 : node.value })
+ .then((json) => {
+ nodes = json.data.list;
+ nodes = nodes.map((item) => ({
+ value: item.id,
+ label: item.name,
+ level: item.level,
+ leaf: level >= 1,
+ }));
+ resolve(nodes);
+ })
+ .catch((err) => {
+ console.log(err);
+ });
},
- ],
+ },
+ dataList: [],
isShowAdd: false, //鏄惁灞曠ず鏂板寮圭獥
isShowUnbind: false, //鏄惁灞曠ず瑙g粦寮圭獥
- isShowRelate: false,
+ isShowRelate: false,isEditing: false,
unbindId: "",
durationArr: [
{
- value: 0,
+ value: "涓�骞�",
label: "涓�骞�",
},
{
- value: 1,
+ value: "涓ゅ勾",
label: "涓ゅ勾",
},
], //鎵�灞為泦缇や笅鎷夋
- cluster: null, //閫変腑鐨勯泦缇ょ被鍨�
+ timeLength: null, //閫変腑鐨勬巿鏉冩椂闀�
showQuit: false, //灞曠ず閫�鍑洪泦缇ょ殑寮圭獥
showJoin: false, //灞曠ず鍔犲叆闆嗙兢鐨勫脊绐�
activeEquipment: null, //澶勭悊涓殑璁惧
+ checkedData:[],
+ checkedMenu:[],
ruleForm: {
- name: "",
- region: "",
+ id: "",
+ username: "",
+ userType: "",
password: "",
- date1: "",
- date2: "",
- delivery: false,
- type: [],
- resource: "",
- desc: "",
- authList: {
- menuAuth: [],
- dataAuth: [],
- },
+ trueName: "",
+ email: "",
+ isChangePwd: false,
+ industryId: "",
+ address: [],
+ authDuration: "",
+ areaId: "",
+ provinceId: "",
+ menuIds: [],
+ dataIds: [],
},
rules: {
name: [
@@ -286,153 +320,131 @@
region: [
{ required: true, message: "璇烽�夋嫨娲诲姩鍖哄煙", trigger: "change" },
],
- date1: [
- {
- type: "date",
- required: true,
- message: "璇烽�夋嫨鏃ユ湡",
- trigger: "change",
- },
- ],
- date2: [
- {
- type: "date",
- required: true,
- message: "璇烽�夋嫨鏃堕棿",
- trigger: "change",
- },
- ],
- type: [
- {
- type: "array",
- required: true,
- message: "璇疯嚦灏戦�夋嫨涓�涓椿鍔ㄦ�ц川",
- trigger: "change",
- },
- ],
resource: [
{ required: true, message: "璇烽�夋嫨娲诲姩璧勬簮", trigger: "change" },
],
desc: [{ required: true, message: "璇峰~鍐欐椿鍔ㄥ舰寮�", trigger: "blur" }],
},
- data1: [
- {
- id: 1,
- label: "涓�绾� 1",
- children: [
- {
- id: 4,
- label: "浜岀骇 1-1",
- children: [
- {
- id: 9,
- label: "涓夌骇 1-1-1",
- },
- {
- id: 10,
- label: "涓夌骇 1-1-2",
- },
- ],
- },
- ],
- },
- {
- id: 2,
- label: "涓�绾� 2",
- children: [
- {
- id: 5,
- label: "浜岀骇 2-1",
- },
- {
- id: 6,
- label: "浜岀骇 2-2",
- },
- ],
- },
- {
- id: 3,
- label: "涓�绾� 3",
- children: [
- {
- id: 7,
- label: "浜岀骇 3-1",
- },
- {
- id: 8,
- label: "浜岀骇 3-2",
- },
- ],
- },
- ],
- defaultProps1: {
+ sysMenus: [],
+ DataTree: [],
+ userInfo: {},
+ curEditId: "",
+ defaultProp: {
children: "children",
- label: "label",
- },
- data2: [
- {
- id: 1,
- label: "涓�绾� 1",
- children: [
- {
- id: 4,
- label: "浜岀骇 1-1",
- children: [
- {
- id: 9,
- label: "涓夌骇 1-1-1",
- },
- {
- id: 10,
- label: "涓夌骇 1-1-2",
- },
- ],
- },
- ],
- },
- {
- id: 2,
- label: "涓�绾� 2",
- children: [
- {
- id: 5,
- label: "浜岀骇 2-1",
- },
- {
- id: 6,
- label: "浜岀骇 2-2",
- },
- ],
- },
- {
- id: 3,
- label: "涓�绾� 3",
- children: [
- {
- id: 7,
- label: "浜岀骇 3-1",
- },
- {
- id: 8,
- label: "浜岀骇 3-2",
- },
- ],
- },
- ],
- defaultProps2: {
- children: "children",
- label: "label",
+ label: "name",
},
};
},
+ created() {
+ this.userInfo = JSON.parse(sessionStorage.getItem("userInfo"));
+ this.findUserList();
+ this.getIndustrys();
+ this.fetchSysMenus();
+ this.fetchDataTree();
+ },
methods: {
+ fetchDataTree() {
+ getDataTree({ userId: this.userInfo.id }).then((res) => {
+ this.DataTree = res.data.dataTree;
+ });
+ },
+ fetchSysMenus() {
+ getMenu().then((rsp) => {
+ if (rsp && rsp.success) {
+ this.sysMenus = rsp.data.menus;
+ // this.userMenus = [];
+ }
+ });
+ },
+ editUser(row) {
+ this.isShowAdd = true;
+ this.isEditing = true
+ this.ruleForm.id = row.id;
+ this.ruleForm.username = row.username;
+ this.ruleForm.userType = row.userType;
+ this.ruleForm.password = row.password;
+ this.ruleForm.trueName = row.trueName;
+ this.ruleForm.email = row.email;
+ this.ruleForm.isChangePwd = row.isChangePwd;
+ this.ruleForm.industryId = row.industryId;
+ this.ruleForm.areaId =row.areaId ;
+ debugger
+ this.ruleForm.address = [ row.provinceId,row.areaId]
+ this.ruleForm.provinceId = row.provinceId;
+ this.ruleForm.authDuration = row.authDuration;
+ this.checkedMenu = row.menuIds;
+ this.checkedData = row.dataIds;
+ },
+ resetUser() {
+ this.ruleForm = {
+ id: "",
+ username: "",
+ userType: "",
+ password: "",
+ trueName: "",
+ email: "",
+ isChangePwd: false,
+ industryId: "",
+ areaId: "",
+ provinceId: "",
+ authDuration: "",
+ };
+ this.$refs.treeMenus.setCheckedKeys([]);
+ this.$refs.treeData.setCheckedKeys([]);
+ },
+ async getIndustrys() {
+ let res = await getDic();
+ if (res.success) {
+ this.industrys = res.data.dics;
+ } else {
+ console.log("鏌ヨ琛屼笟鍒楄〃澶辫触锛�");
+ }
+ },
+ saveSubUser() {
+ this.ruleForm.menuIds = this.$refs.treeMenus.getCheckedKeys();
+ this.ruleForm.dataIds = this.$refs.treeData.getCheckedKeys();
+ let json = {
+ id: this.isEditing? this.ruleForm.id:"",
+ username: this.ruleForm.username,
+ password: this.ruleForm.password,
+ isChangePwd: this.ruleForm.isChangePwd,
+ userType: this.ruleForm.userType,
+ trueName: this.ruleForm.trueName,
+ email: this.ruleForm.email,
+ industryId: this.ruleForm.industryId,
+ areaId: this.ruleForm.address[1],
+ authDuration: this.ruleForm.authDuration,
+ menuIds: this.ruleForm.menuIds,
+ dataIds: this.ruleForm.dataIds,
+ };
+ debugger
+ saveSubUser(json).then((res) => {
+ debugger;
+ });
+ },
+ findUserList() {
+ findUserList({
+ inputText: this.inputText,
+ page: this.page,
+ size: this.size,
+ }).then((res) => {
+ if (res.success) {
+ this.dataList = res.data.dataList;
+ }
+ });
+ },
goback() {
- this.isShowAdd=false
+ this.isShowAdd = false;
+ this.isEditing =false
this.isShowRelate = false;
this.activeIndex = 0;
},
goto(i) {
this.activeIndex = i;
+ },
+ reset() {
+ this.inputText = "";
+ this.timeLength = null;
},
// 璺冲埌璁惧璇︽儏
checkDetail(row) {
@@ -460,10 +472,8 @@
},
// 鏌ヨ鍒楄〃
-
- save(){
- },
+ save() {},
//鍒嗛〉鍔熻兘
handleSizeChange(size) {
this.size = size;
@@ -498,10 +508,6 @@
];
},
- //鍏抽棴鏂板寮圭獥
- closeAddBox() {
- this.isShowAdd = false;
- },
// 鍏抽棴瑙g粦寮圭獥
closeUnbindBox() {
this.isShowUnbind = false;
@@ -528,9 +534,6 @@
this.activeEquipment = equipment;
this.showJoin = true;
},
- },
- mounted() {
-
},
};
</script>
@@ -561,7 +564,6 @@
}
.add-ruleForm::v-deep {
.el-input__inner {
- width: 350px;
color: #3d3d3d;
border-radius: 4px;
border-color: #c0c5cc;
@@ -771,7 +773,7 @@
.option {
margin-right: 10px;
- font-size: 24px;
+ font-size: 14px;
color: rgb(0, 101, 255);
cursor: pointer;
}
diff --git a/src/views/personalCenter/components/TreeBox.vue b/src/views/personalCenter/components/TreeBox.vue
index 8ee0c96..e5cba90 100644
--- a/src/views/personalCenter/components/TreeBox.vue
+++ b/src/views/personalCenter/components/TreeBox.vue
@@ -1,16 +1,18 @@
<template>
<div class="tree-box">
- <div class="t">鏁版嵁鏉冮檺</div>
+ <div class="t">鑿滃崟鏉冮檺</div>
<el-tree
:data="treeData"
show-checkbox
- :default-expand-all="true"
+ default-expand-all
node-key="id"
:props="defaultProps"
+ :default-checked-keys="userMenus"
+ check-on-click-node
>
</el-tree>
- <!-- :default-checked-keys="[5]" -->
- <!-- :default-expanded-keys="[2, 3]" -->
+ <!-- :default-checked-keys="[5]" -->
+ <!-- :default-expanded-keys="[2, 3]" -->
</div>
</template>
@@ -20,7 +22,8 @@
mounted() {},
props: {
treeData: Array,
- defaultProps:Object,
+ userMenus: Array,
+ defaultProps: Object,
},
data() {
return {};
--
Gitblit v1.8.0