From c4d9e7a20dac267c5496ad3586c5053be279a17a Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期五, 26 四月 2024 20:09:59 +0800 Subject: [PATCH] 添加action,表单组件 --- Source/ProjectWeb/src/views/base/UIContentArea.vue | 113 ++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 77 insertions(+), 36 deletions(-) diff --git a/Source/ProjectWeb/src/views/base/UIContentArea.vue b/Source/ProjectWeb/src/views/base/UIContentArea.vue index 10e9627..3978afc 100644 --- a/Source/ProjectWeb/src/views/base/UIContentArea.vue +++ b/Source/ProjectWeb/src/views/base/UIContentArea.vue @@ -22,9 +22,12 @@ </el-collapse> <div v-else class="componentVO"> <compoent-index :key="areasName+'componentVO-'+areaItem.componentVOs[0].oid" + :uiBtmType="uiBtmType" + :uiContext="uiContext" :inDialog="inDialog" :componentVO="areaItem.componentVOs[0]" :sourceData="newSourceData" + :sourceBtmType="sourceBtmType" :dataStore="dataStore" :areasName="areasName" :paramVOS="paramVOS" @@ -41,9 +44,12 @@ </template> <div class="componentVO"> <compoent-index :key="areasName+'componentVO-'+componentVO.oid" + :uiBtmType="uiBtmType" + :uiContext="uiContext" :inDialog="inDialog" :componentVO="componentVO" :sourceData="newSourceData" + :sourceBtmType="sourceBtmType" :dataStore="dataStore" :areasName="areasName" :paramVOS="paramVOS" @@ -54,9 +60,12 @@ </el-collapse> <div v-else class="componentVO"> <compoent-index :key="areasName+'componentVO-'+newAreasData[0].componentVOs[0].oid" + :uiBtmType="uiBtmType" + :uiContext="uiContext" :inDialog="inDialog" :componentVO="newAreasData[0].componentVOs[0]" :sourceData="newSourceData" + :sourceBtmType="sourceBtmType" :dataStore="dataStore" :areasName="areasName" :paramVOS="paramVOS" @@ -75,24 +84,21 @@ 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="" - type="error" - show-icon + type="info" + description="娌℃湁鍙樉绀虹殑鍐呭锛岃閫夋嫨鏉ユ簮鏁版嵁銆�"> + </el-alert> + <el-alert + v-else-if="newAreasData.length== 0" + class="alert" + :closable="false" + title="" + type="info" description="涓嶆弧瓒虫樉绀鸿〃杈惧紡鏉′欢锛屾病鏈夊彲鏄剧ず鐨勫唴瀹广��"> </el-alert> - {{newSourceData}} </div> </basic-container> </template> @@ -104,6 +110,14 @@ name: "UIContentArea", components:{compoentIndex}, props:{ + //ui涓婁笅鏂囩殑涓氬姟绫诲瀷锛堟垨閾炬帴绫诲瀷锛� + uiBtmType: { + type: String + }, + //ui涓婁笅鏂� + uiContext:{ + type: String + }, inDialog: { type: Boolean, default: false @@ -121,6 +135,10 @@ type:Object, default: {} }, + //涓婁竴鍖哄煙涓氬姟绫诲瀷 + sourceBtmType:{ + type: String + }, dataStore:{ //寮圭獥鏃舵寜閽墍灞炲尯鍩熼�変腑鏁版嵁 type:Array, @@ -135,24 +153,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){ //婧愭暟鎹槸鏍戣妭鐐� @@ -161,27 +166,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,'') - if(eval('('+newDisplayExpressionStr+')')){ - checkdisplay=true; + 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, '') + + try { + if (eval('(' + newDisplayExpressionStr + ')')) { + checkdisplay = true; + } + }catch (e) { + console.log(displayExpressionStr); } + return checkdisplay; }, tabHandleClick(tab, event) { -- Gitblit v1.9.3