소스 검색

多井模板编辑功能调整,井站管理绑定多井模板增加

chenwen 2 년 전
부모
커밋
35661644b2
3개의 변경된 파일92개의 추가작업 그리고 30개의 파일을 삭제
  1. 3 3
      src/components/crudtable/CrudTable.vue
  2. 67 26
      src/pages/base/MultiTabTemp.vue
  3. 22 1
      src/pages/base/OrgEdit.vue

+ 3 - 3
src/components/crudtable/CrudTable.vue

@@ -167,11 +167,11 @@
 		height:50px;
 		padding:10px 10px;
 		box-sizing: border-box;
-		background-color: #f4f4f4;
+		background-color: #f0f9ff;
 		display: flex;
 		justify-content:space-between;
-		border:1px solid #e9e9e9;
-		
+		border:1px solid #e3f1f8;
+		border-bottom:0px;
 	}
 	
 	.tab-toolbar .is-loading{

+ 67 - 26
src/pages/base/MultiTabTemp.vue

@@ -17,7 +17,7 @@
 		    <el-button type="primary" icon="Delete" @click="delHandle">删除</el-button>
 		</el-button-group>
 		
-		<el-button type="success" icon="Menu" style="margin:0px 100px;" @click="ctrDialogShow=true">设置列</el-button>
+		<el-button type="success" icon="Menu" style="margin:0px 100px;" @click="ctrDialogShow=true">选择列</el-button>
 		
 		<el-button-group>
 			<el-button type="primary" plain @click="moveclm(-1)" icon="ArrowLeftBold"/>
@@ -33,10 +33,10 @@
 		@header-dragend="headerDragHandle"
 		:cell-class-name="cellClassName"
 		:header-cell-class-name="cellClassName">
-		<el-table-column type="index" label="序号" width="60" align="center" fixed="left"/> 
-		<el-table-column prop="wellName" label="井号" width="100" align="center" fixed="left"/>
+		<el-table-column type="index" label="序号" width="60" align="center" fixed="left"  :resizable="false"/> 
+		<!-- <el-table-column prop="wellName" label="井号" width="100" align="center" fixed="left"/>
 		<el-table-column prop="time" label="时间" width="160" align="center" fixed="left"/>  
-		
+		 -->
 		<el-table-column v-for="(col, index) in tableHead"
 			:key="index"
 			:prop="col.paramCode"
@@ -50,7 +50,7 @@
 		</el-table-column>
 	</el-table>
 	
-	<el-dialog v-model="ctrDialogShow" title="选择参数" :close-on-click-modal="false">
+	<el-dialog v-model="ctrDialogShow" title="选择" :close-on-click-modal="false">
 		<el-row :gutter="20">
 			<el-col :sm="6" :md="4" v-for="(param,index) in paramTypes" :key="index">
 				<div class="dialog-item" :class="{'dialog-item-checked':param.checked}" @click="checkParamTypeHandle(index)">{{param.paramName}}<el-icon v-if="param.checked"><Select/></el-icon></div>
@@ -90,8 +90,26 @@
 		loadParamType()
 		loadTypeAll()
 	})
+	
+	const defclms=[
+		{
+			paramCode:'wellName',
+			paramName:'井名',
+			fixed:'left',
+			align:'center',
+			defclm:true
+		},
+		{
+			paramCode:'time',
+			paramName:'时间',
+			fixed:'left',
+			align:'center',
+			width:160,
+			defclm:true
+		}
+	]
 
-	const tableHead=ref([])
+	const tableHead=ref([...defclms])
 
 	
 	const fixClm=(tag)=>{
@@ -99,6 +117,7 @@
 			return
 		}
 		let {head}=getDatasetIdx(checkedClmProp.value)
+		//let head=tableHead.value[checkedHeadIndex.value]
 		head.fixed=tag
 		
 	}
@@ -135,13 +154,52 @@
 	
 	
 	const checkedClmProp=ref('')
