From 0c38987f747be590af21e3d4c9700401c04fc347 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期二, 16 四月 2024 17:04:31 +0800
Subject: [PATCH] 显示表达式
---
Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue | 1
Source/ProjectWeb/src/views/base/UIContentArea.vue | 81 +++++++++++++++++++++++-----------------
Source/ProjectWeb/src/App.vue | 4 ++
Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue | 2
Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue | 2
5 files changed, 53 insertions(+), 37 deletions(-)
diff --git a/Source/ProjectWeb/src/App.vue b/Source/ProjectWeb/src/App.vue
index 004c618..e909b77 100644
--- a/Source/ProjectWeb/src/App.vue
+++ b/Source/ProjectWeb/src/App.vue
@@ -76,4 +76,8 @@
.el-form-item--mini.el-form-item, .el-form-item--small.el-form-item{
margin-bottom: 10px;
}
+
+.tree-buttons .el-button{
+ margin: 0 5px 5px 0;
+}
</style>
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue
index afeee51..24689e4 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue
@@ -375,3 +375,4 @@
<style scoped>
</style>
+
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
index ba90e03..43bde97 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
@@ -114,7 +114,7 @@
height: '100%',
calcHeight: 15,
indexFixed: false,
- menuFixed: 'right',
+ menuFixed: this.areasName === 'westArea' ? false : 'right',
searchMenuSpan:12,
searchShow:false,
column: [],
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue
index 120ac46..a7f9024 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue
@@ -2,7 +2,7 @@
<div class="UI-dynamic" :id="'UI-dynamic-'+areasName+componentVO.oid">
<dynamic-button v-if="componentVO.buttons && componentVO.buttons.length>0" :componentVO="componentVO"
:butttonList="componentVO.buttons" :dataStore="checkDatas"
- :sourceData="sourceData" type="tree" style="margin-bottom: 10px;"></dynamic-button>
+ :sourceData="sourceData" type="tree" style="margin-bottom: 5px;"></dynamic-button>
<el-input
placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
v-model="filterText">
diff --git a/Source/ProjectWeb/src/views/base/UIContentArea.vue b/Source/ProjectWeb/src/views/base/UIContentArea.vue
index 82f2975..d6c7056 100644
--- a/Source/ProjectWeb/src/views/base/UIContentArea.vue
+++ b/Source/ProjectWeb/src/views/base/UIContentArea.vue
@@ -84,16 +84,7 @@
description="璇ュ尯鍩熸病鏈夐厤缃樉绀虹殑鍐呭">
</el-alert>
<el-alert
- v-else-if="Object.keys(newSourceData).length === 0"
- class="alert"
- :closable="false"
- title="婧愭暟鎹负绌�"
- type="error"
- show-icon
- description="涓嶆弧瓒虫樉绀鸿〃杈惧紡鏉′欢锛屾病鏈夊彲鏄剧ず鐨勫唴瀹�">
- </el-alert>
- <el-alert
- v-else
+ v-else-if="Object.keys(newSourceData).length> 0"
class="alert"
:closable="false"
title=""
@@ -101,7 +92,6 @@
show-icon
description="涓嶆弧瓒虫樉绀鸿〃杈惧紡鏉′欢锛屾病鏈夊彲鏄剧ず鐨勫唴瀹广��">
</el-alert>
- {{newSourceData}}
</div>
</basic-container>
</template>
@@ -156,24 +146,11 @@
data(){
return{
activeName:this.areasName+'-Tab-0',
- collapseActiveNames:[this.areasName+'-collapse-0']
+ collapseActiveNames:[this.areasName+'-collapse-0'],
+ newAreasData:[]
}
},
computed:{
- newAreasData(){
- let newAreasData = [];
- this.areasData.forEach(areaData => {
- //楠岃瘉鏄惧紡琛ㄨ揪寮�
- if (!validatenull(areaData.displayExpression)) {
- if (this.checkDisplayExpression(areaData.displayExpression)) {
- newAreasData.push(areaData)
- }
- } else {
- newAreasData.push(areaData)
- }
- })
- return newAreasData;
- },
newSourceData(){
if(this.sourceData.attributes && this.sourceData.parentId!=undefined && this.sourceData.parentId !=null){
//婧愭暟鎹槸鏍戣妭鐐�
@@ -182,29 +159,63 @@
return this.sourceData;
}
},
+ watch: {
+ 'newSourceData':{
+ handler(newval) {
+ this.getNewAreasData();
+ }
+ }
+ },
created() {
-
+ this.getNewAreasData();
},
mounted() {
// console.log(this.areasData);
},
methods:{
- checkDisplayExpression(displayExpressionStr){
+ getNewAreasData(){
+ if(Object.keys(this.newSourceData).length> 0){
+ let newAreasData = [];
+ this.areasData.forEach(areaData => {
+ //楠岃瘉鏄惧紡琛ㄨ揪寮�
+ if (!validatenull(areaData.displayExpression)) {
+ if (this.checkDisplayExpression(areaData.displayExpression)) {
+ newAreasData.push(areaData)
+ }
+ } else {
+ newAreasData.push(areaData)
+ }
+ })
+ this.newAreasData = newAreasData;
+ }else {
+ this.newAreasData=this.areasData;
+ }
+ },
+ checkDisplayExpression(displayExpressionStr) {
//"${folderbusinesstype}"<>"workunit" and "${folderbusinesstype}"<>"part" and "${folderbusinesstype}"<>"Terminology" and "${folderbusinesstype}"<>"AssMaterial" and "${folderbusinesstype}"<>"resourcelib" and "${folderbusinesstype}"<>"material" and "${folderbusinesstype}"<>"machine"
// "${folderbusinesstype}"="AssMaterial" or "${folderbusinesstype}"="assmaterial"
//"${folderbusinesstype}"="material"
+ //("${btmname}"="浜у搧鍨嬪彿" and "${producttype}"<>"璇曢獙浠�") or "${btmname}"="ppart"or "${btmname}"="宸ヨ壓闆朵欢"or "${btmname}"="part"or "${btmname}"="闆朵欢"
//${folderbusinesstype}涓烘簮鏁版嵁涓殑灞炴��
- let checkdisplay=false;
+ let checkdisplay = false;
//鏇挎崲and鍜宱r
- let newDisplayExpressionStr=displayExpressionStr.replace(/"\s*and\s*"/g,'" && "').replace(/"\s*AND\s*"/g,'" && "').replace(/"\s*or\s*"/g,'" || "').replace(/"\s*OR\s*"/g,'" || "');
- newDisplayExpressionStr=newDisplayExpressionStr.replace(/"\s*<>\s*"/g,'" != "').replace(/"\s*=\s*"/g,'" == "');
- newDisplayExpressionStr=newDisplayExpressionStr.replace(/"\$\{/g,'this.newSourceData.').replace(/\}"/g,'')
+ let newDisplayExpressionStr = displayExpressionStr.replace(/"\s*and\s*"/g, '" && "').replace(/"\s*AND\s*"/g, '" && "').replace(/"\s*or\s*"/g, '" || "').replace(/"\s*OR\s*"/g, '" || "');
+ newDisplayExpressionStr = newDisplayExpressionStr.replace(/\)\s*and\s*"/g, ') && "').replace(/\)\s*AND\s*"/g, ') && "').replace(/\)\s*or\s*"/g, ') || "').replace(/\)\s*OR\s*"/g, ') || "');
+ newDisplayExpressionStr = newDisplayExpressionStr.replace(/"\s*and\s*\(/g, '" && (').replace(/"\s*AND\s*\(/g, '" && (').replace(/"\s*or\s*\(/g, '" || (').replace(/"\s*OR\s*\(/g, '" || (');
+ newDisplayExpressionStr = newDisplayExpressionStr.replace(/\)\s*and\s*\(/g, ') && (').replace(/\)\s*AND\s*\(/g, ') && (').replace(/\)\s*or\s*\(/g, ') || (').replace(/\)\s*OR\s*\(/g, ') || (');
+ //鏇挎崲绗﹀彿
+ newDisplayExpressionStr = newDisplayExpressionStr.replace(/"\s*<>\s*"/g, '" != "').replace(/"\s*=\s*"/g, '" == "');
+ newDisplayExpressionStr = newDisplayExpressionStr.replace(/"\$\{/g, 'this.newSourceData.').replace(/\}"/g, '')
- const sandbox = {};
- if(eval('('+newDisplayExpressionStr+')')){
- checkdisplay=true;
+ try {
+ if (eval('(' + newDisplayExpressionStr + ')')) {
+ checkdisplay = true;
+ }
+ }catch (e) {
+ console.log(displayExpressionStr);
}
+
return checkdisplay;
},
tabHandleClick(tab, event) {
--
Gitblit v1.9.3