language="javascript" src="/system/resource/js/jquery/jquery.min.js"> language="javascript" src="/system/resource/vue/vue.js"> language="javascript" src="/system/resource/vue/bluebird.min.js"> language="javascript" src="/system/resource/vue/axios.js"> language="javascript" src="/system/resource/vue/polyfill.js"> language="javascript" src="/system/resource/vue/token.js"> language="javascript" src="/system/resource/js/openapp/api.js">
src="/system/resource/openapp/formquery/js/index.js">
src="/system/resource/openapp/ueditor/ueditor.config.js">
src="/system/resource/openapp/ueditor/ueditor.all.js">
src="/system/resource/openapp/formquery/js/area.js">
src="/system/resource/js/base64.js">
src="/system/resource/openapp/formquery/layer/layer.js">
src="/system/resource/openapp/formquery/js/plupload.full.min.js">
src="/system/resource/openapp/formquery/js/jeDate/src/jedate.js" type="text/javascript">
type="text/javascript">
var base64 = new Base64();
// 所有编辑器的id
var editorsArr = [];
// 用于存储所有编辑器实例的对象
var editors = {};
// 编辑器是否需要进行实例化
var isEditors = false;
/**
* 编辑器实例化
*/
(function ($) {
$.fn.ueditor = function () {
// 如果通过jQuery获取了多个元素,可以创建多个编辑器
for (var i = 0; i < this.length; i++) {
// UEditor会自己管理各个编辑器实例,不会重复创建
UE.getEditor(this[i].id,{
toolbars: [
['fullscreen', 'undo', 'redo', 'bold','italic','fontfamily','fontsize',
'horizontal','blockquote','subscript','superscript',
'underline','indent']],
imageUrlPrefix:'/aop_component//webber/formquery/',
imagePathFormat: '/filesystem/upload',
imageFieldName:'file',
imageActionName: 'upload',
catcherActionName: 'show',
catcherUrlPrefix:'/aop_static/',
emotionLocalization:true,
autoHeightEnabled: false,
autoFloatEnabled: true,
imageAllowFiles: [".png", ".jpg", ".jpeg", ".gif"],
});
}
// 只返回第一个元素对应的编辑器实例。因此,如果要获取编辑器,使用的选择器应该只匹配一个元素,多余的元素将忽略
if(this[0]){
return UE.getEditor(this[0].id);
}
};
})($);
//数组过滤
Array.prototype.notempty = function() {
var arr = [];
this.map(function(val, index) {
//过滤规则为,不为空串、不为null、不为undefined,也可自行修改
if (val !== "" && val != undefined) {
arr.push(val);
}
});
return arr;
}
function initPage(params) {
var app = new Vue({
el: '#searchForm' + params.viewId,
data: {
columnList: [], // 列头数据;
newLists: [], // 后端返回数据处理之后的table表格展示数据;
direction: 'V', // 表格的方向;
// 省市区显示配置;
defultProp: {
label: "name",
value: "name",
checkStrictly: true
},
listData: true,
isMsgCode:false,
isUnLogin: false,
address:[], // 省市区集合;
msgCode:'',
tableHeads:[],
tableDatas:[],
formName: 'searchForm',
showPage: false,
vcodeTime: '',
pageData: {},
formData: [], // 查询条件的集合;
showCancel: false,
showResult: false,
resultList: [],
randomKey :'', // 验证码;
keyChangeing: 0,
isNotUse: '',
isSubmit: 0,
isPublish: 1,
noStr:'',
total: 0, // 总条数;
currentPage: 1,
pagesize: 10, // 每页默认10条;
pageCode: '',
columnName: '',
IdNum: '', // 接收身份证id字段,便于提交时md5加密;
newLists_jd: [],
whole: [],
conditionOrder: '' // 接收排序之后的查询条件显示顺序;
},
mounted: function() {
this.address = province;
var templateCode = getParam("id") || params.templateCode;
if (templateCode) {
this.showCancel = true;
this.getData(templateCode)
} else {
this.showCancel = false;
}
},
methods: {
getData: function(templateCode) {
var that = this;
postWithLogin(params.urlPrefix + '/query/front/items/get', JSON.stringify({
"owner": params.owner,
"templateCode": templateCode
}), params.mode, params.owner, function(res) {
if (res.code == '0000') {
if(res.data.needLogin == 'Y' && gettoken(10).trim() == "tourist"){
layer.msg('需要登录后才能操作,请先登录');
}
if(res.data.msgCode != 'N'){
that.isMsgCode = true;
}
that.showPage = true;
// 级联返回值中存在无数据的空子集,判断为空移除;
for(var i = 0;i
0) {
for (var i=0;i pageMax) {
this.currentPage = pageMax
}
this.onSubmit();
},
// 切换当前页;
handleCurrentChange: function(val) {
this.currentPage = val;
this.onSubmit();
},
// 配置查询部分展示;
setPageData: function() {
// 对查询条件进行排序;
var transfer = [];
var conditionOrderArr;
if (this.pageData.conditionOrder && this.pageData.conditionOrder.indexOf(",") != -1) {
conditionOrderArr = this.pageData.conditionOrder.split(',');
for (var s=0;s 0 ? "(.\\d{0," + item.rule.leaveLength + "})" : ""
reg = new RegExp("^(\\d+)" + s + "?$")
break;
case 'radio':
placeholderWord = "请选择";
break;
case 'date':
placeholderWord = "请选择";
var that = this;
break
}
// key 键名,
// rule后台配置的规则,
// tips 错误提示,
// name 展示的名称,
// placeholder,
// value绑定的值,
// reg 校验规则,
// showError是否展示提示,
// errMsg 错误提示文案
if(item.itemType =="checkbox"){
this.formData.push({
itemType: item.itemType,
key: item.columnCode,
rule: item.rule,
tips: item.columnTips,
name: item.columnName,
placeholder: item.rule.placeholder,
value: [],
reg: reg,
showError: false,
errorMsg: ''
})
}else if(item.itemType =="select"){
var selectValue = "";
if (item.rule && item.rule.boxVal) {
for (var s = 0;s item.rule.fileSize * 1000 * 1000) {
layer.msg(item.name + '项上传文件最大' + item.rule.fileSize + 'M')
clearFile()
return;
}
}
for (var i = 0; i < files.length; i++) {
item.files.push(files[i])
}
},
FileUploaded: function(up, file, res) {
file["response"] = JSON.parse(res.response);
if(file["response"].state != '1'){
file.status = 1;
}
},
UploadProgress: function(up, file, res) {
if (file && file.response && file.response.code && file.response.code !== '0000') {
layer.closeAll();
layer.msg(file.response.msg);
item.uploader.stop();
} else if (file && file.response && file.response.length > 0) {
if (file.response[0].msg !== "" && file.response[0].type !== '') {
layer.closeAll();
layer.msg(file.response[0].msg);
item.uploader.stop();
}
}
},
UploadComplete: function(up, files) {
layer.closeAll('loading');
var flag = true;
var list = []
for (var i = 0; i < files.length; i++) {
list.push(files[i].response)
if (files[i].status != 5) {
flag = false;
}
}
if (flag) {
layer.msg('上传成功');
if(list.length > 0){
var uploadarrs = "";
var shortCodes = [];
for (var p=0;p 0){
list.push(fileList[i].response);
}
}
if(list.length > 0){
var uploadarrs = "";
var shortCodes = [];
for (var p=0;p Number(r.maxValue)) {
text += '最大为' + r.maxValue
item.showError = true;
item.errorMsg = text;
layer.msg(item.errorMsg);
return false
}
if (r.minValue && r.minValue != -1 && Number(item.value) < Number(r.minValue)) {
text += ' 最小为' + r.minValue
item.showError = true;
item.errorMsg = text;
layer.msg(item.errorMsg);
return false
}
}
}
//下拉框校验
if (r.ifRequred && item.value == '请选择'&& item.itemType == 'select') {
item.showError = true;
item.errorMsg = item.name + '不能为空';
layer.msg(item.errorMsg);
return false
}
// 日期校验,日期选择必须大于开始时间小于结束时间;
if (item.itemType == 'date' && item.value && item.value != '' && (new Date(item.value) > new Date(r.endTime) || new Date(item.value) < new Date(r.startTime))) {
if(r.ifEndTime != false && r.ifStartTime != false){
item.showError = true;
item.errorMsg = item.name+ '必须为' + r.startTime + '和' + r.endTime + '之间的时间';
layer.msg(item.errorMsg);
return false
}
if(r.ifEndTime != false && r.ifStartTime == false){
item.showError = true;
item.errorMsg = item.name+ '必须小于' + r.endTime;
layer.msg(item.errorMsg);
return false
}
if(r.ifEndTime == false && r.ifStartTime != false){
item.showError = true;
item.errorMsg = item.name + '必须大于' + r.startTime;
layer.msg(item.errorMsg);
return false
}
}
// 验证字符输入的长度;
if (r.ifResLen && item.value && item.value != ''&& (item.value.length > Number(r.maxLength) || item.value.length < Number(r.minValue))) {
item.showError = true;
item.errorMsg = item.name + '长度为' + r.minValue + '-' + r.maxLength + '个字符';
layer.msg(item.errorMsg);
return false
}
// ....其他验证后面继续写
item.showError = false
item.errorMsg = ''
return true;
}
},
// 获取验证码;
codeRload: function (){
if(this.isMsgCode == true){
var _this = this;
getWithLogin(params.urlPrefix + "query/generate/code?t=" + Math.random(), {}, params.mode,
params.owner,
function(res) {
if(document.getElementById("codeImg") && res.data.img){
document.getElementById("codeImg").src = res.data.img
_this.randomKey = res.data.id;
}
});
}
},
// 查询提交;
onSubmit: function() {
if(this.pageData.needLogin == 'Y' && gettoken(10).trim() == "tourist"){
layer.msg('需要登录后才能查询,请先登录');
return;
}
var that = this;
var verificationResult = true;
var datas = {};
for (var i = 0; i < this.formData.length; i++) {
var item = this.formData[i];
var t = this.verificationForm(item.key);
if (!t) {
verificationResult = false;
break;
}
if(item.itemType == 'area'){
if(item.value !=''){
var areaStr = item.value.join(',');
datas[item.key] = areaStr
}
} else {
// 数组传值,判断数组,级联内容需要通过-拼接传给后台;其他数组转换为字符串形式,"[默认值1,默认值2]"
if(item.value instanceof Array){
if(item.itemType == 'cascade_select'){
datas[item.key] = item.value.join("-");
} else {
if(item.value.length == 1) {
item.value[0] = item.value[0].split('$')[0];
item.value.push('');
datas[item.key] = "["+item.value.toString()+"]";
}else if(item.value.length == 0) {
datas[item.key] = "";
} else {
for(j = 0,len = item.value.length; j < len; j++) {
item.value[j] = item.value[j].split('$')[0];
}
datas[item.key] = "["+item.value.toString()+"]";
}
}
} else {
datas[item.key] = item.value;
}
}
}
if (verificationResult) {
var templateCode_ = getParam("id") || params.templateCode;
// 查看横向竖向
getWithLogin(params.urlPrefix + "query/result/show/" + templateCode_, {}, params.mode,
params.owner, function(res) {
that.direction = res.data.direction;
var newsArr = [];
// 省市区;
for(var m=0;m 0) {
that.whole.push([]);
}
}
for (var i=0;i0 && s== key - 1) {
for (var key1 in that.whole[s][t]) {
if (key1 >0 && key !== key1) {
delete that.whole[s][t][key1]
}
}
}
}
}
}
// 数据删除之后键名进行重新与下标匹配;数据转为{0:'姓名', 1:'李'}等;
for(var s=0;s 0 && that.formData[j].key === item) {
if (datas[item].substr(0,1) === '[') {
datas[item] = datas[item].substr(1);
}
if (datas[item].substr(datas[item].length-1,1) === ']') {
datas[item] = datas[item].substr(0, datas[item].length-1);
}
if (datas[item].substr(datas[item].length-1,1) === ',') {
datas[item] = datas[item].substr(0, datas[item].length-1);
}
}
}
}
var randomCode = datas.randomCode;
delete datas.randomCode;
var data = {
"templateCode": that.pageData.templateCode,
"verifyCode": randomCode,
"verifyCodeId": that.randomKey,
"saveData": datas,
};
postWithLogin(params.urlPrefix + '/data/addData', JSON.stringify(data), params.mode, params.owner, function(res) {
setTimeout(function() {
canClick = true;
}, 500)
that.codeRload();
if (res.code === '0000') {
that.isSubmit = 1;
window.pageYOffset = 0;
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
that.pageData.successDesc = "提交成功"
} else if (res.code == "220") {
that.isNotUse = 1;
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
that.noStr = '这个应用关停了';
} else if (res.code == "221") {
that.isNotUse = 1;
that.noStr = '这个应用未申请';
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
} else {
layer.msg(res.msg);
}
})
}
}
);
}
},
// 点击返回,重置所有元素;
back: function() {
var that = this;
that.total = 0;
that.currentPage = 1;
that.resultList = [];
that.listData = true;
that.newLists_jd = [];
that.whole = [];
that.formData.forEach(function(item) {
if(item.itemType == "checkbox"){
item.value = [];
}else{
if ((that.pageData.templateCode === 'Form-1635858424629-3563' || that.pageData.templateCode === 'Form-1636207451089-4490' || that.pageData.templateCode === 'Form-1635990593892-9295') && item.itemType === 'select') {
return;
} else {
item.value = "";
}
}
})
that.setDatePicker();
// 获取验证码;
that.codeRload();
}
},
})
}
var openappFormCode = getParam("openappFormCode");
if(openappFormCode != undefined && openappFormCode != ''){
var params = {
viewId: '191644', // 组件id;
templateCode: openappFormCode, // 表单id;
urlPrefix: '/aop_component//webber/formquery/',
urlPrefixuploacd: '/aop_component/',
mode: ' 10',
owner: '1136801658',
staticUrl:'/aop_static/'
}
}else{
var params = {
viewId: '191644',
templateCode: 'Form-1662710324436-2158',
urlPrefix: '/aop_component//webber/formquery/',
urlPrefixuploacd: '/aop_component/',
mode: ' 10',
owner: '1136801658',
staticUrl:'/aop_static/'
}
}
window.onload = function() {
initPage(params);
}