From 98710e70bb52e761a1769c6454a290040b610aee Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@iotlink.com>
Date: 星期三, 07 四月 2021 18:20:46 +0800
Subject: [PATCH] 在请求index.js时添加参数,解决缓存的问题
---
src/pages/shuohuangMonitorAnalyze/components/memberManage.vue | 308 +++++++++++++++++++++++++++++++++++---------------
1 files changed, 213 insertions(+), 95 deletions(-)
diff --git a/src/pages/shuohuangMonitorAnalyze/components/memberManage.vue b/src/pages/shuohuangMonitorAnalyze/components/memberManage.vue
index bc1be55..f254def 100644
--- a/src/pages/shuohuangMonitorAnalyze/components/memberManage.vue
+++ b/src/pages/shuohuangMonitorAnalyze/components/memberManage.vue
@@ -7,20 +7,22 @@
</el-input>
</div>
<el-tree
+ ref="leftTreeNodes"
:data="treeData"
node-key="id"
default-expand-all
- @node-click="checkNode"
:expand-on-click-node="false"
:check-on-click-node="true"
:highlight-current="true"
+ @node-click="checkNode"
+ @node-contextmenu="nodeContextMenu"
></el-tree>
<div class="menuList" v-show="showMenu" :style="{top:menuTop+'px',left:menuLeft+'px'}">
<ul>
<li>鍒涘缓鍚岀骇鑺傜偣</li>
<li>鍒犻櫎鑺傜偣</li>
<li>閲嶅懡鍚嶈妭鐐�</li>
- <li>鍏抽棴</li>
+ <li @click="showMenu = false">鍏抽棴</li>
</ul>
</div>
</div>
@@ -31,11 +33,12 @@
<el-option
v-for="item in genders"
:key="item.id"
- :value="item.id"
+ :value="item.name=='鍏ㄩ儴'?'':item.name"
:label="item.name"
>{{item.name}}</el-option>
</el-select>
- <el-button type="primary" size="small" @click="dataSearch">鏌ヨ</el-button>
+ <el-button type="primary" size="small" @click="renderMemberTable">鏌ヨ</el-button>
+ <el-button type="primary" size="small" @click="resetFilter">閲嶇疆</el-button>
</div>
<div class="table-area">
<div class="actions">
@@ -65,7 +68,7 @@
<el-table-column label="鐓х墖" prop="Surface">
<template slot-scope="scope">
<div class="table-cell-pic">
- <img :src="`${CLIP}${scope.row.Surface}`" alt />
+ <img :src="`/httpImage/${scope.row.Surface}`" alt />
</div>
</template>
</el-table-column>
@@ -96,17 +99,31 @@
</template>
</el-table-column>
</el-table>
+ <el-pagination
+ @size-change="handleTableSizeChange"
+ @current-change="renderMemberTable"
+ :current-page.sync="PageIndex"
+ :page-size="PageSize"
+ :page-sizes="pageSizes"
+ layout="total,sizes, prev, pager, next"
+ :total="tableTotal"
+ ></el-pagination>
</div>
</div>
<el-dialog
:visible="memberEditDialogVisible"
class="member-edit-dialog"
:append-to-body="false"
- title="娣诲姞/缂栬緫浜哄憳"
@close="memberEditDialogVisible=false"
>
+ <div slot="title">
+ <div class="title">
+ <div class="main-title">{{memberEditForm.ID?'缂栬緫浜哄憳':'娣诲姞浜哄憳'}}</div>
+ <div class="subtitle">缁勭粐缁撴瀯:{{curLeftTreeNode.label}}</div>
+ </div>
+ </div>
<div class="text-center">
- <el-form :model="memberEditForm">
+ <el-form :model="memberEditForm" :rules="memberEditFormRule" ref="memberForm">
<el-form-item>
<el-upload
class="avatar-uploader"
@@ -125,23 +142,23 @@
<el-form-item label="宸ュ彿:" prop="WorkID">
<el-input v-model="memberEditForm.WorkID" size="mini"></el-input>
</el-form-item>
- <el-form-item label="鐓х墖鏍囪瘑:">
+ <!-- <el-form-item label="鐓х墖鏍囪瘑:">
<el-input v-model="memberEditForm.SurfaceName" size="mini"></el-input>
- </el-form-item>
- <el-form-item label="濮撳悕:">
+ </el-form-item>-->
+ <el-form-item label="濮撳悕:" prop="Name">
<el-input v-model="memberEditForm.Name" size="mini"></el-input>
</el-form-item>
- <el-form-item label="鐢ㄦ埛鍚�:">
+ <el-form-item label="鐢ㄦ埛鍚�:" prop="UserName">
<el-input v-model="memberEditForm.UserName" size="mini"></el-input>
</el-form-item>
- <el-form-item label="鎬у埆:">
+ <el-form-item label="鎬у埆:" prop="Sex">
<el-radio v-model="memberEditForm.Sex" label="濂�">濂�</el-radio>
<el-radio v-model="memberEditForm.Sex" label="鐢�">鐢�</el-radio>
</el-form-item>
<el-form-item label="韬唤璇佸彿:">
<el-input v-model="memberEditForm.OwnerID" size="mini"></el-input>
</el-form-item>
- <el-form-item label="鎵嬫満鍙�:">
+ <el-form-item label="鎵嬫満鍙�:" prop="Tel">
<el-input v-model="memberEditForm.Tel" size="mini"></el-input>
</el-form-item>
<div class="btns">
@@ -185,42 +202,29 @@
title="鎵归噺瀵煎叆"
@close="batchImportDialogVisible=false"
>
- <div class="text-left">
+ <div>
+ <p class="tip">
+ *璇锋彁鍓嶆牴鎹枃浠舵ā鏉夸腑鐨勮姹傛敹闆嗕汉鍛樹俊鎭紝鍦ㄤ竴涓枃浠跺す涓瓨鏀句汉鍛樼収鐗囧拰EXCEL鏂囦欢
+ (
+ <a
+ href="javascript:;"
+ @mouseover="showDemo=true"
+ @mouseout="showDemo=false"
+ >绀轰緥</a>),鐐瑰嚮
+ <a href="javascript:;" @click="downloadExcel">涓嬭浇妯℃澘.excel</a>
+ <img class="tip-demo" v-if="showDemo" :src="`${publicPath}images/shuohuang/tip.jpg`" alt />
+ </p>
<div class="flex-box">
- <label>涓婁紶鏂囦欢:</label>
- <el-upload
- class="upload-demo batch-upload"
- action="https://jsonplaceholder.typicode.com/posts/"
- :on-remove="handleRemove"
- multiple
- :limit="3"
- :http-request="batchImportFiles"
- :on-exceed="handleExceed"
- :file-list="fileList"
- >
- <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
- <div slot="tip" class="el-upload__tip"></div>
- </el-upload>
- <p>
- *璇锋寜鐓ф妯℃澘濉啓淇℃伅锛岀偣鍑讳笅杞芥ā鏉�
- <a href="javascript:;">.excel</a>
- </p>
+ <label>涓婁紶鏂囦欢澶�:</label>
+ <el-button size="mini" type="primary" @click="uploadDirectoryTrigger">鐐瑰嚮涓婁紶</el-button>
+ <input ref="directoryInput" @change="importDirectory" hidden type="file" webkitdirectory />
</div>
<el-table class="thbg" :data="batchImportTableData" fit>
<el-table-column type="index" label="搴忓彿"></el-table-column>
- <el-table-column prop="filename" label="鏂囦欢鍚嶇О"></el-table-column>
- <el-table-column prop="time" label="涓婁紶鏃堕棿"></el-table-column>
- <el-table-column prop="state" label="鐘舵��"></el-table-column>
+ <el-table-column prop="Name" label="鏂囦欢鍚嶇О"></el-table-column>
+ <el-table-column prop="UploadTime" label="涓婁紶鏃堕棿"></el-table-column>
+ <el-table-column prop="Status" label="鐘舵��"></el-table-column>
</el-table>
- <el-pagination
- @size-change="handleTableSizeChange"
- @current-change="renderMemberTable"
- :current-page.sync="PageIndex"
- :page-size="PageSize"
- :page-sizes="pageSizes"
- layout="total,sizes, prev, pager, next"
- :total="tableTotal"
- ></el-pagination>
</div>
</el-dialog>
</div>
@@ -228,21 +232,22 @@
<script>
-import { getShuohuangDepartTree, getOrganizeTree, getMemberList, updateMemberInfo, addMember, updateUnit, uploadMemberPic } from '@/api/shuohuang'
-
+import { getShuohuangDepartTree, getOrganizeTree, getMemberList, updateMemberInfo, addMember, updateUnit, uploadMemberPic, uploadDirectory, uploadFile,downloadFile } from '@/api/shuohuang'
export default {
data () {
return {
+ publicPath: process.env.BASE_URL,
CLIP: 'http://192.168.20.113/',
treeWord: '',
treeData: [],
+ curLeftTreeNode: {},
showMenu: false,
deptId: '',
menuTop: 0,
menuLeft: 0,
keyword: '',
gender: '',
- genders: [{ name: '鐢�', id: 'g0' }, { name: '濂�', id: 'g1' }],
+ genders: [{id:'g3',name:'鍏ㄩ儴'},{ name: '鐢�', id: 'g0' }, { name: '濂�', id: 'g1' }],
tableData: [],
multipleTableSelection: [],
PageIndex: 1,
@@ -250,32 +255,77 @@
tableTotal: 0,
PageSize: 8,
organizeData: [],
- checkedOrg: '',
+ checkedOrgID: '',
+ checkedOrgName:"",
organizeKeyword: '',
memberEditDialogVisible: false,
toggleOrganizeDialogVisible: false,
batchImportDialogVisible: false,
fileList: [],
memberEditForm: {},
+ memberEditFormRule: {
+ Name: [{ required: true, message: '璇疯緭鍏ュ鍚�', trigger: 'change' }],
+ UserName: [{ required: true, message: '璇疯緭鍏ュ鍚�', trigger: 'change' }],
+ Sex: [{ required: true, message: '璇烽�夋嫨鎬у埆', trigger: 'change' }],
+ Tel: [{ validator: this.isPhone, trigger: 'change' }],
+ },
memberPicUrl: '',
+ showDemo: false,
batchImportTableData: [],
}
},
mounted () {
this.searchLeftTreeData();
this.getOrganizeTreeData();
- this.renderMemberTable();
+ //this.renderMemberTable();
+
},
methods: {
+ resetFilter(){
+ this.keyword = '';
+ this.gender = '';
+ this.renderMemberTable();
+ },
+ isPhone (rule, value, callback) {
+ if (!value) {
+ return callback()
+ } else if (value.trim()) {
+ var pattern = /^1[345789]\d{9}$/
+ if (pattern.test(value)) {
+ return callback()
+ }
+ return callback(new Error('杈撳叆鐨勬墜鏈哄彿閿欒'))
+ }
+ // if (value.trim()) {
+ // var pattern = /^1[345789]\d{9}$/
+ // if (pattern.test(value)) {
+ // return callback()
+ // }
+ // return callback(new Error('杈撳叆鐨勬墜鏈哄彿閿欒'))
+ // }
+ },
+ nodeContextMenu (e, data, node, comp) {
+ this.showMenu = true;
+ this.menuTop = e.pageY;
+ this.menuLeft = e.pageX;
+ },
checkOrgNode (a, b, c) {
- this.checkedOrg = a.id
+ this.checkedOrgID = a.id
+ this.checkedOrgName = a.label
+ },
+ downloadExcel(){
+ downloadFile().then(function (res) {
+ // debugger
+ console.log(res);
+ })
},
updateOrg () {
let ids = this.multipleTableSelection.map(row => {
return row.ID
});
let params = {
- DeptID: this.checkedOrg,
+ DeptID: this.checkedOrgID,
+ DeptName:this.checkedOrgName,
Users: ids.join(',')
}
updateUnit(params).then(res => {
@@ -286,6 +336,7 @@
});
this.toggleOrganizeDialogVisible = false;
this.renderMemberTable();
+ this.searchLeftTreeData()
}
})
@@ -294,36 +345,44 @@
this.multipleTableSelection = val;
},
memberSave () {
- if (this.memberEditForm.ID) {
- updateMemberInfo(this.memberEditForm).then(res => {
- if (res.success) {
- this.$notify({
- type: 'success',
- message: res.msg
- });
- this.memberEditDialogVisible = false;
- this.renderMemberTable();
- }
- })
- }else{
- addMember(this.memberEditForm).then(res=>{
- if(res.success){
- this.$notify({
- type:'success',
- message: res.msg
+ this.$refs['memberForm'].validate((valid) => {
+ if (valid) {
+ let params = Object.assign({ DeptID: this.curLeftTreeNode.id }, this.memberEditForm);
+ if (this.memberEditForm.ID) {
+ updateMemberInfo(params).then(res => {
+ if (res.success) {
+ this.$notify({
+ type: 'success',
+ message: res.msg
+ });
+ this.memberEditDialogVisible = false;
+ this.renderMemberTable();
+ this.searchLeftTreeData();
+ }
})
- this.renderMemberTable();
+ } else {
+ addMember(params).then(res => {
+ if (res.success) {
+ this.$notify({
+ type: 'success',
+ message: res.msg
+ })
+ this.renderMemberTable();
+ this.memberEditDialogVisible = false;
+ this.searchLeftTreeData();
+ }
+ })
}
- })
- }
-
+ } else {
+ return false;
+ }
+ })
},
delMember (member) {
- member.IsDel = true;
+ member.IsDel = '1';
this.memberUpdate(member);
},
editMember (member) {
- debugger
this.memberEditDialogVisible = true;
this.memberEditForm = member;
},
@@ -335,11 +394,13 @@
message: res.msg
});
this.renderMemberTable();
+ this.searchLeftTreeData();
}
})
},
checkNode (a, b, c) {
- if (a.children) {
+ if (a.hasOwnProperty('children')) {
+ this.curLeftTreeNode = a;
this.deptId = a.id;
this.renderMemberTable();
}
@@ -352,22 +413,37 @@
let _this = this;
let params = {
DeptID: this.deptId,
- keyword: this.keyword,
+ Keyword: this.keyword,
Sex: this.gender,
PageIndex: this.PageIndex,
PageSize: this.PageSize
}
getMemberList(params).then(res => {
-
_this.tableData = res.data;
+ _this.tableTotal = res.total;
})
},
uploadPic () {
},
- batchImportFiles () {
-
+ uploadDirectoryTrigger () {
+ this.$refs['directoryInput'].click();
},
+ importDirectory () {
+ let _this = this;
+ //this.$refs['directoryInput'].files //鏂囦欢澶筸ap
+ let formData = new FormData;
+ for (var file in this.$refs['directoryInput'].files) {
+ formData.append('files', this.$refs['directoryInput'].files[file])
+ }
+ //formData.append('files', this.$refs['directoryInput'].files)
+
+ uploadDirectory(formData).then(res => {
+ _this.batchImportTableData = res.data;
+ _this.renderMemberTable();
+ })
+ },
+
handleRemove () {
},
@@ -384,20 +460,15 @@
let param = new FormData();
param.append('file', params.file)
uploadMemberPic(param).then(res => {
- this.$set(this.memberEditForm,'Surface',res.data)
+ this.$set(this.memberEditForm, 'Surface', res.data)
})
},
- openMenuList (t, l, frame) {
- this.showMenu = true;
- this.menuTop = t;
- this.menuLeft = l;
- },
- closeMenuList () {
- this.showMenu = false;
- },
+
deepNodeChildren (node) {
+ var arr1 = [];
+ var arr2 = [];
if (node.ChildDept && node.ChildDept.length > 0) {
- return node.ChildDept.map(child => {
+ arr1 = node.ChildDept.map(child => {
let childObj = {};
childObj.id = child.ID;
childObj.label = child.Name;
@@ -410,8 +481,9 @@
}
return childObj;
});
- } else if (node.UserLst && node.UserLst.length > 0) {
- return node.UserLst.map(child => {
+ }
+ if (node.UserLst && node.UserLst.length > 0) {
+ arr2 = node.UserLst.map(child => {
let childObj = {};
childObj.id = child.ID;
childObj.label = child.Name;
@@ -419,6 +491,7 @@
return childObj;
});
}
+ return arr1.concat(arr2)
},
getOrganizeTreeData () {
let _this = this;
@@ -443,15 +516,24 @@
obj.Status = item.Status;
obj.children = _this.deepNodeChildren(item);
return obj
+ });
+ this.$nextTick(() => {
+ if (!Object.keys(_this.curLeftTreeNode).length) {
+ _this.curLeftTreeNode = _this.treeData[0];
+ _this.$refs['leftTreeNodes'].setCurrentNode(_this.treeData[0]);
+ } else {
+ _this.$refs['leftTreeNodes'].setCurrentNode(_this.curLeftTreeNode);
+ }
+ _this.checkNode(_this.curLeftTreeNode);
})
+
})
},
addMember () {
this.memberEditDialogVisible = true;
+ this.memberEditForm = {};
},
- dataSearch () {
- }
}
}
</script>
@@ -491,9 +573,27 @@
.el-dialog {
width: 500px;
padding: 0 30px;
+ .el-dialog__header {
+ .title {
+ display: flex;
+ align-items: flex-end;
+ justify-content: center;
+ .main-title {
+ font-size: 16px;
+ padding-right: 10px;
+ }
+ .subtitle {
+ font-size: 14px;
+ color: #666;
+ }
+ }
+ }
.el-form-item {
.el-form-item__label {
width: 100px;
+ }
+ .el-form-item__error {
+ left: 120px;
}
}
}
@@ -513,13 +613,31 @@
}
}
}
+ .batch-import-dialog {
+ .el-dialog__body {
+ padding: 14px 20px;
+ }
+ .tip {
+ text-align: left;
+ margin-bottom: 10px;
+ position: relative;
+ .tip-demo {
+ position: absolute;
+ width: 530px;
+ z-index: 1000;
+ top: -10px;
+ left: 20px;
+ }
+ }
+ }
.menuList {
background: #fff;
position: absolute;
z-index: 100;
width: 180px;
text-align: left;
- border: 1px solid #ccc;
+ border: 1px solid #ddd;
+ box-shadow: 4px 4px 3px 0px rgba(0, 0, 0, 0.1);
}
.menuList li {
line-height: 28px;
@@ -528,7 +646,7 @@
background: #fff;
}
.menuList li:hover {
- background: rgba(152, 170, 190, 0.7);
+ background: #ecf0fc;
}
.right {
padding-left: 20px;
--
Gitblit v1.8.0