Эх сурвалжийг харах

指标计算增加生成指标时间序列

jwyu 1 жил өмнө
parent
commit
0e368f7116

+ 46 - 1
src/views/dataEntry_manage/databaseComponents/computedDialog.vue

@@ -70,6 +70,23 @@
 				添加更多参数
 			</span>
 			<div class="computed-min">
+				<div class="computed-section">
+					<div>
+						<label class="label">生成指标时间序列</label>
+						<div style="width:200px;display: inline-block;">
+							<el-cascader
+								v-model="selectTimeSeriesVal"
+								style="width:100%"
+								:options="timeSeriesOpt"
+								:props="{emitPath:false}"
+								:show-all-levels="false"
+								placeholder="请选择"
+							></el-cascader>
+						</div>
+						
+					</div>
+				</div>
+
 				<div class="computed-section">
 					<div>
 						<label class="label">空值处理
@@ -121,7 +138,7 @@
 					</el-input> -->
 					<ul class="formula-list">
 						<li style="margin-bottom: 15px;">
-							<el-input placeholder="请输入公式" v-model="formulaList[0].formula" clearable :disabled="calulateForm.view" style="width: 220px"/>
+							<el-input placeholder="请输入公式" v-model="formulaList[0].formula" clearable :disabled="calulateForm.view" style="width: 600px"/>
 							
 							<span v-if="formulaDateArr.length" class="date-section-text">{{formulaDateArr[formulaDateArr.length-1]}}(含)之后</span>
 
@@ -280,6 +297,28 @@ export default {
 
 		formulaDateArr() {
 			return this.formulaList.map(_ => _.date).filter(_ => _).sort((a,b) => new Date(a)-new Date(b))
+		},
+
+		timeSeriesOpt(){
+			const arr=[
+				{
+					label:'指定指标时间序列',
+					value:'0',
+					children:[]
+				},
+				{
+					label:'所有指标时间序列并集',
+					value:'all_edb',
+				}
+			]
+			arr[0].children=this.addList.filter(item=>item.target).map(item=>{
+				return {
+					label:`指标${item.tag}`,
+					value:item.tag
+				}
+			})
+
+			return arr
 		}
 	},
 	watch: {
@@ -381,6 +420,9 @@ export default {
 				{ label: '后值填充',value: 3 },
 				{ label: '等于0',value: 4 },
 			],
+
+			selectTimeSeriesVal:'',
+
 			formTips: {
 				'null-val': `1、查找前后35天最近值:在参与计算的日期序列上某指标无值时,该指标往前/往后找距离最近的值作为当天的值进行计算,遍历允许跨年,往前最多35天,往后最多35天<br>
 				2、不计算:只要有一个指标在某个日期没有值(即空值),则计算指标在该日期没有值 <br>
@@ -709,6 +751,9 @@ export default {
 			.computed-section {
 				display: flex;
 				margin-top: 20px;
+				.el-cascader .el-input {
+					width: 100%;
+				}
 			}
 			.label {
 				padding:10px 10px 10px 0;

+ 9 - 2
src/views/dataEntry_manage/databaseComponents/operationDialog.vue

@@ -106,7 +106,7 @@
 						ref="form"
 						label-position="right"
 						inline
-						label-width="80px"
+						label-width="100px"
 						:model="formData"
 						:rules="formRules"
 						:disabled="operationForm.view"
@@ -226,6 +226,12 @@
 								<el-option key="平均值" label="平均值" value="平均值"/>
 							</el-select>
 						</el-form-item>
+						<el-form-item label="最新值处理" prop="new_value" v-if="type===62">
+							<el-select v-model="formData.new_value" placeholder="请选择" style="width: 340px">
+								<el-option label="默认" value=""></el-option>
+								<el-option label="均值填充" value="均值填充"></el-option> 
+							</el-select>
+						</el-form-item>
 					</el-form>
 				</div>
 			</div>
@@ -403,7 +409,8 @@ export default {
 				moveUnit: '天',
 				moveVal: '',
 				calendar_type: '公历',
-				value_type: '期末值'
+				value_type: '期末值',
+				new_value:'',
 			},
 			formRules,
 			unitArr,

+ 11 - 2
src/views/dataEntry_manage/databaseList.vue

@@ -65,6 +65,13 @@
 			<!-- <target-tree /> -->
 			<div class="main-left left" id="left" v-show="isMainLeftShow">
 				<div class="tree-cont">
+					<div style="padding-bottom:20px;padding-right:20px;display:flex;justify-content:space-between">
+						<span>目录</span>
+						<el-checkbox 
+							v-model="IsOnlyMe"
+							@change="onlyMeHandler"
+						>只看我的</el-checkbox>
+					</div>
 					<div class="target_tree">
 					<el-tree
 						ref="menuTree"
@@ -580,6 +587,7 @@ export default {
 	},
 	data() {
 		return {
+			IsOnlyMe:false,//只看我的
 			showData: false,
 			search_txt: '', //搜索词
 			searchOptions:[],//搜索到的筛选列表
@@ -846,7 +854,7 @@ export default {
 		/* 获取树分类数据 */
 		getTreeData(params) {
 			
-			dataBaseInterface.targetCatalog({ParentId:0}).then(res=>{
+			dataBaseInterface.targetCatalog({IsOnlyMe:this.IsOnlyMe,ParentId:0}).then(res=>{
 				if(res.Ret===200){
 					const arr=res.Data.AllNodes || []
 					this.treeData=arr.map(item=>{
@@ -957,6 +965,7 @@ export default {
 				PageSize:this.PageSize,
 				CurrentIndex:this.CurrentIndex,
 				ClassifyId:this.select_classifyId,
+				IsOnlyMe:this.IsOnlyMe
 			}).then(res=>{
 				if(res.Ret!==200) return
 				if(res.Data){
@@ -2073,7 +2082,7 @@ export default {
 			}
 			.target_tree {
 				color: #333;
-				height: calc(100vh - 350px);
+				height: calc(100vh - 400px); 
 				overflow: auto;
 				.label-input .el-input__inner {
 					height: 25px;