Commit f6fe988c by 庄冰

恢复

parent b2bc534c
node_modules/
app/config/localsettings.js
icp_build.sh
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/gsb-marketplat.iml" filepath="$PROJECT_DIR$/.idea/gsb-marketplat.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>
\ No newline at end of file
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/main.js"
}
]
}
\ No newline at end of file
const system = require("../system");
const uuidv4 = require('uuid/v4');
const settings = require("../../config/settings");
const sha256 = require('sha256');
class APIBase {
constructor() {
this.cacheManager = system.getObject("db.common.cacheManager");
this.logClient = system.getObject("util.logClient");
this.queryAction = ["getTemplateAndLinkInfo"];
}
async setContextParams(pobj, qobj, req) {
let custtags = req.headers["x-consumetag"] ? req.headers["x-consumetag"].split("|") : null;
//当自由用户注册时,需要根据前端传来的companykey,查询出公司,给companyid赋值
req.xctx = {
appkey: req.headers["xappkey"],//用于系统管理区分应用,比如角色
companyid: custtags ? custtags[0].split("_")[1] : null,
password: custtags ? custtags[1].split("_")[1] : null,
username: req.headers["x-consumer-username"],
credid: req.headers["x-credential-identifier"],
companykey: req.headers["x-company-key"],//专用于自由用户注册,自由用户用于一定属于某个存在的公司
}
if (!req.xctx.appkey) {
return [-200, "请求头缺少应用x-app-key"]
} else {
// let app = await this.cacheManager["AppCache"].cache(req.xctx.appkey);
// req.xctx.appid = app.id;
// pobj.app_id = app.id;//传递参数对象里注入app_id
}
//平台注册时,companyid,companykey都为空
//自由注册时,companykey不能为空
// if(!req.xctx.companyid && !req.xctx.companykey){
// return [-200,"请求头缺少应用x-app-key"]
// }
if (req.xctx.companyid) {//在请求传递数据对象注入公司id
pobj.company_id = req.xctx.companyid;
}
}
async doexec(gname, methodname, pobj, query, req) {
try {
var shaStr = await sha256(JSON.stringify(pobj));
let xarg = await this.setContextParams(pobj, query, req);
if (xarg && xarg[0] < 0) {
return system.getResultFail(...xarg);
}
var rtn = await this[methodname](pobj, query, req);
this.logClient.log(pobj, req, rtn);
return rtn;
} catch (e) {
this.logClient.log(pobj, req, null, e.stack);
console.log(e.stack, "api调用异常--error...................");
var rtnerror = system.getResultFail(-200, "出现异常,请联系管理员");
return rtnerror;
}
}
}
module.exports = APIBase;
const system = require("../system");
const uuidv4 = require('uuid/v4');
class DocBase {
constructor() {
this.apiDoc = {
group: "逻辑分组",
groupDesc: "",
name: "",
desc: "请对当前类进行描述",
exam: "概要示例",
methods: []
};
this.initClassDoc();
}
initClassDoc() {
this.descClass();
this.descMethods();
}
descClass() {
var classDesc = this.classDesc();
this.apiDoc.group = classDesc.groupName;
this.apiDoc.groupDesc = this.examDescHtml(classDesc.groupDesc);
this.apiDoc.name = classDesc.name;
this.apiDoc.desc = this.examDescHtml(classDesc.desc);
this.apiDoc.exam = this.examHtml();
}
examDescHtml(desc) {
// var tmpDesc = desc.replace(/\\/g, "<br/>");
return desc;
}
examHtml() {
var exam = this.exam();
exam = exam.replace(/\\/g, "<br/>");
return exam;
}
exam() {
throw new Error("请在子类中定义类操作示例");
}
classDesc() {
throw new Error(`
请重写classDesc对当前的类进行描述,返回如下数据结构
{
groupName:"auth",
groupDesc:"认证相关的包"
desc:"关于认证的类",
exam:"",
}
`);
}
descMethods() {
var methoddescs = this.methodDescs();
for (var methoddesc of methoddescs) {
for (var paramdesc of methoddesc.paramdescs) {
this.descMethod(methoddesc.methodDesc, methoddesc.methodName
, paramdesc.paramDesc, paramdesc.paramName, paramdesc.paramType,
paramdesc.defaultValue, methoddesc.rtnTypeDesc, methoddesc.rtnType);
}
}
}
methodDescs() {
throw new Error(`
请重写methodDescs对当前的类的所有方法进行描述,返回如下数据结构
[
{
methodDesc:"生成访问token",
methodName:"getAccessKey",
paramdescs:[
{
paramDesc:"访问appkey",
paramName:"appkey",
paramType:"string",
defaultValue:"x",
},
{
paramDesc:"访问secret",
paramName:"secret",
paramType:"string",
defaultValue:null,
}
],
rtnTypeDesc:"xxxx",
rtnType:"xxx"
}
]
`);
}
descMethod(methodDesc, methodName, paramDesc, paramName, paramType, defaultValue, rtnTypeDesc, rtnType) {
var mobj = this.apiDoc.methods.filter((m) => {
if (m.name == methodName) {
return true;
} else {
return false;
}
})[0];
var param = {
pname: paramName,
ptype: paramType,
pdesc: paramDesc,
pdefaultValue: defaultValue,
};
if (mobj != null) {
mobj.params.push(param);
} else {
this.apiDoc.methods.push(
{
methodDesc: methodDesc ? methodDesc : "",
name: methodName,
params: [param],
rtnTypeDesc: rtnTypeDesc,
rtnType: rtnType
}
);
}
}
}
module.exports = DocBase;
const APIBase = require("../../api.base");
const system = require("../../../system");
const settings = require("../../../../config/settings");
/**
* 用户端调用订单相关接口
*/
class Template extends APIBase {
constructor() {
super();
this.templateinfoSve = system.getObject("service.template.templateinfoSve");
this.templatelinkSve = system.getObject("service.template.templatelinkSve");
this.formsubmitrecordSve= system.getObject("service.configmag.formsubmitrecordSve");
this.forminfoSve= system.getObject("service.configmag.forminfoSve");
this.needinfoSve= system.getObject("service.aggregation.needinfoSve");
this.redisClient = system.getObject("util.redisClient");
this.formCache={};
}
/**
* 接口跳转-POST请求
* action_process 执行的流程
* action_type 执行的类型
* action_body 执行的参数
*/
async springBoard(pobj, qobj, req) {
if (!pobj.actionType) {
return system.getResult(null, "actionType参数不能为空");
}
var result = await this.opActionProcess(pobj, pobj.actionType, req);
return result;
}
async opActionProcess(pobj, action_type, req) {
var opResult = null;
var self = this;
pobj.clientIp = req.clientIp;
pobj.xctx = req.xctx;
switch (action_type) {
case "editTemplateContent"://修改模板内容
opResult = await this.templateinfoSve.editTemplateContent(pobj);
break;
case "findOneByCode"://模板查询
opResult = await this.templateinfoSve.getTemplateInfoByCode(pobj);
break;
case "getTemplateAndLinkInfo"://根据链接参数获取模板链接信息
console.log("getTemplateAndLinkInfo+++++++++++++++++++++++++++");
console.log(JSON.stringify(pobj));
opResult = await this.templatelinkSve.getTemplateAndLinkInfo2(pobj);
break;
case "submitFormRecord"://提交表单记录
opResult = await this.formsubmitrecordSve.submitFormRecord(pobj);
break;
case "pushFormInfo2Fq"://推送需求表单信息至蜂擎
opResult = await this.formsubmitrecordSve.pushFormInfo2Fq();
break;
case "pushMarketplatFormInfo2Fq"://推送需求表单信息至蜂擎
opResult = await this.formsubmitrecordSve.pushMarketplatFormInfo2Fq(pobj.actionBody);
break;
case "pushAggregationNeedInfo2fq":
opResult = await this.needinfoSve.pushAggregationNeedInfo2fq(pobj.actionBody);
break;
default:
opResult = system.getResult(null, "action_type参数错误");
break;
}
return opResult;
}
async getFormInfoById(pobj, qobj, req){
var shaStr = "forminfo_"+pobj.id;
var rtn = null;
console.log(this.formCache,"+++++++++++++getFormInfoById++++++++++++++++++++++");
if(this.formCache[shaStr]){
rtn = this.formCache[shaStr];
}else{
rtn = await this.redisClient.get(shaStr); // 先试图从redis读取数据
if(rtn){
this.formCache[shaStr] = rtn;
}
}
//---- 从redis中读取到数据
if (rtn) {
var rtnObj = JSON.parse(rtn);
return system.getResult(rtnObj);
} else {
let result = await this.forminfoSve.findOne({id:pobj.id},[]);
// 将数据保存到redis中
await this.redisClient.set(shaStr, JSON.stringify(result));
this.formCache[shaStr] = JSON.stringify(result);
return system.getResult(result);
}
}
//删除表单缓存
async delTemplateFormCache(key){
if(key && this.formCache[key]){
delete this.formCache[key];
}
}
}
module.exports = Template;
const APIBase = require("../../api.base");
const system = require("../../../system");
const settings = require("../../../../config/settings");
var db = system.getObject("db.common.connection").getCon();
/**
* 用户端调用订单相关接口
*/
class Templateconfig extends APIBase {
constructor() {
super();
this.imginfoSve = system.getObject("service.configmag.imginfoSve");
this.forminfoSve = system.getObject("service.configmag.forminfoSve")
this.templateinfoSve = system.getObject("service.template.templateinfoSve");
this.templatelinkSve = system.getObject("service.template.templatelinkSve");
}
/**
* 接口跳转-POST请求
* action_process 执行的流程
* action_type 执行的类型
* action_body 执行的参数
*/
async springBoard(pobj, qobj, req) {
if (!pobj.actionType) {
return system.getResult(null, "actionType参数不能为空");
}
var result = await this.opActionProcess(pobj, pobj.actionType, req);
return result;
}
async opActionProcess(pobj, action_type, req) {
var opResult = null;
var self = this;
pobj.clientIp = req.clientIp;
pobj.xctx = req.xctx;
switch (action_type) {
case "test"://测试
opResult = system.getResultSuccess("测试接口");
break;
case "getImgList": // 查询图片
pobj.actionBody["company_id"] = pobj.company_id;
opResult = await this.imginfoSve.getImgList(pobj.actionBody);
break;
case "createImginfo": // 添加图片
opResult = await this.imginfoSve.createImginfo(pobj.actionBody);
break;
// case "getTemplateList": // 获取模板列表
// opResult = await this.templateinfoSve.getTemplateList(pobj.actionBody);
// // opResult = await this.templateinfoSve.findByCompanyId(pobj.actionBody);
// break;
case "editTemplate": // 编辑模板信息
opResult = await this.templateinfoSve.editTemplate(pobj);
break;
case "getFormList": // 获取表单列表
var actionBody = pobj.actionBody || {};
actionBody["company_id"] = pobj.company_id;
opResult = await this.forminfoSve.getFormList(pobj.actionBody);
break;
case "getTemplateAndLinkInfo": // 根据链接参数获取模板链接信息
opResult = await this.templatelinkSve.getTemplateAndLinkInfo2(pobj);
break;
case "copyFormInfo": // 复制表单
opResult = await this.forminfoSve.copyFormInfo(pobj.actionBody);
break;
case "deleteFormInfo": // 删除表单
opResult = await this.forminfoSve.deleteFormInfo(pobj.actionBody);
break;
default:
opResult = system.getResult(null, "action_type参数错误");
break;
}
return opResult;
}
}
module.exports = Templateconfig;
const APIBase = require("../../api.base");
const system = require("../../../system");
const settings = require("../../../../config/settings");
/**
* 用户端调用订单相关接口
*/
class Templatelink extends APIBase {
constructor() {
super();
this.templatelinkSve = system.getObject("service.template.templatelinkSve");
}
/**
* 接口跳转-POST请求
* action_process 执行的流程
* action_type 执行的类型
* action_body 执行的参数
*/
async springBoard(pobj, qobj, req) {
if (!pobj.actionType) {
return system.getResult(null, "actionType参数不能为空");
}
var result = await this.opActionProcess(pobj, pobj.actionType, req);
return result;
}
async opActionProcess(pobj, action_type, req) {
var opResult = null;
var self = this;
pobj.xctx = req.xctx;
switch (action_type) {
case "test"://测试
opResult = system.getResultSuccess("测试接口");
break;
default:
opResult = system.getResult(null, "action_type参数错误");
break;
}
return opResult;
}
}
module.exports = Templatelink;
var APIBase = require("../../api.base");
var system = require("../../../system");
var settings = require("../../../../config/settings");
class AccessAuthAPI extends APIBase {
constructor() {
super();
this.appS = system.getObject("service.common.appSve");
this.apitradeSvr = system.getObject("service.common.apitradeSve");
this.authUtils = system.getObject("util.businessManager.authUtils");
this.userSve = system.getObject("service.auth.userSve");
}
//不从平台应用列表入口登录时
//先要调用平台登录接口
//返回token,利用这个token再去登录某个具体APP
//会话存储具体APP的用户信息
//每个前端应用打开时,先检查是否存在token
//如果存在,就去访问获取用户信息,---调用本接口--即刻
//进入或登录某个具体应用
//前提是已经具备了统一管理的账号,并且已经在统一管理账号登录,客户端具备了token
//进入某个具体应用时,需要指定 x-appkey请求头
//
async loginToApp(p,q,req){
let appkey=req.xctx.appkey;
}
classDesc() {
return {
groupName: "auth",
groupDesc: "认证相关的包",
name: "AccessAuthAPI",
desc: "关于认证的类",
exam: `
post http://p.apps.com/api/auth/accessAuth/getAccessKey
{
appKey:xxxxx,
secret:yyyyyy
}
`,
};
}
methodDescs() {
return [
{
methodDesc: "生成访问token,访问地址:http://......../api/auth/accessAuth/getAccessKey,访问token需要放置到后续API方法调用的请求头中",
methodName: "getAccessKey",
paramdescs: [
{
paramDesc: "访问appkey",
paramName: "appkey",
paramType: "string",
defaultValue: "",
},
{
paramDesc: "访问secret",
paramName: "secret",
paramType: "string",
defaultValue: "",
}
],
rtnTypeDesc: "返回JSON对象字符串",
rtnType: "json object {accessKey: xxxxxx, app: {xxx:xxx}},注意app,是当前app信息,详细见后面示例"
},
];
}
exam() {
return ``
}
}
module.exports = AccessAuthAPI;
var APIBase = require("../../api.base");
var system = require("../../../system");
var settings = require("../../../../config/settings");
class RoleAuthAPI extends APIBase {
constructor() {
super();
this.authS=system.getObject("service.auth.authSve");
}
async findAuthsByRole(p,q,req){
var tmpRoles=p.roles;
var appid=p.appid;
var comid=p.companyid;
var auths=await this.authS.findAuthsByRole(tmpRoles,appid,comid);
return system.getResult(auths);
}
exam(){
return `
xxxxxxxxx
yyyyyyyyy
zzzzzzzzz
ooooooo
`;
}
classDesc() {
return {
groupName: "auth",
groupDesc: "角色授权相关的API",
name: "RoleAuthAPI",
desc: "角色授权相关的API",
exam: "",
};
}
methodDescs() {
return [
{
methodDesc: "按照角色获取权限,访问地址:/api/auth/roleAuth/findAuthsByRole",
methodName: "findAuthsByRole",
paramdescs: [
{
paramDesc: "应用的ID",
paramName: "appid",
paramType: "int",
defaultValue: "x",
},
{
paramDesc: "角色列表",
paramName: "roles",
paramType: "array",
defaultValue: null,
}
],
rtnTypeDesc: "逗号分隔的",
rtnType: "string"
}
];
}
}
module.exports = RoleAuthAPI;
\ No newline at end of file
var APIBase = require("../../api.base");
var system = require("../../../system");
var settings = require("../../../../config/settings");
class AppAPI extends APIBase {
constructor() {
super();
this.appS = system.getObject("service.common.appSve");
}
async create(pobj,q,req){
// console.log("oooooooooooooooooooooooooooooooooooooooooooooooo")
// console.log(req.xctx)
let rtn=this.appS.create(pobj,q,req);
return system.getResult(rtn);
}
async del(pobj,q,req){
let rtn=this.appS.delete(pobj,q,req);
return system.getResult(rtn);
}
classDesc() {
return {
groupName: "auth",
groupDesc: "认证相关的包",
name: "AccessAuthAPI",
desc: "关于认证的类",
exam: `
post http://p.apps.com/api/auth/accessAuth/getAccessKey
{
appKey:xxxxx,
secret:yyyyyy
}
`,
};
}
methodDescs() {
return [
];
}
exam() {
return ``
}
}
module.exports = AppAPI;
var APIBase = require("../../api.base");
var system = require("../../../system");
var settings = require("../../../../config/settings");
const crypto = require('crypto');
var fs=require("fs");
var accesskey='3KV9nIwW8qkTGlrPmAe3HnR3fzM6r5';
var accessKeyId='LTAI4GC5tSKvqsH2hMqj6pvd';
var url="https://gsb-zc.oss-cn-beijing.aliyuncs.com";
class OSSAPI extends APIBase{
constructor(){
super()
}
async getOssConfig(){
var policyText = {
"expiration":"2119-12-31T16:00:00.000Z",
"conditions":[
["content-length-range",0,1048576000],
["starts-with","$key","zc"]
]
};
var b = new Buffer(JSON.stringify(policyText));
var policyBase64 = b.toString('base64');
var signature= crypto.createHmac('sha1',accesskey).update(policyBase64).digest().toString('base64'); //base64
var data={
OSSAccessKeyId:accessKeyId,
policy:policyBase64,
Signature:signature,
Bucket:'gsb-zc',
success_action_status:201,
url:url
};
return system.getResult(data);
};
async upfile(srckey,dest){
var oss=System.getObject("util.ossClient");
var result=await oss.upfile(srckey,"/tmp/"+dest);
return result;
};
async downfile(srckey){
var oss=System.getObject("util.ossClient");
var downfile=await oss.downfile(srckey).then(function(){
downfile="/tmp/"+srckey;
return downfile;
});
return downfile;
};
}
module.exports=OSSAPI;
const system = require("../system");
const settings = require("../../config/settings");
const uuidv4 = require('uuid/v4');
class CtlBase {
constructor(gname, sname) {
this.serviceName = sname;
this.service = system.getObject("service." + gname + "." + sname);
this.cacheManager = system.getObject("db.common.cacheManager");
this.logClient = system.getObject("util.logClient");
}
static getServiceName(ClassObj) {
return ClassObj["name"].substring(0, ClassObj["name"].lastIndexOf("Ctl")).toLowerCase() + "Sve";
}
async update(pobj, qobj, req) {
const up = await this.service.update(pobj);
return system.getResult(up);
}
async create(pobj, qobj, req) {
const up = await this.service.create(pobj);
return system.getResult(up);
}
async delete(pobj, qobj, req) {
const up = await this.service.delete(pobj);
return system.getResult(up);
}
async bulkDelete(ids) {
var en = await this.service.bulkDelete(ids);
return system.getResult(en);
}
async findAndCountAll(pobj, qobj, req) {
//设置查询条件
const rs = await this.service.findAndCountAll(pobj);
return system.getResult(rs);
}
async refQuery(pobj, qobj, req) {
pobj.refwhere.app_id = pobj.app_id;
pobj.refwhere.company_id = pobj.company_id;
let rtn = await this.service.refQuery(pobj);
return rtn
}
async setContextParams(pobj, qobj, req) {
let custtags = req.headers["x-consumetag"] ? req.headers["x-consumetag"].split("|") : null;
let lastindex = custtags ? custtags.length - 1 : 0;
//当自由用户注册时,需要根据前端传来的companykey,查询出公司,给companyid赋值
req.xctx = {
appkey: req.headers["xappkey"],//用于系统管理区分应用,比如角色
fromappkey: req.headers["xfromappkey"],//来源APP,如果没有来源与appkey相同
companyid: custtags ? custtags[0].split("_")[1] : null,
fromcompanykey: req.headers["xfromcompanykey"],//专用于自由用户注册,自由用户用于一定属于某个存在的公司
password: custtags ? custtags[lastindex].split("_")[1] : null,
username: req.headers["x-consumer-username"],
userid: req.headers["x-consumer-custom-id"],
credid: req.headers["x-credential-identifier"],
regrole: req.headers["xregrole"],
bizpath: req.headers["xbizpath"],
opath: req.headers['xopath'],
ptags: req.headers['xptags'],
codename: req.headers["xcodename"],
codetitle: req.headers["xcodetitle"] ? decodeURI(req.headers["xcodetitle"]) : '',
}
if (req.xctx.ptags && req.xctx.ptags != "") {
pobj.opath = req.xctx.ptags
} else {
pobj.opath = req.xctx.opath
}
if (!req.xctx.appkey) {
return [-200, "请求头缺少应用x-app-key"]
} else {
// let app=await this.cacheManager["AppCache"].cache(req.xctx.fromappkey);
// req.xctx.appid=app.id;
// if(!pobj.app_id){
// pobj.app_id=app.id;//传递参数对象里注入app_id
// }
}
//平台注册时,companyid,companykey都为空
//自由注册时,companykey不能为空
// if(!req.xctx.companyid && !req.xctx.companykey){
// return [-200,"请求头缺少应用x-app-key"]
// }
if (!req.xctx.companyid && req.xctx.fromcompanykey && req.xctx.fromcompanykey != "null" && req.xctx.fromcompanykey != "undefined") {
let comptmp = await this.cacheManager["CompanyCache"].cache(req.xctx.fromcompanykey);
req.xctx.companyid = comptmp.id;
}
if (req.xctx.companyid) {//在请求传递数据对象注入公司id
pobj.company_id = req.xctx.companyid;
}
if (req.xctx.userid) {//在请求传递数据对象注入公司id
pobj.userid = req.xctx.userid;
}
if (req.xctx.username) {//在请求传递数据对象注入公司名称
pobj.username = req.xctx.username;
}
pobj.bizpath = req.xctx.bizpath;
}
async doexec(methodname, pobj, query, req) {
try {
let xarg = await this.setContextParams(pobj, query, req);
if (xarg && xarg[0] < 0) {
return system.getResultFail(...xarg);
}
//从请求头里面取appkey_consumename
// var consumeName=req.headers[""]
// var appkey=
// if( this.session["appkey_consumename"]) {
// }else{
// //从头里取,从redis中取出缓存对象赋值到控制基类的session属性
// //appkey_consumename
// this.session={};
// }
//req.session=redis缓存的上下文对象
var rtn = await this[methodname](pobj, query, req);
this.logClient.log(pobj, req, rtn)
return rtn;
} catch (e) {
this.logClient.log(pobj, req, null, e.stack);
console.log(e.stack, "出现异常,请联系管理员.......");
return system.getResultFail(-200, "出现异常,请联系管理员");
}
}
}
module.exports = CtlBase;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class BottomMenuConfigCtl extends CtlBase {
constructor() {
super("aggregation", CtlBase.getServiceName(BottomMenuConfigCtl));
}
async create(pobj, qobj, req) {
pobj.company_id = req && req.xctx && req.xctx.companyid ?req.xctx.companyid : "";
const up = await this.service.create(pobj);
return up;
}
async update(pobj, qobj, req) {
const up = await this.service.update(pobj);
return up;
}
}
module.exports = BottomMenuConfigCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class ClueMaintenanceCtl extends CtlBase {
constructor() {
super("aggregation", CtlBase.getServiceName(ClueMaintenanceCtl));
}
async create(pobj, qobj, req) {
pobj.company_id = req && req.xctx && req.xctx.companyid ?req.xctx.companyid : "";
const up = await this.service.create(pobj);
return up;
}
async update(pobj, qobj, req) {
const up = await this.service.update(pobj);
return up;
}
/**
* 线索编辑
* @create rxs
* @param pobj
* @param qobj
* @param req
* @returns {Promise<void>}
*/
async updateClueInfo(pobj,qobj,req){
const result = await this.service.updateCluteInfo(pobj);
return result;
}
}
module.exports = ClueMaintenanceCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class CycleProductCtl extends CtlBase {
constructor() {
super("aggregation", CtlBase.getServiceName(CycleProductCtl));
}
async create(pobj, qobj, req) {
pobj.company_id = req && req.xctx && req.xctx.companyid ?req.xctx.companyid : "";
const up = await this.service.create(pobj);
return up;
}
async update(pobj, qobj, req) {
const up = await this.service.update(pobj);
return up;
}
}
module.exports = CycleProductCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class NeedinfoCtl extends CtlBase {
constructor() {
super("aggregation", CtlBase.getServiceName(NeedinfoCtl));
}
}
module.exports = NeedinfoCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class PictureWarehouseCtl extends CtlBase {
constructor() {
super("aggregation", CtlBase.getServiceName(PictureWarehouseCtl));
}
async create(pobj, qobj, req) {
pobj.company_id = req && req.xctx && req.xctx.companyid ?req.xctx.companyid : "";
const up = await this.service.create(pobj);
return up;
}
async update(pobj, qobj, req) {
const up = await this.service.update(pobj);
return up;
}
}
module.exports = PictureWarehouseCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class PopularRecommendationCtl extends CtlBase {
constructor() {
super("aggregation", CtlBase.getServiceName(PopularRecommendationCtl));
}
async create(pobj, qobj, req) {
pobj.company_id = req && req.xctx && req.xctx.companyid ?req.xctx.companyid : "";
const up = await this.service.create(pobj);
return up;
}
async update(pobj, qobj, req) {
const up = await this.service.update(pobj);
return up;
}
}
module.exports = PopularRecommendationCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class ProductCtl extends CtlBase {
constructor() {
super("aggregation", CtlBase.getServiceName(ProductCtl));
}
async create(pobj, qobj, req) {
pobj.company_id = req && req.xctx && req.xctx.companyid ?req.xctx.companyid : "";
const up = await this.service.create(pobj);
return up;
}
async update(pobj, qobj, req) {
const up = await this.service.update(pobj);
return up;
}
/**
* 获取某一类下的产品
* @create rxs
* @param pobj
* @returns {Promise<void>}
*/
async getProductsByType(pobj){
const result = await this.service.getProductsByType(pobj);
return result;
}
}
module.exports = ProductCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class ProductTypeCtl extends CtlBase {
constructor() {
super("aggregation", CtlBase.getServiceName(ProductTypeCtl));
}
async findAndCountAll(obj){
var res = await this.service.findAndCountAll(obj);
return res;
}
async create(pobj, qobj, req) {
pobj.company_id = req && req.xctx && req.xctx.companyid ?req.xctx.companyid : "";
const up = await this.service.create(pobj);
return up;
}
async update(pobj, qobj, req) {
const up = await this.service.update(pobj);
return up;
}
async getProductTypeInfo(pobj){
const res = await this.service.getProductTypeInfo(pobj);
return res;
}
}
module.exports = ProductTypeCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class RotationChartCtl extends CtlBase {
constructor() {
super("aggregation", CtlBase.getServiceName(RotationChartCtl));
}
async create(pobj, qobj, req) {
pobj.company_id = req && req.xctx && req.xctx.companyid ? req.xctx.companyid : "";
const up = await this.service.create(pobj);
return up;
}
async update(pobj, qobj, req) {
const up = await this.service.update(pobj);
return up;
}
async updates(pobj, qobj, req) {
const up = await this.service.updates(pobj);
return up;
}
}
module.exports = RotationChartCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class SecondLevelNeedConfigCtl extends CtlBase {
constructor() {
super("aggregation", CtlBase.getServiceName(SecondLevelNeedConfigCtl));
}
async create(pobj, qobj, req) {
pobj.company_id = req && req.xctx && req.xctx.companyid ?req.xctx.companyid : "";
const up = await this.service.create(pobj);
return up;
}
async update(pobj, qobj, req) {
const up = await this.service.update(pobj);
return up;
}
}
module.exports = SecondLevelNeedConfigCtl;
var system = require("../../../system")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class AppCtl extends CtlBase {
constructor() {
super("common", CtlBase.getServiceName(AppCtl));
this.userCtl = system.getObject("service.auth.userSve");
}
async findAllApps(p, q, req) {
var rtns = await this.service.findAllApps(p.userid);
return system.getResult(rtns);
}
async getApp(p,q,req) {
let app= await this.cacheManager["AppCache"].cache(p.appkey, null);
return system.getResult({funcJson:JSON.parse(app.functionJSON)});
}
async translateToRouter(funarray,results,parent){
funarray.forEach(item=>{
let result={}
result.path=item.code
result.name=item.code
result.meta={
hideInMenu: false,
hideInBread:false,
notCache: true,
title:item.title,
icon:'replaceIconName'
}
result.component="replaceRightPath"
if(parent){
parent.children.push(result)
}else{
results.push(result)
}
if(item.children && item.children.length>0){
result.children=[]
this.translateToRouter(item.children,results,result)
}
})
}
async buildFrontRouter(p,q,req){
let appkey=p.appkey
let app= await this.cacheManager["AppCache"].cache(appkey, null);
let funobj=JSON.parse(app.functionJSON)
let results=[]
await this.translateToRouter(funobj,results,null)
let rtns=await this.service.upFrontRoute(results,app.id)
await this.cacheManager["AppCache"].invalidate(appkey, null);
return system.getResult({url:rtns.url})
}
async getFuncs(p,q,req){
let appkey=p.appkey
let app= await this.cacheManager["AppCache"].cache(appkey, null);
return system.getResult({funcJson:JSON.parse(app.functionJSON)})
//return system.getResult({funcJson:[]})
}
async saveFuncTree(p,q,req){
let rtn=await this.service.saveFuncTree(p)
return system.getResult(rtn)
}
async create(pobj, queryobj, req) {
pobj.creator_id = pobj.userid;//设置创建者
return super.create(pobj, queryobj, req)
}
async update(pobj, queryobj, req) {
return super.update(pobj, queryobj, req);
}
async initNewInstance(pobj, queryobj, req) {
var rtn = {};
rtn.appkey = this.getUUID();
rtn.secret = this.getUUID();
return system.getResult(rtn);
}
async resetPass(pobj, queryobj, req) {
pobj.password = await super.encryptPasswd(settings.defaultpwd);
var rtn = this.service.resetPass(pobj);
return system.getResult(rtn);
}
async createAdminUser(pobj, queryobj, req) {
pobj.password = settings.defaultpwd;
var rtn = this.service.createAdminUser(pobj);
return system.getResult(rtn);
}
async create(pobj, queryobj, req) {
//设置创建者,需要同时创建app管理员、默认密码、电话
pobj.creator_id = pobj.userid;
// pobj.password=super.encryptPasswd(settings.defaultpwd);
//构造默认的应用相关的URL
pobj.authUrl = settings.protocalPrefix + pobj.domainName + "/auth";
pobj.docUrl = settings.protocalPrefix + pobj.domainName + "/web/common/metaCtl/getApiDoc";
pobj.uiconfigUrl = settings.protocalPrefix + pobj.domainName + "/api/meta/config/fetchAppConfig";
pobj.opCacheUrl = settings.protocalPrefix + pobj.domainName + "/api/meta/opCache/opCacheData";
pobj.notifyCacheCountUrl = settings.protocalPrefix + pobj.domainName + "/api/meta/opCache/recvNotificationForCacheCount";
var app = await super.create(pobj, queryobj, req);
return system.getResult(app);
}
async fetchApiCallData(pobj, queryobj, req) {
var curappkey = pobj.curappkey;
//检索出作为访问时的app呼出调用数据
var rtn = await this.service.fetchApiCallData(curappkey);
return system.getResultSuccess(rtn);
}
//接受缓存计数通知接口
async recvNotificationForCacheCount(p, q, req) {
return this.service.recvNotificationForCacheCount(p);
}
}
module.exports = AppCtl;
var p={"appkey":"08cb8300-ef1e-4e35-ba49-3de36ba497d2"}
let acl=new AppCtl()
acl.buildFrontRouter(p).then(res=>{
console.log(res.data)
})
\ No newline at end of file
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
const uuidv4 = require('uuid/v4');
class CachSearchesCtl extends CtlBase {
constructor() {
super("common", CtlBase.getServiceName(CachSearchesCtl));
}
async initNewInstance(queryobj, qobj) {
return system.getResultSuccess({});
}
async findAndCountAll(pobj, gobj, req) {
pobj.opCacheUrl = req.session.app.opCacheUrl;
pobj.appid = req.appid;
return await this.service.findAndCountAllCache(pobj);
}
async delCache(queryobj, qobj, req) {
var param = { key: queryobj.key, appid: req.appid, opCacheUrl: req.session.app.opCacheUrl };
return await this.service.delCache(param);
}
async clearAllCache(queryobj, qobj, req) {
var param = { appid: req.appid, opCacheUrl: req.session.app.opCacheUrl };
return await this.service.clearAllCache(param);
}
}
module.exports = CachSearchesCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class MetaCtl extends CtlBase {
constructor() {
super("common", CtlBase.getServiceName(MetaCtl));
}
}
module.exports = MetaCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
const uuidv4 = require('uuid/v4');
var moment = require("moment");
class OplogCtl extends CtlBase {
constructor() {
super("common",CtlBase.getServiceName(OplogCtl));
//this.appS=system.getObject("service.appSve");
}
async initNewInstance(qobj) {
var u = uuidv4();
var aid = u.replace(/\-/g, "");
var rd = { name: "", appid: aid }
return system.getResult(rd);
}
async debug(obj) {
obj.logLevel = "debug";
return this.create(obj);
}
async info(obj) {
obj.logLevel = "info";
return this.create(obj);
}
async warn(obj) {
obj.logLevel = "warn";
return this.create(obj);
}
async error(obj) {
obj.logLevel = "error";
return this.create(obj);
}
async fatal(obj) {
obj.logLevel = "fatal";
return this.create(obj);
}
/*
返回20位业务订单号
prefix:业务前缀
*/
async getBusUid_Ctl(prefix) {
prefix = (prefix || "");
if (prefix) {
prefix = prefix.toUpperCase();
}
var prefixlength = prefix.length;
var subLen = 8 - prefixlength;
var uidStr = "";
if (subLen > 0) {
uidStr = await this.getUidInfo_Ctl(subLen, 60);
}
var timStr = moment().format("YYYYMMDDHHmm");
return prefix + timStr + uidStr;
}
/*
len:返回长度
radix:参与计算的长度,最大为62
*/
async getUidInfo_Ctl(len, radix) {
var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');//长度62,到yz长度为长36
var uuid = [], i;
radix = radix || chars.length;
if (len) {
for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
} else {
var r;
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
uuid[14] = '4';
for (i = 0; i < 36; i++) {
if (!uuid[i]) {
r = 0 | Math.random() * 16;
uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
}
}
}
return uuid.join('');
}
}
module.exports = OplogCtl;
var system = require("../../../system")
const http = require("http")
const querystring = require('querystring');
var settings=require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class PConfigCtl extends CtlBase {
constructor() {
super("common",CtlBase.getServiceName(PConfigCtl));
this.userCtl = system.getObject("service.auth.userSve");
}
async initNewInstance(pobj,queryobj, req) {
var rtn = {};
return system.getResult(rtn);
}
async create(pobj,queryobj, req) {
pobj.app_id=req.appid;
pobj.appkey=req.appkey;
var rtn=await super.create(pobj,queryobj, req);
return system.getResult(rtn);
}
async update(pobj,queryobj, req) {
pobj.app_id=req.appid;
pobj.appkey=req.appkey;
var rtn=await super.update(pobj);
return system.getResult(rtn);
}
}
module.exports = PConfigCtl;
var system = require("../../../system")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class RouteCtl extends CtlBase {
constructor() {
super("common", CtlBase.getServiceName(RouteCtl));
this.appS=system.getObject("service.common.appSve")
}
async create(p,q,req){
let appid=p.app_id;
let apptmp= await this.appS.findById(appid)
let routedata={
name:p.name,
hosts:p.shosts.split(","),
paths:p.spaths.split(","),
isstrip:false,
app_id:appid,
shosts:p.shosts,
spaths:p.spaths
}
let rtn= await this.service.create(apptmp.name, routedata, req);
return system.getResult(rtn)
}
}
module.exports = RouteCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
class SocketNotifyCtl{
constructor(){
}
setSocketServer(s){
this.socketServer=s;
}
//异步推送消息到客户端
notifyClientMsg(user,msg){
var uk= this.buildPrivateChannel(user);
var msgHandler=this.socketServer.users[uk];
msgHandler.notifyClient(uk,msg);
}
buildPrivateChannel(user){
var ukchannel= user.app_id+"¥"+user.id;
return ukchannel;
}
buildMsgTarget(user){
var ukchannel= user.app_id+"¥"+user.id;
var nickName=user.nickName;
var imgUrl=user.imgUrl;
var rtn=ukchannel+"¥"+nickName+"¥"+imgUrl;
return rtn;
}
}
module.exports=SocketNotifyCtl;
var system=require("../../../system")
const CtlBase = require("../../ctl.base");
const crypto = require('crypto');
var fs=require("fs");
var accesskey='3KV9nIwW8qkTGlrPmAe3HnR3fzM6r5';
var accessKeyId='LTAI4GC5tSKvqsH2hMqj6pvd';
var url="https://gsb-zc.oss-cn-beijing.aliyuncs.com";
class UploadCtl extends CtlBase{
constructor(){
super("common",CtlBase.getServiceName(UploadCtl));
this.cmdPdf2HtmlPattern = "docker run -i --rm -v /tmp/:/pdf 0c pdf2htmlEX --zoom 1.3 '{fileName}'";
this.restS=system.getObject("util.execClient");
this.cmdInsertToFilePattern = "sed -i 's/id=\"page-container\"/id=\"page-container\" contenteditable=\"true\"/'";
//sed -i 's/1111/&BBB/' /tmp/input.txt
//sed 's/{position}/{content}/g' {path}
}
async getOssConfig(){
var policyText = {
"expiration":"2119-12-31T16:00:00.000Z",
"conditions":[
["content-length-range",0,1048576000],
["starts-with","$key","zc"]
]
};
var b = new Buffer(JSON.stringify(policyText));
var policyBase64 = b.toString('base64');
var signature= crypto.createHmac('sha1',accesskey).update(policyBase64).digest().toString('base64'); //base64
var data={
OSSAccessKeyId:accessKeyId,
policy:policyBase64,
Signature:signature,
Bucket:'gsb-zc',
success_action_status:201,
url:url
};
return data;
};
async upfile(srckey,dest){
var oss=system.getObject("util.ossClient");
var result=await oss.upfile(srckey,"/tmp/"+dest);
return result;
};
async downfile(srckey){
var oss=system.getObject("util.ossClient");
var downfile=await oss.downfile(srckey).then(function(){
downfile="/tmp/"+srckey;
return downfile;
});
return downfile;
};
async pdf2html(obj){
var srckey=obj.key;
var downfile=await this.downfile(srckey);
var cmd=this.cmdPdf2HtmlPattern.replace(/\{fileName\}/g, srckey);
var rtn=await this.restS.exec(cmd);
var path="/tmp/"+srckey.split(".pdf")[0]+".html";
var a=await this.insertToFile(path);
fs.unlink("/tmp/"+srckey);
var result=await this.upfile(srckey.split(".pdf")[0]+".html",srckey.split(".pdf")[0]+".html");
return result.url;
};
async insertToFile(path){
var cmd=this.cmdInsertToFilePattern+" "+path;
return await this.restS.exec(cmd);
};
}
module.exports=UploadCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class BusinesstypeCtl extends CtlBase {
constructor() {
super("configmag", CtlBase.getServiceName(BusinesstypeCtl));
}
async refQuery(pobj, qobj, req) {
pobj.refwhere.company_id = pobj.company_id;
let rtn = await this.service.refQuery(pobj);
return rtn
}
async create(pobj, qobj, req) {
if(!pobj.p_id || pobj.p_id.length<1){
pobj["p_id"] = 0;
}
const up = await this.service.create(pobj);
return system.getResult(up);
}
}
module.exports = BusinesstypeCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class FormInfoCtl extends CtlBase {
constructor() {
super("configmag", CtlBase.getServiceName(FormInfoCtl));
}
/**
* 重写保存方法
* @param pobj
* @returns {Promise<void>}
*/
async create(pobj){
let result = await this.service.createForm(pobj);
return result;
}
/**
* 重写添加方法
* @param pobj
* @returns {Promise<void>}
*/
async update(pobj) {
let result = await this.service.updateForm(pobj);
return result;
}
/**
* 复制表单
* @returns {Promise<void>}
*/
async copy(pobj){
let result = await this.service.copy(pobj);
return result;
}
/**
* 删除
* @param pobj
* @returns {Promise<*>}
*/
async delete(pobj){
let result = await this.service.deleteForm(pobj);
return result;
}
/**
* 根据id获取表单
* @param pobj
* @returns {Promise<void>}
*/
async findById(pobj){
let result = await this.service.findOne({id:pobj.id},[]);
return system.getResult(result);
}
}
module.exports = FormInfoCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class FormItemCtl extends CtlBase {
constructor() {
super("configmag", CtlBase.getServiceName(FormItemCtl));
}
async getFormItemListByFormId(pobj){
return this.service.getFormItemListByFormId(pobj);
}
/**
* 重写添加方法
* @param pobj
* @returns {Promise<void>}
*/
async create(pobj){
let result = this.service.createItem(pobj);
return result;
}
/**
* 重写修改方法
* @param pobj
* @returns {Promise<void>}
*/
async update(pobj){
let result = this.service.updateItem(pobj);
return result;
}
/**
* 删除
* @param pobj
* @returns {Promise<*>}
*/
async delete(pobj){
let result = this.service.deleteItem(pobj);
return result;
}
}
module.exports = FormItemCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class FormsubmitrecordCtl extends CtlBase {
constructor() {
super("configmag", CtlBase.getServiceName(FormsubmitrecordCtl));
}
}
module.exports = FormsubmitrecordCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class ImgInfoCtl extends CtlBase {
constructor() {
super("configmag", CtlBase.getServiceName(ImgInfoCtl));
}
async create(pobj, qobj, req) {
pobj.company_id = req && req.xctx && req.xctx.companyid ?req.xctx.companyid : "";
const up = await this.service.create(pobj);
return up;
}
async update(pobj, qobj, req) {
const up = await this.service.update(pobj);
return up;
}
}
module.exports = ImgInfoCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class LaunchchannelCtl extends CtlBase {
constructor() {
super("configmag", CtlBase.getServiceName(LaunchchannelCtl));
}
/**
* 重写添加方法
* @param pobj
* @returns {Promise<{msg: string, data: *, bizmsg: string, status: number}>}
*/
async create(pobj){
const result = await this.service.createChannel(pobj);
return result;
}
async refQuery(pobj, qobj, req) {
pobj.refwhere.company_id = pobj.company_id;
let rtn = await this.service.refQuery(pobj);
return rtn
}
/**
* 重写update方法
* @returns {Promise<void>}
*/
async update(pobj){
let result = await this.service.updateChannel(pobj);
return result ;
}
/**
* 重写删除
* @param pobj
* @returns {Promise<void>}
*/
async delete(pobj){
let result = await this.service.deleteChannel(pobj);
return result;
}
}
module.exports = LaunchchannelCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class LaunchtypeCtl extends CtlBase {
constructor() {
super("launchtypemag", CtlBase.getServiceName(LaunchtypeCtl));
}
async refQuery(pobj, qobj, req) {
pobj.refwhere.company_id = pobj.company_id;
let rtn = await this.service.refQuery(pobj);
return rtn
}
}
module.exports = LaunchtypeCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class MainInfoCtl extends CtlBase {
constructor() {
super("configmag", CtlBase.getServiceName(MainInfoCtl));
}
async create(pobj, qobj, req) {
pobj.company_id = req && req.xctx && req.xctx.companyid ?req.xctx.companyid : "";
const up = await this.service.create(pobj);
return up;
}
async refQuery(pobj, qobj, req) {
pobj.refwhere.company_id = pobj.company_id;
let rtn = await this.service.refQuery(pobj);
return rtn;
}
async update(pobj, qobj, req) {
const up = await this.service.update(pobj);
return up;
}
async delete(pobj, qobj, req) {
const up = await this.service.delete(pobj);
return up;
}
}
module.exports = MainInfoCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class PutTypeCtl extends CtlBase {
constructor() {
super("configmag", CtlBase.getServiceName(PutTypeCtl));
}
async create(pobj, qobj, req) {
pobj.company_id = req && req.xctx && req.xctx.companyid ?req.xctx.companyid : "";
const up = await this.service.create(pobj);
return up;
}
async update(pobj, qobj, req) {
const up = await this.service.update(pobj);
return up;
}
async delete(pobj, qobj, req) {
const up = await this.service.delete(pobj);
return up;
}
}
module.exports = PutTypeCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class TemplateinfoCtl extends CtlBase {
constructor() {
super("template", CtlBase.getServiceName(TemplateinfoCtl));
this.templateinfoSve = system.getObject('service.template.templateinfoSve');
}
/**
* 创建模板
* @param {*} pobj
*/
async createTemplate(pobj){
return this.templateinfoSve.createTemplate(pobj);
}
/**
* 重写查询方法
* @param pobj
* @returns {Promise<{msg: string, data: *, bizmsg: string, status: number}>}
*/
async findAndCountAll(pobj) {
let result = await this.templateinfoSve.findByCompanyId(pobj);
return result;
}
/**
* 根据编码获取模板信息
* @param {*} pobj
*/
async getTemplateInfoByCode(pobj){
let result = await this.templateinfoSve.findOneByCode(pobj);
return result;
}
/**
* 根据id获取模板信息
* @param {*} pobj
*/
async getTemplateInfoById(pobj){
let result = await this.templateinfoSve.getTemplateInfoById(pobj);
return result;
}
async setTemplateBusinessId(pobj){
let result = await this.templateinfoSve.setTemplateBusinessId(pobj);
return result;
}
/**
* 重写保存方法
* @param pobj
* @returns {Promise<void>}
*/
async create(pobj){
let result = await this.templateinfoSve.editTemplateTdk(pobj);
return result;
}
/**
* 修改启用状态
* @param {*} pobj
*/
async updateSwitchStatus(pobj){
let result = await this.templateinfoSve.updateSwitchStatus(pobj);
return result;
}
}
module.exports = TemplateinfoCtl;
var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
var cacheBaseComp = null;
class TemplatelinkCtl extends CtlBase {
constructor() {
super("template", CtlBase.getServiceName(TemplatelinkCtl));
this.templatelinkSve = system.getObject('service.template.templatelinkSve');
}
/**
* 重写保存方法
* @param pobj
* @returns {Promise<void>}
*/
async create(pobj){
let result = await this.templatelinkSve.createTemplateLink(pobj);
return result;
}
/**
* 修改投放状态
* @param {*} pobj
*/
async updateLaunchStatus(pobj){
var result = await this.service.updateLaunchStatus(pobj);
return result;
}
async delete(pobj, qobj, req) {
const up = await this.templatelinkSve.deleteTemplateLink(pobj);
return system.getResult(up);
}
}
module.exports = TemplatelinkCtl;
const system = require("../../../system");
const settings = require("../../../../config/settings");
function exp(db, DataTypes) {
var base = {
code: {
type: DataTypes.STRING(50),
unique: true
},
name: DataTypes.STRING(1000),
};
return base;
}
module.exports = exp;
const system = require("../../system");
const settings = require("../../../config/settings");
const appconfig = system.getSysConfig();
function exp(db, DataTypes) {
var base = {
//继承的表引用用户信息user_id
code: DataTypes.STRING(100),
name: DataTypes.STRING(500),
creator: DataTypes.STRING(100),//创建者
updator: DataTypes.STRING(100),//更新者
auditor: DataTypes.STRING(100),//审核者
opNotes: DataTypes.STRING(500),//操作备注
auditStatusName: {
type:DataTypes.STRING(50),
defaultValue:"待审核",
},
auditStatus: {//审核状态"dsh": "待审核", "btg": "不通过", "tg": "通过"
type: DataTypes.ENUM,
values: Object.keys(appconfig.pdict.audit_status),
set: function (val) {
this.setDataValue("auditStatus", val);
this.setDataValue("auditStatusName", appconfig.pdict.audit_status[val]);
},
defaultValue:"dsh",
},
sourceTypeName: DataTypes.STRING(50),
sourceType: {//来源类型 "order": "订单","expensevoucher": "费用单","receiptvoucher": "收款单", "trademark": "商标单"
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.source_type),
set: function (val) {
this.setDataValue("sourceType", val);
this.setDataValue("sourceTypeName", appconfig.pdict.source_type[val]);
}
},
sourceOrderNo: DataTypes.STRING(100),//来源单号
};
return base;
}
module.exports = exp;
const system = require("../system")
const settings = require("../../config/settings.js");
class CacheBase {
constructor() {
this.db = system.getObject("db.common.connection").getCon();
this.redisClient = system.getObject("util.redisClient");
this.desc = this.desc();
this.prefix = this.prefix();
this.cacheCacheKeyPrefix = "sadd_base:cachekey";
this.isdebug = this.isdebug();
}
isdebug() {
return false;
}
desc() {
throw new Error("子类需要定义desc方法,返回缓存描述");
}
prefix() {
throw new Error("子类需要定义prefix方法,返回本缓存的前缀");
}
async cache(inputkey, val, ex, ...items) {
const cachekey = this.prefix + inputkey;
var cacheValue = await this.redisClient.get(cachekey);
if (!cacheValue || cacheValue == "undefined" || cacheValue == "null" || this.isdebug) {
var objvalstr = await this.buildCacheVal(cachekey, inputkey, val, ex, ...items);
if (!objvalstr) {
return null;
}
if (ex) {
await this.redisClient.setWithEx(cachekey, objvalstr, ex);
} else {
await this.redisClient.set(cachekey, objvalstr);
}
//缓存当前应用所有的缓存key及其描述
this.redisClient.sadd(this.cacheCacheKeyPrefix, [cachekey + "|" + this.desc]);
return JSON.parse(objvalstr);
} else {
// this.redisClient.setWithEx(cachekey, cacheValue, ex);
return JSON.parse(cacheValue);
}
}
async getCache(inputkey, ex) {
const cachekey = this.prefix + inputkey;
var cacheValue = await this.redisClient.get(cachekey);
if (!cacheValue || cacheValue == "undefined" || cacheValue == "null") {
return null;
} else {
if (ex) {
this.redisClient.set(cachekey, cacheValue, ex);
}
return JSON.parse(cacheValue);
}
}
async invalidate(inputkey) {
const cachekey = this.prefix + inputkey;
this.redisClient.delete(cachekey);
return 0;
}
async buildCacheVal(cachekey, inputkey, val, ex, ...items) {
throw new Error("子类中实现构建缓存值的方法,返回字符串");
}
}
module.exports = CacheBase;
const CacheBase=require("../cache.base");
const system=require("../../system");
//缓存首次登录的赠送的宝币数量
class CacheLocker extends CacheBase{
constructor(){
super();
this.prefix="locker_";
}
desc(){
}
prefix(){
}
async init(tradekey){
const key=this.prefix+tradekey;
return this.redisClient.rpushWithEx(key,"1",1800);
}
async enter(tradekey){
const key=this.prefix+tradekey;
return this.redisClient.rpop(key);
}
async release(tradekey){
const key=this.prefix+tradekey;
return this.redisClient.rpushWithEx(key,"1",1800);
}
}
module.exports=CacheLocker;
const CacheBase = require("../cache.base");
const system = require("../../system");
const settings = require("../../../config/settings");
class AppCache extends CacheBase{
constructor(){
super();
this.prefix="g_centerappkey:";
this.appDao=system.getObject("db.common.appDao");
}
isdebug(){
return settings.env=="dev";
}
desc(){
return "缓存本地应用对象";
}
prefix(){
return "g_applocal_"
}
async buildCacheVal(cachekey,inputkey, val, ex, ...items) {
const configValue=await this.appDao.findOne({appkey:inputkey});
if (configValue) {
return JSON.stringify(configValue);
}
return null;
}
}
module.exports=AppCache;
\ No newline at end of file
const CacheBase = require("../cache.base");
const system = require("../../system");
const settings = require("../../../config/settings");
class CompanyCache extends CacheBase{
constructor(){
super();
this.prefix="g_centercompanykey:";
this.companyDao=system.getObject("db.common.companyDao");
}
isdebug(){
return settings.env=="dev";
}
desc(){
return "缓存统一公司对象";
}
prefix(){
return "gc_companylocal_"
}
async buildCacheVal(cachekey,inputkey, val, ex, ...items) {
const configValue=await this.companyDao.findOne({companykey:inputkey});
if (configValue) {
return JSON.stringify(configValue);
}
return null;
}
}
module.exports=CompanyCache;
\ No newline at end of file
const CacheBase = require("../cache.base");
const system = require("../../system");
class MagCache extends CacheBase {
constructor() {
super();
this.prefix = "magCache";
}
desc() {
return "管理当前缓存的key";
}
prefix() {
return "g_magcache:";
}
async getCacheSmembersByKey(key) {
return this.redisClient.smembers(key);
}
async delCacheBySrem(key, value) {
return this.redisClient.srem(key, value)
}
async keys(p) {
return this.redisClient.keys(p);
}
async get(k) {
return this.redisClient.get(k);
}
async del(k) {
return this.redisClient.delete(k);
}
async clearAll() {
console.log("xxxxxxxxxxxxxxxxxxxclearAll............");
return this.redisClient.flushall();
}
}
module.exports = MagCache;
const CacheBase = require("../cache.base");
const system = require("../../system");
const settings = require("../../../config/settings");
class UserCache extends CacheBase{
constructor(){
super();
this.userDao=system.getObject("db.auth.userDao");
}
isdebug(){
return settings.env=="dev";
}
desc(){
return "缓存本地应用对象";
}
prefix(){
return "g_userlocal_"
}
async buildCacheVal(cachekey,inputkey, val, ex, ...items) {
const configValue = await this.userDao.model.findAll({
where: { userName: inputkey, app_id: settings.pmappid },
attributes: ['id','userName', 'nickName','headUrl','jwtkey','jwtsecret','created_at','isSuper','isAdmin','mail'],
include: [
{ model: this.db.models.company,raw:true},
{model:this.db.models.role,as:"Roles",attributes:["id","code"],}
],
});
if (configValue && configValue[0]) {
return JSON.stringify(configValue[0]);
}
return null;
}
}
module.exports=UserCache;
\ No newline at end of file
const CacheBase = require("../cache.base");
const system = require("../../system");
const settings = require("../../../config/settings");
//缓存首次登录的赠送的宝币数量
class VCodeCache extends CacheBase {
constructor() {
super();
this.smsUtil = system.getObject("util.smsClient");
}
// isdebug() {
// return settings.env == "dev";
// }
desc() {
return "缓存给手机发送的验证码60妙";
}
prefix() {
return "g_vcode_"
}
async buildCacheVal(cachekey, inputkey, val, ex, ...items) {
//inputkey采用appkey_mobile的形式
var mobile = inputkey;
var tmplCode = val;
var signName = items ? items[0] : "";
var vcode = await this.smsUtil.getUidStr(6, 10);
if (!tmplCode && !signName) {
this.smsUtil.sendMsg(mobile, vcode);
} //tmplCode为发送短信编码,需在阿里开通,signName为短信头描述信息,二者没有传递则用默认的发送验证码
else {
this.smsUtil.aliSendMsg(mobile, tmplCode, signName, JSON.stringify({ code: vcode }));
}
return JSON.stringify({ vcode: vcode });
}
}
module.exports = VCodeCache;
const system = require("../system");
class Dao {
constructor(modelName) {
this.modelName = modelName;
var db = system.getObject("db.common.connection").getCon();
this.db = db;
console.log("........set dao model..........");
console.log(this.modelName)
this.model = db.models[this.modelName];
console.log(this.modelName);
}
preCreate(u) {
return u;
}
async create(u, t) {
var u2 = this.preCreate(u);
if (t) {
return this.model.create(u2, { transaction: t }).then(u => {
return u;
});
} else {
return this.model.create(u2).then(u => {
return u;
});
}
}
static getModelName(ClassObj) {
return ClassObj["name"].substring(0, ClassObj["name"].lastIndexOf("Dao")).toLowerCase()
}
async refQuery(qobj) {
var w = qobj.refwhere ? qobj.refwhere : {};
if (qobj.levelinfo) {
w[qobj.levelinfo.levelfield] = qobj.levelinfo.level;
}
if (qobj.parentinfo) {
w[qobj.parentinfo.parentfield] = qobj.parentinfo.parentcode;
}
//如果需要控制数据权限
if (qobj.datapriv) {
w["id"] = { [this.db.Op.in]: qobj.datapriv };
}
if (qobj.likestr) {
w[qobj.fields[0]] = { [this.db.Op.like]: "%" + qobj.likestr + "%" };
return this.model.findAll({ where: w, attributes: qobj.fields });
} else {
return this.model.findAll({ where: w, attributes: qobj.fields });
}
}
async bulkDelete(ids) {
var en = await this.model.destroy({ where: { id: { [this.db.Op.in]: ids } } });
return en;
}
async bulkDeleteByWhere(whereParam, t) {
var en = null;
if (t != null && t != 'undefined') {
whereParam.transaction = t;
return await this.model.destroy(whereParam);
} else {
return await this.model.destroy(whereParam);
}
}
async delete(qobj, t) {
var en = null
if (t != null && t != 'undefined') {
en = await this.model.findOne({ where: { id: qobj.id }, transaction: t });
if (en != null) {
await en.destroy({ transaction: t });
return en
}
} else {
en = await this.model.findOne({ where: { id: qobj.id } });
if (en != null) {
return en.destroy();
}
}
return null;
}
extraModelFilter(pobj) {
//return {"key":"include","value":{model:this.db.models.app}};
return null;
}
extraWhere(obj, where) {
return where;
}
orderBy() {
//return {"key":"include","value":{model:this.db.models.app}};
return [["created_at", "DESC"]];
}
buildQuery(qobj) {
var linkAttrs = [];
const pageNo = qobj.pageInfo.pageNo;
const pageSize = qobj.pageInfo.pageSize;
const search = qobj.search;
var qc = {};
//设置分页查询条件
qc.limit = pageSize;
qc.offset = (pageNo - 1) * pageSize;
//默认的查询排序
qc.order = this.orderBy();
//构造where条件
qc.where = {};
if (search) {
Object.keys(search).forEach(k => {
// console.log(search[k], ":search[k]search[k]search[k]");
if ((search[k] && search[k] != 'undefined' && search[k] != "") || search[k] === 0) {
if ((k.indexOf("Date") >= 0 || k.indexOf("_at") >= 0)) {
if (search[k] != "" && search[k]) {
var stdate = new Date(search[k][0]);
var enddate = new Date(search[k][1]);
qc.where[k] = { [this.db.Op.between]: [stdate, enddate] };
}
}
else if (k.indexOf("is_enabled") >= 0) {
qc.where[k] = search[k];
}
else if (k.indexOf("id") >= 0) {
qc.where[k] = search[k];
}
else if (k.indexOf("channelCode") >= 0) {
qc.where[k] = search[k];
}
else if (k.indexOf("Type") >= 0) {
qc.where[k] = search[k];
}
else if (k.indexOf("Status") >= 0) {
qc.where[k] = search[k];
}
else if (k.indexOf("status") >= 0) {
qc.where[k] = search[k];
}
else {
if (k.indexOf("~") >= 0) {
linkAttrs.push(k);
} else {
qc.where[k] = { [this.db.Op.like]: "%" + search[k] + "%" };
}
}
}
});
}
this.extraWhere(qobj, qc.where, qc, linkAttrs);
var extraFilter = this.extraModelFilter(qobj);
if (extraFilter) {
qc[extraFilter.key] = extraFilter.value;
}
console.log(" ------------ 传入 的 查询 条件 ------------- ");
console.log(qc);
return qc;
}
buildaggs(qobj) {
var aggsinfos = [];
if (qobj.aggsinfo) {
qobj.aggsinfo.sum.forEach(aggitem => {
var t1 = [this.db.fn('SUM', this.db.col(aggitem.field)), aggitem.field + "_" + "sum"];
aggsinfos.push(t1);
});
qobj.aggsinfo.avg.forEach(aggitem => {
var t2 = [this.db.fn('AVG', this.db.col(aggitem.field)), aggitem.field + "_" + "avg"];
aggsinfos.push(t2);
});
}
return aggsinfos;
}
async findAggs(qobj, qcwhere) {
var aggArray = this.buildaggs(qobj);
if (aggArray.length != 0) {
qcwhere["attributes"] = {};
qcwhere["attributes"] = aggArray;
qcwhere["raw"] = true;
var aggResult = await this.model.findOne(qcwhere);
return aggResult;
} else {
return {};
}
}
async findAndCountAll(qobj, t) {
var qc = this.buildQuery(qobj);
var apps = await this.model.findAndCountAll(qc);
var aggresult = await this.findAggs(qobj, qc);
var rtn = {};
rtn.results = apps;
rtn.aggresult = aggresult;
return rtn;
}
preUpdate(obj) {
return obj;
}
async update(obj, tm) {
var obj2 = this.preUpdate(obj);
if (tm != null && tm != 'undefined') {
return this.model.update(obj2, { where: { id: obj2.id }, transaction: tm });
} else {
return this.model.update(obj2, { where: { id: obj2.id } });
}
}
async bulkCreate(ids, t) {
if (t != null && t != 'undefined') {
return await this.model.bulkCreate(ids, { transaction: t });
} else {
return await this.model.bulkCreate(ids);
}
}
async updateByWhere(setObj, whereObj, t) {
let inWhereObj = {}
if (t && t != 'undefined') {
if (whereObj && whereObj != 'undefined') {
inWhereObj["where"] = whereObj;
inWhereObj["transaction"] = t;
} else {
inWhereObj["transaction"] = t;
}
} else {
inWhereObj["where"] = whereObj;
}
return this.model.update(setObj, inWhereObj);
}
async customExecAddOrPutSql(sql, paras = null) {
return this.db.query(sql, paras);
}
async customQuery(sql, paras, t) {
var tmpParas = null;//||paras=='undefined'?{type: this.db.QueryTypes.SELECT }:{ replacements: paras, type: this.db.QueryTypes.SELECT };
if (t && t != 'undefined') {
if (paras == null || paras == 'undefined') {
tmpParas = { type: this.db.QueryTypes.SELECT };
tmpParas.transaction = t;
} else {
tmpParas = { replacements: paras, type: this.db.QueryTypes.SELECT };
tmpParas.transaction = t;
}
} else {
tmpParas = paras == null || paras == 'undefined' ? { type: this.db.QueryTypes.SELECT } : { replacements: paras, type: this.db.QueryTypes.SELECT };
}
return this.db.query(sql, tmpParas);
}
async findCount(whereObj = null) {
return this.model.count(whereObj, { logging: false }).then(c => {
return c;
});
}
async findSum(fieldName, whereObj = null) {
return this.model.sum(fieldName, whereObj);
}
async getPageList(pageIndex, pageSize, whereObj = null, orderObj = null, attributesObj = null, includeObj = null) {
var tmpWhere = {};
tmpWhere.limit = pageSize;
tmpWhere.offset = (pageIndex - 1) * pageSize;
if (whereObj != null) {
tmpWhere.where = whereObj;
}
if (orderObj != null && orderObj.length > 0) {
tmpWhere.order = orderObj;
}
if (attributesObj != null && attributesObj.length > 0) {
tmpWhere.attributes = attributesObj;
}
if (includeObj != null && includeObj.length > 0) {
tmpWhere.include = includeObj;
tmpWhere.distinct = true;
} else {
tmpWhere.raw = true;
}
return await this.model.findAndCountAll(tmpWhere);
}
async findOne(obj, attributes = []) {
if (attributes.length > 0) {
return this.model.findOne({ "where": obj, attributes, row: true });
} else {
return this.model.findOne({ "where": obj, row: true });
}
}
async findById(oid) {
return this.model.findById(oid);
}
async findAll(obj, include = []) {
return this.model.findAll({ "where": obj, include, row: true });
}
}
module.exports = Dao;
const system = require("../../../system");
const Dao = require("../../dao.base");
class ProducttypeDao extends Dao {
constructor() {
super(Dao.getModelName(ProducttypeDao));
}
// async findAndCountAll(req) {
// var params = {
// // company_id: req.actionBody.company_id
// company_id: 10
// };
// var returnRes = {
// results: {rows:[],count:[]}
// };
// var dataCount = "select count(1) as dataCount from mc_product_type where deleted_at is null and p_id = 0 and company_id = :company_id ";
// var sql = "select * from mc_product_type where deleted_at is null and p_id = 0 and company_id = :company_id ";
// var childData = "select *,count(1) as childCount from mc_product_type where p_id !=0 and company_id = :company_id group by p_id";
// var list = await this.customQuery(sql, params);
// returnRes.results.rows = list;
// var tmpResultCount = await this.customQuery(dataCount, params);
// returnRes.results.count = tmpResultCount && tmpResultCount.length > 0 ? tmpResultCount[0].dataCount : 0;
// var childrenData = await this.customQuery(childData, params);
// for(var i=0;i<childrenData.length;i++){
// returnRes.results.rows[i].childCount = childrenData && childrenData[i].childCount > 0 ? childrenData[i].childCount : 0;
// }
// console.log(returnRes)
// return returnRes;
// }
}
module.exports = ProducttypeDao;
const fs=require("fs");
const settings=require("../../../../config/settings");
class CacheManager{
constructor(){
//await this.buildCacheMap();
this.buildCacheMap();
}
buildCacheMap(){
var self=this;
self.doc={};
var cachePath=settings.basepath+"/app/base/db/cache/";
const files=fs.readdirSync(cachePath);
if(files){
files.forEach(function(r){
var classObj=require(cachePath+"/"+r);
self[classObj.name]=new classObj();
var refTmp=self[classObj.name];
if(refTmp.prefix){
self.doc[refTmp.prefix]=refTmp.desc;
}
else{
console.log("请在"+classObj.name+"缓存中定义prefix");
}
});
}
}
}
module.exports=CacheManager;
// var cm= new CacheManager();
// cm["InitGiftCache"].cacheGlobalVal("hello").then(function(){
// cm["InitGiftCache"].cacheGlobalVal().then(x=>{
// console.log(x);
// });
// });
const Sequelize = require('sequelize');
const settings = require("../../../../config/settings")
const Op = Sequelize.Op
const fs = require("fs")
const path = require("path");
var glob = require("glob");
class DbFactory {
constructor() {
const dbConfig = settings.database();
this.db = new Sequelize(dbConfig.dbname,
dbConfig.user,
dbConfig.password,
{
...dbConfig.config,
operatorsAliases: {
$eq: Op.eq,
$ne: Op.ne,
$gte: Op.gte,
$gt: Op.gt,
$lte: Op.lte,
$lt: Op.lt,
$not: Op.not,
$in: Op.in,
$notIn: Op.notIn,
$is: Op.is,
$like: Op.like,
$notLike: Op.notLike,
$iLike: Op.iLike,
$notILike: Op.notILike,
$regexp: Op.regexp,
$notRegexp: Op.notRegexp,
$iRegexp: Op.iRegexp,
$notIRegexp: Op.notIRegexp,
$between: Op.between,
$notBetween: Op.notBetween,
$overlap: Op.overlap,
$contains: Op.contains,
$contained: Op.contained,
$adjacent: Op.adjacent,
$strictLeft: Op.strictLeft,
$strictRight: Op.strictRight,
$noExtendRight: Op.noExtendRight,
$noExtendLeft: Op.noExtendLeft,
$and: Op.and,
$or: Op.or,
$any: Op.any,
$all: Op.all,
$values: Op.values,
$col: Op.col
}
});
this.db.Sequelize = Sequelize;
this.db.Op = Op;
this.initModels();
this.initRelations();
}
async initModels() {
var self = this;
var modelpath = path.normalize(path.join(__dirname, '../..')) + "/models/";
var models = glob.sync(modelpath + "/**/*.js");
console.log(models.length);
models.forEach(function (m) {
console.log(m);
self.db.import(m);
});
console.log("init models....");
}
async initRelations() {
}
//async getCon(){,用于使用替换table模型内字段数据使用
getCon() {
var that = this;
// await this.db.authenticate().then(()=>{
// console.log('Connection has been established successfully.');
// }).catch(err => {
// console.error('Unable to connect to the database:', err);
// throw err;
// });
//同步模型
if (settings.env == "dev") {
//console.log(pa);
// pconfigObjs.forEach(p=>{
// console.log(p.get({plain:true}));
// });
// await this.db.models.user.create({nickName:"dev","description":"test user",openId:"testopenid",unionId:"testunionid"})
// .then(function(user){
// var acc=that.db.models.account.build({unionId:"testunionid",nickName:"dev"});
// acc.save().then(a=>{
// user.setAccount(a);
// });
// });
}
return this.db;
}
}
module.exports = DbFactory;
// const dbf=new DbFactory();
// dbf.getCon().then((db)=>{
// //console.log(db);
// // db.models.user.create({nickName:"jy","description":"cccc",openId:"xxyy",unionId:"zz"})
// // .then(function(user){
// // var acc=db.models.account.build({unionId:"zz",nickName:"jy"});
// // acc.save().then(a=>{
// // user.setAccount(a);
// // });
// // console.log(user);
// // });
// // db.models.user.findAll().then(function(rs){
// // console.log("xxxxyyyyyyyyyyyyyyyyy");
// // console.log(rs);
// // })
// });
// const User = db.define('user', {
// firstName: {
// type: Sequelize.STRING
// },
// lastName: {
// type: Sequelize.STRING
// }
// });
// db
// .authenticate()
// .then(() => {
// console.log('Co+nnection has been established successfully.');
//
// User.sync(/*{force: true}*/).then(() => {
// // Table created
// return User.create({
// firstName: 'John',
// lastName: 'Hancock'
// });
// });
//
// })
// .catch(err => {
// console.error('Unable to connect to the database:', err);
// });
//
// User.findAll().then((rows)=>{
// console.log(rows[0].firstName);
// });
const system=require("../../../system");
const Dao=require("../../dao.base");
class ImginfoDao extends Dao{
constructor(){
super(Dao.getModelName(ImginfoDao));
}
// extraWhere(obj,w,qc,linkAttrs){
// w["company_id"]=obj.company_id;
// return w;
// }
}
module.exports=ImginfoDao;
\ No newline at end of file
const system=require("../../../system");
const Dao=require("../../dao.base");
class BusinesstypeDao extends Dao{
constructor(){
super(Dao.getModelName(BusinesstypeDao));
}
async refQuery(qobj) {
var w = qobj.refwhere ? qobj.refwhere : {};
w["p_id"] = 0;
if (qobj.levelinfo) {
w[qobj.levelinfo.levelfield] = qobj.levelinfo.level;
}
if (qobj.parentinfo) {
w[qobj.parentinfo.parentfield] = qobj.parentinfo.parentcode;
}
//如果需要控制数据权限
if (qobj.datapriv) {
w["id"] = { [this.db.Op.in]: qobj.datapriv };
}
if (qobj.likestr) {
w[qobj.fields[0]] = { [this.db.Op.like]: "%" + qobj.likestr + "%" };
return this.model.findAll({ where: w, attributes: qobj.fields });
} else {
return this.model.findAll({ where: w, attributes: qobj.fields });
}
}
}
module.exports=BusinesstypeDao;
const system=require("../../../system");
const Dao=require("../../dao.base");
class ForminfoDao extends Dao{
constructor(){
super(Dao.getModelName(ForminfoDao));
}
extraWhere(qobj, qw, qc) {
if(!qobj.company_id){
qw["company_id"] = "";
}else{
qw["company_id"] = Number(qobj.company_id);
}
return qw
}
}
module.exports=ForminfoDao;
const system=require("../../../system");
const Dao=require("../../dao.base");
class FormitemDao extends Dao{
constructor(){
super(Dao.getModelName(FormitemDao));
}
}
module.exports=FormitemDao;
const system=require("../../../system");
const Dao=require("../../dao.base");
class ImginfoDao extends Dao{
constructor(){
super(Dao.getModelName(ImginfoDao));
}
extraWhere(qobj, qw, qc) {
console.log(qobj)
if(!qobj.company_id){
qw["company_id"] = "";
}else{
qw["company_id"] = Number(qobj.company_id);
}
return qw
}
}
module.exports=ImginfoDao;
const system=require("../../../system");
const Dao=require("../../dao.base");
class LaunchchannelDao extends Dao{
constructor(){
super(Dao.getModelName(LaunchchannelDao));
}
extraWhere(qobj, qw, qc) {
if(!qobj.company_id){
qw["company_id"] = "";
}else{
qw["company_id"] = Number(qobj.company_id);
}
return qw;
}
}
module.exports=LaunchchannelDao;
const system=require("../../../system");
const Dao=require("../../dao.base");
class LaunchtypeDao extends Dao{
constructor(){
super(Dao.getModelName(LaunchtypeDao));
}
extraWhere(qobj, qw, qc) {
console.log(qobj)
if(!qobj.company_id){
qw["company_id"] = "";
}else{
qw["company_id"] = Number(qobj.company_id);
}
return qw
}
}
module.exports=LaunchtypeDao;
const system=require("../../../system");
const Dao=require("../../dao.base");
class MaininfoDao extends Dao{
constructor(){
super(Dao.getModelName(MaininfoDao));
}
extraWhere(qobj, qw, qc) {
console.log(qobj)
if(!qobj.company_id){
qw["company_id"] = "";
}else{
qw["company_id"] = Number(qobj.company_id);
}
return qw
}
}
module.exports=MaininfoDao;
const system=require("../../../system");
const Dao=require("../../dao.base");
class MarketingsubjectDao extends Dao{
constructor(){
super(Dao.getModelName(MarketingsubjectDao));
}
extraWhere(qobj, qw, qc) {
console.log(qobj)
if(!qobj.company_id){
qw["company_id"] = "";
}else{
qw["company_id"] = Number(qobj.company_id);
}
return qw
}
}
module.exports=MarketingsubjectDao;
const system=require("../../../system");
const Dao=require("../../dao.base");
class PuttypeDao extends Dao{
constructor(){
super(Dao.getModelName(PuttypeDao));
}
extraWhere(qobj, qw, qc) {
console.log(qobj)
if(!qobj.company_id){
qw["company_id"] = "";
}else{
qw["company_id"] = Number(qobj.company_id);
}
return qw
}
}
module.exports=PuttypeDao;
const system=require("../../../system");
const Dao=require("../../dao.base");
class BrowsingrecordsDao extends Dao{
constructor(){
super(Dao.getModelName(BrowsingrecordsDao));
}
}
module.exports=BrowsingrecordsDao;
\ No newline at end of file
const system=require("../../../system");
const Dao=require("../../dao.base");
class TemplateinfoDao extends Dao{
constructor(){
super(Dao.getModelName(TemplateinfoDao));
}
extraWhere(obj,w,qc,linkAttrs){
w["company_id"]=obj.company_id;
return w;
}
}
module.exports=TemplateinfoDao;
\ No newline at end of file
const system=require("../../../system");
const Dao=require("../../dao.base");
class TemplatelinkDao extends Dao{
constructor(){
super(Dao.getModelName(TemplatelinkDao));
}
extraWhere(obj,w,qc,linkAttrs){
w["company_id"]=obj.company_id;
return w;
}
}
module.exports=TemplatelinkDao;
\ No newline at end of file
const system = require("../system");
const settings = require("../../config/settings.js");
const reclient = system.getObject("util.redisClient");
const md5 = require("MD5");
var dbf = system.getObject("db.common.connection");
var db = dbf.getCon();
db.sync({ force: true }).then(async () => {
console.log("init 完毕");
});
module.exports = {
"config": {
"pdict": {
"app_type": { "api": "API服务","web": "PCWEB","app":"移动APP","xcx":"小程序","access":"接入"},
"data_priv": { "auth.role": "角色", "auth.user": "用户" },
"noticeType": {"sms": "短信", "email": "邮件","wechat":"微信"},
"authType": {"add": "新增", "edit": "编辑","delete":"删除","export":"导出","show":"查看"},
"mediaType": {"vd": "视频", "ad": "音频","qt":"其它"},
"usageType": {"kt": "课堂","taxkt":"财税课堂", "qt": "其它"},
"opstatus": {"0": "失败", "1": "成功"},
"sex": {"male": "男", "female": "女"},
"logLevel": {"debug": 0, "info": 1, "warn": 2, "error": 3, "fatal": 4},
"msgType": { "sys": "系统", "single": "单点", "multi": "群发"},
"node_type":{"org":"组织","arc":"文档"},
"item_type":{
"phone": "手机号",
"singleBtn": "单选按钮",
"multipleBtn": "多选按钮",
"downOptions": "下拉选项",
"singleText": "单行文本",
"multipleText": "多行文本",
"dateTime": "日期",
"area": "省市"
},
"record_status":{
"1":"未读", "2":"已读", "3":"无效"
}
}
}
}
const fs=require("fs");
const path=require("path");
const appPath=path.normalize(__dirname+"/app");
const bizsPath=path.normalize(__dirname+"/bizs");
var appJsons={
config:require(appPath+"/"+"platform.js").config
}
module.exports=appJsons;
const system = require("../../../system");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
/**
* 表单信息表
*/
module.exports = (db, DataTypes) => {
return db.define("bottommenuconfig", {
name: {
type: DataTypes.STRING
},
company_id: {
type: DataTypes.INTEGER
},
button_position: {
type: DataTypes.STRING
},
is_distinguishtime: {
type: DataTypes.STRING
},
strategy_date: {
type: DataTypes.INTEGER
},
strategy_time_start: {
type: DataTypes.STRING
},
strategy_time_end: {
type: DataTypes.STRING
},
button_type: {
type: DataTypes.STRING
},
button_name: {
type: DataTypes.STRING
},
call_number: {
type: DataTypes.INTEGER
},
else_button_type: {
type: DataTypes.STRING
},
else_button_name: {
type: DataTypes.INTEGER
},
else_call_number: {
type: DataTypes.STRING
},
},
{
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'mc_bottom_menu_config',
validate: {
},
indexes: [
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
/**
* 表单信息表
*/
module.exports = (db, DataTypes) => {
return db.define("cluemaintenance", {
code: {
type: DataTypes.STRING
},
name: {
type: DataTypes.STRING
},
company_id: {
type: DataTypes.INTEGER
},
formitem_type: {
type: DataTypes.STRING
},
formitem_type_name: {
type: DataTypes.INTEGER
},
clue_info: {
type: DataTypes.JSON
},
original_requirements: {
type: DataTypes.STRING
},
product_id: {
type: DataTypes.INTEGER
},
},
{
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'mc_clue_maintenance',
validate: {
},
indexes: [
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
/**
* 表单信息表
*/
module.exports = (db, DataTypes) => {
return db.define("cycleproduct", {
code: {
type: DataTypes.STRING
},
company_id: {
type: DataTypes.INTEGER
},
cycle_type: {
type: DataTypes.STRING
},
pic_describe: {
type: DataTypes.STRING
},
cycle_type_name: {
type: DataTypes.INTEGER
},
pic_url: {
type: DataTypes.STRING
},
sequence: {
type: DataTypes.INTEGER
},
jump_link_type: {
type: DataTypes.INTEGER
},
jump_link: {
type: DataTypes.STRING
},
},
{
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'mc_cycle_product',
validate: {
},
indexes: [
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
const submit_type={"1":"页面","2":"弹窗"};
/**
* 表单信息表
*/
module.exports = (db, DataTypes) => {
return db.define("needinfo", {
product_type_code:DataTypes.STRING,//产品类型编码
product_type_name:DataTypes.STRING,//产品类型名称
submit_type_name:DataTypes.STRING,//提交方式名称
submit_type:{
type: DataTypes.STRING(60),
set: function (val) {
this.setDataValue("submit_type", val);
this.setDataValue("submit_type_name",submit_type[val]);
}
},
channel_code:DataTypes.STRING,//渠道编码
channel_name:DataTypes.STRING,//渠道名称
page_code:DataTypes.STRING,//页面编码
page_name:DataTypes.STRING,//页面名称
contact_mobile:DataTypes.STRING,//联系电话
contact_name:DataTypes.STRING,//联系人
original_need:DataTypes.STRING,//原始需求
region:DataTypes.STRING,//地区
business_id:DataTypes.STRING,//云服产品id
push_status:DataTypes.INTEGER,
notes: DataTypes.STRING
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
tableName: 'mc_need_info',
validate: {},
indexes: [
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
/**
*图片材料表
*/
module.exports = (db, DataTypes) => {
return db.define("picturewarehouse", {
code: {
type: DataTypes.STRING
},
pic_size: {
type: DataTypes.STRING
},
name: {
type: DataTypes.STRING
},
company_id: {
type: DataTypes.INTEGER
},
pic_url: {
type: DataTypes.STRING
},
notes: {
type: DataTypes.STRING
}
},
{
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'c_picture_warehouse',
validate: {
},
indexes: [
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
/**
* 表单信息表
*/
module.exports = (db, DataTypes) => {
return db.define("popularrecommendation", {
code: {
type: DataTypes.STRING
},
company_id: {
type: DataTypes.INTEGER
},
pic_position: {
type: DataTypes.STRING
},
pic_position_name: {
type: DataTypes.STRING
},
pic_describe: {
type: DataTypes.STRING
},
is_enabled: {
type: DataTypes.INTEGER
},
pic_url: {
type: DataTypes.STRING
},
jump_link_type: {
type: DataTypes.INTEGER
},
jump_link: {
type: DataTypes.STRING
}
},
{
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'mc_popular_recommendation',
validate: {
},
indexes: [
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
/**
* 表单信息表
*/
module.exports = (db, DataTypes) => {
return db.define("product", {
code: {
type: DataTypes.STRING
},
is_enabled: {
type: DataTypes.INTEGER
},
name: {
type: DataTypes.STRING
},
company_id: {
type: DataTypes.INTEGER
},
product_type_code: {
type: DataTypes.STRING
},
product_type_id: {
type: DataTypes.INTEGER
},
p_product_type_code: {
type: DataTypes.STRING
},
p_product_type_id: {
type: DataTypes.INTEGER
},
sales_volume: {
type: DataTypes.INTEGER
},
product_type_name: {
type: DataTypes.STRING
},
p_product_type_name: {
type: DataTypes.STRING
},
selling_point: {
type: DataTypes.STRING
},
price_type: {
type: DataTypes.INTEGER
},
price: {
type: DataTypes.INTEGER
},
original_price:{
type: DataTypes.INTEGER
},
product_detail_url: {
type: DataTypes.STRING
},
list_thumbnail_url: {
type: DataTypes.STRING
},
is_recommend: {
type: DataTypes.INTEGER
},
service_Introduction_info: {
type: DataTypes.TEXT
},
process_flow_info: {
type: DataTypes.JSON
},
information_required_info: {
type: DataTypes.JSON
},
can_get_info: {
type: DataTypes.JSON
},
our_advantage_info: {
type: DataTypes.TEXT
},
},
{
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'mc_product',
validate: {
},
indexes: [
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
/**
* 表单信息表
*/
module.exports = (db, DataTypes) => {
return db.define("producttype", {
code: {
type: DataTypes.STRING
},
name: {
type: DataTypes.STRING
},
company_id: {
type: DataTypes.INTEGER
},
p_code: {
type: DataTypes.STRING
},
p_id: {
type: DataTypes.INTEGER
},
pic_url: {
type: DataTypes.STRING
},
jump_link: {
type: DataTypes.STRING
},
p_name: {
type: DataTypes.STRING
},
jump_link_type: {
type: DataTypes.INTEGER
},
sequence: {
type: DataTypes.INTEGER
}
},
{
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'mc_product_type',
validate: {
},
indexes: [
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
const pic_type = {"1":"列表头图", "2":"首页轮播图"};
/**
* 轮播图表
*/
module.exports = (db, DataTypes) => {
return db.define("rotationchart", {
code: {
type: DataTypes.STRING
},
name: {
type: DataTypes.STRING
},
company_id: {
type: DataTypes.INTEGER
},
is_enabled: {
type: DataTypes.INTEGER
},
pic_url: {
type: DataTypes.STRING
},
pic_type_name: {
type: DataTypes.STRING
},
pic_type: {
type: DataTypes.STRING,
set: function (val) {
this.setDataValue("pic_type", val);
this.setDataValue("pic_type_name",pic_type[val]);
}
},
sequence: {
type: DataTypes.INTEGER
},
jump_link_type: {
type: DataTypes.INTEGER
},
jump_link: {
type: DataTypes.STRING
}
},
{
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'mc_rotation_chart',
validate: {
},
indexes: [
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
/**
* 表单信息表
*/
module.exports = (db, DataTypes) => {
return db.define("secondlevelneedconfig", {
code: {
type: DataTypes.STRING
},
name: {
type: DataTypes.STRING
},
company_id: {
type: DataTypes.INTEGER
},
top_pic_url: {
type: DataTypes.STRING
},
recommend_product_quantity: {
type: DataTypes.INTEGER
},
recommend_product: {
type: DataTypes.JSON
},
link_url: {
type: DataTypes.STRING
},
},
{
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'mc_second_level_need_config',
validate: {
},
indexes: [
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
}
/**
* 业务类型表
* @param db
* @param DataTypes
* @returns {Model|void|*}
*/
module.exports = (db, DataTypes) => {
return db.define("businesstype", {
p_id: DataTypes.INTEGER(11),//产品一类id
p_name: DataTypes.STRING,//产品一类id
code: DataTypes.STRING(100),//渠道编码
name: DataTypes.STRING(100),//渠道名称
notes: DataTypes.STRING(255),//备注
user_id: DataTypes.INTEGER(11),//创建用户id
user_name: DataTypes.STRING(60),//创建用户名称
company_id: DataTypes.INTEGER(11)
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
timestamps: true,
updated_at: true,
tableName: 'c_business_type',
validate: {},
indexes: []
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
/**
* 表单信息表
*/
module.exports = (db, DataTypes) => {
return db.define("forminfo", {
code: DataTypes.STRING,
name: DataTypes.STRING,
form_items: DataTypes.STRING,
form_describe: DataTypes.STRING,
notes: DataTypes.STRING,
user_id: DataTypes.STRING(100),
user_name: DataTypes.STRING(100),
company_id: DataTypes.INTEGER(11),
record_num:DataTypes.INTEGER(11),
form_table:DataTypes.JSON
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
tableName: 'c_form_info',
validate: {},
indexes: [
]
});
}
/**
* 表单信息表
* @param db
* @param DataTypes
* @returns {Model|void|*}
*/
module.exports = (db, DataTypes) => {
return db.define("formitem", {
form_id: {//表单id
type: DataTypes.INTEGER
},
code: {//表单编码
type: DataTypes.STRING
},
name: {//表单名称
type: DataTypes.STRING
},
item_type: {//表单类型
type: DataTypes.STRING
},
item_type_name: {//表单类型名称
type: DataTypes.STRING
},
config_params: {//表单配置参数
type: DataTypes.JSON
},
is_enabled: {//显示状态
type: DataTypes.BOOLEAN
},
is_required: {//是否必填
type: DataTypes.BOOLEAN
},
sequence: {//次序
type: DataTypes.INTEGER
},
notes: {//备注
type: DataTypes.STRING()
},
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
tableName: 'c_form_item',
validate: {},
indexes: []
});
}
/**
* 表单提交记录表
* @param db
* @param DataTypes
* @returns {Model|void|*}
*/
const record_status = {"1":"未读", "2":"已读", "3":"无效"};
module.exports = (db, DataTypes) => {
return db.define("formsubmitrecord", {
business_code:DataTypes.STRING(100),
template_id: DataTypes.INTEGER(11),//模板id
templatelink_id: DataTypes.INTEGER(11),//模板链接id
form_id: DataTypes.INTEGER(11),//表单id
record_status :{//记录状态 1未读 2已读 3无效
type: DataTypes.STRING(60),
set: function (val) {
this.setDataValue("record_status", val);
this.setDataValue("record_status_name",record_status[val]);
}
},
record_status_name: DataTypes.STRING(60),//记录状态名称
templatelink_snapshot:DataTypes.JSON,//模板链接快照
form_snapshot:DataTypes.JSON,//表单快照
ali_code:DataTypes.STRING,
record_content:DataTypes.JSON,//记录内容
push_status:DataTypes.INTEGER,//推送状态 0:未推送,1:已推送 2:异常
op_notes:DataTypes.STRING,//操作备注
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
timestamps: true,
updated_at: true,
tableName: 'c_form_submit_record',
validate: {},
indexes: []
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
/**
* 表单信息表
*/
module.exports = (db, DataTypes) => {
return db.define("imginfo", {
code: {
allowNull: false,
type: DataTypes.STRING
},
name: {
allowNull: false,
type: DataTypes.STRING
},
pic_size:DataTypes.STRING,
company_id: {
allowNull: false,
type: DataTypes.INTEGER
},
pic_url: {
allowNull: false,
type: DataTypes.STRING
}
,
pic_size: {
allowNull: false,
type: DataTypes.STRING
}
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'c_picture_warehouse',
validate: {
},
indexes: [
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
}
/**
* 投放渠道信息表
* @param db
* @param DataTypes
* @returns {Model|void|*}
*/
module.exports = (db, DataTypes) => {
return db.define("launchchannel", {
code: DataTypes.STRING(100),//表单编码
name: DataTypes.STRING(100),//表单名称
notes: DataTypes.STRING(255),//备注
user_id: DataTypes.INTEGER(11),//创建用户id
user_name: DataTypes.STRING(60),//创建用户名称
company_id: DataTypes.INTEGER(11)
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
timestamps: true,
updated_at: true,
tableName: 'c_launch_channel',
validate: {},
indexes: []
});
}
/**
* 投放渠道信息表
* @param db
* @param DataTypes
* @returns {Model|void|*}
*/
module.exports = (db, DataTypes) => {
return db.define("launchtype", {
code: DataTypes.STRING(100),//表单编码
name: DataTypes.STRING(100),//表单名称
notes: DataTypes.STRING(255),//备注
user_id: DataTypes.INTEGER(11),//创建用户id
user_name: DataTypes.STRING(60),//创建用户名称
company_id: DataTypes.INTEGER(11)
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
timestamps: true,
updated_at: true,
tableName: 'c_launch_type',
validate: {},
indexes: []
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
/**
* 表单信息表
*/
module.exports = (db, DataTypes) => {
return db.define("maininfo", {
code: {
allowNull: false,
type: DataTypes.STRING
},
name: {
allowNull: false,
type: DataTypes.STRING
},
company_id: {
allowNull: true,
type: DataTypes.INTEGER
}
,
notes: {
allowNull: true,
type: DataTypes.STRING
}
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'c_marketing_subject',
validate: {
},
indexes: [
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
}
module.exports = (sequelize, DataType) => {
return sequelize.define("marketingsubject", {
code: DataType.STRING(100),
name: DataType.STRING(100),
notes: DataType.STRING(255),
user_name: DataType.STRING(100),
user_id: DataType.STRING(100),
company_id: DataType.INTEGER,
}, {
// 不添加时间戳属性 (updatedAt, createdAt)
timestamps: true,
// 不删除数据库条目,但将新添加的属性deletedAt设置为当前日期(删除完成时)。
// paranoid 只有在启用时间戳时才能工作
paranoid: true,
// 将自动设置所有属性的字段选项为下划线命名方式。
// 不会覆盖已经定义的字段选项
underscored: true,
// 禁用修改表名; 默认情况下,sequelize将自动将所有传递的模型名称(define的第一个参数)转换为复数。 如果你不想这样,请设置以下内容
freezeTableName: true,
// 定义表的名称
tableName: 'c_marketing_subject',
// 启用乐观锁定。 启用时,sequelize将向模型添加版本计数属性,
// 并在保存过时的实例时引发OptimisticLockingError错误。
// 设置为true或具有要用于启用的属性名称的字符串。
version: true
});
};
\ No newline at end of file
const system = require("../../../system");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
/**
* 表单信息表
*/
module.exports = (db, DataTypes) => {
return db.define("puttype", {
code: {
allowNull: false,
type: DataTypes.STRING
},
name: {
allowNull: false,
type: DataTypes.STRING
},
company_id: {
allowNull: true,
type: DataTypes.INTEGER
}
,
notes: {
allowNull: true,
type: DataTypes.STRING
}
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'c_launch_type',
validate: {
},
indexes: [
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
/**
* 模板信息表
*/
module.exports = (db, DataTypes) => {
return db.define("browsingrecords", {
template_id: DataTypes.INTEGER,
link_code: DataTypes.STRING,
link_name: DataTypes.STRING,
else_channel_param:DataTypes.STRING,
channel_name: DataTypes.STRING,
channel_code: DataTypes.STRING,
business_type_code: DataTypes.STRING,
business_type_name: DataTypes.STRING,
lauch_type_code: DataTypes.STRING,
lauch_type_name: DataTypes.STRING,
marketing_subject_code: DataTypes.STRING,
marketing_subject_name: DataTypes.STRING,
device: DataTypes.STRING,
client_ip: DataTypes.STRING
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'b_browsing_records',
validate: {
},
indexes: [
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
/**
* 模板信息表
*/
module.exports = (db, DataTypes) => {
//TODO:
return db.define("templateinfo", {
code: DataTypes.STRING,
name: DataTypes.STRING,
title: DataTypes.STRING,
keyword: DataTypes.STRING,
describe: DataTypes.STRING,
pic_url: DataTypes.STRING,
is_enabled: DataTypes.INTEGER,
template_content: DataTypes.TEXT,
form_id: DataTypes.INTEGER,
business_code:DataTypes.STRING,
notes: DataTypes.STRING,
user_id: DataTypes.STRING(100),
user_name: DataTypes.STRING(100), //user_name 用户名称
company_id: DataTypes.INTEGER,
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'b_template_info',
validate: {
},
indexes: [
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
}
const system = require("../../../system");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
/**
* 模板信息表
*/
module.exports = (db, DataTypes) => {
//TODO:
return db.define("templatelink", {
code: DataTypes.STRING,
name: DataTypes.STRING,
delivery_word:DataTypes.STRING,
else_channel_param:DataTypes.STRING,
template_id: DataTypes.INTEGER,
// channel_id: DataTypes.INTEGER,
// business_type_id: DataTypes.INTEGER,
// lauch_type_id: DataTypes.INTEGER,
// marketing_subject_id: DataTypes.INTEGER,
// template_name: DataTypes.STRING,
channel_name: DataTypes.STRING,
business_type_name: DataTypes.STRING,
lauch_type_name: DataTypes.STRING,
marketing_subject_name: DataTypes.STRING,
channel_code: DataTypes.STRING,
business_type_code: DataTypes.STRING,
lauch_type_code: DataTypes.STRING,
marketing_subject_code: DataTypes.STRING,
is_enabled: DataTypes.INTEGER,
link_url_pc: DataTypes.STRING,
link_url_mobile: DataTypes.STRING,
notes: DataTypes.STRING,
user_id: DataTypes.STRING(100),
user_name: DataTypes.STRING(100), //user_name 用户名称
company_id: DataTypes.INTEGER,
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'b_template_link',
validate: {
},
indexes: [
// Create a unique index on email
// {
// unique: true,
// fields: ['email']
// },
//
// // Creates a gin index on data with the jsonb_path_ops operator
// {
// fields: ['data'],
// using: 'gin',
// operator: 'jsonb_path_ops'
// },
//
// // By default index name will be [table]_[fields]
// // Creates a multi column partial index
// {
// name: 'public_by_author',
// fields: ['author', 'status'],
// where: {
// status: 'public'
// }
// },
//
// // A BTREE index with a ordered field
// {
// name: 'title_index',
// method: 'BTREE',
// fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
// }
]
});
}
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class BottommenuconfigService extends ServiceBase {
constructor() {
super("aggregation", ServiceBase.getDaoName(BottommenuconfigService));
}
async create(pobj) {
if (!pobj.button_name) {
return system.getResultFail(-101, "按钮文案不能为空");
}
if (!pobj.is_distinguishtime) {
return system.getResultFail(-102, "分时策略不能为空");
}
if (!pobj.strategy_date) {
return system.getResultFail(-103, "策略日期不能为空");
}
if (!pobj.strategy_time) {
return system.getResultFail(-104, "策略时段不能为空");
}
if (!pobj.button_type) {
return system.getResultFail(-105, "按钮形式不能为空");
}
if (!pobj.button_name) {
return system.getResultFail(-106, "按钮文案不能为空");
}
if (!pobj.call_number) {
return system.getResultFail(-107, "呼叫号码不能为空");
}
if (!pobj.else_button_type) {
return system.getResultFail(-108, "其他按钮形式不能为空");
}
if (!pobj.else_button_name) {
return system.getResultFail(-109, "其他按钮文案不能为空");
}
if (!pobj.else_call_number) {
return system.getResultFail(-110, "其他呼叫号码不能为空");
}
return system.getResultSuccess(this.dao.create(pobj));
}
async update(pobj) {
return system.getResultSuccess(this.dao.update(pobj));
}
}
module.exports = BottommenuconfigService;
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class CluemaintenanceService extends ServiceBase {
constructor() {
super("aggregation", ServiceBase.getDaoName(CluemaintenanceService));
}
async getImgList(pobj) {
let res = await this.dao.findAndCountAll(pobj);
return system.getResultSuccess(res);
}
async createImginfo(pobj) {
let code = await this.getBusUid("img");
pobj.imginfo.code = code;
if (pobj.imginfo.company_id === undefined) {
pobj.imginfo.company_id = 10;
}
let res = await this.dao.create(pobj.imginfo);
return system.getResultSuccess(res);
}
async create(pobj) {
let code = await this.getBusUid("img");
pobj.code = code;
if (!pobj.pic_url) {
return system.getResultFail(-123, "图片不能为空");
}
return system.getResultSuccess(this.dao.create(pobj));
}
async update(pobj) {
let whereParams = {
id: pobj.id
}
let res = await this.dao.findOne(whereParams,[]);
if(!pobj.id){
return system.getResultFail(-124, "未知图片信息");
}
if(!pobj.pic_url){
pobj.pic_url = res.pic_url;
}
if(!pobj.pic_size){
pobj.pic_size = res.pic_size;
}
if(!pobj.name){
pobj.name = res.name;
}
return system.getResultSuccess(this.dao.update(pobj));
}
/**
* 线索编辑
* @param pobj
* @returns {Promise<void>}
*/
async updateCluteInfo(pobj){
if(!pobj.data){
return system.getResultFail(-1,'线索数据不能为空')
}
let data = pobj.data;
let type = pobj.formitem_type;
let clueInfo = {
type:type,
data:data
};
pobj.clue_info = clueInfo;
const upt = await this.dao.update(pobj);
return system.getResult(upt);
}
}
module.exports = CluemaintenanceService;
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class CycleproductService extends ServiceBase {
constructor() {
super("aggregation", ServiceBase.getDaoName(CycleproductService));
}
async update(pobj) {
if (!pobj.pic_url) {
return system.getResultFail(-101, "图片不能为空");
}
if (!pobj.jump_link_type) {
return system.getResultFail(-104, "连接不能为空");
}
if (pobj.pic_describe && pobj.pic_describe.length > 19) {
return system.getResultFail(-105, "图片描述最多20位字符");
}
return system.getResultSuccess(this.dao.update(pobj));
}
}
module.exports = CycleproductService;
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class NeedinfoService extends ServiceBase {
constructor() {
super("aggregation", ServiceBase.getDaoName(NeedinfoService));
this.execClient = system.getObject("util.execClient");
// this.launchchannelDao = system.getObject("dao.configmag.launchchannelDao");
}
//推送聚合页需求至蜂擎
async pushAggregationNeedInfo2fq(ab){
if(!ab || !ab.id){
return ;
}
var needinfo = await this.dao.model.findOne({
where:{
id:ab.id,
push_status:0
},
raw:true
});
if(!needinfo || !needinfo.id || !needinfo.business_id || !needinfo.contact_mobile){
return ;
}
var pobj={
"customer_name": needinfo.contact_name || "未知",
"customer_phone": needinfo.contact_mobile,
"customer_region": "全国",
"demand_list": [{
"product_id": needinfo.business_id,
"region": "全国"
}],
"remark": needinfo.original_need,
"source_keyword":needinfo.channel_name,
"source": "媒体聚合页"
};
console.log(pobj,"pobj###########################2");
var pushRes = await this.fqUtilsSve.pushMediaNeedInfo2Fq(pobj);
console.log(pushRes,"pushRes############################3");
if(pushRes && pushRes.data && pushRes.code && pushRes.code=="200" && pushRes.success ){//推送成功
await this.dao.update({id:needinfo.id,push_status:1});
}else{
await this.dao.update({id:needinfo.id,push_status:2});
}
}
async getChannelDataStatistic(pobj){
// var channelList = await this.launchchannelDao.model.findAll
}
async getbrowsingrecordlist(obj){
try {
var queryObj={
"query": {
"bool": {
"must": [],
"must_not": [],
"should": []
}
},
"from": 0,
"size": 20,
"sort": [{
"created_date": {
"order": "desc"
}
}],
"aggs": {}
};
if(obj.channel_code){
queryObj.query.bool.must.push({
"term": {
"channel_code": obj.channel_code
}
});
}
if(obj.start_date){
var st = new Date(obj.start_date);
if(st){
st = st.getTime();
queryObj.query.bool.must.push({
"range": {
"created_date": {
"gte": st
}
}
})
}
}
if(obj.end_date){
var et = new Date(obj.end_date);
if(et){
et = et.getTime();
queryObj.query.bool.must.push({
"range": {
"created_date": {
"lte": et
}
}
})
}
}
if(obj.from){
queryObj.from=obj.from
}
if(obj.size){
queryObj.size=obj.size
}
var res = await this.execClient.execPostEs(queryObj, "http://43.247.184.94:7200/marketmedia_browsingrecords_log/_search");
if(res && res.stdout){
res = JSON.parse(res.stdout);
return res;
}
return null;
} catch (e) {
console.log(e)
return null;
}
}
}
module.exports = NeedinfoService;
// var task = new NeedinfoService();
// var obj={
// channel_code:"iqiyi",
// start_date:"2020-09-07 08:03:08",
// end_date:"2020-09-07 08:03:08",
// from:0,
// size:100
// };
// task.getbrowsingrecordlist(obj).then(d=>{
// console.log(JSON.stringify(d),"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
// });
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class PicturewarehouseService extends ServiceBase {
constructor() {
super("aggregation", ServiceBase.getDaoName(PicturewarehouseService));
}
async getImgList(pobj) {
let res = await this.dao.findAndCountAll(pobj);
return system.getResultSuccess(res);
}
async createImginfo(pobj) {
let code = await this.getBusUid("img");
pobj.imginfo.code = code;
if (pobj.imginfo.company_id === undefined) {
pobj.imginfo.company_id = 10;
}
let res = await this.dao.create(pobj.imginfo);
return system.getResultSuccess(res);
}
async create(pobj) {
let code = await this.getBusUid("img");
pobj.code = code;
if (!pobj.pic_url) {
return system.getResultFail(-123, "图片不能为空");
}
return system.getResultSuccess(this.dao.create(pobj));
}
async update(pobj) {
let whereParams = {
id: pobj.id
}
let res = await this.dao.findOne(whereParams,[]);
if(!pobj.id){
return system.getResultFail(-124, "未知图片信息");
}
if(!pobj.pic_url){
pobj.pic_url = res.pic_url;
}
if(!pobj.pic_size){
pobj.pic_size = res.pic_size;
}
if(!pobj.name){
pobj.name = res.name;
}
return system.getResultSuccess(this.dao.update(pobj));
}
}
module.exports = PicturewarehouseService;
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class PopularrecommendationService extends ServiceBase {
constructor() {
super("aggregation", ServiceBase.getDaoName(PopularrecommendationService));
}
async update(pobj) {
if (!pobj.pic_url) {
return system.getResultFail(-101, "图片不能为空");
}
if (!pobj.jump_link_type) {
return system.getResultFail(-104, "连接不能为空");
}
if (pobj.pic_describe && pobj.pic_describe.length > 19) {
return system.getResultFail(-105, "图片描述最多20位字符");
}
return system.getResultSuccess(this.dao.update(pobj));
}
}
module.exports = PopularrecommendationService;
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class ProductService extends ServiceBase {
constructor() {
super("aggregation", ServiceBase.getDaoName(ProductService));
this.producttypeDao = system.getObject('db.aggregation.producttypeDao')
}
async create(pobj) {
let code = await this.getBusUid("p");
pobj.code = code;
delete pobj["id"];
return system.getResultSuccess(this.dao.create(pobj));
}
async update(pobj) {
return system.getResultSuccess(this.dao.update(pobj));
}
/**
* 获取某一类下的产品
* @create rxs
* @param pobj
* @returns {Promise<void>}
*/
async getProductsByType(pobj){
const type = await this.producttypeDao.findOne({code:pobj.typeName},[]);
if(!type){
return system.getResultFail(-1,'获取产品类型数据失败');
}
let products = await this.dao.model.findAll({
attributes:["code","name"],
where:{product_type_id:type.id},raw:true
});
return system.getResult(products)
}
}
module.exports = ProductService;
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class ProducttypeService extends ServiceBase {
constructor() {
super("aggregation", ServiceBase.getDaoName(ProducttypeService));
}
async findAndCountAll (obj) {
let res = await this.dao.findAndCountAll(obj);
if(obj && obj.search && obj.search.p_id === 0 && res && res.results && res.results.rows && res.results.rows.length>0){
for(var i=0;i<res.results.rows.length;i++){
if(res.results.rows[i].id){
var count = await this.dao.findCount({ where: {p_id:res.results.rows[i].id} });
res.results.rows[i].dataValues.childCount = count;
}
}
}
return system.getResultSuccess(res);
}
async create(pobj) {
let code = await this.getBusUid("mmc");
pobj.code = code;
delete pobj.id;
if (!pobj.code) {
return system.getResultFail(-101, "编码不能为空");
}
if (!pobj.pic_url) {
return system.getResultFail(-102, "图标不能为空");
}
if (!pobj.sequence) {
return system.getResultFail(-103, "排序不能为空");
}
if (!pobj.name) {
return system.getResultFail(-105, "名称不能为空");
}
if (pobj.name && pobj.name.length > 4) {
return system.getResultFail(-106, "名称最多4位字符");
}
if(pobj.p_code){
var p_type = await this.dao.model.findOne({
where:{code:pobj.p_code,p_id:0},raw:true
});
if(!p_type){
return system.getResultFail(-300,"产品一类不存在");
}
pobj.p_id = p_type.id;
pobj.p_name = p_type.name;
}else if (!pobj.jump_link_type || !pobj.jump_link) {
return system.getResultFail(-104, "连接不能为空");
}
return system.getResultSuccess(this.dao.create(pobj));
}
async update(pobj) {
if (!pobj.pic_url) {
return system.getResultFail(-101, "图标不能为空");
}
if (!pobj.sequence) {
return system.getResultFail(-102, "排序不能为空");
}
// if (!pobj.jump_link_type || !pobj.jump_link) {
// return system.getResultFail(-104, "连接不能为空");
// }
if (!pobj.name) {
return system.getResultFail(-105, "名称不能为空");
}
if (pobj.name && pobj.name.length > 4) {
return system.getResultFail(-106, "名称最多4位字符");
}
return system.getResultSuccess(this.dao.update(pobj));
}
//获取产品类型信息-用于后台管理页面
async getProductTypeInfo(obj){
// if(!obj || !obj.company_id){
// return system.getResultFail();
// }
var typeones = await this.dao.model.findAll({
attributes:["id","code","name","pic_url","jump_link_type","jump_link"],
where:{p_id:0},raw:true,
order:[["sequence","desc"]]
});
for(var i=0;i<typeones.length;i++){
if(typeones[i] && typeones[i].id)
var typetwos = await this.dao.model.findAll({
attributes:["id","code","name","pic_url"],
where:{p_id:typeones[i].id},raw:true,
order:[["sequence","desc"]]
});
typeones[i]["children"] = typetwos
}
return system.getResultSuccess(typeones);
}
}
module.exports = ProducttypeService;
// var task = new ProducttypeService();
// task.getProductTypeInfo(null).then(d=>{
// console.log(JSON.stringify(d));
// })
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
const { json } = require("sequelize");
class RotationchartService extends ServiceBase {
constructor() {
super("aggregation", ServiceBase.getDaoName(RotationchartService));
}
async create(pobj) {
let code = await this.getBusUid("mmc");
pobj.code = code;
pobj.pic_type = "2";
if (!pobj.code) {
return system.getResultFail(-101, "编码不能为空");
}
if (!pobj.pic_url) {
return system.getResultFail(-101, "图片不能为空");
}
if (!pobj.is_enabled) {
return system.getResultFail(-103, "是否显示不能为空");
}
if (!pobj.jump_link_type) {
return system.getResultFail(-104, "连接不能为空");
}
if (pobj.name && pobj.name.length > 19) {
return system.getResultFail(-105, "图片名称最多20位字符");
}
if(pobj.id!==1){
if (!pobj.sequence) {
return system.getResultFail(-102, "排序不能为空");
}
}
return system.getResultSuccess(this.dao.create(pobj));
}
async update(pobj) {
if (!pobj.pic_url) {
pobj.pic_url = res.pic_url;
}
if (!pobj.name) {
pobj.name = res.name;
}
return system.getResultSuccess(this.dao.update(pobj));
}
async updates(pobj) {
return system.getResultSuccess(this.dao.update(pobj));
}
async getProductTypeInfo(obj){
var typeones = await this.dao.model.findAll({
attributes:["id","code","name","pic_url","jump_link_type","jump_link"],
where:{p_id:0},raw:true,
order:[["sequence","desc"]]
});
for(var i=0;i<typeones.length;i++){
if(typeones[i] && typeones[i].id)
var typetwos = await this.dao.model.findAll({
attributes:["id","code","name","pic_url"],
where:{p_id:typeones[i].id},raw:true,
order:[["sequence","desc"]]
});
typeones[i]["children"] = typetwos
}
return system.getResultSuccess(typeones);
}
}
module.exports = RotationchartService;
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class SecondlevelneedconfigService extends ServiceBase {
constructor() {
super("aggregation", ServiceBase.getDaoName(SecondlevelneedconfigService));
}
async update(pobj) {
if (!pobj.code) {
return system.getResultFail(-101, "编码不能为空");
}
if (!pobj.top_pic_url) {
return system.getResultFail(-102, "顶部图标不能为空");
}
if (!pobj.recommend_product_quantity) {
return system.getResultFail(-103, "推荐产品数量不能为空");
}
return system.getResultSuccess(this.dao.update(pobj));
}
}
module.exports = SecondlevelneedconfigService;
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
const fs=require("fs")
class AppService extends ServiceBase {
constructor() {
super("common", ServiceBase.getDaoName(AppService));
this.userS = system.getObject("service.auth.userSve");
this.routeDao = system.getObject("db.common.routeDao");
this.ossC= system.getObject("util.ossClient");
}
async getApp(p) {
let app = this.cacheManager["AppCache"].cache(p.appkey, null);
return app;
}
async upFrontRoute(jsonObject,app_id){
var self=this
return this.db.transaction(async function (t) {
let keyfile=self.getUUID()+".json"
let tmpdirfile="/tmp"+keyfile
let str=JSON.stringify(jsonObject[0].children)
fs.writeFileSync(tmpdirfile,str)
let result=await self.ossC.upfile(keyfile,tmpdirfile)
fs.unlinkSync(tmpdirfile)
await self.db.models.app.update({docUrl:result.url,id:app_id},{where:{id:app_id},transaction:t})
return result
})
}
async findAllApps(uid) {
var apps = null;
var dicRtn = {};
var wheresql = {};
if (uid) {
wheresql[this.db.Op.and] = {
[this.db.Op.or]:
[
{ isPublish: false, creator_id: uid },
{ isEnabled: true, isPublish: true }
],
};
apps = await this.dao.model.findAll({
where: wheresql,
attributes: ['id', 'name', 'appkey', 'showimgUrl', 'appType', 'docUrl', 'homePage']
});
} else {
wheresql = { isEnabled: true, isPublish: true };
apps = await this.dao.model.findAll({
where: wheresql,
attributes: ['id', 'name', 'appkey', 'showimgUrl', 'appType', 'docUrl', 'homePage']
});
}
for (var app of apps) {
var tmk = uiconfig.config.pdict.app_type[app.appType];
if (!dicRtn[tmk]) {
dicRtn[tmk] = [];
dicRtn[tmk].push(app);
} else {
dicRtn[tmk].push(app);
}
}
return dicRtn;
}
//创建应用
//每个应用建立两个路由,一个api路由
//对api路由启用jwt插件
async create(pobj, qobj, req) {
var self = this;
return this.db.transaction(async function (t) {
var app = await self.dao.create(pobj, t);
//创建后台应用服务
let svobj = await self.cjsonregister(AppService.newServiceUrl(), { name: app.name, url: "http://" + app.backend })
//添加路由
let ps = ["/web/auth/userCtl/pmlogin", "/web/auth/userCtl/pmregister", "/web/auth/userCtl/pmSendVCode", "/web/auth/userCtl/pmloginByVCode"]
let routeobj = await self.cjsonregister(AppService.newRouteUrl(app.name),
{ name: app.name, paths: ps, hosts: [app.domainName], strip_path: false })
let ps2 = ["/api", "/web"]
let routeapi = await self.cjsonregister(AppService.newRouteUrl(app.name), { name: app.name + "_api", hosts: [app.domainName], paths: ps2, strip_path: false })
let r1 = await self.routeDao.create({ name: app.name, center_id: routeobj.id, app_id: app.id, shosts: app.domainName, spaths: ps.join(",") }, t);
let r2 = await self.routeDao.create({ name: app.name + "_api", center_id: routeapi.id, app_id: app.id, shosts: app.domainName, spaths: ps2.join(",") }, t);
//给api路由启动插件
await self.cjsonregister(AppService.bindPluginUrl(app.name + "_api"), { name: "jwt" })
if (svobj && routeobj && r1 && r2) {
try {
app.appkey = svobj.id;
await app.save({ transaction: t });
} catch (e) {
await self.cdel(AppService.routeUrl(app.name))
await self.cdel(AppService.routeUrl(app.name + "_api"))
await self.cdel(AppService.serviceUrl(app.name))
}
} else {
throw new Error("创建应用服务失败");
}
return app;
});
}
async translateInitSels(funcobjs) {
funcobjs.forEach((item) => {
console.log(item.title)
if (item.children && item.children.length>0) {
this.translateInitSels(item.children)
} else {
if(item.auths && item.auths.length>0){
item.sels=[]
}
}
})
}
async saveFuncTree(pobj){
var self = this;
return this.db.transaction(async function (t) {
//如果存在functionJSON,那么就需要转换,构建编码路径
if (pobj.funcJson) {
// let funcobjs = JSON.parse(pobj.functionJSON)
await self.translateInitSels(pobj.funcJson)
pobj.functionJSON= JSON.stringify(pobj.funcJson)
}
let appcache=await self.cacheManager["AppCache"].cache(pobj.appkey);
let upobj={id:appcache.id,functionJSON:pobj.functionJSON}
await self.dao.update(upobj, t)
//令缓存失效
await self.cacheManager["AppCache"].invalidate(pobj.appkey);
let appcache2=await self.dao.model.findById(appcache.id,{transaction:t});
return {funcJson:JSON.parse(appcache2.functionJSON)}
})
}
//删除应用
async update(pobj, qobj) {
var self = this;
return this.db.transaction(async function (t) {
//如果存在functionJSON,那么就需要转换,构建编码路径
if (pobj.functionJSON != "") {
let funcobjs = JSON.parse(pobj.functionJSON)
await self.translateWithBizCode(funcobjs,null)
pobj.functionJSON= JSON.stringify(funcobjs)
}
await self.dao.update(pobj, t)
let upobj = await self.dao.findById(pobj.id)
//令缓存失效
await self.cacheManager["AppCache"].invalidate(upobj.appkey);
return upobj
})
}
//删除应用
async delete(pobj, qobj) {
var self = this;
return this.db.transaction(async function (t) {
let delobj = await self.dao.delete(pobj, t)
//令缓存失效
await self.cacheManager["AppCache"].invalidate(delobj.appkey);
//删除路由
await self.cdel(AppService.routeUrl(pobj.name));
//删除api路由
await self.cdel(AppService.routeUrl(pobj.name + "_api"));
//删除服务
await self.cdel(AppService.serviceUrl(pobj.name));
return {}
})
}
async findAndCountAll(obj) {
var self = this;
const apps = await super.findAndCountAll(obj);
return apps;
}
}
module.exports = AppService;
// (async ()=>{
// let u=new AppService();
// // let x=await u.cregister("jiangong")
// // console.log(x)
// // let x=await u.cunregister("jiangong")
// // console.log(x)
// // let t=await u.cmakejwt()
// // console.log(t)
// //let ux=await u.cjsonregister(AppService.newRouteUrl("test-service2"),{name:"test-service2",hosts:["ttest1.com"]})
// //let ux=await u.cjsonregister(AppService.newServiceUrl(),{name:"test-service3",url:"http://zhichan.gongsibao.com"})
// //let ux=await u.cdel(AppService.routeUrl("test-service2"))
// //let ux=await u.cdel(AppService.serviceUrl("test-service2"))
// // let ux=await u.create({name:"test4-service",backend:"zhichan-service",domainName:"domain.com"})
// // console.log(ux);
// // let delrtn=await u.delete({id:2,name:"test4-service"})
// // console.log(delrtn);
// })()
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
const uuidv4 = require('uuid/v4');
class CachSearchesSve {
constructor() {
this.cacheManager = system.getObject("db.common.cacheManager");
this.appDao = system.getObject("db.common.appDao");
this.authUtils = system.getObject("util.businessManager.authUtils");
}
getUUID() {
var uuid = uuidv4();
var u = uuid.replace(/\-/g, "");
return u;
}
async buildCacheRtn(pageValues) {
var ps = pageValues.map(k => {
var tmpList = k.split("|");
if (tmpList.length == 2) {
return { name: tmpList[0], val: tmpList[1], key: k };
}
});
return ps;
}
async findAndCountAllCache(obj) {
const pageNo = obj.pageInfo.pageNo;
const pageSize = obj.pageInfo.pageSize;
const limit = pageSize;
const offset = (pageNo - 1) * pageSize;
var search_name = obj.search && obj.search.name ? obj.search.name : "";
var cacheCacheKeyPrefix = "sadd_base_appkeys:" + settings.appKey + "_cachekey";
if (obj.appid == settings.platformid) {
var cacheList = await this.cacheManager["MagCache"].getCacheSmembersByKey(cacheCacheKeyPrefix);
if (search_name) {
cacheList = cacheList.filter(f => f.indexOf(search_name) >= 0);
}
var pageValues = cacheList.slice(offset, offset + limit);
var kobjs = await this.buildCacheRtn(pageValues);
var tmpList = { results: { rows: kobjs, count: cacheList.length } };
return system.getResult(tmpList);
} else {
var body = {
pageInfo: obj.pageInfo,
search: obj.search
};
var tmpList = await this.opOtherAppCache("findAndCountAll", body, obj.opCacheUrl);
return tmpList;
}
}
async delCache(obj) {
if (obj.appid == settings.platformid) {
var keyList = obj.key.split("|");
if (keyList.length == 2) {
var cacheCacheKeyPrefix = "sadd_base_appkeys:" + settings.appKey + "_cachekey";
await this.cacheManager["MagCache"].delCacheBySrem(cacheCacheKeyPrefix, obj.key);
await this.cacheManager["MagCache"].del(keyList[0]);
return { status: 0 };
}
} else {
var body = {
del_cachekey: obj.key
};
return await this.opOtherAppCache("delCache", body, obj.opCacheUrl);
}
}
async clearAllCache(obj) {
if (obj.appid == settings.platformid) {
await this.cacheManager["MagCache"].clearAll();
return { status: 0 };
}
return await this.opOtherAppCache("clearAllCache", {}, obj.opCacheUrl);
}
//app调用次数
async findAndCountAlldetail(obj) {
var apicallAccu = await this.cacheManager["ApiAccuCache"].getApiCallAccu(obj);
var result = { rows: [], count: 0 };
var keys = await this.cacheManager["MagCache"].keys("api_call_" + appkey + "*");
var detail = null;
for (let j = 0; j < keys.length; j++) {
var d = keys[j];
var pathdetail = d.substr(d.lastIndexOf("_") + 1, d.length);
var apicalldetailAccu = await this.cacheManager["ApiCallCountCache"].getApiCallCount(appkey, pathdetail);
var detail = { "detailPath": d, "detailCount": apicalldetailAccu.callcount };
}
result.rows = detail;
}
//操作别的应用的缓存
async opOtherAppCache(action_type, body = null, opCacheUrl) {
var appData = await this.authUtils.getTokenInfo(settings.appKey, settings.secret);
if (appData.status != 0) {
return appData;
}
//按照访问token
const restS = await system.getObject("util.restClient");
var restResult = await restS.execPostWithAK(
{
action_type: action_type,
body: body
},
opCacheUrl, appData.data.accessKey);
if (restResult && restResult.status == 0) {
return restResult;
}
return system.getResultFail();
}
}
module.exports = CachSearchesSve;
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class CompanyService extends ServiceBase {
constructor() {
super("common", ServiceBase.getDaoName(CompanyService));
}
async setOrgs(p,cmk) {
var self=this
return this.db.transaction(async function (t) {
let strjson = JSON.stringify(p.orgJson)
p.id = p.company_id
p.orgJson = strjson
//更新组织机构
let u = await self.dao.update(p,t)
//更新,还得传输当前节点,查询出当前节点的角色
//按照当前节点的opath查询出所有的用户,更新这些用户的角色信息
let curNodeData=p.curdata
if(curNodeData && curNodeData.isPosition){
let opathstr=curNodeData.orgpath
let us=await self.db.models.user.findAll({where:{opath:opathstr},transaction:t})
//查询出角色
let roleids=curNodeData.roles
let rs=await self.db.models.role.findAll({where:{id:{[self.db.Op.in]:roleids},app_id:p.app_id,company_id:p.company_id},transaction:t})
for(let u of us){
await u.setRoles(rs,{transaction:t})
}
// users.forEach((u)=>{
// await u.setRoles(rs, { transaction: t });
// })
}
//用户缓存也要失效
//缓存失效
await self.cacheManager["CompanyCache"].invalidate(cmk)
let companytmp=await self.dao.model.findOne({where:{companykey:cmk},transaction:t});
return {orgJson:JSON.parse(companytmp.orgJson)}
})
}
}
module.exports = CompanyService;
const system = require("../../../system");
const settings = require("../../../../config/settings");
const fqBaseUrl="https://fq.gongsibao.com";//生产环境
// const fqBaseUrl="https://fqdev.gongsibao.com";//测试环境
class FqUtilsService {
constructor() {
this.execClient = system.getObject("util.execClient");
this.logClient = system.getObject("util.logClient");
}
/**
* 推送投放落地页需求至蜂擎
* @param {*} pobj
* @param {*} code
*/
async pushNeedInfo2Fq(pobj,code){
try {
var url = fqBaseUrl+"/open/ex/flux/advisory?code="+code;
var rtn = await this.execClient.execPost(pobj, url);
var data = JSON.parse(rtn.stdout);
this.logClient.pushlog("推送投放落地页需求数据至蜂擎返回结果-pushNeedInfo2Fq-success",pobj, rtn, null);
return data;
} catch (e) {
this.logClient.pushlog("推送投放落地页需求数据至蜂擎返回异常-pushNeedInfo2Fq-error", pobj, null, e.stack);
return null;
}
}
/**
* 推送媒体聚合页需求至蜂擎
* @param {*} pobj
*/
async pushMediaNeedInfo2Fq(pobj) {
try {
var url = "https://yunfuapi-dev.gongsibao.com/cloudapi/cyg/lead/fluxAllot";
var rc = system.getObject("util.aliyunClient");
console.log(rc,"aliyunClient++++++++++++++++++++++++++");
var rtn = await rc.post(url, pobj);
console.log(rtn,"rtn+++++++++++++++++++++++++++++++++++++")
this.logClient.pushlog("推送媒体聚合页需求数据至蜂擎返回结果-pushMediaNeedInfo2Fq-success",pobj, rtn, null);
return rtn;
} catch (e) {
console.log(e,"e+++++++++++++++++++++++++++++++++++++++")
this.logClient.pushlog("推送投放落地页需求数据至蜂擎返回异常-pushMediaNeedInfo2Fq-error", pobj, null, e.stack);
return null;
}
}
}
module.exports = FqUtilsService;
// var task = new FqUtilsService();
// var pobj=
// {
// "customer_name": "庄冰测试",
// "customer_phone": "13075556693",
// "customer_region": "全国",
// "demand_list": [{
// "product_id": "5f4f662fcd9796000a513bdd",
// "region": "全国"
// }],
// "remark": "测试数据",
// "source_keyword":"百度",
// "source": "媒体聚合页"
// };
// task.pushMediaNeedInfo2Fq(pobj).then(d=>{
// console.log(d,"res++++++++++++++++++++++++++");
// })
\ No newline at end of file
const system=require("../../../system");
const ServiceBase=require("../../sve.base");
const settings=require("../../../../config/settings");
class MetaService extends ServiceBase{
constructor(){
super("common",ServiceBase.getDaoName(MetaService));
this.restS=system.getObject("util.restClient");
}
async getApiDoc(appid){
var p=settings.basepath+"/app/base/db/impl/common/apiDocManager.js";
var ClassObj= require(p) ;
var obj=new ClassObj();
return obj.doc;
}
async getApiDocRemote(appid,docUrl){
var rtn=await this.restS.execPost({}, docUrl);
if(rtn.stdout){
var dod=JSON.parse(rtn.stdout);
if(dod.data){
return dod.data;
}
}
return null;
}
async getUiConfig(appid){
const cfg=await this.cacheManager["UIConfigCache"].cache(appid,null,60);
return cfg;
}
async getRemoteUiConfig(appkey,uiconfigUrl){
const cfg=await this.cacheManager["UIRemoteConfigCache"].cache(appkey,null,120,uiconfigUrl);
return cfg;
}
}
module.exports=MetaService;
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
class PluginService extends ServiceBase {
constructor() {
super("common", ServiceBase.getDaoName(AppService));
this.userS = system.getObject("service.auth.userSve");
}
}
module.exports = PluginService;
// (async ()=>{
// let u=new AppService();
// // let x=await u.cregister("jiangong")
// // console.log(x)
// // let x=await u.cunregister("jiangong")
// // console.log(x)
// // let t=await u.cmakejwt()
// // console.log(t)
// //let ux=await u.cjsonregister(AppService.newRouteUrl("test-service2"),{name:"test-service2",hosts:["ttest1.com"]})
// //let ux=await u.cjsonregister(AppService.newServiceUrl(),{name:"test-service3",url:"http://zhichan.gongsibao.com"})
// //let ux=await u.cdel(AppService.routeUrl("test-service2"))
// //let ux=await u.cdel(AppService.serviceUrl("test-service2"))
// // let ux=await u.create({name:"test4-service",backend:"zhichan-service",domainName:"domain.com"})
// // console.log(ux);
// // let delrtn=await u.delete({id:2,name:"test4-service"})
// // console.log(delrtn);
// })()
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
const appconfig = system.getSysConfig();
class RouteService extends ServiceBase {
constructor() {
super("common", ServiceBase.getDaoName(RouteService));
}
//创建应用
//每个应用建立两个路由,一个api路由
//对api路由启用jwt插件
async create(serviceName, routedata, req) {
var self = this;
return this.db.transaction(async function (t) {
var rtn=null;
try {
//添加路由
let routeobj = await self.cjsonregister(RouteService.newRouteUrl(serviceName), { name: routedata.name, hosts: routedata.hosts, paths: routedata.paths, strip_path: routedata.isstrip })
routedata.center_id = routeobj.id;
rtn = await self.dao.create(routedata, t);
} catch (e) {
console.log(e)
await self.cdel(RouteService.routeUrl(routedata.name));
}
return rtn;
});
}
async delete(qobj) {
var self = this;
return this.db.transaction(async function (t) {
let a=await self.dao.delete(qobj,t);
await self.cdel(RouteService.routeUrl(a.name));
return a
});
}
async findAndCountAll(obj) {
var self = this;
const apps = await super.findAndCountAll(obj);
return apps;
}
}
module.exports = RouteService;
// (async ()=>{
// let u=new AppService();
// // let x=await u.cregister("jiangong")
// // console.log(x)
// // let x=await u.cunregister("jiangong")
// // console.log(x)
// // let t=await u.cmakejwt()
// // console.log(t)
// //let ux=await u.cjsonregister(AppService.newRouteUrl("test-service2"),{name:"test-service2",hosts:["ttest1.com"]})
// //let ux=await u.cjsonregister(AppService.newServiceUrl(),{name:"test-service3",url:"http://zhichan.gongsibao.com"})
// //let ux=await u.cdel(AppService.routeUrl("test-service2"))
// //let ux=await u.cdel(AppService.serviceUrl("test-service2"))
// // let ux=await u.create({name:"test4-service",backend:"zhichan-service",domainName:"domain.com"})
// // console.log(ux);
// // let delrtn=await u.delete({id:2,name:"test4-service"})
// // console.log(delrtn);
// })()
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class BusinesstypeService extends ServiceBase {
constructor() {
super("configmag", ServiceBase.getDaoName(BusinesstypeService));
}
}
module.exports = BusinesstypeService;
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class ForminfoService extends ServiceBase {
constructor() {
super("configmag", ServiceBase.getDaoName(ForminfoService));
this.formitemDao = system.getObject("db.configmag.formitemDao");
this.templateDao = system.getObject("db.template.templateinfoDao");
this.redisClient = system.getObject("util.redisClient");
}
/**
* 创建表单
* @param pobj
* @returns {Promise<void>}
*/
async createForm(pobj){
if(!pobj.name){
return system.getResultFail(-1,'表单名称不能为空');
}
if(!pobj.form_describe){
return system.getResultFail(-1,'表单描述不能为空');
}
var checkFormInfo = await this.dao.model.findOne({
where:{name:pobj.name},raw:true
});
if(checkFormInfo && checkFormInfo.id){
return system.getResultFail(-300,'表单名称重复,操作失败');
}
let code = await this.getBusUid("fm")
pobj.code = code;
pobj.user_id = pobj.userid;
pobj.user_name = pobj.username;
pobj.form_items = '单行文本,手机号'
let result = await this.create(pobj);
if(!result){
return system.getResultFail(-1,'创建表单失败');
}
//默认联系方式 表单项
let phoneItem = {
form_id:result.id,
name:"联系方式",
code:"contact_mobile",
config_params:{
verify_sms:0,
mobile_input_length:2
},
item_type:'phone',
item_type_name:'手机号',
is_enabled:1,
is_required:1,
sequence:2
}
let itRt = await this.formitemDao.create(phoneItem);
if(!itRt){
return system.getResultFail(-1,'创建联系人表单项失败');
}
//默认联系人 表单项
let nameItem = {
form_id:result.id,
name:"联系人",
code:"contact_name",
config_params:{"input_length": ["2", "40"]},
item_type:'singleText',
item_type_name:'单行文本',
is_enabled:1,
is_required:1,
sequence:1
}
let itRt2 = await this.formitemDao.create(nameItem);
this.updateForm(result)
if(!itRt2){
return system.getResultFail(-1,'创建联系方式表单失败');
}
return system.getResultSuccess();
}
/**
* 表单删除
* @param pobj
* @returns {Promise<void>}
*/
async deleteForm(pobj){
let template = await this.templateDao.findOne({form_id:pobj.id},[]);
if(template && template.is_enabled == 1){
return system.getResultFail(-1,'表单已投入使用,不能删除')
}
let del = await this.delete(pobj);
var shaStr = "forminfo_"+pobj.id;
await this.redisClient.delete(shaStr);
return system.getResult(del);
}
/**
* 修改方法
* @param pobj
* @returns {Promise<void>}
*/
async updateForm(pobj) {
let upData = {
name:pobj.name,
form_describe: pobj.form_describe
}
var checkFormInfo = await this.dao.model.findOne({
where:{name:pobj.name,id:{[this.db.Op.ne]:pobj.id}},raw:true
});
if(checkFormInfo && checkFormInfo.id){
return system.getResultFail(-300,'表单名称重复,操作失败');
}
let template = await this.templateDao.findOne({form_id:pobj.id},[]);
if(template && template.is_enabled == 1){
return system.getResultFail(-1,'表单已投入使用,不能修改')
}
//获取相关表单项
// let itemData = await this.formitemDao.findAll({form_id:pobj.id},[]);
let itemData = await this.formitemDao.model.findAll({
where:{form_id:pobj.id},raw:true,
order:[["sequence","asc"]]
});
let form_items = '';
if(itemData.length>0){
itemData.forEach(v=>{
form_items += v.item_type_name + ",";
})
form_items = form_items.substring(0,form_items.length-1)
}
upData.form_items = form_items;
//组装form表单
let form = await this.packageForm(itemData);
upData.form_table = form;
let result = await this.updateByWhere(upData,{id:pobj.id})
var shaStr = "forminfo_"+pobj.id;
await this.redisClient.delete(shaStr);
await this.redisClient.publish("delTemplateFormCache",shaStr);
return system.getResult(result);
}
/**
* 表单复制
* @param pobj
* @returns {Promise<void>}
*/
async copy(pobj){
let items = await this.formitemDao.findAll({form_id:pobj.id},[]);
delete pobj.id;
delete pobj.created_at;
let code = await this.getBusUid('fm');
pobj.code = code;
pobj.name += "_副本";
let saveRt = await this.create(pobj);
items.forEach(async (item) =>{
delete item.dataValues.id;
delete item.dataValues.created_at;
if(item.code!="contact_name" && item.code!="contact_mobile"){
let iCode = await this.getBusUid('it');
item.code = iCode;
}
item.form_id = saveRt.id
this.formitemDao.create(item.dataValues);
})
return system.getResult(saveRt);
}
//组装form
async packageForm(items) {
let data = {
"phone": "mobile",
"singleBtn": "radiogroup",
"multipleBtn": "checkgroup",
"downOptions": "dic-select",
"singleText": "input",
"multipleText": "textarea",
"area": "tree-sel"//忽略 4
}
let form = {};
let ctls = [];
if(items.length>0){
items.forEach(item=>{
if(item.is_enabled == 1){
let ctl = {}
ctl['type'] = data[item.item_type];
ctl['label'] = item.name;
ctl['prop'] = item.code;
let rules = [];
//单选框 多选框 下拉选项 添加options属性 结构为 a,b,c
if(['singleBtn','multipleBtn','downOptions'].includes(item.item_type) && item.config_params){
ctl['options'] = item.config_params.options
rules = [{ "required": true, "message": ' ', "trigger": 'change' }];
}else{
rules = [{ "required": true, "message": ' ', "trigger": 'blur' }];
}
//单行文本 多行文本 增加校验项 有最小和最大值
if(['singleText','multipleText'].includes(item.item_type) && item.config_params){
let rule = { "validator": "validatex", "trigger": "blur","minchars":item.config_params.input_length[0],"maxchars":item.config_params.input_length[1]}
rules.push(rule)
}
//手机号选项 增加校验项 有最大最小值
if('phone'== item.item_type){
let param = item.config_params;
let minchars,maxchars = 11;
if(param.mobile_input_length == 2){
minchars = 7;
maxchars = 11;
}
let rule = { "validator": "validatex", "trigger": "blur","minchars":minchars,"maxchars":maxchars};
rule["verifysms"] = param.verify_sms || 0;
rules.push(rule);
}
//省市选项 增加 ignorelevel属性 忽略区县为4,不忽略为5
if('area' == item.item_type){
let param = item.config_params;
if(param.is_show_county == 0){
ctl['ignorelevel'] = 4;
}else{
ctl['ignorelevel'] = 5;
}
ctl['archName']= 'regionJSON';
ctl['rootName'] = '全国区域';
}
if(item.is_required ==1){
ctl['rules'] = rules;
}
ctls.push(ctl);
}
})
//组装form 格式表单
form = {
name: "xxx",
main: [
{
"title": "表单信息",
cols:1,
ctls: ctls
}
]
}
}
return form;
}
async getFormList (pobj) {
let res = await this.dao.findAndCountAll(pobj);
return system.getResult(res);
}
async copyFormInfo (pobj) {
let form = await this.findById(pobj.id);
if (!form) {
return system.getResultFail(-1, "表单不存在");
}
// console.log(form.dataValues);
let formCode = await this.getBusUid("fm");
let formCopyObj = {
code: formCode,
name: form.name + "_副本",
form_items: form.form_items,
form_describe: form.form_describe,
notes: form.notes,
version: form.version,
// created_at: form.created_at,
// updated_at: form.updated_at,
uder_id: form.user_id,
user_name: form.user_name,
company_id: form.company_id,
record_num: form.record_num,
form_table: form.form_table
};
// console.log(formCopyObj);
// 创建新的表单信息
let formCopy = await this.create(formCopyObj);
let formCopyId = formCopy.id;
// 获取表单相关的表单项,复制并与新的表单关联
let formItems = await this.formitemDao.findAll({form_id: pobj.id});
if (formItems.length > 0) {
formItems.forEach(async (item) => {
let itemCode = await this.getBusUid("it");
let itemNew = {
form_id: formCopyId,
code: itemCode,
name: item.name,
item_type: item.item_type,
item_type_name: item.item_type_name,
config_params: item.config_params,
id_enabled: item.is_enabled,
is_required: item.is_required,
sequence: item.sequence,
notes: item.notes,
version: item.version,
// created_at: item.created_at,
// updated_at: item.updated_at
};
await this.formitemDao.create(itemNew);
});
}
return system.getResultSuccess(formCopy);
}
async deleteFormInfo (pobj) {
let template = await this.templateDao.findOne({"form_id": pobj.id});
if (template && template.is_enabled === 1) {
return system.getResultFail(-1, "表单使用中,无法删除");
}
let form = await this.delete({"id": pobj.id});
// let formItems = await this.formitemDao.findAll({"form_id": pobj.id});
// formItems.forEach(async (item) => await item.destory());
await this.formitemDao.bulkDeleteByWhere({where: {"form_id": pobj.id}});
return system.getResultSuccess(form);
}
}
module.exports = ForminfoService;
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class FormitemService extends ServiceBase {
constructor() {
super("configmag", ServiceBase.getDaoName(FormitemService));
this.templateDao = system.getObject('db.template.templateinfoDao');
}
async getFormItemListByFormId(pobj){
if(!pobj || !pobj.form_id){
return system.getResultFail(-101,"表单id不能为空");
}
var list = await this.dao.model.findAll({
attributes:[["code","key"],["name","title"]],
where:{form_id:pobj.form_id,is_enabled:1},
raw:true,
order:[["sequence","asc"]]
});
return system.getResultSuccess(list);
}
/**
* 创建表单项
* @param pobj
* @returns {Promise<void>}
*/
async createItem(pobj) {
if(!pobj.name){
return system.getResultFail(-1,'表单项名称不能为空');
}
if(!pobj.sequence){
return system.getResultFail(-1,'排序不能为空')
}
let template = await this.templateDao.findOne({form_id:pobj.form_id},[]);
if(template && template.is_enabled == 1){
return system.getResultFail(-1,'表单已投入使用,不能新增表单项');
}
let configRet = await this.packageConfigParams(pobj);
if(configRet.status !== 0){
return configRet;
}
let code = await this.getBusUid('it');
pobj.config_params = configRet.data;
pobj.code = code;
//保存表单项
let result = await this.create(pobj);
return system.getResult(result)
}
/**
*
* @param pobj
* @returns {Promise<void>}
*/
async deleteItem(pobj){
let itemInfo = await this.findOne({id:pobj.id},[]);
if(['contact_mobile','contact_name'].includes(itemInfo.code)){
return system.getResultFail(-1,'默认表单项,不能删除');
}
let template = await this.templateDao.findOne({form_id:itemInfo.form_id},[]);
if(template && template.is_enabled == 1){
return system.getResultFail(-1,'表单已投入使用,不能删除表单项');
}
let delRet = await this.delete(pobj);
return system.getResult(delRet);
}
/**
* 修改表表单项
* @param pobj
* @returns {Promise<void>}
*/
async updateItem(pobj) {
//参数重组
if(!pobj.name){
return system.getResultFail(-1,'表单名称不能为空');
}
if(!pobj.sequence){
return system.getResultFail(-1,'表单排序不能为空')
}
let template = await this.templateDao.findOne({form_id:pobj.form_id},[]);
if(template && template.is_enabled == 1){
return system.getResultFail(-1,'表单已投入使用,不能修改表单项');
}
let configRet = await this.packageConfigParams(pobj);
if(configRet.status !== 0){
return configRet;
}
pobj.config_params = configRet.data;
if(['contact_mobile','contact_name'].includes(pobj.code)){
// return system.getResultFail(-1,'默认表单项,不能修改');
delete pobj["item_type"];
delete pobj["item_type_name"];
delete pobj["is_required"];
delete pobj["is_enabled"];
delete pobj["name"];
delete pobj["sequence"];
delete pobj["code"];
//item_type\item_type_name\is_required\is_enabled\name\sequence\code
}
let upResult = await this.update(pobj);
return system.getResult(upResult);
}
/**
* 组装表单项参数
* @param pobj
* @returns {Promise<void>}
*/
async packageConfigParams(pobj){
let config_params = {};
switch (pobj.item_type) {
case "phone":
if(!pobj.mobile_input_length){
return system.getResultFail(-1,'手机号位数选择有误');
}
config_params["mobile_input_length"]=pobj.mobile_input_length =="specific" ?1:2;
config_params["verify_sms"]=pobj.verify_sms==true?1:0;
break;
case "singleBtn":
case "multipleBtn":
case "downOptions":
if(!pobj.options){
return system.getResultFail(-1,'选项内容不能为空')
}
config_params["options"] = pobj.options;
break;
case "singleText":
case "multipleText":
if(!pobj.input_les || !pobj.input_lar){
return system.getResultFail(-1,'请填写字数限制');
}
if(pobj.input_lar<pobj.input_les){
return system.getResultFail(-1,'字数范围有误');
}
let length = []
length.push(pobj.input_les);
length.push(pobj.input_lar);
config_params["input_length"] = length;
break;
case "area":
config_params["is_show_county"] = pobj.is_show_county==true?1:0;
break;
default:
break;
}
return system.getResult(config_params);
}
}
module.exports = FormitemService;
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class FormsubmitrecordService extends ServiceBase {
constructor() {
super("configmag", ServiceBase.getDaoName(FormsubmitrecordService));
this.templateinfoDao = system.getObject("db.template.templateinfoDao");
this.templatelinkDao = system.getObject("db.template.templatelinkDao");
this.forminfoDao = system.getObject("db.configmag.forminfoDao");
this.formitemDao = system.getObject("db.configmag.formitemDao");
this.fqUtilsSve = system.getObject("service.common.fqUtilsSve");
}
/**
* 提交表单记录
* @param {*} pobj
*/
async submitFormRecord(pobj){
var ab = pobj.actionBody;
var xctx = pobj.xctx;
if(!ab){
return system.getResultFail(-100,"参数错误");
}
if(!ab.link_code){
return system.getResultFail(-101,"模板链接编码不能为空");
}
if(!ab.form_id){
return system.getResultFail(-102,"表单id不能为空");
}
if(!ab.ali_code){
return system.getResultFail(-103,"校验编码不能为空");
}
//获取模板链接信息
var linkInfo = await this.templatelinkDao.model.findOne({
where:{code:ab.link_code},raw:true
});
if(!linkInfo || !linkInfo.id){
return system.getResultFail(-300,"未知模板链接");
}
if(!linkInfo.template_id){
return system.getResultFail(-301,"链接模板信息错误")
}
var templateinfo = await this.templateinfoDao.model.findOne({
where:{id:linkInfo.template_id},raw:true,
attributes:["id","business_code"]
});
if(!templateinfo || !templateinfo.id){
return system.getResultFail(-500,"未知模板信息");
}
//获取表单信息
var forminfo = await this.forminfoDao.model.findOne({
where:{id:ab.form_id},raw:true
});
if(!forminfo || !forminfo.id){
return system.getResultFail(-400,"未知表单")
}
//获取表单项
var formitems = await this.formitemDao.model.findAll({
where:{form_id:ab.form_id},raw:true,order:[["sequence","asc"]]
});
//校验封装参数
var res = await this.checkAndPackageFormItems(formitems,ab);
if(res && res.status && res.status<0){
return res;
}
var params = res;
var addObj={
ali_code:ab.ali_code,
template_id:linkInfo.template_id,templatelink_id:linkInfo.id,
form_id:forminfo.id,record_status:1,templatelink_snapshot:linkInfo,
form_snapshot:forminfo,
record_content:params,business_code:templateinfo.business_code,
push_status:0
}
// if(ab.push_status==1){
// addObj.push_status=1;
// }
var createRes = await this.dao.create(addObj);//创建记录
return system.getResultSuccess();
}
/**
* 参数校验
* @param {*} formitems 表单项
* @param {*} ab 表单提交数据
*/
async checkAndPackageFormItems(formitems,ab){
var params = {};
for(var i=0;i<formitems.length;i++){
var item = formitems[i];
var itemConfig = item.config_params;
if(item && item.code && item.is_enabled){//显示状态的表单项
var value = ab[item.code];
if(item.is_required===1){//必填
if(!ab[item.code] || ab[item.code].length<1){
return system.getResultFail(-100,item.name+"参数不能为空");
}
}
if(itemConfig.mobile_input_length===1){//手机号 1:限定11位 2:限定7-11位
if(value && value.length!=11){
return system.getResultFail(-101,item.name+"参数限定11位");
}
}
if(itemConfig.mobile_input_length===2){//手机号 1:限定11位 2:限定7-11位
if(value && (value.length<7 || value.length>11)){
return system.getResultFail(-102,item.name+"参数限定7-11位");
}
}
if(itemConfig.input_length && itemConfig.input_length.length==2){//输入长度区间
if(value && (value.length<itemConfig.input_length[0] || value.length>itemConfig.input_length[1])){
return system.getResultFail(-103,item.name+"参数输入长度为"+itemConfig.input_length[0]+"-"+itemConfig.input_length[1]+"位");
}
}
params[item.code] = value;
}
}
return params;
}
//将需求信息推送至蜂擎
async pushFormInfo2Fq(){
var limit = 100;
var formRecords = await this.dao.model.findAll({
attributes:["id","templatelink_snapshot","form_snapshot","ali_code","record_content"],
where:{
push_status:0,
ali_code:{[this.db.Op.ne]:null},form_snapshot:{[this.db.Op.ne]:null},
ali_code:{[this.db.Op.ne]:''},templatelink_snapshot:{[this.db.Op.ne]:null},
record_content:{[this.db.Op.ne]:null}
},
limit:limit,
order:[["id","asc"]],
raw:true
});
var recordList = await this.packageRecordList(formRecords);
for(var a=0;a<recordList.length;a++){
var pushRes = await this.fqUtilsSve.pushNeedInfo2Fq(recordList[a],recordList[a].code);
console.log(pushRes,"pushRes############################3");
if(pushRes && pushRes.data && pushRes.data=="success"){//推送成功
await this.dao.update({id:recordList[a].id,push_status:1});
}else{
await this.dao.update({id:recordList[a].id,push_status:2});
}
}
}
//封装表单记录信息
async packageRecordList(formRecords){
var recordList=[];
for(var i=0;i<formRecords.length;i++){
var fr = formRecords[i];
var rc = fr.record_content;
var linkinfo = fr.templatelink_snapshot;
var forminfo = fr.form_snapshot;
if(forminfo && forminfo.form_table && forminfo.form_table.main && forminfo.form_table.main[0] && forminfo.form_table.main[0].ctls ){
var ctls = forminfo.form_table.main[0].ctls;
var pushInfo = {
id:fr.id,
customer_name:rc.contact_name,customer_phone:rc.contact_mobile,source:"marketplat",
source_type:linkinfo.name || "未知",code:fr.ali_code
};
var advisory_content="";
for(var j=0;j<ctls.length;j++){
var ctl = ctls[j];
if(ctl.label && ctl.prop && rc[ctl.prop]){
advisory_content = advisory_content+ctl.label+":"+rc[ctl.prop]+";"
}
}
pushInfo["advisory_content"] = advisory_content || "未知";
recordList.push(pushInfo);
}
}
return recordList;
}
//将投放页需求信息推送至蜂擎
async pushMarketplatFormInfo2Fq(ab){
if(!ab || !ab.id){
return ;
}
var formRecord = await this.dao.model.findOne({
attributes:["id","templatelink_snapshot","form_snapshot","ali_code","record_content"],
where:{
id:ab.id,
push_status:0
},
raw:true
});
if(!formRecord || !formRecord.id || !formRecord.templatelink_snapshot || !formRecord.form_snapshot || !formRecord.ali_code ||!formRecord.record_content){
return;
}
var recordList = await this.packageRecordList([formRecord]);
for(var a=0;a<recordList.length;a++){
var pushRes = await this.fqUtilsSve.pushNeedInfo2Fq(recordList[a],recordList[a].code);
console.log(pushRes,"pushRes############################3");
if(pushRes && pushRes.data && pushRes.data=="success"){//推送成功
await this.dao.update({id:recordList[a].id,push_status:1});
}else{
await this.dao.update({id:recordList[a].id,push_status:2});
}
}
}
}
module.exports = FormsubmitrecordService;
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class ImginfoService extends ServiceBase {
constructor() {
super("configmag", ServiceBase.getDaoName(ImginfoService));
}
async getImgList(pobj) {
let res = await this.dao.findAndCountAll(pobj);
return system.getResultSuccess(res);
}
async createImginfo(pobj) {
let code = await this.getBusUid("img");
pobj.imginfo.code = code;
if (pobj.imginfo.company_id === undefined) {
pobj.imginfo.company_id = 10;
}
let res = await this.dao.create(pobj.imginfo);
return system.getResultSuccess(res);
}
async create(pobj) {
let code = await this.getBusUid("img");
pobj.code = code;
if (!pobj.pic_url) {
return system.getResultFail(-123, "图片不能为空");
}
return system.getResultSuccess(this.dao.create(pobj));
}
async update(pobj) {
let whereParams = {
id: pobj.id
}
let res = await this.dao.findOne(whereParams,[]);
if(!pobj.id){
return system.getResultFail(-124, "未知图片信息");
}
if(!pobj.pic_url){
pobj.pic_url = res.pic_url;
}
if(!pobj.pic_size){
pobj.pic_size = res.pic_size;
}
if(!pobj.name){
pobj.name = res.name;
}
return system.getResultSuccess(this.dao.update(pobj));
}
}
module.exports = ImginfoService;
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class LaunchchannelService extends ServiceBase {
constructor() {
super("configmag", ServiceBase.getDaoName(LaunchchannelService));
this.templatelinkSve = system.getObject("service.template.templatelinkSve");
}
/**
* 根据company_id 和 code 去重
* @param pobj
* @returns {Promise<{msg: string, data: *, bizmsg: string, status: number}|{msg: *, data: *, status: *}>}
*/
async createChannel(pobj) {
if (!pobj.company_id) {
return system.getResultFail(-1, 'company_id can not be empty');
}
if (!pobj.name) {
return system.getResultFail(-1, 'name can not be empty');
}
if (!pobj.code) {
return system.getResultFail(-1, 'code can not be empty');
}
let whereParams = {
code: pobj.code,
company_id: pobj.company_id
}
let searchResult = await this.findOne(whereParams, []);
if (searchResult) {
return system.getResultFail(-1,'渠道已存在,请勿重复添加');
}
let channelData = {
name: pobj.name,
code: pobj.code,
user_id: pobj.userid,
user_name: pobj.username,
company_id: pobj.company_id
}
let result = await this.create(channelData);
return system.getResult(result);
}
/**
* 编辑渠道
* @param pobj
* @returns {Promise<void>}
*/
async updateChannel(pobj){
let link = await this.templatelinkSve.findAll({channel_code:pobj.code,is_enabled:1},[]);
if(link.length>0){
return system.getResultFail(-1,'该业务正在投放中,不能修改');
}
let up = await this.update(pobj);
return system.getResult(up);
}
/**
* 删除
* @param pobj
* @returns {Promise<void>}
*/
async deleteChannel(pobj){
let channael = await this.findOne({id:pobj.id},['code'])
let link = await this.templatelinkSve.findAll({channel_code:channael.code},[]);
if(link.length>0){
return system.getResultFail(-1,'该业务正在投放中,不能删除');
}
let de = await this.delete(pobj);
return system.getResult(de);
}
}
module.exports = LaunchchannelService;
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
const { getResultSuccess } = require("../../../system");
class MaininfoService extends ServiceBase {
constructor() {
super("configmag", ServiceBase.getDaoName(MaininfoService));
this.templateLink = system.getObject("db.template.templatelinkDao");
}
async create(pobj) {
if (!pobj.name) {
return system.getResultFail(-101, 'name can not be empty');
}
if (!pobj.code) {
return system.getResultFail(-102, 'code can not be empty');
}
let whereParams = {
code: pobj.code,
}
let searchResult = await this.findOne(whereParams, []);
if (searchResult) {
return system.getResultFail(-103, '主体参数已存在,请勿重复添加');
}
return system.getResultSuccess(this.dao.create(pobj));
}
async update(pobj) {
let whereParams = {
id: pobj.id
}
let searchResult = await this.findOne(whereParams, []);
if (searchResult && searchResult.code) {
let linkWhere = {
marketing_subject_code: searchResult.code,
is_enabled: 1
}
let searchLink = await this.templateLink.findOne(linkWhere, []);
if (searchLink) {
return system.getResultFail(-104, '该业务正在投放中,不能修改');
}
}
return system.getResultSuccess(this.dao.update(pobj));
}
async delete(pobj) {
let whereParams = {
id: pobj.id
}
let searchResult = await this.findOne(whereParams, []);
if (searchResult && searchResult.code) {
let linkWhere = {
marketing_subject_code: searchResult.code,
is_enabled: 1
}
let searchLink = await this.templateLink.findOne(linkWhere, []);
if (searchLink) {
return system.getResultFail(-105, '该业务正在投放中,不能删除');
}
}
return system.getResultSuccess(this.dao.delete(pobj));
}
}
module.exports = MaininfoService;
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class PuttypeService extends ServiceBase {
constructor() {
super("configmag", ServiceBase.getDaoName(PuttypeService));
this.templateLink = system.getObject("db.template.templatelinkDao");;
}
async create(pobj) {
if (!pobj.name) {
return system.getResultFail(-101, 'name can not be empty');
}
if (!pobj.code) {
return system.getResultFail(-102, 'code can not be empty');
}
let whereParams = {
code: pobj.code
}
let searchResult = await this.findOne(whereParams, []);
if (searchResult) {
return system.getResultFail(-103, '投放方式参数已存在,请勿重复添加');
}
return system.getResultSuccess(this.dao.create(pobj));
}
async update(pobj) {
let whereParams = {
id: pobj.id
}
let searchResult = await this.findOne(whereParams, []);
if (searchResult && searchResult.code) {
let linkWhere = {
lauch_type_code: searchResult.code,
is_enabled:1
}
let searchLink = await this.templateLink.findOne(linkWhere, []);
if (searchLink) {
return system.getResultFail(-104, '该业务正在投放中,不能修改');
}
}
return system.getResultSuccess(this.dao.update(pobj));
}
async delete(pobj) {
let whereParams = {
id: pobj.id
}
let searchResult = await this.findOne(whereParams, []);
if (searchResult && searchResult.code) {
let linkWhere = {
lauch_type_code: searchResult.code,
is_enabled:1
}
let searchLink = await this.templateLink.findOne(linkWhere, []);
if (searchLink) {
return system.getResultFail(-105, '该业务正在投放中,不能删除');
}
}
return system.getResultSuccess(this.dao.delete(pobj));
}
}
module.exports = PuttypeService;
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
class BrowsingrecordsService extends ServiceBase {
constructor() {
super("template", ServiceBase.getDaoName(BrowsingrecordsService));
}
}
module.exports = BrowsingrecordsService;
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
const System = require("../../../system");
class TemplateconfigService extends ServiceBase {
constructor() {
super("template", ServiceBase.getDaoName(TemplateconfigService));
}
async findAndCountAll (obj) {
console.log(JSON.stringify(obj));
let res = await this.dao.findAndCountAll(obj);
return System.getResultSuccess(res);
}
}
module.exports = TemplateconfigService;
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
const sha256 = require("sha256");
class TemplateinfoService extends ServiceBase {
constructor() {
super("template", ServiceBase.getDaoName(TemplateinfoService));
this.templatelinkDao = system.getObject("db.template.templatelinkDao")
this.redisClient = system.getObject("util.redisClient");
}
async findByCompanyId(obj){
if(obj.company_id){
obj.search.company_id = obj.company_id;
}
var res = await this.dao.findAndCountAll(obj);
return system.getResultSuccess(res);
}
/**
* 创建模板
* @param {*} pobj
*/
async createTemplate(pobj){
var ab = {};
var code = await this.getBusUid("mt");//自动生成模板编码
var name = "营销模板";//模板名称
ab.code = code;
ab.name = name;
ab.user_id=pobj.userid;
ab.user_name=pobj.username;
ab.company_id=pobj.company_id;
ab.is_enabled=0;
var res = await this.create(ab);
return system.getResultSuccess(res);
}
/**
* 根据模板编码获取模板信息
* 编辑模板时使用此接口
* @param {*} pobj
*/
async findOneByCode(pobj){
var ab = pobj;
if(!ab){
return system.getResultFail(-100,"参数错误");
}
if(!ab.code){
return system.getResultFail(-101,"模板编码不能为空");
}
var templateInfo = await this.dao.model.findOne({
where:{code:ab.code},raw:true
});
return system.getResultSuccess(templateInfo);
}
async getTemplateInfoById(pobj){
var ab = pobj;
if(!ab){
return system.getResultFail(-100,"参数错误");
}
if(!ab.id){
return system.getResultFail(-101,"模板ID不能为空");
}
var templateInfo = await this.dao.model.findOne({
where:{id:ab.id},raw:true
});
return system.getResultSuccess(templateInfo);
}
async setTemplateBusinessId(pobj){
var ab = pobj;
if(!ab){
return system.getResultFail(-100,"参数错误");
}
if(!ab.id){
return system.getResultFail(-101,"模板ID不能为空");
}
if(!ab.business_code){
return system.getResultFail(-102,"商品ID不能为空");
}
await this.dao.update({id:ab.id,business_code:ab.business_code});
var templateInfo = await this.dao.model.findOne({
where:{id:ab.id},raw:true
});
return system.getResultSuccess(templateInfo);
}
/**
* 根据模板编码获取模板信息(模板调用)
* 编辑模板时使用此接口
* @param {*} pobj
*/
async getTemplateInfoByCode(pobj){
var ab = pobj.actionBody;
if(!ab){
return system.getResultFail(-100,"参数错误");
}
if(!ab.code){
return system.getResultFail(-101,"模板编码不能为空");
}
var templateInfo = await this.dao.model.findOne({
where:{code:ab.code},raw:true
});
return system.getResultSuccess(templateInfo);
}
/**
* 编辑模板
* @param {*} pobj
*/
async editTemplateContent(pobj){
var ab = pobj.actionBody;
var xctx = pobj.xctx;
if(!ab){
return system.getResultFail(-100,"参数错误");
}
if(!ab.code){
return system.getResultFail(-101,"模板编码不能为空");
}
if(!ab.template_content){
return system.getResultFail(-102,"模板内容不能为空");
}
//根据模板编码获取模板信息
var templateInfo = await this.dao.model.findOne({
where:{code:ab.code},raw:true
});
if(!templateInfo || !templateInfo.id){
return system.getResultFail(-300,"未知模板");
}
// if(templateInfo.is_enabled===1){
// return system.getResultFail(-301,"该模板正在使用中,不能执行此操作");
// }
var updateObj = {id:templateInfo.id,template_content:ab.template_content};
if(ab.form_id){
updateObj["form_id"] = ab.form_id;
}
await this.dao.update(updateObj);
this.delRedisInfoByLinkByTempId(templateInfo.id);
return system.getResultSuccess();
}
/**
* 修改启用状态
* @param {*} pobj
*/
async updateSwitchStatus(pobj){
var ab = pobj;
if(!ab){
return system.getResultFail(-100,"参数错误");
}
if(!ab.code){
return system.getResultFail(-101,"模板编码不能为空");
}
if(!ab.hasOwnProperty("is_enabled")){
return system.getResultFail(-102,"启用状态不能为空");
}
if(ab.is_enabled!==0 && ab.is_enabled!==1){
return system.getResultFail(-103,"启用状态参数错误");
}
var templateInfo = await this.dao.model.findOne({
where:{code:ab.code},raw:true
});
if(!templateInfo || !templateInfo.id){
return system.getResultFail(-300,"未知模板");
}
await this.dao.update({id:templateInfo.id,is_enabled:ab.is_enabled});
// 获取模板对应模板链接,并删除其redis缓存
this.delRedisInfoByLinkByTempId(templateInfo.id);
return system.getResultSuccess();
}
/**
* 编辑模板tdk信息
* @param {*} pobj
*/
async editTemplateTdk(pobj){
var ab = pobj;
var updateObj = {};
if(!ab){
return system.getResultFail(-100,"参数错误");
}
if(!ab.code){
return system.getResultFail(-101,"模板编码不能为空");
}
if(!ab.title){
return system.getResultFail(-102,"网页标题不能为空");
}
updateObj.title = ab.title;
if(!ab.keyword){
return system.getResultFail(-103,"关键词不能为空");
}
updateObj.keyword = ab.keyword;
if(!ab.pic_url){
return system.getResultFail(-104,"网页图标不能为空");
}
updateObj.pic_url = ab.pic_url;
if(!ab.describe){
return system.getResultFail(-105,"描述不能为空");
}
updateObj.describe = ab.describe;
//根据模板编码获取模板信息
var templateInfo = await this.dao.model.findOne({
where:{code:ab.code},raw:true
});
if(!templateInfo || !templateInfo.id){
return system.getResultFail(-300,"未知模板");
}
updateObj.id = templateInfo.id;
await this.dao.update(updateObj);
// 获取模板对应模板链接,并删除其redis缓存
this.delRedisInfoByLinkByTempId(templateInfo.id);
return system.getResultSuccess();
}
async update(qobj, tm = null) {
// 获取模板对应模板链接,并删除其redis缓存
if(qobj && qobj.id){
this.delRedisInfoByLinkByTempId(qobj.id);
}
return this.dao.update(qobj, tm);
}
/**
* 编辑模板2
* @param {*} pobj
*/
async editTemplate (pobj) {
var ab = pobj.actionBody;
// var xctx = pobj.xctx;
// 检查传入参数
if(!ab){
return system.getResultFail(-100,"参数错误");
}
if(!ab.code){
return system.getResultFail(-101,"模板编码不能为空");
}
if(!ab.template_content){
return system.getResultFail(-102,"模板内容不能为空");
}
// 获取对应模板
let template = await this.findOne({code: ab.code});
if (!template || !template.id) {
return system.getResultFail(-300, "未知模板");
}
if (!template.is_enable === 1) {
return system.getResultFail(-301, "该模板使用中,不能执行此操作");
}
// 更新模板
let obj = {template_content: ab.template_content};
if(ab.form_id){
obj["form_id"] = ab.form_id;
}
await template.update(obj);
// 获取模板对应模板链接,并删除其redis缓存
this.delRedisInfoByLinkByTempId(template.id);
return system.getResultSuccess();
}
//清除模板缓存数据
async delRedisInfoByLinkByTempId(template_id){
try {
let tls = await this.templatelinkDao.findAll({"template_id": template_id});
tls.forEach(async (tl) => {
let obj = {
is_enabled:1,
template_id: tl.template_id?tl.template_id.toString():"",
channel_code: tl.channel_code,
else_channel_param: tl.else_channel_param,
business_type_code: tl.business_type_code,
lauch_type_code: tl.lauch_type_code,
marketing_subject_code: tl.marketing_subject_code
};
let shaStr = sha256(JSON.stringify(obj));
shaStr = "templink_"+template_id+"_"+shaStr;
await this.redisClient.publish("delTemplateCache",shaStr);
await this.redisClient.delete(shaStr);
});
} catch (e) {
console.log(e)
}
}
}
module.exports = TemplateinfoService;
\ No newline at end of file
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
const settings = require("../../../../config/settings");
const sha256 = require("sha256");
class TemplatelinkService extends ServiceBase {
constructor() {
super("template", ServiceBase.getDaoName(TemplatelinkService));
this.templateLinkUrl = settings.templateLinkUrl();
this.templateinfoDao = system.getObject("db.template.templateinfoDao");
this.browsingrecordsDao = system.getObject("db.template.browsingrecordsDao");
this.launchchannelDao = system.getObject("db.configmag.launchchannelDao");
this.launchtypeDao = system.getObject("db.configmag.launchtypeDao");
this.marketingsubjectDao = system.getObject("db.configmag.marketingsubjectDao");
this.redisClient = system.getObject("util.redisClient");
this.execClient = system.getObject("util.execClient");
this.templateLinkInfoCache={};
this.browsingRecordsLogUrl = settings.browsingRecordsLogUrl();
}
/**
* 获取模板链接配置参数
* @param {*} pobj
*/
async getLinkConfigParams(pobj){
var ab = pobj.actionBody;
var xctx = pobj.xctx;
var company_id=xctx.companyid;
var whereObj = {company_id:company_id};
//渠道主体
var launchChannelList = await this.launchchannelDao.model.findAll({
attributes:["id","code","name"],
where:whereObj,raw:true
});
//业务参数
//投放方式
var launchTypeList = await this.launchtypeDao.model.findAll({
attributes:["id","code","name"],
where:whereObj,raw:true
});
//营销主体
var marketingSubjectList = await this.marketingsubjectDao.model.findAll({
attributes:["id","code","name"],
where:whereObj,raw:true
});
var res = {launchChannelList:launchChannelList,launchTypeList:launchTypeList,marketingSubjectList:marketingSubjectList};
return system.getResultSuccess(res);
}
/**
* 链接列表
* @param {*} obj
*/
async findAndCountAll(obj){
if(!obj || !obj.search || !obj.search.template_id){
return system.getResultFail(-101,"模板id不能为空");
}
var res = await this.dao.findAndCountAll(obj);
return res;
}
/**
* 校验封装参数
* @param {*} ab
* @param {*} xctx
*/
async checkAndPackageParams(ab,xctx){
var codeParams={};
if(!ab.channel_code){
return system.getResultFail(-101,"渠道主体编码不能为空");
}
codeParams.channel_code = ab.channel_code;
if(!ab.business_type_code){
return system.getResultFail(-102,"业务类型编码不能为空");
}
codeParams.business_type_code = ab.business_type_code;
if(!ab.lauch_type_code){
return system.getResultFail(-103,"投放方式编码不能为空");
}
codeParams.lauch_type_code = ab.lauch_type_code;
if(!ab.marketing_subject_code){
return system.getResultFail(-104,"营销主体编码不能为空");
}
codeParams.marketing_subject_code = ab.marketing_subject_code;
if(!ab.channel_name){
return system.getResultFail(-105,"渠道主体名称不能为空");
}
if(!ab.business_type_name){
return system.getResultFail(-106,"业务类型名称不能为空");
}
if(!ab.lauch_type_name){
return system.getResultFail(-107,"投放方式名称不能为空");
}
if(!ab.marketing_subject_name){
return system.getResultFail(-108,"营销主体名称不能为空");
}
if(!ab.delivery_word){
return system.getResultFail(-109,"投放词不能为空");
}
if(!ab.else_channel_param){
return system.getResultFail(-110,"其它渠道参数不能为空");
}
if(!ab.template_id){
return system.getResultFail(-111,"模板参数不能为空");
}
if(!ab.name){
return system.getResultFail(-112,"任务名称不能为空");
}
var checkCodeRes = await this.checkLinkCodeParams(codeParams);
if(checkCodeRes && checkCodeRes.status && checkCodeRes.status<0){
return checkCodeRes;
}
if(!ab.code){//新增
ab.code = await this.getBusUid("tl");
ab.user_id=ab.userid;
ab.user_name=ab.username;
ab.company_id=ab.company_id;
ab.is_enabled=0;
//查重
var distinctObj = {
template_id:ab.template_id,channel_code:ab.channel_code,else_channel_param:ab.else_channel_param,
business_type_code:ab.business_type_code,lauch_type_code:ab.lauch_type_code,marketing_subject_code:ab.marketing_subject_code
};
var distinctres = await this.dao.model.findOne({
where:distinctObj,raw:true
});
if(distinctres && distinctres.id){
return system.getResultFail(-113,"操作失败,存在重复的链接");
}
}else{//修改
var linkinfo = await this.dao.model.findOne({
where:{code:ab.code},raw:true
});
if(!linkinfo || !linkinfo.id){
return system.getResultFail(-300,"未知模板");
}
if(linkinfo.is_enabled===1){
return system.getResultFail(-301,"该链接正在投放中,不能执行此操作");
}
ab.id = linkinfo.id;
//查重
var distinctObj = {
template_id:ab.template_id,channel_code:ab.channel_code,else_channel_param:ab.else_channel_param,
business_type_code:ab.business_type_code,lauch_type_code:ab.lauch_type_code,marketing_subject_code:ab.marketing_subject_code,
id:{[this.db.Op.ne]:linkinfo.id}
};
var distinctres = await this.dao.model.findOne({
where:distinctObj,raw:true
});
if(distinctres && distinctres.id){
return system.getResultFail(-113,"操作失败,存在重复的链接");
}
}
ab.link_url_pc = this.templateLinkUrl+"?id="+ab.template_id+"&source="+ab.channel_code+"&device=pc&event="+ab.else_channel_param+
"&business="+ab.business_type_code+"&type="+ab.lauch_type_code+"&for="+ab.marketing_subject_code;
ab.link_url_mobile = this.templateLinkUrl+"?id="+ab.template_id+"&source="+ab.channel_code+"&device=mobile&event="+ab.else_channel_param+
"&business="+ab.business_type_code+"&type="+ab.lauch_type_code+"&for="+ab.marketing_subject_code;
return ab;
}
/**
* 创建模板链接数据
* @param {*} pobj
*/
async createTemplateLink(pobj){
var ab = pobj;
var xctx = pobj.xctx;
if(!ab){
return system.getResultFail(-100,"参数错误");
}
var checkres = await this.checkAndPackageParams(ab,xctx);
if(checkres && checkres.status<0){
return checkres;
}
ab = checkres;
var res = await this.create(ab);
return system.getResultSuccess(res);
}
/**
* 修改模板链接
* @param {*} pobj
*/
async editTemplateLink(pobj){
var ab = pobj.actionBody;
var xctx = pobj.xctx;
if(!ab){
return system.getResultFail(-100,"参数错误");
}
if(!ab.code){
return system.getResultFail(-100,"模板编码不能为空");
}
var checkres = await this.checkAndPackageParams(ab,xctx);
if(checkres && checkres.status<0){
return checkres;
}
ab = checkres;
await this.dao.update(ab);
if(ab.code){
this.delRedisInfoByLinkCode(ab.code);
}
return system.getResultSuccess();
}
/**
* 获取模板链接详情数据
* @param {*} pobj
*/
async findOneByCode(pobj){
var ab = pobj.actionBody;
var xctx = pobj.xctx;
if(!ab){
return system.getResultFail(-100,"参数错误");
}
if(!ab.code){
return system.getResultFail(-101,"模板编码不能为空");
}
var templateInfo = await this.dao.model.findOne({
where:{code:ab.code},raw:true
});
return system.getResultSuccess(templateInfo);
}
/**
* 修改投放状态
* @param {*} pobj
*/
async updateLaunchStatus(pobj){
var ab = pobj;
if(!ab){
return system.getResultFail(-100,"参数错误");
}
if(!ab.code){
return system.getResultFail(-101,"链接编码不能为空");
}
if(!ab.hasOwnProperty("is_enabled")){
return system.getResultFail(-102,"投放状态不能为空");
}
if(ab.is_enabled!==0 && ab.is_enabled!==1){
return system.getResultFail(-103,"投放状态参数错误");
}
var linkinfo = await this.dao.model.findOne({
where:{code:ab.code},raw:true
});
if(!linkinfo || !linkinfo.id){
return system.getResultFail(-300,"未知链接");
}
if(ab.is_enabled===1){
var checkLinkCodeParamsObj={
channel_code:linkinfo.channel_code,
lauch_type_code:linkinfo.lauch_type_code,
marketing_subject_code:linkinfo.marketing_subject_code
};
var checkLinkCodeParamsRes = await this.checkLinkCodeParams(checkLinkCodeParamsObj);
if(checkLinkCodeParamsRes && checkLinkCodeParamsRes.status && checkLinkCodeParamsRes.status<0){
return checkLinkCodeParamsRes;
}
}
await this.dao.update({id:linkinfo.id,is_enabled:ab.is_enabled});
this.delRedisInfoByLinkCode(linkinfo.code);
return system.getResultSuccess();
}
/**
* 删除模板链接
* @param {*} pobj
*/
async deleteTemplateLink(pobj){
var ab = pobj;
if(!ab){
return system.getResultFail(-100,"参数错误");
}
if(!ab.id){
return system.getResultFail(-101,"链接编码不能为空");
}
var linkinfo = await this.dao.model.findOne({
where:{id:ab.id},raw:true
});
if(!linkinfo || !linkinfo.id){
return system.getResultFail(-300,"未知模板链接");
}
if(linkinfo.is_enabled===1){
return system.getResultFail(-301,"该链接正在投放中,不能执行此操作");
}
await this.dao.delete({id:linkinfo.id});
return system.getResultSuccess();
}
/**
* 根据链接参数获取模板链接信息
* @param {*} pobj
*/
async getTemplateAndLinkInfo(pobj){
var ab = pobj.actionBody;
var xctx = pobj.xctx;
if(!ab){
return system.getResultFail(-100,"参数错误");
}
if(!ab.channel_code){
return system.getResultFail(-101,"渠道主体编码不能为空");
}
if(!ab.business_type_code){
return system.getResultFail(-102,"业务类型编码不能为空");
}
if(!ab.lauch_type_code){
return system.getResultFail(-103,"投放方式编码不能为空");
}
if(!ab.marketing_subject_code){
return system.getResultFail(-104,"营销主体编码不能为空");
}
if(!ab.else_channel_param){
return system.getResultFail(-110,"其它渠道参数不能为空");
}
if(!ab.template_id){
return system.getResultFail(-111,"模板参数不能为空");
}
if(!ab.device){
return system.getResultFail(-112,"投放终端参数不能为空");
}
var linkObj = {
is_enabled:1,
template_id:ab.template_id,channel_code:ab.channel_code,else_channel_param:ab.else_channel_param,
business_type_code:ab.business_type_code,lauch_type_code:ab.lauch_type_code,
marketing_subject_code:ab.marketing_subject_code
};
//获取链接数据
var linkinfo = await this.dao.model.findOne({
attributes:["code"],
where:linkObj,raw:true
});
if(!linkinfo || !linkinfo.code){
return system.getResultFail(-300,"未知链接或链接未投放");
}
// if(!linkinfo.is_enabled || linkinfo.is_enabled!==1){
// return system.getResultFail(-301,"无效链接,该链接未投放");
// }
var tempObj={id:ab.template_id,is_enabled:1};
var templateinfo = await this.templateinfoDao.model.findOne({
attributes:["title","keyword","describe","pic_url","template_content"],
where:tempObj,raw:true
});
if(!templateinfo){
return system.getResultFail(-400,"未知模板或模板未启用");
}
// if(!templateinfo.is_enabled || templateinfo.is_enabled!==1){
// return system.getResultFail(-401,"无效模板,该模板未启用");
// }
var resultObj = {
templateinfo:templateinfo,linkinfo:linkinfo
};
var addObj = {
...ab,
link_code:linkinfo.code,link_name:linkinfo.name,
channel_name:linkinfo.channel_name,business_type_name:linkinfo.business_type_name,
lauch_type_name:linkinfo.lauch_type_name,marketing_subject_name:linkinfo.marketing_subject_name,
client_ip:pobj.clientIp
};
this.browsingrecordsDao.create(addObj);//添加链接浏览记录
return system.getResultSuccess(resultObj);
}
//校验链接编码参数
async checkLinkCodeParams(obj){
var channelinfo = await this.launchchannelDao.model.findOne({
attributes:["id"],
where:{code:obj.channel_code},raw:true
});
if(!channelinfo || !channelinfo.id){
return system.getResultFail(-120,"操作失败,渠道不存在或已被修改");
}
var lauchtype = await this.launchtypeDao.model.findOne({
attributes:["id"],
where:{code:obj.lauch_type_code},raw:true
});
if(!lauchtype || !lauchtype.id){
return system.getResultFail(-121,"操作失败,投放类型不存在或已被修改");
}
var marketingsubject = await this.marketingsubjectDao.model.findOne({
attributes:["id"],
where:{code:obj.marketing_subject_code},raw:true
});
if(!marketingsubject || !marketingsubject.id){
return system.getResultFail(-121,"操作失败,投放主体不存在或已被修改");
}
return system.getResultSuccess();
}
async getTemplateAndLinkInfo2(pobj){
let ab = pobj.actionBody;
// 校验传入的参数
if(!ab){
return system.getResultFail(-100,"参数错误");
}
if(!ab.channel_code){
return system.getResultFail(-101,"渠道主体编码不能为空");
}
if(!ab.business_type_code){
return system.getResultFail(-102,"业务类型编码不能为空");
}
if(!ab.lauch_type_code){
return system.getResultFail(-103,"投放方式编码不能为空");
}
if(!ab.marketing_subject_code){
return system.getResultFail(-104,"营销主体编码不能为空");
}
if(!ab.else_channel_param){
return system.getResultFail(-110,"其它渠道参数不能为空");
}
if(!ab.template_id){
return system.getResultFail(-111,"模板参数不能为空");
}
if(!ab.device){
return system.getResultFail(-112,"投放终端参数不能为空");
}
let linkObj; // 用于查询模板链接的参数,actionBody去除device参数
let shaStr; // 将linkObj转为字符串并计算出sha256的值
let rtn; // 根据shaStr从redis库中查询返回的值。
let rtnObj; // 1.如果从redis中查到数据,则是redis中返回的数据,2.否则就是将要储存到redis中的数据。
let linkinfo; // 模板链接信息
let addObj; // 储存访问信息
linkObj = {
is_enabled:1,
template_id:ab.template_id?ab.template_id.toString():"",
channel_code:ab.channel_code,
else_channel_param:ab.else_channel_param,
business_type_code:ab.business_type_code,
lauch_type_code:ab.lauch_type_code,
marketing_subject_code:ab.marketing_subject_code
};
console.log(this.templateLinkInfoCache,"222222222222222222222222222222222");
console.log(linkObj);
shaStr = await sha256(JSON.stringify(linkObj));
shaStr = "templink_"+ab.template_id+"_"+shaStr;
if(this.templateLinkInfoCache[shaStr]){
rtn = this.templateLinkInfoCache[shaStr]; //从内存缓存读取数据
}else{
rtn = await this.redisClient.get(shaStr); //从redis读取数据
if(rtn){
this.templateLinkInfoCache[shaStr] = rtn;
}
}
//---- 从redis中读取到数据
if (rtn) {
rtnObj = JSON.parse(rtn);
linkinfo = rtnObj["linkinfo"];
} else {
// 获取模板链接信息
linkinfo = await this.dao.model.findOne({
attributes:[
"code",
"name",
"channel_name",
"business_type_name",
"lauch_type_name",
"marketing_subject_name"
],
where:linkObj,raw:true
});
if(!linkinfo){
return system.getResultFail(-300,"未知链接或该链接未投放");
}
// 模板链接存在,获取模板信息
let tempObj = {id:ab.template_id,is_enabled:1,}; // 用于查询templateinfo的条件
let templateinfo = await this.templateinfoDao.model.findOne({ // 查询结果
attributes:["title","keyword","describe","pic_url","template_content"],
where:tempObj,raw:true
});
if(!templateinfo){
return system.getResultFail(-400,"未知模板或该模板未启用");
}
rtnObj = { // 组合模板链接和模板信息
templateinfo,
linkinfo
};
//将数据保存
this.templateLinkInfoCache[shaStr] = JSON.stringify(rtnObj);
// 将数据保存到redis中
await this.redisClient.set(shaStr, JSON.stringify(rtnObj));
// await this.redisClient.setWithEx(shaStr, JSON.stringify(rtnObj), 60); // 保存的同时设置过期时间
}
addObj = { // 需要保存到浏览记录的内容
...ab,
link_code:linkinfo.code,
link_name:linkinfo.name,
channel_name:linkinfo.channel_name,
business_type_name:linkinfo.business_type_name,
lauch_type_name:linkinfo.lauch_type_name,
marketing_subject_name:linkinfo.marketing_subject_name,
client_ip:pobj.clientIp
};
this.writebrowsingrecords(addObj);
return system.getResultSuccess(rtnObj);
}
//添加链接浏览记录
async writebrowsingrecords(addObj){
try {
// var date = new Date();
// var localeDateString = date .toLocaleDateString();
// var haStr = await sha256(JSON.stringify(addObj));
// shaStr = "browsingrecords_"+localeDateString+"_"+shaStr;
// var rtn = await this.redisClient.get(shaStr);//从redis读取数据
// if(!rtn){
// await this.browsingrecordsDao.create(addObj);//添加链接浏览记录
// this.redisClient.set(shaStr,JSON.stringify(addObj));//从redis读取数据
// }
//await this.browsingrecordsDao.create(addObj);//添加链接浏览记录
//往Es中写入日志
var myDate = new Date();
addObj["created_at"] = myDate.getFullYear()+"-"+(myDate.getMonth()+1)+"-"+myDate.getDate();
addObj["created_year"] = myDate.getFullYear();
addObj["created_month"] =myDate.getMonth()+1;
addObj["created_day"] =myDate.getDate();
// await this.execClient.execPostEs(addObj, this.browsingRecordsLogUrl);
} catch (e) {
console.log(e,"writebrowsingrecords++++++++++++++++++++")
}
}
//清除模板链接redis缓存数据
async delRedisInfoByLinkCode(code){
try {
var ab = await this.dao.model.findOne({
where:{code:code},raw:true
});
if(ab){
var linkObj = {
is_enabled:1,
template_id:ab.template_id?ab.template_id.toString():"",
channel_code:ab.channel_code,
else_channel_param:ab.else_channel_param,
business_type_code:ab.business_type_code,
lauch_type_code:ab.lauch_type_code,
marketing_subject_code:ab.marketing_subject_code
};
// is_enabled:1,
// template_id:ab.template_id,
// channel_code:ab.channel_code,
// else_channel_param:ab.else_channel_param,
// business_type_code:ab.business_type_code,
// lauch_type_code:ab.lauch_type_code,
// marketing_subject_code:ab.marketing_subject_code
console.log(JSON.stringify(linkObj),"111111111111111111111111111111");
var shaStr = await sha256(JSON.stringify(linkObj));
shaStr = "templink_"+ab.template_id+"_"+shaStr;
await this.redisClient.publish("delTemplateCache",shaStr);
await this.redisClient.delete(shaStr);
}
} catch (e) {
console.log(e)
}
}
//清除模板链接缓存数据
async clearTemplateLinkInfoCache(key){
if(key && this.templateLinkInfoCache[key]){
delete this.templateLinkInfoCache[key];
}
}
}
module.exports = TemplatelinkService;
\ No newline at end of file
const system = require("../system");
var moment = require('moment');
const settings = require("../../config/settings");
const uuidv4 = require('uuid/v4');
class ServiceBase {
constructor(gname, daoName) {
//this.dbf=system.getObject("db.connection");
this.db = system.getObject("db.common.connection").getCon();
this.cacheManager = system.getObject("db.common.cacheManager");
console.log(">>>>>>>>>>>>>>..", daoName)
this.daoName = daoName;
this.dao = system.getObject("db." + gname + "." + daoName);
this.restS = system.getObject("util.restClient");
this.md5 = require("MD5");
}
getEncryptStr(str) {
if (!str) {
throw new Error("字符串不能为空");
}
var md5 = this.md5(str + "_" + settings.salt);
return md5.toString().toLowerCase();
}
getUUID() {
var uuid = uuidv4();
var u = uuid.replace(/\-/g, "");
return u;
}
static getDaoName(ClassObj) {
console.log(">>>>>>>>>>>>>>>>>>>>>>>>>>>..");
let rtnstr = ClassObj["name"].substring(0, ClassObj["name"].lastIndexOf("Service")).toLowerCase() + "Dao";
console.log(">>>>>>>>>>>>>>>>>>>>>>>>>>>..", rtnstr);
return rtnstr;
}
async findAndCountAll(obj) {
const apps = await this.dao.findAndCountAll(obj);
return apps;
}
async refQuery(pobj) {
return this.dao.refQuery(pobj);
}
async bulkDelete(ids) {
var en = await this.dao.bulkDelete(ids);
return en;
}
async delete(qobj) {
return this.dao.delete(qobj);
}
async create(qobj) {
return this.dao.create(qobj);
}
async update(qobj, tm = null) {
return this.dao.update(qobj, tm);
}
async updateByWhere(setObj, whereObj, t) {
return this.dao.updateByWhere(setObj, whereObj, t);
}
async customExecAddOrPutSql(sql, paras = null) {
return this.dao.customExecAddOrPutSql(sql, paras);
}
async customQuery(sql, paras, t) {
return this.dao.customQuery(sql, paras, t);
}
async findCount(whereObj = null) {
return this.dao.findCount(whereObj);
}
async findSum(fieldName, whereObj = null) {
return this.dao.findSum(fieldName, whereObj);
}
async getPageList(pageIndex, pageSize, whereObj = null, orderObj = null, attributesObj = null, includeObj = null) {
return this.dao.getPageList(pageIndex, pageSize, whereObj, orderObj, attributesObj, includeObj);
}
async findOne(obj, attributes = []) {
return this.dao.findOne(obj, attributes);
}
async findById(oid) {
return this.dao.findById(oid);
}
async findAll(obj, include = []) {
return this.dao.findAll(obj, include);
}
/*
返回20位业务订单号
prefix:业务前缀
*/
async getBusUid(prefix) {
prefix = (prefix || "");
if (prefix) {
prefix = prefix.toUpperCase();
}
var prefixlength = prefix.length;
var subLen = 8 - prefixlength;
var uidStr = "";
if (subLen > 0) {
uidStr = await this.getUidInfo(subLen, 60);
}
var timStr = moment().format("YYYYMMDDHHmm");
return prefix + timStr + uidStr;
}
/*
len:返回长度
radix:参与计算的长度,最大为62
*/
async getUidInfo(len, radix) {
var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');//长度62,到yz长度为长36
var uuid = [], i;
radix = radix || chars.length;
if (len) {
for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
} else {
var r;
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
uuid[14] = '4';
for (i = 0; i < 36; i++) {
if (!uuid[i]) {
r = 0 | Math.random() * 16;
uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
}
}
}
return uuid.join('');
}
//kong统一处理
//统一注册组件
async cformregister(opurl, opts) {
try {
let rtn = await system.post3wFormTypeReq(opurl, opts)
console.log(rtn);
if (rtn.statusCode == 409) {
//return new Error("已经存在相同的统一账号名称!");
return null;
}
if (rtn.statusCode == 201) {
return rtn.data;
} else {
throw new Error(rtn.data);
}
} catch (e) {
console.log(e);
return null;
}
}
async cget(opurl) {
let rtn = await system.getReq(opurl)
return rtn;
}
async cjsonregister(opurl, opts) {
try {
let rtn = await system.postJsonTypeReq(opurl, opts)
console.log(",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", rtn);
if (rtn.statusCode == 409) {
//return new Error("已经存在相同的统一账号名称!");
return null;
}
if (rtn.statusCode == 201) {
return rtn.data;
} else {
throw new Error(rtn.data);
}
return null;
} catch (e) {
console.log(e);
return null;
}
}
async cdel(opurl) {
try {
let rtn = await system.delReq(opurl)
if (rtn.statusCode == 204) {
return {};
} else {
throw new Error(rtn.data);
}
} catch (e) {
console.log(e);
return null;
}
}
static bindPluginUrl(rname) {
return settings.kongurl() + "routes/" + rname + "/plugins";
}
static newRouteUrl(sname) {
return settings.kongurl() + "services/" + sname + "/routes";
}
static newServiceUrl() {
return settings.kongurl() + "services";
}
static newConsumerUrl() {
return settings.kongurl() + "consumers";
}
static newJwtCredUrl(consumername) {
return settings.kongurl() + "consumers/" + consumername + "/jwt";
}
static serviceUrl(sname) {
return settings.kongurl() + "services/" + sname;
}
static routeUrl(rname) {
return settings.kongurl() + "routes/" + rname;
}
static consumerUrl(consumerName) {
return settings.kongurl() + "consumers/" + consumerName;
}
}
module.exports = ServiceBase;
var fs = require("fs");
var objsettings = require("../config/objsettings");
var settings = require("../config/settings");
const request = require('request');
class System {
static declare(ns) {
var ar = ns.split('.');
var root = System;
for (var i = 0, len = ar.length; i < len; ++i) {
var n = ar[i];
if (!root[n]) {
root[n] = {};
root = root[n];
} else {
root = root[n];
}
}
}
static async delReq(url, qdata) {
let rtn = {}
let promise = new Promise(function (resv, rej) {
request.del({
url: url,
qs: qdata
}, function (error, response, body) {
rtn.statusCode = response.statusCode
if (!error) {
if (body) {
let data = JSON.parse(body)
rtn.data = data
} else {
rtn.data = null
}
resv(rtn);
} else {
rej(error)
}
});
})
return promise;
}
static async getReq(url, qdata) {
let rtn = {}
let promise = new Promise(function (resv, rej) {
request.get({
url: url,
json: true,
qs: qdata
}, function (error, response, body) {
rtn.statusCode = response.statusCode;
if (!error) {
if (body) {
rtn.data = body
} else {
rtn.data = null
}
resv(rtn);
} else {
rej(error);
}
});
})
return promise;
}
static async postJsonTypeReq(url, data, md = "POST") {
let rtn = {}
let promise = new Promise(function (resv, rej) {
request({
url: url,
method: md,
json: true,
headers: {
'Content-type': 'application/json',
// 'Authorization': 'Basic YWRtaW5lczphZG1pbkdTQmVzLg=='
},
body: data
}, function (error, response, body) {
rtn.statusCode = response && response.statusCode?response.statusCode : "";
if (!error) {
if (body) {
rtn.data = body
} else {
rtn.data = null
}
resv(rtn);
} else {
rej(error)
}
});
})
return promise;
}
static async post3wFormTypeReq(url, data) {
let rtn = {}
let promise = new Promise(function (resv, rej) {
request.post({
url: url,
form: data
}, function (error, response, body) {
rtn.statusCode = response.statusCode
if (!error) {
let data = JSON.parse(body)
rtn.data = data
resv(rtn);
} else {
rej(error)
}
});
})
return promise;
}
static async postMpFormTypeReq(url, formdata) {
let promise = new Promise(function (resv, rej) {
request.post({
url: url,
formData: formdata
}, function (error, response, body) {
if (!error && response.statusCode == 200) {
resv(body);
} else {
rej(error)
}
});
})
return promise;
}
/**
* 请求返回成功
* @param {*} data 操作成功返回的数据,有值为成功,无值为失败
* @param {*} okmsg 操作成功的描述
* @param {*} req 请求头信息
*/
static getResult(data, opmsg, req) {
return {
status: !data ? -1 : 0,
msg: data ?'操作成功': '操作失败',
data: data,
bizmsg: req && req.session && req.session.bizmsg ? req.session.bizmsg : "empty"
};
}
/**
* 请求返回成功
* @param {*} data 操作成功返回的数据
* @param {*} okmsg 操作成功的描述
*/
static getResultSuccess(data, okmsg = "success") {
return {
status: 0,
msg: okmsg,
data: data,
};
}
/**
* 请求返回失败
* @param {*} status 操作失败状态,默认为-1
* @param {*} errmsg 操作失败的描述,默认为fail
* @param {*} data 操作失败返回的数据
*/
static getResultFail(status = -1, errmsg = "fail", data = null) {
return {
status: status,
msg: errmsg,
data: data,
};
}
/**
* 请求处理异常
* @param {*} errmsg 操作失败的描述,默认为fail
* @param {*} data 操作失败返回的数据
*/
static getResultError(errmsg = "fail", data = null) {
return {
status: -200,
msg: errmsg,
data: data,
};
}
static register(key, ClassObj, groupName, filename) {
if (System.objTable[key] != null) {
throw new Error("相同key的对象已经存在");
} else {
let obj;
if (ClassObj.name === "ServiceBase") {
obj = new ClassObj(groupName, filename.replace("Sve", "Dao"));
} else {
obj = new ClassObj(groupName, filename);
}
System.objTable[key] = obj;
}
return System.objTable[key];
}
static getObject(objpath) {
var pathArray = objpath.split(".");
var packageName = pathArray[0];
var groupName = pathArray[1];
var filename = pathArray[2];
var classpath = "";
if (filename) {
classpath = objsettings[packageName] + "/" + groupName;
} else {
classpath = objsettings[packageName];
filename = groupName;
}
var objabspath = classpath + "/" + filename + ".js";
//判断文件的存在性
//如果不存在,需要查看packageName
//如果packageName=web.service,dao
if (System.objTable[objabspath] != null) {
return System.objTable[objabspath];
} else {
var ClassObj = null;
try {
ClassObj = require(objabspath);
} catch (e) {
// console.log(e)
let fname = objsettings[packageName + "base"];
ClassObj = require(fname);
}
if (ClassObj.name == "Dao") {
let modelname = filename.substring(0, filename.lastIndexOf("Dao"))
return System.register(objabspath, ClassObj, modelname);
}
if (ClassObj.name.indexOf("Ctl") >= 0) {
console.log(ClassObj.name);
}
return System.register(objabspath, ClassObj, groupName, filename);
}
}
static getSysConfig() {
var configPath = settings.basepath + "/app/base/db/metadata/index.js";
// if(settings.env=="dev"){
// console.log("delete "+configPath+"cache config");
// delete require.cache[configPath];
// }
delete require.cache[configPath];
var configValue = require(configPath);
return configValue.config;
}
static get_client_ip(req) {
var ip = req.headers['x-forwarded-for'] ||
req.ip ||
req.connection.remoteAddress ||
req.socket.remoteAddress ||
(req.connection.socket && req.connection.socket.remoteAddress) || '';
var x = ip.match(/(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/);
if (x) {
return x[0];
} else {
return "localhost";
}
};
/**
* 记录日志信息
* @param {*} opTitle 操作的标题
* @param {*} params 参数
* @param {*} identifyCode 业务标识
* @param {*} resultInfo 返回结果
* @param {*} errorInfo 错误信息
*/
static execLogs(opTitle, params, identifyCode, resultInfo, errorInfo) {
var reqUrl = settings.logUrl();
let isLogData = true
if (params.method && (params.method.indexOf("find") >= 0 || params.method.indexOf("get") >= 0)) {
isLogData = false
}
var param = {
actionType: "produceLogsData",// Y 功能名称
actionBody: {
opTitle: opTitle || "",// N 操作的业务标题
identifyCode: identifyCode || "brg-center-manage",// Y 操作的业务标识
indexName: settings.logindex,// Y es索引值,同一个项目用一个值
messageBody: params, //日志的描述信息
resultInfo: isLogData ? resultInfo : { status: resultInfo.status },//返回信息
errorInfo: errorInfo,//错误信息
requestId: resultInfo.requestId || ""
}
};
console.log(JSON.stringify(param))
let P = new Promise((resv, rej) => {
this.postJsonTypeReq(reqUrl, param).then(res => {
if (res.statusCode == 200) {
resv(res.data)
} else {
rej(null)
}
});
})
return P
}
}
Date.prototype.Format = function (fmt) { //author: meizz
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
/**
* 常用 ENUM
*/
// 表分类
System.FLOWCODE = {
BIZ: "BIZ",//商机表
SCHEME: "SCHEME",//方案表
DELIVERY: "DELIVERY",//服务单表
ANNUALREPORT: "ANNUALREPORT"//年报表
}
// 服务名称
System.SERVICECODE = {
ICP: "ICP",
EDI: 'EDI',
ICPANNUALREPORT: "ICPANNUALREPORT",
EDIANNUALREPORT: "EDIANNUALREPORT"
}
// 商机状态
System.BUSSTATUS = {
WAITINGSCHEME: "beforeSubmission",//待提交方案
WAITINGCONFIRM: "beforeConfirmation",//待用户确认
SUCCESS: "isFinished",//已成交
CLOSED: "isClosed"//需求关闭
}
// 方案状态
System.SCHEMESTATUS = {
WAITINGCONFIRM: "beforeConfirmation",//待用户确认.
CLOSED: "isClosed",//方案关闭
REJECT: "isReject"//方案被拒绝
}
// 资质服务单状态
System.SERVERSESTATUS = {
RECEIVED: "received",//已接单
COLLECTING: "collecting",//收集材料中
SUBMITING: "submiting",//递交材料中
DISPOSEING: "disposeing",//工信部处理中
POSTING: "posting",//证书已邮寄
SUCCESS: "success",//服务已完成
CLOSED: "closed",//已关闭
}
// 年报服务单状态
System.ANNUALREPORT = {
RECEIVED: "received",//已接单
WAITDECLARE: "waitdeclare",//待申报
DECLARESUCCESS: "declaresuccess",//申报成功
SUCCESS: "success",//服务已完成
CLOSED: "closed",//已关闭
TAKEEFFECT: "takeeffect"//生效
}
// 渠道名
System.SOURCENAME = {
tencentCloud: "腾讯云"
}
/*
编码说明,
1000----1999 为请求参数验证和app权限验证
2000----2100 为请求用户信息操作验证,如:注册,登录,获取验证码,修改用户信息,修改用户密码
*/
System.objTable = {};
//访问token失效,请重新获取
System.tokenFail = 1000;
//appKey授权有误
System.appKeyError = 1100;
//应用处于待审核等待启用状态
System.waitAuditApp = 1110;
//获取访问token失败
System.getAppInfoFail = 1130;
//已经存在此用户,注册失败
System.existUserRegFail = 2000;
//用户名或密码错误
System.userLoginFail = 2010;
//用户名错误
System.userNameLoginFail = 2020;
//验证验证码错误
System.verifyVCodeFail = 2030;
//opencode存储的值已经失效
System.verifyOpencodeFail = 2040;
//重复操作
System.redoFail = 2050;
module.exports = System;
// (async ()=>{
// try{
// let d=await System.getReq("http://127.0.0.1:8001x/services")
// console.log(d)
// }catch(e){
// console.log(e);
// }
// })()
\ No newline at end of file
const Client = require('aliyun-api-gateway').Client;
var RPCClient = require('@alicloud/pop-core').RPCClient;
const client = new Client('203756805', 'crkyej0xlmqa6bmvqijun6ltxparllyn');//开发
// const client = new Client('203763771', 'e5e2ytnn6nrkr9qnqk4w5e6z0xlhkznu');//线上
class aliyunClient {
constructor() {
// this.aliReqUrl = "https://aliapi.gongsibao.com/tm/springboard";
this.aliclient = new RPCClient({
accessKeyId: 'LTAI4FmyipY1wuLHjLhMWiPa',
accessKeySecret: 'hp4FF18IDCSym1prqzxrAjnnhNH3ju',
endpoint: 'https://trademark.aliyuncs.com',
apiVersion: '2018-07-24'
});
}
async post(aliReqUrl, actionBody) {
var param = {
data: actionBody,
timeout: 20000,
headers: {
accept: 'application/json'
}
};
console.log(JSON.stringify(param), "______________峰擎---阿里云参数_______");
var result = await client.post(aliReqUrl, param);
console.log(JSON.stringify(result), "______________峰擎---阿里云返回结果_______");
return result;
}
//阿里接口
async reqbyget(obj, cbk) {
var self = this;
var action = obj.action;
var reqbody = obj.reqbody;
return self.aliclient.request(action, reqbody, {
timeout: 3000, // default 3000 ms
formatAction: true, // default true, format the action to Action
formatParams: true, // default true, format the parameter name to first letter upper case
method: 'GET', // set the http method, default is GET
headers: {}, // set the http request headers
});
}
}
module.exports = aliyunClient;
const system = require("../../system");
const uuidv4 = require('uuid/v4');
class AuthUtils {
constructor() {
this.cacheManager = system.getObject("db.common.cacheManager");
this.exTime = 5 * 3600;//缓存过期时间,5小时
}
getUUID() {
var uuid = uuidv4();
var u = uuid.replace(/\-/g, "");
return u;
}
/**
* 获取访问token信息
* @param {*} appkey 应用key
* @param {*} secret 应用密钥
*/
async getTokenInfo(appkey, secret) {
var rtnKey = this.getUUID();
var cacheAccessKey = await this.cacheManager["ApiAccessKeyCache"].cache(appkey, rtnKey, this.exTime);
if (cacheAccessKey) {
rtnKey = cacheAccessKey.accessKey;
}//获取之前的token值
var appData = await this.cacheManager["ApiAccessKeyCache"].cache(rtnKey, secret, this.exTime, appkey);
if (!appData) {
return system.getResultFail(system.getAppInfoFail, "key或secret错误.");
}
if (!appData.isEnabled) {
return system.getResultFail(system.waitAuditApp, "应用处于待审核等待启用状态.");
}
appData.accessKey = rtnKey;
return system.getResultSuccess(appData);
}
}
module.exports = AuthUtils;
var excel = require('exceljs');
const system=require("../system");
const uuidv4 = require('uuid/v4');
const fs=require("fs");
class ExcelClient {
constructor() {
this.columns = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
this.ossClient=system.getObject("util.ossClient");
this.filedownloadDao = system.getObject("db.filedownloadDao");
}
async download(params) {
var self = this;
var title = params.title || "";
var code = params.code || uuidv4();
var fileName = params.fileName || code + ".xlsx";
var filePath = params.filePath || "/tmp/" + fileName;
var rows = params.rows || [];
var user = params.user || {};
var wb = new excel.Workbook();
wb.properties.date1904 = true;
var sheet = wb.addWorksheet("sheet1");
var headers = rows[0];
console.log(headers, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2 headers");
if(title) {
sheet.addRow([title]);
sheet.getCell("A1").font = {
    name: '微软雅黑',
    family: 4,
    size: 12,
    bold: true
};
sheet.getCell('A1').alignment = { vertical: 'middle', horizontal: 'center' };
var colkey = 0;
if(headers.length > 0) {
colkey = headers.length - 1;
}
var endColumn = this.columns[colkey] || "A";
sheet.mergeCells("A1:" + endColumn + "1");
}
for(var r of rows) {
sheet.addRow(r);
}
wb.xlsx.writeFile(filePath).then(async function(d) {
var rtn = await self.ossClient.upfile(fileName, filePath);
fs.unlink(filePath,function(err){});
var obj = {
user_id : user.id || 0,
userName : user.userName || "",
code : code,
fileName : fileName,
filePath : rtn.url || "",
isDownload : false,
}
var obj = await self.filedownloadDao.create(obj);
});
}
}
module.exports = ExcelClient;
var childproc = require('child_process');
const util = require('util');
const exec = util.promisify(require('child_process').exec);
class ExecClient {
constructor() {
this.cmdPostPattern = "curl -k -H 'Content-type: application/json' -d '{data}' {url}";
this.cmdGetPattern = "curl -G -X GET '{url}'";
this.cmdPostPatternEs = "curl --user admines:adminGSBes. -k -H 'Content-type: application/json' -d '{data}' {url}";
}
async exec(cmd) {
//await后面表达式返回的promise对象,是then的语法糖,await返回then函数的返回值
//异常需要try/catch自己捕获或外部catch捕获
const {stdout, stderr} = await exec(cmd);
return {stdout, stderr};
}
async exec2(cmd) {
return exec(cmd, {encoding: "base64"});
}
FetchPostCmd(subData, url) {
var data = JSON.stringify(subData);
var cmd = this.cmdPostPattern.replace(/\{data\}/g,
data).replace(/\{url\}/g, url);
console.log(cmd);
return cmd;
}
async execPost(subData, url) {
let cmd = this.FetchPostCmd(subData, url);
var result = await this.exec(cmd);
return result;
}
async execPostEs(subData, url) {
let cmd = this.FetchPostCmdEs(subData, url);
var result = await this.exec(cmd);
return result;
}
async execPost2(subData, url) {
let cmd = this.FetchPostCmd(subData, url);
var result = await this.exec2(cmd);
return result;
}
FetchGetCmd(subData, url) {
var cmd = this.cmdGetPattern.replace(
/\{data\}/g, subData).replace(/\{url\}/g, url);
console.log(cmd);
return cmd;
}
async execGet(subData, url) {
let cmd = this.FetchGetCmd(subData, url);
console.log(cmd);
var result = await this.exec(cmd);
return result;
}
async execGet2(subData, url) {
let cmd = this.FetchGetCmd(subData, url);
console.log(cmd);
var result = await this.exec2(cmd);
return result;
}
async execGetTimeOut(subData, url, timeOut = 5000) {
//timeOut,单位是毫秒
let cmd = this.FetchGetCmd(subData, url);
var options = {
timeout: timeOut,
};
const {stdout, stderr} = await exec(cmd, options);
return {stdout, stderr};
}
FetchPostCmdEs(subData, url) {
var data = JSON.stringify(subData);
var cmd = this.cmdPostPatternEs.replace(/\{data\}/g,
data).replace(/\{url\}/g, url);
console.log(cmd);
return cmd;
}
}
module.exports = ExecClient;
// var x=new RestClient();
// x.execGet("","http://www.163.com").then(function(r){
// console.log(r.stdout);
// console.log(r.stderr);
// });
// var log4js = require('log4js');
var settings = require("../../config/settings");
const uuidv4 = require('uuid/v4');
const system = require("../system");
class LogClient {
constructor() {
}
getUUID() {
var uuid = uuidv4();
var u = uuid.replace(/\-/g, "");
return u;
}
async log(pobj, req, rtninfo, errinfo) {
try {
rtninfo.requestId = this.getUUID()
req.params.param = pobj
//第三个字段应该存公司id
system.execLogs(settings.appname + "_" + req.xctx.codetitle, req.params, "_" + pobj.company_id + "_", rtninfo, errinfo).then(res => {
if (res && res.status == 1) {
console.log("log.....success")
} else {
console.log("log.....fail")
}
}).catch(e => {
console.log("log.....fail")
})
} catch (error) {
console.log(error);
}
}
async pushlog(title,params,rtninfo,errinfo) {
try {
rtninfo.requestId = this.getUUID();
//第三个字段应该存公司id
system.execLogs(title,params,"gsb-marketplat",rtninfo, errinfo).then(res => {
if (res && res.status == 1) {
console.log("log.....success")
} else {
console.log("log.....fail")
}
}).catch(e => {
console.log("log.....fail")
})
} catch (error) {
console.log(error);
}
}
}
module.exports = LogClient;
var nodemailer = require('nodemailer');
class MailClient{
constructor(){
this.mailer=nodemailer.createTransport({
service: 'aliyun',
secureConnection: true,
port: 465,
auth: {
user: 'czhd_ip@gongsibao.com',
pass: 'HANtang2018'
}
});
}
//嵌入图片
// var mailOptions = {
// from: 'bsspirit ',
// to: 'xxxxx@163.com',
// subject: 'Embedded Image',
// html: '<b>Hello world ✔</b><br/>Embedded image: <img src="cid:00000001"/>',
// attachments: [{
// filename: '01.png',
// path: './img/r-book1.png',
// cid: '00000001'
// }]
// }
//发送邮件
// var mailOptions = {
// from: 'bsspirit ',
// to: 'xxxxx@163.com',
// subject: 'Hello ✔',
// text: 'Hello world ✔',
// html: '<b>Hello world ✔</b>' // html body
// attachments: [
// {
// filename: 'text0.txt',
// content: 'hello world!'
// },
// {
// filename: 'text1.txt',
// path: './attach/text1.txt'
// }
// ]
// };
async sendMsg(to,title,text,html,cc,bcc,atts){
var options={
from: "czhd_ip@gongsibao.com", // sender address
to: to, // list of receivers
cc: cc||'',
bcc: bcc||'',
subject: title, // Subject line
text: text || '', // plaintext body
html: html || '',// html body
attachments: atts||[
]
};
var self=this;
var p=new Promise(function(resv,rej){
self.mailer.sendMail(options, function(error, info){
if(error){
return rej(error);
}else{
return resv(info.response);
}
});
});
return p;
}
}
module.exports=MailClient;
// var d=new MailClient();
// d.sendMsg("zhangjiao@gongsibao.com","test","see","hello txt",null,null,[
// {
// filename: 'text1.jpg',
// path: 'https://gsb-zc.oss-cn-beijing.aliyuncs.com/zc_3369154019592833720182216128337mmexport1540195729827.jpg'
// }
// ]).then(r=>{
// console.log(r);
// }).catch(e=>{
// console.log(e);
// });
var co = require('co');
var OSS = require('ali-oss');
class OSSClient{
constructor(){
this.client=new OSS({
endpoint: 'https://oss-cn-beijing.aliyuncs.com',
accessKeyId: 'LTAI4GC5tSKvqsH2hMqj6pvd',
accessKeySecret: '3KV9nIwW8qkTGlrPmAe3HnR3fzM6r5'
});
this.client.useBucket('gsb-zc');
}
async downfile(key){
var me=this;
var result=await co(function* () {
var result = yield me.client.get(key, '/tmp/'+key);
return result;
});
return result;
}
async upfile(key,filepath){
var me=this;
var result=await co(function* () {
var result = yield me.client.put(key, filepath);
return result;
})
return result;
}
async putBuffer (key,buf) {
try {
var result = await this.client.put(key, buf);
console.log(result);
return result
} catch (e) {
console.log(e);
return null
}
}
}
module.exports=OSSClient;
// var oss=new OSSClient();
// var key="netsharp_QSzjD4HdKdTmRR6b5486pEA3AbsW8Pr8.jpg"
// oss.upfile(key,"/usr/devws/OMC/igirl-api/r3.jpg").then(function(result){
// console.log(result);
// });
// oss.downfile(key).then(function(result){
// console.log(result);
// });
const system = require("../system");
const redis = require("redis");
const settings = require("../../config/settings");
const bluebird = require("bluebird");
bluebird.promisifyAll(redis);
// const logCtl=system.getObject("web.oplogCtl");
class RedisClient {
constructor() {
const redisConfig = settings.redis();
this.client = redis.createClient({
host: redisConfig.host,
port: redisConfig.port,
password: redisConfig.password,
db: redisConfig.db,
retry_strategy: function (options) {
// if (options.error && options.error.code === 'ECONNREFUSED') {
// // End reconnecting on a specific error and flush all commands with
// // a individual error
// return new Error('The server refused the connection');
// }
if (options.total_retry_time > 1000 * 60 * 60) {
// End reconnecting after a specific timeout and flush all commands
// with a individual error
return new Error('Retry time exhausted');
}
if (options.attempt > 10) {
// End reconnecting with built in error
return 10000;
}
// reconnect after
return Math.min(options.attempt * 100, 3000);
}
});
// return client.multi().get('foo').execAsync().then(function(res) {
// console.log(res); // => 'bar'
// });
this.client.on("error", function (err) {
console.log("Error " + err);
// //日志记录
// logCtl.error({
// optitle:"redis this.client.on异常:",
// op:"base/utils/redisClient/this.client.on",
// content:err,
// clientIp:""
// });
});
this.subclient = this.client.duplicate();
this.subclient.on("error", function (err) {
console.log("Error " + err);
// //日志记录
// logCtl.error({
// optitle:"redis this.subclient.on异常:",
// op:"base/utils/redisClient/this.subclient.on",
// content:err,
// clientIp:""
// });
});
var self = this;
this.subclient.on("message", async function (channel, message) {
console.log(channel, '------------- redis message ------------------- ');
if(channel=="delTemplateCache" && message ){
var tempLinkSve = system.getObject("service.template.templatelinkSve");
await tempLinkSve.clearTemplateLinkInfoCache(message);
}
if(channel=="delTemplateFormCache" && message ){
var template = system.getObject("api.action.template");
await template.delTemplateFormCache(message);
}
});
this.subscribe("delTemplateCache",null);
this.subscribe("delTemplateFormCache",null);
}
async subscribe(channel, chatserver) {
return this.subclient.subscribeAsync(channel);
}
async unsubscribe(channel) {
//this.chatserver=null;
return this.subclient.unsubscribeAsync(channel);
}
async subscribeTask(channel, taskmanager) {
if (!this.taskmanager) {
this.taskmanager = taskmanager;
}
return this.subclient.subscribeAsync(channel);
}
async publish(channel, msg) {
console.log(channel + ":" + msg);
return this.client.publishAsync(channel, msg);
}
async rpush(key, val) {
return this.client.rpushAsync(key, val);
}
async llen(key) {
return this.client.llenAsync(key);
}
async rpushWithEx(key, val, t) {
var p = this.rpush(key, val);
this.client.expire(key, t);
return p;
}
async rpop(key) {
return this.client.rpopAsync(key);
}
async lpop(key) {
return this.client.lpopAsync(key);
}
async lrem(key, val) {
return this.client.lremAsync(key, 1, val);
}
async ltrim(key, s, e) {
return this.client.ltrimAsync(key, s, e);
}
async clearlist(key) {
await this.client.ltrim(key, -1, -1);
await this.client.ltrim(key, 1, -1);
return 0;
}
async flushall() {
console.log("sss");
return this.client.flushallAsync();
}
async keys(p) {
return this.client.keysAsync(p);
}
async set(key, val) {
if (typeof val == "undefined" || typeof key == "undefined") {
console.log("......................cache val undefined");
console.log(key);
return null;
}
return this.client.setAsync(key, val);
}
async setWithEx(key, val, t) {
var p = this.client.setAsync(key, val);
this.client.expire(key, t);
return p;
}
async get(key) {
return this.client.getAsync(key);
}
async delete(key) {
return this.client.delAsync(key);
}
async hmset(key, jsonObj) {
return this.client.hmsetAsync(key, jsonObj);
}
async hmsetWithEx(key, jsonObj, t) {
var p = this.client.hmsetAsync(key, jsonObj);
this.client.expire(key, t);
return p;
}
async hgetall(key) {
return this.client.hgetallAsync(key);
}
async hincrby(key, f, n) {
return this.client.hincrbyAsync(key, f, n);
}
async sadd(key, vals) {
await this.client.saddAsync(key, ...vals);
return this.scard(key);
}
async scard(key) {
return this.client.scardAsync(key);
}
async srem(key, val) {
return this.client.sremAsync(key, val);
}
async sismember(key, val) {
return this.client.sismemberAsync(key, val);
}
async smembers(key) {
return this.client.smembersAsync(key);
}
async exists(key) {
return this.client.existsAsync(key);
}
async incr(key) {
return this.client.incrAsync(key);
}
}
module.exports = RedisClient;
// var client = new RedisClient();
// (async ()=>{
// await client.rpush("tasklist","xxx");
// await client.rpush("tasklist","xxx");
// var len=await client.llen("tasklist");
// //await client.clearlist("tasklist");
// len=await client.llen("tasklist");
// console.log(len);
// })()
// client.keys('*').then(s=>{
// console.log(s);
// });
// let clients = {};
// clients.watcher = redis.createClient({ ... } );
// clients.alterer = clients.watcher.duplicate();
// client.sadd("h",["ok","jy","ok"]).then(function(r){
// console.log(r);
// });
// client.sadd("h","jy").then(function(r){
// console.log(r);
// });
// client.srem("h","jy").then(function(r){
// console.log(r);
// });
// client.smembers("h").then(function(r){
// console.log(r);
// });
// client.sismember("h","ok").then(function(r){
// console.log(r);
// });
// console.dir(client);ti.exec( callback )回调函数参数err:返回null或者Array,出错则返回对应命令序列链中发生错误的错误信息,这个数组中最后一个元素是源自exec本身的一个EXECABORT类型的错误
// r.set("hello","oooo").then(function(result){
// console.log(result);
// });
// r.get("hello").then(function(result){
// console.log(result);
// });
// client.hmset("user_1",{name:"jy",age:13}).then(function(r){
// console.log(r);
//
// });
// client.hincrby("user_1","age",2).then(function(r){
// console.log(r);
// setTimeout(function(){
// client.hgetall("user_1").then(function(u){
// console.log(u);
// });
// },3000);
// });
var childproc = require('child_process');
const util = require('util');
const exec = util.promisify(require('child_process').exec);
const querystring = require('querystring');
var settings=require("../../config/settings");
class RestClient{
constructor(){
this.cmdGetPattern = "curl {-G} -k -d '{data}' {url}";
this.cmdPostPattern="curl -k -H 'Content-type: application/json' -d '{data}' {url}";
this.cmdDownLoadFilePattern="curl -G -o {fileName} {url}";
this.cmdPostPattern2="curl -k -H 'Content-type: application/x-www-form-urlencoded' -d '{data}' {url}";
this.cmdPostPatternWithAK="curl -k -H 'Content-type: application/json' -H 'AccessKey:{ak}' -d '{data}' {url}";
//云帐户
// this.cmdPostPattern3="curl -k -H 'Content-type: application/x-www-form-urlencoded' -H 'dealer-id:"+settings.apiconfig.yunzhanghuDealer_id()+"' -H 'request-id:"+parseInt(Date.now() / 1000)+"_gsb"+"' -d '{data}' {url}";
// this.cmdGetPattern3 = "curl {-G} -k {url} --header 'dealer-id:"+settings.apiconfig.yunzhanghuDealer_id()+"'";
//e签宝
//this.cmdPostPattern4="curl -k -H 'Content-type: application/json' -H 'X-Tsign-Open-App-Id:"+settings.apiconfig.eSignBaoAppId()+"' -H 'X-Tsign-Open-App-Secret:"+settings.apiconfig.eSignBaoAppKey()+"' -d '{data}' {url}";
// form-data形式post data参数类型 md5=2&data=1
this.cmdPostPattern5="curl -k --data '{data}' {url}";
}
FetchGetCmd(subData, url) {
var cmd = this.cmdGetPattern.replace(/\{\-G\}/g, "-G").replace(
/\{data\}/g, subData).replace(/\{url\}/g, url);
return cmd;
}
FetchPostCmd(subData, url) {
var data=JSON.stringify(subData);
var cmd= this.cmdPostPattern.replace(/\{data\}/g,
data).replace(/\{url\}/g, url);
return cmd;
}
FetchPostCmdWithAK(subData, url,acck) {
var data=JSON.stringify(subData);
var cmd= this.cmdPostPatternWithAK.replace(/\{data\}/g,
data).replace(/\{url\}/g, url).replace(/\{ak\}/g,acck);
return cmd;
}
FetchPostCmd2(subData, url) {
var data=subData;
var cmd= this.cmdPostPattern2.replace(/\{data\}/g,
data).replace(/\{url\}/g, url);
return cmd;
}
FetchPostCmd3(subData, url) {
var data=subData;
var cmd= this.cmdPostPattern3.replace(/\{data\}/g,
data).replace(/\{url\}/g, url);
return cmd;
}
FetchGetCmd3(url) {
var cmd = this.cmdGetPattern3.replace(/\{\-G\}/g, "-G").replace(/\{url\}/g, url);
return cmd;
}
FetchPostCmd4(subData, url) {
var data=subData;
var cmd= this.cmdPostPattern4.replace(/\{data\}/g,
data).replace(/\{url\}/g, url);
return cmd;
}
FetchPostCmd5(subData, url) {
var data=subData;
var cmd= this.cmdPostPattern5.replace(/\{data\}/g,
data).replace(/\{url\}/g, url);
return cmd;
}
FetchDownLoadCmd(outfname,url) {
// console.log(this.cmdPattern);
var cmd = this.cmdDownLoadFilePattern.replace(/\{fileName\}/g, outfname).replace(
/\{url\}/g, url);
return cmd;
}
async exec(cmd) {
//await后面表达式返回的promise对象,是then的语法糖,await返回then函数的返回值
//异常需要try/catch自己捕获或外部catch捕获
const { stdout, stderr } = await exec(cmd);
return { stdout, stderr };
}
async execDownload(url,outfname){
let cmd=this.FetchDownLoadCmd(outfname,url);
var result=await this.exec(cmd);
return result;
}
async execGet(subData, url){
let cmd=this.FetchGetCmd(subData,url);
var result=await this.exec(cmd);
return result;
}
async execGet2(subData, url){
var data=querystring.stringify(subData);
let cmd=this.FetchGetCmd(data,url);
var result=await this.exec(cmd);
return result;
}
async execPost(subData, url){
let cmd=this.FetchPostCmd(subData,url);
var result=await this.exec(cmd,{
maxBuffer: 4096 * 1024
});
return result;
}
async execPostWithAK(subData, url,ak){
let cmd=this.FetchPostCmdWithAK(subData,url,ak);
var result=await this.exec(cmd,{
maxBuffer:1024*1024*15
});
var rtn=result.stdout;
if(rtn){
return JSON.parse(rtn);
}else{
return null;
}
}
async execPost2(subData, url){
let cmd=this.FetchPostCmd2(subData,url);
console.log(cmd);
var result=await this.exec(cmd);
return result;
}
async execPost3(subData, url){
let cmd=this.FetchPostCmd3(subData,url);
console.log(cmd);
var result=await this.exec(cmd);
return result;
}
async execGet3(url){
let cmd=this.FetchGetCmd3(url);
console.log("execGet3-----01");
console.log(cmd);
var result=await this.exec(cmd);
return result;
}
async execPostESignBao(subData, url){
let cmd=this.FetchPostCmd4(subData,url);
console.log(cmd);
var result=await this.exec(cmd);
return result;
}
async execPostForm(subData, url){
let cmd=this.FetchPostCmd5(subData,url);
console.log(cmd);
var result=await this.exec(cmd);
return result;
}
async execCustomPostESignBao(cmd){
console.log(cmd);
var result=await this.exec(cmd);
return result;
}
test(){
console.log("hello");
}
}
module.exports=RestClient;
// var x=new RestClient();
// x.execGet("","http://www.163.com").then(function(r){
// console.log(r.stdout);
// console.log(r.stderr);
// });
const system=require("../system");
const Core = require('@alicloud/pop-core');
class SmsClient{
constructor(){
this.smsTeml="http://123.57.156.109:4103/api/Send";
this.restClient=system.getObject("util.restClient");
this.aliclient=new Core({
accessKeyId: 'LTAI4FtNp3wcqFzaADvo1WtZ',
accessKeySecret: 'VBKn1Anx4UmMF0LKNz7PVaCFG1phcg',
endpoint: 'https://dysmsapi.aliyuncs.com',
apiVersion: '2017-05-25'
});
}
async aliSendMsg(to,tmplcode,signName,jsonContent){
var params = {
"RegionId": "default",
"PhoneNumbers": to,
"SignName": signName,
"TemplateCode": tmplcode,
"TemplateParam": jsonContent
}
var requestOption = {
method: 'POST'
};
this.aliclient.request('SendSms', params, requestOption).then((result) => {
console.log(JSON.stringify(result));
}, (ex) => {
console.log(ex);
})
}
async sendMsg(to,content){
var txtObj ={
"appId":8,
"mobilePhone":to,
"content":content
}
return this.restClient.execPost(txtObj,this.smsTeml);
}
async getUidStr(len, radix) {
var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
var uuid = [], i;
radix = radix || chars.length;
if (len) {
for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
} else {
var r;
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
uuid[14] = '4';
for (i = 0; i < 36; i++) {
if (!uuid[i]) {
r = 0 | Math.random() * 16;
uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
}
}
}
return uuid.join('');
}
}
module.exports=SmsClient;
// var sms=new SmsClient();
// sms.aliSendMsg("13381139519","SMS_173946419","iboss",JSON.stringify({code:"hello"}));
// var util = require('util');
// var ssdb = require('ssdb-node');
// const settings = require("../../config/settings");
// const bluebird = require("bluebird");
// bluebird.promisifyAll(ssdb);
// class SsdbClient {
// constructor() {
// this.pool = new ssdb({
// port: 8888,
// host: '192.168.18.26',
// auth: 'lowlogslowlogslowlogslowlogYsy123',
// authCallback:""
// });
// }
// async set(obj) {
// var key = obj.key;
// var value = obj.value;
// return new Promise((resolve, reject) => {
// this.pool.set(key, value, function (err, data) {
// if (err) {
// reject(err)
// } else {
// resolve(data)
// }
// });
// })
// }
// async get(obj) {
// var key = obj.key;
// return new Promise((resolve, reject) => {
// this.pool.get(key, function (err, data) {
// if (err) {
// reject(err)
// } else {
// resolve(data)
// }
// });
// })
// }
// }
// module.exports = SsdbClient;
\ No newline at end of file
const axios = require("axios");
const settings = require("../../config/settings");
const system = require("../system");
const annualreportDao = system.getObject("db.delivery.annualreportDao");
const BUSINESSTYPE = {
ICP: "/qcfw/icp/",
EDI: "/qcfw/edi/"
}
const TXSTATUS = {
COLLECTING: "70",//手机材料中
SUBMITING: "80",//递交材料中
DISPOSEING: "90",//工信部处理中
POSTING: "150",//证书已邮寄
SUCCESS: "170",//服务已完成
CLOSED: "190",//已关闭
WAITDECLARE: "25",//待申报
DECLARESUCCESS: "26",//申报成功
}
// 推送到 控制台
const porApi = axios.create({
baseURL: settings.txurl(), // api 的 base_url
timeout: 2000, // request timeout
headers: {
'Content-Type': 'application/json'
}
})
// 推送公共服务
const publicApi = axios.create({
baseURL: settings.requrl(), // api 的 base_url
timeout: 2000, // request timeout
headers: {
'Content-Type': 'application/json'
}
})
/**
* 推送 方案
* @param {*} bizData
* @param {*} schemeData
*/
const pushScheme = async (bizData, schemeData) => {
let data = {
actionType: "submitSolution",
actionBody: {
needNum: bizData.demand_code,
solutionContent: {
scheme_info: schemeData.scheme_info,
remark_info: schemeData.remark_info,
businessType: BUSINESSTYPE[bizData.business_type],
servicerName: bizData.facilitator_name,
servicerCode: bizData.facilitator_id,
clerkName: bizData.salesman_name,
clerkPhone: bizData.salesman_phone
}
}
}
// 新增 还是修改
if (schemeData.scheme_number) {
data.actionBody.solutionNum = schemeData.scheme_number;
}
let result = await postRequest('api/receive/entService/springBoard', data);
return result.data;
}
/**
* 推送 关闭商机
* @param {*} bizData
* @param {*} note
*/
const pushCloseNeed = async (bizData, note) => {
let data = {
"actionType": "closeNeed",
"actionBody": {
"needNum": bizData.demand_code,
"note": note
}
}
let result = await postRequest('api/receive/entService/springBoard', data);
return result.data;
}
/**
* 推送 订单状态改变
* @param {*} status
* @param {*} orderNum
* @param {*} data
*/
const pushChangeOrder = async (status, orderNum, data = {}) => {
let req = {
"actionType": "updateOrderStatus",
"actionBody": {
"orderNum": orderNum,
"status": status,
"deliverContent": data
}
}
let result = await postRequest('api/receive/entService/springBoard', req);
return result.data;
}
/**
* 提交材料
* @param {*} deliverData
* @param {*} materials
*/
const submitMaterials = async (deliverData, materials) => {
let status;
if (deliverData.delivery_status === system.SERVERSESTATUS.COLLECTING || deliverData.delivery_status === system.SERVERSESTATUS.SUBMITING) {
status = TXSTATUS.SUBMITING;
}
if (deliverData.delivery_status === system.SERVERSESTATUS.DISPOSEING) {
status = TXSTATUS.DISPOSEING;
}
materials.proposerInfo.businessInformation.ifListed = materials.proposerInfo.businessInformation.ifListed === "true"
await pushChangeOrder(status, deliverData.delivery_code, {
servicerName: deliverData.facilitator_name,
servicerCode: deliverData.facilitator_id,
clerkId: deliverData.salesman_id,
clerkName: deliverData.salesman_name,
clerkPhone: deliverData.salesman_phone,
...materials
});
}
const pushDeclareReport = async (annualReport, deliverData) => {
const annualReports = await annualreportDao.findAll({
deliver_id: deliverData.id
});
let status = TXSTATUS.DECLARESUCCESS;
if (annualReports && annualReports.filter(item => {
return item.status === system.ANNUALREPORT.WAITDECLARE
}).length <= 0) {
status = TXSTATUS.SUCCESS;
}
const result = annualReports && annualReports.map((item) => {
if (item.id === annualReport.id) {
item.updated_at = new Date();
item.file = annualReport.file;
item.status = system.ANNUALREPORT.DECLARESUCCESS;
}
// item.status = item.status === system.ANNUALREPORT.WAITDECLARE ? "待申报" : "已申报"
return item
})
await pushChangeOrder(status, deliverData.delivery_code, { annualReport: result })
}
/**
* 退费
* @param {*} orderNum
*/
const returnPremium = async (orderNum) => {
try {
let data = {
"actionType": "produceData",
"actionBody": {
"pushUrl": settings.txurl() + "/api/action/order/springBoard",
"actionType": "refundOrder",
"identifyCode": "icp-manage",
"messageBody": {
"orderNum": orderNum//订单编码
}
}
}
console.log("请求数据 ------- ");
console.log(data);
let result = await publicApi.post('api/queueAction/producer/springBoard', data);
result = result.data;
console.log("返回数据 ------- ");
console.log(result);
if (result.status === 1) {
return result
} else {
throw new Error(result.message)
}
} catch (err) {
console.log("------ err -----");
console.log(err)
throw (err)
}
}
/**
* 发送请求
* @param {*} url
* @param {*} data
*/
const postRequest = async (url, data) => {
try {
console.log("请求数据 ------- ");
console.log(data);
console.log(JSON.stringify(data.actionBody.deliverContent));
let result = await porApi.post(url, data);
result = result.data;
console.log("返回数据 ------- ");
console.log(result);
if (result.status === 1) {
return result
} else {
throw new Error(result.message)
}
} catch (err) {
console.log("------ err -----");
console.log(err)
throw (err)
}
}
module.exports = {
pushScheme,
pushCloseNeed,
submitMaterials,
pushChangeOrder,
pushDeclareReport,
TXSTATUS,
returnPremium
}
\ No newline at end of file
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var methodOverride = require('method-override');
var cookierParser = require('cookie-parser');
var bodyParser = require('body-parser');
var multer = require('multer');
var errorHandler = require('errorhandler');
var settings = require('./settings');
var system = require('../base/system');
var routes = require('./routes');
var history = require('connect-history-api-fallback');
module.exports = function (app) {
app.set('port', settings.port);
app.set('views', settings.basepath + '/app/front/entry');
app.set('view engine', 'ejs');
app.use(history());
app.use(methodOverride());
app.use(cookierParser());
app.use(bodyParser.json({ limit: '50mb' }));
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
routes(app);//初始化路由
app.use(express.static(path.join(settings.basepath, '/app/front/entry/public')));
// development only
if ('development' == app.get('env')) {
app.use(errorHandler());
} else {
app.use(function (err, req, res) {
console.log("prod error handler................................>>>>>>>>>>>>>>>>>");
console.log(err);
//logerApp.error("prod error handler",err);
res.send("link admin");
});
}
};
var path= require('path');
var basepath=path.normalize(path.join(__dirname, '../..'));
var settings = {
webbase:path.join(basepath,"app/base/controller/ctl.base.js"),
web:path.join(basepath,"app/base/controller/impl"),
apibase:path.join(basepath,"app/base/api/api.base.js"),
api:path.join(basepath,"app/base/api/impl"),
util:path.join(basepath,"app/base/utils"),
servicebase:path.join(basepath,"app/base/service/sve.base.js"),
service:path.join(basepath,"app/base/service/impl"),
dbbase:path.join(basepath,"app/base/db/dao.base.js"),
db:path.join(basepath,"app/base/db/impl"),
tool:path.join(basepath,"app/base/tool"),
service2:path.join(basepath,"app/base/service"),
applet:path.join(basepath,"app/base/wxapplet/impl"),
};
module.exports = settings;
var fs=require("fs");
var path=require("path");
var System = require('../base/system');
module.exports = function (app) {
var routePath=__dirname+"/routes";
fs.readdir(routePath,function(err,rs){
if(rs){
rs.forEach(function(r){
var func=require(routePath+"/"+r);
func.call(null,app);
});
}
});
};
var url=require("url");
var qr=require("qr-image")
module.exports = function (app) {
app.get('/api/qc', function(req,res){
var params = url.parse(req.url,true);
var detailLink = params.query.detailLink;
try {
var img = qr.image(detailLink,{size :10});
console.log(detailLink)
res.writeHead(200, {'Content-Type': 'image/png'});
img.pipe(res);
} catch (e) {
res.writeHead(414, {'Content-Type': 'text/html'});
res.end('<h1>414 Request-URI Too Large</h1>');
}
});
};
var url = require("url");
var System = require("../../base/system");
module.exports = function (app) {
app.get('/api/:gname/:qname/:method', function (req, res) {
// var classPath = req.params["qname"];
var methodName = req.params["method"];
var gname=req.params["gname"];
classPath=gname+"."+classPath;
var tClientIp = System.get_client_ip(req);
req.clientIp = tClientIp;
req.uagent= req.headers["user-agent"];
// req.classname=classPath;
var params = [];
params.push(gname);
params.push(methodName);
params.push(req.body);
params.push(req.query);
params.push(req);
var p = null;
var invokeObj = System.getObject("api." + classPath);
if (invokeObj["doexec"]) {
p = invokeObj["doexec"].apply(invokeObj, params);
}
p.then(r => {
res.end(JSON.stringify(r));
});
});
app.post('/api/:gname/:qname/:method', function (req, res) {
var classPath = req.params["qname"];
var methodName = req.params["method"];
var gname=req.params["gname"];
var params = [];
classPath=gname+"."+classPath;
console.log("====================");
console.log(classPath);
var tClientIp = System.get_client_ip(req);
req.clientIp = tClientIp;
req.uagent= req.headers["user-agent"];
// req.classname=classPath;
params.push(gname);
params.push(methodName);
params.push(req.body);
params.push(req.query);
params.push(req);
var p = null;
var invokeObj = System.getObject("api." + classPath);
if (invokeObj["doexec"]) {
p = invokeObj["doexec"].apply(invokeObj, params);
}
p.then(r => {
res.end(JSON.stringify(r));
});
});
app.post('/external/:gname/:qname/:method', function (req, res) {
var classPath = req.params["qname"];
var methodName = req.params["method"];
var gname=req.params["gname"];
var params = [];
classPath=gname+"."+classPath;
var tClientIp = System.get_client_ip(req);
req.clientIp = tClientIp;
req.xRealIp = req.headers["x-real-ip"] || "";
req.uagent= req.headers["user-agent"];
params.push(gname);
params.push(methodName);
params.push(req.body);
params.push(req.query);
params.push(req);
var p = null;
var invokeObj = System.getObject("api." + classPath);
if (invokeObj["doexec"]) {
p = invokeObj["doexec"].apply(invokeObj, params);
}
p.then(r => {
res.end(JSON.stringify(r));
});
});
};
const url = require("url");
const system = require("../../base/system");
const fs = require('fs');
const marked = require("marked");
module.exports = function (app) {
app.get('/doc', function (req, res) {
// if (!req.query.key) {
// res.send("文件不存在!!!");
// return;
// }
// if (req.query.key != "doc12345789") {
// res.send("文件不存在!!!!!!");
// return;
// }
var path = process.cwd() + "/app/front/entry/public/apidoc/README.md";
fs.readFile(path, function (err, data) {
if (err) {
console.log(err);
res.send("文件不存在!");
} else {
str = marked(data.toString());
res.render('apidoc', { str });
}
});
});
app.get('/doc/:forder', function (req, res) {
var path = process.cwd() + "/app/front/entry/public/apidoc/README.md";
fs.readFile(path, function (err, data) {
if (err) {
console.log(err);
res.send("文件不存在!");
} else {
str = marked(data.toString());
res.render('apidoc', { str });
}
});
});
app.get('/doc/api/:forder/:fileName', function (req, res) {
// if (req.url != "/doc/api/platform/fgbusinesschance.md") {
// if (!req.query.key) {
// res.send("文件不存在!!!");
// return;
// }
// if (req.query.key != "doc12345789") {
// res.send("文件不存在!!!!!!");
// return;
// }
// }
var forder = req.params["forder"];
var fileName = req.params["fileName"] || "README.md";
var path = process.cwd() + "/app/front/entry/public/apidoc";
if (forder) {
path = path + "/" + forder + "/" + fileName;
} else {
path = path + "/" + fileName;
}
fs.readFile(path, function (err, data) {
if (err) {
console.log(err);
res.send("文件不存在!");
} else {
str = marked(data.toString());
res.render('apidoc', { str });
}
});
});
};
var url = require("url");
var system = require("../../base/system");
var metaCtl=system.getObject("web.common.metaCtl");
module.exports = function (app) {
app.get('/web/:gname/:qname/:method', function (req, res) {
var classPath = req.params["qname"];
var methodName = req.params["method"];
var gname=req.params["gname"];
classPath=gname+"."+classPath;
var params = [];
params.push(methodName);
params.push(req.body);
params.push(req.query);
params.push(req);
var p = null;
var invokeObj = system.getObject("web." + classPath);
if (invokeObj["doexec"]) {
p = invokeObj["doexec"].apply(invokeObj, params);
}
p.then(r => {
res.end(JSON.stringify(r));
});
});
app.post('/web/:gname/:qname/:method', function (req, res) {
req.codepath = req.headers["codepath"];
var classPath = req.params["qname"];
var methodName = req.params["method"];
var gname=req.params["gname"];
var params = [];
classPath=gname+"."+classPath;
var tClientIp = system.get_client_ip(req);
req.body.clientIp = tClientIp;
req.body.agent= req.headers["user-agent"];
req.body.classname=classPath;
params.push(methodName);
params.push(req.body);
params.push(req.query);
params.push(req);
var p = null;
var invokeObj = system.getObject("web." + classPath);
if (invokeObj["doexec"]) {
p = invokeObj["doexec"].apply(invokeObj, params);
}
p.then(r => {
res.end(JSON.stringify(r));
});
});
};
var path = require('path');
var ENVINPUT = {
DB_HOST: process.env.DB_HOST,
DB_PORT: process.env.DB_PORT,
DB_USER: process.env.DB_USER,
DB_PWD: process.env.DB_PWD,
DB_NAME: process.env.MARKETPLAT_DB_NAME,
REDIS_HOST: process.env.REDIS_HOST,
REDIS_PORT: process.env.REDIS_PORT,
REDIS_PWD: process.env.REDIS_PWD,
REDIS_DB: process.env.PAAS_REDIS_DB,
APP_ENV: process.env.APP_ENV ? process.env.APP_ENV : "dev"
};
var settings = {
env: ENVINPUT.APP_ENV,
salt: "%iatpD1gcxz7iF#B",
defaultpwd: "gsb2020",
basepath: path.normalize(path.join(__dirname, '../..')),
port: process.env.NODE_PORT || 8003,
logindex: "center_manage",
appname: "gsb_marketplat",
kongurl: function () { if (this.env == "dev") { var localsettings = require("./localsettings"); return localsettings.kongurl; } else { return ENVINPUT.KONG_ADMIAN; } },
txurl: function () {
if (this.env == "dev") { var localsettings = require("./localsettings"); return localsettings.txurl; }
else { return "http://brg-user-center-service"; }
},
logUrl: function () {
if (this.env == "dev") {
return "http://43.247.184.94:7200/api/queueAction/producer/springBoard";
} else {
return "http://logs-sytxpublic-msgq-service/api/queueAction/producer/springBoard";
}
},
browsingRecordsLogUrl: function () {
return "http://43.247.184.94:7200/marketplat_browsingrecords_log/_doc?pretty";
},
mediabrowsingRecordsLogUrl: function () {//媒体聚合页访问记录
return "http://43.247.184.94:7200/marketmedia_browsingrecords_log/_doc?pretty";
},
templateLinkUrl: function () {
if (this.env == "dev") {
return "http://192.168.200.208:8081/tfhref";
} else {
return "https://marketflow.gongsibao.com/tfhref";
}
},
requrl: function () {
if (this.env == "dev") {
return "http://192.168.1.128:4018";
} else {
return "http://sytxpublic-msgq-service";
}
},
pmappid: 1,
pmcompanyid: 1,
pmroleid: { "ta": 1, "pr": 2 },
redis: function () {
if (this.env == "dev") {
var localsettings = require("./localsettings");
return localsettings.redis;
} else {
return {
host: ENVINPUT.REDIS_HOST,
port: ENVINPUT.REDIS_PORT,
password: ENVINPUT.REDIS_PWD,
db: ENVINPUT.REDIS_DB,
};
}
},
database: function () {
if (this.env == "dev") {
var localsettings = require("./localsettings");
return localsettings.database;
} else {
return {
dbname: ENVINPUT.DB_NAME,
user: ENVINPUT.DB_USER,
password: ENVINPUT.DB_PWD,
config: {
host: ENVINPUT.DB_HOST,
port: ENVINPUT.DB_PORT,
dialect: 'mysql',
operatorsAliases: false,
pool: {
max: 5,
min: 0,
acquire: 90000000,
idle: 1000000
},
debug: false,
timezone: '+08:00',
dialectOptions: {
requestTimeout: 999999,
// instanceName:'DEV'
} //设置MSSQL超时时间
},
};
}
}
};
settings.ENVINPUT = ENVINPUT;
module.exports = settings;
var Server=require('socket.io');
var system = require('../base/system');
var redisClient=system.getObject("util.redisClient");
const notifyCtl=system.getObject("web.socketNotifyCtl");
const msgHistoryService=system.getObject("service.msghistorySve");
class MsgHandler{
constructor(server,client){
this.server=server;
this.client=client;
this.init();
}
notifyClient(ukchannel,msg){
var msgH={msgType:"system",sender:"s¥s¥s¥s",target:msg.to,content:msg.content};
msgHistoryService.create(msgH).then((m)=>{
redisClient.publish(ukchannel,JSON.stringify(msg));
}).catch(e=>{
console.log(e);
});
}
init(){
var self=this;
//转发通信消息
this.client.on("chatmsg",msg=>{
const from=msg.from;
const to=msg.to;
const msgContent=msg.content;
var arrs=to.split("¥");
var tochannel=arrs[0]+"¥"+arrs[1];
//发布消息
//持久化消息
var msgH={msgType:"single",sender:msg.from,target:msg.to,content:msg.content};
msgHistoryService.create(msgH).then((m)=>{
redisClient.publish(tochannel,JSON.stringify(msg));
}).catch(e=>{
console.log(e);
});
//self.server.users[to].emit("chatmsg",msg);
});
//响应消息处理
this.client.on("replymsg",(msg,fn)=>{
var p=null;
var invokeObj= system.getObject("web."+msg.pkgname+"."+msg.cls);
if(invokeObj[msg.method]){
p=invokeObj[msg.method].apply(invokeObj,[msg.data]);
}
p.then(r=>{
fn(r);
}).then(()=>{
console.log("call success")
}).catch(err=>{
console.log(err)
})
});
}
}
class SocketServer{
constructor(httpServer){
this.server=Server(httpServer,{
serveClient: false,
});
this.users={};
this.init();
this.onlines=0;
}
init(){
var self=this;
//挂载到web应用的控制器
notifyCtl.setSocketServer(self);
//订阅广播频道
redisClient.subscribe("brc",self);
//中间件可以在链接事件发出前调用一次
this.server.use((socket,next)=>{
next();
});
this.server.on('connection', function(client){
console.log("connection.....socket");
//链接登录事件
client.on('login', function(data){
console.log("login...........................................................success");
console.log(data);
console.log(client.remoteAddress);
var uk=data.appid+"¥"+data.id;
client.uk=uk;
client.uid=data.id;
client.username=data.nickName;
client.appname=data.appname;
client.appkey=data.appkey;
client.sex=data.sex;
client.imgUrl=data.imgUrl;
self.users[uk]=new MsgHandler(self,client);
//订阅uk私人频道
var ss = redisClient.subscribe(uk,self);
//加入redisClient列表
redisClient.sadd("onlineset"+"¥"+data.appkey,[uk+"¥"+data.nickName+"¥"+data.imgUrl]).then(n=>{
//当前在线
self.onlines=n;
redisClient.publish("brc",JSON.stringify({"type":"online","content":n}));
});
});
//链接断开事件
client.on('disconnect', async function(r){
console.log("connection.........................................dismiss.............");
if(client.uk) {
await redisClient.srem("onlineset"+"¥"+client.appkey,client.uk+"¥"+client.username+"¥"+client.imgUrl);
await redisClient.publish("brc",JSON.stringify({"type":"online","content":(self.onlines--)}));
delete self.users[client.uk];
redisClient.unsubscribe(client.uk);
//redisClient.unsubscribe("brc");
console.log(client.uk+"¥"+client.username+"¥"+client.imgUrl);
}
});
});
}
}
module.exports=SocketServer;
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="keywords" content="api文档">
<meta name="baidu-site-verification" content="lATAxZAm8y" />
<meta name="viewport" content="width=device-width, initial-scale=0.8, maximum-scale=0.8, user-scalable=1">
<link href="https://cdn.bootcss.com/github-markdown-css/2.8.0/github-markdown.min.css" rel="stylesheet">
</head>
<body>
<div style="width:100%;text-align: center;font-size: 20px;">
API文档
</div>
<div class="markdown-body" style="margin-left:40px;" id="doc-page">
<%- str%>
</div>
</body>
</html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
.tfhref[data-v-3fbf4483]{width:100%;height:100%;overflow:auto}.tfhref .tfhref_wrapper[data-v-3fbf4483]{display:-webkit-box;display:-ms-flexbox;display:flex}.tfhref .kefu[data-v-3fbf4483]{position:fixed;bottom:0;right:0;z-index:999;width:500px;height:514px;background:#fff;padding:30px 0 0 0;border-radius:10px}.tfhref .kefu .kefu_close[data-v-3fbf4483]{width:30px;height:30px;background:#fff;border-radius:100px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:20px;cursor:pointer;position:absolute;top:0;right:0}.tfhref .iframeIm[data-v-3fbf4483]{width:100%;height:100%}.test-1[data-v-3fbf4483]::-webkit-scrollbar{width:2px;height:1px}.test-1[data-v-3fbf4483]::-webkit-scrollbar-thumb{background:#535353}.test-1[data-v-3fbf4483]::-webkit-scrollbar-thumb,.test-1[data-v-3fbf4483]::-webkit-scrollbar-track{border-radius:10px;-webkit-box-shadow:inset 0 0 5px rgba(0,0,0,.2);box-shadow:inset 0 0 5px rgba(0,0,0,.2)}.test-1[data-v-3fbf4483]::-webkit-scrollbar-track{background:#ededed}
\ No newline at end of file
.templatelink_page_seelink[data-v-79813f7a]{width:60%;height:200px;z-index:100000000;background-color:#add8e6;position:Relative;top:200px;left:20%;right:20%}[data-v-79813f7a] .ivu-modal-body /deep/ .ivu-form-item-content{display:-webkit-box;display:-ms-flexbox;display:flex}[data-v-79813f7a] .ivu-modal-body /deep/ .ivu-form-item-content /deep/ .ivu-btn-default{width:56px;height:32px;margin-left:10px}
\ No newline at end of file
.swiperMain[data-v-5c4efd8f]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swiper-container[data-v-5c4efd8f]{width:100%;max-width:100%;height:400px}.swiper-container .swiper-wrapper[data-v-5c4efd8f]{width:100%}.swiper-container .swiper-slide[data-v-5c4efd8f]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative}.swiper-container .swiper-slide .imgBg[data-v-5c4efd8f]{width:100%;height:100%;background-repeat:no-repeat;background-size:cover;background-position:top;background-position-y:center}.swiper-container .swiper-slide .swiper_text[data-v-5c4efd8f]{width:100%;height:100%;position:absolute;padding:70px 7%;top:0;left:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;overflow:hidden}.swiper-container .swiper-slide .swiper_text h1[data-v-5c4efd8f]{font-size:60px;font-family:MicrosoftYaHei-Bold,MicrosoftYaHei;font-weight:700;line-height:60px;color:#333;margin-bottom:30px}.swiper-container .swiper-slide .swiper_text p[data-v-5c4efd8f]{font-size:20px;font-family:MicrosoftYaHei;line-height:20px;color:#333}.swiper-container img[data-v-5c4efd8f]{width:100%;height:100%}@media screen and (max-width:750px){.swiper-container[data-v-5c4efd8f]{height:200px!important}.swiper-container .swiper_text[data-v-5c4efd8f]{padding:20px!important}.swiper-container .swiper_text h1[data-v-5c4efd8f]{font-size:30px!important;margin-bottom:15px!important;line-height:30px!important}.swiper-container .swiper_text p[data-v-5c4efd8f]{font-size:10px!important;line-height:20px!important}}.buttonMain[data-v-7d27b2d0]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.buttonMain .buttonMain_btn[data-v-7d27b2d0]{width:160px;height:44px;padding:10px 40px;background:#1890ff;border-radius:4px;border:1px solid;outline:none;cursor:pointer;font-size:14px;font-family:MicrosoftYaHei;color:#fff;line-height:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media screen and (max-width:750px){.buttonMain[data-v-7d27b2d0]{padding:0 3.72%}.buttonMain_btn[data-v-7d27b2d0]{width:100%!important}}[data-v-1c8b26af] .ivu-select-selection{height:40px;border-radius:0;background:transparent;border-color:transparent}[data-v-1c8b26af] .ivu-select-selection /deep/ .ivu-select-placeholder,[data-v-1c8b26af] .ivu-select-selection /deep/ .ivu-select-selected-value{height:40px;font-size:14px;line-height:40px}.modal[data-v-1c8b26af]{position:fixed;left:0;top:0;background:rgba(0,0,0,.6);width:100%;height:100%;z-index:9}.modal .warp[data-v-1c8b26af]{background:#fff;position:absolute;bottom:0;left:0;width:100%;overflow:auto;border-radius:14px 14px 0 0;padding:30px 10px;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center}.inputWrap[data-v-1c8b26af]{position:relative}.inputWrap .close[data-v-1c8b26af]{position:absolute;right:5px;z-index:4;width:25px;height:40px;background:#f7f7f7}[data-v-7a22c201] .ivu-radio{margin-right:10px}[data-v-7a22c201] .ivu-radio-inner:after{width:4.67px;height:4.67px;left:4px;top:4px}[data-v-7a22c201] .ivu-checkbox-group-item{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:14px;margin-right:30px}[data-v-7a22c201] .ivu-checkbox-group-item /deep/ .ivu-checkbox{margin-right:8px}[data-v-7a22c201] .ivu-checkbox-group-item /deep/ .ivu-checkbox-inner{width:16px;height:16px}[data-v-7a22c201] .ivu-checkbox-group-item /deep/ .ivu-checkbox-inner:after{top:2px;left:5px}[data-v-2730f167] .ivu-input,[data-v-2730f167] .ivu-input-group-append{height:40px;border-radius:0;border-color:transparent;background:transparent}[data-v-2730f167] .ivu-input-group-append .ivu-btn,[data-v-2730f167] .ivu-input .ivu-btn{height:40px}[data-v-2730f167] .ivu-input-group-prepend{display:none}.inputWrap[data-v-965caa34]{position:relative}.inputWrap .close[data-v-965caa34]{position:absolute;right:1px;top:2px;z-index:4;width:20px;height:36px;background:#f7f7f7}.modal[data-v-965caa34]{position:fixed;left:0;top:0;background:rgba(0,0,0,.6);width:100%;height:100%;z-index:9}.modal .wrap[data-v-965caa34]{background:#fff;position:absolute;bottom:0;left:0;width:100%;border-radius:14px 14px 0 0;padding:10px;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center}.modal .wrap .areaTitle[data-v-965caa34]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.modal .wrap .areaTitle .midTitle[data-v-965caa34]{font-size:14px;margin-left:100px}.modal .wrap .area[data-v-965caa34]{height:300px;overflow:auto}.form-footer[data-v-5b818b28]{width:70%}.form-footer3[data-v-5b818b28],.form-footer[data-v-5b818b28]{position:fixed;bottom:0;right:0;border-top:1px solid #e8e8e8;padding:10px 16px;text-align:right;background:#fff}.form-footer3[data-v-5b818b28]{width:30%}.form-footer2[data-v-5b818b28]{width:100%;position:absolute;bottom:0;right:0;border-top:1px solid #e8e8e8;padding:10px 16px;text-align:right;background:#fff}[data-v-5b818b28] .ivu-input{height:40px;font-size:14px;border-radius:0;border-color:transparent;background:transparent}[data-v-5b818b28] .ivu-form-item-error .ivu-input{border-color:#ed4014}[data-v-5b818b28] .ivu-radio{margin-right:10px}[data-v-5b818b28] .ivu-radio-inner:after{width:4.67px;height:4.67px;left:4px;top:4px}[data-v-5b818b28] .ivu-radio-wrapper{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:14px;margin-right:30px}[data-v-5b818b28] .ivu-form-item-error .ivu-select-selection{border-color:#ed4014}[data-v-5b818b28] .ivu-card{background:transparent}[data-v-5b818b28] .ivu-form .ivu-form-item-label{font-size:14px;font-family:MicrosoftYaHei;color:#333;line-height:14px}[data-v-5b818b28] .ivu-card-body{padding:16px 12.4%}@media screen and (max-width:750px){[data-v-5b818b28] .ivu-card-body{padding:16px!important}}.text-ql[data-v-59fd3b9a]{padding:70px 0 60px 0}.ql-editor[data-v-59fd3b9a]{padding:0}.mkdown-warpper[data-v-59fd3b9a]{background:#fff;width:100%;min-height:100px;border:1px dashed #999;padding:10px;-webkit-box-sizing:border-box;box-sizing:border-box}.mkdown-warpper button[data-v-59fd3b9a]{width:100px;height:36px;background:#1890ff;opacity:.7;border-radius:0}.mkdown-warpper input[data-v-59fd3b9a]{outline:none;width:100%;background:#fff;border:0;display:-webkit-box;display:-ms-flexbox;display:flex;text-align:center;font-size:24px}.mkdown-warpper .mkdown-active[data-v-59fd3b9a]{text-align:left}@media screen and (max-width:750px){.text-ql[data-v-59fd3b9a]{padding:0}}.photo img[data-v-5a50e28c]{width:100%}.pic-line{list-style:none;font-size:0;white-space:nowrap;display:-webkit-box;display:-ms-flexbox;display:flex}.pic-line li{-webkit-box-flex:1;-ms-flex:1;flex:1;display:inline-block;position:relative}.pic-line li img{display:inline-block;width:100%;height:100%}.pic-line li .pictitle{width:100%;background:#000;opacity:.4;color:#fff;font-size:14px;position:absolute;bottom:0;padding:11px 12px 10px 15px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pic-line:hover{cursor:pointer}.swiperpictitle{height:40px;width:100%;background:#000;opacity:.4;color:#fff;font-size:14px;position:absolute;bottom:0;padding:11px 12px 10px 15px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media screen and (max-width:750px){.pic-line{-ms-flex-wrap:wrap;flex-wrap:wrap}.pic-line li{width:50%!important;-webkit-box-flex:1;-ms-flex:auto;flex:auto}.multipic .swiper-slide{height:93px!important}.swiper-button-next:after,.swiper-button-prev:after{font-size:25px}.swiper-button-next,.swiper-button-prev{outline:none;display:none}}.sidebar .swiper-slide-next[data-v-c636b9d6],.sidebar .swiper-slide-prev[data-v-c636b9d6]{height:90%;margin:auto}.swiper_slide_img[data-v-c636b9d6]{width:100%;height:100%;background-repeat:no-repeat;background-size:cover;background-position:top;background-position-y:center}@media screen and (max-width:750px){.swiper-container[data-v-c636b9d6]{height:180px!important}.swiper-container .swiper-button-next[data-v-c636b9d6],.swiper-container .swiper-button-prev[data-v-c636b9d6]{display:none}}.imgstext-styleone[data-v-31b3e147]{display:-webkit-box;display:-ms-flexbox;display:flex;overflow:hidden}.imgstext-styleone img[data-v-31b3e147]{display:inline-block}.imgstext-styleone .content[data-v-31b3e147]{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:30px;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.imgstext-styleone .content h3[data-v-31b3e147]{font-size:27px;color:#333;font-weight:400}.imgstext-styleone .content .para[data-v-31b3e147]{height:100%;font-size:14px;color:#666;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.imgstext-styleone .content .para[data-v-31b3e147],.imgstext-styleone .item-wrap[data-v-31b3e147]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.imgstext-styleone .item-wrap[data-v-31b3e147]{width:25%}.imgstext-styleone .item-wrap .content[data-v-31b3e147]{padding:0;padding-top:15px}.imgstext-styleone .item-line-wrap[data-v-31b3e147]{display:-webkit-box;display:-ms-flexbox;display:flex;padding:10px 5px}.imgstext-styleone .item-line-wrap .content[data-v-31b3e147]{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:10px}.ql-editor[data-v-31b3e147]{padding:0}@media screen and (max-width:768px){.imgstext-styleone .content .para[data-v-31b3e147]{display:-webkit-box;-webkit-box-orient:vertical}.imgstext-styleone[data-v-31b3e147]{-ms-flex-wrap:wrap;flex-wrap:wrap}.imgstext-styleone .item-line-wrap[data-v-31b3e147]{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%!important}.imgstext-styleone .item-line-wrap img[data-v-31b3e147]{width:100%!important}.imgstext-styleone .item-line-wrap .content[data-v-31b3e147]{padding:5px!important;width:100%!important}.imgstext-styleone .item-line-wrap .content .para[data-v-31b3e147]{height:100%!important}.imgstext-styleone .content[data-v-31b3e147]{padding:5px!important;width:100%!important}.imgstext-styleone .content .para[data-v-31b3e147]{height:100%!important}.imgstext-styleone .item-wrap[data-v-31b3e147]{width:50%;padding:5px!important}.imgstext-styleone .item-wrap .content .para[data-v-31b3e147]{height:100%}}@media screen and (max-width:414px){.imgstext-styleone .content .para[data-v-31b3e147]{white-space:normal}.imgstext-right[data-v-31b3e147]{display:block}.imgstext-right>div[data-v-31b3e147],.imgstext-right>img[data-v-31b3e147]{width:100%!important}}.acrao[data-v-0e207f62]{-webkit-box-flex:1;-ms-flex:1;flex:1;max-width:100%;min-height:35px}.acrao .acrao_wrapper[data-v-0e207f62]{width:100%;background-size:cover!important}.acrao .topAffix[data-v-0e207f62]{position:fixed;top:0;z-index:99}.acrao .bottomAffix[data-v-0e207f62]{position:fixed;bottom:0;z-index:99}@media screen and (max-width:750px){.acrao_wrapper[data-v-0e207f62]{padding-top:14px!important;padding-bottom:7px!important}}
\ No newline at end of file
.error-page{width:100%;height:100%;position:relative;background:#f8f8f9}.error-page .content-con{width:700px;height:600px;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-60%);transform:translate(-50%,-60%)}.error-page .content-con img{display:block;width:100%;height:100%}.error-page .content-con .text-con{position:absolute;left:0;top:0}.error-page .content-con .text-con h4{position:absolute;left:0;top:0;font-size:80px;font-weight:700;color:#348eed}.error-page .content-con .text-con h5{position:absolute;width:700px;left:0;top:100px;font-size:20px;font-weight:700;color:#67647d}.error-page .content-con .back-btn-group{position:absolute;right:0;bottom:20px}
\ No newline at end of file
.error-page{width:100%;height:100%;position:relative;background:#f8f8f9}.error-page .content-con{width:700px;height:600px;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-60%);transform:translate(-50%,-60%)}.error-page .content-con img{display:block;width:100%;height:100%}.error-page .content-con .text-con{position:absolute;left:0;top:0}.error-page .content-con .text-con h4{position:absolute;left:0;top:0;font-size:80px;font-weight:700;color:#348eed}.error-page .content-con .text-con h5{position:absolute;width:700px;left:0;top:100px;font-size:20px;font-weight:700;color:#67647d}.error-page .content-con .back-btn-group{position:absolute;right:0;bottom:20px}
\ No newline at end of file
.error-page{width:100%;height:100%;position:relative;background:#f8f8f9}.error-page .content-con{width:700px;height:600px;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-60%);transform:translate(-50%,-60%)}.error-page .content-con img{display:block;width:100%;height:100%}.error-page .content-con .text-con{position:absolute;left:0;top:0}.error-page .content-con .text-con h4{position:absolute;left:0;top:0;font-size:80px;font-weight:700;color:#348eed}.error-page .content-con .text-con h5{position:absolute;width:700px;left:0;top:100px;font-size:20px;font-weight:700;color:#67647d}.error-page .content-con .back-btn-group{position:absolute;right:0;bottom:20px}
\ No newline at end of file
.ivu-modal-wrap{z-index:9999!important}
\ No newline at end of file
[data-v-2730f167] .ivu-input,[data-v-2730f167] .ivu-input-group-append{height:40px;border-radius:0;border-color:transparent;background:transparent}[data-v-2730f167] .ivu-input-group-append .ivu-btn,[data-v-2730f167] .ivu-input .ivu-btn{height:40px}[data-v-2730f167] .ivu-input-group-prepend{display:none}.form-footer{width:70%;position:fixed;bottom:0;right:0;border-top:1px solid #e8e8e8;padding:10px 16px;text-align:right;background:#fff}
\ No newline at end of file
.dialog_href[data-v-40e2156b]{width:100%}.dialog_href .dialog_href_item[data-v-40e2156b]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:10px}.dialog_href .dialog_href_item .dialog_href_item_left[data-v-40e2156b]{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:14px;padding-top:9px;margin-right:10px;min-width:60px}.dialog_href .dialog_href_item .dialog_href_item_right[data-v-40e2156b]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.dialog_href .dialog_href_item .dialog_href_item_right .href_set_radio[data-v-40e2156b]{width:100%;padding-top:7px;margin-left:10px}.dialog_href .dialog_href_item .dialog_href_item_right[data-v-40e2156b] .ivu-radio-inner:after{width:4.67px;height:4.67px;left:4px;top:4px}.dialog_href .dialog_href_item .dialog_href_item_right[data-v-40e2156b] .ivu-radio-wrapper{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:14px;margin-right:30px}.dialog_href .dialog_href_item .dialog_href_item_right[data-v-40e2156b] .ivu-input,.dialog_href .dialog_href_item .dialog_href_item_right[data-v-40e2156b] .ivu-select-selection{margin-left:10px;background:#fff;border-radius:1px;border:1px solid #d9d9d9;font-size:14px;font-family:MicrosoftYaHeiUI;line-height:14px}.dialog_href .dialog_href_item .dialog_href_item_right[data-v-40e2156b] .ivu-select-selected-value{font-size:14px}.dialog_href .dialog_href_item2[data-v-40e2156b]{margin-top:20px}.photo_gallery .photo_gallery_main .photo_gallery_main_btns[data-v-474cd917],.photo_gallery .photo_gallery_main[data-v-474cd917],.photo_gallery[data-v-474cd917]{width:100%}.photo_gallery .photo_gallery_main .photo_gallery_main_btns .uploadBtn[data-v-474cd917]:hover{background:#3faaff}.photo_gallery .photo_gallery_main .photo_gallery_main_btns .uploadBtn[data-v-474cd917]{width:90px;height:32px;background:#1890ff;border-radius:1px;border:none;outline:none;font-size:14px;font-family:MicrosoftYaHeiUI;color:#fff;line-height:14px;cursor:pointer}.photo_gallery .photo_gallery_main .photo_gallery_main_pics[data-v-474cd917]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:20px 0 0}.photo_gallery .photo_gallery_main .photo_gallery_main_pics .photo_gallery_main_pics_w[data-v-474cd917]:hover{border:1px solid #1890ff}.photo_gallery .photo_gallery_main .photo_gallery_main_pics .photo_gallery_main_pics_w[data-v-474cd917]:nth-child(5n+1){margin-left:0}.photo_gallery .photo_gallery_main .photo_gallery_main_pics .photo_gallery_main_pics_w[data-v-474cd917]{width:108px;height:90px;background:#f3f3f3;border-radius:1px;margin-left:10px;margin-bottom:20px;overflow:hidden;position:relative;cursor:pointer}.photo_gallery .photo_gallery_main .photo_gallery_main_pics .photo_gallery_main_pics_w .photo_gallery_main_pics_silde[data-v-474cd917]{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.photo_gallery .photo_gallery_main .photo_gallery_main_pics .photo_gallery_main_pics_w .photo_gallery_main_pics_silde img[data-v-474cd917]{max-width:100%;max-height:100%}.photo_gallery .photo_gallery_main .photo_gallery_main_pics .photo_gallery_main_pics_w .photo_gallery_main_pics_w_dui[data-v-474cd917]{width:24px;height:24px;background:#1890ff;color:#fff;border-radius:100px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;padding:1px;position:absolute;right:-12px;bottom:-12px}.photo_gallery .photo_gallery_main .photo_gallery_main_pics .photo_gallery_main_pics_w_actived[data-v-474cd917]{border:1px solid #1890ff}.photo_gallery .photo_gallery_main .photo_gallery_main_page[data-v-474cd917]{width:100%}.photo_gallery .photo_gallery_main .photo_gallery_main_none[data-v-474cd917]{width:100%;height:100%;min-height:400px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.photo_gallery .photo_gallery_main .photo_gallery_main_none .svg-icon[data-v-474cd917]{width:90px;height:96px}[data-v-474cd917] .ivu-page{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}[data-v-474cd917] .ivu-page .ivu-page-item-active{background:#1890ff}[data-v-474cd917] .ivu-page .ivu-page-item-active a{color:#fff}[data-v-474cd917] .ivu-page a{margin:0}[data-v-474cd917] .ivu-upload-list{display:none}.dialog_acrao[data-v-5a361e45]{width:100%}.dialog_acrao .dialog_acrao_item[data-v-5a361e45]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:10px}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_left[data-v-5a361e45]{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:14px;padding-top:9px;margin-right:10px;min-width:60px}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right[data-v-5a361e45]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .dialog_acrao_addpic[data-v-5a361e45]{-webkit-box-flex:1;-ms-flex:1;flex:1;max-width:100px;height:90px;border-radius:1px;background:#f8f8f8;border:1px solid #d9d9d9;margin-left:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:55px;color:#d9d9d9;font-weight:100;cursor:pointer;margin-bottom:10px}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .activeAcrao[data-v-5a361e45]{background:#eff7ff;border:1px solid #1890ff}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .dialog_acrao_img:hover .acrao_close[data-v-5a361e45],.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .dialog_acrao_img:hover .acrao_set[data-v-5a361e45]{display:-webkit-box;display:-ms-flexbox;display:flex}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .dialog_acrao_img[data-v-5a361e45]{width:84px;height:84px;margin-left:10px;position:relative;background:#d9d9d9;margin-bottom:10px}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .dialog_acrao_img img[data-v-5a361e45]{width:100%;height:100%}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .dialog_acrao_img .acrao_close[data-v-5a361e45]{width:14px;height:14px;position:absolute;top:-6px;right:-6px;cursor:pointer;display:none}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .dialog_acrao_img .acrao_set[data-v-5a361e45]{width:100%;height:25px;background:rgba(26,144,255,.7);position:absolute;left:0;bottom:0;font-size:14px;font-family:MicrosoftYaHeiUI;color:#fff;line-height:14px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer;display:none}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right[data-v-5a361e45] .ivu-input{background:#fff;border-radius:1px;border:1px solid #d9d9d9}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right[data-v-5a361e45] .ivu-btn-default{border-radius:2px;border:1px solid #ddd;margin-left:12px;font-size:14px;font-family:PingFangTC-Regular,PingFangTC;font-weight:400;color:#333;line-height:14px}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right[data-v-5a361e45] .ivu-radio{margin-right:10px}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .acrao_set_radio[data-v-5a361e45]{width:100%;padding-top:7px;margin-left:10px}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right[data-v-5a361e45] .ivu-radio-inner:after{width:4.67px;height:4.67px;left:4px;top:4px}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right[data-v-5a361e45] .ivu-radio-wrapper{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:14px;margin-right:30px}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .acrao_set_detail[data-v-5a361e45]{width:100%;padding-top:20px;margin-left:10px;display:-webkit-box;display:-ms-flexbox;display:flex}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .acrao_set_detail .acrao_set_detail_item[data-v-5a361e45]{margin-right:40px;display:-webkit-box;display:-ms-flexbox;display:flex}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .acrao_set_detail .acrao_set_detail_item .ivu-btn-default1[data-v-5a361e45]{height:32px;border:1px solid #d9d9d9;border-radius:1px;font-size:14px}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .acrao_set_detail .acrao_set_detail_item .acrao_set_detail_item_img[data-v-5a361e45]{width:80px;height:80px;margin-left:10px}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .acrao_set_detail .acrao_set_detail_item .acrao_set_detail_item_img img[data-v-5a361e45]{max-width:100%;max-height:100%}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .acrao_set_detail span[data-v-5a361e45]{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:18px}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .acrao_set_detail[data-v-5a361e45] .ivu-input-wrapper{margin-left:10px}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .acrao_set_detail[data-v-5a361e45] .ivu-input-suffix span{line-height:28px;font-size:14px;font-family:MicrosoftYaHeiUI;color:#e0e0de}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .acrao_set_detail[data-v-5a361e45] .ivu-input{font-size:14px}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .acrao_set_detail[data-v-5a361e45] .ivu-input-with-suffix{padding-right:25px}.dialog_acrao .dialog_acrao_item .dialog_acrao_item_right .acrao_set_detail[data-v-5a361e45] .ivu-input-suffix{width:25px}.dialog_acrao .dialog_acrao_title[data-v-5a361e45]{width:100%;padding:13px 14px;background:#f7f7f7;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin:20px 0}.dialog_acrao .dialog_acrao_title h3[data-v-5a361e45]{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:14px;font-weight:500}.dialog_acrao .dialog_acrao_style[data-v-5a361e45]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.dialog_acrao .dialog_acrao_style .dialog_acrao_style_item[data-v-5a361e45],.dialog_acrao .dialog_acrao_style .dialog_acrao_style_item_active[data-v-5a361e45]{width:140px;height:90px;padding:5px;background:#fff;border-radius:1px;border:1px solid #d9d9d9;margin-right:10px;cursor:pointer}.dialog_acrao .dialog_acrao_style .dialog_acrao_style_item .style_main[data-v-5a361e45],.dialog_acrao .dialog_acrao_style .dialog_acrao_style_item_active .style_main[data-v-5a361e45]{width:100%;height:100%;background:hsla(0,0%,85.1%,.5);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0 16px}.dialog_acrao .dialog_acrao_style .dialog_acrao_style_item .style_main h3[data-v-5a361e45],.dialog_acrao .dialog_acrao_style .dialog_acrao_style_item_active .style_main h3[data-v-5a361e45]{margin-bottom:7px;font-size:14px;font-family:MicrosoftYaHeiUI-Bold,MicrosoftYaHeiUI;font-weight:700;color:#7a8b9c;line-height:14px}.dialog_acrao .dialog_acrao_style .dialog_acrao_style_item .style_main p[data-v-5a361e45],.dialog_acrao .dialog_acrao_style .dialog_acrao_style_item_active .style_main p[data-v-5a361e45]{font-size:11px;font-family:MicrosoftYaHeiUI;color:#8e9eaf;line-height:11px}.dialog_acrao .dialog_acrao_style .dialog_acrao_style_item_active[data-v-5a361e45]{border:1px solid #1890ff}.dialog_acrao .dialog_acrao_style .dialog_acrao_style_item_active .style_main[data-v-5a361e45]{width:100%;height:100%;background:rgba(24,144,255,.07);border-radius:1px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0 16px}.dialog_acrao .dialog_acrao_style .dialog_acrao_style_item_active .style_main h3[data-v-5a361e45]{margin-bottom:7px;font-size:14px;font-family:MicrosoftYaHeiUI-Bold,MicrosoftYaHeiUI;font-weight:700;color:#7a8b9c;line-height:14px}.dialog_acrao .dialog_acrao_style .dialog_acrao_style_item_active .style_main p[data-v-5a361e45]{font-size:11px;font-family:MicrosoftYaHeiUI;color:#8e9eaf;line-height:11px}.dialog_acrao[data-v-5a361e45] .ivu-color-picker-picker-panel{min-width:303px}.dialog_banner[data-v-7b09bed5]{width:100%}.dialog_banner .dialog_banner_item[data-v-7b09bed5]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:10px}.dialog_banner .dialog_banner_item .dialog_banner_item_left[data-v-7b09bed5]{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:14px;padding-top:9px;margin-right:10px;min-width:60px}.dialog_banner .dialog_banner_item .dialog_banner_item_right[data-v-7b09bed5]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.dialog_banner .dialog_banner_item .dialog_banner_item_right .dialog_banner_addpic[data-v-7b09bed5]{width:84px;height:84px;background:#fff;border:1px dashed #d9d9d9;margin-left:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:55px;color:#d9d9d9;font-weight:100;cursor:pointer;margin-bottom:10px}.dialog_banner .dialog_banner_item .dialog_banner_item_right .dialog_banner_img:hover .banner_close[data-v-7b09bed5],.dialog_banner .dialog_banner_item .dialog_banner_item_right .dialog_banner_img:hover .banner_set[data-v-7b09bed5]{display:-webkit-box;display:-ms-flexbox;display:flex}.dialog_banner .dialog_banner_item .dialog_banner_item_right .dialog_banner_img[data-v-7b09bed5]{width:84px;height:84px;margin-left:10px;position:relative;background:#d9d9d9;margin-bottom:10px}.dialog_banner .dialog_banner_item .dialog_banner_item_right .dialog_banner_img img[data-v-7b09bed5]{width:100%;height:100%}.dialog_banner .dialog_banner_item .dialog_banner_item_right .dialog_banner_img .banner_close[data-v-7b09bed5]{width:14px;height:14px;position:absolute;top:-6px;right:-6px;cursor:pointer;display:none}.dialog_banner .dialog_banner_item .dialog_banner_item_right .dialog_banner_img .banner_set[data-v-7b09bed5]{width:100%;height:25px;background:rgba(26,144,255,.7);position:absolute;left:0;bottom:0;font-size:14px;font-family:MicrosoftYaHeiUI;color:#fff;line-height:14px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer;display:none}.dialog_banner .dialog_banner_item .dialog_banner_item_right[data-v-7b09bed5] .ivu-input{background:#fff;border-radius:1px;border:1px solid #d9d9d9}.dialog_banner .dialog_banner_item .dialog_banner_item_right[data-v-7b09bed5] .ivu-btn-default{width:70px;height:32px;border-radius:2px;border:1px solid #ddd;margin-left:12px;font-size:14px;font-family:PingFangTC-Regular,PingFangTC;font-weight:400;color:#333;line-height:14px}.dialog_banner .dialog_banner_item .dialog_banner_item_right .banner_set_radio[data-v-7b09bed5]{width:100%;padding-top:7px;margin-left:10px}.dialog_banner .dialog_banner_item .dialog_banner_item_right[data-v-7b09bed5] .ivu-radio{margin-right:10px}.dialog_banner .dialog_banner_item .dialog_banner_item_right[data-v-7b09bed5] .ivu-radio-inner:after{width:4.67px;height:4.67px;left:4px;top:4px}.dialog_banner .dialog_banner_item .dialog_banner_item_right[data-v-7b09bed5] .ivu-radio-wrapper{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:14px;margin-right:30px}.dialog_banner .dialog_banner_item .dialog_banner_item_right .banner_set_detail[data-v-7b09bed5]{width:100%;padding-top:20px;margin-left:10px;display:-webkit-box;display:-ms-flexbox;display:flex}.dialog_banner .dialog_banner_item .dialog_banner_item_right .banner_set_detail .banner_set_detail_item[data-v-7b09bed5]{margin-right:40px}.dialog_banner .dialog_banner_item .dialog_banner_item_right .banner_set_detail span[data-v-7b09bed5]{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:18px}.dialog_banner .dialog_banner_item .dialog_banner_item_right .banner_set_detail[data-v-7b09bed5] .ivu-input-wrapper{margin-left:10px}.dialog_banner .dialog_banner_item .dialog_banner_item_right .banner_set_detail[data-v-7b09bed5] .ivu-input-suffix span{line-height:28px;font-size:14px;font-family:MicrosoftYaHeiUI;color:#e0e0de}.dialog_banner .dialog_banner_item .dialog_banner_item_right .banner_set_detail[data-v-7b09bed5] .ivu-input{font-size:14px}.dialog_banner .dialog_banner_item .dialog_banner_item_right .banner_set_detail[data-v-7b09bed5] .ivu-input-with-suffix{padding-right:25px}.dialog_banner .dialog_banner_item .dialog_banner_item_right .banner_set_detail[data-v-7b09bed5] .ivu-input-suffix{width:25px}.dialog_banner .dialog_banner_title[data-v-7b09bed5]{width:100%;padding:13px 14px;background:#f7f7f7;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin:20px 0}.dialog_banner .dialog_banner_title h3[data-v-7b09bed5]{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:14px;font-weight:500}.dialog_banner .dialog_banner_style[data-v-7b09bed5]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.dialog_banner .dialog_banner_style .dialog_banner_style_item[data-v-7b09bed5],.dialog_banner .dialog_banner_style .dialog_banner_style_item_active[data-v-7b09bed5]{width:140px;height:90px;padding:5px;background:#fff;border-radius:1px;border:1px solid #d9d9d9;margin-right:10px;cursor:pointer}.dialog_banner .dialog_banner_style .dialog_banner_style_item .style_main[data-v-7b09bed5],.dialog_banner .dialog_banner_style .dialog_banner_style_item_active .style_main[data-v-7b09bed5]{width:100%;height:100%;background:hsla(0,0%,85.1%,.5);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0 16px}.dialog_banner .dialog_banner_style .dialog_banner_style_item .style_main h3[data-v-7b09bed5],.dialog_banner .dialog_banner_style .dialog_banner_style_item_active .style_main h3[data-v-7b09bed5]{margin-bottom:7px;font-size:14px;font-family:MicrosoftYaHeiUI-Bold,MicrosoftYaHeiUI;font-weight:700;color:#7a8b9c;line-height:14px}.dialog_banner .dialog_banner_style .dialog_banner_style_item .style_main p[data-v-7b09bed5],.dialog_banner .dialog_banner_style .dialog_banner_style_item_active .style_main p[data-v-7b09bed5]{font-size:11px;font-family:MicrosoftYaHeiUI;color:#8e9eaf;line-height:11px}.dialog_banner .dialog_banner_style .dialog_banner_style_item_active[data-v-7b09bed5]{border:1px solid #1890ff}.dialog_banner .dialog_banner_style .dialog_banner_style_item_active .style_main[data-v-7b09bed5]{width:100%;height:100%;background:rgba(24,144,255,.07);border-radius:1px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0 16px}.dialog_banner .dialog_banner_style .dialog_banner_style_item_active .style_main h3[data-v-7b09bed5]{margin-bottom:7px;font-size:14px;font-family:MicrosoftYaHeiUI-Bold,MicrosoftYaHeiUI;font-weight:700;color:#7a8b9c;line-height:14px}.dialog_banner .dialog_banner_style .dialog_banner_style_item_active .style_main p[data-v-7b09bed5]{font-size:11px;font-family:MicrosoftYaHeiUI;color:#8e9eaf;line-height:11px}[data-v-7b09bed5] .vertical-center-modal{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}[data-v-7b09bed5] .vertical-center-modal /deep/ .ivu-modal{top:0}[data-v-7b09bed5] .ivu-modal-body{padding:20px 50px 30px}.dialog_button[data-v-7f88830d]{width:100%}.dialog_button .dialog_button_title[data-v-7f88830d]{width:100%;padding:13px 14px;background:#f7f7f7;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin:20px 0}.dialog_button .dialog_button_title h3[data-v-7f88830d]{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:14px;font-weight:500}.dialog_button .dialog_button_btns[data-v-7f88830d]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.dialog_button .dialog_button_btns .dialog_button_btns_ite[data-v-7f88830d]:hover{border:1px solid #1890ff}.dialog_button .dialog_button_btns .dialog_button_btns_ite[data-v-7f88830d]{width:147px;height:60px;padding:10px;margin-right:50px;margin-bottom:15px;border:1px solid #d9d9d9;cursor:pointer;position:relative;overflow:hidden}.dialog_button .dialog_button_btns .dialog_button_btns_ite button[data-v-7f88830d]{width:100%;height:100%;border-radius:2px;border:1px solid;outline:none;cursor:pointer}.dialog_button .dialog_button_btns .dialog_button_btns_ite_actived[data-v-7f88830d]{border:1px solid #1890ff}.dialog_button .dialog_button_btns .dialog_button_btns_ite[data-v-7f88830d]:nth-child(3n){margin-right:0}.dialog_button .dialog_button_btns .photo_gallery_main_pics_w_dui[data-v-7f88830d]{width:24px;height:24px;background:#1890ff;color:#fff;border-radius:100px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;padding:1px;position:absolute;right:-12px;bottom:-12px}.dialog_button .dialog_button_item[data-v-7f88830d]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:10px}.dialog_button .dialog_button_item .dialog_button_item_left[data-v-7f88830d]{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:14px;padding-top:9px;margin-right:10px;min-width:60px}.dialog_button .dialog_button_item .dialog_button_item_right[data-v-7f88830d]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.dialog_button .dialog_button_item .dialog_button_item_right .dialog_button_addpic[data-v-7f88830d]{width:84px;height:84px;background:#fff;border:1px dashed #d9d9d9;margin-left:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:55px;color:#d9d9d9;font-weight:100;cursor:pointer;margin-bottom:10px}.dialog_button .dialog_button_item .dialog_button_item_right[data-v-7f88830d] .ivu-input{background:#fff;border-radius:1px;border:1px solid #d9d9d9}.dialog_button .dialog_button_item .dialog_button_item_right[data-v-7f88830d] .ivu-btn-default{width:70px;height:32px;border-radius:2px;border:1px solid #ddd;margin-left:12px;font-size:14px;font-family:PingFangTC-Regular,PingFangTC;font-weight:400;color:#333;line-height:14px}.dialog_button .dialog_button_item .dialog_button_item_right[data-v-7f88830d] .ivu-radio{margin-right:10px}.dialog_button .dialog_button_item .dialog_button_item_right[data-v-7f88830d] .ivu-radio-inner:after{width:4.67px;height:4.67px;left:4px;top:4px}.dialog_button .dialog_button_item .dialog_button_item_right[data-v-7f88830d] .ivu-radio-wrapper{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:14px;margin-right:30px}.dialog_button .dialog_button_item .dialog_button_item_right .banner_set_radio[data-v-7f88830d]{width:100%;padding-top:7px;margin-left:10px}.dialog_button .dialog_button_item .dialog_button_item_right .banner_set_detail[data-v-7f88830d]{width:100%;padding-top:20px;margin-left:10px;display:-webkit-box;display:-ms-flexbox;display:flex}.dialog_button .dialog_button_item .dialog_button_item_right .banner_set_detail .banner_set_detail_item[data-v-7f88830d]{margin-right:40px}.dialog_button .dialog_button_item .dialog_button_item_right .banner_set_detail span[data-v-7f88830d]{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:18px}.dialog_button .dialog_button_item .dialog_button_item_right .banner_set_detail[data-v-7f88830d] .ivu-input-wrapper{margin-left:10px}.dialog_button .dialog_button_item .dialog_button_item_right .banner_set_detail[data-v-7f88830d] .ivu-input-suffix span{line-height:28px;font-size:14px;font-family:MicrosoftYaHeiUI;color:#e0e0de}.dialog_button .dialog_button_item .dialog_button_item_right .banner_set_detail[data-v-7f88830d] .ivu-input{font-size:14px}.dialog_button .dialog_button_item .dialog_button_item_right .banner_set_detail[data-v-7f88830d] .ivu-input-with-suffix{padding-right:25px}.dialog_button .dialog_button_item .dialog_button_item_right .banner_set_detail[data-v-7f88830d] .ivu-input-suffix{width:25px}.dialog_button .dialog_button_item .dialog_button_item_right[data-v-7f88830d] .ivu-color-picker-picker-panel{min-width:303px}.dialog_button .dialog_button_item .dialog_button_item_right[data-v-7f88830d] .ivu-color-picker-confirm /deep/ .ivu-btn-default{width:40px;height:24px}.dialog_form[data-v-7a0c0853]{width:100%}.dialog_form .dialog_form_title[data-v-7a0c0853]{width:100%;padding:13px 14px;background:#f7f7f7;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin:20px 0}.dialog_form .dialog_form_title h3[data-v-7a0c0853]{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:14px;font-weight:500}.dialog_form .dialog_form_item[data-v-7a0c0853]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:10px}.dialog_form .dialog_form_item .dialog_form_item_left[data-v-7a0c0853]{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:14px;padding-top:9px;margin-right:10px;min-width:60px}.dialog_form .dialog_form_item .dialog_form_item_right[data-v-7a0c0853]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.dialog_form .dialog_form_item .dialog_form_item_right[data-v-7a0c0853] .ivu-select-selection{border-radius:1px}.dialog_form .dialog_form_check[data-v-7a0c0853]{width:100%}.dialog_form .dialog_form_check .dialog_form_check_main[data-v-7a0c0853]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.dialog_form .dialog_form_check .dialog_form_check_main .dialog_form_chack_main_item[data-v-7a0c0853]:hover{border:1px solid #1890ff}.dialog_form .dialog_form_check .dialog_form_check_main .dialog_form_chack_main_item[data-v-7a0c0853]{padding:10px;border-radius:2px;border:1px solid #d9d9d9;position:relative;overflow:hidden;cursor:pointer}.dialog_form .dialog_form_check .dialog_form_check_main .dialog_form_chack_main_item input[data-v-7a0c0853]{width:121px;height:40px;outline:none;border-radius:2px;font-size:14px;font-family:MicrosoftYaHei;color:#333;line-height:14px;text-align:center;cursor:pointer}.dialog_form .dialog_form_check .dialog_form_check_main .dialog_form_chack_main_item .photo_gallery_main_pics_w_dui[data-v-7a0c0853]{width:24px;height:24px;background:#1890ff;color:#fff;border-radius:100px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;padding:1px;position:absolute;right:-12px;bottom:-12px}.dialog_form .dialog_form_check .dialog_form_check_main .dialog_form_chack_main_item_actived[data-v-7a0c0853]{border:1px solid #1890ff}.upload-img button[data-v-ec8fdfba]{width:90px;height:32px;background:#1890ff;border-radius:1px;outline:none;border:none;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;cursor:pointer}.upload-img .box[data-v-ec8fdfba]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:20px;min-width:580px}.upload-img .box .image-box[data-v-ec8fdfba]{width:108px;height:90px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:1px;padding:10px 0;margin-bottom:10px;background:#f3f3f3}.upload-img .box .image-box img[data-v-ec8fdfba]{width:100%;height:100%}.upload-img .box .checkedActive[data-v-ec8fdfba]{background:#eff7ff;border:1px solid #1890ff}.upload-img .box .image-box[data-v-ec8fdfba]:not(:nth-child(5n+1)){margin-left:10px}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content button:focus,.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input:focus,.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea:focus,.w-e-text:focus{outline:0}.w-e-menu-panel,.w-e-menu-panel *,.w-e-text-container,.w-e-text-container *,.w-e-toolbar,.w-e-toolbar *{padding:0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}.w-e-clear-fix:after{content:"";display:table;clear:both}.w-e-toolbar .w-e-droplist{position:absolute;left:0;top:0;background-color:#fff;border:1px solid #f1f1f1;border-right-color:#ccc;border-bottom-color:#ccc}.w-e-toolbar .w-e-droplist ul.w-e-block li.w-e-item:hover,.w-e-toolbar .w-e-droplist ul.w-e-list li.w-e-item:hover{background-color:#f1f1f1}.w-e-toolbar .w-e-droplist .w-e-dp-title{text-align:center;color:#999;line-height:2;border-bottom:1px solid #f1f1f1;font-size:13px}.w-e-toolbar .w-e-droplist ul.w-e-list{list-style:none;line-height:1}.w-e-toolbar .w-e-droplist ul.w-e-list li.w-e-item{color:#333;padding:5px 0}.w-e-toolbar .w-e-droplist ul.w-e-block{list-style:none;text-align:left;padding:5px}.w-e-toolbar .w-e-droplist ul.w-e-block li.w-e-item{display:inline-block;padding:3px 5px}@font-face{font-family:w-e-icon;src:url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAABhQAAsAAAAAGAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDxIPBGNtYXAAAAFoAAABBAAAAQQrSf4BZ2FzcAAAAmwAAAAIAAAACAAAABBnbHlmAAACdAAAEvAAABLwfpUWUWhlYWQAABVkAAAANgAAADYQp00kaGhlYQAAFZwAAAAkAAAAJAfEA+FobXR4AAAVwAAAAIQAAACEeAcD7GxvY2EAABZEAAAARAAAAERBSEX+bWF4cAAAFogAAAAgAAAAIAAsALZuYW1lAAAWqAAAAYYAAAGGmUoJ+3Bvc3QAABgwAAAAIAAAACAAAwAAAAMD3gGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA8fwDwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEAOgAAAA2ACAABAAWAAEAIOkG6Q3pEulH6Wbpd+m56bvpxunL6d/qDepc6l/qZepo6nHqefAN8BTxIPHc8fz//f//AAAAAAAg6QbpDekS6UfpZel36bnpu+nG6cvp3+oN6lzqX+pi6mjqcep38A3wFPEg8dzx/P/9//8AAf/jFv4W+Bb0FsAWoxaTFlIWURZHFkMWMBYDFbUVsxWxFa8VpxWiEA8QCQ7+DkMOJAADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAACAAD/wAQAA8AABAATAAABNwEnAQMuAScTNwEjAQMlATUBBwGAgAHAQP5Anxc7MmOAAYDA/oDAAoABgP6ATgFAQAHAQP5A/p0yOxcBEU4BgP6A/YDAAYDA/oCAAAQAAAAABAADgAAQACEALQA0AAABOAExETgBMSE4ATEROAExITUhIgYVERQWMyEyNjURNCYjBxQGIyImNTQ2MzIWEyE1EwEzNwPA/IADgPyAGiYmGgOAGiYmGoA4KCg4OCgoOED9AOABAEDgA0D9AAMAQCYa/QAaJiYaAwAaJuAoODgoKDg4/biAAYD+wMAAAAIAAABABAADQAA4ADwAAAEmJy4BJyYjIgcOAQcGBwYHDgEHBhUUFx4BFxYXFhceARcWMzI3PgE3Njc2Nz4BNzY1NCcuAScmJwERDQED1TY4OXY8PT8/PTx2OTg2CwcICwMDAwMLCAcLNjg5djw9Pz89PHY5ODYLBwgLAwMDAwsIBwv9qwFA/sADIAgGBggCAgICCAYGCCkqKlktLi8vLi1ZKiopCAYGCAICAgIIBgYIKSoqWS0uLy8uLVkqKin94AGAwMAAAAAAAgDA/8ADQAPAABsAJwAAASIHDgEHBhUUFx4BFxYxMDc+ATc2NTQnLgEnJgMiJjU0NjMyFhUUBgIAQjs6VxkZMjJ4MjIyMngyMhkZVzo7QlBwcFBQcHADwBkZVzo7Qnh9fcxBQUFBzH19eEI7OlcZGf4AcFBQcHBQUHAAAAEAAAAABAADgAArAAABIgcOAQcGBycRISc+ATMyFx4BFxYVFAcOAQcGBxc2Nz4BNzY1NCcuAScmIwIANTIyXCkpI5YBgJA1i1BQRUZpHh4JCSIYGB5VKCAgLQwMKCiLXl1qA4AKCycbHCOW/oCQNDweHmlGRVArKClJICEaYCMrK2I2NjlqXV6LKCgAAQAAAAAEAAOAACoAABMUFx4BFxYXNyYnLgEnJjU0Nz4BNzYzMhYXByERByYnLgEnJiMiBw4BBwYADAwtICAoVR4YGCIJCR4eaUZFUFCLNZABgJYjKSlcMjI1al1eiygoAYA5NjZiKysjYBohIEkpKCtQRUZpHh48NJABgJYjHBsnCwooKIteXQAAAAACAAAAQAQBAwAAJgBNAAATMhceARcWFRQHDgEHBiMiJy4BJyY1JzQ3PgE3NjMVIgYHDgEHPgEhMhceARcWFRQHDgEHBiMiJy4BJyY1JzQ3PgE3NjMVIgYHDgEHPgHhLikpPRESEhE9KSkuLikpPRESASMjelJRXUB1LQkQBwgSAkkuKSk9ERISET0pKS4uKSk9ERIBIyN6UlFdQHUtCRAHCBICABIRPSkpLi4pKT0REhIRPSkpLiBdUVJ6IyOAMC4IEwoCARIRPSkpLi4pKT0REhIRPSkpLiBdUVJ6IyOAMC4IEwoCAQAABgBA/8AEAAPAAAMABwALABEAHQApAAAlIRUhESEVIREhFSEnESM1IzUTFTMVIzU3NSM1MxUVESM1MzUjNTM1IzUBgAKA/YACgP2AAoD9gMBAQECAwICAwMCAgICAgIACAIACAIDA/wDAQP3yMkCSPDJAku7+wEBAQEBAAAYAAP/ABAADwAADAAcACwAXACMALwAAASEVIREhFSERIRUhATQ2MzIWFRQGIyImETQ2MzIWFRQGIyImETQ2MzIWFRQGIyImAYACgP2AAoD9gAKA/YD+gEs1NUtLNTVLSzU1S0s1NUtLNTVLSzU1SwOAgP8AgP8AgANANUtLNTVLS/61NUtLNTVLS/61NUtLNTVLSwADAAAAAAQAA6AAAwANABQAADchFSElFSE1EyEVITUhJQkBIxEjEQAEAPwABAD8AIABAAEAAQD9YAEgASDggEBAwEBAAQCAgMABIP7g/wABAAAAAAACAB7/zAPiA7QAMwBkAAABIiYnJicmNDc2PwE+ATMyFhcWFxYUBwYPAQYiJyY0PwE2NCcuASMiBg8BBhQXFhQHDgEjAyImJyYnJjQ3Nj8BNjIXFhQPAQYUFx4BMzI2PwE2NCcmNDc2MhcWFxYUBwYPAQ4BIwG4ChMIIxISEhIjwCNZMTFZIyMSEhISI1gPLA8PD1gpKRQzHBwzFMApKQ8PCBMKuDFZIyMSEhISI1gPLA8PD1gpKRQzHBwzFMApKQ8PDysQIxISEhIjwCNZMQFECAckLS1eLS0kwCIlJSIkLS1eLS0kVxAQDysPWCl0KRQVFRTAKXQpDysQBwj+iCUiJC0tXi0tJFcQEA8rD1gpdCkUFRUUwCl0KQ8rEA8PJC0tXi0tJMAiJQAAAAAFAAD/wAQAA8AAGwA3AFMAXwBrAAAFMjc+ATc2NTQnLgEnJiMiBw4BBwYVFBceARcWEzIXHgEXFhUUBw4BBwYjIicuAScmNTQ3PgE3NhMyNz4BNzY3BgcOAQcGIyInLgEnJicWFx4BFxYnNDYzMhYVFAYjIiYlNDYzMhYVFAYjIiYCAGpdXosoKCgoi15dampdXosoKCgoi15dalZMTHEgISEgcUxMVlZMTHEgISEgcUxMVisrKlEmJiMFHBtWODc/Pzc4VhscBSMmJlEqK9UlGxslJRsbJQGAJRsbJSUbGyVAKCiLXl1qal1eiygoKCiLXl1qal1eiygoA6AhIHFMTFZWTExxICEhIHFMTFZWTExxICH+CQYGFRAQFEM6OlYYGRkYVjo6QxQQEBUGBvcoODgoKDg4KCg4OCgoODgAAAMAAP/ABAADwAAbADcAQwAAASIHDgEHBhUUFx4BFxYzMjc+ATc2NTQnLgEnJgMiJy4BJyY1NDc+ATc2MzIXHgEXFhUUBw4BBwYTBycHFwcXNxc3JzcCAGpdXosoKCgoi15dampdXosoKCgoi15dalZMTHEgISEgcUxMVlZMTHEgISEgcUxMSqCgYKCgYKCgYKCgA8AoKIteXWpqXV6LKCgoKIteXWpqXV6LKCj8YCEgcUxMVlZMTHEgISEgcUxMVlZMTHEgIQKgoKBgoKBgoKBgoKAAAQBl/8ADmwPAACkAAAEiJiMiBw4BBwYVFBYzLgE1NDY3MAcGAgcGBxUhEzM3IzceATMyNjcOAQMgRGhGcVNUbRobSUgGDWVKEBBLPDxZAT1sxizXNC1VJi5QGB09A7AQHh1hPj9BTTsLJjeZbwN9fv7Fj5AjGQIAgPYJDzdrCQcAAAAAAgAAAAAEAAOAAAkAFwAAJTMHJzMRIzcXIyURJyMRMxUhNTMRIwcRA4CAoKCAgKCggP8AQMCA/oCAwEDAwMACAMDAwP8AgP1AQEACwIABAAADAMAAAANAA4AAFgAfACgAAAE+ATU0Jy4BJyYjIREhMjc+ATc2NTQmATMyFhUUBisBEyMRMzIWFRQGAsQcIBQURi4vNf7AAYA1Ly5GFBRE/oRlKjw8KWafn58sPj4B2yJULzUvLkYUFPyAFBRGLi81RnQBRks1NUv+gAEASzU1SwAAAAACAMAAAANAA4AAHwAjAAABMxEUBw4BBwYjIicuAScmNREzERQWFx4BMzI2Nz4BNQEhFSECwIAZGVc6O0JCOzpXGRmAGxgcSSgoSRwYG/4AAoD9gAOA/mA8NDVOFhcXFk41NDwBoP5gHjgXGBsbGBc4Hv6ggAAAAAABAIAAAAOAA4AACwAAARUjATMVITUzASM1A4CA/sCA/kCAAUCAA4BA/QBAQAMAQAABAAAAAAQAA4AAPQAAARUjHgEVFAYHDgEjIiYnLgE1MxQWMzI2NTQmIyE1IS4BJy4BNTQ2Nz4BMzIWFx4BFSM0JiMiBhUUFjMyFhcEAOsVFjUwLHE+PnEsMDWAck5OcnJO/gABLAIEATA1NTAscT4+cSwwNYByTk5yck47bisBwEAdQSI1YiQhJCQhJGI1NExMNDRMQAEDASRiNTViJCEkJCEkYjU0TEw0NEwhHwAAAAcAAP/ABAADwAADAAcACwAPABMAGwAjAAATMxUjNzMVIyUzFSM3MxUjJTMVIwMTIRMzEyETAQMhAyMDIQMAgIDAwMABAICAwMDAAQCAgBAQ/QAQIBACgBD9QBADABAgEP2AEAHAQEBAQEBAQEBAAkD+QAHA/oABgPwAAYD+gAFA/sAAAAoAAAAABAADgAADAAcACwAPABMAFwAbAB8AIwAnAAATESERATUhFR0BITUBFSE1IxUhNREhFSElIRUhETUhFQEhFSEhNSEVAAQA/YABAP8AAQD/AED/AAEA/wACgAEA/wABAPyAAQD/AAKAAQADgPyAA4D9wMDAQMDAAgDAwMDA/wDAwMABAMDA/sDAwMAAAAUAAAAABAADgAADAAcACwAPABMAABMhFSEVIRUhESEVIREhFSERIRUhAAQA/AACgP2AAoD9gAQA/AAEAPwAA4CAQID/AIABQID/AIAAAAAABQAAAAAEAAOAAAMABwALAA8AEwAAEyEVIRchFSERIRUhAyEVIREhFSEABAD8AMACgP2AAoD9gMAEAPwABAD8AAOAgECA/wCAAUCA/wCAAAAFAAAAAAQAA4AAAwAHAAsADwATAAATIRUhBSEVIREhFSEBIRUhESEVIQAEAPwAAYACgP2AAoD9gP6ABAD8AAQA/AADgIBAgP8AgAFAgP8AgAAAAAABAD8APwLmAuYALAAAJRQPAQYjIi8BBwYjIi8BJjU0PwEnJjU0PwE2MzIfATc2MzIfARYVFA8BFxYVAuYQThAXFxCoqBAXFhBOEBCoqBAQThAWFxCoqBAXFxBOEBCoqBDDFhBOEBCoqBAQThAWFxCoqBAXFxBOEBCoqBAQThAXFxCoqBAXAAAABgAAAAADJQNuABQAKAA8AE0AVQCCAAABERQHBisBIicmNRE0NzY7ATIXFhUzERQHBisBIicmNRE0NzY7ATIXFhcRFAcGKwEiJyY1ETQ3NjsBMhcWExEhERQXFhcWMyEyNzY3NjUBIScmJyMGBwUVFAcGKwERFAcGIyEiJyY1ESMiJyY9ATQ3NjsBNzY3NjsBMhcWHwEzMhcWFQElBgUIJAgFBgYFCCQIBQaSBQUIJQgFBQUFCCUIBQWSBQUIJQgFBQUFCCUIBQVJ/gAEBAUEAgHbAgQEBAT+gAEAGwQGtQYEAfcGBQg3Ghsm/iUmGxs3CAUFBQUIsSgIFxYXtxcWFgkosAgFBgIS/rcIBQUFBQgBSQgFBgYFCP63CAUFBQUIAUkIBQYGBQj+twgFBQUFCAFJCAUGBgX+WwId/eMNCwoFBQUFCgsNAmZDBQICBVUkCAYF/eMwIiMhIi8CIAUGCCQIBQVgFQ8PDw8VYAUFCAACAAcASQO3Aq8AGgAuAAAJAQYjIi8BJjU0PwEnJjU0PwE2MzIXARYVFAcBFRQHBiMhIicmPQE0NzYzITIXFgFO/vYGBwgFHQYG4eEGBh0FCAcGAQoGBgJpBQUI/dsIBQUFBQgCJQgFBQGF/vYGBhwGCAcG4OEGBwcGHQUF/vUFCAcG/vslCAUFBQUIJQgFBQUFAAAAAQAjAAAD3QNuALMAACUiJyYjIgcGIyInJjU0NzY3Njc2NzY9ATQnJiMhIgcGHQEUFxYXFjMWFxYVFAcGIyInJiMiBwYjIicmNTQ3Njc2NzY3Nj0BETQ1NDU0JzQnJicmJyYnJicmIyInJjU0NzYzMhcWMzI3NjMyFxYVFAcGIwYHBgcGHQEUFxYzITI3Nj0BNCcmJyYnJjU0NzYzMhcWMzI3NjMyFxYVFAcGByIHBgcGFREUFxYXFhcyFxYVFAcGIwPBGTMyGhkyMxkNCAcJCg0MERAKEgEHFf5+FgcBFQkSEw4ODAsHBw4bNTUaGDExGA0HBwkJCwwQDwkSAQIBAgMEBAUIEhENDQoLBwcOGjU1GhgwMRgOBwcJCgwNEBAIFAEHDwGQDgcBFAoXFw8OBwcOGTMyGRkxMRkOBwcKCg0NEBEIFBQJEREODQoLBwcOAAICAgIMCw8RCQkBAQMDBQxE4AwFAwMFDNRRDQYBAgEICBIPDA0CAgICDAwOEQgJAQIDAwUNRSEB0AINDQgIDg4KCgsLBwcDBgEBCAgSDwwNAgICAg0MDxEICAECAQYMULYMBwEBBwy2UAwGAQEGBxYPDA0CAgICDQwPEQgIAQECBg1P/eZEDAYCAgEJCBEPDA0AAAIAAP+3A/8DtwATADkAAAEyFxYVFAcCBwYjIicmNTQ3ATYzARYXFh8BFgcGIyInJicmJyY1FhcWFxYXFjMyNzY3Njc2NzY3NjcDmygeHhq+TDdFSDQ0NQFtISn9+BcmJy8BAkxMe0c2NiEhEBEEExQQEBIRCRcIDxITFRUdHR4eKQO3GxooJDP+mUY0NTRJSTABSx/9sSsfHw0oek1MGhsuLzo6RAMPDgsLCgoWJRsaEREKCwQEAgABAAAAAAAA9evv618PPPUACwQAAAAAANbEBFgAAAAA1sQEWAAA/7cEAQPAAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAD//wQBAAEAAAAAAAAAAAAAAAAAAAAhBAAAAAAAAAAAAAAAAgAAAAQAAAAEAAAABAAAAAQAAMAEAAAABAAAAAQAAAAEAABABAAAAAQAAAAEAAAeBAAAAAQAAAAEAABlBAAAAAQAAMAEAADABAAAgAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAMlAD8DJQAAA74ABwQAACMD/wAAAAAAAAAKABQAHgBMAJQA+AE2AXwBwgI2AnQCvgLoA34EHgSIBMoE8gU0BXAFiAXgBiIGagaSBroG5AcoB+AIKgkcCXgAAQAAACEAtAAKAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGljb21vb24AaQBjAG8AbQBvAG8AblZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGljb21vb24AaQBjAG8AbQBvAG8Abmljb21vb24AaQBjAG8AbQBvAG8AblJlZ3VsYXIAUgBlAGcAdQBsAGEAcmljb21vb24AaQBjAG8AbQBvAG8AbkZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=) format("truetype");font-weight:400;font-style:normal}[class*=" w-e-icon-"],[class^=w-e-icon-]{font-family:w-e-icon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.w-e-icon-close:before{content:"\F00D"}.w-e-icon-upload2:before{content:"\E9C6"}.w-e-icon-trash-o:before{content:"\F014"}.w-e-icon-header:before{content:"\F1DC"}.w-e-icon-pencil2:before{content:"\E906"}.w-e-icon-paint-brush:before{content:"\F1FC"}.w-e-icon-image:before{content:"\E90D"}.w-e-icon-play:before{content:"\E912"}.w-e-icon-location:before{content:"\E947"}.w-e-icon-undo:before{content:"\E965"}.w-e-icon-redo:before{content:"\E966"}.w-e-icon-quotes-left:before{content:"\E977"}.w-e-icon-list-numbered:before{content:"\E9B9"}.w-e-icon-list2:before{content:"\E9BB"}.w-e-icon-link:before{content:"\E9CB"}.w-e-icon-happy:before{content:"\E9DF"}.w-e-icon-bold:before{content:"\EA62"}.w-e-icon-underline:before{content:"\EA63"}.w-e-icon-italic:before{content:"\EA64"}.w-e-icon-strikethrough:before{content:"\EA65"}.w-e-icon-table2:before{content:"\EA71"}.w-e-icon-paragraph-left:before{content:"\EA77"}.w-e-icon-paragraph-center:before{content:"\EA78"}.w-e-icon-paragraph-right:before{content:"\EA79"}.w-e-icon-terminal:before{content:"\F120"}.w-e-icon-page-break:before{content:"\EA68"}.w-e-icon-cancel-circle:before{content:"\EA0D"}.w-e-icon-font:before{content:"\EA5C"}.w-e-icon-text-heigh:before{content:"\EA5F"}.w-e-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 5px}.w-e-toolbar .w-e-menu{position:relative;text-align:center;padding:5px 10px;cursor:pointer}.w-e-toolbar .w-e-menu i{color:#999}.w-e-toolbar .w-e-menu:hover i{color:#333}.w-e-toolbar .w-e-active:hover i,.w-e-toolbar .w-e-active i{color:#1e88e5}.w-e-text-container .w-e-panel-container{position:absolute;top:0;left:50%;border:1px solid #ccc;border-top:0;-webkit-box-shadow:1px 1px 2px #ccc;box-shadow:1px 1px 2px #ccc;color:#333;background-color:#fff}.w-e-text-container .w-e-panel-container .w-e-panel-close{position:absolute;right:0;top:0;padding:5px;margin:2px 5px 0 0;cursor:pointer;color:#999}.w-e-text-container .w-e-panel-container .w-e-panel-close:hover{color:#333}.w-e-text-container .w-e-panel-container .w-e-panel-tab-title{list-style:none;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;margin:2px 10px 0;border-bottom:1px solid #f1f1f1}.w-e-text-container .w-e-panel-container .w-e-panel-tab-title .w-e-item{padding:3px 5px;color:#999;cursor:pointer;margin:0 3px;position:relative;top:1px}.w-e-text-container .w-e-panel-container .w-e-panel-tab-title .w-e-active{color:#333;border-bottom:1px solid #333;cursor:default;font-weight:700}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content{padding:10px 15px;font-size:16px}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea{width:100%;border:1px solid #ccc;padding:5px}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea:focus{border-color:#1e88e5}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text]{border:none;border-bottom:1px solid #ccc;font-size:14px;height:20px;color:#333;text-align:left}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text].small{width:30px;text-align:center}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text].block{display:block;width:100%;margin:10px 0}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text]:focus{border-bottom:2px solid #1e88e5}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button{font-size:14px;color:#1e88e5;border:none;padding:5px 10px;background-color:#fff;cursor:pointer;border-radius:3px}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.left{float:left;margin-right:10px}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.right{float:right;margin-left:10px}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.gray{color:#999}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.red{color:#c24f4a}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button:hover{background-color:#f1f1f1}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container:after{content:"";display:table;clear:both}.w-e-text-container .w-e-panel-container .w-e-emoticon-container .w-e-item{cursor:pointer;font-size:18px;padding:0 3px;display:inline-block}.w-e-text-container .w-e-panel-container .w-e-up-img-container{text-align:center}.w-e-text-container .w-e-panel-container .w-e-up-img-container .w-e-up-btn{display:inline-block;color:#999;cursor:pointer;font-size:60px;line-height:1}.w-e-text-container .w-e-panel-container .w-e-up-img-container .w-e-up-btn:hover{color:#333}.w-e-text-container{position:relative}.w-e-text-container .w-e-progress{position:absolute;background-color:#1e88e5;bottom:0;left:0;height:1px}.w-e-text{padding:0 10px;overflow-y:scroll}.w-e-text h1,.w-e-text h2,.w-e-text h3,.w-e-text h4,.w-e-text h5,.w-e-text p,.w-e-text pre,.w-e-text table{margin:10px 0;line-height:1.5}.w-e-text ol,.w-e-text ul{margin:10px 0 10px 20px}.w-e-text blockquote{display:block;border-left:8px solid #d0e5f2;padding:5px 10px;margin:10px 0;line-height:1.4;font-size:100%;background-color:#f1f1f1}.w-e-text code{display:inline-block;background-color:#f1f1f1;border-radius:3px;padding:3px 5px;margin:0 3px}.w-e-text pre code{display:block}.w-e-text table{border-top:1px solid #ccc;border-left:1px solid #ccc}.w-e-text table td,.w-e-text table th{border-bottom:1px solid #ccc;border-right:1px solid #ccc;padding:3px 5px}.w-e-text table th{border-bottom:2px solid #ccc;text-align:center}.w-e-text img{cursor:pointer}.w-e-text img:hover{-webkit-box-shadow:0 0 5px #333;box-shadow:0 0 5px #333}.editor-wrapper *{z-index:100!important}.count-style{font-size:50px}.mkt-edit__text{width:640px;background:#fff;border-radius:4px}.mkt-edit__text .mkt-edit__box{z-index:1}.ql-snow .ql-picker.ql-header .ql-picker-item:before,.ql-snow .ql-picker.ql-header .ql-picker-label:before{content:"\9ED8\8BA4"!important}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before{content:"\6807\9898 1"!important}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before{content:"\6807\9898 2"!important}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before{content:"\6807\9898 3"!important}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before{content:"\6807\9898 4"!important}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before{content:"\6807\9898 5"!important}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before{content:"\6807\9898 6"!important}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="10px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="10px"]:before{content:"10px"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="12px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="12px"]:before{content:"12px"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="14px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="14px"]:before{content:"14px"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="16px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="16px"]:before{content:"16px"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="18px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="18px"]:before{content:"18px"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="20px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="20px"]:before{content:"20px"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="22px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="22px"]:before{content:"22px"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="24px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="24px"]:before{content:"24px"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="26px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="26px"]:before{content:"26px"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="32px"]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="32px"]:before{content:"32px"}.ql-container{font-size:16px}.picbox-wrap[data-v-5480fb92]{width:380px;display:inline-block}.picbox-wrap .addicon-box[data-v-5480fb92]{border:1px dashed #e6e8e9}.picbox-wrap .addicon-box[data-v-5480fb92],.picbox-wrap .pic-wrap[data-v-5480fb92]{display:inline-block;width:84px;height:84px;line-height:84px;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;margin-left:10px;vertical-align:top}.picbox-wrap .pic-wrap[data-v-5480fb92]{margin-bottom:10px;position:relative;cursor:pointer}.picbox-wrap .pic-wrap:hover .close-icon[data-v-5480fb92],.picbox-wrap .pic-wrap:hover .edit-style[data-v-5480fb92]{display:-webkit-box;display:-ms-flexbox;display:flex}.picbox-wrap .close-icon[data-v-5480fb92]{width:14px;height:14px;position:absolute;top:-6px;right:-6px;cursor:pointer;display:none}.picbox-wrap .edit-style[data-v-5480fb92]{width:100%;height:25px;background:rgba(26,144,255,.7);position:absolute;left:0;bottom:0;font-size:14px;font-family:MicrosoftYaHeiUI;color:#fff;line-height:14px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer;display:none}.picstyle-radios[data-v-5480fb92]{margin-bottom:20px}.picstyle-radios .style-radio[data-v-5480fb92]{font-size:0;width:140px;height:90px;padding:0;position:relative}.picstyle-radios .style-radio .style-normal-partone[data-v-5480fb92]{width:55px;height:60px;position:absolute;left:10px;top:15px;background:#1890ff;opacity:.07}.picstyle-radios .style-radio .style-normal-parttwo[data-v-5480fb92]{width:55px;height:60px;position:absolute;right:10px;top:15px;background:#1890ff;opacity:.07}.picstyle-radios .style-radio .style-slide-partone[data-v-5480fb92]{position:absolute;left:10px;top:35px;z-index:5}.picstyle-radios .style-radio .style-slide-parttwo[data-v-5480fb92]{width:26px;height:60px;position:absolute;left:10px;top:15px;background:#f0f0f0}.picstyle-radios .style-radio .style-slide-partthree[data-v-5480fb92]{width:26px;height:60px;position:absolute;left:41px;top:15px;background:#f0f0f0}.picstyle-radios .style-radio .style-slide-partfour[data-v-5480fb92]{width:26px;height:60px;position:absolute;left:73px;top:15px;background:#f0f0f0}.picstyle-radios .style-radio .style-slide-partfive[data-v-5480fb92]{width:26px;height:60px;position:absolute;right:10px;top:15px;background:#f0f0f0}.picstyle-radios .style-radio .style-slide-partsix[data-v-5480fb92]{position:absolute;right:10px;top:35px;z-index:5}.edititems-style[data-v-5480fb92]{background:#f7f7f7;font-size:14px;color:#333;margin-bottom:20px}[data-v-5480fb92] .ivu-input,[data-v-5480fb92] .ivu-radio-group-button .ivu-radio-wrapper:first-child,[data-v-5480fb92] .ivu-radio-group-button .ivu-radio-wrapper:last-child,[data-v-5480fb92] .ivu-select-selection{border-radius:0}[data-v-5480fb92] .ivu-btn-default{width:70px;height:32px;border-radius:2px;border:1px solid #ddd;margin-left:12px;font-size:14px;font-family:PingFangTC-Regular,PingFangTC;font-weight:400;color:#333;line-height:14px}.dialog_banner[data-v-35538fb4]{width:100%}.dialog_banner .dialog_banner_item[data-v-35538fb4]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;margin-top:10px}.dialog_banner .dialog_banner_item .dialog_banner_item_left[data-v-35538fb4]{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:14px;padding-top:9px;margin-right:10px;min-width:60px}.dialog_banner .dialog_banner_item .dialog_banner_item_right[data-v-35538fb4]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.dialog_banner .dialog_banner_item .dialog_banner_item_right .dialog_banner_addpic[data-v-35538fb4]{width:84px;height:84px;background:#fff;border:1px dashed #d9d9d9;margin-left:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:55px;color:#d9d9d9;font-weight:100;cursor:pointer;margin-bottom:10px}.dialog_banner .dialog_banner_item .dialog_banner_item_right .dialog_banner_img:hover .banner_close[data-v-35538fb4],.dialog_banner .dialog_banner_item .dialog_banner_item_right .dialog_banner_img:hover .banner_set[data-v-35538fb4]{display:-webkit-box;display:-ms-flexbox;display:flex}.dialog_banner .dialog_banner_item .dialog_banner_item_right .dialog_banner_img[data-v-35538fb4]{width:84px;height:84px;margin-left:10px;position:relative;background:#d9d9d9;margin-bottom:10px}.dialog_banner .dialog_banner_item .dialog_banner_item_right .dialog_banner_img img[data-v-35538fb4]{width:100%;height:100%}.dialog_banner .dialog_banner_item .dialog_banner_item_right .dialog_banner_img .banner_close[data-v-35538fb4]{width:14px;height:14px;position:absolute;top:-6px;right:-6px;cursor:pointer;display:none}.dialog_banner .dialog_banner_item .dialog_banner_item_right .dialog_banner_img .banner_set[data-v-35538fb4]{width:100%;height:25px;background:rgba(26,144,255,.7);position:absolute;left:0;bottom:0;font-size:14px;font-family:MicrosoftYaHeiUI;color:#fff;line-height:14px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer;display:none}.dialog_banner .dialog_banner_item .dialog_banner_item_right[data-v-35538fb4] .ivu-input{background:#fff;border-radius:1px;border:1px solid #d9d9d9}.dialog_banner .dialog_banner_item .dialog_banner_item_right[data-v-35538fb4] .ivu-btn-default{width:70px;height:32px;border-radius:2px;border:1px solid #ddd;margin-left:12px;font-size:14px;font-family:PingFangTC-Regular,PingFangTC;font-weight:400;color:#333;line-height:14px}.dialog_banner .dialog_banner_item .dialog_banner_item_right[data-v-35538fb4] .ivu-radio{margin-right:10px}.dialog_banner .dialog_banner_item .dialog_banner_item_right .banner_set_radio[data-v-35538fb4]{width:100%;padding-top:7px;margin-left:10px}.dialog_banner .dialog_banner_item .dialog_banner_item_right[data-v-35538fb4] .ivu-radio-inner:after{width:4.67px;height:4.67px;left:4px;top:4px}.dialog_banner .dialog_banner_item .dialog_banner_item_right[data-v-35538fb4] .ivu-radio-wrapper{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:14px;margin-right:30px}.dialog_banner .dialog_banner_item .dialog_banner_item_right .banner_set_detail[data-v-35538fb4]{width:100%;padding-top:20px;margin-left:10px;display:-webkit-box;display:-ms-flexbox;display:flex}.dialog_banner .dialog_banner_item .dialog_banner_item_right .banner_set_detail .banner_set_detail_item[data-v-35538fb4]{margin-right:40px}.dialog_banner .dialog_banner_item .dialog_banner_item_right .banner_set_detail span[data-v-35538fb4]{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:18px}.dialog_banner .dialog_banner_item .dialog_banner_item_right .banner_set_detail[data-v-35538fb4] .ivu-input-wrapper{margin-left:10px}.dialog_banner .dialog_banner_item .dialog_banner_item_right .banner_set_detail[data-v-35538fb4] .ivu-input-suffix span{line-height:28px;font-size:14px;font-family:MicrosoftYaHeiUI;color:#e0e0de}.dialog_banner .dialog_banner_item .dialog_banner_item_right .banner_set_detail[data-v-35538fb4] .ivu-input{font-size:14px}.dialog_banner .dialog_banner_item .dialog_banner_item_right .banner_set_detail[data-v-35538fb4] .ivu-input-with-suffix{padding-right:25px}.dialog_banner .dialog_banner_item .dialog_banner_item_right .banner_set_detail[data-v-35538fb4] .ivu-input-suffix{width:25px}.dialog_banner .dialog_banner_title[data-v-35538fb4]{width:100%;padding:13px 14px;background:#f7f7f7;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin:20px 0}.dialog_banner .dialog_banner_title h3[data-v-35538fb4]{font-size:14px;font-family:MicrosoftYaHeiUI;color:#333;line-height:14px;font-weight:500}.dialog_banner .dialog_banner_style[data-v-35538fb4]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.dialog_banner .dialog_banner_style .dialog_banner_style_item[data-v-35538fb4],.dialog_banner .dialog_banner_style .dialog_banner_style_item_active[data-v-35538fb4]{width:140px;height:90px;padding:5px;background:#fff;border-radius:1px;border:1px solid #d9d9d9;margin-right:10px;cursor:pointer}.dialog_banner .dialog_banner_style .dialog_banner_style_item .style_main[data-v-35538fb4],.dialog_banner .dialog_banner_style .dialog_banner_style_item_active .style_main[data-v-35538fb4]{width:100%;height:100%;background:hsla(0,0%,85.1%,.5);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0 16px}.dialog_banner .dialog_banner_style .dialog_banner_style_item .style_main h3[data-v-35538fb4],.dialog_banner .dialog_banner_style .dialog_banner_style_item_active .style_main h3[data-v-35538fb4]{margin-bottom:7px;font-size:14px;font-family:MicrosoftYaHeiUI-Bold,MicrosoftYaHeiUI;font-weight:700;color:#7a8b9c;line-height:14px}.dialog_banner .dialog_banner_style .dialog_banner_style_item .style_main p[data-v-35538fb4],.dialog_banner .dialog_banner_style .dialog_banner_style_item_active .style_main p[data-v-35538fb4]{font-size:11px;font-family:MicrosoftYaHeiUI;color:#8e9eaf;line-height:11px}.dialog_banner .dialog_banner_style .dialog_banner_style_item_active[data-v-35538fb4]{border:1px solid #1890ff}.dialog_banner .dialog_banner_style .dialog_banner_style_item_active .style_main[data-v-35538fb4]{width:100%;height:100%;background:rgba(24,144,255,.07);border-radius:1px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0 16px}.dialog_banner .dialog_banner_style .dialog_banner_style_item_active .style_main h3[data-v-35538fb4]{margin-bottom:7px;font-size:14px;font-family:MicrosoftYaHeiUI-Bold,MicrosoftYaHeiUI;font-weight:700;color:#7a8b9c;line-height:14px}.dialog_banner .dialog_banner_style .dialog_banner_style_item_active .style_main p[data-v-35538fb4]{font-size:11px;font-family:MicrosoftYaHeiUI;color:#8e9eaf;line-height:11px}.repaire-linkinputstyle[data-v-35538fb4]{max-width:332px;height:32px;margin-left:10px}.repaire-numinputstyle[data-v-35538fb4]{width:70px;height:32px;text-align:right}.picbox-wrap[data-v-aa6f479e]{width:380px;display:inline-block}.picbox-wrap .addicon-box[data-v-aa6f479e]{border:1px dashed #e6e8e9}.picbox-wrap .addicon-box[data-v-aa6f479e],.picbox-wrap .pic-wrap[data-v-aa6f479e]{display:inline-block;width:84px;height:84px;line-height:84px;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;margin-left:10px;vertical-align:top}.picbox-wrap .pic-wrap[data-v-aa6f479e]{margin-bottom:10px;position:relative;cursor:pointer}.picbox-wrap .pic-wrap:hover .close-icon[data-v-aa6f479e],.picbox-wrap .pic-wrap:hover .edit-style[data-v-aa6f479e]{display:-webkit-box;display:-ms-flexbox;display:flex}.picbox-wrap .close-icon[data-v-aa6f479e]{width:14px;height:14px;position:absolute;top:-6px;right:-6px;cursor:pointer;display:none}.picbox-wrap .edit-style[data-v-aa6f479e]{width:100%;height:25px;background:rgba(26,144,255,.7);position:absolute;left:0;bottom:0;font-size:14px;font-family:MicrosoftYaHeiUI;color:#fff;line-height:14px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer;display:none}.picstyle-radios[data-v-aa6f479e]{margin-bottom:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.picstyle-radios .style-radio[data-v-aa6f479e]{font-size:0;width:140px;height:90px;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.picstyle-radios .style-radio .img-left-partone[data-v-aa6f479e]{width:65px;height:80px;background:#1890ff;opacity:.07}.picstyle-radios .style-radio .img-text-styleone[data-v-aa6f479e]{width:65px;height:80px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.picstyle-radios .style-radio span[data-v-aa6f479e]{color:#8e9eaf;font-size:11px}.picstyle-radios .style-radio .img-right-partone[data-v-aa6f479e]{width:65px;height:80px;background:#f0f0f0}.picstyle-radios .style-radio .neat-four-wrap[data-v-aa6f479e]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.picstyle-radios .style-radio .neat-four-wrap .neat-four-img[data-v-aa6f479e]{height:50px}.picstyle-radios .style-radio .neat-four-wrap .neat-four-img .img-top-partone[data-v-aa6f479e]{display:inline-block;width:25px;height:25px;margin:22px 3px 0;background:#f0f0f0}.picstyle-radios .style-radio .neat-four-wrap .neat-four-text span[data-v-aa6f479e]{display:inline-block;width:25px;margin:0 3px}.picstyle-radios .style-radio .img-two-left .img-little-item[data-v-aa6f479e]{width:65px;height:30px;background:#f0f0f0}.picstyle-radios .style-radio .img-two-left .img-little-item[data-v-aa6f479e]:first-child{margin-bottom:10px}.picstyle-radios .style-radio[data-v-aa6f479e]:not(first-child){margin-left:10px}.picstyle-radios .style-radio[data-v-aa6f479e]:nth-child(3){width:140px;height:90px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.picstyle-radios .style-radio[data-v-aa6f479e]:nth-child(4){margin-top:20px}.edititems-style[data-v-aa6f479e]{background:#f7f7f7;font-size:14px;color:#333;margin-bottom:20px}.half-block[data-v-aa6f479e]{display:inline-block;width:50%}.showHtmlText[data-v-aa6f479e]{width:332px;min-height:33px;clear:both;display:inline-block;vertical-align:top;border:1px solid #dcdee2;white-space:normal;word-break:break-all;word-wrap:break-word}[data-v-aa6f479e] .ivu-input,[data-v-aa6f479e] .ivu-radio-group-button .ivu-radio-wrapper:first-child,[data-v-aa6f479e] .ivu-radio-group-button .ivu-radio-wrapper:last-child,[data-v-aa6f479e] .ivu-select-selection{border-radius:0}[data-v-aa6f479e] .ivu-btn-default{width:70px;height:32px;border-radius:2px;border:1px solid #ddd;margin-left:12px;font-size:14px;font-family:PingFangTC-Regular,PingFangTC;font-weight:400;color:#333;line-height:14px}.my_module_item:hover .my_module_item_set[data-v-163a5498]{display:block}.my_module_item[data-v-163a5498]{width:100%;padding:10px;border:1px dashed #999;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;margin-bottom:20px}.my_module_item .my_module_item_title[data-v-163a5498]{position:absolute;top:10px;left:10px;padding:10px 36px;background:#1890ff;opacity:.7;z-index:99;font-size:14px;font-family:MicrosoftYaHei;color:#fff;line-height:16px}.my_module_item .my_module_item_set[data-v-163a5498]{position:absolute;bottom:10px;right:10px;z-index:99;display:none}.my_module_item .my_module_item_set button[data-v-163a5498]{padding:11px 19px;border:none;border-right:1px solid hsla(0,0%,100%,.7);outline:none;background:rgba(0,0,0,.7);cursor:pointer;font-size:14px;font-family:MicrosoftYaHei;color:#fff;line-height:14px}.my_module_item .my_module_item_set button[data-v-163a5498]:hover{background:#1890ff}[data-v-163a5498] .ivu-modal-content{min-width:640px}[data-v-163a5498] .ivu-modal-body{padding:30px 50px;max-height:650px;min-height:450px;overflow:auto}[data-v-163a5498] .vertical-center-modal{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}[data-v-163a5498] .vertical-center-modal /deep/ .ivu-modal{top:0}[data-v-163a5498] .ivu-modal-body::-webkit-scrollbar{width:5px;height:1px}[data-v-163a5498] .ivu-modal-body::-webkit-scrollbar-thumb{border-radius:10px;-webkit-box-shadow:inset 0 0 5px hsla(0,0%,55.3%,.2);box-shadow:inset 0 0 5px hsla(0,0%,55.3%,.2);background:#535353}[data-v-163a5498] .ivu-modal-body::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 5px hsla(0,0%,55.3%,.2);box-shadow:inset 0 0 5px hsla(0,0%,55.3%,.2);border-radius:10px;background:#ededed}.module[data-v-0094ffe1]{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.module .new_module[data-v-0094ffe1]{width:226px;min-width:226px;height:100%;background:#fff;padding:10px;margin-right:20px}.module .new_module h3[data-v-0094ffe1]{font-size:16px;font-family:PingFangSC-Medium,PingFang SC;font-weight:500;color:#333;line-height:16px;margin-bottom:26px;padding:10px}.module .new_module .module_title[data-v-0094ffe1]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;color:#666;line-height:14px;position:relative;padding:10px}.module .new_module .module_title .module_title_line[data-v-0094ffe1]{width:100%;position:absolute;border-top:1px solid #e8e8e8;top:50%;left:0}.module .new_module .module_title p[data-v-0094ffe1]{position:absolute;z-index:2;padding:0 5px;background:#fff}.module .new_module .basics_module[data-v-0094ffe1]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:10px 0 20px 0}.module .new_module .basics_module .basics_module_item[data-v-0094ffe1]:hover{-webkit-box-shadow:0 0 9px 0 hsla(0,0%,83.5%,.5);box-shadow:0 0 9px 0 hsla(0,0%,83.5%,.5);border-radius:5px;color:#1890ff}.module .new_module .basics_module .basics_module_item:hover .basics_module_item_main .svg-icon[data-v-0094ffe1]{fill:#1890ff}.module .new_module .basics_module .basics_module_item[data-v-0094ffe1]{width:33.333%;height:64px;color:#333;cursor:pointer;margin-bottom:12px;overflow:hidden}.module .new_module .basics_module .basics_module_item .basics_module_item_main[data-v-0094ffe1]{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.module .new_module .basics_module .basics_module_item .basics_module_item_main .svg-icon[data-v-0094ffe1]{width:22px;height:22px;margin-bottom:8px;fill:#aaafc2}.module .new_module .basics_module .basics_module_item .basics_module_item_main p[data-v-0094ffe1]{font-size:14px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400}.module .my_module[data-v-0094ffe1]{width:calc(100% - 246px);padding:20px;background:#fff;overflow:auto}.module .my_module .my_module_nav[data-v-0094ffe1]{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.module .my_module .my_module_nav h3[data-v-0094ffe1]{font-size:16px;font-family:PingFangSC-Medium,PingFang SC;font-weight:500;color:#333;line-height:16px;margin-bottom:26px}.module .my_module .my_module_nav button[data-v-0094ffe1]{width:90px;height:32px;background:#1890ff;border-radius:4px;border:none;outline:none;font-size:14px;font-family:PingFangTC-Regular,PingFangTC;font-weight:400;color:#fff;line-height:20px;margin-left:10px;cursor:pointer}.module .my_module .my_module_nav button[data-v-0094ffe1]:hover{background:#3faaff}.module .my_module .my_module_tip[data-v-0094ffe1]{width:100%;height:calc(100% - 180px);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.module .my_module .my_module_tip .svg-icon[data-v-0094ffe1]{width:36px;height:24px;fill:#aaafc2;margin-right:14px}.module .my_module .my_module_tip p[data-v-0094ffe1]{font-size:14px;font-family:MicrosoftYaHei;color:#2b2b2b;line-height:14px}.module .test-1[data-v-0094ffe1]::-webkit-scrollbar{width:10px;height:1px}.module .test-1[data-v-0094ffe1]::-webkit-scrollbar-thumb{border-radius:10px;-webkit-box-shadow:inset 0 0 5px rgba(0,0,0,.2);box-shadow:inset 0 0 5px rgba(0,0,0,.2);background:#535353}.module .test-1[data-v-0094ffe1]::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 5px rgba(0,0,0,.2);box-shadow:inset 0 0 5px rgba(0,0,0,.2);border-radius:10px;background:#ededed}
\ No newline at end of file
.message-page-con{height:calc(100vh - 176px);display:inline-block;vertical-align:top;position:relative}.message-page-con.message-category-con{border-right:1px solid #e6e6e6;width:200px}.message-page-con.message-list-con{border-right:1px solid #e6e6e6;width:230px}.message-page-con.message-view-con{position:absolute;left:446px;top:16px;right:16px;bottom:16px;overflow:auto;padding:12px 20px 0}.message-page-con.message-view-con .message-view-header{margin-bottom:20px}.message-page-con.message-view-con .message-view-header .message-view-title{display:inline-block}.message-page-con.message-view-con .message-view-header .message-view-time{margin-left:20px}.message-page-con .category-title{display:inline-block;width:65px}.message-page-con .gray-dadge{background:#dcdcdc}.message-page-con .not-unread-list .msg-title{color:#aaa9a9}.message-page-con .not-unread-list .ivu-menu-item .ivu-btn.ivu-btn-text.ivu-btn-small.ivu-btn-icon-only{display:none}.message-page-con .not-unread-list .ivu-menu-item:hover .ivu-btn.ivu-btn-text.ivu-btn-small.ivu-btn-icon-only{display:inline-block}
\ No newline at end of file
.org-tree-container{display:inline-block;padding:15px;background-color:#fff}.org-tree{display:table;text-align:center}.org-tree:after,.org-tree:before{content:"";display:table;pointer-events:none}.org-tree:after{clear:both;pointer-events:none}.org-tree-node,.org-tree-node-children{position:relative;margin:0 auto;padding:0;list-style-type:none}.org-tree-node-children:after,.org-tree-node-children:before,.org-tree-node:after,.org-tree-node:before{-webkit-transition:all .35s;transition:all .35s;pointer-events:none}.org-tree-node-label{position:relative;display:inline-block}.org-tree-node-label .org-tree-node-label-inner{padding:10px 15px;text-align:center;border-radius:3px;-webkit-box-shadow:0 1px 5px rgba(0,0,0,.15);box-shadow:0 1px 5px rgba(0,0,0,.15)}.org-tree-button-wrapper{position:absolute;top:100%;left:50%;width:0;height:0;z-index:10;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.org-tree-button-wrapper>*{position:absolute;top:50%;left:50%}.org-tree-button-wrapper .org-tree-node-btn{position:relative;display:inline-block;width:20px;height:20px;background-color:#fff;border:1px solid #ccc;border-radius:50%;-webkit-box-shadow:0 0 2px rgba(0,0,0,.15);box-shadow:0 0 2px rgba(0,0,0,.15);cursor:pointer;-webkit-transition:all .35s ease;transition:all .35s ease;-webkit-transform:translate(-50%,9px);transform:translate(-50%,9px)}.org-tree-button-wrapper .org-tree-node-btn:hover{background-color:#e7e8e9;-webkit-transform:translate(-50%,9px) scale(1.15);transform:translate(-50%,9px) scale(1.15)}.org-tree-button-wrapper .org-tree-node-btn:after,.org-tree-button-wrapper .org-tree-node-btn:before{content:"";position:absolute;pointer-events:none}.org-tree-button-wrapper .org-tree-node-btn:before{top:50%;left:4px;right:4px;height:0;border-top:1px solid #ccc}.org-tree-button-wrapper .org-tree-node-btn:after{top:4px;left:50%;bottom:4px;width:0;border-left:1px solid #ccc;pointer-events:none}.org-tree-button-wrapper .org-tree-node-btn.expanded:after{border:none;pointer-events:none}.org-tree-node{padding-top:20px;display:table-cell;vertical-align:top}.org-tree-node.collapsed,.org-tree-node.is-leaf{padding-left:10px;padding-right:10px}.org-tree-node:after,.org-tree-node:before{pointer-events:none;content:"";position:absolute;top:0;left:0;width:50%;height:19px}.org-tree-node:after{left:50%;border-left:1px solid #ddd;pointer-events:none}.org-tree-node:not(:first-child):before,.org-tree-node:not(:last-child):after{border-top:1px solid #ddd;pointer-events:none}.collapsable .org-tree-node.collapsed{padding-bottom:30px}.collapsable .org-tree-node.collapsed .org-tree-node-label:after{content:"";position:absolute;top:100%;left:0;width:50%;height:20px;border-right:1px solid #ddd;pointer-events:none}.org-tree>.org-tree-node{padding-top:0}.org-tree>.org-tree-node:after{border-left:0;pointer-events:none}.org-tree-node-children{padding-top:20px;display:table}.org-tree-node-children:before{content:"";position:absolute;top:0;left:50%;width:0;height:20px;border-left:1px solid #ddd}.org-tree-node-children:after{content:"";display:table;clear:both;pointer-events:none}.horizontal .org-tree-node{display:table-cell;float:none;padding-top:0;padding-left:20px}.horizontal .org-tree-node.collapsed,.horizontal .org-tree-node.is-leaf{padding-top:10px;padding-bottom:10px}.horizontal .org-tree-node:after,.horizontal .org-tree-node:before{width:19px;height:50%;pointer-events:none}.horizontal .org-tree-node:after{top:50%;left:0;border-left:0;pointer-events:none}.horizontal .org-tree-node:only-child:before{top:1px;border-bottom:1px solid #ddd}.horizontal .org-tree-node:not(:first-child):before,.horizontal .org-tree-node:not(:last-child):after{border-top:0;border-left:1px solid #ddd;pointer-events:none}.horizontal .org-tree-node:not(:only-child):after{border-top:1px solid #ddd;pointer-events:none}.horizontal .org-tree-node .org-tree-node-inner{display:table}.horizontal .org-tree-node-label{display:table-cell;vertical-align:middle}.horizontal.collapsable .org-tree-node.collapsed{padding-right:30px}.horizontal.collapsable .org-tree-node.collapsed .org-tree-node-label:after{top:0;left:100%;width:20px;height:50%;border-right:0;border-bottom:.625em solid #ddd;pointer-events:none}.horizontal .org-tree-button-wrapper{position:absolute;top:50%;left:100%;width:0;height:0;z-index:10;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.horizontal .org-tree-button-wrapper>*{position:absolute;top:50%;left:50%}.horizontal .org-tree-button-wrapper .org-tree-node-btn{display:inline-block;-webkit-transform:translate(9PX,-50%);transform:translate(9PX,-50%)}.horizontal>.org-tree-node:only-child:before{border-bottom:0}.horizontal .org-tree-node-children{display:table-cell;padding-top:0;padding-left:20px}.horizontal .org-tree-node-children:before{top:50%;left:0;width:20px;height:0;border-left:0;border-top:1px solid #ddd}.horizontal .org-tree-node-children:after{display:none}.horizontal .org-tree-node-children>.org-tree-node{display:block}@font-face{font-family:swiper-icons;src:url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA") format("woff");font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-container-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-container-multirow>.swiper-wrapper{flex-wrap:wrap}.swiper-container-multirow-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-container-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-container-3d{perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:linear-gradient(270deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-right{background-image:linear-gradient(90deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-top{background-image:linear-gradient(0deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(180deg,rgba(0,0,0,.5),transparent)}.swiper-container-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-container-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-container-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-container-horizontal.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-container-vertical.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/44*27);height:var(--swiper-navigation-size);margin-top:calc(-1*var(--swiper-navigation-size)/2);z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;text-transform:none;font-variant:normal;line-height:1}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-container-rtl .swiper-button-next:after{content:"prev"}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-container-rtl .swiper-button-prev:after{content:"next"}.swiper-button-next.swiper-button-white,.swiper-button-prev.swiper-button-white{--swiper-navigation-color:#fff}.swiper-button-next.swiper-button-black,.swiper-button-prev.swiper-button-black{--swiper-navigation-color:#000}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:opacity .3s;transform:translateZ(0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-container-horizontal>.swiper-pagination-bullets,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet-active{opacity:1;background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0,-50%,0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:6px 0;display:block}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:transform .2s,top .2s}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 4px}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,left .2s}.swiper-container-horizontal.swiper-container-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,right .2s}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progressbar,.swiper-container-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-container-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-container-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-white{--swiper-pagination-color:#fff}.swiper-pagination-black{--swiper-pagination-color:#000}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;animation:swiper-preloader-spin 1s linear infinite;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{to{transform:rotate(1turn)}}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-container-fade.swiper-container-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube{overflow:visible}.swiper-container-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-container-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube.swiper-container-rtl .swiper-slide{transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;background:#000;opacity:.6;-webkit-filter:blur(50px);filter:blur(50px);z-index:0}.swiper-container-flip{overflow:visible}.swiper-container-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}
/*!
* Quill Editor v1.3.7
* https://quilljs.com/
* Copyright (c) 2014, Jason Chen
* Copyright (c) 2013, salesforce.com
*/
/*!
* Quill Editor v1.3.7
* https://quilljs.com/
* Copyright (c) 2014, Jason Chen
* Copyright (c) 2013, salesforce.com
*/.ql-snow.ql-toolbar:after,.ql-snow .ql-toolbar:after{clear:both;content:"";display:table}.ql-snow.ql-toolbar button,.ql-snow .ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow.ql-toolbar button svg,.ql-snow .ql-toolbar button svg{float:left;height:100%}.ql-snow.ql-toolbar button:active:hover,.ql-snow .ql-toolbar button:active:hover{outline:none}.ql-snow.ql-toolbar input.ql-image[type=file],.ql-snow .ql-toolbar input.ql-image[type=file]{display:none}.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item.ql-selected,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar button.ql-active,.ql-snow .ql-toolbar button.ql-active,.ql-snow.ql-toolbar button:focus,.ql-snow .ql-toolbar button:focus,.ql-snow.ql-toolbar button:hover,.ql-snow .ql-toolbar button:hover{color:#06c}.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill{fill:#06c}.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke-miter{stroke:#06c}@media (pointer:coarse){.ql-snow.ql-toolbar button:hover:not(.ql-active),.ql-snow .ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{-webkit-box-sizing:border-box;box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;-webkit-transform:translateY(10px);transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:"";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-stroke.ql-thin,.ql-snow .ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{white-space:pre-wrap;margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label:before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-item:before,.ql-snow .ql-picker.ql-header .ql-picker-label:before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before{content:"Heading 1"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before{content:"Heading 2"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before{content:"Heading 3"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before{content:"Heading 4"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before{content:"Heading 5"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before{content:"Heading 6"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-item:before,.ql-snow .ql-picker.ql-font .ql-picker-label:before{content:"Sans Serif"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before{content:"Serif"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before{content:"Monospace"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-item:before,.ql-snow .ql-picker.ql-size .ql-picker-label:before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before{content:"Small"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before{content:"Large"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before{content:"Huge"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{border:1px solid #ccc;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid transparent}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid transparent;-webkit-box-shadow:rgba(0,0,0,.2) 0 2px 8px;box-shadow:0 2px 8px rgba(0,0,0,.2)}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:0 0 5px #ddd;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip:before{content:"Visit URL:";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{display:none;border:1px solid #ccc;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action:after{border-right:1px solid #ccc;content:"Edit";margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:"Remove";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-right:0;content:"Save";padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:"Enter link:"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:"Enter formula:"}.ql-snow .ql-tooltip[data-mode=video]:before{content:"Enter video:"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}
/*!
* Quill Editor v1.3.7
* https://quilljs.com/
* Copyright (c) 2014, Jason Chen
* Copyright (c) 2013, salesforce.com
*/.ql-container{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{-webkit-box-sizing:border-box;box-sizing:border-box;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;-o-tab-size:4;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6,.ql-editor ol,.ql-editor p,.ql-editor pre,.ql-editor ul{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:"\2022"}.ql-editor ul[data-checked=false],.ql-editor ul[data-checked=true]{pointer-events:none}.ql-editor ul[data-checked=false]>li *,.ql-editor ul[data-checked=true]>li *{pointer-events:all}.ql-editor ul[data-checked=false]>li:before,.ql-editor ul[data-checked=true]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:"\2611"}.ql-editor ul[data-checked=false]>li:before{content:"\2610"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) ". "}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) ". "}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) ". "}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) ". "}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) ". "}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) ". "}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:rgba(0,0,0,.6);content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-bubble.ql-toolbar:after,.ql-bubble .ql-toolbar:after{clear:both;content:"";display:table}.ql-bubble.ql-toolbar button,.ql-bubble .ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-bubble.ql-toolbar button svg,.ql-bubble .ql-toolbar button svg{float:left;height:100%}.ql-bubble.ql-toolbar button:active:hover,.ql-bubble .ql-toolbar button:active:hover{outline:none}.ql-bubble.ql-toolbar input.ql-image[type=file],.ql-bubble .ql-toolbar input.ql-image[type=file]{display:none}.ql-bubble.ql-toolbar .ql-picker-item.ql-selected,.ql-bubble .ql-toolbar .ql-picker-item.ql-selected,.ql-bubble.ql-toolbar .ql-picker-item:hover,.ql-bubble .ql-toolbar .ql-picker-item:hover,.ql-bubble.ql-toolbar .ql-picker-label.ql-active,.ql-bubble .ql-toolbar .ql-picker-label.ql-active,.ql-bubble.ql-toolbar .ql-picker-label:hover,.ql-bubble .ql-toolbar .ql-picker-label:hover,.ql-bubble.ql-toolbar button.ql-active,.ql-bubble .ql-toolbar button.ql-active,.ql-bubble.ql-toolbar button:focus,.ql-bubble .ql-toolbar button:focus,.ql-bubble.ql-toolbar button:hover,.ql-bubble .ql-toolbar button:hover{color:#fff}.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-bubble.ql-toolbar button.ql-active .ql-fill,.ql-bubble .ql-toolbar button.ql-active .ql-fill,.ql-bubble.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-bubble .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-bubble.ql-toolbar button:focus .ql-fill,.ql-bubble .ql-toolbar button:focus .ql-fill,.ql-bubble.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-bubble .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-bubble.ql-toolbar button:hover .ql-fill,.ql-bubble .ql-toolbar button:hover .ql-fill,.ql-bubble.ql-toolbar button:hover .ql-stroke.ql-fill,.ql-bubble .ql-toolbar button:hover .ql-stroke.ql-fill{fill:#fff}.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-bubble.ql-toolbar button.ql-active .ql-stroke,.ql-bubble .ql-toolbar button.ql-active .ql-stroke,.ql-bubble.ql-toolbar button.ql-active .ql-stroke-miter,.ql-bubble .ql-toolbar button.ql-active .ql-stroke-miter,.ql-bubble.ql-toolbar button:focus .ql-stroke,.ql-bubble .ql-toolbar button:focus .ql-stroke,.ql-bubble.ql-toolbar button:focus .ql-stroke-miter,.ql-bubble .ql-toolbar button:focus .ql-stroke-miter,.ql-bubble.ql-toolbar button:hover .ql-stroke,.ql-bubble .ql-toolbar button:hover .ql-stroke,.ql-bubble.ql-toolbar button:hover .ql-stroke-miter,.ql-bubble .ql-toolbar button:hover .ql-stroke-miter{stroke:#fff}@media (pointer:coarse){.ql-bubble.ql-toolbar button:hover:not(.ql-active),.ql-bubble .ql-toolbar button:hover:not(.ql-active){color:#ccc}.ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#ccc}.ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#ccc}}.ql-bubble,.ql-bubble *{-webkit-box-sizing:border-box;box-sizing:border-box}.ql-bubble .ql-hidden{display:none}.ql-bubble .ql-out-bottom,.ql-bubble .ql-out-top{visibility:hidden}.ql-bubble .ql-tooltip{position:absolute;-webkit-transform:translateY(10px);transform:translateY(10px)}.ql-bubble .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-bubble .ql-tooltip.ql-flip{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.ql-bubble .ql-formats{display:inline-block;vertical-align:middle}.ql-bubble .ql-formats:after{clear:both;content:"";display:table}.ql-bubble .ql-stroke{fill:none;stroke:#ccc;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-bubble .ql-stroke-miter{fill:none;stroke:#ccc;stroke-miterlimit:10;stroke-width:2}.ql-bubble .ql-fill,.ql-bubble .ql-stroke.ql-fill{fill:#ccc}.ql-bubble .ql-empty{fill:none}.ql-bubble .ql-even{fill-rule:evenodd}.ql-bubble .ql-stroke.ql-thin,.ql-bubble .ql-thin{stroke-width:1}.ql-bubble .ql-transparent{opacity:.4}.ql-bubble .ql-direction svg:last-child{display:none}.ql-bubble .ql-direction.ql-active svg:last-child{display:inline}.ql-bubble .ql-direction.ql-active svg:first-child{display:none}.ql-bubble .ql-editor h1{font-size:2em}.ql-bubble .ql-editor h2{font-size:1.5em}.ql-bubble .ql-editor h3{font-size:1.17em}.ql-bubble .ql-editor h4{font-size:1em}.ql-bubble .ql-editor h5{font-size:.83em}.ql-bubble .ql-editor h6{font-size:.67em}.ql-bubble .ql-editor a{text-decoration:underline}.ql-bubble .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-bubble .ql-editor code,.ql-bubble .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-bubble .ql-editor pre{white-space:pre-wrap;margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-bubble .ql-editor code{font-size:85%;padding:2px 4px}.ql-bubble .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-bubble .ql-editor img{max-width:100%}.ql-bubble .ql-picker{color:#ccc;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-bubble .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-bubble .ql-picker-label:before{display:inline-block;line-height:22px}.ql-bubble .ql-picker-options{background-color:#444;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-bubble .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-bubble .ql-picker.ql-expanded .ql-picker-label{color:#777;z-index:2}.ql-bubble .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#777}.ql-bubble .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#777}.ql-bubble .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-bubble .ql-color-picker,.ql-bubble .ql-icon-picker{width:28px}.ql-bubble .ql-color-picker .ql-picker-label,.ql-bubble .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-bubble .ql-color-picker .ql-picker-label svg,.ql-bubble .ql-icon-picker .ql-picker-label svg{right:4px}.ql-bubble .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-bubble .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-bubble .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-bubble .ql-color-picker .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-bubble .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;right:0;top:50%;width:18px}.ql-bubble .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-bubble .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-bubble .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-bubble .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-bubble .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before,.ql-bubble .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before{content:attr(data-label)}.ql-bubble .ql-picker.ql-header{width:98px}.ql-bubble .ql-picker.ql-header .ql-picker-item:before,.ql-bubble .ql-picker.ql-header .ql-picker-label:before{content:"Normal"}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="1"]:before,.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="1"]:before{content:"Heading 1"}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="2"]:before,.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="2"]:before{content:"Heading 2"}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="3"]:before,.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="3"]:before{content:"Heading 3"}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="4"]:before,.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="4"]:before{content:"Heading 4"}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="5"]:before,.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="5"]:before{content:"Heading 5"}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="6"]:before,.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="6"]:before{content:"Heading 6"}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{font-size:2em}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{font-size:1.5em}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{font-size:1.17em}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{font-size:1em}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{font-size:.83em}.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{font-size:.67em}.ql-bubble .ql-picker.ql-font{width:108px}.ql-bubble .ql-picker.ql-font .ql-picker-item:before,.ql-bubble .ql-picker.ql-font .ql-picker-label:before{content:"Sans Serif"}.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=serif]:before,.ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=serif]:before{content:"Serif"}.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before,.ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before{content:"Monospace"}.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-bubble .ql-picker.ql-size{width:98px}.ql-bubble .ql-picker.ql-size .ql-picker-item:before,.ql-bubble .ql-picker.ql-size .ql-picker-label:before{content:"Normal"}.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=small]:before,.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=small]:before{content:"Small"}.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=large]:before,.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=large]:before{content:"Large"}.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=huge]:before,.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=huge]:before{content:"Huge"}.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-bubble .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-bubble .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-bubble .ql-toolbar .ql-formats{margin:8px 12px 8px 0}.ql-bubble .ql-toolbar .ql-formats:first-child{margin-left:12px}.ql-bubble .ql-color-picker svg{margin:1px}.ql-bubble .ql-color-picker .ql-picker-item.ql-selected,.ql-bubble .ql-color-picker .ql-picker-item:hover{border-color:#fff}.ql-bubble .ql-tooltip{background-color:#444;border-radius:25px;color:#fff}.ql-bubble .ql-tooltip-arrow{border-left:6px solid transparent;border-right:6px solid transparent;content:" ";display:block;left:50%;margin-left:-6px;position:absolute}.ql-bubble .ql-tooltip:not(.ql-flip) .ql-tooltip-arrow{border-bottom:6px solid #444;top:-6px}.ql-bubble .ql-tooltip.ql-flip .ql-tooltip-arrow{border-top:6px solid #444;bottom:-6px}.ql-bubble .ql-tooltip.ql-editing .ql-tooltip-editor{display:block}.ql-bubble .ql-tooltip.ql-editing .ql-formats{visibility:hidden}.ql-bubble .ql-tooltip-editor{display:none}.ql-bubble .ql-tooltip-editor input[type=text]{background:transparent;border:none;color:#fff;font-size:13px;height:100%;outline:none;padding:10px 20px;position:absolute;width:100%}.ql-bubble .ql-tooltip-editor a{top:10px;position:absolute;right:20px}.ql-bubble .ql-tooltip-editor a:before{color:#ccc;content:"\D7";font-size:16px;font-weight:700}.ql-container.ql-bubble:not(.ql-disabled) a{position:relative;white-space:nowrap}.ql-container.ql-bubble:not(.ql-disabled) a:before{background-color:#444;border-radius:15px;top:-5px;font-size:12px;color:#fff;content:attr(href);font-weight:400;overflow:hidden;padding:5px 15px;text-decoration:none;z-index:1}.ql-container.ql-bubble:not(.ql-disabled) a:after{border-top:6px solid #444;border-left:6px solid transparent;border-right:6px solid transparent;top:0;content:" ";height:0;width:0}.ql-container.ql-bubble:not(.ql-disabled) a:after,.ql-container.ql-bubble:not(.ql-disabled) a:before{left:0;margin-left:50%;position:absolute;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%);-webkit-transition:visibility 0s ease .2s;transition:visibility 0s ease .2s;visibility:hidden}.ql-container.ql-bubble:not(.ql-disabled) a:hover:after,.ql-container.ql-bubble:not(.ql-disabled) a:hover:before{visibility:visible}
\ No newline at end of file
<svg id="11567813-e781-4e7f-9d62-924af5cdcf5c" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="883.34" height="785.3" viewBox="0 0 883.34 785.3"><defs><linearGradient id="de64225e-aed0-4729-9589-fefa50377364" x1="586.34" y1="777.6" x2="586.34" y2="296.43" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="gray" stop-opacity="0.25"/><stop offset="0.54" stop-color="gray" stop-opacity="0.12"/><stop offset="1" stop-color="gray" stop-opacity="0.1"/></linearGradient><linearGradient id="c2d29fed-0e3c-4665-9fc2-6bc8bc700b9c" x1="665.58" y1="818.95" x2="665.58" y2="130.43" gradientTransform="matrix(-1, 0, 0, 1, 1038, 0)" xlink:href="#de64225e-aed0-4729-9589-fefa50377364"/><linearGradient id="c8cc5a91-18e5-403f-9b97-91f48ba2f890" x1="832.33" y1="380.69" x2="1046.36" y2="380.69" gradientTransform="matrix(-1, 0, 0, 1, 1874, 0)" xlink:href="#de64225e-aed0-4729-9589-fefa50377364"/></defs><title>tasting</title><ellipse cx="428.11" cy="662.98" rx="428.11" ry="122.32" fill="#f5f5f5"/><path d="M818.56,450.17s-53,37.48-39,109-74.44,171.26-74.44,171.26.76,0,2.18,0c95.73-.47,160.12-98.82,122-186.63C815.15,511.16,805.28,474,818.56,450.17Z" transform="translate(-158.33 -57.35)" fill="#348eed"/><path d="M818.56,450.17s-35,51.08-17.27,100.7-25.15,173-96.14,179.56" transform="translate(-158.33 -57.35)" fill="none" stroke="#535461" stroke-miterlimit="10"/><path d="M867.76,647s-50.21-17.07-62.85,28.39S696.6,711,696.6,711s.54.53,1.57,1.48c69.29,64.64,147.12,58.84,147.54-11.15C845.87,675.32,850.57,650,867.76,647Z" transform="translate(-158.33 -57.35)" fill="#348eed"/><path d="M867.76,647s-50.21-17.07-62.85,28.39S696.6,711,696.6,711s.54.53,1.57,1.48c69.29,64.64,147.12,58.84,147.54-11.15C845.87,675.32,850.57,650,867.76,647Z" transform="translate(-158.33 -57.35)" fill="#f5f5f5" opacity="0.2"/><path d="M867.76,647s-41.58,1.93-44.54,38.92S750,755.8,696.6,711" transform="translate(-158.33 -57.35)" fill="none" stroke="#535461" stroke-miterlimit="10"/><path d="M779.61,543.22c3-15,2.31-36.85-22.23-47.49,13.12-21.09,6.95-36-4.91-41.29-.08-5.5-1.52-16.66-11.18-22.65,1.28-10.38,3.36-51.64-43.26-56.26-5.47-9.44-22.59-35-50.48-42.08v-37c-6.72,14.11-49,22.17-49,22.17-48.46,6.77-59.33,34.15-61.78,46.11-6.24.19-11.73,1-14.82,2.94-10.16,6.35-82.68,25.3-77,75.54-1,.34-1.94.68-2.91,1,0,0-39.67,31.65-29,56.82l-4,.29s-23,14.22-15.93,42.24a8.45,8.45,0,0,0-2,7.69l54.69,182.29A5.86,5.86,0,0,0,448,736.7c2.47,1.72,7.6,5.15,15.08,9.31l.06.29.33-.07a245.79,245.79,0,0,0,26.32,12.55l0,.21.33-.06c6.34,2.57,13.29,5.09,20.8,7.41l0,.16.33,0c6.95,2.13,14.37,4.09,22.22,5.75v.1l.33,0c7.37,1.55,15.13,2.83,23.23,3.75v0h.31a246.37,246.37,0,0,0,30,1.52v0h.67v0a246.48,246.48,0,0,0,28.06-2h.33v-.06q11.29-1.46,23.09-4.09l-.08.78.67.07.1-1q11.77-2.68,24-6.69l.33,0,0-.16q10.16-3.37,20.59-7.74l.33.06,0-.22q12.09-5.11,24.5-11.71l.33.07.06-.28q7-3.75,14.11-8a5.88,5.88,0,0,0,2.6-3.36l54.51-182.43a8.46,8.46,0,0,0-2-7.67Z" transform="translate(-158.33 -57.35)" fill="url(#de64225e-aed0-4729-9589-fefa50377364)"/><path d="M695.81,384.81s-24.6-50.5-71.22-45.32,3.24,53.09,3.24,53.09S684.81,397.11,695.81,384.81Z" transform="translate(-158.33 -57.35)" fill="#348eed"/><path d="M695.81,384.81s-24.6-50.5-71.22-45.32,3.24,53.09,3.24,53.09S684.81,397.11,695.81,384.81Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M537.84,376.39s0-.66.12-1.82c.83-8.09,7.46-40.67,60.09-48,0,0,40.79-7.77,47.26-21.37v41.44s-8.42,29.14-50.5,38.85S537.84,376.39,537.84,376.39Z" transform="translate(-158.33 -57.35)" fill="#348eed"/><path d="M415.47,502.64S385,521.42,406.4,558.32s361.28,0,361.28,0,22-45.32-17.48-61.51S415.47,502.64,415.47,502.64Z" transform="translate(-158.33 -57.35)" fill="#784f69"/><path d="M746.75,458.74c-.08-5.3-1.47-16-10.78-21.82,1.23-10,3.25-49.77-41.69-54.22-5.28-9.1-21.76-33.78-48.65-40.55V306.46c-6.47,13.6-47.26,21.37-47.26,21.37-46.7,6.53-57.18,32.91-59.53,44.43-6,.18-11.3,1-14.28,2.83-9.79,6.12-79.68,24.38-74.25,72.8-.94.32-1.87.66-2.8,1,0,0-55.1,44-15.15,68.31h0s18.39,35.29,72.13,8.09l.17-.11c20.24,5.81,74.47,18,106.66-6.37l2.31-1.75c12.8,7.63,43.13,21.58,68.91,1.75l.22-.17c10,9.41,30.35,21.39,54.81-3.07C766.86,486.31,761.17,465.2,746.75,458.74Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M675.74,509.76s26.55,39.49,61.51,4.53,20.07-58.27,0-58.92S675.74,509.76,675.74,509.76Z" transform="translate(-158.33 -57.35)" fill="#348eed"/><path d="M675.74,509.76s26.55,39.49,61.51,4.53,20.07-58.27,0-58.92S675.74,509.76,675.74,509.76Z" transform="translate(-158.33 -57.35)" opacity="0.15"/><path d="M746.32,460.56s6.47-55-77-12.95-62.16,64.1-62.16,64.1,41.44,31.73,75.1,5.83S736.6,483.87,746.32,460.56Z" transform="translate(-158.33 -57.35)" fill="#348eed"/><path d="M746.32,460.56s6.47-55-77-12.95-62.16,64.1-62.16,64.1,41.44,31.73,75.1,5.83S736.6,483.87,746.32,460.56Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M682.22,443.72s-31.73-22-80.28,0S496.4,521.42,496.4,521.42,570.86,548,611,517.53,680.28,464.44,682.22,443.72Z" transform="translate(-158.33 -57.35)" fill="#348eed"/><path d="M682.22,443.72s-31.73-22-80.28,0S496.4,521.42,496.4,521.42,570.86,548,611,517.53,680.28,464.44,682.22,443.72Z" transform="translate(-158.33 -57.35)" opacity="0.07"/><path d="M616.83,440.49s-64.75-9.06-94.53,9.06S432,515.92,432,515.92s18.39,35.29,72.13,8.09C504.17,524,615.53,454.73,616.83,440.49Z" transform="translate(-158.33 -57.35)" fill="#348eed"/><path d="M616.83,440.49s-64.75-9.06-94.53,9.06S432,515.92,432,515.92s18.39,35.29,72.13,8.09C504.17,524,615.53,454.73,616.83,440.49Z" transform="translate(-158.33 -57.35)" opacity="0.03"/><path d="M447.19,447.61s-57.62,46-12.3,69.93c0,0,95.82-62.8,97.77-69.93C532.66,447.61,488,432.07,447.19,447.61Z" transform="translate(-158.33 -57.35)" fill="#348eed"/><path d="M572.8,373.8s-38.2-6.47-48.56,0-88.05,26.55-72.52,81.58L475,447S519.71,390.63,572.8,373.8Z" transform="translate(-158.33 -57.35)" fill="#348eed"/><path d="M572.8,373.8s-38.2-6.47-48.56,0-88.05,26.55-72.52,81.58L475,447S519.71,390.63,572.8,373.8Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M636.25,382.22s-27.19-25.25-87.41-1.94-80.28,65.39-80.28,65.39l90.32,6.8S609.7,379.63,636.25,382.22Z" transform="translate(-158.33 -57.35)" fill="#348eed"/><path d="M636.25,382.22s-27.19-25.25-87.41-1.94-80.28,65.39-80.28,65.39l90.32,6.8S609.7,379.63,636.25,382.22Z" transform="translate(-158.33 -57.35)" opacity="0.07"/><path d="M678.33,385.45s-43.38-14.24-77,5.18-46,57.62-46,57.62l53.74-2.59S651.14,379.63,678.33,385.45Z" transform="translate(-158.33 -57.35)" fill="#348eed"/><path d="M678.33,385.45s-43.38-14.24-77,5.18-46,57.62-46,57.62l53.74-2.59S651.14,379.63,678.33,385.45Z" transform="translate(-158.33 -57.35)" opacity="0.03"/><path d="M735.31,437.9s14.89-75.75-83.52-52.44c0,0-55.93,49.21-40.26,62.8S735.31,437.9,735.31,437.9Z" transform="translate(-158.33 -57.35)" fill="#348eed"/><path d="M398.14,549.47l52.7,175.67a5.65,5.65,0,0,0,2.17,3c14.71,10.29,127.89,83.3,266.49,0a5.67,5.67,0,0,0,2.5-3.24l52.53-175.8a5.67,5.67,0,0,0-6.81-7.12l-22.82,5.7a5.67,5.67,0,0,1-2.4.08l-21.45-4a5.67,5.67,0,0,0-3.7.57l-25.46,13.58a5.67,5.67,0,0,1-4,.5L660.5,551.6a5.67,5.67,0,0,0-3.14.11l-31.81,10.41a5.67,5.67,0,0,1-4.35-.34L600.13,551a5.67,5.67,0,0,0-4.31-.36l-27.17,8.67a5.67,5.67,0,0,1-2.12.25l-26.16-1.83a5.67,5.67,0,0,1-1.16-.2l-20.76-5.93a5.67,5.67,0,0,0-2.69-.1L487,557.34a5.67,5.67,0,0,1-3.22-.28l-28-11.09a5.67,5.67,0,0,0-3.09-.31l-22.29,4a5.67,5.67,0,0,1-2.7-.17l-22.46-7.06A5.67,5.67,0,0,0,398.14,549.47Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M398.14,550.76l52.7,175.67a5.65,5.65,0,0,0,2.17,3c14.71,10.29,127.89,83.3,266.49,0a5.67,5.67,0,0,0,2.5-3.24l52.53-175.8a5.67,5.67,0,0,0-6.81-7.12L744.92,549a5.67,5.67,0,0,1-2.4.08l-21.45-4a5.67,5.67,0,0,0-3.7.57l-25.46,13.58a5.67,5.67,0,0,1-4,.5l-27.38-6.84a5.67,5.67,0,0,0-3.14.11l-31.81,10.41a5.67,5.67,0,0,1-4.35-.34l-21.07-10.8a5.67,5.67,0,0,0-4.31-.36l-27.17,8.67a5.67,5.67,0,0,1-2.12.25L540.37,559a5.67,5.67,0,0,1-1.16-.2l-20.76-5.93a5.67,5.67,0,0,0-2.69-.1L487,558.63a5.67,5.67,0,0,1-3.22-.28l-28-11.09a5.67,5.67,0,0,0-3.09-.31l-22.29,4a5.67,5.67,0,0,1-2.7-.17l-22.46-7.06A5.67,5.67,0,0,0,398.14,550.76Z" transform="translate(-158.33 -57.35)" fill="#4d4981"/><polygon points="297.62 430.78 292.11 428.86 289.02 423.91 302.76 406.71 308.27 408.63 311.36 413.58 297.62 430.78" fill="#fff" opacity="0.5"/><polygon points="558.55 459.92 553.03 458 549.95 453.05 563.68 435.85 569.19 437.76 572.28 442.71 558.55 459.92" fill="#fff" opacity="0.5"/><polygon points="443.95 366.03 438.44 364.12 435.35 359.17 449.08 341.96 454.6 343.88 457.68 348.83 443.95 366.03" fill="#fff" opacity="0.5"/><polygon points="474.88 429.29 469.55 431.65 463.91 430.15 462.18 408.2 467.51 405.84 473.15 407.34 474.88 429.29" fill="#fff" opacity="0.5"/><polygon points="385.08 375.41 381.4 379.94 375.69 381.15 364.21 362.37 367.9 357.84 373.61 356.63 385.08 375.41" fill="#fff" opacity="0.5"/><polygon points="378.61 428.5 374.92 433.03 369.22 434.24 357.74 415.46 361.42 410.93 367.13 409.72 378.61 428.5" fill="#fff" opacity="0.5"/><polygon points="536.96 433.67 532.73 437.69 526.91 438.16 517.93 418.06 522.17 414.04 527.98 413.57 536.96 433.67" fill="#fff" opacity="0.5"/><polygon points="508.11 364.79 509.54 359.13 514.2 355.63 532.54 367.81 531.11 373.47 526.45 376.98 508.11 364.79" fill="#fff" opacity="0.5"/><polygon points="313.16 373.16 307.65 371.24 304.56 366.29 318.3 349.09 323.81 351 326.9 355.95 313.16 373.16" fill="#fd6f8d" opacity="0.5"/><polygon points="382.54 340.82 381.19 335.15 383.71 329.88 405.6 332.21 406.95 337.89 404.43 343.16 382.54 340.82" fill="#fd6f8d" opacity="0.5"/><polygon points="488.62 308.54 489.71 302.81 494.16 299.03 513.18 310.11 512.09 315.84 507.64 319.62 488.62 308.54" fill="#fd6f8d" opacity="0.5"/><polygon points="446.21 279.63 451.9 278.33 457.14 280.9 454.59 302.77 448.9 304.06 443.66 301.49 446.21 279.63" fill="#fd6f8d" opacity="0.5"/><polygon points="407.15 452.19 405.8 446.51 408.31 441.24 430.2 443.57 431.55 449.25 429.04 454.52 407.15 452.19" fill="#fd6f8d" opacity="0.5"/><polygon points="326.21 456.34 322.76 451.63 323.02 445.81 344.09 439.42 347.55 444.13 347.28 449.96 326.21 456.34" fill="#fd6f8d" opacity="0.5"/><polygon points="552.8 417.34 548.01 414.01 546.38 408.4 564.25 395.55 569.04 398.88 570.67 404.48 552.8 417.34" fill="#fd6f8d" opacity="0.5"/><polygon points="401.3 421.87 396.51 418.54 394.87 412.94 412.74 400.08 417.53 403.41 419.17 409.01 401.3 421.87" fill="#fd6f8d" opacity="0.5"/><path d="M452.73,545.66l-22.29,4a5.67,5.67,0,0,1-2.7-.17l-.37-.12,40.57,188-40.57-188-22.09-6.94a5.67,5.67,0,0,0-7.13,7l52.7,175.67a5.65,5.65,0,0,0,2.17,3c4.61,3.23,18.91,12.62,40.63,21.42l-39.29-204A5.66,5.66,0,0,0,452.73,545.66Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M767.74,542l-22.82,5.7a5.67,5.67,0,0,1-2.4.08l-21.45-4a5.66,5.66,0,0,0-2,0L681.57,747.48l37.48-203.69a5.67,5.67,0,0,0-1.68.58l-25.46,13.58a5.67,5.67,0,0,1-3.79.55L661.4,755.06a280.26,280.26,0,0,0,44.15-19l40.89-188.75L705.54,736q6.94-3.7,14-7.92a5.67,5.67,0,0,0,2.5-3.24l52.53-175.8A5.67,5.67,0,0,0,767.74,542Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M687.87,558.44,660.5,551.6a5.66,5.66,0,0,0-1.61-.16L638,761.58q11.5-2.61,23.44-6.52l26.72-196.56Z" transform="translate(-158.33 -57.35)" fill="#4d4981"/><g opacity="0.5"><rect x="447.32" y="548.5" width="0.65" height="192.29" transform="translate(-284.25 51.59) rotate(-12.18)" fill="#fff"/><rect x="499.39" y="557.95" width="0.65" height="201.19" transform="translate(-247.01 20.51) rotate(-8.19)" fill="#fff"/><rect x="473.66" y="544.79" width="0.65" height="207.96" transform="translate(-272.5 44.02) rotate(-10.9)" fill="#fff"/><rect x="526.13" y="552.08" width="0.65" height="212.05" transform="translate(-214.22 -8.45) rotate(-5.05)" fill="#fff"/><rect x="555.12" y="559.81" width="0.65" height="207.61" transform="translate(-177.58 -40.75) rotate(-1.68)" fill="#fff"/><rect x="586.67" y="554.95" width="0.65" height="213.91" transform="translate(-162.63 -53.52) rotate(-0.37)" fill="#fff"/><rect x="517.7" y="665.22" width="202.95" height="0.65" transform="translate(-229.51 1199.57) rotate(-87.65)" fill="#fff"/><rect x="542.25" y="657.79" width="212.28" height="0.65" transform="translate(-229.42 1180.31) rotate(-84.28)" fill="#fff"/><rect x="574.78" y="656.84" width="200.2" height="0.65" transform="matrix(0.13, -0.99, 0.99, 0.13, -225.62, 1179.91)" fill="#fff"/><rect x="596.61" y="646.43" width="207.48" height="0.65" transform="translate(-221.08 1160.76) rotate(-79.55)" fill="#fff"/><rect x="629.42" y="642.64" width="193.13" height="0.65" transform="translate(-214.09 1159.48) rotate(-77.81)" fill="#fff"/></g><path d="M207.92,697.1c6-2,15-4.28,22.09-3.47,6.74-2.46,22.6-8.88,33.43-18.39a241,241,0,0,1,.71-28.24c5.54-63-6.92-104.49-6.92-104.49s-9.78-31.67-8.71-57.95c-.63,1.19-1,1.9-1,1.9-.86-22.67-8.58-46.13-14.36-60.74a4.88,4.88,0,0,1-.65-.24l-6.59-15.34a13.31,13.31,0,0,1-1.22-2.83l-1-2.43.31-.13c-.1-.4-.21-.82-.31-1.25h0c-4.13-17.47-7.28-58.9-7.28-58.9C205.33,301,231.63,274,231.63,274l44.63-38.41a5.66,5.66,0,0,0-.44,1.57l.37-.32c.63-1.8,1.32-4,2-6.44a33.93,33.93,0,0,1-4.46-3.77,34.27,34.27,0,0,1-10-17.85c-1.08-5.31-.87-10.78-.65-16.19l.74-18.52a58.81,58.81,0,0,1,1.1-10.8c3.37-14.74,18.43-25,33.54-25.65,4.81-.2,9.61.41,14.4.77a96.85,96.85,0,0,0,11.7.25,2.12,2.12,0,0,0,1.26-.33,1.85,1.85,0,0,0,.55-1.28,6.37,6.37,0,0,0-1.56-4.77,5.94,5.94,0,0,0-2-1.16l1.08.26a5.88,5.88,0,0,0-1.77-.95c3.86.91,7.81,1.86,11.13,4a14.38,14.38,0,0,1,2.6,2.19,11.35,11.35,0,0,1,3.76,7c1.73-1.69,3.39-3.55,4-5.87a5.93,5.93,0,0,0,0-2.84q.39.49.76,1c0-.1,0-.2-.07-.3a29.7,29.7,0,0,1,5.81,12,4.66,4.66,0,0,0,1.05-3.44c.22.68.43,1.37.62,2.07a4.79,4.79,0,0,0,.07-1.38,47.32,47.32,0,0,1,2.31,16.43c0,5.56-2.46,14.21-8.42,16.16-.3.1-.62.18-.94.25a37.35,37.35,0,0,1-25.19,57.05q-.14,1-.28,2.13l-.24,0c-.16,1.5-.29,3.08-.39,4.73a31.84,31.84,0,0,0,4.9,3.94A40.46,40.46,0,0,0,339.85,251a48.63,48.63,0,0,1,19.65,5.84c7.12,4,15,9.79,17.45,16.84,4.12,11.77,26.76,30,42,32.27l5.4-.31.39-.12v.1l1.32-.08.08,0v0l.35,0,0,.08,1.37-.08s.14.63.32,1.75c7.65-2.62,23.88-9.92,45-29.08,23.54-21.35,55.31-17.15,67.56-14.46a2.1,2.1,0,0,1,.56,3.89c-4.94,2.72-12.62,6.67-16.22,7.11,0,0,7.42,7.68-.46,11.78a5.67,5.67,0,0,1-5.93-.57c-3.79-2.77-14.33,3.51-29.59,6.78,0,0-43.08,44.58-64.45,51.48A30.74,30.74,0,0,1,423,347l-1.32-.11-.07.11h-.18l-.16,1.4s-33.25-1.75-44-13.82a17.32,17.32,0,0,1-2.11-2.25l11.56,145.48h-.11l.11,1.38h-8.5a320.62,320.62,0,0,0,2.28,53.63v94.8s.44,8.35-16.89,20.5A647.93,647.93,0,0,0,311,688.79l-2.1,1.82c3.19,29,9.86,83.08,15.42,85.1l-3.43.6c5.91,7.45,22.56,27.89,27.65,28.46,6.23.69,10.38,10.38,0,12.46-9.58,1.92-34.48,4.42-61.65-6.08a9.41,9.41,0,0,1-5.92-10l2-15.28a2.14,2.14,0,0,0-.88.93c-1.38,4.15,0-5.54,0-5.54a433,433,0,0,1-13.38-55.84l-20.52,17.78s-.42-.51-1.13-1.43c-5,11.44-14,34.81-12,51.95,2.77,23.53-23.53,2.77-20.76-11.07,2.24-11.2-7.75-58.64-11.65-76.34A7.89,7.89,0,0,1,207.92,697.1Z" transform="translate(-158.33 -57.35)" fill="url(#c2d29fed-0e3c-4665-9fc2-6bc8bc700b9c)"/><path d="M422.79,313.2s19.6-3.38,48.65-29.73c23-20.85,54-16.74,66-14.12a2,2,0,0,1,.55,3.79c-4.83,2.65-12.33,6.51-15.84,6.95,0,0,7.24,7.5-.45,11.51a5.54,5.54,0,0,1-5.79-.56c-3.7-2.7-14,3.43-28.89,6.62,0,0-58.11,60.14-71.62,50Z" transform="translate(-158.33 -57.35)" fill="#fec3be"/><path d="M322.78,231.44s-5.41,23,0,39.19L298.46,274,276.84,263.2V249s10.14-21.62,7.43-46.62Z" transform="translate(-158.33 -57.35)" fill="#fec3be"/><path d="M253.86,729.44S236.29,763.9,239,786.87s-23,2.7-20.27-10.81c2.19-10.93-7.57-57.26-11.37-74.54a7.7,7.7,0,0,1,5.12-9c8.13-2.67,21.72-6,28.56-.94C251.16,699,253.86,729.44,253.86,729.44Z" transform="translate(-158.33 -57.35)" fill="#8b416f"/><path d="M320.76,767.27s23,29.73,29.06,30.41,10.14,10.14,0,12.16c-9.35,1.87-33.67,4.32-60.2-5.94a9.19,9.19,0,0,1-5.78-9.78l3.81-28.88Z" transform="translate(-158.33 -57.35)" fill="#8b416f"/><path d="M358.6,451.72l22,2.94s-5.14,36.92.26,77.47V624.7s.43,8.15-16.49,20a632.65,632.65,0,0,0-51.24,39.71l-61.32,53.12s-24.33-29.73-20.95-47.3c0,0,40.54-12.84,45.95-33.79,3.1-12,18.82-22,31.69-28.35,16.58-8.19,25.62-26.8,21.08-44.72a34.48,34.48,0,0,0-3.45-8.69c-10.81-18.92-26.35-61.49-26.35-61.49l29.73-56.76Z" transform="translate(-158.33 -57.35)" fill="#4d4981"/><path d="M358.6,451.72l22,2.94s-5.14,36.92.26,77.47V624.7s.43,8.15-16.49,20a632.65,632.65,0,0,0-51.24,39.71l-61.32,53.12s-24.33-29.73-20.95-47.3c0,0,40.54-12.84,45.95-33.79,3.1-12,18.82-22,31.69-28.35,16.58-8.19,25.62-26.8,21.08-44.72a34.48,34.48,0,0,0-3.45-8.69c-10.81-18.92-26.35-61.49-26.35-61.49l29.73-56.76Z" transform="translate(-158.33 -57.35)" opacity="0.05"/><path d="M326.16,769.3s-39.87,6.76-41.22,10.81,0-5.41,0-5.41-23-69.6-17.57-131.09-6.76-102-6.76-102-14.19-45.95-6.08-72.3,93.25-14.87,93.25-14.87S318.05,524,318.73,557.13c0,0-3.38,100-9.46,111.49C309.27,668.62,318.73,766.6,326.16,769.3Z" transform="translate(-158.33 -57.35)" fill="#4d4981"/><path d="M321.43,249s-4.05,25-44.6,14.19l27,205.41s78.38,2.7,77.71-6.76L365.35,337.53Z" transform="translate(-158.33 -57.35)" fill="#fff"/><path d="M320.42,247.66s7.68,8.24,19.52,9.27a47.49,47.49,0,0,1,19.18,5.71c7,3.89,14.63,9.55,17,16.45,4.73,13.51,34.46,35.81,48,31.08l-4.73,40.54s-38.51-2-45.27-16.89l11.49,144.6H375.49s-5.41-39.19-9.46-47.3-12.16-52.7-12.84-63.52-10.81-73-19.6-83.79l-13.18-32.1Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M320.42,249.69s9,7.57,20.87,8.59A47.49,47.49,0,0,1,360.47,264c7,3.89,14.63,9.55,17,16.45,4.73,13.51,34.46,35.81,48,31.08l-4.73,40.54s-38.51-2-45.27-16.89L387,479.76H376.84s-5.41-39.19-9.46-47.3-12.16-52.7-12.84-63.52-10.81-73-19.6-83.79l-14.53-31.42Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M320.42,248.34s9,7.57,20.87,8.59a47.49,47.49,0,0,1,19.18,5.71c7,3.89,14.63,9.55,17,16.45,4.73,13.51,34.46,35.81,48,31.08l-4.73,40.54s-38.51-2-45.27-16.89L387,478.41H376.84s-5.41-39.19-9.46-47.3-12.16-52.7-12.84-63.52-10.81-73-19.6-83.79l-14.53-31.42Z" transform="translate(-158.33 -57.35)" fill="#fd6f8d"/><path d="M286,222.32c.88-6.4-.88-10.4-1.69-17.91l38.51,29.06s-.92,3.93-1.62,9.67a36.73,36.73,0,0,1-5.81.47C301.91,243.61,292.29,233.14,286,222.32Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><circle cx="157.02" cy="147.74" r="36.49" fill="#fec3be"/><path d="M355.17,169.33a46.19,46.19,0,0,0-3-18.06,4.5,4.5,0,0,1-.77,5.83,28.91,28.91,0,0,0-9.17-16.24c2.6.42,3.93,3.65,3.3,6.21s-2.61,4.53-4.51,6.35c.22-3.87-2.33-7.47-5.57-9.6s-7.1-3-10.87-3.94a6.3,6.3,0,0,1,4.17,6.46,1.8,1.8,0,0,1-.54,1.25,2.07,2.07,0,0,1-1.23.33,94.57,94.57,0,0,1-11.42-.24,119.71,119.71,0,0,0-14.06-.75c-14.76.62-29.46,10.65-32.75,25a57.43,57.43,0,0,0-1.07,10.54L267,200.6c-.21,5.28-.42,10.63.64,15.81a33.49,33.49,0,0,0,17.21,22.74c5.3-7.68,5.77-17.55,7.61-26.7a13.51,13.51,0,0,1,2.29-5.9c1.33-1.66,3.67-2.71,5.65-1.92s2.84,3.82,1.19,5.17c1.42,1.73,4.22.44,5.85-1.1a31.56,31.56,0,0,0,9.16-16.35c.66-3.15,1.32-7,4.36-8.09a8.2,8.2,0,0,1,3.27-.22c6.43.44,16.49,3.1,22.73,1.06C352.77,183.2,355.17,174.76,355.17,169.33Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M354.5,168.65a46.19,46.19,0,0,0-3-18.06,4.5,4.5,0,0,1-.77,5.83,28.91,28.91,0,0,0-9.17-16.24c2.6.42,3.93,3.65,3.3,6.21s-2.61,4.53-4.51,6.35c.22-3.87-2.33-7.47-5.57-9.6s-7.1-3-10.87-3.94a6.3,6.3,0,0,1,4.17,6.46,1.8,1.8,0,0,1-.54,1.25,2.07,2.07,0,0,1-1.23.33,94.57,94.57,0,0,1-11.42-.24,119.71,119.71,0,0,0-14.06-.75c-14.76.62-29.46,10.65-32.75,25A57.43,57.43,0,0,0,267,181.84l-.72,18.08c-.21,5.28-.42,10.63.64,15.81a33.49,33.49,0,0,0,17.21,22.74c5.3-7.68,5.77-17.55,7.61-26.7a13.51,13.51,0,0,1,2.29-5.9c1.33-1.66,3.67-2.71,5.65-1.92s2.84,3.82,1.19,5.17c1.42,1.73,4.22.44,5.85-1.1a31.56,31.56,0,0,0,9.16-16.35c.66-3.15,1.32-7,4.36-8.09a8.2,8.2,0,0,1,3.27-.22c6.43.44,16.49,3.1,22.73,1.06C352.09,182.53,354.5,174.08,354.5,168.65Z" transform="translate(-158.33 -57.35)" fill="#fad375"/><path d="M427.18,310.16s5.41,25-4.73,40.54l-5.74-.47,3.13-39.65Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M425.83,310.16s5.41,25-4.73,40.54l-5.74-.47,3.13-39.65Z" transform="translate(-158.33 -57.35)" fill="#fd6f8d"/><path d="M280.55,241.92,237,279.42s-25.68,26.35-14.87,68.92c0,0,4.73,62.16,10.14,64.87,0,0,18.92,37.84,20.27,73.65,0,0,25.34-51,36.83-19.93s38.18,35.47,38.18,35.47L312.65,318.61S275.15,253.4,280.55,241.92Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M279.2,241.92l-43.58,37.5s-25.68,26.35-14.87,68.92c0,0,4.73,62.16,10.14,64.87,0,0,18.92,37.84,20.27,73.65,0,0,26.69-53.72,38.18-22.64s36.83,38.18,36.83,38.18L311.3,318.61S273.8,253.4,279.2,241.92Z" transform="translate(-158.33 -57.35)" fill="#fd6f8d"/><path d="M259.27,400.37s-10.81-7.43-28.38,12.84l43.24,78.38,14.53-22S257.92,409.15,259.27,400.37Z" transform="translate(-158.33 -57.35)" fill="#fec3be"/><path d="M269.74,404.76s-23.91,26.86-33.24,22.55l-8.64-20.11,32.42-13.93Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M269.74,403.41S245.83,430.27,236.5,426l-8.64-20.11,32.42-13.93Z" transform="translate(-158.33 -57.35)" fill="#fd6f8d"/><path d="M287.2,464.54s-11.38,23.33-17.46,24.69l8.78,10.14L291.36,475Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M287.88,465.21s-11.38,23.33-17.46,24.69L279.2,500,292,475.71Z" transform="translate(-158.33 -57.35)" fill="#4d4981"/><path d="M266.36,321s-1.35,48.65,4.05,66.89" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M375.83,330.43s-8.11-2.7-8.11-9.46" transform="translate(-158.33 -57.35)" opacity="0.1"/><g opacity="0.5"><path d="M827.65,331.62c-.06,6.39.7,12.3,2.76,16.93l2,29s.5-.28,1.41-.72c-1.21,11-.34,31.15,21.26,34.94a3.66,3.66,0,0,0,1.33-.66,98,98,0,0,0,4-9.21l.25.08-.25,1.24,1.6.5c-7.79,16.88-6,52-4.27,55.44.73,1.44,1.28,5.68,1.69,10.49a119.67,119.67,0,0,1-1,28c-1,6.39-1.3,14.23,2,17.49,6,5.92,5.33,51.33,5.33,51.33a32.84,32.84,0,0,0,1.39,3l-2.06.29s0,17.77,3.33,30.27c1.92,7.19-.8,16.56-3.45,23.22a46.94,46.94,0,0,0-2.31,28.27c1.95,8.14,6,16.26,14.43,18.93,18.67,5.92,22.67-25,22.67-25s-.67-23.69,0-27c.21-1,1.17-3.84,2.41-7.26a90.46,90.46,0,0,0,5-39l-.77-8.32-3.62.52c-.06-.86-.11-1.76-.16-2.7s-.09-1.62-.13-2.47-.08-1.72-.12-2.62-.08-1.81-.11-2.74q0-.7-.05-1.41c-.15-4.26-.28-8.81-.39-13.31,0-2-.09-4-.12-5.95,0-1.46-.05-2.91-.07-4.31q0-.7,0-1.4c0-2.3-.06-4.5-.07-6.53q0-.61,0-1.2,0-1.18,0-2.26,0-.54,0-1.06c0-.69,0-1.34,0-2s0-1.2,0-1.73,0-1,0-1.48c0-2.47.1-3.57.2-2.66.33,3,1.33,21.06,0-2-1.08-18.59,15.66-62.91,22.15-79.3a57.75,57.75,0,0,1,6,3.58c2.22,25.86-.83,75.43-1.81,90v.06c-.08,1.13-.14,2-.19,2.71v.12l-.05.72v.2l0,.21v.11s-8.67,54-8.67,66.47c0,9.63-4.75,23.56-6.93,29.44-3.17,1.38-5.74,2.8-5.74,2.8l.67,49.36s-7.33,24.35,19.33,30.27,15.33-24.35,15.33-24.35l-2-21.72,9.33-33.56-2.62-.53c5.54-17.7,20.38-66.4,19.29-77.12-1.22-12,4.77-25.08,5.84-27.3h0l.16-.34c-5.72-11.8,11.67-74,19.6-100.84,9.89-4.72,17.06-8.4,17.06-8.4s-.2-.37-.55-1l.55-.28a132.29,132.29,0,0,1-10.23-25.09l.57-.58-.43-1.21c1.36-1.31,2.1-2.08,2.1-2.08s19.33,3.29,14.67-5.92-3.33-23-3.33-23V299.41l9.33,3.07c17.55,2.89,20.69-16.71,20.6-31.74a116.66,116.66,0,0,0-1.26-17.62s-13.33-102-36.67-98.71c-21.86,3.08-41.08-9.71-43.43-11.35q-.43-1.32-.77-2.6a33,33,0,0,0,3.5-4.76c.73,0,1.47-.1,2.17-.18,0-.2,0-.39,0-.59l.67-.07a17.22,17.22,0,0,1,4.76-12.43,16.51,16.51,0,0,1,4.38-3c3.23-1.51,6.88-2,10.05-3.62a11.09,11.09,0,0,0,3-2.29c2-1.8,3.3-4.31,2.61-6.81-.31-1.11-1-2.13-1-3.28,0-1.6,1.25-2.88,2-4.29C994,95,992,89.82,989.25,86s-6.28-7.42-7.29-12c-.41-1.88-.38-3.86-1-5.69-2-5.93-9.66-7.7-16-7.37s-13.14,1.68-18.62-1.44A17.45,17.45,0,0,0,943,57.6a9.16,9.16,0,0,0-4.21,0c-8,1.39-15.37,5.36-22,10a50.64,50.64,0,0,0-7.46,6.1,27.44,27.44,0,0,0-4,4.77c-2.7,4.17-4,9.49-2.31,14.16a14.33,14.33,0,0,0,4.83,6.48,32.62,32.62,0,0,0,6.71,46.18,38.1,38.1,0,0,1-3.76,5.14v-.26s-20.33,10.2-27.67,8.88c-7.16-1.29-25.76,10.62-25.38,34.46,0,.6,0,1.22,0,1.84l-12,37.21a150.56,150.56,0,0,0-7.29,46.26S827.44,308.76,827.65,331.62Zm32.23,15.76,15.86-59.16v12.94l-10,35.54s-2,11.89-3.53,24.52Z" transform="translate(-158.33 -57.35)" fill="url(#c8cc5a91-18e5-403f-9b97-91f48ba2f890)"/></g><path d="M907.17,555.35l.74,8.13a89.47,89.47,0,0,1-4.85,38.15c-1.19,3.35-2.12,6.11-2.32,7.1-.64,3.22,0,26.37,0,26.37s-3.86,30.23-21.87,24.44c-8.1-2.6-12-10.55-13.92-18.5a46.44,46.44,0,0,1,2.23-27.62c2.56-6.51,5.18-15.66,3.33-22.69-3.22-12.22-3.22-29.58-3.22-29.58Z" transform="translate(-158.33 -57.35)" fill="#5a5773"/><path d="M926.46,415.8s-25.08,61.1-23.79,83.6.32,4.82,0,1.93c-.57-5.15,0,56,1.93,63,0,0-26.37,19.29-36.66-6.43,0,0,.64-44.37-5.14-50.16-3.18-3.18-2.87-10.84-1.93-17.09a118.45,118.45,0,0,0,1-27.33c-.39-4.7-.93-8.84-1.63-10.25-1.93-3.86-3.86-47.59,7.72-59.81Z" transform="translate(-158.33 -57.35)" fill="#605d82"/><path d="M901.38,564.36c-1.93-7.07-2.5-68.18-1.93-63,.32,2.89,1.29,20.58,0-1.93s23.79-83.6,23.79-83.6l-56.11-21.58c.26-.33.53-.64.8-.93l58.52,22.51s-25.08,61.1-23.79,83.6.32,4.82,0,1.93c-.57-5.15,0,56,1.93,63,0,0-10.53,7.7-20.88,6.88C892.92,570.54,901.38,564.36,901.38,564.36Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M948.32,613.88l-9,32.8,1.93,21.22s10.93,29.58-14.79,23.79-18.65-29.58-18.65-29.58l-.64-48.23s10.29-5.79,14.79-5.14S948.32,613.88,948.32,613.88Z" transform="translate(-158.33 -57.35)" fill="#5a5773"/><path d="M992.7,400.37S963.12,496.19,970.19,511c0,0-7.07,14.15-5.79,27s-20.58,81.67-20.58,81.67l-32.16-5.79s7.72-19.29,7.72-31.51,8.36-65,8.36-65,7.07-96.47-1.29-106.76Z" transform="translate(-158.33 -57.35)" fill="#605d82"/><g opacity="0.1"><path d="M928.95,418.42c5.33,21.84-.56,102.21-.56,102.21s-8.36,52.73-8.36,65c0,9.33-4.49,22.77-6.62,28.61l-1.74-.31s7.72-19.29,7.72-31.51,8.36-65,8.36-65S933.13,444,928.95,418.42Z" transform="translate(-158.33 -57.35)"/><path d="M970.19,511l-.16.33c-.05-.33-.1-.68-.13-1A7.11,7.11,0,0,0,970.19,511Z" transform="translate(-158.33 -57.35)"/><path d="M927.91,413.75a9.47,9.47,0,0,0-1.45-3.09l66.24-10.29s-.39,1.25-1.06,3.48Z" transform="translate(-158.33 -57.35)"/></g><path d="M838.35,365.64s-9.65,36,19.29,41.16a3.52,3.52,0,0,0,1.29-.64s16.72-32.8,3.86-45.66Z" transform="translate(-158.33 -57.35)" fill="#a1616a"/><path d="M956.69,126.4s-1.93,27,19.29,39.87-45,48.23-45,48.23L896.23,159.2S911,161.13,920,135.41Z" transform="translate(-158.33 -57.35)" fill="#a1616a"/><path d="M970.83,168.2s-32.8,68.17-62.38,3.86L862.79,398.44s70.74,21.87,71.38,32.16,71.38-26.37,71.38-26.37-15.43-28.3-11.58-45.66S970.83,168.2,970.83,168.2Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M970.83,166.92s-32.8,68.17-62.38,3.86L862.79,397.15S933.53,419,934.18,429.3s71.38-26.37,71.38-26.37-15.43-28.3-11.58-45.66S970.83,166.92,970.83,166.92Z" transform="translate(-158.33 -57.35)" fill="#e1e7ef"/><path d="M938.68,631.88s8.36-18.65-10.93-18.65S911.67,630,911.67,630Z" transform="translate(-158.33 -57.35)" fill="#5a5773"/><path d="M894.95,583.65s7.72-19.94-11.58-20.58-9.65,18-9.65,18Z" transform="translate(-158.33 -57.35)" fill="#5a5773"/><path d="M911.35,152.45s-19.61,10-26.69,8.68-25.72,10.93-24.44,35.37L848.6,233a148.9,148.9,0,0,0-7,45.21h0s-16.72,46.3-7.72,66.88l1.93,28.3S850.57,365,866,367.57l-3.86-23.15,17.36-65.6,28.94-70.1Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M911.35,151.16s-19.61,10-26.69,8.68-25.72,10.93-24.44,35.37L848.6,231.68a148.9,148.9,0,0,0-7,45.21h0s-16.72,46.3-7.72,66.88l1.93,28.3s14.79-8.36,30.23-5.79l-3.86-23.15,17.36-65.6,28.94-70.1Z" transform="translate(-158.33 -57.35)" fill="#67647e"/><path d="M878.87,229.3V302l-9.65,34.73s-6.43,37.94-4.5,49.52,32.8,14.15,41.16,4.5,3.86-92,3.86-92l1.61-120.58-1.29-3.86Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M877.58,226.08v72.67l-9.65,34.73s-6.43,37.94-4.5,49.52,32.8,14.15,41.16,4.5,3.86-92,3.86-92L910.06,175Z" transform="translate(-158.33 -57.35)" fill="#67647e"/><path d="M1007.17,286.54l-20.58,64,9.65,27.33s-45.66,48.23-74.6,25.08c0,0-3.22-98.4,3.22-121.55s37.3-101,37.3-101l6.43-20.58,34.08,19.29Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M1008.78,283.32v63s-1.29,13.51,3.22,22.51-14.15,5.79-14.15,5.79-45.66,48.23-74.6,25.08c0,0-3.22-98.4,3.22-121.55s37.3-101,37.3-101l6.43-20.58,34.08,19.29Z" transform="translate(-158.33 -57.35)" fill="#67647e"/><rect x="929.99" y="262.04" width="45" height="7" transform="translate(1535.67 -445.97) rotate(123)" fill="#e6e6e6"/><ellipse cx="937.75" cy="288.24" rx="14.57" ry="8" transform="matrix(0.54, -0.84, 0.84, 0.54, 26.9, 860.32)" opacity="0.1"/><ellipse cx="937.28" cy="288.96" rx="14.57" ry="8" transform="translate(26.08 860.25) rotate(-57)" fill="#e6e6e6"/><ellipse cx="937.28" cy="288.96" rx="11.84" ry="6.5" transform="translate(26.08 860.25) rotate(-57)" opacity="0.1"/><path d="M958.94,145.37s19.61,14.47,42.12,11.25,35.37,96.47,35.37,96.47,8.36,51.45-18.65,46.95L958,280.1s12.86-13.51,10.93-30.87l28.94,11.58-1.29-55.31Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M1035.14,251.81s8.36,51.45-18.65,46.95l-59.81-19.94s12.86-13.51,10.93-30.87l28.94,11.58Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M969,254.73S949,228.34,934.19,241s29.55,35.89,29.55,35.89Z" transform="translate(-158.33 -57.35)" fill="#a1616a"/><path d="M958.94,144.09s19.61,14.47,42.12,11.25,35.37,96.47,35.37,96.47,8.36,51.45-18.65,46.95L958,278.82s12.86-13.51,10.93-30.87l28.94,11.58-1.29-55.31-32.8-27Z" transform="translate(-158.33 -57.35)" fill="#67647e"/><path d="M919.38,136.69l36.66-9s-1.91,2.16.32,10.61c-5.9,6.77-13.15,15.76-22.83,15.76a32,32,0,0,1-19.22-6.37A57.82,57.82,0,0,0,919.38,136.69Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><circle cx="775.84" cy="63.26" r="32.16" fill="#a1616a"/><path d="M922,106.66c-7.46-1.27-15.66-4.58-18.16-11.72-1.6-4.57-.38-9.77,2.23-13.84s6.45-7.2,10.41-10c6.43-4.52,13.52-8.4,21.26-9.76a8.73,8.73,0,0,1,4.06,0,16.76,16.76,0,0,1,3.29,1.8c5.29,3.05,11.87,1.73,18,1.41s13.48,1.41,15.41,7.2c.6,1.79.56,3.72,1,5.56,1,4.5,4.39,8,7,11.75s4.62,8.82,2.42,12.86c-.75,1.37-2,2.63-2,4.19a13,13,0,0,0,1,3.21c.91,3.32-1.74,6.67-4.8,8.25s-6.58,2.07-9.7,3.54a17,17,0,0,0-9.47,15.74c-2.84.33-6.15.5-8.07-1.62-.86-.95-1.28-2.22-2.06-3.23-1-1.32-2.56-2.1-3.84-3.16-6.73-5.53-1.95-13.17-5.76-19.13-2-3.07-5.18-2.13-8.4-2.08A74.22,74.22,0,0,1,922,106.66Z" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M922.63,106c-7.46-1.27-15.66-4.58-18.16-11.72-1.6-4.57-.38-9.77,2.23-13.84s6.45-7.2,10.41-10c6.43-4.52,13.52-8.4,21.26-9.76a8.73,8.73,0,0,1,4.06,0,16.76,16.76,0,0,1,3.29,1.8c5.29,3.05,11.87,1.73,18,1.41s13.48,1.41,15.41,7.2c.6,1.79.56,3.72,1,5.56,1,4.5,4.39,8,7,11.75s4.62,8.82,2.42,12.86c-.75,1.37-2,2.63-2,4.19a13,13,0,0,0,1,3.21c.91,3.32-1.74,6.67-4.8,8.25s-6.58,2.07-9.7,3.54a17,17,0,0,0-9.47,15.74c-2.84.33-6.15.5-8.07-1.62-.86-.95-1.28-2.22-2.06-3.23-1-1.32-2.56-2.1-3.84-3.16-6.73-5.53-1.95-13.17-5.76-19.13-2-3.07-5.18-2.13-8.4-2.08A74.22,74.22,0,0,1,922.63,106Z" transform="translate(-158.33 -57.35)" fill="#4a4347"/><path d="M883.69,214.19s-7.07,36.66-3.86,50.81a47.15,47.15,0,0,1-.84,24.92" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M998,229.62s3.08,24.44-2.05,29.58" transform="translate(-158.33 -57.35)" opacity="0.1"/><path d="M818.42,530.81a1.5,1.5,0,0,0,0-3,1.5,1.5,0,0,0,0,3Z" transform="translate(-158.33 -57.35)"/><rect x="507.29" y="273.65" width="45" height="7" transform="translate(-14.36 -236.96) rotate(22.2)" fill="#e6e6e6"/><ellipse cx="554.85" cy="287.38" rx="8" ry="14.57" transform="translate(-79.18 635.19) rotate(-67.8)" opacity="0.1"/><ellipse cx="555.65" cy="287.7" rx="8" ry="14.57" transform="translate(-78.99 636.12) rotate(-67.8)" fill="#e6e6e6"/><ellipse cx="555.65" cy="287.7" rx="6.5" ry="11.84" transform="translate(-78.99 636.12) rotate(-67.8)" opacity="0.1"/></svg>
\ No newline at end of file
<svg id="26c346b9-da0c-4941-90c9-e7f7f9ba5ac3" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="958.98" height="717.78" viewBox="0 0 958.98 717.78"><defs><linearGradient id="4ef13be0-8e55-4463-b812-64152197208f" x1="768.34" y1="226.6" x2="768.34" y2="91.11" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="gray" stop-opacity="0.25"/><stop offset="0.54" stop-color="gray" stop-opacity="0.12"/><stop offset="1" stop-color="gray" stop-opacity="0.1"/></linearGradient><linearGradient id="5bed69c4-1e02-4930-aaf9-54950fab6759" x1="324.42" y1="444.93" x2="324.42" y2="444.59" xlink:href="#4ef13be0-8e55-4463-b812-64152197208f"/><linearGradient id="a88837d3-ccd3-4ab3-a7ec-270b2797a153" x1="437.75" y1="743.35" x2="437.75" y2="288.01" xlink:href="#4ef13be0-8e55-4463-b812-64152197208f"/></defs><title>drone_delivery</title><polygon points="910 277.53 910 213.53 872 213.53 872 277.53 827 277.53 827 178.53 794 178.53 794 104.53 767 104.53 767 28.53 711 28.53 711 104.53 684 104.53 684 178.53 652 178.53 652 89.53 634 89.53 634 44.53 623 44.53 623 89.53 559 89.53 559 373.53 510 373.53 510 343.53 480 343.53 480 373.53 431 373.53 431 277.53 343 277.53 343 213.53 305 213.53 305 277.53 303 277.53 303 400.53 263 400.53 263 328.53 215 328.53 215 400.53 175 400.53 175 178.53 144 178.53 144 104.53 30 104.53 30 178.53 0 178.53 0 569.53 175 569.53 303 569.53 431 569.53 559 569.53 652 569.53 827 569.53 955 569.53 955 277.53 910 277.53" fill="#348eed" opacity="0.25"/><rect x="19" y="201.53" width="42" height="24" fill="#fff" opacity="0.4"/><rect x="233.51" y="292.64" width="42" height="24" transform="translate(388.51 518.17) rotate(-180)" fill="#fff" opacity="0.4"/><rect x="19" y="248.53" width="42" height="24" fill="#fff" opacity="0.4"/><rect x="233.51" y="339.64" width="42" height="24" transform="translate(388.51 612.17) rotate(-180)" fill="#fff" opacity="0.4"/><rect x="19" y="295.53" width="42" height="24" fill="#fff" opacity="0.4"/><rect x="233.51" y="386.64" width="42" height="24" transform="translate(388.51 706.17) rotate(-180)" fill="#fff" opacity="0.4"/><rect x="19" y="342.53" width="42" height="24" fill="#fff" opacity="0.4"/><rect x="233.51" y="433.64" width="42" height="24" transform="translate(388.51 800.17) rotate(-180)" fill="#fff" opacity="0.4"/><rect x="19" y="389.53" width="42" height="24" fill="#fff" opacity="0.4"/><rect x="233.51" y="480.64" width="42" height="24" transform="translate(388.51 894.17) rotate(-180)" fill="#fff" opacity="0.4"/><rect x="19" y="436.53" width="42" height="24" fill="#fff" opacity="0.4"/><rect x="233.51" y="527.64" width="42" height="24" transform="translate(388.51 988.17) rotate(-180)" fill="#fff" opacity="0.4"/><rect x="19" y="483.53" width="42" height="24" fill="#fff" opacity="0.4"/><rect x="233.51" y="574.64" width="42" height="24" transform="translate(388.51 1082.17) rotate(-180)" fill="#fff" opacity="0.4"/><rect x="190" y="424.53" width="98" height="12" fill="#fff" opacity="0.4"/><rect x="190" y="442.53" width="98" height="12" fill="#fff" opacity="0.4"/><rect x="190" y="460.53" width="98" height="12" fill="#fff" opacity="0.4"/><rect x="446" y="430.53" width="98" height="12" fill="#fff" opacity="0.4"/><rect x="446" y="448.53" width="98" height="12" fill="#fff" opacity="0.4"/><rect x="446" y="466.53" width="98" height="12" fill="#fff" opacity="0.4"/><rect x="190" y="478.53" width="98" height="12" fill="#fff" opacity="0.4"/><rect x="190" y="496.53" width="98" height="12" fill="#fff" opacity="0.4"/><rect x="190" y="514.53" width="98" height="12" fill="#fff" opacity="0.4"/><rect x="324" y="300.53" width="27" height="35" fill="#fff" opacity="0.4"/><rect x="503.51" y="391.64" width="27" height="35" transform="translate(913.51 727.17) rotate(-180)" fill="#fff" opacity="0.4"/><rect x="324" y="356.53" width="27" height="35" fill="#fff" opacity="0.4"/><rect x="503.51" y="447.64" width="27" height="35" transform="translate(913.51 839.17) rotate(-180)" fill="#fff" opacity="0.4"/><rect x="324" y="412.53" width="27" height="35" fill="#fff" opacity="0.4"/><rect x="503.51" y="503.64" width="27" height="35" transform="translate(913.51 951.17) rotate(-180)" fill="#fff" opacity="0.4"/><rect x="324" y="468.53" width="27" height="35" fill="#fff" opacity="0.4"/><rect x="503.51" y="559.64" width="27" height="35" transform="translate(913.51 1063.17) rotate(-180)" fill="#fff" opacity="0.4"/><rect x="559" y="112.53" width="36" height="46" fill="#fff" opacity="0.4"/><rect x="559" y="178.53" width="36" height="46" fill="#fff" opacity="0.4"/><rect x="559" y="244.53" width="36" height="46" fill="#fff" opacity="0.4"/><rect x="559" y="310.53" width="36" height="46" fill="#fff" opacity="0.4"/><rect x="559" y="376.53" width="36" height="46" fill="#fff" opacity="0.4"/><rect x="559" y="442.53" width="36" height="46" fill="#fff" opacity="0.4"/><rect x="672.5" y="206.53" width="134" height="39" fill="#fff" opacity="0.4"/><rect x="673" y="290.53" width="134" height="39" fill="#fff" opacity="0.4"/><rect x="673.5" y="374.53" width="134" height="39" fill="#fff" opacity="0.4"/><rect x="674" y="458.53" width="134" height="39" fill="#fff" opacity="0.4"/><rect x="30" y="125.53" width="18" height="38" fill="#fff" opacity="0.4"/><rect x="910" y="300.53" width="45" height="58" fill="#fff" opacity="0.4"/><rect x="910" y="384.53" width="45" height="58" fill="#fff" opacity="0.4"/><rect x="910" y="468.53" width="45" height="58" fill="#fff" opacity="0.4"/><path d="M385.19,167.32h-6.88a4.82,4.82,0,1,0,0-9.63H322.58a4.82,4.82,0,0,0,0,9.63h6.88a4.82,4.82,0,1,0,0,9.63h-9.63a4.82,4.82,0,0,0,0,9.63h55.73a4.82,4.82,0,0,0,0-9.63h9.63a4.82,4.82,0,1,0,0-9.63Z" transform="translate(-120.51 -91.11)" fill="#252223" opacity="0.1"/><path d="M631.19,288.32h-6.88a4.82,4.82,0,1,0,0-9.63H568.58a4.82,4.82,0,0,0,0,9.63h6.88a4.82,4.82,0,1,0,0,9.63h-9.63a4.82,4.82,0,1,0,0,9.63h55.73a4.82,4.82,0,1,0,0-9.63h9.63a4.82,4.82,0,1,0,0-9.63Z" transform="translate(-120.51 -91.11)" fill="#252223" opacity="0.1"/><path d="M1050.19,130.32h-6.88a4.82,4.82,0,1,0,0-9.63H987.58a4.82,4.82,0,0,0,0,9.63h6.88a4.82,4.82,0,1,0,0,9.63h-9.63a4.82,4.82,0,1,0,0,9.63h55.73a4.82,4.82,0,1,0,0-9.63h9.63a4.82,4.82,0,1,0,0-9.63Z" transform="translate(-120.51 -91.11)" fill="#252223" opacity="0.1"/><path d="M918.56,95.65a181.12,181.12,0,0,0-25.21,1.52h0a6,6,0,0,0-12.1,0h0a181.12,181.12,0,0,0-25.21-1.52c-18.65,0-33.78,2-33.78,4.54s15.12,4.54,33.78,4.54a181.12,181.12,0,0,0,25.21-1.52h0a6,6,0,0,0,.39,2.13,4,4,0,0,0-.4,6.53,11.17,11.17,0,0,0-6.63,6.1,10.33,10.33,0,0,0-5.8-2.11L806,113.06a24.54,24.54,0,0,0-19.67-9.85H746.79a24.54,24.54,0,0,0-19.78,10l-59.66,2.67a10.33,10.33,0,0,0-5.43,1.83,11.17,11.17,0,0,0-5.81-5.58,4,4,0,0,0-.95-7.19,6,6,0,0,0,.25-1.73h0a181.11,181.11,0,0,0,25.21,1.52c18.65,0,33.78-2,33.78-4.54s-15.12-4.54-33.78-4.54a181.12,181.12,0,0,0-25.21,1.52h0a6,6,0,0,0-6-6h0a6,6,0,0,0-6,6h0a181.12,181.12,0,0,0-25.21-1.52c-18.65,0-33.78,2-33.78,4.54s15.12,4.54,33.78,4.54a181.12,181.12,0,0,0,25.21-1.52h0a6,6,0,0,0,.39,2.13,4,4,0,0,0-.24,6.66,11.14,11.14,0,0,0-7.21,10.41v7.46A11.14,11.14,0,0,0,647.4,141h4.43a11.11,11.11,0,0,0,8.93-4.5,10.33,10.33,0,0,0,6.76,2.77l58.5,1.64a24.7,24.7,0,0,0,7.25,7.39c-5.6,5.69-27.44,30.92-23.92,75.38,0,0,3.53,6.55,12.6,0,0,0-5.8-49.54,26.67-69.94a8.06,8.06,0,0,0,7.61,5.41h4.15a21.68,21.68,0,1,0,15.91,0h4.15a8.06,8.06,0,0,0,7.61-5.41c32.47,20.4,26.67,69.94,26.67,69.94,9.07,6.55,12.6,0,12.6,0,4-50.92-25.21-76.62-25.21-76.62h-.53a24.7,24.7,0,0,0,5.48-6.06l61.58-1.72a10.34,10.34,0,0,0,7.05-3,11.12,11.12,0,0,0,9.14,4.78h4.43a11.14,11.14,0,0,0,11.14-11.14v-7.46a11.14,11.14,0,0,0-6.6-10.17,4,4,0,0,0-.72-7.31,6,6,0,0,0,.25-1.73h0a181.11,181.11,0,0,0,25.21,1.52c18.65,0,33.78-2,33.78-4.54S937.22,95.65,918.56,95.65Z" transform="translate(-120.51 -91.11)" fill="url(#4ef13be0-8e55-4463-b812-64152197208f)"/><circle cx="647.83" cy="87.06" r="20.44" fill="#348eed"/><circle cx="647.83" cy="87.06" r="13.79" fill="#348eed"/><circle cx="647.83" cy="87.06" r="13.79" fill="#f5f5f5" opacity="0.2"/><circle cx="647.83" cy="87.06" r="9.03" fill="#348eed"/><circle cx="647.83" cy="87.06" r="9.03" opacity="0.25"/><path d="M736.48,147.74S708.91,172,712.71,220c0,0,3.33,6.18,11.89,0,0,0-7.13-60.86,40.41-72.27Z" transform="translate(-120.51 -91.11)" fill="#348eed"/><path d="M800.19,147.74S827.77,172,824,220c0,0-3.33,6.18-11.89,0,0,0,7.13-60.86-40.41-72.27Z" transform="translate(-120.51 -91.11)" fill="#348eed"/><rect x="604.32" y="15.26" width="83.68" height="46.36" rx="23.18" ry="23.18" fill="#348eed"/><path d="M738.54,142.22l-65.29-1.83a9.79,9.79,0,0,1-9.52-9.79V128.1a9.79,9.79,0,0,1,9.35-9.78l65.29-2.93a9.79,9.79,0,0,1,10.23,9.78v7.27A9.79,9.79,0,0,1,738.54,142.22Z" transform="translate(-120.51 -91.11)" fill="#348eed"/><path d="M797.66,142.22l65.29-1.83a9.79,9.79,0,0,0,9.52-9.79V128.1a9.79,9.79,0,0,0-9.35-9.78l-65.29-2.93a9.79,9.79,0,0,0-10.23,9.78v7.27A9.79,9.79,0,0,0,797.66,142.22Z" transform="translate(-120.51 -91.11)" fill="#348eed"/><path d="M738.54,142.22l-65.29-1.83a9.79,9.79,0,0,1-9.52-9.79V128.1a9.79,9.79,0,0,1,9.35-9.78l65.29-2.93a9.79,9.79,0,0,1,10.23,9.78v7.27A9.79,9.79,0,0,1,738.54,142.22Z" transform="translate(-120.51 -91.11)" fill="#f5f5f5" opacity="0.2"/><path d="M797.66,142.22l65.29-1.83a9.79,9.79,0,0,0,9.52-9.79V128.1a9.79,9.79,0,0,0-9.35-9.78l-65.29-2.93a9.79,9.79,0,0,0-10.23,9.78v7.27A9.79,9.79,0,0,0,797.66,142.22Z" transform="translate(-120.51 -91.11)" fill="#f5f5f5" opacity="0.2"/><rect x="523.26" y="22.87" width="25.2" height="28.05" rx="11.17" ry="11.17" fill="#348eed"/><rect x="747.2" y="22.87" width="25.2" height="28.05" rx="11.17" ry="11.17" fill="#348eed"/><rect x="528.49" y="16.69" width="15.21" height="7.61" rx="3.8" ry="3.8" fill="#348eed"/><rect x="529.92" y="3.85" width="11.41" height="17.12" rx="5.71" ry="5.71" fill="#348eed"/><ellipse cx="506.14" cy="12.41" rx="31.86" ry="4.28" fill="#348eed"/><ellipse cx="565.1" cy="12.41" rx="31.86" ry="4.28" fill="#348eed"/><rect x="752.9" y="16.69" width="15.21" height="7.61" rx="3.8" ry="3.8" fill="#348eed"/><rect x="754.33" y="3.85" width="11.41" height="17.12" rx="5.71" ry="5.71" fill="#348eed"/><ellipse cx="730.56" cy="12.41" rx="31.86" ry="4.28" fill="#348eed"/><ellipse cx="789.51" cy="12.41" rx="31.86" ry="4.28" fill="#348eed"/><ellipse cx="506.14" cy="12.41" rx="31.86" ry="4.28" fill="#f5f5f5" opacity="0.2"/><ellipse cx="565.1" cy="12.41" rx="31.86" ry="4.28" fill="#f5f5f5" opacity="0.2"/><ellipse cx="730.56" cy="12.41" rx="31.86" ry="4.28" fill="#f5f5f5" opacity="0.2"/><ellipse cx="789.51" cy="12.41" rx="31.86" ry="4.28" fill="#f5f5f5" opacity="0.2"/><rect x="628.81" y="52.82" width="38.04" height="15.21" rx="7.61" ry="7.61" fill="#348eed"/><rect x="628.81" y="52.82" width="38.04" height="15.21" rx="7.61" ry="7.61" fill="#f5f5f5" opacity="0.2"/><polygon points="682.36 131.85 597.65 131.85 597.65 216.56 682.36 216.56 704 216.56 704 131.85 682.36 131.85" fill="#67647e"/><rect x="682.36" y="131.85" width="21.65" height="84.71" opacity="0.25"/><rect x="608" y="145.97" width="16" height="8.47" opacity="0.25"/><path d="M764.45,213c3.6,5.1,3,11.67,3,11.67s-6.38-1.69-10-6.79-5-10.32-3-11.67S760.85,207.89,764.45,213Z" transform="translate(-120.51 -91.11)" fill="#67647e"/><path d="M770.54,213c-3.6,5.1-3,11.67-3,11.67s6.38-1.69,10-6.79,5-10.32,3-11.67S774.14,207.89,770.54,213Z" transform="translate(-120.51 -91.11)" fill="#67647e"/><path d="M324.48,444.59l-.11.34A2,2,0,0,0,324.48,444.59Z" transform="translate(-120.51 -91.11)" fill="url(#5bed69c4-1e02-4930-aaf9-54950fab6759)"/><path d="M646.39,721.2c.07-.1.14-.19.19-.29l.11-.21c.05-.1.11-.19.15-.29l.08-.21c0-.1.08-.2.11-.3s0-.13.05-.2.05-.2.07-.31,0-.12,0-.19,0-.21,0-.32,0-.11,0-.17,0-.22,0-.33,0-.1,0-.15,0-.23,0-.34l0-.13c0-.12,0-.24-.08-.36l0-.11c0-.13-.08-.25-.12-.38l0-.08q-.07-.2-.16-.39l0-.06q-.09-.21-.2-.41l0,0-.24-.43h0a14.8,14.8,0,0,0-3.43-3.72c-10.31,4.25-23-.61-23-.61s-17-8.49-15.77-6.07c.41.82.2,2.45-.26,4.27-8.14-1.71-12.63-6.08-15.07-10l9.27-10s-37.61-21.23-41.85-32.15-24.87-41.85-24.87-41.85-6.67-24.26-18.8-29.72c0,0-24.19-28.9-38.32-53.68,5-12.49,12-32,10.42-40.33-2-10.38.07-30,.9-36.94,6.71,5.6,34,27.77,44.59,27.24,3.81-.19,7.91-2.23,11.76-4.95,9.16-5.8,17.36-16.28,17.36-16.28-1.24.12-2.25-1-3.07-2.9,10.13-11,31.11-33.64,33.4-34.1,3-.61,19.41-29.11,10.31-35.18s-25.47,15.77-26.08,20c-.41,2.88-13.1,15.52-21.22,23.36,0-.2,0-.31,0-.31l-1.2.6c0-.38,0-.6,0-.6l-20.95,10.47-17.87-24.42s-4.85-26.08-17-30.33S474.48,370,474.48,370a12.49,12.49,0,0,0-.27,1.29c-.61-.81-.94-1.29-.94-1.29s0,.11-.08.29a31.91,31.91,0,0,1-.69-11.42l.17-.1c.07-.47.15-.92.23-1.35a30.35,30.35,0,0,0,12.29-37.59c3.09-2.16,7.57-3.5,11.38-5.14a33.38,33.38,0,0,0,13.69-10.35,12.07,12.07,0,0,0-6.34.13c-.26-2.81,3-6,.46-8.14-1.56-1.33-4.47-1.21-6.69-.55s-4.25,1.74-6.61,2c-4.11.5-8-1.49-10.93-3.64s-5.69-4.67-9.61-5.69c-7.79-2-15.51,2.61-23.33,4.57-12.56,3.14-20,6.5-20.61,14.5a26,26,0,0,0-4.44,3.77,16.55,16.55,0,0,0-5.32,9c-1.06,5.44,1.14,11,3.8,15.84,1.51,2.77,8.77,17.12,13.7,15.23a30.5,30.5,0,0,0,4.54,4.25c-.16,1.65-.39,3.32-.65,5a11.28,11.28,0,0,1-3.57,1.23,42.93,42.93,0,0,1-8.23.72,120.44,120.44,0,0,1-12.91-.79,109,109,0,0,0-12.55-.72,61.25,61.25,0,0,0-6.26.3l-.32,0-1.24.15-.19,0-1.35.22-.15,0-1.1.22-.25.05-1.12.27h0l-1.1.31-.18.05-.86.27-.19.06c-.65.22-1.26.46-1.84.7l-.18.08-.72.31-.13.06-.81.38-.07,0-.7.35-.17.09-.68.35,0,0-.86.45-.52.27-.24.13-.71.36c-6.07,3-64.9,18.8-75.21,50.34l.21.19,0,0,.23.21c-.17.46-.34.92-.49,1.38,0,0,1,.9,2.56,2.36-2.77,12.06-10.19,42.88-14.09,44.34-4.85,1.82-10.31,38.82,2.43,37.61s12.74-30.93,12.74-30.93,8.4-22.52,14.59-33.95a15.94,15.94,0,0,1,2.43,4.71l0,.13,0-.12a3.41,3.41,0,0,1,.07,1.6c.6-1.76,3.71-9.84,10.2-8.76,6.93,1.16,33.11-24.63,35.59-27.1-.06.67-.14,1.51-.22,2.48h0v0c0,.57-.1,1.18-.15,1.84l0,.21,0,.5,0,.33,0,.51,0,.36,0,.51,0,.46-.05.75,0,.61,0,.43,0,.61,0,.41,0,.64,0,.43,0,.7,0,.4-.07,1.1v.15l-.06,1,0,.35,0,.84,0,.4,0,.86,0,.36-.05,1v.2q0,.65-.06,1.31v.08q0,.6-.05,1.2v.35l0,1,0,.4q0,.5,0,1v.34q0,1.37-.09,2.77v.2q0,.59,0,1.18v.36q0,.53,0,1.06v.37q0,.58,0,1.17v.23q0,1.43,0,2.88c0,.1,0,.2,0,.31q0,.56,0,1.12,0,.19,0,.39,0,.53,0,1.07c0,.1,0,.2,0,.3,0,13.23.81,26.7,3.78,34.38a37.78,37.78,0,0,1,2.48,12.92,52.73,52.73,0,0,1-6.12,22.87h0l.71-.22-.13.23.39-.12c-.6,1.25-1,1.94-1,1.94s.88-.28,2.45-.74c-2.24,7.9-3.73,20.06.58,35.32,0,0,2.43,13.34.61,18.2s-3.64,43.67-3.64,43.67-3.64,4.85-10.31,1.82-88.55-13.34-88.55-13.34-.19.33-.51.92c-2.52-.79-6.15-2-8.8-3.11,1-1.38,1.89-2.17,2.64-2.06,0,0-4.37-2.11-9.13-3.78h0l-.87-.3h0l-.85-.28-.06,0-.81-.25-.09,0-.74-.21-.15,0-.7-.18-.18,0-.67-.15-.19,0-.6-.12-.23,0-.54-.09-.26,0-.49-.06-.27,0-.46,0h-.93l-.37,0-.24,0-.33.07-.22,0-.28.1-.2.07a2.36,2.36,0,0,0-.26.15l-.15.09a1.88,1.88,0,0,0-.33.31c-3,3.64-20,73.39-12.13,78.24l.68.41.28.16.36.2.35.18.25.13.38.18.19.09.39.17.14.06.4.15.09,0,.41.13h.05c4.4,1.19,5.86-2.88,11.19-11.6,5.22-8.54,11.93-19.31,17.79-23.3.13.29.26.58.4.86,0,0,61.26,6.67,83.7,14s40,17,54.59,0c13.06-15.23,26.11-64.62,28.66-74.63h0v0l.38-1.5h0l0-.13v-.13l48.52,37,21.23,24.87s29.72,41.85,35.18,42.46S567,722.73,567,722.73l.92-1c.22,1.11.39,2.13.52,3-2,4.81-.15,10.61,1.67,14.43h0l.08.16.21.42.11.22.2.39.1.19.21.4.11.19.16.29.08.15.21.36.09.15.13.21.07.12.16.26.06.1.1.15,0,.07.1.16,0,0,.06.08v0l0,0s63.69-15.16,71.57-20c.25-.15.48-.31.7-.47l.2-.16.4-.32.2-.19.31-.29.18-.21.24-.28Z" transform="translate(-120.51 -91.11)" fill="url(#a88837d3-ccd3-4ab3-a7ec-270b2797a153)"/><path d="M276.5,602.74s-14.18-4.14-14.77-5.91-12.41,32.49-12.41,32.49l11.82,8.27s12.41-7.09,18.91-5.91S276.5,602.74,276.5,602.74Z" transform="translate(-120.51 -91.11)" fill="#4c4c56"/><path d="M581.94,687.22s1.77,16,21.27,17.72-13,16-13,16l-24.81,1.77s-.59-10-4.73-17.72S581.94,687.22,581.94,687.22Z" transform="translate(-120.51 -91.11)" fill="#4c4c56"/><path d="M376.94,507.62s-11.22,17.13-3.54,44.31c0,0,2.36,13,.59,17.72s-3.54,42.54-3.54,42.54-3.54,4.73-10,1.77-86.25-13-86.25-13-13,22.45-5.91,36c0,0,59.67,6.5,81.53,13.59s39,16.54,53.17,0,28.36-74.44,28.36-74.44l47.26,36,20.68,24.22s28.95,40.76,34.27,41.35,30.13,39.58,30.13,39.58l30.13-32.49S557.13,664.18,553,653.54s-24.22-40.76-24.22-40.76-6.5-23.63-18.31-28.95c0,0-42.54-50.81-46.67-74.44S392.89,497,392.89,497Z" transform="translate(-120.51 -91.11)" fill="#5f5d7e"/><path d="M596.71,712s4.14-9.45,3-11.82S615,706.12,615,706.12s12.41,4.73,22.45.59c0,0,8.86,6.5,1.18,11.22s-69.71,19.5-69.71,19.5-9.45-13.59-1.77-21.27Z" transform="translate(-120.51 -91.11)" fill="#986365"/><path d="M553,653.54c-4.14-10.63-24.22-40.76-24.22-40.76s-6.5-23.63-18.31-28.95c0,0-42.54-50.81-46.67-74.44-.85-4.87-4.37-8.26-9.41-10.57l-8.24,24.75-11.25,33.8c-2.17,6.52-4.23,13.79-4,20.53.29-1.12.44-1.74.44-1.74l47.26,36,20.68,24.22s28.95,40.76,34.27,41.35,30.13,39.58,30.13,39.58l30.13-32.49S557.13,664.18,553,653.54Z" transform="translate(-120.51 -91.11)" opacity="0.1"/><path d="M473.23,355.79s-5,12.7,1.48,24.52-2.66,32.79-8.57,34-29.54-14.18-31.31-24.22,7.68-30.72,3-44.31Z" transform="translate(-120.51 -91.11)" fill="#fdc2cc"/><path d="M441.33,377.65s18.31,37.22,38.4,10.63c0,0,20.09,40.76,13.59,47.26A136.22,136.22,0,0,1,478.55,448l-10.63,74.44s-60.26-20.68-85.66-17.13l39-93.34Z" transform="translate(-120.51 -91.11)" opacity="0.1"/><path d="M441.33,375.88s18.31,37.22,38.4,10.63c0,0,20.09,40.76,13.59,47.26a136.22,136.22,0,0,1-14.77,12.41l-10.63,74.44s-60.26-20.68-85.66-17.13l39-93.34Z" transform="translate(-120.51 -91.11)" fill="#d39999"/><path d="M310.77,419s-10,46.08-14.77,47.85-10,37.81,2.36,36.63,12.41-30.13,12.41-30.13,13-34.86,18.31-39S310.77,419,310.77,419Z" transform="translate(-120.51 -91.11)" fill="#fdc2cc"/><path d="M542.95,440.27s26.59-24.81,27.18-28.95,16.54-25.4,25.4-19.5-7.09,33.67-10,34.27-37.81,39-37.81,39Z" transform="translate(-120.51 -91.11)" fill="#fdc2cc"/><path d="M438.67,366.13s-3.25,3.84-25.11,1.48-27.18,1.77-33.08,4.73-63.21,18.31-73.26,49c0,0,22.45,20.09,20.09,25.4,0,0,3-10,10-8.86s34.86-26.59,34.86-26.59-5.32,52,1.77,70.3-3.54,36.63-3.54,36.63,50.22-16,72.67-8.27c0,0,13-58.49,1.77-82.12s4.73-46.08,4.73-46.08Z" transform="translate(-120.51 -91.11)" opacity="0.1"/><path d="M439.26,364.36s-3.25,3.84-25.11,1.48-27.18,1.77-33.08,4.73-63.21,18.31-73.26,49c0,0,22.45,20.09,20.09,25.4,0,0,3-10,10-8.86s34.86-26.59,34.86-26.59-5.32,52,1.77,70.3S371,516.48,371,516.48s50.22-16,72.67-8.27c0,0,13-58.49,1.77-82.12S450.19,380,450.19,380Z" transform="translate(-120.51 -91.11)" opacity="0.1"/><path d="M438.67,364.36s-3.25,3.84-25.11,1.48-27.18,1.77-33.08,4.73-63.21,18.31-73.26,49c0,0,22.45,20.09,20.09,25.4,0,0,3-10,10-8.86s34.86-26.59,34.86-26.59-5.32,52,1.77,70.3-3.54,36.63-3.54,36.63,50.22-16,72.67-8.27c0,0,13-58.49,1.77-82.12S449.6,380,449.6,380Z" transform="translate(-120.51 -91.11)" fill="#ec7580"/><path d="M471.76,375s8.57,12.7,20.38,16.84,16.54,29.54,16.54,29.54l17.72,24.22L547.67,435s.59,28.95,6.5,28.36c0,0-14.77,18.91-26.59,19.5S482.69,455,482.69,455s-3.54,26-1.18,38.4-14.77,50.22-14.77,50.22l-23.63-4.73s12.41-47.26,27.77-54.94c0,0,0-31.9-2.36-39.58s15.36-36.63,13-42.54c-1.33-3.31-6.53-10.4-9.16-16.84A16.85,16.85,0,0,1,471.76,375Z" transform="translate(-120.51 -91.11)" opacity="0.1"/><path d="M473.53,373.81s8.57,12.7,20.38,16.84,16.54,29.54,16.54,29.54l17.72,24.22,21.27-10.63s.59,28.95,6.5,28.36c0,0-14.77,18.91-26.59,19.5s-44.9-27.77-44.9-27.77-3.54,26-1.18,38.4-14.77,50.22-14.77,50.22l-23.63-4.73s12.41-47.26,27.77-54.94c0,0,0-31.9-2.36-39.58s15.36-36.63,13-42.54c-1.33-3.31-6.53-10.4-9.16-16.84A16.85,16.85,0,0,1,473.53,373.81Z" transform="translate(-120.51 -91.11)" opacity="0.1"/><path d="M472.35,373.81s8.57,12.7,20.38,16.84,16.54,29.54,16.54,29.54L527,444.41l21.27-10.63s.59,28.95,6.5,28.36c0,0-14.77,18.91-26.59,19.5s-44.9-27.77-44.9-27.77-3.54,26-1.18,38.4-14.77,50.22-14.77,50.22l-23.63-4.73s12.41-47.26,27.77-54.94c0,0,0-31.9-2.36-39.58s15.36-36.63,13-42.54c-1.33-3.31-6.53-10.4-9.16-16.84A16.85,16.85,0,0,1,472.35,373.81Z" transform="translate(-120.51 -91.11)" fill="#ec7580"/><path d="M473.35,374.81s8.57,12.7,20.38,16.84,16.54,29.54,16.54,29.54L528,445.41l21.27-10.63s.59,28.95,6.5,28.36c0,0-14.77,18.91-26.59,19.5s-44.9-27.77-44.9-27.77-3.54,26-1.18,38.4-14.77,50.22-14.77,50.22l-23.63-4.73s12.41-47.26,27.77-54.94c0,0,0-31.9-2.36-39.58s15.36-36.63,13-42.54c-1.33-3.31-6.53-10.4-9.16-16.84A16.85,16.85,0,0,1,473.35,374.81Z" transform="translate(-120.51 -91.11)" opacity="0.05"/><path d="M267.64,596.83s-17.13-8.27-20.09-4.73-19.5,71.48-11.82,76.21,8.27,1.18,14.77-9.45,15.36-24.81,21.86-24.22c0,0-18.91-6.5-18.31-8.86S263.51,596.24,267.64,596.83Z" transform="translate(-120.51 -91.11)" fill="#986365"/><path d="M438.86,361a29.53,29.53,0,0,0,32.92,1.85,29.93,29.93,0,0,1,1.46-5.9l-35.45-10C439.25,351.12,439.35,356,438.86,361Z" transform="translate(-120.51 -91.11)" opacity="0.1"/><path d="M460.78,337.89c7.2.62,16-.73,18.65-5.63.77-1.41.93-3,1.71-4.37,2.26-4.06,8.72-5.72,13.91-8a32.51,32.51,0,0,0,13.33-10.08,11.76,11.76,0,0,0-6.18.13c-.25-2.73,2.9-5.85.45-7.93-1.52-1.29-4.35-1.17-6.52-.53s-4.13,1.69-6.44,2c-4,.49-7.79-1.45-10.65-3.55s-5.54-4.55-9.36-5.54c-7.58-2-15.11,2.55-22.72,4.45-15.61,3.91-23.18,8.15-18.94,21.72C431.16,330.61,447.68,336.76,460.78,337.89Z" transform="translate(-120.51 -91.11)" fill="#865a61"/><circle cx="336.18" cy="245.18" r="29.54" fill="#fdc2cc"/><path d="M433.73,331.79c1.43-5.8,5.56-11.21,11.31-12.82,4.89-1.37,10.09.12,14.87,1.85s9.65,3.75,14.72,3.45,10.39-3.8,10.77-8.86a4.24,4.24,0,0,0-.37-2.29,5.63,5.63,0,0,0-2.11-2c-7.43-4.74-15.88-8.47-24.69-8.33-7.25.12-14.18,2.84-20.92,5.52-8.5,3.38-18.17,8.11-19.92,17.09-1,5.3,1.11,10.69,3.7,15.43,1.5,2.74,8.76,17.12,13.56,14.75C436.59,354.66,432.81,335.51,433.73,331.79Z" transform="translate(-120.51 -91.11)" opacity="0.1"/><path d="M434.91,330.61c1.43-5.8,5.56-11.21,11.31-12.82,4.89-1.37,10.09.12,14.87,1.85s9.65,3.75,14.72,3.45,10.39-3.8,10.77-8.86a4.24,4.24,0,0,0-.37-2.29,5.63,5.63,0,0,0-2.11-2c-7.43-4.74-15.88-8.47-24.69-8.33-7.25.12-14.18,2.84-20.92,5.52-8.5,3.38-18.17,8.11-19.92,17.09-1,5.3,1.11,10.69,3.7,15.43,1.5,2.74,8.76,17.12,13.56,14.75C437.77,353.48,434,334.33,434.91,330.61Z" transform="translate(-120.51 -91.11)" fill="#865a61"/><path d="M237.51,668.91c-7.68-4.73,8.86-72.67,11.82-76.21,1.29-1.55,5.31-.84,9.42.46-4.66-1.63-9.71-2.83-11.19-1-3,3.54-19.5,71.48-11.82,76.21a13.93,13.93,0,0,0,4.28,1.95A21.65,21.65,0,0,1,237.51,668.91Z" transform="translate(-120.51 -91.11)" fill="#fff" opacity="0.5"/><path d="M640.81,710.34c.8,2,.56,4.39-2.75,6.42-7.68,4.73-69.71,19.5-69.71,19.5a29.62,29.62,0,0,1-1.69-2.87,31.57,31.57,0,0,0,2.28,4.05s62-14.77,69.71-19.5C642.62,715.5,642.17,712.58,640.81,710.34Z" transform="translate(-120.51 -91.11)" fill="#fff" opacity="0.5"/><g opacity="0.05"><path d="M330.47,439.08C325.56,431.18,312,419,312,419c10-30.72,67.35-46.08,73.26-49,3.26-1.63,6.34-3.62,12.12-4.68-9,.66-12.79,3.24-16.84,5.27-5.91,3-63.21,18.31-73.26,49,0,0,21.58,19.31,20.19,25.07A18.49,18.49,0,0,1,330.47,439.08Z" transform="translate(-120.51 -91.11)"/><path d="M327.42,444.67l-.11.33A1.91,1.91,0,0,0,327.42,444.67Z" transform="translate(-120.51 -91.11)"/><path d="M439.35,365.33l-.68-1s-.75.88-3.93,1.54A34.47,34.47,0,0,0,439.35,365.33Z" transform="translate(-120.51 -91.11)"/><path d="M338,436.17a7.88,7.88,0,0,0,2.58-.7A6.42,6.42,0,0,0,338,436.17Z" transform="translate(-120.51 -91.11)"/><path d="M414.86,506.88c10.57-1.16,20.89-1.18,28.24,1.33,0,0,.14-.62.37-1.73C435.41,504.91,425.06,505.46,414.86,506.88Z" transform="translate(-120.51 -91.11)"/><path d="M375.68,514.93c2-4,9.17-19.82,3-35.67-7.09-18.31-1.77-70.3-1.77-70.3s-2,2-5.12,5c-1.09,12.89-3.67,50.84,2.17,65.93,7.09,18.31-3.54,36.63-3.54,36.63S372.39,515.86,375.68,514.93Z" transform="translate(-120.51 -91.11)"/></g><path d="M905.08,706.34c-7.12,3.67-14.58,6.84-21.94,10-27.19,11.48-54.79,23.06-84,27-54.82,7.39-111.44-12.62-165.33-.17-45.15,10.42-82.49,42.35-126.6,56.57-20.51,6.61-41.85,9.2-63.38,9.2H441q-4-.05-7.94-.2c-21.83-.82-43.75-4.05-65.15-8.18-67.57-13-136.34-36.83-188-80.7C330.34,692.33,640.19,650.15,905.08,706.34Z" transform="translate(-120.51 -91.11)" fill="#252223" opacity="0.1"/><path d="M745.48,534.72s19.42,19.42,8.46,48.24,18.8,76.75,18.8,76.75l-.91-.15c-39.89-7-59.71-52.66-37.53-86.55C742.54,560.4,749.31,545.62,745.48,534.72Z" transform="translate(-120.51 -91.11)" fill="#348eed"/><path d="M745.48,534.72s11,23.81,0,43.23-1.88,73.93,27.25,81.76" transform="translate(-120.51 -91.11)" fill="none" stroke="#535461" stroke-miterlimit="10"/><path d="M710.89,613.27s22.16-3.53,24.18,16.33,42.62,22.61,42.62,22.61l-.76.51c-33.52,22-65.56,14-60.73-15.2C718,626.66,717.84,615.75,710.89,613.27Z" transform="translate(-120.51 -91.11)" fill="#348eed"/><path d="M710.89,613.27s22.16-3.53,24.18,16.33,42.62,22.61,42.62,22.61l-.76.51c-33.52,22-65.56,14-60.73-15.2C718,626.66,717.84,615.75,710.89,613.27Z" transform="translate(-120.51 -91.11)" fill="#f5f5f5" opacity="0.2"/><path d="M710.89,613.27s17.2,3.78,15.79,19.42,25.55,34.39,51,19.53" transform="translate(-120.51 -91.11)" fill="none" stroke="#535461" stroke-miterlimit="10"/><path d="M795.6,656s-13.94-2.79-17.65-6.5-20.44-10.22-22.3-5.57-25.09,20.44-9.29,23.23,37.17,3.72,41.81,1.86S795.6,656,795.6,656Z" transform="translate(-120.51 -91.11)" fill="#a8a8a8"/><path d="M746.35,665.42c15.8,2.79,37.17,3.72,41.81,1.86,3.54-1.42,6-8.21,7-11.38l.46.1s-2.79,11.15-7.43,13-26,.93-41.81-1.86c-4.56-.8-5.86-2.69-5.37-5.09C741.37,663.62,743,664.82,746.35,665.42Z" transform="translate(-120.51 -91.11)" opacity="0.2"/><path d="M1048.26,680s13.21-44.87-2.48-77.89a70.87,70.87,0,0,1-5.73-44.46,119.19,119.19,0,0,1,6.29-20.87" transform="translate(-120.51 -91.11)" fill="none" stroke="#535461" stroke-miterlimit="10" stroke-width="2"/><path d="M1036.58,515.88c0,5.5,10,21.44,10,21.44s10-15.95,10-21.44a10,10,0,0,0-19.91,0Z" transform="translate(-120.51 -91.11)" fill="#348eed"/><path d="M1020.12,546.34c3,4.62,20,12.59,20,12.59s-.31-18.8-3.3-23.41a10,10,0,0,0-16.72,10.82Z" transform="translate(-120.51 -91.11)" fill="#348eed"/><path d="M1020.84,598.39c4.91,2.48,23.63.77,23.63.77s-9.76-16.07-14.67-18.55a10,10,0,1,0-9,17.78Z" transform="translate(-120.51 -91.11)" fill="#348eed"/><path d="M1030.25,637.65c4.42,3.27,23.16,4.75,23.16,4.75s-6.9-17.49-11.32-20.76a10,10,0,0,0-11.84,16Z" transform="translate(-120.51 -91.11)" fill="#348eed"/><path d="M1061,560c-3.94,3.83-22.32,7.8-22.32,7.8s4.5-18.25,8.44-22.08A10,10,0,0,1,1061,560Z" transform="translate(-120.51 -91.11)" fill="#348eed"/><path d="M1071.46,606.05c-4.91,2.48-23.63.77-23.63.77s9.76-16.07,14.67-18.55a10,10,0,1,1,9,17.78Z" transform="translate(-120.51 -91.11)" fill="#348eed"/><path d="M1075.45,652.2c-4.42,3.27-23.16,4.75-23.16,4.75s6.9-17.49,11.32-20.76a10,10,0,0,1,11.84,16Z" transform="translate(-120.51 -91.11)" fill="#348eed"/><path d="M1077,675.61s-24.15-4.83-30.59-11.27-35.42-17.71-38.64-9.66-43.47,35.42-16.1,40.25,64.4,6.44,72.44,3.22S1077,675.61,1077,675.61Z" transform="translate(-120.51 -91.11)" fill="#a8a8a8"/><path d="M991.68,691.94c27.37,4.83,64.4,6.44,72.44,3.22,6.13-2.45,10.39-14.23,12.07-19.72l.81.17s-4.83,19.32-12.88,22.54-45.08,1.61-72.44-3.22c-7.9-1.39-10.16-4.67-9.31-8.81C983.05,688.82,985.8,690.9,991.68,691.94Z" transform="translate(-120.51 -91.11)" opacity="0.2"/></svg>
\ No newline at end of file
<svg id="740546cb-34ca-4331-8221-ac3d3fc9ee67" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1120.61" height="862.52" viewBox="0 0 1120.61 862.52"><defs><linearGradient id="07a0b5f0-40d7-4714-acbe-80fa7c137a96" x1="922.95" y1="714.28" x2="922.95" y2="199.47" gradientTransform="matrix(1, 0.09, -0.09, 1, 45.13, -84.62)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="gray" stop-opacity="0.25"/><stop offset="0.54" stop-color="gray" stop-opacity="0.12"/><stop offset="1" stop-color="gray" stop-opacity="0.1"/></linearGradient><linearGradient id="81276d2b-ddf3-474d-b794-9223ea4701e2" x1="329.5" y1="708.38" x2="329.5" y2="197" gradientTransform="matrix(1, 0, 0, 1, 0, 0)" xlink:href="#07a0b5f0-40d7-4714-acbe-80fa7c137a96"/></defs><title>co-working</title><path d="M1089.7,507c-41.29,62.11-30.84,148.44-10.05,216.82,7,22.89,14.91,47.08,10.21,72.38-5.75,30.94-29.19,54.77-53.22,68.11-43.79,24.33-94.62,22.33-132.33-5.19-32.59-23.79-54.74-64.38-88-87C760.72,734.4,686.49,754.58,622.39,787c-45.35,22.91-95.14,52.13-138.12,33.8-30.24-12.9-49.84-47.64-59.58-85.15-4.7-18.11-7.78-37.84-17.8-51.81-6-8.3-14-14-22.29-18.63C308.89,622.47,209,654.06,135.75,606,86.32,573.6,56.91,508.46,45.93,439.31S40.36,296.61,47.7,224.23C52.91,172.8,60.38,117.78,89.07,76.55c30.35-43.61,79.58-62.18,123-56.95S293.67,50.73,326.9,82C368.43,121,406.27,170.46,459,184c35.91,9.25,74.61.57,112.35-4,63.1-7.55,125.63-3.35,187.74,1.64,59.47,4.78,119.32,10.39,175.17,30.77,39.52,14.42,70.34,43.14,107.39,62.24,24.15,12.45,51.05,14.63,73.68,31,27.88,20.15,52.52,56.69,42.83,101.84C1148.95,450.48,1111.61,474,1089.7,507Z" transform="translate(-39.7 -18.74)" fill="#348eed" opacity="0.1"/><rect x="880.8" y="256.42" width="40.89" height="61.9" fill="#348eed" opacity="0.1"/><rect x="884.77" y="262.44" width="32.94" height="49.86" fill="#348eed" opacity="0.1"/><rect x="797.8" y="213.42" width="62.8" height="61.9" fill="#348eed" opacity="0.1"/><rect x="803.9" y="219.44" width="50.59" height="49.86" fill="#348eed" opacity="0.1"/><rect x="64.62" y="121.32" width="191.95" height="5.11" fill="#348eed" opacity="0.1"/><rect x="64.62" y="146.31" width="191.95" height="5.11" fill="#348eed" opacity="0.1"/><rect x="388.43" y="452.63" width="19.61" height="219.14" fill="#d6d6e3"/><path d="M1020.54,494.38V292.24A21.25,21.25,0,0,1,1041.79,271h0A21.25,21.25,0,0,1,1063,292.24V536.88a21.25,21.25,0,0,1-21.25,21.25H910.14a21.25,21.25,0,0,1-21.25-21.25h0a21.25,21.25,0,0,1,21.25-21.25h89.15A21.25,21.25,0,0,0,1020.54,494.38Z" transform="translate(-39.7 -18.74)" fill="#aebee1"/><path d="M1020.54,494.38V292.24A21.25,21.25,0,0,1,1041.79,271h0A21.25,21.25,0,0,1,1063,292.24V536.88a21.25,21.25,0,0,1-21.25,21.25H910.14a21.25,21.25,0,0,1-21.25-21.25h0a21.25,21.25,0,0,1,21.25-21.25h89.15A21.25,21.25,0,0,0,1020.54,494.38Z" transform="translate(-39.7 -18.74)" fill="#535461"/><path d="M888.92,535.74a21.25,21.25,0,0,1,21.22-20.11h89.15a21.25,21.25,0,0,0,21.25-21.25V292.24A21.25,21.25,0,0,1,1040.77,271V535.74Z" transform="translate(-39.7 -18.74)" fill="#d6d6e3"/><path d="M232.2,501.2V299.06A21.25,21.25,0,0,0,211,277.81h0a21.25,21.25,0,0,0-21.25,21.25V543.7A21.25,21.25,0,0,0,211,565H342.6a21.25,21.25,0,0,0,21.25-21.25h0a21.25,21.25,0,0,0-21.25-21.25H253.46A21.25,21.25,0,0,1,232.2,501.2Z" transform="translate(-39.7 -18.74)" fill="#aebee1"/><path d="M232.2,501.2V299.06A21.25,21.25,0,0,0,211,277.81h0a21.25,21.25,0,0,0-21.25,21.25V543.7A21.25,21.25,0,0,0,211,565H342.6a21.25,21.25,0,0,0,21.25-21.25h0a21.25,21.25,0,0,0-21.25-21.25H253.46A21.25,21.25,0,0,1,232.2,501.2Z" transform="translate(-39.7 -18.74)" fill="#535461"/><path d="M363.82,542.56a21.25,21.25,0,0,0-21.22-20.11H253.46A21.25,21.25,0,0,1,232.2,501.2V299.06A21.25,21.25,0,0,0,212,277.84V542.56Z" transform="translate(-39.7 -18.74)" fill="#d6d6e3"/><rect x="776.4" y="452.63" width="19.61" height="224.25" fill="#d6d6e3"/><rect x="388.43" y="452.63" width="19.61" height="16.2" opacity="0.1"/><rect x="776.4" y="452.63" width="19.61" height="16.2" opacity="0.1"/><path d="M498.17,337.92q-.47,5.18-1.19,10.5h-2.77v-10.5Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><path d="M578.52,447c.06,3.55-2.5,6.46-5.67,6.46H513v-6.24H562.8c2.15,0,3.49-2.6,2.41-4.68l-45.16-91.85a4,4,0,0,0-3.5-2.26H494.21v-10.5h28.21a2.8,2.8,0,0,1,2.45,1.58l51.77,100A17,17,0,0,1,578.52,447Z" transform="translate(-39.7 -18.74)" fill="#535461"/><path d="M468.6,430.34l-.82,1.38-7.67-5.12,23.73-182.47h6.11s.25.84.66,2.44C494.7,262.34,514.79,351.65,468.6,430.34Z" transform="translate(-39.7 -18.74)" fill="#535461"/><path d="M490.6,246.57l-22,183.77-.82,1.38-7.67-5.12,23.73-182.47h6.11S490.19,245,490.6,246.57Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><rect x="376.97" y="329.82" width="189.29" height="14.5" transform="translate(41.16 746.52) rotate(-83.17)" fill="#d6d6e3"/><path d="M403.83,447.07a1.72,1.72,0,0,1-1.71,1.71h-2.56a1.71,1.71,0,0,1-1.71-1.71.83.83,0,0,1,0-.2,1.71,1.71,0,0,1,1.69-1.5h2.56a1.72,1.72,0,0,1,1.65,1.3A1.58,1.58,0,0,1,403.83,447.07Z" transform="translate(-39.7 -18.74)" fill="#e3edf9"/><path d="M411.5,447.07a1.72,1.72,0,0,1-1.71,1.71h-2.56a1.71,1.71,0,0,1-1.71-1.71,1.68,1.68,0,0,1,.07-.47,1.61,1.61,0,0,1,.43-.73,1.67,1.67,0,0,1,1.2-.5h2.56a1.72,1.72,0,0,1,1.57,1A1.76,1.76,0,0,1,411.5,447.07Z" transform="translate(-39.7 -18.74)" fill="#e3edf9"/><path d="M418.32,447.07a1.72,1.72,0,0,1-1.71,1.71h-2.56a1.71,1.71,0,0,1-1.71-1.71,1.62,1.62,0,0,1,.15-.71,1.74,1.74,0,0,1,1.55-1h2.56a1.7,1.7,0,0,1,1.71,1.71Z" transform="translate(-39.7 -18.74)" fill="#e3edf9"/><path d="M426,447.07a1.72,1.72,0,0,1-1.71,1.71h-2.56a1.71,1.71,0,0,1-1.4-2.69l.2-.22a1.67,1.67,0,0,1,1.2-.5h2.56a1.72,1.72,0,0,1,1.24.55A1.65,1.65,0,0,1,426,447.07Z" transform="translate(-39.7 -18.74)" fill="#e3edf9"/><path d="M403.78,446.66a1.58,1.58,0,0,1,.05.41,1.72,1.72,0,0,1-1.71,1.71h-2.56a1.71,1.71,0,0,1-1.71-1.71.83.83,0,0,1,0-.2Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><path d="M411.36,446.39a1.76,1.76,0,0,1,.14.67,1.72,1.72,0,0,1-1.71,1.71h-2.56a1.71,1.71,0,0,1-1.71-1.71,1.68,1.68,0,0,1,.07-.47Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><path d="M418.07,446.16a1.72,1.72,0,0,1,.26.9,1.72,1.72,0,0,1-1.71,1.71h-2.56a1.71,1.71,0,0,1-1.71-1.71,1.62,1.62,0,0,1,.15-.71Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><path d="M426,447.07a1.72,1.72,0,0,1-1.71,1.71h-2.56a1.71,1.71,0,0,1-1.4-2.69l5.2-.18A1.65,1.65,0,0,1,426,447.07Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><path d="M441.34,453.89H391.89v-2.25a3.85,3.85,0,0,1,3.72-3.85l39.66-1.37a5.88,5.88,0,0,1,6.08,5.87Z" transform="translate(-39.7 -18.74)" fill="#d6d6e3"/><path d="M685.31,447c-.06,3.55,2.5,6.46,5.67,6.46h59.88v-6.24H701c-2.15,0-3.49-2.6-2.41-4.68l45.16-91.85a4,4,0,0,1,3.5-2.26h22.35v-10.5H741.41A2.8,2.8,0,0,0,739,339.5l-51.77,100A17,17,0,0,0,685.31,447Z" transform="translate(-39.7 -18.74)" fill="#535461"/><path d="M795.24,430.34l.82,1.38,7.67-5.12L780,244.13h-6.11s-.25.84-.66,2.44C769.13,262.34,749,351.65,795.24,430.34Z" transform="translate(-39.7 -18.74)" fill="#535461"/><path d="M773.23,246.57l22,183.77.82,1.38,7.67-5.12L780,244.13h-6.11S773.64,245,773.23,246.57Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><rect x="784.97" y="242.43" width="14.5" height="189.29" transform="translate(-74.16 77.85) rotate(-6.83)" fill="#d6d6e3"/><path d="M860,447.07a1.72,1.72,0,0,0,1.71,1.71h2.56a1.71,1.71,0,0,0,1.71-1.71.83.83,0,0,0,0-.2,1.71,1.71,0,0,0-1.69-1.5h-2.56a1.72,1.72,0,0,0-1.65,1.3A1.58,1.58,0,0,0,860,447.07Z" transform="translate(-39.7 -18.74)" fill="#e3edf9"/><path d="M852.33,447.07a1.72,1.72,0,0,0,1.71,1.71h2.56a1.71,1.71,0,0,0,1.71-1.71,1.68,1.68,0,0,0-.07-.47,1.61,1.61,0,0,0-.43-.73,1.67,1.67,0,0,0-1.2-.5H854a1.72,1.72,0,0,0-1.57,1A1.76,1.76,0,0,0,852.33,447.07Z" transform="translate(-39.7 -18.74)" fill="#e3edf9"/><path d="M845.51,447.07a1.72,1.72,0,0,0,1.71,1.71h2.56a1.71,1.71,0,0,0,1.71-1.71,1.62,1.62,0,0,0-.15-.71,1.74,1.74,0,0,0-1.55-1h-2.56a1.7,1.7,0,0,0-1.71,1.71Z" transform="translate(-39.7 -18.74)" fill="#e3edf9"/><path d="M837.83,447.07a1.72,1.72,0,0,0,1.71,1.71h2.56a1.71,1.71,0,0,0,1.4-2.69l-.2-.22a1.67,1.67,0,0,0-1.2-.5h-2.56a1.72,1.72,0,0,0-1.24.55A1.65,1.65,0,0,0,837.83,447.07Z" transform="translate(-39.7 -18.74)" fill="#e3edf9"/><path d="M860.05,446.66a1.58,1.58,0,0,0-.05.41,1.72,1.72,0,0,0,1.71,1.71h2.56a1.71,1.71,0,0,0,1.71-1.71.83.83,0,0,0,0-.2Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><path d="M852.47,446.39a1.76,1.76,0,0,0-.14.67,1.72,1.72,0,0,0,1.71,1.71h2.56a1.71,1.71,0,0,0,1.71-1.71,1.68,1.68,0,0,0-.07-.47Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><path d="M845.76,446.16a1.72,1.72,0,0,0-.26.9,1.72,1.72,0,0,0,1.71,1.71h2.56a1.71,1.71,0,0,0,1.71-1.71,1.62,1.62,0,0,0-.15-.71Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><path d="M837.83,447.07a1.72,1.72,0,0,0,1.71,1.71h2.56a1.71,1.71,0,0,0,1.4-2.69l-5.2-.18A1.65,1.65,0,0,0,837.83,447.07Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><path d="M822.49,453.89h49.45v-2.25a3.85,3.85,0,0,0-3.72-3.85l-39.66-1.37a5.88,5.88,0,0,0-6.08,5.87Z" transform="translate(-39.7 -18.74)" fill="#d6d6e3"/><path d="M1029.47,481c23.07-39.13,14.71-118.06,15.64-119.57.83-1.33-2.35-38.5-23.55-47.58-3.83-7.59-7.6-16.14-7.6-16.14a6.73,6.73,0,0,1-1.22.91q-.25-.68-.49-1.38c-.27-.79-.52-1.6-.77-2.41a15.53,15.53,0,0,0,1.81.46,7.54,7.54,0,0,0,4.84-.43,5.39,5.39,0,0,0,1.39-1.07c1.67-1.11,2.59-3.11,3.37-5l6.17-14.78c2.78-6.67,5.58-13.38,7.06-20.45a57.58,57.58,0,0,0-2.46-31.86c-1.46-3.88-3.48-7.76-6.91-10.08-6.87-4.66-16.43-1.44-24.28-4.17-2.58-.9-4.91-2.42-7.49-3.34-5.57-2-11.86-.93-17.22,1.56s-9.7,6.45-14.39,10c-2.31,1.77-6,3.6-8.72,6-2.64,2.06-4.67,4.55-4.28,7.83.44,3.75,4.39,6,8.07,6.88.61.14,1.24.25,1.86.36a36,36,0,0,0,15.37,59.8,84.36,84.36,0,0,1,4.86,10.93q.27.77.53,1.55c-6.06,1.72-10.8,3.15-11.75,3.94-2.87,2.38,3.14,23.22,3.14,23.22-1.53,1.94-3.09,4.15-4.67,6.52a140.55,140.55,0,0,0-22.16,60.57c-1,7.91-2.3,16-3.95,23.69L870,412.59l-.15,1.77-1.71-.42h0l-5.38-1.33-.21,1.21-.82-.39c-13.33-6.25-35.79-14.23-51-6-16.05,8.64,18.59,20.12,40.82,26.23-7.37.36-14.42,2.13-20,6.27-16.12,12.08,29.47,18.37,51,20.6l.87.09v.46l7.46.69,1.75.16.17,2.66s10.68,1.75,24.95,3.87c-16.29,4.07-36.42,6.89-50.4,8.54-14.82,1.74-27.44,12.06-31.42,26.45a23.52,23.52,0,0,0-.36,12.72c4.16,14.53-.92,121.42-2.07,144.44l-26.35,15.17s-41,5-13.69,14.61a56.16,56.16,0,0,0,7.53,2c-3.6,2.32-3.29,5.35,7.32,9.07,27.33,9.58,90.86-.42,90.86-.42s-1.39-11.26-3.65-20.62l.7.06s-6.56-24.41,3.39-36.72-1.67-106-1.67-106,17.42-7.21,69.49-7.68c42,10.78,62.47-27.81,62.18-47.76C1029.52,481.87,1029.5,481.41,1029.47,481Z" transform="translate(-39.7 -18.74)" fill="url(#07a0b5f0-40d7-4714-acbe-80fa7c137a96)"/><path d="M874.25,420.36l-4.45,18s-4-.9-10-2.44c-20.32-5.26-63.18-17.89-46-27.16,14.81-8,36.62-.22,49.57,5.85,4.74,2.23,8.3,4.23,9.89,5.17C873.93,420.16,874.25,420.36,874.25,420.36Z" transform="translate(-39.7 -18.74)" fill="#f8b9bf"/><path d="M873,425.44l-3.2,13s-4-.9-10-2.44l3.61-21.31c4.74,2.23,8.3,4.23,9.89,5.17Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><polygon points="833.31 420.93 820.89 417.86 824.75 395.1 834.68 397.55 833.31 420.93" fill="#d9dfe8"/><polygon points="833.31 420.93 827.95 419.61 829.97 396.39 834.68 397.55 833.31 420.93" opacity="0.1"/><path d="M992.85,345.4S969,331.62,958.4,371.15s-11.6,57.74-11.6,57.74l-75.32-15.06-2.39,27.51s80.53,26,90.66,24.11,43-57,43-57S1032.63,365.74,992.85,345.4Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><g opacity="0.1"><path d="M874.25,420.36l-4.45,18s-4-.9-10-2.44c-20.32-5.26-63.18-17.89-46-27.16,14.81-8,36.62-.22,49.57,5.85,4.74,2.23,8.3,4.23,9.89,5.17C873.93,420.16,874.25,420.36,874.25,420.36Z" transform="translate(-39.7 -18.74)"/><path d="M873,425.44l-3.2,13s-4-.9-10-2.44l3.61-21.31c4.74,2.23,8.3,4.23,9.89,5.17Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><polygon points="833.31 420.93 820.89 417.86 824.75 395.1 834.68 397.55 833.31 420.93"/><polygon points="833.31 420.93 827.95 419.61 829.97 396.39 834.68 397.55 833.31 420.93" opacity="0.1"/><path d="M992.85,346.4S969,332.62,958.4,372.15s-11.6,57.74-11.6,57.74l-75.32-15.06-2.39,27.51s80.53,26,90.66,24.11,43-57,43-57S1032.63,366.74,992.85,346.4Z" transform="translate(-39.7 -18.74)"/></g><path d="M841.15,651.7,810.4,669.41s-39.84,4.88-13.3,14.18,88.24-.41,88.24-.41-3.43-27.72-8.21-31.59S841.15,651.7,841.15,651.7Z" transform="translate(-39.7 -18.74)" fill="#68739d"/><path d="M961,453s-15.3,8-42.48,14.91c-15.93,4-35.87,6.84-49.65,8.46A35.81,35.81,0,0,0,838.35,502,22.84,22.84,0,0,0,838,514.4c4.53,15.83-2.23,144.51-2.23,144.51l46.7,4.32s-6.37-23.71,3.3-35.66-1.62-102.91-1.62-102.91,16.92-7,67.48-7.46c46.84,12,66.14-39.27,58.91-53.64S961,453,961,453Z" transform="translate(-39.7 -18.74)" fill="#6394e2"/><g opacity="0.1"><path d="M841.15,651.7,810.4,669.41s-39.84,4.88-13.3,14.18,88.24-.41,88.24-.41-3.43-27.72-8.21-31.59S841.15,651.7,841.15,651.7Z" transform="translate(-39.7 -18.74)"/><path d="M961,453s-15.3,8-42.48,14.91c-15.93,4-35.87,6.84-49.65,8.46A35.81,35.81,0,0,0,838.35,502,22.84,22.84,0,0,0,838,514.4c4.53,15.83-2.23,144.51-2.23,144.51l46.7,4.32s-6.37-23.71,3.3-35.66-1.62-102.91-1.62-102.91,16.92-7,67.48-7.46c46.84,12,66.14-39.27,58.91-53.64S961,453,961,453Z" transform="translate(-39.7 -18.74)"/></g><path d="M855.57,662.45l-30.75,17.71S785,685,811.52,694.34s88.24-.41,88.24-.41-3.43-27.72-8.21-31.59S855.57,662.45,855.57,662.45Z" transform="translate(-39.7 -18.74)" fill="#68739d"/><path d="M966,527.95c-50.56.46-67.48,7.46-67.48,7.46s11.29,91,1.62,102.91-3.3,35.66-3.3,35.66l-46.7-4.32s.08-1.52.21-4.24c1.12-22.36,6.05-126.16,2-140.27a22.84,22.84,0,0,1,.35-12.36,35.82,35.82,0,0,1,30.51-25.69c13.77-1.61,33.71-4.41,49.64-8.46l.78-.2c26.7-6.86,41.7-14.71,41.7-14.71s42.31-3.8,49.54,10.57a17,17,0,0,1,1.48,7.25C1026.71,500.94,1006.81,538.42,966,527.95Z" transform="translate(-39.7 -18.74)" fill="#6394e2"/><path d="M895.57,442.79l-1.71,18.5s-4.11-.29-10.22-.93c-20.87-2.17-65.14-8.27-49.49-20,13.46-10.08,36.18-5.68,49.89-1.6,5,1.5,8.84,2.95,10.55,3.64C895.22,442.64,895.57,442.79,895.57,442.79Z" transform="translate(-39.7 -18.74)" fill="#f8b9bf"/><path d="M1019.78,321.84s-6.26,4.9-13.91,10.28c-8.39,1.9-18.13,3.47-25.15,4.49,2.51-8,1-17-1.83-24.89a93.69,93.69,0,0,0-12.55-23.08l42.32-13.21c-3.32,8.41-1.82,18,1,26.34A86.85,86.85,0,0,0,1019.78,321.84Z" transform="translate(-39.7 -18.74)" fill="#f8b9bf"/><path d="M895.09,448l-1.23,13.29s-4.11-.29-10.22-.93l.4-21.61c5,1.5,8.84,2.95,10.55,3.64Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><polygon points="857.52 443.33 844.78 442.15 845.2 419.07 855.39 420.01 857.52 443.33" fill="#d9dfe8"/><path d="M1019.78,321.84s-6.26,4.9-13.91,10.28c-8.39,1.9-18.13,3.47-25.15,4.49,2.51-8,1-17-1.83-24.89,10.34-3,25.13-6.88,30.78-10A86.85,86.85,0,0,0,1019.78,321.84Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><path d="M1011.32,302.22s7.08,16.07,11.54,23.33-51.82,14-51.82,14-5.84-20.23-3.05-22.55S1006.61,306.92,1011.32,302.22Z" transform="translate(-39.7 -18.74)" fill="#d9dfe8"/><path d="M1026.43,481.56a50.63,50.63,0,0,1-8.76,11.34c-24.86,23.62-65.61-1-84-14.46,26.7-6.86,41.7-14.71,41.7-14.71s42.31-3.8,49.54,10.57A17,17,0,0,1,1026.43,481.56Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><path d="M1017.83,491.21c-28.26,26.84-77-8.7-90.14-19.17-2.13-1.7-3.32-2.75-3.32-2.75,5.19-4.86,9.75-15.16,13.36-27.76A243.61,243.61,0,0,0,945,404.75a136.5,136.5,0,0,1,21.52-58.83c1.53-2.3,3-4.45,4.53-6.33,10.67-13.57,28.6-22.19,28.6-22.19,37.84-11.06,42.93,45.07,41.92,46.69S1050.68,460,1017.83,491.21Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><path d="M1021.49,414.48s-24.33,59.4-34.06,62.79c-5.57,1.93-35.32-1.73-59.74-5.22-2.13-1.7-3.32-2.75-3.32-2.75,5.19-4.86,9.75-15.16,13.36-27.76l31.45,1.5s-1.75-18.14,2.87-58.82,30.23-30.6,30.23-30.6C1044.65,367.81,1021.49,414.48,1021.49,414.48Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><polygon points="857.52 443.33 852.02 442.82 850.56 419.57 855.39 420.01 857.52 443.33" opacity="0.1"/><path d="M1001.67,351s-25.61-10.07-30.23,30.6-2.87,58.82-2.87,58.82l-76.73-3.67,1.73,27.56s83.51,13.71,93.24,10.33,34.06-62.79,34.06-62.79S1044,365.18,1001.67,351Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><path d="M1003.39,290.78c-1.12-6.08,5.23-6,7.51-11.72l-42.32,13.21a93.4,93.4,0,0,1,7.84,12.47,35.11,35.11,0,0,0,6.73,1.3C993.24,307,996.39,297.07,1003.39,290.78Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><circle cx="984.12" cy="267.59" r="34.96" transform="translate(587.38 1204.16) rotate(-84.72)" fill="#f8b9bf"/><path d="M949.6,236c.43,3.64,4.27,5.86,7.84,6.68s7.44.86,10.57,2.77c5,3.08,6.35,9.92,5.72,15.8-.35,3.32-.85,7.39,1.87,9.32a7.25,7.25,0,0,0,2.8,1,26.26,26.26,0,0,0,8.62.3c1.68-.22,3.41-.6,5-.13,2.62.76,4.17,3.52,4.68,6.19s.23,5.45.64,8.14a16.9,16.9,0,0,0,13.32,13.74,7.33,7.33,0,0,0,4.7-.42c1.9-1,2.87-3.13,3.69-5.12l6-14.36c2.7-6.47,5.42-13,6.86-19.86a55.92,55.92,0,0,0-2.39-30.94c-1.42-3.76-3.38-7.53-6.71-9.79-6.67-4.53-16-1.4-23.58-4-2.51-.87-4.77-2.35-7.27-3.24-5.41-1.93-11.52-.91-16.73,1.52s-9.42,6.26-14,9.75C957.26,226.44,948.85,229.71,949.6,236Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><path d="M950.52,235.23c.43,3.64,4.27,5.86,7.84,6.68s7.44.86,10.57,2.77c5,3.08,6.35,9.92,5.72,15.8-.35,3.32-.85,7.39,1.87,9.32a7.25,7.25,0,0,0,2.8,1,26.26,26.26,0,0,0,8.62.3c1.68-.22,3.41-.6,5-.13,2.62.76,4.17,3.52,4.68,6.19s.23,5.45.64,8.14a16.9,16.9,0,0,0,13.32,13.74,7.33,7.33,0,0,0,4.7-.42c1.9-1,2.87-3.13,3.69-5.12l6-14.36c2.7-6.47,5.42-13,6.86-19.86a55.92,55.92,0,0,0-2.39-30.94c-1.42-3.76-3.38-7.53-6.71-9.79-6.67-4.53-16-1.4-23.58-4-2.51-.87-4.77-2.35-7.27-3.24-5.41-1.93-11.52-.91-16.73,1.52s-9.42,6.26-14,9.75C958.19,225.67,949.78,228.94,950.52,235.23Z" transform="translate(-39.7 -18.74)" fill="#b96b6b"/><path d="M979.48,373.34S966.13,425.2,952.84,430s-7.42,6.16-7.42,6.16" transform="translate(-39.7 -18.74)" opacity="0.1"/><rect x="925.9" y="544.58" width="14.51" height="95.37" fill="#d6d6e3"/><rect x="925.9" y="544.58" width="14.51" height="7.07" opacity="0.1"/><path d="M936.57,562.82v2a4.69,4.69,0,0,0,4.69,4.69h63.18a4.69,4.69,0,0,0,4.69-4.69v-2a4.69,4.69,0,0,0-4.69-4.69H941.26a4.69,4.69,0,0,0-4.69,4.69Z" transform="translate(-39.7 -18.74)" fill="#d6d6e3"/><path d="M937.65,559.84h70.41a4.67,4.67,0,0,0-3.62-1.71H941.26A4.67,4.67,0,0,0,937.65,559.84Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><rect x="873.56" y="634.76" width="119.21" height="11.4" rx="5.5" ry="5.5" fill="#d6d6e3"/><circle cx="986.03" cy="653.42" r="7.26" fill="#535461"/><circle cx="880.29" cy="653.42" r="7.26" fill="#535461"/><circle cx="933.16" cy="653.42" r="7.26" fill="#535461"/><rect x="917.74" y="427.44" width="114.03" height="17.62" rx="8.5" ry="8.5" fill="#d6d6e3"/><path d="M980.11,653.5s-5.7,5.63-14.51,0" transform="translate(-39.7 -18.74)" opacity="0.1"/><path d="M1071.47,455.17v1.39a7.25,7.25,0,0,1-7.25,7.25H964.69a7.25,7.25,0,0,1-7.25-7.25v-1.39Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><rect x="822.44" y="452.63" width="19.61" height="249.86" fill="#d6d6e3"/><rect x="822.44" y="452.63" width="19.61" height="16.2" opacity="0.1"/><rect x="232.94" y="551.4" width="14.51" height="95.37" fill="#d6d6e3"/><rect x="232.94" y="551.4" width="14.51" height="7.07" opacity="0.1"/><path d="M316.17,569.65v2a4.69,4.69,0,0,1-4.69,4.69H248.3a4.69,4.69,0,0,1-4.69-4.69v-2A4.69,4.69,0,0,1,248.3,565h63.18a4.69,4.69,0,0,1,4.69,4.69Z" transform="translate(-39.7 -18.74)" fill="#d6d6e3"/><path d="M315.1,566.66H244.68A4.67,4.67,0,0,1,248.3,565h63.18A4.67,4.67,0,0,1,315.1,566.66Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><rect x="180.59" y="641.58" width="119.21" height="11.4" rx="5.5" ry="5.5" fill="#d6d6e3"/><circle cx="187.33" cy="660.24" r="7.26" fill="#535461"/><circle cx="293.06" cy="660.24" r="7.26" fill="#535461"/><circle cx="240.19" cy="660.24" r="7.26" fill="#535461"/><path d="M272.64,660.32s5.7,5.63,14.51,0" transform="translate(-39.7 -18.74)" opacity="0.1"/><path d="M642.81,373.22s-16.28-29.59-10.33-55.31a51.17,51.17,0,0,0-2.85-32.24A86.06,86.06,0,0,0,622,271.93" transform="translate(-39.7 -18.74)" fill="none" stroke="#535461" stroke-miterlimit="10" stroke-width="2"/><path d="M625.61,255.69c.85,3.88-3.7,16.67-3.7,16.67s-9.49-9.7-10.35-13.58a7.19,7.19,0,1,1,14-3.09Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><path d="M641.94,274.62c-1.39,3.72-12.16,12-12.16,12s-2.7-13.3-1.3-17a7.19,7.19,0,1,1,13.47,5Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><path d="M649.5,311.44c-3.08,2.51-16.55,4.2-16.55,4.2s4.39-12.84,7.47-15.35a7.19,7.19,0,1,1,9.08,11.15Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><path d="M648.95,340.58c-2.61,3-15.6,6.94-15.6,6.94s2.15-13.4,4.76-16.39a7.19,7.19,0,1,1,10.83,9.45Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><path d="M615.2,290.59c3.38,2.09,16.95,2,16.95,2s-6-12.17-9.38-14.26a7.19,7.19,0,1,0-7.57,12.22Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><path d="M615,324.69c3.85,1,16.78-3.12,16.78-3.12s-9.37-9.82-13.22-10.8A7.19,7.19,0,0,0,615,324.69Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><path d="M619.33,357.85c3.62,1.62,17.07-.24,17.07-.24s-7.58-11.26-11.2-12.88a7.19,7.19,0,0,0-5.87,13.13Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><path d="M625.61,255.69c.85,3.88-3.7,16.67-3.7,16.67s-9.49-9.7-10.35-13.58a7.19,7.19,0,1,1,14-3.09Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><path d="M641.94,274.62c-1.39,3.72-12.16,12-12.16,12s-2.7-13.3-1.3-17a7.19,7.19,0,1,1,13.47,5Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><path d="M649.5,311.44c-3.08,2.51-16.55,4.2-16.55,4.2s4.39-12.84,7.47-15.35a7.19,7.19,0,1,1,9.08,11.15Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><path d="M648.95,340.58c-2.61,3-15.6,6.94-15.6,6.94s2.15-13.4,4.76-16.39a7.19,7.19,0,1,1,10.83,9.45Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><path d="M615.2,290.59c3.38,2.09,16.95,2,16.95,2s-6-12.17-9.38-14.26a7.19,7.19,0,1,0-7.57,12.22Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><path d="M615,324.69c3.85,1,16.78-3.12,16.78-3.12s-9.37-9.82-13.22-10.8A7.19,7.19,0,0,0,615,324.69Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><path d="M619.33,357.85c3.62,1.62,17.07-.24,17.07-.24s-7.58-11.26-11.2-12.88a7.19,7.19,0,0,0-5.87,13.13Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><path d="M636.19,455.29h0a17.14,17.14,0,0,1-17.11-18.22l4.79-75.9h24.64l4.79,75.9A17.14,17.14,0,0,1,636.19,455.29Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><rect x="83.6" y="63.42" width="14" height="58" fill="#348eed" opacity="0.1"/><rect x="101.6" y="63.42" width="14" height="58" fill="#348eed" opacity="0.1"/><rect x="119.6" y="63.42" width="14" height="58" fill="#348eed" opacity="0.1"/><rect x="137.6" y="63.42" width="14" height="58" fill="#348eed" opacity="0.1"/><rect x="173.6" y="63.42" width="14" height="58" fill="#348eed" opacity="0.1"/><rect x="191.6" y="63.42" width="14" height="58" fill="#348eed" opacity="0.1"/><rect x="83.6" y="74.42" width="14" height="3" fill="#348eed" opacity="0.1"/><rect x="83.6" y="110.42" width="14" height="3" fill="#348eed" opacity="0.1"/><rect x="101.6" y="74.42" width="14" height="3" fill="#348eed" opacity="0.1"/><rect x="101.6" y="110.42" width="14" height="3" fill="#348eed" opacity="0.1"/><rect x="119.6" y="74.42" width="14" height="3" fill="#348eed" opacity="0.1"/><rect x="119.6" y="110.42" width="14" height="3" fill="#348eed" opacity="0.1"/><rect x="137.6" y="74.42" width="14" height="3" fill="#348eed" opacity="0.1"/><rect x="137.6" y="110.42" width="14" height="3" fill="#348eed" opacity="0.1"/><rect x="155.6" y="74.42" width="14" height="3" fill="#348eed" opacity="0.1"/><rect x="155.6" y="110.42" width="14" height="3" fill="#348eed" opacity="0.1"/><rect x="173.6" y="74.42" width="14" height="3" fill="#348eed" opacity="0.1"/><rect x="173.6" y="110.42" width="14" height="3" fill="#348eed" opacity="0.1"/><rect x="191.6" y="74.42" width="14" height="3" fill="#348eed" opacity="0.1"/><rect x="191.6" y="110.42" width="14" height="3" fill="#348eed" opacity="0.1"/><rect x="155.6" y="63.42" width="14" height="58" fill="#348eed" opacity="0.1"/><rect x="257.29" y="82.16" width="14" height="58" transform="translate(-61.94 102.56) rotate(-24.84)" fill="#348eed" opacity="0.1"/><rect x="250.36" y="94.69" width="14" height="3" transform="translate(-56.29 98.27) rotate(-24.84)" fill="#348eed" opacity="0.1"/><rect x="265.48" y="127.36" width="14" height="3" transform="translate(-68.62 107.64) rotate(-24.84)" fill="#348eed" opacity="0.1"/><path d="M428.84,680.21,403.43,664c-.13-22.83-.49-128.82,4.26-143a23.29,23.29,0,0,0,.2-12.61c-3.3-14.41-15.34-25.17-29.93-27.54-13.76-2.24-33.56-5.91-49.5-10.65,14.21-1.47,24.86-2.74,24.86-2.74l.28-2.63,9.15-.44V464l.87-.05c21.37-1.27,66.75-5.5,51.33-18.16-5.29-4.34-12.19-6.39-19.47-7.08,22.26-5.08,57.05-14.92,41.54-24.17-14.74-8.78-37.31-1.88-50.78,3.73l-.83.35-.15-1.21-5.38,1.08h0l-1.71.34-.08-1.76-75.49,11.66a257.66,257.66,0,0,0-3.08-25.81c1.69-11.26,9.55-27.68,6.78-36.49-3.22-10.23-16.44-13.58-22-22.82-1.46-2.41-2.91-4.67-4.33-6.65a70,70,0,0,0-10.65-11.51,48.6,48.6,0,0,1,3.92-17.25,83.57,83.57,0,0,1,5.28-10.6,35.6,35.6,0,0,0,26.44-41c4.78,2.05,10.59,2.26,13.58-1.74l-1.42-.55c.14-.15.28-.3.4-.47-2.91-1.11-6-2.37-8.28-4.39a9.7,9.7,0,0,1-1.45-2.15c-1.38-2.8-1.22-6.16-2.54-9a10.41,10.41,0,0,0-2.59-3.38,17.83,17.83,0,0,0-8.46-4.84c-3.61-1.05-7.41-1.58-10.87-3a36.75,36.75,0,0,0-39.11-11l-1.25.43a16.31,16.31,0,0,0-31.81-7.2,16.27,16.27,0,0,1,4.36-9.74c-.26.22-.53.43-.78.66a16.32,16.32,0,0,0-.71,23.07l.29.28a16.39,16.39,0,0,0,4.09,3.58,16.32,16.32,0,0,1-10.76-13.37c0,.34,0,.68,0,1A16.32,16.32,0,0,0,225,230.13l.45-.05-.24.33a36.71,36.71,0,0,0,3.3,45.45,17,17,0,0,0,2.62,4.2,13.61,13.61,0,0,0,1.21,1.22,15.51,15.51,0,0,0,10.46,4.82q1,1.19,2.13,2.29a59.52,59.52,0,0,1-2.58,8.24,87.34,87.34,0,0,1-7.92,15.27c-21.6,6.14-23.5,42.82-22.72,44.21.93,1.66-3.22,59.26,12.78,128.84-.66,19.89,10.94,52.78,52.12,44.11C328.11,531.81,345,539.7,345,539.7s-4.89,89.57,2.09,102.61c4.37,8.17,1.27,20.17-2,28.64a31.47,31.47,0,0,0-2.88,6.64c-1,2.11-1.73,3.39-1.73,3.39l.7,0c-2.64,9.17-4.51,20.24-4.51,20.24s62.43,12.67,89.89,4.38c10.66-3.22,11.1-6.2,7.64-8.66a55.62,55.62,0,0,0,7.54-1.65C469.22,687,428.84,680.21,428.84,680.21Z" transform="translate(-39.7 -18.74)" fill="url(#81276d2b-ddf3-474d-b794-9223ea4701e2)"/><path d="M293,255a36,36,0,1,1-36-36A36,36,0,0,1,293,255Z" transform="translate(-39.7 -18.74)" fill="#fa595f"/><path d="M374.09,424.13l3.65,18.22s4.06-.73,10.07-2c20.53-4.35,63.91-15.09,47.11-25.11-14.45-8.61-36.58-1.84-49.78,3.66-4.84,2-8.48,3.86-10.11,4.73C374.42,423.94,374.09,424.13,374.09,424.13Z" transform="translate(-39.7 -18.74)" fill="#f8b9bf"/><path d="M375.12,429.27l2.62,13.08s4.06-.73,10.07-2l-2.67-21.45c-4.84,2-8.48,3.86-10.11,4.73Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><polygon points="334.79 424.74 347.33 422.23 344.49 399.32 334.45 401.33 334.79 424.74" fill="#d9dfe8"/><polygon points="334.79 424.74 340.2 423.65 339.21 400.38 334.45 401.33 334.79 424.74" opacity="0.1"/><path d="M258.91,344s24.41-12.72,33.28,27.25,9,58.19,9,58.19l75.92-11.73,1.18,27.59s-81.6,22.43-91.63,20.09-40.48-58.85-40.48-58.85S218.28,362.59,258.91,344Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><g opacity="0.1"><path d="M374.09,424.13l3.65,18.22s4.06-.73,10.07-2c20.53-4.35,63.91-15.09,47.11-25.11-14.45-8.61-36.58-1.84-49.78,3.66-4.84,2-8.48,3.86-10.11,4.73C374.42,423.94,374.09,424.13,374.09,424.13Z" transform="translate(-39.7 -18.74)"/><path d="M375.12,429.27l2.62,13.08s4.06-.73,10.07-2l-2.67-21.45c-4.84,2-8.48,3.86-10.11,4.73Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><polygon points="334.79 424.74 347.33 422.23 344.49 399.32 334.45 401.33 334.79 424.74"/><polygon points="334.79 424.74 340.2 423.65 339.21 400.38 334.45 401.33 334.79 424.74" opacity="0.1"/><path d="M260.91,346s24.41-12.72,33.28,27.25,9,58.19,9,58.19l75.92-11.73,1.18,27.59s-81.6,22.43-91.63,20.09-40.48-58.85-40.48-58.85S220.28,364.59,260.91,346Z" transform="translate(-39.7 -18.74)"/></g><path d="M397,656.71l29.94,19s39.59,6.63,12.66,14.76-88.13-4.3-88.13-4.3,4.65-27.54,9.6-31.19S397,656.71,397,656.71Z" transform="translate(-39.7 -18.74)" fill="#f37291"/><path d="M286,452.9s14.93,8.67,41.78,16.77c15.74,4.75,35.54,8.42,49.22,10.65a35.81,35.81,0,0,1,29.35,27,22.84,22.84,0,0,1-.19,12.36C400.94,535.3,402,664.15,402,664.15l-46.84,2.25s7.41-23.41-1.72-35.77S359.6,527.9,359.6,527.9s-16.59-7.74-67.09-10.43c-47.33,10-64.34-42.15-56.48-56.19S286,452.9,286,452.9Z" transform="translate(-39.7 -18.74)" fill="#96a2d0"/><g opacity="0.1"><path d="M397,656.71l29.94,19s39.59,6.63,12.66,14.76-88.13-4.3-88.13-4.3,4.65-27.54,9.6-31.19S397,656.71,397,656.71Z" transform="translate(-39.7 -18.74)"/><path d="M286,452.9s14.93,8.67,41.78,16.77c15.74,4.75,35.54,8.42,49.22,10.65a35.81,35.81,0,0,1,29.35,27,22.84,22.84,0,0,1-.19,12.36C400.94,535.3,402,664.15,402,664.15l-46.84,2.25s7.41-23.41-1.72-35.77S359.6,527.9,359.6,527.9s-16.59-7.74-67.09-10.43c-47.33,10-64.34-42.15-56.48-56.19S286,452.9,286,452.9Z" transform="translate(-39.7 -18.74)"/></g><path d="M382.08,666.82l29.94,19s39.59,6.63,12.66,14.76-88.13-4.3-88.13-4.3,4.65-27.54,9.6-31.19S382.08,666.82,382.08,666.82Z" transform="translate(-39.7 -18.74)" fill="#f37291"/><path d="M277.64,527.57c50.5,2.69,67.09,10.43,67.09,10.43s-4.79,87.82,2,100.6c7.25,13.56-6.48,37.9-6.48,37.9l46.84-2.25s0-1.52,0-4.24c-.14-22.38-.48-126.3,4.17-140.23a22.84,22.84,0,0,0,.19-12.36,35.82,35.82,0,0,0-29.35-27c-13.69-2.22-33.48-5.89-49.22-10.64l-.77-.24c-26.37-8-41-16.53-41-16.53s-31.19-2.16-39,11.88c-1,1.82-5.31,5.4-5.49,8.29C225.45,502.52,236.46,536.24,277.64,527.57Z" transform="translate(-39.7 -18.74)" fill="#96a2d0"/><path d="M351.81,445.6l.89,18.56s4.12-.11,10.26-.48c20.95-1.25,65.45-5.39,50.33-17.8-13-10.67-35.9-7.27-49.77-3.8-5.09,1.28-9,2.56-10.7,3.17C352.16,445.47,351.81,445.6,351.81,445.6Z" transform="translate(-39.7 -18.74)" fill="#f8b9bf"/><path d="M233,319.29s6,5.17,13.44,10.89c8.3,2.26,18,4.27,24.93,5.6-2.15-8.15-.24-17,2.93-24.79a93.69,93.69,0,0,1,13.56-22.51l-41.7-15.07c2.95,8.55,1,18.1-2.17,26.27A86.85,86.85,0,0,1,233,319.29Z" transform="translate(-39.7 -18.74)" fill="#f8b9bf"/><path d="M352.06,450.83l.64,13.33s4.12-.11,10.26-.48l.56-21.61c-5.09,1.28-9,2.56-10.7,3.17Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><polygon points="309.62 446.05 322.39 445.44 322.99 422.36 312.77 422.85 309.62 446.05" fill="#d9dfe8"/><path d="M227.53,488.58c27,28.07,77.35-5.29,90.89-15.17,2.2-1.61,3.43-2.6,3.43-2.6-5-5.09-13-9.8-16.07-22.55a277,277,0,0,1-5.94-39.52c-.83-10.55,10.07-30.64,6.92-40.66s-16.12-13.31-21.57-22.38c-1.43-2.36-2.85-4.58-4.25-6.52-10.06-14-27.59-23.43-27.59-23.43C216,303,213.07,356.34,214,358S210.66,418.46,227.53,488.58Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><path d="M227.25,411.76s21.69,60.42,31.26,64.23c5.48,2.18,35.37-.17,59.91-2.58,2.2-1.61,3.43-2.6,3.43-2.6-5-5.09-9.07-15.58-12.13-28.32l-31.49.11s2.55-18-.27-58.89-28.85-31.9-28.85-31.9C206.18,364.12,227.25,411.76,227.25,411.76Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><polygon points="309.62 446.05 315.13 445.79 317.62 422.62 312.77 422.85 309.62 446.05" opacity="0.1"/><path d="M249.85,349.21s26-8.93,28.85,31.9S279,440,279,440l76.82-.28-2.95,27.46s-84,10-93.6,6.21S228,409.17,228,409.17,206.91,361.52,249.85,349.21Z" transform="translate(-39.7 -18.74)" fill="#348eed"/><path d="M250.8,289c1.39-6-5-6.19-7-12L285.52,292a93.4,93.4,0,0,0-8.38,12.11,35.11,35.11,0,0,1-6.78,1C260.22,305.61,257.51,295.58,250.8,289Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><circle cx="271.07" cy="266.67" r="34.96" transform="translate(-52.19 -5.41) rotate(-2.75)" fill="#f8b9bf"/><path d="M253,375.14s11.06,52.39,24.12,57.74,7.14,6.49,7.14,6.49" transform="translate(-39.7 -18.74)" opacity="0.1"/><path d="M298.58,404.73s-9.24,2.89-20-10.92" transform="translate(-39.7 -18.74)" opacity="0.1"/><circle cx="189.3" cy="199.26" r="16" fill="#fa595f"/><path d="M217.76,226.45a16,16,0,0,1,0-21.89c-.26.21-.52.42-.76.65a16,16,0,0,0,21.92,23.32c.25-.23.47-.48.69-.72A16,16,0,0,1,217.76,226.45Z" transform="translate(-39.7 -18.74)" fill="#fa595f"/><path d="M226.9,232.49a16,16,0,0,1-16.84-14c0,.33,0,.66,0,1a16,16,0,1,0,31.94-2c0-.34-.07-.66-.11-1A16,16,0,0,1,226.9,232.49Z" transform="translate(-39.7 -18.74)" fill="#fa595f"/><path d="M283.95,231.91c3.73,1.84,8,2.35,12,3.51s8.08,3.28,9.84,7.06c1.29,2.78,1.14,6.07,2.49,8.82,1.94,4,6.42,5.84,10.54,7.41-3.54,4.75-11.14,3.46-16.1.23s-9.23-8-15-9.25a14.08,14.08,0,0,0-14.81,6.59c-1.58,2.77-2.14,6-2.92,9.08-2,8.12-6,16.2-13,20.81s-17.43,4.58-22.92-1.73c-3.2-3.68-4.27-8.69-5.22-13.47a27.37,27.37,0,0,1-.77-6.81c.32-5.74,4.14-10.63,8-14.89,4.55-5,9.39-9.8,14.23-14.57,4.18-4.12,9-11.1,15.3-11.59C272.87,222.53,278,229,283.95,231.91Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><path d="M282.95,230.91c3.73,1.84,8,2.35,12,3.51s8.08,3.28,9.84,7.06c1.29,2.78,1.14,6.07,2.49,8.82,1.94,4,6.42,5.84,10.54,7.41-3.54,4.75-11.14,3.46-16.1.23s-9.23-8-15-9.25a14.08,14.08,0,0,0-14.81,6.59c-1.58,2.77-2.14,6-2.92,9.08-2,8.12-6,16.2-13,20.81s-17.43,4.58-22.92-1.73c-3.2-3.68-4.27-8.69-5.22-13.47a27.37,27.37,0,0,1-.77-6.81c.32-5.74,4.14-10.63,8-14.89,4.55-5,9.39-9.8,14.23-14.57,4.18-4.12,9-11.1,15.3-11.59C271.87,221.53,277,228,282.95,230.91Z" transform="translate(-39.7 -18.74)" fill="#fa595f"/><rect x="141.58" y="434.26" width="114.03" height="17.62" rx="8.5" ry="8.5" fill="#d6d6e3"/><path d="M181.28,462v1.39a7.25,7.25,0,0,0,7.25,7.25h99.53a7.25,7.25,0,0,0,7.25-7.25V462Z" transform="translate(-39.7 -18.74)" opacity="0.1"/><rect x="342.39" y="452.63" width="19.61" height="249.83" fill="#d6d6e3"/><rect x="342.39" y="452.63" width="19.61" height="16.2" opacity="0.1"/><rect x="333.01" y="434.72" width="518.42" height="32.4" fill="#d6d6e3"/></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
2013-9-30: Created.
-->
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="iconfont" horiz-adv-x="1024" >
<font-face
font-family="iconfont"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
ascent="896"
descent="-128"
/>
<missing-glyph />
<glyph glyph-name="bear" unicode="&#58880;" d="M1024 683.008q0-70.656-46.08-121.856 46.08-89.088 46.08-193.536 0-96.256-39.936-181.248t-109.568-147.968-162.816-99.328-199.68-36.352-199.68 36.352-162.304 99.328-109.568 147.968-40.448 181.248q0 104.448 46.08 193.536-46.08 51.2-46.08 121.856 0 37.888 13.824 71.168t37.376 58.368 55.808 39.424 68.096 14.336q43.008 0 78.848-18.432t59.392-50.176q46.08 17.408 96.256 26.624t102.4 9.216 102.4-9.216 96.256-26.624q24.576 31.744 59.904 50.176t78.336 18.432q36.864 0 68.608-14.336t55.296-39.424 37.376-58.368 13.824-71.168zM205.824 268.288q10.24 0 18.944 10.24t15.36 28.672 10.24 42.496 3.584 51.712-3.584 51.712-10.24 41.984-15.36 28.16-18.944 10.24q-9.216 0-17.92-10.24t-15.36-28.16-10.752-41.984-4.096-51.712 4.096-51.712 10.752-42.496 15.36-28.672 17.92-10.24zM512-31.744000000000028q53.248 0 99.84 13.312t81.408 35.84 54.784 52.736 19.968 65.024q0 33.792-19.968 64t-54.784 52.736-81.408 35.84-99.84 13.312-99.84-13.312-81.408-35.84-54.784-52.736-19.968-64q0-34.816 19.968-65.024t54.784-52.736 81.408-35.84 99.84-13.312zM818.176 268.288q10.24 0 18.944 10.24t15.36 28.672 10.24 42.496 3.584 51.712-3.584 51.712-10.24 41.984-15.36 28.16-18.944 10.24q-9.216 0-17.92-10.24t-15.36-28.16-10.752-41.984-4.096-51.712 4.096-51.712 10.752-42.496 15.36-28.672 17.92-10.24zM512 235.51999999999998q39.936 0 68.096-9.728t28.16-24.064-28.16-24.064-68.096-9.728-68.096 9.728-28.16 24.064 28.16 24.064 68.096 9.728z" horiz-adv-x="1024" />
<glyph glyph-name="resize-vertical" unicode="&#59331;" d="M512 896C229.248 896 0 666.752 0 384s229.248-512 512-512 512 229.248 512 512S794.752 896 512 896zM576 192l64 0-128-128-128 128 64 0L448 576l-64 0 128 128 128-128-64 0L576 192z" horiz-adv-x="1024" />
<glyph glyph-name="chuizhifanzhuan" unicode="&#58977;" d="M286.01856 645.08416l472.4224 0 0-146.2784-472.4224 0 0 146.2784ZM87.19872 420.37248l885.80096 0 0-70.87104-885.80096 0 0 70.87104ZM773.55008 268.05248l0-31.0016L270.6688 237.05088l0 31.0016L773.55008 268.05248zM773.55008 121.4208l0-31.0016L270.6688 90.4192l0 31.0016L773.55008 121.4208zM742.54848 240.75776l31.0016 0 0-123.04896-31.0016 0L742.54848 240.75776zM270.70464 240.57856l31.0016 0 0-123.04896-31.0016 0L270.70464 240.57856z" horiz-adv-x="1024" />
<glyph glyph-name="shuipingfanzhuan" unicode="&#58978;" d="M252.76928 596.096l146.2784 0 0-472.42752-146.2784 0 0 472.42752ZM477.48096 810.65472l70.87104 0 0-885.80608-70.87104 0 0 885.80608ZM629.80096 611.2l31.0016 0 0-502.88128-31.0016 0L629.80096 611.2zM776.42752 611.2l31.0016 0 0-502.88128-31.0016 0L776.42752 611.2zM657.09056 580.1984l0 31.0016 123.04896 0 0-31.0016L657.09056 580.1984zM657.27488 108.35456l0 31.0016 123.04896 0 0-31.0016L657.27488 108.35456z" horiz-adv-x="1024" />
<glyph glyph-name="qq" unicode="&#58889;" d="M147.372058 491.394284c-5.28997-13.909921 2.431986-22.698872 0-75.732573-0.682996-14.25092-62.165649-78.762555-86.569511-145.791177-24.192863-66.517625-27.519845-135.978232 9.811944-163.285078 37.419789-27.305846 72.191593 90.879487 76.757567 73.685584 1.961989-7.509958 4.436975-15.317914 7.423958-23.338868a331.945126 331.945126 0 0 1 61.140655-101.162429c5.929967-6.783962-36.009797-19.199892-61.140655-61.99365-25.173858-42.751759 7.209959-120.49032 132.223254-120.49032 161.27909 0 197.288886 56.70368 200.574868 56.447681 12.031932-0.895995 12.841928 0 25.599855 0 15.572912 0 9.129948-1.279993 23.593867 0 7.807956 0.682996 86.186514-67.839617 194.686901-56.447681 184.873956 19.45589 156.586116 81.40754 142.079198 120.48932-15.103915 40.83277-68.692612 59.946662-66.303626 62.549647 44.28775 48.938724 51.285711 79.018554 66.346626 123.9463 6.143965 18.473896 49.066723-101.674426 82.089537-73.685584 13.781922 11.690934 41.301767 60.24566 13.781922 163.285078-27.519845 102.996419-80.767544 126.505286-79.615551 145.791177 2.389987 40.191773 1.023994 68.436614-1.023994 75.732573-9.812945 35.4128-30.378829 27.604844-30.378829 35.4128C858.450044 730.752933 705.10691 896 515.966978 896s-342.398067-165.289067-342.398068-369.192916c0-16.169909-14.378919-4.223976-26.154852-35.4128z" horiz-adv-x="1024" />
<glyph glyph-name="frown" unicode="&#59262;" d="M336 475m-48 0a48 48 0 1 1 96 0 48 48 0 1 1-96 0ZM688 475m-48 0a48 48 0 1 1 96 0 48 48 0 1 1-96 0ZM512 832C264.6 832 64 631.4 64 384s200.6-448 448-448 448 200.6 448 448S759.4 832 512 832z m263-711c-34.2-34.2-74-61-118.3-79.8C611 21.8 562.3 12 512 12c-50.3 0-99 9.8-144.8 29.2-44.3 18.7-84.1 45.6-118.3 79.8-34.2 34.2-61 74-79.8 118.3C149.8 285 140 333.7 140 384s9.8 99 29.2 144.8c18.7 44.3 45.6 84.1 79.8 118.3 34.2 34.2 74 61 118.3 79.8C413 746.2 461.7 756 512 756c50.3 0 99-9.8 144.8-29.2 44.3-18.7 84.1-45.6 118.3-79.8 34.2-34.2 61-74 79.8-118.3C874.2 483 884 434.3 884 384s-9.8-99-29.2-144.8c-18.7-44.3-45.6-84.1-79.8-118.2zM512 363c-85.5 0-155.6-67.3-160-151.6-0.2-4.6 3.4-8.4 8-8.4h48.1c4.2 0 7.8 3.2 8.1 7.4C420 259.9 461.5 299 512 299s92.1-39.1 95.8-88.6c0.3-4.2 3.9-7.4 8.1-7.4H664c4.6 0 8.2 3.8 8 8.4-4.4 84.3-74.5 151.6-160 151.6z" horiz-adv-x="1024" />
<glyph glyph-name="meh" unicode="&#59264;" d="M336 475m-48 0a48 48 0 1 1 96 0 48 48 0 1 1-96 0ZM688 475m-48 0a48 48 0 1 1 96 0 48 48 0 1 1-96 0ZM512 832C264.6 832 64 631.4 64 384s200.6-448 448-448 448 200.6 448 448S759.4 832 512 832z m263-711c-34.2-34.2-74-61-118.3-79.8C611 21.8 562.3 12 512 12c-50.3 0-99 9.8-144.8 29.2-44.3 18.7-84.1 45.6-118.3 79.8-34.2 34.2-61 74-79.8 118.3C149.8 285 140 333.7 140 384s9.8 99 29.2 144.8c18.7 44.3 45.6 84.1 79.8 118.3 34.2 34.2 74 61 118.3 79.8C413 746.2 461.7 756 512 756c50.3 0 99-9.8 144.8-29.2 44.3-18.7 84.1-45.6 118.3-79.8 34.2-34.2 61-74 79.8-118.3C874.2 483 884 434.3 884 384s-9.8-99-29.2-144.8c-18.7-44.3-45.6-84.1-79.8-118.2zM664 331H360c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8z" horiz-adv-x="1024" />
<glyph glyph-name="smile" unicode="&#59267;" d="M336 475m-48 0a48 48 0 1 1 96 0 48 48 0 1 1-96 0ZM688 475m-48 0a48 48 0 1 1 96 0 48 48 0 1 1-96 0ZM512 832C264.6 832 64 631.4 64 384s200.6-448 448-448 448 200.6 448 448S759.4 832 512 832z m263-711c-34.2-34.2-74-61-118.3-79.8C611 21.8 562.3 12 512 12c-50.3 0-99 9.8-144.8 29.2-44.3 18.7-84.1 45.6-118.3 79.8-34.2 34.2-61 74-79.8 118.3C149.8 285 140 333.7 140 384s9.8 99 29.2 144.8c18.7 44.3 45.6 84.1 79.8 118.3 34.2 34.2 74 61 118.3 79.8C413 746.2 461.7 756 512 756c50.3 0 99-9.8 144.8-29.2 44.3-18.7 84.1-45.6 118.3-79.8 34.2-34.2 61-74 79.8-118.3C874.2 483 884 434.3 884 384s-9.8-99-29.2-144.8c-18.7-44.3-45.6-84.1-79.8-118.2zM664 363h-48.1c-4.2 0-7.8-3.2-8.1-7.4C604 306.1 562.5 267 512 267s-92.1 39.1-95.8 88.6c-0.3 4.2-3.9 7.4-8.1 7.4H360c-4.6 0-8.2-3.8-8-8.4 4.4-84.3 74.5-151.6 160-151.6s155.6 67.3 160 151.6c0.2 4.6-3.4 8.4-8 8.4z" horiz-adv-x="1024" />
<glyph glyph-name="man" unicode="&#59362;" d="M874 776H622c-3.3 0-6-2.7-6-6v-56c0-3.3 2.7-6 6-6h160.4L583.1 508.7c-50 38.5-111 59.3-175.1 59.3-76.9 0-149.3-30-203.6-84.4S120 356.9 120 280s30-149.3 84.4-203.6C258.7 22 331.1-8 408-8s149.3 30 203.6 84.4C666 130.7 696 203.1 696 280c0 64.1-20.8 124.9-59.2 174.9L836 654.1V494c0-3.3 2.7-6 6-6h56c3.3 0 6 2.7 6 6V746c0 16.5-13.5 30-30 30zM408 68c-116.9 0-212 95.1-212 212s95.1 212 212 212 212-95.1 212-212-95.1-212-212-212z" horiz-adv-x="1024" />
<glyph glyph-name="woman" unicode="&#59365;" d="M909.7 739.4l-42.2 42.2c-3.1 3.1-8.2 3.1-11.3 0L764 689.4l-84.2 84.2c-3.1 3.1-8.2 3.1-11.3 0l-42.1-42.1c-3.1-3.1-3.1-8.1 0-11.3l84.2-84.2-135.5-135.3c-50 38.5-111 59.3-175.1 59.3-76.9 0-149.3-30-203.6-84.4S112 348.9 112 272s30-149.3 84.4-203.6C250.7 14 323.1-16 400-16s149.3 30 203.6 84.4C658 122.7 688 195.1 688 272c0 64.2-20.9 125.1-59.3 175.1l135.4 135.4 84.2-84.2c3.1-3.1 8.2-3.1 11.3 0l42.1 42.1c3.1 3.1 3.1 8.1 0 11.3l-84.2 84.2 92.2 92.2c3.1 3.1 3.1 8.2 0 11.3zM400 60c-116.9 0-212 95.1-212 212s95.1 212 212 212 212-95.1 212-212-95.1-212-212-212z" horiz-adv-x="1024" />
</font>
</defs></svg>
This source diff could not be displayed because it is too large. You can view the blob instead.
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><meta content=yes name=apple-mobile-web-app-capable><meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><link rel=icon href=/ccc.png><link rel=stylesheet href=//at.alicdn.com/t/font_1996389_21r6b2e5cqci.css><title></title><link href=/css/chunk-04497344.c9ab9860.css rel=prefetch><link href=/css/chunk-0fb760a4.5c30cb40.css rel=prefetch><link href=/css/chunk-1021e4ee.17ba2048.css rel=prefetch><link href=/css/chunk-14b9857b.0dc416de.css rel=prefetch><link href=/css/chunk-2c359864.0dc416de.css rel=prefetch><link href=/css/chunk-3385141a.0dc416de.css rel=prefetch><link href=/css/chunk-3cca9940.6014cc43.css rel=prefetch><link href=/css/chunk-6b77ef07.70decc8e.css rel=prefetch><link href=/css/chunk-cb8a95a8.d27fc58e.css rel=prefetch><link href=/css/chunk-cc77621c.8797b2b5.css rel=prefetch><link href=/js/chunk-04497344.0c8a3138.js rel=prefetch><link href=/js/chunk-0fb760a4.56bf0a09.js rel=prefetch><link href=/js/chunk-1021e4ee.5d6268de.js rel=prefetch><link href=/js/chunk-14b9857b.ae43b7c1.js rel=prefetch><link href=/js/chunk-1f11ec07.766ad876.js rel=prefetch><link href=/js/chunk-2c359864.f1f45686.js rel=prefetch><link href=/js/chunk-2d210f61.9e612a95.js rel=prefetch><link href=/js/chunk-3385141a.16d7705b.js rel=prefetch><link href=/js/chunk-3cca9940.f6b28725.js rel=prefetch><link href=/js/chunk-5a4e13d5.6ebd883c.js rel=prefetch><link href=/js/chunk-6b77ef07.83a59a2a.js rel=prefetch><link href=/js/chunk-780401d4.2594e2ad.js rel=prefetch><link href=/js/chunk-cb8a95a8.276d9630.js rel=prefetch><link href=/js/chunk-cc77621c.209c3f4a.js rel=prefetch><link href=/js/chunk-d710b6d2.9eff4b27.js rel=prefetch><link href=/css/app.e3db6847.css rel=preload as=style><link href=/css/chunk-vendors.a0428467.css rel=preload as=style><link href=/js/app.1617abb1.js rel=preload as=script><link href=/js/chunk-vendors.d7daa525.js rel=preload as=script><link href=/css/chunk-vendors.a0428467.css rel=stylesheet><link href=/css/app.e3db6847.css rel=stylesheet></head><body><noscript><strong>We're sorry but iview-admin doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=/js/chunk-vendors.d7daa525.js></script><script src=/js/app.1617abb1.js></script></body></html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-04497344"],{1732:function(t,e,r){},a3b6:function(t,e,r){"use strict";var n=r("1732"),o=r.n(n);o.a},e1fd:function(t,e,r){"use strict";r.r(e);var n=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"tfhref test-1"},[t._l(t.moduleList,(function(e){return r("div",{key:e.id,staticClass:"tfhref_wrapper"},t._l(e.acraoList,(function(t){return r("Acrao",{key:t.id,attrs:{config:t}})})),1)})),r("div",{directives:[{name:"show",rawName:"v-show",value:t.isIframeShow,expression:"isIframeShow"}],staticClass:"kefu"},[r("div",{staticClass:"kefu_close"},[r("Icon",{attrs:{type:"md-close"},on:{click:t.closeKefu}})],1),r("iframe",{staticClass:"iframeIm",attrs:{src:"https://swt.gongsibao.com/LR/Chatpre.aspx?id=MGF22027130&lng=cn",frameborder:"0"}})])],2)},o=[],s=(r("5ab2"),r("e10e"),r("6d57"),r("ce3c")),a=r("759e"),c=r.n(a),i=r("8586"),f=r("6205"),u=r("9f3a");function l(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function d(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?l(Object(r),!0).forEach((function(e){Object(s["a"])(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}var p={components:{Acrao:i["a"]},data:function(){return{moduleList:[]}},computed:d({},Object(u["e"])({isIframeShow:function(t){return t.template.isIframeShow}})),mounted:function(){this.getTemplateConfig()},methods:d({getTemplateConfig:function(){var t=this,e=this.$route.query.template_code;Object(f["c"])(e).then((function(e){if(200==e.status&&0==e.data.status){var r=e.data.data;r&&r.template_content&&(t.moduleList=JSON.parse(c.a.inflate(r.template_content,{to:"string"})).list,t.moduleList.forEach((function(e){e.id>t.moduleIndex&&(t.moduleIndex=e.id+1)})))}}))},closeKefu:function(){this.setIsIframeShow(!1)}},Object(u["d"])({setIsIframeShow:"template/setIsIframeShow"})),destroyed:function(){this.setIsIframeShow(!1)}},m=p,h=(r("a3b6"),r("9ca4")),b=Object(h["a"])(m,n,o,!1,null,"3fbf4483",null);e["default"]=b.exports}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-0fb760a4"],{"33a9b":function(e,t,n){"use strict";n.r(t);var s=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("Modal",{attrs:{title:"链接"},on:{"on-ok":e.ok,"on-cancel":e.cancel},model:{value:e.showLinkModel,callback:function(t){e.showLinkModel=t},expression:"showLinkModel"}},[n("i-form",{attrs:{model:e.currentRow,"label-width":80}},[n("Form-item",{attrs:{label:"WEB链接",prop:"link_url_pc"}},[n("i-input",{attrs:{disabled:"",value:e.currentRow.link_url_pc},on:{"update:value":function(t){return e.$set(e.currentRow,"link_url_pc",t)}}}),n("i-button",{staticClass:"tag",on:{click:function(t){return e.copyLink(e.currentRow.link_url_pc)}}},[e._v("复制")])],1),n("Form-item",{attrs:{label:"WAP链接",prop:"link_url_mobile"}},[n("i-input",{attrs:{disabled:"",value:e.currentRow.link_url_mobile},on:{"update:value":function(t){return e.$set(e.currentRow,"link_url_mobile",t)}}}),n("i-button",{staticClass:"tag",on:{click:function(t){return e.copyLink(e.currentRow.link_url_mobile)}}},[e._v("复制")])],1),n("Form-item",{attrs:{label:"渠道二维码",prop:"qrcode"}},[n("img",{staticStyle:{width:"100px",height:"100px",float:"left"},attrs:{src:e.qrcode}}),n("i-button",{staticStyle:{float:"left","margin-top":"5px"},on:{click:e.downQr}},[e._v("下载")])],1)],1)],1),n("PageSpace",{scopedSlots:e._u([{key:"default",fn:function(t){var s=t.adjustHeight;return[n("Card",{staticStyle:{padding:"0 16px 0"},attrs:{bordered:!1,"dis-hover":""}},[n("i-form",{attrs:{"label-width":100,"label-position":"left"}},[n("Form-item",{staticStyle:{"margin-bottom":"0"},attrs:{label:"模板名称:"}},[e._v("\n "+e._s(e.templateInfo.name)+"\n ")]),n("Form-item",{staticStyle:{"margin-bottom":"0"},attrs:{label:"模板ID:"}},[e._v("\n "+e._s(e.templateInfo.id)+"\n ")]),n("Form-item",{staticStyle:{"margin-bottom":"0"},attrs:{label:"商品ID:"}},[n("Row",[n("i-col",{attrs:{span:"1"}},[e._v("\n "+e._s(e.templateInfo&&e.templateInfo.business_code?e.templateInfo.business_code:"无")+"\n ")]),n("i-col",{attrs:{span:"1",offset:"1"}},[n("i-button",{staticStyle:{color:"#007aff"},attrs:{type:"text","dis-hover":"",size:"small"},on:{click:function(t){e.showSetBusinessCode=!0}}},[e._v("设置")]),n("Modal",{attrs:{loading:e.loading,title:"设置"},on:{"on-ok":e.setBusinessCode,"on-cancel":e.cancel},model:{value:e.showSetBusinessCode,callback:function(t){e.showSetBusinessCode=t},expression:"showSetBusinessCode"}},[n("i-form",{attrs:{"label-width":80}},[n("Form-item",{attrs:{label:"商品ID"}},[n("i-input",{model:{value:e.businessCode,callback:function(t){e.businessCode=t},expression:"businessCode"}})],1)],1)],1)],1)],1)],1)],1)],1),n("BizTable",{ref:"bt",attrs:{formatCol:e.formatCol,tblheight:s-120,metaName:"template_link",packageName:"template",modelName:"templatelink",isMulti:"",savebefore:e.savebefore,editbefore:e.beforedit,addbefore:e.beforeadd},on:{onexec:e.onexec,formevent:e.onformevent,oninitbtn:e.oninitbtn}})]}}])})],1)},a=[],o=(n("5ab2"),n("6d57"),n("e10e"),n("ce3c")),i=n("06d3"),r=n("391e"),c=n("7e1e"),l=n("f348"),u=n.n(l);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){Object(o["a"])(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var m={name:"templatelink_page",data:function(){return{templateInfo:{},showSetBusinessCode:!1,businessCode:"",loading:!0,supplementParams:{},showLinkModel:!1,currentRow:{},qrcode:"http://bigdata.gongsibao.com/api/qc?detailLink="}},components:{BizTable:i["a"],PageSpace:r["a"]},mounted:function(){var e=this;this.$nextTick((function(){e.$refs.bt.$refs.searchform.formModel["template_id"]=e.$route.query.template_id})),this.getTemplateInfoById()},methods:{copyLink:function(e){var t=this,n=new u.a(".tag",{text:function(){return e}});n.on("success",(function(e){t.$Message.success("复制成功!"),n.destroy()})),n.on("error",(function(e){t.$Message.error("复制失败!"),n.destroy()}))},getUrlBase64:function(e){return new Promise((function(t){var n=document.createElement("canvas"),s=n.getContext("2d"),a=new Image;a.crossOrigin="Anonymous",a.src=e,a.onload=function(){n.height=300,n.width=300,s.drawImage(a,0,0,300,300);var e=n.toDataURL("image/png");n=null,t(e)}}))},ok:function(){},setBusinessCode:function(e){var t=this;if(console.log(this.businessCode),!this.businessCode)return this.$Message.warning("商品ID不能为空"),void(this.showSetBusinessCode=!1);Object(c["m"])({business_code:this.businessCode,id:this.$route.query.template_id}).then((function(e){0==e.status?(t.templateInfo=e.data,t.$Message.success("商品ID设置成功")):t.$Message.warning(e.msg),t.showSetBusinessCode=!1}))},getTemplateInfoById:function(){var e=this;Object(c["i"])({id:this.$route.query.template_id}).then((function(t){0==t.status?e.templateInfo=t.data:e.$Message.warning(t.msg)}))},cancel:function(){},downQr:function(){this.getUrlBase64(this.qrcode).then((function(e){var t=document.createElement("a");t.href=e,t.download="qrCode.png",t.click()}))},onformevent:function(e,t){var n={};switch(e){case"channel_code":n["channel_name"]=t[1];break;case"lauch_type_code":n["lauch_type_name"]=t[1];break;case"marketing_subject_code":n["marketing_subject_name"]=t[1];break;case"business_type_name":n["business_type_code"]=t[0];break}this.supplementParams=f(f({},n),this.supplementParams)},savebefore:function(e,t,n){return t=f(f(f({},t),this.supplementParams),{},{template_id:this.$route.query.template_id}),n(t)},beforeadd:function(e,t){return t({value:!0,message:null})},beforedit:function(e,t){return t({value:!0,message:null})},beforesave:function(e,t,n){return n(t)},onexec:function(e,t){var n=this;"auth"==e&&this.$router.push({name:"role_auth",query:{roleid:t.id,rolecode:t.code}}),"link"==e&&this.$router.push({name:"link_list",query:{template_id:t.id}}),"seeLink"==e&&(this.currentRow=t,t.link_url_pc&&(this.qrcode="http://bigdata.gongsibao.com/api/qc?detailLink="+encodeURIComponent(t.link_url_pc)),this.showLinkModel=!0),"launch"==e&&Object(c["n"])({code:t.code,is_enabled:1}).then((function(e){0==e.status?(n.$Message.success("投放成功"),n.$refs.bt.fetchData()):n.$Message.warning(e.msg)})),"stopLaunch"==e&&Object(c["n"])({code:t.code,is_enabled:0}).then((function(e){0==e.status?(n.$Message.success("已停止投放"),n.$refs.bt.fetchData()):n.$Message.warning("操作失败")})),"deleteTempLink"==e&&Object(c["d"])({id:t.id}).then((function(e){0==e.status?e.data&&0==e.data.status?n.$Message.success("删除成功"):n.$Message.warning(e.data.msg):n.$Message.warning("操作失败"),n.$refs.bt.fetchData()}))},formatCol:function(e,t,n){return"is_enabled"==t?e["is_enabled"]?'<span style="color:green">是</span>':'<span style="color:orange">否</span>':"created_at"==t?"<span>".concat(new Date(e[t]).toLocaleString(),"</span>"):e[t]},oninitbtn:function(e,t){switch(t.is_enabled){case 0:"stopLaunch"===e.key||"seeLink"===e.key?e.ishide=!0:e.ishide=!1;break;case 1:"launch"===e.key||"deleteTempLink"===e.key?e.ishide=!0:e.ishide=!1;break}}}},p=m,h=(n("c772"),n("9ca4")),b=Object(h["a"])(p,s,a,!1,null,"79813f7a",null);t["default"]=b.exports},"391e":function(e,t,n){"use strict";var s=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"framediv"}},[e._t("default",null,{adjustHeight:e.frameHeight})],2)},a=[],o=n("9ee1"),i=o["a"],r=n("9ca4"),c=Object(r["a"])(i,s,a,!1,null,null,null);t["a"]=c.exports},9740:function(e,t,n){},"9ee1":function(e,t,n){"use strict";(function(e){n("163d");t["a"]={name:"pagespace_page",prop:{tweak:Number},data:function(){return{frameHeight:0,advalue:this.tweak?this.tweak:0}},components:{},mounted:function(){var t=this;this.setHeight(),e(window).resize((function(){t.setHeight()}))},methods:{setHeight:function(){var t=this;this.$nextTick((function(){var n=e("#framediv"),s=n.get()[0]||0,a=window.innerHeight-s.offsetTop-t.advalue;t.frameHeight=a,t.$emit("sizechange",t.frameHeight)}))}}}}).call(this,n("a336"))},c772:function(e,t,n){"use strict";var s=n("9740"),a=n.n(s);a.a}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-1021e4ee"],{"05c3":function(e,t,i){var a,n;(function(i,r){a=[],n=function(){return r()}.apply(t,a),void 0===n||(e.exports=n)})(0,(function(){var e=i;e.Integer={type:"integer"};var t={String:String,Boolean:Boolean,Number:Number,Object:Object,Array:Array,Date:Date};function i(e,t){return i(e,t,{changing:!1})}e.validate=i,e.checkPropertyChange=function(e,t,a){return i(e,t,{changing:a||"property"})};var i=e._validate=function(e,i,a){a||(a={});var n=a.changing;function r(e){return e.type||t[e.name]==e&&e.name.toLowerCase()}var o=[];function s(e,t,i,c){var d;function f(e){o.push({property:i,message:e})}if(i+=i?"number"==typeof c?"["+c+"]":"undefined"==typeof c?"":"."+c:c,("object"!=typeof t||t instanceof Array)&&(i||"function"!=typeof t)&&(!t||!r(t)))return"function"==typeof t?e instanceof t||f("is not an instance of the class/constructor "+t.name):t&&f("Invalid schema/property definition "+t),null;function h(e,t){if(e){if("string"==typeof e&&"any"!=e&&("null"==e?null!==t:typeof t!=e)&&!(t instanceof Array&&"array"==e)&&!(t instanceof Date&&"date"==e)&&("integer"!=e||t%1!==0))return[{property:i,message:typeof t+" value found, but a "+e+" is required"}];if(e instanceof Array){for(var a=[],n=0;n<e.length;n++)if(!(a=h(e[n],t)).length)break;if(a.length)return a}else if("object"==typeof e){var r=o;o=[],s(t,e,i);var l=o;return o=r,l}}return[]}if(n&&t.readonly&&f("is a readonly field, it can not be changed"),t["extends"]&&s(e,t["extends"],i,c),void 0===e)t.required&&f("is missing and it is required");else if(o=o.concat(h(r(t),e)),t.disallow&&!h(t.disallow,e).length&&f(" disallowed value was matched"),null!==e){if(e instanceof Array){if(t.items){var p=t.items instanceof Array,u=t.items;for(c=0,d=e.length;c<d;c+=1)p&&(u=t.items[c]),a.coerce&&(e[c]=a.coerce(e[c],u)),o.concat(s(e[c],u,i,c))}t.minItems&&e.length<t.minItems&&f("There must be a minimum of "+t.minItems+" in the array"),t.maxItems&&e.length>t.maxItems&&f("There must be a maximum of "+t.maxItems+" in the array")}else(t.properties||t.additionalProperties)&&o.concat(l(e,t.properties,i,t.additionalProperties));if(t.pattern&&"string"==typeof e&&!e.match(t.pattern)&&f("does not match the regex pattern "+t.pattern),t.maxLength&&"string"==typeof e&&e.length>t.maxLength&&f("may only be "+t.maxLength+" characters long"),t.minLength&&"string"==typeof e&&e.length<t.minLength&&f("must be at least "+t.minLength+" characters long"),void 0!==typeof t.minimum&&typeof e==typeof t.minimum&&t.minimum>e&&f("must have a minimum value of "+t.minimum),void 0!==typeof t.maximum&&typeof e==typeof t.maximum&&t.maximum<e&&f("must have a maximum value of "+t.maximum),t["enum"]){var m,g=t["enum"];d=g.length;for(var _=0;_<d;_++)if(g[_]===e){m=1;break}m||f("does not have a value in the enumeration "+g.join(", "))}"number"==typeof t.maxDecimal&&e.toString().match(new RegExp("\\.[0-9]{"+(t.maxDecimal+1)+",}"))&&f("may only have "+t.maxDecimal+" digits of decimal places")}return null}function l(e,t,i,r){if("object"==typeof t)for(var l in("object"!=typeof e||e instanceof Array)&&o.push({property:i,message:"an object is required"}),t)if(t.hasOwnProperty(l)){var c=e[l];if(void 0===c&&a.existingOnly)continue;var d=t[l];void 0===c&&d["default"]&&(c=e[l]=d["default"]),a.coerce&&l in e&&(c=e[l]=a.coerce(c,d)),s(c,d,i,l)}for(l in e){if(e.hasOwnProperty(l)&&("_"!=l.charAt(0)||"_"!=l.charAt(1))&&t&&!t[l]&&!1===r){if(a.filter){delete e[l];continue}o.push({property:i,message:typeof c+"The property "+l+" is not defined in the schema and the schema does not allow additional properties"})}var f=t&&t[l]&&t[l].requires;f&&!(f in e)&&o.push({property:i,message:"the presence of the property "+l+" requires that "+f+" also be present"}),c=e[l],!r||t&&"object"==typeof t&&l in t||(a.coerce&&(c=e[l]=a.coerce(c,r)),s(c,r,i,l)),!n&&c&&c.$schema&&(o=o.concat(s(c,c.$schema,i,l)))}return o}return i&&s(e,i,"",n||""),!n&&e&&e.$schema&&s(e,e.$schema,"",""),{valid:!o.length,errors:o}};return e.mustBeValid=function(e){if(!e.valid)throw new TypeError(e.errors.map((function(e){return"for property "+e.property+": "+e.message})).join(", \n"))},e}))},"0fe4":function(e,t,i){"use strict";function a(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}e.exports=a},1135:function(e,t,i){"use strict";var a="undefined"!==typeof Uint8Array&&"undefined"!==typeof Uint16Array&&"undefined"!==typeof Int32Array;function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.assign=function(e){var t=Array.prototype.slice.call(arguments,1);while(t.length){var i=t.shift();if(i){if("object"!==typeof i)throw new TypeError(i+"must be non-object");for(var a in i)n(i,a)&&(e[a]=i[a])}}return e},t.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var r={arraySet:function(e,t,i,a,n){if(t.subarray&&e.subarray)e.set(t.subarray(i,i+a),n);else for(var r=0;r<a;r++)e[n+r]=t[i+r]},flattenChunks:function(e){var t,i,a,n,r,o;for(a=0,t=0,i=e.length;t<i;t++)a+=e[t].length;for(o=new Uint8Array(a),n=0,t=0,i=e.length;t<i;t++)r=e[t],o.set(r,n),n+=r.length;return o}},o={arraySet:function(e,t,i,a,n){for(var r=0;r<a;r++)e[n+r]=t[i+r]},flattenChunks:function(e){return[].concat.apply([],e)}};t.setTyped=function(e){e?(t.Buf8=Uint8Array,t.Buf16=Uint16Array,t.Buf32=Int32Array,t.assign(t,r)):(t.Buf8=Array,t.Buf16=Array,t.Buf32=Array,t.assign(t,o))},t.setTyped(a)},1797:function(e,t,i){"use strict";var a=i("1135"),n=i("b4f9"),r=i("dedd"),o=i("758a"),s=i("b061"),l=0,c=1,d=2,f=4,h=5,p=6,u=0,m=1,g=2,_=-2,b=-3,v=-4,w=-5,y=8,k=1,x=2,M=3,C=4,S=5,O=6,z=7,T=8,j=9,$=10,E=11,B=12,A=13,N=14,F=15,D=16,H=17,I=18,L=19,P=20,R=21,Z=22,V=23,U=24,q=25,W=26,K=27,G=28,J=29,Y=30,X=31,Q=32,ee=852,te=592,ie=15,ae=ie;function ne(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function re(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new a.Buf16(320),this.work=new a.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function oe(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=k,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new a.Buf32(ee),t.distcode=t.distdyn=new a.Buf32(te),t.sane=1,t.back=-1,u):_}function se(e){var t;return e&&e.state?(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,oe(e)):_}function le(e,t){var i,a;return e&&e.state?(a=e.state,t<0?(i=0,t=-t):(i=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?_:(null!==a.window&&a.wbits!==t&&(a.window=null),a.wrap=i,a.wbits=t,se(e))):_}function ce(e,t){var i,a;return e?(a=new re,e.state=a,a.window=null,i=le(e,t),i!==u&&(e.state=null),i):_}function de(e){return ce(e,ae)}var fe,he,pe=!0;function ue(e){if(pe){var t;fe=new a.Buf32(512),he=new a.Buf32(32),t=0;while(t<144)e.lens[t++]=8;while(t<256)e.lens[t++]=9;while(t<280)e.lens[t++]=7;while(t<288)e.lens[t++]=8;s(c,e.lens,0,288,fe,0,e.work,{bits:9}),t=0;while(t<32)e.lens[t++]=5;s(d,e.lens,0,32,he,0,e.work,{bits:5}),pe=!1}e.lencode=fe,e.lenbits=9,e.distcode=he,e.distbits=5}function me(e,t,i,n){var r,o=e.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new a.Buf8(o.wsize)),n>=o.wsize?(a.arraySet(o.window,t,i-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>n&&(r=n),a.arraySet(o.window,t,i-n,r,o.wnext),n-=r,n?(a.arraySet(o.window,t,i-n,n,0),o.wnext=n,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=r))),0}function ge(e,t){var i,ee,te,ie,ae,re,oe,se,le,ce,de,fe,he,pe,ge,_e,be,ve,we,ye,ke,xe,Me,Ce,Se=0,Oe=new a.Buf8(4),ze=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return _;i=e.state,i.mode===B&&(i.mode=A),ae=e.next_out,te=e.output,oe=e.avail_out,ie=e.next_in,ee=e.input,re=e.avail_in,se=i.hold,le=i.bits,ce=re,de=oe,xe=u;e:for(;;)switch(i.mode){case k:if(0===i.wrap){i.mode=A;break}while(le<16){if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}if(2&i.wrap&&35615===se){i.check=0,Oe[0]=255&se,Oe[1]=se>>>8&255,i.check=r(i.check,Oe,2,0),se=0,le=0,i.mode=x;break}if(i.flags=0,i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&se)<<8)+(se>>8))%31){e.msg="incorrect header check",i.mode=Y;break}if((15&se)!==y){e.msg="unknown compression method",i.mode=Y;break}if(se>>>=4,le-=4,ke=8+(15&se),0===i.wbits)i.wbits=ke;else if(ke>i.wbits){e.msg="invalid window size",i.mode=Y;break}i.dmax=1<<ke,e.adler=i.check=1,i.mode=512&se?$:B,se=0,le=0;break;case x:while(le<16){if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}if(i.flags=se,(255&i.flags)!==y){e.msg="unknown compression method",i.mode=Y;break}if(57344&i.flags){e.msg="unknown header flags set",i.mode=Y;break}i.head&&(i.head.text=se>>8&1),512&i.flags&&(Oe[0]=255&se,Oe[1]=se>>>8&255,i.check=r(i.check,Oe,2,0)),se=0,le=0,i.mode=M;case M:while(le<32){if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}i.head&&(i.head.time=se),512&i.flags&&(Oe[0]=255&se,Oe[1]=se>>>8&255,Oe[2]=se>>>16&255,Oe[3]=se>>>24&255,i.check=r(i.check,Oe,4,0)),se=0,le=0,i.mode=C;case C:while(le<16){if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}i.head&&(i.head.xflags=255&se,i.head.os=se>>8),512&i.flags&&(Oe[0]=255&se,Oe[1]=se>>>8&255,i.check=r(i.check,Oe,2,0)),se=0,le=0,i.mode=S;case S:if(1024&i.flags){while(le<16){if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}i.length=se,i.head&&(i.head.extra_len=se),512&i.flags&&(Oe[0]=255&se,Oe[1]=se>>>8&255,i.check=r(i.check,Oe,2,0)),se=0,le=0}else i.head&&(i.head.extra=null);i.mode=O;case O:if(1024&i.flags&&(fe=i.length,fe>re&&(fe=re),fe&&(i.head&&(ke=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Array(i.head.extra_len)),a.arraySet(i.head.extra,ee,ie,fe,ke)),512&i.flags&&(i.check=r(i.check,ee,fe,ie)),re-=fe,ie+=fe,i.length-=fe),i.length))break e;i.length=0,i.mode=z;case z:if(2048&i.flags){if(0===re)break e;fe=0;do{ke=ee[ie+fe++],i.head&&ke&&i.length<65536&&(i.head.name+=String.fromCharCode(ke))}while(ke&&fe<re);if(512&i.flags&&(i.check=r(i.check,ee,fe,ie)),re-=fe,ie+=fe,ke)break e}else i.head&&(i.head.name=null);i.length=0,i.mode=T;case T:if(4096&i.flags){if(0===re)break e;fe=0;do{ke=ee[ie+fe++],i.head&&ke&&i.length<65536&&(i.head.comment+=String.fromCharCode(ke))}while(ke&&fe<re);if(512&i.flags&&(i.check=r(i.check,ee,fe,ie)),re-=fe,ie+=fe,ke)break e}else i.head&&(i.head.comment=null);i.mode=j;case j:if(512&i.flags){while(le<16){if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}if(se!==(65535&i.check)){e.msg="header crc mismatch",i.mode=Y;break}se=0,le=0}i.head&&(i.head.hcrc=i.flags>>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=B;break;case $:while(le<32){if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}e.adler=i.check=ne(se),se=0,le=0,i.mode=E;case E:if(0===i.havedict)return e.next_out=ae,e.avail_out=oe,e.next_in=ie,e.avail_in=re,i.hold=se,i.bits=le,g;e.adler=i.check=1,i.mode=B;case B:if(t===h||t===p)break e;case A:if(i.last){se>>>=7&le,le-=7&le,i.mode=K;break}while(le<3){if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}switch(i.last=1&se,se>>>=1,le-=1,3&se){case 0:i.mode=N;break;case 1:if(ue(i),i.mode=P,t===p){se>>>=2,le-=2;break e}break;case 2:i.mode=H;break;case 3:e.msg="invalid block type",i.mode=Y}se>>>=2,le-=2;break;case N:se>>>=7&le,le-=7&le;while(le<32){if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}if((65535&se)!==(se>>>16^65535)){e.msg="invalid stored block lengths",i.mode=Y;break}if(i.length=65535&se,se=0,le=0,i.mode=F,t===p)break e;case F:i.mode=D;case D:if(fe=i.length,fe){if(fe>re&&(fe=re),fe>oe&&(fe=oe),0===fe)break e;a.arraySet(te,ee,ie,fe,ae),re-=fe,ie+=fe,oe-=fe,ae+=fe,i.length-=fe;break}i.mode=B;break;case H:while(le<14){if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}if(i.nlen=257+(31&se),se>>>=5,le-=5,i.ndist=1+(31&se),se>>>=5,le-=5,i.ncode=4+(15&se),se>>>=4,le-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=Y;break}i.have=0,i.mode=I;case I:while(i.have<i.ncode){while(le<3){if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}i.lens[ze[i.have++]]=7&se,se>>>=3,le-=3}while(i.have<19)i.lens[ze[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,Me={bits:i.lenbits},xe=s(l,i.lens,0,19,i.lencode,0,i.work,Me),i.lenbits=Me.bits,xe){e.msg="invalid code lengths set",i.mode=Y;break}i.have=0,i.mode=L;case L:while(i.have<i.nlen+i.ndist){for(;;){if(Se=i.lencode[se&(1<<i.lenbits)-1],ge=Se>>>24,_e=Se>>>16&255,be=65535&Se,ge<=le)break;if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}if(be<16)se>>>=ge,le-=ge,i.lens[i.have++]=be;else{if(16===be){Ce=ge+2;while(le<Ce){if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}if(se>>>=ge,le-=ge,0===i.have){e.msg="invalid bit length repeat",i.mode=Y;break}ke=i.lens[i.have-1],fe=3+(3&se),se>>>=2,le-=2}else if(17===be){Ce=ge+3;while(le<Ce){if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}se>>>=ge,le-=ge,ke=0,fe=3+(7&se),se>>>=3,le-=3}else{Ce=ge+7;while(le<Ce){if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}se>>>=ge,le-=ge,ke=0,fe=11+(127&se),se>>>=7,le-=7}if(i.have+fe>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=Y;break}while(fe--)i.lens[i.have++]=ke}}if(i.mode===Y)break;if(0===i.lens[256]){e.msg="invalid code -- missing end-of-block",i.mode=Y;break}if(i.lenbits=9,Me={bits:i.lenbits},xe=s(c,i.lens,0,i.nlen,i.lencode,0,i.work,Me),i.lenbits=Me.bits,xe){e.msg="invalid literal/lengths set",i.mode=Y;break}if(i.distbits=6,i.distcode=i.distdyn,Me={bits:i.distbits},xe=s(d,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,Me),i.distbits=Me.bits,xe){e.msg="invalid distances set",i.mode=Y;break}if(i.mode=P,t===p)break e;case P:i.mode=R;case R:if(re>=6&&oe>=258){e.next_out=ae,e.avail_out=oe,e.next_in=ie,e.avail_in=re,i.hold=se,i.bits=le,o(e,de),ae=e.next_out,te=e.output,oe=e.avail_out,ie=e.next_in,ee=e.input,re=e.avail_in,se=i.hold,le=i.bits,i.mode===B&&(i.back=-1);break}for(i.back=0;;){if(Se=i.lencode[se&(1<<i.lenbits)-1],ge=Se>>>24,_e=Se>>>16&255,be=65535&Se,ge<=le)break;if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}if(_e&&0===(240&_e)){for(ve=ge,we=_e,ye=be;;){if(Se=i.lencode[ye+((se&(1<<ve+we)-1)>>ve)],ge=Se>>>24,_e=Se>>>16&255,be=65535&Se,ve+ge<=le)break;if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}se>>>=ve,le-=ve,i.back+=ve}if(se>>>=ge,le-=ge,i.back+=ge,i.length=be,0===_e){i.mode=W;break}if(32&_e){i.back=-1,i.mode=B;break}if(64&_e){e.msg="invalid literal/length code",i.mode=Y;break}i.extra=15&_e,i.mode=Z;case Z:if(i.extra){Ce=i.extra;while(le<Ce){if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}i.length+=se&(1<<i.extra)-1,se>>>=i.extra,le-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=V;case V:for(;;){if(Se=i.distcode[se&(1<<i.distbits)-1],ge=Se>>>24,_e=Se>>>16&255,be=65535&Se,ge<=le)break;if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}if(0===(240&_e)){for(ve=ge,we=_e,ye=be;;){if(Se=i.distcode[ye+((se&(1<<ve+we)-1)>>ve)],ge=Se>>>24,_e=Se>>>16&255,be=65535&Se,ve+ge<=le)break;if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}se>>>=ve,le-=ve,i.back+=ve}if(se>>>=ge,le-=ge,i.back+=ge,64&_e){e.msg="invalid distance code",i.mode=Y;break}i.offset=be,i.extra=15&_e,i.mode=U;case U:if(i.extra){Ce=i.extra;while(le<Ce){if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}i.offset+=se&(1<<i.extra)-1,se>>>=i.extra,le-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=Y;break}i.mode=q;case q:if(0===oe)break e;if(fe=de-oe,i.offset>fe){if(fe=i.offset-fe,fe>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=Y;break}fe>i.wnext?(fe-=i.wnext,he=i.wsize-fe):he=i.wnext-fe,fe>i.length&&(fe=i.length),pe=i.window}else pe=te,he=ae-i.offset,fe=i.length;fe>oe&&(fe=oe),oe-=fe,i.length-=fe;do{te[ae++]=pe[he++]}while(--fe);0===i.length&&(i.mode=R);break;case W:if(0===oe)break e;te[ae++]=i.length,oe--,i.mode=R;break;case K:if(i.wrap){while(le<32){if(0===re)break e;re--,se|=ee[ie++]<<le,le+=8}if(de-=oe,e.total_out+=de,i.total+=de,de&&(e.adler=i.check=i.flags?r(i.check,te,de,ae-de):n(i.check,te,de,ae-de)),de=oe,(i.flags?se:ne(se))!==i.check){e.msg="incorrect data check",i.mode=Y;break}se=0,le=0}i.mode=G;case G:if(i.wrap&&i.flags){while(le<32){if(0===re)break e;re--,se+=ee[ie++]<<le,le+=8}if(se!==(4294967295&i.total)){e.msg="incorrect length check",i.mode=Y;break}se=0,le=0}i.mode=J;case J:xe=m;break e;case Y:xe=b;break e;case X:return v;case Q:default:return _}return e.next_out=ae,e.avail_out=oe,e.next_in=ie,e.avail_in=re,i.hold=se,i.bits=le,(i.wsize||de!==e.avail_out&&i.mode<Y&&(i.mode<K||t!==f))&&me(e,e.output,e.next_out,de-e.avail_out)?(i.mode=X,v):(ce-=e.avail_in,de-=e.avail_out,e.total_in+=ce,e.total_out+=de,i.total+=de,i.wrap&&de&&(e.adler=i.check=i.flags?r(i.check,te,de,e.next_out-de):n(i.check,te,de,e.next_out-de)),e.data_type=i.bits+(i.last?64:0)+(i.mode===B?128:0)+(i.mode===P||i.mode===F?256:0),(0===ce&&0===de||t===f)&&xe===u&&(xe=w),xe)}function _e(e){if(!e||!e.state)return _;var t=e.state;return t.window&&(t.window=null),e.state=null,u}function be(e,t){var i;return e&&e.state?(i=e.state,0===(2&i.wrap)?_:(i.head=t,t.done=!1,u)):_}function ve(e,t){var i,a,r,o=t.length;return e&&e.state?(i=e.state,0!==i.wrap&&i.mode!==E?_:i.mode===E&&(a=1,a=n(a,t,o,0),a!==i.check)?b:(r=me(e,t,o,o),r?(i.mode=X,v):(i.havedict=1,u))):_}t.inflateReset=se,t.inflateReset2=le,t.inflateResetKeep=oe,t.inflateInit=de,t.inflateInit2=ce,t.inflate=ge,t.inflateEnd=_e,t.inflateGetHeader=be,t.inflateSetDictionary=ve,t.inflateInfo="pako inflate (from Nodeca project)"},"19f2":function(e,t,i){},2405:function(e,t,i){},"2a41":function(e,t,i){"use strict";var a=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[e.isPc?i("Select",{style:e.styleConfig,attrs:{clearable:"",multiple:e.isMulti,placeholder:e.placeHolder},on:{"on-change":e.onchange,"on-click":e.showModal},model:{value:e.sels,callback:function(t){e.sels=t},expression:"sels"}},e._l(e.datasource,(function(t){return i("Option",{key:t.value,attrs:{value:t.value}},[e._v("\n "+e._s(t.label)+"\n ")])})),1):i("div",{staticClass:"inputWrap"},[e.isClear?i("div",{staticClass:"close",on:{click:e.clear}},[e._v("x")]):e._e(),i("i-input",{style:e.styleConfig,attrs:{value:e.inputValue,placeholder:"请选择",icon:"ios-arrow-down",readonly:!0},on:{"update:value":function(t){e.inputValue=t},"on-focus":e.showModal}}),e.isShow?i("div",{staticClass:"modal",on:{click:function(t){e.isShow=!1}}},[i("div",{staticClass:"warp",on:{click:e.stop}},e._l(e.datasource,(function(t,a){return i("div",{key:a,on:{click:e.changeOption}},[e._v(e._s(t.label))])})),0)]):e._e()],1)],1)},n=[],r=(i("6d57"),i("9a33"),i("60b7"),{name:"dicselects",components:{},model:{prop:"value",event:"change"},props:["value","dicName","placeHolder","isMulti","isLabelValue","options","styleConfig"],data:function(){return{sels:this.value?this.value:[],datasource:[],isPc:!0,isShow:!1,inputValue:"",isClear:!1}},watch:{value:function(e,t){this.sels=e}},methods:{stop:function(e){e.stopPropagation()},onchange:function(e){console.log("=============",e),this.$emit("change",this.sels)},changeOption:function(e){this.inputValue=e.target.innerText,this.isShow=!1,this.isClear=!0,this.$emit("change",e.target.innerText)},initDataSource:function(e){var t=this;if(this.options){var i=this.options.split(",");i.forEach((function(e){t.datasource.push({value:e,label:e})}))}},pcOrM:function(){var e=!1;(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0,4)))&&(e=!0),e&&(this.isPc=!1)},showModal:function(){this.isPc||(this.isShow=!0)},clear:function(){this.inputValue="",this.isClear=!1}},created:function(){this.initDataSource(),this.pcOrM()},mounted:function(){}}),o=r,s=(i("6d7c"),i("9ca4")),l=Object(s["a"])(o,a,n,!1,null,"1c8b26af",null);t["a"]=l.exports},3140:function(e,t,i){},"32b8":function(e,t,i){"use strict";var a=i("1797"),n=i("1135"),r=i("6f25"),o=i("77bd"),s=i("52ba"),l=i("f63a"),c=i("0fe4"),d=Object.prototype.toString;function f(e){if(!(this instanceof f))return new f(e);this.options=n.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0===(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var i=a.inflateInit2(this.strm,t.windowBits);if(i!==o.Z_OK)throw new Error(s[i]);if(this.header=new c,a.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"===typeof t.dictionary?t.dictionary=r.string2buf(t.dictionary):"[object ArrayBuffer]"===d.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=a.inflateSetDictionary(this.strm,t.dictionary),i!==o.Z_OK)))throw new Error(s[i])}function h(e,t){var i=new f(t);if(i.push(e,!0),i.err)throw i.msg||s[i.err];return i.result}function p(e,t){return t=t||{},t.raw=!0,h(e,t)}f.prototype.push=function(e,t){var i,s,l,c,f,h=this.strm,p=this.options.chunkSize,u=this.options.dictionary,m=!1;if(this.ended)return!1;s=t===~~t?t:!0===t?o.Z_FINISH:o.Z_NO_FLUSH,"string"===typeof e?h.input=r.binstring2buf(e):"[object ArrayBuffer]"===d.call(e)?h.input=new Uint8Array(e):h.input=e,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new n.Buf8(p),h.next_out=0,h.avail_out=p),i=a.inflate(h,o.Z_NO_FLUSH),i===o.Z_NEED_DICT&&u&&(i=a.inflateSetDictionary(this.strm,u)),i===o.Z_BUF_ERROR&&!0===m&&(i=o.Z_OK,m=!1),i!==o.Z_STREAM_END&&i!==o.Z_OK)return this.onEnd(i),this.ended=!0,!1;h.next_out&&(0!==h.avail_out&&i!==o.Z_STREAM_END&&(0!==h.avail_in||s!==o.Z_FINISH&&s!==o.Z_SYNC_FLUSH)||("string"===this.options.to?(l=r.utf8border(h.output,h.next_out),c=h.next_out-l,f=r.buf2string(h.output,l),h.next_out=c,h.avail_out=p-c,c&&n.arraySet(h.output,h.output,l,c,0),this.onData(f)):this.onData(n.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(m=!0)}while((h.avail_in>0||0===h.avail_out)&&i!==o.Z_STREAM_END);return i===o.Z_STREAM_END&&(s=o.Z_FINISH),s===o.Z_FINISH?(i=a.inflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===o.Z_OK):s!==o.Z_SYNC_FLUSH||(this.onEnd(o.Z_OK),h.avail_out=0,!0)},f.prototype.onData=function(e){this.chunks.push(e)},f.prototype.onEnd=function(e){e===o.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=n.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},t.Inflate=f,t.inflate=h,t.inflateRaw=p,t.ungzip=h},"33a9":function(e,t,i){"use strict";var a=i("3140"),n=i.n(a);n.a},"3c73":function(e,t,i){"use strict";(function(e){i("5ab2"),i("163d"),i("e10e"),i("6d57");var a=i("ce3c"),n=i("7e1e"),r=i("9f3a"),o=i("2a41"),s=i("c553"),l=i("ccae"),c=i("3b00"),d=i("41d1"),f=i("a8ec"),h=i("40b4"),p=i("a98b"),u=i("8ae1"),m=i("923a"),g=i("e369"),_=i("9269"),b=i("adde"),v=i("8770"),w=i("bc78");function y(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,a)}return i}function k(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?y(Object(i),!0).forEach((function(t){Object(a["a"])(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):y(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}t["a"]={name:"forms",components:{DicSelect:o["a"],ModelSelect:s["a"],RemoteSelect:l["a"],Switchs:c["a"],Checkgroups:d["a"],Radiogroups:f["a"],Uploads:p["a"],Steps:u["a"],DTags:m["a"],TreeSel:_["a"],CascaderCity:b["a"],DRefTags:g["a"],DateTime:v["a"],HtmlEditor:w["a"],Mobile:h["a"]},props:{fminfo:{type:Object,default:function(){return{}}},refvalidatemethod:{type:Function},noExpandAuth:{type:Boolean},isMore:{type:Boolean},isNotFixed:{type:Boolean},isEditForm:{type:Boolean},isSearchForm:{type:Boolean},formatCol:{type:Function},formid:"",styleConfig:{type:Object,default:function(){return{}}}},data:function(){return{forminfo:this.fminfo?this.fminfo:[],formModel:{},metaRules:{},btninfos:[],ctlVisable:{},tabDisabled:{}}},watch:{fminfo:function(e,t){this.initFormModel()},forminfo:function(e){this.initFormModel()},formid:function(e){this.getFormMsg()}},computed:k({},Object(r["e"])({cityList:function(e){return e.template.cityList}})),methods:{onexec:function(e,t){this.$emit("childexec",e,t,this)},onformevent:function(e,t){this.$emit("formevent",e,t)},controlCtl:function(e,t){this.$emit("controlctl",e,t,this)},setHeight:function(){},getInitWhere:function(e){var t={};return e&&(t[e.fieldName]=this.formModel[e.valueField]),t},tabselected:function(e){console.log("tabselected.................",e),"main"!=e&&this.$refs[e]&&(console.log(this.$refs[e]),this.$refs[e][0].fetchData())},getCols:function(e){var t=e||2;return 24/t},validate:function(e){this.$refs.ofm.validate((function(t){return e(t)}))},activeChildTables:function(e){var t=this;Object.keys(this.tabDisabled).forEach((function(i){t.tabDisabled[i]=0!=e||e})),console.log(this.tabDisabled,"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb")},setCtlVisable:function(e,t){this.ctlVisable[e]=t},resetForm:function(){this.$refs.ofm.resetFields()},validatex:function(e,t,i){return e["vmethod"](e,t,i)},testclick:function(){console.log(JSON.stringify(this.formModel))},getNewModel:function(){var e=JSON.stringify(this.formModel);return JSON.parse(e)},initFormModel:function(){var e=this;this.forminfo.lists&&this.forminfo.lists.length>0&&this.forminfo.lists.forEach((function(t){e.$set(e.tabDisabled,t["bizCode"],!0)})),this.forminfo.main&&this.forminfo.main.forEach((function(t){t&&t.ctls&&t.ctls.forEach((function(t){e.$set(e.ctlVisable,t.prop?t.prop:t.fromprop,!t.isHide),t.rules&&t.rules.length>=0&&(t.rules.forEach((function(i){(i.validator||i.iscustom)&&(i.validator=e["validatex"],"input"==t.type&&(i.vmethod=function(e,t,i){var a=Number(e.minchars?e.minchars:"2"),n=Number(e.maxchars?e.maxchars:"100");return t.length>=a&&t.length<=n?i():i(new Error("输入字符数在".concat(a,"和").concat(n,"之间")))}),"mobile"==t.type&&(t["verifysms"]=i.verifysms,i.vmethod=function(e,t,i){var a=Number(e.minchars||e.maxchars||"7"),n=Number(e.maxchars?e.maxchars:"11");return t.length>=a&&t.length<=n?i():i(a==n?new Error("输入字符限定".concat(a,"位")):new Error("输入字符数在".concat(a,"和").concat(n,"之间")))}))})),e.metaRules[t.prop]=t.rules,t["verifysms"]&&(e.metaRules["vcode"]=[{message:"验证码不能为空",required:!0,trigger:"blur"}])),t.type.indexOf("select")>=0||t.type.indexOf("checkgroup")>=0?e.$set(e.formModel,t.prop,e.formModel[t.prop]?e.formModel[t.prop]:[]):"switch"==t.type?e.$set(e.formModel,t.prop,!1):"number"==t.type?e.$set(e.formModel,t.prop,0):e.$set(e.formModel,t.prop,t.default?t.default:"")}))}))},getFormMsg:function(){var e=this;this.formid&&"{}"===JSON.stringify(this.fminfo)&&Object(n["e"])({id:this.formid}).then((function(t){var i=t.data;if(0==t.status){e.forminfo=i.form_table;var a=e.forminfo.main[0].ctls,n={};a.forEach((function(e){n[e.prop]=e.label})),e.$store.commit("template/saveFormItemMsg",n)}else e.$Message.error(i.msg?i.msg:"当前操作失败,请稍后重试或联系管理员.")})),this.initFormModel()}},created:function(){this.getFormMsg()},mounted:function(){var t=this;this.$nextTick((function(){t.noExpandAuth||(t.setHeight(),e(window).resize((function(){t.setHeight()})))}))}}}).call(this,i("a336"))},"40b4":function(e,t,i){"use strict";var a=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("Row",[i("i-col",{attrs:{span:"24"}},[i("Input",{style:e.styleConfig,attrs:{type:"text",placeholder:e.placeholder},model:{value:e.mobile,callback:function(t){e.mobile=t},expression:"mobile"}})],1),e.isverifysms?i("i-col",{staticStyle:{"margin-top":"10px"},attrs:{span:"24"}},[i("i-input",{style:e.styleConfig,attrs:{placeholder:"请输入收到的验证码"},on:{"on-blur":e.onblur},model:{value:e.vcode,callback:function(t){e.vcode=t},expression:"vcode"}},[i("span",{attrs:{slot:"prepend"},slot:"prepend"},[i("Icon",{attrs:{size:14,type:"md-lock"}})],1),i("span",{attrs:{slot:"append"},slot:"append"},[e.isshowtime?e._e():i("Button",{attrs:{type:"primary"},on:{click:e.onsendVCode}},[e._v("发送验证码")]),e.isshowtime?i("span",[e._v(e._s(e.leftseconds)+"秒")]):e._e()],1)])],1):e._e(),e.verror?i("i-col",{attrs:{span:"24"}},[i("label",{staticStyle:{color:"red"}},[e._v("请输入正确的验证码")])]):e._e()],1)},n=[],r=(i("60b7"),i("c24f")),o=(i("35f4"),i("05c3"),{name:"mobile",components:{},model:{prop:"value",event:"change"},props:["value","stylestr","placeholder","styleConfig","verifysms"],data:function(){return{isverifysms:this.verifysms||0,mobile:"",vcode:"",rtncode:"",isshowtime:!1,leftseconds:60,rtnvcode:0,verror:!1}},watch:{value:function(e,t){""===e&&(this.mobile=e,this.vcode="")},mobile:function(e){this.vcode==this.rtnvcode&&this.rtnvcode||this.vcode||!this.isverifysms?(this.$emit("change",e),this.verror=!1):this.$emit("change",!1)}},methods:{onblur:function(){this.isverifysms&&(this.vcode==this.rtnvcode&&this.vcode?(this.verror=!1,this.$emit("change",this.mobile)):(this.verror=!0,this.$emit("change",!1)))},onsendVCode:function(e){var t=this;if(""!=this.mobile){var i=60;this.isshowtime=!0;var a=setInterval((function(){t.leftseconds=i--,0==i&&(clearInterval(a),t.isshowtime=!1)}),1e3);Object(r["k"])({mobile:this.mobile}).then((function(e){e.data;console.log(e.data),t.rtnvcode=e.data.data}))}}}}),s=o,l=(i("d8ea"),i("9ca4")),c=Object(l["a"])(s,a,n,!1,null,"2730f167",null);t["a"]=c.exports},"41d1":function(e,t,i){"use strict";var a=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("CheckboxGroup",{on:{"on-change":e.onchange},model:{value:e.sels,callback:function(t){e.sels=t},expression:"sels"}},e._l(e.transdatas,(function(t){return i("Checkbox",{key:t.value,attrs:{label:t.value}},[e._v(e._s(e.extrainfo(t)))])})),1),i("div",{style:e.descstyle},e._l(e.extrainfos,(function(t,a){return i("p",{key:"info"+a},[e._v("\n "+e._s(t)+"\n ")])})),0)],1)},n=[],r=(i("6d57"),i("9a33"),i("60b7"),{name:"Checkgroups",components:{},model:{prop:"value",event:"change"},props:["value","dicName","refModel","labelField","valueField","extraField","refwhere","isborder","baseData","descstyle","options"],data:function(){return{sels:this.value?this.value:[],datasource:this.baseData?this.baseData:[],extrainfos:[]}},watch:{value:function(e,t){this.sels=e}},computed:{transdatas:function(){var e=this;if(this.labelField&&this.valueField){var t=this.datasource.map((function(t){var i=t[e.labelField];return e.extraField&&(i=i+"|"+t[e.extraField]),{value:t[e.valueField],label:i}}));return t}return this.datasource}},methods:{extrainfo:function(e){var t=e.label.split("|");return 1==t.length?e.label:t[0]},onchange:function(e){var t=this.transdatas.map((function(t){if(e.indexOf(t.value)>=0){var i=t.label.split("|");if(console.log(i),i.length>1)return i[1]}}));this.extrainfos=t,this.$emit("change",this.sels)},initDataSource:function(e){var t=this;if(this.options){var i=this.options.split(",");i.forEach((function(e){t.datasource.push({value:e,label:e})}))}}},created:function(){},mounted:function(){this.baseData?(console.log(this.datasource),this.datasource=this.baseData):this.initDataSource()}}),o=r,s=(i("33a9"),i("9ca4")),l=Object(s["a"])(o,a,n,!1,null,"7a22c201",null);t["a"]=l.exports},"4758b":function(e,t,i){"use strict";var a=i("744d"),n=i("1135"),r=i("6f25"),o=i("52ba"),s=i("f63a"),l=Object.prototype.toString,c=0,d=4,f=0,h=1,p=2,u=-1,m=0,g=8;function _(e){if(!(this instanceof _))return new _(e);this.options=n.assign({level:u,method:g,chunkSize:16384,windowBits:15,memLevel:8,strategy:m,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var i=a.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==f)throw new Error(o[i]);if(t.header&&a.deflateSetHeader(this.strm,t.header),t.dictionary){var c;if(c="string"===typeof t.dictionary?r.string2buf(t.dictionary):"[object ArrayBuffer]"===l.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,i=a.deflateSetDictionary(this.strm,c),i!==f)throw new Error(o[i]);this._dict_set=!0}}function b(e,t){var i=new _(t);if(i.push(e,!0),i.err)throw i.msg||o[i.err];return i.result}function v(e,t){return t=t||{},t.raw=!0,b(e,t)}function w(e,t){return t=t||{},t.gzip=!0,b(e,t)}_.prototype.push=function(e,t){var i,o,s=this.strm,u=this.options.chunkSize;if(this.ended)return!1;o=t===~~t?t:!0===t?d:c,"string"===typeof e?s.input=r.string2buf(e):"[object ArrayBuffer]"===l.call(e)?s.input=new Uint8Array(e):s.input=e,s.next_in=0,s.avail_in=s.input.length;do{if(0===s.avail_out&&(s.output=new n.Buf8(u),s.next_out=0,s.avail_out=u),i=a.deflate(s,o),i!==h&&i!==f)return this.onEnd(i),this.ended=!0,!1;0!==s.avail_out&&(0!==s.avail_in||o!==d&&o!==p)||("string"===this.options.to?this.onData(r.buf2binstring(n.shrinkBuf(s.output,s.next_out))):this.onData(n.shrinkBuf(s.output,s.next_out)))}while((s.avail_in>0||0===s.avail_out)&&i!==h);return o===d?(i=a.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===f):o!==p||(this.onEnd(f),s.avail_out=0,!0)},_.prototype.onData=function(e){this.chunks.push(e)},_.prototype.onEnd=function(e){e===f&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=n.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},t.Deflate=_,t.deflate=b,t.deflateRaw=v,t.gzip=w},"494c":function(e,t,i){},"4a79":function(e,t,i){"use strict";var a=i("5e5c"),n=i.n(a);n.a},"52ba":function(e,t,i){"use strict";e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},"5e5c":function(e,t,i){},"632b":function(e,t,i){"use strict";var a=i("6da2"),n=i.n(a);n.a},"6b25":function(e,t,i){"use strict";var a=i("ec1c"),n=i.n(a);n.a},"6d7c":function(e,t,i){"use strict";var a=i("494c"),n=i.n(a);n.a},"6d9f":function(e,t,i){"use strict";var a=i("e219"),n=i.n(a);n.a},"6da2":function(e,t,i){},"6dbb":function(e,t,i){},"6f25":function(e,t,i){"use strict";var a=i("1135"),n=!0,r=!0;try{String.fromCharCode.apply(null,[0])}catch(c){n=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(c){r=!1}for(var o=new a.Buf8(256),s=0;s<256;s++)o[s]=s>=252?6:s>=248?5:s>=240?4:s>=224?3:s>=192?2:1;function l(e,t){if(t<65534&&(e.subarray&&r||!e.subarray&&n))return String.fromCharCode.apply(null,a.shrinkBuf(e,t));for(var i="",o=0;o<t;o++)i+=String.fromCharCode(e[o]);return i}o[254]=o[254]=1,t.string2buf=function(e){var t,i,n,r,o,s=e.length,l=0;for(r=0;r<s;r++)i=e.charCodeAt(r),55296===(64512&i)&&r+1<s&&(n=e.charCodeAt(r+1),56320===(64512&n)&&(i=65536+(i-55296<<10)+(n-56320),r++)),l+=i<128?1:i<2048?2:i<65536?3:4;for(t=new a.Buf8(l),o=0,r=0;o<l;r++)i=e.charCodeAt(r),55296===(64512&i)&&r+1<s&&(n=e.charCodeAt(r+1),56320===(64512&n)&&(i=65536+(i-55296<<10)+(n-56320),r++)),i<128?t[o++]=i:i<2048?(t[o++]=192|i>>>6,t[o++]=128|63&i):i<65536?(t[o++]=224|i>>>12,t[o++]=128|i>>>6&63,t[o++]=128|63&i):(t[o++]=240|i>>>18,t[o++]=128|i>>>12&63,t[o++]=128|i>>>6&63,t[o++]=128|63&i);return t},t.buf2binstring=function(e){return l(e,e.length)},t.binstring2buf=function(e){for(var t=new a.Buf8(e.length),i=0,n=t.length;i<n;i++)t[i]=e.charCodeAt(i);return t},t.buf2string=function(e,t){var i,a,n,r,s=t||e.length,c=new Array(2*s);for(a=0,i=0;i<s;)if(n=e[i++],n<128)c[a++]=n;else if(r=o[n],r>4)c[a++]=65533,i+=r-1;else{n&=2===r?31:3===r?15:7;while(r>1&&i<s)n=n<<6|63&e[i++],r--;r>1?c[a++]=65533:n<65536?c[a++]=n:(n-=65536,c[a++]=55296|n>>10&1023,c[a++]=56320|1023&n)}return l(c,a)},t.utf8border=function(e,t){var i;t=t||e.length,t>e.length&&(t=e.length),i=t-1;while(i>=0&&128===(192&e[i]))i--;return i<0||0===i?t:i+o[e[i]]>t?i:t}},"71ad":function(e,t,i){"use strict";var a=i("e139"),n=i.n(a);n.a},"744d":function(e,t,i){"use strict";var a,n=i("1135"),r=i("8a83"),o=i("b4f9"),s=i("dedd"),l=i("52ba"),c=0,d=1,f=3,h=4,p=5,u=0,m=1,g=-2,_=-3,b=-5,v=-1,w=1,y=2,k=3,x=4,M=0,C=2,S=8,O=9,z=15,T=8,j=29,$=256,E=$+1+j,B=30,A=19,N=2*E+1,F=15,D=3,H=258,I=H+D+1,L=32,P=42,R=69,Z=73,V=91,U=103,q=113,W=666,K=1,G=2,J=3,Y=4,X=3;function Q(e,t){return e.msg=l[t],t}function ee(e){return(e<<1)-(e>4?9:0)}function te(e){var t=e.length;while(--t>=0)e[t]=0}function ie(e){var t=e.state,i=t.pending;i>e.avail_out&&(i=e.avail_out),0!==i&&(n.arraySet(e.output,t.pending_buf,t.pending_out,i,e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,0===t.pending&&(t.pending_out=0))}function ae(e,t){r._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,ie(e.strm)}function ne(e,t){e.pending_buf[e.pending++]=t}function re(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function oe(e,t,i,a){var r=e.avail_in;return r>a&&(r=a),0===r?0:(e.avail_in-=r,n.arraySet(t,e.input,e.next_in,r,i),1===e.state.wrap?e.adler=o(e.adler,t,r,i):2===e.state.wrap&&(e.adler=s(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)}function se(e,t){var i,a,n=e.max_chain_length,r=e.strstart,o=e.prev_length,s=e.nice_match,l=e.strstart>e.w_size-I?e.strstart-(e.w_size-I):0,c=e.window,d=e.w_mask,f=e.prev,h=e.strstart+H,p=c[r+o-1],u=c[r+o];e.prev_length>=e.good_match&&(n>>=2),s>e.lookahead&&(s=e.lookahead);do{if(i=t,c[i+o]===u&&c[i+o-1]===p&&c[i]===c[r]&&c[++i]===c[r+1]){r+=2,i++;do{}while(c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&r<h);if(a=H-(h-r),r=h-H,a>o){if(e.match_start=t,o=a,a>=s)break;p=c[r+o-1],u=c[r+o]}}}while((t=f[t&d])>l&&0!==--n);return o<=e.lookahead?o:e.lookahead}function le(e){var t,i,a,r,o,s=e.w_size;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=s+(s-I)){n.arraySet(e.window,e.window,s,s,0),e.match_start-=s,e.strstart-=s,e.block_start-=s,i=e.hash_size,t=i;do{a=e.head[--t],e.head[t]=a>=s?a-s:0}while(--i);i=s,t=i;do{a=e.prev[--t],e.prev[t]=a>=s?a-s:0}while(--i);r+=s}if(0===e.strm.avail_in)break;if(i=oe(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=i,e.lookahead+e.insert>=D){o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+1])&e.hash_mask;while(e.insert)if(e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+D-1])&e.hash_mask,e.prev[o&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=o,o++,e.insert--,e.lookahead+e.insert<D)break}}while(e.lookahead<I&&0!==e.strm.avail_in)}function ce(e,t){var i=65535;for(i>e.pending_buf_size-5&&(i=e.pending_buf_size-5);;){if(e.lookahead<=1){if(le(e),0===e.lookahead&&t===c)return K;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var a=e.block_start+i;if((0===e.strstart||e.strstart>=a)&&(e.lookahead=e.strstart-a,e.strstart=a,ae(e,!1),0===e.strm.avail_out))return K;if(e.strstart-e.block_start>=e.w_size-I&&(ae(e,!1),0===e.strm.avail_out))return K}return e.insert=0,t===h?(ae(e,!0),0===e.strm.avail_out?J:Y):(e.strstart>e.block_start&&(ae(e,!1),e.strm.avail_out),K)}function de(e,t){for(var i,a;;){if(e.lookahead<I){if(le(e),e.lookahead<I&&t===c)return K;if(0===e.lookahead)break}if(i=0,e.lookahead>=D&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+D-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==i&&e.strstart-i<=e.w_size-I&&(e.match_length=se(e,i)),e.match_length>=D)if(a=r._tr_tally(e,e.strstart-e.match_start,e.match_length-D),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=D){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+D-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!==--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else a=r._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(a&&(ae(e,!1),0===e.strm.avail_out))return K}return e.insert=e.strstart<D-1?e.strstart:D-1,t===h?(ae(e,!0),0===e.strm.avail_out?J:Y):e.last_lit&&(ae(e,!1),0===e.strm.avail_out)?K:G}function fe(e,t){for(var i,a,n;;){if(e.lookahead<I){if(le(e),e.lookahead<I&&t===c)return K;if(0===e.lookahead)break}if(i=0,e.lookahead>=D&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+D-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=D-1,0!==i&&e.prev_length<e.max_lazy_match&&e.strstart-i<=e.w_size-I&&(e.match_length=se(e,i),e.match_length<=5&&(e.strategy===w||e.match_length===D&&e.strstart-e.match_start>4096)&&(e.match_length=D-1)),e.prev_length>=D&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-D,a=r._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-D),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=n&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+D-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!==--e.prev_length);if(e.match_available=0,e.match_length=D-1,e.strstart++,a&&(ae(e,!1),0===e.strm.avail_out))return K}else if(e.match_available){if(a=r._tr_tally(e,0,e.window[e.strstart-1]),a&&ae(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return K}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(a=r._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<D-1?e.strstart:D-1,t===h?(ae(e,!0),0===e.strm.avail_out?J:Y):e.last_lit&&(ae(e,!1),0===e.strm.avail_out)?K:G}function he(e,t){for(var i,a,n,o,s=e.window;;){if(e.lookahead<=H){if(le(e),e.lookahead<=H&&t===c)return K;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=D&&e.strstart>0&&(n=e.strstart-1,a=s[n],a===s[++n]&&a===s[++n]&&a===s[++n])){o=e.strstart+H;do{}while(a===s[++n]&&a===s[++n]&&a===s[++n]&&a===s[++n]&&a===s[++n]&&a===s[++n]&&a===s[++n]&&a===s[++n]&&n<o);e.match_length=H-(o-n),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=D?(i=r._tr_tally(e,1,e.match_length-D),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=r._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(ae(e,!1),0===e.strm.avail_out))return K}return e.insert=0,t===h?(ae(e,!0),0===e.strm.avail_out?J:Y):e.last_lit&&(ae(e,!1),0===e.strm.avail_out)?K:G}function pe(e,t){for(var i;;){if(0===e.lookahead&&(le(e),0===e.lookahead)){if(t===c)return K;break}if(e.match_length=0,i=r._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(ae(e,!1),0===e.strm.avail_out))return K}return e.insert=0,t===h?(ae(e,!0),0===e.strm.avail_out?J:Y):e.last_lit&&(ae(e,!1),0===e.strm.avail_out)?K:G}function ue(e,t,i,a,n){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=a,this.func=n}function me(e){e.window_size=2*e.w_size,te(e.head),e.max_lazy_match=a[e.level].max_lazy,e.good_match=a[e.level].good_length,e.nice_match=a[e.level].nice_length,e.max_chain_length=a[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=D-1,e.match_available=0,e.ins_h=0}function ge(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=S,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new n.Buf16(2*N),this.dyn_dtree=new n.Buf16(2*(2*B+1)),this.bl_tree=new n.Buf16(2*(2*A+1)),te(this.dyn_ltree),te(this.dyn_dtree),te(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new n.Buf16(F+1),this.heap=new n.Buf16(2*E+1),te(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new n.Buf16(2*E+1),te(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function _e(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=C,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?P:q,e.adler=2===t.wrap?0:1,t.last_flush=c,r._tr_init(t),u):Q(e,g)}function be(e){var t=_e(e);return t===u&&me(e.state),t}function ve(e,t){return e&&e.state?2!==e.state.wrap?g:(e.state.gzhead=t,u):g}function we(e,t,i,a,r,o){if(!e)return g;var s=1;if(t===v&&(t=6),a<0?(s=0,a=-a):a>15&&(s=2,a-=16),r<1||r>O||i!==S||a<8||a>15||t<0||t>9||o<0||o>x)return Q(e,g);8===a&&(a=9);var l=new ge;return e.state=l,l.strm=e,l.wrap=s,l.gzhead=null,l.w_bits=a,l.w_size=1<<l.w_bits,l.w_mask=l.w_size-1,l.hash_bits=r+7,l.hash_size=1<<l.hash_bits,l.hash_mask=l.hash_size-1,l.hash_shift=~~((l.hash_bits+D-1)/D),l.window=new n.Buf8(2*l.w_size),l.head=new n.Buf16(l.hash_size),l.prev=new n.Buf16(l.w_size),l.lit_bufsize=1<<r+6,l.pending_buf_size=4*l.lit_bufsize,l.pending_buf=new n.Buf8(l.pending_buf_size),l.d_buf=1*l.lit_bufsize,l.l_buf=3*l.lit_bufsize,l.level=t,l.strategy=o,l.method=i,be(e)}function ye(e,t){return we(e,t,S,z,T,M)}function ke(e,t){var i,n,o,l;if(!e||!e.state||t>p||t<0)return e?Q(e,g):g;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||n.status===W&&t!==h)return Q(e,0===e.avail_out?b:g);if(n.strm=e,i=n.last_flush,n.last_flush=t,n.status===P)if(2===n.wrap)e.adler=0,ne(n,31),ne(n,139),ne(n,8),n.gzhead?(ne(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),ne(n,255&n.gzhead.time),ne(n,n.gzhead.time>>8&255),ne(n,n.gzhead.time>>16&255),ne(n,n.gzhead.time>>24&255),ne(n,9===n.level?2:n.strategy>=y||n.level<2?4:0),ne(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(ne(n,255&n.gzhead.extra.length),ne(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=s(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=R):(ne(n,0),ne(n,0),ne(n,0),ne(n,0),ne(n,0),ne(n,9===n.level?2:n.strategy>=y||n.level<2?4:0),ne(n,X),n.status=q);else{var _=S+(n.w_bits-8<<4)<<8,v=-1;v=n.strategy>=y||n.level<2?0:n.level<6?1:6===n.level?2:3,_|=v<<6,0!==n.strstart&&(_|=L),_+=31-_%31,n.status=q,re(n,_),0!==n.strstart&&(re(n,e.adler>>>16),re(n,65535&e.adler)),e.adler=1}if(n.status===R)if(n.gzhead.extra){o=n.pending;while(n.gzindex<(65535&n.gzhead.extra.length)){if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>o&&(e.adler=s(e.adler,n.pending_buf,n.pending-o,o)),ie(e),o=n.pending,n.pending===n.pending_buf_size))break;ne(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++}n.gzhead.hcrc&&n.pending>o&&(e.adler=s(e.adler,n.pending_buf,n.pending-o,o)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=Z)}else n.status=Z;if(n.status===Z)if(n.gzhead.name){o=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>o&&(e.adler=s(e.adler,n.pending_buf,n.pending-o,o)),ie(e),o=n.pending,n.pending===n.pending_buf_size)){l=1;break}l=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,ne(n,l)}while(0!==l);n.gzhead.hcrc&&n.pending>o&&(e.adler=s(e.adler,n.pending_buf,n.pending-o,o)),0===l&&(n.gzindex=0,n.status=V)}else n.status=V;if(n.status===V)if(n.gzhead.comment){o=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>o&&(e.adler=s(e.adler,n.pending_buf,n.pending-o,o)),ie(e),o=n.pending,n.pending===n.pending_buf_size)){l=1;break}l=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,ne(n,l)}while(0!==l);n.gzhead.hcrc&&n.pending>o&&(e.adler=s(e.adler,n.pending_buf,n.pending-o,o)),0===l&&(n.status=U)}else n.status=U;if(n.status===U&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&ie(e),n.pending+2<=n.pending_buf_size&&(ne(n,255&e.adler),ne(n,e.adler>>8&255),e.adler=0,n.status=q)):n.status=q),0!==n.pending){if(ie(e),0===e.avail_out)return n.last_flush=-1,u}else if(0===e.avail_in&&ee(t)<=ee(i)&&t!==h)return Q(e,b);if(n.status===W&&0!==e.avail_in)return Q(e,b);if(0!==e.avail_in||0!==n.lookahead||t!==c&&n.status!==W){var w=n.strategy===y?pe(n,t):n.strategy===k?he(n,t):a[n.level].func(n,t);if(w!==J&&w!==Y||(n.status=W),w===K||w===J)return 0===e.avail_out&&(n.last_flush=-1),u;if(w===G&&(t===d?r._tr_align(n):t!==p&&(r._tr_stored_block(n,0,0,!1),t===f&&(te(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),ie(e),0===e.avail_out))return n.last_flush=-1,u}return t!==h?u:n.wrap<=0?m:(2===n.wrap?(ne(n,255&e.adler),ne(n,e.adler>>8&255),ne(n,e.adler>>16&255),ne(n,e.adler>>24&255),ne(n,255&e.total_in),ne(n,e.total_in>>8&255),ne(n,e.total_in>>16&255),ne(n,e.total_in>>24&255)):(re(n,e.adler>>>16),re(n,65535&e.adler)),ie(e),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?u:m)}function xe(e){var t;return e&&e.state?(t=e.state.status,t!==P&&t!==R&&t!==Z&&t!==V&&t!==U&&t!==q&&t!==W?Q(e,g):(e.state=null,t===q?Q(e,_):u)):g}function Me(e,t){var i,a,r,s,l,c,d,f,h=t.length;if(!e||!e.state)return g;if(i=e.state,s=i.wrap,2===s||1===s&&i.status!==P||i.lookahead)return g;1===s&&(e.adler=o(e.adler,t,h,0)),i.wrap=0,h>=i.w_size&&(0===s&&(te(i.head),i.strstart=0,i.block_start=0,i.insert=0),f=new n.Buf8(i.w_size),n.arraySet(f,t,h-i.w_size,i.w_size,0),t=f,h=i.w_size),l=e.avail_in,c=e.next_in,d=e.input,e.avail_in=h,e.next_in=0,e.input=t,le(i);while(i.lookahead>=D){a=i.strstart,r=i.lookahead-(D-1);do{i.ins_h=(i.ins_h<<i.hash_shift^i.window[a+D-1])&i.hash_mask,i.prev[a&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=a,a++}while(--r);i.strstart=a,i.lookahead=D-1,le(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=D-1,i.match_available=0,e.next_in=c,e.input=d,e.avail_in=l,i.wrap=s,u}a=[new ue(0,0,0,0,ce),new ue(4,4,8,4,de),new ue(4,5,16,8,de),new ue(4,6,32,32,de),new ue(4,4,16,16,fe),new ue(8,16,32,32,fe),new ue(8,16,128,128,fe),new ue(8,32,128,256,fe),new ue(32,128,258,1024,fe),new ue(32,258,258,4096,fe)],t.deflateInit=ye,t.deflateInit2=we,t.deflateReset=be,t.deflateResetKeep=_e,t.deflateSetHeader=ve,t.deflate=ke,t.deflateEnd=xe,t.deflateSetDictionary=Me,t.deflateInfo="pako deflate (from Nodeca project)"},"758a":function(e,t,i){"use strict";var a=30,n=12;e.exports=function(e,t){var i,r,o,s,l,c,d,f,h,p,u,m,g,_,b,v,w,y,k,x,M,C,S,O,z;i=e.state,r=e.next_in,O=e.input,o=r+(e.avail_in-5),s=e.next_out,z=e.output,l=s-(t-e.avail_out),c=s+(e.avail_out-257),d=i.dmax,f=i.wsize,h=i.whave,p=i.wnext,u=i.window,m=i.hold,g=i.bits,_=i.lencode,b=i.distcode,v=(1<<i.lenbits)-1,w=(1<<i.distbits)-1;e:do{g<15&&(m+=O[r++]<<g,g+=8,m+=O[r++]<<g,g+=8),y=_[m&v];t:for(;;){if(k=y>>>24,m>>>=k,g-=k,k=y>>>16&255,0===k)z[s++]=65535&y;else{if(!(16&k)){if(0===(64&k)){y=_[(65535&y)+(m&(1<<k)-1)];continue t}if(32&k){i.mode=n;break e}e.msg="invalid literal/length code",i.mode=a;break e}x=65535&y,k&=15,k&&(g<k&&(m+=O[r++]<<g,g+=8),x+=m&(1<<k)-1,m>>>=k,g-=k),g<15&&(m+=O[r++]<<g,g+=8,m+=O[r++]<<g,g+=8),y=b[m&w];i:for(;;){if(k=y>>>24,m>>>=k,g-=k,k=y>>>16&255,!(16&k)){if(0===(64&k)){y=b[(65535&y)+(m&(1<<k)-1)];continue i}e.msg="invalid distance code",i.mode=a;break e}if(M=65535&y,k&=15,g<k&&(m+=O[r++]<<g,g+=8,g<k&&(m+=O[r++]<<g,g+=8)),M+=m&(1<<k)-1,M>d){e.msg="invalid distance too far back",i.mode=a;break e}if(m>>>=k,g-=k,k=s-l,M>k){if(k=M-k,k>h&&i.sane){e.msg="invalid distance too far back",i.mode=a;break e}if(C=0,S=u,0===p){if(C+=f-k,k<x){x-=k;do{z[s++]=u[C++]}while(--k);C=s-M,S=z}}else if(p<k){if(C+=f+p-k,k-=p,k<x){x-=k;do{z[s++]=u[C++]}while(--k);if(C=0,p<x){k=p,x-=k;do{z[s++]=u[C++]}while(--k);C=s-M,S=z}}}else if(C+=p-k,k<x){x-=k;do{z[s++]=u[C++]}while(--k);C=s-M,S=z}while(x>2)z[s++]=S[C++],z[s++]=S[C++],z[s++]=S[C++],x-=3;x&&(z[s++]=S[C++],x>1&&(z[s++]=S[C++]))}else{C=s-M;do{z[s++]=z[C++],z[s++]=z[C++],z[s++]=z[C++],x-=3}while(x>2);x&&(z[s++]=z[C++],x>1&&(z[s++]=z[C++]))}break}}break}}while(r<o&&s<c);x=g>>3,r-=x,g-=x<<3,m&=(1<<g)-1,e.next_in=r,e.next_out=s,e.avail_in=r<o?o-r+5:5-(r-o),e.avail_out=s<c?c-s+257:257-(s-c),i.hold=m,i.bits=g}},"759e":function(e,t,i){"use strict";var a=i("1135").assign,n=i("4758b"),r=i("32b8"),o=i("77bd"),s={};a(s,n,r,o),e.exports=s},"77bd":function(e,t,i){"use strict";e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},"7b69":function(e,t,i){"use strict";var a=i("cf0b"),n=i.n(a);n.a},"7d2a":function(e,t,i){"use strict";var a=i("19f2"),n=i.n(a);n.a},8586:function(e,t,i){"use strict";var a=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"acrao",style:{}},[i("div",{ref:"acrao_wrapper",class:["acrao_wrapper",e.topAffix&&"topAffix",e.bottomAffix&&"bottomAffix"],style:{paddingLeft:e.config.acraoStyle.paddingLeft+"px"||!1,paddingRight:e.config.acraoStyle.paddingRight+"px"||!1,paddingTop:e.config.acraoStyle.paddingTop+"px"||!1,paddingBottom:e.config.acraoStyle.paddingBottom+"px"||!1,background:e.config.acraoStyle.background||"#fff"}},["banner"==e.config.type&&e.config.list.length?[i("Swiper",{attrs:{config:e.config}})]:e._e(),"text"==e.config.type?[i("TextMoudle",{attrs:{config:e.config}})]:e._e(),"image"==e.config.type?[i("Photo",{attrs:{config:e.config}})]:e._e(),"listImage"==e.config.type?[i("MultiPic",{attrs:{config:e.config}})]:e._e(),"swiper"==e.config.type?[i("CarouselPic",{attrs:{config:e.config}})]:e._e(),"imageText"==e.config.type?[i("ImgsText",{attrs:{config:e.config}})]:e._e(),"button"==e.config.type?[i("ButtonModle",{attrs:{config:e.config}})]:e._e(),e.config.formName?[i("FormModle",{ref:"bt",staticClass:"FormModle",attrs:{formid:e.config.formName,styleConfig:e.config.style}})]:e._e()],2)])},n=[],r=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"swiperMain"},[i("div",{class:["swiper-container",e.config.type+e.config.id].join(" "),style:{maxWidth:e.config.style.width<=100?e.config.style.width+"%":e.config.style.width+"px",height:e.config.style.height+"px"}},[i("div",{staticClass:"swiper-wrapper"},e._l(e.config.list,(function(t,a){return i("div",{key:a,staticClass:"swiper-slide",on:{click:function(i){return e.slideHandleClick(t)}}},[i("div",{staticClass:"imgBg",style:{backgroundImage:"url('"+t.url+"')"}}),i("div",{staticClass:"swiper_text",style:Object.assign({},e.config.text_style,e.config.style)},[i("h1",[e._v(e._s(t.title))]),i("p",[e._v(e._s(t.text))])])])})),0),i("div",{directives:[{name:"show",rawName:"v-show",value:e.config.list.length>1,expression:"config.list.length > 1"}],staticClass:"swiper-pagination"})])])},o=[],s=i("c620"),l={name:"carrousel",props:{config:{type:Object,default:function(){return{}}}},data:function(){return{swiper:null}},mounted:function(){this.newswiper()},watch:{config:{handler:function(e,t){this.swiper.params.autoplay.delay=1e3*e.display_time,this.swiper.params.speed=1e3*e.switching_speed},deep:!0}},methods:{newswiper:function(){this.swiper=new s["default"](".".concat(this.config.type+this.config.id),{pagination:{el:".swiper-pagination",clickable:!0},autoplay:{delay:1e3*this.config.display_time,stopOnLastSlide:!1,disableOnInteraction:!1},observer:!0,observeSlideChildren:!0,speed:1e3*this.config.switching_speed})},slideHandleClick:function(e){if(e.href)if("router"==e.hrefType&&"original"==e.openType)this.$router.push(e.href);else if("router"==e.hrefType&&"blank"==e.openType){var t=this.$router.resolve({path:e.href});window.open(t.href,"_blank")}else"href"==e.hrefType&&"original"==e.openType?window.location.href=e.href:"href"==e.hrefType&&"blank"==e.openType&&window.open(e.href,"_blank")}}},c=l,d=(i("71ad"),i("9ca4")),f=Object(d["a"])(c,r,o,!1,null,"5c4efd8f",null),h=f.exports,p=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"buttonMain"},[i("button",{staticClass:"buttonMain_btn",style:Object.assign({},e.config.style),on:{mouseover:function(t){return e.btnMouseOver(t)},mouseleave:function(t){return e.btnMouseLeave(t)},click:e.btnClick}},[e._v("\n "+e._s(e.config.text)+"\n ")])])},u=[],m=(i("5ab2"),i("6d57"),i("e10e"),i("cc57"),i("6a61"),i("cf7f")),g=i("ce3c"),_=i("9f3a"),b=i("6205");function v(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,a)}return i}function w(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?v(Object(i),!0).forEach((function(t){Object(g["a"])(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):v(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}var y={props:{config:{type:Object,default:function(){return{}}}},data:function(){return{flag:!0}},computed:w({},Object(_["e"])({linkinfo:function(e){return e.template.linkinfo},templateinfo:function(e){return e.template.templateinfo},formItemMsg:function(e){return e.template.formItemMsg}})),methods:w({btnMouseOver:function(e){var t=this.config.hover,i=t.background,a=t.borderColor;e.target.style.background=i,e.target.style.borderColor=a},btnMouseLeave:function(e){var t=this.config.style,i=t.background,a=t.borderColor;e.target.style.background=i,e.target.style.borderColor=a},btnClick:function(){switch(this.config.hrefType){case"none":break;case"router":if("original"==this.config.openType)this.$router.push(this.config.href);else{var e=this.$router.resolve({path:this.config.href});window.open(e.href,"_blank")}break;case"href":"original"==this.config.openType?window.location.href=this.config.href:window.open(this.config.href,"_blank");break;case"func":switch(this.config.function){case"service":window.open(this.config.href,"_blank");break;case"subform":this.submitForm();break}break}},submitForm:function(){var e=Object(m["a"])(regeneratorRuntime.mark((function e(){var t,i,a,n=this;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(this.flag){e.next=2;break}return e.abrupt("return");case 2:if(this.flag=!1,t=!0,document.querySelector(".tfhref")){e.next=6;break}return e.abrupt("return");case 6:return i=this.$parent.$parent.$children,a=i.filter((function(e){return e.$refs.bt}))[0].$refs.bt,e.next=10,a.validate((function(e){e||(t=!1,n.flag=!0)}));case 10:if(t){e.next=12;break}return e.abrupt("return");case 12:this.joinData(a.formModel),AliGuide.aliVerification((function(e){var t=w(w({},a.formModel),{},{link_code:n.linkinfo.code,form_id:a.formid,ali_code:e});Object(b["g"])(t).then((function(e){n.flag=!0,200==e.status&&0==e.data.status?(n.$Message.success("提交成功!"),a.resetForm()):n.$Message.warning(e.data.msg)})).catch((function(e){}))}));case 14:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}(),joinData:function(e){var t=[];for(var i in e)t.push(this.formItemMsg[i]+":'"+e[i]+"'");var a={customer_phone:e.contact_mobile,customer_name:e.contact_name,source_type:"marketplat",source:this.linkinfo.name||this.linkinfo.code||"未知链接名称",advisory_content:t.join(",")};return a}},Object(_["d"])({setIsIframeShow:"template/setIsIframeShow"})),destroyed:function(){this.setIsIframeShow(!1)}},k=y,x=(i("6b25"),Object(d["a"])(k,p,u,!1,null,"7d27b2d0",null)),M=x.exports,C=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("Card",{ref:"formcard",attrs:{"dis-hover":"",bordered:!1}},[i("div",{staticStyle:{scroll:"auto"}},[i("Form",{ref:"ofm",attrs:{model:e.formModel,rules:e.metaRules,"label-position":"top"}},[e.forminfo.lists&&e.forminfo.lists.length>0?[i("Tabs",{attrs:{value:"main"},on:{"on-click":e.tabselected}},[i("TabPane",{attrs:{label:"表单信息",name:"main"}},[e._l(e.forminfo.main,(function(t){return[i("Row",{key:"r"+t.title,attrs:{type:"flex",justify:"start"}},e._l(t.ctls,(function(a){return i("i-col",{key:a.prop?a.prop:a.fromprop,attrs:{xs:e.getCols(t.cols),sm:e.getCols(t.cols),md:e.getCols(t.cols),lg:e.getCols(t.cols)}},[e.ctlVisable[a.prop?a.prop:a.fromprop]?i("FormItem",{attrs:{label:a.label,prop:a.prop}},["input"==a.type?[i("Input",{style:e.styleConfig,attrs:{type:"text",placeholder:a.placeHolder,disabled:a.disabled},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"btn"==a.type?[i("button",{attrs:{type:a.btncss,icon:a.icon}},[e._v("\n "+e._s(a.label)+"\n ")])]:e._e(),"dic-select"==a.type?[i("DicSelect",{attrs:{dicName:a.dicName,placeHolder:a.placeHolder,isMulti:a.isMulti,options:a.options,styleConfig:e.styleConfig},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"model-select"==a.type?[i("ModelSelect",{style:a.style,attrs:{refModel:a.refModel,placeHolder:a.placeHolder,isMulti:a.isMulti,labelField:a.labelField,valueField:a.valueField},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"remote-select"==a.type?[i("RemoteSelect",{style:a.style,attrs:{packageName:a.packageName,refModel:a.refModel,placeHolder:a.placeHolder,isMulti:a.isMulti,labelField:a.labelField,valueField:a.valueField},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"switch"==a.type?[i("Switchs",{attrs:{openlabel:a.opentext,closelabel:a.closetext,truecolor:a.truecolor,falsecolor:a.falsecolor,propname:a.prop},on:{changewithprop:e.controlCtl},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"checkgroup"==a.type?[i("Checkgroups",{attrs:{dicName:a.dicName,refModel:a.refModel,isborder:a.isBorder,options:a.options},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"radiogroup"==a.type?[i("Radiogroups",{attrs:{dicName:a.dicName,refModel:a.refModel,isborder:a.isBorder,options:a.options},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"upload"==a.type?[i("Uploads",{attrs:{propName:a.prop},on:{formevent:e.onformevent},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"password"==a.type?[i("Input",{style:e.styleConfig,attrs:{type:"password",placeholder:a.placeHolder},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"textarea"==a.type?[i("Input",{style:e.styleConfig,attrs:{type:"textarea",placeholder:a.placeHolder,autosize:{minRows:2,maxRows:2}},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"number"==a.type?[i("InputNumber",{style:e.styleConfig,attrs:{placeholder:a.placeHolder},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"datetime"==a.type?[i("DateTime",{style:a.style,attrs:{placeholder:a.placeHolder,dateType:a.dateType},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"daterange"==a.type?[i("DateTime",{style:a.style,attrs:{placeholder:a.placeHolder,dateType:a.dateType},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"label"==a.type?[i("span",{style:a.style},[e._v(e._s(e.formModel[a.prop]))])]:e._e(),"steps"==a.type?[i("Steps",{style:a.style,attrs:{dicType:a.dicType,statusStr:e.formModel[a.fromprop],placeholder:a.placeHolder}})]:e._e(),"dtag"==a.type?[i("DTags",{style:a.style,attrs:{canclose:a.canclose},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"dreftag"==a.type?[i("DRefTags",{style:a.style,attrs:{canclose:a.canclose,refModel:a.refModel,labelField:a.labelField,valueField:a.valueField,placeHolder:a.placeHolder,isMulti:a.isMulti,dicName:a.dicName,isLabelValue:a.isLabelValue},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"tree-sel"==a.type?[i("TreeSel",{style:a.style,attrs:{rootName:a.rootName,hint:a.placeHolder,archName:a.archName},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"h5editor"==a.type?[i("HtmlEditor",{style:a.style,model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e()],2):e._e()],1)})),1)]}))],2),e._l(e.forminfo.lists,(function(t){return i("TabPane",{key:t.bizCode,attrs:{disabled:e.tabDisabled[t.bizCode],label:t.title,name:t.bizCode}},[i("ChildList",{ref:t["bizCode"],refInFor:!0,attrs:{modelName:t["modelName"],metaName:t["bizCode"],packageName:t["packageName"],initPropZIndex:1100,isLazy:t.isLazy,formatCol:e.formatCol,isChildList:!0,initWhere:e.getInitWhere(t.initWhere),refvalidatemethod:e.refvalidatemethod,baseUrl:t.baseUrl,sumfields:t.sumfields},on:{onexec:e.onexec}})],1)}))],2)]:e._l(e.forminfo.main,(function(t){return[i("Row",{key:"r"+t.title,attrs:{type:"flex",justify:"start",align:"top"}},e._l(t.ctls,(function(a){return i("i-col",{key:a.prop?a.prop:a.fromprop,attrs:{xs:e.getCols(t.cols),sm:e.getCols(t.cols),md:e.getCols(t.cols),lg:e.getCols(t.cols)}},[e.ctlVisable[a.prop?a.prop:a.fromprop]?i("FormItem",{attrs:{label:a.label,prop:a.prop}},["input"==a.type?[i("Input",{style:e.styleConfig,attrs:{type:"text",placeholder:a.placeHolder,disabled:a.disabled},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"btn"==a.type?[i("button",{attrs:{type:a.btncss,icon:a.icon}},[e._v("\n "+e._s(a.label)+"\n ")])]:e._e(),"dic-select"==a.type?[i("DicSelect",{attrs:{dicName:a.dicName,placeHolder:a.placeHolder,isMulti:a.isMulti,options:a.options,styleConfig:e.styleConfig},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"model-select"==a.type?[i("ModelSelect",{style:a.style,attrs:{refModel:a.refModel,placeHolder:a.placeHolder,isMulti:a.isMulti,labelField:a.labelField,valueField:a.valueField},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"remote-select"==a.type?[i("RemoteSelect",{attrs:{refModel:a.refModel,placeHolder:a.placeHolder,isMulti:a.isMulti,labelField:a.labelField,valueField:a.valueField},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"switch"==a.type?[i("Switchs",{attrs:{openlabel:a.opentext,closelabel:a.closetext,truecolor:a.truecolor,falsecolor:a.falsecolor,propname:a.prop},on:{changewithprop:e.controlCtl},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"checkgroup"==a.type?[i("Checkgroups",{attrs:{dicName:a.dicName,refModel:a.refModel,isborder:a.isBorder,options:a.options},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"radiogroup"==a.type?[i("Radiogroups",{attrs:{dicName:a.dicName,refModel:a.refModel,isborder:a.isBorder,options:a.options},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"upload"==a.type?[i("Uploads",{attrs:{propName:a.prop},on:{formevent:e.onformevent},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"password"==a.type?[i("Input",{style:e.style,attrs:{type:"password",placeholder:a.placeHolder},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"textarea"==a.type?[i("Input",{style:e.styleConfig,attrs:{type:"textarea",placeholder:a.placeHolder,autosize:{minRows:2,maxRows:2}},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"number"==a.type?[i("InputNumber",{style:e.styleConfig,attrs:{placeholder:a.placeHolder},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"datetime"==a.type?[i("DateTime",{style:a.style,attrs:{placeholder:a.placeHolder,dateType:a.dateType},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"daterange"==a.type?[i("DateTime",{style:a.style,attrs:{placeholder:a.placeHolder,dateType:a.dateType},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"label"==a.type?[i("span",{style:a.style},[e._v(e._s(e.formModel[a.prop]))])]:e._e(),"steps"==a.type?[i("Steps",{style:a.style,attrs:{dicType:a.dicType,statusStr:e.formModel[a.fromprop],placeholder:a.placeHolder}})]:e._e(),"dtag"==a.type?[i("DTags",{style:a.style,attrs:{canclose:a.canclose},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"dreftag"==a.type?[i("DRefTags",{style:a.style,attrs:{canclose:a.canclose,refModel:a.refModel,labelField:a.labelField,valueField:a.valueField,placeHolder:a.placeHolder,isMulti:a.isMulti,dicName:a.dicName,isLabelValue:a.isLabelValue},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"tree-sel"==a.type?[i("CascaderCity",{attrs:{data:e.cityList,styleConfig:e.styleConfig},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"mobile"==a.type?[i("Mobile",{ref:"mobile",refInFor:!0,style:a.style,attrs:{verifysms:a.verifysms,hint:a.placeHolder,placeHolder:a.placeHolder,styleConfig:e.styleConfig},model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e(),"h5editor"==a.type?[i("HtmlEditor",{style:a.style,model:{value:e.formModel[a.prop],callback:function(t){e.$set(e.formModel,a.prop,t)},expression:"formModel[ctl.prop]"}})]:e._e()],2):e._e()],1)})),1)]}))],2),e.isEditForm?i("div",{staticClass:"form-footer"},[e._t("default",null,{fm:e.formModel})],2):e._e(),e.isNotFixed?i("div",{staticClass:"form-footer2"},[e._t("default",null,{fm:e.formModel})],2):e._e(),e.isSearchForm?i("div",{staticClass:"form-footer3"},[e._t("default",null,{fm:e.formModel})],2):e._e()],1)])],1)},S=[],O=i("3c73"),z=O["a"],T=(i("ef70"),Object(d["a"])(z,C,S,!1,null,"5b818b28",null)),j=T.exports,$=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"text-ql"},[i("div",{staticClass:"ql-editor"},[i("div",{domProps:{innerHTML:e._s(e.config.inner_text)}})])])},E=[],B={data:function(){return{btnShow:!0}},mounted:function(){},props:{config:{type:Object}},component:{},methods:{},computed:{}},A=B,N=(i("af8a"),Object(d["a"])(A,$,E,!1,null,"59fd3b9a",null)),F=N.exports,D=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"photo"},[i("img",{attrs:{src:e.config.url,alt:""}})])},H=[],I={props:{config:{type:Object}},mounted:function(){}},L=I,P=(i("e3fe"),Object(d["a"])(L,D,H,!1,null,"5a50e28c",null)),R=P.exports,Z=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"multipic"},["onenormal"==e.config.image_type?i("ul",{staticClass:"pic-line",style:{paddingLeft:e.config.style.imgLevelMargin/2+"px",paddingRight:e.config.style.imgLevelMargin/2+"px"}},e._l(e.config.list,(function(t,a){return i("li",{directives:[{name:"show",rawName:"v-show",value:e.config.list.length,expression:"config.list.length"}],key:a,style:{width:1/e.config.number*100-.5+"%",height:e.config.style.height+"px",padding:e.config.style.imgLevelMargin/2+"px "+e.config.style.imgVerticalMargin/2+"px"},on:{click:function(i){return e.slideHandleClick(t)}}},[i("img",{attrs:{src:t.url,alt:""}}),t.text?i("div",{staticClass:"pictitle",style:{height:"40px"}},[e._v("\n "+e._s(t.text)+"\n ")]):e._e()])})),0):e._e(),"twoswiper"==e.config.image_type?i("div",{style:{paddingLeft:e.config.style.imgLevelMargin/2+"px",paddingRight:e.config.style.imgLevelMargin/2+"px",paddingTop:e.config.style.imgVerticalMargin/2+"px",paddingBottom:e.config.style.imgVerticalMargin/2+"px",position:"relative"}},[i("Swiper",{ref:"mySwiper",attrs:{options:e.swiperOption}},[e._l(e.config.list,(function(t,a){return i("SwiperSlide",{key:a,staticClass:"swiper-slide",style:{width:"100%",height:e.config.style.height+"px"},nativeOn:{click:function(i){return e.slideHandleClick(t)}}},[i("img",{staticStyle:{width:"100%",height:"100%"},attrs:{src:t.url,alt:""}}),t.text?i("div",{staticClass:"swiperpictitle"},[e._v("\n "+e._s(t.text)+"\n ")]):e._e()])})),i("div",{directives:[{name:"show",rawName:"v-show",value:e.config.list.length,expression:"config.list.length"}],staticClass:"swiper-pagination",attrs:{slot:"pagination"},slot:"pagination"}),i("div",{staticClass:"swiper-button-prev",attrs:{slot:"button-prev"},slot:"button-prev"}),i("div",{staticClass:"swiper-button-next",attrs:{slot:"button-next"},slot:"button-next"})],2)],1):e._e()])},V=[],U=i("d02f"),q={props:{config:{type:Object,default:function(){return{}}}},data:function(){return{swiperOption:{slidesPerView:this.config.list.length>=4?4:this.config.list.length,spaceBetween:this.config.style.imgLevelMargin,observer:!0,observeSlideChildren:!0,loop:!0,speed:1e3,navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev",hideOnClick:!0},grabCursor:!0}}},methods:{slideHandleClick:function(e){if(console.log("clicked the slide"),e.href)if("router"==e.hrefType&&"original"==e.openType)this.$router.push(e.href);else if("router"==e.hrefType&&"blank"==e.openType){var t=this.$router.resolve({path:e.href});window.open(t.href,"_blank")}else"href"==e.hrefType&&"original"==e.openType?window.location.href=e.href:"href"==e.hrefType&&"blank"==e.openType&&window.open(e.href,"_blank")}}},W=q,K=(i("632b"),Object(d["a"])(W,Z,V,!1,null,null,null)),G=K.exports,J=function(){var e=this,t=e.$createElement,i=e._self._c||t;return e.swiperReset?i("div",{staticClass:"swiper-container"},[i("Swiper",{ref:"mySwiper",class:"sidebar"==e.config.swiper_type&&"sidebar",style:{width:e.config.style.width+"%",height:e.config.style.height+"px"},attrs:{options:e.swiperOption}},[e._l(e.config.list,(function(t,a){return i("SwiperSlide",{key:a,staticClass:"swiper-slide",nativeOn:{click:function(i){return e.slideHandleClick(t)}}},[i("div",{staticClass:"swiper_slide_img",style:{backgroundImage:"url('"+t.url+"')"}})])})),i("div",{directives:[{name:"show",rawName:"v-show",value:"spot"==e.config.swiper_type,expression:"config.swiper_type == 'spot'"}],staticClass:"swiper-pagination",attrs:{slot:"pagination"},slot:"pagination"}),i("div",{directives:[{name:"show",rawName:"v-show",value:"arrow"==e.config.swiper_type,expression:"config.swiper_type == 'arrow'"}],staticClass:"swiper-button-prev",attrs:{slot:"button-prev"},slot:"button-prev"}),i("div",{directives:[{name:"show",rawName:"v-show",value:"arrow"==e.config.swiper_type,expression:"config.swiper_type == 'arrow'"}],staticClass:"swiper-button-next",attrs:{slot:"button-next"},slot:"button-next"})],2)],1):e._e()},Y=[];function X(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,a)}return i}function Q(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?X(Object(i),!0).forEach((function(t){Object(g["a"])(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):X(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}var ee={name:"carrousel",props:{config:{type:Object,default:function(){return{}}}},components:{Swiper:U["Swiper"],SwiperSlide:U["SwiperSlide"]},data:function(){return{swiperReset:!0,swiper_params:{pagination:{el:".swiper-pagination",clickable:!0},autoplay:{delay:this.config.display_time,stopOnLastSlide:!1,disableOnInteraction:!1},observer:!0,observeSlideChildren:!0,loop:!0,speed:this.config.switching_speed,navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev",hideOnClick:!0}},swiperOption:{}}},computed:{swiper:function(){return this.$refs.mySwiper}},methods:{slideHandleClick:function(e){if(e.href)if("router"==e.hrefType&&"original"==e.openType)this.$router.push(e.href);else if("router"==e.hrefType&&"blank"==e.openType){var t=this.$router.resolve({path:e.href});window.open(t.href,"_blank")}else"href"==e.hrefType&&"original"==e.openType?window.location.href=e.href:"href"==e.hrefType&&"blank"==e.openType&&window.open(e.href,"_blank")},addClickPic:function(){var e={slidesPerView:1.15,centeredSlides:!0,centeredSlidesBounds:!0,spaceBetween:"2%",slideToClickedSlide:!0};this.swiperOption=Q(Q({},this.swiper_params),e)}},created:function(){this.swiperOption=Q({},this.swiper_params),"sidebar"==this.config.swiper_type&&this.addClickPic()},mounted:function(){},watch:{config:{handler:function(e,t){var i=this;"sidebar"==this.config.swiper_type?this.addClickPic():this.swiperOption=Q({},this.swiper_params),this.swiperReset=!1,this.swiperOption.speed=~~e.switching_speed,this.swiperOption.autoplay.delay=~~e.display_time,this.$nextTick((function(){i.swiperReset=!0}))},deep:!0}},updated:function(){}},te=ee,ie=(i("7b69"),Object(d["a"])(te,J,Y,!1,null,"c636b9d6",null)),ae=ie.exports,ne=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",["imgstextone"==e.config.image_text_type?i("div",{staticClass:"imgstext-styleone ql-editor imgstext-right"},[i("div",{style:{width:e.config.style.picWidth0+"%"}},[e.config.list.length?i("img",{ref:"imgText",style:{width:"100%"},attrs:{src:e.config.list[0].url,alt:""}}):e._e()]),e.config.list.length?i("div",{staticClass:"content",style:{width:100-e.config.style.picWidth0+"%"}},[i("h3",[e._v(e._s(e.config.list[0].title))]),i("div",{ref:"text",staticClass:"para test-1",domProps:{innerHTML:e._s(e.config.list[0].text)}})]):e._e()]):e._e(),"imgstexttwo"==e.config.image_text_type?i("div",{staticClass:"imgstext-styleone ql-editor imgstext-right"},[e.config.list.length?i("div",{ref:"text",staticClass:"content",style:{width:100-e.config.style.picWidth0+"%"}},[i("h3",[e._v(e._s(e.config.list[0].title))]),i("div",{staticClass:"para test-1",domProps:{innerHTML:e._s(e.config.list[0].text)}})]):e._e(),i("div",{style:{width:e.config.style.picWidth0+"%"}},[e.config.list.length?i("img",{ref:"imgText",style:{width:"100%"},attrs:{src:e.config.list[0].url,alt:""}}):e._e()])]):e._e(),"imgstextthree"==e.config.image_text_type?i("div",{staticClass:"imgstext-styleone ql-editor"},e._l(e.config.list,(function(t,a){return i("div",{directives:[{name:"show",rawName:"v-show",value:e.config.list.length,expression:"config.list.length"}],key:a,staticClass:"item-wrap",style:{padding:e.config.style.imgVerticalMargin+"px "+e.config.style.imgLevelMargin/2+"px"}},[i("img",{staticStyle:{width:"100%"},attrs:{src:t.url,alt:""}}),i("div",{staticClass:"content"},[i("div",{staticClass:"para",domProps:{innerHTML:e._s(t.text)}})])])})),0):e._e(),"imgstextfour"==e.config.image_text_type?i("div",{staticClass:"imgstext-styleone ql-editor"},e._l(e.config.list,(function(t,a){return i("div",{directives:[{name:"show",rawName:"v-show",value:e.config.list.length,expression:"config.list.length"}],key:a,staticClass:"item-line-wrap",style:{minWidth:"50%"}},[i("img",{style:{width:e.config.style["picWidth"+a]+"%"},attrs:{src:t.url,alt:""}}),i("div",{staticClass:"content",style:{width:100-e.config.style["picWidth"+a]+"%"}},[i("div",{staticClass:"para",domProps:{innerHTML:e._s(t.text)}})])])})),0):e._e()])},re=[],oe=i("fe65"),se=i.n(oe),le={props:{config:{type:Object,default:function(){return{}}}},data:function(){return{stylePackage:{}}},mounted:function(){var e=this;this.$refs.imgText&&(this.$refs.imgText.onload=function(){e.stylePackage={height:e.$refs.imgText.height+"px"},"imgstextone"!=e.config.image_text_type&&"imgstexttwo"!=e.config.image_text_type||se()(e.$refs.text,{clamp:"2"})})},updated:function(){}},ce=le,de=(i("4a79"),Object(d["a"])(ce,ne,re,!1,null,"31b3e147",null)),fe=de.exports,he={components:{Swiper:h,ButtonModle:M,FormModle:j,TextMoudle:F,Photo:R,MultiPic:G,CarouselPic:ae,ImgsText:fe},props:{config:{type:Object,default:function(){return{}}}},watch:{},data:function(){return{topAffix:!1,bottomAffix:!1,clientHeight:0,awTop:0,flag:!0}},mounted:function(){this.initPage()},methods:{initPage:function(){var e=document.querySelector(".tfhref");e&&"default"!=this.config.acraoAffix&&(this.clientHeight=e.clientHeight,this.awTop=this.$refs.acrao_wrapper.offsetTop,"top"==this.config.acraoAffix?e.addEventListener("scroll",this.scrollAffixTop,!0):"bottom"==this.config.acraoAffix&&(this.bottomAffix=!0,e.addEventListener("scroll",this.scrollAffixBottom,!0)))},scrollAffixTop:function(e){var t=this.$refs.acrao_wrapper.offsetTop;t>this.awTop&&(this.awTop=t);var i=e.target.scrollTop;i>this.awTop?this.topAffix=!0:this.topAffix=!1},scrollAffixBottom:function(e){var t=this.$refs.acrao_wrapper.offsetTop;t>this.awTop&&(this.awTop=t);var i=e.target.scrollTop+this.clientHeight;this.awTop>i?this.bottomAffix=!0:this.bottomAffix=!1}},destroyed:function(){document.querySelector(".tfhref")&&(document.querySelector(".tfhref").removeEventListener("scroll",this.scrollAffixTop,!0),document.querySelector(".tfhref").removeEventListener("scroll",this.scrollAffixBottom,!0))}},pe=he,ue=(i("6d9f"),Object(d["a"])(pe,a,n,!1,null,"0e207f62",null));t["a"]=ue.exports},"8a83":function(e,t,i){"use strict";var a=i("1135"),n=4,r=0,o=1,s=2;function l(e){var t=e.length;while(--t>=0)e[t]=0}var c=0,d=1,f=2,h=3,p=258,u=29,m=256,g=m+1+u,_=30,b=19,v=2*g+1,w=15,y=16,k=7,x=256,M=16,C=17,S=18,O=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],z=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],T=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],j=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],$=512,E=new Array(2*(g+2));l(E);var B=new Array(2*_);l(B);var A=new Array($);l(A);var N=new Array(p-h+1);l(N);var F=new Array(u);l(F);var D,H,I,L=new Array(_);function P(e,t,i,a,n){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=a,this.max_length=n,this.has_stree=e&&e.length}function R(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function Z(e){return e<256?A[e]:A[256+(e>>>7)]}function V(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function U(e,t,i){e.bi_valid>y-i?(e.bi_buf|=t<<e.bi_valid&65535,V(e,e.bi_buf),e.bi_buf=t>>y-e.bi_valid,e.bi_valid+=i-y):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=i)}function q(e,t,i){U(e,i[2*t],i[2*t+1])}function W(e,t){var i=0;do{i|=1&e,e>>>=1,i<<=1}while(--t>0);return i>>>1}function K(e){16===e.bi_valid?(V(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}function G(e,t){var i,a,n,r,o,s,l=t.dyn_tree,c=t.max_code,d=t.stat_desc.static_tree,f=t.stat_desc.has_stree,h=t.stat_desc.extra_bits,p=t.stat_desc.extra_base,u=t.stat_desc.max_length,m=0;for(r=0;r<=w;r++)e.bl_count[r]=0;for(l[2*e.heap[e.heap_max]+1]=0,i=e.heap_max+1;i<v;i++)a=e.heap[i],r=l[2*l[2*a+1]+1]+1,r>u&&(r=u,m++),l[2*a+1]=r,a>c||(e.bl_count[r]++,o=0,a>=p&&(o=h[a-p]),s=l[2*a],e.opt_len+=s*(r+o),f&&(e.static_len+=s*(d[2*a+1]+o)));if(0!==m){do{r=u-1;while(0===e.bl_count[r])r--;e.bl_count[r]--,e.bl_count[r+1]+=2,e.bl_count[u]--,m-=2}while(m>0);for(r=u;0!==r;r--){a=e.bl_count[r];while(0!==a)n=e.heap[--i],n>c||(l[2*n+1]!==r&&(e.opt_len+=(r-l[2*n+1])*l[2*n],l[2*n+1]=r),a--)}}}function J(e,t,i){var a,n,r=new Array(w+1),o=0;for(a=1;a<=w;a++)r[a]=o=o+i[a-1]<<1;for(n=0;n<=t;n++){var s=e[2*n+1];0!==s&&(e[2*n]=W(r[s]++,s))}}function Y(){var e,t,i,a,n,r=new Array(w+1);for(i=0,a=0;a<u-1;a++)for(F[a]=i,e=0;e<1<<O[a];e++)N[i++]=a;for(N[i-1]=a,n=0,a=0;a<16;a++)for(L[a]=n,e=0;e<1<<z[a];e++)A[n++]=a;for(n>>=7;a<_;a++)for(L[a]=n<<7,e=0;e<1<<z[a]-7;e++)A[256+n++]=a;for(t=0;t<=w;t++)r[t]=0;e=0;while(e<=143)E[2*e+1]=8,e++,r[8]++;while(e<=255)E[2*e+1]=9,e++,r[9]++;while(e<=279)E[2*e+1]=7,e++,r[7]++;while(e<=287)E[2*e+1]=8,e++,r[8]++;for(J(E,g+1,r),e=0;e<_;e++)B[2*e+1]=5,B[2*e]=W(e,5);D=new P(E,O,m+1,g,w),H=new P(B,z,0,_,w),I=new P(new Array(0),T,0,b,k)}function X(e){var t;for(t=0;t<g;t++)e.dyn_ltree[2*t]=0;for(t=0;t<_;t++)e.dyn_dtree[2*t]=0;for(t=0;t<b;t++)e.bl_tree[2*t]=0;e.dyn_ltree[2*x]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function Q(e){e.bi_valid>8?V(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function ee(e,t,i,n){Q(e),n&&(V(e,i),V(e,~i)),a.arraySet(e.pending_buf,e.window,t,i,e.pending),e.pending+=i}function te(e,t,i,a){var n=2*t,r=2*i;return e[n]<e[r]||e[n]===e[r]&&a[t]<=a[i]}function ie(e,t,i){var a=e.heap[i],n=i<<1;while(n<=e.heap_len){if(n<e.heap_len&&te(t,e.heap[n+1],e.heap[n],e.depth)&&n++,te(t,a,e.heap[n],e.depth))break;e.heap[i]=e.heap[n],i=n,n<<=1}e.heap[i]=a}function ae(e,t,i){var a,n,r,o,s=0;if(0!==e.last_lit)do{a=e.pending_buf[e.d_buf+2*s]<<8|e.pending_buf[e.d_buf+2*s+1],n=e.pending_buf[e.l_buf+s],s++,0===a?q(e,n,t):(r=N[n],q(e,r+m+1,t),o=O[r],0!==o&&(n-=F[r],U(e,n,o)),a--,r=Z(a),q(e,r,i),o=z[r],0!==o&&(a-=L[r],U(e,a,o)))}while(s<e.last_lit);q(e,x,t)}function ne(e,t){var i,a,n,r=t.dyn_tree,o=t.stat_desc.static_tree,s=t.stat_desc.has_stree,l=t.stat_desc.elems,c=-1;for(e.heap_len=0,e.heap_max=v,i=0;i<l;i++)0!==r[2*i]?(e.heap[++e.heap_len]=c=i,e.depth[i]=0):r[2*i+1]=0;while(e.heap_len<2)n=e.heap[++e.heap_len]=c<2?++c:0,r[2*n]=1,e.depth[n]=0,e.opt_len--,s&&(e.static_len-=o[2*n+1]);for(t.max_code=c,i=e.heap_len>>1;i>=1;i--)ie(e,r,i);n=l;do{i=e.heap[1],e.heap[1]=e.heap[e.heap_len--],ie(e,r,1),a=e.heap[1],e.heap[--e.heap_max]=i,e.heap[--e.heap_max]=a,r[2*n]=r[2*i]+r[2*a],e.depth[n]=(e.depth[i]>=e.depth[a]?e.depth[i]:e.depth[a])+1,r[2*i+1]=r[2*a+1]=n,e.heap[1]=n++,ie(e,r,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],G(e,t),J(r,c,e.bl_count)}function re(e,t,i){var a,n,r=-1,o=t[1],s=0,l=7,c=4;for(0===o&&(l=138,c=3),t[2*(i+1)+1]=65535,a=0;a<=i;a++)n=o,o=t[2*(a+1)+1],++s<l&&n===o||(s<c?e.bl_tree[2*n]+=s:0!==n?(n!==r&&e.bl_tree[2*n]++,e.bl_tree[2*M]++):s<=10?e.bl_tree[2*C]++:e.bl_tree[2*S]++,s=0,r=n,0===o?(l=138,c=3):n===o?(l=6,c=3):(l=7,c=4))}function oe(e,t,i){var a,n,r=-1,o=t[1],s=0,l=7,c=4;for(0===o&&(l=138,c=3),a=0;a<=i;a++)if(n=o,o=t[2*(a+1)+1],!(++s<l&&n===o)){if(s<c)do{q(e,n,e.bl_tree)}while(0!==--s);else 0!==n?(n!==r&&(q(e,n,e.bl_tree),s--),q(e,M,e.bl_tree),U(e,s-3,2)):s<=10?(q(e,C,e.bl_tree),U(e,s-3,3)):(q(e,S,e.bl_tree),U(e,s-11,7));s=0,r=n,0===o?(l=138,c=3):n===o?(l=6,c=3):(l=7,c=4)}}function se(e){var t;for(re(e,e.dyn_ltree,e.l_desc.max_code),re(e,e.dyn_dtree,e.d_desc.max_code),ne(e,e.bl_desc),t=b-1;t>=3;t--)if(0!==e.bl_tree[2*j[t]+1])break;return e.opt_len+=3*(t+1)+5+5+4,t}function le(e,t,i,a){var n;for(U(e,t-257,5),U(e,i-1,5),U(e,a-4,4),n=0;n<a;n++)U(e,e.bl_tree[2*j[n]+1],3);oe(e,e.dyn_ltree,t-1),oe(e,e.dyn_dtree,i-1)}function ce(e){var t,i=4093624447;for(t=0;t<=31;t++,i>>>=1)if(1&i&&0!==e.dyn_ltree[2*t])return r;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return o;for(t=32;t<m;t++)if(0!==e.dyn_ltree[2*t])return o;return r}l(L);var de=!1;function fe(e){de||(Y(),de=!0),e.l_desc=new R(e.dyn_ltree,D),e.d_desc=new R(e.dyn_dtree,H),e.bl_desc=new R(e.bl_tree,I),e.bi_buf=0,e.bi_valid=0,X(e)}function he(e,t,i,a){U(e,(c<<1)+(a?1:0),3),ee(e,t,i,!0)}function pe(e){U(e,d<<1,3),q(e,x,E),K(e)}function ue(e,t,i,a){var r,o,l=0;e.level>0?(e.strm.data_type===s&&(e.strm.data_type=ce(e)),ne(e,e.l_desc),ne(e,e.d_desc),l=se(e),r=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=r&&(r=o)):r=o=i+5,i+4<=r&&-1!==t?he(e,t,i,a):e.strategy===n||o===r?(U(e,(d<<1)+(a?1:0),3),ae(e,E,B)):(U(e,(f<<1)+(a?1:0),3),le(e,e.l_desc.max_code+1,e.d_desc.max_code+1,l+1),ae(e,e.dyn_ltree,e.dyn_dtree)),X(e),a&&Q(e)}function me(e,t,i){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&i,e.last_lit++,0===t?e.dyn_ltree[2*i]++:(e.matches++,t--,e.dyn_ltree[2*(N[i]+m+1)]++,e.dyn_dtree[2*Z(t)]++),e.last_lit===e.lit_bufsize-1}t._tr_init=fe,t._tr_stored_block=he,t._tr_flush_block=ue,t._tr_tally=me,t._tr_align=pe},a8ec:function(e,t,i){"use strict";var a=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("RadioGroup",{on:{"on-change":e.onchange},model:{value:e.sels,callback:function(t){e.sels=t},expression:"sels"}},e._l(e.datasource,(function(t){return i("Radio",{key:t.value,attrs:{label:t.value,Border:e.isborder}},[e._v(e._s(t.label))])})),1)},n=[],r=(i("6d57"),i("9a33"),i("60b7"),{name:"radiogroups",components:{},model:{prop:"value",event:"change"},props:["value","dicName","refModel","labelField","valueField","refwhere","isborder","options"],data:function(){return{sels:this.value,datasource:[]}},watch:{value:function(e,t){this.sels=e}},methods:{onchange:function(e){this.$emit("change",this.sels)},initDataSource:function(e){var t=this;if(this.options){var i=this.options.split(",");i.forEach((function(e){t.datasource.push({value:e,label:e})}))}}},created:function(){this.initDataSource()},mounted:function(){}}),o=r,s=i("9ca4"),l=Object(s["a"])(o,a,n,!1,null,null,null);t["a"]=l.exports},adde:function(e,t,i){"use strict";var a=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[e.isPc?i("Cascader",{style:e.styleConfig,attrs:{data:e.data},on:{"on-change":e.changeCity},model:{value:e.valueList,callback:function(t){e.valueList=t},expression:"valueList"}}):i("div",{staticClass:"inputWrap"},[e.isClear?i("div",{staticClass:"close",on:{click:e.clear}},[e._v("x")]):e._e(),i("i-input",{ref:"inputNode",style:e.styleConfig,attrs:{value:e.areaValue,placeholder:"请选择",icon:"ios-arrow-down",readonly:!0},on:{"update:value":function(t){e.areaValue=t},"on-focus":e.showModal}}),e.isShow?i("div",{staticClass:"modal",on:{click:function(t){e.isShow=!1}}},[i("div",{staticClass:"wrap"},[i("div",{staticClass:"areaTitle"},[i("span",{on:{click:function(t){e.isShow=!1}}},[e._v("取消")]),i("span",{staticClass:"midTitle"},[e._v("请选择地区")])]),i("div",{staticClass:"area",on:{click:e.stop}},[i("v-distpicker",{attrs:{type:"mobile"},on:{selected:e.selectArea,province:e.changePro,city:e.changeCi}})],1)])]):e._e()],1)],1)},n=[],r=i("2cb9"),o=i.n(r),s={model:{prop:"value",event:"change"},props:["data","styleConfig"],components:{VDistpicker:o.a},data:function(){return{value:"",valueList:[],isPc:!0,isShow:!1,areaValue:" ",areaList:[],isClear:!1}},methods:{changeCity:function(e,t){this.value=t[t.length-1].__label,this.$emit("change",this.value)},pcOrM:function(){var e=!1;(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0,4)))&&(e=!0),e&&(this.isPc=!1)},showModal:function(){this.isPc||(this.isShow=!0)},selectArea:function(e){this.$refs.inputNode.focus(),this.areaList=[e.province.value,e.city.value,e.area.value],this.areaValue=e.province.value+" / "+e.city.value+" / "+e.area.value,this.isShow=!1,this.isClear=!0,this.$emit("change",this.areaValue),this.$refs.inputNode.blur()},changePro:function(e){this.areaValue=e.value},changeCi:function(e){this.areaValue=this.areaValue+" / "+e.value},clear:function(){this.areaValue="",this.areaList=[],this.isClear=!1},stop:function(e){event.stopPropagation()}},created:function(){this.pcOrM()}},l=s,c=(i("7d2a"),i("9ca4")),d=Object(c["a"])(l,a,n,!1,null,"965caa34",null);t["a"]=d.exports},af8a:function(e,t,i){"use strict";var a=i("2405"),n=i.n(a);n.a},b061:function(e,t,i){"use strict";var a=i("1135"),n=15,r=852,o=592,s=0,l=1,c=2,d=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],f=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],h=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],p=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];e.exports=function(e,t,i,u,m,g,_,b){var v,w,y,k,x,M,C,S,O,z=b.bits,T=0,j=0,$=0,E=0,B=0,A=0,N=0,F=0,D=0,H=0,I=null,L=0,P=new a.Buf16(n+1),R=new a.Buf16(n+1),Z=null,V=0;for(T=0;T<=n;T++)P[T]=0;for(j=0;j<u;j++)P[t[i+j]]++;for(B=z,E=n;E>=1;E--)if(0!==P[E])break;if(B>E&&(B=E),0===E)return m[g++]=20971520,m[g++]=20971520,b.bits=1,0;for($=1;$<E;$++)if(0!==P[$])break;for(B<$&&(B=$),F=1,T=1;T<=n;T++)if(F<<=1,F-=P[T],F<0)return-1;if(F>0&&(e===s||1!==E))return-1;for(R[1]=0,T=1;T<n;T++)R[T+1]=R[T]+P[T];for(j=0;j<u;j++)0!==t[i+j]&&(_[R[t[i+j]]++]=j);if(e===s?(I=Z=_,M=19):e===l?(I=d,L-=257,Z=f,V-=257,M=256):(I=h,Z=p,M=-1),H=0,j=0,T=$,x=g,A=B,N=0,y=-1,D=1<<B,k=D-1,e===l&&D>r||e===c&&D>o)return 1;for(;;){C=T-N,_[j]<M?(S=0,O=_[j]):_[j]>M?(S=Z[V+_[j]],O=I[L+_[j]]):(S=96,O=0),v=1<<T-N,w=1<<A,$=w;do{w-=v,m[x+(H>>N)+w]=C<<24|S<<16|O|0}while(0!==w);v=1<<T-1;while(H&v)v>>=1;if(0!==v?(H&=v-1,H+=v):H=0,j++,0===--P[T]){if(T===E)break;T=t[i+_[j]]}if(T>B&&(H&k)!==y){0===N&&(N=B),x+=$,A=T-N,F=1<<A;while(A+N<E){if(F-=P[A+N],F<=0)break;A++,F<<=1}if(D+=1<<A,e===l&&D>r||e===c&&D>o)return 1;y=H&k,m[y]=B<<24|A<<16|x-g|0}}return 0!==H&&(m[x+H]=T-N<<24|64<<16|0),b.bits=B,0}},b43d:function(e,t,i){},b4f9:function(e,t,i){"use strict";function a(e,t,i,a){var n=65535&e|0,r=e>>>16&65535|0,o=0;while(0!==i){o=i>2e3?2e3:i,i-=o;do{n=n+t[a++]|0,r=r+n|0}while(--o);n%=65521,r%=65521}return n|r<<16|0}e.exports=a},cb36:function(e,t,i){},cf0b:function(e,t,i){},d8ea:function(e,t,i){"use strict";var a=i("b43d"),n=i.n(a);n.a},dedd:function(e,t,i){"use strict";function a(){for(var e,t=[],i=0;i<256;i++){e=i;for(var a=0;a<8;a++)e=1&e?3988292384^e>>>1:e>>>1;t[i]=e}return t}var n=a();function r(e,t,i,a){var r=n,o=a+i;e^=-1;for(var s=a;s<o;s++)e=e>>>8^r[255&(e^t[s])];return-1^e}e.exports=r},e139:function(e,t,i){},e219:function(e,t,i){},e3fe:function(e,t,i){"use strict";var a=i("6dbb"),n=i.n(a);n.a},ec1c:function(e,t,i){},ef70:function(e,t,i){"use strict";var a=i("cb36"),n=i.n(a);n.a},f63a:function(e,t,i){"use strict";function a(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}e.exports=a},fe65:function(e,t){function i(e,t,i){return t<i?e<t?t:e>i?i:e:e<i?i:e>t?t:e}e.exports=i}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-14b9857b"],{"0eb4":function(t,e,n){},3026:function(t,e,n){t.exports=n.p+"img/error-401.98bba5b1.svg"},9454:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"error-page"},[n("div",{staticClass:"content-con"},[n("img",{attrs:{src:t.src,alt:t.code}}),n("div",{staticClass:"text-con"},[n("h4",[t._v(t._s(t.code))]),n("h5",[t._v(t._s(t.desc))])]),n("back-btn-group",{staticClass:"back-btn-group"})],1)])},c=[],o=(n("0eb4"),function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("Button",{attrs:{size:"large",type:"text"},on:{click:t.backHome}},[t._v("返回首页")]),n("Button",{attrs:{size:"large",type:"text"},on:{click:t.backPrev}},[t._v("返回上一页("+t._s(t.second)+"s)")])],1)}),s=[],a=(n("f548"),{name:"backBtnGroup",data:function(){return{second:5,timer:null}},methods:{backHome:function(){this.$router.replace({name:this.$config.homeName})},backPrev:function(){this.$router.go(-1)}},mounted:function(){var t=this;this.timer=setInterval((function(){0===t.second?t.backPrev():t.second--}),1e3)},beforeDestroy:function(){clearInterval(this.timer)}}),i=a,u=n("9ca4"),l=Object(u["a"])(i,o,s,!1,null,null,null),b=l.exports,f={name:"error_content",components:{backBtnGroup:b},props:{code:String,desc:String,src:String}},d=f,p=Object(u["a"])(d,r,c,!1,null,null,null);e["a"]=p.exports},f94f:function(t,e,n){"use strict";n.r(e);var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("error-content",{attrs:{code:"401",desc:"Oh~~您没有浏览这个页面的权限~",src:t.src}})},c=[],o=n("3026"),s=n.n(o),a=n("9454"),i={name:"error_401",components:{errorContent:a["a"]},data:function(){return{src:s.a}}},u=i,l=n("9ca4"),b=Object(l["a"])(u,r,c,!1,null,null,null);e["default"]=b.exports}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-1f11ec07"],{"391e":function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"framediv"}},[e._t("default",null,{adjustHeight:e.frameHeight})],2)},s=[],o=n("9ee1"),i=o["a"],r=n("9ca4"),c=Object(r["a"])(i,a,s,!1,null,null,null);t["a"]=c.exports},"9ee1":function(e,t,n){"use strict";(function(e){n("163d");t["a"]={name:"pagespace_page",prop:{tweak:Number},data:function(){return{frameHeight:0,advalue:this.tweak?this.tweak:0}},components:{},mounted:function(){var t=this;this.setHeight(),e(window).resize((function(){t.setHeight()}))},methods:{setHeight:function(){var t=this;this.$nextTick((function(){var n=e("#framediv"),a=n.get()[0]||0,s=window.innerHeight-a.offsetTop-t.advalue;t.frameHeight=s,t.$emit("sizechange",t.frameHeight)}))}}}}).call(this,n("a336"))},b0d7:function(e,t,n){"use strict";n.r(t);var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("PageSpace",{scopedSlots:e._u([{key:"default",fn:function(t){var a=t.adjustHeight;return[n("BizTable",{ref:"bt",attrs:{formatCol:e.formatCol,tblheight:a-120,metaName:"template_info",packageName:"template",modelName:"templateinfo",isMulti:"",savebefore:e.savebefore,editbefore:e.beforedit,addbefore:e.beforeadd},on:{onexec:e.onexec,oninitbtn:e.oninitbtn}})]}}])})},s=[],o=n("06d3"),i=n("391e"),r=n("7e1e"),c={name:"templateinfo_page",data:function(){return{row:{}}},components:{BizTable:o["a"],PageSpace:i["a"]},methods:{savebefore:function(e,t,n){return n(t)},beforeadd:function(e,t){return t({value:!0,message:null})},beforedit:function(e,t){return t({value:!0,message:null})},beforesave:function(e,t,n){return n(t)},articleShow:function(e){this.isshowlist=!1,this.currow=e},oninitbtn:function(e,t){switch(t.is_enabled){case 0:"unenable"===e.key?e.ishide=!0:e.ishide=!1;break;case 1:"enable"===e.key?e.ishide=!0:e.ishide=!1;break}},gotoPreview:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.$router.resolve({path:e,query:t});window.open(n.href,"_blank")},onexec:function(e,t){var n=this;console.log(this.currentRow),"toHome"==e&&this.$router.push({name:"home",query:{template_code:t.code}}),"link"==e&&this.$router.push({name:"templatelink",query:{template_id:t.id}}),"show"==e&&this.gotoPreview("/previewpage",{template_code:t.code}),"enable"==e&&Object(r["o"])({code:t.code,is_enabled:1}).then((function(e){0==e.status?(n.$Message.success("启用成功"),n.$refs.bt.fetchData()):n.$Message.success("操作失败")})),"unenable"==e&&Object(r["o"])({code:t.code,is_enabled:0}).then((function(e){0==e.status?(n.$Message.success("禁用成功"),n.$refs.bt.fetchData()):n.$Message.success("操作失败")})),"createTemp"==e&&Object(r["b"])().then((function(e){0==e.status?(n.$Message.success("新增成功"),n.$refs.bt.fetchData()):n.$Message.success("新增失败")}))},formatCol:function(e,t,n){return"is_enabled"==t?e["is_enabled"]?'<span style="color:green">是</span>':'<span style="color:orange">否</span>':"created_at"==t?"<span>".concat(new Date(e[t]).toLocaleString(),"</span>"):e[t]}}},u=c,l=n("9ca4"),f=Object(l["a"])(u,a,s,!1,null,null,null);t["default"]=f.exports}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2c359864"],{"0eb4":function(t,e,n){},4740:function(t,e,n){t.exports=n.p+"img/error-500.a371eabc.svg"},"88b2":function(t,e,n){"use strict";n.r(e);var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("error-content",{attrs:{code:"500",desc:"Oh~~鬼知道服务器经历了什么~",src:t.src}})},c=[],o=n("4740"),s=n.n(o),a=n("9454"),i={name:"error_500",components:{errorContent:a["a"]},data:function(){return{src:s.a}}},u=i,l=n("9ca4"),d=Object(l["a"])(u,r,c,!1,null,null,null);e["default"]=d.exports},9454:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"error-page"},[n("div",{staticClass:"content-con"},[n("img",{attrs:{src:t.src,alt:t.code}}),n("div",{staticClass:"text-con"},[n("h4",[t._v(t._s(t.code))]),n("h5",[t._v(t._s(t.desc))])]),n("back-btn-group",{staticClass:"back-btn-group"})],1)])},c=[],o=(n("0eb4"),function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("Button",{attrs:{size:"large",type:"text"},on:{click:t.backHome}},[t._v("返回首页")]),n("Button",{attrs:{size:"large",type:"text"},on:{click:t.backPrev}},[t._v("返回上一页("+t._s(t.second)+"s)")])],1)}),s=[],a=(n("f548"),{name:"backBtnGroup",data:function(){return{second:5,timer:null}},methods:{backHome:function(){this.$router.replace({name:this.$config.homeName})},backPrev:function(){this.$router.go(-1)}},mounted:function(){var t=this;this.timer=setInterval((function(){0===t.second?t.backPrev():t.second--}),1e3)},beforeDestroy:function(){clearInterval(this.timer)}}),i=a,u=n("9ca4"),l=Object(u["a"])(i,o,s,!1,null,null,null),d=l.exports,p={name:"error_content",components:{backBtnGroup:d},props:{code:String,desc:String,src:String}},b=p,f=Object(u["a"])(b,r,c,!1,null,null,null);e["a"]=f.exports}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d210f61"],{b9b6:function(t,e,n){"use strict";n.r(e);var a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticStyle:{background:"white",padding:"20px"}},[n("div",[n("i-form",{attrs:{inline:""}},[n("Form-item",{attrs:{label:"记录状态","label-width":80}},[n("i-select",{staticStyle:{width:"200px"},attrs:{model:t.selectValue},on:{"on-change":t.selectChange,"update:model":function(e){t.selectValue=e}}},[n("i-option",{attrs:{value:"0"}},[t._v("全部")]),n("i-option",{attrs:{value:"1"}},[t._v("未读")]),n("i-option",{attrs:{value:"2"}},[t._v("已读")]),n("i-option",{attrs:{value:"3"}},[t._v("无效")])],1)],1)],1)],1),n("i-table",{attrs:{border:"",content:t.self,columns:t.columnList,data:t.dataList}}),n("div",{staticStyle:{"text-align":"center",margin:"5px 0 0 0"}},[n("Page",{attrs:{total:t.count,current:t.pageInfo.pageNo,"page-size":t.pageInfo.pageSize,size:"small","show-sizer":""},on:{"on-change":t.pageNoChange,"on-page-size-change":t.pageSizeChange}})],1)],1)},o=[],i=(n("5ab2"),n("6d57"),n("e10e"),n("ce3c")),s=(n("c0c3"),n("7e1e"));function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function c(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?r(Object(n),!0).forEach((function(e){Object(i["a"])(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}var l={data:function(){return{selectValue:"0",self:this,columnList:[],dataList:[],pageInfo:{pageNo:1,pageSize:10},count:0,search:{form_id:""}}},created:function(){var t=this,e=this.$route.query.form_id;this.search.form_id=e,Object(s["f"])({form_id:e}).then((function(e){0==e.status?(t.columnList=e.data,t.columnList.push({title:"记录状态",key:"record_status_name"}),t.columnList.unshift({title:"时间",key:"created_at"}),t.columnList.unshift({type:"selection",width:60,align:"center"})):t.$Message.success("操作失败")}))},mounted:function(){this.findAndCountAll()},methods:{selectChange:function(t){this.search.record_status="0"==t?"":t,this.findAndCountAll()},pageNoChange:function(t){console.log(t),this.pageInfo.pageNo=t,this.findAndCountAll()},pageSizeChange:function(t){console.log(t),this.pageInfo.pageSize=t,this.findAndCountAll()},findAndCountAll:function(){var t=this;Object(s["g"])({pageInfo:this.pageInfo,search:this.search}).then((function(e){if(0==e.status&&e.data&&e.data.results){var n=e.data.results;t.count=n.count;for(var a=n.rows,o=0;o<a.length;o++)a[o].created_at&&(a[o].created_at=new Date(a[o].created_at).toLocaleString()),a[o]=c(c({},a[o]),a[o].record_content);t.dataList=a}else t.$Message.success("操作失败");console.log(t.dataList)}))}}},u=l,d=n("9ca4"),f=Object(d["a"])(u,a,o,!1,null,null,null);e["default"]=f.exports}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-3385141a"],{"0eb4":function(t,e,n){},"35f5":function(t,e,n){"use strict";n.r(e);var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("error-content",{attrs:{code:"404",desc:"Oh~~您的页面好像飞走了~",src:t.src}})},c=[],o=n("c436"),s=n.n(o),a=n("9454"),i={name:"error_404",components:{errorContent:a["a"]},data:function(){return{src:s.a}}},u=i,l=n("9ca4"),d=Object(l["a"])(u,r,c,!1,null,null,null);e["default"]=d.exports},9454:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"error-page"},[n("div",{staticClass:"content-con"},[n("img",{attrs:{src:t.src,alt:t.code}}),n("div",{staticClass:"text-con"},[n("h4",[t._v(t._s(t.code))]),n("h5",[t._v(t._s(t.desc))])]),n("back-btn-group",{staticClass:"back-btn-group"})],1)])},c=[],o=(n("0eb4"),function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("Button",{attrs:{size:"large",type:"text"},on:{click:t.backHome}},[t._v("返回首页")]),n("Button",{attrs:{size:"large",type:"text"},on:{click:t.backPrev}},[t._v("返回上一页("+t._s(t.second)+"s)")])],1)}),s=[],a=(n("f548"),{name:"backBtnGroup",data:function(){return{second:5,timer:null}},methods:{backHome:function(){this.$router.replace({name:this.$config.homeName})},backPrev:function(){this.$router.go(-1)}},mounted:function(){var t=this;this.timer=setInterval((function(){0===t.second?t.backPrev():t.second--}),1e3)},beforeDestroy:function(){clearInterval(this.timer)}}),i=a,u=n("9ca4"),l=Object(u["a"])(i,o,s,!1,null,null,null),d=l.exports,f={name:"error_content",components:{backBtnGroup:d},props:{code:String,desc:String,src:String}},p=f,m=Object(u["a"])(p,r,c,!1,null,null,null);e["a"]=m.exports},c436:function(t,e,n){t.exports=n.p+"img/error-404.94756dcf.svg"}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-3cca9940"],{"391e":function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"framediv"}},[e._t("default",null,{adjustHeight:e.frameHeight})],2)},a=[],o=n("9ee1"),c=o["a"],r=n("9ca4"),s=Object(r["a"])(c,i,a,!1,null,null,null);t["a"]=s.exports},"3fc3":function(e,t,n){"use strict";var i=n("7834"),a=n.n(i);a.a},7834:function(e,t,n){},"9ee1":function(e,t,n){"use strict";(function(e){n("163d");t["a"]={name:"pagespace_page",prop:{tweak:Number},data:function(){return{frameHeight:0,advalue:this.tweak?this.tweak:0}},components:{},mounted:function(){var t=this;this.setHeight(),e(window).resize((function(){t.setHeight()}))},methods:{setHeight:function(){var t=this;this.$nextTick((function(){var n=e("#framediv"),i=n.get()[0]||0,a=window.innerHeight-i.offsetTop-t.advalue;t.frameHeight=a,t.$emit("sizechange",t.frameHeight)}))}}}}).call(this,n("a336"))},bd08:function(e,t,n){"use strict";n.r(t);var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("PageSpace",{scopedSlots:e._u([{key:"default",fn:function(t){var i=t.adjustHeight;return[n("BizTable",{ref:"bt",attrs:{formatCol:e.formatCol,tblheight:i-120,metaName:"img_info",packageName:"configmag",modelName:"imginfo",isMulti:"",savebefore:e.savebefore,editbefore:e.beforedit,addbefore:e.beforeadd},on:{formevent:e.onformevent,onexec:e.onexec}})]}}])})},a=[],o=(n("cc57"),n("06d3")),c=n("391e"),r={name:"roleinfo_page",data:function(){return{pic_name:"",pic_size:""}},components:{BizTable:o["a"],PageSpace:c["a"]},methods:{onformevent:function(e,t){this.pic_name=JSON.stringify(t[1].name),this.pic_name=this.pic_name.substring(1,this.pic_name.indexOf(".")),this.pic_size=JSON.stringify(t[1].size),console.log("+++++pic_name+++++",this.pic_name),console.log("+++++pic_size+++++",this.pic_size)},savebefore:function(e,t,n){return t.name=this.pic_name,t.pic_size=this.pic_size,n(t)},beforeadd:function(e,t){return t({value:!0,message:null})},beforedit:function(e,t){return t({value:!0,message:null})},beforesave:function(e,t,n){return n(t)},onexec:function(e,t){"auth"==e&&this.$router.push({name:"role_auth",query:{roleid:t.id,rolecode:t.code}})},formatCol:function(e,t,n){return"created_at"==t?"<span>".concat(new Date(e[t]).toLocaleString(),"</span>"):"pic_url"==t?'<img src="'.concat(e[t],'" style="width:50px;height:50px"></img>'):"pic_size"==t?"<span>".concat((e[t]/1024).toFixed(1)," KB</span>"):e[t]}}},s=r,u=(n("3fc3"),n("9ca4")),f=Object(u["a"])(s,i,a,!1,null,null,null);t["default"]=f.exports}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-5a4e13d5"],{"391e":function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{id:"framediv"}},[e._t("default",null,{adjustHeight:e.frameHeight})],2)},o=[],r=a("9ee1"),i=r["a"],u=a("9ca4"),c=Object(u["a"])(i,n,o,!1,null,null,null);t["a"]=c.exports},"9ee1":function(e,t,a){"use strict";(function(e){a("163d");t["a"]={name:"pagespace_page",prop:{tweak:Number},data:function(){return{frameHeight:0,advalue:this.tweak?this.tweak:0}},components:{},mounted:function(){var t=this;this.setHeight(),e(window).resize((function(){t.setHeight()}))},methods:{setHeight:function(){var t=this;this.$nextTick((function(){var a=e("#framediv"),n=a.get()[0]||0,o=window.innerHeight-n.offsetTop-t.advalue;t.frameHeight=o,t.$emit("sizechange",t.frameHeight)}))}}}}).call(this,a("a336"))},deb4:function(e,t,a){"use strict";a.r(t);var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("PageSpace",{scopedSlots:e._u([{key:"default",fn:function(t){var n=t.adjustHeight;return[a("BizTable",{ref:"bt",attrs:{formatCol:e.formatCol,tblheight:n-120,metaName:"launch_channel",packageName:"configmag",modelName:"launchchannel",isMulti:"",savebefore:e.savebefore,editbefore:e.beforedit,addbefore:e.beforeadd},on:{onexec:e.onexec}})]}}])})},o=[],r=a("06d3"),i=a("391e"),u={name:"launchchannel_page",data:function(){return{}},components:{BizTable:r["a"],PageSpace:i["a"]},methods:{savebefore:function(e,t,a){return a(t)},beforeadd:function(e,t){return t({value:!0,message:null})},beforedit:function(e,t){return t({value:!0,message:null})},beforesave:function(e,t,a){return a(t)},onexec:function(e,t){"auth"==e&&this.$router.push({name:"role_auth",query:{roleid:t.id,rolecode:t.code}})},formatCol:function(e,t,a){return"created_at"==t?"<span>".concat(new Date(e[t]).toLocaleString(),"</span>"):e[t]}}},c=u,s=a("9ca4"),l=Object(s["a"])(c,n,o,!1,null,null,null);t["default"]=l.exports}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-6b77ef07"],{"002f":function(e,t,o){"use strict";o.r(t);var n=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("PageSpace",{scopedSlots:e._u([{key:"default",fn:function(t){var n=t.adjustHeight;return[o("BizTable",{ref:"bt",attrs:{formatCol:e.formatCol,tblheight:n-120,metaName:"form_info",packageName:"configmag",modelName:"forminfo",isMulti:"",savebefore:e.savebefore,editbefore:e.beforedit,addbefore:e.beforeadd},on:{onexec:e.onexec,childexec:e.onchildexec}}),o("Drawer",{ref:"addrawer",attrs:{placement:"right",closable:!1,"mask-closable":!1,width:"70"},model:{value:e.showchildform,callback:function(t){e.showchildform=t},expression:"showchildform"}},[o("Card",{ref:"formcard",staticStyle:{"border-radius":"0px","padding-bottom":"60px",border:"none"},attrs:{"dis-hover":"",bordered:!1}},[o("p",{attrs:{slot:"title"},slot:"title"},[o("Icon",{attrs:{type:"ios-paper-outline"}}),e._v("\n 表单项\n ")],1),o("Form",{ref:"cfm",attrs:{model:e.formModel,"label-position":"left"}},[o("FormItem",{attrs:{label:"表单项名称",prop:"name"}},[o("input",{directives:[{name:"model",rawName:"v-model",value:e.formModel["name"],expression:"formModel['name']"}],staticStyle:{"padding-left":"6px"},attrs:{disabled:"contact_mobile"==e.formModel["code"]||"contact_name"==e.formModel["code"],type:"text",placeholder:"请输入表单项名称"},domProps:{value:e.formModel["name"]},on:{input:function(t){t.target.composing||e.$set(e.formModel,"name",t.target.value)}}})]),o("FormItem",{attrs:{label:"表单项排序",prop:"sequence"}},[o("input",{directives:[{name:"model",rawName:"v-model",value:e.formModel["sequence"],expression:"formModel['sequence']"}],staticStyle:{"padding-left":"6px"},attrs:{disabled:"contact_mobile"==e.formModel["code"]||"contact_name"==e.formModel["code"],type:"text",placeholder:"请输入排序"},domProps:{value:e.formModel["sequence"]},on:{input:function(t){t.target.composing||e.$set(e.formModel,"sequence",t.target.value)}}})]),o("FormItem",{attrs:{label:"是否必填",prop:"is_required"}},[o("Switchs",{attrs:{disabled:"contact_mobile"==e.formModel["code"]||"contact_name"==e.formModel["code"],openlabel:"是",closelabel:"否"},model:{value:e.formModel["is_required"],callback:function(t){e.$set(e.formModel,"is_required",t)},expression:"formModel['is_required']"}})],1),o("FormItem",{attrs:{label:"是否显示",prop:"is_enabled"}},[o("Switchs",{attrs:{disabled:"contact_mobile"==e.formModel["code"]||"contact_name"==e.formModel["code"],openlabel:"是",closelabel:"否"},model:{value:e.formModel["is_enabled"],callback:function(t){e.$set(e.formModel,"is_enabled",t)},expression:"formModel['is_enabled']"}})],1),o("FormItem",{attrs:{label:"表单项类型",prop:"item_type"}},[o("Radiogroups",{attrs:{disabled:"contact_mobile"==e.formModel["code"]||"contact_name"==e.formModel["code"],dicName:"control_type"},on:{change:e.onchange},model:{value:e.formModel["item_type"],callback:function(t){e.$set(e.formModel,"item_type",t)},expression:"formModel['item_type']"}})],1),e.showoptions?o("FormItem",{attrs:{label:"选项",prop:"options"}},[o("DTags",{attrs:{canclose:""},model:{value:e.formModel["options"],callback:function(t){e.$set(e.formModel,"options",t)},expression:"formModel['options']"}})],1):e._e(),e.showWord?o("FormItem",{attrs:{label:"最少输入",prop:"input_les"}},[o("input",{directives:[{name:"model",rawName:"v-model",value:e.formModel["input_les"],expression:"formModel['input_les']"}],staticStyle:{"padding-left":"6px"},attrs:{type:"text"},domProps:{value:e.formModel["input_les"]},on:{input:function(t){t.target.composing||e.$set(e.formModel,"input_les",t.target.value)}}}),e._v(" 个字\n ")]):e._e(),e.showWord?o("FormItem",{attrs:{label:"最多输入",prop:"input_lar"}},[o("input",{directives:[{name:"model",rawName:"v-model",value:e.formModel["input_lar"],expression:"formModel['input_lar']"}],staticStyle:{"padding-left":"6px"},attrs:{type:"text"},domProps:{value:e.formModel["input_lar"]},on:{input:function(t){t.target.composing||e.$set(e.formModel,"input_lar",t.target.value)}}}),e._v(" 个字\n ")]):e._e(),e.showPhoneOptions?o("FormItem",{attrs:{label:"短信验证",prop:"verify_sms"}},[o("Switchs",{attrs:{openlabel:"是",closelabel:"否"},model:{value:e.formModel["verify_sms"],callback:function(t){e.$set(e.formModel,"verify_sms",t)},expression:"formModel['verify_sms']"}})],1):e._e(),e.showPhoneOptions?o("FormItem",{attrs:{label:"输入位数",prop:"mobile_input_length"}},[o("Radiogroups",{attrs:{dicName:"phone_num"},model:{value:e.formModel["mobile_input_length"],callback:function(t){e.$set(e.formModel,"mobile_input_length",t)},expression:"formModel['mobile_input_length']"}})],1):e._e(),e.showAreaOptions?o("FormItem",{attrs:{label:"区县选择",prop:"is_show_county"}},[o("Switchs",{attrs:{"true-value":"true","false-value":"true",openlabel:"是",closelabel:"否"},model:{value:e.formModel["is_show_county"],callback:function(t){e.$set(e.formModel,"is_show_county",t)},expression:"formModel['is_show_county']"}})],1):e._e()],1),o("div",{staticClass:"form-footer"},[e.isCreate?o("Button",{attrs:{type:"text"},on:{click:e.save}},[e._v("保存\n ")]):e._e(),e.isUpdate?o("Button",{attrs:{type:"text"},on:{click:e.edit}},[e._v("保存\n ")]):e._e(),o("Button",{attrs:{type:"text"},on:{click:e.childcancle}},[e._v("取消\n ")])],1)],1)],1)]}}])})},i=[],s=(o("ed63"),o("8cf2"),o("7e1e")),a=o("06d3"),r=o("923a"),l=o("3b00"),c=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("RadioGroup",{attrs:{type:"button",size:"large"},on:{"on-change":e.onchange},model:{value:e.sels,callback:function(t){e.sels=t},expression:"sels"}},e._l(e.datasource,(function(t){return o("Radio",{key:t.value,attrs:{label:t.value,disabled:e.hideMenu,border:""}},[e._v(e._s(t.label))])})),1)},m=[],d=(o("e10e"),o("6d57"),o("60b7")),f={name:"radiogroups",components:{},model:{prop:"value",event:"change"},props:["value","dicName","refModel","labelField","valueField","refwhere","isborder","disabled"],data:function(){return{hideMenu:this.disabled||!1,sels:this.value,datasource:[]}},watch:{value:function(e,t){this.sels=e},disabled:function(e,t){this.hideMenu=e}},methods:{onchange:function(e){this.$emit("change",this.sels)},initDataSource:function(e){var t=this;if(this.dicName&&""!=this.dicName){var o=this.$store.getters.dict_info[this.dicName];console.log(o),Object.keys(o).forEach((function(e){t.datasource.push({value:e,label:o[e]})}))}else{var n={},i="/web/common/"+this.refModel+"Ctl/refQuery";n.fields=[this.labelField,this.valueField],n.likestr=e,n.refwhere=this.refwhere?this.refwhere:{},Object(d["b"])(i,n).then((function(e){e.data&&(t.datasource=e.data,console.log(">>>>>>>>>>>>>>>>>>>>",e.data))}))}}},created:function(){this.initDataSource()},mounted:function(){}},u=f,h=o("9ca4"),p=Object(h["a"])(u,c,m,!1,null,null,null),v=p.exports,g=o("391e"),b=o("9269"),_=o("e247"),y=o("40b4"),w={name:"forminfo_page",data:function(){return{isDefaultItem:!1,testmobile:"123",showchildform:!1,showoptions:!1,showWord:!1,showPhoneOptions:!1,showAreaOptions:!1,isCreate:!1,isUpdate:!1,formModel:{},metaRules:[],childtable:""}},components:{Checkgroups:_["a"],BizTable:a["a"],PageSpace:g["a"],Radiogroups:v,DTags:r["a"],Switchs:l["a"],TreeSels:b["a"],Mobile:y["a"]},methods:{onchange:function(e){var t=this.$store.getters.dict_info["control_type"];this.formModel["item_type_name"]=t[e],this.showPhoneOptions="phone"==e,this.showoptions="singleBtn"==e||"multipleBtn"==e||"downOptions"==e,this.showWord="singleText"==e||"multipleText"==e,this.showAreaOptions="area"==e},save:function(){var e=this;Object(s["l"])("/web/configmag/formitemCtl/create",this.formModel).then((function(t){var o=t.data;0==o.status?(e.showchildform=!1,e.showoptions=!1,e.showWord=!1,e.showPhoneOptions=!1,e.showAreaOptions=!1,e.$Message.success(o.msg),e.childtable.fetchData(),e.formModel={}):(e.showchildform=!1,e.showoptions=!1,e.showWord=!1,e.showPhoneOptions=!1,e.showAreaOptions=!1,e.formModel={},e.childtable.fetchData(),e.$Message.error(o.msg?o.msg:"当前操作失败,请稍后重试或联系管理员."))}))},edit:function(){var e=this;Object(s["l"])("/web/configmag/formitemCtl/update",this.formModel).then((function(t){var o=t.data;0==o.status?(e.$Message.success(o.msg),e.showchildform=!1,e.showoptions=!1,e.showWord=!1,e.showPhoneOptions=!1,e.showAreaOptions=!1,e.formModel={},e.childtable.fetchData()):(e.$Message.error(o.msg?o.msg:"当前操作失败,请稍后重试或联系管理员."),e.childtable.fetchData(),e.showchildform=!1,e.formModel={},e.showoptions=!1,e.showWord=!1,e.showPhoneOptions=!1,e.showAreaOptions=!1)}))},childcancle:function(){this.showchildform=!1,this.formModel={},this.showoptions=!1,this.showWord=!1,this.showPhoneOptions=!1,this.showAreaOptions=!1},onchildexec:function(e,t,o,n){var i=this;this.childtable=n,"childcreate"==e&&(this.showchildform=!0,this.isCreate=!0,this.isUpdate=!1,this.$nextTick((function(){i.formModel.form_id=o.formModel.id}))),"childedit"==e&&(this.showchildform=!0,this.isCreate=!1,this.isUpdate=!0,this.formModel=JSON.parse(JSON.stringify(t)),"phone"==t.item_type?(this.showPhoneOptions=!0,this.formModel["verify_sms"]=1==t.config_params.verify_sms,this.formModel["mobile_input_length"]=1==t.config_params.mobile_input_length?"specific":"section"):["singleBtn","multipleBtn","downOptions"].includes(t.item_type)?(this.showoptions=!0,this.formModel["options"]=t.config_params.options):["singleText","multipleText"].includes(t.item_type)?(this.showWord=!0,this.formModel["input_les"]=t.config_params.input_length[0],this.formModel["input_lar"]=t.config_params.input_length[1]):"area"==t.item_type&&(this.showAreaOptions=!0,this.formModel["is_show_county"]=1==t.config_params.is_show_county))},savebefore:function(e,t,o){return o(t)},beforeadd:function(e,t){return t({value:!0,message:null})},beforedit:function(e,t){return t({value:!0,message:null})},beforesave:function(e,t,o){return o(t)},onexec:function(e,t){var o=this;"auth"==e&&this.$router.push({name:"role_auth",query:{roleid:t.id,rolecode:t.code}}),"show"==e&&this.$router.push({name:"formSubRecord",query:{form_id:t.id}}),"copy"==e&&Object(s["l"])("/web/configmag/forminfoCtl/copy",t).then((function(e){var t=e.data;0==t.status?(o.$Message.success(t.msg),o.$refs.bt.fetchData()):(o.$refs.bt.fetchData(),o.$Message.error(t.msg?t.msg:"当前操作失败,请稍后重试或联系管理员."))}))},formatCol:function(e,t,o){return"is_enabled"==t?e["is_enabled"]?'<span style="color:green">是</span>':'<span style="color:orange">否</span>':"is_required"==t?e["is_required"]?'<span style="color:green">是</span>':'<span style="color:orange">否</span>':"created_at"==t?"<span>".concat(new Date(e[t]).toLocaleString(),"</span>"):e[t]}}},M=w,x=(o("1de4"),Object(h["a"])(M,n,i,!1,null,null,null));t["default"]=x.exports},"05c3":function(e,t,o){var n,i;(function(o,s){n=[],i=function(){return s()}.apply(t,n),void 0===i||(e.exports=i)})(0,(function(){var e=o;e.Integer={type:"integer"};var t={String:String,Boolean:Boolean,Number:Number,Object:Object,Array:Array,Date:Date};function o(e,t){return o(e,t,{changing:!1})}e.validate=o,e.checkPropertyChange=function(e,t,n){return o(e,t,{changing:n||"property"})};var o=e._validate=function(e,o,n){n||(n={});var i=n.changing;function s(e){return e.type||t[e.name]==e&&e.name.toLowerCase()}var a=[];function r(e,t,o,c){var m;function d(e){a.push({property:o,message:e})}if(o+=o?"number"==typeof c?"["+c+"]":"undefined"==typeof c?"":"."+c:c,("object"!=typeof t||t instanceof Array)&&(o||"function"!=typeof t)&&(!t||!s(t)))return"function"==typeof t?e instanceof t||d("is not an instance of the class/constructor "+t.name):t&&d("Invalid schema/property definition "+t),null;function f(e,t){if(e){if("string"==typeof e&&"any"!=e&&("null"==e?null!==t:typeof t!=e)&&!(t instanceof Array&&"array"==e)&&!(t instanceof Date&&"date"==e)&&("integer"!=e||t%1!==0))return[{property:o,message:typeof t+" value found, but a "+e+" is required"}];if(e instanceof Array){for(var n=[],i=0;i<e.length;i++)if(!(n=f(e[i],t)).length)break;if(n.length)return n}else if("object"==typeof e){var s=a;a=[],r(t,e,o);var l=a;return a=s,l}}return[]}if(i&&t.readonly&&d("is a readonly field, it can not be changed"),t["extends"]&&r(e,t["extends"],o,c),void 0===e)t.required&&d("is missing and it is required");else if(a=a.concat(f(s(t),e)),t.disallow&&!f(t.disallow,e).length&&d(" disallowed value was matched"),null!==e){if(e instanceof Array){if(t.items){var u=t.items instanceof Array,h=t.items;for(c=0,m=e.length;c<m;c+=1)u&&(h=t.items[c]),n.coerce&&(e[c]=n.coerce(e[c],h)),a.concat(r(e[c],h,o,c))}t.minItems&&e.length<t.minItems&&d("There must be a minimum of "+t.minItems+" in the array"),t.maxItems&&e.length>t.maxItems&&d("There must be a maximum of "+t.maxItems+" in the array")}else(t.properties||t.additionalProperties)&&a.concat(l(e,t.properties,o,t.additionalProperties));if(t.pattern&&"string"==typeof e&&!e.match(t.pattern)&&d("does not match the regex pattern "+t.pattern),t.maxLength&&"string"==typeof e&&e.length>t.maxLength&&d("may only be "+t.maxLength+" characters long"),t.minLength&&"string"==typeof e&&e.length<t.minLength&&d("must be at least "+t.minLength+" characters long"),void 0!==typeof t.minimum&&typeof e==typeof t.minimum&&t.minimum>e&&d("must have a minimum value of "+t.minimum),void 0!==typeof t.maximum&&typeof e==typeof t.maximum&&t.maximum<e&&d("must have a maximum value of "+t.maximum),t["enum"]){var p,v=t["enum"];m=v.length;for(var g=0;g<m;g++)if(v[g]===e){p=1;break}p||d("does not have a value in the enumeration "+v.join(", "))}"number"==typeof t.maxDecimal&&e.toString().match(new RegExp("\\.[0-9]{"+(t.maxDecimal+1)+",}"))&&d("may only have "+t.maxDecimal+" digits of decimal places")}return null}function l(e,t,o,s){if("object"==typeof t)for(var l in("object"!=typeof e||e instanceof Array)&&a.push({property:o,message:"an object is required"}),t)if(t.hasOwnProperty(l)){var c=e[l];if(void 0===c&&n.existingOnly)continue;var m=t[l];void 0===c&&m["default"]&&(c=e[l]=m["default"]),n.coerce&&l in e&&(c=e[l]=n.coerce(c,m)),r(c,m,o,l)}for(l in e){if(e.hasOwnProperty(l)&&("_"!=l.charAt(0)||"_"!=l.charAt(1))&&t&&!t[l]&&!1===s){if(n.filter){delete e[l];continue}a.push({property:o,message:typeof c+"The property "+l+" is not defined in the schema and the schema does not allow additional properties"})}var d=t&&t[l]&&t[l].requires;d&&!(d in e)&&a.push({property:o,message:"the presence of the property "+l+" requires that "+d+" also be present"}),c=e[l],!s||t&&"object"==typeof t&&l in t||(n.coerce&&(c=e[l]=n.coerce(c,s)),r(c,s,o,l)),!i&&c&&c.$schema&&(a=a.concat(r(c,c.$schema,o,l)))}return a}return o&&r(e,o,"",i||""),!i&&e&&e.$schema&&r(e,e.$schema,"",""),{valid:!a.length,errors:a}};return e.mustBeValid=function(e){if(!e.valid)throw new TypeError(e.errors.map((function(e){return"for property "+e.property+": "+e.message})).join(", \n"))},e}))},"1de4":function(e,t,o){"use strict";var n=o("9d86"),i=o.n(n);i.a},"391e":function(e,t,o){"use strict";var n=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{attrs:{id:"framediv"}},[e._t("default",null,{adjustHeight:e.frameHeight})],2)},i=[],s=o("9ee1"),a=s["a"],r=o("9ca4"),l=Object(r["a"])(a,n,i,!1,null,null,null);t["a"]=l.exports},"40b4":function(e,t,o){"use strict";var n=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("Row",[o("i-col",{attrs:{span:"24"}},[o("Input",{style:e.styleConfig,attrs:{type:"text",placeholder:e.placeholder},model:{value:e.mobile,callback:function(t){e.mobile=t},expression:"mobile"}})],1),e.isverifysms?o("i-col",{staticStyle:{"margin-top":"10px"},attrs:{span:"24"}},[o("i-input",{style:e.styleConfig,attrs:{placeholder:"请输入收到的验证码"},on:{"on-blur":e.onblur},model:{value:e.vcode,callback:function(t){e.vcode=t},expression:"vcode"}},[o("span",{attrs:{slot:"prepend"},slot:"prepend"},[o("Icon",{attrs:{size:14,type:"md-lock"}})],1),o("span",{attrs:{slot:"append"},slot:"append"},[e.isshowtime?e._e():o("Button",{attrs:{type:"primary"},on:{click:e.onsendVCode}},[e._v("发送验证码")]),e.isshowtime?o("span",[e._v(e._s(e.leftseconds)+"秒")]):e._e()],1)])],1):e._e(),e.verror?o("i-col",{attrs:{span:"24"}},[o("label",{staticStyle:{color:"red"}},[e._v("请输入正确的验证码")])]):e._e()],1)},i=[],s=(o("60b7"),o("c24f")),a=(o("35f4"),o("05c3"),{name:"mobile",components:{},model:{prop:"value",event:"change"},props:["value","stylestr","placeholder","styleConfig","verifysms"],data:function(){return{isverifysms:this.verifysms||0,mobile:"",vcode:"",rtncode:"",isshowtime:!1,leftseconds:60,rtnvcode:0,verror:!1}},watch:{value:function(e,t){""===e&&(this.mobile=e,this.vcode="")},mobile:function(e){this.vcode==this.rtnvcode&&this.rtnvcode||this.vcode||!this.isverifysms?(this.$emit("change",e),this.verror=!1):this.$emit("change",!1)}},methods:{onblur:function(){this.isverifysms&&(this.vcode==this.rtnvcode&&this.vcode?(this.verror=!1,this.$emit("change",this.mobile)):(this.verror=!0,this.$emit("change",!1)))},onsendVCode:function(e){var t=this;if(""!=this.mobile){var o=60;this.isshowtime=!0;var n=setInterval((function(){t.leftseconds=o--,0==o&&(clearInterval(n),t.isshowtime=!1)}),1e3);Object(s["k"])({mobile:this.mobile}).then((function(e){e.data;console.log(e.data),t.rtnvcode=e.data.data}))}}}}),r=a,l=(o("d8ea"),o("9ca4")),c=Object(l["a"])(r,n,i,!1,null,"2730f167",null);t["a"]=c.exports},"9d86":function(e,t,o){},"9ee1":function(e,t,o){"use strict";(function(e){o("163d");t["a"]={name:"pagespace_page",prop:{tweak:Number},data:function(){return{frameHeight:0,advalue:this.tweak?this.tweak:0}},components:{},mounted:function(){var t=this;this.setHeight(),e(window).resize((function(){t.setHeight()}))},methods:{setHeight:function(){var t=this;this.$nextTick((function(){var o=e("#framediv"),n=o.get()[0]||0,i=window.innerHeight-n.offsetTop-t.advalue;t.frameHeight=i,t.$emit("sizechange",t.frameHeight)}))}}}}).call(this,o("a336"))},b43d:function(e,t,o){},d8ea:function(e,t,o){"use strict";var n=o("b43d"),i=o.n(n);i.a}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-780401d4"],{"0c87":function(e,t,a){"use strict";a.r(t);var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("PageSpace",{scopedSlots:e._u([{key:"default",fn:function(t){var n=t.adjustHeight;return[a("BizTable",{ref:"bt",attrs:{formatCol:e.formatCol,tblheight:n-120,metaName:"put_type",packageName:"configmag",modelName:"puttype",isMulti:"",savebefore:e.savebefore,editbefore:e.beforedit,addbefore:e.beforeadd},on:{onexec:e.onexec}})]}}])})},o=[],r=a("06d3"),i=a("391e"),u=(a("35f4"),{name:"roleinfo_page",data:function(){return{}},components:{BizTable:r["a"],PageSpace:i["a"]},methods:{savebefore:function(e,t,a){return a(t)},beforeadd:function(e,t){return t({value:!0,message:null})},beforedit:function(e,t){return t({value:!0,message:null})},beforesave:function(e,t,a){return a(t)},onexec:function(e,t){"auth"==e&&this.$router.push({name:"role_auth",query:{roleid:t.id,rolecode:t.code}})},formatCol:function(e,t,a){return"created_at"==t?"<span>".concat(new Date(e[t]).toLocaleString(),"</span>"):e[t]}}}),c=u,s=a("9ca4"),f=Object(s["a"])(c,n,o,!1,null,null,null);t["default"]=f.exports},"391e":function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{id:"framediv"}},[e._t("default",null,{adjustHeight:e.frameHeight})],2)},o=[],r=a("9ee1"),i=r["a"],u=a("9ca4"),c=Object(u["a"])(i,n,o,!1,null,null,null);t["a"]=c.exports},"9ee1":function(e,t,a){"use strict";(function(e){a("163d");t["a"]={name:"pagespace_page",prop:{tweak:Number},data:function(){return{frameHeight:0,advalue:this.tweak?this.tweak:0}},components:{},mounted:function(){var t=this;this.setHeight(),e(window).resize((function(){t.setHeight()}))},methods:{setHeight:function(){var t=this;this.$nextTick((function(){var a=e("#framediv"),n=a.get()[0]||0,o=window.innerHeight-n.offsetTop-t.advalue;t.frameHeight=o,t.$emit("sizechange",t.frameHeight)}))}}}}).call(this,a("a336"))}}]);
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-cc77621c"],{"2e25":function(e,t,s){},3759:function(e,t,s){"use strict";s.r(t);var a=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("Card",{attrs:{shadow:""}},[s("div",[s("div",{staticClass:"message-page-con message-category-con"},[s("Menu",{attrs:{width:"auto","active-name":"unread"},on:{"on-select":e.handleSelect}},[s("MenuItem",{attrs:{name:"unread"}},[s("span",{staticClass:"category-title"},[e._v("未读消息")]),s("Badge",{staticStyle:{"margin-left":"10px"},attrs:{count:e.messageUnreadCount}})],1),s("MenuItem",{attrs:{name:"readed"}},[s("span",{staticClass:"category-title"},[e._v("已读消息")]),s("Badge",{staticStyle:{"margin-left":"10px"},attrs:{"class-name":"gray-dadge",count:e.messageReadedCount}})],1),s("MenuItem",{attrs:{name:"trash"}},[s("span",{staticClass:"category-title"},[e._v("回收站")]),s("Badge",{staticStyle:{"margin-left":"10px"},attrs:{"class-name":"gray-dadge",count:e.messageTrashCount}})],1)],1)],1),s("div",{staticClass:"message-page-con message-list-con"},[e.listLoading?s("Spin",{attrs:{fix:"",size:"large"}}):e._e(),s("Menu",{class:e.titleClass,attrs:{width:"auto","active-name":""},on:{"on-select":e.handleView}},e._l(e.messageList,(function(t){return s("MenuItem",{key:"msg_"+t.msg_id,attrs:{name:t.msg_id}},[s("div",[s("p",{staticClass:"msg-title"},[e._v(e._s(t.title))]),s("Badge",{attrs:{status:"default",text:t.create_time}}),s("Button",{directives:[{name:"show",rawName:"v-show",value:"unread"!==e.currentMessageType,expression:"currentMessageType !== 'unread'"}],staticStyle:{float:"right","margin-right":"20px"},style:{display:t.loading?"inline-block !important":""},attrs:{loading:t.loading,size:"small",icon:"readed"===e.currentMessageType?"md-trash":"md-redo",title:"readed"===e.currentMessageType?"删除":"还原",type:"text"},nativeOn:{click:function(s){return s.stopPropagation(),e.removeMsg(t)}}})],1)])})),1)],1),s("div",{staticClass:"message-page-con message-view-con"},[e.contentLoading?s("Spin",{attrs:{fix:"",size:"large"}}):e._e(),s("div",{staticClass:"message-view-header"},[s("h2",{staticClass:"message-view-title"},[e._v(e._s(e.showingMsgItem.title))]),s("time",{staticClass:"message-view-time"},[e._v(e._s(e.showingMsgItem.create_time))])]),s("div",{domProps:{innerHTML:e._s(e.messageContent)}})],1)])])},n=[],i=(s("5ab2"),s("6d57"),s("e10e"),s("e697"),s("ce3c")),r=s("9f3a");function o(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function c(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?o(Object(s),!0).forEach((function(t){Object(i["a"])(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):o(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}var g={unread:"messageUnreadList",readed:"messageReadedList",trash:"messageTrashList"},d={name:"message_page",data:function(){return{listLoading:!0,contentLoading:!1,currentMessageType:"unread",messageContent:"",showingMsgItem:{}}},computed:c(c({},Object(r["e"])({messageUnreadList:function(e){return e.user.messageUnreadList},messageReadedList:function(e){return e.user.messageReadedList},messageTrashList:function(e){return e.user.messageTrashList},messageList:function(){return this[g[this.currentMessageType]]},titleClass:function(){return{"not-unread-list":"unread"!==this.currentMessageType}}})),Object(r["c"])(["messageUnreadCount","messageReadedCount","messageTrashCount"])),methods:c(c(c({},Object(r["d"])([])),Object(r["b"])(["getContentByMsgId","getMessageList","hasRead","removeReaded","restoreTrash"])),{},{stopLoading:function(e){this[e]=!1},handleSelect:function(e){this.currentMessageType=e},handleView:function(e){var t=this;this.contentLoading=!0,this.getContentByMsgId({msg_id:e}).then((function(s){t.messageContent=s;var a=t.messageList.find((function(t){return t.msg_id===e}));a&&(t.showingMsgItem=a),"unread"===t.currentMessageType&&t.hasRead({msg_id:e}),t.stopLoading("contentLoading")})).catch((function(){t.stopLoading("contentLoading")}))},removeMsg:function(e){e.loading=!0;var t=e.msg_id;"readed"===this.currentMessageType?this.removeReaded({msg_id:t}):this.restoreTrash({msg_id:t})}}),mounted:function(){var e=this;this.listLoading=!0,this.getMessageList().then((function(){return e.stopLoading("listLoading")})).catch((function(){return e.stopLoading("listLoading")}))}},u=d,m=(s("ac69"),s("9ca4")),l=Object(m["a"])(u,a,n,!1,null,null,null);t["default"]=l.exports},ac69:function(e,t,s){"use strict";var a=s("2e25"),n=s.n(a);n.a}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-d710b6d2"],{"391e":function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"framediv"}},[e._t("default",null,{adjustHeight:e.frameHeight})],2)},o=[],i=n("9ee1"),r=i["a"],u=n("9ca4"),c=Object(u["a"])(r,a,o,!1,null,null,null);t["a"]=c.exports},"7c27":function(e,t,n){"use strict";n.r(t);var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("PageSpace",{scopedSlots:e._u([{key:"default",fn:function(t){var a=t.adjustHeight;return[n("BizTable",{ref:"bt",attrs:{formatCol:e.formatCol,tblheight:a-120,metaName:"main_info",packageName:"configmag",modelName:"maininfo",isMulti:"",savebefore:e.savebefore,editbefore:e.beforedit,addbefore:e.beforeadd},on:{onexec:e.onexec}})]}}])})},o=[],i=n("06d3"),r=n("391e"),u={name:"roleinfo_page",data:function(){return{}},components:{BizTable:i["a"],PageSpace:r["a"]},methods:{savebefore:function(e,t,n){return n(t)},beforeadd:function(e,t){return t({value:!0,message:null})},beforedit:function(e,t){return t({value:!0,message:null})},beforesave:function(e,t,n){return n(t)},onexec:function(e,t){"auth"==e&&this.$router.push({name:"role_auth",query:{roleid:t.id,rolecode:t.code}})},formatCol:function(e,t,n){return"created_at"==t?"<span>".concat(new Date(e[t]).toLocaleString(),"</span>"):e[t]}}},c=u,s=n("9ca4"),f=Object(s["a"])(c,a,o,!1,null,null,null);t["default"]=f.exports},"9ee1":function(e,t,n){"use strict";(function(e){n("163d");t["a"]={name:"pagespace_page",prop:{tweak:Number},data:function(){return{frameHeight:0,advalue:this.tweak?this.tweak:0}},components:{},mounted:function(){var t=this;this.setHeight(),e(window).resize((function(){t.setHeight()}))},methods:{setHeight:function(){var t=this;this.$nextTick((function(){var n=e("#framediv"),a=n.get()[0]||0,o=window.innerHeight-a.offsetTop-t.advalue;t.frameHeight=o,t.$emit("sizechange",t.frameHeight)}))}}}}).call(this,n("a336"))}}]);
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
var fs = require('fs');
// function to encode file data to base64 encoded string
function base64_encode(file) {
// read binary data
var bitmap = fs.readFileSync("./imgs/sp.png");
// convert binary data to base64 encoded string
var bf=Buffer.alloc(bitmap.length,bitmap);
return bf.toString('base64');
}
// function to create file from base64 encoded string
function base64_decode(base64str, file) {
// create buffer object from base64 encoded string, it is important to tell the constructor that the string is base64 encoded
var bitmap = new Buffer(base64str, 'base64');
// write buffer to file
fs.writeFileSync(file, bitmap);
console.log('******** File created from base64 encoded string ********');
}
function getDataUrl(filepath){
var str=base64_encode(filepath);
var mime="";
if(filepath.indexOf("png")>=0){
mime="image/png";
}
if(filepath.indexOf("jpg")>=0 || filepath.indexOf("jpeg")>=0){
mime="image/jpg";
}
if(filepath.indexOf("gif")>=0){
mime="image/gif";
}
var dataurl=`data:${mime};base64,`+str;
return dataurl;
}
var str=getDataUrl("./imgs/sp.png");
console.log(str);
\ No newline at end of file
data:function(){
return {
downloadTimes : 1, // 设置检查重试次数变量,
code : '', // 下载文件的code值
}
},
methods : {
// 创建下载文件方法
exportFile() {
var self = this;
var datas = self.querydata;
if(!datas || datas.length == 0) {
that.$message.warning(`无查询结果`);
return ;
}
/* [{},{},{}]转换成[[],[],[]] 格式 */
var rows = [];
for(var dd of datas) {
var arr = [];
for(var _idx in dd) {
arr.push(dd[_idx]);
}
rows.push(arr);
}
this.code = "";
/* 生成文件 */
self.$root.postReq("/web/filedownloadCtl/download",{rows : rows}).then(function(d){
if(d.status == 0) {
setTimeout((function(){
/* d.data 返回文件标识 */
self.code = d.data;
self.downloadFile();
}), 2000);
}
});
},
/* 循环检查code, 并下载文件 */
downloadFile() {
var self = this;
self.$root.postReq("/web/filedownloadCtl/findOne",{code : self.code}).then(function(d){
if(d.status == 0) {
if(d.data && d.data.filePath) {
downloadTimes = 1;
/* 文件生成成功 */
window.open(d.data.filePath, "_blank");
} else {
/* 递归2秒一次,超过5次,下载失败 */
if(downloadTimes > 5) {
downloadTimes = 1;
/* 下载超时 */
return;
}
downloadTimes = downloadTimes + 1;
setTimeout((function(){
self.downloadFile();
}), 2000);
}
}
});
},
}
/* Element Chalk Variables */
/* Transition
-------------------------- */
$--all-transition: all .3s cubic-bezier(.645,.045,.355,1) !default;
$--fade-transition: opacity 300ms cubic-bezier(0.23, 1, 0.32, 1) !default;
$--fade-linear-transition: opacity 200ms linear !default;
$--md-fade-transition: transform 300ms cubic-bezier(0.23, 1, 0.32, 1), opacity 300ms cubic-bezier(0.23, 1, 0.32, 1) !default;
$--border-transition-base: border-color .2s cubic-bezier(.645,.045,.355,1) !default;
$--color-transition-base: color .2s cubic-bezier(.645,.045,.355,1) !default;
/* Colors
-------------------------- */
$--color-white: black !default;
$--color-black: #000 !default;
$--color-primary: #2c3e50 !default;
$--color-primary-light-1: mix($--color-white, $--color-primary, 10%) !default; /* 53a8ff */
$--color-primary-light-2: mix($--color-white, $--color-primary, 20%) !default; /* 66b1ff */
$--color-primary-light-3: mix($--color-white, $--color-primary, 30%) !default; /* 79bbff */
$--color-primary-light-4: mix($--color-white, $--color-primary, 40%) !default; /* 8cc5ff */
$--color-primary-light-5: mix($--color-white, $--color-primary, 50%) !default; /* a0cfff */
$--color-primary-light-6: mix($--color-white, $--color-primary, 60%) !default; /* b3d8ff */
$--color-primary-light-7: mix($--color-white, $--color-primary, 70%) !default; /* c6e2ff */
$--color-primary-light-8: mix($--color-white, $--color-primary, 80%) !default; /* d9ecff */
$--color-primary-light-9: mix($--color-white, $--color-primary, 90%) !default; /* ecf5ff */
$--color-success: #67c23a !default;
$--color-warning: #e6a23c !default;
$--color-danger: #f56c6c !default;
$--color-info: #909399 !default;
$--color-success-light: mix($--color-white, $--color-success, 80%) !default;
$--color-warning-light: mix($--color-white, $--color-warning, 80%) !default;
$--color-danger-light: mix($--color-white, $--color-danger, 80%) !default;
$--color-info-light: mix($--color-white, $--color-info, 80%) !default;
$--color-success-lighter: mix($--color-white, $--color-success, 90%) !default;
$--color-warning-lighter: mix($--color-white, $--color-warning, 90%) !default;
$--color-danger-lighter: mix($--color-white, $--color-danger, 90%) !default;
$--color-info-lighter: mix($--color-white, $--color-info, 90%) !default;
$--color-text-primary: #303133 !default;
$--color-text-regular: #606266 !default;
$--color-text-secondary: #909399 !default;
$--color-text-placeholder: #c0c4cc !default;
/* Link
-------------------------- */
$--link-color: $--color-primary-light-2 !default;
$--link-hover-color: $--color-primary !default;
/* Background
-------------------------- */
$--background-color-base: #f5f7fa !default;
/* Border
-------------------------- */
$--border-width-base: 1px !default;
$--border-style-base: solid !default;
$--border-color-base: #dcdfe6 !default;
$--border-color-light: #e4e7ed !default;
$--border-color-lighter: #ebeef5 !default;
$--border-color-extra-light: #f2f6fc !default;
$--border-color-hover: $--color-text-placeholder !default;
$--border-base: $--border-width-base $--border-style-base $--border-color-base !default;
$--border-radius-base: 4px !default;
$--border-radius-small: 2px !default;
$--border-radius-circle: 100% !default;
/* Box-shadow
-------------------------- */
$--box-shadow-base: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04) !default;
$--box-shadow-dark: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .12) !default;
$--box-shadow-light: 0 2px 12px 0 rgba(0, 0, 0, 0.1) !default;
/* Fill
-------------------------- */
$--fill-base: $--color-white !default;
/* Font
-------------------------- */
$--font-path: 'fonts' !default;
$--font-size-base: 14px !default;
$--font-size-small: 13px !default;
$--font-size-large: 18px !default;
$--font-color-disabled-base: #bbb !default;
$--font-weight-primary: 500 !default;
$--font-line-height-primary: 24px !default;
/* Size
-------------------------- */
$--size-base: 14px !default;
/* z-index
-------------------------- */
$--index-normal: 1 !default;
$--index-top: 1000 !default;
$--index-popper: 2000 !default;
/* Disable base
-------------------------- */
$--disabled-fill-base: $--background-color-base !default;
$--disabled-color-base: $--color-text-placeholder !default;
$--disabled-border-base: $--border-color-light !default;
/* Icon
-------------------------- */
$--icon-color: #666 !default;
$--icon-color-base: $--color-info !default;
/* Checkbox
-------------------------- */
$--checkbox-font-size: 14px !default;
$--checkbox-font-weight: $--font-weight-primary !default;
$--checkbox-color: $--color-text-regular !default;
$--checkbox-input-height: 14px !default;
$--checkbox-input-width: 14px !default;
$--checkbox-input-border-radius: $--border-radius-small !default;
$--checkbox-input-fill: $--color-white !default;
$--checkbox-input-border: $--border-base !default;
$--checkbox-input-border-color: $--border-color-base !default;
$--checkbox-icon-color: $--color-white !default;
$--checkbox-disabled-input-border-color: $--border-color-base !default;
$--checkbox-disabled-input-fill: #edf2fc !default;
$--checkbox-disabled-icon-color: $--color-text-placeholder !default;
$--checkbox-disabled-checked-input-fill: $--border-color-extra-light !default;
$--checkbox-disabled-checked-input-border-color: $--border-color-base !default;
$--checkbox-disabled-checked-icon-color: $--color-text-placeholder !default;
$--checkbox-checked-text-color: $--color-primary !default;
$--checkbox-checked-input-border-color: $--color-primary !default;
$--checkbox-checked-input-fill: $--color-primary !default;
$--checkbox-checked-icon-color: $--fill-base !default;
$--checkbox-input-border-color-hover: $--color-primary !default;
$--checkbox-bordered-height: 40px !default;
$--checkbox-bordered-padding: 9px 20px 9px 10px !default;
$--checkbox-bordered-medium-padding: 7px 20px 7px 10px !default;
$--checkbox-bordered-small-padding: 5px 15px 5px 10px !default;
$--checkbox-bordered-mini-padding: 3px 15px 3px 10px !default;
$--checkbox-bordered-medium-input-height: 14px !default;
$--checkbox-bordered-medium-input-width: 14px !default;
$--checkbox-bordered-medium-height: 36px !default;
$--checkbox-bordered-small-input-height: 12px !default;
$--checkbox-bordered-small-input-width: 12px !default;
$--checkbox-bordered-small-height: 32px !default;
$--checkbox-bordered-mini-input-height: 12px !default;
$--checkbox-bordered-mini-input-width: 12px !default;
$--checkbox-bordered-mini-height: 28px !default;
$--checkbox-button-font-size: $--font-size-base !default;
$--checkbox-button-checked-fill: $--color-primary !default;
$--checkbox-button-checked-color: $--color-white !default;
$--checkbox-button-checked-border-color: $--color-primary !default;
/* Radio
-------------------------- */
$--radio-font-size: 14px !default;
$--radio-font-weight: $--font-weight-primary !default;
$--radio-color: $--color-text-regular !default;
$--radio-input-height: 14px !default;
$--radio-input-width: 14px !default;
$--radio-input-border-radius: $--border-radius-circle !default;
$--radio-input-fill: $--color-white !default;
$--radio-input-border: $--border-base !default;
$--radio-input-border-color: $--border-color-base !default;
$--radio-icon-color: $--color-white !default;
$--radio-disabled-input-border-color: $--disabled-border-base !default;
$--radio-disabled-input-fill: $--disabled-fill-base !default;
$--radio-disabled-icon-color: $--disabled-fill-base !default;
$--radio-disabled-checked-input-border-color: $--disabled-border-base !default;
$--radio-disabled-checked-input-fill: $--disabled-fill-base !default;
$--radio-disabled-checked-icon-color: $--color-text-placeholder !default;
$--radio-checked-text-color: $--color-primary !default;
$--radio-checked-input-border-color: $--color-primary !default;
$--radio-checked-input-fill: $--color-white !default;
$--radio-checked-icon-color: $--color-primary !default;
$--radio-input-border-color-hover: $--color-primary !default;
$--radio-bordered-height: 40px !default;
$--radio-bordered-padding: 12px 20px 0 10px !default;
$--radio-bordered-medium-padding: 10px 20px 0 10px !default;
$--radio-bordered-small-padding: 8px 15px 0 10px !default;
$--radio-bordered-mini-padding: 6px 15px 0 10px !default;
$--radio-bordered-medium-input-height: 14px !default;
$--radio-bordered-medium-input-width: 14px !default;
$--radio-bordered-medium-height: 36px !default;
$--radio-bordered-small-input-height: 12px !default;
$--radio-bordered-small-input-width: 12px !default;
$--radio-bordered-small-height: 32px !default;
$--radio-bordered-mini-input-height: 12px !default;
$--radio-bordered-mini-input-width: 12px !default;
$--radio-bordered-mini-height: 28px !default;
$--radio-button-font-size: $--font-size-base !default;
$--radio-button-checked-fill: $--color-primary !default;
$--radio-button-checked-color: $--color-white !default;
$--radio-button-checked-border-color: $--color-primary !default;
$--radio-button-disabled-checked-fill: $--border-color-extra-light !default;
/* Select
-------------------------- */
$--select-border-color-hover: $--border-color-hover !default;
$--select-disabled-border: $--disabled-border-base !default;
$--select-font-size: $--font-size-base !default;
$--select-close-hover-color: $--color-text-secondary !default;
$--select-input-color: $--color-text-placeholder !default;
$--select-multiple-input-color: #666 !default;
$--select-input-focus-background: $--color-primary !default;
$--select-input-font-size: 14px !default;
$--select-option-color: $--color-text-regular !default;
$--select-option-disabled-color: $--color-text-placeholder !default;
$--select-option-disabled-background: $--color-white !default;
$--select-option-height: 34px !default;
$--select-option-hover-background: $--background-color-base !default;
$--select-option-selected: $--color-primary !default;
$--select-option-selected-hover: $--background-color-base !default;
$--select-group-color: $--color-info !default;
$--select-group-height: 30px !default;
$--select-group-font-size: 12px !default;
$--select-dropdown-background: $--color-white !default;
$--select-dropdown-shadow: $--box-shadow-light !default;
$--select-dropdown-empty-color: #999 !default;
$--select-dropdown-max-height: 274px !default;
$--select-dropdown-padding: 6px 0 !default;
$--select-dropdown-empty-padding: 10px 0 !default;
$--select-dropdown-border: solid 1px $--border-color-light !default;
/* Alert
-------------------------- */
$--alert-padding: 8px 16px !default;
$--alert-border-radius: $--border-radius-base !default;
$--alert-title-font-size: 13px !default;
$--alert-description-font-size: 12px !default;
$--alert-close-font-size: 12px !default;
$--alert-close-customed-font-size: 13px !default;
$--alert-success-color: $--color-success-lighter !default;
$--alert-info-color: $--color-info-lighter !default;
$--alert-warning-color: $--color-warning-lighter !default;
$--alert-danger-color: $--color-danger-lighter !default;
$--alert-icon-size: 16px !default;
$--alert-icon-large-size: 28px !default;
/* Message Box
-------------------------- */
$--msgbox-width: 420px !default;
$--msgbox-border-radius: 4px !default;
$--msgbox-font-size: $--font-size-large !default;
$--msgbox-content-font-size: $--font-size-base !default;
$--msgbox-content-color: $--color-text-regular !default;
$--msgbox-error-font-size: 12px !default;
$--msgbox-padding-primary: 15px !default;
$--msgbox-success-color: $--color-success !default;
$--msgbox-info-color: $--color-info !default;
$--msgbox-warning-color: $--color-warning !default;
$--msgbox-danger-color: $--color-danger !default;
/* Message
-------------------------- */
$--message-shadow: $--box-shadow-base !default;
$--message-min-width: 380px !default;
$--message-background-color: #edf2fc !default;
$--message-padding: 15px 15px 15px 20px !default;
$--message-content-color: $--color-text-regular !default;
$--message-close-color: $--color-text-placeholder !default;
$--message-close-size: 16px !default;
$--message-close-hover-color: $--color-text-secondary !default;
$--message-success-color: $--color-success !default;
$--message-info-color: $--color-info !default;
$--message-warning-color: $--color-warning !default;
$--message-danger-color: $--color-danger !default;
/* Notification
-------------------------- */
$--notification-width: 330px !default;
$--notification-padding: 14px 26px 14px 13px !default;
$--notification-radius: 8px !default;
$--notification-shadow: $--box-shadow-light !default;
$--notification-border-color: $--border-color-lighter !default;
$--notification-icon-size: 24px !default;
$--notification-close-font-size: $--message-close-size !default;
$--notification-group-margin: 13px !default;
$--notification-font-size: $--font-size-base !default;
$--notification-color: $--color-text-regular !default;
$--notification-title-font-size: 16px !default;
$--notification-title-color: $--color-text-primary !default;
$--notification-close-color: $--color-text-secondary !default;
$--notification-close-hover-color: $--color-text-regular !default;
$--notification-success-color: $--color-success !default;
$--notification-info-color: $--color-info !default;
$--notification-warning-color: $--color-warning !default;
$--notification-danger-color: $--color-danger !default;
/* Input
-------------------------- */
$--input-font-size: $--font-size-base !default;
$--input-color: $--color-text-regular !default;
$--input-width: 140px !default;
$--input-height: 40px !default;
$--input-border: $--border-base !default;
$--input-border-color: $--border-color-base !default;
$--input-border-radius: $--border-radius-base !default;
$--input-border-color-hover: $--border-color-hover !default;
$--input-fill: $--color-white !default;
$--input-fill-disabled: $--disabled-fill-base !default;
$--input-color-disabled: $--font-color-disabled-base !default;
$--input-icon-color: $--color-text-placeholder !default;
$--input-placeholder-color: $--color-text-placeholder !default;
$--input-max-width: 314px !default;
$--input-hover-border: $--border-color-hover !default;
$--input-clear-hover-color: $--color-text-secondary !default;
$--input-focus-border: $--color-primary !default;
$--input-focus-fill: $--color-white !default;
$--input-disabled-fill: $--disabled-fill-base !default;
$--input-disabled-border: $--disabled-border-base !default;
$--input-disabled-color: $--disabled-color-base !default;
$--input-disabled-placeholder-color: $--color-text-placeholder !default;
$--input-medium-font-size: 14px !default;
$--input-medium-height: 36px !default;
$--input-small-font-size: 13px !default;
$--input-small-height: 32px !default;
$--input-mini-font-size: 12px !default;
$--input-mini-height: 28px !default;
/* Cascader
-------------------------- */
$--cascader-menu-fill: $--fill-base !default;
$--cascader-menu-font-size: $--font-size-base !default;
$--cascader-menu-radius: $--border-radius-base !default;
$--cascader-menu-border: $--border-base !default;
$--cascader-menu-border-color: $--border-color-base !default;
$--cascader-menu-border-width: $--border-width-base !default;
$--cascader-menu-color: $--color-text-regular !default;
$--cascader-menu-option-color-active: $--color-text-secondary !default;
$--cascader-menu-option-fill-active: rgba($--color-text-secondary, 0.12) !default;
$--cascader-menu-option-color-hover: $--color-text-regular !default;
$--cascader-menu-option-fill-hover: rgba($--color-text-primary, 0.06) !default;
$--cascader-menu-option-color-disabled: #999 !default;
$--cascader-menu-option-fill-disabled: rgba($--color-black, 0.06) !default;
$--cascader-menu-option-empty-color: #666 !default;
$--cascader-menu-group-color: #999 !default;
$--cascader-menu-shadow: 0 1px 2px rgba($--color-black, 0.14), 0 0 3px rgba($--color-black, 0.14) !default;
$--cascader-menu-option-pinyin-color: #999 !default;
$--cascader-menu-submenu-shadow: 1px 1px 2px rgba($--color-black, 0.14), 1px 0 2px rgba($--color-black, 0.14) !default;
/* Group
-------------------------- */
$--group-option-flex: 0 0 (1/5) * 100% !default;
$--group-option-offset-bottom: 12px !default;
$--group-option-fill-hover: rgba($--color-black, 0.06) !default;
$--group-title-color: $--color-black !default;
$--group-title-font-size: $--font-size-base !default;
$--group-title-width: 66px !default;
/* Tab
-------------------------- */
$--tab-font-size: $--font-size-base !default;
$--tab-border-line: 1px solid #e4e4e4 !default;
$--tab-header-color-active: $--color-text-secondary !default;
$--tab-header-color-hover: $--color-text-regular !default;
$--tab-header-color: $--color-text-regular !default;
$--tab-header-fill-active: rgba($--color-black, 0.06) !default;
$--tab-header-fill-hover: rgba($--color-black, 0.06) !default;
$--tab-vertical-header-width: 90px !default;
$--tab-vertical-header-count-color: $--color-white !default;
$--tab-vertical-header-count-fill: $--color-text-secondary !default;
/* Button
-------------------------- */
$--button-font-size: 14px !default;
$--button-font-weight: $--font-weight-primary !default;
$--button-border-radius: $--border-radius-base !default;
$--button-padding-vertical: 12px !default;
$--button-padding-horizontal: 20px !default;
$--button-medium-font-size: 14px !default;
$--button-medium-border-radius: $--border-radius-base !default;
$--button-medium-padding-vertical: 10px !default;
$--button-medium-padding-horizontal: 20px !default;
$--button-small-font-size: 12px !default;
$--button-small-border-radius: #{$--border-radius-base - 1} !default;
$--button-small-padding-vertical: 9px !default;
$--button-small-padding-horizontal: 15px !default;
$--button-mini-font-size: 12px !default;
$--button-mini-border-radius: #{$--border-radius-base - 1} !default;
$--button-mini-padding-vertical: 7px !default;
$--button-mini-padding-horizontal: 15px !default;
$--button-default-color: $--color-text-regular !default;
$--button-default-fill: $--color-white !default;
$--button-default-border: $--border-color-base !default;
$--button-disabled-color: $--color-text-placeholder !default;
$--button-disabled-fill: $--color-white !default;
$--button-disabled-border: $--border-color-lighter !default;
$--button-primary-border: $--color-primary !default;
$--button-primary-color: $--color-white !default;
$--button-primary-fill: $--color-primary !default;
$--button-success-border: $--color-success !default;
$--button-success-color: $--color-white !default;
$--button-success-fill: $--color-success !default;
$--button-warning-border: $--color-warning !default;
$--button-warning-color: $--color-white !default;
$--button-warning-fill: $--color-warning !default;
$--button-danger-border: $--color-danger !default;
$--button-danger-color: $--color-white !default;
$--button-danger-fill: $--color-danger !default;
$--button-info-border: $--color-info !default;
$--button-info-color: $--color-white !default;
$--button-info-fill: $--color-info !default;
$--button-hover-tint-percent: 20% !default;
$--button-active-shade-percent: 10% !default;
/* cascader
-------------------------- */
$--cascader-height: 200px !default;
/* Switch
-------------------------- */
$--switch-on-color: $--color-primary !default;
$--switch-off-color: $--border-color-base !default;
$--switch-disabled-color: $--border-color-lighter !default;
$--switch-disabled-text-color: $--color-text-placeholder !default;
$--switch-font-size: $--font-size-base !default;
$--switch-core-border-radius: 10px !default;
$--switch-width: 40px !default;
$--switch-height: 20px !default;
$--switch-button-size: 16px !default;
/* Dialog
-------------------------- */
$--dialog-background-color: $--color-primary-light-4 !default;
$--dialog-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3) !default;
$--dialog-close-hover-color: $--color-primary !default;
$--dialog-title-font-size: $--font-size-large !default;
$--dialog-font-size: 14px !default;
$--dialog-line-height: $--font-line-height-primary !default;
$--dialog-padding-primary: 20px !default;
/* Table
-------------------------- */
$--table-border-color: $--border-color-lighter !default;
$--table-border: 1px solid $--table-border-color !default;
$--table-text-color: $--color-text-regular !default;
$--table-header-color: $--color-text-secondary !default;
$--table-row-hover-background: $--background-color-base !default;
$--table-current-row-background: $--color-primary-light-9 !default;
$--table-header-background: $--color-white !default;
$--table-footer-background: $--color-text-placeholder !default;
$--table-fixed-box-shadow: 0 0 10px rgba(0, 0, 0, .12) !default;
/* Pagination
-------------------------- */
$--pagination-font-size: 13px !default;
$--pagination-fill: $--color-white !default;
$--pagination-color: $--color-text-primary !default;
$--pagination-border-radius: 3px !default;
$--pagination-button-color: $--color-text-primary !default;
$--pagination-button-width: 35.5px !default;
$--pagination-button-height: 28px !default;
$--pagination-button-disabled-color: $--color-text-placeholder !default;
$--pagination-button-disabled-fill: $--color-white !default;
$--pagination-hover-fill: $--color-primary !default;
$--pagination-hover-color: $--color-white !default;
/* Popover
-------------------------- */
$--popover-fill: $--color-white !default;
$--popover-font-size: $--font-size-base !default;
$--popover-border-color: $--border-color-lighter !default;
$--popover-arrow-size: 6px !default;
$--popover-padding: 12px !default;
$--popover-padding-large: 18px 20px !default;
$--popover-title-font-size: 16px !default;
$--popover-title-color: $--color-text-primary !default;
/* Tooltip
-------------------------- */
$--tooltip-fill: $--color-text-primary !default;
$--tooltip-color: $--color-white !default;
$--tooltip-font-size: 12px !default;
$--tooltip-border-color: $--color-text-primary !default;
$--tooltip-arrow-size: 6px !default;
$--tooltip-padding: 10px !default;
/* Tag
-------------------------- */
$--tag-padding: 0 10px !default;
$--tag-fill: rgba($--color-primary, 0.10) !default;
$--tag-color: $--color-primary !default;
$--tag-border: rgba($--color-primary, 0.20) !default;
$--tag-font-size: 12px !default;
$--tag-border-radius: 4px !default;
$--tag-info-fill: rgba($--color-info, 0.10) !default;
$--tag-info-border: rgba($--color-info, 0.20) !default;
$--tag-info-color: $--color-info !default;
$--tag-primary-fill: rgba($--color-primary, 0.10) !default;
$--tag-primary-border: rgba($--color-primary, 0.20) !default;
$--tag-primary-color: $--color-primary !default;
$--tag-success-fill: rgba($--color-success, 0.10) !default;
$--tag-success-border: rgba($--color-success, 0.20) !default;
$--tag-success-color: $--color-success !default;
$--tag-warning-fill: rgba($--color-warning, 0.10) !default;
$--tag-warning-border: rgba($--color-warning, 0.20) !default;
$--tag-warning-color: $--color-warning !default;
$--tag-danger-fill: rgba($--color-danger, 0.10) !default;
$--tag-danger-border: rgba($--color-danger, 0.20) !default;
$--tag-danger-color: $--color-danger !default;
/* Tree
-------------------------- */
$--tree-node-hover-color: $--background-color-base !default;
$--tree-text-color: $--color-text-regular !default;
$--tree-expand-icon-color: $--color-text-placeholder !default;
/* Dropdown
-------------------------- */
$--dropdown-menu-box-shadow: $--box-shadow-light !default;
$--dropdown-menuItem-hover-fill: $--color-primary-light-9 !default;
$--dropdown-menuItem-hover-color: $--link-color !default;
/* Badge
-------------------------- */
$--badge-fill: $--color-danger !default;
$--badge-radius: 10px !default;
$--badge-font-size: 12px !default;
$--badge-padding: 6px !default;
$--badge-size: 18px !default;
/* Card
--------------------------*/
$--card-border-color: $--border-color-lighter !default;
$--card-border-radius: 4px !default;
$--card-padding: 20px !default;
/* Slider
--------------------------*/
$--slider-main-background-color: $--color-primary !default;
$--slider-runway-background-color: $--border-color-light !default;
$--slider-button-hover-color: mix($--color-primary, black, 97%) !default;
$--slider-stop-background-color: $--color-white !default;
$--slider-disable-color: $--color-text-placeholder !default;
$--slider-margin: 16px 0 !default;
$--slider-border-radius: 3px !default;
$--slider-height: 6px !default;
$--slider-button-size: 16px !default;
$--slider-button-wrapper-size: 36px !default;
$--slider-button-wrapper-offset: -15px !default;
/* Steps
--------------------------*/
$--steps-border-color: $--disabled-border-base !default;
$--steps-border-radius: 4px !default;
$--steps-padding: 20px !default;
/* Menu
--------------------------*/
$--menu-item-color: $--color-text-primary !default;
$--menu-item-fill: $--color-white !default;
$--menu-item-hover-fill: $--color-primary-light-9 !default;
/* Rate
--------------------------*/
$--rate-height: 20px !default;
$--rate-font-size: $--font-size-base !default;
$--rate-icon-size: 18px !default;
$--rate-icon-margin: 6px !default;
$--rate-icon-color: $--color-text-placeholder !default;
/* DatePicker
--------------------------*/
$--datepicker-color: $--color-text-regular !default;
$--datepicker-off-color: $--color-text-placeholder !default;
$--datepicker-header-color: $--color-text-regular !default;
$--datepicker-icon-color: $--color-text-primary !default;
$--datepicker-border-color: $--disabled-border-base !default;
$--datepicker-inner-border-color: #e4e4e4 !default;
$--datepicker-inrange-color: $--border-color-extra-light !default;
$--datepicker-inrange-hover-color: $--border-color-extra-light !default;
$--datepicker-active-color: $--color-primary !default;
$--datepicker-text-hover-color: $--color-primary !default;
$--datepicker-cell-hover-color: #fff !default;
/* Loading
--------------------------*/
$--loading-spinner-size: 42px !default;
$--loading-fullscreen-spinner-size: 50px !default;
/* Scrollbar
--------------------------*/
$--scrollbar-background-color: rgba($--color-text-secondary, .3) !default;
$--scrollbar-hover-background-color: rgba($--color-text-secondary, .5) !default;
/* Carousel
--------------------------*/
$--carousel-arrow-font-size: 12px !default;
$--carousel-arrow-size: 36px !default;
$--carousel-arrow-background: rgba(31, 45, 61, 0.11) !default;
$--carousel-arrow-hover-background: rgba(31, 45, 61, 0.23) !default;
$--carousel-indicator-width: 30px !default;
$--carousel-indicator-height: 2px !default;
$--carousel-indicator-padding-horizontal: 4px !default;
$--carousel-indicator-padding-vertical: 12px !default;
$--carousel-indicator-out-color: $--border-color-hover !default;
/* Collapse
--------------------------*/
$--collapse-border-color: $--border-color-lighter !default;
$--collapse-header-height: 48px !default;
$--collapse-header-padding: 20px !default;
$--collapse-header-fill: $--color-white !default;
$--collapse-header-color: $--color-text-primary !default;
$--collapse-header-size: 13px !default;
$--collapse-content-fill: $--color-white !default;
$--collapse-content-size: 13px !default;
$--collapse-content-color: $--color-text-primary !default;
/* Transfer
--------------------------*/
$--transfer-border-color: $--border-color-lighter !default;
$--transfer-border-radius: $--border-radius-base !default;
$--transfer-panel-width: 200px !default;
$--transfer-panel-header-height: 40px !default;
$--transfer-panel-header-background: $--background-color-base !default;
$--transfer-panel-footer-height: 40px !default;
$--transfer-panel-body-height: 246px !default;
$--transfer-item-height: 30px !default;
$--transfer-item-hover-background: $--color-text-secondary !default;
$--transfer-filter-height: 32px !default;
/* Header
--------------------------*/
$--header-padding: 0 20px !default;
/* Footer
--------------------------*/
$--footer-padding: 0 20px !default;
/* Main
--------------------------*/
$--main-padding: 20px !default;
/* Break-point
--------------------------*/
$--sm: 768px !default;
$--md: 992px !default;
$--lg: 1200px !default;
$--xl: 1920px !default;
$--breakpoints: (
'xs' : (max-width: $--sm),
'sm' : (min-width: $--sm),
'md' : (min-width: $--md),
'lg' : (min-width: $--lg),
'xl' : (min-width: $--xl)
);
$--breakpoints-spec: (
'xs-only' : (max-width: $--sm - 1),
'sm-and-up' : (min-width: $--sm),
'sm-only': "(min-width: #{$--sm}) and (max-width: #{$--md} - 1)",
'sm-and-down': (max-width: $--md - 1),
'md-and-up' : (min-width: $--md),
'md-only': "(min-width: #{$--md}) and (max-width: #{$--lg } - 1)",
'md-and-down': (max-width: $--lg - 1),
'lg-and-up' : (min-width: $--lg),
'lg-only': "(min-width: #{$--lg}) and (max-width: #{$--xl } - 1)",
'lg-and-down': (max-width: $--xl - 1),
'xl-only' : (min-width: $--xl),
);
var gulp = require('gulp');
var fs = require("fs");
var tap = require('gulp-tap');
var minimist = require('minimist');
var merge = require('merge-stream');
var rename = require('gulp-rename');
var del = require("del");
var concat = require('gulp-concat');
var gulpif=require("gulp-if");
var knownOptions = {
string: 'name',
string: 'bizfile',
default: { name: process.env.NODE_ENV || 'Test' }
};
var options = minimist(process.argv.slice(2), knownOptions);
var name = options.name;
var bizfile = options.bizfile;
const BUILD_PATH = "./extra/build";
const DEST_PATH = "./extra/dest";
const CTL_PATH = "./app/base/controller/impl";
const SERVICE_PATH = "./app/base/service/impl";
const DAO_PATH = "./app/base/db/impl";
const PAGE_PATH = "./app/front/vues/pages";
const VUECOM_PATH = "./app/front/vues";
const CSS_PATH = "./app/front/entry/public/css";
const IMG_PATH = "./extra/imgs";
const DEST_IMGPATH="./app/front/entry/public/imgs";
const METABIZ_PATH = "./app/base/db/metadata/bizs/wx76a324c5d201d1a4";
gulp.task('makefile', function (done) {
// 将你的默认的任务代码放在这
del("./extra/dest/*");
var tmpName = name.toLowerCase();
var fstream = gulp.src("./extra/build/*.js")
.pipe(tap(function (file) {
var sfile = file.contents.toString('utf-8');
var rpstr = sfile.replace(/\$\{Name\}/g, name);
file.contents = new Buffer(rpstr, "utf-8");
})).pipe(
rename(function (path) {
path.basename = path.basename.replace("templ", tmpName);
})
).pipe(gulp.dest("./extra/dest"));
return fstream;
// var pageStream=gulp.src("./extra/build/page/**/*").pipe(
// gulp.dest("./extra/dest")
// );
// return merge(fstream, pageStream);
});
gulp.task('page', function (cbk) {
var tmpName = name.toLowerCase();
return gulp.src("./extra/build/page/templPage/*.*")
.pipe(
rename(function (path) {
path.basename = path.basename.replace("templ", tmpName);
})
).pipe(tap(function (file) {
var sfile = file.contents.toString();
var rpstr = sfile.replace(/\$\{COMNAME\}/g, "gsb_" + tmpName);
file.contents = new Buffer(rpstr, "utf-8");
})).pipe(
gulp.dest("./extra/dest/" + tmpName + "/")
);
});
gulp.task("cpctl", function (cbk) {
var tmpName=name.toLowerCase();
return gulp.src("./extra/dest/" + tmpName + "Ctl.js").pipe(
rename(function (path) {
path.basename=path.basename.substring(0,1).toLowerCase() + path.basename.substring(1);
})
).pipe(gulp.dest(CTL_PATH));
});
gulp.task("cpsve", function (cbk) {
var tmpName=name.toLowerCase();
return gulp.src("./extra/dest/" + tmpName + "Sve.js").pipe(
rename(function (path) {
path.basename = path.basename.substring(0, 1).toLowerCase() + path.basename.substring(1);
})
).pipe(gulp.dest(SERVICE_PATH));
});
gulp.task("cpdao", function (cbk) {
var tmpName=name.toLowerCase();
return gulp.src("./extra/dest/" + tmpName + "Dao.js").pipe(
rename(function (path) {
path.basename = path.basename.substring(0, 1).toLowerCase() + path.basename.substring(1);
})
).pipe(gulp.dest(DAO_PATH));
});
gulp.task("cppage", function (cbk) {
var tmpName=name.toLowerCase();
return gulp.src("./extra/dest/" + tmpName + "/*.*").pipe(gulp.dest(PAGE_PATH + "/" + tmpName + "/"));
});
gulp.task("cpbizfile", function (cbk) {
return gulp.src("./extra/build/page/meta.js").pipe(
rename(function (path) {
if (bizfile) {
path.basename = bizfile;
} else {
path.basename = name;
}
})
).pipe(gulp.dest(METABIZ_PATH + "/"));
});
gulp.task("simple", ['page', 'cppage', 'cpbizfile'], function (done) {
done();
});
gulp.task('all', ['makefile', 'page', 'cpctl', 'cpsve', 'cpdao', 'cppage', 'cpbizfile'], function (done) {
done();
});
var minifycss = require('gulp-minify-css')
gulp.task("pagecss",function(cbk){
function defaultcondition(file){
if(file.path.indexOf("spring")>=0){
return false;
}else if(file.path.indexOf("summer")>=0){
return false;
}else if(file.path.indexOf("autumn")>=0){
return false;
}else if(file.path.indexOf("winter")>=0){
return false;
}else{
return true;
}
}
return gulp.src(VUECOM_PATH+"/**/*/*.css").pipe(
gulpif(defaultcondition,concat("pagecom.css"))
).pipe(minifycss()).pipe(gulp.dest(CSS_PATH+"/"));
});
gulp.task("springcss",function(cbk){
function springcondition(file){
if(file.path.indexOf("spring")>=0){
return true;
}
return false;
}
return gulp.src(VUECOM_PATH+"/**/*/*.css").pipe(
gulpif(springcondition,concat("spring.css"))
).pipe(minifycss()).pipe(gulp.dest(CSS_PATH+"/"));
});
gulp.task("summercss",function(cbk){
function summercondition(file){
if(file.path.indexOf("summer")>=0){
return true;
}
return false;
}
return gulp.src(VUECOM_PATH+"/**/*/*.css").pipe(
gulpif(summercondition,concat("summer.css"))
).pipe(minifycss()).pipe(gulp.dest(CSS_PATH+"/"));
});
gulp.task("autumncss",function(cbk){
function autumncondition(file){
if(file.path.indexOf("autumn")>=0){
return true;
}
return false;
}
return gulp.src(VUECOM_PATH+"/**/*/*.css").pipe(
gulpif(autumncondition,concat("autumn.css"))
).pipe(minifycss()).pipe(gulp.dest(CSS_PATH+"/"));
});
gulp.task("wintercss",function(cbk){
function wintercondition(file){
if(file.path.indexOf("winter")>=0){
return true;
}
return false;
}
return gulp.src(VUECOM_PATH+"/**/*/*.css").pipe(
gulpif(wintercondition,concat("winter.css"))
).pipe(minifycss()).pipe(gulp.dest(CSS_PATH+"/"));
});
gulp.task("1",function(cbk){
function mobilecondition(file){
if(file.path.indexOf("mobile")>=0){
return true;
}
return false;
}
return gulp.src(VUECOM_PATH+"/**/*/*.css").pipe(
gulpif(mobilecondition,concat("mobile.css"))
).pipe(minifycss()).pipe(gulp.dest(CSS_PATH+"/"));
});
gulp.task('allcss', ['pagecss', 'springcss', 'summercss', 'autumncss', 'wintercss'], function (done) {
done();
});
gulp.task('watch', function () {
gulp.watch(VUECOM_PATH+"/**/*/*.css",gulp.series(['allcss']));
});
gulp.task("basehandle",function(cbk){
return gulp.src(VUECOM_PATH+"/base/**/*.vue").
pipe(tap(function (file) {
file.contents=new Buffer(require(file.path).replace(/\n/g,""), "utf-8");
})).pipe(gulp.dest(VUECOM_PATH+"/allie/base/"));
});
var gulp = require('gulp'),
imagemin = require('gulp-imagemin');
pngquant = require('imagemin-pngquant'),
gulp.task('testimg', function () {
del("./extra/testimgs/*");
return gulp.src(IMG_PATH+'/**/*.{png,jpg,gif,ico}')
.pipe(imagemin({
optimizationLevel: 1, //类型:Number 默认:3 取值范围:0-7(优化等级)
progressive: true, //类型:Boolean 默认:false 无损压缩jpg图片
interlaced: true, //类型:Boolean 默认:false 隔行扫描gif进行渲染
multipass: true,//类型:Boolean 默认:false 多次优化svg直到完全优化
use:[pngquant({
quality: [0.3]
})]
}))
//.pipe(gulp.dest(DEST_IMGPATH));
.pipe(gulp.dest("./extra/testimgs/"));
});
\ No newline at end of file
var http = require('http');
var express = require('express');
var app = express();
var setttings=require("./app/config/settings");
var environment = require('./app/config/environment');
// var SocketServer=require("./app/config/socket.server");
//const cluster = require('cluster');
//const numCPUs = require('os').cpus().length;
// all environments
environment(app);//初始化环境
// 错误处理中间件应当在路由加载之后才能加载
// if (cluster.isMaster) {
// console.log(`Master ${process.pid} is running`);
//
// // Fork workers.
// for (let i = 0; i < numCPUs; i++) {
// cluster.fork();
// }
// cluster.on('exit', (worker, code, signal) => {
// console.log(`worker ${worker.process.pid} died`);
// });
// }else{
// var server = http.createServer(app);
// var socketServer = new SocketServer(server);
// server.listen(setttings.port, function(){
// console.log('Express server listening on port ' + app.get('port'));
// });
// }
var server = http.createServer(app);
//var socketServer = new SocketServer(server);
server.listen(setttings.port, function(){
console.log('Express server listening on port ' + app.get('port'));
});
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"name": "gsb-marketplat",
"version": "1.0.0",
"description": "h5framework",
"main": "main.js",
"scripts": {
"dev": "nodemon main.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "jy",
"license": "ISC",
"dependencies": {
"@alicloud/pop-core": "^1.7.7",
"MD5": "^1.3.0",
"after": "^0.8.2",
"ali-oss": "^4.12.2",
"aliyun-api-gateway": "^1.1.6",
"babel-polyfill": "^6.26.0",
"base64id": "^1.0.0",
"bluebird": "^3.5.1",
"body-parser": "^1.18.2",
"co": "^4.6.0",
"connect-history-api-fallback": "^1.6.0",
"connect-redis": "^3.3.3",
"continuation-local-storage": "^3.2.1",
"cookie-parser": "^1.4.3",
"crypto": "^1.0.1",
"crypto-js": "^3.1.9-1",
"easyimage": "^3.1.0",
"ejs": "^2.5.8",
"engine.io-parser": "^2.1.2",
"errorhandler": "^1.5.0",
"exceljs": "^1.6.3",
"exif-js": "^2.3.0",
"express": "^4.16.2",
"express-session": "^1.15.6",
"glob": "^7.1.6",
"gm": "^1.23.1",
"jsonwebtoken": "^8.5.1",
"log4js": "^2.10.0",
"marked": "^1.1.1",
"method-override": "^2.3.10",
"moment": "^2.26.0",
"morgan": "^1.9.0",
"multer": "^1.3.0",
"mysql2": "^1.5.3",
"node-cron": "^2.0.1",
"node-uuid": "^1.4.8",
"pdfcrowd": "^4.2.0",
"pinyin": "^2.8.3",
"qr-image": "^3.2.0",
"sequelize": "^4.37.8",
"sequelize-cli": "^4.1.1",
"serve-favicon": "^2.4.5",
"sha1": "^1.1.1",
"sha256": "^0.2.0",
"socket.io": "^2.1.1",
"uuid": "^3.2.1",
"xml2js": "^0.4.19"
},
"devDependencies": {
"del": "^5.1.0",
"gulp-concat": "^2.6.1",
"gulp-if": "^3.0.0",
"gulp-imagemin": "^6.2.0",
"gulp-minify-css": "^1.2.4",
"gulp-tap": "^2.0.0",
"imagemin-pngquant": "^8.0.0",
"merge-stream": "^2.0.0"
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment