提交 76995ac1 编写于 作者: Skyeye云's avatar Skyeye云

CRM合同管理托管到表单布局

上级 9b1ae86b
......@@ -43,7 +43,7 @@ layui.config({
<div class="layui-form-item layui-col-xs12">
<div class="layui-input-block">
<button class="winui-btn" type="button" id="cancle"><language showName="com.skyeye.cancel"></language></button>
<button class="winui-btn" lay-submit lay-filter="formWriteBean"><language showName="com.skyeye.save"></language></button>
<button class="winui-btn" lay-submit lay-filter="formWriteBean" id="formWriteBean"><language showName="com.skyeye.save"></language></button>
</div>
</div>
</form>
......@@ -79,6 +79,10 @@ layui.config({
html = pageHtml[pageMation.type];
}
$("body").append(html);
// 加载工作流的提交按钮信息
if (pageMation.type == 'create' || pageMation.type == 'edit') {
initSaveForDraftBtn();
}
// 加载页面
initPage();
......@@ -104,6 +108,15 @@ layui.config({
}
}
function initSaveForDraftBtn() {
var flowable = pageMation.serviceBeanCustom.serviceBean.flowable;
if (flowable) {
// 开启工作流
$('#formWriteBean').before(`<button class="winui-btn" lay-submit lay-filter="formSaveDraft" id="formSaveDraft">保存为草稿</button>`);
$('#formWriteBean').html('提交');
}
}
function getBusinessData(callback) {
if (isNull(GetUrlParam("id"))) {
winui.window.msg("业务数据id为空", {icon: 2, time: 2000});
......
......@@ -43,13 +43,13 @@ layui.config({
return '<a lay-event="processDetails" class="notice-title-click">' + d.processInstanceId + '</a>';
}},
{ field: 'state', title: '状态', width: 90, templet: function (d) {
return skyeyeClassEnumUtil.getEnumDataNameByCodeAndKey("crmContractStateEnum", 'id', state, 'name');
return skyeyeClassEnumUtil.getEnumDataNameByCodeAndKey("crmContractStateEnum", 'id', d.state, 'name');
}},
{ field: 'createName', title: systemLanguage["com.skyeye.createName"][languageType], align: 'left', width: 120 },
{ field: 'createTime', title: systemLanguage["com.skyeye.createTime"][languageType], align: 'center', width: 150 },
{ field: 'lastUpdateName', title: systemLanguage["com.skyeye.lastUpdateName"][languageType], align: 'left', width: 120 },
{ field: 'lastUpdateTime', title: systemLanguage["com.skyeye.lastUpdateTime"][languageType], align: 'center', width: 150 },
{ title: systemLanguage["com.skyeye.operation"][languageType], fixed: 'right', align: 'center', width: 150, templet: function (d) {
{ title: systemLanguage["com.skyeye.operation"][languageType], fixed: 'right', align: 'center', width: 250, templet: function (d) {
var str = '';
if (d.editRow == 1) {
if (authPermission['submitToApproval']) {
......@@ -148,7 +148,7 @@ layui.config({
// 编辑
function edit(data) {
parent._openNewWindows({
url: systemCommonUtil.getUrl('FP2023030400003&objectId=' + objectId + '&objectKey=' + objectKey + '&id=' + data.id, null),
url: systemCommonUtil.getUrl('FP2023030500002&objectId=' + objectId + '&objectKey=' + objectKey + '&id=' + data.id, null),
title: systemLanguage["com.skyeye.editPageTitle"][languageType],
pageId: "contactsEdit",
area: ['90vw', '90vh'],
......@@ -160,9 +160,8 @@ layui.config({
// 详情
function details(data) {
rowId = data.id;
_openNewWindows({
url: "../../tpl/crmcontractmanage/mycrmcontractdetails.html",
parent._openNewWindows({
url: systemCommonUtil.getUrl('FP2023030600001&objectId=' + objectId + '&objectKey=' + objectKey + '&id=' + data.id, null),
title: systemLanguage["com.skyeye.detailsPageTitle"][languageType],
pageId: "crmcontractdetails",
area: ['90vw', '90vh'],
......
var userList = new Array();//选择用户返回的集合或者进行回显的集合
// 合同信息
layui.config({
base: basePath,
version: skyeyeVersion
}).extend({
window: 'js/winui.window'
}).define(['window', 'jquery', 'winui', 'laydate', 'tagEditor', 'textool', 'form'], function (exports) {
winui.renderColor();
var index = parent.layer.getFrameIndex(window.name);
var $ = layui.$,
form = layui.form,
laydate = layui.laydate,
textool = layui.textool;
var serviceClassName = sysServiceMation["myCrmContract"]["key"];
// 签约日期
laydate.render({elem: '#signingTime', type: 'date', trigger: 'click'});
// 生效日期
laydate.render({elem: '#effectTime', type: 'date', trigger: 'click'});
// 服务结束日期
laydate.render({elem: '#serviceEndTime', type: 'date', trigger: 'click'});
textool.init({eleId: 'technicalTerms', maxlength: 200});
textool.init({eleId: 'businessTerms', maxlength: 200});
// 获取当前登录用户所属企业的所有部门信息
systemCommonUtil.queryDepartmentListByCurrentUserBelong(function(data) {
$("#departmentId").html(getDataUseHandlebars(getFileContent('tpl/template/select-option.tpl'), data));
form.render('select');
});
skyeyeEnclosure.init('enclosureUpload');
matchingLanguage();
form.render();
// 关联人员
$('#relationUserId').tagEditor({
initialTags: [],
placeholder: '请选择关联人员',
editorTag: false,
beforeTagDelete: function(field, editor, tags, val) {
var listVal = $("#").attr('list');
var list = isNull(listVal) ? [] : JSON.parse(listVal);
list = [].concat(arrayUtil.removeArrayPointName(list, val));
$("#").attr('list', JSON.stringify(list));
}
});
// 关联人员选择选择
$("body").on("click", "#userNameSelPeople", function (e) {
systemCommonUtil.userReturnList = [].concat(userList);
systemCommonUtil.chooseOrNotMy = "1"; // 人员列表中是否包含自己--1.包含;其他参数不包含
systemCommonUtil.chooseOrNotEmail = "2"; // 人员列表中是否必须绑定邮箱--1.必须;其他参数没必要
systemCommonUtil.checkType = "1"; // 人员选择类型,1.多选;其他。单选
systemCommonUtil.openSysUserStaffChoosePage(function (userReturnList) {
// 重置数据
userList = [].concat(systemCommonUtil.tagEditorResetData('relationUserId', userReturnList));
});
});
// 客户选择
$("body").on("click", "#customMationSel", function (e) {
sysCustomerUtil.openSysCustomerChoosePage(function (customerMation){
$("#customName").val(customerMation.customName);
$("#contacts").val(customerMation.contacts);
$("#city").val(customerMation.city);
$("#detailAddress").val(customerMation.detailAddress);
$("#workPhone").val(customerMation.workPhone);
$("#mobilePhone").val(customerMation.mobilePhone);
$("#email").val(customerMation.email);
$("#qq").val(customerMation.qq);
});
});
// 保存为草稿
form.on('submit(formAddBean)', function(data) {
if(winui.verifyForm(data.elem)) {
saveData("1", "");
}
return false;
});
// 提交审批
form.on('submit(formSubBean)', function(data) {
if(winui.verifyForm(data.elem)) {
activitiUtil.startProcess(serviceClassName, null, function (approvalId) {
saveData("2", approvalId);
});
}
return false;
});
function saveData(subType, approvalId) {
var params = {
city: $("#city").val(),
detailAddress: $("#detailAddress").val(),
title: $("#title").val(),
num: $("#num").val(),
price: $("#price").val(),
signingTime: $("#signingTime").val(),
effectTime: $("#effectTime").val(),
serviceEndTime: $("#serviceEndTime").val(),
contacts: $("#contacts").val(),
workPhone: $("#workPhone").val(),
mobilePhone: $("#mobilePhone").val(),
email: $("#email").val(),
qq: $("#qq").val(),
technicalTerms: $("#technicalTerms").val(),
businessTerms: $("#businessTerms").val(),
customerId: sysCustomerUtil.customerMation.id,
departmentId: $("#departmentId").val(),
relationUserId: systemCommonUtil.tagEditorGetAllData('relationUserId', userList),
enclosureInfo: skyeyeEnclosure.getEnclosureIdsByBoxId('enclosureUpload'),
subType: subType, // 表单类型 1.保存草稿 2.提交审批
approvalId: approvalId
};
// 加载关联人员
if (isNull(params.relationUserId)) {
winui.window.msg("请选择关联人员", {icon: 2, time: 2000});
return false;
}
AjaxPostUtil.request({url: flowableBasePath + "mycrmcontract002", params: params, type: 'json', callback: function(json) {
parent.layer.close(index);
parent.refreshCode = '0';
}});
}
$("body").on("click", "#cancle", function() {
parent.layer.close(index);
});
});
\ No newline at end of file
layui.config({
base: basePath,
version: skyeyeVersion
}).extend({
window: 'js/winui.window'
}).define(['window', 'jquery', 'winui'], function (exports) {
winui.renderColor();
layui.use(['form'], function (form) {
var index = parent.layer.getFrameIndex(window.name);
var $ = layui.$;
showGrid({
id: "showForm",
url: flowableBasePath + "mycrmcontract005",
params: {rowId: parent.rowId},
pagination: false,
template: getFileContent('tpl/crmcontractmanage/mycrmcontractdetailsTemplate.tpl'),
ajaxSendLoadBefore: function(hdb) {
},
ajaxSendAfter: function (json) {
// 附件回显
skyeyeEnclosure.showDetails({"enclosureUploadBtn": json.bean.enclosureInfo});
matchingLanguage();
form.render();
}
});
});
});
\ No newline at end of file
var userList = new Array();//选择用户返回的集合或者进行回显的集合
var processInstanceId = "";
// 合同信息
layui.config({
base: basePath,
version: skyeyeVersion
}).extend({
window: 'js/winui.window'
}).define(['window', 'jquery', 'winui', 'laydate', 'tagEditor', 'textool', 'form'], function (exports) {
winui.renderColor();
var index = parent.layer.getFrameIndex(window.name);
var $ = layui.$,
form = layui.form,
laydate = layui.laydate,
textool = layui.textool;
var serviceClassName = sysServiceMation["myCrmContract"]["key"];
var selOption = getFileContent('tpl/template/select-option.tpl');
showGrid({
id: "showForm",
url: flowableBasePath + "mycrmcontract004",
params: {rowId: parent.rowId},
pagination: false,
template: getFileContent('tpl/crmcontractmanage/mycrmcontracteditTemplate.tpl'),
ajaxSendLoadBefore: function(hdb) {
},
ajaxSendAfter: function (json) {
if(json.bean.editRow == "1"){
$(".typeTwo").addClass("layui-hide");
} else if (json.bean.editRow == "2"){
$(".typeOne").addClass("layui-hide");
}
processInstanceId = json.bean.processInstanceId;
// 签约日期
laydate.render({elem: '#signingTime', type: 'date'});
// 生效日期
laydate.render({elem: '#effectTime', type: 'date'});
// 服务结束日期
laydate.render({elem: '#serviceEndTime', type: 'date'});
textool.init({eleId: 'technicalTerms', maxlength: 200});
textool.init({eleId: 'businessTerms', maxlength: 200});
var userNames = [];
userList = [].concat(json.bean.relationUserId);
$.each(json.bean.relationUserId, function(i, item) {
userNames.push(item.name);
});
//关联人员选择
$('#relationUserId').tagEditor({
initialTags: userNames,
placeholder: '请选择关联人员',
editorTag: false,
beforeTagDelete: function(field, editor, tags, val) {
userList = [].concat(arrayUtil.removeArrayPointName(userList, val));
}
});
// 客户id赋值
sysCustomerUtil.customerMation = {
id: json.bean.customerId
};
// 获取当前登录用户所属企业的所有部门信息
systemCommonUtil.queryDepartmentListByCurrentUserBelong(function(data) {
$("#departmentId").html(getDataUseHandlebars(selOption, data));
$("#departmentId").val(json.bean.departmentId);
form.render('select');
});
// 附件回显
skyeyeEnclosure.initTypeISData({'enclosureUpload': json.bean.enclosureInfo});
matchingLanguage();
form.render();
}
});
// 关联人员选择
$("body").on("click", "#userNameSelPeople", function (e) {
systemCommonUtil.userReturnList = [].concat(userList);
systemCommonUtil.chooseOrNotMy = "1"; // 人员列表中是否包含自己--1.包含;其他参数不包含
systemCommonUtil.chooseOrNotEmail = "2"; // 人员列表中是否必须绑定邮箱--1.必须;其他参数没必要
systemCommonUtil.checkType = "1"; // 人员选择类型,1.多选;其他。单选
systemCommonUtil.openSysUserStaffChoosePage(function (userReturnList) {
// 重置数据
userList = [].concat(systemCommonUtil.tagEditorResetData('relationUserId', userReturnList));
});
});
// 客户选择
$("body").on("click", "#customMationSel", function (e) {
sysCustomerUtil.openSysCustomerChoosePage(function (customerMation){
$("#customName").val(customerMation.customName);
$("#contacts").val(customerMation.contacts);
$("#city").val(customerMation.city);
$("#detailAddress").val(customerMation.detailAddress);
$("#workPhone").val(customerMation.workPhone);
$("#mobilePhone").val(customerMation.mobilePhone);
$("#email").val(customerMation.email);
$("#qq").val(customerMation.qq);
});
});
// 保存为草稿
form.on('submit(formEditBean)', function(data) {
if(winui.verifyForm(data.elem)) {
saveData('1', "");
}
return false;
});
// 提交审批
form.on('submit(formSubBean)', function(data) {
if(winui.verifyForm(data.elem)) {
activitiUtil.startProcess(serviceClassName, null, function (approvalId) {
saveData("2", approvalId);
});
}
return false;
});
// 工作流中保存
form.on('submit(save)', function(data) {
if(winui.verifyForm(data.elem)) {
saveData('3', "");
}
return false;
});
function saveData(subType, approvalId) {
var params = {
rowId: parent.rowId,
city: $("#city").val(),
detailAddress: $("#detailAddress").val(),
title: $("#title").val(),
num: $("#num").val(),
price: $("#price").val(),
signingTime: $("#signingTime").val(),
effectTime: $("#effectTime").val(),
serviceEndTime: $("#serviceEndTime").val(),
contacts: $("#contacts").val(),
workPhone: $("#workPhone").val(),
mobilePhone: $("#mobilePhone").val(),
email: $("#email").val(),
qq: $("#qq").val(),
technicalTerms: $("#technicalTerms").val(),
businessTerms: $("#businessTerms").val(),
customerId: sysCustomerUtil.customerMation.id,
departmentId: $("#departmentId").val(),
relationUserId: systemCommonUtil.tagEditorGetAllData('relationUserId', userList),
enclosureInfo: skyeyeEnclosure.getEnclosureIdsByBoxId('enclosureUpload'),
subType: subType, // 1:保存为草稿 2.提交到工作流 3.在工作流中编辑
approvalId: approvalId,
};
// 加载关联人员
if(isNull(params.relationUserId)){
winui.window.msg("请选择关联人员", {icon: 2, time: 2000});
return false;
}
AjaxPostUtil.request({url: flowableBasePath + "mycrmcontract003", params: params, type: 'json', callback: function (json) {
parent.layer.close(index);
parent.refreshCode = '0';
}});
}
$("body").on("click", "#cancle", function() {
parent.layer.close(index);
});
});
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
</head>
<body>
<div style="padding:20px; margin:0 auto;">
<form class="layui-form" action="" id="showForm">
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">客户<i class="red">*</i></label>
<div class="layui-input-block">
<input type="text" id="customName" name="customName" placeholder="请选择客户" class="layui-input" readonly="readonly" win-verify="required"/>
<i class="fa fa-plus-circle input-icon" id="customMationSel"></i>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">所在城市</label>
<div class="layui-input-block">
<input type="text" id="city" name="city" placeholder="请输入所在城市" class="layui-input" maxlength="15"/>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">详细地址</label>
<div class="layui-input-block">
<input type="text" id="detailAddress" name="detailAddress" placeholder="请输入详细地址" class="layui-input" maxlength="50"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">合同名称<i class="red">*</i></label>
<div class="layui-input-block">
<input type="text" id="title" name="title" win-verify="required" placeholder="请输入合同名称" class="layui-input" maxlength="50"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">合同编号<i class="red">*</i></label>
<div class="layui-input-block">
<input type="text" id="num" name="num" win-verify="required" placeholder="请输入合同编号" class="layui-input" maxlength="20"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">合同金额</label>
<div class="layui-input-block">
<input type="number" id="price" name="price" win-verify="double" placeholder="请输入合同金额" class="layui-input" maxlength="24"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">签约日期<i class="red">*</i></label>
<div class="layui-input-block">
<input type="text" id="signingTime" name="signingTime" win-verify="required" placeholder="请输入签约日期" class="layui-input"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">生效日期</label>
<div class="layui-input-block">
<input type="text" id="effectTime" name="effectTime" placeholder="请输入生效日期" class="layui-input"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">服务期至</label>
<div class="layui-input-block">
<input type="text" id="serviceEndTime" name="serviceEndTime" placeholder="请输入服务结束日期" class="layui-input"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">联系人<i class="red">*</i></label>
<div class="layui-input-block">
<input type="text" id="contacts" name="contacts" win-verify="required" placeholder="请输入联系人" class="layui-input" maxlength="10"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">固定电话</label>
<div class="layui-input-block">
<input type="text" id="workPhone" name="workPhone" win-verify="tel" placeholder="请输入办公电话" class="layui-input" maxlength="20"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">移动电话</label>
<div class="layui-input-block">
<input type="text" id="mobilePhone" name="mobilePhone" win-verify="phone" placeholder="请输入移动电话" class="layui-input" maxlength="20"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">邮箱</label>
<div class="layui-input-block">
<input type="text" id="email" name="email" win-verify="email" placeholder="请输入邮箱" class="layui-input" maxlength="25"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">QQ</label>
<div class="layui-input-block">
<input type="text" id="qq" name="qq" placeholder="请输入QQ" class="layui-input" maxlength="15"/>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">主要技术条款</label>
<div class="layui-input-block">
<textarea id="technicalTerms" name="technicalTerms" placeholder="请输入主要技术条款" class="layui-textarea" style="height: 100px;" maxlength="200"></textarea>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">主要商务条款</label>
<div class="layui-input-block">
<textarea id="businessTerms" name="businessTerms" placeholder="请输入主要商务条款" class="layui-textarea" style="height: 100px;" maxlength="200"></textarea>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">所属部门<i class="red">*</i></label>
<div class="layui-input-block">
<select id="departmentId" name="departmentId" win-verify="required" lay-filter="departmentId" lay-search="">
</select>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">关联人员<i class="red">*</i></label>
<div class="layui-input-block">
<input type="text" id="relationUserId" name="relationUserId" win-verify="required" placeholder="请选择关联人员" class="layui-input"/>
<i class="fa fa-user-plus input-icon" id="userNameSelPeople"></i>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">相关附件</label>
<div class="layui-input-block" id="enclosureUpload">
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<div class="layui-input-block">
<button class="winui-btn" id="cancle"><language showName="com.skyeye.cancel"></language></button>
<button class="winui-btn" lay-submit lay-filter="formAddBean">保存为草稿</button>
<button class="winui-btn" lay-submit lay-filter="formSubBean">提交审批</button>
</div>
</div>
</form>
</div>
<script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript">
layui.config({base: '../../js/crmcontractmanage/'}).use('mycrmcontractadd');
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
</head>
<body>
<div style="padding:20px; margin:0 auto;">
<form class="layui-form" action="" id="showForm">
</form>
</div>
<script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript">
layui.config({base: '../../js/crmcontractmanage/'}).use('mycrmcontractdetails');
</script>
</body>
</html>
\ No newline at end of file
{{#bean}}
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">客户:</label>
<div class="layui-input-block ver-center">
{{customerId}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">所在城市:</label>
<div class="layui-input-block ver-center">
{{city}}
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">详细地址:</label>
<div class="layui-input-block ver-center">
{{detailAddress}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">合同名称:</label>
<div class="layui-input-block ver-center">
{{title}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">合同编号:</label>
<div class="layui-input-block ver-center">
{{num}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">合同金额:</label>
<div class="layui-input-block ver-center">
{{price}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">签约日期:</label>
<div class="layui-input-block ver-center">
{{signingTime}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">生效日期:</label>
<div class="layui-input-block ver-center">
{{effectTime}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">服务期至:</label>
<div class="layui-input-block ver-center">
{{serviceEndTime}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">联系人:</label>
<div class="layui-input-block ver-center">
{{contacts}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">固定电话:</label>
<div class="layui-input-block ver-center">
{{workPhone}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">移动电话:</label>
<div class="layui-input-block ver-center">
{{mobilePhone}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">QQ号:</label>
<div class="layui-input-block ver-center">
{{qq}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">邮箱:</label>
<div class="layui-input-block ver-center">
{{email}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">合同所属部门:</label>
<div class="layui-input-block ver-center">
{{departmentId}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">合同关联人员:</label>
<div class="layui-input-block ver-center">
{{relationUserId}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">状态:</label>
<div class="layui-input-block ver-center">
{{stateName}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">创建人:</label>
<div class="layui-input-block ver-center">
{{userName}}
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">主要技术条款:</label>
<div class="layui-input-block ver-center">
{{technicalTerms}}
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">主要商务条款:</label>
<div class="layui-input-block ver-center">
{{businessTerms}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">附件:</label>
<div class="layui-input-block ver-center" id="enclosureUploadBtn">
</div>
</div>
{{/bean}}
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
</head>
<body>
<div style="padding:20px; margin:0 auto;">
<form class="layui-form" action="" id="showForm">
</form>
</div>
<script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript">
layui.config({base: '../../js/crmcontractmanage/'}).use('mycrmcontractedit');
</script>
</body>
</html>
\ No newline at end of file
{{#bean}}
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">客户<i class="red">*</i></label>
<div class="layui-input-block">
<input type="text" id="customName" name="customName" placeholder="请选择客户" class="layui-input" readonly="readonly" win-verify="required" value="{{customerName}}"/>
<i class="fa fa-plus-circle input-icon" id="customMationSel"></i>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">所在城市</label>
<div class="layui-input-block">
<input type="text" id="city" name="city" placeholder="请输入所在城市" class="layui-input" maxlength="15" value="{{city}}"/>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">详细地址</label>
<div class="layui-input-block">
<input type="text" id="detailAddress" name="detailAddress" placeholder="请输入详细地址" class="layui-input" maxlength="50" value="{{detailAddress}}"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">合同名称<i class="red">*</i></label>
<div class="layui-input-block">
<input type="text" id="title" name="title" win-verify="required" placeholder="请输入合同名称" class="layui-input" maxlength="50" value="{{title}}"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">合同编号<i class="red">*</i></label>
<div class="layui-input-block">
<input type="text" id="num" name="num" win-verify="required" placeholder="请输入合同编号" class="layui-input" maxlength="20" value="{{num}}"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">合同金额</label>
<div class="layui-input-block">
<input type="number" id="price" name="price" win-verify="double" placeholder="请输入合同金额" class="layui-input" maxlength="24" value="{{price}}"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">签约日期<i class="red">*</i></label>
<div class="layui-input-block">
<input type="text" id="signingTime" name="signingTime" win-verify="required" placeholder="请输入签约日期" class="layui-input" value="{{signingTime}}"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">生效日期</label>
<div class="layui-input-block">
<input type="text" id="effectTime" name="effectTime" placeholder="请输入生效日期" class="layui-input" value="{{effectTime}}"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">服务期至</label>
<div class="layui-input-block">
<input type="text" id="serviceEndTime" name="serviceEndTime" placeholder="请输入服务结束日期" class="layui-input" value="{{serviceEndTime}}"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">联系人<i class="red">*</i></label>
<div class="layui-input-block">
<input type="text" id="contacts" name="contacts" win-verify="required" placeholder="请输入联系人" class="layui-input" maxlength="10" value="{{contacts}}"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">固定电话</label>
<div class="layui-input-block">
<input type="text" id="workPhone" name="workPhone" win-verify="tel" placeholder="请输入办公电话" class="layui-input" maxlength="20" value="{{workPhone}}"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">移动电话</label>
<div class="layui-input-block">
<input type="text" id="mobilePhone" name="mobilePhone" win-verify="phone" placeholder="请输入移动电话" class="layui-input" maxlength="20" value="{{mobilePhone}}"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">邮箱</label>
<div class="layui-input-block">
<input type="text" id="email" name="email" win-verify="email" placeholder="请输入邮箱" class="layui-input" maxlength="25" value="{{email}}"/>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">QQ</label>
<div class="layui-input-block">
<input type="text" id="qq" name="qq" placeholder="请输入QQ" class="layui-input" maxlength="15" value="{{qq}}"/>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">主要技术条款</label>
<div class="layui-input-block">
<textarea id="technicalTerms" name="technicalTerms" placeholder="请输入主要技术条款" class="layui-textarea" style="height: 100px;" maxlength="200">{{technicalTerms}}</textarea>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">主要商务条款</label>
<div class="layui-input-block">
<textarea id="businessTerms" name="businessTerms" placeholder="请输入主要商务条款" class="layui-textarea" style="height: 100px;" maxlength="200">{{businessTerms}}</textarea>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">所属部门<i class="red">*</i></label>
<div class="layui-input-block">
<select id="departmentId" name="departmentId" win-verify="required" lay-filter="departmentId" lay-search="">
</select>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">关联人员<i class="red">*</i></label>
<div class="layui-input-block">
<input type="text" id="relationUserId" name="relationUserId" win-verify="required" placeholder="请选择关联人员" class="layui-input"/>
<i class="fa fa-user-plus input-icon" id="userNameSelPeople"></i>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">相关附件</label>
<div class="layui-input-block" id="enclosureUpload">
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<div class="layui-input-block">
<button class="winui-btn" id="cancle"><language showName="com.skyeye.cancel"></language></button>
<button class="winui-btn typeOne" lay-submit lay-filter="formEditBean">保存为草稿</button>
<button class="winui-btn typeOne" lay-submit lay-filter="formSubBean">提交审批</button>
<button class="winui-btn typeTwo" lay-submit lay-filter="save"><language showName="com.skyeye.save"></language></button>
</div>
</div>
{{/bean}}
\ No newline at end of file
......@@ -46,6 +46,13 @@ var dsFormUtil = {
<div class="layui-input-block ver-center" id="showVoucher{{orderBy}}"></div>
</div>
{{/bean}}`, // 凭证展示
'7': ``, // 脚本展示
'8': `{{#bean}}
<div class="layui-form-item {{width}}" controlType="{{dsFormComponent.numCode}}" contentId="{{id}}">
<label class="layui-form-label">{{title}}:</label>
<div class="layui-input-block ver-center">{{#each value}}<span class="layui-badge layui-bg-blue skyeye-badge">{{name}}</span>{{/each}}</div>
</div>
{{/bean}}`, // Id转Mation取值转换后的展示
},
pageMation: {},
......@@ -83,10 +90,7 @@ var dsFormUtil = {
if (!isNull(attrDefinition) && !$.isEmptyObject(attrDefinition)) {
// 获取组件中设置值的脚本
var dsFormComponent = content.dsFormComponent;
var value = data[attrDefinition.attrKey];
if (dsFormComponent.valueMergType == 'extend') {
value = data;
}
var value = dsFormUtil.getValueDataFromBusinessForEdit(content, data);
content["value"] = value;
content["pageType"] = 'edit';
var jsFitValue = dsFormComponent.jsFitValue;
......@@ -103,6 +107,30 @@ var dsFormUtil = {
layui.form.render();
},
// 获取业务数据中实际的值
getValueDataFromBusinessForEdit: function (content, data) {
var attrDefinition = content.attrDefinition;
var dsFormComponent = content.dsFormComponent;
var value = data[attrDefinition.attrKey];
if (dsFormComponent.valueMergType == 'extend') {
value = data;
}
var showType = dsFormUtil.getShowType(content.attrDefinition);
if (showType == 8 && dsFormComponent.numCode == 'userStaffChoose') {
var key = attrDefinition.attrKey;
// 例如:将key由relationUserId变为relationUserMation
key = key.replace("Id", "") + "Mation";
value = data[key];
if (!isNull(value) && !$.isEmptyObject(value)) {
// 判断值是否为对象,如果是对象,则组装成数组
if (!$.isArray(value)) {
value = [].concat(value);
}
}
}
return value;
},
/**
* 加载动态表单(详情操作)
*
......@@ -116,14 +144,15 @@ var dsFormUtil = {
var attrDefinition = content.attrDefinition;
if (!isNull(attrDefinition) && !$.isEmptyObject(attrDefinition)) {
// 获取组件中设置值的脚本
var attrDefinition = content.attrDefinition;
var dsFormComponent = content.dsFormComponent;
var value = data[attrDefinition.attrKey];
if (dsFormComponent.valueMergType == 'extend') {
value = data;
}
dsFormUtil.loadComponentValueDetails(showBoxId, content, value);
dsFormUtil.loadComponentValueDetails(showBoxId, content, value, data);
} else {
dsFormUtil.loadComponentValueDetails(showBoxId, content, null);
dsFormUtil.loadComponentValueDetails(showBoxId, content, null, data);
}
});
layui.form.render();
......@@ -156,49 +185,77 @@ var dsFormUtil = {
parent.layer.close(index);
});
// 保存为草稿
form.on('submit(formSaveDraft)', function (data) {
if (winui.verifyForm(data.elem) && !isNull(dsFormUtil.pageMation)) {
dsFormUtil.saveData("1", null);
}
return false;
});
// 保存/提交
form.on('submit(formWriteBean)', function (data) {
if (winui.verifyForm(data.elem) && !isNull(dsFormUtil.pageMation)) {
var params = {};
$.each(dsFormUtil.pageMation.dsFormPageContents, function (i, content) {
if (!isNull(content.attrDefinition) && !$.isEmptyObject(content.attrDefinition)) {
// 获取组件中获取值的脚本
var dsFormComponent = content.dsFormComponent;
var getValueScript = getDataUseHandlebars('{{#this}}' + dsFormComponent.jsValue + '{{/this}}', content);
var value = "";
eval('value = ' + getValueScript);
if (dsFormComponent.valueMergType == 'extend') {
params = $.extend(true, params, value);
} else {
params[content.attrDefinition.attrKey] = value;
}
}
});
if (dsFormUtil.pageMation.type == 'edit') {
// 编辑布局
params["id"] = GetUrlParam("id");
}
var teamAuth = dsFormUtil.pageMation.serviceBeanCustom.serviceBean.teamAuth;
if (teamAuth) {
// 开启团队权限
params['objectId'] = objectId;
params['objectKey'] = objectKey;
var flowable = dsFormUtil.pageMation.serviceBeanCustom.serviceBean.flowable;
if (flowable) {
activitiUtil.startProcess(dsFormUtil.pageMation.serviceBeanCustom.serviceBean.className, null, function (approvalId) {
dsFormUtil.saveData("2", approvalId);
});
} else {
dsFormUtil.saveData(null, null);
}
// 发送请求
dsFormUtil.sendRequest({
businessApi: dsFormUtil.pageMation.businessApi,
params: params,
loadTable: false,
callback: function () {
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
parent.refreshCode = '0';
}
});
}
return false;
});
},
// 保存数据
saveData: function (formSubType, approvalId) {
var params = {};
$.each(dsFormUtil.pageMation.dsFormPageContents, function (i, content) {
if (!isNull(content.attrDefinition) && !$.isEmptyObject(content.attrDefinition)) {
// 获取组件中获取值的脚本
var dsFormComponent = content.dsFormComponent;
var getValueScript = getDataUseHandlebars('{{#this}}' + dsFormComponent.jsValue + '{{/this}}', content);
var value = "";
eval('value = ' + getValueScript);
if (dsFormComponent.valueMergType == 'extend') {
params = $.extend(true, params, value);
} else {
params[content.attrDefinition.attrKey] = value;
}
}
});
if (dsFormUtil.pageMation.type == 'edit') {
// 编辑布局
params["id"] = GetUrlParam("id");
}
var teamAuth = dsFormUtil.pageMation.serviceBeanCustom.serviceBean.teamAuth;
if (teamAuth) {
// 开启团队权限
params['objectId'] = objectId;
params['objectKey'] = objectKey;
}
var flowable = dsFormUtil.pageMation.serviceBeanCustom.serviceBean.flowable;
if (flowable) {
params["formSubType"] = formSubType;
params["approvalId"] = approvalId;
}
// 发送请求
dsFormUtil.sendRequest({
businessApi: dsFormUtil.pageMation.businessApi,
params: params,
loadTable: false,
callback: function () {
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
parent.refreshCode = '0';
}
});
},
/**
* 加载组件信息
*
......@@ -219,10 +276,6 @@ var dsFormUtil = {
content.attrDefinition = {};
}
if (!isNull(content.require)) {
content.require = content.require.join('|');
}
var jsonStr = {bean: content};
var html = getDataUseHandlebars('{{#bean}}' + component.htmlContent + '{{/bean}}', jsonStr);
var html_js = getDataUseHandlebars('{{#bean}}' + component.jsContent + '{{/bean}}', jsonStr);
......@@ -258,7 +311,7 @@ var dsFormUtil = {
* @param boxId
* @param content
*/
loadComponentValueDetails: function (boxId, content, value) {
loadComponentValueDetails: function (boxId, content, value, data) {
if (!dsFormUtil.checkLoadHandlebar) {
dsFormUtil.loadHandlebar();
}
......@@ -276,7 +329,7 @@ var dsFormUtil = {
var jsCon = `<script id="script${content.id}">${html_js}</script>`;
$("#" + boxId).append(html + jsCon);
} else {
content.value = dsFormUtil.getContentLinkedDataValue(content, value);
content.value = dsFormUtil.getContentLinkedDataValue(content, value, data);
if (showType == 4) { // 图片展示
var photoValue = [];
if (!isNull(value)) {
......@@ -376,56 +429,71 @@ var dsFormUtil = {
},
// 获取显示值
getContentLinkedDataValue: function (content, value) {
getContentLinkedDataValue: function (content, value, data) {
if (isNull(value)) {
return null;
}
if (isNull(content.attrDefinition) || isNull(content.attrDefinition.attrDefinitionCustom)) {
var attrDefinition = content.attrDefinition;
if (isNull(attrDefinition) || isNull(attrDefinition.attrDefinitionCustom)) {
return null;
}
var customAttr = content.attrDefinition.attrDefinitionCustom;
var customAttr = attrDefinition.attrDefinitionCustom;
if (!isNull(customAttr.objectId) || !isNull(customAttr.defaultData) || !$.isEmptyObject(customAttr.businessApi)) {
var dataType = customAttr.dataType;
if (dataType == 1) {
// 自定义
var obj = isNull(customAttr.defaultData) ? [] : customAttr.defaultData;
if (typeof obj == 'string') {
obj = JSON.parse(obj);
}
return getInPoingArr(json, "id", value, "name");
} else if (dataType == 2) {
// 枚举
return skyeyeClassEnumUtil.getEnumDataNameByCodeAndKey(customAttr.objectId, 'id', value, 'name');
} else if (dataType == 3) {
// 数据字典
return sysDictDataUtil.getDictDataNameByCodeAndKey(customAttr.objectId, value);
} else if (dataType == 4) {
// 自定义接口
var businessApi = customAttr.businessApi;
var params = {};
$.each(businessApi.params, function (key, value) {
var realValue = "";
eval('realValue = ' + value);
params[key] = realValue;
});
var url = "";
var obj = [];
eval('url = ' + businessApi.serviceStr + ' + "' + businessApi.api + '"');
AjaxPostUtil.request({url: url, params: params, type: 'json', method: businessApi.method, callback: function (json) {
obj = json.rows;
}, async: false});
return getInPoingArr(obj, "id", value, "name");
}
}
if (!isNull(customAttr.dsFormComponent)) {
// 团队模板类型的组件,value值单独转换
if (customAttr.dsFormComponent.numCode == 'teamTemplate') {
return teamObjectPermissionUtil.getTeamTemplate(value).name;
}
}
if (isNull(customAttr.objectId) && isNull(customAttr.defaultData) && isNull(customAttr.businessApi) && $.isEmptyObject(customAttr.businessApi)) {
return value;
}
var dataType = customAttr.dataType;
if (dataType == 1) {
// 自定义
var obj = isNull(customAttr.defaultData) ? [] : customAttr.defaultData;
if (typeof obj == 'string') {
obj = JSON.parse(obj);
// 用户组件,value值特殊处理
if (customAttr.dsFormComponent.numCode == 'userStaffChoose') {
var key = attrDefinition.attrKey;
// 例如:将key由relationUserId变为relationUserMation
key = key.replace("Id", "") + "Mation";
value = data[key];
if (!isNull(value) && !$.isEmptyObject(value)) {
// 判断值是否为对象,如果是对象,则组装成数组
if (!$.isArray(value)) {
value = [].concat(value);
}
}
}
return getInPoingArr(json, "id", value, "name");
} else if (dataType == 2) {
// 枚举
return skyeyeClassEnumUtil.getEnumDataNameByCodeAndKey(customAttr.objectId, 'id', value, 'name');
} else if (dataType == 3) {
// 数据字典
return sysDictDataUtil.getDictDataNameByCodeAndKey(customAttr.objectId, value);
} else if (dataType == 4) {
// 自定义接口
var businessApi = customAttr.businessApi;
var params = {};
$.each(businessApi.params, function (key, value) {
var realValue = "";
eval('realValue = ' + value);
params[key] = realValue;
});
var url = "";
var obj = [];
eval('url = ' + businessApi.serviceStr + ' + "' + businessApi.api + '"');
AjaxPostUtil.request({url: url, params: params, type: 'json', method: businessApi.method, callback: function (json) {
obj = json.beans;
}, async: false});
return getInPoingArr(obj, "id", value, "name");
}
return value;
},
......
......@@ -126,9 +126,9 @@
'请输入正确的身份证号',
'身份证校验'
],
double: [//验证小数点后两位,一般用于金钱验证
/(^$)|^[0-9]+(.[0-9]{1,2})?$/,
'请输入正确正数,小数点后最多',
double: [
/(^$)|^[0-9]+(.[0-9]{1,6})?$/,
'请输入正确正数,小数点后最多',
'小数点后两位校验'
],
postcode: [
......@@ -137,8 +137,8 @@
'邮编校验'
],
money: [
/(^$)|^0{1}([.]\d{1,2})?$|^[1-9]\d*([.]{1}[0-9]{1,2})?$/,
'请输入正确的金额, 可保留小数点后',
/(^$)|^0{1}([.]\d{1,6})?$|^[1-9]\d*([.]{1}[0-9]{1,6})?$/,
'请输入正确的金额, 可保留小数点后',
'金钱校验'
],
percentage: [
......@@ -452,7 +452,13 @@
$("body").find(".mask-req-str").remove();
$("body").append(maskReqStr);
layui.each(verifyElem, function (index, item) {
var othis = $(this), ver = othis.attr('win-verify').split('|');
var othis = $(this);
var ver;
if (othis.attr('win-verify').indexOf(",") >= 0) {
ver = othis.attr('win-verify').split(',');
} else {
ver = othis.attr('win-verify').split('|');
}
var tips = '';
var value = othis.val();
// 如果是单选,则获取单选的值
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册