From 8460d91255f5ff11a6c9a8199c313226b21f815a Mon Sep 17 00:00:00 2001 From: lxl <lixuliang_hd@126.com> Date: 星期四, 13 十月 2022 18:03:57 +0800 Subject: [PATCH] 11 --- src/views/userManage/orgManage.vue | 233 +++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 165 insertions(+), 68 deletions(-) diff --git a/src/views/userManage/orgManage.vue b/src/views/userManage/orgManage.vue index 912620e..83cde31 100644 --- a/src/views/userManage/orgManage.vue +++ b/src/views/userManage/orgManage.vue @@ -6,7 +6,7 @@ >淇濆瓨</el-button > <el-divider /> - <div class="menuTreeBox"> + <div class="depTreeBox"> <el-tree ref="tree" :props="defaultProps" @@ -46,7 +46,7 @@ <h4>璇︾粏淇℃伅</h4> </div> <div class="form_box"> - <el-form :model="itemdetail"> + <el-form :model="itemdetail" ref="itemdetail" :rules="rules"> <el-form-item label="鍚嶇О" :label-width="formLabelWidth"> <el-input v-model="itemdetail.name" autocomplete="off"></el-input> </el-form-item> @@ -87,25 +87,54 @@ <el-input v-model="itemdetail.bak" autocomplete="off"></el-input> </el-form-item> <div class="btnBox"> - <el-button type="primary" @click="updDep">淇濆瓨</el-button> - <el-button type="primary" @click="reset">鍙栨秷</el-button> + <el-button type="primary" @click="updDep('itemdetail')" + >淇濆瓨</el-button + > + <el-button type="primary" @click="reset('itemdetail')" + >鍙栨秷</el-button + > </div> </el-form> </div> </div> - <el-dialog title="鏂板瀛愮洰褰�" :visible.sync="dialogFormVisible"> + <el-dialog + width="30%" + top="5vh" + title="鏂板瀛愮洰褰�" + :visible.sync="dialogFormVisible" + > <el-form :model="ruleForm" ref="ruleForm" :rules="rules"> - <el-form-item - label="鐩綍鍚嶇О" - prop="name" - :label-width="formLabelWidth" - > + <el-form-item prop="name" label="鍚嶇О" :label-width="formLabelWidth"> <el-input v-model="ruleForm.name" autocomplete="off"></el-input> </el-form-item> - <el-form-item label="鐩綍璇存槑" :label-width="formLabelWidth"> - <el-input v-model="ruleForm.descr" autocomplete="off"></el-input> + <el-form-item label="绠�绉�" :label-width="formLabelWidth"> + <el-input v-model="ruleForm.sname" autocomplete="off"></el-input> </el-form-item> - <el-form-item label="鐩綍澶囨敞" :label-width="formLabelWidth"> + <el-form-item label="缂栫爜" :label-width="formLabelWidth"> + <el-input v-model="ruleForm.code" autocomplete="off"></el-input> + </el-form-item> + <el-form-item label="鏈烘瀯浠g爜" :label-width="formLabelWidth"> + <el-input v-model="ruleForm.uncode" autocomplete="off"></el-input> + </el-form-item> + <el-form-item label="鍦板潃" :label-width="formLabelWidth"> + <el-input v-model="ruleForm.addr" autocomplete="off"></el-input> + </el-form-item> + <el-form-item label="鑱旂郴鏂瑰紡" :label-width="formLabelWidth"> + <el-input v-model="ruleForm.contact" autocomplete="off"></el-input> + </el-form-item> + <el-form-item label="浼犵湡" :label-width="formLabelWidth"> + <el-input v-model="ruleForm.fax" autocomplete="off"></el-input> + </el-form-item> + <el-form-item label="鐢靛瓙閭欢" :label-width="formLabelWidth"> + <el-input v-model="ruleForm.email" autocomplete="off"></el-input> + </el-form-item> + <el-form-item label="閭斂缂栫爜" :label-width="formLabelWidth"> + <el-input v-model="ruleForm.post" autocomplete="off"></el-input> + </el-form-item> + <el-form-item label="缃戠珯鍦板潃" :label-width="formLabelWidth"> + <el-input v-model="ruleForm.website" autocomplete="off"></el-input> + </el-form-item> + <el-form-item label="澶囨敞" :label-width="formLabelWidth"> <el-input v-model="ruleForm.bak" autocomplete="off"></el-input> </el-form-item> </el-form> @@ -129,6 +158,8 @@ updateDepTree, updateDepTrees, queryMaxId, + insertDep, + deleteDep, } from "../../api/api"; export default { //import寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� @@ -137,8 +168,8 @@ }, data() { let validName = (rule, value, callback) => { - if (value === "") { - return callback(new Error("鐩綍鍚嶇О涓嶈兘涓虹┖")); + if (value === "" || value === null || value === undefined) { + return callback(new Error("鍚嶇О涓嶈兘涓虹┖")); } else { callback(); } @@ -166,20 +197,29 @@ uncode: "", website: "", }, - backUpData: {}, - formLabelWidth: "170px", - deleteIDs: "", + backUpData: "", + formLabelWidth: "130px", + delChildID: "", + delChildIDs: [], dialogFormVisible: false, ruleForm: { level: null, orderNum: null, pid: null, - name: "", - descr: "", + addr: "", bak: "", + code: "", + contact: "", + email: "", + fax: "", + name: "", + post: "", + sname: "", + uncode: "", + website: "", }, rules: { - name: [{ validator: validName, trigger: "blur" }], + name: [{ required: true, validator: validName, trigger: "blur" }], }, }; }, @@ -195,7 +235,10 @@ this.newData = res.result; this.depList = this.treeData(res.result); } else { - console.log("鎺ュ彛鎶ラ敊"); + this.$notify.error({ + title: res.code, + message: "鏃犳硶鑾峰彇鍗曚綅鍒楄〃", + }); } }); }, @@ -205,7 +248,7 @@ // 寰幆鎵�鏈夐」 let branchArr = cloneData.filter((child) => father.id == child.pid); // 瀵规瘮ID锛屽垎鍒笂涓嬬骇鑿滃崟锛屽苟杩斿洖鏁版嵁 branchArr.length > 0 ? (father.children = branchArr) : ""; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊� - return father.pid == 1; // 杩斿洖涓�绾ц彍鍗� + return father.pid == 0; // 杩斿洖涓�绾ц彍鍗� }); }, append(node, data) { @@ -218,31 +261,38 @@ }, resetForm(formName) { this.dialogFormVisible = false; - this.$refs[formName].resetFields(); + this.$nextTick(() => { + this.ruleForm = {}; + this.$refs[formName].resetFields(); + }); }, submitForm(formName) { this.$refs[formName].validate((valid) => { if (valid) { - this.fullscreenLoading = true; // console.log(this.ruleForm); - // insertDir(this.ruleForm) - // .then((res) => { - // setTimeout(() => { - // this.fullscreenLoading = false; - // if (res.code == 200) { - // this.$message({ - // message: "娣诲姞鎴愬姛", - // type: "success", - // }); - // } - // }, 2000); - // }) - // .catch((res) => { - // console.log(res); - // this.fullscreenLoading = false; - // }); - - // this.validCode = ""; //娓呯┖楠岃瘉鐮佽緭鍏ユ鐨勫唴瀹� + this.fullscreenLoading = true; + insertDep(this.ruleForm) + .then((res) => { + setTimeout(() => { + this.fullscreenLoading = false; + if (res.code == 200) { + this.$message({ + message: "娣诲姞鎴愬姛", + type: "success", + }); + this.itemdetail = {}; + this.ruleForm = {}; + this.dialogFormVisible = false; + this.$refs[formName].resetFields(); + } + }, 500); + }) + .catch((res) => { + this.itemdetail = {}; + this.$message.error("娣诲姞澶辫触"); + this.fullscreenLoading = false; + console.log(res); + }); } else { // alert("鐩綍鍚嶇О涓嶈兘涓虹┖"); return false; @@ -256,9 +306,7 @@ type: "warning", }) .then(() => { - // console.log(node); - // console.log(data); - + //鍏勫紵閲嶆柊鎺掑簭 const parent = node.parent; const children = parent.data.children || parent.data; children.splice(data.orderNum - 1, 1); @@ -266,18 +314,39 @@ item.orderNum = index + 1; }); - this.traverseArr(data); - console.log(this.deleteIDs); - this.$message({ - type: "success", - message: "鍒犻櫎鎴愬姛!", - }); + this.traverseArr(data); //鑾峰彇鍒犻櫎鐨勫瓙ID + this.delChildIDs.push(data.id); //瑕佸垹闄ょ殑鍏ㄩ儴ID + let delIDs = this.delChildIDs; + Promise.all([ + deleteDep({ ids: delIDs.toString() }), + updateDepTrees(children), + ]) + .then((res) => { + console.log(res); + if (res[0].code == 200 && res[1].code == 200) { + this.$message({ + type: "success", + message: "鍒犻櫎鎴愬姛!", + }); + this.itemdetail = {}; + } else if (res[0].code == 200) { + this.$message.error("鍒犻櫎鎴愬姛锛屼綅缃皟鏁村け璐�"); + } else if (res[1].code == 200) { + this.$message.error("鍒犻櫎澶辫触,浣嶇疆璋冩暣鎴愬姛"); + } else { + this.$message.error("鍒犻櫎澶辫触"); + } + }) + .catch(() => { + this.$message.error("鍒犻櫎澶辫触"); + this.itemdetail = {}; + }); + + //閲嶇疆瑕佸垹闄ょ殑瀛怚D + this.delChildIDs = []; }) .catch(() => { - this.$message({ - type: "info", - message: "宸插彇娑堝垹闄�", - }); + this.$message("宸插彇娑堝垹闄�"); }); // this.dialogMessage="鏄惁鍒犻櫎" // this.dialogFlag = 1; @@ -298,7 +367,8 @@ if (obj.children) { return obj.children.forEach((item) => { // console.log(item.id + "---" + item.name); - this.deleteIDs += "id=" + item.id + "&"; + // this.delChildID += "id=" + item.id + "&"; + this.delChildIDs.push(item.id); this.traverseArr(item); }); } @@ -353,6 +423,7 @@ arr.push(e); }); this.newData = arr; + this.sendChange(); }) .catch(() => { this.$message({ @@ -365,12 +436,11 @@ sendChange() { updateDepTrees(this.newData) .then((res) => { - // console.log(res); if (res.code == 200) { - this.$message({ - type: "success", - message: "鏇存柊鎴愬姛!", - }); + alert("璋冩暣瀹屾垚銆傝鍙婃椂鍒锋柊椤甸潰锛�"); + return; + } else { + alert("璋冩暣澶辫触锛岃閲嶈瘯锛�"); } }) .catch(() => { @@ -382,13 +452,37 @@ this.backUpData = JSON.stringify(data); this.itemdetail = JSON.parse(JSON.stringify(data)); }, - updDep() { - updateDepTree(this.itemdetail).then((res) => { - console.log(res); + updDep(formName) { + this.$nextTick(() => { + this.$refs[formName].validate((valid) => { + if (valid) { + this.fullscreenLoading = true; + updateDepTree(this.itemdetail) + .then((res) => { + setTimeout(() => { + this.fullscreenLoading = false; + if (res.code == 200) { + alert("淇敼瀹屾垚锛岃鍙婃椂鍒锋柊椤甸潰锛�"); + this.itemdetail = {}; + this.dialogFormVisible = false; + } + }, 500); + }) + .catch((res) => { + alert("淇敼澶辫触锛岃閲嶈瘯锛�"); + this.fullscreenLoading = false; + }); + } else { + return false; + } + }); }); }, reset() { - this.itemdetail = JSON.parse(this.backUpData); + this.$refs[formName].resetFields(); + if (this.backUpData != "") { + this.itemdetail = JSON.parse(this.backUpData); + } }, }, mounted() { @@ -418,7 +512,7 @@ left: 250px; top: 23px; } - .menuTreeBox { + .depTreeBox { height: 88%; width: 100%; overflow: auto; @@ -439,7 +533,7 @@ background-color: rgb(153, 153, 153); } .btnBox { - margin-left: 5px; + margin: 0 10px 0 5px; .el-button + .el-button { margin-left: 5px; } @@ -483,5 +577,8 @@ } } } + /deep/ .el-dialog__body { + padding: 0 30px 0 0; + } } </style> -- Gitblit v1.9.3