| | |
| | | col.display=false |
| | | } |
| | | } |
| | | if (col.type === "select") { |
| | | if(col.data && col.data.length>0){ |
| | | if (col.type === "select" || col.type==='radio' || col.type==='checkbox') { |
| | | if (col.data && col.data.length > 0) { |
| | | col.dicData = col.data.map((d) => { |
| | | return { |
| | | label: d.key, |
| | | key: d.value, |
| | | value: d.value, |
| | | attributes:d.attributes |
| | | attributes: d.attributes |
| | | }; |
| | | }); |
| | | }else if(!validatenull(col.dictCode)) { |
| | | } else if (!validatenull(col.dictCode)) { |
| | | getDicts(col.dictCode).then((res) => { |
| | | if (res.data.success){ |
| | | if(res.data.data && res.data.obj == null){ |
| | | if (res.data.success) { |
| | | if (res.data.data && res.data.obj == null) { |
| | | res.data.obj = res.data.data |
| | | } |
| | | const dic = res.data.obj; |
| | |
| | | label: d.value, |
| | | key: d.key, |
| | | value: d.key, |
| | | attributes:d.attributes |
| | | attributes: d.attributes |
| | | }; |
| | | }); |
| | | } |
| | | }); |
| | | } else { |
| | | col.dicData = []; |
| | | } |
| | | } |
| | | if (col.type==='refer') { |
| | |
| | | } |
| | | callPreEvent(options, doBefore, function (options) { |
| | | doEdit(options, function (type,formData) { |
| | | callPostEvent(options, doAfter,type, callback); |
| | | callPostEvent(options, doAfter,callback,type); |
| | | }); |
| | | }); |
| | | }; |
| | |
| | | } |
| | | callPreEvent(options, doBefore, function (options) { |
| | | doRev(options, function (formData) { |
| | | callPostEvent(options, doAfter,'rev', callback); |
| | | callPostEvent(options, doAfter,callback,'rev'); |
| | | }); |
| | | }); |
| | | }; |
| | |
| | | |
| | | callPreEvent(options, doBefore, function (options) { |
| | | showStartWindow(options, function () { |
| | | callPostEvent(options, doAfter, callback,type); |
| | | callPostEvent(options, doAfter, callback,'startwork'); |
| | | }); |
| | | }); |
| | | }; |
| | |
| | | /** |
| | | * æé®å¤ç 页é¢å±ç¤ºä¸ºtabéé¡¹å¡ |
| | | * æé®å¤ç å¼¹çªå±ç¤ºè¯¦æ
|
| | | */ |
| | | import {paramLow,callPreEvent,callPostEvent,replaceFreeMarker} from '../BaseAction'; |
| | | import {validatenull} from "@/util/validate"; |
| | | import Vue from "vue"; |
| | | import ViewDialog from "@/components/actions/base/ViewDialog"; |
| | | import ViewTab from "@/views/base/ViewTab"; |
| | | import router from "@/router/router" |
| | | import store from "@/store/index" |
| | | |
| | | export const doAction = (options,callback) => { |
| | | const paramVOS = Object.assign({ |
| | |
| | | Vue.prototype.$message.error("ä»
è½éæ©ä¸æ¡æ°æ®æ¥æä½"); |
| | | return false; |
| | | } |
| | | |
| | | callPreEvent(options, doBefore, function (options) { |
| | | doView(options, function (type,formData) { |
| | | callPostEvent(options, doAfter,type, callback); |
| | |
| | | name="æ¥çã"+replaceFreeMarker(paramVOS.showname,options.dataStore,options.sourceData)+"ã" |
| | | } |
| | | paramVOS.title=name; |
| | | const dialogConstructor = Vue.extend(ViewDialog); |
| | | let instance = new dialogConstructor(); |
| | | instance.sourceData = options.sourceData; |
| | | instance.dataStore = options.dataStore; |
| | | instance.paramVOS = paramVOS |
| | | |
| | | instance.dialogClose = function () { |
| | | vm.visible = false; |
| | | document.body.removeChild(vm.$el); |
| | | instance.$destroy(); |
| | | instance = null; |
| | | }; |
| | | if (callback) { |
| | | instance.saveCallback = callback; |
| | | const params= { |
| | | options:options, |
| | | paramVOS:paramVOS, |
| | | saveCallback:callback |
| | | } |
| | | let vm = instance.$mount(); |
| | | document.body.appendChild(vm.$el); |
| | | instance.visible = true; |
| | | |
| | | store.dispatch("setViewtabparams", params); |
| | | router.push({ |
| | | name: "æ¥ç详æ
", |
| | | params:params, |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * åç½®äºä»¶ |
| | | * @param options æé®çé
ç½®ä¿¡æ¯ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /** |
| | | * æé®å¤ç å¼¹çªå±ç¤ºè¯¦æ
|
| | | */ |
| | | import {paramLow,callPreEvent,callPostEvent,replaceFreeMarker} from '../BaseAction'; |
| | | import {validatenull} from "@/util/validate"; |
| | | import Vue from "vue"; |
| | | import ViewDialog from "@/components/actions/base/ViewDialog"; |
| | | |
| | | export const doAction = (options,callback) => { |
| | | const paramVOS = Object.assign({ |
| | | getdataurl: '/api/uiDataController/dataFormQuery', |
| | | getdatamethod: 'post', |
| | | url: '/api/uiDataController/editSave', |
| | | method: 'put', |
| | | uploadfileurl: 'vciFileUploadController/uploadFile' |
| | | }, options.paramVOS) |
| | | options.paramVOS = paramVOS; |
| | | |
| | | options.sourceData = options.sourceData || {}; |
| | | options.dataStore = options.dataStore || []; |
| | | if (!options.dataStore || options.dataStore.length < 1) { |
| | | Vue.prototype.$message.error("è¯·éæ©éè¦æµè§çæ°æ®"); |
| | | return false; |
| | | } |
| | | if (!paramVOS.multi && options.dataStore.length > 1) { |
| | | Vue.prototype.$message.error("ä»
è½éæ©ä¸æ¡æ°æ®æ¥æä½"); |
| | | return false; |
| | | } |
| | | callPreEvent(options, doBefore, function (options) { |
| | | doView(options, function (type,formData) { |
| | | callPostEvent(options, doAfter,type, callback); |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | /** |
| | | * æ§è¡ |
| | | * @param options æé®çé
ç½®ä¿¡æ¯ |
| | | * @param callback åè° |
| | | */ |
| | | export const doView = (options,callback)=> { |
| | | const paramVOS = options.paramVOS; |
| | | let component = 'base/UIContentViewerInDialog'; |
| | | if (!validatenull(paramVOS.customurl)) { |
| | | //èªå®ä¹js |
| | | component = `custom-ui/` + paramVOS.customurl; |
| | | }else{ |
| | | if (!paramVOS['type'] || !paramVOS['context']) { |
| | | Vue.prototype.$message.error("æé®é
ç½®ä¸æ£ç¡®"); |
| | | return false; |
| | | } |
| | | } |
| | | paramVOS.component=component; |
| | | let name="æ¥ç详æ
" |
| | | if(paramVOS.showname){ |
| | | name="æ¥çã"+replaceFreeMarker(paramVOS.showname,options.dataStore,options.sourceData)+"ã" |
| | | } |
| | | paramVOS.title=name; |
| | | const dialogConstructor = Vue.extend(ViewDialog); |
| | | let instance = new dialogConstructor(); |
| | | instance.sourceData = options.sourceData; |
| | | instance.dataStore = options.dataStore; |
| | | instance.paramVOS = paramVOS |
| | | |
| | | instance.dialogClose = function () { |
| | | vm.visible = false; |
| | | document.body.removeChild(vm.$el); |
| | | instance.$destroy(); |
| | | instance = null; |
| | | }; |
| | | if (callback) { |
| | | instance.saveCallback = callback; |
| | | } |
| | | let vm = instance.$mount(); |
| | | document.body.appendChild(vm.$el); |
| | | instance.visible = true; |
| | | } |
| | | |
| | | /** |
| | | * åç½®äºä»¶ |
| | | * @param options æé®çé
ç½®ä¿¡æ¯ |
| | | * @param callback åè° |
| | | */ |
| | | export const doBefore = (options,callback)=> { |
| | | console.log('æ§è¡æ¥çåç½®äºä»¶'); |
| | | if(callback){ |
| | | callback(options); |
| | | } |
| | | } |
| | | /** |
| | | * åç½®äºä»¶ |
| | | * @param options æé®çé
ç½®ä¿¡æ¯ |
| | | * @param callback åè° |
| | | */ |
| | | export const doAfter = (options,callback,actionType)=> { |
| | | console.log('æ§è¡æ¥çåç½®äºä»¶'); |
| | | if(callback){ |
| | | callback(actionType); |
| | | } |
| | | } |
| | |
| | | |
| | | callPreEvent(options, doBefore, function (options) { |
| | | showStartWindow(options, function () { |
| | | callPostEvent(options, doAfter, callback,type); |
| | | callPostEvent(options, doAfter, callback,'downloadfile'); |
| | | }); |
| | | }); |
| | | }; |
| | |
| | | |
| | | callPreEvent(options, doBefore, function (options) { |
| | | showStartWindow(options, function () { |
| | | callPostEvent(options, doAfter, callback,type); |
| | | callPostEvent(options, doAfter, callback,'uprevision'); |
| | | }); |
| | | }); |
| | | }; |
| | |
| | | } |
| | | callPreEvent(options, doBefore, function (options) { |
| | | showStartWindow(options, function () { |
| | | callPostEvent(options, doAfter, callback,type); |
| | | callPostEvent(options, doAfter, callback,'uploadfile'); |
| | | }); |
| | | }); |
| | | }; |
| | |
| | | |
| | | export const handlerAction=function (type,options, callback) { |
| | | const handlers = { |
| | | //æ¥ç |
| | | //æ¥çï¼tabå±ç¤ºè¯¦æ
|
| | | view: () => {import("@/components/actions/base/ViewAction").then(module => { |
| | | module.doAction(options,callback); |
| | | })}, |
| | | //æ¥çï¼å¼¹çªå±ç¤ºè¯¦æ
|
| | | viewdialog: () => {import("@/components/actions/base/ViewDialogAction").then(module => { |
| | | module.doAction(options,callback); |
| | | })}, |
| | | //å建 |
| | | add: () => {import("@/components/actions/base/AddAction").then(module => { |
| | | module.doAction(options,callback); |
| | |
| | | component: () => |
| | | import( /* webpackChunkName: "views" */ '@/views/work/process/leave/detail') |
| | | }] |
| | | }] |
| | | },{ |
| | | path: '/viewTab', |
| | | component: Layout, |
| | | redirect: '/viewTab/index', |
| | | children: [{ |
| | | path: 'index', |
| | | name: 'æ¥ç详æ
', |
| | | meta: { |
| | | i18n: 'viewTab' |
| | | }, |
| | | component: () => |
| | | import('@/views/base/ViewTab') |
| | | }] |
| | | } ] |
| | |
| | | import dict from './modules/dict' |
| | | import getters from './getters' |
| | | import flow from './modules/LifeFlow' |
| | | import { setStore } from "@/util/store.js"; |
| | | |
| | | Vue.use(Vuex) |
| | | const store = new Vuex.Store({ |
| | |
| | | flow |
| | | }, |
| | | getters, |
| | | state: { |
| | | viewtabparams:undefined, //æ¥çtab Actionåæ° |
| | | }, |
| | | mutations: { |
| | | // è§ç¨è¯¦æ
åæ° |
| | | getViewtabparams(state, obj) { |
| | | state.viewtabparams = obj; |
| | | }, |
| | | }, |
| | | actions: { |
| | | setViewtabparams({ commit }, obj){ |
| | | commit("getViewtabparams", obj); |
| | | setStore({ |
| | | name:'viewtabparams', |
| | | content:obj, |
| | | type:'session' |
| | | }); |
| | | } |
| | | } |
| | | }) |
| | | |
| | | export default store |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <!--Action æ¥çTabçå®ç°--> |
| | | <component :is="currentComponent" |
| | | ref="uiViewRef" |
| | | key="ViewTab" |
| | | :btmType="paramVOS.type" |
| | | :context="paramVOS.context" |
| | | :inDialog="false" |
| | | :canEdit="false" |
| | | actionType="view" |
| | | :sourceData="sourceData" |
| | | :dataStore="dataStore" |
| | | :paramVOS="paramVOS"></component> |
| | | </template> |
| | | |
| | | <script> |
| | | import {validatenull} from "@/util/validate"; |
| | | import { getStore } from "@/util/store.js"; |
| | | |
| | | export default { |
| | | name: "ViewTab", |
| | | components:{}, |
| | | data(){ |
| | | return { |
| | | sourceData:{}, |
| | | dataStore:[], |
| | | paramVOS:{}, |
| | | currentComponent: null, |
| | | } |
| | | }, |
| | | computed:{ |
| | | title(){ |
| | | return this.paramVOS.title || "æ¥ç详æ
" |
| | | } |
| | | }, |
| | | created() { |
| | | let config = {}; |
| | | if (!validatenull(this.$store.state.viewtabparams)) { |
| | | config = this.$store.state.viewtabparams; |
| | | } else { |
| | | config = getStore('viewtabparams'); |
| | | } |
| | | this.sourceData = config.options.sourceData; |
| | | this.dataStore = config.options.dataStore; |
| | | this.paramVOS = config.paramVOS; |
| | | }, |
| | | mounted() { |
| | | this.loadCompoent(); |
| | | }, |
| | | methods: { |
| | | loadCompoent(){ |
| | | // 卿坼å
¥ç»ä»¶ |
| | | import(`@/views/${this.paramVOS.component}.vue`).then((module) => { |
| | | // æå导å
¥åï¼å°ç»ä»¶æ³¨åå°Vueå®ä¾ä¸ |
| | | this.currentComponent = module.default; |
| | | }).catch((error) => { |
| | | // å¤ç导å
¥å¤±è´¥çæ
åµ |
| | | console.log('ç»ä»¶å 载失败:', error); |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |