流程清单代码
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