Selaa lähdekoodia

井站管理,井,站更新后同步更新到侧边树

chenwen 2 vuotta sitten
vanhempi
commit
0ad5bb4c1d
5 muutettua tiedostoa jossa 88 lisäystä ja 22 poistoa
  1. 34 7
      src/components/Sidetree.vue
  2. 37 7
      src/pages/base/OrgEdit.vue
  3. 8 3
      src/pages/base/WellEdit.vue
  4. 2 1
      src/store/home.js
  5. 7 4
      vite.config.js

+ 34 - 7
src/components/Sidetree.vue

@@ -19,7 +19,8 @@
 					class="tree" 
 					v-show="systreeShow"
 					node-key="id"
-					:default-expanded-keys="['402881ea8713a7a4018713a7a47c0000']"
+					ref="systreeref"
+					
 					@node-click="selWellHandle">
 					    <template #default="{ node, data }">
 					        <span class="custom-tree-node">
@@ -56,7 +57,7 @@
 </template>
 
 <script setup>
-	import {ref,toRaw} from 'vue'
+	import {ref,toRaw,watch} from 'vue'
 	import {storeToRefs} from 'pinia'
 	import {useHomeStore} from "../store/home.js"
 	import stationAPI from "../api/station.js"
@@ -77,25 +78,51 @@
 		isLeaf:'isLeaf'
 	}
 	
+	let rootNode=null
+	
 	const loadSysTree=(node,resolve)=>{
+		//console.log(resolve)
+		if(node.level == 0){
+			rootNode=node
+		}
 		let srcNode=toRaw(node.data)
-		srcNode=srcNode==null||srcNode.length==0?null:srcNode
-		stationAPI.loadSubNodes(srcNode).then((resp) => {
-			console.log(resp.data)
+		//console.log(srcNode)
+		let {id,nodeType,typeEnd}=srcNode
+		//srcNode=srcNode==null||srcNode.length==0?null:srcNode
+		stationAPI.loadSubNodes({id,nodeType,typeEnd}).then((resp) => {
+			//console.log(resp.data)
 			if(resp.code===0&&resp.data){
 				resolve(resp.data)
 			}
 		})
 	}
 	
+	const systreeref=ref(null)
 	
-	
+	watch(
+		()=>store.refreshTreeTime,
+		(newVal,oldVal)=>{
+			let crtnode=store.currentTreeNode
+			//console.log(crtnode.superId)
+			if(crtnode&&crtnode.superId=='0'){
+				//loadSysTree(rootNode,rootNodeResolve)
+				rootNode.loaded=false
+				rootNode.expand()
+			}
+			else{
+				let pNode=systreeref.value.getNode(crtnode.superId)
+				pNode.loaded=false
+				pNode.expand()
+				
+			}
+		}
+	)
 	
 	
 	
 	
 	const selWellHandle = (nodeData, node, nodeComp,evn) =>{
-		console.log(nodeData)
+		//console.log(nodeData)
 		store.currentTreeNode=nodeData
 	}
 </script>

+ 37 - 7
src/pages/base/OrgEdit.vue

@@ -25,9 +25,9 @@
 								
 				<el-col :span="24">
 					<el-form-item label=" ">
-						<el-button type="primary" @click="saveSubmit">保存</el-button>
+						<el-button type="primary" @click="saveSubmit" v-if="isUpdateAction">保存</el-button>
 						<el-button type="success" @click="addSubmit">新增</el-button>
-						<el-button  @click="delSubmit">删除</el-button>
+						<el-button  @click="delSubmit" v-if="isUpdateAction">删除</el-button>
 					</el-form-item>
 				</el-col>
 			</el-row>
@@ -45,15 +45,18 @@
 </template>
 
 <script setup>
-	import {reactive,ref,toRaw,onMounted} from 'vue'
+	import {reactive,ref,toRaw,onMounted,watch} from 'vue'
 	import stationAPI from "../../api/station.js"
 	import {ElMessageBox,ElMessage} from 'element-plus'
 	import utils from "../../utils/utils.js"
+	import {useHomeStore} from "@/store/home.js"
 	
 	const props=defineProps({
 		orgId:String
 	})
 	
+	const store = useHomeStore()
+	
 	const orgTreeNodes = ref([])
 	
 	const orgNodeProps = {
@@ -104,6 +107,32 @@
 		});
 	}
 	