+	const checkedHeadIndex=ref(-1)
 	
 	//选择列事件处理
 	const checkedClmHandle=(column, event)=>{
-		if(column.type=='index'||column.property=='wellName'||column.property=='time'){
+		if(column.type=='index'){
+			return
+		}
+		
+		let {head}=getDatasetIdx(column.property)
+		if(head.defclm){
 			return
 		}
 		checkedClmProp.value=column.property
+		
+		/* checkedHeadIndex.value=column.getColumnIndex()-1
+		let chkHead=tableHead.value[checkedHeadIndex.value]
+		if(chkHead.defclm){
+			return
+		}
+		checkedClmProp.value=column.property */
+		
+	}
+	
+	
+	
+	//拖动列改变宽度
+	const headerDragHandle=(newWidth, oldWidth, column)=>{
+		let tabHeadData=tableHead.value[column.getColumnIndex()-1]   //1为前面固定的1列
+		tabHeadData.width=newWidth
+	}
+	
+	//更改了备选参数的状态
+	const checkParamTypeHandle=(checkeIndex)=>{
+		let chkparam=paramTypes.value[checkeIndex]
+		chkparam.checked=!chkparam.checked
+		
+		let {idx}=getDatasetIdx(chkparam.paramCode)
+		//console.log(idx+""+chkparam.checked)
+		if(chkparam.checked&&idx==null){
+			tableHead.value.push(chkparam)
+		}
+		else if(!chkparam.checked&&idx!=null){
+			tableHead.value.splice(idx, 1)
+		}
+		
+		
 	}
 	
 	const cellClassName=({ column,rowIndex })=>{
@@ -162,23 +220,6 @@
 		})
 	}
 	
-	//拖到列改变宽度
-	const headerDragHandle=(newWidth, oldWidth, column)=>{
-		let tabHeadData=tableHead.value[column.getColumnIndex()-3]   //3为前面固定的3列
-		tabHeadData.width=newWidth
-	}
-	
-	//更改了备选参数的状态
-	const checkParamTypeHandle=(checkeIndex)=>{
-		let chk=paramTypes.value[checkeIndex].checked
-		paramTypes.value[checkeIndex].checked=!chk
-		
-		let checkedParams=paramTypes.value.filter(param=> param.checked)
-		
-		tableHead.value=[...checkedParams]
-		//synTabHead([...checkedParams])
-	}
-	
 	//选择模板后,加载明细
 	const changeTempHandle=(val)=>{
 		api.getTempDtl(val).then(resp=>{
@@ -190,9 +231,9 @@
 				let headAry=JSON.parse(resp.data.tempContent)
 				let mapping={}
 				headAry.forEach((item,index)=>{
-					mapping[item.paramCode]=item
+					mapping[item.paramCode]=true
 				})
-				paramTypes.value.forEach((item,index)=>{
+				paramTypes.value.forEach((item,index)=>{ //同步勾选参数选项
 					item.checked=mapping[item.paramCode]
 				})
 				tableHead.value=headAry

+ 22 - 1
src/pages/base/OrgEdit.vue

@@ -14,7 +14,14 @@
 				</el-col>
 				<el-col :sm="24" :md="12" :lg="8">
 					<el-form-item label="多井巡查模板">
-						<el-input v-model="formModel.multiPatrolTemp" autocomplete="off" placeholder="请选择多井巡查模板" class="edit-form-item" clearable/>
+						<el-select v-model="formModel.multiPatrolTemp" placeholder="选择多井模板">
+							<el-option
+							  v-for="item in tempbases"
+							  :key="item.tempId"
+							  :label="item.tempName"
+							  :value="item.tempId"
+							/>
+						</el-select>
 					</el-form-item>
 				</el-col>
 				<el-col :sm="24" :md="12" :lg="8">
@@ -47,6 +54,7 @@
 <script setup>
 	import {reactive,ref,toRaw,onMounted,watch} from 'vue'
 	import stationAPI from "../../api/station.js"
+	import tempAPI from '../../api/multiTabTemp.js'
 	import {ElMessageBox,ElMessage} from 'element-plus'
 	import utils from "../../utils/utils.js"
 	import {useHomeStore} from "@/store/home.js"
@@ -59,6 +67,8 @@
 	
 	const orgTreeNodes = ref([])
 	
+	const tempbases=ref([])
+	
 	const orgNodeProps = {
 		children: 'children',
 		label: 'name',
@@ -89,8 +99,19 @@
 	
 	onMounted(()=>{
 		loadOrgTree()
+		loadMultiTemps()
 	})
 	
+	const loadMultiTemps=()=>{
+		tempAPI.loadTypeAll().then(resp=>{
+			if(resp.code==0){
+				tempbases.value=resp.data
+			}
+		}).catch(error=>{
+			
+		})
+	}
+	
 	const loadOrgTree=()=>{
 		let converDef={id:'id',name:'name',superId:'superId',superName:'superName',children:'children'}
 		stationAPI.loadOrgTree().then((resp) => {