[修改] target
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -0,0 +1,29 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>人员配置</title>
|
||||
<!-- <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" /> -->
|
||||
<link rel="stylesheet" href="../../vue/css/antd.css">
|
||||
<link rel="stylesheet" href="../../vue/css/init.css">
|
||||
<script src="../../vue/js/vue.js"></script>
|
||||
<script src="../../vue/js/vuex.js"></script>
|
||||
<script src="../../vue/js/axios.min.js"></script>
|
||||
<script src="../../vue/js/moment.min.js"></script>
|
||||
<script src="../../vue/js/antd.js"></script>
|
||||
<script src="../../vue/js/app.js"></script>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app" style="overflow: hidden;">
|
||||
<assignment-set-form></assignment-set-form>
|
||||
</div>
|
||||
</body>
|
||||
<script type="module" src="./assignmentset.js"></script>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,196 @@
|
||||
var urls = {
|
||||
data: getServerHttp() + '/api/depart/list_tree',
|
||||
user_data: getServerHttp() + '/api/admin/user_list'
|
||||
}
|
||||
Vue.prototype.$axios = axios;
|
||||
var templateStr = createVueTemplate(function () {
|
||||
/*@preserve
|
||||
<div class="content" style="padding:20px;background: #fff;">
|
||||
<a-form class="assignmentSetForm" :form="form" @submit="save">
|
||||
<a-row>
|
||||
<a-col :span="10">
|
||||
<a-tree @select="select" :tree-data="treeData" style="height:250px;border:1px solid #d9d9d9;overflow-y: scroll;"/>
|
||||
<a-list size="small" :dataSource="userData" style="height:250px;border:1px solid #d9d9d9;overflow-y: scroll;">
|
||||
<a-list-item slot="renderItem" slot-scope="item, index"><a-checkbox @change="chose(item.kid,item.name)">{{item.name}}</a-checkbox></a-list-item>
|
||||
</a-list>
|
||||
</a-col>
|
||||
<a-col :span="4">
|
||||
<a-row style="margin-top:220px; margin-left:55px">
|
||||
<a-button type="primary" @click="turnIn"><a-icon type="double-right"/></a-button>
|
||||
</a-row>
|
||||
<a-row style="margin-top:20px; margin-left:55px">
|
||||
<a-button type="primary" @click="turnOut"><a-icon type="double-left"/></a-button>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col :span="10">
|
||||
<a-list bordered :dataSource="choseData" style="height:500px;overflow-y: scroll;">
|
||||
<a-list-item slot="renderItem" slot-scope="item, index"><a-checkbox @change="choseD(item.id,item.data)">{{item.data}}</a-checkbox></a-list-item>
|
||||
</a-list>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-form-item :wrapper-col="{ span: 20, offset: 3 }">
|
||||
<a-button type="primary" html-type="submit">
|
||||
确认
|
||||
</a-button>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
*/
|
||||
});
|
||||
|
||||
var assignmentSetForm = {
|
||||
name: 'assignmentSetForm',
|
||||
components: {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
form: this.$form.createForm(this, { name: 'docfileForm' }),
|
||||
treeData:[],
|
||||
userData:[],
|
||||
choseData:[],
|
||||
depart:{},// 当前选中的部门
|
||||
current:[],// 当前选中的人员
|
||||
cData:[],// 当前选中的已选中列表中数据,
|
||||
type:getUrlParam('type')
|
||||
}
|
||||
},
|
||||
mounted: function () {
|
||||
},
|
||||
created: function () {
|
||||
this.fetch();
|
||||
},
|
||||
methods: {
|
||||
turnIn(){
|
||||
if(this.depart.id==null){
|
||||
this.$message.info("请选择要加入的部门或人员");
|
||||
return;
|
||||
}
|
||||
if(this.current.length>0){
|
||||
for(var i=0; i<this.current.length; i++){
|
||||
if(!this.checkChoseData(this.current[i])){
|
||||
this.choseData.push(this.current[i]);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
if(!this.checkChoseData(this.depart)){
|
||||
this.choseData.push(this.depart);
|
||||
}
|
||||
}
|
||||
},
|
||||
checkChoseData(data){
|
||||
for(var i=0;i<this.choseData.length;i++){
|
||||
if(this.choseData[i].id==data.id){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
turnOut(){
|
||||
for(var i=0;i<this.cData.length;i++){
|
||||
this.remove(this.cData[i]);
|
||||
}
|
||||
},
|
||||
remove:function(data){
|
||||
for(var i=0;i<this.choseData.length;i++){
|
||||
if(this.choseData[i].id==data.id){
|
||||
this.choseData.splice(i,1);
|
||||
}
|
||||
}
|
||||
},
|
||||
select(data,info) {
|
||||
this.userData = [];
|
||||
this.current = [];
|
||||
this.depart = {
|
||||
id: data.toString(),
|
||||
data: '[部门]'+info.node.title,
|
||||
type:'org'
|
||||
};
|
||||
this.getUsers(data.toString());
|
||||
},
|
||||
choseD:function(id, name){
|
||||
var isHave = false;
|
||||
for(var i=0; i<this.cData.length; i++){
|
||||
if(this.cData[i].id==id){
|
||||
isHave = true;
|
||||
this.cData.splice(i,1);
|
||||
}
|
||||
}
|
||||
if(!isHave){
|
||||
this.cData.push({
|
||||
id: id,
|
||||
data: '[人员]'+name,
|
||||
type:'user'
|
||||
})
|
||||
}
|
||||
},
|
||||
chose:function(kid, name){
|
||||
var isHave = false;
|
||||
for(var i=0; i<this.current.length; i++){
|
||||
if(this.current[i].id==kid){
|
||||
isHave = true;
|
||||
this.current.splice(i,1);
|
||||
}
|
||||
}
|
||||
if(!isHave){
|
||||
this.current.push({
|
||||
id: kid,
|
||||
data: '[人员]'+name
|
||||
})
|
||||
}
|
||||
},
|
||||
fetch:function(){
|
||||
axios.get(urls.data)
|
||||
.then(res => {
|
||||
this.treeData = res.data.result;
|
||||
});
|
||||
},
|
||||
getUsers(depart_id){
|
||||
axios.get(urls.user_data,{params:{depart_id : depart_id}})
|
||||
.then(res => {
|
||||
this.userData = res.data.result;
|
||||
});
|
||||
},
|
||||
save: function (e) {
|
||||
e.preventDefault();
|
||||
var ids='',names='',dataLength = this.choseData.length;
|
||||
for(var i=0;i<dataLength;i++){
|
||||
if(i==0){
|
||||
ids = this.choseData[i].id;
|
||||
names = this.choseData[i].data;
|
||||
}else{
|
||||
ids = ids + ','+this.choseData[i].id;
|
||||
names = names + ','+this.choseData[i].data;
|
||||
}
|
||||
|
||||
}
|
||||
if(dataLength==0){
|
||||
alert('请选择部门或人员')
|
||||
return ;
|
||||
}
|
||||
if(this.type==1 && dataLength>1){
|
||||
alert('请选择单个部门或人员')
|
||||
return ;
|
||||
}
|
||||
this.$parent.close(ids,names)
|
||||
}
|
||||
},
|
||||
template: templateStr
|
||||
}
|
||||
|
||||
var assignmentSet = new Vue({
|
||||
el: '#app',
|
||||
components: {
|
||||
'assignmentSetForm': assignmentSetForm,
|
||||
},
|
||||
data: {
|
||||
a:123
|
||||
},
|
||||
created: function () {
|
||||
},
|
||||
methods: {
|
||||
close(ids,names){
|
||||
window.opener.setVal(ids,names);
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
// 双击源的 input框,之后赋值的时候使用
|
||||
var selectInput = null,selectType=1,myWin = null, dbCK = false;
|
||||
|
||||
function load_assignee_show(input,type) {
|
||||
//设置源input
|
||||
dbCK = true;
|
||||
selectInput = input;
|
||||
selectType = type;
|
||||
// 弹出人员配置窗口
|
||||
myWin = window.open('/resource/editor-app/assignment/assignmentset.html?type='+selectType, "人员配置", "height=600," +
|
||||
" width=800, top=100, left=300, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no")
|
||||
}
|
||||
|
||||
function loadAssignee(input,type){
|
||||
if(dbCK){
|
||||
return ;
|
||||
}
|
||||
var appElement = document.querySelector('[ng-controller=KisBpmAssignmentPopupCtrl]');
|
||||
var scope = angular.element(appElement).scope();
|
||||
if(selectType==1){
|
||||
scope.assignment.assignee=scope.assignment.assignee_zh;
|
||||
}else{
|
||||
scope.assignment.candidateUsers = scope.assignment.candidateUsers_zh;
|
||||
}
|
||||
}
|
||||
|
||||
function setVal(ids,names){
|
||||
console.log(ids,names)
|
||||
var appElement = document.querySelector('[ng-controller=KisBpmAssignmentPopupCtrl]');
|
||||
var scope = angular.element(appElement).scope();
|
||||
var choseIds = ids.split(',');
|
||||
var num = choseIds.length;
|
||||
console.log(scope)
|
||||
if(selectType==1){
|
||||
scope.assignment.assignee=ids;
|
||||
scope.assignment.assignee_zh=names;
|
||||
}else{
|
||||
var users = [];
|
||||
for(var i=0; i<num; i++){
|
||||
users.push({
|
||||
value: choseIds[i]
|
||||
});
|
||||
}
|
||||
scope.assignment.candidateUsers=users;
|
||||
scope.assignment.candidateUsers_zh=names;
|
||||
}
|
||||
scope.$apply();
|
||||
|
||||
myWin.close();
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
1.在modeler.html中导入extjs库
|
||||
<!-- 导入自定义开发库 -->
|
||||
<link rel="stylesheet" href="resource/extjs6.0/classic/theme-crisp/resources/theme-crisp-all.css"></link>
|
||||
<script src="resource/extjs6.0/ext-all.js" type="text/javascript"></script>
|
||||
<script src="resource/extjs6.0/classic/locale/locale-zh_CN.js" type="text/javascript"></script>
|
||||
<!-- 设置办理人 -->
|
||||
<script src="resource/editor-app/assignment/load_assignee.js" type="text/javascript"></script>
|
||||
<script src="resource/editor-app/assignment/load_candidate_groups.js" type="text/javascript"></script>
|
||||
|
||||
|
||||
2.用 assignment/assignment-popup.html 替换系统同名文件
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
function checkModelKey(field, modelId){
|
||||
var host = document.domain;
|
||||
if(host.indexOf('localhost')>=0){
|
||||
host = 'http://localhost:7060/library/api';
|
||||
}else{
|
||||
host = '/library/api';
|
||||
}
|
||||
var msg = '';
|
||||
jQuery.ajax({
|
||||
url:host + '/check_define_key',
|
||||
data:{modelId:modelId, key: field },
|
||||
async:false,
|
||||
dataType:'json',
|
||||
success:function(data){
|
||||
msg = data.result;
|
||||
}
|
||||
})
|
||||
return msg;
|
||||
}
|
||||
@@ -0,0 +1,186 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>源码编辑</title>
|
||||
<script src="../js/jquery.js" type="text/javascript" charset="utf-8"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="left_button">
|
||||
<button type="button" class="button gray" id="preview" title="ctrl + b">预览</button>
|
||||
<button type="button" class="button gray" id="submit">提交</button>
|
||||
<button type="button" class="button gray" id="openBrower">新窗口打开</button>
|
||||
</div>
|
||||
<div class="left_text">
|
||||
<textarea cols="30" rows="10" id="code">
|
||||
</textarea>
|
||||
</div>
|
||||
<div class="right_ifame">
|
||||
<iframe src="" id="iframe" class="iframe" ref="iframe">
|
||||
</iframe>
|
||||
</div>
|
||||
</body>
|
||||
<script>
|
||||
document.onkeydown = (e) => {
|
||||
//监听快捷键 ctrl + b
|
||||
e = e || e.event;
|
||||
if (e.ctrlKey && e.keyCode === 66) {
|
||||
//调用预览
|
||||
preview();
|
||||
}
|
||||
}
|
||||
document.getElementById("preview").onclick = () => {
|
||||
//点击预览触发事件
|
||||
preview();
|
||||
}
|
||||
document.getElementById("submit").onclick = () => {
|
||||
//点击提交触发事件
|
||||
let code = document.getElementById("code");
|
||||
var value = code.value;
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/bat-wkflow/form/editor/updateHtml',
|
||||
data: {
|
||||
html: value,
|
||||
formId: getUrlParam("kid"),
|
||||
taskId: getUrlParam("task_id")
|
||||
},
|
||||
success: function (res) {
|
||||
alert(res.result)
|
||||
}
|
||||
})
|
||||
}
|
||||
function preview() {
|
||||
let code = document.getElementById("code");
|
||||
var value = code.value;
|
||||
var frame = document.getElementById("iframe");
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/bat-wkflow/form/editor/setToSession',
|
||||
data: {
|
||||
html: value
|
||||
},
|
||||
success: function (res) {
|
||||
frame.src = '/bat-wkflow/form/editor/preview?_t=' + Math.random();
|
||||
}
|
||||
})
|
||||
// 直接前台显示
|
||||
// var framedoc = frame.contentDecument || frame.contentWindow.document;
|
||||
// framedoc.children[0].innerHTML = value;
|
||||
}
|
||||
function getUrlParam(name) {
|
||||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); // 构造一个含有目标参数的正则表达式对象
|
||||
var r = window.location.search.substr(1).match(reg); // 匹配目标参数
|
||||
if (r != null) {
|
||||
return decodeURIComponent(r[2]);
|
||||
}
|
||||
return null; //返回参数值
|
||||
}
|
||||
$(function () {
|
||||
$.ajax({
|
||||
url: '/bat-wkflow/form/editor/getFormHtml',
|
||||
data: {
|
||||
formId: getUrlParam("kid"),
|
||||
taskId: getUrlParam("task_id")
|
||||
},
|
||||
success: function (res) {
|
||||
document.getElementById("code").value = res;
|
||||
}
|
||||
})
|
||||
})
|
||||
</script>
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body,
|
||||
html {
|
||||
background: #f0f2f5;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
/* 左侧按钮样式 */
|
||||
.left_button {
|
||||
position: fixed;
|
||||
padding-top: 20%;
|
||||
left: 0;
|
||||
width: 5%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.left_button button {
|
||||
display: block;
|
||||
width: 100px;
|
||||
height: 25px;
|
||||
line-height: 1;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
border: 1px solid #DCDFE6;
|
||||
border-radius: 2px;
|
||||
margin-bottom: 110px;
|
||||
transform: rotate(270deg);
|
||||
}
|
||||
|
||||
.button {
|
||||
width: 140px;
|
||||
line-height: 38px;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
text-shadow: 1px 1px 1px #333;
|
||||
border-radius: 5px;
|
||||
margin: 0 20px 20px 0;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.button.gray {
|
||||
color: #8c96a0;
|
||||
text-shadow: 1px 1px 1px #fff;
|
||||
border: 1px solid #dce1e6;
|
||||
box-shadow: 0 1px 2px #fff inset, 0 -1px 0 #a8abae inset;
|
||||
background: -webkit-linear-gradient(top, #f2f3f7, #e4e8ec);
|
||||
background: -moz-linear-gradient(top, #f2f3f7, #e4e8ec);
|
||||
background: linear-gradient(top, #f2f3f7, #e4e8ec);
|
||||
}
|
||||
|
||||
/* 文本域样式 */
|
||||
.left_text {
|
||||
height: 96%;
|
||||
width: 48%;
|
||||
position: fixed;
|
||||
left: 6%;
|
||||
top: 2%;
|
||||
}
|
||||
|
||||
.left_text textarea {
|
||||
width: 100%;
|
||||
font-size: 18px;
|
||||
border: 2px solid #ccc;
|
||||
overflow: auto;
|
||||
height: 100%;
|
||||
resize: none;
|
||||
}
|
||||
|
||||
/* 右侧ifame样式 */
|
||||
.right_ifame {
|
||||
position: fixed;
|
||||
width: 45%;
|
||||
right: 10px;
|
||||
top: 2%;
|
||||
height: 96%;
|
||||
}
|
||||
|
||||
.right_ifame iframe {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border: 2px solid;
|
||||
border-color: #ccc;
|
||||
}
|
||||
</style>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,186 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>源码编辑</title>
|
||||
<script src="../js/jquery.js" type="text/javascript" charset="utf-8"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="left_button">
|
||||
<button type="button" class="button gray" id="preview" title="ctrl + b">预览</button>
|
||||
<button type="button" class="button gray" id="submit">提交</button>
|
||||
<button type="button" class="button gray" id="openBrower">新窗口打开</button>
|
||||
</div>
|
||||
<div class="left_text">
|
||||
<textarea cols="30" rows="10" id="code">
|
||||
</textarea>
|
||||
</div>
|
||||
<div class="right_ifame">
|
||||
<iframe src="" id="iframe" class="iframe" ref="iframe">
|
||||
</iframe>
|
||||
</div>
|
||||
</body>
|
||||
<script>
|
||||
document.onkeydown = (e) => {
|
||||
//监听快捷键 ctrl + b
|
||||
e = e || e.event;
|
||||
if (e.ctrlKey && e.keyCode === 66) {
|
||||
//调用预览
|
||||
preview();
|
||||
}
|
||||
}
|
||||
document.getElementById("preview").onclick = () => {
|
||||
//点击预览触发事件
|
||||
preview();
|
||||
}
|
||||
document.getElementById("submit").onclick = () => {
|
||||
//点击提交触发事件
|
||||
let code = document.getElementById("code");
|
||||
var value = code.value;
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/bat-wkflow/form/editor/updateHtmlReadonly',
|
||||
data: {
|
||||
html: value,
|
||||
formId: getUrlParam("kid"),
|
||||
taskId: getUrlParam("task_id")
|
||||
},
|
||||
success: function (res) {
|
||||
alert(res.result)
|
||||
}
|
||||
})
|
||||
}
|
||||
function preview() {
|
||||
let code = document.getElementById("code");
|
||||
var value = code.value;
|
||||
var frame = document.getElementById("iframe");
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/bat-wkflow/form/editor/setToSession',
|
||||
data: {
|
||||
html: value
|
||||
},
|
||||
success: function (res) {
|
||||
frame.src = '/bat-wkflow/form/editor/preview?_t=' + Math.random();
|
||||
}
|
||||
})
|
||||
// 直接前台显示
|
||||
// var framedoc = frame.contentDecument || frame.contentWindow.document;
|
||||
// framedoc.children[0].innerHTML = value;
|
||||
}
|
||||
function getUrlParam(name) {
|
||||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); // 构造一个含有目标参数的正则表达式对象
|
||||
var r = window.location.search.substr(1).match(reg); // 匹配目标参数
|
||||
if (r != null) {
|
||||
return decodeURIComponent(r[2]);
|
||||
}
|
||||
return null; //返回参数值
|
||||
}
|
||||
$(function () {
|
||||
$.ajax({
|
||||
url: '/bat-wkflow/form/editor/getFormHtmlReadonly',
|
||||
data: {
|
||||
formId: getUrlParam("kid"),
|
||||
taskId: getUrlParam("task_id")
|
||||
},
|
||||
success: function (res) {
|
||||
document.getElementById("code").value = res;
|
||||
}
|
||||
})
|
||||
})
|
||||
</script>
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body,
|
||||
html {
|
||||
background: #f0f2f5;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
/* 左侧按钮样式 */
|
||||
.left_button {
|
||||
position: fixed;
|
||||
padding-top: 20%;
|
||||
left: 0;
|
||||
width: 5%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.left_button button {
|
||||
display: block;
|
||||
width: 100px;
|
||||
height: 25px;
|
||||
line-height: 1;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
border: 1px solid #DCDFE6;
|
||||
border-radius: 2px;
|
||||
margin-bottom: 110px;
|
||||
transform: rotate(270deg);
|
||||
}
|
||||
|
||||
.button {
|
||||
width: 140px;
|
||||
line-height: 38px;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
text-shadow: 1px 1px 1px #333;
|
||||
border-radius: 5px;
|
||||
margin: 0 20px 20px 0;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.button.gray {
|
||||
color: #8c96a0;
|
||||
text-shadow: 1px 1px 1px #fff;
|
||||
border: 1px solid #dce1e6;
|
||||
box-shadow: 0 1px 2px #fff inset, 0 -1px 0 #a8abae inset;
|
||||
background: -webkit-linear-gradient(top, #f2f3f7, #e4e8ec);
|
||||
background: -moz-linear-gradient(top, #f2f3f7, #e4e8ec);
|
||||
background: linear-gradient(top, #f2f3f7, #e4e8ec);
|
||||
}
|
||||
|
||||
/* 文本域样式 */
|
||||
.left_text {
|
||||
height: 96%;
|
||||
width: 48%;
|
||||
position: fixed;
|
||||
left: 6%;
|
||||
top: 2%;
|
||||
}
|
||||
|
||||
.left_text textarea {
|
||||
width: 100%;
|
||||
font-size: 18px;
|
||||
border: 2px solid #ccc;
|
||||
overflow: auto;
|
||||
height: 100%;
|
||||
resize: none;
|
||||
}
|
||||
|
||||
/* 右侧ifame样式 */
|
||||
.right_ifame {
|
||||
position: fixed;
|
||||
width: 45%;
|
||||
right: 10px;
|
||||
top: 2%;
|
||||
height: 96%;
|
||||
}
|
||||
|
||||
.right_ifame iframe {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border: 2px solid;
|
||||
border-color: #ccc;
|
||||
}
|
||||
</style>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,153 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>表单阅读</title>
|
||||
<!-- css -->
|
||||
<link rel="stylesheet" href="../../formjs/cdn/element-ui/theme-chalk/index.css">
|
||||
<!-- babel -->
|
||||
<script src="../babel/babel-browser.min.js"></script>
|
||||
<!-- vue -->
|
||||
<script src="../../formjs/cdn/vue/vue.min.js"></script>
|
||||
<!-- element-ui js -->
|
||||
<script src="../../formjs/cdn/element-ui/index.js"></script>
|
||||
<!-- axios -->
|
||||
<script src="../../formjs/cdn/axios/axios.min.js"></script>
|
||||
<!-- avue -->
|
||||
<script src="../../formjs/cdn/avue/avue.min.js"></script>
|
||||
<style>
|
||||
.el-select{
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<!-- jquery -->
|
||||
<script src="../js/jquery.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script type="text/javascript">
|
||||
//获取地址栏参数值
|
||||
function getUrlParam(name) {
|
||||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); // 构造一个含有目标参数的正则表达式对象
|
||||
var r = window.location.search.substr(1).match(reg); // 匹配目标参数
|
||||
if (r != null){
|
||||
return decodeURIComponent(r[2]);
|
||||
}
|
||||
return null; //返回参数值
|
||||
}
|
||||
var formData = {};
|
||||
function loadFormData(){
|
||||
var url = '/bat-wkflow/form/vals/get_json_formval?form_val_kid='+getUrlParam('form_val_kid');
|
||||
$.ajax({
|
||||
url:url,
|
||||
dataType:"json",
|
||||
async:false,
|
||||
type:"get",
|
||||
success:function(data){
|
||||
if(data.code==200){
|
||||
formData = data.result;
|
||||
console.log(formData);
|
||||
formData.form = formData.formVals.formJson;
|
||||
formData.values = formData.formVals.formValsJson;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var form_json_str = formData.form;
|
||||
var form_values = formData.values;
|
||||
console.log(form_values);
|
||||
|
||||
if(!form_json_str){
|
||||
form_json_str = {};
|
||||
}
|
||||
if(!form_values){
|
||||
form_values = {};
|
||||
}
|
||||
// console.log(form_json_str);
|
||||
var form_json = JSON.parse(form_json_str);
|
||||
console.log(form_json);
|
||||
//修复一下 string -> 应该为json 的数据
|
||||
var cloumns = form_json.column;
|
||||
var columnsMap = {};
|
||||
if(cloumns && cloumns.length > 0){
|
||||
for(var i=0;i<cloumns.length;i++){
|
||||
var column = cloumns[i];
|
||||
|
||||
var ctype = column.type;
|
||||
console.log("------表单类型------"+ctype);
|
||||
column["readonly"]=true;
|
||||
if(ctype=='number' || ctype=='radio'){
|
||||
column["disabled"]=true;
|
||||
}
|
||||
|
||||
columnsMap[column.prop] = column;
|
||||
if("daterange"==column.type && column.prop){
|
||||
console.log("-----------daterange------>" + form_values[column.prop]);
|
||||
if(form_values[column.prop]){
|
||||
form_values[column.prop] = JSON.parse(form_values[column.prop]);
|
||||
}
|
||||
}
|
||||
if("timerange"==column.type && column.prop){
|
||||
console.log("-----------timerange------>" + form_values[column.prop]);
|
||||
if(form_values[column.prop]){
|
||||
form_values[column.prop] = JSON.parse(form_values[column.prop]);
|
||||
}
|
||||
}
|
||||
if("datetimerange"==column.type && column.prop){
|
||||
console.log("-----------datetimerange------>" + form_values[column.prop]);
|
||||
if(form_values[column.prop]){
|
||||
form_values[column.prop] = JSON.parse(form_values[column.prop]);
|
||||
}
|
||||
}
|
||||
if("select"==column.type && column.prop){
|
||||
console.log("-----------选择------>" + form_values[column.prop]);
|
||||
if("remote" == column.dicOption){
|
||||
delete column.dicData;
|
||||
}
|
||||
}
|
||||
if("tree"==column.type && column.prop){
|
||||
console.log("----------tree------>" + form_values[column.prop]);
|
||||
if("remote" == column.dicOption){
|
||||
delete column.dicData;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//隐藏提交按钮
|
||||
form_json.menuBtn=false;
|
||||
formData.form = form_json;
|
||||
formData.columnsMap = columnsMap;
|
||||
// 初始化 表单的值
|
||||
formData.values = JSON.parse(form_values);
|
||||
return formData;
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app">
|
||||
<avue-form v-show="showApp" :option="option" v-model="form"></avue-form>
|
||||
</div>
|
||||
|
||||
<script type="text/babel">
|
||||
var formData = loadFormData();
|
||||
console.log(formData);
|
||||
var formVue = new Vue({
|
||||
el: "#app",
|
||||
data() {
|
||||
return {
|
||||
form: formData.values,
|
||||
option: formData.form,
|
||||
showApp : true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
},
|
||||
methods: {
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,244 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>表单提交</title>
|
||||
<!-- css -->
|
||||
<link rel="stylesheet" href="/bat-wkflow/formjs/cdn/element-ui/theme-chalk/index.css">
|
||||
<!-- babel -->
|
||||
<script src="../babel/babel-browser.min.js"></script>
|
||||
<!-- vue -->
|
||||
<script src="../../formjs/cdn/vue/vue.min.js"></script>
|
||||
<!-- element-ui js -->
|
||||
<script src="../../formjs/cdn/element-ui/index.js"></script>
|
||||
<!-- axios -->
|
||||
<script src="../../formjs/cdn/axios/axios.min.js"></script>
|
||||
<!-- avue -->
|
||||
<script src="../../formjs/cdn/avue/avue.min.js"></script>
|
||||
<style>
|
||||
.el-select{
|
||||
width: 100%;
|
||||
}
|
||||
.readonlyForm{
|
||||
width:100%;
|
||||
frameborder:0;
|
||||
border:0;
|
||||
}
|
||||
|
||||
</style>
|
||||
<!-- jquery -->
|
||||
<script src="/bat-wkflow/resource/js/jquery.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="./rejectAvanceJs.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script type="text/javascript">
|
||||
var formVue;
|
||||
//获取地址栏参数值
|
||||
function getUrlParam(name) {
|
||||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); // 构造一个含有目标参数的正则表达式对象
|
||||
var r = window.location.search.substr(1).match(reg); // 匹配目标参数
|
||||
if (r != null){
|
||||
return decodeURIComponent(r[2]);
|
||||
}
|
||||
return null; //返回参数值
|
||||
}
|
||||
|
||||
//加载每一个表单
|
||||
function loadOneForm(form){
|
||||
console.log(form);
|
||||
var iframe = "<iframe class='readonlyForm' onload='reinitIframe(this)' src='@src' ></iframe>"
|
||||
var src = "/bat-wkflow/resource/form/form-read.html?form_val_kid=" + form.OBJECT_ID;
|
||||
iframe = iframe.replace('@src',src);
|
||||
$("#form-reads").append(iframe);
|
||||
}
|
||||
function reinitIframe(thiz){
|
||||
var iframe = thiz;
|
||||
try{
|
||||
var bHeight = iframe.contentWindow.document.body.scrollHeight;
|
||||
var dHeight = iframe.contentWindow.document.documentElement.scrollHeight;
|
||||
var height = Math.min(bHeight, dHeight);
|
||||
iframe.height = height+20;
|
||||
// console.log(iframe.height);
|
||||
}catch (ex){
|
||||
console.log(ex);
|
||||
}
|
||||
}
|
||||
//加载以往的只读表单
|
||||
function loadFormReads(){
|
||||
var url = '/bat-wkflow/form/vals/get_forms?task_id='+getUrlParam('task_id');
|
||||
$.ajax({
|
||||
url:url,
|
||||
dataType:"json",
|
||||
// async:false,
|
||||
type:"get",
|
||||
success:function(data){
|
||||
if(data.code!=200){
|
||||
alert('服务器正忙,请稍后再试.');
|
||||
return;
|
||||
}
|
||||
var formList = data.result;
|
||||
console.log(formList);
|
||||
if(!formList || formList.length==0){
|
||||
return;
|
||||
}
|
||||
for(var i=0;i<formList.length;i++){
|
||||
loadOneForm(formList[i]);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
$(function(){
|
||||
loadFormReads();
|
||||
});
|
||||
|
||||
var formData = {};
|
||||
function loadFormData(){
|
||||
var url = '/bat-wkflow/form/json/get_json_new?task_id='+getUrlParam('task_id')+'&form_id='+getUrlParam('form_id');
|
||||
console.log(url)
|
||||
$.ajax({
|
||||
url:url,
|
||||
dataType:"json",
|
||||
async:false,
|
||||
type:"get",
|
||||
success:function(data){
|
||||
console.log(data)
|
||||
if(data.code==200){
|
||||
formData = data.result;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var form_json_str = formData.form;
|
||||
var form_values = formData.values;
|
||||
console.log(form_json_str, form_values);
|
||||
|
||||
if(!form_json_str){
|
||||
form_json_str = {};
|
||||
}
|
||||
if(!form_values){
|
||||
form_values = {};
|
||||
}
|
||||
// console.log(form_json_str);
|
||||
var form_json = JSON.parse(form_json_str.widgetJson);
|
||||
//修复一下 string -> 应该为json 的数据
|
||||
var cloumns = form_json.column;
|
||||
var columnsMap = {};
|
||||
if(cloumns && cloumns.length > 0){
|
||||
for(var i=0;i<cloumns.length;i++){
|
||||
var column = cloumns[i];
|
||||
columnsMap[column.prop] = column;
|
||||
console.log("------类型------"+column.type);
|
||||
if("daterange"==column.type && column.prop){
|
||||
console.log("-----------daterange------>" + form_values[column.prop]);
|
||||
if(form_values[column.prop]){
|
||||
form_values[column.prop] = JSON.parse(form_values[column.prop]);
|
||||
}
|
||||
}
|
||||
if("timerange"==column.type && column.prop){
|
||||
console.log("-----------timerange------>" + form_values[column.prop]);
|
||||
if(form_values[column.prop]){
|
||||
form_values[column.prop] = JSON.parse(form_values[column.prop]);
|
||||
}
|
||||
}
|
||||
if("datetimerange"==column.type && column.prop){
|
||||
console.log("-----------datetimerange------>" + form_values[column.prop]);
|
||||
if(form_values[column.prop]){
|
||||
form_values[column.prop] = JSON.parse(form_values[column.prop]);
|
||||
}
|
||||
}
|
||||
if("select"==column.type && column.prop){
|
||||
console.log("-----------选择------>" + form_values[column.prop]);
|
||||
if("remote" == column.dicOption){
|
||||
delete column.dicData;
|
||||
}
|
||||
}
|
||||
if("tree"==column.type && column.prop){
|
||||
console.log("----------tree------>" + form_values[column.prop]);
|
||||
if("remote" == column.dicOption){
|
||||
delete column.dicData;
|
||||
}
|
||||
}
|
||||
if (column.change) column.change = eval(column.change)
|
||||
else delete column.change
|
||||
|
||||
if (column.click) column.click = eval(column.click)
|
||||
else delete column.click
|
||||
|
||||
if (column.focus) column.focus = eval(column.focus)
|
||||
else delete column.focus
|
||||
|
||||
if (column.blur) column.blur = eval(column.blur)
|
||||
else delete column.blur
|
||||
}
|
||||
}
|
||||
|
||||
// 注入高级代码
|
||||
form_json = rejectAdvanceJs(form_json,form_json_str.json_eval);
|
||||
|
||||
formData.form = form_json;
|
||||
formData.columnsMap = columnsMap;
|
||||
// 新改的审批单,不设置初始值
|
||||
formData.values = JSON.parse(form_values);
|
||||
return formData;
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="form-reads">
|
||||
</div>
|
||||
<div id="app">
|
||||
<avue-form :option="option" v-model="form" @submit="handleSubmit"></avue-form>
|
||||
</div>
|
||||
|
||||
<script type="text/babel">
|
||||
var formData = loadFormData();
|
||||
|
||||
var urlSubmit = '/bat-wkflow/form/workflow/submit';
|
||||
|
||||
formVue = new Vue({
|
||||
el: "#app",
|
||||
data() {
|
||||
return {
|
||||
form: formData.values,
|
||||
option: formData.form
|
||||
}
|
||||
},
|
||||
created() {
|
||||
},
|
||||
methods: {
|
||||
handleSubmit(form, done) {
|
||||
var thiz = this;
|
||||
console.log(form);
|
||||
axios({
|
||||
method: 'post',
|
||||
url: urlSubmit,
|
||||
data: {
|
||||
task_id: getUrlParam('task_id'),
|
||||
form: JSON.stringify(form),
|
||||
form_id: getUrlParam('form_id')
|
||||
}
|
||||
})
|
||||
.then(function (response) {
|
||||
console.log(response);
|
||||
if(response.data.code==200){
|
||||
thiz.$message.success(response.data.result);
|
||||
thiz.option.menuBtn = false;
|
||||
// window.close();
|
||||
// done()
|
||||
|
||||
}else{
|
||||
thiz.$message.error(response.message);
|
||||
}
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
} // handleSubmit
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,47 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>表单提交</title>
|
||||
<script src="../js/jquery.js" type="text/javascript"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript">
|
||||
//获取地址栏参数值
|
||||
function getUrlParam(name) {
|
||||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); // 构造一个含有目标参数的正则表达式对象
|
||||
var r = window.location.search.substr(1).match(reg); // 匹配目标参数
|
||||
if (r != null) {
|
||||
return decodeURIComponent(r[2]);
|
||||
}
|
||||
return null; //返回参数值
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '/bat-wkflow/form/vals/get_json_formval?form_val_kid=' + getUrlParam('form_val_kid'),
|
||||
dataType : "json",
|
||||
async : false,
|
||||
type : "get",
|
||||
success : function(data) {
|
||||
if (data.code == 200) {
|
||||
var formData = data.result;
|
||||
if (formData.formVals.runType == 'json') {
|
||||
window.location.href = 'resource/form/form-json-read.html?form_val_kid=' + getUrlParam('form_val_kid')
|
||||
} else {
|
||||
|
||||
window.location.href = '/bat-wkflow/form/vals/getHtmlReadonly?form_val_kid=' + getUrlParam('form_val_kid');
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,166 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>表单提交</title>
|
||||
<!-- css -->
|
||||
<link rel="stylesheet" href="../../formjs/cdn/element-ui/theme-chalk/index.css">
|
||||
<!-- babel -->
|
||||
<script src="../../babel/babel-browser.min.js"></script>
|
||||
<!-- vue -->
|
||||
<script src="../../formjs/cdn/vue/vue.min.js"></script>
|
||||
<!-- element-ui js -->
|
||||
<script src="../../formjs/cdn/element-ui/index.js"></script>
|
||||
<!-- axios -->
|
||||
<script src="../../formjs/cdn/axios/axios.min.js"></script>
|
||||
<!-- avue -->
|
||||
<script src="../../formjs/cdn/avue/avue.min.js"></script>
|
||||
<!-- jquery -->
|
||||
<script src="./js/jquery.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="./rejectAvanceJs.js" type="text/javascript" charset="utf-8"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var formVue;
|
||||
//获取地址栏参数值
|
||||
function getUrlParam(name) {
|
||||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); // 构造一个含有目标参数的正则表达式对象
|
||||
var r = window.location.search.substr(1).match(reg); // 匹配目标参数
|
||||
if (r != null){
|
||||
return decodeURIComponent(r[2]);
|
||||
}
|
||||
return null; //返回参数值
|
||||
}
|
||||
function loadFormData(){
|
||||
var formData = {};
|
||||
var url = '/bat-wkflow/form/json/get_json_formkey?form_key='+getUrlParam('form_key');
|
||||
$.ajax({
|
||||
url:url,
|
||||
dataType:"json",
|
||||
async:false,
|
||||
type:"get",
|
||||
success:function(data){
|
||||
if(data.code==200){
|
||||
formData = data.result;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var form_json_str = formData.form;
|
||||
var form_values = formData.values;
|
||||
|
||||
if(!form_json_str){
|
||||
form_json_str = {};
|
||||
}
|
||||
if(!form_values){
|
||||
form_values = {};
|
||||
}
|
||||
// console.log(form_json_str);
|
||||
var form_json = JSON.parse(form_json_str.json);
|
||||
//console.log(form_json);
|
||||
//修复一下 string -> 应该为json 的数据
|
||||
var cloumns = form_json.column;
|
||||
if(cloumns && cloumns.length > 0){
|
||||
for(var i=0;i<cloumns.length;i++){
|
||||
var column = cloumns[i];
|
||||
console.log("------i------"+column.type);
|
||||
if("daterange"==column.type && column.prop){
|
||||
console.log("-----------daterange------>" + form_values[column.prop]);
|
||||
if(form_values[column.prop]){
|
||||
form_values[column.prop] = JSON.parse(form_values[column.prop]);
|
||||
}
|
||||
}
|
||||
if("timerange"==column.type && column.prop){
|
||||
console.log("-----------timerange------>" + form_values[column.prop]);
|
||||
if(form_values[column.prop]){
|
||||
form_values[column.prop] = JSON.parse(form_values[column.prop]);
|
||||
}
|
||||
}
|
||||
if("datetimerange"==column.type && column.prop){
|
||||
console.log("-----------datetimerange------>" + form_values[column.prop]);
|
||||
if(form_values[column.prop]){
|
||||
form_values[column.prop] = JSON.parse(form_values[column.prop]);
|
||||
}
|
||||
}
|
||||
if("select"==column.type && column.prop){
|
||||
console.log("-----------选择------>" + form_values[column.prop]);
|
||||
if("remote" == column.dicOption){
|
||||
delete column.dicData;
|
||||
}
|
||||
}
|
||||
if("tree"==column.type && column.prop){
|
||||
console.log("----------tree------>" + form_values[column.prop]);
|
||||
if("remote" == column.dicOption){
|
||||
delete column.dicData;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 注入高级代码
|
||||
form_json = rejectAdvanceJs(form_json,form_json_str.json_eval);
|
||||
|
||||
formData.form = form_json;
|
||||
formData.values = form_values;
|
||||
return formData;
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app" >
|
||||
<avue-form v-show="showApp" :option="option" v-model="form" @submit="handleSubmit"></avue-form>
|
||||
</div>
|
||||
|
||||
<script type="text/babel">
|
||||
var formData = loadFormData();
|
||||
|
||||
var urlSubmit = '/bat-wkflow/form/workflow/submit';
|
||||
console.log(formData);
|
||||
formVue = new Vue({
|
||||
el: "#app",
|
||||
data() {
|
||||
return {
|
||||
form: formData.values,
|
||||
option: formData.form,
|
||||
showApp : true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
},
|
||||
methods: {
|
||||
handleSubmit(form, done) {
|
||||
var thiz = this;
|
||||
console.log(form);
|
||||
axios({
|
||||
method: 'post',
|
||||
url: urlSubmit,
|
||||
data: {
|
||||
task_id: getUrlParam('task_id'),
|
||||
form: JSON.stringify(form)
|
||||
}
|
||||
})
|
||||
.then(function (response) {
|
||||
console.log(response);
|
||||
if(response.data.code==200){
|
||||
thiz.$message.success(response.data.result);
|
||||
thiz.showApp = false;
|
||||
// window.close();
|
||||
// done()
|
||||
|
||||
}else{
|
||||
thiz.$message.error(response.message);
|
||||
}
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
} // handleSubmit
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,124 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>表单提交</title>
|
||||
<!-- css -->
|
||||
<link rel="stylesheet" href="../../formjs/cdn/element-ui/theme-chalk/index.css">
|
||||
<!-- babel -->
|
||||
<script src="../babel/babel-browser.min.js"></script>
|
||||
<!-- vue -->
|
||||
<script src="../../formjs/cdn/vue/vue.min.js"></script>
|
||||
<!-- element-ui js -->
|
||||
<script src="../../formjs/cdn/element-ui/index.js"></script>
|
||||
<!-- axios -->
|
||||
<script src="../../formjs/cdn/axios/axios.min.js"></script>
|
||||
<!-- avue -->
|
||||
<script src="../../formjs/cdn/avue/avue.min.js"></script>
|
||||
<!-- jquery -->
|
||||
<script src="../js/jquery.js" type="text/javascript" charset="utf-8"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app" >
|
||||
<avue-form v-show="showApp" :option="option" v-model="form" @submit="handleSubmit"></avue-form>
|
||||
</div>
|
||||
|
||||
<script type="text/babel">
|
||||
var formVue;
|
||||
var formJson = {
|
||||
"gutter": 0,
|
||||
"emptySize": "medium",
|
||||
"submitBtn": true,
|
||||
"submitText": "提交",
|
||||
"labelPosition": "left",
|
||||
"emptyText": "清空",
|
||||
"column": [
|
||||
{
|
||||
"display": true,
|
||||
"prop": "name",
|
||||
"rules": [
|
||||
{
|
||||
"message": "姓名必须填写",
|
||||
"required": true
|
||||
}
|
||||
],
|
||||
"label": "姓名",
|
||||
"type": "input",
|
||||
"required": true,
|
||||
"span": 24
|
||||
},
|
||||
{
|
||||
"type": "datetimerange",
|
||||
"label": "日期范围",
|
||||
"span": 24,
|
||||
"display": true,
|
||||
"format": "yyyy-MM-dd HH:mm:ss",
|
||||
"valueFormat": "yyyy-MM-dd HH:mm:ss",
|
||||
"prop": "datetimerange",
|
||||
"change": function(time){
|
||||
console.log(time.value);
|
||||
var endTime = new Date(time.value[1]).getTime() - new Date(time.value[0]).getTime();
|
||||
var day = parseInt(endTime / 60 / 60 / 24 / 1000);
|
||||
if(day<1){day=0.5};
|
||||
appForm.form.day=day;
|
||||
}
|
||||
},
|
||||
{
|
||||
"display": true,
|
||||
"prop": "day",
|
||||
"label": "请假天数",
|
||||
"placeholder": "",
|
||||
"type": "number",
|
||||
"required": true,
|
||||
"precision": 1,
|
||||
"span": 24
|
||||
},
|
||||
{
|
||||
"display": true,
|
||||
"prop": "reason",
|
||||
"rules": [
|
||||
{
|
||||
"message": "请假原因必须填写",
|
||||
"required": true
|
||||
}
|
||||
],
|
||||
"label": "请假原因",
|
||||
"type": "textarea",
|
||||
"required": true,
|
||||
"span": 24
|
||||
}
|
||||
],
|
||||
"menuBtn": true,
|
||||
"emptyBtn": true,
|
||||
"menuPosition": "center",
|
||||
"labelWidth": 120,
|
||||
"submitSize": "medium"
|
||||
};
|
||||
|
||||
|
||||
|
||||
formVue = new Vue({
|
||||
el: "#app",
|
||||
data() {
|
||||
return {
|
||||
form: {},
|
||||
option: formJson,
|
||||
showApp : true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
},
|
||||
methods: {
|
||||
handleSubmit(form, done) {
|
||||
var thiz = this;
|
||||
console.log(form);
|
||||
} // handleSubmit
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,44 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>表单提交</title>
|
||||
<script src="../js/jquery.js" type="text/javascript"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript">
|
||||
//获取地址栏参数值
|
||||
function getUrlParam(name) {
|
||||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); // 构造一个含有目标参数的正则表达式对象
|
||||
var r = window.location.search.substr(1).match(reg); // 匹配目标参数
|
||||
if (r != null) {
|
||||
return decodeURIComponent(r[2]);
|
||||
}
|
||||
return null; //返回参数值
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url : '/bat-wkflow/form/json/get_json_new?task_id=' + getUrlParam('task_id') + '&form_id=' + getUrlParam('form_id'),
|
||||
dataType : "json",
|
||||
async : false,
|
||||
type : "get",
|
||||
success : function(data) {
|
||||
if (data.code == 200) {
|
||||
var formData = data.result;
|
||||
if(formData.form.runType=='json'){
|
||||
window.location.href = '/resource/form/form-json.html?task_id=' + getUrlParam('task_id') + '&form_id=' + getUrlParam('form_id');
|
||||
}else{
|
||||
window.location.href = '/form/json/getHtml?task_id=' + getUrlParam('task_id') + '&form_id=' + getUrlParam('form_id');
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,214 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>表单提交</title>
|
||||
<!-- css -->
|
||||
<link rel="stylesheet" href="../../formjs/cdn/element-ui/theme-chalk/index.css">
|
||||
<!-- babel -->
|
||||
<script src="../babel/babel-browser.min.js"></script>
|
||||
<!-- vue -->
|
||||
<script src="../../formjs/cdn/vue/vue.min.js"></script>
|
||||
<!-- element-ui js -->
|
||||
<script src="../../formjs/cdn/element-ui/index.js"></script>
|
||||
<!-- axios -->
|
||||
<script src="../../formjs/cdn/axios/axios.min.js"></script>
|
||||
<!-- avue -->
|
||||
<script src="../../formjs/cdn/avue/avue.min.js"></script>
|
||||
<style>
|
||||
.el-select{
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<!-- jquery -->
|
||||
<script src="../js/jquery.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script type="text/javascript">
|
||||
//获取地址栏参数值
|
||||
function getUrlParam(name) {
|
||||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); // 构造一个含有目标参数的正则表达式对象
|
||||
var r = window.location.search.substr(1).match(reg); // 匹配目标参数
|
||||
if (r != null){
|
||||
return decodeURIComponent(r[2]);
|
||||
}
|
||||
return null; //返回参数值
|
||||
}
|
||||
var formData = {};
|
||||
function loadFormData(){
|
||||
var url = '/bat-wkflow/form/json/get_json?task_id='+getUrlParam('task_id');
|
||||
$.ajax({
|
||||
url:url,
|
||||
dataType:"json",
|
||||
async:false,
|
||||
type:"get",
|
||||
success:function(data){
|
||||
if(data.code==200){
|
||||
formData = data.result;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var form_json_str = formData.form;
|
||||
var form_values = formData.values;
|
||||
console.log(form_values);
|
||||
|
||||
if(!form_json_str){
|
||||
form_json_str = {};
|
||||
}
|
||||
if(!form_values){
|
||||
form_values = {};
|
||||
}
|
||||
// console.log(form_json_str);
|
||||
var form_json = JSON.parse(form_json_str.json);
|
||||
//console.log(form_json);
|
||||
//修复一下 string -> 应该为json 的数据
|
||||
var cloumns = form_json.column;
|
||||
var columnsMap = {};
|
||||
if(cloumns && cloumns.length > 0){
|
||||
for(var i=0;i<cloumns.length;i++){
|
||||
var column = cloumns[i];
|
||||
columnsMap[column.prop] = column;
|
||||
console.log("------类型------"+column.type);
|
||||
if("daterange"==column.type && column.prop){
|
||||
console.log("-----------daterange------>" + form_values[column.prop]);
|
||||
if(form_values[column.prop]){
|
||||
form_values[column.prop] = JSON.parse(form_values[column.prop]);
|
||||
}
|
||||
}
|
||||
if("timerange"==column.type && column.prop){
|
||||
console.log("-----------timerange------>" + form_values[column.prop]);
|
||||
if(form_values[column.prop]){
|
||||
form_values[column.prop] = JSON.parse(form_values[column.prop]);
|
||||
}
|
||||
}
|
||||
if("datetimerange"==column.type && column.prop){
|
||||
console.log("-----------datetimerange------>" + form_values[column.prop]);
|
||||
if(form_values[column.prop]){
|
||||
form_values[column.prop] = JSON.parse(form_values[column.prop]);
|
||||
}
|
||||
}
|
||||
if("select"==column.type && column.prop){
|
||||
console.log("-----------选择------>" + form_values[column.prop]);
|
||||
if("remote" == column.dicOption){
|
||||
delete column.dicData;
|
||||
}
|
||||
}
|
||||
if("tree"==column.type && column.prop){
|
||||
console.log("----------tree------>" + form_values[column.prop]);
|
||||
if("remote" == column.dicOption){
|
||||
delete column.dicData;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
formData.form = form_json;
|
||||
formData.columnsMap = columnsMap;
|
||||
formData.values = form_values;
|
||||
return formData;
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app" >
|
||||
<avue-form v-show="showApp" :option="option" v-model="form" @submit="handleSubmit"></avue-form>
|
||||
</div>
|
||||
|
||||
<script type="text/babel">
|
||||
var formData = loadFormData();
|
||||
|
||||
var urlSubmit = '/bat-wkflow/form/workflow/submit';
|
||||
|
||||
var formVue = new Vue({
|
||||
el: "#app",
|
||||
data() {
|
||||
return {
|
||||
form: formData.values,
|
||||
option: formData.form,
|
||||
showApp : true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
},
|
||||
methods: {
|
||||
updateFormValue(){
|
||||
console.log("强制更新");
|
||||
// this.form = formData.values;
|
||||
console.log(this.option);
|
||||
for(var field in this.form){
|
||||
if(!formData.columnsMap[field])continue;
|
||||
var dicData = formData.columnsMap[field].dicData;
|
||||
if(!dicData)continue;
|
||||
if(dicData.length == 0){
|
||||
continue;
|
||||
}
|
||||
|
||||
var dataVavl = dicData[0].value;
|
||||
console.log(field,this.form[field],typeof dataVavl,typeof this.form[field]);
|
||||
var val = this.form[field];
|
||||
|
||||
var typeofField = typeof dataVavl;
|
||||
|
||||
if(typeofField == 'string'){
|
||||
console.log(11,val);
|
||||
this.form[field] = val +"" ;
|
||||
}else if(typeofField == 'number'){
|
||||
console.log(22,val);
|
||||
if(checkNum(val)){
|
||||
var i = parseInt(val);
|
||||
this.form[field] = i ;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} //# for
|
||||
},
|
||||
handleSubmit(form, done) {
|
||||
var thiz = this;
|
||||
console.log(form);
|
||||
axios({
|
||||
method: 'post',
|
||||
url: urlSubmit,
|
||||
data: {
|
||||
task_id: getUrlParam('task_id'),
|
||||
form: JSON.stringify(form)
|
||||
}
|
||||
})
|
||||
.then(function (response) {
|
||||
console.log(response);
|
||||
if(response.data.code==200){
|
||||
thiz.$message.success(response.data.result);
|
||||
thiz.showApp = false;
|
||||
// window.close();
|
||||
// done()
|
||||
|
||||
}else{
|
||||
thiz.$message.error(response.message);
|
||||
}
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
} // handleSubmit
|
||||
}
|
||||
});
|
||||
|
||||
setTimeout(function(){
|
||||
formVue.updateFormValue();
|
||||
},1000);
|
||||
|
||||
function checkNum(num){
|
||||
var reg=/^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 ,判断正整数用/^[1-9]+[0-9]*]*$/
|
||||
if(!reg.test(num)){
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,42 @@
|
||||
//注入高级代码js,补充画表单不成功问题
|
||||
function rejectAdvanceJs(json,json_eval){
|
||||
if(!json_eval){
|
||||
return json;
|
||||
}
|
||||
console.log(json_eval);
|
||||
json_eval = JSON.parse(json_eval);
|
||||
console.log(json_eval);
|
||||
if(!json_eval){
|
||||
return json;
|
||||
}
|
||||
if(json_eval.column){
|
||||
combineColumn(json.column,json_eval.column);
|
||||
}
|
||||
console.log(json);
|
||||
return json;
|
||||
}
|
||||
function combineColumn(columnA,columnB){
|
||||
if(!columnA){
|
||||
columnA = {};
|
||||
}
|
||||
for(var i=0;i<columnB.length;i++){
|
||||
var objB = columnB[i];
|
||||
var propB = objB.prop;
|
||||
if(!propB){continue;}
|
||||
for(j=0;j<columnA.length;j++){
|
||||
var objA = columnA[j];
|
||||
var propA = objA.prop;
|
||||
if(!propA){continue;}
|
||||
if(propA==propB){
|
||||
for(field in objB){
|
||||
objA[field] = objB[field];
|
||||
if(objA[field].startsWith("function")){
|
||||
//处理函数转换
|
||||
objA[field] = eval("objA."+field+"="+objA[field]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}//# for j
|
||||
}//# for i
|
||||
return columnA;
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,9 @@
|
||||
body,ol,ul,h1,h2,h3,h4,h5,h6,p,th,td,dl,dd,form,fieldset,legend,input,textarea,select{margin:0;padding:0}
|
||||
body{font:12px"Microsoft Yahei","Arial Narrow",HELVETICA;background:#f1f1f1;-webkit-text-size-adjust:100%;}
|
||||
a{color:#2d374b;text-decoration:none}
|
||||
a:hover{color:#cd0200;text-decoration:none}
|
||||
em{font-style:normal}
|
||||
li{list-style:none}
|
||||
img{border:0;vertical-align:middle}
|
||||
table{border-collapse:collapse;border-spacing:0}
|
||||
p{word-wrap:break-word}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,136 @@
|
||||
var getServerHttp = function (path) {
|
||||
var host = document.domain;
|
||||
console.log(host)
|
||||
if(host.indexOf('localhost')>=0){
|
||||
return 'http://localhost:7060/library/api'
|
||||
}
|
||||
return 'http://test.bat.77bi.vip/library/api';
|
||||
}
|
||||
|
||||
var createVueTemplate = function (str) {
|
||||
str = str.toString().match(/\/\*!?(?:\@preserve)?[ \t]*(?:\r\n|\n)([\s\S]*?)(?:\r\n|\n)\s*\*\//)[1];
|
||||
return str;
|
||||
};
|
||||
|
||||
//获取地址栏参数值
|
||||
var getUrlParam = function (name) {
|
||||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); // 构造一个含有目标参数的正则表达式对象
|
||||
var r = window.location.search.substr(1).match(reg); // 匹配目标参数
|
||||
if (r != null) {
|
||||
return decodeURIComponent(r[2]);
|
||||
}
|
||||
return null; //返回参数值
|
||||
};
|
||||
|
||||
var dateFormat = function (fmt, date) {
|
||||
let ret;
|
||||
let opt = {
|
||||
"Y+": date.getFullYear().toString(), // 年
|
||||
"m+": (date.getMonth() + 1).toString(), // 月
|
||||
"d+": date.getDate().toString(), // 日
|
||||
"H+": date.getHours().toString(), // 时
|
||||
"M+": date.getMinutes().toString(), // 分
|
||||
"S+": date.getSeconds().toString() // 秒
|
||||
// 有其他格式化字符需求可以继续添加,必须转化成字符串
|
||||
};
|
||||
for (let k in opt) {
|
||||
ret = new RegExp("(" + k + ")").exec(fmt);
|
||||
if (ret) {
|
||||
fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
|
||||
};
|
||||
};
|
||||
return fmt;
|
||||
};
|
||||
|
||||
(function () {
|
||||
var host = document.domain;
|
||||
var port = location.port;
|
||||
document.onkeydown = function (e) {
|
||||
if (e.keyCode === 13 && e.ctrlKey) {
|
||||
var url = document.cookie.split(";")[0].split("=")[1];
|
||||
window.open('http://' + host + ':' + port + url);
|
||||
console.log('http://' + host + ':' + port + url)
|
||||
}
|
||||
};
|
||||
})();
|
||||
|
||||
|
||||
Array.prototype.indexOf = function (val) {
|
||||
for (var i = 0; i < this.length; i++) {
|
||||
if (this[i] == val) return i;
|
||||
}
|
||||
return -1;
|
||||
};
|
||||
|
||||
Array.prototype.remove = function (val) {
|
||||
var index = this.indexOf(val);
|
||||
if (index > -1) {
|
||||
this.splice(index, 1);
|
||||
}
|
||||
};
|
||||
|
||||
// 转换时间格式
|
||||
// 方法一
|
||||
var dateForm = function (str) {
|
||||
var date = '';
|
||||
str += '';
|
||||
date += str.substring(0, 4) + '-';
|
||||
date += str.substring(4, 6) + '-';
|
||||
date += str.substring(6, 8) + ' ';
|
||||
date += str.substring(8, 10) + ':';
|
||||
date += str.substring(10, 12);
|
||||
return date
|
||||
}
|
||||
// 方法二
|
||||
function writeCurrentDate(date) {
|
||||
var now = date || new Date();
|
||||
var year = now.getFullYear(); //得到年份
|
||||
var month = now.getMonth();//得到月份
|
||||
var date = now.getDate();//得到日期
|
||||
var day = now.getDay();//得到周几
|
||||
var hour = now.getHours();//得到小时
|
||||
var minu = now.getMinutes();//得到分钟
|
||||
var sec = now.getSeconds();//得到秒
|
||||
var week;
|
||||
month = month + 1;
|
||||
// if (month < 10) month = "0" + month;
|
||||
// if (date < 10) date = "0" + date;
|
||||
// if (hour < 10) hour = "0" + hour;
|
||||
// if (minu < 10) minu = "0" + minu;
|
||||
// if (sec < 10) sec = "0" + sec;
|
||||
var arr_week = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
|
||||
week = arr_week[day];
|
||||
var time = {
|
||||
year,
|
||||
month,
|
||||
date,
|
||||
day: week,
|
||||
hour,
|
||||
minu,
|
||||
sec
|
||||
};
|
||||
return time;
|
||||
}
|
||||
|
||||
// 获取cookie
|
||||
var getCookie = function (name) {
|
||||
var arr;
|
||||
var reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
|
||||
if (arr = document.cookie.match(reg))
|
||||
return unescape(arr[2]);
|
||||
else
|
||||
return null;
|
||||
};
|
||||
|
||||
// 登录拦截
|
||||
function interceptor() {
|
||||
if(window.location.pathname === '/filem/web-admin/login.html' || window.location.pathname === '/web-admin/login.html') {
|
||||
return false;
|
||||
}
|
||||
var ADMINSESSION = getCookie('ADMINSESSION');
|
||||
if (ADMINSESSION) {
|
||||
return true;
|
||||
};
|
||||
window.top.location.href = '/filem/web-admin/login.html';
|
||||
}
|
||||
//interceptor();
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user