export default { convertTemplate: function (fields) { //手机端逻辑,不能根据模板,而只能根据field模拟一个模板 // 需要隐藏的字段列表 const hiddenFields = [ 'registration_file', 'confirmation_file', 'mobiscrollEndDate', 'mobiscrollStartDate', 'train_phone', 'certificate_address', 'contract_phone', 'exam_site_id', 'uscc', // 'legalCardnumber', 'security_z_file', 'security_f_file', 'service_file', 'public_completion_file', 'enterprise_completion_file', 'public_reach_file', 'enterprise_reach_file', 'hunan_legal_number', 'hunan_telephone', 'new_hunan_legal', 'new_hunan_telephone', 'identity', 'appointmentLegalBirth', 'remark', 'legalType', 'hunan_name', 'hunan_office_telephone' ]; const hiddenFields2 = [ '__CJG6f4T2gkFSC8JX1mN', '__TOvYAitvVY3v2vTkaTD', '__3gYADMQtNHjqaZ6VHPA', '__9ealU7HVHAJy0jUExdS', '__Jejr7X4WP5yrWdMAzWt', '__GNRsnc0aVbRvDdH6RiB', '__ulEZLUhpjWIFdSSAA7M', '__lzH8WLBjZ7AhZ4oOOpf', '__0tQjWJgy6tB3y0sIujb', '__h106fEIobaIvAoY7glG', '__X7iCc4ksDwRSrbOqs6P', '__hLgsTz0LkygYpt1Scob', '__3hE2pevsJ96urYZzQYV', '__Rs9CweTvjkvPUNhO4Vv', '__jWltDJUWfdMxZRuLUjO', '__gMoo8GxmareslMFq93P', '__awvEiMFjIwnp45d9QGA', '__RedaQF8shZrtOvOC2nz', '__Gz6r0AbPujs578qA4kM', '__IXn72AAyl4iAcdnEiNy', '__dlQsa9C4FmYQSAEqenM', '__Hav8xddiQ4j9QV0IEuA', '__ZRvj6BuwxbgnrnZXPQd', '__rEX2YF1d6KKvI9sa92T', '__NlePDlZ2XNVbC67AtYu', '__z0ucapBAoNnyNTCNRyS', '__KAMaSSLxPchaMXxL9LL' ]; let mobileTmpl = ""; fields.forEach(field => { // console.log("field", field); // 检查字段是否在隐藏列表中 if ((field && hiddenFields.includes(field.name))) { return; // 跳过隐藏字段 } if (field && hiddenFields2.includes(field.divId)) { return; // 跳过隐藏字段 } if(field.name == "materials"){ field.value = JSON.parse(field.value)[0].name } if(field.name == "sevicePermitType1"){ field.discript = "申报公司类型" } if(field.name == "legalCardnumber"){ field.discript = "法人身份证号" } let fieldTag = ""; if (field) { switch (field.formField) { case "InputField": fieldTag = "o-input"; break; case "TextareaField": fieldTag = "o-textarea"; break; case "RadioField": fieldTag = "o-radio"; break; case "SelectField": fieldTag = "o-select"; break; case "ImageUploadField": fieldTag = "o-image-upload"; break; case "AttachmentUploadField": fieldTag = "o-file-upload"; break; case "DateField": fieldTag = "o-date-picker"; break; case "IncludeField": fieldTag = "o-include"; break; case "CheckboxField": fieldTag = "o-checkbox"; break; case "MapField": fieldTag = "o-map"; break; case "QRCodeField": fieldTag = "o-qrcode"; break; case "SuggestField": fieldTag = "o-suggest"; break; case "DepartmentField": fieldTag = "o-dept-select"; break; case "TreeDepartmentField": fieldTag = "o-dept-tree-select" break; case "SelectAboutField": fieldTag = "o-select-about"; break; case "HTMLEditorField": fieldTag = "o-html"; break; case "SurveyField": fieldTag = "o-survey"; break; case "FlowHistoryField": fieldTag = "o-flow-history"; break; case "ButtonField": fieldTag = "o-button"; break; case "ViewDialogField": fieldTag = "o-view-dialog"; break; case "TabField": fieldTag = "o-tab"; break; case "GenericWordField": fieldTag = "o-word"; break; case "UserField": fieldTag = "o-user-select"; break; case "WeixinGpsField": fieldTag = "o-gps"; break; case "OnLineTakePhotoField": fieldTag = "o-photo"; break; case "WeixinRecordField": fieldTag = "o-record"; break; case "CalctextField": fieldTag = "o-calctext"; break; case "FlowReminderHistoryField": fieldTag = "o-flow-reminder-history"; break; case "SplitField": fieldTag = "o-split"; break; case "NoField": fieldTag = "o-no"; break; case "KmsDataField": fieldTag = "o-file-kms"; break; default: if (field.type == "tabfield" || field.scope == "tabField") { fieldTag = "o-tab"; } break; } } if (fieldTag != "") mobileTmpl += `<${fieldTag} v-bind="$attrs" v-on="$listeners" id='${field.id}'>`; }); return mobileTmpl; }, /** * 获取cookie的值 */ getCookie: function(cname){ let name = cname + "="; let ca = document.cookie.split(';'); for(let i=0; i { newUrl.searchParams.append(key, paramsObject[key]); }); return newUrl.toString(); }, /** * 处理字段值 - 统一处理脚本执行和materials字段 */ processFieldValue: function(field, vm) { if (!field || !field.value) return; if (field.name === 'materials') { this.processMaterialsField(field); return; } if (typeof field.value === 'string' && field.value.includes(']*>|<\/script>/gi, '')); // 使用call方法将vm作为this上下文执行脚本 scriptFunction.call(vm); } catch (error) { console.error('Script execution error:', error); } }, /** * 处理materials字段 */ processMaterialsField: function(field) { try { if (typeof field.value === 'string') { const materialsArray = JSON.parse(field.value); field.materialsList = materialsArray; // 显示第一个文件的名称 if (Array.isArray(materialsArray) && materialsArray.length > 0) { field.displayValue = materialsArray[0].name || '未知文件'; } else { field.displayValue = ''; } } } catch (error) { console.error('Materials field processing error:', error); field.materialsList = []; field.displayValue = ''; } }, /** * 格式化文件大小 */ formatFileSize: function(size) { if (!size) return '0 B'; const units = ['B', 'KB', 'MB', 'GB', 'TB']; let unitIndex = 0; let fileSize = size; while (fileSize >= 1024 && unitIndex < units.length - 1) { fileSize /= 1024; unitIndex++; } return `${fileSize.toFixed(2)} ${units[unitIndex]}`; } }