Commit 0228f2ad by 蒋勇

d

parent 999334ed
node_modules/
app/config/localsettings.js
*.sh
\ 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");
class APIBase{
constructor() {
this.cacheManager = system.getObject("db.common.cacheManager");
this.logClient=system.getObject("util.logClient");
}
getUUID() {
var uuid = uuidv4();
var u = uuid.replace(/\-/g, "");
return u;
}
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"],//专用于自由用户注册,自由用户用于一定属于某个存在的公司
codename:req.headers["xcodename"],
codetitle:req.headers["xcodetitle"]?decodeURI(req.headers["xcodetitle"]):'',
}
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 && req.xctx.companykey){
let comptmp=await this.cacheManager["CompanyCache"].cache(req.xctx.companykey);
req.xctx.companyid=comptmp.id;
}
if(req.xctx.companyid){//在请求传递数据对象注入公司id
pobj.company_id=req.xctx.companyid;
}
}
async doexec(gname, methodname, pobj, query, req) {
try {
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;
var APIBase = require("../../api.base");
var system = require("../../../system");
var settings = require("../../../../config/settings");
class AccessAuthAPI extends APIBase {
constructor() {
super();
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;
}
async getBizUserForBizChance(p,q,req){
let s= await this.userSve.getBizUserForBizChance(p.clientMobile,p.spName,p.productCatName,p.regionName)
return system.getResult(s)
}
async getBizUserForDelivery(p,q,req){
let s= await this.userSve.getBizUserForDelivery(p.clientMobile,p.spName,p.productCatName,p.skucode,p.regionName)
return system.getResult(s)
}
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");
class ChannelAPI extends APIBase {
constructor() {
super();
this.channelS=system.getObject("service.common.channelSve")
}
async getChannels(hostname){
let cacheManager = system.getObject("db.common.cacheManager");
let channels=await cacheManager["ChannelCache"].cache(hostname)
return channels;
}
async channelHandle(channelobj,path,data){
let rtn=await this.channelS.channelHandle(channelobj,path,data)
return 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 = ChannelAPI;
var APIBase = require("../../api.base");
var system = require("../../../system");
var settings = require("../../../../config/settings");
class ProductAPI extends APIBase {
constructor() {
super();
this.productpriceS = system.getObject("service.product.productpriceSve")
}
/**
*
* @param {*} p productname-产品名称/sp名称
* @param {*} q
* @param {*} req
* 返回值[
* label:'',
* code:''
* ]
*/
async findRegionsByProductName (p, q, req) {
let pname = p.productname;
let sp = p.sp;
let rs = await this.productpriceS.findRegionsByProductName(pname, sp)
return system.getResult(rs);
}
async findCostBySkuCode (p, q, req) {
let skucode = p.skucode;
let rs = await this.productpriceS.findCostBySkuCode(skucode)
return system.getResult({ cost: rs });
}
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 = ProductAPI;
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");
}
getUUID () {
var uuid = uuidv4();
var u = uuid.replace(/\-/g, "");
return u;
}
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 findAndCountAll (pobj, qobj, req) {
//设置查询条件
console.log(pobj)
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"],
codename: req.headers["xcodename"],
codetitle: req.headers["xcodetitle"] ? decodeURI(req.headers["xcodetitle"]) : '',
opath: req.headers['xopath'],
ptags: req.headers['xptags'],
}
//添加组织结构路径,如果是上级,取上级
if (req.xctx.ptags && req.xctx.ptags != "") {
pobj.opath = req.xctx.ptags
} else {
if (!pobj.opath || pobj.opath == "") {
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;
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);
}
var rtn = await this[methodname](pobj, query, req);
//this.logClient.log(pobj, req, rtn, null)
return rtn;
} catch (e) {
//this.logClient.log(pobj, req, null, e.stack)
console.log(e.stack, "出现异常,请联系管理员.......");
return system.getResultFail(-200, e.message ? e.message : "出现异常,请联系管理员");
}
}
}
module.exports = CtlBase;
/*
地址:http://192.168.1.128:401/api/queueAction/producer/springBoard
请求方式:post
参数:
{
"actionType": "produceLogsData",// Y 功能名称
"actionBody": {
"opTitle": "",// N 操作的业务标题
"identifyCode": "logs001",// Y 操作的业务标识
"messageBody": {//日志的描述信息
"opUrl": "http://192.168.1.189:4012/api/test/testApi/springBoard",// N 操作的业务Url
"message": ""// Y 日志消息描述
}
}
}
logs-sytxpublic-msgq-service--日志服务
*/
\ No newline at end of file
var system = require("../../../system");
const http = require("http");
const querystring = require('querystring');
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctl.base");
class logCtl extends CtlBase {
constructor() {
super("common", CtlBase.getServiceName(logCtl));
this.logClient = system.getObject("util.logClient");
}
async findAndCountAll(pobj, qobj, req) {
try {
let rtn = await this.logClient.logList(pobj);
return system.getResult({
results: {
count: rtn.totalCount,
rows: rtn && rtn.list && rtn.list.map(item => {
let { opTitle, identifyCode, messageBody, resultInfo, errorInfo, requestId, created_at } = item;
messageBody = messageBody ? JSON.parse(messageBody) : {}
resultInfo = resultInfo ? JSON.parse(resultInfo) : {}
let status;
if (resultInfo && (resultInfo.status === 0 || !resultInfo.status || resultInfo.status === 1)) {
status = "SUCCESS"
} else {
status = "FAIL"
}
if (errorInfo && errorInfo !== "null") {
status = "FAIL"
}
return {
opTitle: opTitle,
url: `${messageBody.gname}/${messageBody.qname}/${messageBody.method}`,
user: messageBody.param && messageBody.param.username || '',
ip: messageBody.param && messageBody.param.clientIp,
created_at,
requestId,
status,
info: {
opTitle, identifyCode, messageBody, resultInfo, errorInfo, requestId, created_at
}
}
}) || []
}
});
} catch (err) {
return system.getResult(null, err.message);
}
}
}
module.exports = logCtl;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class MsgHistoryCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(MsgHistoryCtl));
}
}
module.exports=MsgHistoryCtl;
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");
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 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) {
console.log(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
console.log(this.model);
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, t) {
if (t) {
var en = await this.model.destroy({ where: { id: { [this.db.Op.in]: ids } }, transaction: t });
return en;
} else {
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 (qobj) {
//return {"key":"include","value":{model:this.db.models.app}};
if (!qobj.orderInfo || qobj.orderInfo.length == 0) {
return [["created_at", "DESC"]];
} else {
return qobj.orderInfo;
}
}
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(qobj);
//构造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] != "") {
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("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("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm");
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;
//提高效率去掉关联和排序,数据记录数量,为聚合
let tmpwhere = {
attributes: qcwhere.attributes,
raw: true,
where: qcwhere.where
}
var aggResult = await this.model.findOne(tmpwhere);
return aggResult;
} else {
return {};
}
}
convertAggResult (aggresult) {
return aggresult
}
async findAndCountAll (qobj, t) {
var qc = this.buildQuery(qobj);
let findList = {}
let count = await this.findCount({ where: qc.where })
var rows = await this.model.findAll(qc);
findList["count"] = count
findList["rows"] = rows
var aggresult = await this.findAggs(qobj, qc);
let convertAggResult = this.convertAggResult(aggresult);
var rtn = {};
rtn.results = findList;
rtn.aggresult = convertAggResult;
return rtn;
}
preUpdate (obj) {
return obj;
}
async update (obj, tm) {
var obj2 = this.preUpdate(obj);
if (tm != null && tm != 'undefined') {
await this.model.update(obj2, { where: { id: obj2.id }, transaction: tm });
let n = await this.model.findOne({ where: { id: obj2.id }, transaction: tm });
return n
} else {
await this.model.update(obj2, { where: { id: obj2.id } });
let n = await this.model.findById(obj2.id)
return n
}
}
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 findOneWithTm (obj, t) {
return this.model.findOne({ "where": obj, transaction: t });
}
async findById (oid) {
return this.model.findById(oid);
}
async findAll (obj, include = [], other = {}) {
return this.model.findAll({ "where": obj, include, row: true, ...other });
}
}
module.exports = Dao;
const system=require("../../../system");
const Dao=require("../../dao.base");
class MsgHistoryDao extends Dao{
constructor(){
super(Dao.getModelName(MsgHistoryDao));
}
extraWhere(obj,w){
if(obj.ukstr && obj.ukstr!=""){
// w={[this.db.Op.or]:[
// {[this.db.Op.and]:[{sender:obj.ukstr},{target:obj.extra}]},
// {[this.db.Op.and]:[{sender:obj.extra},{target:obj.ukstr}]},
// ]
// };
w[this.db.Op.or]=[
{[this.db.Op.and]:[{sender:obj.ukstr},{target:obj.extra}]},
{[this.db.Op.and]:[{sender:obj.extra},{target:obj.ukstr}]},
];
}
return w;
}
orderBy(){
//return {"key":"include","value":{model:this.db.models.app}};
return [["id","DESC"]];
}
}
module.exports=MsgHistoryDao;
const system=require("../../../system");
const Dao=require("../../dao.base");
class MsgNoticeDao extends Dao{
constructor(){
super(Dao.getModelName(MsgNoticeDao));
}
async saveNotice(msg, t) {
var noticeFrom = await super.findOne({fromId : msg.senderId, toId : msg.targetId});
if(noticeFrom) {
var set = {lastMsgId:msg.id};
if(msg.businessLicense_id) {
set.businessLicense_id = msg.businessLicense_id;
}
await super.updateByWhere(set, {where:{id:noticeFrom.id}}, t);
} else {
noticeFrom = {
fromuser: msg.sender,
fromId:msg.senderId,
touser: msg.target,
toId:msg.targetId,
isAccepted:true,
lastMsgId:msg.id,
businessLicense_id : msg.businessLicense_id || 0
};
await super.create(noticeFrom, t);
}
var noticeTo = await super.findOne({fromId : msg.targetId, toId : msg.senderId});
if(noticeTo) {
var set = {lastMsgId:msg.id};
if(msg.businessLicense_id) {
set.businessLicense_id = msg.businessLicense_id;
}
await super.updateByWhere(set, {where:{id:noticeTo.id}}, t);
} else {
noticeTo = {
fromuser: msg.target,
fromId:msg.targetId,
touser: msg.sender,
toId:msg.senderId,
isAccepted:true,
lastMsgId:msg.id,
businessLicense_id : msg.businessLicense_id || 0
};
await super.create(noticeTo, t);
}
}
orderBy(){
//return {"key":"include","value":{model:this.db.models.app}};
return [["id","DESC"]];
}
}
module.exports=MsgNoticeDao;
const system = require("../../../system");
const Dao = require("../../dao.base");
class MsguserDao extends Dao {
constructor() {
super(Dao.getModelName(MsguserDao));
}
}
module.exports = MsguserDao;
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 () => {
// const apps = await system.getObject("service.common.appSve");
// const usS = await system.getObject("service.auth.userSve");
// let appnew = await apps.create({
// "name": "center-app",
// "domainName": "t9.com",
// "backend": "192.168.1.148",
// "isSystem": true,
// "title": "center-app"
// });
// let Role = db.models["role"];
// await Role.create({ code: "ta", name: "租户", isSystem: true, app_id: appnew.id, company_id: settings.pmcompanyid })
// await Role.create({ code: "pr", name: "个人", isSystem: true, app_id: appnew.id, company_id: settings.pmcompanyid })
// let usuper = await usS.pmregister({ userName: "sm", password: "951753", isSuper: true, isAdmin: true, isSystem: true, isEnabled: true, nickName: "superman", app_id: appnew.id, company_id: settings.id })
// appnew.creator_id = usuper.user.id
// await appnew.save()
//创建role
// if(settings.env=="prod"){
// reclient.flushall(()=>{
// console.log("clear caches ok.....");
// });
// }
// reclient.flushall(()=>{
// console.log("clear caches ok.....");
// });
});
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": "文档" }
}
}
}
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("msghistory", {
msgType: {
type: DataTypes.ENUM,
allowNull: false,
values: Object.keys(appconfig.pdict.msgType),
},
sender: DataTypes.STRING,
senderId: DataTypes.INTEGER,
target: DataTypes.STRING,
targetId: DataTypes.INTEGER,//租户ID
content: {
type: DataTypes.TEXT('long'),
allowNull: false,
},//需要在后台补充
isRead: {//是否已经读过
type: DataTypes.BOOLEAN,
defaultValue: false,
}
}, {
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'msghistory',
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 = (db, DataTypes) => {
return db.define("msgnotice", {
fromuser: DataTypes.STRING,//需要在后台补充
fromId:DataTypes.INTEGER,
touser: DataTypes.STRING,//需要在后台补充
toId:DataTypes.INTEGER,
isAccepted:DataTypes.BOOLEAN,
lastMsgId:DataTypes.INTEGER,
},{
paranoid: true,//假的删除
underscored: true,
version: true,
freezeTableName: true,
//freezeTableName: true,
// define the table's name
tableName: 'msgnotice',
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 moment = require("moment");
class MsgService extends ServiceBase {
constructor() {
super("msg", ServiceBase.getDaoName(MsgService));
this.msguserDao = system.getObject("db.msg.msguserDao");
}
async create(pobj, qobj, req) {
let {
msgType, app_id, app_key, sender, sender_id, title,
content, jump_address, other, target, company_id
} = pobj;
let msg = {
msgType,
app_id,
app_key,
sender: sender,
sender_id: sender_id,
title,
content,
jump_address,
other,
company_id
}
return this.db.transaction(async (t) => {
const msgData = await this.dao.create(msg, t);
if (msgType !== system.Msg.SYS && Object.prototype.toString.call(target) === '[object Object]') {
await this.msguserDao.create({
user_id: target.id,
user: target.name,
msg_id: msgData.id
}, t);
}
if (msgType !== system.Msg.SYS && Object.prototype.toString.call(target) === "[object Array]") {
let msgusers = [];
for (let val of target) {
msgusers.push({
user_id: val.id,
user: val.name,
msg_id: msgData.id
})
}
await this.msguserDao.bulkCreate(msgusers, t);
}
return 'SUCCESS'
})
}
async findRemindMessage(pobj, qobj, req) {
let { userid } = pobj;
const msgData = await this.msguserDao.findAll({
user_id: userid,
is_remind: false
}, [
{
model: this.db.models.msg,
where: {
is_undo: false
},
}
]);
const ids = msgData.map(item => item.id)
if (ids.length > 0) {
this.msguserDao.updateByWhere({
is_remind: true
}, {
id: {
$in: ids
}
});
}
return msgData;
}
async findUnreadCount(pobj, qobj, req) {
let { userid, is_read } = pobj;
const msgCount = await this.msguserDao.findCount({
where: {
user_id: userid,
is_read
}, include: [
{
model: this.db.models.msg,
where: {
is_undo: false
},
attributes: ["id"]
}
]
});
return { count: msgCount };
}
async updateStatus(pobj, qobj, req) {
let { id, userid, all } = pobj;
let where = {
is_read: false,
user_id: userid
};
if (!all) {
where.id = id
}
await this.msguserDao.updateByWhere({
is_read: true
}, where);
return "SUCESS"
}
async findSystemMsgCount(pobj, qobj, req) {
let { type, company_id } = pobj;
let where = {
msgType: system.Msg.SYS,
is_undo: false,
company_id: {
$in: [1, company_id]
}
}
if (type === "recently") {
// 查询 三天内的
where.created_at = {
$between: [
moment().subtract('days', 3).endOf('day').format('YYYY-MM-DD HH:mm:ss'),
moment().endOf('day').format('YYYY-MM-DD HH:mm:ss')
]
}
}
const msgCount = await this.dao.findCount({
where
});
return { count: msgCount };
}
async groupCount(pobj, qobj, req) {
let { userid } = pobj;
let [read, unRead, system] = await Promise.all(
[
this.findUnreadCount({ userid, is_read: true }),
this.findUnreadCount({ userid, is_read: false }),
this.findSystemMsgCount({ type: "all" })
]
);
return {
read: read.count, unRead: unRead.count, system: system.count
}
}
async list(pobj, qobj, req) {
let { userid, msgType, pageSize = 10, pageNo = 1, company_id } = pobj;
let msgData = [];
let other = {
limit: pageSize,
offset: (pageNo - 1) * pageSize,
order: [["created_at", "DESC"]]
};
if (["readed", "unread"].includes(msgType)) {
msgData = await this.msguserDao.findAll({
user_id: userid,
is_read: msgType === "readed"
}, [
{
model: this.db.models.msg,
where: {
is_undo: false
}
}
], other);
}
if (msgType === "sys") {
msgData = await this.dao.findAll({
msgType: system.Msg.SYS,
is_undo: false,
company_id: {
$in: [1, company_id]
}
}, [], other);
msgData = msgData.map(item => {
return {
msg: item
}
})
}
return msgData;
}
}
module.exports = MsgService;
const system=require("../../../system");
const ServiceBase=require("../../sve.base");
class MsgHistoryService extends ServiceBase{
constructor(){
super(ServiceBase.getDaoName(MsgHistoryService));
this.msgnoticeDao = system.getObject("db.msg.msgnoticeDao");
this.userDao = system.getObject("db.auth.userDao");
this.redisClient = system.getObject("util.redisClient");
}
async saveMsg(msg) {
var self = this;
console.log("save msg ", msg);
// 事务
await this.db.transaction(async function (t){
// 1.保存聊天信息
msg = await self.dao.create(msg, t);
// 2.保存好友信息
await self.msgnoticeDao.saveNotice(msg, t);
});
return msg;
}
async pushBusinessLicenseMsg(senderId, targetId, businessLicense_id) {
if(!businessLicense_id) {
return 0;
}
var notice = await this.msgnoticeDao.findOne({fromId : senderId, toId : targetId});
if(notice && notice.businessLicense_id == businessLicense_id) {
return 0;
}
var senderUser = await this.userDao.findById(senderId);
var targetUser = await this.userDao.findById(targetId);
var senderChannel = senderUser.app_id + "¥" + senderUser.id;
var targetChannel = targetUser.app_id + "¥" + targetUser.id;
var sender = senderUser.app_id + "¥" + senderUser.id + "¥" + senderUser.headUrl;
var target = targetUser.app_id + "¥" + targetUser.id + "¥" + targetUser.headUrl;
var msg = {
msgType: "mryzLicense",
sender:sender,
senderId:senderId,
target:target,
targetId:targetId,
content:businessLicense_id,
isRead:false,
businessLicense_id:businessLicense_id
}
var obj = await this.saveMsg(msg);
var bl = await this.businesslicenseDao.findById(businessLicense_id);
msg.businessLicense = bl;
msg.id = obj.id;
msg.created_at = obj.created_at;
this.redisClient.publish(senderChannel, JSON.stringify(msg));
this.redisClient.publish(targetChannel, JSON.stringify(msg));
return 1;
}
async getChatList(senderId, targetId, maxId, pageSize) {
let sql = "SELECT * FROM `msghistory` WHERE id < :maxId AND ((senderId = :senderId AND targetId = :targetId) OR (targetId = :senderId AND senderId = :targetId)) ORDER BY id DESC LIMIT :pageSize "
let params = {senderId:senderId, targetId: targetId, maxId: maxId, pageSize: pageSize};
var list = await this.dao.customQuery(sql, params);
if(!list || list.length == 0) {
return [];
}
var licenseIds = [];
var msgIds = [];
list.forEach(item => {
if(item.msgType == 'mryzLicense') {
licenseIds.push(Number(item.businessLicense_id));
}
msgIds.push(item.id);
});
if(licenseIds.length > 0) {
let licenseSql = "SELECT * FROM yz_business_license WHERE id IN (" + licenseIds.join(",") + ") ";
var licenseList = await this.businesslicenseDao.customQuery(licenseSql);
var licenseMap = [];
licenseList.forEach(item => {
licenseMap["id" + item.id] = item;
});
list.forEach(item => {
if(item.msgType == 'mryzLicense') {
item.businessLicense = licenseMap['id' + item.businessLicense_id];
}
});
}
var self = this;
setTimeout(function(){
self.setRead(senderId, targetId, list);
}, 1000);
return list;
}
async setRead(senderId, targetId, list) {
if(!list || list.length == 0) {
return;
}
var target = await this.userDao.findById(targetId);
if(!target) {
return;
}
var pushIds = [];
for(var item of list) {
if(item.isRead || senderId != item.targetId) {
continue;
}
pushIds.push(item.id);
}
if(pushIds.length == 0) {
return;
}
this.dao.updateByWhere({isRead: true}, {where:{id:{[this.db.Op.in]:pushIds}}});
var channel = target.app_id + "¥" + target.id;
var rs = await this.redisClient.publish(channel, JSON.stringify({type:"readmsg", data : pushIds}));
console.log(rs, "------------------------------------------ publish result ");
}
async readMsg(userId, id) {
var msg = await this.dao.findById(id);
if(!msg || userId != msg.targetId) {
return 0;
}
msg.isRead = true;
await msg.save();
var user = await this.userDao.findById(msg.senderId);
if(!user) {
return 0;
}
var channel = user.app_id + "¥" + user.id;
return await this.redisClient.publish(channel, JSON.stringify({type:"readmsg", data : [msg.id]}));
}
}
module.exports=MsgHistoryService;
const system = require("../../../system");
const ServiceBase = require("../../sve.base");
class MsgNoticeService extends ServiceBase {
constructor() {
super(ServiceBase.getDaoName(MsgNoticeService));
this.userDao = system.getObject("db.auth.userDao");
this.msghistoryDao = system.getObject("db.msg.msghistoryDao");
}
getApp(appkey) {
return this.cacheManager["AppCache"].cacheApp(appkey);
}
async getUserList(userId) {
var list = await this.dao.model.findAll({
where: {
fromId: userId
},
order: [
["updated_at", "DESC"]
],
raw: true
});
if (!list || list.length == 0) {
return [];
}
var msgIds = [];
var businessLicenseIds = [];
var userIds = [];
for (var item of list) {
msgIds.push(item.lastMsgId);
businessLicenseIds.push(item.businessLicense_id);
userIds.push(item.toId);
}
var msgMap = [];
var businessLicenseMap = [];
var userMap = [];
var unreadMap = [];
// 最后一条聊天记录
if (msgIds.length > 0) {
var msgList = await this.msghistoryDao.customQuery("SELECT * FROM msghistory WHERE id IN (" + msgIds.join(",") + ") ");
msgList.forEach(item => {
msgMap["id" + item.id] = item;
});
}
// 最后一次聊天关联执照
if (businessLicenseIds.length > 0) {
var licenseList = await this.businesslicenseDao.customQuery("SELECT * FROM yz_business_license WHERE id IN (" + businessLicenseIds.join(",") + ") ");
var serviceTypeIds = [];
for (var item of licenseList) {
serviceTypeIds.push(item.serviceTypeOneId);
serviceTypeIds.push(item.serviceTypeTwoId);
}
if (serviceTypeIds.length > 0) {
var sql = "SELECT id, name FROM `p_service_type` WHERE id IN (" + serviceTypeIds.join(",") + ") ";
var typeList = await this.dao.customQuery(sql);
var typeMap = [];
if (typeList && typeList.length > 0) {
for (var t of typeList) {
typeMap["type_id_" + t.id] = t.name;
if (t.id == item.serviceTypeOneId) {
item.serviceTypeOneName = t.name;
} else if (t.id == item.serviceTypeTwoId) {
item.serviceTypeTwoName = t.name;
} else {}
}
}
}
for (var item of licenseList) {
item.serviceTypeOneName = typeMap["type_id_" + item.serviceTypeOneId];
item.serviceTypeTwoName = typeMap["type_id_" + item.serviceTypeTwoId];
}
licenseList.forEach(item => {
businessLicenseMap["id" + item.id] = item;
});
}
// 聊天好友用户信息
if (userIds.length > 0) {
var userList = await this.userDao.customQuery("SELECT * FROM p_user WHERE id IN (" + userIds.join(",") + ") ");
userList.forEach(item => {
userMap["id" + item.id] = item;
});
}
// 未读消息数量
var unreadList = await this.userDao.customQuery("SELECT senderId, COUNT(1) AS num FROM `msghistory` WHERE isRead = 0 AND targetId = " + userId + " GROUP BY senderId ");
unreadList.forEach(item => {
unreadMap["id" + item.senderId] = item.num;
});
var rs = [];
for (var i in list) {
var item = list[i];
item.lastMsg = msgMap["id" + item.lastMsgId];
item.businessLicense = businessLicenseMap["id" + item.businessLicense_id];
item.friend = userMap["id" + item.toId];
item.unreadCount = unreadMap["id" + item.toId] || 0;
rs.push(item);
}
return rs;
}
async countUnread(userId) {
debugger;
var unreadList = await this.userDao.customQuery("SELECT COUNT(1) AS num FROM `msghistory` WHERE isRead = 0 AND targetId = " + userId);
var count = 0;
if (unreadList && unreadList.length > 0) {
count = unreadList[0].num || 0;
}
return count;
}
}
module.exports = MsgNoticeService;
\ 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) {
return this.dao.findOne(obj);
}
async findById(oid) {
return this.dao.findById(oid);
}
/*
返回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 cjsonupate(opurl,opts){
try{
let rtn=await system.postJsonTypeReq(opurl,opts,"PATCH")
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;
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.cmdPostPattern3 = "curl -k -H 'Content-type: application/json' -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJvcnpaWmhXRXBKNVVFZzRZUU5uUmlyVEJXa1FQbnZ6UyIsImlhdCI6MTU5MjcwOTYzNn0.TWk_F6Tz3fRMqspoG24VSt5RiC4ldFembFYcLcAbowE' -H 'XAPPKEY: 647a68c9-da01-40d3-9763-1ffa0f64cf3f' -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;
}
FetchPostCmd3(subData, url) {
var data = JSON.stringify(subData);
var cmd = this.cmdPostPattern3.replace(/\{data\}/g,
data).replace(/\{url\}/g, url);
console.log(cmd);
return cmd;
}
async execPost3(subData, url) {
let cmd = this.FetchPostCmd3(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};
}
}
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() {
// log4js.configure(settings.basepath+"/app/config/log4js.json");
// this.logerApp=log4js.getLogger("app");
// this.logerHttp=log4js.getLogger("http");
}
getUUID() {
var uuid = uuidv4();
var u = uuid.replace(/\-/g, "");
return u;
}
async log(pobj, req, rtninfo, errinfo) {
rtninfo.requestId = this.getUUID()
req.params.param = pobj
if (!["findSystemMsgCount", "findUnreadCount"].includes(req.params && req.params.method || '')) {
//第三个字段应该存公司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")
})
}
}
async logList(pobj) {
let { search, pageInfo, company_id } = pobj;
let { userName, errorInfo, messageBody, resultInfo, created_at, opTitle, requestId } = search;
let query = {
indexName: `logs-sytxpublic-msgq-${settings.logindex}`,
pageSize: pageInfo.pageSize,
currentPage: pageInfo.pageNo
};
if (company_id && company_id != 1) {
query.identifyCode = `_${company_id}_`;
}
if (opTitle) {
query.opTitle = opTitle;
}
if (requestId) {
query.requestId = requestId;
}
if (userName) {
query.messageBody = userName;
}
if (errorInfo) {
query.errorInfo = errorInfo;
}
if (messageBody) {
query.messageBody = messageBody;
}
if (resultInfo) {
query.resultInfo = resultInfo;
}
if (created_at && created_at[0] && created_at[1]) {
query.startTime = new Date(created_at[0]).getTime();
query.entTime = new Date(created_at[1]).getTime();
}
console.log("请求--------日志");
console.log(settings.logUrl());
console.log(query);
// return {
// "totalCount": 1,
// "pageSize": 20,
// "currentPage": 0,
// "list": [
// {
// "opTitle": "center_manage_首页",
// "identifyCode": "10_",
// "messageBody": "{\"gname\":\"msg\",\"qname\":\"msgCtl\",\"method\":\"findUnreadCount\",\"param\":{\"clientIp\":\"9.223.9.138\",\"agent\":\"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36\",\"classname\":\"msg.msgCtl\",\"app_id\":1,\"company_id\":\"10\",\"userid\":\"15\",\"username\":\"j2\",\"bizpath\":\"/home\",\"is_read\":false},\"actionType\":\"\",\"pushUrl\":\"\"}",
// "resultInfo": "{\"status\":0}",
// "errorInfo": "null",
// "requestId": "19a258474e384a0db939270580f01407",
// "created_at": "2020-07-16T05:18:48.454Z"
// }, {
// "opTitle": "center_manage_消息中心",
// "identifyCode": "10_",
// "messageBody": "{\"gname\":\"msg\",\"qname\":\"msgCtl\",\"method\":\"findUnreadCount\",\"param\":{\"clientIp\":\"9.223.9.138\",\"agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36\",\"classname\":\"msg.msgCtl\",\"app_id\":1,\"company_id\":\"10\",\"userid\":\"15\",\"username\":\"j2\",\"bizpath\":\"/message/message_page\",\"is_read\":false},\"actionType\":\"\",\"pushUrl\":\"\"}",
// "resultInfo": "{\"status\":-1}",
// "errorInfo": "null",
// "requestId": "06d94fbcd05b44a1ae292a21f5931f41",
// "created_at": "2020-07-16T05:51:54.888Z"
// }]
// }
let rtn = await system.postJsonTypeReq(settings.logUrl(), {
"actionType": "queryLogsData",// Y 功能名称
"actionBody": query
});
if (rtn.statusCode === 200) {
rtn = rtn.data;
if (rtn && rtn.status === 1) {
return rtn.data;
} else {
throw new Error(rtn && rtn.message || '请联系管理员');
}
} else {
throw new Error(rtn)
}
}
}
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 (self.taskmanager) {
if (channel == "task") {
if (message == "newtask") {
(async (that) => {
var msg2 = await that.rpop("tasklist");
if (msg2) {
console.log("taskName+++++" + msg2);
var msgs2 = msg2.split("_");
var action = msgs2[0];
var taskName = msgs2[1];
var exp = msgs2[2];
await that.taskmanager.addTask(taskName, exp);
}
})(self)
} else {
(async (msg, that) => {
var msgs = msg.split("_");
var action = msgs[0];
if (action == "delete") {
var taskName = msgs[1];
await that.taskmanager.deleteTask(taskName);
}
})(message, self);
}
}
}
if (self.chatserver) {
if (channel != "task") {
var message = JSON.parse(message);
console.log(message, "------------------------------------------ publish message");
if (channel == "brc") {//如果是广播频道,则发送广播到客户端
self.chatserver.server.emit("brc", message);
} else if (self.chatserver.users[channel]) {
if (message.type) {
self.chatserver.users[channel].client.emit(message.type, message.data);
} else {
//持久化
self.chatserver.users[channel].client.emit("chatmsg", message);
}
}
}
}
});
}
async subscribe(channel, chatserver) {
if (!this.chatserver) {
this.chatserver = 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
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(methodOverride());
app.use(cookierParser());
app.use(bodyParser.json({ limit: '50mb' }));
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
routes(app);//初始化路由
app.use(history());
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");
const chnelapi = System.getObject("api.common.channels")
const userS = System.getObject("service.auth.userSve")
const roleS = System.getObject("service.auth.roleSve")
const companyS = System.getObject("service.common.companySve")
const settings = require("../settings.js")
let channelCache = {};
module.exports = function (app) {
app.post("/autologin", async function (req, res, next) {
try {
console.log(req.body)
let appkey = req.body.appkey.trim()
if (!appkey) {
let rd = System.getResult(null, "没有资质宝appkey,请联系资质宝服务提供方")
res.end(JSON.stringify(rd))
return
}
let companykey = req.body.companykey.trim()
if (!companykey) {
let rd = System.getResult(null, "没有公司宝的租户companykey,请联系资质宝服务提供方")
res.end(JSON.stringify(rd))
return
}
//let cooktoken = req.cookies["accessToken"]
let cooktoken = req.body.accesskey
console.log(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>........................................")
console.log(cooktoken)
let tv = cooktoken
let sourceUser = System.verify(tv, settings.publickey())
let openid = sourceUser.employee
let userName = openid
let nickName = sourceUser.name
let unid = sourceUser.unionid
let fixedcodes = ["资质宝交付员", '资质宝业务员']
let rolecodes = sourceUser.roles ? sourceUser.roles : []
let rcs = rolecodes.filter(rc => {
if (fixedcodes.indexOf(rc) >= 0) {
return true
} else {
return false
}
})
if (rcs.length == 0) {
let rd = System.getResult(null, "当前登录人没有资质宝访问权限")
res.end(JSON.stringify(rd))
return
}
//先按照openid去查看是否已经存在
let uf = await userS.dao.model.findOne({ where: { openid: openid } })
if (!uf) {
//按照公司companykey查询出要注册公司的所在公司,取公司id
let company = await companyS.dao.model.findOne({ where: { companykey: companykey } })
//构造注册用户对象,需要设置默认角色,默认角色需要按照rolecode查询出角色
let rolesfind = await roleS.dao.model.findAll({ where: { code: { [roleS.db.Op.in]: rcs }, company_id: company.id } })
//根据rolecode--,设置组织路径
let opath = ''
let isSalesman = false
let isDelivery = false
if (rcs[0] == "资质宝业务员") {
opath = "root10/bizgroup01/g1members/" + userName
isSalesman = true
} else {
opath = "root10/dlivergroup/dgroupmembers/" + userName
isDelivery = true
}
//调用pmregister
let reguser = {
company_id: company.id,
userName: userName,
nickName: nickName,
roles: rolesfind.map(r => r.id),
opath: opath,
openid: openid,
isSalesman: isSalesman,
isDelivery: isDelivery,
isAllocated: true,
skilltags: 'icp,edi'
}
uf = await userS.registerByTantent(reguser)
}
let rtnobj = await userS.loginApp(appkey, userName)
let rtntmp = System.getResult({ openurl: rtnobj.homePage + "?code=" + rtnobj.code })
let rtn = JSON.stringify(rtntmp)
res.end(rtn)
} catch (e) {
res.end(JSON.stringify(System.getResult(null, e.message)))
}
})
app.post("*", async function (req, res, next) {
console.log("---- 进来了- ----")
try {
let channel;
// let sourceHost = req.headers["x-forwarded-host"];
let sourceHost = req.hostname;
if (sourceHost in channelCache) {
channel = channelCache[sourceHost];
} else {
channel = await chnelapi.getChannels(sourceHost);
channelCache[sourceHost] = channel;
}
if (!channel) {
next()
} else {
let rtn = await chnelapi.channelHandle(channel, req.path + "/" + req.body.actionType, req.body)
if (rtn != null) {
res.end(JSON.stringify(rtn));
} else {
res.end(JSON.stringify({ status: -1, message: "fail" }));
}
}
} catch (e) {
console.log(e)
res.end(JSON.stringify({ status: -1, message: e }));
}
})
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));
});
});
};
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 = {
KONG_ADMIAN: process.env.KONG_ADMIAN,
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.PAAS_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 || 80,
logindex: "center_manage",
appname: "center_manage",
publickey: function () {
if (this.env == "dev") {
return {
"kty": "RSA",
"n": "qrie8Rrptw5hGJ9fdI8f6QJuLLbTulWkSmFYDQDPu2aXP65wbRhtPMxn6DA9Qh_o29LqtlNd1L5dhY5ma_hXSwNv-FfiQoUkkdFFZ2H_mODnKaLtV5evho9r3_wGa92dxV_UZQVUurhZ7V6gQk0BzrpUuMqZ1JDOcD4iG_bEEZjuRXWpXtKKj7MoXJyTUrOlCyN1yFo7gxM3ee6rImxfDP4nEhKPnL7HqwTcXCQApLJORRluoThEciVXRs8SYk08MtemZUhCq8QjXTvS52S5u5o_osFqs1DnPYHpiAfydOfEweFCgomt7imD5vIjOlUDEBSGE0mRUFCBnM3Qg_idZQ",
"e": "AQAB",
"kid": "dc2c533023a111e9a95769b80b428cd1",
"alg": "ES256"
}
} else {
return {
"kty": "RSA",
"n": "vkjTlSBYiknVYOJZXAGOyckL3aIdxxcR7iBtGtScfmB5xPop3-ZyYIuBnvCDlqx4r33Hut0bBnEbyOCOWPjsL0szsNZO4Ojbzju3INhiXxqJUPsfuPs82zDEuq-MOF2FnxeGeihPY8Va_YPSjZj9ZeN7eUtRP-nct2N4XftOxQrUPwbMAWnfZskMrjiYD-NRsIcwYaKvkvO9sfjzD9Hkp3OVTnz-doVN7FqWTLGAX8veN2bTWOD5vTqfHwhgxFR0jgZgDHMD262zFBj4ULlLlGr2J9zhWPxEOvod58ll_tHA4Q9HLzmol3u8yGuD7heyRmqnF74qEbbal-Xk67uAyw",
"e": "AQAB",
"kid": "e1703c2001dd11e9b50fd525bc2a7e1d",
"alg": "ES256"
};
}
},
kongurl: function () {
if (this.env == "dev") {
var localsettings = require("./localsettings");
return localsettings.kongurl;
} else {
return "http://kong-dbproxy.kong:8001/";
}
},
icUrl: function () {
if (this.env == "dev") {
return "http://ic.com:8000";
} else {
return "http://icdeliver-service";
}
},
logUrl: function () {
if (this.env == "dev") {
return "http://192.168.1.128:4019/api/queueAction/producer/springBoard";
} else {
return "http://logs-sytxpublic-msgq-service.chaolai/api/queueAction/producer/springBoard";
}
},
pushUrl: function () {
if (this.env == "dev") {
return "http://192.168.18.101:4018/api/queueAction/producer/springBoard";
} else {
return "http://logs-sytxpublic-msgq-service/api/queueAction/producer/springBoard";
}
},
pmappname: "center-app",
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");
console.log(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>....")
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,
logging: 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;
var Server = require('socket.io');
var system = require('../base/system');
var redisClient = system.getObject("util.redisClient");
const redisAdapter = require('socket.io-redis');
const uuidv4 = require('uuid/v4');
// 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.server.adapter(redisAdapter({ pubClient: redisClient.client, subClient: redisClient.subclient }));
this.server.engine.generateId = (req) => {
return "custom:id:" + this.getUUID(); // custom id must be unique
}
this.init()
}
getUUID () {
var uuid = uuidv4();
var u = uuid.replace(/\-/g, "");
return u;
}
init () {
var self = this.server;
this.server.on('connection', function (client) {
console.log("connection.....socket");
client.emit("news", { ok: "ddd" })
client.on("shandle", (d) => {
console.log(d)
})
//
self.of('/').adapter.clients((err, clients) => {
console.log(clients); // an array containing all connected socket ids
});
//链接断开事件
client.on('disconnect', async function (r) {
console.log("connection.........................................dismiss.............");
});
});
}
}
module.exports = SocketServer;
This source diff could not be displayed because it is too large. You can view the blob instead.
.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
.ptree span:hover,.spansel{background-color:#d3d3d3}.ivu-split-wrapper{position:relative;width:100%;height:100%}.ivu-split-pane{position:absolute}.ivu-split-pane.left-pane,.ivu-split-pane.right-pane{top:0;bottom:0}.ivu-split-pane.left-pane{left:0}.ivu-split-pane.right-pane{right:0}.ivu-split-pane.bottom-pane,.ivu-split-pane.top-pane{left:0;right:0}.ivu-split-pane.top-pane{top:0}.ivu-split-pane.bottom-pane{bottom:0}.ivu-split-trigger-con{position:absolute;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);z-index:10}.ivu-split-trigger-bar-con{position:absolute;overflow:hidden}.ivu-split-trigger-bar-con.vertical{left:1px;top:50%;height:32px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.ivu-split-trigger-bar-con.horizontal{left:50%;top:1px;width:32px;-webkit-transform:translate(-50%);transform:translate(-50%)}.ivu-split-trigger-vertical{width:6px;height:100%;background:#f8f8f9;-webkit-box-shadow:0 0 4px 0 rgba(28,36,56,.4);box-shadow:0 0 4px 0 rgba(28,36,56,.4);cursor:col-resize}.ivu-split-trigger-vertical .ivu-split-trigger-bar{width:4px;height:1px;background:rgba(23,35,61,.25);float:left;margin-top:3px}.ivu-split-trigger-horizontal{height:6px;width:100%;background:#f8f8f9;-webkit-box-shadow:0 0 4px 0 rgba(28,36,56,.4);box-shadow:0 0 4px 0 rgba(28,36,56,.4);cursor:row-resize}.ivu-split-trigger-horizontal .ivu-split-trigger-bar{height:4px;width:1px;background:rgba(23,35,61,.25);float:left;margin-right:3px}.ivu-split-horizontal .ivu-split-trigger-con{top:50%;height:100%;width:0}.ivu-split-vertical .ivu-split-trigger-con{left:50%;height:0;width:100%}.ivu-split .no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.split-pane-page-wrapper{height:100%}.split-pane-page-wrapper .pane{width:100%;height:100%}
\ No newline at end of file
.ptree span:hover,.spansel{background-color:#d3d3d3}
\ 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
.demo-upload-list{display:inline-block;width:60px;height:60px;text-align:center;line-height:60px;border:1px solid transparent;border-radius:4px;overflow:hidden;background:#fff;position:relative;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.2);box-shadow:0 1px 1px rgba(0,0,0,.2);margin-right:4px}.demo-upload-list img{width:100%;height:100%}.demo-upload-list-cover{display:none;position:absolute;top:0;bottom:0;left:0;right:0;background:rgba(0,0,0,.6)}.demo-upload-list:hover .demo-upload-list-cover{display:block}.demo-upload-list-cover i{color:#fff;font-size:20px;cursor:pointer;margin:0 2px}
\ No newline at end of file
.count-style{font-size:50px}.blockhover:hover{border-color:#d3d3d3;cursor:pointer}
\ No newline at end of file
.ptree span:hover,.spansel{background-color:#d3d3d3}
\ No newline at end of file
.ptree span:hover,.spansel{background-color:#d3d3d3}
\ No newline at end of file
.login{width:100%;height:100%;background-image:url(../img/login-bg.0899ffa6.jpg);background-size:cover;background-position:50%;position:relative}.login-con{position:absolute;right:160px;top:50%;-webkit-transform:translateY(-60%);transform:translateY(-60%);width:350px}.login-con-header{font-size:16px;font-weight:300;text-align:center;padding:30px 0}.login-con .form-con{padding:10px 0 0}.login-con .login-tip{font-size:10px;text-align:center;color:#c3c3c3}
\ No newline at end of file
.ptree span:hover,.spansel{background-color:#d3d3d3}
\ No newline at end of file
.ptree span:hover,.spansel{background-color:#d3d3d3}
\ 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}
\ 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"><link rel=icon href=/ccc.png><title></title><link href=/css/chunk-14b9857b.0dc416de.css rel=prefetch><link href=/css/chunk-175acaff.7a825095.css rel=prefetch><link href=/css/chunk-1b756945.9e7173ae.css rel=prefetch><link href=/css/chunk-21b5182a.6e6ae301.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-34953cb0.71e3d438.css rel=prefetch><link href=/css/chunk-480215f6.84fd9662.css rel=prefetch><link href=/css/chunk-5ccefbbb.9e7173ae.css rel=prefetch><link href=/css/chunk-61b0b1e5.9e7173ae.css rel=prefetch><link href=/css/chunk-8e32057a.e8e9a917.css rel=prefetch><link href=/css/chunk-e7e51fa0.9e7173ae.css rel=prefetch><link href=/css/chunk-ff3eaeb0.9e7173ae.css rel=prefetch><link href=/js/chunk-0109d85c.d8a39ef0.js rel=prefetch><link href=/js/chunk-037694a5.a74514c3.js rel=prefetch><link href=/js/chunk-0aa2a834.9e04d151.js rel=prefetch><link href=/js/chunk-137dcf78.d8fcc61f.js rel=prefetch><link href=/js/chunk-14b9857b.35e42781.js rel=prefetch><link href=/js/chunk-15d6294e.42eb4739.js rel=prefetch><link href=/js/chunk-175acaff.ca3f7e65.js rel=prefetch><link href=/js/chunk-1792c498.4841b7fc.js rel=prefetch><link href=/js/chunk-1a0615f2.370fcaf1.js rel=prefetch><link href=/js/chunk-1b756945.d840b734.js rel=prefetch><link href=/js/chunk-21b5182a.74708748.js rel=prefetch><link href=/js/chunk-22347577.2275ebec.js rel=prefetch><link href=/js/chunk-24a41303.88feac34.js rel=prefetch><link href=/js/chunk-25d9ab36.087a7b9f.js rel=prefetch><link href=/js/chunk-291faf05.3991ad7a.js rel=prefetch><link href=/js/chunk-2aeda6fa.2bd11851.js rel=prefetch><link href=/js/chunk-2b3066fa.62e62ad4.js rel=prefetch><link href=/js/chunk-2c359864.90a950b1.js rel=prefetch><link href=/js/chunk-2d0d61ef.ca1865db.js rel=prefetch><link href=/js/chunk-2d0e68e0.1a313c84.js rel=prefetch><link href=/js/chunk-2d0efc5d.662e1339.js rel=prefetch><link href=/js/chunk-2d20828f.7627562b.js rel=prefetch><link href=/js/chunk-3385141a.a6e1a986.js rel=prefetch><link href=/js/chunk-34953cb0.2fc03dd6.js rel=prefetch><link href=/js/chunk-3a0bcea0.192dd1cf.js rel=prefetch><link href=/js/chunk-477a8e91.c522ef77.js rel=prefetch><link href=/js/chunk-480215f6.177fc8ec.js rel=prefetch><link href=/js/chunk-4b58f216.e79a0ff7.js rel=prefetch><link href=/js/chunk-4fbb2454.6d97b621.js rel=prefetch><link href=/js/chunk-5ccefbbb.0f021a99.js rel=prefetch><link href=/js/chunk-5e7b929d.9e85be22.js rel=prefetch><link href=/js/chunk-61b0b1e5.322b588f.js rel=prefetch><link href=/js/chunk-65e97401.3b9c7780.js rel=prefetch><link href=/js/chunk-8e32057a.ffe15693.js rel=prefetch><link href=/js/chunk-9947983a.dea0cc2e.js rel=prefetch><link href=/js/chunk-e7e51fa0.c45982a9.js rel=prefetch><link href=/js/chunk-ff3eaeb0.d3d1af72.js rel=prefetch><link href=/css/app.4f840f8a.css rel=preload as=style><link href=/css/chunk-vendors.1d90d08d.css rel=preload as=style><link href=/js/app.b88d12f7.js rel=preload as=script><link href=/js/chunk-vendors.9ae5f635.js rel=preload as=script><link href=/css/chunk-vendors.1d90d08d.css rel=stylesheet><link href=/css/app.4f840f8a.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.9ae5f635.js></script><script src=/js/app.b88d12f7.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-0109d85c"],{"391e":function(e,t,r){"use strict";var s=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticStyle:{width:"100%"},attrs:{id:"framediv"}},[e._t("default",null,{adjustHeight:e.frameHeight})],2)},a=[],o=r("9ee1"),n=o["a"],i=r("9ca4"),l=Object(i["a"])(n,s,a,!1,null,null,null);t["a"]=l.exports},"9ee1":function(e,t,r){"use strict";(function(e){r("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 r=e("#framediv"),s=r.get()[0],a=window.innerHeight-s.offsetTop-t.advalue;t.frameHeight=a,t.$emit("sizechange",t.frameHeight)}))}}}}).call(this,r("a336"))},d495:function(e,t,r){"use strict";r.r(t);var s=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("Row",{attrs:{type:"flex"}},[e.curuser.isAdmin?r("i-col",{attrs:{span:"24"}},[r("FormAccount",{ref:"entinfo",attrs:{fminfo:e.entforminfo,noExpandAuth:"",isNotFixed:""},scopedSlots:e._u([{key:"default",fn:function(t){return[r("Button",{on:{click:e.upentinfo}},[e._v("保存")])]}}],null,!1,3009153987)})],1):e._e(),r("i-col",{staticStyle:{"margin-top":"10px"},attrs:{span:"24"}},[r("FormAccount",{ref:"uinfo",attrs:{fminfo:e.forminfo,noExpandAuth:"",isNotFixed:""},scopedSlots:e._u([{key:"default",fn:function(t){return[r("Button",{on:{click:e.upuserinfo}},[e._v("保存")])]}}])})],1),r("i-col",{staticStyle:{"margin-top":"10px"},attrs:{span:"24"}},[r("FormAccount",{ref:"pwdinfo",attrs:{fminfo:e.pwdinfo,refvalidatemethod:e.validmethod,noExpandAuth:"",isNotFixed:""},scopedSlots:e._u([{key:"default",fn:function(t){return[r("Button",{on:{click:e.uppwdinfo}},[e._v("保存")])]}}])})],1)],1)},a=[],o=r("0086"),n=r("391e"),i=r("7e1e"),l={name:"accountinfo_page",data:function(){return{forminfo:{name:"用户资料",main:[{title:"控制信息",key:"baseinfo",ctls:[{type:"switch",label:"是否接受分配任务",prop:"isAllocated",opentext:"是",closetext:"否",trurcolor:"",falsecolor:"",placeHolder:"",style:"",rules:[]}]},{title:"基本信息",key:"baseinfo",ctls:[{type:"input",label:"帐户名称",prop:"userName",placeHolder:"请输入帐户名",style:"",disabled:!0,rules:[{required:!0,message:" ",trigger:"blur"}]},{type:"input",label:"用户昵称",prop:"nickName",placeHolder:"请输入昵称",style:"",rules:[{required:!0,message:" ",trigger:"blur"}]},{type:"input",label:"邮件地址",prop:"mail",placeHolder:"请输入邮件",style:"",rules:[{required:!0,message:" ",trigger:"blur"},{type:"email",message:"不正确的地址格式",trigger:"blur"}]},{type:"upload",label:"用户头像",prop:"headUrl",placeHolder:"请上传头像",style:"",rules:[]}]}],lists:[]},pwdinfo:{name:"密码设置",main:[{title:"密码修改",key:"baseinfo",cols:1,ctls:[{type:"password",label:"新设密码",prop:"onepassword",placeHolder:"请输入新密码",style:"",rules:[{required:!0,message:" ",trigger:"blur"},{validator:"validatex",trigger:"blur",iscustom:!0}]},{type:"password",label:"密码确认",prop:"repeatpassword",placeHolder:"请重新输入新密码",style:"",rules:[{required:!0,message:" ",trigger:"blur"},{validator:"validatex",trigger:"blur",iscustom:!0}]}]}],lists:[]},entforminfo:{name:"企业资料",main:[{title:"基本信息",key:"baseinfo",ctls:[{type:"input",label:"名称",prop:"name",placeHolder:"请输入企业名称",style:"",disabled:!0,rules:[{required:!0,message:" ",trigger:"blur"}]},{type:"input",label:"企业KEY",prop:"companykey",disabled:!0,placeHolder:"请输入昵称",style:"",rules:[{required:!0,message:" ",trigger:"blur"}]},{type:"input",label:"电话",prop:"phone",placeHolder:"请输入昵称",style:"",rules:[{required:!0,message:" ",trigger:"blur"}]},{type:"input",label:"企业邮件",prop:"mail",placeHolder:"请输入邮件",style:"",rules:[{required:!0,message:" ",trigger:"blur"},{type:"email",message:"不正确的地址格式",trigger:"blur"}]},{type:"input",label:"地址",prop:"address",placeHolder:"请输入邮件",style:"",rules:[{required:!0,message:" ",trigger:"blur"}]},{type:"upload",label:"营业执照",prop:"licenseUrl",placeHolder:"请上传头像",style:"",rules:[{required:!0,message:" ",trigger:"blur"}]}]}],lists:[]}}},components:{FormAccount:o["a"],PageSpace:n["a"]},created:function(){},mounted:function(){this.userdata.isAdmin&&(this.$refs.entinfo.formModel=this.entdata),this.$refs.uinfo.formModel=this.userdata},computed:{curuser:function(){return this.deepclone(this.$store.state.user.userobj)},entdata:function(){return this.curuser.company},userdata:function(){return this.curuser}},methods:{validmethod:function(e,t,r){var s=this.$refs.pwdinfo.formModel["repeatpassword"],a=this.$refs.pwdinfo.formModel["onepassword"];return console.log(s,a),s!=a?r(new Error("两次输入的密码不一致")):r()},deepclone:function(e){var t=JSON.stringify(e);return JSON.parse(t)},upuserinfo:function(){var e=this;this.$refs.uinfo.validate((function(t){if(t){var r=e.$refs.uinfo.formModel;Object(i["n"])("/web/auth/userCtl/update",r).then((function(t){var r=t.data;if(console.log(r),0==r.status){var s=r.data;console.log("........................................................................user.",s),e.$store.state.user.userobj=s,e.$Message.success("当前操作成功.")}else e.$Message.error("当前操作失败,请重试或联系管理员.")}))}}))},upentinfo:function(){var e=this;this.$refs.entinfo.validate((function(t){if(t){var r=e.$refs.entinfo.formModel;Object(i["n"])("/web/common/companyCtl/update",r).then((function(t){var r=t.data;if(0==r.status){var s=r.data;console.log("............................cmp",s),e.$store.state.user.userobj.company=s,e.$Message.success("当前操作成功.")}else e.$Message.error("当前操作失败,请重试或联系管理员.")}))}}))},uppwdinfo:function(){var e=this;this.$refs.pwdinfo.validate((function(t){if(t){var r=e.$refs.pwdinfo.formModel;Object(i["n"])("/web/auth/userCtl/resetPassword",r).then((function(t){var r=t.data;if(0==r.status){r.data;e.$Message.success("当前操作成功."),e.$refs.pwdinfo.resetForm()}else e.$Message.error("当前操作失败,请重试或联系管理员.")}))}}))}}},u=l,c=r("9ca4"),p=Object(c["a"])(u,s,a,!1,null,null,null);t["default"]=p.exports}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-037694a5"],{"82bd":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[e.isshowlist?n("SplitPanel",[n("ArchEditor",{ref:"orgtree",attrs:{slot:"left",initData:e.initData,metainfo:e.metainfo},on:{controlctl:e.controlctl,drawaction:e.drawaction,modisave:e.orgsave,deletenode:e.orgsave,onselnode:e.onselnode},slot:"left"}),n("ArticleInfo",{ref:"articleInfo",attrs:{slot:"right",tblheight:a-60,beforesave:e.beforesave,beforedit:e.beforedit,beforeadd:e.beforeadd},on:{articleShow:e.articleShow},slot:"right"})],1):n("div",{staticStyle:{height:"100%",weight:"100%"}},[n("List",{attrs:{"item-layout":"vertical"}},[n("ListItem",[n("ListItemMeta",{attrs:{title:e.currow.title,description:e.currow.desc}}),n("div",{domProps:{innerHTML:e._s(e.currow.htmlcontent)}}),n("template",{slot:"extra"},[n("Button",{attrs:{type:"primary"},on:{click:e.rtnback}},[e._v("返回")])],1)],2)],1)],1)]}}])})},r=[],o=n("ea4c"),i=o["a"],s=n("9ca4"),l=Object(s["a"])(i,a,r,!1,null,null,null);t["default"]=l.exports},a526:function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("BizTable",{ref:"bt",attrs:{formatCol:e.formatCol,metaName:"article_info",modelName:"article",packageName:"common",tblheight:e.tblheight,isMulti:"",savebefore:e.beforesave,editbefore:e.beforedit,addbefore:e.beforeadd},on:{onnew:e.onnew,onedit:e.onedit,onexec:e.onexec,oninitbtn:e.oninitbtn}})],1)},r=[],o=(n("163d"),n("06d3")),i=(n("7e1e"),{name:"articleinfo_page",data:function(){return{}},components:{BizTable:o["a"]},props:{tblheight:Number,beforesave:{type:Function,default:function(){return function(e,t,n){return n(t)}}},beforedit:{type:Function,default:function(){return function(e,t){return t({value:!0,message:null})}}},beforeadd:{type:Function,default:function(){return function(e,t){return t({value:!0,message:null})}}}},methods:{onexec:function(e,t){"show"==e&&this.$emit("articleShow",t)},oninitbtn:function(e,t){"enablebtn"==e.key&&(t.isEnabled?e.title="停用":e.title="启用")},searchWhere:function(e){this.$refs.bt.initWhereData=e,this.$refs.bt.fetchData()},setHeight:function(e){this.$refs.bt.setHeight(e)},onnew:function(){this.$refs.bt.setFormCtlVisable("userName",!0)},onedit:function(){this.$refs.bt.setFormCtlVisable("userName",!1)},formatCol:function(e,t,n){return"isPubed"==t?e["isPubed"]?'<span style="color:green">是</span>':'<span style="color:orange">否</span>':"created_at"==t||"updated_at"==t?"<span>".concat(new Date(e[t]).toLocaleString(),"</span>"):e[t]}}}),s=i,l=n("9ca4"),c=Object(l["a"])(s,a,r,!1,null,null,null);t["a"]=c.exports},ea4c:function(e,t,n){"use strict";(function(e){n("9a33"),n("60b7");var a=n("391e"),r=n("7e1e"),o=n("302e"),i=n("832e"),s=n("a526");n("f121");t["a"]={name:"treeinfo_page",props:{},components:{ArchEditor:o["a"],SplitPanel:i["a"],PageSpace:a["a"],ArticleInfo:s["a"]},data:function(){return{isshowlist:!0,metainfo:{name:"平台指南",main:[{title:"授权信息",key:"baseinfo",cols:2,ctls:[]}],lists:null}}},mounted:function(){},methods:{rtnback:function(){this.isshowlist=!0},articleShow:function(e){this.isshowlist=!1,this.currow=e},onselnode:function(e,t,n){this.$refs.articleInfo.searchWhere({archpath:n.code})},orgsave:function(e,t,n){var a=this;Object(r["n"])("/web/common/treearchCtl/saveSysArchJSON",{sysArchJSON:e,curdata:t,olddata:n}).then((function(e){var n=e.data;if(console.log("ddddddddddddddddd",n),0==n.status){var r=n.data.sysArchJSON;console.log("save org...............................",r),a.$refs.orgtree.treedata=r,a.$refs.orgtree.refreshTree(),a.$Message.success("当前操作成功完成"),a.$refs.articleInfo.searchWhere({archpath:t.code})}}))},beforeadd:function(e,t){return this.$refs.orgtree.currentData?t({value:!0,message:null}):t({value:!1,message:"请选择目录节点"})},beforedit:function(e,t){return t({value:!0,message:null})},beforesave:function(e,t,n){return this.$refs.orgtree.currentData&&(t.archpath=this.$refs.orgtree.currentData.orgpath),n(t)},setHeight:function(){var t=e("#orgdiv"),n=t.get()[0],a=window.innerHeight-n.offsetTop;t.css("height",a+"px"),this.$refs.userinfo.setHeight(a-120)},drawaction:function(e,t){t.formModel.isPosition?(t.setCtlVisable("isMain",!0),t.setCtlVisable("orgtag",!0),t.setCtlVisable("roles",!0)):(t.setCtlVisable("isMain",!1),t.setCtlVisable("orgtag",!1),t.setCtlVisable("roles",!1))},controlctl:function(e,t,n){if("isMain"==t){var a=this.$refs.orgtree.currentNode,r=this.$refs.orgtree.findParentByNode(a),o=n.formModel;if(o.orgtag&&o.orgtag.indexOf(r.code)<0){var i=o.orgtag.split(",").push(r.code).join(",");o.orgtag=i}else o.orgtag=r.code}"isPosition"==t&&(e?(n.setCtlVisable("isMain",!0),n.setCtlVisable("orgtag",!0),n.setCtlVisable("roles",!0)):(n.setCtlVisable("isMain",!1),n.setCtlVisable("orgtag",!1),n.setCtlVisable("roles",!1)))},initData:function(e){Object(r["k"])().then((function(t){var n=t.data;if(0!=n.status)throw new Error("获取组织数据出错");var a=n.data.sysArchJSON;e(a)}))}}}}).call(this,n("a336"))}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-0aa2a834"],{"391e":function(e,t,n){"use strict";var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticStyle:{width:"100%"},attrs:{id:"framediv"}},[e._t("default",null,{adjustHeight:e.frameHeight})],2)},a=[],i=n("9ee1"),o=i["a"],c=n("9ca4"),s=Object(c["a"])(o,r,a,!1,null,null,null);t["a"]=s.exports},"560c":function(e,t,n){"use strict";n.r(t);var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("PageSpace",{scopedSlots:e._u([{key:"default",fn:function(t){var r=t.adjustHeight;return[n("BizTable",{ref:"bt",attrs:{formatCol:e.formatCol,metaName:"product_info",modelName:"product",packageName:"product",tblheight:r-120,isMulti:"",refvalidatemethod:e.validmethod,savebefore:e.beforesave,editbefore:e.beforedit,addbefore:e.beforeadd,noExpandAuth:""},on:{onexec:e.onexec,oninitbtn:e.oninitbtn,postformsave:e.postformsave}})]}}])})},a=[],i=(n("6d57"),n("cc57"),n("163d"),n("06d3")),o=n("391e"),c=(n("60b7"),{name:"appinfo_page",data:function(){return{}},components:{PageSpace:o["a"],BizTable:i["a"]},methods:{oninitbtn:function(e,t){},beforeadd:function(e,t){return t({value:!0,message:null})},beforedit:function(e,t,n){return t({value:!0,message:null})},beforesave:function(e,t,n){return n(t)},onexec:function(e,t){},validmethod:function(e,t,n){return n()},formatCol:function(e,t,n){if("isEnabled"==t){var r=e["isEnabled"]?"已上架":"待上架";return e["isEnabled"]?'<span style="color:green">'.concat(r,"</span>"):'<span style="color:orange">'.concat(r,"</span>")}if("deliverfile"==t){var a=e["deliverfile"];return"<img src='".concat(a,"' style='height:40px'>")}if("extrafile"==t){var i=e["extrafile"];return"<img src='".concat(i,"' style='height:40px'>")}if("lowpriceref"==t)return e["lowpriceref"]=Number(e["lowpriceref"]),"".concat(e["lowpriceref"]);if("hignpriceref"==t)return e["hignpriceref"]=Number(e["hignpriceref"]),"".concat(e["hignpriceref"]);if("pname"==t)return e.pname=e.product.name,e.product.name;if("strategyitems"==t)return e.strategyitems=e.pricestrategy.optionunion,e.pricestrategy.optionunion;if("code"==t){var o=[];return e.skus.forEach((function(e){o.push(e.pricestrategy_id)})),e.sts=o,e["code"]}},postformsave:function(e){var t=[];e.skus.forEach((function(e){t.push(e.pricestrategy_id)})),e.sts=t}}}),s=c,u=n("9ca4"),f=Object(u["a"])(s,r,a,!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"),r=n.get()[0],a=window.innerHeight-r.offsetTop-t.advalue;t.frameHeight=a,t.$emit("sizechange",t.frameHeight)}))}}}}).call(this,n("a336"))}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-137dcf78"],{"391e":function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticStyle:{width:"100%"},attrs:{id:"framediv"}},[e._t("default",null,{adjustHeight:e.frameHeight})],2)},r=[],i=a("9ee1"),o=i["a"],u=a("9ca4"),s=Object(u["a"])(o,n,r,!1,null,null,null);t["a"]=s.exports},"3ca5":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:"role_info",packageName:"auth",isMulti:"",savebefore:e.savebefore,editbefore:e.beforedit,addbefore:e.beforeadd},on:{onexec:e.onexec}})]}}])})},r=[],i=a("06d3"),o=a("391e"),u={name:"roleinfo_page",data:function(){return{}},components:{BizTable:i["a"],PageSpace:o["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){if("isSystem"==t){var n=e["isSystem"]?"是":"否";return"<span>".concat(n,"</span>")}return"created_at"==t?"<span>".concat(new Date(e[t]).toLocaleString(),"</span>"):e[t]}}},s=u,c=a("9ca4"),f=Object(c["a"])(s,n,r,!1,null,null,null);t["default"]=f.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],r=window.innerHeight-n.offsetTop-t.advalue;t.frameHeight=r,t.$emit("sizechange",t.frameHeight)}))}}}}).call(this,a("a336"))}}]);
\ 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-15d6294e"],{"14fe":function(e,t,a){"use strict";a.r(t);var r=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("PageSpace",{scopedSlots:e._u([{key:"default",fn:function(t){var r=t.adjustHeight;return[a("BizTable",{ref:"bt",attrs:{showTotal:"",formatCol:e.formatCol,modelName:"deliverybill",metaName:"alldeliver_info",packageName:"bizchance",baseUrl:e.baseUrl,tblheight:r-120,isMulti:"",refvalidatemethod:e.validmethod,savebefore:e.beforesave,editbefore:e.beforedit,morebefore:e.beforemore,addbefore:e.beforeadd,sumfields:e.smf,colVisable:e.colVisable},on:{onexec:e.onexec,oninitbtn:e.oninitbtn}}),a("RefTable",{ref:"reftbl",attrs:{metaName:"simple_user_info",modelName:"user",packageName:"auth",isMulti:!1},on:{onrefselect:e.onrefselect}}),a("RefTable",{ref:"reftbl_salesman",attrs:{metaName:"simple_user_info",modelName:"user",packageName:"auth",isMulti:!1},on:{onrefselect:e.onrefselect}}),a("RefTable",{ref:"reftblSuper",attrs:{modelName:"company",metaName:"simple_companyinfo",packageName:"common",isMulti:!1},on:{onrefselect:e.onrefselect}})]}}])})},s=[],i=(a("cc57"),a("b449"),a("9666")),n=(a("163d"),a("6d57"),a("3c70")),o=a("06d3"),u=a("391e"),l=a("db7f"),f=a("f121"),c=a("7e1e"),d=f["a"].deliverUrl.pro,m={name:"alldeliver_page",data:function(){return{baseUrl:d,smf:[{field:"cost_price",label:"服务费合计(元)"}],deliverNumber:"",userType:""}},components:{PageSpace:u["a"],BizTable:o["a"],RefTable:n["a"]},watch:{$route:function(e){if(e.query.spname){if(e.query.bizStatus){var t="waittosettle,settling,settled";t.indexOf(e.query.bizStatus)>=0?this.$refs.bt.initWhereData={facilitator_name:e.query.spname,settle_status:e.query.bizStatus,dateType:e.query.dateType}:this.$refs.bt.initWhereData={facilitator_name:e.query.spname,delivery_status:e.query.bizStatus,dateType:e.query.dateType}}else this.$refs.bt.initWhereData={facilitator_name:e.query.spname,dateType:e.query.dateType};this.$refs.bt.fetchData()}else{if(e.query.bizStatus){var a="waittosettle,settling,settled";a.indexOf(e.query.bizStatus)>=0?this.$refs.bt.initWhereData={settle_status:e.query.bizStatus,dateType:e.query.dateType}:this.$refs.bt.initWhereData={delivery_status:e.query.bizStatus,dateType:e.query.dateType}}this.$refs.bt.fetchData()}}},mounted:function(){if(this.$route.query.spname){if(this.$route.query.bizStatus){var e="waittosettle,settling,settled";e.indexOf(this.$route.query.bizStatus)>=0?this.$refs.bt.initWhereData={facilitator_name:this.$route.query.spname,settle_status:this.$route.query.bizStatus,dateType:this.$route.query.dateType}:this.$refs.bt.initWhereData={facilitator_name:this.$route.query.spname,delivery_status:this.$route.query.bizStatus,dateType:this.$route.query.dateType}}else this.$refs.bt.initWhereData={facilitator_name:this.$route.query.spname,dateType:this.$route.query.dateType};this.$refs.bt.fetchData()}else{if(this.$route.query.bizStatus){var t="waittosettle,settling,settled";t.indexOf(this.$route.query.bizStatus)>=0?this.$refs.bt.initWhereData={settle_status:this.$route.query.bizStatus,dateType:this.$route.query.dateType}:this.$refs.bt.initWhereData={delivery_status:this.$route.query.bizStatus,dateType:this.$route.query.dateType}}this.$refs.bt.fetchData()}},methods:{colVisable:function(e){return"facilitator_name"!=e.key||1==this.$store.state.user.userobj.company.id},oninitbtn:function(e,t){},beforeadd:function(e,t){return t({value:!0,message:null})},beforedit:function(e,t){return t({value:!0,message:null})},beforemore:function(e,t){return e.settlebill_memo=e.settlebill?e.settlebill.memo:"",t({value:!0,message:null})},beforesave:function(e,t,a){return a(t)},onexec:function(e,t){var a=this;if("bizdetails"===e&&alert("wait"),"settlewriteoff"===e){if(0==this.$refs.bt.currentSels.length)return void this.$Modal.error({title:"提示",content:"请选择要进行结算核销的交付单,改变页码可以增加结算核销的明细. "});var r=[],s=this.$refs.bt.currentSels[0].facilitator_name,i=this.$refs.bt.currentSels[0].facilitator_id,n=!1;if(this.$refs.bt.currentSels.forEach((function(e){"waittosettle"==e.settle_status?r.push(e.id):n=!0})),n)return void this.$Modal.error({title:"提示",content:"请选择未结算的交付进行结算核销."});Object(c["n"])("/web/bizchance/deliverybillCtl/settleApplyForTacent",{ids:r,spname:s,spid:Number(i)},d).then((function(e){var t=e.data;0==t.status?(a.$Message.success("当前选择的结算核销已经完成,请到结算管理进行查看."),a.$refs.bt.fetchData()):a.$Message.error("当前选择的结算核销失败,请联系管理员或稍后重试.")}))}"allocation"===e&&(this.deliverNumber=t.deliverNumber,this.userType="deliverman",1==this.$store.state.user.userobj.company.id?this.$refs.reftblSuper.showrefwindow([]):(this.$refs.reftbl.showrefwindow([]),this.$refs.reftbl.setInitWhereData({isAllocated:1,isDelivery:1}))),"allocation_salesman"===e&&(this.userType="salesman",this.deliverNumber=t.deliverNumber,1==this.$store.state.user.userobj.company.id?this.$refs.reftblSuper.showrefwindow([]):(this.$refs.reftbl_salesman.showrefwindow([]),this.$refs.reftbl_salesman.setInitWhereData({isAllocated:1,isSalesman:1})))},validmethod:function(e,t,a){return a()},formatCol:function(e,t,a){var r=e[t];if("companyName"==t&&e["baseInfo"]){var s=e["baseInfo"]["companyName"];return s}if("businessType"===t){var i=l["a"].businessType[r];return i}if("delivery_status"===t){var n=l["a"].deliver_status[r];return n}if("sourceName"===t){var o=l["a"].source[r];return o}if("settle_status"==t){var u=l["a"].settle_status[r];return u}},onrefselect:function(){var e=Object(i["a"])(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(!(this.deliverNumber&&t.length>0&&t[0])){e.next=22;break}if(e.prev=1,1!=this.$store.state.user.userobj.company.id){e.next=7;break}return e.next=5,Object(c["f"])({deliverNumber:this.deliverNumber,facilitatorId:t[0].id,facilitatorName:t[0].name});case 5:e.next=13;break;case 7:if("deliverman"!==this.userType){e.next=10;break}return e.next=10,Object(c["f"])({deliverNumber:this.deliverNumber,deliverymanId:t[0].id,deliverymanName:t[0].nickName,deliverymanOpcode:t[0].opath,deliverymanPhone:t[0].mobile,type:this.userType});case 10:if("salesman"!==this.userType){e.next=13;break}return e.next=13,Object(c["f"])({deliverNumber:this.deliverNumber,salesmanId:t[0].id,salesmanName:t[0].nickName,salesmanOpcode:t[0].opath,salesmanPhone:t[0].mobile,type:this.userType});case 13:this.$refs.bt.fetchData(),this.$Message.success("分配成功"),e.next=20;break;case 17:e.prev=17,e.t0=e["catch"](1),this.$Message.error(e.t0.message);case 20:e.next=23;break;case 22:this.$Message.error("请勾人员");case 23:case"end":return e.stop()}}),e,this,[[1,17]])})));function t(t){return e.apply(this,arguments)}return t}()}},h=m,b=a("9ca4"),p=Object(b["a"])(h,r,s,!1,null,null,null);t["default"]=p.exports},"391e":function(e,t,a){"use strict";var r=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticStyle:{width:"100%"},attrs:{id:"framediv"}},[e._t("default",null,{adjustHeight:e.frameHeight})],2)},s=[],i=a("9ee1"),n=i["a"],o=a("9ca4"),u=Object(o["a"])(n,r,s,!1,null,null,null);t["a"]=u.exports},"3c70":function(e,t,a){"use strict";var r=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("Modal",{attrs:{width:850,title:"参照选择","ok-text":"确定","cancel-text":"取消"},on:{"on-ok":e.okselects},model:{value:e.isshowref,callback:function(t){e.isshowref=t},expression:"isshowref"}},[a("BizTable",{ref:"bt2",attrs:{formatCol:e.formatCol,metaName:e.metaName,modelName:e.modelName,packageName:e.packageName,tblheight:500,isMulti:e.isMulti,savebefore:e.beforesave,editbefore:e.beforedit,addbefore:e.beforeadd},on:{onnew:e.onnew,onedit:e.onedit}})],1)],1)},s=[],i=a("06d3"),n={name:"reftable_window",data:function(){return{isshowref:!1}},props:["metaName","packageName","modelName","isMulti"],components:{BizTable:i["a"]},mounted:function(){},methods:{setInitWhereData:function(e){this.$refs.bt2.initWhereData=e},showrefwindow:function(e){this.isshowref=!0,this.$refs.bt2.setCheckState(e)},okselects:function(){this.$emit("onrefselect",this.$refs.bt2.currentSels)},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,a){},onnew:function(){},onedit:function(){},formatCol:function(e,t,a){return e[t]}}},o=n,u=a("9ca4"),l=Object(u["a"])(o,r,s,!1,null,null,null);t["a"]=l.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"),r=a.get()[0],s=window.innerHeight-r.offsetTop-t.advalue;t.frameHeight=s,t.$emit("sizechange",t.frameHeight)}))}}}}).call(this,a("a336"))}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-1792c498"],{"391e":function(e,t,a){"use strict";var r=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticStyle:{width:"100%"},attrs:{id:"framediv"}},[e._t("default",null,{adjustHeight:e.frameHeight})],2)},i=[],n=a("9ee1"),s=n["a"],o=a("9ca4"),l=Object(o["a"])(s,r,i,!1,null,null,null);t["a"]=l.exports},"5f98":function(e,t,a){"use strict";a.r(t);var r=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("PageSpace",{scopedSlots:e._u([{key:"default",fn:function(t){var r=t.adjustHeight;return[a("BizTable",{ref:"bt",attrs:{showTotal:"",formatCol:e.formatCol,modelName:"deliverybill",metaName:"settleapply_info",packageName:"bizchance",baseUrl:e.baseUrl,tblheight:r-120,isMulti:"",refvalidatemethod:e.validmethod,savebefore:e.beforesave,editbefore:e.beforedit,addbefore:e.beforeadd,sumfields:e.smf,colVisable:e.colVisable},on:{onexec:e.onexec,oninitbtn:e.oninitbtn}})]}}])})},i=[],n=(a("163d"),a("6d57"),a("06d3")),s=a("391e"),o=a("db7f"),l=a("f121"),c=a("7e1e"),u=l["a"].deliverUrl.pro,f={name:"alldeliver_page",data:function(){return{baseUrl:u,smf:[{field:"cost_price",label:"服务费合计(元)"}]}},components:{PageSpace:s["a"],BizTable:n["a"]},methods:{colVisable:function(e){return"facilitator_name"!=e.key||1==this.$store.state.user.userobj.company.id},oninitbtn:function(e,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){var a=this;if("settleapply"===e){if(0==this.$refs.bt.currentSels.length)return void this.$Modal.error({title:"提示",content:"请选择要给交付商结算的交付单,改变页码可以增加结算的明细!"});var r=[],i=this.$refs.bt.currentSels[0].facilitator_name,n=this.$refs.bt.currentSels[0].facilitator_id,s=!1;if(this.$refs.bt.currentSels.forEach((function(e){e.facilitator_name==i?r.push(e.id):s=!0})),s)return void this.$Modal.error({title:"提示",content:"请选择过滤相同的交付商申请结算."});Object(c["n"])("/web/bizchance/deliverybillCtl/settleApply",{ids:r,spname:i,spid:Number(n)},u).then((function(e){var t=e.data;0==t.status?(a.$Message.success("当前的结算申请已经发送给财务审核."),a.$refs.bt.fetchData()):a.$Message.error("当前的结算申请生成失败,请联系管理员或稍后重试.")}))}if("settlewriteoff"===e){if(0==this.$refs.bt.currentSels.length)return void this.$Modal.error({title:"提示",content:"请选择要进行结算核销的交付单,改变页码可以增加结算核销的明细. "});var o=[],l=this.$refs.bt.currentSels[0].facilitator_name,f=this.$refs.bt.currentSels[0].facilitator_id,d=!1;if(this.$refs.bt.currentSels.forEach((function(e){"waittosettle"==e.settle_status?o.push(e.id):d=!0})),d)return void this.$Modal.error({title:"提示",content:"请选择未结算的交付进行结算核销."});Object(c["n"])("/web/bizchance/deliverybillCtl/settleApplyForTacent",{ids:o,spname:l,spid:Number(f)},u).then((function(e){var t=e.data;0==t.status?(a.$Message.success("当前选择的结算核销已经完成,请到结算管理进行查看."),a.$refs.bt.fetchData()):a.$Message.error("当前选择的结算核销失败,请联系管理员或稍后重试.")}))}},validmethod:function(e,t,a){return a()},formatCol:function(e,t,a){var r=e[t];if("businessType"===t){var i=o["a"].businessType[r];return i}if("settle_status"===t){var n=o["a"].settle_status[r];return n}if("sourceName"===t){var s=o["a"].source[r];return s}}}},d=f,h=a("9ca4"),b=Object(h["a"])(d,r,i,!1,null,null,null);t["default"]=b.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"),r=a.get()[0],i=window.innerHeight-r.offsetTop-t.advalue;t.frameHeight=i,t.$emit("sizechange",t.frameHeight)}))}}}}).call(this,a("a336"))}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-1a0615f2"],{"391e":function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticStyle:{width:"100%"},attrs:{id:"framediv"}},[e._t("default",null,{adjustHeight:e.frameHeight})],2)},r=[],o=n("9ee1"),i=o["a"],s=n("9ca4"),c=Object(s["a"])(i,a,r,!1,null,null,null);t["a"]=c.exports},"3c70":function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("Modal",{attrs:{width:850,title:"参照选择","ok-text":"确定","cancel-text":"取消"},on:{"on-ok":e.okselects},model:{value:e.isshowref,callback:function(t){e.isshowref=t},expression:"isshowref"}},[n("BizTable",{ref:"bt2",attrs:{formatCol:e.formatCol,metaName:e.metaName,modelName:e.modelName,packageName:e.packageName,tblheight:500,isMulti:e.isMulti,savebefore:e.beforesave,editbefore:e.beforedit,addbefore:e.beforeadd},on:{onnew:e.onnew,onedit:e.onedit}})],1)],1)},r=[],o=n("06d3"),i={name:"reftable_window",data:function(){return{isshowref:!1}},props:["metaName","packageName","modelName","isMulti"],components:{BizTable:o["a"]},mounted:function(){},methods:{setInitWhereData:function(e){this.$refs.bt2.initWhereData=e},showrefwindow:function(e){this.isshowref=!0,this.$refs.bt2.setCheckState(e)},okselects:function(){this.$emit("onrefselect",this.$refs.bt2.currentSels)},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,n){},onnew:function(){},onedit:function(){},formatCol:function(e,t,n){return e[t]}}},s=i,c=n("9ca4"),u=Object(c["a"])(s,a,r,!1,null,null,null);t["a"]=u.exports},"93e6":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,metaName:"channel_info",modelName:"channel",packageName:"common",tblheight:a-120,refvalidatemethod:e.validmethod,savebefore:e.beforesave,editbefore:e.beforedit,addbefore:e.beforeadd},on:{onexec:e.onexec,oninitbtn:e.oninitbtn}}),n("RefTable",{ref:"reftbl",attrs:{metaName:"simple_user_info",modelName:"user",packageName:"auth",isMulti:!0},on:{onrefselect:e.onrefselect}})]}}])})},r=[],o=(n("b449"),n("9666")),i=(n("9a33"),n("3c70")),s=n("06d3"),c=n("391e"),u=(n("60b7"),n("7e1e")),f={name:"appinfo_page",data:function(){return{channelId:-1}},components:{PageSpace:c["a"],BizTable:s["a"],RefTable:i["a"]},methods:{oninitbtn:function(e,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){"authorize"==e&&(this.channelId=t.id,this.$refs.reftbl.showrefwindow(t.userids?t.userids.split(","):[]))},validmethod:function(e,t,n){return n()},formatCol:function(e,t,n){return"created_at"==t?"<span>".concat(new Date(e[t]).toLocaleString(),"</span>"):e[t]},onrefselect:function(){var e=Object(o["a"])(regeneratorRuntime.mark((function e(t){var n;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return n=t.map((function(e){return e.id})),e.prev=1,e.next=4,Object(u["a"])({channelId:this.channelId,userids:n.join()});case 4:this.$refs.bt.fetchData(),e.next=10;break;case 7:e.prev=7,e.t0=e["catch"](1),this.$Message.error(e.t0.message);case 10:case"end":return e.stop()}}),e,this,[[1,7]])})));function t(t){return e.apply(this,arguments)}return t}()}},l=f,d=n("9ca4"),m=Object(d["a"])(l,a,r,!1,null,null,null);t["default"]=m.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],r=window.innerHeight-a.offsetTop-t.advalue;t.frameHeight=r,t.$emit("sizechange",t.frameHeight)}))}}}}).call(this,n("a336"))}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-1b756945"],{"1ded":function(e,t,n){},"232d":function(e,t,n){"use strict";(function(e){n("60b7");var i=n("391e"),a=n("7e1e"),r=n("302e"),o=n("832e"),s=n("a526");n("f121");t["a"]={name:"treeinfo_page",props:{},components:{ArchEditor:r["a"],SplitPanel:o["a"],PageSpace:i["a"],ArticleInfo:s["a"]},data:function(){return{treedata:[],isshowlist:!0,currow:{}}},mounted:function(){this.initData()},methods:{rtnback:function(){this.isshowlist=!0},articleShow:function(e){this.isshowlist=!1,this.currow=e},renderContent:function(e,t){var n=this,i=t.root,a=t.node,r=t.data;return e("span",{style:{display:"inline-block",width:"100%"}},[e("span",{on:{dblclick:function(e){n.setSelCss(e),n.onselnode(a,r)},click:function(e){n.setSelCss(e),n.currentData=r,n.currentNode=a,n.rootNode=i,n.selclick(i,a,r)}}},[e("Icon",{props:{type:r.children&&r.children.length>0?"ios-folder-outline":"ios-paper-outline"},style:{marginRight:"8px"}}),e("span",r.title)]),e("span",{style:{display:"inline-block",float:"right",marginRight:"32px"}},[])])},setSelCss:function(t){e("span",".ptree").removeClass("spansel"),e(t.target).parent().parent().addClass("spansel")},selclick:function(e,t,n){this.$refs.articleInfo.searchWhere({archpath:n.code})},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)},setHeight:function(){var t=e("#orgdiv"),n=t.get()[0],i=window.innerHeight-n.offsetTop;t.css("height",i+"px"),this.$refs.userinfo.setHeight(i-120)},initData:function(){var e=this;Object(a["k"])().then((function(t){var n=t.data;if(0!=n.status)throw new Error("获取数据出错");e.treedata=n.data.sysArchJSON}))}}}}).call(this,n("a336"))},"25cd":function(e,t,n){"use strict";var i=n("1ded"),a=n.n(i);a.a},a526:function(e,t,n){"use strict";var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("BizTable",{ref:"bt",attrs:{formatCol:e.formatCol,metaName:"article_info",modelName:"article",packageName:"common",tblheight:e.tblheight,isMulti:"",savebefore:e.beforesave,editbefore:e.beforedit,addbefore:e.beforeadd},on:{onnew:e.onnew,onedit:e.onedit,onexec:e.onexec,oninitbtn:e.oninitbtn}})],1)},a=[],r=(n("163d"),n("06d3")),o=(n("7e1e"),{name:"articleinfo_page",data:function(){return{}},components:{BizTable:r["a"]},props:{tblheight:Number,beforesave:{type:Function,default:function(){return function(e,t,n){return n(t)}}},beforedit:{type:Function,default:function(){return function(e,t){return t({value:!0,message:null})}}},beforeadd:{type:Function,default:function(){return function(e,t){return t({value:!0,message:null})}}}},methods:{onexec:function(e,t){"show"==e&&this.$emit("articleShow",t)},oninitbtn:function(e,t){"enablebtn"==e.key&&(t.isEnabled?e.title="停用":e.title="启用")},searchWhere:function(e){this.$refs.bt.initWhereData=e,this.$refs.bt.fetchData()},setHeight:function(e){this.$refs.bt.setHeight(e)},onnew:function(){this.$refs.bt.setFormCtlVisable("userName",!0)},onedit:function(){this.$refs.bt.setFormCtlVisable("userName",!1)},formatCol:function(e,t,n){return"isPubed"==t?e["isPubed"]?'<span style="color:green">是</span>':'<span style="color:orange">否</span>':"created_at"==t||"updated_at"==t?"<span>".concat(new Date(e[t]).toLocaleString(),"</span>"):e[t]}}}),s=o,c=n("9ca4"),l=Object(c["a"])(s,i,a,!1,null,null,null);t["a"]=l.exports},a9ab: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[e.isshowlist?n("SplitPanel",[n("Tree",{staticClass:"ptree",attrs:{slot:"left",data:e.treedata,render:e.renderContent},slot:"left"}),n("ArticleInfo",{ref:"articleInfo",attrs:{slot:"right",tblheight:i-60,beforesave:e.beforesave,beforedit:e.beforedit,beforeadd:e.beforeadd},on:{articleShow:e.articleShow},slot:"right"})],1):n("div",{staticStyle:{height:"100%",weight:"100%"}},[n("h1",[n("Button",{attrs:{icon:"md-arrow-round-back",type:"primary"},on:{click:e.rtnback}},[e._v("返回")]),e._v(" 主题:"+e._s(e.currow.title))],1),n("div",{staticStyle:{"margin-top":"5px"}},[e._v("最后更新时间:"+e._s(new Date(e.currow.updated_at).toLocaleString()))]),n("div",{staticStyle:{width:"100%","margin-top":"10px"},domProps:{innerHTML:e._s(e.currow.htmlcontent)}})])]}}])})},a=[],r=n("232d"),o=r["a"],s=(n("25cd"),n("9ca4")),c=Object(s["a"])(o,i,a,!1,null,null,null);t["default"]=c.exports}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-22347577"],{"03c1":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:"pricecatinfo_info",modelName:"pricecat",packageName:"product",isMulti:"",savebefore:e.beforesave,editbefore:e.beforedit,addbefore:e.beforeadd},on:{onexec:e.onexec}})]}}])})},o=[],r=a("7e1e"),i=a("06d3"),s=a("923a"),c=a("391e"),u=a("a59a"),l={name:"productcat_page",data:function(){return{currentRow:null,tags:""}},components:{BizTable:i["a"],PageSpace:c["a"]},methods:{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){var t=this;if("makestragetys"==e){var a=this.$refs.bt.currentSels;0==a.length?this.$Modal.warning({title:"提示",content:"请选择要参与生成定价策略的定价类型."}):Object(r["n"])("/web/product/pricecatCtl/buildPriceStrategy",{pricetypes:a}).then((function(e){var a=e.data;0==a.status?t.$Message.success("定价策略生成成功."):t.$Message.error("定价策略生成失败.")}))}},formatCol:function(e,t,a){if(console.log(t,".........................."),"options"==t){this.currentRow=e,this.tags=e["options"];var n='<Tags :currow=\'currentRow\' v-model="tags" :ishideadd="true" @change="ch"></Tags>',o=Object.assign({},this.$data),r=u["default"].extend({components:{Tags:s["a"]},template:"<div>".concat(n,"</div>"),data:function(){return o},methods:{testok:function(){console.log("test.....................................")},ch:function(e,t){console.log(e,t)}}}),i=(new r).$mount().$el;return i}return e[t]}}},f=l,d=a("9ca4"),h=Object(d["a"])(f,n,o,!1,null,null,null);t["default"]=h.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",{staticStyle:{width:"100%"},attrs:{id:"framediv"}},[e._t("default",null,{adjustHeight:e.frameHeight})],2)},o=[],r=a("9ee1"),i=r["a"],s=a("9ca4"),c=Object(s["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],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
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-24a41303"],{"391e":function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticStyle:{width:"100%"},attrs:{id:"framediv"}},[e._t("default",null,{adjustHeight:e.frameHeight})],2)},r=[],i=n("9ee1"),o=i["a"],s=n("9ca4"),c=Object(s["a"])(o,a,r,!1,null,null,null);t["a"]=c.exports},6491:function(e,t,n){"use strict";var a=n("e46b"),r=n("eafa"),i=n("7c0a"),o="startsWith",s=""[o];a(a.P+a.F*n("bc96")(o),"String",{startsWith:function(e){var t=i(this,e,o),n=r(Math.min(arguments.length>1?arguments[1]:void 0,t.length)),a=String(e);return s?s.call(t,a,n):t.slice(n,n+a.length)===a}})},7104: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,metaName:"app_info",modelName:"app",packageName:"common",tblheight:a-120,isMulti:"",refvalidatemethod:e.validmethod,savebefore:e.beforesave,editbefore:e.beforedit,addbefore:e.beforeadd},on:{onexec:e.onexec,oninitbtn:e.oninitbtn}})]}}])})},r=[],i=(n("6491"),n("6d57"),n("9a33"),n("06d3")),o=n("391e"),s=n("60b7"),c={name:"appinfo_page",data:function(){return{}},components:{PageSpace:o["a"],BizTable:i["a"]},methods:{oninitbtn:function(e,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;"func"==e&&this.$router.push({name:"functree_info",query:{appkey:t.appkey}}),"frontroute"==e&&Object(s["b"])(t.appkey).then((function(e){var t=e.data;0==t.status?(n.$Message.success("当前操作已完成"),n.$refs.bt.fetchData()):n.$Message.error(t.msg)}))},validmethod:function(e,t,n){if("functionJSON"==e.field)try{var a=JSON.parse(t);console.log(a)}catch(o){return n(new Error(o))}if("hosts"==e.field){var r=t.split(",");0==r.length&&n(new Error("多个域名需要以逗号分隔"))}if("paths"==e.field){var i=t.split(",");0==i.length?n(new Error("多个路径需要以逗号分隔")):i.forEach((function(e){if(!e.startsWith("/"))return n(new Error("路径必须以/开始"))}))}return"backport"==e.field&&isNaN(t)?n(new Error("请输入数字")):n()},formatCol:function(e,t,n){return"created_at"==t?"<span>".concat(new Date(e[t]).toLocaleString(),"</span>"):e[t]}}},u=c,f=n("9ca4"),l=Object(f["a"])(u,a,r,!1,null,null,null);t["default"]=l.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],r=window.innerHeight-a.offsetTop-t.advalue;t.frameHeight=r,t.$emit("sizechange",t.frameHeight)}))}}}}).call(this,n("a336"))}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-25d9ab36"],{"391e":function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticStyle:{width:"100%"},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},"6cb8":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("div",[n("PageSpace",{scopedSlots:e._u([{key:"default",fn:function(t){var a=t.adjustHeight;return[n("BizTable",{ref:"bt",attrs:{tblheight:a-120,formatCol:e.formatCol,modelName:"company",metaName:"company_info",packageName:"common",isMulti:"",savebefore:e.beforesave,editbefore:e.beforedit,addbefore:e.beforeadd},on:{onnew:e.onnew,onedit:e.onedit,onexec:e.onexec}})]}}])})],1)},o=[],i=n("06d3"),r=n("391e"),u={name:"userinfo_page",data:function(){return{isshowref:!1,companyid:-1}},components:{BizTable:i["a"],PageSpace:r["a"]},mounted:function(){},methods:{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 t.roles=[1],n(t)},onexec:function(e,t,n){},onnew:function(){},onedit:function(){},formatCol:function(e,t,n){return 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],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
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2aeda6fa"],{"0995":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:"pricestrategyt_info",modelName:"pricestrategy",packageName:"product",isMulti:"",savebefore:e.beforesave,editbefore:e.beforedit,addbefore:e.beforeadd}})]}}])})},o=[],i=(a("7e1e"),a("06d3")),r=a("923a"),u=a("391e"),s=a("a59a"),c={name:"productcat_page",data:function(){return{currentRow:null,tags:""}},components:{BizTable:i["a"],PageSpace:u["a"]},methods:{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)},formatCol:function(e,t,a){if(console.log(t,".........................."),"optionunion"==t){this.currentRow=e,this.tags=e["optionunion"];var n='<Tags :currow=\'currentRow\' v-model="tags" :ishideadd="true" @change="ch"></Tags>',o=Object.assign({},this.$data),i=s["default"].extend({components:{Tags:r["a"]},template:"<div>".concat(n,"</div>"),data:function(){return o},methods:{testok:function(){console.log("test.....................................")},ch:function(e,t){console.log(e,t)}}}),u=(new i).$mount().$el;return u}return e[t]}}},l=c,f=a("9ca4"),d=Object(f["a"])(l,n,o,!1,null,null,null);t["default"]=d.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",{staticStyle:{width:"100%"},attrs:{id:"framediv"}},[e._t("default",null,{adjustHeight:e.frameHeight})],2)},o=[],i=a("9ee1"),r=i["a"],u=a("9ca4"),s=Object(u["a"])(r,n,o,!1,null,null,null);t["a"]=s.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],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
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2b3066fa","chunk-2d0d61ef"],{"70cc":function(e,t,r){"use strict";r.r(t);var o=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[r("BizTable",{ref:"bt",attrs:{formatCol:e.formatCol,metaName:"user_info",packageName:"auth",tblheight:e.tblheight,isMulti:"",savebefore:e.beforesave,editbefore:e.beforedit,addbefore:e.beforeadd},on:{onnew:e.onnew,onedit:e.onedit,onexec:e.onexec,oninitbtn:e.oninitbtn}})],1)},n=[],a=(r("cc57"),r("163d"),r("06d3")),s=r("7e1e"),i={name:"userinfo_page",data:function(){return{}},components:{BizTable:a["a"]},props:{tblheight:Number,beforesave:{type:Function,default:function(){return function(e,t,r){return r(t)}}},beforedit:{type:Function,default:function(){return function(e,t){return t({value:!0,message:null})}}},beforeadd:{type:Function,default:function(){return function(e,t){return t({value:!0,message:null})}}}},methods:{onexec:function(e,t){var r=this;"enablebtn"==e&&Object(s["n"])("/web/auth/userCtl/allowOrNotToOne",{curid:t.id,isEnabled:t.isEnabled}).then((function(e){var t=e.data;0==t.status?(r.$refs.bt.fetchData(),r.$Message.success("当前操作已经成功完成.")):r.$Message.error("当前操作未完成.")}))},oninitbtn:function(e,t){"enablebtn"==e.key&&(t.isEnabled?e.title="停用":e.title="启用")},searchWhere:function(e){this.$refs.bt.initWhereData=e,this.$refs.bt.fetchData()},setHeight:function(e){this.$refs.bt.setHeight(e)},onnew:function(){this.$refs.bt.setFormCtlVisable("userName",!0)},onedit:function(){this.$refs.bt.setFormCtlVisable("userName",!1)},formatCol:function(e,t,r){if("isEnabled"==t)return e["isEnabled"]?'<span style="color:green">是</span>':'<span style="color:orange">否</span>';if("isAllocated"==t)return e["isAllocated"]?'<span style="color:green">是</span>':'<span style="color:orange">否</span>';if("roleName"==t){var o=e.Roles.map((function(e){return e.name})).join(",");return e.roles=e.Roles.map((function(e){return e.id})),"<span>".concat(o,"</span>")}return"isAdmin"==t||"isSuper"==t?"<span>".concat(e[t]?"是":"否","</span>"):"created_at"==t?"<span>".concat(new Date(e[t]).toLocaleString(),"</span>"):e[t]}}},l=i,c=r("9ca4"),f=Object(c["a"])(l,o,n,!1,null,null,null);t["default"]=f.exports},d610:function(e,t,r){"use strict";r.r(t);var o=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("PageSpace",{scopedSlots:e._u([{key:"default",fn:function(t){var o=t.adjustHeight;return[r("SplitPanel",[r("OrgEditor",{ref:"orgtree",attrs:{slot:"left",initData:e.initData,metainfo:e.metainfo},on:{controlctl:e.controlctl,drawaction:e.drawaction,modisave:e.orgsave,deletenode:e.orgsave,onselnode:e.onselnode},slot:"left"}),r("UserInfo",{ref:"userinfo",attrs:{slot:"right",tblheight:o-60,beforesave:e.beforesave,beforedit:e.beforedit,beforeadd:e.beforeadd},slot:"right"})],1)]}}])})},n=[],a=r("efa5"),s=a["a"],i=r("9ca4"),l=Object(i["a"])(s,o,n,!1,null,null,null);t["default"]=l.exports},efa5:function(e,t,r){"use strict";(function(e){r("9a33"),r("60b7");var o=r("391e"),n=r("7e1e"),a=r("302e"),s=r("832e"),i=r("70cc");r("f121");t["a"]={name:"treeinfo_page",props:{},components:{OrgEditor:a["a"],SplitPanel:s["a"],UserInfo:i["default"],PageSpace:o["a"]},data:function(){return{metainfo:{name:"节点编辑",main:[{title:"授权信息",key:"baseinfo",cols:2,ctls:[{type:"switch",label:"是否岗位",prop:"isPosition",opentext:"是",closetext:"否",trurcolor:"",falsecolor:"",placeHolder:"",style:""},{type:"switch",label:"是否负责人",prop:"isMain",opentext:"是",closetext:"否",trurcolor:"",falsecolor:"",placeHolder:"",style:"",isHide:!0},{type:"dreftag",label:"监控",prop:"orgtag",refModel:"common.company",isMulti:!0,labelField:"orgpath",valueField:"orgpath",refMethod:"getWatchOrgNodes",placeHolder:"请选择监控节点",style:"",canclose:!0,rules:[]},{type:"model-select",refModel:"auth.role",isMulti:!0,label:"角色",prop:"roles",labelField:"name",valueField:"id",style:{"margin-left":"10px",width:"165px"},isHide:!0}]}],lists:null}}},mounted:function(){},methods:{onselnode:function(e,t,r){this.$refs.userinfo.searchWhere({opath:r.code})},orgsave:function(e,t,r){var o=this;Object(n["n"])("/web/common/companyCtl/setOrgs",{orgJson:e,curdata:t,olddata:r}).then((function(e){var r=e.data;if(console.log("ddddddddddddddddd",r),0==r.status){var n=r.data.orgJson;console.log("save org...............................",n),o.$refs.orgtree.treedata=n,o.$refs.orgtree.refreshTree(),o.$Message.success("当前操作成功完成"),o.$refs.userinfo.searchWhere({opath:t.code})}}))},beforeadd:function(e,t){return this.$refs.orgtree.currentData&&this.$refs.orgtree.currentData.isPosition?t({value:!0,message:null}):t({value:!1,message:"请选择岗位节点"})},beforedit:function(e,t){return t({value:!0,message:null})},beforesave:function(e,t,r){return this.$refs.orgtree.currentData&&this.$refs.orgtree.currentData.isPosition&&(t.opath=this.$refs.orgtree.currentData.orgpath+"/"+t.userName,t.ptags=this.$refs.orgtree.currentData.orgtag,t.roles=this.$refs.orgtree.currentData.roles?this.$refs.orgtree.currentData.roles:[]),console.log("before.save",e,t),r(t)},setHeight:function(){var t=e("#orgdiv"),r=t.get()[0],o=window.innerHeight-r.offsetTop;t.css("height",o+"px"),this.$refs.userinfo.setHeight(o-120)},drawaction:function(e,t){t.formModel.isPosition?(t.setCtlVisable("isMain",!0),t.setCtlVisable("orgtag",!0),t.setCtlVisable("roles",!0)):(t.setCtlVisable("isMain",!1),t.setCtlVisable("orgtag",!1),t.setCtlVisable("roles",!1))},controlctl:function(e,t,r){if("isMain"==t){var o=this.$refs.orgtree.currentNode,n=this.$refs.orgtree.findParentByNode(o),a=r.formModel;if(a.orgtag&&a.orgtag.indexOf(n.code)<0){var s=a.orgtag.split(",").push(n.code).join(",");a.orgtag=s}else a.orgtag=n.code}"isPosition"==t&&(e?(r.setCtlVisable("isMain",!0),r.setCtlVisable("orgtag",!0),r.setCtlVisable("roles",!0)):(r.setCtlVisable("isMain",!1),r.setCtlVisable("orgtag",!1),r.setCtlVisable("roles",!1)))},initData:function(e){Object(n["h"])().then((function(t){var r=t.data;if(0!=r.status)throw new Error("获取组织数据出错");var o=r.data.orgJson;e(o)}))}}}}).call(this,r("a336"))}}]);
\ 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-2d0d61ef"],{"70cc":function(e,n,t){"use strict";t.r(n);var a=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",[t("BizTable",{ref:"bt",attrs:{formatCol:e.formatCol,metaName:"user_info",packageName:"auth",tblheight:e.tblheight,isMulti:"",savebefore:e.beforesave,editbefore:e.beforedit,addbefore:e.beforeadd},on:{onnew:e.onnew,onedit:e.onedit,onexec:e.onexec,oninitbtn:e.oninitbtn}})],1)},o=[],r=(t("cc57"),t("163d"),t("06d3")),s=t("7e1e"),i={name:"userinfo_page",data:function(){return{}},components:{BizTable:r["a"]},props:{tblheight:Number,beforesave:{type:Function,default:function(){return function(e,n,t){return t(n)}}},beforedit:{type:Function,default:function(){return function(e,n){return n({value:!0,message:null})}}},beforeadd:{type:Function,default:function(){return function(e,n){return n({value:!0,message:null})}}}},methods:{onexec:function(e,n){var t=this;"enablebtn"==e&&Object(s["n"])("/web/auth/userCtl/allowOrNotToOne",{curid:n.id,isEnabled:n.isEnabled}).then((function(e){var n=e.data;0==n.status?(t.$refs.bt.fetchData(),t.$Message.success("当前操作已经成功完成.")):t.$Message.error("当前操作未完成.")}))},oninitbtn:function(e,n){"enablebtn"==e.key&&(n.isEnabled?e.title="停用":e.title="启用")},searchWhere:function(e){this.$refs.bt.initWhereData=e,this.$refs.bt.fetchData()},setHeight:function(e){this.$refs.bt.setHeight(e)},onnew:function(){this.$refs.bt.setFormCtlVisable("userName",!0)},onedit:function(){this.$refs.bt.setFormCtlVisable("userName",!1)},formatCol:function(e,n,t){if("isEnabled"==n)return e["isEnabled"]?'<span style="color:green">是</span>':'<span style="color:orange">否</span>';if("isAllocated"==n)return e["isAllocated"]?'<span style="color:green">是</span>':'<span style="color:orange">否</span>';if("roleName"==n){var a=e.Roles.map((function(e){return e.name})).join(",");return e.roles=e.Roles.map((function(e){return e.id})),"<span>".concat(a,"</span>")}return"isAdmin"==n||"isSuper"==n?"<span>".concat(e[n]?"是":"否","</span>"):"created_at"==n?"<span>".concat(new Date(e[n]).toLocaleString(),"</span>"):e[n]}}},u=i,c=t("9ca4"),l=Object(c["a"])(u,a,o,!1,null,null,null);n["default"]=l.exports}}]);
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
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