+	const isUpdateAction=ref(true)
+	const initAdd=()=>{
+		isUpdateAction.value=false
+	}
+	const initUpdate=async (id)=>{
+		isUpdateAction.value=true
+		
+		stationAPI.getOrg(id).then(resp=>{
+			if(resp.code==0){
+				let {orgId,orgName,superId,superName,displayNum,multiPatrolTemp}=resp.data
+				
+				Object.assign(formModel,{orgId,orgName,superId,superName,displayNum,multiPatrolTemp})
+			}
+		}).catch(err=>{
+			console.log('get org err:'+err)
+		})
+	}
+	
+	watch(
+			()=>props.orgId,
+			(newVal, oldVal)=>{
+				newVal?initUpdate(newVal):initAdd()
+			}
+			,{ immediate: true }
+		)
+	
 	const saveSubmit=()=>{
 		formcomp.value.validate((valid) => {
 			if(!valid){
@@ -116,7 +145,7 @@
 					return
 				}
 				ElMessage.success('操作成功')
-				
+				store.refreshTreeTime=(new Date()).getTime()
 				
 			}).catch(err=>{
 				ElMessage.error(err||'操作失败')
@@ -136,8 +165,9 @@
 					return
 				}
 				ElMessage.success('操作成功')
-				//clearForm()
-				
+				clearForm()
+				//initUpdate(resp.data)
+				store.refreshTreeTime=(new Date()).getTime()
 				
 			}).catch(err=>{
 				ElMessage.error(err||'操作失败')
@@ -166,7 +196,7 @@
 				}
 				ElMessage.success('操作成功')
 				clearForm()
-				
+				store.refreshTreeTime=(new Date()).getTime()
 				
 			}).catch(err=>{
 				ElMessage.error(err||'操作失败')

+ 8 - 3
src/pages/base/WellEdit.vue

@@ -98,12 +98,15 @@
 <script setup>
 	import {reactive,ref,toRaw,onMounted,watch,useAttrs } from 'vue'
 	import stationAPI from "../../api/station.js"
+	import {useHomeStore} from "@/store/home.js"
 	import {ElMessageBox,ElMessage} from 'element-plus'
 	
 	const props=defineProps({
 		wellId:String
 	})
 	
+	const store = useHomeStore()
+	
 	const attrs = useAttrs()
 	
 	const formModel = reactive({
@@ -218,7 +221,7 @@
 					return
 				}
 				ElMessage.success('操作成功')
-				
+				store.refreshTreeTime=(new Date()).getTime()
 				
 			}).catch(err=>{
 				ElMessage.error(err||'操作失败')
@@ -238,7 +241,9 @@
 					return
 				}
 				ElMessage.success('操作成功')
-				//clearForm()
+				clearForm()
+				//initUpdate(resp.data)
+				store.refreshTreeTime=(new Date()).getTime()
 				
 				
 			}).catch(err=>{
@@ -268,7 +273,7 @@
 				}
 				ElMessage.success('操作成功')
 				clearForm()
-				
+				store.refreshTreeTime=(new Date()).getTime()
 				
 			}).catch(err=>{
 				ElMessage.error(err||'操作失败')

+ 2 - 1
src/store/home.js

@@ -9,7 +9,8 @@ export const useHomeStore = defineStore('home', {
 	  currentMenu:null,
 	  menuTabs:[],
 	  activeTab:null,
-	  connStatus:0
+	  connStatus:0,
+	  refreshTreeTime:null   //更新side tree的时间,配合watch 实现tree的按需更新
     }
   },
   getters:{},

+ 7 - 4
vite.config.js

@@ -7,11 +7,14 @@ import vue from '@vitejs/plugin-vue'
 export default defineConfig({
   plugins: [vue()],
    // ↓路径别名,主要是这部分
-   alias: {
-    "@": resolve(__dirname, "./src")
-  },server: {
+  resolve:{
+   	alias: {
+   	  "@": resolve(__dirname, "./src")
+   	},  
+   },
+  server: {
     port: 3005, // 设置服务启动端口号
     open: true, // 设置服务启动时是否自动打开浏览器
     
-}
+	}
 })