流程清单代码
This commit is contained in:
		
							parent
							
								
									2ed7faaf25
								
							
						
					
					
						commit
						f509d4b049
					
				
							
								
								
									
										25
									
								
								com.actionsoft.apps.coe.pal.processlist/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								com.actionsoft.apps.coe.pal.processlist/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,25 @@ | ||||
| .DS_Store | ||||
| node_modules | ||||
| # awsDevParams.js | ||||
| /dist | ||||
| /lib | ||||
| # local env files | ||||
| .env.local | ||||
| .env.*.local | ||||
| 
 | ||||
| # Log files | ||||
| npm-debug.log* | ||||
| yarn-debug.log* | ||||
| yarn-error.log* | ||||
| pnpm-debug.log* | ||||
| 
 | ||||
| # Editor directories and files | ||||
| .idea | ||||
| .vscode | ||||
| *.suo | ||||
| *.ntvs* | ||||
| *.njsproj | ||||
| *.sln | ||||
| *.sw? | ||||
| 
 | ||||
| .history/* | ||||
							
								
								
									
										25
									
								
								com.actionsoft.apps.coe.pal.processlist/AWSDevParams.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								com.actionsoft.apps.coe.pal.processlist/AWSDevParams.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,25 @@ | ||||
| module.exports = { | ||||
| 	AWSPortalUrl: "http://localhost:8088/portal/",//aws平台启动地址,用于开发时获取平台静态资源,请求数据等(注意最后的/,不要删)
 | ||||
| 	AWSReleasePath: "/Users/sunlh/idea_workspace_aws6/release/", /*C:/work/workspace/release/*/  //aws的平台路径,暂时写绝对路径,用于build生成的主文件位置(注意最后的/,不要删)
 | ||||
| 	moduleTemplateInAWS: "apps/install/com.actionsoft.apps.coe.pal.processlist/template/page/main.htm", /*apps/install/_bpm.platform/template/page/console.m.dw.design.vue.htm*/ //build后生成到平台的模板位置及名称
 | ||||
| 	outputDir: "apps/install/com.actionsoft.apps.coe.pal.processlist/web/com.actionsoft.apps.coe.pal.processlist/main", /*webserver/webapps/portal/apps/_bpm.platform/dw/designer/main*/ //build后js或css生成到平台的位置
 | ||||
| 	publicPath: "../apps/com.actionsoft.apps.coe.pal.processlist/main", /*../apps/_bpm.platform/dw/designer/main*/ //build到平台后生成到模板中,引入js文件的相对平台的位置
 | ||||
