Source/ProjectWeb/src/components/actions/ViewDialog.vue
ÎļþÃû´Ó Source/ProjectWeb/src/components/actions/base/ViewDialog.vue ÐÞ¸Ä @@ -114,7 +114,7 @@ this.currentComponent = module.default; }).catch((error) => { // å¤çå¯¼å ¥å¤±è´¥çæ åµ console.error('ç»ä»¶å 载失败:', error); console.log('ç»ä»¶å 载失败:', error); }); }, dialogClose() { Source/ProjectWeb/src/components/actions/base/TabViewAction.js
@@ -4,7 +4,7 @@ import {paramLow,callPreEvent,callPostEvent,replaceFreeMarker} from './BaseAction'; import {validatenull} from "@/util/validate"; import Vue from "vue"; import ViewDialog from "@/components/actions/base/ViewDialog"; import ViewDialog from "@/components/actions/ViewDialog"; export const doAction = (options,callback) => { const paramVOS = Object.assign({ Source/ProjectWeb/src/components/dynamic-components/dynamic-button.vue
@@ -3,35 +3,35 @@ <!--è¡¨æ ¼åºç¡æé®--> <div v-if="type === 'table' || type === 'TreeTable'"> <!--topå±ç¤ºè¡¨æ ¼ä¸æ¹åºå menuå±ç¤ºè¡¨æ ¼æä½æ åºå æ å°±æ¯é»è®¤ --> <el-button v-for="item in basicButtonList.top" v-if="LocationType === 'top'" :key="item.oid" :icon="item.paramVOS.icon" <el-tooltip v-if="LocationType === 'top'" v-for="item in basicButtonList.top" :content="item.description || item.name" placement="top"> <el-button :key="item.oid" :icon="item.paramVOS.icon" :type="item.paramVOS.btnType || 'primary'" plain size="small" @click="buttonClick(item)"> {{ item.name }} </el-button> </el-tooltip> <el-button type="text" @click="handleDefaultAddChildren(scope.row)" v-if="(LocationType === 'menu' && type === 'TreeTable')">æ°å¢å级</el-button> <el-button type="text" icon="el-icon-view" size="small" plain @click="$emit('rowView',scope.row,scope.index)" v-if="LocationType === 'menu'">æ¥ç</el-button> <el-button v-for="item in basicButtonList.menu" v-if="LocationType === 'menu'" :key="item.oid" <el-tooltip v-if="LocationType === 'menu'" v-for="item in basicButtonList.menu" :content="item.description || item.name" placement="top"> <el-button :key="item.oid" :icon="item.paramVOS.icon ? item.paramVOS.icon : (item.id === 'edit' ? 'el-icon-edit' : (item.id === 'delete' ||item.id === 'del' ? 'el-icon-delete' : ''))" :type="item.paramVOS.btnType || 'text'" plain size="small" @click="buttonClick(item,scope.row)"> {{ item.name }} </el-button> </el-tooltip> <!-- è¡¨æ ¼å æé®æä½å¯¹è¯æ¡è¡¨å --> <dynamic-table-form ref="dynamicForm" :formList="formList" :title="formName" :visible.sync="visible" style="display: none"></dynamic-table-form> </div> <div v-else-if="type === 'form'"> <el-button v-for="item in basicButtonList" :key="item.oid" <el-tooltip v-for="item in basicButtonList" :content="item.description || item.name" placement="top"> <el-button :key="item.oid" :icon="item.paramVOS.icon" :type="item.paramVOS.btnType || 'primary'" plain @@ -39,10 +39,11 @@ @click="buttonClick(item)"> {{ item.name }} </el-button> </el-tooltip> </div> <div v-else-if="type === 'tree'" class="tree-buttons"> <el-button v-for="item in basicButtonList" :key="item.oid" <el-tooltip v-for="item in basicButtonList" :content="item.description || item.name" placement="top"> <el-button :key="item.oid" :icon="item.paramVOS.icon" :type="item.paramVOS.btnType || 'primary'" plain @@ -50,6 +51,7 @@ @click="buttonClick(item)"> {{ item.name }} </el-button> </el-tooltip> <el-button type="primary" plain size="small" @@ -111,8 +113,16 @@ return []; // 妿 basicColumn æªå®ä¹æè 䏿¯æ°ç»ï¼è¿å空æ°ç» } if (this.type === 'form' || this.type === 'tree') { if (this.type === 'form') { return basicColumn; }else if (this.type === 'tree') { const treeBtn = basicColumn.filter(item => { if (item.id != "refresh") { return true; } return false }); return treeBtn; } else if (this.type === 'table' || this.type === 'TreeTable') { const top = basicColumn.filter(item => { if (item.paramVOS && item.paramVOS.showLocation && item.paramVOS.showLocation !== 'menu') { Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue
@@ -112,11 +112,12 @@ } else { this.ComponentUrl = this.customClass; // ä¸åå¨ '?' æ´æ¡è·¯å¾å°±æ¯ parts } if(validatenull(this.ComponentUrl) || ['UI', 'ui'].includes(this.ComponentUrl)){ this.ComponentUrl='base/UIContentViewerInDialog'; }else { this.ComponentUrl='custom-ui/'+this.ComponentUrl; if(validatenull(this.ComponentUrl) || ['ui', 'UI', 'base','bs'].includes(this.ComponentUrl)){ this.ComponentUrl='views/base/UIContentViewerInDialog'; }else if(this.ComponentUrl.indexOf('views/')===-1){ this.ComponentUrl='views/custom-ui/'+this.ComponentUrl; } if (this.ComponentUrl=='base/UIContentViewerInDialog' && (!urlParams.type || !urlParams.context)) { this.isError = true; return; @@ -133,7 +134,7 @@ methods: { loadCompoent(){ // å¨æå¯¼å ¥ç»ä»¶ import(`@/views/${this.ComponentUrl}.vue`).then((module) => { import(`@/${this.ComponentUrl}.vue`).then((module) => { // æåå¯¼å ¥åï¼å°ç»ä»¶æ³¨åå°Vueå®ä¾ä¸ this.currentComponent = module.default; }).catch((error) => { Source/ProjectWeb/src/configDoc/UI/img.png
Source/ProjectWeb/src/configDoc/UI/img_1.png
Source/ProjectWeb/src/configDoc/UI/img_2.png
Source/ProjectWeb/src/configDoc/menu.md
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ ç³»ç»æ¨¡åé ç½® > ä¸å¡åè½æ¨¡å,å±ç¤ºå¨B/S端ç页é¢éé ç½®"B/S"项å 容 ### ç¶èåé ç½®  > å¼ä¸è½ä¸ºç©ºï¼å¯ä¸ºä»»æè±æå符 ### é ç½®UI弿èå  >1. â?âåä¸è®¾ç½®å¼ >2. â?âåä¸ºåæ°ï¼å¿ é¡»å å«typeåcontextåæ°ï¼å¯ä¸".NET"ä¸è´ >3. 妿context对åºçUI第ä¸ä¸ªåºå为æ ï¼åè¿å¿ é¡»æquerytemplateåæ°ï¼å¼ä¸ºæ 对åºçæ¥è¯¢æ¨¡æ¿ ### é ç½®èªå®ä¹ç»ä»¶èå  >1. ç´æ¥é ç½®æä»¶åï¼å¯¹åºæä»¶å¨src/views/custom-uiå ãå¯é ç½®åæ°å¨?å,åæ°å¼å¨ç»ä»¶ä¸éè¿$route.queryè·å >2. é ç½®å è·¯å¾viewsï¼å¦é ç½®æï¼âviews/custom-ui/testâæè âviews/xxxâ Source/ProjectWeb/src/configDoc/menu/img.png
Source/ProjectWeb/src/configDoc/menu/img_custom.png
Source/ProjectWeb/src/configDoc/menu/img_ui.png
Source/ProjectWeb/src/router/avue-router.js
@@ -137,14 +137,15 @@ parts='UI'; } // 妿é®å·åé¢é¨åä¸å¨ ['ui', 'UI', 'base'] ä¸ï¼åæ¯èªå®ä¹ç»ä»¶ if (!['ui', 'UI', 'base','bs'].includes(parts)) { if (!['ui', 'UI', 'base','bs'].includes(parts) && parts.indexOf('views/')==-1) { component = `views/custom-ui/${parts}`; }else if (['UI', 'ui', 'base','bs'].includes(parts)) { // 妿é®å·åé¢çäº UIãui å为UI弿 component = 'views/base/UIContentViewer'; }else{ component = `${parts}`; } // 妿é®å·åé¢çäº UIãui å为UI弿 if (['UI', 'ui'].includes(parts)) { component = 'views/base/UIContentViewer'; } let name = oMenu[propsDefault.label], icon = oMenu[propsDefault.icon], children = oMenu[propsDefault.children], Source/ProjectWeb/src/views/preview/readMD.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,42 @@ <template> <div class="md-content"> <mark-down-it-vue class="md-body" :content="htmlMD"></mark-down-it-vue> </div> </template> <script> import MarkDownItVue from "markdown-it-vue" import "markdown-it-vue/dist/markdown-it-vue.css" import {verifyNull} from "@/util/validate"; export default { name: "readMD", components: {MarkDownItVue}, data() { return { htmlMD: "", type:'' } }, created() { if (verifyNull(this.$route.query.type)) { this.$message.error("é ç½®çä¿¡æ¯é误ï¼è¯·é ç½®typeåæ°"); return false; } this.type=this.$route.query.type; axios.get(`./src/configDoc/${this.type}.md`).then((response) => { this.htmlMD = response.data; }); /*require(`@/configDoc/${this.type}.md`).then((markdown) => { debugger; this.htmlMD = markdown; }).catch((error) => { console.log('é ç½®ææ¡£è¯»å失败:', error); });*/ } } </script> <style scoped> </style>