| 	AWSJSAndCSSImport: [  //引入平台的js或css,在portal目录开始,开发或build通用
 | ||||
| 		/* | ||||
| 		// 示例
 | ||||
| 		{ | ||||
| 			type: "js", | ||||
| 			path: "commons/js/util/Base64.js" | ||||
| 		}, | ||||
| 		{ | ||||
| 			type: "css", | ||||
| 			path: "commons/css/font/iconfont.css" | ||||
| 		}, | ||||
| 		*/ | ||||
| 	], | ||||
| 	devUserInfo: {//开发时通过用户名及密码获取sessionId,!!前提必须需要安装并启动app:com.actionsoft.apps.getsession.app
 | ||||
| 		userid: "admin", //具有后台管理的用户名
 | ||||
| 		pwd: "admin", //密码
 | ||||
| 		deviceType: "pc", | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										24
									
								
								com.actionsoft.apps.coe.pal.processlist/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								com.actionsoft.apps.coe.pal.processlist/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | ||||
| # dataviewsetting | ||||
| 
 | ||||
| ## Project setup | ||||
| ``` | ||||
| yarn install | ||||
| ``` | ||||
| 
 | ||||
| ### Compiles and hot-reloads for development | ||||
| ``` | ||||
| yarn serve | ||||
| ``` | ||||
| 
 | ||||
| ### Compiles and minifies for production | ||||
| ``` | ||||
| yarn build | ||||
| ``` | ||||
| 
 | ||||
| ### Lints and fixes files | ||||
| ``` | ||||
| yarn lint | ||||
| ``` | ||||
| 
 | ||||
| ### Customize configuration | ||||
| See [Configuration Reference](https://cli.vuejs.org/config/). | ||||
							
								
								
									
										10
									
								
								com.actionsoft.apps.coe.pal.processlist/babel.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								com.actionsoft.apps.coe.pal.processlist/babel.config.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | ||||
| module.exports = { | ||||
|   presets: [ | ||||
|     [ | ||||
|       '@vue/app', | ||||
|       { | ||||
|         useBuiltIns: 'entry' | ||||
|       } | ||||
|     ] | ||||
|   ] | ||||
| } | ||||
							
								
								
									
										51
									
								
								com.actionsoft.apps.coe.pal.processlist/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								com.actionsoft.apps.coe.pal.processlist/package.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,51 @@ | ||||
| { | ||||
|   "name": "com.actionsoft.apps.coe.pal.processlist", | ||||
|   "version": "0.1.0", | ||||
|   "private": true, | ||||
|   "scripts": { | ||||
|     "serve": "vue-cli-service serve", | ||||
|     "build": "vue-cli-service build", | ||||
|     "lint": "vue-cli-service lint" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "awsui-vue": "^1.0.0", | ||||
|     "axios": "^0.21.0", | ||||
|     "babel-polyfill": "^6.26.0", | ||||
|     "core-js": "^3.8.0", | ||||
|     "element-ui": "^2.14.1", | ||||
|     "vue": "^2.6.12", | ||||
|     "vue-router": "^3.4.9", | ||||
|     "vuedraggable": "^2.24.3", | ||||
|     "vuex": "^3.6.0" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@vue/cli-plugin-babel": "~4.4.0", | ||||
|     "@vue/cli-plugin-eslint": "~4.4.0", | ||||
|     "@vue/cli-plugin-router": "~4.4.0", | ||||
|     "@vue/cli-plugin-vuex": "~4.4.0", | ||||
|     "@vue/cli-service": "~4.4.0", | ||||
|     "babel-eslint": "^10.1.0", | ||||
|     "eslint": "^7.14.0", | ||||
|     "eslint-plugin-vue": "^7.1.0", | ||||
|     "vue-template-compiler": "^2.6.12" | ||||
|   }, | ||||
|   "eslintConfig": { | ||||
|     "root": true, | ||||
|     "env": { | ||||
|       "node": true | ||||
|     }, | ||||
|     "extends": [ | ||||
|       "plugin:vue/essential", | ||||
|       "eslint:recommended" | ||||
|     ], | ||||
|     "parserOptions": { | ||||
|       "parser": "babel-eslint" | ||||
|     }, | ||||
|     "rules": {} | ||||
|   }, | ||||
|   "browserslist": [ | ||||
|     "> 1%", | ||||
|     "last 2 versions", | ||||
|     "not dead" | ||||
|   ] | ||||
| } | ||||
							
								
								
									
										
											BIN
										
									
								
								com.actionsoft.apps.coe.pal.processlist/public/favicon.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								com.actionsoft.apps.coe.pal.processlist/public/favicon.ico
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 4.2 KiB | 
							
								
								
									
										56
									
								
								com.actionsoft.apps.coe.pal.processlist/public/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								com.actionsoft.apps.coe.pal.processlist/public/index.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,56 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
|   <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <meta http-equiv="X-UA-Compatible" content="IE=edge"> | ||||
|     <meta name="viewport" content="width=device-width,initial-scale=1.0"> | ||||
|     <link rel="icon" href="<%= BASE_URL %>favicon.ico"> | ||||
|     <title><%= htmlWebpackPlugin.options.title %></title> | ||||
|     <%= htmlWebpackPlugin.options.AWSJSAndCSSImport %> | ||||
|     <!-- | ||||
|       其它的js或css引用方式示例(<%= htmlWebpackPlugin.options.awsjsandcsspath%>) | ||||
|       <link rel="stylesheet" type="text/css" href="<%= htmlWebpackPlugin.options.awsjsandcsspath%>apps/_bpm.platform/css/model/console.m.dw.design.css"/> | ||||
|     --> | ||||
|     <script> | ||||
|       const settingParam = <%= htmlWebpackPlugin.options.settingParam %>; | ||||
|       const axiosBaseUrl = "<%= htmlWebpackPlugin.options.axiosBaseUrl %>"; | ||||
|       const production = <%= htmlWebpackPlugin.options.isproduction %>; | ||||
|     </script> | ||||
|   <% if(!htmlWebpackPlugin.options.isproduction) {%> | ||||
|     <script> | ||||
|       const devUserInfo = <%= JSON.stringify(htmlWebpackPlugin.options.devUserInfo) %>; | ||||
|     </script> | ||||
|   <%  }%> | ||||
|       <script> | ||||
|           <%if (process.env.NODE_ENV === "development") {%> | ||||
|               var wsId = '4645328c-d20e-4a3c-bcb0-4518c9abdd93'; | ||||
|               var levelSelect = [{ | ||||
|                   value: 1, | ||||
|                   label: '一级流程' | ||||
|               }, { | ||||
|                   value: 2, | ||||
|                   label: '二级流程' | ||||
|               }, { | ||||
|                   value: 3, | ||||
|                   label: '三级流程' | ||||
|               }, { | ||||
|                   value: 4, | ||||
|                   label: '四级流程' | ||||
|               }, { | ||||
|                   value: 5, | ||||
|                   label: '五级流程' | ||||
|               }]; | ||||
|               var defaultSelectVal = [1,2,3]; | ||||
|               var wHref = "http://localhost:8088/portal/r/w"; | ||||
|           <%}else {%> | ||||
|               var wsId = "<#wsId>"; | ||||
|               var levelSelect = <#levelSelect>; | ||||
|               var defaultSelectVal = <#defaultSelectVal>; | ||||
|               var wHref = "./w"; | ||||
|           <%}%> | ||||
|       </script> | ||||
|   </head> | ||||
|   <body style="margin:0;"> | ||||
|     <div id="app"></div> | ||||
|   </body> | ||||
| </html> | ||||
							
								
								
									
										15
									
								
								com.actionsoft.apps.coe.pal.processlist/src/App.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								com.actionsoft.apps.coe.pal.processlist/src/App.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | ||||
| <template> | ||||
|   <div id="app"> | ||||
|     <router-view /> | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <style> | ||||
| #app { | ||||
|   font-family: Avenir, Helvetica, Arial, sans-serif; | ||||
|   -webkit-font-smoothing: antialiased; | ||||
|   -moz-osx-font-smoothing: grayscale; | ||||
|   text-align: center; | ||||
|   color: #2c3e50; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										75
									
								
								com.actionsoft.apps.coe.pal.processlist/src/api/commonFun.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								com.actionsoft.apps.coe.pal.processlist/src/api/commonFun.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,75 @@ | ||||
| // 通用js方法文件
 | ||||
| 
 | ||||
| /** | ||||
|  * 打开一个新的窗口,post请求, | ||||
|  * @param id id 唯一值,body中创建请求表单的id | ||||
|  * @param sid sessionId | ||||
|  * @param cmd 请求cmd | ||||
|  * @param params 参数列表{param1 : value1,param2 : value2} | ||||
|  * @param target 不给定则默认_blank新窗口 | ||||
|  */ | ||||
| const newPageWin = function (id, sid, cmd, params, target) { | ||||
|   if (!params) { | ||||
|     params = {}; | ||||
|   } | ||||
|   params.cmd = cmd; | ||||
|   params.sid = sid; | ||||
|   newWin(id, wHref, params, target); | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * 打开一个新的窗口,post请求 | ||||
|  * @param id 唯一值,body中创建请求表单的id | ||||
|  * @param url 例如 ./w,./jd | ||||
|  * @param params 这个{param1 : value1,param2 : value2} | ||||
|  * @param target 打开窗口方式 _blank,_self | ||||
|  */ | ||||
| const newWin = function (id, url, params, target) { | ||||
|   // 防止反复添加
 | ||||
|   var dom = document.getElementById(id); | ||||
|   if(dom) { | ||||
|     document.body.removeChild(dom); | ||||
|   } | ||||
|   var temp_form = document.createElement("form"); | ||||
|   temp_form.action = url; | ||||
|   temp_form.target = target == undefined ? "_blank" : target; | ||||
|   temp_form.method = "get"; | ||||
|   temp_form.style.display = "none"; | ||||
|   for (var x in params) { | ||||
|     var opt = document.createElement("textarea"); | ||||
|     opt.name = x; | ||||
|     opt.value = params[x]; | ||||
|     temp_form.appendChild(opt); | ||||
|   } | ||||
|   temp_form.setAttribute('id', id); | ||||
|   document.body.appendChild(temp_form); | ||||
|   temp_form.submit(); | ||||
| } | ||||
| 
 | ||||
| // 打开流程模型文件
 | ||||
| const openDesigner = function(teamId, id, sid) { | ||||
|   newPageWin('palDesigner', sid, 'com.actionsoft.apps.coe.pal_pl_repository_designer', {uuid: id, teamId: teamId}); | ||||
| } | ||||
| 
 | ||||
| // 退出pal
 | ||||
| const logout = function(sid) { | ||||
|   window.location.replace("./w?sid=" + sid + "&cmd=com.actionsoft.apps.coe.pal_user_logout"); | ||||
| } | ||||
| 
 | ||||
| // 类jquery方法
 | ||||
| const closest = function(node, targetNodeName) {// 类似jquery closest函数,获得匹配选择器的第一个祖先元素,从当前元素开始沿 DOM 树向上
 | ||||
|   let curr = node; | ||||
|   while (curr.nodeName != targetNodeName && curr.nodeName != 'BODY') { | ||||
|     curr = curr.parentNode; | ||||
|   } | ||||
|   if (curr.nodeName == targetNodeName) { | ||||
|     return curr; | ||||
|   } else { | ||||
|     return null; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| export {newWin, newPageWin, openDesigner, logout, closest} | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| After Width: | Height: | Size: 158 KiB | 
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								com.actionsoft.apps.coe.pal.processlist/src/assets/logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								com.actionsoft.apps.coe.pal.processlist/src/assets/logo.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 6.7 KiB | 
							
								
								
									
										109
									
								
								com.actionsoft.apps.coe.pal.processlist/src/awsuiAxios/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								com.actionsoft.apps.coe.pal.processlist/src/awsuiAxios/index.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,109 @@ | ||||
| import axios from 'axios' | ||||
| import store from '../store' | ||||
| // 创建axios请求实例
 | ||||
| // const request = axios.create({
 | ||||
| //     baseURL: axiosBaseUrl, 
 | ||||
| //     timeout: 1000,
 | ||||
| //     headers: {
 | ||||
| //         'Content-Type': 'application/json; charset=utf-8'
 | ||||
| //     }
 | ||||
| // })
 | ||||
| axios.defaults.baseURL = typeof axiosBaseUrl == "undefined" ? "" : axiosBaseUrl; // 设置跨域代理接口统一的前置地址
 | ||||
| axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=utf-8'; | ||||
| 
 | ||||
| // 添加请求拦截器
 | ||||
| axios.interceptors.request.use(function (request) { | ||||
|     // 在发送请求之前做些什么
 | ||||
|     if(request.method == 'post'){ | ||||
|         request.params = {}; | ||||
|     } | ||||
|     return request | ||||
| }, function (error) { | ||||
|     // 对请求错误做些什么
 | ||||
|     return Promise.reject(error) | ||||
| }) | ||||
| 
 | ||||
| // 添加响应拦截器
 | ||||
| axios.interceptors.response.use(function (response) { | ||||
|     // 只返回数据
 | ||||
|     return response.data | ||||
| }, function (error) { | ||||
|     if(error.response == null){ | ||||
|         throw error; | ||||
|     } | ||||
|     const status = error.response.status | ||||
|     if (status >= 500) { | ||||
|         alert('服务繁忙请稍后再试') | ||||
|     } else if (status >= 400) { | ||||
|         alert(error.response.data.message) | ||||
|     } | ||||
|     // 对响应错误做点什么
 | ||||
|     console.dir(error) | ||||
|     return Promise.reject(error) | ||||
| }) | ||||
| 
 | ||||
| function _toChangeData(data){ | ||||
|     let dataArray = []; | ||||
|     for(let key in data){ | ||||
|         dataArray.push(encodeURIComponent(key)+"="+encodeURIComponent(data[key])); | ||||
|     } | ||||
|     return dataArray.join("&"); | ||||
| } | ||||
| 
 | ||||
| //可能需要更改,暂时用不到
 | ||||
| const get = (params) => { | ||||
| 
 | ||||
|     return axios({ | ||||
|         method: "get", | ||||
|         url: params.url, | ||||
|         params: params.params | ||||
|     }); | ||||
| } | ||||
| 
 | ||||
| const post = (params) => { | ||||
|     let postConfig = { | ||||
|         method: "post", | ||||
|         url: params.url, | ||||
|         data: params.data | ||||
|     } | ||||
|     //从vuex中获取sessionId
 | ||||
|     postConfig.data.sid = store.state.sessionId; | ||||
|     postConfig.data = _toChangeData(postConfig.data); | ||||
|     return axios(postConfig); | ||||
| } | ||||
| 
 | ||||
| const aslp = (params) => { | ||||
|     // {
 | ||||
|     //     portalUrl : "",
 | ||||
|     //     authentication : store.state.sessionId,
 | ||||
|     //     sourceAppId : "appid",
 | ||||
|     //     aslp : "aslp://XXXX",
 | ||||
|     //     params :{
 | ||||
|     //         aa:1,
 | ||||
|     //         bb:2
 | ||||
|     //     }
 | ||||
|     // }
 | ||||
|     let datas = { | ||||
|         authentication : store.state.sessionId, | ||||
|         sourceAppId : params.sourceAppId, | ||||
|         aslp : params.aslp, | ||||
|     } | ||||
|     Object.assign(datas,params.params) | ||||
|     let postConfig = { | ||||
|         method: "post", | ||||
|         url: params.portalUrl, | ||||
|         params: datas | ||||
|     } | ||||
|     postConfig.data = _toChangeData(postConfig.data); | ||||
|     return axios(postConfig); | ||||
| } | ||||
| // const delete = (url, data) => request.delete(url, data)
 | ||||
| // const head = (url, data) => request.head(url, data)
 | ||||
| // const options = (url, data) => request.options(url, data)
 | ||||
| // const put = (url, data) => request.put(url, data)
 | ||||
| // const patch = (url, data) => request.patch(url, data)
 | ||||
| export default { | ||||
|     get, | ||||
|     post, | ||||
|     aslp | ||||
| } | ||||
							
								
								
									
										22
									
								
								com.actionsoft.apps.coe.pal.processlist/src/main.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								com.actionsoft.apps.coe.pal.processlist/src/main.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | ||||
| import Babel from 'babel-polyfill'; | ||||
| import Vue from 'vue' | ||||
| import App from './App.vue' | ||||
| import router from './router' | ||||
| import store from './store' | ||||
| // awsui-vue lib,已包含element-ui
 | ||||
| import Awsui from '../lib/awsui-vue.umd.min' | ||||
| import '../lib/awsui-vue.css' | ||||
| import '../static/common/common.css'; | ||||
| import '../static/common/theme1.css';// 主题颜色配置
 | ||||
| import './assets/iconfont/iconfont.css';// 图标
 | ||||
| 
 | ||||
| Vue.config.productionTip = false | ||||
| Vue.use(Babel) | ||||
| Vue.use(Awsui) | ||||
| new Vue({ | ||||
|   router, | ||||
|   store, | ||||
|   render: h => { | ||||
|     return h(App); | ||||
|   }, | ||||
| }).$mount('#app') | ||||
							
								
								
									
										52
									
								
								com.actionsoft.apps.coe.pal.processlist/src/router/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								com.actionsoft.apps.coe.pal.processlist/src/router/index.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,52 @@ | ||||
| import Vue from 'vue' | ||||
| import VueRouter from 'vue-router' | ||||
| import store from '../store' | ||||
| 
 | ||||
| Vue.use(VueRouter) | ||||
| 
 | ||||
| const routes = [ | ||||
|   { | ||||
|     path: '/', | ||||
|     name: 'ProcesslistHome', | ||||
|     component: () => import('../views/ProcesslistHome') | ||||
|   }, | ||||
|   { | ||||
|     path: '/devGetSession',  //开发时获取session作用
 | ||||
|     name: 'devGetSession', | ||||
|     component: () => import('../views/DevGetSession.vue') | ||||
|   } | ||||
| ] | ||||
| 
 | ||||
| const router = new VueRouter({ | ||||
|   routes | ||||
| }) | ||||
| 
 | ||||
| /** | ||||
|  * | ||||
|  * to 表示将要跳转到的组件 (目标组件) | ||||
|  * console.log(from); //(源组件)
 | ||||
|  * next(); | ||||
|  * next 是一个函数 | ||||
|  * next() 进入下一个组件的钩子函数 | ||||
|  * next(false) 阻止跳转 中断导航 | ||||
|  * next("/login") 进入指定的组件的钩子函数 | ||||
|  */ | ||||
| // 路由守卫
 | ||||
| router.beforeEach((to, from, next) => { | ||||
|   if (production === false && store.state.sessionId == null && to.path != "/devGetSession") { | ||||
|     //进入一个路由获取session,获取session后再进入主入口
 | ||||
|     next("/devGetSession"); | ||||
|   } else { | ||||
|     //跳转前设置title
 | ||||
|     //window.document.title = to.meta.title;
 | ||||
|     next(); | ||||
|   } | ||||
|   //to.matched.some(res=>{res.meta.isLogin}) 能够获取路由配置的参数
 | ||||
| 
 | ||||
| }); | ||||
| 
 | ||||
| //跳转后设置scroll为原点
 | ||||
| router.afterEach((to, from, next) => { | ||||
|   window.scrollTo(0, 0); | ||||
| }); | ||||
| export default router | ||||
							
								
								
									
										21
									
								
								com.actionsoft.apps.coe.pal.processlist/src/store/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								com.actionsoft.apps.coe.pal.processlist/src/store/index.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | ||||
| import Vue from 'vue' | ||||
| import Vuex from 'vuex' | ||||
| 
 | ||||
| Vue.use(Vuex) | ||||
| 
 | ||||
| export default new Vuex.Store({ | ||||
|   state: { | ||||
|     sessionId: settingParam.sessionId | ||||
|   }, | ||||
|   mutations: { | ||||
|     edit(state, data) { | ||||
|       for (let p in data) { | ||||
|         state[p] = data[p]; | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   actions: { | ||||
|   }, | ||||
|   modules: { | ||||
|   } | ||||
| }) | ||||
| @ -0,0 +1,41 @@ | ||||
| <!-- 获取session方法,不可删除 --> | ||||
| <template> | ||||
|   <div class="devGetSession"> | ||||
|     正在获取session | ||||
|   </div> | ||||
| </template> | ||||
| <script> | ||||
| import router from "../router/index"; | ||||
| import awsuiAxios from "../awsuiAxios/index"; | ||||
| import store from "../store/index"; | ||||
| awsuiAxios | ||||
|   .post({ | ||||
|     url: "jd", | ||||
|     data: { | ||||
|       userid: devUserInfo.userid, | ||||
|       pwd: devUserInfo.pwd, | ||||
|       lang: "cn", | ||||
|       cmd: "com.actionsoft.apps.getsession.get", | ||||
|       deviceType: "pc", | ||||
|     }, | ||||
|   }) | ||||
|   .then(function (r) { | ||||
|     // let r = response.data; | ||||
|     if (r.result == "error") { | ||||
|       //$.simpleAlert(r.msg, "error"); | ||||
|       alert("获取session错误:" + r.msg); | ||||
|     } else { | ||||
|       store.commit("edit", { sessionId: r.data.sid }); | ||||
|       router.replace("/"); | ||||
|     } | ||||
|   }); | ||||
| export default { | ||||
|   data() { | ||||
|     return { | ||||
|       dwList: [], //dw的获取列表 | ||||
|     }; | ||||
|   }, | ||||
|   methods: {}, | ||||
|   mounted() {}, | ||||
| }; | ||||
| </script> | ||||
| @ -0,0 +1,534 @@ | ||||
| <template> | ||||
|   <awsui-layout> | ||||
|     <awsui-header :height=headerHeight id="header" style="margin-top: 10px;"> | ||||
|       <el-row :style="{'line-height': headerHeight}"> | ||||
|         <el-col :span="24"> | ||||
|           <div class="head-title" style="float:left;width: 150px;"> | ||||
|             <div style="padding-left:20px;text-align: left;vertical-align: middle;display: table-cell;width: 100%;height: 36px;"> | ||||
|               共有 | ||||
|               <span style="color:red;">{{totalCount}}</span> | ||||
|               支流程 | ||||
|             </div> | ||||
|           </div> | ||||
|           <div class="head-title" style="float:left;width:200px;"> | ||||
|             <awsui-select id="levelSelect" v-model="levelValue" collapse-tags placeholder="请选择流程层级" :options="levelOptions" multiple @change="searchProcessList(false)"></awsui-select> | ||||
|           </div> | ||||
|           <div class="head-title" style="float:right;width: 240px;"> | ||||
|             <awsui-button class="button-general-color button_fixed_width" type="primary" @click="exportProcessList">导出</awsui-button> | ||||
|             <el-tooltip class="item" effect="dark" content="重置筛选条件" placement="bottom-end" :hide-after="1000"> | ||||
|               <awsui-button class="button_fixed_width" @click="resetCondition">重置</awsui-button> | ||||
|             </el-tooltip> | ||||
|             <el-tooltip class="item" effect="dark" content="自定义表项" placement="bottom-end" :hide-after="1000"> | ||||
|               <i class="el-icon-circle-plus custom_table_dlg_icon" @click="customTableDlg = true"></i> | ||||
|             </el-tooltip> | ||||
|           </div> | ||||
|           <div class="head-title" style="float:right;width:220px;padding-right: 20px;"> | ||||
|             <awsui-input v-model="searchInput" size="large" prefixIcon="" placeholder="请输入流程名称进行搜索" clearable @input="searchProcessList(false)"></awsui-input> | ||||
|           </div> | ||||
|         </el-col> | ||||
|       </el-row> | ||||
|     </awsui-header> | ||||
|     <awsui-main style="padding-right: 0;padding-bottom: 0;" id="processlistMain"> | ||||
|       <el-table | ||||
|         :data="tableData" | ||||
|         style="width: 100%" | ||||
|         :height="tableHeight" | ||||
|         size="medium" | ||||
|         @filter-change="filterTableData" | ||||
|         ref="table"> | ||||
|         <!--无数据时表格显示内容,设置为空,后期可改为具体图标文字--> | ||||
|         <template slot="empty"> | ||||
|           <div v-if="dataLoaded" style="text-align: center;"> | ||||
|             <span><i class="iconfont icon-wushuju" style="color: #C2C2C2;font-size: 60px;"></i></span> | ||||
|             <div class="text-general-color" style="height: 20px; line-height: 20px;">没有查询到结果</div> | ||||
|           </div> | ||||
|           <div v-else> | ||||
|             <span>正在查询</span> | ||||
|           </div> | ||||
|         </template> | ||||
|         <template v-for="col in tableHeaderData"> | ||||
|           <el-table-column v-if="isShowColumn('selectType', col.dataType)" | ||||
|             :prop="col.prop" | ||||
|             :label="col.label" | ||||
|             :width="col.width" | ||||
|             :min-width="col.minWidth" | ||||
|             :filters="col.filters" | ||||
|             filter-placement="right-start" | ||||
|             column-key="type" | ||||
|             :key="col.key" | ||||
|             :show-overflow-tooltip="col.showOverflow" class="el-table-column-row"> | ||||
|           </el-table-column> | ||||
|           <el-table-column v-if="isShowColumn('selectStatus', col.dataType)" | ||||
|              :prop="col.prop" | ||||
|              :label="col.label" | ||||
|              :width="col.width" | ||||
|              :min-width="col.minWidth" | ||||
|              :filters="col.filters" | ||||
|              filter-placement="right-start" | ||||
|              column-key="status" | ||||
|              :key="col.key" | ||||
|              :show-overflow-tooltip="col.showOverflow" class="el-table-column-row"> | ||||
|           </el-table-column> | ||||
|           <el-table-column v-if="isShowColumn('default', col.dataType)" | ||||
|             :prop="col.prop" | ||||
|             :label="col.label" | ||||
|             :width="col.width" | ||||
|             :min-width="col.minWidth" | ||||
|             :key="col.key" | ||||
|             :show-overflow-tooltip="col.showOverflow" class="el-table-column-row"> | ||||
|           </el-table-column> | ||||
|           <!-- 流程名称单独处理 --> | ||||
|           <el-table-column v-if="isShowColumn('name', col.dataType)" | ||||
|            :prop="col.prop" | ||||
|            :label="col.label" | ||||
|            :width="col.width" | ||||
|            :min-width="col.minWidth" | ||||
|            :key="col.key" | ||||
|            :show-overflow-tooltip="col.showOverflow" class="el-table-column-row"> | ||||
|             <template slot-scope="scope"> | ||||
|               <p class="processlist-title" style="cursor: pointer;" @click="openProcessDesignerPage(scope.row)">{{scope.row.name}}<span class="processlist-title-version"> (v{{scope.row.version}})</span></p> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|         </template> | ||||
|       </el-table> | ||||
|       <div v-if="currentPage > 0" style="height:25px;line-height:25px;vertical-align: middle"> | ||||
|         <span v-if="currentPage < Math.ceil(totalCount / pageStep)" class="btn-more-data" @click="loadData">点击加载更多</span> | ||||
|         <span v-else >已经到底啦</span> | ||||
|       </div> | ||||
|     </awsui-main> | ||||
|     <awsui-sidebar | ||||
|             id="customTableDlg" | ||||
|             ref="customTableDlg" | ||||
|             title="自定义表项" | ||||
|             :visible.sync="customTableDlg" | ||||
|             size="30%" | ||||
|             :before-close="handleClose" | ||||
|             @opened="initMoreAttr"> | ||||
|       <div slot="title"> | ||||
|         <div style="display: inline-block;width: 50%;text-align: left;height: 30px;line-height: 30px;vertical-align: middle;"> | ||||
|           <span>自定义表项</span> | ||||
|         </div> | ||||
|         <div style="display: inline-block;width: 50%;text-align: right;height: 30px;line-height: 30px;"> | ||||
|           <span style="cursor: pointer;color: #4E7FF9;margin-right: 10px;" @click="initTableColumnm">重置</span> | ||||
|         </div> | ||||
| 
 | ||||
|       </div> | ||||
|       <div style="border-top: 1px solid #e9e9e9;padding: 0px;"> | ||||
|         <div id="customTableDlgHeight" style="overflow-y: auto;"> | ||||
|           <div id="customTabledlgList"> | ||||
|             <p class="draggable-title">已选</p> | ||||
|             <draggable class="list-group" :list="customTableCheckedData" group="people" @drop="draggableDrop"> | ||||
|               <div class="list-group-item custom-table-dlg-li" v-for="(element) in customTableCheckedData" :key="element.id"> | ||||
|                 <span class="custom-table-dlg-li-item"><span class="custom-table-dlg-li-item">{{ element.name }}<span class="text-second-color" style="font-size: 12px;">  ({{element.id}})</span></span></span> | ||||
|                 <i class="iconfont icon-yidongshu custom-table-dlg-li-item-icon icon-display"></i> | ||||
|               </div> | ||||
|             </draggable> | ||||
|           </div> | ||||
|           <div> | ||||
|             <p class="draggable-title" style="margin-top: 20px;">可选</p> | ||||
|             <draggable class="list-group" :list="customTableUncheckedData" group="people" @drop="draggableDrop"> | ||||
|               <div class="list-group-item custom-table-dlg-li" v-for="(element) in customTableUncheckedData" :key="element.id"> | ||||
|                 <span class="custom-table-dlg-li-item"><span class="custom-table-dlg-li-item">{{ element.name }}<span class="text-second-color" style="font-size: 12px;">  ({{element.id}})</span></span></span> | ||||
|                 <i class="iconfont icon-yidongshu custom-table-dlg-li-item-icon icon-display"></i> | ||||
|               </div> | ||||
|             </draggable> | ||||
|           </div> | ||||
|         </div> | ||||
|         <div class="custom-table-dlg-footer"> | ||||
|           <div id="drawerFooter"> | ||||
|             <awsui-button class="button-general-color button_fixed_width" type="primary" @click="saveTableColumnConfig()">保存</awsui-button> | ||||
|             <awsui-button class="button_fixed_width" @click="closeDlg">取消</awsui-button> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|     </awsui-sidebar> | ||||
|     <iframe style="display: none" id='downloadIframe' ></iframe> | ||||
|   </awsui-layout> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
|   import draggable from "vuedraggable"; | ||||
|   import awsuiAxios from "../awsuiAxios"; | ||||
|   import {openDesigner} from "../api/commonFun"; | ||||
|   let levelOptions = levelSelect; | ||||
|   let levelValue = defaultSelectVal; | ||||
|   // 配置临时记录 | ||||
|   let tempMoreAttrCheckedConfig = []; | ||||
|   let tempMoreAttrUnCheckedConfig = []; | ||||
|   let tempTableFilterObj = {}; | ||||
| 
 | ||||
|     export default { | ||||
|       name: "ProcesslistHome", | ||||
|       components: { | ||||
|         draggable | ||||
|       }, | ||||
|       data() { | ||||
|         return { | ||||
|           customTableDlg : false, | ||||
|           headerHeight : '30px', | ||||
|           tableHeight : (document.documentElement.clientHeight - 66 - 20) + 'px', | ||||
|           tableHeaderData : [], | ||||
|           searchInput : '', | ||||
|           levelOptions: levelOptions, | ||||
|           levelValue: levelValue, | ||||
|           tableData: [], | ||||
|           mouseDraggable: false, | ||||
|           // 分页 | ||||
|           totalCount : '?', | ||||
|           currentPage: 0, | ||||
|           pageStep: 0, | ||||
|           customTableCheckedData: [], | ||||
|           customTableUncheckedData: [], | ||||
|           dataLoaded: false, | ||||
|           serialNumber: 0 // 当前序号 | ||||
|         } | ||||
|       }, | ||||
|       methods : { | ||||
|         draggableDrop(ev) { | ||||
|           ev.stopPropagation(); | ||||
|           ev.preventDefault(); | ||||
|           ev.dataTransfer = ev.originalEvent.dataTransfer; | ||||
|         }, | ||||
|         resize() {// 窗口监听window.resize | ||||
|           const that = this | ||||
|           let resizeTimer = null; | ||||
|           window.onresize = () => { | ||||
|             return (() => { | ||||
|               if (resizeTimer) clearTimeout(resizeTimer); | ||||
|               resizeTimer = setTimeout(function(){ | ||||
|                 that.tableHeight = (document.documentElement.clientHeight - 66 - 20) + 'px'; | ||||
|                 that.searchProcessList(false); | ||||
|                 that.initDlgBodyHeight(); | ||||
|               } , 400); | ||||
|             })() | ||||
|           } | ||||
|         }, | ||||
|         handleClose(done) { | ||||
|           const that = this; | ||||
|           that.customTableCheckedData = JSON.parse(JSON.stringify(tempMoreAttrCheckedConfig)); | ||||
|           that.customTableUncheckedData  = JSON.parse(JSON.stringify(tempMoreAttrUnCheckedConfig)); | ||||
|           done(); | ||||
|         }, | ||||
|         closeDlg() { | ||||
|           this.handleClose(function(){}); | ||||
|           this.customTableDlg = false; | ||||
|         }, | ||||
|         scorllBottomEvent() { | ||||
|           const that = this; | ||||
|           let dom = document.querySelector(".el-table__body-wrapper"); | ||||
|           dom.addEventListener("scroll", function() { | ||||
|             const scrollDistance =dom.scrollHeight - dom.scrollTop - dom.clientHeight; | ||||
|             if(scrollDistance <=0){//等于0证明已经到底,可以请求接口 | ||||
|                | ||||
|             } | ||||
|           }) | ||||
|         }, | ||||
|         getSearchCondition(params) {// 获取条件 | ||||
|           params.data.searchInput = this.searchInput; | ||||
|           params.data.levelValue = this.levelValue.join(','); | ||||
|           params.data.tableFilter = JSON.stringify(tempTableFilterObj); | ||||
|           return params; | ||||
|         }, | ||||
|         initPageCount(updateTableColumn) {// 初始化页面总条数,页码等 | ||||
|           const that = this; | ||||
|           that.dataLoaded = false; | ||||
|           let params = { | ||||
|             url:'jd', | ||||
|             data:{ | ||||
|               cmd: 'com.actionsoft.apps.coe.pal.processlist_header_query', | ||||
|               wsId: wsId | ||||
|             } | ||||
|           }; | ||||
|           params = this.getSearchCondition(params); | ||||
|           awsuiAxios.post(params).then(function (ro) {// 查询数据总条数 | ||||
|             if (ro.result == 'ok') { | ||||
|               let roData = ro.data; | ||||
|               that.totalCount = roData.totalCount; | ||||
|               that.customTableCheckedData = roData.customTableCheckedData; | ||||
|               that.customTableUncheckedData = roData.customTableUncheckedData; | ||||
|               // 临时记录 | ||||
|               tempMoreAttrCheckedConfig = JSON.parse(JSON.stringify(roData.customTableCheckedData)); | ||||
|               tempMoreAttrUnCheckedConfig = JSON.parse(JSON.stringify(roData.customTableUncheckedData)); | ||||
|               // 宽度处理 | ||||
|               let tempHeadData = JSON.parse(JSON.stringify(roData.customTableCheckedData)); | ||||
|               // 获取屏幕宽度 | ||||
|               let dom = document.querySelector(".el-table__body-wrapper"); | ||||
|               let tableScreenWidth = dom.offsetWidth; | ||||
|               // 获取元素占用总宽度 | ||||
|               let dataHeaderWidth = 0;// 总宽度 | ||||
|               let dataHeaderSize = tempHeadData.length;// 总个数 | ||||
|               for (let i = 0; i < tempHeadData.length; i++) { | ||||
|                 dataHeaderWidth += parseInt(tempHeadData[i].width); | ||||
|               } | ||||
|               if (dataHeaderWidth < tableScreenWidth) { | ||||
|                 // 调整宽度 | ||||
|                 let blankWidth = tableScreenWidth - dataHeaderWidth;// 剩余空白 | ||||
|                 let addWidth = blankWidth / dataHeaderSize;// 每列增加宽度 | ||||
|                 if (blankWidth > 0 && addWidth > 0) { | ||||
|                   for (let i = 0; i < tempHeadData.length; i++) { | ||||
|                     tempHeadData[i].width = parseInt(tempHeadData[i].width) + addWidth + "";// 宽度增加 | ||||
|                   } | ||||
|                 } | ||||
|               } | ||||
|               for (let i = 0; i < tempHeadData.length; i++) { | ||||
|                 if (updateTableColumn) { | ||||
|                   tempHeadData[i].key = Math.random(); | ||||
|                 } else { | ||||
|                   tempHeadData[i].key = that.tableHeaderData[i].key; | ||||
|                 } | ||||
|               } | ||||
|               that.tableHeaderData = tempHeadData; | ||||
|               // that.tableHeaderData = JSON.parse(JSON.stringify(roData.customTableCheckedData)); | ||||
|               // 页码及每页计算 | ||||
|               that.currentPage = 0; | ||||
|               that.serialNumber = 0; | ||||
|               that.pageStep = Math.ceil(parseInt(that.tableHeight)/45) + 5; | ||||
|               that.loadData(); | ||||
|             } else { | ||||
|               // alert('请求响应错误'); | ||||
|               // debugger; | ||||
|             } | ||||
|           }).catch(error=>{ | ||||
|             console.log(error); | ||||
|           }) | ||||
|         }, | ||||
|         loadData() {// 数据加载 | ||||
|           const that = this; | ||||
|           if(that.currentPage < Math.ceil(that.totalCount / that.pageStep)){//当前页数小于总页数就请求 | ||||
|             let params = { | ||||
|               url:'jd', | ||||
|               data:{ | ||||
|               } | ||||
|             }; | ||||
|             params.data.wsId = wsId; | ||||
|             params.data.currentPage = that.currentPage; | ||||
|             params.data.pageStep = that.pageStep; | ||||
|             params.data.tableHead = JSON.stringify(that.tableHeaderData); | ||||
|             params.data.cmd = 'com.actionsoft.apps.coe.pal.processlist_data_query'; | ||||
|             params = this.getSearchCondition(params); | ||||
|             awsuiAxios.post(params).then(function (ro) {// 查询数据总条数 | ||||
|               if (ro.result == 'ok') { | ||||
|                 let roData = ro.data.data; | ||||
|                 for (let i = 0; i < roData.length; i++) { | ||||
|                   roData[i].no_serialNumber = ++that.serialNumber; | ||||
|                 } | ||||
|                 that.tableData = that.tableData.concat(roData); | ||||
|                 that.currentPage++;//当前页数自增 | ||||
|                 that.dataLoaded = true; | ||||
|               } | ||||
|             }).catch(error=>{ | ||||
|               console.log(error); | ||||
|             }) | ||||
|           } else { | ||||
|             that.dataLoaded = true; | ||||
|           } | ||||
|         }, | ||||
|         initMoreAttr() { | ||||
|           // 初始化高度 | ||||
|           this.initDlgBodyHeight(); | ||||
|         }, | ||||
|         initDlgBodyHeight() { | ||||
|           if (document.getElementById("customTableDlgHeight") != null) { | ||||
|             document.getElementById("customTableDlgHeight").style.height = | ||||
|               (document.documentElement.clientHeight - 80 - document.getElementById('drawerFooter').offsetHeight) + 'px';// 82是dialog头部高度,36是底部按钮高度 | ||||
|           } | ||||
|         }, | ||||
|         saveTableColumnConfig() {// 保存 | ||||
|           const that = this; | ||||
|           let params = { | ||||
|             url:'jd', | ||||
|             data:{ | ||||
|             } | ||||
|           }; | ||||
|           params.data.wsId = wsId; | ||||
|           params.data.customTableCheckedData = JSON.stringify(that.customTableCheckedData); | ||||
|           params.data.cmd = 'com.actionsoft.apps.coe.pal.processlist_config_save'; | ||||
|           params = this.getSearchCondition(params); | ||||
|           awsuiAxios.post(params).then(function (ro) {// 查询数据总条数 | ||||
|             if (ro.result == 'ok') { | ||||
|               that.closeDlg(); | ||||
|               tempTableFilterObj = {};// 清空列上的筛选项,不然表格列换位置筛选的显示有问题 | ||||
|               // 查询 | ||||
|               that.searchProcessList(true); | ||||
|             } else { | ||||
|               // alert('请求响应错误'); | ||||
|               // debugger; | ||||
|             } | ||||
|           }).catch(error=>{ | ||||
|             console.log(error); | ||||
|           }) | ||||
|         }, | ||||
|         searchProcessList(updateTablecolumn) {// 搜索查询 | ||||
|           this.$refs.table.bodyWrapper.scrollTop = 0; | ||||
|           this.tableData = []; | ||||
|           this.initPageCount(updateTablecolumn); | ||||
|         }, | ||||
|         openProcessDesignerPage(row) { | ||||
|           const palId = row.id; | ||||
|           const folder = row.folder;// 是否文件夹 | ||||
|           if (folder) { | ||||
|             this.$message({ | ||||
|               message: '不支持打开文件夹类型', | ||||
|               type: 'warning' | ||||
|             }); | ||||
|             return; | ||||
|           } | ||||
|           openDesigner('', palId, this.$store.state.sessionId); | ||||
|         }, | ||||
|         deepCloneJson(obj) { | ||||
|           return JSON.parse(JSON.stringify(obj)); | ||||
|         }, | ||||
|         resetCondition() {// 重置搜索条件 | ||||
|           this.levelValue = defaultSelectVal; | ||||
|           this.searchInput = ''; | ||||
|           this.$refs.table.clearFilter(); | ||||
|           tempTableFilterObj = {}; | ||||
|           this.searchProcessList(false); | ||||
|         }, | ||||
|         exportProcessList() {// 导出流程清单 | ||||
|           const that = this; | ||||
|           let params = { | ||||
|             url:'jd', | ||||
|             data:{ | ||||
|             } | ||||
|           }; | ||||
|           params.data.wsId = wsId; | ||||
|           params.data.cmd = 'com.actionsoft.apps.coe.pal.processlist_data_export'; | ||||
|           params = this.getSearchCondition(params); | ||||
|           awsuiAxios.post(params).then(function (ro) {// 查询数据总条数 | ||||
|             if (ro.result == 'ok') { | ||||
|               document.getElementById("downloadIframe").src=ro.msg; | ||||
|             } else { | ||||
|               // alert('请求响应错误'); | ||||
|               // debugger; | ||||
|             } | ||||
|           }).catch(error=>{ | ||||
|             console.log(error); | ||||
|           }) | ||||
|         }, | ||||
|         tableRowClassName({ row, rowIndex }) { | ||||
|           return 'table_bg_color' | ||||
|         }, | ||||
|         isShowColumn(a, b) { | ||||
|           return a == b; | ||||
|         }, | ||||
|         filterTableData(filter) { | ||||
|           if (filter.type) { | ||||
|             tempTableFilterObj.type = filter.type; | ||||
|           } else if (filter.status) { | ||||
|             tempTableFilterObj.status = filter.status; | ||||
|           } | ||||
|           // 重新搜索 | ||||
|           this.searchProcessList(false); | ||||
|         }, | ||||
|         initTableColumnm() {// 初始化表项设置 | ||||
|           const that = this; | ||||
|           that.customTableCheckedData = []; | ||||
|           that.customTableUncheckedData = []; | ||||
|           that.saveTableColumnConfig(); | ||||
|         } | ||||
|       }, | ||||
|       created() { | ||||
| 
 | ||||
|       }, | ||||
|       mounted(){ | ||||
|         if (this.currentPage == 0) { | ||||
|           this.searchProcessList(true); | ||||
|         } | ||||
|         this.resize(); | ||||
|         // this.scorllBottomEvent(); | ||||
|         // 火狐浏览器拖拽问题 | ||||
|         document.body.ondrop = function (event) { | ||||
|           event.preventDefault(); | ||||
|           event.stopPropagation(); | ||||
|         } | ||||
|       } | ||||
|     } | ||||
| </script> | ||||
| <style> | ||||
|   .el-select--medium { | ||||
|     float:left; | ||||
|   } | ||||
|   i,a,button,input,div,span{ | ||||
|     outline: none; | ||||
|   } | ||||
| </style> | ||||
| 
 | ||||
| <style scoped> | ||||
|   .grid-content { | ||||
|     border-radius: 4px; | ||||
|     min-height: 36px; | ||||
|   } | ||||
|   .custom_table_dlg_icon { | ||||
|     color: #4E7FF9; | ||||
|     font-size: 20px; | ||||
|     cursor: pointer; | ||||
|     position: relative; | ||||
|     top: 5px; | ||||
|   } | ||||
|   .custom-table-dlg-li { | ||||
|     text-align: left; | ||||
|     padding-left: 20px; | ||||
|     height: 30px; | ||||
|     line-height: 30px; | ||||
|     vertical-align: middle; | ||||
|     cursor: move; | ||||
|   } | ||||
|   .custom-table-dlg-li:hover { | ||||
|     background-color: #F5F7FA; | ||||
|   } | ||||
|   .custom-table-dlg-li-item { | ||||
|     display: inline-block; | ||||
|     width: 88%; | ||||
|   } | ||||
|   .custom-table-dlg-li-item-icon { | ||||
|     width: 10%; | ||||
|     text-align: center; | ||||
|   } | ||||
|   .icon-display{ | ||||
|     display: none; | ||||
|   } | ||||
|   .custom-table-dlg-li:hover .icon-display{ | ||||
|     display: inline-block; | ||||
|   } | ||||
|   .custom-table-dlg-footer { | ||||
|     height: 40px; | ||||
|     text-align: right; | ||||
|     padding: 10px; | ||||
|   } | ||||
|   .draggable-title { | ||||
|     text-align: left; | ||||
|     padding-left: 20px; | ||||
|     height: 30px; | ||||
|     line-height: 30px; | ||||
|     font-size: 12px; | ||||
|     color: #95A2B2; | ||||
|   } | ||||
|   .head-title { | ||||
|     display: inline-block; | ||||
|   } | ||||
|   .button_fixed_width { | ||||
|     width: 80px; | ||||
|   } | ||||
|   #customTableDlg >>> .awsui-sidebar__header { | ||||
|     padding: 10px 10px 10px 20px; | ||||
|   } | ||||
| 
 | ||||
|   #processlistMain >>> .el-table__row:hover .processlist-title { | ||||
|     color: #4E7FF9 !important; | ||||
|   } | ||||
|   #processlistMain >>> .el-table__row:hover .processlist-title-version { | ||||
|     color: #4E7FF9 !important; | ||||
|   } | ||||
|   .processlist-title-version { | ||||
|     display:inline-block; | ||||
|     -webkit-transform:scale(0.9); | ||||
|     font-size:12px;color:#AAA; | ||||
|   } | ||||
|   .btn-more-data:hover { | ||||
|     color: #4E7FF9; | ||||
|   } | ||||
|   .btn-more-data { | ||||
|     cursor: pointer; | ||||
|   } | ||||
| </style> | ||||
| @ -0,0 +1,42 @@ | ||||
| * { | ||||
|   padding: 0; | ||||
|   margin: 0; | ||||
| } | ||||
| 
 | ||||
| body { | ||||
|   color: #4a4a4a; | ||||
|   font-family: PingFangSC-Light; | ||||
| } | ||||
| 
 | ||||
| ul { | ||||
|   list-style: none; | ||||
| } | ||||
| 
 | ||||
| a { | ||||
|   text-decoration: none; | ||||
| } | ||||
| 
 | ||||
| div,span,section,i,button { | ||||
|   -webkit-tap-highlight-color: transparent; | ||||
|   outline: none; | ||||
| } | ||||
| 
 | ||||
| .radius3 { | ||||
|   -moz-border-radius: 3px 3px 3px 3px; | ||||
|   -webkit-border-radius: 3px 3px 3px 3px; | ||||
|   border-radius: 3px 3px 3px 3px; | ||||
| } | ||||
| 
 | ||||
| .tree-content-icon { | ||||
|   font-size: 13px; | ||||
| } | ||||
| .tree-content-icon-padding { | ||||
|   padding-right: 2px; | ||||
| } | ||||
| 
 | ||||
| .el-input__inner { | ||||
|   border-radius: 0px; | ||||
| } | ||||
| .el-textarea__inner { | ||||
|   border-radius: 0px; | ||||
| } | ||||
							
								
								
									
										231
									
								
								com.actionsoft.apps.coe.pal.processlist/static/common/theme1.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										231
									
								
								com.actionsoft.apps.coe.pal.processlist/static/common/theme1.css
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,231 @@ | ||||
| /*设计颜色规范*/ | ||||
| 
 | ||||
| /* | ||||
| 通用鼠标悬浮色 | ||||
| 所有悬浮状态的底色,包括下拉列表项、表格、卡片等。 | ||||
|  */ | ||||
| .general-bgcolor-hover:hover { | ||||
|   background-color: #F5F7FA !important; | ||||
| } | ||||
| .general-bgcolor-text-hover:hover { | ||||
|   background-color: #F5F7FA !important; | ||||
|   color : #4E7FF9 !important; | ||||
| } | ||||
| 
 | ||||
| /*通用分隔线*/ | ||||
| .general-dividing-line { | ||||
|   color: #F2F2F2; | ||||
| } | ||||
| 
 | ||||
| /**********************下拉菜单覆盖*************************/ | ||||
| /*下拉菜单定义悬浮颜色和悬浮字体色*/ | ||||
| .el-dropdown-menu__item:not(.is-disabled):hover{ | ||||
|   background-color: #F5F7FA !important; | ||||
|   color: #333333 !important; | ||||
| } | ||||
| 
 | ||||
| /**********************导航菜单栏颜色设置*************************/ | ||||
| .el-menu-item:hover{ | ||||
|   color: #4E7FF9; | ||||
|   background-color: #F5F7FA !important; | ||||
| } | ||||
| .el-submenu__title:hover{ | ||||
|   background-color: #F5F7FA !important; | ||||
| } | ||||
| .el-menu-item.is-active { | ||||
|   color: #4E7FF9; | ||||
|   background-color: #F5F7FA !important; | ||||
| } | ||||
| 
 | ||||
| /**********************文字*************************/ | ||||
| 
 | ||||
| /*主要字体颜色,通用字体颜色,系统普遍使用的字体颜色*/ | ||||
| .text-general-color { | ||||
|   color : #606266; | ||||
| } | ||||
| .text-general-bgcolor { | ||||
|   background-color : #606266; | ||||
| } | ||||
| 
 | ||||
| /* | ||||
| 次要字体颜色 | ||||
| 1	次要标注性信息	如,管理员 于2020年2月23日 19:30 修改 | ||||
| 2	非重要按钮	如,“取消”按钮文本 | ||||
| 3	列表表头	如,“流程清单”编号、流程名称 | ||||
|  */ | ||||
| .text-second-color { | ||||
|   color : #909399; | ||||
| } | ||||
| .text-second-bgcolor { | ||||
|   background-color : #909399; | ||||
| } | ||||
| 
 | ||||
| /*链接、可点击文本、icon颜色*/ | ||||
| .text-linker-color { | ||||
|   color : #4E7FF9; | ||||
| } | ||||
| 
 | ||||
| .text-linker-bgcolor { | ||||
|   background-color : #4E7FF9; | ||||
| } | ||||
| 
 | ||||
| /*重要文本颜色*/ | ||||
| .text-important-color { | ||||
|   color : #D9001B; | ||||
| } | ||||
| 
 | ||||
| .text-important-bgcolor { | ||||
|   background-color : #D9001B; | ||||
| } | ||||
| 
 | ||||
| /**********************表格*************************/ | ||||
| 
 | ||||
| /*表头文字颜色*/ | ||||
| .table-head-text-color { | ||||
|   color: #909399; | ||||
| } | ||||
| /*表头背景颜色*/ | ||||
| .table-head-bgcolor { | ||||
| 
 | ||||
| } | ||||
| /*表头文字颜色*/ | ||||
| .table-body-text-color { | ||||
| 
 | ||||
| } | ||||
| /*表格表体背景颜色*/ | ||||
| .table-body-bgcolor { | ||||
| 
 | ||||
| } | ||||
| /*表格表体行鼠标悬浮色*/ | ||||
| .table-body-row-bgcolor:hover { | ||||
|   background-color: #F5F7FA !important; | ||||
| } | ||||
| /*表格表体行下划线颜色*/ | ||||
| .el-table td { | ||||
|   border-bottom: 1px solid #F2F2F2; | ||||
| } | ||||
| 
 | ||||
| /*表格筛选的表头选中颜色*/ | ||||
| .el-table th>.cell.highlight { | ||||
|   color: #4E7FF9; | ||||
| } | ||||
| 
 | ||||
| /*表格筛选的表头选项筛选和重置按钮悬浮颜色*/ | ||||
| .el-table-filter__bottom button:hover { | ||||
|   color:#4E7FF9 | ||||
| } | ||||
| 
 | ||||
| /**********************按钮*************************/ | ||||
| 
 | ||||
| /*通用按钮1,例如窗口确定按钮,新建按钮等设计颜色*/ | ||||
| .button-general-color { | ||||
|   background-color: #4E7FF9 !important; | ||||
|   border-color: #4E7FF9 !important; | ||||
| } | ||||
| 
 | ||||
| .button-general-color-reverse { | ||||
|   border-color: #4E7FF9 !important; | ||||
|   color: #4E7FF9 !important; | ||||
| } | ||||
| 
 | ||||
| /*通用按钮2,例如重要操作类按钮*/ | ||||
| .button-general-color2 { | ||||
|   background-color: #D9001B !important; | ||||
|   border-color: #D9001B !important; | ||||
| } | ||||
| 
 | ||||
| .button-general-color-reverse2 { | ||||
|   border-color: #D9001B !important; | ||||
|   color: #D9001B !important; | ||||
| } | ||||
| /*通用按钮3,例如取消等灰色按钮*/ | ||||
| .button-general-color3 { | ||||
|   background-color: #909399 !important; | ||||
|   border-color: #909399 !important; | ||||
| } | ||||
| 
 | ||||
| .button-general-color-reverse3 { | ||||
|   border-color: #909399 !important; | ||||
|   color: #909399 !important; | ||||
| } | ||||
| 
 | ||||
| /********************多选框***********************/ | ||||
| .el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner { | ||||
|   background-color: #4E7FF9; | ||||
|   border-color: #4E7FF9; | ||||
| } | ||||
| .el-checkbox__input.is-checked+.el-checkbox__label { | ||||
|   color: #4E7FF9; | ||||
| } | ||||
| 
 | ||||
| /********************单选框***********************/ | ||||
| .el-radio__input.is-checked .el-radio__inner { | ||||
|   border-color: #4E7FF9; | ||||
|   background: #4E7FF9; | ||||
| } | ||||
| .el-radio__input.is-checked+.el-radio__label { | ||||
|   color: #4E7FF9; | ||||
| } | ||||
| 
 | ||||
| /********************列表***********************/ | ||||
| .li-general-hover-bgcolor:hover { | ||||
|   background-color: #F5F7FA; | ||||
| } | ||||
| .el-table__body tr.current-row>td { | ||||
|   background-color: #F5F7FA; | ||||
| } | ||||
| 
 | ||||
| /*******************加载中颜色********************/ | ||||
| .el-loading-spinner .path { | ||||
|   stroke: #4E7FF9; | ||||
| } | ||||
| .el-loading-spinner .el-loading-text { | ||||
|   color: #4E7FF9; | ||||
| } | ||||
| /******************下拉框文字选中颜色*************/ | ||||
| .el-select-dropdown__item.selected { | ||||
|   color: #4E7FF9; | ||||
| } | ||||
| .el-select-dropdown.is-multiple .el-select-dropdown__item.selected { | ||||
|   color: #4E7FF9; | ||||
| } | ||||
| 
 | ||||
| /*****************步骤条**********************/ | ||||
| .el-step__title.is-process { | ||||
|   color: #909399; | ||||
| } | ||||
| .el-step__title.is-finish { | ||||
|   color: #4E7FF9; | ||||
| } | ||||
| .el-step__head.is-process { | ||||
|   color: #909399; | ||||
|   border-color: #909399; | ||||
| } | ||||
| .el-step__head.is-finish { | ||||
|   color: #4E7FF9; | ||||
|   border-color: #4E7FF9; | ||||
| } | ||||
| 
 | ||||
| /*********************Popover 弹出框***********************/ | ||||
| .el-popover__title { | ||||
|   color : #606266; | ||||
|   font-weight: 600; | ||||
| } | ||||
| 
 | ||||
| /*********************树***********************/ | ||||
| .el-tree-node__content { | ||||
|   height: 30px; | ||||
| } | ||||
| /*树展开关闭图标大小*/ | ||||
| .el-tree-node__expand-icon { | ||||
|   font-size: 12px; | ||||
| } | ||||
| /*树展开关闭图标的padding*/ | ||||
| .el-tree-node__content>.el-tree-node__expand-icon { | ||||
|   padding: 1px; | ||||
| } | ||||
| 
 | ||||
| .el-table__empty-text { | ||||
|   font-size: 12px; | ||||
| } | ||||
| 
 | ||||
							
								
								
									
										125
									
								
								com.actionsoft.apps.coe.pal.processlist/vue.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								com.actionsoft.apps.coe.pal.processlist/vue.config.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,125 @@ | ||||
| const HtmlWebpackPlugin = require('html-webpack-plugin') | ||||
| const AWSDevParams = require('./AWSDevParams'); | ||||
| const AWSReleasePath = AWSDevParams.AWSReleasePath; | ||||
| const AWSPortalUrl = AWSDevParams.AWSPortalUrl; | ||||
| //开发时通过用户名及密码获取sessionId
 | ||||
| const devUserInfo =AWSDevParams.devUserInfo; | ||||
| const AWSproxyPath = "/AWSDEVURL/r/"; //防止跨域的地址
 | ||||
| 
 | ||||
| const moduleTemplateInAWS = AWSDevParams.moduleTemplateInAWS;//平台的模板路径
 | ||||
| const outputDir = AWSDevParams.outputDir; | ||||
| const publicPath = AWSDevParams.publicPath;//决定生成在平台的js或css的相对路径,与build配置的路径要对应
 | ||||
| 
 | ||||
| //判断是否开发
 | ||||
| const isproduction = process.env.NODE_ENV === 'production'; | ||||
| //开发时路径和build到平台路径
 | ||||
| let AWSJSAndCSSPath = isproduction ? "../" : AWSproxyPath.replace("r/",""); | ||||
| let AWSJSAndCSSImport = AWSDevParams.AWSJSAndCSSImport == null ? [] : AWSDevParams.AWSJSAndCSSImport; | ||||
| let AWSJSAndCSSImportArray = []; | ||||
| for(let k of AWSJSAndCSSImport){ | ||||
|   if(k.type == "css"){ | ||||
|     AWSJSAndCSSImportArray.push("<link type='text/css' rel='stylesheet' href='"+AWSJSAndCSSPath + k.path +"'/>"); | ||||
|   }else if(k.type == "js"){ | ||||
|     AWSJSAndCSSImportArray.push("<script type='text/javascript' src='"+AWSJSAndCSSPath + k.path + "'></script>"); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| const getAWSFileRelativePath = ()=>{ | ||||
|   let index = "./"; | ||||
|   if(isproduction){ | ||||
|     index = publicPath; | ||||
|   } | ||||
|   return index; | ||||
| } | ||||
| const getIndexPath = ()=>{ | ||||
|   let index = "index.html"; | ||||
|   if(isproduction){ | ||||
|     index = AWSReleasePath+moduleTemplateInAWS; | ||||
|   } | ||||
|   return index; | ||||
| } | ||||
| module.exports = { | ||||
|   // 基本路径 build后文件路径../apps/_bpm.platform/test2 ,开发运行时文件路径./
 | ||||
|   publicPath: getAWSFileRelativePath(), | ||||
| 
 | ||||
|   //生成入口的html文件位置
 | ||||
|   indexPath: getIndexPath(), | ||||
| 
 | ||||
|   outputDir : AWSReleasePath+outputDir, | ||||
| 
 | ||||
|   // eslint-loader 是否在保存的时候检查
 | ||||
|   lintOnSave: true, | ||||
| 
 | ||||
|   productionSourceMap: false, //打包不使用源码(false后在平台无法调试)
 | ||||
|   // use the full build with in-browser compiler?
 | ||||
|   // https://vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only
 | ||||
|   // compiler: false,
 | ||||
|   // webpack配置
 | ||||
|   // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
 | ||||
|   chainWebpack: (config) => { | ||||
|     config.plugin('html') | ||||
|         .tap(args => { | ||||
|           let buildVar = args[0]; | ||||
|           buildVar.AWSJSAndCSSImport = AWSJSAndCSSImportArray.join("\n"); | ||||
|           debugger | ||||
|           buildVar.AWSJSAndCSSPath = AWSJSAndCSSPath; | ||||
|           buildVar.devUserInfo = devUserInfo; | ||||
|           buildVar.isproduction = isproduction; | ||||
|           buildVar.axiosBaseUrl = isproduction ? "./" : AWSproxyPath; | ||||
|           buildVar.settingParam = isproduction ? "<#settingParam>" : "{}"; | ||||
|           return args; | ||||
|         }); | ||||
|   }, | ||||
| 
 | ||||
|   configureWebpack: config => { | ||||
|     config.entry.app=["babel-polyfill","./src/main.js"]; | ||||
|     if (isproduction) { | ||||
|       // 为生产环境修改配置...
 | ||||
|       config.mode = 'production' | ||||
|     } else { | ||||
|       // 为开发环境修改配置...
 | ||||
|       config.mode = 'development' | ||||
|     } | ||||
|   }, | ||||
| 
 | ||||
|   devServer: { | ||||
|     proxy: { | ||||
|       //配置跨域
 | ||||
|       "/AWSDEVURL": { | ||||
|         target: AWSPortalUrl, | ||||
|         ws: true, | ||||
|         changOrigin: true, //允许跨域
 | ||||
|         pathRewrite: { | ||||
|           "^/AWSDEVURL": "" //请求的时候使用这个URL就可以
 | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   // css相关配置
 | ||||
|   css: { | ||||
|     loaderOptions: {} | ||||
|   }, | ||||
| 
 | ||||
|   // 是否启用dll
 | ||||
|   // See https://github.com/vuejs/vue-cli/blob/dev/docs/cli-service.md#dll-mode
 | ||||
|   // dll: false,
 | ||||
|   // PWA 插件相关配置
 | ||||
|   // see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
 | ||||
|   pwa: {}, | ||||
| 
 | ||||
|   // webpack-dev-server 相关配置
 | ||||
|   //  devServer: {
 | ||||
|   //    open: process.platform === 'darwin',
 | ||||
|   //    disableHostCheck: true,
 | ||||
|   //    host: 'www.test.com',//如果是真机测试,就使用这个IP
 | ||||
|   //    port: 1234,
 | ||||
|   //    https: false,
 | ||||
|   //    hotOnly: false,
 | ||||
|   //   before: app => {}
 | ||||
|   //  },
 | ||||
| 
 | ||||
|   // 第三方插件配置
 | ||||
|   pluginOptions: { | ||||
|   }, | ||||
|   transpileDependencies:  ["*"] | ||||
| } | ||||
							
								
								
									
										9055
									
								
								com.actionsoft.apps.coe.pal.processlist/yarn.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9055
									
								
								com.actionsoft.apps.coe.pal.processlist/yarn.lock
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user
	 446052889@qq.com
						446052889@qq.com