Commit 944b11de by chenxianqi

init product

parents
Showing with 5139 additions and 0 deletions
attach
mimc.log
kefu_server
kefu_server.tar.gz
\ No newline at end of file
###======install beego=======
##### go get github.com/astaxie/beego
###=====install MIMC-Go-SDK====
#####go get github.com/Xiaomi-mimc/mimc-go-sdk
#####cd $GOPATH/src/github.com/Xiaomi-mimc/mimc-go-sdk
#####go build
#####go install
###**下载依赖库**
#####MIMC-Go-SDK依赖proto buffer进行序列化与反序列化数据,在使用时,确保已经install了proto buffer。如未安装,可参考如下进行安装操作。
#####go get github.com/golang/protobuf/proto
#####// 进入下载目录
#####cd $GOPATH/src/github.com/golang/protobuf/proto
#####// 编译安装
#####go build
#####go install
###===== cache 模块 ====
go get github.com/astaxie/beego/cache
###==== 七牛云SDK ====
#####go get -u github.com/qiniu/api.v7
###=====运行====
#####bee run
#####打包发布
#####bee pack -be GOOS=linux
\ No newline at end of file
appname = kefu_server
runmode = "dev"
httpport = 8080
copyrequestbody = true
viewspath = "public"
static_host = "http://localhost:8080/static/uploads/images"
# 进程监控
EnableAdmin = false
AdminAddr = "localhost"
AdminPort = 8089
# 小米mimc open api URL
mimc_HttpUrl = "https://mimc.chat.xiaomi.net/api/account/token"
# https
#EnableHTTPS = true
#EnableHttpTLS = true
#HTTPSPort = 443
#HTTPSCertFile = "conf/ssl.crt"
#HTTPSKeyFile = "conf/ssl.key"
[dev]
httpaddr = "localhost"
# 小米mimc配置信息(小米开放平台创建)
mimc_appId = 2882303761518282099
mimc_appKey = "5521828290099"
mimc_appSecret = "516JCA60FdP9bHQUdpXK+Q=="
# IM数据库信息
im_alias_name = "default"
im_driver_name= "mysql"
im_mysql_host = "192.168.31.72"
im_mysql_user = "root"
im_mysql_db = "kefu_server"
im_mysql_pwd = "chenxianqi"
[prod]
httpaddr = "localhost"
# 小米mimc配置信息(小米开放平台创建)
mimc_appId = 2882303761518282099
mimc_appKey = "5521828290099"
mimc_appSecret = "516JCA60FdP9bHQUdpXK+Q=="
# IM数据库信息
im_alias_name = "default"
im_driver_name= "mysql"
im_mysql_host = "host"
im_mysql_user = "user"
im_mysql_db = "kefu_server"
im_mysql_pwd = "pwd"
package controllers
import (
"crypto/md5"
"encoding/hex"
"encoding/json"
"kefu_server/models"
"kefu_server/utils"
"strconv"
"time"
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/orm"
"github.com/astaxie/beego/validation"
)
// AdminController struct
type AdminController struct {
beego.Controller
}
// GetMeInfo get me info
func (c *AdminController) GetMeInfo() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
admin := models.Admin{Token: token}
if err := o.Read(&admin, "Token"); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败,用户不存在", err)
} else {
admin.Password = "******"
admin.Token = "******"
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &admin)
}
c.ServeJSON()
}
// Get admin
func (c *AdminController) Get() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
_admin := models.Admin{Token: token}
_ = o.Read(&_admin, "Token")
id, _ := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64)
if _admin.ID != id && _admin.Root != 1 {
c.Data["json"] = utils.ResponseError(c.Ctx, "没有权限查看用户信息!", nil)
c.ServeJSON()
return
}
admin := models.Admin{ID: id}
if err := o.Read(&admin); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败,用户不存在", err)
} else {
admin.Password = "******"
admin.Token = "******"
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &admin)
}
c.ServeJSON()
}
// Put update admin
func (c *AdminController) Put() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
_admin := models.Admin{Token: token}
_ = o.Read(&_admin, "Token")
// get request
admin := models.Admin{}
admin.UpdateAt = time.Now().Unix()
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &admin); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误", nil)
c.ServeJSON()
return
}
// admin exist
if err := o.Read(&models.Admin{ID: admin.ID}); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "更新失败,用户不存在", err)
c.ServeJSON()
return
}
// is admin
if _admin.ID != admin.ID && _admin.Root != 1 {
c.Data["json"] = utils.ResponseError(c.Ctx, "您没有权限修改该客服资料!", nil)
c.ServeJSON()
return
}
// validation request
valid := validation.Validation{}
valid.Required(admin.ID, "id").Message("用户ID不能为空!")
valid.Required(admin.NickName, "nickname").Message("昵称不能为空!")
valid.MaxSize(admin.NickName, 5, "nickname").Message("昵称不能超过5个字!")
valid.MaxSize(admin.AutoReply, 100, "auto_reply").Message("自动回复语不能超过100个字!")
valid.Mobile(admin.Phone, "phone").Message("手机号格式不正确!")
if valid.HasErrors() {
for _, err := range valid.Errors {
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
// update
if _, err := o.Update(&admin, "Phone", "NickName", "UpdateAt", "Avatar", "AutoReply"); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "更新失败", err)
} else {
admin.Password = "******"
admin.Token = "******"
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "更新成功!", &admin)
}
c.ServeJSON()
}
// Post add new admin
func (c *AdminController) Post() {
o := orm.NewOrm()
// is admin ?
token := c.Ctx.Input.Header("Authorization")
_admin := models.Admin{Token: token}
_ = o.Read(&_admin, "Token")
if _admin.Root != 1 {
c.Data["json"] = utils.ResponseError(c.Ctx, "您没有权限添加用户", nil)
c.ServeJSON()
return
}
// get request
var admin models.Admin
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &admin); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误", nil)
c.ServeJSON()
return
}
// validation
valid := validation.Validation{}
valid.Required(admin.UserName, "username").Message("用户名不能为空!")
valid.AlphaNumeric(admin.UserName, "username").Message("账号格式不正确,建议qq,手机,或邮箱!")
valid.MaxSize(admin.UserName, 16, "username").Message("账号不能超过16个字!")
valid.MaxSize(admin.NickName, 5, "nickname").Message("昵称不能超过5个字!")
valid.MaxSize(admin.AutoReply, 100, "auto_reply").Message("自动回复语不能超过100个字!")
valid.Required(admin.Password, "password").Message("密码不能为空!")
valid.AlphaNumeric(admin.Password, "password").Message("密码格式不正确,请输入6-16位字母数字下划线为密码!")
valid.MinSize(admin.Password, 6, "password").Message("密码格式不正确,请输入6-16位字母数字下划线为密码!")
valid.MaxSize(admin.Password, 16, "password").Message("密码格式不正确,请输入6-16位字母数字下划线为密码!")
if valid.HasErrors() {
for _, err := range valid.Errors {
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
// MD5 password
m5 := md5.New()
m5.Write([]byte(admin.Password))
admin.Password = hex.EncodeToString(m5.Sum(nil))
admin.CreateAt = time.Now().Unix()
if admin.AutoReply == "" {
admin.AutoReply = "您好,我是在线人工客服,有什么可以帮到你?"
}
// exist No ? create
if isExist, _, err := o.ReadOrCreate(&admin, "UserName"); err == nil {
if isExist {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "添加成功!", nil)
} else {
c.Data["json"] = utils.ResponseError(c.Ctx, "用户名已被使用!", nil)
}
} else {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "服务异常!", err)
}
c.ServeJSON()
return
}
// Delete remove admin
func (c *AdminController) Delete() {
// orm instance
o := orm.NewOrm()
id, _ := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64)
token := c.Ctx.Input.Header("Authorization")
_admin := models.Admin{Token: token}
_ = o.Read(&_admin, "Token")
if _admin.Root != 1 {
c.Data["json"] = utils.ResponseError(c.Ctx, "您没有权限删除客服!", nil)
c.ServeJSON()
return
}
// Can't delete myself
if _admin.ID == id {
c.Data["json"] = utils.ResponseError(c.Ctx, "自己不能删除自己!", nil)
c.ServeJSON()
return
}
// admin
admin := models.Admin{ID: id}
// query read
if err := o.Read(&admin); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "删除失败,客服不存在!", err)
c.ServeJSON()
return
}
if num, err := o.Delete(&admin); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "删除失败!", nil)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "删除成功!", num)
}
c.ServeJSON()
}
// AdminPaginationData a struct
type AdminPaginationData struct {
PageSize int `json:"page_size"`
PageOn int `json:"page_on"`
Keyword string `json:"keyword"`
Total int64 `json:"total"`
Online int `json:"online"`
List interface{} `json:"list"`
}
// List get admin all
func (c *AdminController) List() {
// request body
var paginationData AdminPaginationData
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &paginationData); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", err)
c.ServeJSON()
return
}
// orm instance
o := orm.NewOrm()
admin := new(models.Admin)
qs := o.QueryTable(admin)
qs = qs.Filter("nickname__icontains", paginationData.Keyword)
var lists []models.Admin
if paginationData.Online == 0 {
qs = qs.Filter("online", 0)
}
if paginationData.Online == 1 {
qs = qs.Filter("online", 1)
}
if _, err := qs.OrderBy("-root", "id").Limit(paginationData.PageSize, (paginationData.PageOn-1)*paginationData.PageSize).All(&lists); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败!", err)
c.ServeJSON()
return
}
total, _ := qs.Count()
for index := range lists {
lists[index].Token = "******"
lists[index].Password = "******"
}
paginationData.Total = total
paginationData.List = &lists
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &paginationData)
c.ServeJSON()
}
// UpdatePasswordRequest admin password
type UpdatePasswordRequest struct {
OldPassword string `json:"old_password"`
NewPassword string `json:"new_password"`
EnterPassword string `json:"enter_password"`
}
// UpdatePassword update password
func (c *AdminController) UpdatePassword() {
o := orm.NewOrm()
updatePasswordRequest := UpdatePasswordRequest{}
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &updatePasswordRequest); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", nil)
c.ServeJSON()
return
}
// get token
token := c.Ctx.Input.Header("Authorization")
oldAdmin := models.Admin{Token: token}
_ = o.Read(&oldAdmin, "Token")
// validation
valid := validation.Validation{}
valid.Required(updatePasswordRequest.OldPassword, "old_password").Message("旧密码不能为空!")
valid.Required(updatePasswordRequest.NewPassword, "new_password").Message("新密码不能为空!")
valid.AlphaNumeric(updatePasswordRequest.NewPassword, "new_password").Message("密码格式不正确,请输入6-16位字母数字下划线为密码!")
valid.MinSize(updatePasswordRequest.NewPassword, 6, "new_password").Message("密码格式不正确,请输入6-16位字母数字下划线为密码!")
valid.MaxSize(updatePasswordRequest.NewPassword, 16, "new_password").Message("密码格式不正确,请输入6-16位字母数字下划线为密码!")
valid.Required(updatePasswordRequest.EnterPassword, "enter_password").Message("请再次输入新密码!")
if valid.HasErrors() {
for _, err := range valid.Errors {
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
// validation old password
oldM5 := md5.New()
oldM5.Write([]byte(updatePasswordRequest.OldPassword))
oldPassword := hex.EncodeToString(oldM5.Sum(nil))
if oldPassword != oldAdmin.Password {
c.Data["json"] = utils.ResponseError(c.Ctx, "旧密码不正确!", nil)
c.ServeJSON()
return
}
if updatePasswordRequest.NewPassword != updatePasswordRequest.EnterPassword {
c.Data["json"] = utils.ResponseError(c.Ctx, "两次密码不一致!", nil)
c.ServeJSON()
return
}
// admin
newAdmin := models.Admin{}
newAdmin.ID = oldAdmin.ID
newAdmin.UpdateAt = time.Now().Unix()
// MD5密码
newM5 := md5.New()
newM5.Write([]byte(updatePasswordRequest.NewPassword))
newAdmin.Password = hex.EncodeToString(newM5.Sum(nil))
newAdmin.UpdateAt = time.Now().Unix()
if oldPassword == newAdmin.Password {
c.Data["json"] = utils.ResponseError(c.Ctx, "新密码不能与旧密码相同!", nil)
c.ServeJSON()
return
}
// Update
if _, err := o.Update(&newAdmin, "Password", "UpdateAt"); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "修改失败!", err)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "修改成功!", nil)
}
c.ServeJSON()
}
// ChangeCurrentUser current connect user
func (c *AdminController) ChangeCurrentUser() {
o := orm.NewOrm()
// get admin token
token := c.Ctx.Input.Header("Authorization")
admin := models.Admin{Token: token}
_ = o.Read(&admin, "Token")
uid, _ := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64)
user := models.User{ID: uid}
if err := o.Read(&user); err != nil && uid != 0 {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "用户不存在!", nil)
c.ServeJSON()
return
}
// Update
admin.CurrentConUser = uid
if _, err := o.Update(&admin, "CurrentConUser"); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "更新失败!", err)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "更新成功!", nil)
}
c.ServeJSON()
}
// Online change state
func (c *AdminController) Online() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
online, _ := strconv.Atoi(c.Ctx.Input.Param(":state"))
if online > 2 {
online = 0
}
admin := models.Admin{Token: token}
if err := o.Read(&admin, "Token"); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "客服不存在!", err)
c.ServeJSON()
return
}
admin.Online = online
if _, err := o.Update(&admin, "Online"); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "更新在线状态失败!", err)
c.ServeJSON()
return
}
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "更新在线状态成功!", nil)
c.ServeJSON()
return
}
package controllers
import (
"crypto/md5"
"encoding/hex"
"encoding/json"
"kefu_server/models"
"kefu_server/utils"
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/orm"
"github.com/astaxie/beego/validation"
)
// AuthController struct
type AuthController struct {
beego.Controller
}
// Login admin login
func (c *AuthController) Login() {
var admin models.Admin
valid := validation.Validation{}
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &admin); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误", nil)
c.ServeJSON()
return
}
// MD5
m5 := md5.New()
m5.Write([]byte(admin.Password))
admin.Password = hex.EncodeToString(m5.Sum(nil))
// valid
valid.Required(admin.UserName, "username").Message("用户名不能为空!")
valid.Required(admin.Password, "password").Message("密码不能为空!")
if valid.HasErrors() {
for _, err := range valid.Errors {
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
o := orm.NewOrm()
queryAdmin := models.Admin{UserName: admin.UserName}
err := o.Read(&queryAdmin, "UserName")
if err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "用户不存在!", nil)
} else if queryAdmin.Password != admin.Password {
c.Data["json"] = utils.ResponseError(c.Ctx, "密码错误!", nil)
} else if admin.UserName != queryAdmin.UserName {
c.Data["json"] = utils.ResponseError(c.Ctx, "用户不存在!", nil)
} else {
queryAdmin.Password = ""
queryAdmin.Token = ""
queryAdmin.Token = utils.GenerateToken(queryAdmin)
_, err := o.Update(&queryAdmin, "Token")
if err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "登录失败,请稍后再试!", queryAdmin)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "登录成功!", queryAdmin)
}
}
c.ServeJSON()
}
// Logout admin logout
func (c *AuthController) Logout() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
admin := models.Admin{Token: token}
_ = o.Read(&admin, "Token")
admin.Token = ""
admin.CurrentConUser = 0
if _, err := o.Update(&admin, "Token", "CurrentConUser"); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "退出失败!", nil)
c.ServeJSON()
return
}
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "退出成功!", nil)
c.ServeJSON()
}
package controllers
import (
"encoding/json"
"kefu_server/models"
"kefu_server/utils"
"time"
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/orm"
"github.com/astaxie/beego/validation"
)
// CompanyController struct
type CompanyController struct {
beego.Controller
}
// Get get conpany info
func (c *CompanyController) Get() {
o := orm.NewOrm()
company := models.Company{ID: 1}
if err := o.Read(&company); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败!", err)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &company)
}
c.ServeJSON()
}
// Put update conpany info
func (c *CompanyController) Put() {
company := models.Company{}
company.UpdateAt = time.Now().Unix()
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &company); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", nil)
c.ServeJSON()
return
}
// validation
valid := validation.Validation{}
valid.Required(company.Logo, "logo").Message("公司LOGO不能为空!")
valid.Required(company.Title, "title").Message("公司名称不能为空!")
valid.MaxSize(company.Title, 50, "title").Message("公司名称不能超过50个字符!")
valid.Required(company.Service, "service").Message("在线客服时间不能为空!")
valid.MaxSize(company.Service, 50, "service").Message("在线客服时间长度不能超过50个字符!")
valid.MaxSize(company.Email, 50, "service").Message("Email长度不能超过50个字符!")
valid.MaxSize(company.Tel, 50, "tel").Message("公司电话长度不能超过50个字符!")
if valid.HasErrors() {
for _, err := range valid.Errors {
logs.Error(err)
c.Data["json"] = &models.Response{Code: 400, Message: err.Message, Data: nil}
break
}
c.ServeJSON()
return
}
// orm
o := orm.NewOrm()
company.ID = 1
company.UpdateAt = time.Now().Unix()
if _, err := o.Update(&company); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "更新失败!", err)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "更新成功!", &company)
}
c.ServeJSON()
}
package controllers
import (
"encoding/base64"
"kefu_server/models"
"kefu_server/utils"
"strconv"
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/orm"
)
// ContactController struct
type ContactController struct {
beego.Controller
}
// GetContacts get all Contacts
func (c *ContactController) GetContacts() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
admin := models.Admin{Token: token}
_ = o.Read(&admin, "Token")
var contactData []models.ContactData
rCount, err := o.Raw("SELECT c.id AS cid,c.to_account,c.is_session_end, c.last_message,c.last_message_type,c.from_account, c.create_at AS contact_create_at,u.*, IFNULL(m.`count`,0) AS `read` FROM `contact` c LEFT JOIN `user` u ON c.from_account = u.id LEFT JOIN (SELECT to_account,from_account, COUNT(*) as `count` FROM message WHERE `read` = 1 GROUP BY to_account,from_account) m ON m.to_account = c.to_account AND m.from_account = c.from_account WHERE c.to_account = ? AND c.delete = 0 ORDER BY c.create_at DESC", admin.ID).QueryRows(&contactData)
logs.Info("contactData===", contactData)
if err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败!", err)
} else {
if rCount == 0 {
contactData = []models.ContactData{}
}
// base 64
for index, contact := range contactData {
payload, _ := base64.StdEncoding.DecodeString(contact.LastMessage)
contactData[index].LastMessage = string(payload)
}
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &contactData)
}
c.ServeJSON()
}
// Delete a Contact
func (c *ContactController) Delete() {
o := orm.NewOrm()
id, _ := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64)
token := c.Ctx.Input.Header("Authorization")
admin := models.Admin{Token: token}
_ = o.Read(&admin, "Token")
res, _ := o.Raw("UPDATE `contact` SET `delete` = 1 WHERE id = ? AND to_account = ?", id, admin.ID).Exec()
if rowsAffected, _ := res.RowsAffected(); rowsAffected == 0 {
c.Data["json"] = utils.ResponseError(c.Ctx, "删除失败!", nil)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "删除成功!", nil)
}
c.ServeJSON()
}
// Clear all
func (c *ContactController) Clear() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
admin := models.Admin{Token: token}
_ = o.Read(&admin, "Token")
res, _ := o.Raw("UPDATE `contact` SET `delete` = 1 WHERE to_account = ?", admin.ID).Exec()
if rowsAffected, _ := res.RowsAffected(); rowsAffected == 0 {
c.Data["json"] = utils.ResponseError(c.Ctx, "清空失败!", nil)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "清空成功!", nil)
}
c.ServeJSON()
}
package controllers
import (
"github.com/astaxie/beego"
)
// ErrorController struct
type ErrorController struct {
beego.Controller
}
// Error404 Controller public fun
func (c *ErrorController) Error404() {
c.Data["content"] = "page not found"
c.TplName = "404.tpl"
}
package controllers
import (
"encoding/json"
"kefu_server/models"
"kefu_server/utils"
"math"
"time"
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/orm"
"github.com/astaxie/beego/validation"
)
// HomeController struct
type HomeController struct {
beego.Controller
}
// StatisticalRequest home Statistical
type StatisticalRequest struct {
DateStart string `json:"date_start"`
DateEnd string `json:"date_end"`
}
// Statistical statistical services
func (c *HomeController) Statistical() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
admin := models.Admin{Token: token}
if err := o.Read(&admin, "Token"); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败,用户不存在", err)
c.ServeJSON()
return
}
// request body
statisticalRequest := StatisticalRequest{}
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &statisticalRequest); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", nil)
c.ServeJSON()
return
}
// validation
valid := validation.Validation{}
valid.Required(statisticalRequest.DateStart, "date_start").Message("date_start不能为空!")
valid.Required(statisticalRequest.DateEnd, "date_end").Message("date_end不能为空!")
if valid.HasErrors() {
for _, err := range valid.Errors {
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
// transform date
var oneDaySecond float64 = 86400
layoutDate := "2006-01-02 15:04:05"
loc, _ := time.LoadLocation("Local")
dateStartString := statisticalRequest.DateStart + " 00:00:00"
dateEndString := statisticalRequest.DateEnd + " 23:59:59"
dateStart, _ := time.ParseInLocation(layoutDate, dateStartString, loc)
dateEnd, _ := time.ParseInLocation(layoutDate, dateEndString, loc)
k := dateEnd.Unix() - dateStart.Unix()
maxDay := int(math.Ceil(float64(k) / oneDaySecond))
if maxDay < 1 || maxDay >= 32 {
c.Data["json"] = utils.ResponseError(c.Ctx, "日期有误,最大只能查询一个月以内", nil)
c.ServeJSON()
return
}
countsArr := map[string]interface{}{}
// Count customer service access
var membersData []orm.Params
_, _ = o.Raw("SELECT a.id, a.username, a.nickname, IFNULL(s.count,0) as count FROM `admin` a LEFT JOIN (SELECT service_account,COUNT(*) AS count FROM services_statistical WHERE `create_at` BETWEEN ? AND ? GROUP BY service_account) s ON a.id = s.service_account ORDER BY a.id", dateStart.Unix(), dateEnd.Unix()).Values(&membersData)
countsArr["members"] = membersData
// Count the traffic of each channel
var statisticalData []interface{}
for i := 0; i < maxDay; i++ {
var statisticalTemp []orm.Params
increment := int64(i) * int64(oneDaySecond)
start := dateStart.Unix() + increment
end := start + int64(oneDaySecond)
if i == maxDay-1 {
end = dateEnd.Unix()
}
_, _ = o.Raw("SELECT p.id, p.title, IFNULL(s.count,0) as count FROM `platform` p LEFT JOIN (SELECT platform,COUNT(*) AS count FROM `services_statistical` WHERE `create_at` BETWEEN ? AND ? GROUP BY platform) s ON p.id = s.platform ORDER BY p.id", start, end).Values(&statisticalTemp)
day := time.Unix(start, 0).Format("2006-01-02")
statisticalArrItem := map[string]interface{}{}
statisticalArrItem["date"] = day
statisticalArrItem["list"] = statisticalTemp
statisticalData = append(statisticalData, statisticalArrItem)
}
countsArr["statistical"] = statisticalData
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &countsArr)
c.ServeJSON()
}
// TodayActionStatistical today Statistical
func (c *HomeController) TodayActionStatistical() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
admin := models.Admin{Token: token}
if err := o.Read(&admin, "Token"); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败,用户不存在", err)
c.ServeJSON()
return
}
// request body
statisticalRequest := StatisticalRequest{}
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &statisticalRequest); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", nil)
c.ServeJSON()
return
}
// validation
valid := validation.Validation{}
valid.Required(statisticalRequest.DateStart, "date_start").Message("date_start不能为空!")
valid.Required(statisticalRequest.DateEnd, "date_end").Message("date_end不能为空!")
if valid.HasErrors() {
for _, err := range valid.Errors {
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
// transform date
layoutDate := "2006-01-02 15:04:05"
loc, _ := time.LoadLocation("Local")
dateStartString := statisticalRequest.DateStart + " 00:00:00"
dateEndString := statisticalRequest.DateEnd + " 23:59:59"
dateStart, _ := time.ParseInLocation(layoutDate, dateStartString, loc)
dateEnd, _ := time.ParseInLocation(layoutDate, dateEndString, loc)
var statisticalData []orm.Params
_, _ = o.Raw("SELECT p.id platform,p.title, IFNULL(u.count,0) AS `count` FROM platform as p LEFT JOIN (SELECT platform,COUNT(*) AS count FROM `user` WHERE last_activity BETWEEN ? AND ? GROUP BY platform) u ON p.id = u.platform", dateStart.Unix(), dateEnd.Unix()).Values(&statisticalData)
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &statisticalData)
c.ServeJSON()
}
package controllers
import (
"encoding/json"
"kefu_server/models"
"kefu_server/utils"
"strconv"
"strings"
"time"
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/orm"
"github.com/astaxie/beego/validation"
)
// KnowledgeBaseController struct
type KnowledgeBaseController struct {
beego.Controller
}
// Get get a knowledge Base
func (c *KnowledgeBaseController) Get() {
o := orm.NewOrm()
id, _ := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64)
knowledgeBase := models.KnowledgeBase{ID: id}
if err := o.Read(&knowledgeBase); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "获取失败!", err)
c.ServeJSON()
}
knowledgeBase.SubTitle = strings.Trim(knowledgeBase.SubTitle, "|")
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &knowledgeBase)
c.ServeJSON()
}
// Post add a knowledge Base
func (c *KnowledgeBaseController) Post() {
o := orm.NewOrm()
// request body
var knowledgeBase models.KnowledgeBase
knowledgeBase.CreateAt = time.Now().Unix()
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &knowledgeBase); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", err)
c.ServeJSON()
}
// exist title ?
oldKnowledgeBase := models.KnowledgeBase{Title: knowledgeBase.Title}
if err := o.Read(&oldKnowledgeBase, "Title"); err == nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "标题已存在,请换个标题!", nil)
c.ServeJSON()
return
}
// validation
valid := validation.Validation{}
valid.Required(knowledgeBase.Title, "title").Message("标题不能为空!")
valid.Required(knowledgeBase.Content, "content").Message("内容不能为空!")
valid.Required(knowledgeBase.UID, "uid").Message("用户ID不能为空!")
if valid.HasErrors() {
for _, err := range valid.Errors {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
// Platform exist
if err := o.Read(&models.Platform{ID: knowledgeBase.Platform}); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "不存在的平台id!", nil)
c.ServeJSON()
return
}
// insert
knowledgeBase.SubTitle = strings.Trim(knowledgeBase.SubTitle, "|")
if knowledgeBase.SubTitle != "" {
knowledgeBase.SubTitle = "|" + knowledgeBase.SubTitle + "|"
}
if id, err := o.Insert(&knowledgeBase); err == nil {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "添加成功!", &id)
} else {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "服务异常!", err)
}
c.ServeJSON()
}
// Put update a knowledge Base
func (c *KnowledgeBaseController) Put() {
o := orm.NewOrm()
// request body
var newKnowledgeBase models.KnowledgeBase
newKnowledgeBase.UpdateAt = time.Now().Unix()
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &newKnowledgeBase); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", err)
c.ServeJSON()
}
// validation
valid := validation.Validation{}
valid.Required(newKnowledgeBase.Title, "title").Message("标题不能为空!")
valid.Required(newKnowledgeBase.Content, "content").Message("内容不能为空!")
valid.Required(newKnowledgeBase.UID, "uid").Message("用户ID不能为空!")
if valid.HasErrors() {
for _, err := range valid.Errors {
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
// is exist ?
oldKnowledgeBase := models.KnowledgeBase{ID: newKnowledgeBase.ID}
if err := o.Read(&oldKnowledgeBase); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "内容不存在!", err)
c.ServeJSON()
}
// is exist title?
oldKnowledgeBase = models.KnowledgeBase{Title: newKnowledgeBase.Title}
if err := o.Read(&oldKnowledgeBase, "Title"); err == nil && oldKnowledgeBase.ID != newKnowledgeBase.ID {
c.Data["json"] = utils.ResponseError(c.Ctx, "标题已存在,请换个标题!", nil)
c.ServeJSON()
}
// is exist Platform?
if err := o.Read(&models.Platform{ID: newKnowledgeBase.Platform}); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "不存在的平台id!", nil)
c.ServeJSON()
return
}
// sub title
newKnowledgeBase.SubTitle = strings.Trim(newKnowledgeBase.SubTitle, "|")
if newKnowledgeBase.SubTitle != "" {
newKnowledgeBase.SubTitle = "|" + newKnowledgeBase.SubTitle + "|"
}
// insert
newKnowledgeBase.CreateAt = oldKnowledgeBase.CreateAt
if _, err := o.Update(&newKnowledgeBase, "Title", "SubTitle", "Content", "Platform", "UpdateAt"); err == nil {
newKnowledgeBase.SubTitle = strings.Trim(newKnowledgeBase.SubTitle, "|")
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "更新成功!", &newKnowledgeBase)
} else {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "更新失败!", err)
}
c.ServeJSON()
}
// Delete delete a knowledge Base
func (c *KnowledgeBaseController) Delete() {
o := orm.NewOrm()
id, _ := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64)
knowledgeBase := models.KnowledgeBase{ID: id}
// exist
if err := o.Read(&knowledgeBase); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "删除失败,内容不存在!", err)
c.ServeJSON()
return
}
if num, err := o.Delete(&knowledgeBase); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "删除失败!", nil)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "删除成功!", num)
}
c.ServeJSON()
}
// List quesy list
func (c *KnowledgeBaseController) List() {
// request body
var paginationData models.PaginationData
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &paginationData); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", err)
c.ServeJSON()
return
}
// orm instance
o := orm.NewOrm()
model := new(models.KnowledgeBase)
qs := o.QueryTable(model)
// query
var lists []models.KnowledgeBase
if _, err := qs.OrderBy("-create_at").Limit(paginationData.PageSize).Offset((paginationData.PageOn - 1) * paginationData.PageSize).All(&lists); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败!", err)
c.ServeJSON()
return
}
total, _ := qs.Count()
for index := range lists {
lists[index].SubTitle = strings.Trim(lists[index].SubTitle, "|")
}
paginationData.Total = total
paginationData.List = &lists
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &paginationData)
c.ServeJSON()
}
package controllers
import (
"encoding/base64"
"encoding/json"
"github.com/astaxie/beego"
"github.com/astaxie/beego/orm"
"github.com/astaxie/beego/validation"
"kefu_server/im"
"kefu_server/models"
"kefu_server/utils"
"strconv"
"time"
)
// MessageController struct
type MessageController struct {
beego.Controller
}
// MessagePaginationData struct
type MessagePaginationData struct {
PageSize int `json:"page_size"`
Total int64 `json:"total"`
Account int64 `json:"account"`
Service int64 `json:"service"`
Timestamp int64 `json:"timestamp"`
List interface{} `json:"list"`
}
// List get messages
func (c *MessageController) List() {
o := orm.NewOrm()
messagePaginationData := MessagePaginationData{}
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &messagePaginationData); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", nil)
c.ServeJSON()
return
}
// service ID
var serviceID int64
if messagePaginationData.Service == 0 {
token := c.Ctx.Input.Header("Authorization")
admin := models.Admin{Token: token}
if err := o.Read(&admin, "Token"); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败,用户不存在", err)
c.ServeJSON()
return
}
serviceID = admin.ID
} else {
serviceID = messagePaginationData.Service
}
// Timestamp == 0
if messagePaginationData.Timestamp == 0 {
messagePaginationData.Timestamp = time.Now().Unix()
}
// validation
valid := validation.Validation{}
valid.Required(messagePaginationData.Account, "account").Message("account不能为空!")
valid.Required(messagePaginationData.PageSize, "page_size").Message("page_size不能为空!")
valid.Required(messagePaginationData.Timestamp, "timestamp").Message("timestamp不能为空!")
if valid.HasErrors() {
for _, err := range valid.Errors {
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
// join string
qs := o.QueryTable(new(models.Message))
accounts := []int64{messagePaginationData.Account, serviceID}
inExp := "?,?"
// get all robot
robots := im.GetRobots()
for _, robot := range robots {
accounts = append(accounts, robot.ID)
inExp = inExp + ",?"
}
var messages []*models.Message
msgCount, _ := qs.Filter("timestamp__lt", messagePaginationData.Timestamp).Filter("to_account__in", accounts).Filter("from_account__in", accounts).Filter("delete", 0).Count()
// Paging
end := msgCount
start := int(msgCount) - messagePaginationData.PageSize
if start <= 0 {
start = 0
}
if msgCount > 0 {
_, err := o.Raw("SELECT * FROM `message` WHERE to_account IN ("+inExp+") AND `delete` = 0 AND from_account IN ("+inExp+") AND `timestamp` < ? ORDER BY `timestamp` ASC LIMIT ?,?", accounts, accounts, messagePaginationData.Timestamp, start, end).QueryRows(&messages)
_, _ = qs.Filter("from_account", messagePaginationData.Account).Update(orm.Params{"read": 0})
if err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败!", &err)
c.ServeJSON()
return
}
total, _ := qs.Filter("to_account__in", accounts).Filter("from_account__in", accounts).Count()
messagePaginationData.List = messages
messagePaginationData.Total = total
} else {
messagePaginationData.List = []models.Message{}
messagePaginationData.Total = 0
}
for index, msg := range messages {
payload, _ := base64.StdEncoding.DecodeString(msg.Payload)
messages[index].Payload = string(payload)
}
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &messagePaginationData)
c.ServeJSON()
}
// TransferRequestData struct
type TransferRequestData struct {
ToAccount int64 `json:"to_account"` // 转接给谁
UserAccount int64 `json:"user_account"` // 用户ID
}
// Transfer transfer user to user
func (c *MessageController) Transfer() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
admin := models.Admin{Token: token}
if err := o.Read(&admin, "Token"); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败,用户不存在", err)
c.ServeJSON()
return
}
// request body
transferRequestData := TransferRequestData{}
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &transferRequestData); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", nil)
c.ServeJSON()
return
}
// validation
valid := validation.Validation{}
valid.Required(transferRequestData.ToAccount, "to_account").Message("to_account不能为空!")
valid.Required(transferRequestData.UserAccount, "user_account").Message("user不能为空!")
if valid.HasErrors() {
for _, err := range valid.Errors {
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
robot := im.Robots[0]
robotID, _ := strconv.ParseInt(robot.AppAccount(), 10, 64)
type adminData struct {
ID int64 `orm:"column(id)" json:"id"`
NickName string `json:"nickname"`
Avatar string `json:"avatar"`
}
toAdmin := models.Admin{ID: transferRequestData.ToAccount}
if err := o.Read(&toAdmin); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "转接失败,转接客服不存在", nil)
c.ServeJSON()
return
}
toAdminJSON, _ := json.Marshal(adminData{ID: toAdmin.ID, Avatar: toAdmin.Avatar, NickName: toAdmin.NickName})
user := models.User{ID: transferRequestData.UserAccount}
_ = o.Read(&user)
// message
message := models.Message{}
message.BizType = "transfer"
message.FromAccount = transferRequestData.UserAccount
message.Timestamp = time.Now().Unix()
message.TransferAccount = transferRequestData.ToAccount
// Send to forwarder
message.ToAccount = admin.ID
message.Payload = "您将" + user.NickName + "转接给" + toAdmin.NickName
messageJSONOne, _ := json.Marshal(message)
messageStringOne := base64.StdEncoding.EncodeToString([]byte(messageJSONOne))
robot.SendMessage(strconv.FormatInt(admin.ID, 10), []byte(messageStringOne))
im.MessageInto(message, true)
// Send to forwarded customer service
message.ToAccount = transferRequestData.ToAccount
message.Payload = admin.NickName + "将" + user.NickName + "转接给您"
messageJSONTwo, _ := json.Marshal(message)
messageStringTwo := base64.StdEncoding.EncodeToString([]byte(messageJSONTwo))
robot.SendMessage(strconv.FormatInt(transferRequestData.ToAccount, 10), []byte(messageStringTwo))
im.MessageInto(message, true)
// send to user
message.ToAccount = transferRequestData.UserAccount
message.FromAccount = robotID
message.Delete = 1
message.Payload = string(toAdminJSON)
messageJSONThree, _ := json.Marshal(message)
messageString3 := base64.StdEncoding.EncodeToString([]byte(messageJSONThree))
robot.SendMessage(strconv.FormatInt(transferRequestData.UserAccount, 10), []byte(messageString3))
im.MessageInto(message, false)
// Transfer to the library for counting service times
servicesStatistical := models.ServicesStatistical{UserAccount: transferRequestData.UserAccount, ServiceAccount: transferRequestData.ToAccount, TransferAccount: admin.ID, Platform: user.Platform, CreateAt: time.Now().Unix()}
_, _ = o.Insert(&servicesStatistical)
// End the repeater's and user's current session
tk := time.NewTimer(1 * time.Second)
select {
case <-tk.C:
endUsersID := []int64{admin.ID, transferRequestData.UserAccount}
_, _ = o.Raw("UPDATE contact SET is_session_end = 1 WHERE to_account IN(?,?) AND from_account IN(?,?)", endUsersID, endUsersID).Exec()
}
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "转接成功", nil)
c.ServeJSON()
}
package controllers
import (
"encoding/json"
"kefu_server/models"
"kefu_server/utils"
"strconv"
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/orm"
"github.com/astaxie/beego/validation"
)
// PlatformController struct
type PlatformController struct {
beego.Controller
}
// Get get a admin
func (c *PlatformController) Get() {
o := orm.NewOrm()
id, _ := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64)
platform := models.Platform{ID: id}
if err := o.Read(&platform); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败!", err)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &platform)
}
c.ServeJSON()
}
// Put update admin
func (c *PlatformController) Put() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
_admin := models.Admin{Token: token}
_ = o.Read(&_admin, "Token")
// is admin ?
if _admin.Root != 1 {
c.Data["json"] = utils.ResponseError(c.Ctx, "更新失败,无权限更新", nil)
c.ServeJSON()
return
}
// request body
platform := models.Platform{}
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &platform); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", nil)
c.ServeJSON()
return
}
// admin exist
if err := o.Read(&models.Platform{ID: platform.ID}); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "更新失败,数据不存在!", err)
c.ServeJSON()
return
}
// validation
valid := validation.Validation{}
valid.Required(platform.ID, "id").Message("平台ID不能为空!")
valid.Min(platform.ID, 7, "id").Message("默认配置平台不能修改!")
valid.Required(platform.Title, "title").Message("平台名不能为空!")
valid.MaxSize(platform.Title, 30, "title").Message("平台名不能超过30个字符!")
valid.AlphaNumeric(platform.Alias, "alias").Message("别名不能含有中文和特别符号!")
valid.Required(platform.Alias, "alias").Message("别名不能为空!")
valid.MaxSize(platform.Alias, 30, "alias").Message("别名不能超过30个字符!")
if valid.HasErrors() {
for _, err := range valid.Errors {
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
// title exist
var pt models.Platform
if err := o.Raw("SELECT * FROM platform WHERE id != ? AND title = ?", platform.ID, platform.Title).QueryRow(&pt); err == nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "平台名已被使用,请换一个试试!", err)
c.ServeJSON()
return
}
// Alias exist
if err := o.Raw("SELECT * FROM platform WHERE id != ? AND alias = ?", platform.ID, platform.Alias).QueryRow(&pt); err == nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "别名已被使用,请换一个试试!", err)
c.ServeJSON()
return
}
if _, err := o.Update(&platform, "Title", "Alias"); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "更新失败!", err)
} else {
platform.System = 0
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "更新成功!", &platform)
}
c.ServeJSON()
}
// Post add new admin
func (c *PlatformController) Post() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
_admin := models.Admin{Token: token}
_ = o.Read(&_admin, "Token")
if _admin.Root != 1 {
c.Data["json"] = utils.ResponseError(c.Ctx, "您没有权限添加平台!", nil)
c.ServeJSON()
return
}
// request body
var platform models.Platform
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &platform); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", nil)
c.ServeJSON()
return
}
// validation
valid := validation.Validation{}
valid.Required(platform.Title, "title").Message("平台名不能为空!")
valid.MaxSize(platform.Title, 30, "title").Message("平台名不能超过30个字符!")
valid.Required(platform.Alias, "alias").Message("别名不能为空!")
valid.AlphaNumeric(platform.Alias, "alias").Message("别名不能含有中文和特别符号!")
valid.MaxSize(platform.Alias, 30, "alias").Message("别名不能超过30个字符!")
if valid.HasErrors() {
for _, err := range valid.Errors {
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
var pt models.Platform
if err := o.Raw("SELECT * FROM platform WHERE id != ? AND alias = ?", platform.ID, platform.Alias).QueryRow(&pt); err == nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "别名已被使用,请换一个试试!", err)
c.ServeJSON()
return
}
// exist ? and create
platform.ID = 0
if isExist, _, err := o.ReadOrCreate(&platform, "Title"); err == nil {
if isExist {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "添加成功!", nil)
} else {
c.Data["json"] = utils.ResponseError(c.Ctx, "平台名已被使用,请换一个试试!", nil)
}
} else {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "服务异常", err)
}
c.ServeJSON()
return
}
// Delete delete remove admin
func (c *PlatformController) Delete() {
o := orm.NewOrm()
id, _ := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64)
token := c.Ctx.Input.Header("Authorization")
_admin := models.Admin{Token: token}
_ = o.Read(&_admin, "Token")
if _admin.Root != 1 {
c.Data["json"] = utils.ResponseError(c.Ctx, "您没有权限删除平台!", nil)
c.ServeJSON()
return
}
// platform
platform := models.Platform{ID: id}
// exist
if err := o.Read(&platform); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "删除失败,平台不存在!", err)
c.ServeJSON()
return
}
if num, err := o.Delete(&platform); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "删除失败!", nil)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "删除成功!", num)
}
c.ServeJSON()
}
// List get admin all
func (c *PlatformController) List() {
o := orm.NewOrm()
var platforms []models.Platform
qs := o.QueryTable(new(models.Platform))
if _, err := qs.OrderBy("id").All(&platforms); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败!", err)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &platforms)
}
c.ServeJSON()
}
package controllers
import (
"encoding/base64"
"encoding/json"
"fmt"
"kefu_server/im"
"kefu_server/models"
"kefu_server/utils"
"math/rand"
"os"
"path"
"strconv"
"strings"
"time"
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/orm"
"github.com/qiniu/api.v7/auth/qbox"
"github.com/qiniu/api.v7/storage"
)
// PublicController struct
type PublicController struct {
beego.Controller
}
// Register mimc and user
func (c *PublicController) Register() {
// request body
var sessionRequest models.SessionRequest
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &sessionRequest); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", nil)
c.ServeJSON()
return
}
// type
if sessionRequest.Type > 1 || sessionRequest.Type < 0 {
c.Data["json"] = utils.ResponseError(c.Ctx, "type类型错误!", nil)
c.ServeJSON()
return
}
o := orm.NewOrm()
var (
fetchResult string
fetchError error
)
// user
var user models.User
if sessionRequest.Type == 0 {
// platfrom id exist
if count, err := o.QueryTable(new(models.Platform)).Filter("id", sessionRequest.Platform).Count(); count <= 0 || sessionRequest.Platform == 1 {
c.Data["json"] = utils.ResponseError(c.Ctx, "注册失败,该平台ID不存在!", &err)
c.ServeJSON()
return
}
user = models.User{ID: sessionRequest.AccountID, UID: sessionRequest.UID, Platform: sessionRequest.Platform, Address: sessionRequest.Address}
/// old user
if err := o.QueryTable(new(models.User)).Filter("platform", sessionRequest.Platform).Filter("id", sessionRequest.AccountID).One(&user); err == nil {
user.Online = 1
user.UID = sessionRequest.UID
user.Address = sessionRequest.Address
user.Platform = sessionRequest.Platform
user.LastActivity = time.Now().Unix()
_, _ = o.Update(&user)
fetchResult, fetchError = im.GetMiMcToken(strconv.FormatInt(user.ID, 10))
} else {
// create new user
user.CreateAt = time.Now().Unix()
user.ID = 0
user.Online = 1
user.LastActivity = time.Now().Unix()
user.Address = sessionRequest.Address
if accountID, err := o.Insert(&user); err == nil {
user.NickName = "访客" + strconv.FormatInt(accountID, 10)
_, _ = o.Update(&user)
fetchResult, fetchError = im.GetMiMcToken(strconv.FormatInt(accountID, 10))
} else {
logs.Info(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "服务异常,请稍后重试!", err)
c.ServeJSON()
return
}
}
} else {
// is service
token := c.Ctx.Input.Header("Authorization")
// admin
admin := models.Admin{Token: token}
if err := o.Read(&admin, "Token"); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "客服不存在!", err)
c.ServeJSON()
return
}
fetchResult, fetchError = im.GetMiMcToken(strconv.FormatInt(admin.ID, 10))
}
if fetchError != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "注册失败!", &fetchError)
c.ServeJSON()
return
}
imToken := new(models.IMToken)
if err := json.Unmarshal([]byte(fetchResult), &imToken); err != nil {
logs.Info(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "注册失败!", &err)
c.ServeJSON()
return
}
type successData struct {
Token interface{} `json:"token"`
User interface{} `json:"user"`
}
var resData successData
if sessionRequest.Type == 0 {
resData = successData{Token: &imToken, User: &user}
} else {
resData = successData{Token: &imToken, User: nil}
}
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "获取成功!", &resData)
c.ServeJSON()
}
// Read get user read count
func (c *PublicController) Read() {
o := orm.NewOrm()
id, _ := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64)
qs := o.QueryTable(new(models.Message))
var readCount int64
if _count, err := qs.Filter("to_account", id).Filter("read", 1).Count(); err == nil {
readCount = _count
} else {
readCount = 0
}
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &readCount)
c.ServeJSON()
}
// Window set user window
func (c *PublicController) Window() {
o := orm.NewOrm()
type WindowType struct {
Window int `json:"window"`
}
var wType WindowType
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &wType); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "更新失败!", nil)
return
}
id, _ := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64)
user := models.User{ID: id}
if err := o.Read(&user); err != nil {
logs.Info(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "更新失败!", nil)
} else {
user.IsWindow = wType.Window
_, _ = o.Update(&user)
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "更新成功!", nil)
}
c.ServeJSON()
}
// CleanRead clean user read
func (c *PublicController) CleanRead() {
o := orm.NewOrm()
id, _ := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64)
if _, err := o.Raw("UPDATE `message` SET `read` = 0 WHERE `to_account` = ?", id).Exec(); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "执行失败!", err)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "执行成功!", nil)
}
c.ServeJSON()
}
// Robot get robot
func (c *PublicController) Robot() {
o := orm.NewOrm()
// request body
platformID, _ := strconv.ParseInt(c.Ctx.Input.Param(":platform"), 10, 64)
var robots []*models.Robot
qs := o.QueryTable(new(models.Robot))
_, _ = qs.Filter("platform__in", platformID, 1).Filter("switch", 1).All(&robots)
if len(robots) > 0 {
robot := robots[rand.Intn(len(robots))]
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &robot)
} else {
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败!", nil)
}
c.ServeJSON()
}
// RobotInfo get robot info
func (c *PublicController) RobotInfo() {
o := orm.NewOrm()
id, _ := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64)
// request
robot := models.Robot{ID: id}
if err := o.Read(&robot); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "获取失败!", err)
c.ServeJSON()
return
}
robot.Artificial = strings.Trim(robot.Artificial, "|")
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &robot)
c.ServeJSON()
}
// UploadSecretMode struct
type UploadSecretMode struct {
Mode int `json:"mode"`
Secret interface{} `json:"secret"`
Host string `json:"host"`
}
// UploadSecret update Secret
func (c *PublicController) UploadSecret() {
o := orm.NewOrm()
system := models.System{ID: 1}
if err := o.Read(&system); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败!", nil)
c.ServeJSON()
return
}
// System built-in storage
if system.UploadMode == 1 {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &UploadSecretMode{
Mode: system.UploadMode,
Secret: "",
Host: beego.AppConfig.String("static_host"),
})
c.ServeJSON()
// qiniu
} else if system.UploadMode == 2 {
qiniuSetting := models.QiniuSetting{ID: 1}
if err := o.Read(&qiniuSetting); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败!", nil)
c.ServeJSON()
return
}
putPolicy := storage.PutPolicy{
Scope: qiniuSetting.Bucket,
}
// 2 hours validity
putPolicy.Expires = 7200 * 12
mac := qbox.NewMac(qiniuSetting.AccessKey, qiniuSetting.SecretKey)
upToken := putPolicy.UploadToken(mac)
secretModeData := UploadSecretMode{Mode: system.UploadMode, Secret: upToken, Host: qiniuSetting.Host}
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &secretModeData)
// aliyun OSS
} else if system.UploadMode == 3 {
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", nil)
c.ServeJSON()
}
c.ServeJSON()
}
// LastActivity change last Activity
func (c *PublicController) LastActivity() {
o := orm.NewOrm()
uid, _ := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64)
if uid > 0 {
user := models.User{ID: uid}
user.LastActivity = time.Now().Unix()
if _, err := o.Update(&user, "LastActivity"); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "用户不存在!", &err)
c.ServeJSON()
return
}
} else {
// token
token := c.Ctx.Input.Header("Authorization")
admin := models.Admin{Token: token}
if err := o.Read(&admin, "Token"); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "用户不存在!", nil)
c.ServeJSON()
return
}
admin.LastActivity = time.Now().Unix()
if _, err := o.Update(&admin, "LastActivity"); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "用户不存在!", nil)
c.ServeJSON()
return
}
}
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "上报成功!", nil)
c.ServeJSON()
}
// GetCompanyInfo get Company info
func (c *PublicController) GetCompanyInfo() {
o := orm.NewOrm()
company := models.Company{ID: 1}
if err := o.Read(&company); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败!", err)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &company)
}
c.ServeJSON()
}
// PushMessage push message
func (c *PublicController) PushMessage() {
// PushMessage
type PushMessage struct {
MsgType string `json:"msgType"`
Payload string `json:"payload"`
}
var pushMessage PushMessage
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &pushMessage); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", nil)
c.ServeJSON()
return
}
// 判断是否是单聊消息
if pushMessage.MsgType != "NORMAL_MSG" {
c.ServeJSON()
return
}
// message
var getMessage models.Message
msgContent, _ := base64.StdEncoding.DecodeString(pushMessage.Payload)
msgContent, _ = base64.StdEncoding.DecodeString(string(msgContent))
json.Unmarshal(msgContent, &getMessage)
im.MessageInto(getMessage, false)
c.ServeJSON()
}
// Upload Upload image
func (c *PublicController) Upload() {
f, h, _ := c.GetFile("file")
fileName := c.GetString("file_name")
if fileName == "" {
c.Data["json"] = utils.ResponseError(c.Ctx, "上传失败", "file_name不能为空")
c.ServeJSON()
return
}
ext := path.Ext(h.Filename)
// Verify that the suffix name meets the requirements
var AllowExtMap map[string]bool = map[string]bool{
".jpg": true,
".jpeg": true,
".png": true,
}
if _, ok := AllowExtMap[ext]; !ok {
c.Data["json"] = utils.ResponseError(c.Ctx, "上传失败", "上传文件不合法")
c.ServeJSON()
return
}
// create dir
uploadDir := "static/uploads/images/"
err := os.MkdirAll(uploadDir, 777)
if err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "上传失败,创建文件夹失败", fmt.Sprintf("%v", err))
c.ServeJSON()
return
}
fpath := uploadDir + fileName
defer f.Close()
err = c.SaveToFile("file", fpath)
if err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "上传失败", fmt.Sprintf("%v", err))
c.ServeJSON()
return
}
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "上传成功", &fileName)
c.ServeJSON()
}
package controllers
import (
"encoding/json"
"kefu_server/models"
"kefu_server/utils"
"time"
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/orm"
"github.com/astaxie/beego/validation"
)
// QiniuController struct
type QiniuController struct {
beego.Controller
}
// Get get qiniu config info
func (c *QiniuController) Get() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
_admin := models.Admin{Token: token}
_ = o.Read(&_admin, "Token")
if _admin.Root != 1 {
c.Data["json"] = utils.ResponseError(c.Ctx, "您没有权限获取配置!", nil)
c.ServeJSON()
return
}
qiniuSetting := models.QiniuSetting{ID: 1}
if err := o.Read(&qiniuSetting); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败!", err)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &qiniuSetting)
}
c.ServeJSON()
}
// Put update
func (c *QiniuController) Put() {
qiniuSetting := models.QiniuSetting{}
qiniuSetting.UpdateAt = time.Now().Unix()
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &qiniuSetting); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", nil)
c.ServeJSON()
return
}
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
_admin := models.Admin{Token: token}
_ = o.Read(&_admin, "Token")
if _admin.Root != 1 {
c.Data["json"] = utils.ResponseError(c.Ctx, "您没有权限设置!", nil)
c.ServeJSON()
return
}
// validation
valid := validation.Validation{}
valid.Required(qiniuSetting.Bucket, "bucket").Message("bucket不能为空!")
valid.MaxSize(qiniuSetting.Bucket, 100, "bucket").Message("bucket不能超过100字符!")
valid.Required(qiniuSetting.AccessKey, "access_key").Message("access_key不能为空!")
valid.MaxSize(qiniuSetting.AccessKey, 100, "access_key").Message("access_key不能超过100字符!")
valid.Required(qiniuSetting.SecretKey, "secret_key").Message("secret_key不能为空!")
valid.MaxSize(qiniuSetting.SecretKey, 100, "secret_key").Message("secret_key不能超过100字符!")
valid.Required(qiniuSetting.Host, "host").Message("host不能为空!")
valid.MaxSize(qiniuSetting.Host, 100, "host").Message("host不能超过100字符!")
if valid.HasErrors() {
for _, err := range valid.Errors {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
qiniuSetting.ID = 1
qiniuSetting.UpdateAt = time.Now().Unix()
if _, err := o.Update(&qiniuSetting); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "更新失败!", err)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "更新成功!", &qiniuSetting)
}
c.ServeJSON()
}
package controllers
import (
"encoding/json"
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/orm"
"github.com/astaxie/beego/validation"
"kefu_server/im"
"kefu_server/models"
"kefu_server/utils"
"strconv"
"strings"
"time"
)
// RobotController struct
type RobotController struct {
beego.Controller
}
// Get get robot
func (c *RobotController) Get() {
o := orm.NewOrm()
id, _ := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64)
robot := models.Robot{ID: id}
if err := o.Read(&robot); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "获取失败!", err)
c.ServeJSON()
return
}
robot.Artificial = strings.Trim(robot.Artificial, "|")
robot.KeyWord = strings.Trim(robot.KeyWord, "|")
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &robot)
c.ServeJSON()
}
// Delete delete robot
func (c *RobotController) Delete() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
_admin := models.Admin{Token: token}
_ = o.Read(&_admin, "Token")
if _admin.Root != 1 {
c.Data["json"] = utils.ResponseError(c.Ctx, "您没有权限删除机器人!", nil)
c.ServeJSON()
return
}
id, _ := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64)
robot := models.Robot{ID: id}
// exist
if err := o.Read(&robot); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "删除失败,机器人不存在!", err)
c.ServeJSON()
return
}
if robot.System == 1 {
c.Data["json"] = utils.ResponseError(c.Ctx, "不能删除该机器人,系统保留!", nil)
c.ServeJSON()
return
}
if num, err := o.Delete(&robot); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "删除失败!", nil)
} else {
// init robots
im.RobotInit()
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "删除成功!", &num)
}
c.ServeJSON()
}
// Post add robot
func (c *RobotController) Post() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
_admin := models.Admin{Token: token}
_ = o.Read(&_admin, "Token")
if _admin.Root != 1 {
c.Data["json"] = utils.ResponseError(c.Ctx, "您没有权限添加机器人!", nil)
c.ServeJSON()
return
}
// request body
var robot models.Robot
robot.CreateAt = time.Now().Unix()
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &robot); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", err)
c.ServeJSON()
return
}
// exist robot?
oldRobot := models.Robot{NickName: robot.NickName}
if err := o.Read(&oldRobot, "NickName"); err == nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "已存在一个名为"+robot.NickName+"的机器人!", nil)
c.ServeJSON()
return
}
// validation
valid := validation.Validation{}
valid.Required(robot.Avatar, "avatar").Message("请设置一个机器人头像!")
valid.Required(robot.NickName, "nickname").Message("机器人名不能为空!")
valid.Required(robot.Welcome, "welcome").Message("请设置机器人欢迎语!")
valid.Required(robot.Understand, "understand").Message("请设置机器人无法识别回复语!")
valid.Required(robot.KeyWord, "keyword").Message("请设置检索知识库热词!")
valid.Required(robot.Artificial, "artificial").Message("请设置转人工关键字!")
if valid.HasErrors() {
for _, err := range valid.Errors {
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
// insert
robot.Artificial = strings.Trim(robot.Artificial, "|")
if robot.Artificial != "" {
robot.Artificial = "|" + robot.Artificial + "|"
}
robot.KeyWord = strings.Trim(robot.KeyWord, "|")
if robot.KeyWord != "" {
robot.KeyWord = "|" + robot.KeyWord + "|"
}
if id, err := o.Insert(&robot); err == nil {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "添加成功!", &id)
im.RobotInit()
} else {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "服务异常!", err)
}
c.ServeJSON()
}
// Put update robot
func (c *RobotController) Put() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
_admin := models.Admin{Token: token}
_ = o.Read(&_admin, "Token")
if _admin.Root != 1 {
c.Data["json"] = utils.ResponseError(c.Ctx, "您没有权限修改机器人!", nil)
c.ServeJSON()
return
}
// RequestBody
var robot models.Robot
robot.UpdateAt = time.Now().Unix()
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &robot); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", err)
c.ServeJSON()
return
}
// validation
valid := validation.Validation{}
valid.Required(robot.ID, "id").Message("机器人不存在!")
valid.Required(robot.Avatar, "avatar").Message("请设置一个机器人头像!")
valid.Required(robot.NickName, "nickname").Message("机器人名不能为空!")
valid.Required(robot.Welcome, "welcome").Message("请设置机器人欢迎语!")
valid.Required(robot.Understand, "understand").Message("请设置机器人无法识别回复语!")
valid.Required(robot.KeyWord, "keyword").Message("请设置检索知识库热词!")
valid.Required(robot.Artificial, "artificial").Message("请设置转人工关键字!")
if valid.HasErrors() {
for _, err := range valid.Errors {
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
// is change default robot ?
if robot.System == 1 && robot.Switch == 0 {
c.Data["json"] = utils.ResponseError(c.Ctx, "不能暂停该机器人!", nil)
c.ServeJSON()
return
}
// is change default robot ?
if robot.System == 1 && robot.Platform != 1 {
c.Data["json"] = utils.ResponseError(c.Ctx, "不能修改该机器人平台!", nil)
c.ServeJSON()
return
}
// exist
oldRobot := models.Robot{ID: robot.ID}
if err := o.Read(&oldRobot); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "机器人"+robot.NickName+"不存在", nil)
c.ServeJSON()
return
}
// robot name exist
oldRobot = models.Robot{NickName: robot.NickName}
if err := o.Read(&oldRobot, "NickName"); err == nil && oldRobot.ID != robot.ID {
c.Data["json"] = utils.ResponseError(c.Ctx, "已存在一个名为"+robot.NickName+"的机器人", nil)
c.ServeJSON()
return
}
// insert
robot.Artificial = strings.Trim(robot.Artificial, "|")
if robot.Artificial != "" {
robot.Artificial = "|" + robot.Artificial + "|"
}
robot.KeyWord = strings.Trim(robot.KeyWord, "|")
if robot.KeyWord != "" {
robot.KeyWord = "|" + robot.KeyWord + "|"
}
if _, err := o.Update(&robot, "NickName", "Avatar", "Welcome", "Understand", "Artificial", "Switch", "UpdateAt", "KeyWord", "TimeoutText", "NoServices", "LoogTimeWaitText"); err == nil {
robot.Artificial = strings.Trim(robot.Artificial, "|")
robot.KeyWord = strings.Trim(robot.KeyWord, "|")
robot.CreateAt = oldRobot.CreateAt
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "修改成功!", &robot)
im.RobotInit()
} else {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "修改失败!", err)
}
c.ServeJSON()
}
// List get robot all
func (c *RobotController) List() {
o := orm.NewOrm()
robot := new(models.Robot)
qs := o.QueryTable(robot)
// query
var lists []models.Robot
if _, err := qs.OrderBy("create_at").All(&lists); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败!", err)
c.ServeJSON()
return
}
for index := range lists {
lists[index].Artificial = strings.Trim(lists[index].Artificial, "|")
lists[index].KeyWord = strings.Trim(lists[index].KeyWord, "|")
}
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &lists)
c.ServeJSON()
}
package controllers
import (
"encoding/json"
"kefu_server/utils"
"time"
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/orm"
"github.com/astaxie/beego/validation"
)
// ServicesStatisticalController struct
type ServicesStatisticalController struct {
beego.Controller
}
// ServicesStatisticalPaginationData struct
type ServicesStatisticalPaginationData struct {
PageSize int `json:"page_size"`
PageOn int `json:"page_on"`
Cid int64 `json:"cid"`
Date string `json:"date"`
IsDeWeighting bool `json:"is_de_weighting"`
Total int64 `json:"total"`
List interface{} `json:"list"`
}
// List Services Statistical
func (c *ServicesStatisticalController) List() {
// request body
var paginationData ServicesStatisticalPaginationData
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &paginationData); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", err)
c.ServeJSON()
return
}
// validation
valid := validation.Validation{}
valid.Required(paginationData.PageOn, "page_on").Message("page_on不能为空!")
valid.Required(paginationData.PageSize, "page_size").Message("page_size不能为空!")
valid.Required(paginationData.Cid, "cid").Message("cid不能为空!")
valid.Required(paginationData.Date, "date").Message("date不能为空!")
if valid.HasErrors() {
for _, err := range valid.Errors {
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
o := orm.NewOrm()
layoutDate := "2006-01-02 15:04:05"
loc, _ := time.LoadLocation("Local")
startDateStr := paginationData.Date + " 00:00:00"
endDateStr := paginationData.Date + " 23:59:59"
startDate, _ := time.ParseInLocation(layoutDate, startDateStr, loc)
endDate, _ := time.ParseInLocation(layoutDate, endDateStr, loc)
var params []orm.Params
type TotalModel struct {
Count int64
}
var totalModel TotalModel
// Deduplication
addSQL := " COUNT(*) "
if paginationData.IsDeWeighting {
addSQL = " count(distinct user_account) "
}
o.Raw("SELECT "+addSQL+" AS `count` FROM services_statistical AS s INNER JOIN (SELECT * FROM `user`) AS u ON s.user_account = u.id AND s.service_account = ? AND s.create_at > ? AND s.create_at < ?", paginationData.Cid, startDate.Unix(), endDate.Unix()).QueryRow(&totalModel)
paginationData.Total = totalModel.Count
// Deduplication
addSQL1 := " "
if paginationData.IsDeWeighting {
addSQL1 = " GROUP BY `user_account` "
}
if counter, _ := o.Raw("SELECT s.id, s.user_account, s.service_account,s.create_at, s.transfer_account,s.platform,u.nickname FROM services_statistical AS s INNER JOIN (SELECT * FROM `user` ) AS u ON s.user_account = u.id AND s.service_account = ? AND s.create_at > ? AND s.create_at < ? "+addSQL1+" ORDER BY s.create_at DESC LIMIT ?,?", paginationData.Cid, startDate.Unix(), endDate.Unix(), (paginationData.PageOn-1)*paginationData.PageSize, paginationData.PageSize).Values(&params); counter <= 0 {
paginationData.List = []string{}
c.Data["json"] = paginationData
} else {
paginationData.List = params
c.Data["json"] = paginationData
}
c.ServeJSON()
}
package controllers
import (
"encoding/base64"
"encoding/json"
"kefu_server/models"
"kefu_server/utils"
"strconv"
"time"
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/orm"
"github.com/astaxie/beego/validation"
)
// ShortcutController struct
type ShortcutController struct {
beego.Controller
}
// Get get shortcut
func (c *ShortcutController) Get() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
_admin := models.Admin{Token: token}
_ = o.Read(&_admin, "Token")
id, _ := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64)
shortcut := models.Shortcut{ID: id}
if err := o.Read(&shortcut); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败,内容不存在!", err)
} else {
if _admin.ID != shortcut.UID {
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败,内容不存在!", nil)
} else {
title, _ := base64.StdEncoding.DecodeString(shortcut.Title)
content, _ := base64.StdEncoding.DecodeString(shortcut.Content)
shortcut.Title = string(title)
shortcut.Content = string(content)
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &shortcut)
}
}
c.ServeJSON()
}
// Put update shortcut
func (c *ShortcutController) Put() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
_admin := models.Admin{Token: token}
_ = o.Read(&_admin, "Token")
// request body
shortcut := models.Shortcut{}
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &shortcut); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", nil)
c.ServeJSON()
return
}
// validation
valid := validation.Validation{}
valid.Required(shortcut.Title, "title").Message("标题不能为空!")
valid.Required(shortcut.Content, "content").Message("内容不能为空!")
if valid.HasErrors() {
for _, err := range valid.Errors {
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
oldShortcut := models.Shortcut{ID: shortcut.ID}
_ = o.Read(&oldShortcut)
if oldShortcut.UID != _admin.ID {
c.Data["json"] = utils.ResponseError(c.Ctx, "更新失败,内容不存在!", nil)
c.ServeJSON()
return
}
// update
shortcut.Title = base64.StdEncoding.EncodeToString([]byte(shortcut.Title))
shortcut.Content = base64.StdEncoding.EncodeToString([]byte(shortcut.Content))
if _, err := o.Update(&shortcut, "UpdateAt", "Content", "Title"); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "更新失败!", err)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "更新成功!", nil)
}
c.ServeJSON()
}
// Post add new shortcut
func (c *ShortcutController) Post() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
_admin := models.Admin{Token: token}
_ = o.Read(&_admin, "Token")
// request body
var shortcut models.Shortcut
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &shortcut); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", nil)
c.ServeJSON()
return
}
// validation
valid := validation.Validation{}
valid.Required(shortcut.Title, "title").Message("标题不能为空!")
valid.Required(shortcut.Content, "content").Message("内容不能为空!")
if valid.HasErrors() {
for _, err := range valid.Errors {
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
// exist ? create
shortcut.UID = _admin.ID
shortcut.CreateAt = time.Now().Unix()
shortcut.Title = base64.StdEncoding.EncodeToString([]byte(shortcut.Title))
shortcut.Content = base64.StdEncoding.EncodeToString([]byte(shortcut.Content))
if isExist, createID, err := o.ReadOrCreate(&shortcut, "Title", "Uid"); err == nil {
if isExist {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "添加成功!", &createID)
} else {
c.Data["json"] = utils.ResponseError(c.Ctx, "已存在相同的内容!", nil)
}
} else {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "服务异常!", err)
}
c.ServeJSON()
return
}
// Delete delete remove shortcut
func (c *ShortcutController) Delete() {
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
_admin := models.Admin{Token: token}
_ = o.Read(&_admin, "Token")
id, _ := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64)
shortcut := models.Shortcut{ID: id}
// exist
if err := o.Read(&shortcut); err != nil || shortcut.UID != _admin.ID {
c.Data["json"] = utils.ResponseError(c.Ctx, "删除失败,内容不存在!", nil)
c.ServeJSON()
return
}
if num, err := o.Delete(&shortcut); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "删除失败!", nil)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "删除成功!", &num)
}
c.ServeJSON()
}
// List get shortcut all
func (c *ShortcutController) List() {
o := orm.NewOrm()
shortcut := new(models.Shortcut)
qs := o.QueryTable(shortcut)
token := c.Ctx.Input.Header("Authorization")
_admin := models.Admin{Token: token}
_ = o.Read(&_admin, "Token")
// query
var lists []models.Shortcut
if _, err := qs.Filter("uid", _admin.ID).OrderBy("-create_at").All(&lists); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败!", err)
c.ServeJSON()
return
}
// base 64转换回来
for index, shortcut := range lists {
title, _ := base64.StdEncoding.DecodeString(shortcut.Title)
content, _ := base64.StdEncoding.DecodeString(shortcut.Content)
lists[index].Title = string(title)
lists[index].Content = string(content)
}
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &lists)
c.ServeJSON()
}
package controllers
import (
"encoding/json"
"kefu_server/models"
"kefu_server/utils"
"time"
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/orm"
"github.com/astaxie/beego/validation"
)
// SystemController struct
type SystemController struct {
beego.Controller
}
// Get get info
func (c *SystemController) Get() {
o := orm.NewOrm()
system := models.System{ID: 1}
if err := o.Read(&system); err != nil {
logs.Error(err)
c.Data["json"] = &models.Response{Code: 400, Message: "查询失败", Data: err}
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &system)
}
c.ServeJSON()
}
// Put update system
func (c *SystemController) Put() {
system := models.System{}
system.UpdateAt = time.Now().Unix()
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &system); err != nil {
logs.Error(err)
c.Data["json"] = &models.Response{Code: 400, Message: "参数错误", Data: nil}
c.ServeJSON()
return
}
o := orm.NewOrm()
token := c.Ctx.Input.Header("Authorization")
_admin := models.Admin{Token: token}
_ = o.Read(&_admin, "Token")
if _admin.Root != 1 {
c.Data["json"] = utils.ResponseError(c.Ctx, "您没有权限修改系统设置!", nil)
c.ServeJSON()
return
}
// validation upload mode
var uploadValues []orm.Params
_, _ = o.Raw("SELECT * FROM uploads_config where id = ?", system.UploadMode).Values(&uploadValues)
if len(uploadValues) <= 0 {
c.Data["json"] = utils.ResponseError(c.Ctx, "上传模型选项不存在!", nil)
c.ServeJSON()
return
}
// validation request
valid := validation.Validation{}
valid.Required(system.Title, "title").Message("系统名称不能为空!")
valid.MaxSize(system.Title, 50, "title").Message("系统名称不能超过50个字符!")
valid.MaxSize(system.CopyRight, 80, "copy_right").Message("版权信息不能超过80个字符!")
valid.Required(system.Logo, "logo").Message("系统LOGO不能为空!")
if valid.HasErrors() {
for _, err := range valid.Errors {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
system.ID = 1
system.UpdateAt = time.Now().Unix()
if _, err := o.Update(&system); err != nil {
logs.Error(err)
c.Data["json"] = utils.ResponseError(c.Ctx, "更新失败", err)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "更新成功!", &system)
}
c.ServeJSON()
}
package controllers
import (
"kefu_server/models"
"kefu_server/utils"
"github.com/astaxie/beego"
"github.com/astaxie/beego/orm"
)
// UploadsConfigController struct
type UploadsConfigController struct {
beego.Controller
}
// Config get upload config
func (c *UploadsConfigController) Config() {
o := orm.NewOrm()
var configs []models.UploadsConfig
if _, err := o.QueryTable(new(models.UploadsConfig)).All(&configs); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败", err)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &configs)
}
c.ServeJSON()
}
package controllers
import (
"encoding/json"
"kefu_server/models"
"kefu_server/utils"
"strconv"
"time"
"github.com/astaxie/beego"
"github.com/astaxie/beego/orm"
"github.com/astaxie/beego/validation"
)
// UserController struct
type UserController struct {
beego.Controller
}
// Get get a user
func (c *UserController) Get() {
o := orm.NewOrm()
id, _ := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64)
user := models.User{ID: id}
if err := o.Read(&user); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败,用户不存在!", err)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &user)
}
c.ServeJSON()
}
// Put update a user
func (c *UserController) Put() {
// request
user := models.User{}
user.UpdateAt = time.Now().Unix()
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &user); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误!", err)
c.ServeJSON()
return
}
// validation
valid := validation.Validation{}
valid.Required(user.ID, "id").Message("用户ID不能为空!")
valid.MaxSize(user.Address, 80, "address").Message("用户所在地区不能超过80个字符!")
valid.MaxSize(user.NickName, 15, "nickname").Message("用户昵称不能超过15个字符!")
valid.MaxSize(user.Phone, 20, "phone").Message("用户联系方式不能超过20个字符!")
valid.MaxSize(user.Remarks, 150, "remarks").Message("用户备注不能超过150个字符!")
if valid.HasErrors() {
for _, err := range valid.Errors {
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
// orm
o := orm.NewOrm()
if _, err := o.Update(&user, "Address", "NickName", "Phone", "Remarks", "UpdateAt", "UpdateAt", "Avatar"); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "更新失败!", nil)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "更新成功!", &user)
}
c.ServeJSON()
}
// Post add new user
// 用户创建 请移步(此处暂不提供创建用户逻辑) /v1/im/register
func (c *UserController) Post() {
c.ServeJSON()
}
// Delete delete remove user
func (c *UserController) Delete() {
// orm instance
o := orm.NewOrm()
id, _ := strconv.ParseInt(c.Ctx.Input.Param(":id"), 10, 64)
// is admin ?
token := c.Ctx.Input.Header("Authorization")
_admin := models.Admin{Token: token}
_ = o.Read(&_admin, "Token")
if _admin.Root != 1 {
c.Data["json"] = utils.ResponseError(c.Ctx, "您没有权限删除用户!", nil)
c.ServeJSON()
return
}
// user
user := models.User{ID: id}
// exist
if err := o.Read(&user); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "删除失败,用户不存在!", err)
c.ServeJSON()
return
}
if num, err := o.Delete(&user); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "删除失败!", nil)
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "删除成功!", &num)
}
c.ServeJSON()
}
// UsersPaginationData struct
type UsersPaginationData struct {
PageSize int `json:"page_size"`
PageOn int `json:"page_on"`
Keyword string `json:"keyword"`
Total int64 `json:"total"`
Platform int64 `json:"platform"`
DateStart string `json:"date_start"`
DateEnd string `json:"date_end"`
List interface{} `json:"list"`
}
// Users get users
func (c *UserController) Users() {
// request body
var usersPaginationData UsersPaginationData
if err := json.Unmarshal(c.Ctx.Input.RequestBody, &usersPaginationData); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "参数错误", err)
c.ServeJSON()
return
}
// validation
valid := validation.Validation{}
valid.Required(usersPaginationData.PageOn, "page_on").Message("page_on不能为空!")
valid.Required(usersPaginationData.PageSize, "page_size").Message("page_size不能为空!")
if valid.HasErrors() {
for _, err := range valid.Errors {
c.Data["json"] = utils.ResponseError(c.Ctx, err.Message, nil)
break
}
c.ServeJSON()
return
}
// orm instance
o := orm.NewOrm()
qs := o.QueryTable(new(models.User))
cond := orm.NewCondition()
var cond1 *orm.Condition
var cond2 *orm.Condition
if usersPaginationData.Keyword != "" {
cond1 = cond.Or("nickname__icontains", usersPaginationData.Keyword).Or("phone__icontains", usersPaginationData.Keyword).Or("remarks__icontains", usersPaginationData.Keyword)
}
// exist platfrom id?
if usersPaginationData.Platform != 0 && usersPaginationData.Platform != 1 {
cond2 = cond.And("platform", usersPaginationData.Platform)
}
// exist platfrom date?
if usersPaginationData.DateStart != "" && usersPaginationData.DateEnd != "" {
layoutDate := "2006-01-02 15:04:05"
loc, _ := time.LoadLocation("Local")
dateStartString := usersPaginationData.DateStart + " 00:00:00"
dateEndString := usersPaginationData.DateEnd + " 23:59:59"
dateStart, _ := time.ParseInLocation(layoutDate, dateStartString, loc)
dateEnd, _ := time.ParseInLocation(layoutDate, dateEndString, loc)
cond2 = cond2.And("create_at__gte", dateStart.Unix()).And("create_at__lte", dateEnd.Unix())
}
// query
var lists []models.User
cond3 := cond.AndCond(cond2).OrCond(cond1)
qs = qs.SetCond(cond3)
qs = qs.OrderBy("-online", "-create_at").Limit(usersPaginationData.PageSize)
if _, err := qs.Offset((usersPaginationData.PageOn - 1) * usersPaginationData.PageSize).All(&lists); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败", err)
c.ServeJSON()
return
}
total, _ := qs.Count()
usersPaginationData.Total = total
usersPaginationData.List = &lists
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", &usersPaginationData)
c.ServeJSON()
}
// OnLineCount get all online user count
func (c *UserController) OnLineCount() {
o := orm.NewOrm()
if onLineCount, err := o.QueryTable(models.User{}).Filter("online", 1).Count(); err != nil {
c.Data["json"] = utils.ResponseError(c.Ctx, "查询失败!", nil)
c.ServeJSON()
} else {
c.Data["json"] = utils.ResponseSuccess(c.Ctx, "查询成功!", onLineCount)
c.ServeJSON()
}
}
package filters
import (
"kefu_server/models"
"kefu_server/utils"
"math/big"
"regexp"
"strconv"
"strings"
"time"
"github.com/astaxie/beego/context"
"github.com/astaxie/beego/orm"
)
// 判断用户是否带有token
func err401(ctx *context.Context) {
ctx.Output.Header("Content-Type", "application/json")
ctx.ResponseWriter.WriteHeader(401)
_ = ctx.Output.Body([]byte("{\"code\": \"401\", \"message\": \"未登录,或登录已失效\", \"data\": \"token expired\"}"))
}
// FilterToken token
var FilterToken = func(ctx *context.Context) {
// 地址白名单
whitelist := []string{
"/v1/auth/login",
"/v1/auth/logout",
}
oldToken := ctx.Input.Header("Authorization")
isExistInSlice := utils.InExistInSlice(ctx.Request.RequestURI, whitelist)
isMatch, _ := regexp.MatchString(`^Bearer\s`, oldToken)
if (isExistInSlice == false && oldToken == "") || !isMatch {
err401(ctx)
return
}
if isExistInSlice == false && oldToken != "" {
token := strings.Split(oldToken, " ")[1]
admin := models.Admin{Token: oldToken}
o := orm.NewOrm()
if err := o.Read(&admin, "Token"); err != nil {
err401(ctx)
return
}
if err := utils.ValidateToken(token); err != nil {
err401(ctx)
return
}
}
// 判断是否需要刷新token
token := strings.Split(oldToken, " ")[1]
parmMap, err := utils.DecodeToken(token)
if err != nil {
err401(ctx)
return
}
newNum := big.NewRat(1, 1)
newNum.SetFloat64(parmMap["exp"].(float64))
exp, _ := strconv.ParseInt(newNum.FloatString(0), 10, 64)
// 该换token了
if time.Now().Unix()+60*60*2 >= exp {
if newToken, err := utils.RefreshToken(token); err == nil {
ctx.Output.Header("Authorization", newToken)
}
}
ctx.Output.Header("Authorization", oldToken)
}
# ! /bin/sh
SERVICE_PATH="/home/kefu_server"
SERVICE_NAME="kefu_server"
START_CMD="nohup ./$SERVICE_NAME &"
LOG_FILE="restart.log"
cd $SERVICE_PATH
pwd
while true
do
procnum=`ps -ef|grep $SERVICE_NAME|grep -v grep|wc -l`
if [ $procnum -eq 0 ]
then
echo "start service...................."
echo `date +%Y-%m-%d` `date +%H:%M:%S` $SERVICE_NAME >>$LOG_FILE
${START_CMD}
fi
sleep 5
done
package im
import (
"encoding/base64"
"encoding/json"
"kefu_server/models"
"strconv"
"time"
"github.com/Xiaomi-mimc/mimc-go-sdk"
"github.com/astaxie/beego/orm"
)
// PushNewContacts 推送最新聊天列表给客服
func PushNewContacts(accountID int64, robot *mimc.MCUser) {
o := orm.NewOrm()
var contactData []models.ContactData
// 消息体
message := models.Message{}
message.BizType = "contacts"
robotAccount, _ := strconv.ParseInt(robot.AppAccount(), 10, 64)
message.FromAccount = robotAccount
message.Timestamp = time.Now().Unix()
rCount, _ := o.Raw("SELECT c.id AS cid,c.to_account,c.is_session_end, c.last_message,c.last_message_type,c.from_account, c.create_at AS contact_create_at,u.*, IFNULL(m.`count`,0) AS `read` FROM `contact` c LEFT JOIN `user` u ON c.from_account = u.id LEFT JOIN (SELECT to_account,from_account, COUNT(*) as `count` FROM message WHERE `read` = 1 GROUP BY to_account,from_account) m ON m.to_account = c.to_account AND m.from_account = c.from_account WHERE c.to_account = ? AND c.delete = 0 ORDER BY c.create_at DESC", accountID).QueryRows(&contactData)
if rCount == 0 {
contactData = []models.ContactData{}
}
// base 64转换回来
for index, contact := range contactData {
payload, _ := base64.StdEncoding.DecodeString(contact.LastMessage)
contactData[index].LastMessage = string(payload)
}
message.ToAccount = accountID
messageContentByte, _ := json.Marshal(contactData)
message.Payload = string(messageContentByte)
messageJSON, _ := json.Marshal(message)
messageString := base64.StdEncoding.EncodeToString([]byte(messageJSON))
robot.SendMessage(strconv.FormatInt(accountID, 10), []byte(messageString))
}
package im
import (
"container/list"
"encoding/base64"
"encoding/json"
"kefu_server/models"
msg "github.com/Xiaomi-mimc/mimc-go-sdk/message"
)
// MsgHandler ...
type MsgHandler struct {
appAccount string
}
// NewMsgHandler ...
func NewMsgHandler(appAccount string) *MsgHandler {
return &MsgHandler{appAccount}
}
// HandleMessage ...
func (c MsgHandler) HandleMessage(packets *list.List) {
for ele := packets.Front(); ele != nil; ele = ele.Next() {
// 收到的原始消息
p2pMsg := ele.Value.(*msg.P2PMessage)
// 取出用户发的消息内容
var message models.Message
msgContent, _ := base64.StdEncoding.DecodeString(string(p2pMsg.Payload()))
//logs.Info("收到消息", *p2pMsg.FromAccount(), *p2pMsg.ToAccount(), *p2pMsg.Timestamp(),*p2pMsg.PacketId(),*p2pMsg.Sequence())
_ = json.Unmarshal(msgContent, &message)
MessageP2P(message)
}
}
// HandleGroupMessage 下面可以自己去实现一些东西(顾名思义MIMC接口)
func (c MsgHandler) HandleGroupMessage(packets *list.List) {
//for ele := packets.Front(); ele != nil; ele = ele.Next() {
// p2tmsg := ele.Value.(*msg.P2TMessage)
// logger.Info("[%v] [handle p2t msg]%v -> %v: %v, pcktId: %v, timestamp: %v.", c.appAccount, *(p2tmsg.FromAccount()), *(p2tmsg.GroupId()), string(p2tmsg.Payload()), *(p2tmsg.PacketId()), *(p2tmsg.Timestamp()))
//}
}
// HandleServerAck ...
func (c MsgHandler) HandleServerAck(packetID *string, sequence, timestamp *int64, errMsg *string) {
//logs.Info("[%v] [handle server ack] packetId:%v, seqId: %v, timestamp:%v.", c.appAccount, *packetId, *sequence, *timestamp)
}
// HandleSendMessageTimeout ...
func (c MsgHandler) HandleSendMessageTimeout(message *msg.P2PMessage) {
//logs.Info("[%v] [handle p2pmsg timeout] packetId:%v, msg:%v, time: %v.", c.appAccount, *(message.PacketId()), string(message.Payload()), time.Now())
}
// HandleSendGroupMessageTimeout ...
func (c MsgHandler) HandleSendGroupMessageTimeout(message *msg.P2TMessage) {
// logger.Info("[%v] [handle p2tmsg timeout] packetId:%v, msg:%v.", c.appAccount, *(message.PacketId()), string(message.Payload()))
}
package im
import "github.com/astaxie/beego/logs"
// StatusHandler struct
type StatusHandler struct {
appAccount string
}
// NewStatusHandler newStatusHandler
func NewStatusHandler(appAccount string) *StatusHandler {
return &StatusHandler{appAccount}
}
// HandleChange handleChange
func (c StatusHandler) HandleChange(isOnline bool, errType, errReason, errDescription *string) {
if isOnline {
logs.Info("机器人霸道上线 status changed: online.", "")
} else {
// 有机器人掉线,重新登录
logs.Error("[机器人挂掉了] status changed: offline,errType:%v, errReason:%v, errDes:%v", *errType, *errReason, *errDescription)
}
}
package im
import (
"bytes"
"encoding/json"
"io/ioutil"
"net/http"
"strings"
"github.com/astaxie/beego"
)
// NewTokenHandler ...
func NewTokenHandler(appAccount string) *TokenHandler {
tokenHandler := new(TokenHandler)
tokenHandler.httpURL = beego.AppConfig.String("mimc_HttpUrl")
tokenHandler.AppID, _ = beego.AppConfig.Int64("mimc_appId")
tokenHandler.AppKey = beego.AppConfig.String("mimc_appKey")
tokenHandler.AppSecret = beego.AppConfig.String("mimc_appSecret")
tokenHandler.AppAccount = appAccount
return tokenHandler
}
// FetchToken ...
func (c *TokenHandler) FetchToken() *string {
jsonBytes, err := json.Marshal(*c)
if err != nil {
return nil
}
requestJSONBodygo := bytes.NewBuffer(jsonBytes).String()
request, err := http.Post(c.httpURL, "application/json", strings.NewReader(requestJSONBodygo))
if err != nil {
return nil
}
defer request.Body.Close()
body, err := ioutil.ReadAll(request.Body)
if err != nil {
return nil
}
token := string(body)
return &token
}
package im
import (
"encoding/base64"
"kefu_server/models"
"strconv"
"time"
"github.com/astaxie/beego/orm"
)
// MessageInto push message
func MessageInto(message models.Message, isKF bool) {
// orm instance
o := orm.NewOrm()
// 不处理的类型
if message.BizType == "contacts" || message.BizType == "pong" || message.BizType == "welcome" || message.BizType == "into" || message.BizType == "search_knowledge" {
return
}
// 判断是否是撤回消息(删掉数据库消息)
if message.BizType == "cancel" {
key, _ := strconv.ParseInt(message.Payload, 10, 64)
_, _ = o.Raw("DELETE FROM message WHERE from_account = ? AND to_account = ? AND `key` = ?", message.FromAccount, message.ToAccount, key).Exec()
}
// message create time
message.Timestamp = time.Now().Unix()
// content内容转base64
message.Payload = base64.StdEncoding.EncodeToString([]byte(message.Payload))
// 过滤掉下面类型的消息不入库
if !(message.BizType == "handshake") {
if !isKF {
// 默认已读消息
message.Read = 0
user := models.User{ID: message.ToAccount}
if err := o.Read(&user); err == nil && user.Online == 0 {
message.Read = 1
}
if user.IsWindow == 0 {
message.Read = 1
}
}
// message.BizType == "end" is not read
if message.BizType == "end" || message.BizType == "timeout" {
message.Read = 0
}
// 消息入库
_, _ = o.Insert(&message)
}
// 判断是否和机器人对话(不处理聊天列表)
var r []orm.Params
robotCount, _ := o.Raw("SELECT * FROM robot WHERE id IN(?, ?)", message.ToAccount, message.FromAccount).Values(&r)
if robotCount > 0 {
return
}
// 处理客服聊天列表
var contact models.Contact
qs := o.QueryTable(new(models.Contact))
if err := qs.Filter("from_account__in", message.FromAccount, message.ToAccount).Filter("to_account__in", message.ToAccount, message.FromAccount).One(&contact); err != nil {
contact.ToAccount = message.ToAccount
contact.FromAccount = message.FromAccount
contact.LastMessageType = message.BizType
contact.CreateAt = time.Now().Unix()
contact.LastMessage = message.Payload
o.Insert(&contact)
} else {
contact.LastMessageType = message.BizType
contact.CreateAt = time.Now().Unix()
contact.LastMessage = message.Payload
contact.IsSessionEnd = 0
contact.Delete = 0
if message.BizType == "end" || message.BizType == "timeout" {
contact.IsSessionEnd = 1
}
o.Update(&contact)
}
}
package im
import (
"encoding/base64"
"encoding/json"
"kefu_server/models"
"strconv"
"strings"
"time"
"github.com/Xiaomi-mimc/mimc-go-sdk"
"github.com/astaxie/beego/cache"
"github.com/astaxie/beego/orm"
)
// PayloadData struct
type PayloadData struct {
Payload string `json:"payload"`
}
// KnowledgeBaseData struct
type KnowledgeBaseData struct {
Title string `json:"title"`
}
// ContactAdminCount struct
type ContactAdminCount struct {
Count string `json:"count"`
ToAccount string `json:"to_account"`
}
// adminData struct
type adminData struct {
ID int64 `json:"id"`
NickName string `json:"nickname"`
Avatar string `json:"avatar"`
}
// BmCache ...
var BmCache, _ = cache.NewCache("memory", `{"interval":60}`)
// MessageP2P p2p message
func MessageP2P(message models.Message) {
// orm
o := orm.NewOrm()
// 当前服务机器人
var robot *mimc.MCUser
var robotID int64
msgToAccount := strconv.FormatInt(message.ToAccount, 10)
isFromAccountRobot := false
for _, robot = range Robots {
robotID, _ = strconv.ParseInt(robot.AppAccount(), 10, 64)
if robotID == message.FromAccount {
isFromAccountRobot = true
return
}
if toAccount := robot.AppAccount(); toAccount == msgToAccount {
break
}
}
if isFromAccountRobot {
return
}
// 判断机器人是否在线
if robot.Status() == 1 {
robot.Login()
}
// 是否是入库消息(中转入库)
if message.BizType == "into" {
var intoMessage models.Message
intoMessageString, _ := base64.StdEncoding.DecodeString(message.Payload)
_ = json.Unmarshal(intoMessageString, &intoMessage)
// 接收方是否是客服
isKF := false
admin := models.Admin{ID: intoMessage.ToAccount}
if err := o.Read(&admin); err == nil {
isKF = true
intoMessage.Read = 0
if admin.Online == 0 || admin.CurrentConUser != intoMessage.FromAccount {
intoMessage.Read = 1
}
}
MessageInto(intoMessage, isKF)
if isKF {
PushNewContacts(intoMessage.ToAccount, robot)
}
return
}
// 不处理的消息类型
if message.BizType == "cancel" {
return
}
// 取出发信人信息
userData := models.User{ID: message.FromAccount}
userInfoKey := "userInfo"
if userTemp := BmCache.Get(userInfoKey); userTemp == nil {
userData = models.User{ID: message.FromAccount}
_ = o.Read(&userData)
robotDataJSON, _ := json.Marshal(userData)
_ = BmCache.Put(userInfoKey, robotDataJSON, 60*time.Second)
} else {
_ = json.Unmarshal([]byte(string(userTemp.([]byte))), &userData)
}
// 获取公司配置
companyData := models.Company{ID: 1}
systemInfoKey := "systemInfo"
if systemTemp := BmCache.Get(systemInfoKey); systemTemp == nil {
companyData = models.Company{ID: 1}
_ = o.Read(&companyData)
robotDataJSON, _ := json.Marshal(companyData)
_ = BmCache.Put(systemInfoKey, robotDataJSON, 60*time.Second)
} else {
_ = json.Unmarshal([]byte(string(systemTemp.([]byte))), &companyData)
}
// 数据库获取机器人配置信息
robotData := models.Robot{ID: message.ToAccount}
cacheRobotKey := "robot_" + msgToAccount
if robotDataTemp := BmCache.Get(cacheRobotKey); robotDataTemp == nil {
robotData = models.Robot{ID: message.ToAccount}
_ = o.Read(&robotData)
robotDataJSON, _ := json.Marshal(robotData)
_ = BmCache.Put(cacheRobotKey, robotDataJSON, 60*time.Second)
} else {
_ = json.Unmarshal([]byte(string(robotDataTemp.([]byte))), &robotData)
}
// 消息体
callbackMessage := models.Message{}
// 没有找到子标题的内容, 不明白语句
var understand = robotData.Understand
// 无法匹配知识库默认关键词[]string
roobtKeyWords := strings.Split(strings.Trim(robotData.KeyWord, "|"), "|")
// 返回给对方的消息内容
var messageContent string
// 返回的消息类型
bizType := "text"
//检索关键词知识库消息
var knowledgeBases []KnowledgeBaseData
if message.BizType == "search_knowledge" {
// 默认关键词
var subTitle = ""
for _, value := range roobtKeyWords {
if strings.Contains(message.Payload, value) {
subTitle = subTitle + " sub_title LIKE '%" + value + "%' OR "
}
}
if subTitle != "" {
subTitle = subTitle[1 : len(subTitle)-3]
}
_, _ = o.Raw("SELECT title,sub_title FROM knowledge_base WHERE ("+subTitle+") AND platform IN (?,?) ORDER by rand() limit 5", 1, userData.Platform).QueryRows(&knowledgeBases)
bizType = "search_knowledge"
if len(knowledgeBases) > 0 {
messageContentByte, _ := json.Marshal(knowledgeBases)
messageContent = string(messageContentByte)
} else {
messageContent = ""
}
// 判断是否是握手消息
} else if message.BizType == "handshake" {
messageContent = robotData.Welcome
bizType = "welcome"
} else {
// 判断是否符合转人工
artificial := strings.Split(strings.Trim(robotData.Artificial, "|"), "|")
isTransfer := false
if message.Payload == "人工" {
isTransfer = true
} else {
for i := 0; i < len(artificial); i++ {
if artificial[i] == message.Payload {
isTransfer = true
break
}
}
}
// 符合
if isTransfer {
var admins []models.Admin
_, _ = o.Raw("SELECT a.*, IFNULL(c.count,0) AS `count` FROM admin as a LEFT JOIN (SELECT to_account,COUNT(*) AS count FROM `contact` WHERE is_session_end = 0 GROUP BY to_account) c ON a.id = c.to_account WHERE a.`online` = 1 ORDER BY c.count").QueryRows(&admins)
if len(admins) <= 0 {
messageContent = robotData.NoServices
} else {
bizType = "transfer"
// 平均分配客服
admin := admins[0]
callbackMessage.TransferAccount = admin.ID
adminDataJSON, _ := json.Marshal(adminData{ID: admin.ID, NickName: admin.NickName, Avatar: admin.Avatar})
messageContent = string(adminDataJSON)
// 设置为已删除消息,避免客服端显示两条消息
callbackMessage.Delete = 1
// 发送一条消息告诉客服端
newMsg := models.Message{}
newMsg.BizType = "transfer"
newMsg.FromAccount = message.FromAccount
newMsg.ToAccount = admin.ID
newMsg.Timestamp = time.Now().Unix()
newMsg.TransferAccount = admin.ID
newMsg.Payload = "系统将客户分配给您"
newMsgJSON, _ := json.Marshal(newMsg)
newMsgBase64 := base64.StdEncoding.EncodeToString([]byte(newMsgJSON))
// 消息入库
MessageInto(newMsg, true)
PushNewContacts(admin.ID, robot)
// 发给用户
robot.SendMessage(strconv.FormatInt(admin.ID, 10), []byte(newMsgBase64))
// 转接入库用于统计服务次数
servicesStatistical := models.ServicesStatistical{UserAccount: message.FromAccount, ServiceAccount: admin.ID, Platform: message.Platform, TransferAccount: robotID, CreateAt: time.Now().Unix()}
_, _ = o.Insert(&servicesStatistical)
}
// 不符合去查知识库
} else {
// 数据库查找知识库主标题
qs := o.QueryTable(new(models.KnowledgeBase))
// 先完全匹配
var knowledge models.KnowledgeBase
err := qs.Filter("title", message.Payload).Filter("platform__in", 1, userData.Platform).One(&knowledge)
if err == nil {
bizType = "text"
messageContent = knowledge.Content
// 模糊匹配列表返回列表
} else {
_, _ = o.Raw("SELECT title FROM knowledge_base WHERE title LIKE ? AND platform IN (?,?) ORDER by rand() limit 4", "%"+message.Payload+"%", 1, userData.Platform).QueryRows(&knowledgeBases)
if len(knowledgeBases) > 0 {
bizType = "knowledge"
messageContentByte, _ := json.Marshal(knowledgeBases)
messageContent = string(messageContentByte)
} else {
// 没有找到再次找副标题
_, _ = o.Raw("SELECT title,sub_title FROM knowledge_base WHERE sub_title LIKE ? AND platform IN (?,?) ORDER by rand() limit 4", "|%"+message.Payload+"%|", 1, userData.Platform).QueryRows(&knowledgeBases)
if len(knowledgeBases) > 0 {
bizType = "knowledge"
messageContentByte, _ := json.Marshal(knowledgeBases)
messageContent = string(messageContentByte)
} else {
// 默认关键词
var subTitle = ""
for _, value := range roobtKeyWords {
subTitle = subTitle + " sub_title LIKE '%" + value + "%' OR "
}
subTitle = subTitle[1 : len(subTitle)-3]
_, _ = o.Raw("SELECT title,sub_title FROM knowledge_base WHERE ("+subTitle+") AND platform IN (?,?) ORDER by rand() limit 4", 1, userData.Platform).QueryRows(&knowledgeBases)
if len(knowledgeBases) > 0 {
bizType = "knowledge"
messageContentByte, _ := json.Marshal(knowledgeBases)
messageContent = string(messageContentByte)
} else {
messageContent = understand
}
}
}
}
}
}
// 消息体
callbackMessage.BizType = bizType
callbackMessage.FromAccount = message.ToAccount
callbackMessage.Timestamp = time.Now().Unix() + 1
callbackMessage.ToAccount = message.FromAccount
callbackMessage.Payload = messageContent
messageJSON, _ := json.Marshal(callbackMessage)
messageString := base64.StdEncoding.EncodeToString([]byte(messageJSON))
// 发给用户
robot.SendMessage(strconv.FormatInt(message.FromAccount, 10), []byte(messageString))
// 消息入库
MessageInto(callbackMessage, false)
}
package im
import (
"bytes"
"encoding/json"
"io/ioutil"
"net/http"
"strings"
"github.com/astaxie/beego"
)
// TokenHandler ...
type TokenHandler struct {
httpURL string
AppID int64 `json:"appId"`
AppKey string `json:"appKey"`
AppSecret string `json:"appSecret"`
AppAccount string `json:"appAccount"`
}
// GetMiMcToken ...
func GetMiMcToken(accountID string) (string, error) {
tokenHandler := new(TokenHandler)
tokenHandler.httpURL = beego.AppConfig.String("mimc_HttpUrl")
tokenHandler.AppID, _ = beego.AppConfig.Int64("mimc_appId")
tokenHandler.AppKey = beego.AppConfig.String("mimc_appKey")
tokenHandler.AppSecret = beego.AppConfig.String("mimc_appSecret")
tokenHandler.AppAccount = accountID
jsonBytes, err := json.Marshal(*tokenHandler)
if err != nil {
return "", err
}
requestJSONBody := bytes.NewBuffer(jsonBytes).String()
request, err := http.Post(tokenHandler.httpURL, "application/json", strings.NewReader(requestJSONBody))
if err != nil {
return "", err
}
defer request.Body.Close()
body, err := ioutil.ReadAll(request.Body)
if err != nil {
return "", err
}
token := string(body)
return token, nil
}
package im
import (
"kefu_server/models"
"strconv"
"strings"
"github.com/Xiaomi-mimc/mimc-go-sdk"
"github.com/astaxie/beego"
"github.com/astaxie/beego/orm"
)
// Robots 工作中的机器人
var Robots []*mimc.MCUser
// CreateRobot 创建机器人
func CreateRobot(appAccount string) *mimc.MCUser {
appID, _ := beego.AppConfig.Int64("mimc_appId")
mcUser := mimc.NewUser(uint64(appID), appAccount)
mcUser.RegisterStatusDelegate(NewStatusHandler(appAccount))
mcUser.RegisterTokenDelegate(NewTokenHandler(appAccount))
mcUser.RegisterMessageDelegate(NewMsgHandler(appAccount))
mcUser.InitAndSetup()
return mcUser
}
// GetRobots get robot all
func GetRobots() []models.Robot {
// orm instance
o := orm.NewOrm()
robot := new(models.Robot)
qs := o.QueryTable(robot)
// 查询
var lists []models.Robot
_, _ = qs.OrderBy("-create_at").All(&lists)
for index := range lists {
lists[index].Artificial = strings.Trim(lists[index].Artificial, "|")
}
return lists
}
// RobotInit 初始化机器人
func RobotInit() {
// 如果有机器人在工作先退出登录
if len(Robots) > 0 {
for _, robot := range Robots {
robot.Logout()
robot.Destory()
}
Robots = []*mimc.MCUser{}
}
robotsData := GetRobots()
var tempRobots []*mimc.MCUser
for _, robot := range robotsData {
if robot.Switch == 1 {
rb := CreateRobot(strconv.FormatInt(robot.ID, 10))
tempRobots = append(tempRobots, rb)
rb.Login()
}
}
Robots = tempRobots
}
package main
import (
"encoding/base64"
"encoding/json"
"fmt"
"github.com/Xiaomi-mimc/mimc-go-sdk/util/log"
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/orm"
"github.com/astaxie/beego/toolbox"
_ "github.com/go-sql-driver/mysql"
"kefu_server/controllers"
"kefu_server/im"
"kefu_server/models"
_ "kefu_server/routers"
"strconv"
"time"
)
// init Mysql DB
func initDB() {
// 链接IM数据库
imAliasName := beego.AppConfig.String("im_alias_name")
imDriverName := beego.AppConfig.String("im_driver_name")
var imDataSource string
imDataSource = beego.AppConfig.String("im_mysql_user") + ":"
imDataSource += beego.AppConfig.String("im_mysql_pwd")
imDataSource += "@tcp(" + beego.AppConfig.String("im_mysql_host") + ":3306" + ")/"
imDataSource += beego.AppConfig.String("im_mysql_db") + "?charset=utf8"
_ = orm.RegisterDataBase(imAliasName, imDriverName, imDataSource, 30)
// 注册模型
orm.RegisterModel(new(models.User))
orm.RegisterModel(new(models.Admin))
orm.RegisterModel(new(models.Platform))
orm.RegisterModel(new(models.KnowledgeBase))
orm.RegisterModel(new(models.Robot))
orm.RegisterModel(new(models.Message))
orm.RegisterModel(new(models.System))
orm.RegisterModel(new(models.Shortcut))
orm.RegisterModel(new(models.Contact))
orm.RegisterModel(new(models.Company))
orm.RegisterModel(new(models.QiniuSetting))
orm.RegisterModel(new(models.UploadsConfig))
orm.RegisterModel(new(models.ServicesStatistical))
// 创建表
_ = orm.RunSyncdb("default", false, true)
}
// 初始化日志
func initLog() {
// 初始化日志
if isDev := beego.AppConfig.String("runmode"); isDev == "prod" {
log.SetLogLevel(log.FatalLevel)
_ = logs.SetLogger(logs.AdapterFile, `{"filename":"project.log","level":7,"maxlines":0,"maxsize":0,"daily":true,"maxdays":10,"color":true}`)
fmt.Print("当前环境为生产环境")
_ = beego.BeeLogger.DelLogger("console")
} else {
log.SetLogLevel(log.ErrorLevel)
_ = logs.SetLogger(logs.AdapterConsole, `{"filename":"test.log","level":7,"maxlines":0,"maxsize":0,"daily":true,"maxdays":10,"color":true}`)
fmt.Print("当前环境为测试环境")
}
logs.EnableFuncCallDepth(true)
}
// 定时任务
func appTask() {
o := orm.NewOrm()
// 任务调度(1分钟会执行一次)
checkOnLineTk := toolbox.NewTask("checkOnLine", "0 */1 * * * *", func() error {
userOffLineUnixTimer := time.Now().Unix() - (60 * 10) // 用户最后活动时间T出在线状态规则
adminOffLineUnixTimer := time.Now().Unix() - (60 * 30) // 最后回复消息时间清理回话规则
lastMessageUnixTimer := time.Now().Unix() - (60 * 8) // 判断用户是否超过一定时间不使用,强制其下线
uqs := o.QueryTable(new(models.User))
aqs := o.QueryTable(new(models.Admin))
// 检查User
count, _ := uqs.Filter("online__in", 1, 2).Filter("last_activity__lte", lastMessageUnixTimer).Update(orm.Params{
"online": 0,
"is_window": 0,
})
logs.Info("清理登录超时用户,有", count, "个用户被强制下线")
// 检查Admin
_, _ = aqs.Filter("online__in", 1, 2).Filter("last_activity__lte", adminOffLineUnixTimer).Update(orm.Params{
"online": 0,
})
// 2.判断用户是否超时无应答
cqs := o.QueryTable(new(models.Contact))
// 检查(有机器人在线)
if len(im.Robots) > 0 {
robot := im.Robots[0]
var contacts []models.Contact
_, _ = o.Raw("SELECT * FROM `contact` WHERE `create_at` <= ? AND `is_session_end` = 0 AND `last_message_type` != 'timeout'", lastMessageUnixTimer).QueryRows(&contacts)
logs.Info("清理会话超时用户,有", len(contacts), "个用户被结束对话")
for _, contact := range contacts {
// 判断发送方是客服就不处理发送了
if err := o.Read(&models.Admin{ID: contact.FromAccount}); err == nil {
continue
}
// 发送超时消息体
message := models.Message{}
message.BizType = "timeout"
message.Read = 0
appAccount, _ := strconv.ParseInt(robot.AppAccount(), 10, 64)
message.FromAccount = appAccount
message.Timestamp = time.Now().Unix()
message.Payload = "由于您长时间未回复,本次会话超时了"
message.ToAccount = contact.FromAccount
var messageJSON []byte
var messageString string
messageJSON, _ = json.Marshal(message)
messageString = base64.StdEncoding.EncodeToString([]byte(messageJSON))
robot.SendMessage(strconv.FormatInt(contact.FromAccount, 10), []byte(messageString))
// 该客户超时后给客服发送提醒消息
message.FromAccount = contact.FromAccount
message.ToAccount = contact.ToAccount
messageJSON, _ = json.Marshal(message)
messageString = base64.StdEncoding.EncodeToString([]byte(messageJSON))
robot.SendMessage(strconv.FormatInt(contact.ToAccount, 10), []byte(messageString))
im.MessageInto(message, true)
// 超时后消息
// 数据库获取机器人配置信息
robotData := models.Robot{ID: appAccount}
cacheRobotKey := "robot_" + string(appAccount)
if robotDataTemp := im.BmCache.Get(cacheRobotKey); robotDataTemp == nil {
robotData = models.Robot{ID: appAccount}
_ = o.Read(&robotData)
robotDataJSON, _ := json.Marshal(robotData)
_ = im.BmCache.Put(cacheRobotKey, robotDataJSON, 60*time.Second)
} else {
_ = json.Unmarshal([]byte(string(robotDataTemp.([]byte))), &robotData)
}
if robotData.TimeoutText != "" {
message.FromAccount = appAccount
message.ToAccount = contact.FromAccount
message.BizType = "text"
message.Payload = robotData.TimeoutText
messageJSON, _ = json.Marshal(message)
messageString = base64.StdEncoding.EncodeToString([]byte(messageJSON))
robot.SendMessage(strconv.FormatInt(contact.FromAccount, 10), []byte(messageString))
}
}
} else {
// 执行到这里说明,机器人死掉了
logs.Error("执行到这里说明,机器人死掉了")
im.RobotInit()
_, _ = cqs.Filter("create_at__lte", userOffLineUnixTimer).Update(orm.Params{
"last_message_type": "timeout",
"is_session_end": 1,
})
}
return nil
})
toolbox.AddTask("checkOnLine", checkOnLineTk)
}
func main() {
// 初始化数据库
initDB()
// 初始化日志
initLog()
// 启动任务
appTask()
toolbox.StartTask()
defer toolbox.StopTask()
/// 静态文件配置
beego.SetStaticPath("/", "public/client")
beego.SetStaticPath("/admin", "public/admin")
beego.SetStaticPath("/static", "static")
// 错误处理
beego.ErrorController(&controllers.ErrorController{})
// 启动机器人
im.RobotInit()
// 初始化beeGo
beego.Run()
}
package models
// Admin 默认值不生效请自行到mysql修改表结构哦
type Admin struct {
ID int64 `orm:"auto;pk;column(id)" json:"id"` // 客服(管理员)ID
Avatar string `orm:"type(char);column(avatar)" json:"avatar"` // 头像
UserName string `orm:"unique;type(char);column(username)" json:"username"` // 账号(用于登录)这个字段用错名词,将就用吧
NickName string `orm:"type(char);column(nickname)" json:"nickname"` // 昵称
Password string `orm:"type(char);column(password)" json:"password"` // 密码MD5
Phone string `orm:"type(char);null;column(phone)" json:"phone"` // 手机
Token string `orm:"null;type(text);column(token)" json:"token"` // token
AutoReply string `orm:"null;default('您好有什么可以帮到您呢?');type(text);column(auto_reply)" json:"auto_reply"` // 自动回复语
Online int `orm:"default(0);column(online)" json:"online"` // 在线状态 0 离线 1 在线 2 繁忙(繁忙状态不接待新客户)
Root int `orm:"default(0);column(root)" json:"root"` // 是否是超级管理员
CurrentConUser int64 `orm:"default(0);column(current_con_user)" json:"current_con_user"` // 当前连线的用户
LastActivity int64 `orm:"type(bigint);column(last_activity)" json:"last_activity"` // 最后活动时间
UpdateAt int64 `orm:"type(bigint);column(update_at)" json:"update_at"` // 资料更新时间
CreateAt int64 `orm:"type(bigint);column(create_at)" json:"create_at"` // 账号创建时间
}
package models
// Company struct
type Company struct {
ID int64 `orm:"auto;pk;type(bigint);column(id)" json:"id"` // id
Title string `orm:"null;type(char);column(title)" json:"title"` // 公司名称
Logo string `orm:"null;type(char);column(logo)" json:"logo"` // 公司logo
Service string `orm:"null;column(service)" json:"service"` // 在线客服服务时间
Email string `orm:"null;column(email)" json:"email"` // 公司邮箱
Tel string `orm:"null;column(tel)" json:"tel"` // 公司电话
Address string `orm:"null;type(char);column(address)" json:"address"` // 公司地址
UpdateAt int64 `orm:"type(bigint);column(update_at)" json:"update_at"`
}
package models
// Contact 通讯录
type Contact struct {
ID int64 `orm:"auto;pk;column(id)" json:"id"`
FromAccount int64 `orm:"type(bigint);column(from_account)" json:"from_account"`
ToAccount int64 `orm:"type(bigint);column(to_account)" json:"to_account"`
IsSessionEnd int `orm:"default(0),column(is_session_end)" json:"is_session_end"` // 1 已结束对话 0 未结束对话
LastMessage string `orm:"null;type(text);column(last_message)" json:"last_message"`
Delete int `orm:"default(0);column(delete)" json:"delete"` // 1 已删除 0 未删除
LastMessageType string `orm:"null;type(text);column(last_message_type)" json:"last_message_type"`
CreateAt int64 `orm:"type(bigint);column(create_at)" json:"create_at"`
}
package models
// ContactData struct
type ContactData struct {
ID int64 `orm:"column(id)" json:"id"`
Cid int64 `json:"cid"`
FromAccount int64 `json:"from_account"`
ToAccount int64 `json:"to_account"`
LastMessage string `json:"last_message"`
IsSessionEnd int `json:"is_session_end"`
LastMessageType string `json:"last_message_type"`
UID int64 `orm:"column(uid)" json:"uid"`
Avatar string `json:"avatar"`
Address string `json:"address"`
Nickname string `json:"nickname"`
Phone string `json:"phone"`
Platform int64 `json:"platform"`
Online int `json:"online"`
Read int `json:"read"`
UpdateAt int64 `json:"update_at"`
Remarks string `json:"remarks"`
LastActivity int64 `json:"last_activity"`
CreateAt int64 `json:"create_at"`
ContactCreateAt int64 `json:"contact_create_at"`
}
package models
// IMToken struct
type IMToken struct {
Code int `json:"code"`
Message string `json:"message"`
Data IMTokenData `json:"data"`
}
// IMTokenData struct
type IMTokenData struct {
AppID string `json:"appId"`
AppPackage string `json:"appPackage"`
AppAccount string `json:"appAccount"`
MiChid int64 `json:"miChid"`
MiUserID string `json:"miUserId"`
MiUserSecurityKey string `json:"miUserSecurityKey"`
Token string `json:"token"`
RegionBucket int64 `json:"regionBucket"`
FeDomainName string `json:"feDomainName"`
RelayDomainName string `json:"relayDomainName"`
}
package models
// KnowledgeBase struct
type KnowledgeBase struct {
ID int64 `orm:"auto;pk;type(bigint);column(id)" json:"id"`
UID int64 `orm:"type(bigint);column(uid)" json:"uid"`
Title string `orm:"unique;type(char);column(title)" json:"title"`
SubTitle string `orm:"null;type(content);column(sub_title)" json:"sub_title"`
Content string `orm:"null;type(text);column(content)" json:"content"`
Platform int64 `orm:"default(1),type(bigint);column(platform)" json:"platform"` // 0是匹配所有
UpdateAt int64 `orm:"type(bigint);column(update_at)" json:"update_at"`
CreateAt int64 `orm:"type(bigint);column(create_at)" json:"create_at"`
}
package models
// Message struct
// BizType 消息类型 先以字符串形式声明吧
// 1 video 视频
// 2 text 文本
// 3 photo 图片
// 4 transfer 转接
// 5 knowledge 知识内容
// 6 handshake 用户请求与握手
// 7 pong 对方正在输入中
// 8 end 结束消息
// 9 timeout 超时会话关闭
// 10 cancel 撤回消息(暂时还没做预留先)
// 11 contacts 用户列表(客服端)
// 12 welcome 欢迎语
// 13 system 系统消息
// 14 search_knowledge 检索关键词知识库消息
type Message struct {
ID int64 `orm:"auto;pk;column(id)" json:"id"` // 消息ID
FromAccount int64 `orm:"type(bigint);column(from_account)" json:"from_account"` // 发送人账号
ToAccount int64 `orm:"type(bigint);column(to_account)" json:"to_account"` // 接收人账号
BizType string `orm:"type(char);column(biz_type)" json:"biz_type"` // 消息类型
Version string `orm:"default(0);type(char);column(version)" json:"version"` // 版本号,预留暂时无用
Timestamp int64 `orm:"type(bigint);column(timestamp)" json:"timestamp"` // 服务端消息消息时间
Key int64 `orm:"type(bigint);column(key)" json:"key"` // key
TransferAccount int64 `orm:"type(bigint);column(transfer_account)" json:"transfer_account"` // 转接到客户的账号
Platform int64 `orm:"type(bigint);column(platform)" json:"platform"` // 此消息来自哪个平台(即渠道)
Payload string `orm:"null;type(text);column(payload)" json:"payload"` // 消息内容
Read int `orm:"default(1);column(read)" json:"read"` // 是否已读消息0已读1未读
Delete int `orm:"default(0);column(delete)" json:"delete"` // 是否已删除消息0 ro 1 1已删除
}
package models
// PaginationData struct
type PaginationData struct {
PageSize int `json:"page_size"`
PageOn int `json:"page_on"`
Keyword string `json:"keyword"`
Total int64 `json:"total"`
List interface{} `json:"list"`
}
package models
// Platform struct
type Platform struct {
ID int64 `orm:"auto;pk;type(bigint);column(id)" json:"id"`
Title string `orm:"unique;type(char);column(title)" json:"title"`
Alias string `orm:"unique;type(char);column(alias)" json:"alias"`
System int `orm:"default(0);column(system)" json:"system"`
}
//INSERT INTO `kefu_server`.`platform`(`id`, `title`, `alias`, `system`) VALUES (0, '全平台', 'all', 1);
//INSERT INTO `kefu_server`.`platform`(`id`, `title`, `alias`, `system`) VALUES (1, 'IOS', 'ios', 1);
//INSERT INTO `kefu_server`.`platform`(`id`, `title`, `alias`, `system`) VALUES (2, '小程序', 'small', 1);
//INSERT INTO `kefu_server`.`platform`(`id`, `title`, `alias`, `system`) VALUES (3, 'PC网页', 'pc', 1);
//INSERT INTO `kefu_server`.`platform`(`id`, `title`, `alias`, `system`) VALUES (4, '移动网页', 'mobile', 1);
//INSERT INTO `kefu_server`.`platform`(`id`, `title`, `alias`, `system`) VALUES (5, 'Android', 'android', 1);
package models
// QiniuSetting struct
type QiniuSetting struct {
ID int64 `orm:"auto;pk;column(id)" json:"id"`
Bucket string `orm:"type(char);column(bucket)" json:"bucket"`
AccessKey string `orm:"unique;type(char);column(access_key)" json:"access_key"`
SecretKey string `orm:"type(char);column(secret_key)" json:"secret_key"`
Host string `orm:"type(char);column(host)" json:"host"`
UpdateAt int64 `orm:"type(bigint);column(update_at)" json:"update_at"`
}
package models
// Response struct
type Response struct {
Code int `json:"code"` // 错误类型
Message string `json:"message"` // 信息
Data interface{} `json:"data"` // 任意类型
}
package models
// Robot struct
type Robot struct {
ID int64 `orm:"auto;pk;type(bigint);column(id)" json:"id"`
NickName string `orm:"unique;type(char);column(nickname)" json:"nickname"`
Avatar string `orm:"type(char);column(avatar)" json:"avatar"`
Welcome string `orm:"column(welcome)" json:"welcome"` // 欢迎语
Understand string `orm:"column(understand)" json:"understand"` // 不明白语句
Artificial string `orm:"column(artificial)" json:"artificial"` // 关键词转人工
KeyWord string `orm:"column(keyword)" json:"keyword"` // 知识库默认匹配词
TimeoutText string `orm:"column(timeout_text)" json:"timeout_text"` // 超时提示语
NoServices string `orm:"column(no_services)" json:"no_services"` // 无人工在线提示语
LoogTimeWaitText string `orm:"column(loog_time_wait_text)" json:"loog_time_wait_text"` // 长时间等待提示
Switch int `orm:"default(0);column(switch)" json:"switch"` // 是否开启
System int `orm:"default(0);column(system)" json:"system"` // 系统内置
Platform int64 `orm:"type(bigint);column(platform)" json:"platform"` // 服务那个平台
UpdateAt int64 `orm:"type(bigint);column(update_at)" json:"update_at"`
CreateAt int64 `orm:"auto_now_add;type(int64);null;column(create_at)" json:"create_at"`
}
package models
// ServicesStatistical 转接一次计算一次服务次数
type ServicesStatistical struct {
ID int64 `orm:"auto;pk;column(id)" json:"id"` // ID
UserAccount int64 `orm:"type(bigint);column(user_account)" json:"user_account"` // 服务对象ID
ServiceAccount int64 `orm:"type(bigint);column(service_account)" json:"service_account"` // 服务者ID
TransferAccount int64 `orm:"type(bigint);column(transfer_account)" json:"transfer_account"` // 转接者ID
Platform int64 `orm:"type(bigint);column(platform)" json:"platform"` // 此用户来自哪个平台(即渠道)
NickName string `orm:"type(char);null;column(nickname)" json:"nickname"` // 用户昵称
Satisfaction int `orm:"default(0);column(satisfaction)" json:"satisfaction"` // 满意度1-5
CreateAt int64 `orm:"type(bigint);column(create_at)" json:"create_at"` // 创建时间
}
package models
// SessionRequest 会话资料
// type 用户类型 0 | 1 0 = 用户 1 = 客服
// uid 自身业务平台用户ID
// account_id 用户客服ID,用户在mimc的唯一ID
// platform 平台 1,2,3,4,5
type SessionRequest struct {
Type int `json:"type"`
UID int64 `orm:"column(uid)" json:"uid"`
Platform int64 `json:"platform"`
Address string `json:"address"`
AccountID int64 `orm:"column(account_id)" json:"account_id"`
}
package models
// Shortcut 快捷语
type Shortcut struct {
ID int64 `orm:"auto;pk;column(id)" json:"id"`
UID int64 `orm:"type(bigint);column(uid)" json:"uid"`
Title string `orm:"type(text);null;column(title)" json:"title"`
Content string `orm:"type(text);null;column(content)" json:"content"`
UpdateAt int64 `orm:"type(bigint);column(update_at)" json:"update_at"`
CreateAt int64 `orm:"type(bigint);column(create_at)" json:"create_at"`
}
package models
// System struct
type System struct {
ID int64 `orm:"auto;pk;type(bigint);column(id)" json:"id"` // id
Title string `orm:"type(char);column(title)" json:"title"`
Logo string `orm:"type(char);column(logo)" json:"logo"`
CopyRight string `orm:"column(copy_right)" json:"copy_right"`
UploadMode int `orm:"column(upload_mode)" json:"upload_mode"` // 1 七牛 目前只实现七牛,其它的后续可以扩展
UpdateAt int64 `orm:"type(bigint);column(update_at)" json:"update_at"`
}
package models
// UploadsConfig struct
type UploadsConfig struct {
ID int64 `orm:"auto;pk;column(id)" json:"id"`
Name string `orm:"type(char);column(name)" json:"name"`
}
package models
// User struct
type User struct {
ID int64 `orm:"auto;pk;type(bigint);column(id)" json:"id"` // 用户ID
UID int64 `orm:"type(bigint);column(uid)" json:"uid"` // 对应业务平台的用户ID(保留字段)
Avatar string `orm:"type(char);null;column(avatar)" json:"avatar"` // 用户头像
Address string `orm:"type(char);null;column(address)" json:"address"` // 用户所在地
NickName string `orm:"type(char);null;column(nickname)" json:"nickname"` // 用户昵称
UserToken string `orm:"type(text);null;column(token)" json:"token"` // 对应业务平台的用户的token(保留字段)
Phone string `orm:"type(char);null;column(phone)" json:"phone"` // 用户联系电话
Platform int64 `orm:"type(bigint);column(platform)" json:"platform"` // 用户所在渠道(平台)
Online int `orm:"default(0);column(online)" json:"online"` // 用户是否在线
IsWindow int `orm:"default(0);column(is_window)" json:"is_window"` // 是否在聊天窗口
UpdateAt int64 `orm:"type(bigint);column(update_at)" json:"update_at"` // 用户资料被更新时间
Remarks string `orm:"type(char);null;column(remarks)" json:"remarks"` // 备注
LastActivity int64 `orm:"type(bigint);column(last_activity)" json:"last_activity"` // 最后活动时间
CreateAt int64 `orm:"type(bigint);column(create_at)" json:"create_at"` // 创建时间
}
This diff could not be displayed because it is too large.
(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory(global):typeof define==="function"&&define.amd?define(factory):factory(global)})(typeof self!=="undefined"?self:typeof window!=="undefined"?window:typeof global!=="undefined"?global:this,function(global){"use strict";global=global||{};var _Base64=global.Base64;var version="2.5.1";var buffer;if(typeof module!=="undefined"&&module.exports){try{buffer=eval("require('buffer').Buffer")}catch(err){buffer=undefined}}var b64chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var b64tab=function(bin){var t={};for(var i=0,l=bin.length;i<l;i++)t[bin.charAt(i)]=i;return t}(b64chars);var fromCharCode=String.fromCharCode;var cb_utob=function(c){if(c.length<2){var cc=c.charCodeAt(0);return cc<128?c:cc<2048?fromCharCode(192|cc>>>6)+fromCharCode(128|cc&63):fromCharCode(224|cc>>>12&15)+fromCharCode(128|cc>>>6&63)+fromCharCode(128|cc&63)}else{var cc=65536+(c.charCodeAt(0)-55296)*1024+(c.charCodeAt(1)-56320);return fromCharCode(240|cc>>>18&7)+fromCharCode(128|cc>>>12&63)+fromCharCode(128|cc>>>6&63)+fromCharCode(128|cc&63)}};var re_utob=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;var utob=function(u){return u.replace(re_utob,cb_utob)};var cb_encode=function(ccc){var padlen=[0,2,1][ccc.length%3],ord=ccc.charCodeAt(0)<<16|(ccc.length>1?ccc.charCodeAt(1):0)<<8|(ccc.length>2?ccc.charCodeAt(2):0),chars=[b64chars.charAt(ord>>>18),b64chars.charAt(ord>>>12&63),padlen>=2?"=":b64chars.charAt(ord>>>6&63),padlen>=1?"=":b64chars.charAt(ord&63)];return chars.join("")};var btoa=global.btoa?function(b){return global.btoa(b)}:function(b){return b.replace(/[\s\S]{1,3}/g,cb_encode)};var _encode=buffer?buffer.from&&Uint8Array&&buffer.from!==Uint8Array.from?function(u){return(u.constructor===buffer.constructor?u:buffer.from(u)).toString("base64")}:function(u){return(u.constructor===buffer.constructor?u:new buffer(u)).toString("base64")}:function(u){return btoa(utob(u))};var encode=function(u,urisafe){return!urisafe?_encode(String(u)):_encode(String(u)).replace(/[+\/]/g,function(m0){return m0=="+"?"-":"_"}).replace(/=/g,"")};var encodeURI=function(u){return encode(u,true)};var re_btou=new RegExp(["[À-ß][€-¿]","[à-ï][€-¿]{2}","[ð-÷][€-¿]{3}"].join("|"),"g");var cb_btou=function(cccc){switch(cccc.length){case 4:var cp=(7&cccc.charCodeAt(0))<<18|(63&cccc.charCodeAt(1))<<12|(63&cccc.charCodeAt(2))<<6|63&cccc.charCodeAt(3),offset=cp-65536;return fromCharCode((offset>>>10)+55296)+fromCharCode((offset&1023)+56320);case 3:return fromCharCode((15&cccc.charCodeAt(0))<<12|(63&cccc.charCodeAt(1))<<6|63&cccc.charCodeAt(2));default:return fromCharCode((31&cccc.charCodeAt(0))<<6|63&cccc.charCodeAt(1))}};var btou=function(b){return b.replace(re_btou,cb_btou)};var cb_decode=function(cccc){var len=cccc.length,padlen=len%4,n=(len>0?b64tab[cccc.charAt(0)]<<18:0)|(len>1?b64tab[cccc.charAt(1)]<<12:0)|(len>2?b64tab[cccc.charAt(2)]<<6:0)|(len>3?b64tab[cccc.charAt(3)]:0),chars=[fromCharCode(n>>>16),fromCharCode(n>>>8&255),fromCharCode(n&255)];chars.length-=[0,0,2,1][padlen];return chars.join("")};var _atob=global.atob?function(a){return global.atob(a)}:function(a){return a.replace(/\S{1,4}/g,cb_decode)};var atob=function(a){return _atob(String(a).replace(/[^A-Za-z0-9\+\/]/g,""))};var _decode=buffer?buffer.from&&Uint8Array&&buffer.from!==Uint8Array.from?function(a){return(a.constructor===buffer.constructor?a:buffer.from(a,"base64")).toString()}:function(a){return(a.constructor===buffer.constructor?a:new buffer(a,"base64")).toString()}:function(a){return btou(_atob(a))};var decode=function(a){return _decode(String(a).replace(/[-_]/g,function(m0){return m0=="-"?"+":"/"}).replace(/[^A-Za-z0-9\+\/]/g,""))};var noConflict=function(){var Base64=global.Base64;global.Base64=_Base64;return Base64};global.Base64={VERSION:version,atob:atob,btoa:btoa,fromBase64:decode,toBase64:encode,utob:utob,encode:encode,encodeURI:encodeURI,btou:btou,decode:decode,noConflict:noConflict,__buffer__:buffer};if(typeof Object.defineProperty==="function"){var noEnum=function(v){return{value:v,enumerable:false,writable:true,configurable:true}};global.Base64.extendString=function(){Object.defineProperty(String.prototype,"fromBase64",noEnum(function(){return decode(this)}));Object.defineProperty(String.prototype,"toBase64",noEnum(function(urisafe){return encode(this,urisafe)}));Object.defineProperty(String.prototype,"toBase64URI",noEnum(function(){return encode(this,true)}))}}if(global["Meteor"]){Base64=global.Base64}if(typeof module!=="undefined"&&module.exports){module.exports.Base64=global.Base64}else if(typeof define==="function"&&define.amd){define([],function(){return global.Base64})}return{Base64:global.Base64}});
\ No newline at end of file
#app{display:-ms-flexbox;display:flex;height:100vh}.el-tab-pane,.el-tabs__content{height:100%;padding:0}.el-tabs__content{padding:0!important}button{background-color:#fff}.pswp{z-index:3000!important}
\ No newline at end of file
.mini-im-aside{background-color:#3e444a}.mini-im-aside,.mini-im-aside .mini-im-logo{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.mini-im-aside .mini-im-logo{width:100%;height:100px;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #ddd}.mini-im-aside .mini-im-logo img{height:30px}.mini-im-aside .el-menu{border-right:0}.mini-im-aside .el-badge__content{border:0;top:30px}.mini-im-aside .fix-bottom{-ms-flex-positive:1;flex-grow:1;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:end;justify-content:flex-end;padding-bottom:30px}.mini-im-aside .fix-bottom a{cursor:pointer;padding:0 30px;text-align:center;-ms-flex-align:center;align-items:center;color:#fff;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center}.mini-im-aside .fix-bottom a .github-log{width:50px}.mini-im-aside .fix-bottom a span{margin-top:3px;margin-left:5px}.mini-im-header[data-v-432b9ecd]{background-color:#545c64;border-bottom:1px solid #545c64}.mini-im-header .mini-im-dropdown[data-v-432b9ecd]{height:100%}.mini-im-header .mini-im-button[data-v-432b9ecd]{border:0;font-size:35px;display:block;background:0;padding-left:0}.mini-im-header .mini-im-title[data-v-432b9ecd]{color:#fff;font-size:16px;text-align:center;line-height:60px}.mini-im-header .icon[data-v-432b9ecd]{color:#fff}.mini-im-header .el-dropdown-link[data-v-432b9ecd]{cursor:pointer;display:-ms-flexbox;display:flex;height:100%;line-height:60px;-ms-flex-align:center;align-items:center;color:#fff}.mini-im-header .el-icon-arrow-down[data-v-432b9ecd]{font-size:12px}.mini-im-file-button[data-v-0d4bcba3]{width:50px;height:50px;border-radius:50%;position:relative;overflow:hidden;cursor:pointer}.mini-im-file-button input[data-v-0d4bcba3]{font-size:100px;position:absolute;top:0;left:0;cursor:pointer;opacity:0}.mini-im-file-button .mini-im-file-percent[data-v-0d4bcba3]{position:absolute;top:0;left:0;width:100%;height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;background-color:rgba(0,0,0,.5);color:#fff;font-size:12px}.mini-im-header[data-v-61095d10]{background-color:#545c64;border-bottom:1px solid #545c64}
\ No newline at end of file
.mini-im-chat-list .mini-im-chat-message-box[data-v-3d81ef40],.mini-im-chat-list[data-v-3d81ef40]{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.mini-im-chat-list .mini-im-chat-message-box[data-v-3d81ef40]{width:100%;margin-bottom:15px}.mini-im-chat-list .mini-im-chat-message-box .user-date[data-v-3d81ef40]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;color:#999;font-size:14px}.mini-im-chat-list .mini-im-chat-message-box .user-date span[data-v-3d81ef40]{color:#666;font-weight:500;font-size:14px;padding:0 5px}.mini-im-chat-list .mini-im-chat-message-box .user-date em[data-v-3d81ef40]{font-style:normal;font-size:12px}.mini-im-chat-list .mini-im-chat-message-box .loading[data-v-3d81ef40]{color:#666;display:-ms-flexbox;display:flex;margin-top:5px;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:center;justify-content:center}.mini-im-chat-list .mini-im-chat-message-box .loading span[data-v-3d81ef40]{margin-left:5px;font-size:13px}.mini-im-chat-list .mini-im-chat-message-box .text[data-v-3d81ef40]{display:-ms-flexbox;display:flex;margin-top:5px}.mini-im-chat-list .mini-im-chat-message-box .text span[data-v-3d81ef40]{max-width:40%;display:inline;padding:5px 10px;border-radius:5px;background-color:#eef4f9;font-size:14px;color:#666}.mini-im-chat-list .mini-im-chat-message-box .photo[data-v-3d81ef40]{display:-ms-flexbox;display:flex;margin-top:5px}.mini-im-chat-list .mini-im-chat-message-box .photo .loading[data-v-3d81ef40]{-ms-flex-item-align:end;align-self:flex-end;padding:0 5px}.mini-im-chat-list .mini-im-chat-message-box .photo .loading span[data-v-3d81ef40]{background:none!important;color:#999!important}.mini-im-chat-list .mini-im-chat-message-box .photo .img-content[data-v-3d81ef40]{border-radius:5px;width:200px;overflow:hidden}.mini-im-chat-list .mini-im-chat-message-box .photo img[data-v-3d81ef40]{cursor:pointer;width:100%;height:100%;display:inline}.mini-im-chat-list .mini-im-chat-message-box .knowledge[data-v-3d81ef40]{display:-ms-flexbox;display:flex;margin-top:5px;-ms-flex-pack:end;justify-content:flex-end}.mini-im-chat-list .mini-im-chat-message-box .knowledge .content[data-v-3d81ef40]{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:5px;border-radius:5px;color:#666;text-align:left;background-color:#eef4f9}.mini-im-chat-list .mini-im-chat-message-box .knowledge .content .title[data-v-3d81ef40]{font-size:13px;font-weight:500}.mini-im-chat-list .mini-im-chat-message-box .knowledge .content .item[data-v-3d81ef40]{font-size:13px;line-height:22px}.mini-im-chat-list .mini-im-chat-message-box .system[data-v-3d81ef40]{display:-ms-flexbox;display:flex;margin-top:5px;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.mini-im-chat-list .mini-im-chat-message-box .system em[data-v-3d81ef40]{margin-top:5px;font-size:12px;color:#999}.mini-im-chat-list .mini-im-chat-message-box .system span[data-v-3d81ef40]{font-size:12px;max-width:50%;min-width:100px;display:inline;padding:3px 20px;border-radius:5px;text-align:center;background-color:#f2f2f2;color:#999}.mini-im-chat-list .mini-im-chat-message-box.self[data-v-3d81ef40]{text-align:right}.mini-im-chat-list .mini-im-chat-message-box.self .user-date[data-v-3d81ef40]{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end}.mini-im-chat-list .mini-im-chat-message-box.self .user-date span[data-v-3d81ef40]{-ms-flex-order:-2;order:-2}.mini-im-chat-list .mini-im-chat-message-box.self .user-date em[data-v-3d81ef40]{-ms-flex-order:-3;order:-3}.mini-im-chat-list .mini-im-chat-message-box.self .photo[data-v-3d81ef40],.mini-im-chat-list .mini-im-chat-message-box.self .text[data-v-3d81ef40]{-ms-flex-pack:end;justify-content:flex-end;-ms-flex-align:end;align-items:flex-end}.mini-im-chat-list .mini-im-chat-message-box.self .photo .cancel-btn[data-v-3d81ef40],.mini-im-chat-list .mini-im-chat-message-box.self .text .cancel-btn[data-v-3d81ef40]{color:#26a2ff;font-size:12px;margin-right:5px;cursor:pointer}.mini-im-chat-list .mini-im-chat-message-box.self .photo span[data-v-3d81ef40],.mini-im-chat-list .mini-im-chat-message-box.self .text span[data-v-3d81ef40]{background-color:rgba(33,150,243,.72);color:#fff;text-align:left}.mini-im-chat-list .mini-im-chat-message-box.self .knowledge>.content[data-v-3d81ef40]{background-color:rgba(33,150,243,.72);color:#fff}.record-page .record-mini-im-head{height:30px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;font-size:20px;-ms-flex-pack:justify;justify-content:space-between;color:#666}.record-page .record-mini-im-head i{margin-right:5px}.record-page .record-modal-chat-box{height:600px;padding:0 20px;overflow:hidden;overflow-y:auto}.record-page .el-dialog__body{padding:0;border-top:1px solid #f7f7f7}
\ No newline at end of file
.mini-im-button[data-v-3d019866]{height:30px;padding:0 5px;border:0;background-color:#fff;cursor:pointer;color:#666;font-size:12px}.mini-im-button i[data-v-3d019866]{color:#666}.emoji-box[data-v-3d019866]{font-size:20px}.emoji-box span[data-v-3d019866]{cursor:pointer;padding:2px}.mini-im-chat-item[data-v-595d9a46]{padding:10px;cursor:pointer;display:-ms-flexbox;display:flex;border-left:3px solid #fff;border-bottom:1px solid hsla(0,0%,68.6%,.11);position:relative}.mini-im-chat-item[data-v-595d9a46]:hover{border-left:3px solid #ff5722;background-color:#f3f3f3}.mini-im-chat-item:hover .delete_contact[data-v-595d9a46]{display:block}.mini-im-chat-item .mini-im-avatar[data-v-595d9a46]{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;-ms-flex-negative:0;flex-shrink:0}.mini-im-chat-item[data-v-595d9a46]::last-child{border-bottom:0}.mini-im-chat-item .delete_contact[data-v-595d9a46]{position:absolute;left:0;top:0;color:#999;display:none}.mini-im-chat-item .mini-im-message-box[data-v-595d9a46]{width:180px;-ms-flex-positive:1;flex-grow:1;padding:8px 0;padding-left:10px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:distribute;justify-content:space-around;box-sizing:border-box;font-size:14px}.mini-im-chat-item .mini-im-message-box .mini-im-nickname[data-v-595d9a46]{font-size:14px;color:#666;font-weight:600;margin-bottom:5px}.mini-im-chat-item .mini-im-message-box .mini-im-nickname .mini-im-online-status[data-v-595d9a46]{font-size:12px;color:#9e9e9e}.mini-im-chat-item .mini-im-message-box .mini-im-nickname .mini-im-online-status.success[data-v-595d9a46]{color:#aadc97}.mini-im-chat-item .mini-im-message-box .mini-im-message-badge[data-v-595d9a46],.mini-im-chat-item .mini-im-message-box .mini-im-user-date[data-v-595d9a46]{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.mini-im-chat-item .mini-im-message-box .mini-im-badge[data-v-595d9a46]{width:20px;height:20px;border-radius:100%;background-color:#f56c6c;text-align:center;color:#fff;line-height:20px;font-size:12px;-ms-flex-negative:0;flex-shrink:0}.mini-im-chat-item .mini-im-message-box .mini-im-message[data-v-595d9a46]{font-size:13px;color:#999;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:5px}.mini-im-chat-item .mini-im-message-box .mini-im-date[data-v-595d9a46]{font-size:12px;color:#999}.mini-im-chat-item-active[data-v-595d9a46]{border-left:3px solid #ff5722;background-color:#f4f5f7}.mini-im-username-component-box{height:100%;overflow:hidden;overflow-y:auto;padding:10px 10px 10px 5px}.mini-im-username-component-box .form-item{margin-top:25px}.mini-im-username-component-box .form-item-readonly input.el-input__inner,.mini-im-username-component-box .form-item-readonly textarea.el-textarea__inner,.mini-im-username-component-box .no-border input.el-input__inner{border:0}.mini-im-username-component{position:absolute;top:10px;right:25px}.mini-im-username-component span{font-size:18px;color:#666}.mini-im-username-component span i{font-size:20px}.mini-im-username-component button{border:0;cursor:pointer}.mini-im-chat-list .mini-im-chat-message-box[data-v-019193ce],.mini-im-chat-list[data-v-019193ce]{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.mini-im-chat-list .mini-im-chat-message-box[data-v-019193ce]{width:100%;margin-bottom:15px}.mini-im-chat-list .mini-im-chat-message-box .user-date[data-v-019193ce]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;color:#999;font-size:14px}.mini-im-chat-list .mini-im-chat-message-box .user-date span[data-v-019193ce]{color:#666;font-weight:500;font-size:14px;padding:0 5px}.mini-im-chat-list .mini-im-chat-message-box .user-date em[data-v-019193ce]{font-style:normal;font-size:12px}.mini-im-chat-list .mini-im-chat-message-box .loading[data-v-019193ce]{color:#666;display:-ms-flexbox;display:flex;margin-top:5px;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:center;justify-content:center}.mini-im-chat-list .mini-im-chat-message-box .loading span[data-v-019193ce]{margin-left:5px;font-size:13px}.mini-im-chat-list .mini-im-chat-message-box .text[data-v-019193ce]{display:-ms-flexbox;display:flex;margin-top:5px;word-break:break-all}.mini-im-chat-list .mini-im-chat-message-box .text span[data-v-019193ce]{max-width:40%;display:inline;padding:5px 10px;border-radius:5px;background-color:#eef4f9;font-size:14px;color:#666}.mini-im-chat-list .mini-im-chat-message-box .photo[data-v-019193ce]{display:-ms-flexbox;display:flex;margin-top:5px}.mini-im-chat-list .mini-im-chat-message-box .photo .loading[data-v-019193ce]{-ms-flex-item-align:end;align-self:flex-end;padding:0 5px}.mini-im-chat-list .mini-im-chat-message-box .photo .loading span[data-v-019193ce]{background:none!important;color:#999!important}.mini-im-chat-list .mini-im-chat-message-box .photo .img-content[data-v-019193ce]{border-radius:5px;width:200px;overflow:hidden}.mini-im-chat-list .mini-im-chat-message-box .photo img[data-v-019193ce]{cursor:pointer;width:100%;height:100%;display:inline}.mini-im-chat-list .mini-im-chat-message-box .knowledge[data-v-019193ce]{display:-ms-flexbox;display:flex;margin-top:5px;-ms-flex-pack:end;justify-content:flex-end}.mini-im-chat-list .mini-im-chat-message-box .knowledge .content[data-v-019193ce]{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:5px;border-radius:5px;color:#666;text-align:left;background-color:#eef4f9}.mini-im-chat-list .mini-im-chat-message-box .knowledge .content .title[data-v-019193ce]{font-size:13px;font-weight:500}.mini-im-chat-list .mini-im-chat-message-box .knowledge .content .item[data-v-019193ce]{font-size:13px;line-height:22px}.mini-im-chat-list .mini-im-chat-message-box .system[data-v-019193ce]{display:-ms-flexbox;display:flex;margin-top:5px;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.mini-im-chat-list .mini-im-chat-message-box .system em[data-v-019193ce]{margin-top:5px;font-size:12px;color:#999}.mini-im-chat-list .mini-im-chat-message-box .system span[data-v-019193ce]{font-size:12px;max-width:50%;min-width:100px;display:inline;padding:3px 20px;border-radius:5px;text-align:center;background-color:#f2f2f2;color:#999}.mini-im-chat-list .mini-im-chat-message-box.self[data-v-019193ce]{text-align:right}.mini-im-chat-list .mini-im-chat-message-box.self .user-date[data-v-019193ce]{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end}.mini-im-chat-list .mini-im-chat-message-box.self .user-date span[data-v-019193ce]{-ms-flex-order:-2;order:-2}.mini-im-chat-list .mini-im-chat-message-box.self .user-date em[data-v-019193ce]{-ms-flex-order:-3;order:-3}.mini-im-chat-list .mini-im-chat-message-box.self .photo[data-v-019193ce],.mini-im-chat-list .mini-im-chat-message-box.self .text[data-v-019193ce]{-ms-flex-pack:end;justify-content:flex-end;-ms-flex-align:end;align-items:flex-end;word-break:break-all}.mini-im-chat-list .mini-im-chat-message-box.self .photo .cancel-btn[data-v-019193ce],.mini-im-chat-list .mini-im-chat-message-box.self .text .cancel-btn[data-v-019193ce]{color:#26a2ff;font-size:12px;margin-right:5px;cursor:pointer}.mini-im-chat-list .mini-im-chat-message-box.self .photo span[data-v-019193ce],.mini-im-chat-list .mini-im-chat-message-box.self .text span[data-v-019193ce]{background-color:rgba(33,150,243,.72);color:#fff;text-align:left}.mini-im-chat-list .mini-im-chat-message-box.self .knowledge>.content[data-v-019193ce]{background-color:rgba(33,150,243,.72);color:#fff}.mini-im-workbench[data-v-19edcbfe]{height:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;min-width:1100px}.mini-im-session-list[data-v-19edcbfe]{width:280px;border-radius:5px;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:100%}.mini-im-session-list .mini-im-no-data[data-v-19edcbfe]{text-align:center;padding-top:15px;font-size:14px;color:#666}.mini-im-session-list .title[data-v-19edcbfe]{height:35px;border-radius:5px 5px 0 0;background-color:#f4f5f7;line-height:35px;padding-left:10px;color:#666;font-size:14px;border:1px solid #edf1f5}.mini-im-session-list .title button[data-v-19edcbfe]{border:0;background:none;text-align:right}.mini-im-session-list .title button span>span[data-v-19edcbfe]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center}.mini-im-session-list .title button span>span i[data-v-19edcbfe]{font-size:15px}.mini-im-session-list .title button span>span em[data-v-19edcbfe]{margin-left:3px}.mini-im-session-list .title button span>span .el-icon--right[data-v-19edcbfe]{font-size:12px}.mini-im-session-list .mini-im-session-content[data-v-19edcbfe]{-ms-flex-positive:1;flex-grow:1;height:100%;border:1px solid #edf1f5;overflow:hidden;overflow-y:auto;width:278px;background-color:#fff;border-radius:0 0 5px 5px}.mini-im-chat-view[data-v-19edcbfe]{-ms-flex-positive:1;flex-grow:1;border:1px solid #edf1f5;margin-left:20px;border-radius:3px;overflow:hidden;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.mini-im-chat-view .mini-im-chat-view-content-header[data-v-19edcbfe]{width:100%;-ms-flex-negative:0;flex-shrink:0;height:55px;border-bottom:1px solid #edf1f5;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;background-color:#f4f5f7;-ms-flex-align:center;align-items:center;padding:0 10px;box-sizing:border-box}.mini-im-chat-view .mini-im-chat-view-content-header .mini-im-header-user-box[data-v-19edcbfe]{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center}.mini-im-chat-view .mini-im-chat-view-content-header .mini-im-header-user-box .mini-im-header-user-info[data-v-19edcbfe]{padding-left:10px;font-size:14px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:distribute;justify-content:space-around}.mini-im-chat-view .mini-im-chat-view-content-header .mini-im-header-user-box .mini-im-header-user-info .input-pong[data-v-19edcbfe]{margin-left:10px;font-size:12px}.mini-im-chat-view .mini-im-chat-view-content-header .mini-im-header-user-box .mini-im-header-user-info div[data-v-19edcbfe]{font-weight:600;color:#666}.mini-im-chat-view .mini-im-chat-view-content-header .mini-im-header-user-box .mini-im-header-user-info div span[data-v-19edcbfe]{font-size:10px}.mini-im-chat-view .mini-im-chat-view-content-header .mini-im-header-user-box .mini-im-header-user-info span[data-v-19edcbfe]{color:#999;font-size:12px}.mini-im-chat-view .mini-im-chat-view-content-header .mini-im-buttons[data-v-19edcbfe]{width:230px;display:-ms-flexbox;display:flex;-ms-flex-pack:distribute;justify-content:space-around}.mini-im-chat-view .mini-im-chat-view-content-body[data-v-19edcbfe]{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-positive:1;flex-grow:1;overflow:hidden;background-color:#fff}.mini-im-chat-view .mini-im-chat-view-content-body .mini-im-chat-view-content[data-v-19edcbfe]{-ms-flex-positive:1;flex-grow:1;height:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.mini-im-chat-view .mini-im-chat-view-content-body .mini-im-chat-view-content .mini-im-chat-body[data-v-19edcbfe]{background-color:#fff;-ms-flex-positive:1;flex-grow:1;padding:10px;padding-bottom:20px;overflow:hidden;overflow-y:auto;min-width:400px}.mini-im-chat-view .mini-im-chat-view-content-body .mini-im-chat-view-content .mini-im-chat-input[data-v-19edcbfe]{height:115px;border-top:1px solid #edf1f5;position:relative;-ms-flex-positive:0;flex-grow:0;background-color:#fff;-ms-flex-negative:0;flex-shrink:0}.mini-im-chat-view .mini-im-chat-view-content-body .mini-im-chat-view-content .mini-im-chat-input .mini-im-chat-input-bar[data-v-19edcbfe]{height:30px;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;padding:0 15px;box-sizing:border-box}.mini-im-chat-view .mini-im-chat-view-content-body .mini-im-chat-view-content .mini-im-chat-input .mini-im-chat-input-bar .mini-im-button[data-v-19edcbfe]{height:30px;padding:0 5px;border:0;font-size:18px;cursor:pointer;background-color:#fff;color:#666;position:relative;overflow:hidden}.mini-im-chat-view .mini-im-chat-view-content-body .mini-im-chat-view-content .mini-im-chat-input .mini-im-chat-input-bar .mini-im-button input[data-v-19edcbfe]{position:absolute;top:0;cursor:pointer;left:0;width:100%;opacity:0;height:100%;font-size:100px}.mini-im-chat-view .mini-im-chat-view-content-body .mini-im-chat-view-content .mini-im-chat-input .mini-im-chat-input-bar .mini-im-button i[data-v-19edcbfe]{color:#666}.mini-im-chat-view .mini-im-chat-view-content-body .mini-im-chat-view-content .mini-im-chat-input .mini-im-chat-input-edit[data-v-19edcbfe]{height:100%}.mini-im-chat-view .mini-im-chat-view-content-body .mini-im-chat-view-content .mini-im-chat-input .mini-im-chat-input-edit .mini-im-chat-text-input[data-v-19edcbfe]{width:100%;border:0 solid #dcdfe6;resize:none;font-size:14px;color:#666;box-sizing:border-box;padding:5px}.mini-im-chat-view .mini-im-chat-view-content-body .mini-im-chat-view-user[data-v-19edcbfe]{width:350px;height:100%;border-left:1px solid #edf1f5;box-sizing:border-box;background-color:#fff;-ms-flex-negative:0;flex-shrink:0;-ms-flex-positive:0;flex-grow:0}.mini-im-chat-view .mini-im-chat-view-content-body .mini-im-chat-view-user .el-tabs--border-card[data-v-19edcbfe]{height:100%;border:0;box-shadow:none}.mini-im-chat-view .mini-im-chat-view-content[data-v-19edcbfe]{position:relative}.mini-im-chat-view .mini-im-chat-view-content .advance[data-v-19edcbfe]{position:absolute;box-sizing:border-box;width:100%;left:0;bottom:115px;font-size:14px;color:#999;display:-ms-flexbox;display:flex;padding:5px 3px;background-color:#f5f7fa;border-top:1px solid #f3f3f3}.mini-im-chat-view .mini-im-chat-view-content .advance div[data-v-19edcbfe]{width:70px;-ms-flex-negative:0;flex-shrink:0}.mini-im-chat-view .mini-im-chat-view-content .advance span[data-v-19edcbfe]{font-size:12px}.no-window[data-v-19edcbfe]{display:-ms-flexbox;display:flex;background-color:#fff;text-align:center;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;position:relative}.no-window i[data-v-19edcbfe]{font-size:130px;color:#999}.no-window span[data-v-19edcbfe]{color:#999;font-size:20px;margin-top:10px}.no-window .mini-im-right-window-loading[data-v-19edcbfe]{width:100%;height:100%;background-color:#fff;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;position:absolute;left:0;top:0}.no-window .mini-im-right-window-loading i[data-v-19edcbfe]{font-size:25px}.no-window .mini-im-right-window-loading span[data-v-19edcbfe]{margin-left:5px;font-size:15px;margin-top:0}.mini-im-user-info[data-v-19edcbfe]{width:300px}.mini-im-online-setting[data-v-19edcbfe]{font-size:14px;color:#666}.mini-im-online-setting .item[data-v-19edcbfe]{padding:5px;cursor:pointer;border-radius:3px}.mini-im-online-setting .item[data-v-19edcbfe]:hover{background:#f2f2f2}.mini-im-shortcut[data-v-19edcbfe]{display:-ms-flexbox;display:flex;height:500px;-ms-flex-direction:column;flex-direction:column}.mini-im-shortcut .mini-im-shortcut-head[data-v-19edcbfe]{height:30px;width:100%;display:-ms-flexbox;display:flex;border-bottom:1px solid #f4f5f7;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;padding-bottom:5px}.mini-im-shortcut .mini-im-shortcut-head button[data-v-19edcbfe]{width:25px;height:25px;-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;border:0}.mini-im-shortcut .mini-im-shortcut-head button i[data-v-19edcbfe]{font-size:15px;color:#999;cursor:pointer}.mini-im-shortcut .mini-im-shortcut-body[data-v-19edcbfe]{-ms-flex-positive:1;flex-grow:1;display:block;width:100%;overflow:hidden;overflow-y:auto}.mini-im-shortcut .mini-im-shortcut-item[data-v-19edcbfe]{display:-ms-flexbox;display:flex;width:100%;min-height:30px;padding:5px;box-sizing:border-box;cursor:pointer;font-size:13px}.mini-im-shortcut .mini-im-shortcut-item span[data-v-19edcbfe]{-ms-flex-positive:1;flex-grow:1;padding-right:10px}.mini-im-shortcut .mini-im-shortcut-item button[data-v-19edcbfe]{width:15px;height:30px;-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;margin-right:5px;border:0;background:none}.mini-im-shortcut .mini-im-shortcut-item button i[data-v-19edcbfe]{font-size:15px;color:#999;cursor:pointer}.mini-im-shortcut .mini-im-shortcut-item[data-v-19edcbfe]:hover{opacity:.9;background:#f2f2f2;border-radius:3px}.mini-im-customer-list[data-v-19edcbfe]{overflow:hidden;min-height:150px;max-height:500px;overflow-y:auto}.mini-im-customer-list .mini-im-customer-title[data-v-19edcbfe]{padding-bottom:10px;border-bottom:1px solid #f2f2f2}.mini-im-customer-list .mini-im-customer-item[data-v-19edcbfe]{display:-ms-flexbox;display:flex;cursor:pointer;-ms-flex-align:center;align-items:center;padding:5px;border-bottom:1px solid #f7f5f5;border-radius:3px}.mini-im-customer-list .mini-im-customer-item[data-v-19edcbfe]:hover{background:#f2f2f2}.mini-im-customer-list .mini-im-customer-item span[data-v-19edcbfe]{margin-left:10px}.mini-im-avatar[data-v-19edcbfe]{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0}
\ No newline at end of file
.login[data-v-27526a96]{display:-ms-flexbox;display:flex;width:100%;height:100%;background:url(../img/login_bg.8ba760be.jpg) bottom no-repeat;background-size:cover}.login .form[data-v-27526a96]{display:-ms-flexbox;display:flex;overflow:hidden;width:600px;height:300px;background-color:#fff;margin:auto;border-radius:5px}.login .form .left[data-v-27526a96]{width:350px;height:100%;padding:20px;box-sizing:border-box;background:url(../img/login_bg1.531e0c1c.jpg) bottom no-repeat;background-size:cover;font-size:18px;color:#fff;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}.login .form .left .tit[data-v-27526a96]{margin-top:50px;border-bottom:1px solid #fff}.login .form .left div[data-v-27526a96]{width:300px;padding-bottom:10px;margin-bottom:10px}.login .form .left span[data-v-27526a96]{font-size:14px}.login .form .left .client[data-v-27526a96]{margin-top:80px}.login .form .left .client button[data-v-27526a96]{margin-top:10px}.login .form .right[data-v-27526a96]{padding:20px;padding-top:50px}.login .form .right .input[data-v-27526a96]{margin-bottom:20px}.login .form .right .btn-group[data-v-27526a96]{margin-top:15px}.login .form .right .lable[data-v-27526a96]{font-size:18px;color:#606266;margin-bottom:15px;display:block}
\ No newline at end of file
.mini-im-head[data-v-e4baa1e8]{height:60px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;font-size:20px;-ms-flex-pack:justify;justify-content:space-between;color:#666}.mini-im-head i[data-v-e4baa1e8]{margin-right:5px}.mini-im-file-button[data-v-e4baa1e8]{width:180px;position:relative;overflow:hidden;border-radius:3px;padding:5px;box-shadow:1px 1px 7px 0 #ccc;cursor:pointer}.mini-im-file-button input[data-v-e4baa1e8]{width:180px;font-size:100px;position:absolute;top:0;left:0;cursor:pointer;opacity:0}.mini-im-file-button img[data-v-e4baa1e8]{width:100%;display:block}.mini-im-file-button .mini-im-file-percent[data-v-e4baa1e8]{position:absolute;top:0;left:0;width:100%;height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;background-color:rgba(0,0,0,.5);color:#fff;font-size:12px}
\ No newline at end of file
.mini-im-file-button[data-v-0a24570c]{width:50px;height:50px;border-radius:50%;position:relative;overflow:hidden;cursor:pointer}.mini-im-file-button input[data-v-0a24570c]{font-size:100px;position:absolute;top:0;left:0;cursor:pointer;opacity:0}.mini-im-file-button .mini-im-file-percent[data-v-0a24570c]{position:absolute;top:0;left:0;width:100%;height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;background-color:rgba(0,0,0,.5);color:#fff;font-size:12px}.mini-im-head[data-v-0aee8f9a]{height:30px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;font-size:20px;-ms-flex-pack:justify;justify-content:space-between;color:#666}.mini-im-head i[data-v-0aee8f9a]{margin-right:5px}.el-select .el-input[data-v-0aee8f9a]{width:130px}.input-with-select .el-input-group__prepend[data-v-0aee8f9a]{background-color:#fff}
\ No newline at end of file
.mini-im-file-button[data-v-6bfc8d44]{width:50px;height:50px;border-radius:50%;position:relative;overflow:hidden;cursor:pointer}.mini-im-file-button input[data-v-6bfc8d44]{font-size:100px;position:absolute;top:0;left:0;cursor:pointer;opacity:0}.mini-im-file-button .mini-im-file-percent[data-v-6bfc8d44]{position:absolute;top:0;left:0;width:100%;height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;background-color:rgba(0,0,0,.5);color:#fff;font-size:12px}.mini-im-head[data-v-d2bb02c0]{height:30px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;font-size:20px;-ms-flex-pack:justify;justify-content:space-between;color:#666}.mini-im-head i[data-v-d2bb02c0]{margin-right:5px}
\ No newline at end of file
.mini-im-file-button[data-v-2e63f8e9]{width:50px;height:50px;border-radius:50%;position:relative;overflow:hidden;cursor:pointer}.mini-im-file-button input[data-v-2e63f8e9]{font-size:100px;position:absolute;top:0;left:0;cursor:pointer;opacity:0}.mini-im-file-button .mini-im-file-percent[data-v-2e63f8e9]{position:absolute;top:0;left:0;width:100%;height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;background-color:rgba(0,0,0,.5);color:#fff;font-size:12px}.el-tag+.el-tag[data-v-2e63f8e9]{margin-left:10px}.button-new-tag[data-v-2e63f8e9]{margin-left:10px;height:32px;line-height:30px;padding-top:0;padding-bottom:0}.input-new-tag[data-v-2e63f8e9]{width:150px;margin-left:10px;vertical-align:bottom}.mini-im-file-button[data-v-6b34f2e3]{width:50px;height:50px;border-radius:50%;position:relative;overflow:hidden;cursor:pointer}.mini-im-file-button input[data-v-6b34f2e3]{font-size:100px;position:absolute;top:0;left:0;cursor:pointer;opacity:0}.mini-im-file-button .mini-im-file-percent[data-v-6b34f2e3]{position:absolute;top:0;left:0;width:100%;height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;background-color:rgba(0,0,0,.5);color:#fff;font-size:12px}.el-tag+.el-tag[data-v-6b34f2e3]{margin-left:10px}.button-new-tag[data-v-6b34f2e3]{margin-left:10px;height:32px;line-height:30px;padding-top:0;padding-bottom:0}.input-new-tag[data-v-6b34f2e3]{width:150px;margin-left:10px;vertical-align:bottom}.mini-im-head[data-v-dea0f158]{height:30px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;font-size:20px;-ms-flex-pack:justify;justify-content:space-between;color:#666}.mini-im-head i[data-v-dea0f158]{margin-right:5px}
\ No newline at end of file
.mini-im-home-title[data-v-66efe601]{text-align:center;font-size:18px;color:#666;padding:15px 0 50px}.mini-im-home-copyright[data-v-66efe601]{text-align:center;color:#666;font-size:14px;padding-top:50px}.online-count[data-v-66efe601]{text-align:center;color:#666;margin-top:10px}.online-count span[data-v-66efe601]{color:#8bc34a;margin:0 5px}
\ No newline at end of file
.el-tag+.el-tag[data-v-015f50bf]{margin-left:10px}.button-new-tag[data-v-015f50bf]{margin-left:10px;height:32px;line-height:30px;padding-top:0;padding-bottom:0}.input-new-tag[data-v-015f50bf]{width:150px;margin-left:10px;vertical-align:bottom}.el-tag+.el-tag[data-v-7b12f7d6]{margin-left:10px}.button-new-tag[data-v-7b12f7d6]{margin-left:10px;height:32px;line-height:30px;padding-top:0;padding-bottom:0}.input-new-tag[data-v-7b12f7d6]{width:150px;margin-left:10px;vertical-align:bottom}.me-head[data-v-e8cecb14]{height:30px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;font-size:20px;-ms-flex-pack:justify;justify-content:space-between;color:#666}.me-head i[data-v-e8cecb14]{margin-right:5px}
\ No newline at end of file
This diff could not be displayed because it is too large.
No preview for this file type
<svg width="264" height="88" viewBox="0 0 264 88" xmlns="http://www.w3.org/2000/svg"><title>default-skin 2</title><g fill="none" fill-rule="evenodd"><g><path d="M67.002 59.5v3.768c-6.307.84-9.184 5.75-10.002 9.732 2.22-2.83 5.564-5.098 10.002-5.098V71.5L73 65.585 67.002 59.5z" id="Shape" fill="#fff"/><g fill="#fff"><path d="M13 29v-5h2v3h3v2h-5zM13 15h5v2h-3v3h-2v-5zM31 15v5h-2v-3h-3v-2h5zM31 29h-5v-2h3v-3h2v5z" id="Shape"/></g><g fill="#fff"><path d="M62 24v5h-2v-3h-3v-2h5zM62 20h-5v-2h3v-3h2v5zM70 20v-5h2v3h3v2h-5zM70 24h5v2h-3v3h-2v-5z"/></g><path d="M20.586 66l-5.656-5.656 1.414-1.414L22 64.586l5.656-5.656 1.414 1.414L23.414 66l5.656 5.656-1.414 1.414L22 67.414l-5.656 5.656-1.414-1.414L20.586 66z" fill="#fff"/><path d="M111.785 65.03L110 63.5l3-3.5h-10v-2h10l-3-3.5 1.785-1.468L117 59l-5.215 6.03z" fill="#fff"/><path d="M152.215 65.03L154 63.5l-3-3.5h10v-2h-10l3-3.5-1.785-1.468L147 59l5.215 6.03z" fill="#fff"/><g><path id="Rectangle-11" fill="#fff" d="M160.957 28.543l-3.25-3.25-1.413 1.414 3.25 3.25z"/><path d="M152.5 27c3.038 0 5.5-2.462 5.5-5.5s-2.462-5.5-5.5-5.5-5.5 2.462-5.5 5.5 2.462 5.5 5.5 5.5z" id="Oval-1" stroke="#fff" stroke-width="1.5"/><path fill="#fff" d="M150 21h5v1h-5z"/></g><g><path d="M116.957 28.543l-1.414 1.414-3.25-3.25 1.414-1.414 3.25 3.25z" fill="#fff"/><path d="M108.5 27c3.038 0 5.5-2.462 5.5-5.5s-2.462-5.5-5.5-5.5-5.5 2.462-5.5 5.5 2.462 5.5 5.5 5.5z" stroke="#fff" stroke-width="1.5"/><path fill="#fff" d="M106 21h5v1h-5z"/><path fill="#fff" d="M109.043 19.008l-.085 5-1-.017.085-5z"/></g></g></g></svg>
\ No newline at end of file
<!DOCTYPE html><html lang=zh><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=favicon.ico><script src=mimc-min_1_0_2.js></script><script src=base64.min.js></script><title>客服系统</title><style>body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td { margin:0; padding:0; }
body, button, input, select, textarea { font-family: "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif; }
h1, h2, h3, h4, h5, h6{ font-size:100%; }
address, cite, dfn, em, var { font-style:normal; }
code, kbd, pre, samp { font-family:couriernew, courier, monospace; }
small{ font-size:12px; }
ul, ol { list-style:none; }
a { text-decoration:none;
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
-webkit-user-select: none;
-moz-user-focus: none;
-moz-user-select: none;
}
a:hover { text-decoration:underline; }
sup { vertical-align:text-top; }
sub{ vertical-align:text-bottom; }
legend { color:#000; }
fieldset, img { border:0; }
button, input, select, textarea { font-size:100%; outline: none;}
table { border-collapse:collapse; border-spacing:0; }
input{
border:0;
outline: none;
}
body{
height: 100vh;
overflow: hidden;
overflow-y: auto;
-webkit-overflow-scrolling:touch;
background-color: #fff;
}
.lx-load-box{
width: 2rem !important;
height: 2rem !important;
top:0 !important;
min-height: inherit!important;
left:0 !important; right:0 !important; bottom:0 !important; margin: auto !important;
}
input::-webkit-input-placeholder{
color:#ccc;
}
input::-moz-placeholder{ /* Mozilla Firefox 19+ */
color:#ccc;
}
input:-moz-placeholder{ /* Mozilla Firefox 4 to 18 */
color:#ccc;
}
input:-ms-input-placeholder{ /* Internet Explorer 10-11 */
color:#ccc;
}</style><link href=css/chunk-0499e026.d2993177.css rel=prefetch><link href=css/chunk-08473d3a.77daa9fe.css rel=prefetch><link href=css/chunk-2e29b63f.82fa3580.css rel=prefetch><link href=css/chunk-35027968.4de0a346.css rel=prefetch><link href=css/chunk-3a5ae4b9.36eb5b7d.css rel=prefetch><link href=css/chunk-487f5713.329fd3ec.css rel=prefetch><link href=css/chunk-771e4186.92ee7235.css rel=prefetch><link href=css/chunk-99e15be2.2e3a70e9.css rel=prefetch><link href=css/chunk-b4735d10.9f747f60.css rel=prefetch><link href=css/chunk-e3edb682.0b5ced8d.css rel=prefetch><link href=js/chunk-0499e026.accfa348.js rel=prefetch><link href=js/chunk-08473d3a.eae62d86.js rel=prefetch><link href=js/chunk-2e29b63f.7ff0f22a.js rel=prefetch><link href=js/chunk-343c8d41.f0041881.js rel=prefetch><link href=js/chunk-35027968.79ffcf7b.js rel=prefetch><link href=js/chunk-3a5ae4b9.95fb80dc.js rel=prefetch><link href=js/chunk-487f5713.773eab50.js rel=prefetch><link href=js/chunk-771e4186.f1240d97.js rel=prefetch><link href=js/chunk-99e15be2.69d71101.js rel=prefetch><link href=js/chunk-b4735d10.e80c520c.js rel=prefetch><link href=js/chunk-e3edb682.604c708b.js rel=prefetch><link href=css/app.ba710877.css rel=preload as=style><link href=css/chunk-vendors.cb739fea.css rel=preload as=style><link href=js/app.89a6f443.js rel=preload as=script><link href=js/chunk-vendors.420bd1eb.js rel=preload as=script><link href=css/chunk-vendors.cb739fea.css rel=stylesheet><link href=css/app.ba710877.css rel=stylesheet></head><body><noscript><strong>We're sorry but m doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=js/chunk-vendors.420bd1eb.js></script><script src=js/app.89a6f443.js></script></body></html>
\ No newline at end of file
(function(e){function t(t){for(var a,o,c=t[0],i=t[1],u=t[2],l=0,f=[];l<c.length;l++)o=c[l],Object.prototype.hasOwnProperty.call(s,o)&&s[o]&&f.push(s[o][0]),s[o]=0;for(a in i)Object.prototype.hasOwnProperty.call(i,a)&&(e[a]=i[a]);d&&d(t);while(f.length)f.shift()();return r.push.apply(r,u||[]),n()}function n(){for(var e,t=0;t<r.length;t++){for(var n=r[t],a=!0,o=1;o<n.length;o++){var c=n[o];0!==s[c]&&(a=!1)}a&&(r.splice(t--,1),e=i(i.s=n[0]))}return e}var a={},o={app:0},s={app:0},r=[];function c(e){return i.p+"js/"+({}[e]||e)+"."+{"chunk-08473d3a":"eae62d86","chunk-343c8d41":"f0041881","chunk-0499e026":"accfa348","chunk-2e29b63f":"7ff0f22a","chunk-3a5ae4b9":"95fb80dc","chunk-487f5713":"773eab50","chunk-771e4186":"f1240d97","chunk-99e15be2":"69d71101","chunk-35027968":"79ffcf7b","chunk-b4735d10":"e80c520c","chunk-e3edb682":"604c708b"}[e]+".js"}function i(t){if(a[t])return a[t].exports;var n=a[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,i),n.l=!0,n.exports}i.e=function(e){var t=[],n={"chunk-08473d3a":1,"chunk-0499e026":1,"chunk-2e29b63f":1,"chunk-3a5ae4b9":1,"chunk-487f5713":1,"chunk-771e4186":1,"chunk-99e15be2":1,"chunk-35027968":1,"chunk-b4735d10":1,"chunk-e3edb682":1};o[e]?t.push(o[e]):0!==o[e]&&n[e]&&t.push(o[e]=new Promise((function(t,n){for(var a="css/"+({}[e]||e)+"."+{"chunk-08473d3a":"77daa9fe","chunk-343c8d41":"31d6cfe0","chunk-0499e026":"d2993177","chunk-2e29b63f":"82fa3580","chunk-3a5ae4b9":"36eb5b7d","chunk-487f5713":"329fd3ec","chunk-771e4186":"92ee7235","chunk-99e15be2":"2e3a70e9","chunk-35027968":"4de0a346","chunk-b4735d10":"9f747f60","chunk-e3edb682":"0b5ced8d"}[e]+".css",s=i.p+a,r=document.getElementsByTagName("link"),c=0;c<r.length;c++){var u=r[c],l=u.getAttribute("data-href")||u.getAttribute("href");if("stylesheet"===u.rel&&(l===a||l===s))return t()}var f=document.getElementsByTagName("style");for(c=0;c<f.length;c++){u=f[c],l=u.getAttribute("data-href");if(l===a||l===s)return t()}var d=document.createElement("link");d.rel="stylesheet",d.type="text/css",d.onload=t,d.onerror=function(t){var a=t&&t.target&&t.target.src||s,r=new Error("Loading CSS chunk "+e+" failed.\n("+a+")");r.code="CSS_CHUNK_LOAD_FAILED",r.request=a,delete o[e],d.parentNode.removeChild(d),n(r)},d.href=s;var m=document.getElementsByTagName("head")[0];m.appendChild(d)})).then((function(){o[e]=0})));var a=s[e];if(0!==a)if(a)t.push(a[2]);else{var r=new Promise((function(t,n){a=s[e]=[t,n]}));t.push(a[2]=r);var u,l=document.createElement("script");l.charset="utf-8",l.timeout=120,i.nc&&l.setAttribute("nonce",i.nc),l.src=c(e);var f=new Error;u=function(t){l.onerror=l.onload=null,clearTimeout(d);var n=s[e];if(0!==n){if(n){var a=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;f.message="Loading chunk "+e+" failed.\n("+a+": "+o+")",f.name="ChunkLoadError",f.type=a,f.request=o,n[1](f)}s[e]=void 0}};var d=setTimeout((function(){u({type:"timeout",target:l})}),12e4);l.onerror=l.onload=u,document.head.appendChild(l)}return Promise.all(t)},i.m=e,i.c=a,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)i.d(n,a,function(t){return e[t]}.bind(null,a));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i.oe=function(e){throw console.error(e),e};var u=window["webpackJsonp"]=window["webpackJsonp"]||[],l=u.push.bind(u);u.push=t,u=u.slice();for(var f=0;f<u.length;f++)t(u[f]);var d=l;r.push([0,"chunk-vendors"]),n()})({0:function(e,t,n){e.exports=n("56d7")},"41cb":function(e,t,n){"use strict";var a=n("2b0e"),o=n("8c4f");a["default"].use(o["a"]),t["a"]=new o["a"]({base:"",routes:[{path:"/",name:"home",component:function(){return Promise.all([n.e("chunk-343c8d41"),n.e("chunk-0499e026")]).then(n.bind(null,"1e4b"))},redirect:"/index",children:[{path:"index",component:function(){return n.e("chunk-b4735d10").then(n.bind(null,"7abe"))}},{path:"workbench",component:function(){return Promise.all([n.e("chunk-343c8d41"),n.e("chunk-2e29b63f")]).then(n.bind(null,"29e5"))}},{path:"knowledge",component:function(){return n.e("chunk-e3edb682").then(n.bind(null,"7a26"))}},{path:"robot",component:function(){return Promise.all([n.e("chunk-343c8d41"),n.e("chunk-99e15be2")]).then(n.bind(null,"2157"))}},{path:"customer",component:function(){return Promise.all([n.e("chunk-343c8d41"),n.e("chunk-487f5713")]).then(n.bind(null,"aedf"))}},{path:"users",component:function(){return Promise.all([n.e("chunk-343c8d41"),n.e("chunk-771e4186")]).then(n.bind(null,"4468"))}},{path:"system",component:function(){return Promise.all([n.e("chunk-343c8d41"),n.e("chunk-3a5ae4b9")]).then(n.bind(null,"26b0"))}},{path:"chat_record",component:function(){return n.e("chunk-08473d3a").then(n.bind(null,"caae"))}}]},{path:"/login",name:"login",component:function(){return n.e("chunk-35027968").then(n.bind(null,"bd01"))}},{path:"*",redirect:"/index"}]})},4360:function(e,t,n){"use strict";var a=n("2b0e"),o=n("2f62"),s=(n("57e7"),n("bc3a")),r=n.n(s),c=n("41cb"),i={ON_GET_ME:function(e){var t=location.pathname;r.a.get("/admin/me").then((function(t){e.commit("onIsLogin",!0),e.commit("onChangeAdminInfo",t.data.data),"/login"!=location.pathname&&-1==location.hash.indexOf("#/login")||c["a"].push({path:"/index"})})).catch((function(n){console.log(n.response),e.commit("onIsLogin",!1),"/login"!=t&&c["a"].push({path:"/login"})}))},ON_GET_UPLOAD_TOKEN:function(e){r.a.get("/public/secret").then((function(t){e.commit("onChangeUploadToken",t.data.data)}))},ON_GET_PLATFORM_CONFIG:function(e){r.a.get("/platform/list").then((function(t){e.commit("onChangePlatformConfig",t.data.data)}))},ON_GET_SYSTEM:function(e){r.a.get("/system").then((function(t){e.commit("onChangeSystemInfo",t.data.data),document.title=t.data.data.title}))},ON_GET_COMPANY:function(e){r.a.get("/public/company").then((function(t){e.commit("onChangeCompanyInfo",t.data.data)}))},ON_GET_UPLOADS_CONFIG:function(e){r.a.get("/uploads/config").then((function(t){e.commit("onChangeUploadsConfigs",t.data.data)}))},ON_GET_CONTACTS:function(e){r.a.get("/contact/list").then((function(t){e.commit("onChangeContacts",t.data.data)}))},ON_RUN_LAST_ACTiIVITY:function(){r.a.get("/public/activity/")},ON_GET_ROBOTS:function(e){var t=this;r.a.get("/robot/list").then((function(t){e.commit("onChangeRobos",t.data.data)})).catch((function(){t.loading=!1}))}},u={onChangeHeaserTitle:function(e,t){e.heaserTitle=t},onChangePlatformConfig:function(e,t){e.platformConfig=t},onChangeToggleAside:function(e,t){e.isShowAside=t},onChangeEditDialogFormVisible:function(e,t){e.editDialogFormVisible=t},onChangeEditPasswordDialogFormVisible:function(e,t){e.editPasswordDialogFormVisible=t},onChangeAdminInfo:function(e,t){e.adminInfo=t},onChangeUploadToken:function(e,t){e.uploadToken=t},onChangeSystemInfo:function(e,t){e.systemInfo=t},onChangeCompanyInfo:function(e,t){e.companyInfo=t},onChangeUploadsConfigs:function(e,t){e.uploadsConfigs=t},onChangeMimcUser:function(e,t){e.mimcUser=t},onChangeContacts:function(e,t){for(var n in e.contacts=t,t){var a=t[n];if(e.seviceCurrentUser&&a.from_account==e.seviceCurrentUser.from_account){e.seviceCurrentUser=a;break}}},onChangeSeviceCurrentUser:function(e,t){e.seviceCurrentUser=t},onChangeRobos:function(e,t){e.robots=t},onReset:function(e){e.seviceCurrentUser=null,e.contacts=[],e.mimcUser=null},onChangeMessageRecord:function(e,t){e.messageRecord=t},onIsLogin:function(e,t){e.isLogin=t}},l={adminInfo:function(e){return e.adminInfo||{}},isLogin:function(e){return e.isLogin},avatar:function(e){return e.adminInfo&&""!=e.adminInfo.avatar?e.adminInfo.avatar:""},uploadMod:function(e){return e.uploadToken.mode||-1},nickname:function(e){return e.adminInfo&&""!=e.adminInfo.nickname?e.adminInfo.nickname:"未设置昵称"},uploadToken:function(e){return e.uploadToken},platformConfig:function(e){return e.platformConfig},systemInfo:function(e){return e.systemInfo},companyInfo:function(e){return e.companyInfo},uploadsConfigs:function(e){return e.uploadsConfigs},contacts:function(e){return e.contacts||[]},seviceCurrentUser:function(e){return e.seviceCurrentUser||{}},robots:function(e){return e.robots||[]},messageRecord:function(e){return e.messageRecord||{list:[]}},readCount:function(e){for(var t=0,n=0;n<e.contacts.length;n++)t+=e.contacts[n].read;return t},workbenchBgColor:function(e){return e.workbenchBgColor}},f={adminInfo:null,heaserTitle:"首页",isShowAside:!0,editDialogFormVisible:!1,isLogin:!1,editPasswordDialogFormVisible:!1,uploadToken:null,platformConfig:[],systemInfo:{},companyInfo:{},uploadsConfigs:[],mimcUser:null,contacts:[],robots:[],seviceCurrentUser:null,messageRecord:{list:[]},avatar:"data:image/png;base64,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",pushIcon:"data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMfaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzE0MCA3OS4xNjA0NTEsIDIwMTcvMDUvMDYtMDE6MDg6MjEgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkJEMURFODg4MTlDRjExRUFBQjY5RTZDMUM4OUFGOUNDIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkJEMURFODg3MTlDRjExRUFBQjY5RTZDMUM4OUFGOUNDIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE4IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJFRUE0ODZCQ0Q5QzUzN0E5MkNBQzNDRDdGODRCMUE4NSIgc3RSZWY6ZG9jdW1lbnRJRD0iRUVBNDg2QkNEOUM1MzdBOTJDQUMzQ0Q3Rjg0QjFBODUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwM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",workbenchBgColor:"#646b6f"};a["default"].use(o["a"]);t["a"]=new o["a"].Store({state:f,getters:l,mutations:u,actions:i})},4678:function(e,t,n){var a={"./af":"2bfb","./af.js":"2bfb","./ar":"8e73","./ar-dz":"a356","./ar-dz.js":"a356","./ar-kw":"423e","./ar-kw.js":"423e","./ar-ly":"1cfd","./ar-ly.js":"1cfd","./ar-ma":"0a84","./ar-ma.js":"0a84","./ar-sa":"8230","./ar-sa.js":"8230","./ar-tn":"6d83","./ar-tn.js":"6d83","./ar.js":"8e73","./az":"485c","./az.js":"485c","./be":"1fc1","./be.js":"1fc1","./bg":"84aa","./bg.js":"84aa","./bm":"a7fa","./bm.js":"a7fa","./bn":"9043","./bn.js":"9043","./bo":"d26a","./bo.js":"d26a","./br":"6887","./br.js":"6887","./bs":"2554","./bs.js":"2554","./ca":"d716","./ca.js":"d716","./cs":"3c0d","./cs.js":"3c0d","./cv":"03ec","./cv.js":"03ec","./cy":"9797","./cy.js":"9797","./da":"0f14","./da.js":"0f14","./de":"b469","./de-at":"b3eb","./de-at.js":"b3eb","./de-ch":"bb71","./de-ch.js":"bb71","./de.js":"b469","./dv":"598a","./dv.js":"598a","./el":"8d47","./el.js":"8d47","./en-SG":"cdab","./en-SG.js":"cdab","./en-au":"0e6b","./en-au.js":"0e6b","./en-ca":"3886","./en-ca.js":"3886","./en-gb":"39a6","./en-gb.js":"39a6","./en-ie":"e1d3","./en-ie.js":"e1d3","./en-il":"7333","./en-il.js":"7333","./en-nz":"6f50","./en-nz.js":"6f50","./eo":"65db","./eo.js":"65db","./es":"898b","./es-do":"0a3c","./es-do.js":"0a3c","./es-us":"55c9","./es-us.js":"55c9","./es.js":"898b","./et":"ec18","./et.js":"ec18","./eu":"0ff2","./eu.js":"0ff2","./fa":"8df4","./fa.js":"8df4","./fi":"81e9","./fi.js":"81e9","./fo":"0721","./fo.js":"0721","./fr":"9f26","./fr-ca":"d9f8","./fr-ca.js":"d9f8","./fr-ch":"0e49","./fr-ch.js":"0e49","./fr.js":"9f26","./fy":"7118","./fy.js":"7118","./ga":"5120","./ga.js":"5120","./gd":"f6b4","./gd.js":"f6b4","./gl":"8840","./gl.js":"8840","./gom-latn":"0caa","./gom-latn.js":"0caa","./gu":"e0c5","./gu.js":"e0c5","./he":"c7aa","./he.js":"c7aa","./hi":"dc4d","./hi.js":"dc4d","./hr":"4ba9","./hr.js":"4ba9","./hu":"5b14","./hu.js":"5b14","./hy-am":"d6b6","./hy-am.js":"d6b6","./id":"5038","./id.js":"5038","./is":"0558","./is.js":"0558","./it":"6e98","./it-ch":"6f12","./it-ch.js":"6f12","./it.js":"6e98","./ja":"079e","./ja.js":"079e","./jv":"b540","./jv.js":"b540","./ka":"201b","./ka.js":"201b","./kk":"6d79","./kk.js":"6d79","./km":"e81d","./km.js":"e81d","./kn":"3e92","./kn.js":"3e92","./ko":"22f8","./ko.js":"22f8","./ku":"2421","./ku.js":"2421","./ky":"9609","./ky.js":"9609","./lb":"440c","./lb.js":"440c","./lo":"b29d","./lo.js":"b29d","./lt":"26f9","./lt.js":"26f9","./lv":"b97c","./lv.js":"b97c","./me":"293c","./me.js":"293c","./mi":"688b","./mi.js":"688b","./mk":"6909","./mk.js":"6909","./ml":"02fb","./ml.js":"02fb","./mn":"958b","./mn.js":"958b","./mr":"39bd","./mr.js":"39bd","./ms":"ebe4","./ms-my":"6403","./ms-my.js":"6403","./ms.js":"ebe4","./mt":"1b45","./mt.js":"1b45","./my":"8689","./my.js":"8689","./nb":"6ce3","./nb.js":"6ce3","./ne":"3a39","./ne.js":"3a39","./nl":"facd","./nl-be":"db29","./nl-be.js":"db29","./nl.js":"facd","./nn":"b84c","./nn.js":"b84c","./pa-in":"f3ff","./pa-in.js":"f3ff","./pl":"8d57","./pl.js":"8d57","./pt":"f260","./pt-br":"d2d4","./pt-br.js":"d2d4","./pt.js":"f260","./ro":"972c","./ro.js":"972c","./ru":"957c","./ru.js":"957c","./sd":"6784","./sd.js":"6784","./se":"ffff","./se.js":"ffff","./si":"eda5","./si.js":"eda5","./sk":"7be6","./sk.js":"7be6","./sl":"8155","./sl.js":"8155","./sq":"c8f3","./sq.js":"c8f3","./sr":"cf1e","./sr-cyrl":"13e9","./sr-cyrl.js":"13e9","./sr.js":"cf1e","./ss":"52bd","./ss.js":"52bd","./sv":"5fbd","./sv.js":"5fbd","./sw":"74dc","./sw.js":"74dc","./ta":"3de5","./ta.js":"3de5","./te":"5cbb","./te.js":"5cbb","./tet":"576c","./tet.js":"576c","./tg":"3b1b","./tg.js":"3b1b","./th":"10e8","./th.js":"10e8","./tl-ph":"0f38","./tl-ph.js":"0f38","./tlh":"cf75","./tlh.js":"cf75","./tr":"0e81","./tr.js":"0e81","./tzl":"cf51","./tzl.js":"cf51","./tzm":"c109","./tzm-latn":"b53d","./tzm-latn.js":"b53d","./tzm.js":"c109","./ug-cn":"6117","./ug-cn.js":"6117","./uk":"ada2","./uk.js":"ada2","./ur":"5294","./ur.js":"5294","./uz":"2e8c","./uz-latn":"010e","./uz-latn.js":"010e","./uz.js":"2e8c","./vi":"2921","./vi.js":"2921","./x-pseudo":"fd7e","./x-pseudo.js":"fd7e","./yo":"7f33","./yo.js":"7f33","./zh-cn":"5c3a","./zh-cn.js":"5c3a","./zh-hk":"49ab","./zh-hk.js":"49ab","./zh-tw":"90ea","./zh-tw.js":"90ea"};function o(e){var t=s(e);return n(t)}function s(e){if(!n.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}o.keys=function(){return Object.keys(a)},o.resolve=s,e.exports=o,o.id="4678"},"56d7":function(e,t,n){"use strict";n.r(t);n("cadf"),n("551c"),n("f751"),n("097d");var a=n("2b0e"),o=n("5c96"),s=n.n(o),r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"app"}},[n("router-view")],1)},c=[],i=(n("6d67"),n("bc3a")),u=n.n(i),l=n("b730"),f=n.n(l),d={created:function(){this.$store.dispatch("ON_GET_ME")},methods:{appInit:function(){var e=this;this.adminInfo?(this.$store.dispatch("ON_GET_UPLOAD_TOKEN"),this.$store.dispatch("ON_GET_PLATFORM_CONFIG"),this.$store.dispatch("ON_GET_SYSTEM"),this.$store.dispatch("ON_GET_COMPANY"),this.$store.dispatch("ON_GET_UPLOADS_CONFIG"),this.$store.dispatch("ON_GET_ROBOTS"),this.$store.dispatch("ON_GET_CONTACTS"),this.upLastActivity(),this.getContacts(),this.initMimc()):setTimeout((function(){return e.appInit()}),50)},getContacts:function(){var e=this;this.adminInfo&&(this.$store.dispatch("ON_GET_CONTACTS"),this.seviceCurrentUser&&this.$store.getters.contacts.length>0&&this.$store.getters.contacts.map((function(t){t.from_account==e.seviceCurrentUser.from_account&&e.$store.commit("onChangeSeviceCurrentUser",t)})))},upLastActivity:function(){var e=this;this.$store.dispatch("ON_RUN_LAST_ACTiIVITY"),setTimeout((function(){return e.upLastActivity()}),6e4)},initMimc:function(){var e=this,t=this,n=this.$store.state.adminInfo;n?t.$mimcInstance.init({type:1,account_id:n.id},(function(e){e?t.watchLogin():t.initMimc()})):setTimeout((function(){return e.initMimc()}),1e3)},changeUserOnlineStatus:function(e){var t=this;u.a.put("/admin/online/"+e).then((function(){t.$store.dispatch("ON_GET_ME"),0==e&&t.$message.info("当前状态为离线")})).catch((function(e){t.$message.error(e.response.data.message)}))},watchLogin:function(){var e=this;try{var t=this;if(null!=t.$store.state.user)return;1==t.$store.getters.adminInfo.online?t.$mimcInstance.login((function(){t.changeUserOnlineStatus(1),t.$store.dispatch("ON_RUN_LAST_ACTiIVITY"),t.$store.dispatch("ON_GET_CONTACTS"),t.$store.commit("onChangeMimcUser",t.$mimcInstance.user)})):0!=t.$store.getters.adminInfo.online&&setTimeout((function(){return t.watchLogin()}),1e3)}catch(n){setTimeout((function(){return e.watchLogin()}),1e3)}}},mounted:function(){var e=this;window.addEventListener("resize",(function(){e.$store.commit("onChangeToggleAside",!0),document.body.clientWidth<1e3&&e.$store.commit("onChangeToggleAside",!1)}),!1),f.a.Permission.has()||f.a.Permission.request((function(){}),(function(){}))},computed:{adminInfo:function(){return this.$store.getters.adminInfo},seviceCurrentUser:function(){return this.$store.getters.seviceCurrentUser},messageRecord:function(){return this.$store.getters.messageRecord},isLogin:function(){return this.$store.getters.isLogin}},watch:{$route:function(){var e=this;/^\/workbench(\/\d+)?$/i.test(this.$route.path)||this.$mimcInstance.addEventListener("receiveP2PMsg",(function(t){var n=parseInt(((new Date).getTime()+"").substr(0,10));if(t.timestamp=parseInt((t.timestamp+"").substr(0,10)),!(n-t.timestamp>=60))if("contacts"!=t.biz_type)if("handshake"!=t.biz_type){var a=JSON.parse(JSON.stringify(e.messageRecord));a.list.push(t),e.$store.commit("onChangeMessageRecord",a),"contacts"!=t.biz_type&&"pong"!=t.biz_type&&"welcome"!=t.biz_type&&"cancel"!=t.biz_type&&"handshake"!=t.biz_type&&"end"!=t.biz_type&&"timeout"!=t.biz_type&&f.a.Permission.has()&&f.a.create("收到一条新消息",{body:t.payload,icon:e.$store.state.pushIcon,timeout:5e3,onClick:function(){e.$router.push({path:"/workbench?uid="+t.from_account}),window.focus()}})}else e.$mimcInstance.sendMessage("text",t.from_account,e.adminInfo.auto_reply);else{var o=JSON.parse(t.payload);e.$store.commit("onChangeContacts",o)}}))},isLogin:function(){console.log("当前是登录状态"),this.appInit()}}},m=d,b=(n("7faf"),n("2877")),h=Object(b["a"])(m,r,c,!1,null,null,null),p=h.exports,A=n("41cb"),y=n("4360"),k=(n("0fae"),n("d1d4")),j=n.n(k),g=(n("394c"),n("c1df")),U={install:function(e,t){e.prototype.$myMethod=function(){console.log(t)},e.prototype.$getPlatformItem=function(e){for(var t,n=this.$store.getters.platformConfig,a=0;a<n.length;a++)n[a].id==e&&(t=n[a]);return t||{title:"未知"}},e.prototype.$formatUnixDate=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"YYYY-MM-DD HH:mm:ss";return g(parseInt(e+"000")).format(t)},e.prototype.$formatFromNowDate=function(e){return g().format("YYYYMMDD")==g(parseInt(e+"000")).format("YYYYMMDD")?g(parseInt(e+"000")).format("HH:mm"):g(parseInt(e+"000")).format("YYYY-MM-DD HH:mm")},e.prototype.$robotNickname=function(e){for(var t,n=this.$store.getters.robots,a=0;a<n.length;a++)n[a].id==e&&(t=n[a].nickname);return t}}},T=U,C=(n("6b54"),n("87b3"),{install:function(e,t){console.log(t),e.MimcInstance=e.prototype.$mimcInstance={user:null,robot:null,fetchMIMCTokenResult:null,init:function(e,t){this.getRobot(),this.fetchMIMCToken(e,t)},_receiveP2PMsgCallback:null,_statusChangeCallback:null,_serverAckCallback:null,_disconnectCallback:null,fetchMIMCToken:function(e,t){var n=this;u.a.post("/public/register",e).then((function(e){n.fetchMIMCTokenResult=e.data.data.token,t&&t(!0),console.log("MIMC初始化成功")})).catch((function(e){t&&t(!1),o["Message"].error("mimc初始化失败,请刷新重试,"+e.response.data.message)}))},getRobot:function(){var e=this;u.a.get("/public/robot/1").then((function(t){e.robot=t.data.data})).catch((function(e){o["Message"].error("mimc初始化失败,请刷新重试"+e.response.data.message)}))},login:function(e){var t=this;try{var n=this.fetchMIMCTokenResult;if(!n)return;this.user=new MIMCUser(n.data.appId,n.data.appAccount,"666"),this.user.registerP2PMsgHandler((function(e){var n=JSON.parse(window.Base64.decode(e.getPayload()));t._receiveP2PMsgCallback&&t._receiveP2PMsgCallback(n)})),this.user.registerFetchToken((function(){return n})),this.user.registerStatusChange((function(e,n,a,o){t._statusChangeCallback&&t._statusChangeCallback(e,n,a,o)})),this.user.registerServerAckHandler((function(e,n,a,o){t._serverAckCallback&&t._serverAckCallback(e,n,a,o)})),this.user.registerDisconnHandler((function(){t._disconnectCallback&&t._disconnectCallback()})),this.user.login(),window.mimcInstance=this,e&&e(),console.log("MIMC登录成功")}catch(a){console.log(a),console.log("MIMC登录失败"),setTimeout((function(){t.login()}),1e3)}},logout:function(){this.user&&(this.user.logout(),this.user=null)},addEventListener:function(e,t){switch(e){case"receiveP2PMsg":this._receiveP2PMsgCallback=t;break;case"statusChange":this._statusChangeCallback=t;break;case"serverAck":this._serverAckCallback=t;break;case"disconnect":this._disconnectCallback=t;break}},sendMessage:function(e,t){var n=this,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;if(this.user){var r={from_account:parseInt(this.fetchMIMCTokenResult.data.appAccount),to_account:parseInt(t),biz_type:e,version:"0",timestamp:parseInt(((new Date).getTime()+" ").substr(0,10)),key:(new Date).getTime(),read:0,transfer_account:parseInt(s),payload:a+""},c=window.Base64.encode(JSON.stringify(r));try{if("contacts"!=e&&"pong"!=e&&"welcome"!=e&&"handshake"!=e){var i={biz_type:"into",payload:c},u=window.Base64.encode(JSON.stringify(i));this.user.sendMessage(this.robot.id.toString(),u)}setTimeout((function(){n.user.sendMessage(t.toString(),c)}),200)}catch(l){console.log("sendMessage fail, err="+l)}return r}o["Message"].error("服务异常,请刷新重试!")},createLocalMessage:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o={from_account:parseInt(this.fetchMIMCTokenResult.data.appAccount),to_account:parseInt(t),biz_type:e,version:"0",timestamp:parseInt(((new Date).getTime()+" ").substr(0,10)),key:(new Date).getTime(),read:0,transfer_account:parseInt(a),payload:n+""};return o}}}}),v=C,O=(n("28a5"),{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY年MM月DD日",LLL:"YYYY年MM月DD日Ah点mm分",LLLL:"YYYY年MM月DD日ddddAh点mm分",l:"YYYY-M-D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"下午"===t||"晚上"===t?e+12:e>=11?e:e+12},meridiem:function(e,t){var n=100*e+t;return n<600?"凌晨":n<900?"早上":n<1130?"上午":n<1230?"中午":n<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",ss:"%d秒",m:"1分钟",mm:"%d分钟",h:"1小时",hh:"%d小时",d:"1天",dd:"%d天",M:"1个月",MM:"%d个月",y:"1年",yy:"%d年"},week:{dow:1,doy:4}}),V=n("c1df");V.locale("zh-cn",O),u.a.defaults.baseURL="http://kf.aissz.com:666/v1",u.a.interceptors.request.use((function(e){var t=localStorage.getItem("Authorization");return e.headers["Authorization"]=t||"",e}),(function(e){return Promise.reject(e)})),u.a.interceptors.response.use((function(e){return e}),(function(e){return 401==e.response.status&&(localStorage.clear(),y["a"].commit("onChangeAdminInfo",null),y["a"].state.mimcUser&&y["a"].state.mimcUser.logout(),A["a"].push("/login")),Promise.reject(e)}));var L={fullscreenEl:!1};a["default"].use(j.a,L),a["default"].use(s.a),a["default"].use(T),a["default"].use(v),a["default"].config.productionTip=!1,new a["default"]({router:A["a"],store:y["a"],render:function(e){return e(p)}}).$mount("#app")},"7faf":function(e,t,n){"use strict";var a=n("8fba"),o=n.n(a);o.a},"8fba":function(e,t,n){}});
//# sourceMappingURL=app.89a6f443.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/router.js","webpack:///./src/store/actions.js","webpack:///./src/store/mutations.js","webpack:///./src/store/getters.js","webpack:///./src/store/state.js","webpack:///./src/store/index.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/App.vue?f7e9","webpack:///src/App.vue","webpack:///./src/App.vue?2e55","webpack:///./src/App.vue","webpack:///./src/plugins/help.js","webpack:///./src/plugins/mimc.js","webpack:///./src/resource/moment_locale.js","webpack:///./src/main.js","webpack:///./src/App.vue?2c4a"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","Vue","use","Router","base","process","routes","path","component","redirect","children","ON_GET_ME","context","pathname","location","axios","response","commit","hash","indexOf","router","catch","log","ON_GET_UPLOAD_TOKEN","ON_GET_PLATFORM_CONFIG","ON_GET_SYSTEM","title","ON_GET_COMPANY","ON_GET_UPLOADS_CONFIG","ON_GET_CONTACTS","ON_RUN_LAST_ACTiIVITY","ON_GET_ROBOTS","loading","onChangeHeaserTitle","state","heaserTitle","onChangePlatformConfig","platformConfig","onChangeToggleAside","isShow","isShowAside","onChangeEditDialogFormVisible","editDialogFormVisible","onChangeEditPasswordDialogFormVisible","editPasswordDialogFormVisible","onChangeAdminInfo","adminInfo","onChangeUploadToken","uploadToken","onChangeSystemInfo","systemInfo","onChangeCompanyInfo","companyInfo","onChangeUploadsConfigs","uploadsConfigs","onChangeMimcUser","mimcUser","onChangeContacts","contacts","index","contact","seviceCurrentUser","from_account","onChangeSeviceCurrentUser","onChangeRobos","robots","onReset","onChangeMessageRecord","messageRecord","onIsLogin","isLogin","avatar","uploadMod","nickname","list","readCount","count","read","workbenchBgColor","pushIcon","Vuex","Store","getters","mutations","actions","map","webpackContext","req","id","webpackContextResolve","keys","_vm","this","_h","$createElement","_c","_self","attrs","staticRenderFns","created","$store","dispatch","methods","appInit","upLastActivity","getContacts","initMimc","changeUserOnlineStatus","watchLogin","self","$mimcInstance","login","user","mounted","addEventListener","computed","watch","nowTime","parseInt","Date","getTime","timestamp","newMessageRecord","JSON","parse","stringify","payload","moment","require","Helps","options","$myMethod","$getPlatformItem","platformConfigItem","$formatUnixDate","unix","format","$formatFromNowDate","$robotNickname","MimcPlugin","MimcInstance","robot","fetchMIMCTokenResult","init","callback","getRobot","fetchMIMCToken","_receiveP2PMsgCallback","_statusChangeCallback","_serverAckCallback","_disconnectCallback","post","token","Message","MIMCUser","appId","appAccount","registerP2PMsgHandler","msg","Base64","decode","getPayload","registerFetchToken","registerStatusChange","bindResult","errType","errReason","errDesc","registerServerAckHandler","packetId","sequence","timeStamp","errMsg","registerDisconnHandler","mimcInstance","logout","sendMessage","toAccount","transferAccount","messageJson","substr","jsonBase64Msg","encode","intoMessageJson","intoJsonBase64Msg","toString","createLocalMessage","months","split","monthsShort","weekdays","weekdaysShort","weekdaysMin","longDateFormat","LT","LTS","L","LL","LLL","LLLL","ll","lll","llll","meridiemParse","meridiemHour","hour","meridiem","minute","hm","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","dayOfMonthOrdinalParse","ordinal","number","period","relativeTime","future","past","ss","mm","h","hh","dd","M","MM","y","yy","week","dow","doy","locale","momentLocal","defaults","baseURL","interceptors","config","localStorage","getItem","headers","status","clear","store","fullscreenEl","preview","ElementUI","productionTip","render","App","$mount"],"mappings":"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","file":"js/app.89a6f443.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-08473d3a\":\"eae62d86\",\"chunk-343c8d41\":\"f0041881\",\"chunk-0499e026\":\"accfa348\",\"chunk-2e29b63f\":\"7ff0f22a\",\"chunk-3a5ae4b9\":\"95fb80dc\",\"chunk-487f5713\":\"773eab50\",\"chunk-771e4186\":\"f1240d97\",\"chunk-99e15be2\":\"69d71101\",\"chunk-35027968\":\"79ffcf7b\",\"chunk-b4735d10\":\"e80c520c\",\"chunk-e3edb682\":\"604c708b\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-08473d3a\":1,\"chunk-0499e026\":1,\"chunk-2e29b63f\":1,\"chunk-3a5ae4b9\":1,\"chunk-487f5713\":1,\"chunk-771e4186\":1,\"chunk-99e15be2\":1,\"chunk-35027968\":1,\"chunk-b4735d10\":1,\"chunk-e3edb682\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-08473d3a\":\"77daa9fe\",\"chunk-343c8d41\":\"31d6cfe0\",\"chunk-0499e026\":\"d2993177\",\"chunk-2e29b63f\":\"82fa3580\",\"chunk-3a5ae4b9\":\"36eb5b7d\",\"chunk-487f5713\":\"329fd3ec\",\"chunk-771e4186\":\"92ee7235\",\"chunk-99e15be2\":\"2e3a70e9\",\"chunk-35027968\":\"4de0a346\",\"chunk-b4735d10\":\"9f747f60\",\"chunk-e3edb682\":\"0b5ced8d\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import Vue from 'vue'\nimport Router from 'vue-router'\n\nVue.use(Router)\n\nexport default new Router({\n // mode: 'history',\n base: process.env.BASE_URL,\n routes: [\n {\n path: '/',\n name: 'home',\n component: () => import('./views/index.vue'),\n redirect: \"/index\",\n children: [\n {\n path: 'index',\n component: () => import('./views/home/index.vue'),\n },\n {\n path: 'workbench',\n component: () => import('./views/workbench/index.vue'),\n },\n {\n path: 'knowledge',\n component: () => import('./views/knowledge/index.vue'),\n },\n {\n path: 'robot',\n component: () => import('./views/robot/index.vue'),\n },\n {\n path: 'customer',\n component: () => import('./views/customer/index.vue'),\n },\n {\n path: 'users',\n component: () => import('./views/users/index.vue'),\n },\n {\n path: 'system',\n component: () => import('./views/system/index.vue'),\n },\n {\n path: 'chat_record',\n component: () => import('./views/record/index.vue')\n },\n ]\n },\n {\n path: '/login',\n name: 'login',\n component: () => import('./views/auth/login.vue')\n },\n {path:'*',redirect: \"/index\"},\n ]\n})\n","import axios from 'axios'\nimport router from '../router'\nexport default {\n // 获取用户信息\n ON_GET_ME(context){\n var pathname = location.pathname\n axios.get('/admin/me')\n .then(response => {\n context.commit(\"onIsLogin\", true)\n context.commit(\"onChangeAdminInfo\", response.data.data)\n if(location.pathname == '/login' || location.hash.indexOf(\"#/login\") != -1){\n router.push({ path: '/index'})\n }\n })\n .catch(error => {\n console.log(error.response)\n context.commit(\"onIsLogin\", false)\n if(pathname != '/login'){\n router.push({ path: '/login'})\n }\n });\n },\n // 获取上传配置\n ON_GET_UPLOAD_TOKEN(context){\n axios.get('/public/secret')\n .then(response => {\n context.commit('onChangeUploadToken', response.data.data)\n })\n },\n // 获取平台配置数据\n ON_GET_PLATFORM_CONFIG(context){\n axios.get('/platform/list')\n .then(response => {\n context.commit('onChangePlatformConfig', response.data.data)\n })\n },\n // 获取systemInfo\n ON_GET_SYSTEM(context){\n axios.get('/system')\n .then(response => {\n context.commit('onChangeSystemInfo', response.data.data)\n document.title = response.data.data.title\n })\n },\n // 获取companyInfo\n ON_GET_COMPANY(context){\n axios.get('/public/company')\n .then(response => {\n context.commit('onChangeCompanyInfo', response.data.data)\n })\n },\n // 获取uploads/config\n ON_GET_UPLOADS_CONFIG(context){\n axios.get('/uploads/config')\n .then(response => {\n context.commit('onChangeUploadsConfigs', response.data.data)\n })\n },\n // 获取会话列表\n ON_GET_CONTACTS(context){\n axios.get('/contact/list')\n .then(response => {\n context.commit('onChangeContacts', response.data.data)\n })\n },\n // 一分钟上报一次我的活动\n ON_RUN_LAST_ACTiIVITY(){\n axios.get('/public/activity/')\n },\n // 获取机器人列表\n ON_GET_ROBOTS(context){\n axios.get('/robot/list')\n .then(response => {\n context.commit('onChangeRobos', response.data.data)\n })\n .catch(() => {\n this.loading = false\n });\n }\n}","export default {\n // 更新标题\n onChangeHeaserTitle(state, title){\n state.heaserTitle = title\n },\n // 更新平台配置数据\n onChangePlatformConfig(state, platformConfig){\n state.platformConfig = platformConfig\n },\n // 展开隐藏\n onChangeToggleAside(state, isShow){\n state.isShowAside = isShow\n },\n // 更新个人资料modal状态\n onChangeEditDialogFormVisible(state, isShow){\n state.editDialogFormVisible = isShow\n },\n // 更新个人密码modal状态\n onChangeEditPasswordDialogFormVisible(state, isShow){\n state.editPasswordDialogFormVisible = isShow\n },\n // 更新个人资料\n onChangeAdminInfo(state, adminInfo){\n state.adminInfo = adminInfo\n },\n // 更新上传token\n onChangeUploadToken(state, uploadToken){\n state.uploadToken = uploadToken\n },\n // 更新systemInfo\n onChangeSystemInfo(state, systemInfo){\n state.systemInfo = systemInfo\n },\n // 更新companyInfo\n onChangeCompanyInfo(state, companyInfo){\n state.companyInfo = companyInfo\n },\n // 更新uploadsConfigs\n onChangeUploadsConfigs(state, uploadsConfigs){\n state.uploadsConfigs = uploadsConfigs\n },\n // 更新mimcUser\n onChangeMimcUser(state, mimcUser){\n state.mimcUser = mimcUser\n },\n // 更新contacts\n onChangeContacts(state, contacts){\n state.contacts = contacts\n for(let index in contacts){\n var contact = contacts[index]\n if(state.seviceCurrentUser && contact.from_account == state.seviceCurrentUser.from_account){\n state.seviceCurrentUser = contact\n break\n }\n }\n },\n // 更新当前窗口服务谁\n onChangeSeviceCurrentUser(state, seviceCurrentUser){\n state.seviceCurrentUser = seviceCurrentUser\n },\n // 更新机器人列表\n onChangeRobos(state, robots){\n state.robots = robots\n },\n // 重置某些值\n onReset(state){\n state.seviceCurrentUser = null\n state.contacts = []\n state.mimcUser = null\n },\n // 更新聊天记录\n onChangeMessageRecord(state, messageRecord){\n state.messageRecord = messageRecord\n },\n // 是否是登陆状态\n onIsLogin(state, isLogin){\n state.isLogin = isLogin\n }\n}","export default {\n // 获取个人信息\n adminInfo(state){\n return state.adminInfo || {}\n },\n // 是否是登录状态\n isLogin(state){\n return state.isLogin\n },\n // 获取头像\n avatar(state){\n if(state.adminInfo && state.adminInfo.avatar != \"\"){\n return state.adminInfo.avatar\n }else{\n return ''\n }\n },\n // 获取上传mode\n uploadMod(state){\n return state.uploadToken.mode || -1\n }, \n // 获取昵称\n nickname(state){\n if(state.adminInfo && state.adminInfo.nickname != \"\"){\n return state.adminInfo.nickname\n }else{\n return '未设置昵称'\n }\n },\n // 获取上传配置文件\n uploadToken(state){\n return state.uploadToken\n },\n // 获取平台配置数据\n platformConfig(state){\n return state.platformConfig\n },\n // 获取systemInfo\n systemInfo(state){\n return state.systemInfo\n },\n // 获取companyInfo\n companyInfo(state){\n return state.companyInfo\n },\n // 获取uploadsConfigs\n uploadsConfigs(state){\n return state.uploadsConfigs\n },\n // 获取会话列表\n contacts(state){\n return state.contacts|| []\n },\n // 获取当前窗口服务谁\n seviceCurrentUser(state){\n return state.seviceCurrentUser || {}\n },\n // 获取机器人\n robots(state){\n return state.robots || []\n },\n // 聊天信息\n messageRecord(state){\n return state.messageRecord || {list:[]}\n },\n // 新消息总数\n readCount(state){\n var count = 0\n for(let i =0; i<state.contacts.length; i++) {\n count = count + state.contacts[i].read\n }\n return count\n },\n // 工作台背景颜色\n workbenchBgColor(state){\n return state.workbenchBgColor\n },\n}","export default {\n adminInfo: null, // 个人信息\n heaserTitle: \"首页\", // header标题\n isShowAside: true, // 控制左侧栏显示隐藏\n editDialogFormVisible: false, // 控制修改个人资料modal\n isLogin: false, // 是否已登录状态\n editPasswordDialogFormVisible: false, // 控制修改密码modal\n uploadToken: null, // 上传签名数据\n platformConfig: [], // 平台数据\n systemInfo: {}, // 系统信息\n companyInfo: {}, // 公司信息\n uploadsConfigs: [], // 可配置上传参数\n mimcUser: null, // mimc用户对象\n contacts: [], // 会话列表\n robots: [], // 机器人列表\n seviceCurrentUser: null,// 当前窗口服务谁\n messageRecord: { // 当前聊天面板聊天消息记录\n list: []\n },\n avatar: \"data:image/png;base64,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\",\n pushIcon: \"data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMfaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzE0MCA3OS4xNjA0NTEsIDIwMTcvMDUvMDYtMDE6MDg6MjEgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkJEMURFODg4MTlDRjExRUFBQjY5RTZDMUM4OUFGOUNDIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkJEMURFODg3MTlDRjExRUFBQjY5RTZDMUM4OUFGOUNDIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE4IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJFRUE0ODZCQ0Q5QzUzN0E5MkNBQzNDRDdGODRCMUE4NSIgc3RSZWY6ZG9jdW1lbnRJRD0iRUVBNDg2QkNEOUM1MzdBOTJDQUMzQ0Q3Rjg0QjFBODUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8fHx8fAQcHBw0MDRgQEBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx//wAARCADIAMgDAREAAhEBAxEB/8QAsAAAAQUBAQEAAAAAAAAAAAAAAgADBQYHBAEIAQABBQEBAAAAAAAAAAAAAAAAAQIDBAUGBxAAAQMDAgMDBwoCBQoHAAAAAQIDBAARBRIGITEHQVETYXGBkSIyFKGxwUJSYnKiIxWSstGCwjMkQ1NzkzR0JTUWNvDSY4OzZRcRAAICAQMCBAQFBQACAwAAAAABAgMEERIFITFBUSITYXEyQoGRUjMVobFiIxRyBvDh8f/aAAwDAQACEQMRAD8A+qaAFQAqAFQAqAFQAqAAdfZZbU46tLbaeKlrISkDyk0qWvYRyS7lSy/VHbEEqbYcXOeH1Y4um/41WT6r1cq4+2fhoZt/LU1+Or+BT8l1hzbxKYERmKg8lLu6v+yn5K0IcTFfU9TMs5yb+laFdmb83fJUdeUdQDzS1pbH5AKtxwKV9pSnyd8vu0IeRk8m+bvy3nSeetxR+c1OqILskQPIsfdtnKpa+Kio6u+5vT9q8hvuS8w2cjkGDdmU82RyKHFJ+Y0x0wfdIljfNdmyUib73hEt4OWfIHJLhDo9SwqoJ4FMvtLEOQuj9xPY3rTuWOQJ0ePNR2kAsr9abp/LVWziYP6W0XKuYmvqSZccN1k2tNKUTQ7jXTwu6Nbf+sRe3pAqhbxtsPDU0qeTqn46F4iTokxhMiI8h9hfuuNqC0n0iqMk13NCMk+qHqQUVACoAVACoAVACoAVACoAVACoAVAAuOttoUtaglCRdSlEAADtJNGjEbS6soe5OqkGIVx8OgTHxwMhXBlJ8nav5q08fjJy6y6IxcvmYQ6V+qX9DNcznsxl3PEyEpbwvdLd7Np/CgcK2qsaFf0o56/LstesmRtTlcbNA4AhSlhKQVKPJIFyfQKRtLuLFa9iTjbU3NLSFR8XJcSeSvDKR61WqvLLqj3ki3DDtl2izqPT3ehTf9pd9bd/5qj/AO+nzJv4279JwytobpipKn8VKSkc1BsrA9KdVSRy6pdpIZLDtiusWQ60qQooWkoWOaVAg+o1YTT7FdpruN05ANmjQcdeMzeXw8gSMZLciu81eGfZV+JJulXpFQ248LF6kWKcidb9LNQ2r1sZcKI242gyo2AnsAlvzuN8Snzpv5qxcni5R6w6o28flFLpPozUYkyLLjtyIryH2HRqbdbIUlQ8hFZbTT0ZqqSfVD1IKKgBUAKgBUAKgBUAKgBUARue3BjcJDMmc5pSeDbaeK1q+ylNS00ysekUV8nJhTHdJmO7o3nls64W1q+HgA3REQeB7is/WPyV0OLhRq695HI5vJWX9O0CumrpnoFXKlHD2Px0/IykxILCpD6uSEDkO8nkB5TUdlsa1rLoSVUzsekVqaNgOkLKQl7OPlxXP4Vg6UjyKXzPotWLfyzfSC0+J0OPwq72PX4FnXL2NtZGgqiwVAe4kBTx9WpZ9NUlG61+LNHdRQtPTEhZnWTbTRIjsSZNuSglLafzG/yVYhxVr76IrT5mlPpqziPW6AD/AMpe09/iov8ANUv8TP8AUiP+bh+lnXE60badVaTGlRr/AFtKXE/lVf5KjnxVq7aMlhy9T76omWslsLdTfha4k1av8k6Al4eYKCV+qqzrup80WlOi5eDKtuLotDcSp7AyDHdtcRHyVNnyJX7yfTertHKyXSa1RRyOJi+tb0ZleXw2UxExUTJR1xn08QlQ4KH2kqHBQ8orZpujYtYsxbaZwekkcC+ypyOIB5Ug9om9rb0zu2pPiQHdcZRu/CcJLS/R9VX3hVPJwoWryZdxsydfyN72hvfDbnhl2Evw5TYHxMNZ/UbJ7fvJ7lCucvx5VPSR0NGRG1aosNQk4qAFQAqAFQAqAFQBC7n3PCwUEvPe3IXcR44PFavoSO01Yx8eVstEU8zMjRHV9/BGLZjMZDLzly5rmtxXBKfqoT9lI7BXTUURqWiOIyMud8t0mR6+dSkQCqUdEmdr7Un7hmFlj9KM2R8TKI9lA7h3qPYKq5eXGlf5F7CwpZEun0+ZrKU7X2ViOJDDfao+088u3rUfkFc8/dyJ+bOqSqxYeRm25OpucyilswVHHwjw0tn9VQ+8scvMmtnH42MOsvUzAyuWss6R9KKY4SpZUokqPFSjxJ85rRWiWiMttt69wFEAcaUXUAqTY8RSai6AXB5G9A5HnIgjgRxBHMGlfYcno+hbtsdUtw4ZSGpazkoAsC08r9RI+44ePoVes7I4yuerj6WamNylkOkuqNTae2lv3CKRZMhoe82r2X2FketJ8vI1iuNuPPyZtqVWTDz/ALoxje+x8ltiYA5d/HOm0aYBa/boWOxY+Wugw8xXLykYGVhOl/4lYPKrpVBpByHsbk8hi5zU6A+qPKZN23E/KCORSe0GorqY2R0kSVXSrlrE+g+n3UKFumGW3AljLx0j4qMDwUOXiN35pJ9VczlYsqZaPsdLi5Ktjr4lwqqWhUAKgBUAKgCOz2bh4bHOTZJ9lHBDY95az7qR56lppdklFFfKyY0wc5GIZnMTcvkHJstV3F+6ge6hPYlPkFdTRQqo7UcHlZUr5uUiPPM1MVwF86QkO7A4OXm8o1AjCxWdTrvY22PeUahyL1VDc/wLWJjSumor8TYJ0zCbL26kIRZDY0sMg+286R2nvPNRrnIQnkWfFnXWWV4lXkl/UxnN5vI5qeubOc1OHghA9xtPYlA7BXSY9Ea46I5PJyZ3T1kccGBNnykRYTKpEhz3W0C5857h5TTrbI1rV9htdUrJaRWrNEwnSFpLYk5+VpAF1RmFBKQPvun6PXWPdy0tdK0buPwqXWxkkrKdJsCfDabjvPI4HwmzJVcffOofLVf2sm3r1LTuxKvID/8AU9iD2fgXtHf8O1b1aqf/ABt/n/Ub/KY/l/QSc70kzn6clqOy4rgC8yY6r/6RIA/NTfZyauq1HK7Et8iPzfR2BJZ+L27NCdQ1IYdV4jSvwuJ4j03qanlJReli1/uRX8RGXWtmYZXE5LEy1Q8jHVHkJ+qrkR3pI4KHlFbNN0bI6xZjWUyrekkLC5zJYXINz8e6Wn0cCOaVp7ULHak0X0xtW2Xb+w6i6VUt0f8A9N4wmXwW/NtOtPtAhafDmxCfaactcFJ+VCq5i2qePZ0/A6eq2GRX/cwzd22Jm28y7jpF1t+/FftYONE8FeccleWukxclWw3ePic9k47qlp4EJVkhQ3QA/jclOxk9mfAdLEuOrW04PlBHaCOBFRW0xsjtkS02OEtyPpLYu84e6cMmW2A1Las3Ni34tuWvw+6rmk1yuRRKqe1nT496tjqiyVATioAVAAuLShJUohKUglSjwAAoEb0WrMV3nuVecyalNk/Ax7oio7D3uHyq+aumwcX2odfqZw/J57vs0X0RK7V4zATzNAAL50hIbF09wLWGwBnygG5MtPjvrVw0NAXSn0Dia5rPyHbZouyOy4vFVNW592ZnvDcjueyzkm5ERu7cNvuRf3rd6uZraw8b2oafd4nO52W77G/tXY4MLhp2ZyLUCEm7rhupZ91CBzWryCprr1VHcyHHx5XT2xNUcd210+w6UIT4+QfHAcA88odpP1UA/wDi9YCjZlT+H9jqHKnCr/yf9TL9x7uzmeeUZr5THv7ERslLSR5vrHyqrbx8SFS6d/M5/JzrLX1fTyIRXKrRVQCuVIKB2Uuo5diUwG6c5gHg5jpKkN3uuMu6mV+dH0jjVe/ErsXVdfMt0Zdlb9LNWx+V2x1GxC4M1oM5FpOpTRI8RtXLxGVdqe/5awp12Ys9V2N6u2rLho/qMj3RtrIbeyq4EwXHvR3wPZdb7FD6R2VvY2SrY7l+JhZONKqWjC2hueVtvOMz2iVRz7Exkf5Ronj6RzFJmY6thp4+A7DyXVPXwNj6ibejbp2mJcKzsqO38XAdT9dJTdSB+NPy2rAwrnTZo/kzoM2lXV6r5o+fK6k5pDdAp5SComdn7rmbYzrOSYutg/pzY4/yjJPtD8SeafLVTMxlbDTxLeJkOqXwPp2BOiz4TMyK4HY0hCXGXE8lJULg1yri10Z0yevVHRQKKgCk9TM+YmPTjGFWfmC7pHNLI4H+I8PXWlxuPvnufZGFzmZ7dexfVL+xlR5GuiOQQFAAnnQBP7Q2nOzeQad8L/hrLiTJeVwBCTcoT3k1RzcqNcWvuNfjsGVs1L7EaN1JkOx9nyg0rR4im2jb7ClgEekVi8fFSuWp0XKzcaHp8jEl8E11Bxxrm3IUPZm0HctOR/jX0Bx5PJRUr+6ZT6+PlvXOZFksi3bHt4HV4lccWjfL6jKcvlpuWyDs+avW+6b27EpHJKe4Ct6mpVx2o5y++Vk3KXc4Fc6lIQVcqQeArlQAFA5Hh5Uo4cx2QmY6azOhOFqUwoKbWPmPeD2imWVRnHa+xJTY4SUl3Rss9iD1F2OmVHQlGUYBU0ntbkIHtNk/ZWPoNc9FyxbtPA6SajlU6+JhjqVJVpUClSbhSTzBB4g10q6rU5tLR6G99G5Dz+yWkuqKww+601fsQCCE+jVXMcnBRueh0/GSbpWpmXUjY+QwWWkzmmL4aU6VsPI4hsrN/DWPq8T7PZWtx+ZGcFFv1Iy87FlCTl9rKRWkUDygVALoHGvdDN3K/W2xLc4AKkY0k9nN1oeb3x6a5/lcba968Tb43I3LY/A2Osk1QXVoQ2payEoSCpSjyAHE0aa9BJNJaswrcOWcy2XlTlH2HFWZB7G08Ej1V1mLSq4JHn2bke9a5eHgRZ5GrBVQFAHXhsW5lctGx7ZsZCwlSvsoHFSvQkVBkW+3By/+alrDodtigvE3rHwI0CI1EioDbDKQlCB5O0+U1yk5OTbfdne1VKEVFdkVfqqq20nB3vsj816u8Yv9yM/mX/ofzRm2ycSnKbmhRnBqZQrx3geRS17Vj5zYVs51uypvx7HPcbT7lyXgurJ/q7mVP5OPiW1fpRUB55PYXF+7/Cn56p8TVpFz8zQ5rI1mq/BGeVrmGArnSgCrlSDwFcqAAoHI8NAo3TkOTL10ezy4O5FY1arR8kgpCewPNgqQfSm4rL5WndXv8YmrxV+2zb+ojOquFTi94SS2nSxOSJTY8q7hz84JqXjbd9fy6DORq2W9PE0nomb7MV5Jb1vUmsrlP3fwRrcV+1+LLvPgxZ0N6JKbS9HfSUOtqFwUq51nxbi9V3NCcVJNPsfMG7cAvAbhmYtRKkMruws81NLGpBPoNjXW4t/uwUvE5TJp9qbj4EPU5EgV0o4fxeUlYrKRMnFNpEN1LyB36TxSfIoXBqG+pWQcfMlot2SUj6vxWRj5LHRp8Y6mJbSXmj91YuL+auQlFptPwOpjJNJog+oOU+B248lJs7LIYR32VxUf4Qat4FW+1LwXUzOYv9uh+cuhjx9011Bw42eRoFQFAFt6XIQrdV1c0x3CjzkpHzGszlX/AKl8za4Jf79fgbDXPHZFL6sm21gPtSWh8ijWhxn7v4GPzb/0fiVzo9GCsrkJBFy0yhCT+Ndz/LVzl5emKKHAw9cn8CpbulKlboyjyjf/ABC0J/C2dA/lq9hQ21RXwM3Ps3XyfxA2ztjIbhyBiRClCUJ1vPrvpQkmw5cyewUuVlRpjqx2JhyvloumhM7r6Y5HB49WQakpmRmrfEAIKFoHLVa6rjvqti8lGyW1rQuZXEyqjuT1KpjsbLyc9iBDRrkyFaUJvYd5JPYAOJq/ZZGuLlLsjPqqlZJRj3Zdsh0Zy7GPU9GnNyZSE6lRtBSFW42Qsk8fOKyo8tFy0a0Rrz4WSjqnqzOtKtWjSdd9Om3G97WtWu5LTXwMdJ9vE0OD0Wy8jHB+RObjS1p1JjFBWE3HJawRx8wrJs5aKeiXQ2auHk46t9TP8pjZmLyD+PmI8OTHVocTzHeCD2gjiK1KbVOO5djMsrdcnGXc9wctUPOY+Wg2UxJaX6AsX+Sm5MN0JL4DqJbbIv4mkdeIqf8Ag8y3tXeZJ8nsqH01k8PLrJG1zEV6ZE50R/7Oc/3x3+VFQcr+9+CJ+K/a/E0A1mmmYT11bbTuyIpPvrhJ8T0OLAroOIfofzOf5X9xfIzetUzUCulHDauykFRu/QnOmZtuRinFXcxj36Y/9F660+peoVzfKVbbdf1HQ8fbur08hdVZxXOhwgfZZbLqx95ZsPkTVriK+jkYP/sNus4w8upRVcjWyc8NnkaBUBQBM7NyiMZuaHIcOllSiy6rsCXBpv6DY1TzqnOppfM0OLv9u+Lfj0N1BB5Vy53ZR+rqrbbYHfKR8iF1pcUv9v4GPzf7K+ZDdHHAJOUb+sUNKHmBUPpqxy6+kqcD3kii7hbU3n8mhXAplPf/ACE1p4z1qj8jHy1pdL/yLL0s3JjsTkJUae4lhuYEeHIVwSFov7Kj2X1c6o8njymlKPXQ0uIyY1yal01Lnv7d2Ej7elxW5TUmXMaUy0y0oLPtixUrTewArMxMacrF00SNjPy641ta6tmWbJzMbDbmhzpQPwydTbqgLlKXE6dVvJW7nUuyppHPcfcq7k32Nqnbz21Dx6py8gwtoJ1IS2tK1rPYlKQb3Nc5DGnKWiXU6meZXGO7cj59+PV+7fuOgX+J+J8Ls/vNen6K6r2vRt+GhyXu+vd8T6Cg7z21MxwnIyLDbOnU4l1xKFoPalSSb3FcrLGsjLboddDLrlHduML31m42b3RLyEUf4Y6G2VEWKktp06reWukwaHXUk+5zWbcrbHJdiEhNqcnRm0+8t5tI85WBU9z0i/kV61rJfM1Xrw4kQMO19YvOqHmSgD6axeHXql8jd5f6Yr4kn0PN9pSB3TXP5EVDyn7v4Im4r9r8TQzWcaZ82dTc43mN4zH2Va48cJisqHEENX1EedZNdRx1LhUtfHqcvn3b7W14dCqVdKqBXSjhtfZSCov3RDKmHvURCbN5GO40R99v9VHyJUKyuWhrWpeTNTjZ6Ta8yf33IL+55pvwbKWh/USPpqbjo6Ur4nP8vZuyZfAr55GrxnDZ5GgEBQAKuZpAXc0HaPUxqLHbgZrUUtgJampBUdI5BwDjw7xWLl8a9d1fj4HTcfzCSULfzD6mbhw2TwUVECY1IX8QFqQhV1ABChcjmOdN42mcLHuWnQk5fKrsqSi0+pB9LsgmLuhLKjZMxpbQ7tQ9tP8AKatcpW5V6rwZT4a3bdp+pHN1MxqoW7JDlrNzUpkIPeSNK/zJp/GWbqtPIby9O2/XwkVI1oGaxsgA8BagH1PFcqQeAQLHhSigUCoEpB42499Ao3SocmWHp3iVZPeOOa03aYc+JePYEs+0PWqwqnyFm2pvzL2BVvtXwJ7rflEyNxRICTcQmNSx3LeN/wCVIqrxFekHLzZb5azWaj5Ilukm6NvYfbEpvJz2YrhlrWG3FWWUltAuEjieVV+RonOxOKb6E/HXwhW9z06nNvvrC3KiuY3bmsJdBQ/kFgoOk8CGkniL/aPop+JxbT3WfkJlcmmtK/zMlrbMdnlKKgV0DhtfZSColdnTjA3bhpd7BuYyFH7q1hCvkVVbMhuqkvgW8WeliLxnnS7l57h+vIcP5jS4y0rivgc9lz3XSfxI88jU5ANnkaAQFAAnmaAAXzpNCQA0uo6I5Flvw5TMtg2ejrS42fKk3plkFOLi/ElrscJKS8DVN449rdm0o+Yxw1yWEF9pA4qKSP1WvOLesVz+Ja6LXGXY6jNpWTQpx+pdf/ox+ujOWAVzoAFXKkHgK5UABQOR4aBRqnIVGqdC48cu5d8gfEJDLaT2hCtRNvORWHzDesV4dTe4ZL1P5Gcbplypm48lJlf365DgWO7QooA9ATatXFgo1xS8jLvm5WNvzIo8qsEYNAqG6BTygVAroHDa+ykFQmnC0826Oba0rH9U3+im2LWLXwJYP1I0fIm8yT/pl/zGmU/RH5GDf+5L5nKeRqQjGzyNAICgATzNAAL50hIAqlHRBVyoHFv6d7yGFmGDNXbGSlX1nky6eGr8KvreuszkcP3Fvj9SNfis9VPZL6WSfUDp8vW5msI34jLn6kmK3xIJ4lxsDmD2gVBgZ+non+Za5LjdX7laM0VzrZT6GACrlSjwFcqQAKUcgSeFGg4BQUk6VApV3EWNCeoaaFy6S55GM3UmO8rSxkkfDknkHAdTfrN0+ms/lKd1eq+00+Lu2WaP7j3q9tlzGbiVkmk/4LJnXqA4JfA9tJ/F7w9NN4vIUobPFEnJ0bJ7l2ZQzyrTM8GgVDdKB5QKgV0DhtfZSCobXfQq3caSXYeu5qOda8LLzmrW0SHBb+sagxpa1R+Ri5cdLpL4keeRqchGzyNAICgATzNAAL50hIAqlHRBVyoHAUAW/ZvUWZhAiFNCpWMHBIB/UaH3Ceafun0Vm5nHKx7odJGxg8o6vTPrEt83auyt5NKnY2QlmWrit6PYKuf86ybcfUfLWdXk3Y72y7eTNWzEoyVuj9XwKfkekW6Y6j8Ipma2ORSrw1nzpXw/NV+vla2uuqMyzh7Yv0+pEUrpzvW+n9rcJ79bdvXqqf8AkKfMg/jb/wBJ34/pDu2QofEhiE2eZcXrVb8Ld/nqGfK1LtqyzVxFr76IuGO2LsvaTSclmpKJD7fFLsmwQFD/ADbIvqPrNZ1mZbe9IroadeFTR6pvVhObi6X7tBYneGh8EpbVKT4DluwoduPVq9FIqMijqtf7i+/jX9HpqcrvRfbMhQex2SkMpuFIKFNugEcQQqwPy0/+UsXSSTGPiqm9YvQt+XxmHkbf/bdwSEPsaAl2S8pLSipI4OXuAlXbcVSrnJT3QL9kIOG2bPnzdOKw+NyCmcTlEZSKeKVoBCkW+qo20K86a6jGtnOPqjtZzWTVCD9L3IhaskCG6BTygVAroHDa+ykFQmmy4622BcuKSgD8RtTLXpFv4Eta1kjXN9RjH3POTawcUl0f10g/PVPjp7qV8DO5evbky+PUgDyNXjOGzyNAICgATzNAAL50hIAqlHRBVyoHA0AN0g49akSI7wejurZeT7rjailQ9IpJwUlpJD65uL1T0LJB6nbyhpCTLTJQOyQhKz/ENKvlqlPjaX4NGjXyt0fHUkT1m3OE/wCzRL9+lz/z1B/EV+bJ/wCat8kRk7qrvOUkpTJbipPPwGwD/ErWalhxlS82Rz5W6XwKtMmTJjxflvuSHlc3HVFavWavQrjHoloUZ2Sk9ZPU5CARxqRDe4kOvNf3Tim/wKKfmpsoJvqiRSa7MbfcccILi1OHvWSr56VQS7IVSbfVjZ5U7UVLQGkFQ3SinlAqBXQOG19lIKiV2fB+P3Xh4lrh2YzqH3ULC1fImq2ZPbVJ/AtY0W7EbD1VglvIRJoHsvtlpR+82bj5FVn8RP0uJB/7BTpOM/PoUY8jWwc+NnkaAQFADkSHKmykxojSnpDl9DaeZsLn5BUdlkYLWXYlqqlZJRj1kMyWXmH1sPtqaebOlxtQspJHYRToyUlquws4OLafRoZVTgiCrlQOHYGPnZCT8NCYVIf0lfhoFzpSLk1HZbGC1k9ESVUzslpFanKtC0LUhaSlaSQpJ4EEcCDT0+mo3r4j5xGSONVlBHV+3pX4Zk8NOu9rc70x3R37NfUSqiezfp6RiTDmR2mXX2FtMyE6mHFpISsd6SedLGcZNpPqhZVyik2ujOY8qexgFIOR14vDZXLOuM42MuS40guOhH1UjtN+/s76jtuhWtZPQmqpnY9IrUjzcGxFiOBB4G9SxepHoNmlfceA4QLXoBdwCpNuYo1HglSRwJAPlobHLUbK0faHrpNQ0Z4FJPIg0uo5I8VSija+ykFRfeiOKMze6ZRF28dHceJP21/pI/mUfRWXy1mlaj5s1ONjrNvyNg6hYszduPLSLuxCH0W52TwX+U1l4Fuy1fEm5jH9yh+cepj55GumOHGzyNKKWDEs7DVAaOUflonG/jJaF0cza3snsrPueTve1Laa2PHDcF7je4tm2omysdHkbkhOSSxFCmlOyBwBNr6E2Fz2Vm5Nl85KqWmpsYNeLWndBvRFfkf/AJjJkuvvSsgt55anFnSblSjc/Vq3FZUVoktEUp/8U5OTctWNKj9KxwMjIA/hI/sU5Ty34Iao4HnIjc81sROPUrDPy1ztSdKXwdGm/tfVHZU1DyN3rS2lfKWKof63LcSmBV/0xtCVnnBpyWV/w+NSeYb7XP7XoFV8j/fcq19Me5cxV/z47sf1z+kqM3C5iGWTLiPI+JSHGSUlWtJF7i1+PHjWhDIra6NdDNsx7I6OSfUuePxeTk9K5cJqI8uUZoU2xoUFqTqQbhJA4Vl2WxWUpa9NDYqpnLDcdHu17B4WDvtWFew+TwZyMFTZEMSlobUyu1k2UVatI9Y7KS6dO9ThLR+Og6ivI9vZOG5eGpU4u1ZDG7YWBzCfDU+42l4NKBOhwX4KHCtCeUpUucPIzq8Nq5Vz8ycyGN6Ywss9ils5V2Y074BQ0UqCl9yeRPOqkLcmUN/pUS9OrFjPZpJyJLXsbY2dbWUZJicG9RbDjTiFNr7FpCu/vqFK7JhprFpMsf6caeukkyDyGS6TT5z86QjKePIWXHNHhoTqVzskG1Wa68qEdq26IrTsxZScnu1Z1YHb3TLcD8mNjU5FMiOwp+7ykpTZNh2au00y+/IqSctvVklNGNbqo7uiIzpGhtW6Hi42hwJgvKCVpChcFBHA1LybaqXzIeM091/Jlg2NvKduOXkIc+FCQ01BdeQWWAlWoWSOJKvtVTysVVKMot9Wi7i5TtcoyS7MjtsZRGE6VLy7UGLLlJnqaHxLYWNKykc+B4eepciv3Mnbq0tBtFmzH3aJvUjT1byIFzgcUAeV46uPy1N/HR1+t/mQ/wAhL9C/I7+ocwy+n+BnSYEeBPnyFOLaYa8P9NKV6eftWIKTUWDDS+ST1SJ8yW6mLa0bMwXW0ZQ2ukFRu3QbBmJtyTlnE2cyT1miefgsXSPWsqrm+Tt3WaeR0HH17Ya+ZpbzaHG1NrGpCwUqSe0EWNZ2uhelHVaGFZ/FLxWWlQVA6WlXaJ7W1cUH1V1uLcrK0zz3Nx3Ta4sjDyNTlZHRisXLymQZgxU3deNr9iU/WUfIBUV9sa4OTJ6KJWzUY9y1b4kpYZi7TxLa1swUpclaElSlLtcXAB+1qPlNZmDFau6b+rsbXJz0Sx619PfQhNq4+ejdGMW5EeS2mQgqUptYSB5SRarWZbB1NJopYFM1fFtPTUc3xjp7m68ktqK8tsuApUhtZSfYTyIFqbgWxVKTaJuRpm75aJ6ECiOI8yOMkw43HLiS8hSVIUW9Q12uO6rUpbovY1roU4x2SXuJpGmhGzd2T0yUvSTFxDSVeGUhqKhCTexuL8dPHyCsF+9QnHRay/M6VKjIlrq9IfkVTI9S82c5Ml41xLcd0JZjNrRr0ttk6SEnkVXJNaNfGw2JT7mbbytnuNw7dkWHFZ/d2W2PmJPiPKyzTqBFU03oXoOgkISE8e2qNtNMLor7fE0aci6yiT+/wK1/0/1TyX96Juk8y8/4Y9RWPmq678WHbT8jOWPlz76/mRGSwW5cBmISHlhGUeKXIq0OBZCtWkXWrgDfvqxXfVZXLReldyCzHtpsWr9T7FujqwuzJyMnuJ45PdExQU821ZXw6FcFL7Bqt29vZ31nyU8hba1trRqQcMZ7rXusf9Dt3TmtytD93w8KBmcNIAU3KRH8V1At7roCr8O+3ntUONVW/TNuMv6E2TdZ9UFGcP6jmDyGcTGOW3TDxuIxCBfSuOBIcPYEoJJHqv5KS6ENdtblKQtE56b7VGMTP9xb4kydxPZLCA4tlTPwqA2EpUtoEm6xa11GtWjDSgoz6vXUzMjMbnuh6V2O7o+UjdT5UNSRAfunlcXRwqPlf21/5D+Letj18ie2Bl9qzZuSbxGCOMkJgPKW+X1O6kXA06VeXjeqeZXZFRc5buqL2JbXJyUY6PRkft3BZPOdIFwMa2l2UrIlYQpQQNKCkn2lcKlvtjXlbpdtBlFUp42i77iTwkHq5iMXHxrGMxz0eMClpT60KXYkqsSFjvqK2WNOTlul1Jao5EI7VGPQqXUbG9QnA1l9zoaTHSoR46GVoKEFd1WShJJ46eJNXcCyhemvXc/Mq5kLn6p9iirrTKA9jcZKymSi42ILyZbqWm/IVHio+RI4mob7VXByJaK3OaSPq7D4yPi8ZFx0YWYiNJZbHkQLXPlPOuQlJyk2/E6mMdEkdlIOKP1OwBlQU5RhN3ogs+BzLJ7f6p4+atPjcjZLa+zMLm8P3IKcV6o/2MsPI10Jx6L/ALSn4LCwseIyhLy+YdQ272FpBXpUD3AfKfJWFmQstlJvpGB0/H200Qjp1ssfUiN0ZnI4je+Sk493wXlaWyrSlXslCCRZQPdVnEojbRFS7FPOyp05UpQfUe29vvdMzcGPiSJgXHfeSh1Hhti6TzFwKZk4FUK20upNhcpfZbGLfRvyD3bvjc+P3HOhxJnhx2XAltHhoVYFAPMi/bSYmDVOtSa6sfncldXdKMX0RUs1nsrmnmXMk+HXGx4ba9KUhKVHjfSBV+qiNSe1GbdlTukt7NFn7cgQdsNYOPmYsBp068nJcUC48eBsBqT7P0VixyJSt9xxcn4I6GeLCFCrjNRT7vzKn+9xtovrj7flR8smQlK3pTrdw2tJI0osRzHE8a0HU8jrYnHQzfeji9K2p6+JYdm7yz+4Bl4Mh9KJgiFyAppCUaVi44c78SnnVTNxIVOLXbXqX8DOncpRb66dNCL27DzeQiO5vdeUlsYJhJ9hby21PK5WSEkezfu5mpL51xeyqKcmV8aFkk53SlsXx7lTxUPAZLLyGshkncfA9pUeQ6A6ogHglw3FlEVfsnZCCcYpvxKVMK52PdJpeGpbIu29hupXKYGW3GpKtLi47aykrA5FVkdn3qz5ZN66emBpRox5epbrDqGe3Li464u1tnvY5lZ1KdebW4tR5XKR2+cmmqmqb1tsTH+/ZBbaq2keP5XJ5lLad07Iky1tjSiRGS4hSQedkm1v4qRVxretdqQ93SsWllTZGzsT0rjupRko+Ww7zidaWnkrF08rjg5wvU0LsmS9LjJEE6sVP1KUTl6V/BK3pOMULbhfByPCCyFLDepIBUQBxtT+RUvaju+rUbx233ZafToTHT+HspibklYLISpcowHQ43IaCEhu4uQdI43tVbLnc4x3pJalnEjSnJwbb2shIEl6L0ZEhlRS6zlkOIINuKVpUOXmqeyG7K0fjEihNxxdV+ob6nQJM7JYvP4rxHYu4Gmg0ltR/wBpACdFh2kW9RpcCcYxlGaWsAzYSlKMot6SPOpz6MVh8Fs9tzxXYDYkz1Xvd5wG1/4lH1U7j4b5yt8+iFzXthGvXt3M7XWsZqNa6F7SUpx7c8pHsjVHxwPaeTro/kHprn+VydXsXh3NvjaNFuZs1ZJqioAFxCFtqQtIUhQKVJPEEHgRRqI0mtGYpvHbbmDyi0ISfgn7rir7h2oPlT81dPg5Puw/yRwvJYLosen0vscG2f8AuLGf7y1/OKmy/wBqXyIcH9+H/kiz7i2jkMzuXKSIz8dpCHUIKXnChVw0g8BY8ONZmLmxqrimmzYzOPnddOScV8zzA7BykDOQpz8uGWYzqXFhLpKrDuuBS5GfGcHFJ9QxOMnXbGTlHRPzC3PsTJ5TPTJ8aXDSzIWFIC3bKsEgcbA91Ji50a61Fpj8zjZWWualHRkBk9hZSAwh1+XDUhbrbPsOlRBcUEgkaeQ7atQ5CMn0UuzKVnGTitW490drmxNvY83zm4mG1j3mI41r83G5/LUP/dZL6IFn+Nqh+5Z+RyzNs4/LLjsbPiS5KUlQlTZN0NnlpspWkcON7Cnxyp16+818EMnhQs0VCfxbJnFY7b2xZSJ2XyHxOY0lCYUXiEJXwVqHM/1reQVWtstylthH0lyiqrEalOXr8kM9TMbuTKSosmEpeQwb6UGEiONSW1qHNQTzv2KPmp3HW116qXSYnJ1W2NOPWt9tCK6osw4mQxuPYaQh2LCbElaEgFSjwGojnwTU/GNuMpPs2QcolGUYrul1O/Z6cyem+WGG8b9w+NT4Xw/By1m9VrfdvUOZs/6I7/p0J8JT/wCWWz6tfAjPC6v/AP2v8Sv6am1xP8SLbmf5AKa6xaTb92vbh7Sv6aNcTT7RduX/AJD3WIPfumH8a/jftyPF1e9r1nVfy3pvFaaS0/UP5XXdHX9IHTBHwMLcW4HRpYhwlMtrPa4v2tI/hT66OSlulCC8WHGrbGdj8FoLpJCmsZTKrfjutIGNdBW4hSRclJHFQHdS8lOLjFJ6+oXjoSUpNr7WLHQ5czoz8NEZXIkOZQBtptJUom6eQFNsko5Wrei2j64uWLour3Fp2iqLsvCw8duyew3IlSPFgQ1ALMUqB9pSuOkajz5AnnVLJfvzcq10S6/Et4y9mCjY+vh8DP8AfeyN1wMlJyksKycWUsvfuTAKkkK4jWkX0WHo8taeFl1uKj9LXgUMrGsUnJ9UyF2ltaZubOMYyNdLavblvjk0yD7SvOeSfLVjLyVVDX7vAjxaHbLRdj6exuPi46CxBiNhqNGQltlsdiUiwrlG23q+500YpLRHTSCioAVAEZuDBQ81jXIUkW1e004PeQsclCpaLpVzUkVsvGjdBxkYrLiZLb+ZCHUhEuI4HGlEXQrSbpWL8wa6eE4319Oz7nEWV2YtvXujlyeRlZKe7NllKpDxBcKRpHAADh5hT6qYwiorsR35ErJuT7s41gXqTRDNQCBRoKmCoC1KO1AAHrpNA1JCHubPQccvHRJrjERaisoQbEE8DpV7wB8lQTxa5S3NdS1Xl2QjtjLoRTiipZUokqPEqPEk+U1Okl2K7bb1JfC7y3HhGSxj5ZTHJJ8FxIcQCe1IVy9FVbsKqx6yRex862paRfQisjPmZCW7MmOl6S8dTjiu08uQ4AAchU9dcYR2xWiILLZTk5SfVnbjt15vG4l/Fwnvh48hwOrcbul0KFh7KwRYezUdmJCc1Nk9WXOEHCPZjR3Xui3/ADeZ/rl/00f8tX6UH/Xb+pgHdm6SLfvEwf8Avr/ppf8Akq/Sh0cu3X6mN7h3JlM8+w/kVIU7GaDCFITpukEm6rk3NzzpaMaNWqj4i35ErWt3gcqM1k2cS/iG31DHSlpdeY7CtHaO6/C/fYU6VEXNTa6oSFzUXDwZKSuom8ZGNVj3Mir4VSA0pKUISootbTqCdXKoFx9SluS6liWda47dehy4zem4cXi28bAfSxHaf+KbUlA1hz8R7PJanWYdc5bpfIbXlThFRj211IWbNmTpTkqY8uRJdN3HnDqUT6asQrjBaRWiIZycnq3qyawm4t5PRDtnFyXnmZ/6LcUHUoA+8EKPFCbe92WqpfRTF+5Jdi5RbbJbE+5u2wdlRdrYdMZJS7Ofs5Okge+u3upv9RHJPr7a57JyHbLczexsdVR0RZ6gLAqAFQAqAFQBB7p2rDz0Lw3P05LdzHkAXKT3HvSe0VZxsmVUtV2KOdhRvho+/gzFstip2LnLhzWy28niPsqHYpJ7RXTU3RsjrE4nIxp0y2yOFfOpCMBVKOiCrlQOBoAbpBwCudKAKuVIPAVyoACgcjw0CjVOQqAND7jwV9lKEe4B5UhIDSghyBj52RmtQoLKpEt86WmkDiT3+QDtJ5VFbbGC1l2JKq5Tloj6B6d9O4m2IhfkFL+ZfTaRIHutp5+E1f6vee2uZy8uV0v8TpcTFVS/yLpVQtioAVACoAVACoAVAEXn9uY3ORDHmt3I4tPJ4LQrvSfoqWm+VT1iVsnFhdHSSMc3Ps/LYJ4l5Jehk2bloHs+QK+ya6LGzo26eDOQzOOsofnHzIBXZV0oxBVyoHA0AN0g4BXOlAFXKkHgK5UABQOR4aBRqnIVAGh9x4K+ylCPcA8qQkJja+0M3uWX4GOZ/RSbPy13DTfnPafujjVXJzIVLr1l5FrGxJ2vp0RvWzdiYfa8Upip8aa6AJM1wDWvyD7KPuj01zeRkztlq+x0WPjRqWi7llqAsCoAVACoAVACoAVACoAVAAOstPNqadSFtrFloUAQQewg0qenYSUU1o+xn+5OlUWQVyMKsRnSbmK5ctE/dVzR81aePyco9J9UYeXw0Z+qvo/LwM4y+FyuJd8LIRlx1X9lShdCvwrHsmtqnIhYvSzn78Wyp+tEdUxABSDgFc6UAVcqQeArlQAFA5HhoFGqchUAaH3HHTj8Tk8rJTGx0VyW8eaWkk2/EeSfSaitvhWvUyenHnN9EabtXonxRJ3I6FDgRj2FG3mcdHzJ9dYuTyrl0h0XmbWNxaXWf5GqwYEODGbiw2UR47Qs202kJSB5hWU229Wa8YpLRD9IKKgBUAKgBUAKgBUAKgBUAKgBUAKgBqRFYkNKafbQ60rgptYCknzg0JtdUNlFSWjKhlulW25pK4oXj3T2sm7d/wACr/IRV6rkbYdO5m38RTPqltZUMl0h3CwSYT7ExHYCS0v1Kun81aFfKwf1LQy7ODsX0vUrk3ZO7IpPi4t8pHNTafEH5NVW45tL+4oz4++P2siXoE9o2divNkc9ba0/OKnVsH2aInTNd0znLblvcV6jS74+Y3ZLyPW4U102ajOuE8gltSvmFI7Yru0SQpm+yZJRdmbsl28DEySDyUpBbT616RUU82qPeRYhg3S7RJ/G9Gt1ySDLcjwUHmFKLq/4UcPzVTs5WC+lNl6vh5v6noXHD9F9txFBzIuO5JwfVUfCa/gRxPpVVC3krZ9uiNGri6o9/UXiDjYMBgR4UduMwnk20kIT6hVCUnLv1NCMUux00g4VACoAVACoAVACoA//2Q==\",\n workbenchBgColor: \"#646b6f\" // 工作台背景颜色\n}","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport actions from './actions'\nimport mutations from './mutations'\nimport getters from './getters'\nimport state from './state'\nVue.use(Vuex)\nexport default new Vuex.Store({\n state: state,\n getters: getters,\n mutations: mutations,\n actions: actions\n})","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-SG\": \"cdab\",\n\t\"./en-SG.js\": \"cdab\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div id=\"app\">\n <router-view/>\n </div>\n</template>\n<script>\nimport axios from \"axios\";\nimport Push from \"push.js\";\nexport default {\n created(){\n this.$store.dispatch('ON_GET_ME')\n },\n methods: {\n // app init\n appInit(){\n if(!this.adminInfo){\n setTimeout(()=> this.appInit(), 50)\n return\n }\n this.$store.dispatch('ON_GET_UPLOAD_TOKEN')\n this.$store.dispatch('ON_GET_PLATFORM_CONFIG')\n this.$store.dispatch('ON_GET_SYSTEM')\n this.$store.dispatch('ON_GET_COMPANY')\n this.$store.dispatch('ON_GET_UPLOADS_CONFIG')\n this.$store.dispatch('ON_GET_ROBOTS')\n this.$store.dispatch('ON_GET_CONTACTS')\n\n // 一分钟上报一次我的活动时间\n this.upLastActivity()\n\n // 获取会话表\n this.getContacts()\n\n // Mimc 初始化\n this.initMimc()\n\n },\n // 获取会话列表\n getContacts(){\n if(this.adminInfo){\n this.$store.dispatch('ON_GET_CONTACTS')\n if(this.seviceCurrentUser && this.$store.getters.contacts.length > 0){\n this.$store.getters.contacts.map(i => {\n if(i.from_account == this.seviceCurrentUser.from_account){\n this.$store.commit(\"onChangeSeviceCurrentUser\", i)\n }\n })\n }\n }\n },\n // 上报最后活动时间\n upLastActivity(){\n this.$store.dispatch('ON_RUN_LAST_ACTiIVITY')\n setTimeout(() => this.upLastActivity(), 1000*60)\n },\n // 初始化Mimc\n initMimc(){\n var self = this\n var adminInfo = this.$store.state.adminInfo\n if(!adminInfo){\n setTimeout(() => this.initMimc(), 1000)\n }else{\n self.$mimcInstance.init({\n type: 1,\n account_id: adminInfo.id\n }, (isSuccess) => {\n // 初始化完成\n if(isSuccess){\n self.watchLogin()\n }else{\n self.initMimc()\n }\n })\n }\n },\n // 更新用户状态\n changeUserOnlineStatus(online){\n // 更新状态\n axios.put('/admin/online/' + online)\n .then(() => {\n this.$store.dispatch('ON_GET_ME')\n if(online == 0){\n this.$message.info(\"当前状态为离线\")\n }\n })\n .catch(error => {\n this.$message.error(error.response.data.message)\n });\n },\n // 监听用户是否有上线登录\n watchLogin(){\n try{\n var self = this\n if(self.$store.state.user != null) return;\n if(self.$store.getters.adminInfo.online == 1){\n self.$mimcInstance.login(()=>{\n self.changeUserOnlineStatus(1)\n self.$store.dispatch('ON_RUN_LAST_ACTiIVITY')\n self.$store.dispatch('ON_GET_CONTACTS')\n self.$store.commit(\"onChangeMimcUser\", self.$mimcInstance.user)\n })\n }else if(self.$store.getters.adminInfo.online != 0){\n setTimeout(() => self.watchLogin(), 1000)\n }\n }catch(err){\n setTimeout(() => this.watchLogin(), 1000)\n }\n },\n },\n mounted(){\n window.addEventListener(\"resize\", () => {\n this.$store.commit(\"onChangeToggleAside\", true)\n if(document.body.clientWidth < 1000){\n this.$store.commit(\"onChangeToggleAside\", false)\n }\n }, false)\n // 判断通知权限\n if(!Push.Permission.has()){\n Push.Permission.request(function(){}, function(){})\n }\n },\n computed: {\n adminInfo(){\n return this.$store.getters.adminInfo\n },\n seviceCurrentUser(){\n return this.$store.getters.seviceCurrentUser\n },\n messageRecord(){\n return this.$store.getters.messageRecord\n },\n isLogin(){\n return this.$store.getters.isLogin\n }\n },\n watch: {\n \"$route\"(){\n if(!/^\\/workbench(\\/\\d+)?$/i.test(this.$route.path)){\n // 监听消息\n this.$mimcInstance.addEventListener(\"receiveP2PMsg\", (message) => {\n var nowTime = parseInt((new Date().getTime() +\"\").substr(0, 10))\n message.timestamp = parseInt((message.timestamp +\"\").substr(0, 10))\n if(nowTime - message.timestamp >= 60) return\n // 处理用户列表\n if(message.biz_type == \"contacts\"){\n var contacts = JSON.parse(message.payload)\n // console.log(contacts)\n this.$store.commit('onChangeContacts', contacts)\n return\n }\n // 判断是否是握手消息\n if(message.biz_type == \"handshake\"){\n this.$mimcInstance.sendMessage(\"text\", message.from_account, this.adminInfo.auto_reply)\n return\n }\n var newMessageRecord = JSON.parse(JSON.stringify(this.messageRecord))\n newMessageRecord.list.push(message)\n this.$store.commit(\"onChangeMessageRecord\", newMessageRecord)\n\n // 推送消息\n if(message.biz_type == \"contacts\" || message.biz_type == \"pong\" || message.biz_type == \"welcome\" || message.biz_type == \"cancel\" || message.biz_type == \"handshake\" || message.biz_type == \"end\" || message.biz_type == \"timeout\") return\n if(!Push.Permission.has()) return\n Push.create(\"收到一条新消息\", {\n body: message.payload,\n icon: this.$store.state.pushIcon,\n timeout: 5000,\n onClick: () => {\n this.$router.push({ path: '/workbench?uid=' + message.from_account})\n window.focus();\n }\n });\n\n })\n }\n },\n isLogin(){\n console.log(\"当前是登录状态\")\n this.appInit()\n }\n \n }\n}\n</script>\n<style lang=\"stylus\">\n#app{\n display flex\n height 100vh\n}\n.el-tabs__content,.el-tab-pane{\n height 100%\n padding 0\n}\n.el-tabs__content{\n padding 0 !important\n}\nbutton{\n background-color #fff\n}\n.pswp{\n z-index 3000!important\n}\n</style>\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=7a237930&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=stylus&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var moment = require('moment');\n// eslint-disable-next-line no-undef\nvar Helps = {};\nHelps.install = function (Vue, options) {\n Vue.prototype.$myMethod = function(){\n console.log(options)\n }\n // 获取单个平台数据\n Vue.prototype.$getPlatformItem = function(index){\n var platformConfigItem\n var platformConfig = this.$store.getters.platformConfig\n for(let i = 0; i< platformConfig.length; i++){\n if(platformConfig[i].id == index){\n platformConfigItem = platformConfig[i]\n }\n }\n return platformConfigItem || {title: \"未知\"}\n }\n // 格式化日期\n Vue.prototype.$formatUnixDate = function(unix, format = \"YYYY-MM-DD HH:mm:ss\"){\n return moment(parseInt(unix + '000')).format(format)\n }\n // 格式化日期(相对日期)\n Vue.prototype.$formatFromNowDate = function(unix){\n if(moment().format(\"YYYYMMDD\") == moment(parseInt(unix + '000')).format(\"YYYYMMDD\")){\n return moment(parseInt(unix + '000')).format(\"HH:mm\")\n }\n return moment(parseInt(unix + '000')).format(\"YYYY-MM-DD HH:mm\")\n }\n Vue.prototype.$robotNickname = function(id){\n var nickname\n var robots = this.$store.getters.robots\n for(let i = 0; i< robots.length; i++){\n if(robots[i].id == id){\n nickname = robots[i].nickname\n }\n }\n return nickname\n }\n\n}\nexport default Helps;","import axios from \"axios\";\nimport { Message } from 'element-ui';\nvar MimcPlugin = {};\nMimcPlugin.install = function (Vue, options) {\n\n console.log(options)\n\n // 获取单个平台数据\n Vue.MimcInstance = Vue.prototype.$mimcInstance = {\n user: null,\n robot: null,\n fetchMIMCTokenResult: null,\n // 初始化\n init(request, callback){\n this.getRobot()\n this.fetchMIMCToken(request, callback)\n },\n _receiveP2PMsgCallback: null,\n _statusChangeCallback: null,\n _serverAckCallback: null,\n _disconnectCallback: null,\n // 获取token\n // request 登录参数\n // 登录回调 callback bool 是否成功\n fetchMIMCToken(request, callback){\n axios.post('/public/register', request)\n .then(response => {\n this.fetchMIMCTokenResult = response.data.data.token\n if(callback) callback(true)\n console.log(\"MIMC初始化成功\")\n })\n .catch((error)=>{\n if(callback) callback(false)\n Message.error(\"mimc初始化失败,请刷新重试,\" + error.response.data.message)\n })\n },\n // 获取机器人\n getRobot(){\n axios.get('/public/robot/1')\n .then(response => {\n this.robot = response.data.data\n })\n .catch((error)=>{\n Message.error(\"mimc初始化失败,请刷新重试\" + error.response.data.message)\n })\n },\n // 登录\n login(callback){\n try{\n var fetchMIMCTokenResult = this.fetchMIMCTokenResult\n if(!fetchMIMCTokenResult) return\n // eslint-disable-next-line no-undef\n this.user = new MIMCUser(fetchMIMCTokenResult.data.appId, fetchMIMCTokenResult.data.appAccount, \"666\");\n this.user.registerP2PMsgHandler((message)=>{\n var msg = JSON.parse(window.Base64.decode(message.getPayload()));\n if(this._receiveP2PMsgCallback) this._receiveP2PMsgCallback(msg)\n });\n this.user.registerFetchToken(() => {\n return fetchMIMCTokenResult;\n });\n this.user.registerStatusChange((bindResult, errType, errReason, errDesc)=>{\n if(this._statusChangeCallback) this._statusChangeCallback(bindResult, errType, errReason, errDesc)\n });\n this.user.registerServerAckHandler((packetId, sequence, timeStamp, errMsg)=>{\n if(this._serverAckCallback) this._serverAckCallback(packetId, sequence, timeStamp, errMsg)\n });\n this.user.registerDisconnHandler(() => {\n if(this._disconnectCallback) this._disconnectCallback()\n });\n this.user.login();\n window.mimcInstance = this\n if(callback) callback()\n console.log(\"MIMC登录成功\")\n }catch(e){\n console.log(e)\n console.log(\"MIMC登录失败\")\n // 重新尝试\n setTimeout(()=>{\n this.login()\n }, 1000)\n }\n },\n // 退出\n logout(){\n if(this.user){\n this.user.logout()\n this.user = null\n }\n },\n // 注册监听器\n addEventListener(type, callback){\n switch(type){\n case \"receiveP2PMsg\":\n this._receiveP2PMsgCallback = callback\n break\n case \"statusChange\":\n this._statusChangeCallback = callback\n break\n case \"serverAck\":\n this._serverAckCallback = callback\n break\n case \"disconnect\":\n this._disconnectCallback = callback\n break\n }\n },\n // 发送消息\n sendMessage(type, toAccount, payload = \"\", transferAccount = 0){\n if(!this.user){\n Message.error(\"服务异常,请刷新重试!\")\n return\n }\n const messageJson = {\n \"from_account\": parseInt(this.fetchMIMCTokenResult.data.appAccount),\n \"to_account\": parseInt(toAccount),\n \"biz_type\": type,\n \"version\": \"0\",\n \"timestamp\": parseInt((new Date().getTime() + \" \").substr(0, 10)),\n \"key\": new Date().getTime(),\n \"read\": 0,\n \"transfer_account\": parseInt(transferAccount),\n \"payload\": payload + ''\n }\n // console.log(\"发送消息\")\n // console.log(messageJson)\n const jsonBase64Msg = window.Base64.encode(JSON.stringify(messageJson))\n try {\n \n // 过滤不入库\n if(!(type == \"contacts\" || type == \"pong\" || type == \"welcome\" || type == \"handshake\")){\n // 发送给机器人入库\n const intoMessageJson = {\n \"biz_type\": \"into\",\n \"payload\": jsonBase64Msg\n }\n const intoJsonBase64Msg = window.Base64.encode(JSON.stringify(intoMessageJson))\n this.user.sendMessage(this.robot.id.toString(), intoJsonBase64Msg);\n }\n\n setTimeout(()=>{\n // 发送给对方\n this.user.sendMessage(toAccount.toString(), jsonBase64Msg);\n },200)\n \n } catch (err) {\n console.log(\"sendMessage fail, err=\" + err);\n }\n return messageJson\n },\n // 创建本地消息\n createLocalMessage(type, toAccount, payload = \"\", transferAccount = 0){\n const messageJson = {\n \"from_account\": parseInt(this.fetchMIMCTokenResult.data.appAccount),\n \"to_account\": parseInt(toAccount),\n \"biz_type\": type,\n \"version\": \"0\",\n \"timestamp\": parseInt((new Date().getTime() + \" \").substr(0, 10)),\n \"key\": new Date().getTime(),\n \"read\": 0,\n \"transfer_account\": parseInt(transferAccount),\n \"payload\": payload + ''\n }\n return messageJson\n }\n \n\n }\n}\nexport default MimcPlugin;","export default {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY年MM月DD日',\n LLL: 'YYYY年MM月DD日Ah点mm分',\n LLLL: 'YYYY年MM月DD日ddddAh点mm分',\n l: 'YYYY-M-D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' ||\n meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute) {\n const hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s内',\n past: '%s前',\n s: '几秒',\n ss: '%d秒',\n m: '1分钟',\n mm: '%d分钟',\n h: '1小时',\n hh: '%d小时',\n d: '1天',\n dd: '%d天',\n M: '1个月',\n MM: '%d个月',\n y: '1年',\n yy: '%d年'\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n}","import Vue from 'vue'\nimport ElementUI from 'element-ui'\nimport App from './App.vue'\nimport router from './router'\nimport store from './store'\nimport 'element-ui/lib/theme-chalk/index.css'\nimport preview from 'vue-photo-preview'\nimport 'vue-photo-preview/dist/skin.css'\nimport Helps from \"./plugins/help\"\nimport MimcPlugin from \"./plugins/mimc\"\nimport momentLocal from './resource/moment_locale'\nvar moment = require('moment');\nmoment.locale(\"zh-cn\", momentLocal)\n\nimport axios from 'axios'\n\n// axios.defaults.baseURL = 'http://localhost:8080/v1'\naxios.defaults.baseURL = 'http://kf.aissz.com:666/v1'\n\n\n// 添加请求拦截器\naxios.interceptors.request.use((config) => {\n var token = localStorage.getItem(\"Authorization\")\n config.headers['Authorization'] = token || \"\"\n return config;\n}, (error) => {\n return Promise.reject(error);\n});\n\n// 添加响应拦截器\naxios.interceptors.response.use((response) => {\n return response;\n}, (error) => {\n // 登录失效了\n if(error.response.status == 401) {\n localStorage.clear()\n store.commit(\"onChangeAdminInfo\", null)\n if(store.state.mimcUser) store.state.mimcUser.logout()\n router.push(\"/login\")\n }\n return Promise.reject(error);\n});\n\nvar options={\n fullscreenEl:false, //关闭全屏按钮\n}\nVue.use(preview, options)\nVue.use(ElementUI)\nVue.use(Helps)\nVue.use(MimcPlugin)\n\nVue.config.productionTip = false\nnew Vue({\n router,\n store,\n render: h => h(App)\n}).$mount('#app')\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=stylus&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=stylus&\""],"sourceRoot":""}
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-0499e026"],{"0e51":function(t,e,o){"use strict";var s=o("99fd"),a=o.n(s);a.a},"1e4b":function(t,e,o){"use strict";o.r(e);var s=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("el-container",[t.$store.state.isShowAside?o("me-aside"):t._e(),o("el-container",{staticStyle:{"min-width":"800px"}},[o("el-header",{staticClass:"mini-im-header"},[o("me-heaser",{attrs:{title:"sdfsd"}})],1),o("el-main",{style:"background-color:"+t.workbenchBgColor},[o("router-view")],1)],1),o("EditProfile"),o("EditPassword")],1)},a=[],i=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("el-aside",{staticClass:"mini-im-aside",attrs:{width:"200px"}},[s("div",{staticClass:"mini-im-logo",on:{click:function(e){return t.$router.push({path:"/index"})}}},[t.$store.getters.systemInfo.logo?s("div",[s("img",{attrs:{src:t.$store.getters.systemInfo.logo+"?id="+Date.now(),alt:""}})]):s("div",[s("img",{attrs:{src:o("8e69"),alt:""}})])]),s("el-menu",{staticClass:"el-menu-vertical-demo",attrs:{"default-active":t.menuActive,"background-color":"#3e444a","text-color":"#fff",router:!0,"active-text-color":"#ffd04b"}},[s("el-menu-item",{attrs:{index:"/index"}},[s("i",{staticClass:"el-icon-s-home"}),s("span",{attrs:{slot:"title"},slot:"title"},[t._v("首页")])]),s("el-menu-item",{attrs:{index:"/workbench"}},[s("el-badge",{staticStyle:{width:"100%"},attrs:{hidden:0==t.$store.getters.readCount,value:t.$store.getters.readCount,max:99}},[s("div",[s("i",{staticClass:"el-icon-s-platform"}),s("span",{attrs:{slot:"title"},slot:"title"},[t._v("工作台")])])])],1),s("el-menu-item",{attrs:{index:"/knowledge"}},[s("i",{staticClass:"el-icon-reading"}),s("span",{attrs:{slot:"title"},slot:"title"},[t._v("知识库")])]),s("el-menu-item",{attrs:{index:"/robot"}},[s("i",{staticClass:"el-icon-picture-outline-round"}),s("span",{attrs:{slot:"title"},slot:"title"},[t._v("机器人")])]),s("el-menu-item",{attrs:{index:"/customer"}},[s("i",{staticClass:"el-icon-headset"}),s("span",{attrs:{slot:"title"},slot:"title"},[t._v("客服管理")])]),s("el-menu-item",{attrs:{index:"/users"}},[s("i",{staticClass:"el-icon-user"}),s("span",{attrs:{slot:"title"},slot:"title"},[t._v("用户管理")])]),s("el-menu-item",{attrs:{index:"/chat_record"}},[s("i",{staticClass:"el-icon-time"}),s("span",{attrs:{slot:"title"},slot:"title"},[t._v("服务记录")])]),s("el-menu-item",{attrs:{index:"/system"}},[s("i",{staticClass:"el-icon-setting"}),s("span",{attrs:{slot:"title"},slot:"title"},[t._v("系统设置")])])],1),s("div",{staticClass:"fix-bottom"},[s("a",{attrs:{title:"去给作者Star",target:"_blank",href:"https://github.com/chenxianqi/kefu_server.git"}},[s("svg",{staticClass:"github-logo",attrs:{height:"23",viewBox:"0 0 16 16",version:"1.1",width:"23","aria-hidden":"true"}},[s("path",{attrs:{fill:"#fff","fill-rule":"evenodd",d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"}})]),s("span",[t._v(" Github")])])])],1)},n=[],r={name:"mini-im-aside",data:function(){return{menuActive:"/index"}},mounted:function(){this.setHeaderTitle()},methods:{setHeaderTitle:function(){var t;switch(this.menuActive=this.$route.path,this.menuActive){case"/index":t="首页";break;case"/workbench":t="工作台";break;case"/knowledge":t="知识库";break;case"/robot":t="机器人";break;case"/customer":t="客服管理";break;case"/users":t="用户管理";break;case"/system":t="系统设置";break}this.$store.commit("onChangeHeaserTitle",t)}},watch:{$route:function(){this.setHeaderTitle()}}},l=r,c=(o("0e51"),o("2877")),d=Object(c["a"])(l,i,n,!1,null,null,null),m=d.exports,u=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("el-row",{attrs:{type:"flex",justify:"end",gutter:20}},[o("el-col",{attrs:{span:5}},[o("el-button",{staticClass:"mini-im-button",attrs:{type:"info",icon:t.$store.state.isShowAside?"el-icon-s-fold":"el-icon-s-unfold"},on:{click:function(e){return t.$store.commit("onChangeToggleAside",!t.$store.state.isShowAside)}}})],1),o("el-col",{attrs:{span:16}},[o("div",{staticClass:"mini-im-title"},[t._v(t._s(t.$store.state.heaserTitle))])]),o("el-col",{attrs:{span:5}},[o("el-row",{staticClass:"mini-im-dropdown",attrs:{type:"flex",justify:"end"}},[o("el-dropdown",{attrs:{trigger:"click"},on:{command:t.handleCommand}},[o("div",{staticClass:"el-dropdown-link"},[o("el-avatar",{staticClass:"mini-im-avatar",attrs:{size:25}},[o("img",{attrs:{src:t.$store.getters.avatar}})]),o("span",{staticStyle:{padding:"0 5px"}},[t._v(" "+t._s(t.$store.getters.nickname)+" ")]),o("i",{staticClass:"el-icon-arrow-down el-icon--right"})],1),o("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[o("el-dropdown-item",{attrs:{command:"a"}},[o("i",{staticClass:"el-icon-user icon"}),t._v("\n 修改资料\n ")]),o("el-dropdown-item",{attrs:{command:"b"}},[o("i",{staticClass:"el-icon-unlock icon"}),t._v("\n 修改密码\n ")]),o("el-dropdown-item",{attrs:{command:"c",divided:""}},[o("i",{staticClass:"el-icon-caret-right icon"}),t._v("\n 退出登录\n ")])],1)],1)],1)],1)],1)},f=[],p=o("bc3a"),h=o.n(p),g={name:"mini-im-aside",data:function(){return{bgColor:"#ffffff"}},props:{title:String},methods:{logout:function(){var t=this;h.a.put("/admin/online/0"),h.a.get("/auth/logout").then((function(){t.$store.commit("onReset"),t.$store.commit("onChangeAdminInfo",null),t.$router.push({path:"/login"}),t.$mimcInstance.logout(),t.$store.commit("onIsLogin",!1),localStorage.clear()})).catch((function(e){t.$message.error("退出失败"),console.log(e)}))},handleCommand:function(t){var e=this;switch(t){case"a":this.$store.commit("onChangeEditDialogFormVisible",!0);break;case"b":this.$store.commit("onChangeEditPasswordDialogFormVisible",!0);break;case"c":this.$confirm("您确定要退出登录吗? 退出登录后工作台也同时下线!","温馨提示!",{confirmButtonText:"确定",cancelButtonText:"取消",center:!0,type:"warning"}).then((function(){return e.logout()}));break}}}},b=g,v=(o("70ad"),Object(c["a"])(b,u,f,!1,null,"432b9ecd",null)),w=v.exports,_=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("el-dialog",{attrs:{width:"500px",title:"修改资料","show-close":!1,visible:t.$store.state.editDialogFormVisible,"close-on-click-modal":!1},on:{"update:visible":function(e){return t.$set(t.$store.state,"editDialogFormVisible",e)}}},[o("el-form",{attrs:{model:t.form}},[o("el-form-item",{attrs:{label:"头像","label-width":t.formLabelWidth}},[o("el-row",{attrs:{gutter:10}},[o("el-col",{attrs:{span:3}},[o("div",{staticClass:"mini-im-file-button",attrs:{title:"点击上传图片"}},[o("el-avatar",{attrs:{size:50,src:t.form.avatar||t.$store.state.avatar}}),o("input",{attrs:{onClick:"this.value = null",type:"file",accept:"image/*"},on:{change:t.changeFile}}),o("div",{directives:[{name:"show",rawName:"v-show",value:t.isUploading,expression:"isUploading"}],staticClass:"mini-im-file-percent"},[o("span",[t._v(t._s(t.uploadPercent))])])],1)]),o("el-col",{attrs:{span:6}})],1)],1),o("el-form-item",{attrs:{label:"账号","label-width":t.formLabelWidth}},[t._v("\n "+t._s(t.form.username)+"\n ")]),o("el-form-item",{attrs:{label:"昵称","label-width":t.formLabelWidth}},[o("el-input",{attrs:{placeholder:"请输入昵称",autocomplete:"off"},model:{value:t.form.nickname,callback:function(e){t.$set(t.form,"nickname",e)},expression:"form.nickname"}})],1),o("el-form-item",{attrs:{label:"联系方式","label-width":t.formLabelWidth}},[o("el-input",{attrs:{placeholder:"请输入联系方式",autocomplete:"off"},model:{value:t.form.phone,callback:function(e){t.$set(t.form,"phone",e)},expression:"form.phone"}})],1),o("el-form-item",{attrs:{label:"自动回复语","label-width":t.formLabelWidth}},[o("el-input",{attrs:{type:"textarea",placeholder:"请输入自动回复语,不支持emoji,请使用简单语句描述",autocomplete:"off"},model:{value:t.form.auto_reply,callback:function(e){t.$set(t.form,"auto_reply",e)},expression:"form.auto_reply"}})],1)],1),o("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[o("el-button",{on:{click:t.closeModal}},[t._v("取 消")]),o("el-button",{attrs:{type:"primary"},on:{click:t.save}},[t._v("保 存")])],1)],1)},$=[],k=o("fb21"),x={name:"mini-im-edit-profile",data:function(){return{form:{id:"",avatar:"",username:"",nickname:"",phone:"",auto_reply:""},formLabelWidth:"90px",isUploading:!1,uploadPercent:""}},computed:{adminInfo:function(){return this.$store.state.adminInfo}},methods:{closeModal:function(){this.$store.commit("onChangeEditDialogFormVisible",!1)},save:function(){var t=this,e=this.$loading({lock:!0,text:"保存中...",spinner:"el-icon-loading",background:"rgba(0, 0, 0, 0.5)"});h.a.put("/admin",this.form).then((function(o){console.log(o),e.close(),t.$message.success("资料修改成功"),t.closeModal(),t.$store.dispatch("ON_GET_ME")})).catch((function(o){e.close(),t.$message.error(o.response.data.message)}))},changeFile:function(t){var e=this;Object(k["a"])({file:t.target.files[0],progress:function(t){e.isUploading=!0,e.uploadPercent=t+"%"},success:function(t){e.isUploading=!1,e.uploadPercent="",e.$message.success("上传成功");var o=e.$store.getters.uploadToken.host+"/"+t;e.form.avatar=o},error:function(t){e.isUploading=!1,e.uploadPercent="",e.$message.error(t.message)}})}},watch:{adminInfo:function(){if(this.adminInfo){var t=this.$store.state.adminInfo,e=t.avatar,o=t.username,s=t.nickname,a=t.phone,i=t.id,n=t.auto_reply;this.form={avatar:e,username:o,nickname:s,phone:a,id:i,auto_reply:n}}}}},C=x,y=(o("5d0e"),Object(c["a"])(C,_,$,!1,null,"0d4bcba3",null)),E=y.exports,P=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("el-dialog",{attrs:{width:"500px",title:"修改密码","show-close":!1,visible:t.$store.state.editPasswordDialogFormVisible,"close-on-click-modal":!1},on:{"update:visible":function(e){return t.$set(t.$store.state,"editPasswordDialogFormVisible",e)}}},[o("el-form",{attrs:{model:t.form}},[o("el-form-item",{attrs:{label:"旧密码","label-width":t.formLabelWidth}},[o("el-input",{attrs:{placeholder:"请输入旧密码",autocomplete:"off"},model:{value:t.form.old_password,callback:function(e){t.$set(t.form,"old_password",e)},expression:"form.old_password"}})],1),o("el-form-item",{attrs:{label:"新密码","label-width":t.formLabelWidth}},[o("el-input",{attrs:{placeholder:"请输入新密码",autocomplete:"off"},model:{value:t.form.new_password,callback:function(e){t.$set(t.form,"new_password",e)},expression:"form.new_password"}})],1),o("el-form-item",{attrs:{label:"确认密码","label-width":t.formLabelWidth}},[o("el-input",{attrs:{placeholder:"请再次输入新密码",autocomplete:"off"},model:{value:t.form.enter_password,callback:function(e){t.$set(t.form,"enter_password",e)},expression:"form.enter_password"}})],1)],1),o("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[o("el-button",{on:{click:t.closeModal}},[t._v("取 消")]),o("el-button",{attrs:{type:"primary"},on:{click:t.save}},[t._v("保 存")])],1)],1)},A=[],F={name:"mini-im-create-knowledge",data:function(){return{form:{old_password:"",new_password:"",enter_password:""},robotSwitch:!0,formLabelWidth:"80px"}},props:{dialogFormVisible:Boolean},mounted:function(){},methods:{closeModal:function(){this.resize(),this.$store.commit("onChangeEditPasswordDialogFormVisible",!1)},save:function(){var t=this,e=this.$loading({lock:!0,text:"保存中...",spinner:"el-icon-loading",background:"rgba(0, 0, 0, 0.5)"});h.a.put("/admin/password",this.form).then((function(o){console.log(o),e.close(),t.$message.success("资料修改成功"),t.closeModal(),t.resize()})).catch((function(o){e.close(),t.$message.error(o.response.data.message)}))},resize:function(){this.form={old_password:"",new_password:"",enter_password:""}}}},L=F,I=Object(c["a"])(L,P,A,!1,null,"5987490c",null),M=I.exports,S={name:"home",components:{MeAside:m,MeHeaser:w,EditProfile:E,EditPassword:M},computed:{workbenchBgColor:function(){return"/workbench"==this.$route.path?this.$store.getters.workbenchBgColor:"#ffffff"}}},T=S,W=(o("c5f8"),Object(c["a"])(T,s,a,!1,null,"61095d10",null));e["default"]=W.exports},"3d9e":function(t,e,o){},"5d0e":function(t,e,o){"use strict";var s=o("710f"),a=o.n(s);a.a},"70ad":function(t,e,o){"use strict";var s=o("3d9e"),a=o.n(s);a.a},"710f":function(t,e,o){},"8e69":function(t,e,o){t.exports=o.p+"img/kefu_logo.9c308a55.png"},"98be":function(t,e,o){},"99fd":function(t,e,o){},c5f8:function(t,e,o){"use strict";var s=o("98be"),a=o.n(s);a.a}}]);
//# sourceMappingURL=chunk-0499e026.accfa348.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///./src/components/me-aside.vue?48f3","webpack:///./src/views/index.vue?1588","webpack:///./src/components/me-aside.vue?4e46","webpack:///src/components/me-aside.vue","webpack:///./src/components/me-aside.vue?761f","webpack:///./src/components/me-aside.vue","webpack:///./src/components/me-header.vue?6981","webpack:///src/components/me-header.vue","webpack:///./src/components/me-header.vue?8b81","webpack:///./src/components/me-header.vue","webpack:///./src/components/me-edit-profile.vue?f354","webpack:///src/components/me-edit-profile.vue","webpack:///./src/components/me-edit-profile.vue?b167","webpack:///./src/components/me-edit-profile.vue","webpack:///./src/components/me-edit-password.vue?c2bd","webpack:///src/components/me-edit-password.vue","webpack:///./src/components/me-edit-password.vue?7d42","webpack:///./src/components/me-edit-password.vue","webpack:///src/views/index.vue","webpack:///./src/views/index.vue?a66e","webpack:///./src/views/index.vue","webpack:///./src/components/me-edit-profile.vue?ef1b","webpack:///./src/components/me-header.vue?f81c","webpack:///./src/assets/kefu_logo.png","webpack:///./src/views/index.vue?c757"],"names":["render","_vm","this","_h","$createElement","_c","_self","$store","state","_e","staticStyle","staticClass","attrs","style","workbenchBgColor","staticRenderFns","on","$event","$router","push","path","getters","systemInfo","logo","Date","now","menuActive","slot","_v","readCount","name","data","mounted","methods","setHeaderTitle","title","$route","commit","watch","component","isShowAside","_s","heaserTitle","handleCommand","avatar","nickname","bgColor","props","String","logout","console","log","error","editDialogFormVisible","$set","form","formLabelWidth","changeFile","directives","rawName","value","expression","uploadPercent","username","model","callback","$$v","closeModal","save","computed","adminInfo","lock","text","spinner","background","loading","close","editPasswordDialogFormVisible","dialogFormVisible","Boolean","resize","components","MeAside","module","exports"],"mappings":"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","file":"js/chunk-0499e026.accfa348.js","sourcesContent":["import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./me-aside.vue?vue&type=style&index=0&lang=stylus&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./me-aside.vue?vue&type=style&index=0&lang=stylus&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-container',[(_vm.$store.state.isShowAside)?_c('me-aside'):_vm._e(),_c('el-container',{staticStyle:{\"min-width\":\"800px\"}},[_c('el-header',{staticClass:\"mini-im-header\"},[_c('me-heaser',{attrs:{\"title\":\"sdfsd\"}})],1),_c('el-main',{style:('background-color:' + _vm.workbenchBgColor)},[_c('router-view')],1)],1),_c('EditProfile'),_c('EditPassword')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-aside',{staticClass:\"mini-im-aside\",attrs:{\"width\":\"200px\"}},[_c('div',{staticClass:\"mini-im-logo\",on:{\"click\":function($event){return _vm.$router.push({ path: '/index'})}}},[(_vm.$store.getters.systemInfo.logo)?_c('div',[_c('img',{attrs:{\"src\":_vm.$store.getters.systemInfo.logo + '?id=' + Date.now(),\"alt\":\"\"}})]):_c('div',[_c('img',{attrs:{\"src\":require(\"../assets/kefu_logo.png\"),\"alt\":\"\"}})])]),_c('el-menu',{staticClass:\"el-menu-vertical-demo\",attrs:{\"default-active\":_vm.menuActive,\"background-color\":\"#3e444a\",\"text-color\":\"#fff\",\"router\":true,\"active-text-color\":\"#ffd04b\"}},[_c('el-menu-item',{attrs:{\"index\":\"/index\"}},[_c('i',{staticClass:\"el-icon-s-home\"}),_c('span',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"首页\")])]),_c('el-menu-item',{attrs:{\"index\":\"/workbench\"}},[_c('el-badge',{staticStyle:{\"width\":\"100%\"},attrs:{\"hidden\":_vm.$store.getters.readCount == 0,\"value\":_vm.$store.getters.readCount,\"max\":99}},[_c('div',[_c('i',{staticClass:\"el-icon-s-platform\"}),_c('span',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"工作台\")])])])],1),_c('el-menu-item',{attrs:{\"index\":\"/knowledge\"}},[_c('i',{staticClass:\"el-icon-reading\"}),_c('span',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"知识库\")])]),_c('el-menu-item',{attrs:{\"index\":\"/robot\"}},[_c('i',{staticClass:\"el-icon-picture-outline-round\"}),_c('span',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"机器人\")])]),_c('el-menu-item',{attrs:{\"index\":\"/customer\"}},[_c('i',{staticClass:\"el-icon-headset\"}),_c('span',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"客服管理\")])]),_c('el-menu-item',{attrs:{\"index\":\"/users\"}},[_c('i',{staticClass:\"el-icon-user\"}),_c('span',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"用户管理\")])]),_c('el-menu-item',{attrs:{\"index\":\"/chat_record\"}},[_c('i',{staticClass:\"el-icon-time\"}),_c('span',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"服务记录\")])]),_c('el-menu-item',{attrs:{\"index\":\"/system\"}},[_c('i',{staticClass:\"el-icon-setting\"}),_c('span',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"系统设置\")])])],1),_c('div',{staticClass:\"fix-bottom\"},[_c('a',{attrs:{\"title\":\"去给作者Star\",\"target\":\"_blank\",\"href\":\"https://github.com/chenxianqi/kefu_server.git\"}},[_c('svg',{staticClass:\"github-logo\",attrs:{\"height\":\"23\",\"viewBox\":\"0 0 16 16\",\"version\":\"1.1\",\"width\":\"23\",\"aria-hidden\":\"true\"}},[_c('path',{attrs:{\"fill\":\"#fff\",\"fill-rule\":\"evenodd\",\"d\":\"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z\"}})]),_c('span',[_vm._v(\" Github\")])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <el-aside width=\"200px\" class=\"mini-im-aside\">\n <div class=\"mini-im-logo\" @click=\"$router.push({ path: '/index'})\">\n <div v-if=\"$store.getters.systemInfo.logo\"><img :src=\"$store.getters.systemInfo.logo + '?id=' + Date.now()\" alt=\"\"></div>\n <div v-else><img src=\"../assets/kefu_logo.png\" alt=\"\"></div>\n </div>\n <el-menu\n :default-active=\"menuActive\"\n class=\"el-menu-vertical-demo\"\n background-color=\"#3e444a\"\n text-color=\"#fff\"\n :router=\"true\"\n active-text-color=\"#ffd04b\"\n >\n <el-menu-item index=\"/index\">\n <i class=\"el-icon-s-home\"></i>\n <span slot=\"title\">首页</span>\n </el-menu-item>\n <el-menu-item index=\"/workbench\">\n <el-badge :hidden=\"$store.getters.readCount == 0\" :value=\"$store.getters.readCount\" :max=\"99\" style=\"width: 100%;\">\n <div>\n <i class=\"el-icon-s-platform\"></i>\n <span slot=\"title\">工作台</span>\n </div>\n </el-badge>\n </el-menu-item>\n <el-menu-item index=\"/knowledge\">\n <i class=\"el-icon-reading\"></i>\n <span slot=\"title\">知识库</span>\n </el-menu-item>\n <el-menu-item index=\"/robot\">\n <i class=\"el-icon-picture-outline-round\"></i>\n <span slot=\"title\">机器人</span>\n </el-menu-item>\n <el-menu-item index=\"/customer\">\n <i class=\"el-icon-headset\"></i>\n <span slot=\"title\">客服管理</span>\n </el-menu-item>\n <el-menu-item index=\"/users\">\n <i class=\"el-icon-user\"></i>\n <span slot=\"title\">用户管理</span>\n </el-menu-item>\n <el-menu-item index=\"/chat_record\">\n <i class=\"el-icon-time\"></i>\n <span slot=\"title\">服务记录</span>\n </el-menu-item>\n <el-menu-item index=\"/system\">\n <i class=\"el-icon-setting\"></i>\n <span slot=\"title\">系统设置</span>\n </el-menu-item>\n \n </el-menu>\n <div class=\"fix-bottom\">\n <a title=\"去给作者Star\" target=\"_blank\" href=\"https://github.com/chenxianqi/kefu_server.git\">\n <svg class=\"github-logo\" height=\"23\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"23\" aria-hidden=\"true\"><path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z\"></path></svg>\n <span> Github</span>\n </a>\n </div>\n </el-aside>\n</template>\n<script>\nexport default {\n name: 'mini-im-aside',\n data(){\n return {\n menuActive: \"/index\"\n }\n },\n mounted(){\n this.setHeaderTitle()\n },\n methods: {\n setHeaderTitle(){\n this.menuActive = this.$route.path\n var title\n switch(this.menuActive){\n case \"/index\":\n title = \"首页\"\n break\n case \"/workbench\":\n title = \"工作台\"\n break\n case \"/knowledge\":\n title = \"知识库\"\n break\n case \"/robot\":\n title = \"机器人\"\n break\n case \"/customer\":\n title = \"客服管理\"\n break\n case \"/users\":\n title = \"用户管理\"\n break\n case \"/system\":\n title = \"系统设置\"\n break\n }\n this.$store.commit(\"onChangeHeaserTitle\", title)\n }\n },\n watch: {\n \"$route\"(){\n this.setHeaderTitle()\n }\n }\n}\n</script>\n<style lang=\"stylus\">\n .mini-im-aside{\n background-color: #3e444a\n display flex\n flex-direction column\n .mini-im-logo{\n width 100%;\n height: 100px;\n display flex\n justify-content center\n flex-direction column\n align-items center\n border-bottom 1px solid #ddd\n img{\n height : 30px\n }\n }\n .el-menu{\n border-right 0\n }\n .el-badge__content{\n border 0\n top 30px\n }\n .fix-bottom{\n flex-grow 1\n display flex\n flex-direction column\n justify-content flex-end\n padding-bottom 30px\n a{\n cursor pointer\n padding 0 30px\n text-align center\n align-items center\n color #fff\n display flex\n align-content center\n .github-log{\n width 50px\n }\n span{\n margin-top 3px\n margin-left 5px\n }\n }\n }\n }\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./me-aside.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./me-aside.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./me-aside.vue?vue&type=template&id=b3aabc52&\"\nimport script from \"./me-aside.vue?vue&type=script&lang=js&\"\nexport * from \"./me-aside.vue?vue&type=script&lang=js&\"\nimport style0 from \"./me-aside.vue?vue&type=style&index=0&lang=stylus&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"end\",\"gutter\":20}},[_c('el-col',{attrs:{\"span\":5}},[_c('el-button',{staticClass:\"mini-im-button\",attrs:{\"type\":\"info\",\"icon\":_vm.$store.state.isShowAside ? 'el-icon-s-fold' : 'el-icon-s-unfold'},on:{\"click\":function($event){return _vm.$store.commit('onChangeToggleAside', !_vm.$store.state.isShowAside)}}})],1),_c('el-col',{attrs:{\"span\":16}},[_c('div',{staticClass:\"mini-im-title\"},[_vm._v(_vm._s(_vm.$store.state.heaserTitle))])]),_c('el-col',{attrs:{\"span\":5}},[_c('el-row',{staticClass:\"mini-im-dropdown\",attrs:{\"type\":\"flex\",\"justify\":\"end\"}},[_c('el-dropdown',{attrs:{\"trigger\":\"click\"},on:{\"command\":_vm.handleCommand}},[_c('div',{staticClass:\"el-dropdown-link\"},[_c('el-avatar',{staticClass:\"mini-im-avatar\",attrs:{\"size\":25}},[_c('img',{attrs:{\"src\":_vm.$store.getters.avatar}})]),_c('span',{staticStyle:{\"padding\":\"0 5px\"}},[_vm._v(\" \"+_vm._s(_vm.$store.getters.nickname)+\" \")]),_c('i',{staticClass:\"el-icon-arrow-down el-icon--right\"})],1),_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[_c('el-dropdown-item',{attrs:{\"command\":\"a\"}},[_c('i',{staticClass:\"el-icon-user icon\"}),_vm._v(\"\\n 修改资料\\n \")]),_c('el-dropdown-item',{attrs:{\"command\":\"b\"}},[_c('i',{staticClass:\"el-icon-unlock icon\"}),_vm._v(\"\\n 修改密码\\n \")]),_c('el-dropdown-item',{attrs:{\"command\":\"c\",\"divided\":\"\"}},[_c('i',{staticClass:\"el-icon-caret-right icon\"}),_vm._v(\"\\n 退出登录\\n \")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <el-row type=\"flex\" justify=\"end\" :gutter=\"20\">\n <el-col :span=\"5\">\n <el-button\n @click=\"$store.commit('onChangeToggleAside', !$store.state.isShowAside)\"\n class=\"mini-im-button\"\n type=\"info\"\n :icon=\"$store.state.isShowAside ? 'el-icon-s-fold' : 'el-icon-s-unfold'\"\n >\n </el-button>\n </el-col>\n <el-col :span=\"16\" >\n <div class=\"mini-im-title\">{{$store.state.heaserTitle}}</div>\n </el-col>\n <el-col :span=\"5\">\n <el-row type=\"flex\" justify=\"end\" class=\"mini-im-dropdown\">\n <el-dropdown @command=\"handleCommand\" trigger=\"click\">\n <div class=\"el-dropdown-link\">\n <el-avatar :size=\"25\" class=\"mini-im-avatar\">\n <img :src=\"$store.getters.avatar\"/>\n </el-avatar>\n <span style=\"padding:0 5px;\"> {{$store.getters.nickname}} </span>\n <i class=\"el-icon-arrow-down el-icon--right\"></i>\n </div>\n <el-dropdown-menu slot=\"dropdown\">\n <el-dropdown-item command=\"a\">\n <i class=\"el-icon-user icon\"></i>\n 修改资料\n </el-dropdown-item>\n <el-dropdown-item command=\"b\">\n <i class=\"el-icon-unlock icon\"></i>\n 修改密码\n </el-dropdown-item>\n <el-dropdown-item command=\"c\" divided>\n <i class=\"el-icon-caret-right icon\"></i>\n 退出登录\n </el-dropdown-item>\n </el-dropdown-menu>\n </el-dropdown>\n </el-row>\n </el-col>\n </el-row>\n</template>\n<script>\nimport axios from 'axios'\nexport default {\n name: \"mini-im-aside\",\n data(){\n return {\n bgColor: \"#ffffff\"\n }\n },\n props: {\n title: String\n },\n methods: {\n // 退出登录\n logout(){\n axios.put('/admin/online/0')\n axios.get('/auth/logout')\n .then(() => {\n this.$store.commit(\"onReset\")\n this.$store.commit(\"onChangeAdminInfo\", null)\n this.$router.push({ path: '/login'})\n this.$mimcInstance.logout()\n this.$store.commit(\"onIsLogin\", false)\n localStorage.clear()\n })\n .catch(error => {\n this.$message.error('退出失败')\n console.log(error)\n })\n },\n handleCommand(command){\n switch(command){\n case 'a':\n this.$store.commit(\"onChangeEditDialogFormVisible\", true)\n break\n case 'b':\n this.$store.commit(\"onChangeEditPasswordDialogFormVisible\", true)\n break\n case 'c':\n this.$confirm('您确定要退出登录吗? 退出登录后工作台也同时下线!', '温馨提示!', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n center: true,\n type: 'warning'\n }).then(() => this.logout())\n break\n\n }\n }\n }\n}\n</script>\n<style scoped lang=\"stylus\">\n.mini-im-header {\n background-color: #545c64;\n border-bottom: 1px solid #545c64;\n .mini-im-dropdown{\n height 100%\n }\n .mini-im-button{\n border 0\n font-size 35px\n display block\n background 0\n padding-left 0\n }\n .mini-im-title{\n color #fff\n font-size 16px\n text-align center\n line-height 60px\n }\n .icon {\n color: #fff;\n }\n .el-dropdown-link {\n cursor: pointer;\n display flex\n height 100%\n line-height 60px\n align-items center\n color: #fff;\n }\n .el-icon-arrow-down {\n font-size: 12px;\n }\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./me-header.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./me-header.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./me-header.vue?vue&type=template&id=432b9ecd&scoped=true&\"\nimport script from \"./me-header.vue?vue&type=script&lang=js&\"\nexport * from \"./me-header.vue?vue&type=script&lang=js&\"\nimport style0 from \"./me-header.vue?vue&type=style&index=0&id=432b9ecd&scoped=true&lang=stylus&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"432b9ecd\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{\"width\":\"500px\",\"title\":\"修改资料\",\"show-close\":false,\"visible\":_vm.$store.state.editDialogFormVisible,\"close-on-click-modal\":false},on:{\"update:visible\":function($event){return _vm.$set(_vm.$store.state, \"editDialogFormVisible\", $event)}}},[_c('el-form',{attrs:{\"model\":_vm.form}},[_c('el-form-item',{attrs:{\"label\":\"头像\",\"label-width\":_vm.formLabelWidth}},[_c('el-row',{attrs:{\"gutter\":10}},[_c('el-col',{attrs:{\"span\":3}},[_c('div',{staticClass:\"mini-im-file-button\",attrs:{\"title\":\"点击上传图片\"}},[_c('el-avatar',{attrs:{\"size\":50,\"src\":_vm.form.avatar || _vm.$store.state.avatar}}),_c('input',{attrs:{\"onClick\":\"this.value = null\",\"type\":\"file\",\"accept\":\"image/*\"},on:{\"change\":_vm.changeFile}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isUploading),expression:\"isUploading\"}],staticClass:\"mini-im-file-percent\"},[_c('span',[_vm._v(_vm._s(_vm.uploadPercent))])])],1)]),_c('el-col',{attrs:{\"span\":6}})],1)],1),_c('el-form-item',{attrs:{\"label\":\"账号\",\"label-width\":_vm.formLabelWidth}},[_vm._v(\"\\n \"+_vm._s(_vm.form.username)+\"\\n \")]),_c('el-form-item',{attrs:{\"label\":\"昵称\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入昵称\",\"autocomplete\":\"off\"},model:{value:(_vm.form.nickname),callback:function ($$v) {_vm.$set(_vm.form, \"nickname\", $$v)},expression:\"form.nickname\"}})],1),_c('el-form-item',{attrs:{\"label\":\"联系方式\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入联系方式\",\"autocomplete\":\"off\"},model:{value:(_vm.form.phone),callback:function ($$v) {_vm.$set(_vm.form, \"phone\", $$v)},expression:\"form.phone\"}})],1),_c('el-form-item',{attrs:{\"label\":\"自动回复语\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"placeholder\":\"请输入自动回复语,不支持emoji,请使用简单语句描述\",\"autocomplete\":\"off\"},model:{value:(_vm.form.auto_reply),callback:function ($$v) {_vm.$set(_vm.form, \"auto_reply\", $$v)},expression:\"form.auto_reply\"}})],1)],1),_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.closeModal}},[_vm._v(\"取 消\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"保 存\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <el-dialog width=\"500px\" title=\"修改资料\" :show-close=\"false\" :visible.sync=\"$store.state.editDialogFormVisible\" :close-on-click-modal=\"false\">\n <el-form :model=\"form\">\n <el-form-item label=\"头像\" :label-width=\"formLabelWidth\">\n <el-row :gutter=\"10\">\n <el-col :span=\"3\">\n <div class=\"mini-im-file-button\" title=\"点击上传图片\">\n <el-avatar :size=\"50\" :src=\"form.avatar || $store.state.avatar\"></el-avatar>\n <input onClick=\"this.value = null\" @change=\"changeFile\" type=\"file\" accept=\"image/*\">\n <div v-show=\"isUploading\" class=\"mini-im-file-percent\">\n <span>{{uploadPercent}}</span>\n </div>\n </div>\n </el-col>\n <el-col :span=\"6\">\n </el-col>\n </el-row>\n </el-form-item>\n <el-form-item label=\"账号\" :label-width=\"formLabelWidth\">\n {{form.username}}\n </el-form-item>\n <el-form-item label=\"昵称\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.nickname\" placeholder=\"请输入昵称\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"联系方式\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.phone\" placeholder=\"请输入联系方式\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"自动回复语\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.auto_reply\" type=\"textarea\" placeholder=\"请输入自动回复语,不支持emoji,请使用简单语句描述\" autocomplete=\"off\"></el-input>\n </el-form-item>\n </el-form>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"closeModal\">取 消</el-button>\n <el-button type=\"primary\" @click=\"save\">保 存</el-button>\n </div>\n </el-dialog>\n</template>\n<script>\nimport axios from 'axios'\nimport upload from '../common/upload'\nexport default {\n name: 'mini-im-edit-profile',\n data(){\n return {\n form: {\n id: \"\",\n avatar: \"\",\n username: \"\",\n nickname: '',\n phone: '',\n auto_reply: ''\n },\n formLabelWidth: \"90px\",\n isUploading: false,\n uploadPercent: \"\"\n }\n },\n computed: {\n adminInfo(){\n return this.$store.state.adminInfo\n }\n },\n methods: {\n // 关闭窗口\n closeModal(){\n this.$store.commit(\"onChangeEditDialogFormVisible\", false)\n },\n // 保存\n save(){\n const loading = this.$loading({\n lock: true,\n text: '保存中...',\n spinner: 'el-icon-loading',\n background: 'rgba(0, 0, 0, 0.5)'\n });\n axios.put('/admin', this.form)\n .then(response => {\n console.log(response)\n loading.close();\n this.$message.success(\"资料修改成功\")\n this.closeModal()\n this.$store.dispatch('ON_GET_ME')\n })\n .catch(error => {\n loading.close();\n this.$message.error(error.response.data.message)\n });\n\n },\n // 上传头像\n changeFile(file){\n\n upload({\n file: file.target.files[0],\n progress: (percent) => {\n this.isUploading = true\n this.uploadPercent = percent + \"%\"\n },\n success: (url) => {\n this.isUploading = false\n this.uploadPercent = \"\"\n this.$message.success(\"上传成功\")\n var imgUrl = this.$store.getters.uploadToken.host +\"/\"+ url\n this.form.avatar = imgUrl\n },\n error: (err)=>{\n this.isUploading = false\n this.uploadPercent = \"\"\n this.$message.error(err.message)\n }\n });\n \n }\n },\n watch: {\n adminInfo(){\n if(!this.adminInfo) return\n const {avatar,username, nickname, phone, id, auto_reply } = this.$store.state.adminInfo\n this.form = {avatar,username, nickname, phone, id, auto_reply }\n }\n }\n}\n</script>\n<style scoped lang=\"stylus\">\n .mini-im-file-button{\n width 50px\n height 50px\n border-radius 50%\n position relative\n overflow hidden\n input{\n font-size 100px\n position absolute\n top 0px\n left 0px\n cursor pointer\n opacity 0\n }\n cursor pointer\n .mini-im-file-percent{\n position absolute\n top 0px\n left 0px\n width 100%\n height 100%\n display flex\n align-items center\n justify-content center\n border-radius 50%\n background-color rgba(0,0,0, .5)\n color #fff\n font-size 12px\n }\n }\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./me-edit-profile.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./me-edit-profile.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./me-edit-profile.vue?vue&type=template&id=0d4bcba3&scoped=true&\"\nimport script from \"./me-edit-profile.vue?vue&type=script&lang=js&\"\nexport * from \"./me-edit-profile.vue?vue&type=script&lang=js&\"\nimport style0 from \"./me-edit-profile.vue?vue&type=style&index=0&id=0d4bcba3&scoped=true&lang=stylus&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d4bcba3\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{\"width\":\"500px\",\"title\":\"修改密码\",\"show-close\":false,\"visible\":_vm.$store.state.editPasswordDialogFormVisible,\"close-on-click-modal\":false},on:{\"update:visible\":function($event){return _vm.$set(_vm.$store.state, \"editPasswordDialogFormVisible\", $event)}}},[_c('el-form',{attrs:{\"model\":_vm.form}},[_c('el-form-item',{attrs:{\"label\":\"旧密码\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入旧密码\",\"autocomplete\":\"off\"},model:{value:(_vm.form.old_password),callback:function ($$v) {_vm.$set(_vm.form, \"old_password\", $$v)},expression:\"form.old_password\"}})],1),_c('el-form-item',{attrs:{\"label\":\"新密码\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入新密码\",\"autocomplete\":\"off\"},model:{value:(_vm.form.new_password),callback:function ($$v) {_vm.$set(_vm.form, \"new_password\", $$v)},expression:\"form.new_password\"}})],1),_c('el-form-item',{attrs:{\"label\":\"确认密码\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请再次输入新密码\",\"autocomplete\":\"off\"},model:{value:(_vm.form.enter_password),callback:function ($$v) {_vm.$set(_vm.form, \"enter_password\", $$v)},expression:\"form.enter_password\"}})],1)],1),_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.closeModal}},[_vm._v(\"取 消\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"保 存\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <el-dialog width=\"500px\" title=\"修改密码\" :show-close=\"false\" :visible.sync=\"$store.state.editPasswordDialogFormVisible\" :close-on-click-modal=\"false\">\n <el-form :model=\"form\">\n <el-form-item label=\"旧密码\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.old_password\" placeholder=\"请输入旧密码\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"新密码\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.new_password\" placeholder=\"请输入新密码\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"确认密码\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.enter_password\" placeholder=\"请再次输入新密码\" autocomplete=\"off\"></el-input>\n </el-form-item>\n </el-form>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"closeModal\">取 消</el-button>\n <el-button type=\"primary\" @click=\"save\">保 存</el-button>\n </div>\n </el-dialog>\n</template>\n<script>\nimport axios from 'axios'\nexport default {\n name: 'mini-im-create-knowledge',\n data(){\n return {\n form: {\n old_password: \"\",\n new_password: \"\",\n enter_password: \"\"\n },\n robotSwitch: true,\n formLabelWidth: \"80px\"\n }\n },\n props:{\n dialogFormVisible: Boolean\n },\n mounted(){\n },\n methods: {\n // 关闭\n closeModal(){\n this.resize()\n this.$store.commit(\"onChangeEditPasswordDialogFormVisible\", false)\n },\n // 保存\n save(){\n // 验证字段 !! 算了前端不验证了\n const loading = this.$loading({\n lock: true,\n text: '保存中...',\n spinner: 'el-icon-loading',\n background: 'rgba(0, 0, 0, 0.5)'\n });\n axios.put('/admin/password', this.form)\n .then(response => {\n console.log(response)\n loading.close();\n this.$message.success(\"资料修改成功\")\n this.closeModal()\n this.resize()\n })\n .catch(error => {\n loading.close();\n this.$message.error(error.response.data.message)\n });\n\n },\n resize(){\n this.form = {\n old_password: \"\",\n new_password: \"\",\n enter_password: \"\"\n }\n }\n }\n}\n</script>\n<style scoped lang=\"stylus\">\n \n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./me-edit-password.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./me-edit-password.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./me-edit-password.vue?vue&type=template&id=5987490c&scoped=true&\"\nimport script from \"./me-edit-password.vue?vue&type=script&lang=js&\"\nexport * from \"./me-edit-password.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5987490c\",\n null\n \n)\n\nexport default component.exports","<template>\n <el-container>\n <me-aside v-if=\"$store.state.isShowAside\"></me-aside>\n <el-container style=\"min-width: 800px;\">\n <el-header class=\"mini-im-header\">\n <me-heaser title=\"sdfsd\"></me-heaser>\n </el-header>\n <el-main :style=\"'background-color:' + workbenchBgColor\">\n <router-view></router-view>\n </el-main>\n </el-container>\n <EditProfile />\n <EditPassword />\n </el-container>\n</template>\n\n<script>\n\nimport MeAside from \"@/components/me-aside.vue\";\nimport MeHeaser from \"@/components/me-header.vue\";\nimport EditProfile from \"@/components/me-edit-profile.vue\";\nimport EditPassword from \"@/components/me-edit-password.vue\";\n\nexport default {\n name: \"home\",\n components: {\n MeAside,MeHeaser,EditProfile,EditPassword\n },\n computed: {\n workbenchBgColor(){\n if(this.$route.path == \"/workbench\"){\n return this.$store.getters.workbenchBgColor\n }\n return \"#ffffff\"\n }\n }\n};\n</script>\n<style lang=\"stylus\" scoped>\n .mini-im-header{\n background-color #545c64\n border-bottom 1px solid #545c64\n }\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=61095d10&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=61095d10&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"61095d10\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./me-edit-profile.vue?vue&type=style&index=0&id=0d4bcba3&scoped=true&lang=stylus&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./me-edit-profile.vue?vue&type=style&index=0&id=0d4bcba3&scoped=true&lang=stylus&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./me-header.vue?vue&type=style&index=0&id=432b9ecd&scoped=true&lang=stylus&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./me-header.vue?vue&type=style&index=0&id=432b9ecd&scoped=true&lang=stylus&\"","module.exports = __webpack_public_path__ + \"img/kefu_logo.9c308a55.png\";","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=61095d10&lang=stylus&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=61095d10&lang=stylus&scoped=true&\""],"sourceRoot":""}
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-08473d3a"],{"78ce":function(e,t,s){var a=s("5ca1");a(a.S,"Date",{now:function(){return(new Date).getTime()}})},c2a3:function(e,t,s){},caae:function(e,t,s){"use strict";s.r(t);var a=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"record-page"},[s("div",{staticClass:"record-mini-im-head"},[s("span",[s("i",{staticClass:"el-icon-time"}),s("span",{attrs:{slot:"title"},slot:"title"},[e._v("服务记录")])])]),s("el-divider"),s("div",{staticClass:"search"},[s("el-row",{attrs:{gutter:20}},[s("el-col",{staticStyle:{width:"120px"}},[s("el-form",{ref:"form",attrs:{"label-width":"120px"}},[s("el-form-item",{attrs:{label:1==e.adminInfo.root?"按客服:":"按日期:"}})],1)],1),1==e.adminInfo.root?s("el-col",{attrs:{span:3}},[s("el-select",{attrs:{placeholder:"请选择客服"},on:{change:e.refreshRecord},model:{value:e.selectCustomerId,callback:function(t){e.selectCustomerId=t},expression:"selectCustomerId"}},e._l(e.customerData,(function(e){return s("el-option",{key:e.id,attrs:{label:e.nickname,value:e.id}})})),1)],1):e._e(),s("el-col",{attrs:{span:6.5}},[s("el-date-picker",{attrs:{align:"right",type:"date",placeholder:"选择日期","picker-options":e.pickerOptions},on:{change:e.refreshRecord},model:{value:e.selectDate,callback:function(t){e.selectDate=t},expression:"selectDate"}})],1),s("el-col",{staticStyle:{width:"120px"}},[s("el-checkbox",{attrs:{label:"去重目标客户",border:""},on:{change:e.refreshRecord},model:{value:e.isDeWeighting,callback:function(t){e.isDeWeighting=t},expression:"isDeWeighting"}})],1)],1)],1),s("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.tableData.list}},[s("el-table-column",{attrs:{type:"index",index:e.indexMethod,width:"60"}}),s("el-table-column",{attrs:{prop:"service_account",label:"接待客服"},scopedSlots:e._u([{key:"default",fn:function(t){return[s("span",[e._v(e._s(e.serviceNickname(t.row.service_account)))])]}}])}),s("el-table-column",{attrs:{prop:"nickname",label:"目标客户"},scopedSlots:e._u([{key:"default",fn:function(t){return[s("el-tag",{attrs:{type:"success"}},[e._v(e._s(t.row.nickname))])]}}])}),s("el-table-column",{attrs:{prop:"transfer_account",label:"满意度"}},[[s("span",[e._v("-----")])]],2),s("el-table-column",{attrs:{prop:"platform",label:"客户端平台"},scopedSlots:e._u([{key:"default",fn:function(t){return[s("el-tag",[e._v(e._s(e.$getPlatformItem(t.row.platform).title))])]}}])}),s("el-table-column",{attrs:{prop:"create_at",label:"服务时间"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(e.$formatUnixDate(t.row.create_at,"YYYY/MM/DD HH:mm:ss"))+"\n ")]}}])}),s("el-table-column",{attrs:{prop:"operating",align:"center",label:"操作",width:"150"},scopedSlots:e._u([{key:"default",fn:function(t){return[s("el-button",{attrs:{size:"mini"},on:{click:function(s){return e.openModal(t)}}},[e._v("聊天记录")])]}}])})],1),s("el-row",{staticStyle:{"margin-top":"20px"},attrs:{type:"flex",justify:"space-between"}},[s("span",{staticStyle:{color:"#666","font-size":"14px"}},[e._v("共找到"+e._s(e.tableData.total)+"条数据")]),s("el-pagination",{attrs:{background:"",layout:"sizes, prev, pager, next","current-page":e.tableData.page_on,"page-sizes":[5,10,15,20],total:e.tableData.total},on:{"size-change":e.handleSizeChange,"current-change":e.handleCurrentChange}})],1),s("el-dialog",{attrs:{visible:e.dialogFormVisible},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[s("div",{staticClass:"dialog-title",attrs:{slot:"title"},slot:"title"},[s("div",{staticStyle:{color:"#666"}},[s("span",{staticStyle:{color:"#e6a23c"}},[e._v(e._s(e.serviceNickname(e.selectUser.service_account)))]),e._v("\n 与\n "),s("span",{staticStyle:{color:"#67c23a"}},[e._v(e._s(e.selectUser.nickname))]),e._v("\n 的聊天记录\n ")])]),s("div",{ref:"chatBody",staticClass:"record-modal-chat-box",attrs:{id:"chatBody"}},[s("ChatsComponent",{attrs:{isMessageEnd:e.isMessageEnd,seviceId:e.selectCustomerId+"",seviceNickname:e.serviceNickname(e.selectUser.service_account),messages:e.messageRecord.list,userId:e.selectUser.user_account,userNickname:e.selectUser.nickname,onLoadMor:e.onLoadMor,loading:e.getMessageRecordLoading}})],1)])],1)},i=[],n=(s("78ce"),s("bc3a")),o=s.n(n),c=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"mini-im-chat-list"},[s("div",{staticClass:"mini-im-chat-message-box"},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.loading,expression:"loading"}],staticClass:"loading"},[s("i",{staticClass:"el-icon-loading"}),s("span",[e._v("消息加载中...")])]),s("el-button",{directives:[{name:"show",rawName:"v-show",value:e.isMessageEnd,expression:"isMessageEnd"}],attrs:{type:"text",disabled:"",icon:"el-icon-refresh-right"}},[e._v("无更多聊天记录...")]),e.isMessageEnd||e.loading?e._e():s("el-button",{attrs:{type:"text",icon:"el-icon-refresh"},on:{click:e.onLoadMor}},[e._v("点击加载更多聊天记录")])],1),s("div",{staticClass:"mini-im-chat-message-box"},[s("div",{directives:[{name:"show",rawName:"v-show",value:e.messages.length<=0&&!e.loading,expression:"messages.length <= 0 && !loading"}],staticClass:"loading"},[s("i",{staticClass:"el-icon-time"}),s("span",[e._v("暂无聊天记录...")])])]),e._l(e.messages,(function(t,a){return s("div",{key:a,staticClass:"mini-im-chat-message-box",class:{self:t.from_account!=e.userId}},["text"==t.biz_type||"photo"==t.biz_type||"knowledge"==t.biz_type||"knowledge_list"==t.biz_type?[s("div",{staticClass:"user-date"},[t.from_account==e.seviceId?s("span",[e._v("\n "+e._s(e.seviceNickname)+"\n ")]):t.from_account==e.userId?s("span",[e._v("\n "+e._s(e.userNickname)+"\n ")]):s("span",[s("span",{staticStyle:{"font-size":"12px",color:"#666"}},[e._v("(机器人)")]),e._v(e._s(e.$robotNickname(t.from_account))+"\n ")]),s("em",[e._v(e._s(e.$formatFromNowDate(t.timestamp)))])])]:e._e(),"text"==t.biz_type?[s("div",{staticClass:"text"},[s("span",{domProps:{innerHTML:e._s(t.payload.replace(/\n/gi,"<br />"))}})])]:e._e(),"photo"==t.biz_type?[s("div",{staticClass:"photo"},[t.percent&&100!=t.percent?s("div",{staticClass:"loading"},[s("i",{staticClass:"el-icon-loading"}),s("span",[e._v(e._s(t.percent)+"%")])]):e._e(),s("div",{staticClass:"img-content"},[s("img",{attrs:{src:t.payload,preview:"1"}})])])]:e._e(),"transfer"==t.biz_type?[s("div",{staticClass:"system"},[s("span",[e._v(e._s(t.payload))]),s("em",[e._v(e._s(e.$formatFromNowDate(t.timestamp)))])])]:e._e(),"end"==t.biz_type?[s("div",{staticClass:"system"},[t.to_account!=e.adminInfo.id?s("span",[e._v("你结束了会话")]):s("span",[e._v("对方结束了会话")]),s("em",[e._v(e._s(e.$formatFromNowDate(t.timestamp)))])])]:e._e(),"timeout"==t.biz_type?[s("div",{staticClass:"system"},[s("span",[e._v("用户长时间无应答,会话结束")]),s("em",[e._v(e._s(e.$formatFromNowDate(t.timestamp)))])])]:e._e(),"cancel"==t.biz_type?[s("div",{staticClass:"system"},[t.from_account==e.adminInfo.id?s("span",[e._v("您撤回了一条消息")]):s("span",[e._v("对方撤回了一条消息")]),s("em",[e._v(e._s(e.$formatFromNowDate(t.timestamp)))])])]:e._e(),"knowledge"==t.biz_type?[s("div",{staticClass:"knowledge"},[s("div",{staticClass:"content"},[s("div",{staticClass:"title"},[e._v("以下是否是您关心的相关问题呢?")]),e._l(JSON.parse(t.payload),(function(t,a){return s("div",{key:a,staticClass:"item"},[e._v("\n "+e._s(a+1)+"."+e._s(t.title)+"\n ")])}))],2)])]:e._e()],2)}))],2)},r=[],l={name:"mini-im-contact",data:function(){return{}},computed:{seviceCurrentUser:function(){return this.$store.getters.seviceCurrentUser||{}},adminInfo:function(){return this.$store.getters.adminInfo||{}}},props:{loading:Boolean,isMessageEnd:Boolean,messages:Array,userId:String,userNickname:String,seviceId:String,seviceNickname:String,onLoadMor:Function},watch:{messages:function(){var e=this;setTimeout((function(){e.$previewRefresh()}),1e3)}}},d=l,m=(s("e775"),s("2877")),g=Object(m["a"])(d,c,r,!1,null,"3d81ef40",null),u=g.exports,p=s("c1df"),h={name:"robot",components:{ChatsComponent:u},data:function(){return{loading:!0,isDeWeighting:!1,selectDate:Date.now(),tableData:{list:[],page_on:1,page_size:10,cid:0,total:0,is_de_weighting:!1,date:""},customerData:[],selectCustomerId:null,selectUser:{},pickerOptions:{disabledDate:function(e){return e.getTime()>Date.now()},shortcuts:[{text:"今天",onClick:function(e){e.$emit("pick",new Date)}},{text:"昨天",onClick:function(e){var t=new Date;t.setTime(t.getTime()-864e5),e.$emit("pick",t)}},{text:"一周前",onClick:function(e){var t=new Date;t.setTime(t.getTime()-6048e5),e.$emit("pick",t)}}]},isMessageEnd:!1,getMessageRecordLoading:!1,getMessageRecordPageSize:20,dialogFormVisible:!1,messageRecord:{list:[]}}},computed:{platformConfig:function(){return this.$store.getters.platformConfig},adminInfo:function(){return this.$store.getters.adminInfo}},created:function(){this.getAdmins()},mounted:function(){var e=this;setTimeout((function(){e.selectCustomerId=e.adminInfo.id,e.getRecord(1)}),1e3)},methods:{indexMethod:function(e){return(this.tableData.page_on-1)*this.tableData.page_size+e+1},handleSizeChange:function(e){this.tableData.page_size=e,this.getRecord()},handleCurrentChange:function(e){this.tableData.page_on=e,this.getRecord()},serviceNickname:function(e){for(var t="",s=0;s<this.customerData.length;s++)if(this.customerData[s].id==e){t=this.customerData[s].nickname;break}return t},getAdmins:function(){var e=this;o.a.post("/admin/list",{page_on:1,page_size:100,online:3}).then((function(t){e.customerData=t.data.data.list})).catch((function(t){e.$message.error(t.response.data.message)}))},getRecord:function(e){var t=this;this.loading=!0,e&&(this.tableData.page_on=e);var s=this.tableData,a=s.page_on,i=s.page_size;o.a.post("/services_statistical/list",{page_on:a,page_size:i,cid:this.selectCustomerId,date:p(this.selectDate).format("YYYY-MM-DD"),is_de_weighting:this.isDeWeighting}).then((function(e){t.loading=!1,t.tableData=e.data})).catch((function(e){t.loading=!1,t.$message.error(e.response.data.message)}))},refreshRecord:function(){this.getRecord()},openModal:function(e){this.selectUser=e.row,this.isMessageEnd=!1,this.dialogFormVisible=!0,this.messageRecord={list:[]},this.getMessageRecord()},getMessageRecord:function(e){var t=this;this.getMessageRecordLoading=!0,void 0==e&&(e=0),o.a.post("/message/list",{timestamp:e,page_size:this.getMessageRecordPageSize,service:parseInt(this.selectCustomerId),account:parseInt(this.selectUser.user_account)}).then((function(s){t.getMessageRecordLoading=!1,s.data.data.list.length<t.getMessageRecordPageSize&&(t.isMessageEnd=!0),0==t.messageRecord.list.length||0==e?(t.messageRecord=s.data.data,t.scrollIntoBottom()):(s.data.data.list=s.data.data.list.concat(t.messageRecord.list),t.messageRecord=s.data.data),setTimeout((function(){return t.$previewRefresh()}),500)})).catch((function(e){console.log(e),t.getMessageRecordLoading=!1}))},onLoadMor:function(){this.getMessageRecordLoading||(this.messageRecord.list.length>=this.messageRecord.total||this.messageRecord.total<=this.getMessageRecordPageSize?this.isMessageEnd=!0:(this.getMessageRecord(this.messageRecord.list[0].timestamp),setTimeout((function(){var e=document.getElementById("chatBody");e.scrollTop=500}),50)))},scrollIntoBottom:function(){try{setTimeout((function(){var e=document.getElementById("chatBody");if(e){var t=e.clientHeight,s=e.scrollHeight;e.scrollTop=s-t}}),50)}catch(e){console.log(e)}}}},f=h,_=(s("fc7d"),Object(m["a"])(f,a,i,!1,null,null,null));t["default"]=_.exports},e6a4:function(e,t,s){},e775:function(e,t,s){"use strict";var a=s("c2a3"),i=s.n(a);i.a},fc7d:function(e,t,s){"use strict";var a=s("e6a4"),i=s.n(a);i.a}}]);
//# sourceMappingURL=chunk-08473d3a.eae62d86.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es6.date.now.js","webpack:///./src/views/record/index.vue?e317","webpack:///./src/views/record/chats.vue?5755","webpack:///src/views/record/chats.vue","webpack:///./src/views/record/chats.vue?b9d8","webpack:///./src/views/record/chats.vue","webpack:///src/views/record/index.vue","webpack:///./src/views/record/index.vue?622e","webpack:///./src/views/record/index.vue","webpack:///./src/views/record/chats.vue?52e1","webpack:///./src/views/record/index.vue?6aa3"],"names":["$export","S","now","Date","getTime","render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","slot","_v","staticStyle","ref","adminInfo","root","on","refreshRecord","model","value","callback","$$v","selectCustomerId","expression","_l","item","key","id","nickname","_e","pickerOptions","selectDate","isDeWeighting","directives","name","rawName","tableData","list","indexMethod","scopedSlots","_u","fn","scope","_s","serviceNickname","row","service_account","$getPlatformItem","platform","title","$formatUnixDate","create_at","$event","openModal","total","page_on","handleSizeChange","handleCurrentChange","dialogFormVisible","selectUser","isMessageEnd","messageRecord","user_account","onLoadMor","getMessageRecordLoading","staticRenderFns","loading","messages","length","index","class","from_account","userId","biz_type","seviceId","seviceNickname","userNickname","$robotNickname","$formatFromNowDate","timestamp","domProps","payload","replace","percent","to_account","JSON","parse","data","computed","seviceCurrentUser","$store","getters","props","Boolean","Array","String","Function","watch","component","moment","components","ChatsComponent","page_size","cid","is_de_weighting","date","customerData","disabledDate","time","shortcuts","text","onClick","picker","$emit","setTime","getMessageRecordPageSize","platformConfig","created","getAdmins","mounted","setTimeout","methods","val","getRecord","i","format","getMessageRecord","parseInt","response","concat","console","log","error","chatBody","document","getElementById","scrollTop","scrollIntoBottom","height","clientHeight","scrollHeight","e"],"mappings":"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","file":"js/chunk-08473d3a.eae62d86.js","sourcesContent":["// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"record-page\"},[_c('div',{staticClass:\"record-mini-im-head\"},[_c('span',[_c('i',{staticClass:\"el-icon-time\"}),_c('span',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"服务记录\")])])]),_c('el-divider'),_c('div',{staticClass:\"search\"},[_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{staticStyle:{\"width\":\"120px\"}},[_c('el-form',{ref:\"form\",attrs:{\"label-width\":\"120px\"}},[_c('el-form-item',{attrs:{\"label\":_vm.adminInfo.root == 1 ? '按客服:' : '按日期:'}})],1)],1),(_vm.adminInfo.root == 1)?_c('el-col',{attrs:{\"span\":3}},[_c('el-select',{attrs:{\"placeholder\":\"请选择客服\"},on:{\"change\":_vm.refreshRecord},model:{value:(_vm.selectCustomerId),callback:function ($$v) {_vm.selectCustomerId=$$v},expression:\"selectCustomerId\"}},_vm._l((_vm.customerData),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.nickname,\"value\":item.id}})}),1)],1):_vm._e(),_c('el-col',{attrs:{\"span\":6.5}},[_c('el-date-picker',{attrs:{\"align\":\"right\",\"type\":\"date\",\"placeholder\":\"选择日期\",\"picker-options\":_vm.pickerOptions},on:{\"change\":_vm.refreshRecord},model:{value:(_vm.selectDate),callback:function ($$v) {_vm.selectDate=$$v},expression:\"selectDate\"}})],1),_c('el-col',{staticStyle:{\"width\":\"120px\"}},[_c('el-checkbox',{attrs:{\"label\":\"去重目标客户\",\"border\":\"\"},on:{\"change\":_vm.refreshRecord},model:{value:(_vm.isDeWeighting),callback:function ($$v) {_vm.isDeWeighting=$$v},expression:\"isDeWeighting\"}})],1)],1)],1),_c('el-table',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.tableData.list}},[_c('el-table-column',{attrs:{\"type\":\"index\",\"index\":_vm.indexMethod,\"width\":\"60\"}}),_c('el-table-column',{attrs:{\"prop\":\"service_account\",\"label\":\"接待客服\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('span',[_vm._v(_vm._s(_vm.serviceNickname(scope.row.service_account)))])]}}])}),_c('el-table-column',{attrs:{\"prop\":\"nickname\",\"label\":\"目标客户\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-tag',{attrs:{\"type\":\"success\"}},[_vm._v(_vm._s(scope.row.nickname))])]}}])}),_c('el-table-column',{attrs:{\"prop\":\"transfer_account\",\"label\":\"满意度\"}},[[_c('span',[_vm._v(\"-----\")])]],2),_c('el-table-column',{attrs:{\"prop\":\"platform\",\"label\":\"客户端平台\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-tag',[_vm._v(_vm._s(_vm.$getPlatformItem(scope.row.platform).title))])]}}])}),_c('el-table-column',{attrs:{\"prop\":\"create_at\",\"label\":\"服务时间\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(\"\\n \"+_vm._s(_vm.$formatUnixDate(scope.row.create_at, \"YYYY/MM/DD HH:mm:ss\"))+\"\\n \")]}}])}),_c('el-table-column',{attrs:{\"prop\":\"operating\",\"align\":\"center\",\"label\":\"操作\",\"width\":\"150\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":function($event){return _vm.openModal(scope)}}},[_vm._v(\"聊天记录\")])]}}])})],1),_c('el-row',{staticStyle:{\"margin-top\":\"20px\"},attrs:{\"type\":\"flex\",\"justify\":\"space-between\"}},[_c('span',{staticStyle:{\"color\":\"#666\",\"font-size\":\"14px\"}},[_vm._v(\"共找到\"+_vm._s(_vm.tableData.total)+\"条数据\")]),_c('el-pagination',{attrs:{\"background\":\"\",\"layout\":\"sizes, prev, pager, next\",\"current-page\":_vm.tableData.page_on,\"page-sizes\":[5, 10, 15, 20],\"total\":_vm.tableData.total},on:{\"size-change\":_vm.handleSizeChange,\"current-change\":_vm.handleCurrentChange}})],1),_c('el-dialog',{attrs:{\"visible\":_vm.dialogFormVisible},on:{\"update:visible\":function($event){_vm.dialogFormVisible=$event}}},[_c('div',{staticClass:\"dialog-title\",attrs:{\"slot\":\"title\"},slot:\"title\"},[_c('div',{staticStyle:{\"color\":\"#666\"}},[_c('span',{staticStyle:{\"color\":\"#e6a23c\"}},[_vm._v(_vm._s(_vm.serviceNickname(_vm.selectUser.service_account)))]),_vm._v(\"\\n 与\\n \"),_c('span',{staticStyle:{\"color\":\"#67c23a\"}},[_vm._v(_vm._s(_vm.selectUser.nickname))]),_vm._v(\"\\n 的聊天记录\\n \")])]),_c('div',{ref:\"chatBody\",staticClass:\"record-modal-chat-box\",attrs:{\"id\":\"chatBody\"}},[_c('ChatsComponent',{attrs:{\"isMessageEnd\":_vm.isMessageEnd,\"seviceId\":_vm.selectCustomerId+'',\"seviceNickname\":_vm.serviceNickname(_vm.selectUser.service_account),\"messages\":_vm.messageRecord.list,\"userId\":_vm.selectUser.user_account,\"userNickname\":_vm.selectUser.nickname,\"onLoadMor\":_vm.onLoadMor,\"loading\":_vm.getMessageRecordLoading}})],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mini-im-chat-list\"},[_c('div',{staticClass:\"mini-im-chat-message-box\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"loading\"},[_c('i',{staticClass:\"el-icon-loading\"}),_c('span',[_vm._v(\"消息加载中...\")])]),_c('el-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isMessageEnd),expression:\"isMessageEnd\"}],attrs:{\"type\":\"text\",\"disabled\":\"\",\"icon\":\"el-icon-refresh-right\"}},[_vm._v(\"无更多聊天记录...\")]),(!_vm.isMessageEnd && !_vm.loading)?_c('el-button',{attrs:{\"type\":\"text\",\"icon\":\"el-icon-refresh\"},on:{\"click\":_vm.onLoadMor}},[_vm._v(\"点击加载更多聊天记录\")]):_vm._e()],1),_c('div',{staticClass:\"mini-im-chat-message-box\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.messages.length <= 0 && !_vm.loading),expression:\"messages.length <= 0 && !loading\"}],staticClass:\"loading\"},[_c('i',{staticClass:\"el-icon-time\"}),_c('span',[_vm._v(\"暂无聊天记录...\")])])]),_vm._l((_vm.messages),function(item,index){return _c('div',{key:index,staticClass:\"mini-im-chat-message-box\",class:{'self': item.from_account != _vm.userId}},[(item.biz_type == 'text' || item.biz_type == 'photo' || item.biz_type == 'knowledge' || item.biz_type == 'knowledge_list')?[_c('div',{staticClass:\"user-date\"},[(item.from_account == _vm.seviceId)?_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.seviceNickname)+\"\\n \")]):(item.from_account == _vm.userId)?_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.userNickname)+\"\\n \")]):_c('span',[_c('span',{staticStyle:{\"font-size\":\"12px\",\"color\":\"#666\"}},[_vm._v(\"(机器人)\")]),_vm._v(_vm._s(_vm.$robotNickname(item.from_account))+\"\\n \")]),_c('em',[_vm._v(_vm._s(_vm.$formatFromNowDate(item.timestamp)))])])]:_vm._e(),(item.biz_type == 'text')?[_c('div',{staticClass:\"text\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(item.payload.replace(/\\n/ig, '<br />'))}})])]:_vm._e(),(item.biz_type == 'photo')?[_c('div',{staticClass:\"photo\"},[(item.percent && item.percent != 100)?_c('div',{staticClass:\"loading\"},[_c('i',{staticClass:\"el-icon-loading\"}),_c('span',[_vm._v(_vm._s(item.percent)+\"%\")])]):_vm._e(),_c('div',{staticClass:\"img-content\"},[_c('img',{attrs:{\"src\":item.payload,\"preview\":\"1\"}})])])]:_vm._e(),(item.biz_type == 'transfer')?[_c('div',{staticClass:\"system\"},[_c('span',[_vm._v(_vm._s(item.payload))]),_c('em',[_vm._v(_vm._s(_vm.$formatFromNowDate(item.timestamp)))])])]:_vm._e(),(item.biz_type == 'end')?[_c('div',{staticClass:\"system\"},[(item.to_account != _vm.adminInfo.id)?_c('span',[_vm._v(\"你结束了会话\")]):_c('span',[_vm._v(\"对方结束了会话\")]),_c('em',[_vm._v(_vm._s(_vm.$formatFromNowDate(item.timestamp)))])])]:_vm._e(),(item.biz_type == 'timeout')?[_c('div',{staticClass:\"system\"},[_c('span',[_vm._v(\"用户长时间无应答,会话结束\")]),_c('em',[_vm._v(_vm._s(_vm.$formatFromNowDate(item.timestamp)))])])]:_vm._e(),(item.biz_type == 'cancel')?[_c('div',{staticClass:\"system\"},[(item.from_account == _vm.adminInfo.id)?_c('span',[_vm._v(\"您撤回了一条消息\")]):_c('span',[_vm._v(\"对方撤回了一条消息\")]),_c('em',[_vm._v(_vm._s(_vm.$formatFromNowDate(item.timestamp)))])])]:_vm._e(),(item.biz_type == 'knowledge')?[_c('div',{staticClass:\"knowledge\"},[_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"以下是否是您关心的相关问题呢?\")]),_vm._l((JSON.parse(item.payload)),function(item,index){return _c('div',{key:index,staticClass:\"item\"},[_vm._v(\"\\n \"+_vm._s(index+1)+\".\"+_vm._s(item.title)+\"\\n \")])})],2)])]:_vm._e()],2)})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"mini-im-chat-list\">\n\n <div class=\"mini-im-chat-message-box\">\n <div class=\"loading\" v-show=\"loading\">\n <i class=\"el-icon-loading\"></i><span>消息加载中...</span>\n </div>\n <el-button v-show=\"isMessageEnd\" type=\"text\" disabled icon=\"el-icon-refresh-right\">无更多聊天记录...</el-button>\n <el-button v-if=\"!isMessageEnd && !loading\" type=\"text\" @click=\"onLoadMor\" icon=\"el-icon-refresh\">点击加载更多聊天记录</el-button>\n </div>\n\n <div class=\"mini-im-chat-message-box\">\n <div class=\"loading\" v-show=\"messages.length <= 0 && !loading\">\n <i class=\"el-icon-time\"></i><span>暂无聊天记录...</span>\n </div>\n </div>\n\n <div class=\"mini-im-chat-message-box\" :class=\"{'self': item.from_account != userId}\" v-for=\"(item, index) in messages\" :key=\"index\">\n\n <!-- 用户信息 -->\n <template v-if=\"item.biz_type == 'text' || item.biz_type == 'photo' || item.biz_type == 'knowledge' || item.biz_type == 'knowledge_list'\">\n <div class=\"user-date\">\n <span v-if=\"item.from_account == seviceId\">\n {{seviceNickname}}\n </span>\n <span v-else-if=\"item.from_account == userId\">\n {{userNickname}}\n </span>\n <span v-else>\n <span style=\"font-size:12px;color: #666;\">(机器人)</span>{{$robotNickname(item.from_account)}}\n </span>\n <em>{{$formatFromNowDate(item.timestamp)}}</em>\n </div>\n </template>\n\n <!-- 文本消息 -->\n <template v-if=\"item.biz_type == 'text'\">\n <div class=\"text\">\n <span v-html=\"item.payload.replace(/\\n/ig, '<br />')\"></span>\n </div>\n </template>\n\n <!-- 图片 -->\n <template v-if=\"item.biz_type == 'photo'\">\n <div class=\"photo\">\n <div class=\"loading\" v-if=\"item.percent && item.percent != 100\">\n <i class=\"el-icon-loading\"></i>\n <span>{{item.percent}}%</span>\n </div>\n <div class=\"img-content\">\n <img :src=\"item.payload\" preview=\"1\" />\n </div>\n </div>\n </template>\n\n <!-- 转接 -->\n <template v-if=\"item.biz_type == 'transfer'\">\n <div class=\"system\">\n <span>{{item.payload}}</span>\n <em>{{$formatFromNowDate(item.timestamp)}}</em>\n </div>\n </template>\n\n <!-- 结束聊天 -->\n <template v-if=\"item.biz_type == 'end'\">\n <div class=\"system\">\n <span v-if=\"item.to_account != adminInfo.id\">你结束了会话</span>\n <span v-else>对方结束了会话</span>\n <em>{{$formatFromNowDate(item.timestamp)}}</em>\n </div>\n </template>\n\n <!-- 聊天超时 -->\n <template v-if=\"item.biz_type == 'timeout'\">\n <div class=\"system\">\n <span>用户长时间无应答,会话结束</span>\n <em>{{$formatFromNowDate(item.timestamp)}}</em>\n </div>\n </template>\n\n <!-- 撤回消息 -->\n <template v-if=\"item.biz_type == 'cancel'\">\n <div class=\"system\">\n <span v-if=\"item.from_account == adminInfo.id\">您撤回了一条消息</span>\n <span v-else>对方撤回了一条消息</span>\n <em>{{$formatFromNowDate(item.timestamp)}}</em>\n </div>\n </template>\n\n <!-- 知识库列表 -->\n <template v-if=\"item.biz_type == 'knowledge'\">\n <div class=\"knowledge\">\n <div class=\"content\">\n <div class=\"title\">以下是否是您关心的相关问题呢?</div>\n <div class=\"item\" :key=\"index\" v-for=\"(item, index) in JSON.parse(item.payload)\">\n {{index+1}}.{{item.title}}\n </div>\n </div>\n </div>\n </template>\n\n </div>\n\n </div>\n</template>\n<script>\nexport default {\n name: \"mini-im-contact\",\n data() {\n return {};\n },\n computed: {\n seviceCurrentUser(){\n return this.$store.getters.seviceCurrentUser || {}\n },\n adminInfo(){\n return this.$store.getters.adminInfo || {}\n }\n },\n props: {\n loading: Boolean,\n isMessageEnd: Boolean,\n messages: Array,\n userId: String,\n userNickname: String,\n seviceId: String,\n seviceNickname: String,\n onLoadMor: Function\n },\n watch:{\n messages(){\n setTimeout(()=>{\n this.$previewRefresh()\n }, 1000)\n }\n }\n};\n</script>\n<style scoped lang=\"stylus\">\n.mini-im-chat-list {\n display: flex;\n flex-direction: column;\n\n .mini-im-chat-message-box {\n width: 100%;\n display: flex;\n flex-direction: column;\n margin-bottom: 15px;\n\n .user-date {\n display: flex;\n align-items: center;\n color: #999;\n font-size: 14px;\n\n span {\n color: #666;\n font-weight: 500;\n font-size: 14px;\n padding: 0 5px;\n }\n\n em {\n font-style: normal;\n font-size 12px\n }\n }\n\n .loading{\n color #666\n display: flex;\n margin-top: 5px;\n align-items center\n align-content center\n justify-content center\n span{\n margin-left 5px\n font-size 13px\n }\n }\n\n .text {\n display: flex;\n margin-top: 5px;\n\n span {\n max-width: 40%;\n display: inline;\n padding: 5px 10px;\n border-radius: 5px;\n background-color: #eef4f9;\n font-size: 14px;\n color: #666;\n }\n }\n\n .photo {\n display: flex;\n margin-top: 5px;\n\n .loading{\n align-self flex-end\n padding 0 5px\n span{\n background none !important\n color: #999 !important\n }\n }\n\n .img-content{\n border-radius: 5px;\n width: 200px;\n overflow hidden\n }\n\n img {\n cursor: pointer;\n width: 100%;\n height 100%\n display: inline;\n }\n }\n\n .knowledge {\n display: flex;\n margin-top: 5px;\n justify-content: flex-end;\n\n .content {\n display: flex;\n flex-direction: column;\n padding: 5px;\n border-radius: 5px;\n color: #666;\n text-align: left;\n background-color: #eef4f9;\n\n .title {\n font-size: 13px;\n font-weight: 500;\n }\n\n .item {\n font-size: 13px;\n line-height: 22px;\n }\n }\n }\n\n .system {\n display: flex;\n margin-top: 5px;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n em{\n margin-top: 5px;\n font-size: 12px;\n color: #999;\n }\n span {\n font-size: 12px;\n max-width: 50%;\n min-width: 100px;\n display: inline;\n padding: 3px 20px;\n border-radius: 5px;\n text-align: center;\n background-color: #f2f2f2;\n color: #999;\n }\n }\n\n &.self {\n text-align: right;\n\n .user-date {\n display: flex;\n justify-content: flex-end;\n\n span {\n order: -2;\n }\n\n em {\n order: -3;\n }\n }\n\n .text, .photo {\n justify-content: flex-end;\n align-items flex-end\n .cancel-btn{\n color #26a2ff\n font-size 12px\n margin-right 5px\n cursor pointer\n }\n span {\n background-color: rgba(33, 150, 243, 0.72);\n color: #fff;\n text-align left\n }\n }\n\n .knowledge>.content {\n background-color: rgba(33, 150, 243, 0.72);\n color: #fff;\n }\n }\n }\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chats.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chats.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./chats.vue?vue&type=template&id=3d81ef40&scoped=true&\"\nimport script from \"./chats.vue?vue&type=script&lang=js&\"\nexport * from \"./chats.vue?vue&type=script&lang=js&\"\nimport style0 from \"./chats.vue?vue&type=style&index=0&id=3d81ef40&scoped=true&lang=stylus&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3d81ef40\",\n null\n \n)\n\nexport default component.exports","<template>\n <div class=\"record-page\">\n <div class=\"record-mini-im-head\">\n <span>\n <i class=\"el-icon-time\"></i>\n <span slot=\"title\">服务记录</span>\n </span>\n </div>\n <el-divider />\n <div class=\"search\">\n <el-row :gutter=\"20\">\n <el-col style=\"width: 120px\">\n <el-form ref=\"form\" label-width=\"120px\">\n <el-form-item :label=\"adminInfo.root == 1 ? '按客服:' : '按日期:'\"></el-form-item>\n </el-form>\n </el-col>\n <el-col v-if=\"adminInfo.root == 1\" :span=\"3\">\n <el-select v-model=\"selectCustomerId\" @change=\"refreshRecord\" placeholder=\"请选择客服\">\n <el-option\n v-for=\"item in customerData\"\n :key=\"item.id\"\n :label=\"item.nickname\"\n :value=\"item.id\"\n ></el-option>\n </el-select>\n </el-col>\n <el-col :span=\"6.5\">\n <el-date-picker\n v-model=\"selectDate\"\n align=\"right\"\n type=\"date\"\n @change=\"refreshRecord\"\n placeholder=\"选择日期\"\n :picker-options=\"pickerOptions\">\n </el-date-picker>\n </el-col>\n <el-col style=\"width: 120px;\">\n <el-checkbox v-model=\"isDeWeighting\" label=\"去重目标客户\" @change=\"refreshRecord\" border></el-checkbox>\n </el-col>\n </el-row>\n </div>\n <el-table :data=\"tableData.list\" v-loading=\"loading\" style=\"width: 100%\">\n <el-table-column\n type=\"index\"\n :index=\"indexMethod\"\n width=\"60\">\n </el-table-column>\n <el-table-column prop=\"service_account\" label=\"接待客服\">\n <template slot-scope=\"scope\">\n <span>{{serviceNickname(scope.row.service_account)}}</span>\n </template>\n </el-table-column>\n <el-table-column prop=\"nickname\" label=\"目标客户\">\n <template slot-scope=\"scope\">\n <el-tag type=\"success\">{{scope.row.nickname}}</el-tag>\n </template>\n </el-table-column>\n <el-table-column prop=\"transfer_account\" label=\"满意度\">\n <template>\n <span>-----</span>\n </template>\n </el-table-column>\n <el-table-column prop=\"platform\" label=\"客户端平台\">\n <template slot-scope=\"scope\">\n <el-tag>{{$getPlatformItem(scope.row.platform).title}}</el-tag>\n </template>\n </el-table-column>\n <el-table-column prop=\"create_at\" label=\"服务时间\">\n <template slot-scope=\"scope\">\n {{$formatUnixDate(scope.row.create_at, \"YYYY/MM/DD HH:mm:ss\")}}\n </template>\n </el-table-column>\n <el-table-column prop=\"operating\" align=\"center\" label=\"操作\" width=\"150\">\n <template slot-scope=\"scope\">\n <el-button size=\"mini\" @click=\"openModal(scope)\">聊天记录</el-button>\n </template>\n </el-table-column>\n </el-table>\n <el-row type=\"flex\" style=\"margin-top: 20px;\" justify=\"space-between\">\n <span style=\"color:#666;font-size: 14px;\">共找到{{tableData.total}}条数据</span>\n <el-pagination\n background\n @size-change=\"handleSizeChange\"\n @current-change=\"handleCurrentChange\"\n layout=\"sizes, prev, pager, next\"\n :current-page=\"tableData.page_on\"\n :page-sizes=\"[5, 10, 15, 20]\"\n :total=\"tableData.total\">\n </el-pagination>\n </el-row>\n\n\n <!-- 聊天数据模态框 -->\n <el-dialog :visible.sync=\"dialogFormVisible\">\n <div slot=\"title\" class=\"dialog-title\">\n <div style=\"color: #666\">\n <span style=\"color: #e6a23c\">{{serviceNickname(selectUser.service_account)}}</span>\n 与\n <span style=\"color: #67c23a\">{{selectUser.nickname}}</span>\n 的聊天记录\n </div>\n </div>\n <div class=\"record-modal-chat-box\" ref=\"chatBody\" id=\"chatBody\">\n <ChatsComponent\n :isMessageEnd=\"isMessageEnd\"\n :seviceId=\"selectCustomerId+''\"\n :seviceNickname=\"serviceNickname(selectUser.service_account)\"\n :messages=\"messageRecord.list\"\n :userId=\"selectUser.user_account\"\n :userNickname=\"selectUser.nickname\"\n :onLoadMor=\"onLoadMor\"\n :loading=\"getMessageRecordLoading\"/>\n </div>\n </el-dialog>\n\n\n </div>\n</template>\n\n<script>\nimport axios from 'axios'\nvar moment = require('moment');\nimport ChatsComponent from \"./chats\"\nexport default {\n name: \"robot\",\n components:{\n ChatsComponent\n },\n data() {\n return {\n loading: true,\n isDeWeighting: false,\n selectDate: Date.now(),\n tableData: {\n list: [],\n page_on: 1,\n page_size: 10,\n cid: 0,\n total: 0,\n is_de_weighting: false,\n date: \"\",\n },\n customerData: [],\n selectCustomerId: null,\n selectUser: {},\n pickerOptions: {\n disabledDate(time) {\n return time.getTime() > Date.now();\n },\n shortcuts: [{\n text: '今天',\n onClick(picker) {\n picker.$emit('pick', new Date());\n }\n }, {\n text: '昨天',\n onClick(picker) {\n const date = new Date();\n date.setTime(date.getTime() - 3600 * 1000 * 24);\n picker.$emit('pick', date);\n }\n }, {\n text: '一周前',\n onClick(picker) {\n const date = new Date();\n date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);\n picker.$emit('pick', date);\n }\n }]\n },\n isMessageEnd: false,\n\n // 模态框数据\n getMessageRecordLoading: false,\n getMessageRecordPageSize: 20,\n dialogFormVisible: false,\n messageRecord: {\n list: []\n }\n\n\n };\n },\n computed: {\n platformConfig(){\n return this.$store.getters.platformConfig\n },\n adminInfo(){\n return this.$store.getters.adminInfo\n }\n },\n created() {\n this.getAdmins()\n },\n mounted(){\n setTimeout(() =>{\n this.selectCustomerId = this.adminInfo.id\n this.getRecord(1)\n }, 1000)\n },\n methods: {\n // 行号\n indexMethod(index) {\n return (this.tableData.page_on - 1) * this.tableData.page_size + index +1;\n },\n // 改变每页条数\n handleSizeChange(val) {\n this.tableData.page_size = val\n this.getRecord()\n },\n // 分页\n handleCurrentChange(val) {\n this.tableData.page_on = val\n this.getRecord()\n },\n // 获取客服昵称\n serviceNickname(id){\n let nickname = \"\"\n for(let i =0; i< this.customerData.length; i++){\n if(this.customerData[i].id == id){\n nickname = this.customerData[i].nickname\n break\n }\n }\n return nickname\n },\n // 获取数据\n getAdmins(){\n axios.post('/admin/list', {page_on: 1, page_size: 100, \"online\": 3})\n .then(response => {\n this.customerData = response.data.data.list\n })\n .catch(error => {\n this.$message.error(error.response.data.message)\n });\n },\n // 获取数据\n getRecord(index){\n this.loading = true\n if(index) this.tableData.page_on = index\n const {page_on, page_size} = this.tableData\n axios.post('/services_statistical/list', {\n page_on,\n page_size,\n cid: this.selectCustomerId,\n date: moment(this.selectDate).format(\"YYYY-MM-DD\"),\n is_de_weighting: this.isDeWeighting\n })\n .then(response => {\n this.loading = false\n this.tableData = response.data\n })\n .catch(error => {\n this.loading = false\n this.$message.error(error.response.data.message)\n });\n },\n // 刷新记录\n refreshRecord(){\n this.getRecord()\n },\n // 打开模态框\n openModal(scope){\n this.selectUser = scope.row\n this.isMessageEnd = false\n this.dialogFormVisible = true\n this.messageRecord = {\n list: []\n }\n this.getMessageRecord()\n },\n // 获取聊天记录\n getMessageRecord(timestamp){\n this.getMessageRecordLoading = true\n if(timestamp == undefined){\n timestamp = 0\n }\n axios.post('/message/list', {\n \"timestamp\": timestamp,\n \"page_size\": this.getMessageRecordPageSize,\n \"service\": parseInt(this.selectCustomerId),\n \"account\": parseInt(this.selectUser.user_account)\n })\n .then(response => {\n this.getMessageRecordLoading = false\n if(response.data.data.list.length < this.getMessageRecordPageSize){\n this.isMessageEnd = true\n }\n if(this.messageRecord.list.length == 0 || timestamp == 0){\n this.messageRecord = response.data.data\n this.scrollIntoBottom()\n }else{\n response.data.data.list = response.data.data.list.concat(this.messageRecord.list)\n this.messageRecord = response.data.data\n }\n setTimeout(()=>this.$previewRefresh(), 500)\n })\n .catch(error => {\n console.log(error)\n this.getMessageRecordLoading = false\n });\n },\n // 加载更多数据\n onLoadMor(){\n if(this.getMessageRecordLoading) return\n if(this.messageRecord.list.length >= this.messageRecord.total || this.messageRecord.total <= this.getMessageRecordPageSize){\n this.isMessageEnd = true\n return\n }\n this.getMessageRecord(this.messageRecord.list[0].timestamp)\n setTimeout(()=>{\n var chatBody = document.getElementById(\"chatBody\")\n chatBody.scrollTop = 500\n }, 50)\n },\n // 滚动条置底\n scrollIntoBottom(){\n try{\n setTimeout(()=>{\n var chatBody = document.getElementById(\"chatBody\")\n if(!chatBody) return\n var height = chatBody.clientHeight\n var scrollHeight = chatBody.scrollHeight\n chatBody.scrollTop = scrollHeight-height\n }, 50)\n }catch(e){\n console.log(e)\n }\n },\n }\n};\n</script>\n<style lang=\"stylus\">\n .record-page .record-mini-im-head {\n height: 30px;\n display: flex;\n align-items: center;\n font-size: 20px;\n justify-content: space-between;\n color: #666;\n\n i {\n margin-right: 5px;\n }\n }\n .record-page .record-modal-chat-box{\n height 600px;\n padding 0 20px\n overflow hidden\n overflow-y auto\n }\n .record-page .el-dialog__body{\n padding: 0px;\n border-top: 1px solid #f7f7f7\n }\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=769ddeb8&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=stylus&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chats.vue?vue&type=style&index=0&id=3d81ef40&scoped=true&lang=stylus&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chats.vue?vue&type=style&index=0&id=3d81ef40&scoped=true&lang=stylus&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=stylus&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=stylus&\""],"sourceRoot":""}
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2e29b63f"],{"0b10":function(e,t,i){},"11e9":function(e,t,i){var s=i("52a7"),n=i("4630"),a=i("6821"),o=i("6a99"),r=i("69a8"),c=i("c69a"),l=Object.getOwnPropertyDescriptor;t.f=i("9e1e")?l:function(e,t){if(e=a(e),t=o(t,!0),c)try{return l(e,t)}catch(i){}if(r(e,t))return n(!s.f.call(e,t),e[t])}},"146b":function(e,t,i){"use strict";var s=i("a818"),n=i.n(s);n.a},1826:function(e,t,i){"use strict";var s=i("fa4e"),n=i.n(s);n.a},"1c01":function(e,t,i){var s=i("5ca1");s(s.S+s.F*!i("9e1e"),"Object",{defineProperty:i("86cc").f})},"24fd":function(e,t,i){"use strict";var s=i("4e10"),n=i.n(s);n.a},"297c":function(e,t,i){"use strict";var s=i("0b10"),n=i.n(s);n.a},"29e5":function(e,t,i){"use strict";i.r(t);var s=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"mini-im-workbench"},[i("div",{staticClass:"mini-im-session-list"},[i("div",{staticClass:"title"},[i("el-row",{attrs:{type:"flex",justify:"space-between",gutter:20}},[i("el-col",{attrs:{span:16}},[i("span",[i("i",{staticClass:"el-icon-s-custom"}),e._v("\n 会话列表 ( "+e._s(e.contacts.length)+"人 )\n ")]),i("i",{staticClass:"el-icon-delete",staticStyle:{cursor:"pointer"},attrs:{title:"清空列表"},on:{click:e.clearContact}})]),i("el-col",{attrs:{span:9}},[i("el-popover",{attrs:{placement:"bottom",width:"100"}},[i("div",{staticClass:"mini-im-online-setting"},[1!=e.adminInfo.online?i("div",{staticClass:"item",on:{click:function(){return e.online(1)}}},[i("i",{staticClass:"el-icon-circle-check",staticStyle:{color:"rgb(135, 208, 104)"}}),e._v("\n 我要上线\n ")]):e._e(),0!=e.adminInfo.online?i("div",{staticClass:"item",on:{click:function(){return e.online(0)}}},[i("i",{staticClass:"el-icon-switch-button",staticStyle:{color:"#ccc"}}),e._v("\n 我要下线\n ")]):e._e(),2!=e.adminInfo.online?i("div",{staticClass:"item",on:{click:function(){return e.online(2)}}},[i("i",{staticClass:"el-icon-remove-outline",staticStyle:{color:"#e6a23c"}}),e._v("\n 繁忙状态\n ")]):e._e()]),0==e.adminInfo.online?i("el-button",{attrs:{slot:"reference",size:"mini"},slot:"reference"},[i("i",{staticClass:"el-icon-switch-button"}),i("em",[e._v("离 线 ")]),i("i",{staticClass:"el-icon-arrow-right el-icon--right"})]):1==e.adminInfo.online?i("el-button",{attrs:{slot:"reference",size:"mini"},slot:"reference"},[i("span",{staticStyle:{color:"rgb(135, 208, 104)"}},[i("i",{staticClass:"el-icon-circle-check"}),i("em",[e._v("在 线")]),i("i",{staticClass:"el-icon-arrow-right el-icon--right"})])]):i("el-button",{attrs:{slot:"reference",size:"mini"},slot:"reference"},[i("span",{staticStyle:{color:"#e6a23c"}},[i("i",{staticClass:"el-icon-circle-check"}),i("em",[e._v("繁 忙")]),i("i",{staticClass:"el-icon-arrow-right el-icon--right"})])])],1)],1)],1)],1),i("div",{staticClass:"mini-im-session-content"},[i("div",{staticClass:"mini-im-flex"},[e.contacts.length<=0?i("div",{staticClass:"mini-im-no-data"},[e._v("暂无会话数据")]):e._e(),e._l(e.contacts,(function(t,s){return i("ContactComponent",{key:s,class:{"mini-im-chat-item-active":e.seviceCurrentUser.from_account==t.from_account},attrs:{deleteContact:e.deleteContact,clickItem:e.selectUser,item:t}})}))],2)])]),e.$store.getters.seviceCurrentUser.id?i("div",{staticClass:"mini-im-chat-view"},[i("div",{staticClass:"mini-im-chat-view-content-header"},[i("div",{staticClass:"mini-im-header-user-box"},[i("el-avatar",{staticClass:"mini-im-avatar",attrs:{size:35}},[""!=e.seviceCurrentUser.avatar?i("img",{attrs:{src:e.seviceCurrentUser.avatar}}):[e._v("访")]],2),i("div",{staticClass:"mini-im-header-user-info"},[i("div",[e._v("\n "+e._s(e.seviceCurrentUser.nickname)+"\n "),1==e.seviceCurrentUser.online?i("span",{staticStyle:{color:"rgb(135, 208, 104)"}},[e._v("● 在线")]):i("span",[e._v("● 离线")]),e.isInputPongIng?[i("span",{staticClass:"input-pong"},[e._v(e._s(e.inputPongIngString)+" "),i("i",{staticClass:"el-icon-edit"})])]:e._e()],2),i("span",[e._v("用户来至:"+e._s(e.$getPlatformItem(e.seviceCurrentUser.platform).title)+"客户端,所在地:"+e._s(e.seviceCurrentUser.address||"未知"))])])],1),i("el-row",{staticClass:"mini-im-buttons"},[i("el-popover",{attrs:{placement:"bottom",width:"200",trigger:"click"}},[i("div",{staticClass:"mini-im-customer-list"},[i("div",{staticClass:"mini-im-customer-title"},[e._v("请选择转接的客服 ("+e._s(e.filterAdmins.length)+"人在线)")]),e._l(e.filterAdmins,(function(t){return i("div",{key:t.id,staticClass:"mini-im-customer-item",on:{click:function(){return e.transferCustomer(t)}}},[i("el-avatar",{staticClass:"mini-im-avatar",attrs:{size:30}},[i("img",{attrs:{src:t.avatar}})]),i("span",[e._v(e._s(t.nickname||t.username))])],1)})),0==e.filterAdmins.length?i("div",{staticClass:"mini-im-customer-item",staticStyle:{background:"none",border:"0"}},[i("span",[e._v("当前没有其他客服在线")])]):e._e()],2),i("el-button",{directives:[{name:"show",rawName:"v-show",value:0==e.seviceCurrentUser.is_session_end&&0!=e.adminInfo.online,expression:"seviceCurrentUser.is_session_end == 0 && adminInfo.online != 0"}],attrs:{slot:"reference",icon:"el-icon-refresh",size:"small"},on:{click:e.getAdmins},slot:"reference"},[e._v("\n 转接客服\n ")])],1),0==e.seviceCurrentUser.is_session_end&&0!=e.adminInfo.online?i("el-button",{attrs:{icon:"el-icon-close",size:"small"},on:{click:e.closeSession}},[e._v("关闭会话")]):e._e()],1)],1),i("div",{ref:"miniImChatViewBontentBody",staticClass:"mini-im-chat-view-content-body"},[i("div",{staticClass:"mini-im-chat-view-content"},[i("div",{directives:[{name:"show",rawName:"v-show",value:""!=e.advanceText.trim(),expression:"advanceText.trim() != ''"}],staticClass:"advance"},[i("div",[e._v("正在输入:")]),i("span",[e._v("\n "+e._s(e.advanceText)+"\n "),e.isInputPongIng?[i("span",{staticClass:"input-pong"},[e._v(e._s(e.inputPongIngString.replace("对方正在输入",""))+" "),i("i",{staticClass:"el-icon-edit"})])]:e._e()],2)]),i("div",{ref:"chatBody",staticClass:"mini-im-chat-body",attrs:{id:"chatBody"}},[i("ChatWindowComponent",{attrs:{onLoadMor:e.onLoadMorMessage,isMessageEnd:e.isMessageEnd,onCancelMessage:e.onCancelMessage,messages:e.messageRecord.list,loading:e.getMessageRecordLoading}})],1),i("div",{staticClass:"mini-im-chat-input"},[i("div",{staticClass:"mini-im-chat-input-bar"},[i("el-row",[i("EmojiComponent",{attrs:{clickEmoji:e.clickEmoji}}),i("span",{staticClass:"mini-im-button",attrs:{title:"选择图片"}},[e._v("\n 🌁\n "),i("input",{attrs:{onClick:"this.value = null",type:"file",accept:"image/*"},on:{change:e.sendPhotoMessageEvent}})])],1),i("el-row",[i("el-popover",{attrs:{placement:"top-start",width:"350",trigger:"hover"}},[i("div",{staticClass:"mini-im-shortcut"},[i("div",{staticClass:"mini-im-shortcut-head"},[i("span",[i("i",{staticClass:"el-icon-tickets"}),e._v("快捷语回复列表")]),i("div",[i("button",{attrs:{title:"添加"},on:{click:function(t){e.createShortcutDialogFormVisible=!0}}},[i("i",{staticClass:"el-icon-plus"})]),i("button",{attrs:{title:"编辑"},on:{click:function(t){e.shortcutEditVisible=!e.shortcutEditVisible}}},[i("i",{staticClass:"el-icon-edit"})])])]),i("div",{staticClass:"mini-im-shortcut-body"},[i("el-input",{staticStyle:{"margin-bottom":"10px"},attrs:{clearable:"",type:"text",placeholder:"请输入关键词",autocomplete:"off"},model:{value:e.shortcutKey,callback:function(t){e.shortcutKey=t},expression:"shortcutKey"}}),0==e.filterShortcuts.length?i("div",{staticClass:"mini-im-shortcut-item",staticStyle:{background:"none"}},[i("span",{staticStyle:{"text-align":"center","margin-top":"20px"}},[e._v("暂无快捷语")])]):e._e(),e._l(e.filterShortcuts,(function(t){return i("div",{key:t.id,staticClass:"mini-im-shortcut-item",attrs:{title:t.content}},[i("span",{domProps:{innerHTML:e._s(t.title.replace(/\n/g,"<br>"))},on:{"!click":function(i){return function(){return e.checkShortcut(t.content)}()}}}),i("button",{directives:[{name:"show",rawName:"v-show",value:e.shortcutEditVisible,expression:"shortcutEditVisible"}],attrs:{title:"修改"},on:{"!click":function(i){return function(){return e.editShortcut(t)}()}}},[i("i",{staticClass:"el-icon-edit"})]),i("button",{directives:[{name:"show",rawName:"v-show",value:e.shortcutEditVisible,expression:"shortcutEditVisible"}],attrs:{title:"删除"},on:{"!click":function(i){return function(){return e.deleteShortcut(t)}()}}},[i("i",{staticClass:"el-icon-delete"})])])}))],2)]),i("button",{staticClass:"mini-im-button",attrs:{slot:"reference"},slot:"reference"},[i("i",{staticClass:"el-icon-tickets",staticStyle:{"font-size":"15px"}}),i("span",{staticStyle:{"font-size":"14px"}},[e._v(" 快捷语")])])])],1)],1),i("div",{staticClass:"mini-im-chat-input-edit",on:{keyup:[function(t){return t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:e.keyUpEvent(t)},function(t){return!t.type.indexOf("key")&&13!==t.keyCode&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:t.shiftKey?e.enterShift(t):null},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:e.sendMessage(t)}]}},[i("el-input",{ref:"chatValueDom",staticClass:"mini-im-chat-text-input",attrs:{type:"textarea",rows:"3",resize:"none",autosize:!1,disabled:1==e.seviceCurrentUser.is_session_end||0==e.adminInfo.online,maxlength:"200","show-word-limit":"",placeholder:1==e.seviceCurrentUser.is_session_end?"当前会话已结束":"请输入内容"},model:{value:e.chatValue,callback:function(t){e.chatValue=t},expression:"chatValue"}})],1)])]),i("div",{staticClass:"mini-im-chat-view-user"},[i("el-tabs",{attrs:{type:"border-card"}},[i("el-tab-pane",{attrs:{label:"用户信息"}},[i("UserInfoComponent")],1)],1)],1)])]):i("div",{staticClass:"mini-im-chat-view no-window"},[e._m(0),i("span",[e._v("当前无对话")]),i("div",{directives:[{name:"show",rawName:"v-show",value:e.chatWindowLoading,expression:"chatWindowLoading"}],staticClass:"mini-im-right-window-loading"},[i("i",{staticClass:"el-icon-loading"}),i("span",[e._v("数据加载中...")])])]),i("CreateShortcutComponent",{attrs:{complete:e.getShortcuts,dialogFormVisible:e.createShortcutDialogFormVisible},on:{"update:dialogFormVisible":function(t){e.createShortcutDialogFormVisible=t},"update:dialog-form-visible":function(t){e.createShortcutDialogFormVisible=t}}}),i("EditShortcutComponent",{attrs:{formData:e.editShortcutItem,complete:e.getShortcuts,dialogFormVisible:e.editShortcutDialogFormVisible},on:{"update:dialogFormVisible":function(t){e.editShortcutDialogFormVisible=t},"update:dialog-form-visible":function(t){e.editShortcutDialogFormVisible=t}}})],1)},n=[function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("i",{staticClass:"el-icon-service"})])}],a=(i("1c01"),i("58b2"),i("8e6e"),i("f3e2"),i("ac6a"),i("456d"),i("c5f6"),i("4917"),i("a481"),i("6d67"),i("57e7"),i("d25f"),i("4f37"),i("85f2")),o=i.n(a);function r(e,t,i){return t in e?o()(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var c=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-popover",{attrs:{placement:"top-start",width:"400",trigger:"hover"}},[i("div",{staticClass:"emoji-box"},e._l(e.emojis,(function(t,s){return i("span",{key:s,on:{click:function(i){return e.clickEmoji(t)}}},[e._v(e._s(t))])})),0),i("button",{staticClass:"mini-im-button",staticStyle:{"font-size":"20px"},attrs:{slot:"reference",title:"选择表情"},slot:"reference"},[e._v("😊")])])},l=[],u=i("eef3"),m={name:"mini-im-emoji",data:function(){return{emojis:u.emojiData}},props:{clickEmoji:Function}},d=m,f=(i("1826"),i("2877")),h=Object(f["a"])(d,c,l,!1,null,"3d019866",null),g=h.exports,v=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"mini-im-chat-item"},[i("span",{staticClass:"delete_contact",attrs:{title:"删除该记录"},on:{"!click":function(t){return e.deleteContact(e.item)}}},[i("i",{staticClass:"el-icon-close"})]),i("el-avatar",{staticClass:"mini-im-avatar",on:{click:function(t){return e.clickItem(e.item)}}},[""!=e.item.avatar?i("img",{attrs:{src:e.item.avatar}}):[e._v("访")]],2),i("div",{staticClass:"mini-im-message-box",on:{click:function(t){return e.clickItem(e.item)}}},[i("div",{staticClass:"mini-im-user-date"},[i("div",{staticClass:"mini-im-nickname"},[i("span",{staticClass:"mini-im-online-status",class:{success:1==e.item.online}},[e._v("●")]),e._v(" "+e._s(e.item.nickname)+"\n ")]),i("div",{staticClass:"mini-im-date"},[e._v("\n "+e._s(e.$formatFromNowDate(e.item.contact_create_at))+"\n ")])]),i("div",{staticClass:"mini-im-message-badge"},["text"==e.item.last_message_type?i("div",{staticClass:"mini-im-message"},[e._v(e._s(e.item.last_message))]):e._e(),"photo"==e.item.last_message_type?i("div",{staticClass:"mini-im-message"},[e._v("收到图片文件")]):e._e(),"video"==e.item.last_message_type?i("div",{staticClass:"mini-im-message"},[e._v("收到视频文件")]):e._e(),"end"==e.item.last_message_type?i("div",{staticClass:"mini-im-message"},[e._v("会话结束")]):e._e(),"cancel"==e.item.last_message_type?i("div",{staticClass:"mini-im-message"},[e._v("对方撤回了一条消息")]):e._e(),"timeout"==e.item.last_message_type?i("div",{staticClass:"mini-im-message"},[e._v("会话超时,结束对话")]):e._e(),"transfer"==e.item.last_message_type||"handshake"==e.item.last_message_type?i("div",{staticClass:"mini-im-message"},[e._v("客服转接...")]):e._e(),e.item.read>0?i("div",{staticClass:"mini-im-badge"},[e._v(e._s(e.item.read))]):e._e()])])],1)},p=[],_={name:"mini-im-contact",data:function(){return{}},props:{item:Object,clickItem:Function,deleteContact:Function}},b=_,C=(i("297c"),Object(f["a"])(b,v,p,!1,null,"595d9a46",null)),y=C.exports,w=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"mini-im-username-component-box"},[i("div",{staticClass:"mini-im-username-component"},[i("button",{attrs:{title:"编辑用户信息"},on:{click:function(t){e.isUserReadonly=!e.isUserReadonly}}},[i("i",{staticClass:"el-icon-edit"})])]),i("el-form",{ref:"form",class:{"form-item-readonly":e.isUserReadonly},attrs:{"label-width":"80px"}},[i("el-form-item",{staticClass:"form-item",attrs:{label:"用户昵称"}},[i("el-input",{attrs:{placeholder:"游客",readonly:e.isUserReadonly,type:"text"},model:{value:e.form.nickname,callback:function(t){e.$set(e.form,"nickname",t)},expression:"form.nickname"}})],1),i("el-form-item",{staticClass:"form-item",attrs:{label:"所在地区"}},[i("el-input",{attrs:{readonly:e.isUserReadonly,placeholder:"无",type:"text"},model:{value:e.form.address,callback:function(t){e.$set(e.form,"address",t)},expression:"form.address"}})],1),i("el-form-item",{staticClass:"form-item",attrs:{label:"联系方式"}},[i("el-input",{attrs:{readonly:e.isUserReadonly,placeholder:"无联系方式",type:"text"},model:{value:e.form.phone,callback:function(t){e.$set(e.form,"phone",t)},expression:"form.phone"}})],1),i("el-form-item",{staticClass:"form-item no-border",attrs:{label:"所在平台"}},[i("el-input",{attrs:{readonly:"",value:e.$getPlatformItem(e.user.platform).title,resize:"none",type:"text"}})],1),i("el-form-item",{staticClass:"form-item no-border",attrs:{label:"创建时间"}},[i("el-input",{attrs:{readonly:"",value:e.$formatUnixDate(e.user.create_at,"YYYY/MM/DD"),resize:"none",type:"text"}})],1),i("el-form-item",{staticClass:"form-item",attrs:{label:"备注信息"}},[i("el-input",{attrs:{rows:"4",readonly:e.isUserReadonly,placeholder:"无备注",resize:"none",type:"textarea"},model:{value:e.form.remarks,callback:function(t){e.$set(e.form,"remarks",t)},expression:"form.remarks"}})],1),e.isUserReadonly?e._e():i("el-row",{attrs:{type:"flex",justify:"center"}},[i("el-button",{on:{click:function(t){e.isUserReadonly=!0}}},[e._v("取消")]),i("el-button",{attrs:{type:"primary"},on:{click:e.save}},[e._v("保存")])],1),e.isUserReadonly?e._e():i("div",{staticStyle:{"text-align":"center","font-size":"12px",color:"#666","margin-top":"15px"}},[e._v("当前为编辑模式")])],1)],1)},S=[],k=i("bc3a"),x=i.n(k),$={name:"mini-im-user-info",data:function(){return{form:{id:"",nickname:"",address:"",phone:"",remarks:""},isUserReadonly:!0}},computed:{user:function(){return this.$store.getters.seviceCurrentUser||{}}},methods:{save:function(){var e=this;x.a.put("/user",this.form).then((function(){e.isUserReadonly=!0})).catch((function(t){e.$message.error(t.response.data.message)}))}},watch:{user:function(e){e.id!=this.form.id&&(this.isUserReadonly=!0),(this.isUserReadonly||e.id!=this.form.id)&&(this.form=this.user)}}},I=$,M=(i("2b0b"),Object(f["a"])(I,w,S,!1,null,null,null)),U=M.exports,T=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-dialog",{attrs:{width:"600px",title:"添加快捷语","show-close":!1,visible:e.dialogFormVisible,"close-on-click-modal":!1},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[i("el-form",{attrs:{model:e.form}},[i("el-form-item",{attrs:{label:"标题","label-width":e.formLabelWidth}},[i("el-input",{attrs:{maxlength:"50","show-word-limit":"",type:"text",placeholder:"请输入标题",autocomplete:"off"},model:{value:e.form.title,callback:function(t){e.$set(e.form,"title",t)},expression:"form.title"}})],1),i("el-form-item",{attrs:{label:"内容","label-width":e.formLabelWidth}},[i("el-input",{attrs:{rows:"8",resize:"none",autosize:!1,maxlength:"200","show-word-limit":"",type:"textarea",placeholder:"请输入快捷语",autocomplete:"off"},model:{value:e.form.content,callback:function(t){e.$set(e.form,"content",t)},expression:"form.content"}})],1)],1),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:e.closeModal}},[e._v("取 消")]),i("el-button",{attrs:{type:"primary"},on:{click:e.save}},[e._v("保 存")])],1)],1)},E=[],O={name:"mini-im-create-shortcuts",data:function(){return{form:{content:"",title:""},formLabelWidth:"40px"}},props:{dialogFormVisible:Boolean,complete:Function},mounted:function(){},methods:{closeModal:function(){this.$emit("update:dialogFormVisible",!1)},save:function(){var e=this;if(""!=this.form.title.trim()&&""!=this.form.content.trim()){var t=this.$loading({lock:!0,text:"保存中...",spinner:"el-icon-loading",background:"rgba(0, 0, 0, 0.5)"});x.a.post("/shortcut",this.form).then((function(i){try{console.log(i),t.close(),e.$message.success("添加成功"),e.closeModal(),e.complete(),e.form={content:"",title:""}}catch(s){console.log(s)}})).catch((function(i){t.close(),e.$message.error(i.response.data.message)}))}}}},R=O,P=Object(f["a"])(R,T,E,!1,null,"ae51b748",null),L=P.exports,V=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-dialog",{attrs:{width:"600px",title:"编辑快捷语","show-close":!1,visible:e.dialogFormVisible,"close-on-click-modal":!1},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[i("el-form",{attrs:{model:e.form}},[i("el-form-item",{attrs:{label:"标题","label-width":e.formLabelWidth}},[i("el-input",{attrs:{maxlength:"50","show-word-limit":"",type:"text",placeholder:"请输入标题",autocomplete:"off"},model:{value:e.form.title,callback:function(t){e.$set(e.form,"title",t)},expression:"form.title"}})],1),i("el-form-item",{attrs:{label:"内容","label-width":e.formLabelWidth}},[i("el-input",{attrs:{rows:"8",resize:"none",autosize:!1,maxlength:"200","show-word-limit":"",type:"textarea",placeholder:"请输入快捷语",autocomplete:"off"},model:{value:e.form.content,callback:function(t){e.$set(e.form,"content",t)},expression:"form.content"}})],1)],1),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:e.closeModal}},[e._v("取 消")]),i("el-button",{attrs:{type:"primary"},on:{click:e.save}},[e._v("保 存")])],1)],1)},N=[],F={name:"mini-im-edit-shortcuts",data:function(){return{form:{content:"",title:""},formLabelWidth:"40px"}},props:{dialogFormVisible:Boolean,complete:Function,formData:Object},methods:{closeModal:function(){this.$emit("update:dialogFormVisible",!1)},save:function(){var e=this;if(""!=this.form.title.trim()&&""!=this.form.content.trim()){var t=this.$loading({lock:!0,text:"保存中...",spinner:"el-icon-loading",background:"rgba(0, 0, 0, 0.5)"});x.a.put("/shortcut",this.form).then((function(i){try{console.log(i),t.close(),e.$message.success("添加成功"),e.closeModal(),e.complete()}catch(s){console.log(s)}})).catch((function(i){t.close(),e.$message.error(i.response.data.message)}))}}},watch:{formData:function(){this.form=Object.assign({},this.form,this.formData)}}},z=F,j=Object(f["a"])(z,V,N,!1,null,"3714045a",null),D=j.exports,A=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"mini-im-chat-list"},[i("div",{staticClass:"mini-im-chat-message-box"},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.loading,expression:"loading"}],staticClass:"loading"},[i("i",{staticClass:"el-icon-loading"}),i("span",[e._v("消息加载中...")])]),i("el-button",{directives:[{name:"show",rawName:"v-show",value:e.isMessageEnd,expression:"isMessageEnd"}],attrs:{type:"text",disabled:"",icon:"el-icon-refresh-right"}},[e._v("无更多聊天记录...")]),e.isMessageEnd||e.loading?e._e():i("el-button",{attrs:{type:"text",icon:"el-icon-refresh"},on:{click:e.onLoadMor}},[e._v("点击加载更多聊天记录")])],1),i("div",{staticClass:"mini-im-chat-message-box"},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.messages.length<=0&&!e.loading,expression:"messages.length <= 0 && !loading"}],staticClass:"loading"},[i("i",{staticClass:"el-icon-time"}),i("span",[e._v("暂无聊天记录...")])])]),e._l(e.messages,(function(t,s){return i("div",{key:s,staticClass:"mini-im-chat-message-box",class:{self:t.from_account!=e.seviceCurrentUser.id}},["text"==t.biz_type||"photo"==t.biz_type||"knowledge"==t.biz_type||"knowledge_list"==t.biz_type?[i("div",{staticClass:"user-date"},[t.from_account==e.adminInfo.id?i("span",[e._v("\n "+e._s(e.adminInfo.nickname||e.adminInfo.username)+"\n ")]):t.from_account==e.seviceCurrentUser.from_account?i("span",[e._v("\n "+e._s(e.seviceCurrentUser.nickname)+"\n ")]):i("span",[i("span",{staticStyle:{"font-size":"12px",color:"#666"}},[e._v("(机器人)")]),e._v(e._s(e.$robotNickname(t.from_account))+"\n ")]),i("em",[e._v(e._s(e.$formatFromNowDate(t.timestamp)))])])]:e._e(),"text"==t.biz_type?[i("div",{staticClass:"text"},[t.from_account==e.adminInfo.id&&t.isShowCancel?i("div",{staticClass:"cancel-btn",attrs:{title:"撤回本条消息"},on:{click:function(){return e.onCancelMessage(t.key)}}},[e._v("\n 撤回\n ")]):e._e(),i("span",{domProps:{innerHTML:e._s(t.payload.replace(/\n/gi,"<br />"))}})])]:e._e(),"photo"==t.biz_type?[i("div",{staticClass:"photo"},[t.percent&&100!=t.percent?i("div",{staticClass:"loading"},[i("i",{staticClass:"el-icon-loading"}),i("span",[e._v(e._s(t.percent)+"%")])]):e._e(),t.from_account==e.adminInfo.id&&t.isShowCancel?i("div",{staticClass:"cancel-btn",attrs:{title:"撤回本条消息"},on:{click:function(){return e.onCancelMessage(t.key)}}},[e._v("\n 撤回\n ")]):e._e(),i("div",{staticClass:"img-content"},[i("img",{attrs:{src:t.payload,preview:"1"}})])])]:e._e(),"transfer"==t.biz_type?[i("div",{staticClass:"system"},[i("em",[e._v(e._s(e.$formatFromNowDate(t.timestamp)))]),i("span",[e._v(e._s(t.payload))])])]:e._e(),"end"==t.biz_type?[i("div",{staticClass:"system"},[i("em",[e._v(e._s(e.$formatFromNowDate(t.timestamp)))]),t.to_account!=e.adminInfo.id?i("span",[e._v("你结束了会话")]):i("span",[e._v("对方结束了会话")]),i("em",[e._v(e._s(e.$formatFromNowDate(t.timestamp)))])])]:e._e(),"timeout"==t.biz_type?[i("div",{staticClass:"system"},[i("em",[e._v(e._s(e.$formatFromNowDate(t.timestamp)))]),i("span",[e._v("用户长时间无应答,会话结束")])])]:e._e(),"cancel"==t.biz_type?[i("div",{staticClass:"system"},[i("em",[e._v(e._s(e.$formatFromNowDate(t.timestamp)))]),t.from_account==e.adminInfo.id?i("span",[e._v("您撤回了一条消息")]):i("span",[e._v("对方撤回了一条消息")])])]:e._e(),"knowledge"==t.biz_type?[i("div",{staticClass:"knowledge"},[i("div",{staticClass:"content"},[i("div",{staticClass:"title"},[e._v("以下是否是您关心的相关问题呢?")]),e._l(JSON.parse(t.payload),(function(t,s){return i("div",{key:s,staticClass:"item"},[e._v("\n "+e._s(s+1)+"."+e._s(t.title)+"\n ")])}))],2)])]:e._e()],2)}))],2)},B=[],K={name:"mini-im-contact",data:function(){return{}},computed:{seviceCurrentUser:function(){return this.$store.getters.seviceCurrentUser||{}},adminInfo:function(){return this.$store.getters.adminInfo||{}}},props:{loading:Boolean,onCancelMessage:Function,messages:Array,onLoadMor:Function,isMessageEnd:Boolean},watch:{messages:function(){var e=this;setTimeout((function(){e.$previewRefresh()}),1e3)}}},G=K,W=(i("24fd"),Object(f["a"])(G,A,B,!1,null,"019193ce",null)),H=W.exports,J=i("fb21"),Y=i("b730"),q=i.n(Y),X=i("2f62");function Q(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,s)}return i}function Z(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?Q(Object(i),!0).forEach((function(t){r(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):Q(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}var ee={name:"workbench",components:{EmojiComponent:g,ContactComponent:y,UserInfoComponent:U,ChatWindowComponent:H,CreateShortcutComponent:L,EditShortcutComponent:D},data:function(){return{chatValue:"",advanceText:"",admins:[],shortcuts:[],shortcutKey:"",createShortcutDialogFormVisible:!1,editShortcutDialogFormVisible:!1,editShortcutItem:null,shortcutEditVisible:!1,getMessageRecordLoading:!0,chatWindowLoading:!1,currentSessionIsEnd:!1,getMessageRecordPageSize:20,isInputPongIng:!1,isSendPong:!1,inputPongIngString:"对方正在输入...",isPush:!1,isMessageEnd:!1}},computed:Z({filterShortcuts:function(){var e=this.shortcutKey.trim();return""!=e?this.shortcuts.filter((function(t){return-1!=t.title.indexOf(e)})):this.shortcuts},filterAdmins:function(){var e=this;return this.admins.filter((function(t){return t.id!=e.adminInfo.id&&(1==t.online||2==t.online)}))}},Object(X["b"])(["contacts","adminInfo","seviceCurrentUser","messageRecord"])),mounted:function(){var e,t=this;document.ondblclick=function(){t.shortcutEditVisible=!1},this.init(),document.addEventListener("mousemove",(function(){t.$refs.miniImChatViewBontentBody&&(t.$refs.miniImChatViewBontentBody.style.height=document.body.clientHeight-155+"px"),t.isPush=!1,e&&clearTimeout(e),e=setTimeout((function(){t.isPush=!0}),3e4)})),document.addEventListener("paste",this.inputPaste,!1)},beforeDestroy:function(){this.changeCurrentUser()},methods:{init:function(){var e=this;this.adminInfo?(this.getShortcuts(),this.chatWindowLoading=!0,setTimeout((function(){e.chatWindowLoading=!1}),1500),setTimeout((function(){var t,i=e.$store.getters.seviceCurrentUser.id||e.$route.query.uid;(e.changeCurrentUser(i||0),i)&&(e.contacts.map((function(e){e.from_account==i&&(t=e)})),history.replaceState(null,null,location.href.replace(/uid=\d+/i,"uid="+i)),e.$store.commit("onChangeSeviceCurrentUser",t),t&&e.selectUser(t),e.getMessageRecord(),e.scrollIntoBottom())}),1e3),this.$mimcInstance.addEventListener("statusChange",(function(t){1==e.adminInfo.online?e.$message.success("您当前状态为在线"):2==e.adminInfo.online&&e.$message.warning("您当前状态为繁忙"),t||e.$message.info("登录异常,请刷新页面重试!")})),this.$mimcInstance.addEventListener("receiveP2PMsg",this.receiveP2PMsg),this.$mimcInstance.addEventListener("disconnect",(function(){console.log("链接断开!");var t=e.adminInfo;t.online=0,e.$store.commit("onChangeAdminInfo",t)}))):setTimeout((function(){return e.init()}),100)},enterShift:function(e){"Enter"!=e.code&&(this.chatValue=this.chatValue+"\n")},scrollIntoBottom:function(){try{setTimeout((function(){var e=document.getElementById("chatBody");if(e){var t=e.clientHeight,i=e.scrollHeight;e.scrollTop=i-t}}),50)}catch(e){console.log(e)}},deleteContact:function(e){var t=this;e&&e.cid&&x.a.delete("/contact/"+e.cid).then((function(){t.$message.success("删除成功"),t.$store.dispatch("ON_GET_CONTACTS"),t.seviceCurrentUser.id==e.id&&(t.changeCurrentUser(),t.$store.commit("onChangeSeviceCurrentUser",null))})).catch((function(e){t.$message.error(e.response.data.message)}))},clearContact:function(){var e=this;this.$confirm("您确定要清空列表吗? ","温馨提示!",{confirmButtonText:"确定",cancelButtonText:"取消",center:!0,type:"warning"}).then((function(){x.a.delete("/contact/clear").then((function(){e.$message.success("清空成功"),e.$store.dispatch("ON_GET_CONTACTS"),e.changeCurrentUser(),e.$store.commit("onChangeSeviceCurrentUser",null)})).catch((function(t){e.$message.error(t.response.data.message)}))}))},clickEmoji:function(e){0!=this.adminInfo.online?1!=this.seviceCurrentUser.is_session_end?(this.chatValue=this.chatValue+e,this.$refs.chatValueDom.focus()):this.$message.info("当前会话已结束!"):this.$message.info("您当前为离线状态!")},checkShortcut:function(e){0!=this.adminInfo.online?1!=this.seviceCurrentUser.is_session_end?(this.shortcutKey="",this.chatValue=e,this.$refs.chatValueDom.focus()):this.$message.info("当前会话已结束!"):this.$message.info("您当前为离线状态!")},getShortcuts:function(){var e=this;x.a.get("/shortcut/list").then((function(t){e.shortcuts=t.data.data})).catch((function(t){e.$message.error(t.response.data.message)}))},editShortcut:function(e){this.editShortcutItem=e,this.editShortcutDialogFormVisible=!0},getAdmins:function(){var e=this;x.a.post("/admin/list",{page_on:1,page_size:1e4,online:3}).then((function(t){e.loading=!1,e.admins=t.data.data.list})).catch((function(t){e.$message.error(t.response.data.message)}))},deleteShortcut:function(e){var t=this;this.$confirm("您确定要删除该快捷语吗?","温馨提示!",{confirmButtonText:"确定",cancelButtonText:"取消",center:!0,type:"warning"}).then((function(){x.a.delete("/shortcut/"+e.id).then((function(){t.$message.success("删除成功"),t.getShortcuts()})).catch((function(e){t.$message.error(e.response.data.message)}))}))},onCancelMessage:function(e){var t=this.$mimcInstance.sendMessage("cancel",this.seviceCurrentUser.from_account,e);this.messageRecord.list.push(t),this.removeMessage(this.adminInfo.id,e),this.qiniuObservable&&this.qiniuObservable.unsubscribe()},transferCustomer:function(e){var t=this;this.$confirm("您确定将该客户转接给 "+(e.nickname||e.username)+" 吗?","温馨提示!",{confirmButtonText:"转接",cancelButtonText:"取消",center:!0,type:"warning"}).then((function(){x.a.post("/message/transfer",{to_account:e.id,user_account:t.seviceCurrentUser.from_account}).then((function(){var e=t.seviceCurrentUser;e.is_session_end=1,t.$store.commit("onChangeSeviceCurrentUser",e)})).catch((function(e){t.$message.error(e.response.data.message)}))}))},closeSession:function(){var e=this;this.$confirm("您确定关闭当前回话吗?强制关闭可能会被客户投诉!","温馨提示!",{confirmButtonText:"关闭",cancelButtonText:"取消",center:!0,type:"warning"}).then((function(){var t=e.$mimcInstance.sendMessage("end",e.seviceCurrentUser.from_account,"");e.messageRecord.list.push(t);var i=e.seviceCurrentUser;i.is_session_end=1,e.$store.commit("onChangeSeviceCurrentUser",i)}))},changeUserOnlineStatus:function(e){var t=this;x.a.put("/admin/online/"+e).then((function(){t.$store.dispatch("ON_GET_ME"),0==e&&t.$message.info("当前状态为离线")})).catch((function(e){t.$message.error(e.response.data.message)}))},online:function(e){var t=this;t.adminInfo.online!=e&&t.$confirm("您确定"+(0==e?"下线":1==e?"上线":"设置繁忙")+"吗!","温馨提示!",{confirmButtonText:"确定",cancelButtonText:"取消",center:!0,type:"warning"}).then((function(){0==e?(t.$mimcInstance.logout(),t.changeUserOnlineStatus(e),t.$store.commit("onChangeMimcUser",null)):t.$mimcInstance.login((function(){t.changeUserOnlineStatus(e),t.$store.dispatch("ON_RUN_LAST_ACTiIVITY"),t.$store.dispatch("ON_GET_CONTACTS"),t.$store.commit("onChangeMimcUser",t.$mimcInstance.user)}))}))},receiveP2PMsg:function(e){var t=this,i=parseInt(((new Date).getTime()+"").substr(0,10));if(e.timestamp=parseInt((e.timestamp+"").substr(0,10)),"text"==e.biz_type&&e.from_account==this.seviceCurrentUser.from_account&&(this.advanceText=""),"contacts"!=e.biz_type){if(!(i-e.timestamp>=60))if("cancel"==e.biz_type&&this.removeMessage(e.from_account,e.payload),"handshake"!=e.biz_type){if("pong"==e.biz_type&&e.from_account==this.seviceCurrentUser.from_account)return this.advanceText=e.payload,void this.inputPongIng();if("contacts"!=e.biz_type&&"pong"!=e.biz_type&&"welcome"!=e.biz_type&&"cancel"!=e.biz_type&&"handshake"!=e.biz_type&&"end"!=e.biz_type&&"timeout"!=e.biz_type&&this.isPush&&q.a.Permission.has()&&q.a.create("收到一条新消息",{body:e.payload,icon:this.$store.state.pushIcon,timeout:5e3,onClick:function(){t.$router.push({path:"/workbench?uid="+e.from_account}),window.focus(),setTimeout((function(){return t.getMessageRecord()}),1e3)}}),e.from_account==this.seviceCurrentUser.from_account){if("end"==e.biz_type){var s=this.seviceCurrentUser;s.is_session_end=1,this.$store.commit("onChangeSeviceCurrentUser",s),this.advanceText=""}this.messageRecord.list.push(e);var n=JSON.stringify(this.messageRecord);this.$store.commit("onChangeMessageRecord",JSON.parse(n)),this.scrollIntoBottom(),this.$previewRefresh()}}else setTimeout((function(){t.$mimcInstance.sendMessage("text",e.from_account,t.adminInfo.auto_reply),void 0!=t.seviceCurrentUser&&null!=t.seviceCurrentUser&&setTimeout((function(){return t.getMessageRecord()}),1e3)}),500)}else{var a=JSON.parse(e.payload);this.$store.commit("onChangeContacts",a)}},changeCurrentUser:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;"{}"!=JSON.stringify(this.adminInfo)&&x.a.get("/admin/current/user/"+e)},sendMessage:function(){if(0!=this.adminInfo.online){if(1!=this.seviceCurrentUser.is_session_end)if(1!=this.seviceCurrentUser.is_session_end){var e=this.chatValue.trim();if(""!=e){this.shortcutEditVisible=!1,this.scrollIntoBottom();var t=this.$mimcInstance.sendMessage("text",this.seviceCurrentUser.from_account,this.chatValue.trim("\n"));t.isShowCancel=!0,setTimeout((function(){return t.isShowCancel=!1}),1e4),this.messageRecord.list.push(t),this.chatValue=""}else this.chatValue=""}else this.$message.info("当前会话已结束!")}else this.$message.info("您当前为离线状态!")},sendPhotoMessageEvent:function(e){var t=e.target,i=t.files[0];this.sendPhotoMessage(i)},sendPhotoMessage:function(e){if(0!=this.adminInfo.online)if(1!=this.seviceCurrentUser.is_session_end){var t=new FileReader;t.readAsDataURL(e);var i,s=this;t.onload=function(){i=s.$mimcInstance.createLocalMessage("photo",s.seviceCurrentUser.from_account,this.result),i["percent"]=0,i.isShowCancel=!0,s.messageRecord.list.push(i),setTimeout((function(){return i.isShowCancel=!1}),1e4),s.$previewRefresh(),s.scrollIntoBottom(),Object(J["a"])({file:e,progress:function(e){i.percent=e},success:function(e){i.percent=100;var t=s.$store.getters.uploadToken.host+"/"+e;s.$mimcInstance.sendMessage("photo",s.seviceCurrentUser.from_account,t)},error:function(e){i.percent=0,s.$message.error(e.message)}})}}else this.$message.info("当前会话已结束!");else this.$message.info("您当前为离线状态!")},selectUser:function(e){var t=location.href,i=t.indexOf("#");t=t.substr(0,-1!=i?i:t.length),history.replaceState(null,null,t+"#/workbench?uid="+e.from_account),this.isMessageEnd=!1,this.seviceCurrentUser.from_account!=e.from_account&&(this.messageRecord.list=[],this.$store.commit("onChangeSeviceCurrentUser",e),this.changeCurrentUser(e.from_account)),this.timestamp=void 0,this.getMessageRecord(),this.advanceText=""},getMessageRecord:function(e){var t=this;this.getMessageRecordLoading=!0,void 0==e&&(e=0);var i=parseInt(this.seviceCurrentUser.from_account);i&&x.a.post("/message/list",{timestamp:e,page_size:this.getMessageRecordPageSize,account:i}).then((function(i){t.getMessageRecordLoading=!1,i.data.data.list.length<t.getMessageRecordPageSize&&(t.isMessageEnd=!0),0==t.messageRecord.list.length||0==e?(t.$store.commit("onChangeMessageRecord",i.data.data),t.scrollIntoBottom()):(i.data.data.list=i.data.data.list.concat(t.messageRecord.list),t.$store.commit("onChangeMessageRecord",i.data.data)),setTimeout((function(){return t.$previewRefresh()}),1e3),t.$store.dispatch("ON_GET_CONTACTS")})).catch((function(){t.getMessageRecordLoading=!1}))},onLoadMorMessage:function(){this.getMessageRecordLoading||(this.messageRecord.list.length>=this.messageRecord.total||this.messageRecord.total<=this.getMessageRecordPageSize?this.isMessageEnd=!0:(this.getMessageRecord(this.messageRecord.list[0].timestamp),setTimeout((function(){var e=document.getElementById("chatBody");e.scrollTop=500}),50)))},inputPongIng:function(){var e=this;this.isInputPongIng||(this.isInputPongIng=!0,setTimeout((function(){e.inputPongIngString="对方正在输入."}),500),setTimeout((function(){e.inputPongIngString="对方正在输入.."}),1500),setTimeout((function(){e.inputPongIngString="对方正在输入...",e.isInputPongIng=!1}),3e3))},keyUpEvent:function(){var e=this;this.isSendPong||(this.isSendPong=!0,setTimeout((function(){return e.isSendPong=!1}),500),this.$mimcInstance.sendMessage("pong",this.seviceCurrentUser.from_account,""))},removeMessage:function(e,t){for(var i=[],s=this.messageRecord.list,n=0;n<s.length;n++)s[n].key==t&&s[n].from_account==e||i.push(s[n]);this.messageRecord.list=i,this.$store.commit("onChangeMessageRecord",this.messageRecord)},inputPaste:function(e){if(this.seviceCurrentUser.id&&1!=this.seviceCurrentUser.is_session_end){var t=this,i=e.clipboardData,s=window.navigator.userAgent;if(e.clipboardData&&e.clipboardData.items&&!(i.items&&2===i.items.length&&"string"===i.items[0].kind&&"file"===i.items[1].kind&&i.types&&2===i.types.length&&"text/plain"===i.types[0]&&"Files"===i.types[1]&&s.match(/Macintosh/i)&&Number(s.match(/Chrome\/(\d{2})/i)[1])<49))for(var n=0;n<i.items.length;n++){var a=i.items[n];if("file"==a.kind){var o=a.getAsFile();if(0===o.size)return;var r=new FileReader;r.readAsDataURL(o),r.onload=function(){var e=this.result;t.$alert('<img preview="1" style="width:100%;max-height: 500px;" src="'+e+'" />',"检测到图片是否要发送?",{dangerouslyUseHTMLString:!0,showCancelButton:!0,confirmButtonText:"发送"}).then((function(){t.sendPhotoMessage(o)})),t.$previewRefresh()}}}}}},watch:{messageRecord:function(){this.$previewRefresh()}}},te=ee,ie=(i("146b"),Object(f["a"])(te,s,n,!1,null,"19edcbfe",null));t["default"]=ie.exports},"2b0b":function(e,t,i){"use strict";var s=i("752b"),n=i.n(s);n.a},"454f":function(e,t,i){i("46a7");var s=i("584a").Object;e.exports=function(e,t,i){return s.defineProperty(e,t,i)}},"456d":function(e,t,i){var s=i("4bf8"),n=i("0d58");i("5eda")("keys",(function(){return function(e){return n(s(e))}}))},"46a7":function(e,t,i){var s=i("63b6");s(s.S+s.F*!i("8e60"),"Object",{defineProperty:i("d9f6").f})},4917:function(e,t,i){"use strict";var s=i("cb7c"),n=i("9def"),a=i("0390"),o=i("5f1b");i("214f")("match",1,(function(e,t,i,r){return[function(i){var s=e(this),n=void 0==i?void 0:i[t];return void 0!==n?n.call(i,s):new RegExp(i)[t](String(s))},function(e){var t=r(i,e,this);if(t.done)return t.value;var c=s(e),l=String(this);if(!c.global)return o(c,l);var u=c.unicode;c.lastIndex=0;var m,d=[],f=0;while(null!==(m=o(c,l))){var h=String(m[0]);d[f]=h,""===h&&(c.lastIndex=a(l,n(c.lastIndex),u)),f++}return 0===f?null:d}]}))},"4e10":function(e,t,i){},"4f37":function(e,t,i){"use strict";i("aa77")("trim",(function(e){return function(){return e(this,3)}}))},"58b2":function(e,t,i){var s=i("5ca1");s(s.S+s.F*!i("9e1e"),"Object",{defineProperties:i("1495")})},"5dbc":function(e,t,i){var s=i("d3f4"),n=i("8b97").set;e.exports=function(e,t,i){var a,o=t.constructor;return o!==i&&"function"==typeof o&&(a=o.prototype)!==i.prototype&&s(a)&&n&&n(e,a),e}},"5eda":function(e,t,i){var s=i("5ca1"),n=i("8378"),a=i("79e5");e.exports=function(e,t){var i=(n.Object||{})[e]||Object[e],o={};o[e]=t(i),s(s.S+s.F*a((function(){i(1)})),"Object",o)}},"752b":function(e,t,i){},"85f2":function(e,t,i){e.exports=i("454f")},"8b97":function(e,t,i){var s=i("d3f4"),n=i("cb7c"),a=function(e,t){if(n(e),!s(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,s){try{s=i("9b43")(Function.call,i("11e9").f(Object.prototype,"__proto__").set,2),s(e,[]),t=!(e instanceof Array)}catch(n){t=!0}return function(e,i){return a(e,i),t?e.__proto__=i:s(e,i),e}}({},!1):void 0),check:a}},"8e6e":function(e,t,i){var s=i("5ca1"),n=i("990b"),a=i("6821"),o=i("11e9"),r=i("f1ae");s(s.S,"Object",{getOwnPropertyDescriptors:function(e){var t,i,s=a(e),c=o.f,l=n(s),u={},m=0;while(l.length>m)i=c(s,t=l[m++]),void 0!==i&&r(u,t,i);return u}})},9093:function(e,t,i){var s=i("ce10"),n=i("e11e").concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return s(e,n)}},"990b":function(e,t,i){var s=i("9093"),n=i("2621"),a=i("cb7c"),o=i("7726").Reflect;e.exports=o&&o.ownKeys||function(e){var t=s.f(a(e)),i=n.f;return i?t.concat(i(e)):t}},a481:function(e,t,i){"use strict";var s=i("cb7c"),n=i("4bf8"),a=i("9def"),o=i("4588"),r=i("0390"),c=i("5f1b"),l=Math.max,u=Math.min,m=Math.floor,d=/\$([$&`']|\d\d?|<[^>]*>)/g,f=/\$([$&`']|\d\d?)/g,h=function(e){return void 0===e?e:String(e)};i("214f")("replace",2,(function(e,t,i,g){return[function(s,n){var a=e(this),o=void 0==s?void 0:s[t];return void 0!==o?o.call(s,a,n):i.call(String(a),s,n)},function(e,t){var n=g(i,e,this,t);if(n.done)return n.value;var m=s(e),d=String(this),f="function"===typeof t;f||(t=String(t));var p=m.global;if(p){var _=m.unicode;m.lastIndex=0}var b=[];while(1){var C=c(m,d);if(null===C)break;if(b.push(C),!p)break;var y=String(C[0]);""===y&&(m.lastIndex=r(d,a(m.lastIndex),_))}for(var w="",S=0,k=0;k<b.length;k++){C=b[k];for(var x=String(C[0]),$=l(u(o(C.index),d.length),0),I=[],M=1;M<C.length;M++)I.push(h(C[M]));var U=C.groups;if(f){var T=[x].concat(I,$,d);void 0!==U&&T.push(U);var E=String(t.apply(void 0,T))}else E=v(x,d,$,I,U,t);$>=S&&(w+=d.slice(S,$)+E,S=$+x.length)}return w+d.slice(S)}];function v(e,t,s,a,o,r){var c=s+e.length,l=a.length,u=f;return void 0!==o&&(o=n(o),u=d),i.call(r,u,(function(i,n){var r;switch(n.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,s);case"'":return t.slice(c);case"<":r=o[n.slice(1,-1)];break;default:var u=+n;if(0===u)return i;if(u>l){var d=m(u/10);return 0===d?i:d<=l?void 0===a[d-1]?n.charAt(1):a[d-1]+n.charAt(1):i}r=a[u-1]}return void 0===r?"":r}))}}))},a818:function(e,t,i){},aa77:function(e,t,i){var s=i("5ca1"),n=i("be13"),a=i("79e5"),o=i("fdef"),r="["+o+"]",c="​…",l=RegExp("^"+r+r+"*"),u=RegExp(r+r+"*$"),m=function(e,t,i){var n={},r=a((function(){return!!o[e]()||c[e]()!=c})),l=n[e]=r?t(d):o[e];i&&(n[i]=l),s(s.P+s.F*r,"String",n)},d=m.trim=function(e,t){return e=String(n(e)),1&t&&(e=e.replace(l,"")),2&t&&(e=e.replace(u,"")),e};e.exports=m},ac6a:function(e,t,i){for(var s=i("cadf"),n=i("0d58"),a=i("2aba"),o=i("7726"),r=i("32e9"),c=i("84f2"),l=i("2b4c"),u=l("iterator"),m=l("toStringTag"),d=c.Array,f={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},h=n(f),g=0;g<h.length;g++){var v,p=h[g],_=f[p],b=o[p],C=b&&b.prototype;if(C&&(C[u]||r(C,u,d),C[m]||r(C,m,p),c[p]=d,_))for(v in s)C[v]||a(C,v,s[v],!0)}},c5f6:function(e,t,i){"use strict";var s=i("7726"),n=i("69a8"),a=i("2d95"),o=i("5dbc"),r=i("6a99"),c=i("79e5"),l=i("9093").f,u=i("11e9").f,m=i("86cc").f,d=i("aa77").trim,f="Number",h=s[f],g=h,v=h.prototype,p=a(i("2aeb")(v))==f,_="trim"in String.prototype,b=function(e){var t=r(e,!1);if("string"==typeof t&&t.length>2){t=_?t.trim():d(t,3);var i,s,n,a=t.charCodeAt(0);if(43===a||45===a){if(i=t.charCodeAt(2),88===i||120===i)return NaN}else if(48===a){switch(t.charCodeAt(1)){case 66:case 98:s=2,n=49;break;case 79:case 111:s=8,n=55;break;default:return+t}for(var o,c=t.slice(2),l=0,u=c.length;l<u;l++)if(o=c.charCodeAt(l),o<48||o>n)return NaN;return parseInt(c,s)}}return+t};if(!h(" 0o1")||!h("0b1")||h("+0x1")){h=function(e){var t=arguments.length<1?0:e,i=this;return i instanceof h&&(p?c((function(){v.valueOf.call(i)})):a(i)!=f)?o(new g(b(t)),i,h):b(t)};for(var C,y=i("9e1e")?l(g):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),w=0;y.length>w;w++)n(g,C=y[w])&&!n(h,C)&&m(h,C,u(g,C));h.prototype=v,v.constructor=h,i("2aba")(s,f,h)}},d25f:function(e,t,i){"use strict";var s=i("5ca1"),n=i("0a49")(2);s(s.P+s.F*!i("2f21")([].filter,!0),"Array",{filter:function(e){return n(this,e,arguments[1])}})},eef3:function(e,t){var i=["😀","😁","😂","🤣","😃","😄","😅","😆","😉","😊","😋","😎","😍","😘","😗","😙","😚","🙂","🤗","🤩","🤔","🤨","😐","😑","😶","🙄","😏","😣","😥","😮","🤐","😯","😪","😫","😴","😌","😛","😜","😝","🤤","😒","😓","😔","😕","🙃","🤑","😲","🙁","😖","😞","😟","😤","😢","😭","😦","😧","😨","😩","🤯","😬","😰","😱","😳","🤪","😵","😡","😠","🤬","😷","🤒","🤕","🤢","🤮","🤧","😇","🤠","🤡","🤥","🤫","🤭","🧐","🤓","😈","👿","👹","👺","💀","👻","👽","🤖","💩","😺","😸","😹","😻","😼","😽","🙀","😿","😾","🤲","👐","🙌","👏","🤝","👍","👎","👊","✊","🤛","🤜","🤞","✌️","🤟","🤘","👌","👈","👉","👆","👇","☝️","✋","🤚","🖐","🖖","👋","🤙","💪","🖕","✍️","🙏"];t.emojiData=i},f1ae:function(e,t,i){"use strict";var s=i("86cc"),n=i("4630");e.exports=function(e,t,i){t in e?s.f(e,t,n(0,i)):e[t]=i}},f3e2:function(e,t,i){"use strict";var s=i("5ca1"),n=i("0a49")(0),a=i("2f21")([].forEach,!0);s(s.P+s.F*!a,"Array",{forEach:function(e){return n(this,e,arguments[1])}})},fa4e:function(e,t,i){},fdef:function(e,t){e.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"}}]);
//# sourceMappingURL=chunk-2e29b63f.7ff0f22a.js.map
\ No newline at end of file
This diff could not be displayed because it is too large.
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-343c8d41"],{"7f7f":function(t,e,n){var r=n("86cc").f,o=Function.prototype,i=/^\s*function ([^ (]*)/,a="name";a in o||n("9e1e")&&r(o,a,{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(t){return""}}})},9865:function(t,e,n){"use strict";var r=n("5ca1"),o=n("6821"),i=n("4588"),a=n("9def"),s=[].lastIndexOf,u=!!s&&1/[1].lastIndexOf(1,-0)<0;r(r.P+r.F*(u||!n("2f21")(s)),"Array",{lastIndexOf:function(t){if(u)return s.apply(this,arguments)||0;var e=o(this),n=a(e.length),r=n-1;for(arguments.length>1&&(r=Math.min(r,i(arguments[1]))),r<0&&(r=n+r);r>=0;r--)if(r in e&&e[r]===t)return r||0;return-1}})},cea2:function(t,e,r){!function(e,n){t.exports=n()}("undefined"!=typeof self&&self,(function(){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/dist/",e(e.s=58)}([function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e){var n=t.exports={version:"2.6.9"};"number"==typeof __e&&(__e=n)},function(t,e,n){var r=n(31)("wks"),o=n(22),i=n(0).Symbol,a="function"==typeof i;(t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)("Symbol."+t))}).store=r},function(t,e,n){var r=n(8);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){t.exports=!n(10)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(t,e,n){var r=n(0),o=n(1),i=n(19),a=n(6),s=n(9),u=function(t,e,n){var c,f,l,h=t&u.F,p=t&u.G,d=t&u.S,g=t&u.P,m=t&u.B,v=t&u.W,y=p?o:o[e]||(o[e]={}),b=y.prototype,w=p?r:d?r[e]:(r[e]||{}).prototype;for(c in p&&(n=e),n)(f=!h&&w&&void 0!==w[c])&&s(y,c)||(l=f?w[c]:n[c],y[c]=p&&"function"!=typeof w[c]?n[c]:m&&f?i(l,r):v&&w[c]==l?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(l):g&&"function"==typeof l?i(Function.call,l):l,g&&((y.virtual||(y.virtual={}))[c]=l,t&u.R&&b&&!b[c]&&a(b,c,l)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},function(t,e,n){var r=n(7),o=n(21);t.exports=n(4)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(3),o=n(43),i=n(29),a=Object.defineProperty;e.f=n(4)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var r=n(47),o=n(27);t.exports=function(t){return r(o(t))}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t){var e=t+864e5;return(new Date).getTime()>e}function i(t){return(0,m.default)(t).filter((function(t){return t.startsWith("x:")})).map((function(e){return[e,t[e].toString()]}))}function a(t){return"qiniu_js_sdk_upload_file_"+t.name+"_size_"+t.size}function s(t){try{return JSON.parse(localStorage.getItem(a(t)))||[]}catch(t){return window.console&&window.console.warn&&console.warn("getLocalFileInfo failed"),[]}}function u(t){return{Authorization:"UpToken "+t}}function c(){return window.XMLHttpRequest?new XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP")}function f(t){return new p.default((function(e,n){var r=new FileReader;r.readAsArrayBuffer(t),r.onload=function(t){var n=t.target.result;e(n)},r.onerror=function(){n(new Error("fileReader 读取错误"))}}))}function l(t,e){return new p.default((function(n,r){var o=c();o.open(e.method,t),e.onCreate&&e.onCreate(o),e.headers&&(0,m.default)(e.headers).forEach((function(t){return o.setRequestHeader(t,e.headers[t])})),o.upload.addEventListener("progress",(function(t){t.lengthComputable&&e.onProgress&&e.onProgress({loaded:t.loaded,total:t.total})})),o.onreadystatechange=function(){var t=o.responseText;if(4===o.readyState){var e=o.getResponseHeader("x-reqId")||"";if(200!==o.status){var i="xhr request failed, code: "+o.status+";";return t&&(i=i+" response: "+t),void r({code:o.status,message:i,reqId:e,isRequestError:!0})}try{n({data:JSON.parse(t),reqId:e})}catch(t){r(t)}}},o.send(e.body)}))}function h(){return"http:"===window.location.protocol?"http:":"https:"}e.__esModule=!0;var p=r(n(18)),d=r(n(34)),g=r(n(86)),m=r(n(36));e.isChunkExpired=o,e.getChunks=function(t,e){for(var n=[],r=Math.ceil(t.size/e),o=0;o<r;o++){var i=t.slice(e*o,o===r-1?t.size:e*(o+1));n.push(i)}return n},e.filterParams=i,e.sum=function(t){return t.reduce((function(t,e){return t+e}),0)},e.setLocalFileInfo=function(t,e){try{localStorage.setItem(a(t),(0,g.default)(e))}catch(t){window.console&&window.console.warn&&console.warn("setLocalFileInfo failed")}},e.removeLocalFileInfo=function(t){try{localStorage.removeItem(a(t))}catch(t){window.console&&window.console.warn&&console.warn("removeLocalFileInfo failed")}},e.getLocalFileInfo=s,e.getResumeUploadedSize=function(t){return s(t).filter((function(t){return t&&!o(t.time)})).reduce((function(t,e){return t+e.size}),0)},e.createMkFileUrl=function(t,e,n,r){var o=t+"/mkfile/"+e.size;null!=n&&(o+="/key/"+(0,v.urlSafeBase64Encode)(n)),r.mimeType&&(o+="/mimeType/"+(0,v.urlSafeBase64Encode)(e.type));var a=r.fname;return a&&(o+="/fname/"+(0,v.urlSafeBase64Encode)(a)),r.params&&i(r.params).forEach((function(t){return o+="/"+encodeURIComponent(t[0])+"/"+(0,v.urlSafeBase64Encode)(t[1])})),o},e.getHeadersForChunkUpload=function(t){var e=u(t);return(0,d.default)({"content-type":"application/octet-stream"},e)},e.getHeadersForMkFile=function(t){var e=u(t);return(0,d.default)({"content-type":"text/plain"},e)},e.createXHR=c,e.computeMd5=function(t){return f(t).then((function(t){var e=new b.default.ArrayBuffer;return e.append(t),e.end()}))},e.readAsArrayBuffer=f,e.request=l,e.getPortFromUrl=function(t){if(t&&t.match){var e=t.match(/(^https?)/);if(!e)return"";var n=e[1];return(e=t.match(/^https?:\/\/([^:^\/]*):(\d*)/))?e[2]:"http"===n?"80":"443"}return""},e.getDomainFromUrl=function(t){if(t&&t.match){var e=t.match(/^https?:\/\/([^:^\/]*)/);return e?e[1]:""}return""},e.getUploadUrl=function(t,e){var n=h();if(null!=t.uphost)return p.default.resolve(n+"//"+t.uphost);if(null!=t.region){var r=y.regionUphostMap[t.region],o=t.useCdnDomain?r.cdnUphost:r.srcUphost;return p.default.resolve(n+"//"+o)}return function(t){try{var e=function(t){var e=t.split(":"),n=e[0],r=JSON.parse((0,v.urlSafeBase64Decode)(e[2]));return r.ak=n,r.bucket=r.scope.split(":")[0],r}(t);return l(h()+"//api.qiniu.com/v2/query?ak="+e.ak+"&bucket="+e.bucket,{method:"GET"})}catch(t){return p.default.reject(t)}}(e).then((function(t){var e=t.data.up.acc.main;return n+"//"+e[0]}))},e.isContainFileMimeType=function(t,e){return e.indexOf(t)>-1},e.createObjectURL=function(t){return(window.URL||window.webkitURL||window.mozURL).createObjectURL(t)},e.getTransform=function(t,e){var n=t.width,r=t.height;switch(e){case 1:return{width:n,height:r,matrix:[1,0,0,1,0,0]};case 2:return{width:n,height:r,matrix:[-1,0,0,1,n,0]};case 3:return{width:n,height:r,matrix:[-1,0,0,-1,n,r]};case 4:return{width:n,height:r,matrix:[1,0,0,-1,0,r]};case 5:return{width:r,height:n,matrix:[0,1,1,0,0,0]};case 6:return{width:r,height:n,matrix:[0,1,-1,0,r,0]};case 7:return{width:r,height:n,matrix:[0,-1,-1,0,r,n]};case 8:return{width:r,height:n,matrix:[0,-1,1,0,0,n]}}};var v=n(56),y=n(39),b=r(n(91))},function(t,e){t.exports=!0},function(t,e){t.exports={}},function(t,e,n){var r=n(46),o=n(32);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,n){t.exports={default:n(59),__esModule:!0}},function(t,e,n){var r=n(20);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e,n){var r=n(7).f,o=n(9),i=n(2)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e,n){var r=n(27);t.exports=function(t){return Object(r(t))}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){var r=n(8),o=n(0).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,e,n){var r=n(8);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){var r=n(31)("keys"),o=n(22);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e,n){var r=n(1),o=n(0),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(13)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){"use strict";var r=n(20);t.exports.f=function(t){return new function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r})),this.resolve=r(e),this.reject=r(n)}(t)}},function(t,e,n){t.exports={default:n(83),__esModule:!0}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){t.exports={default:n(88),__esModule:!0}},function(t,e,n){e.f=n(2)},function(t,e,n){var r=n(0),o=n(1),i=n(13),a=n(37),s=n(7).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||s(e,t,{value:a.f(t)})}},function(t,e,n){"use strict";e.__esModule=!0,e.regionUphostMap={z0:{srcUphost:"up.qiniup.com",cdnUphost:"upload.qiniup.com"},z1:{srcUphost:"up-z1.qiniup.com",cdnUphost:"upload-z1.qiniup.com"},z2:{srcUphost:"up-z2.qiniup.com",cdnUphost:"upload-z2.qiniup.com"},na0:{srcUphost:"up-na0.qiniup.com",cdnUphost:"upload-na0.qiniup.com"},as0:{srcUphost:"up-as0.qiniup.com",cdnUphost:"upload-as0.qiniup.com"}},e.region={z0:"z0",z1:"z1",z2:"z2",na0:"na0",as0:"as0"}},function(t,e){},function(t,e,n){"use strict";var r=n(60)(!0);n(42)(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})}))},function(t,e,n){"use strict";var r=n(13),o=n(5),i=n(44),a=n(6),s=n(14),u=n(61),c=n(23),f=n(65),l=n(2)("iterator"),h=!([].keys&&"next"in[].keys()),p=function(){return this};t.exports=function(t,e,n,d,g,m,v){u(n,e,d);var y,b,w,x=function(t){if(!h&&t in C)return C[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},S=e+" Iterator",P="values"==g,_=!1,C=t.prototype,I=C[l]||C["@@iterator"]||g&&C[g],F=I||x(g),U=g?P?x("entries"):F:void 0,k="Array"==e&&C.entries||I;if(k&&(w=f(k.call(new t)))!==Object.prototype&&w.next&&(c(w,S,!0),r||"function"==typeof w[l]||a(w,l,p)),P&&I&&"values"!==I.name&&(_=!0,F=function(){return I.call(this)}),r&&!v||!h&&!_&&C[l]||a(C,l,F),s[e]=F,s[S]=p,g)if(y={values:P?F:x("values"),keys:m?F:x("keys"),entries:U},v)for(b in y)b in C||i(C,b,y[b]);else o(o.P+o.F*(h||_),e,y);return y}},function(t,e,n){t.exports=!n(4)&&!n(10)((function(){return 7!=Object.defineProperty(n(28)("div"),"a",{get:function(){return 7}}).a}))},function(t,e,n){t.exports=n(6)},function(t,e,n){var r=n(3),o=n(62),i=n(32),a=n(30)("IE_PROTO"),s=function(){},u=function(){var t,e=n(28)("iframe"),r=i.length;for(e.style.display="none",n(49).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),u=t.F;r--;)delete u.prototype[i[r]];return u()};t.exports=Object.create||function(t,e){var n;return null!==t?(s.prototype=r(t),n=new s,s.prototype=null,n[a]=t):n=u(),void 0===e?n:o(n,e)}},function(t,e,n){var r=n(9),o=n(11),i=n(63)(!1),a=n(30)("IE_PROTO");t.exports=function(t,e){var n,s=o(t),u=0,c=[];for(n in s)n!=a&&r(s,n)&&c.push(n);for(;e.length>u;)r(s,n=e[u++])&&(~i(c,n)||c.push(n));return c}},function(t,e,n){var r=n(16);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(26),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(0).document;t.exports=r&&r.documentElement},function(t,e,n){n(66);for(var r=n(0),o=n(6),i=n(14),a=n(2)("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),u=0;u<s.length;u++){var c=s[u],f=r[c],l=f&&f.prototype;l&&!l[a]&&o(l,a,c),i[c]=i.Array}},function(t,e,n){var r=n(16),o=n(2)("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?n:i?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,n){var r=n(3),o=n(20),i=n(2)("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||void 0==(n=r(a)[i])?e:o(n)}},function(t,e,n){var r,o,i,a=n(19),s=n(75),u=n(49),c=n(28),f=n(0),l=f.process,h=f.setImmediate,p=f.clearImmediate,d=f.MessageChannel,g=f.Dispatch,m=0,v={},y=function(){var t=+this;if(v.hasOwnProperty(t)){var e=v[t];delete v[t],e()}},b=function(t){y.call(t.data)};h&&p||(h=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return v[++m]=function(){s("function"==typeof t?t:Function(t),e)},r(m),m},p=function(t){delete v[t]},"process"==n(16)(l)?r=function(t){l.nextTick(a(y,t,1))}:g&&g.now?r=function(t){g.now(a(y,t,1))}:d?(i=(o=new d).port2,o.port1.onmessage=b,r=a(i.postMessage,i,1)):f.addEventListener&&"function"==typeof postMessage&&!f.importScripts?(r=function(t){f.postMessage(t+"","*")},f.addEventListener("message",b,!1)):r="onreadystatechange"in c("script")?function(t){u.appendChild(c("script")).onreadystatechange=function(){u.removeChild(this),y.call(t)}}:function(t){setTimeout(a(y,t,1),0)}),t.exports={set:h,clear:p}},function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},function(t,e,n){var r=n(3),o=n(8),i=n(33);t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},function(t,e,n){"use strict";e.__esModule=!0,e.urlSafeBase64Encode=function(t){return(t=function(t){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n=void 0,r=void 0,o=void 0,i=void 0,a=void 0,s=void 0,u=void 0,c=void 0,f=0,l=0,h="",p=[];if(!t)return t;t=function(t){if(null===t||void 0===t)return"";var e=t+"",n="",r=void 0,o=void 0,i=0;r=o=0,i=e.length;for(var a=0;a<i;a++){var s=e.charCodeAt(a),u=null;if(s<128)o++;else if(s>127&&s<2048)u=String.fromCharCode(s>>6|192,63&s|128);else if(63488&s^!0)u=String.fromCharCode(s>>12|224,s>>6&63|128,63&s|128);else{if(64512&s^!0)throw new RangeError("Unmatched trail surrogate at "+a);var c=e.charCodeAt(++a);if(64512&c^!0)throw new RangeError("Unmatched lead surrogate at "+(a-1));s=((1023&s)<<10)+(1023&c)+65536,u=String.fromCharCode(s>>18|240,s>>12&63|128,s>>6&63|128,63&s|128)}null!==u&&(o>r&&(n+=e.slice(r,o)),n+=u,r=o=a+1)}return o>r&&(n+=e.slice(r,i)),n}(t+"");do{n=t.charCodeAt(f++),r=t.charCodeAt(f++),o=t.charCodeAt(f++),i=(c=n<<16|r<<8|o)>>18&63,a=c>>12&63,s=c>>6&63,u=63&c,p[l++]=e.charAt(i)+e.charAt(a)+e.charAt(s)+e.charAt(u)}while(f<t.length);switch(h=p.join(""),t.length%3){case 1:h=h.slice(0,-2)+"==";break;case 2:h=h.slice(0,-1)+"="}return h}(t)).replace(/\//g,"_").replace(/\+/g,"-")},e.urlSafeBase64Decode=function(t){return function(t){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n=void 0,r=void 0,o=void 0,i=void 0,a=void 0,s=void 0,u=void 0,c=void 0,f=0,l=0,h=[];if(!t)return t;t+="";do{i=e.indexOf(t.charAt(f++)),a=e.indexOf(t.charAt(f++)),s=e.indexOf(t.charAt(f++)),u=e.indexOf(t.charAt(f++)),n=(c=i<<18|a<<12|s<<6|u)>>16&255,r=c>>8&255,o=255&c,h[l++]=64===s?String.fromCharCode(n):64===u?String.fromCharCode(n,r):String.fromCharCode(n,r,o)}while(f<t.length);return h.join("")}(t=t.replace(/_/g,"/").replace(/-/g,"+"))}},function(t,e,n){var r=n(46),o=n(32).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,e,n){"use strict";e.__esModule=!0,e.pipeline=e.compressImage=e.exif=e.imageInfo=e.watermark=e.imageMogr2=e.getUploadUrl=e.filterParams=e.getHeadersForMkFile=e.getResumeUploadedSize=e.getHeadersForChunkUpload=e.createMkFileUrl=e.region=e.upload=void 0;var r=n(39),o=n(12),i=n(92),a=n(94),s=n(95),u=n(109),c=function(t){return t&&t.__esModule?t:{default:t}}(n(110)),f=new u.StatisticsLogger;e.upload=function(t,e,n,r,o){var a={file:t,key:e,token:n,putExtra:r,config:o};return new s.Observable((function(t){var e=new i.UploadManager(a,{onData:function(e){return t.next(e)},onError:function(e){return t.error(e)},onComplete:function(e){return t.complete(e)}},f);return e.putFile(),e.stop.bind(e)}))},e.region=r.region,e.createMkFileUrl=o.createMkFileUrl,e.getHeadersForChunkUpload=o.getHeadersForChunkUpload,e.getResumeUploadedSize=o.getResumeUploadedSize,e.getHeadersForMkFile=o.getHeadersForMkFile,e.filterParams=o.filterParams,e.getUploadUrl=o.getUploadUrl,e.imageMogr2=a.imageMogr2,e.watermark=a.watermark,e.imageInfo=a.imageInfo,e.exif=a.exif,e.compressImage=c.default,e.pipeline=a.pipeline},function(t,e,n){n(40),n(41),n(50),n(69),n(81),n(82),t.exports=n(1).Promise},function(t,e,n){var r=n(26),o=n(27);t.exports=function(t){return function(e,n){var i,a,s=String(o(e)),u=r(n),c=s.length;return u<0||u>=c?t?"":void 0:(i=s.charCodeAt(u))<55296||i>56319||u+1===c||(a=s.charCodeAt(u+1))<56320||a>57343?t?s.charAt(u):i:t?s.slice(u,u+2):a-56320+(i-55296<<10)+65536}}},function(t,e,n){"use strict";var r=n(45),o=n(21),i=n(23),a={};n(6)(a,n(2)("iterator"),(function(){return this})),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+" Iterator")}},function(t,e,n){var r=n(7),o=n(3),i=n(15);t.exports=n(4)?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),s=a.length,u=0;s>u;)r.f(t,n=a[u++],e[n]);return t}},function(t,e,n){var r=n(11),o=n(48),i=n(64);t.exports=function(t){return function(e,n,a){var s,u=r(e),c=o(u.length),f=i(a,c);if(t&&n!=n){for(;c>f;)if((s=u[f++])!=s)return!0}else for(;c>f;f++)if((t||f in u)&&u[f]===n)return t||f||0;return!t&&-1}}},function(t,e,n){var r=n(26),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(9),o=n(24),i=n(30)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},function(t,e,n){"use strict";var r=n(67),o=n(68),i=n(14),a=n(11);t.exports=n(42)(Array,"Array",(function(t,e){this._t=a(t),this._i=0,this._k=e}),(function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])}),"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){"use strict";var r,o,i,a,s=n(13),u=n(0),c=n(19),f=n(51),l=n(5),h=n(8),p=n(20),d=n(70),g=n(71),m=n(52),v=n(53).set,y=n(76)(),b=n(33),w=n(54),x=n(77),S=n(55),P=u.TypeError,_=u.process,C=_&&_.versions,I=C&&C.v8||"",F=u.Promise,U="process"==f(_),k=function(){},M=o=b.f,E=!!function(){try{var t=F.resolve(1),e=(t.constructor={})[n(2)("species")]=function(t){t(k,k)};return(U||"function"==typeof PromiseRejectionEvent)&&t.then(k)instanceof e&&0!==I.indexOf("6.6")&&-1===x.indexOf("Chrome/66")}catch(t){}}(),O=function(t){var e;return!(!h(t)||"function"!=typeof(e=t.then))&&e},T=function(t,e){if(!t._n){t._n=!0;var n=t._c;y((function(){for(var r=t._v,o=1==t._s,i=0;n.length>i;)!function(e){var n,i,a,s=o?e.ok:e.fail,u=e.resolve,c=e.reject,f=e.domain;try{s?(o||(2==t._h&&L(t),t._h=1),!0===s?n=r:(f&&f.enter(),n=s(r),f&&(f.exit(),a=!0)),n===e.promise?c(P("Promise-chain cycle")):(i=O(n))?i.call(n,u,c):u(n)):c(r)}catch(t){f&&!a&&f.exit(),c(t)}}(n[i++]);t._c=[],t._n=!1,e&&!t._h&&R(t)}))}},R=function(t){v.call(u,(function(){var e,n,r,o=t._v,i=A(t);if(i&&(e=w((function(){U?_.emit("unhandledRejection",o,t):(n=u.onunhandledrejection)?n({promise:t,reason:o}):(r=u.console)&&r.error&&r.error("Unhandled promise rejection",o)})),t._h=U||A(t)?2:1),t._a=void 0,i&&e.e)throw e.v}))},A=function(t){return 1!==t._h&&0===(t._a||t._c).length},L=function(t){v.call(u,(function(){var e;U?_.emit("rejectionHandled",t):(e=u.onrejectionhandled)&&e({promise:t,reason:t._v})}))},D=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),T(e,!0))},j=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw P("Promise can't be resolved itself");(e=O(t))?y((function(){var r={_w:n,_d:!1};try{e.call(t,c(j,r,1),c(D,r,1))}catch(t){D.call(r,t)}})):(n._v=t,n._s=1,T(n,!1))}catch(t){D.call({_w:n,_d:!1},t)}}};E||(F=function(t){d(this,F,"Promise","_h"),p(t),r.call(this);try{t(c(j,this,1),c(D,this,1))}catch(t){D.call(this,t)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(78)(F.prototype,{then:function(t,e){var n=M(m(this,F));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=U?_.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&T(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new r;this.promise=t,this.resolve=c(j,t,1),this.reject=c(D,t,1)},b.f=M=function(t){return t===F||t===a?new i(t):o(t)}),l(l.G+l.W+l.F*!E,{Promise:F}),n(23)(F,"Promise"),n(79)("Promise"),a=n(1).Promise,l(l.S+l.F*!E,"Promise",{reject:function(t){var e=M(this);return(0,e.reject)(t),e.promise}}),l(l.S+l.F*(s||!E),"Promise",{resolve:function(t){return S(s&&this===a?F:this,t)}}),l(l.S+l.F*!(E&&n(80)((function(t){F.all(t).catch(k)}))),"Promise",{all:function(t){var e=this,n=M(e),r=n.resolve,o=n.reject,i=w((function(){var n=[],i=0,a=1;g(t,!1,(function(t){var s=i++,u=!1;n.push(void 0),a++,e.resolve(t).then((function(t){u||(u=!0,n[s]=t,--a||r(n))}),o)})),--a||r(n)}));return i.e&&o(i.v),n.promise},race:function(t){var e=this,n=M(e),r=n.reject,o=w((function(){g(t,!1,(function(t){e.resolve(t).then(n.resolve,r)}))}));return o.e&&r(o.v),n.promise}})},function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},function(t,e,n){var r=n(19),o=n(72),i=n(73),a=n(3),s=n(48),u=n(74),c={},f={};(e=t.exports=function(t,e,n,l,h){var p,d,g,m,v=h?function(){return t}:u(t),y=r(n,l,e?2:1),b=0;if("function"!=typeof v)throw TypeError(t+" is not iterable!");if(i(v)){for(p=s(t.length);p>b;b++)if((m=e?y(a(d=t[b])[0],d[1]):y(t[b]))===c||m===f)return m}else for(g=v.call(t);!(d=g.next()).done;)if((m=o(g,y,d.value,e))===c||m===f)return m}).BREAK=c,e.RETURN=f},function(t,e,n){var r=n(3);t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(e){var i=t.return;throw void 0!==i&&r(i.call(t)),e}}},function(t,e,n){var r=n(14),o=n(2)("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},function(t,e,n){var r=n(51),o=n(2)("iterator"),i=n(14);t.exports=n(1).getIteratorMethod=function(t){if(void 0!=t)return t[o]||t["@@iterator"]||i[r(t)]}},function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},function(t,e,n){var r=n(0),o=n(53).set,i=r.MutationObserver||r.WebKitMutationObserver,a=r.process,s=r.Promise,u="process"==n(16)(a);t.exports=function(){var t,e,n,c=function(){var r,o;for(u&&(r=a.domain)&&r.exit();t;){o=t.fn,t=t.next;try{o()}catch(r){throw t?n():e=void 0,r}}e=void 0,r&&r.enter()};if(u)n=function(){a.nextTick(c)};else if(!i||r.navigator&&r.navigator.standalone)if(s&&s.resolve){var f=s.resolve(void 0);n=function(){f.then(c)}}else n=function(){o.call(r,c)};else{var l=!0,h=document.createTextNode("");new i(c).observe(h,{characterData:!0}),n=function(){h.data=l=!l}}return function(r){var o={fn:r,next:void 0};e&&(e.next=o),t||(t=o,n()),e=o}}},function(t,e,n){var r=n(0).navigator;t.exports=r&&r.userAgent||""},function(t,e,n){var r=n(6);t.exports=function(t,e,n){for(var o in e)n&&t[o]?t[o]=e[o]:r(t,o,e[o]);return t}},function(t,e,n){"use strict";var r=n(0),o=n(1),i=n(7),a=n(4),s=n(2)("species");t.exports=function(t){var e="function"==typeof o[t]?o[t]:r[t];a&&e&&!e[s]&&i.f(e,s,{configurable:!0,get:function(){return this}})}},function(t,e,n){var r=n(2)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,(function(){throw 2}))}catch(t){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},t(i)}catch(t){}return n}},function(t,e,n){"use strict";var r=n(5),o=n(1),i=n(0),a=n(52),s=n(55);r(r.P+r.R,"Promise",{finally:function(t){var e=a(this,o.Promise||i.Promise),n="function"==typeof t;return this.then(n?function(n){return s(e,t()).then((function(){return n}))}:t,n?function(n){return s(e,t()).then((function(){throw n}))}:t)}})},function(t,e,n){"use strict";var r=n(5),o=n(33),i=n(54);r(r.S,"Promise",{try:function(t){var e=o.f(this),n=i(t);return(n.e?e.reject:e.resolve)(n.v),e.promise}})},function(t,e,n){n(84),t.exports=n(1).Object.assign},function(t,e,n){var r=n(5);r(r.S+r.F,"Object",{assign:n(85)})},function(t,e,n){"use strict";var r=n(4),o=n(15),i=n(35),a=n(25),s=n(24),u=n(47),c=Object.assign;t.exports=!c||n(10)((function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach((function(t){e[t]=t})),7!=c({},t)[n]||Object.keys(c({},e)).join("")!=r}))?function(t,e){for(var n=s(t),c=arguments.length,f=1,l=i.f,h=a.f;c>f;)for(var p,d=u(arguments[f++]),g=l?o(d).concat(l(d)):o(d),m=g.length,v=0;m>v;)p=g[v++],r&&!h.call(d,p)||(n[p]=d[p]);return n}:c},function(t,e,n){t.exports={default:n(87),__esModule:!0}},function(t,e,n){var r=n(1),o=r.JSON||(r.JSON={stringify:JSON.stringify});t.exports=function(t){return o.stringify.apply(o,arguments)}},function(t,e,n){n(89),t.exports=n(1).Object.keys},function(t,e,n){var r=n(24),o=n(15);n(90)("keys",(function(){return function(t){return o(r(t))}}))},function(t,e,n){var r=n(5),o=n(1),i=n(10);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],a={};a[t]=e(n),r(r.S+r.F*i((function(){n(1)})),"Object",a)}},function(t,e,n){!function(e){t.exports=function(t){"use strict";function e(t,e){var n=t[0],r=t[1],o=t[2],i=t[3];r=((r+=((o=((o+=((i=((i+=((n=((n+=(r&o|~r&i)+e[0]-680876936|0)<<7|n>>>25)+r|0)&r|~n&o)+e[1]-389564586|0)<<12|i>>>20)+n|0)&n|~i&r)+e[2]+606105819|0)<<17|o>>>15)+i|0)&i|~o&n)+e[3]-1044525330|0)<<22|r>>>10)+o|0,r=((r+=((o=((o+=((i=((i+=((n=((n+=(r&o|~r&i)+e[4]-176418897|0)<<7|n>>>25)+r|0)&r|~n&o)+e[5]+1200080426|0)<<12|i>>>20)+n|0)&n|~i&r)+e[6]-1473231341|0)<<17|o>>>15)+i|0)&i|~o&n)+e[7]-45705983|0)<<22|r>>>10)+o|0,r=((r+=((o=((o+=((i=((i+=((n=((n+=(r&o|~r&i)+e[8]+1770035416|0)<<7|n>>>25)+r|0)&r|~n&o)+e[9]-1958414417|0)<<12|i>>>20)+n|0)&n|~i&r)+e[10]-42063|0)<<17|o>>>15)+i|0)&i|~o&n)+e[11]-1990404162|0)<<22|r>>>10)+o|0,r=((r+=((o=((o+=((i=((i+=((n=((n+=(r&o|~r&i)+e[12]+1804603682|0)<<7|n>>>25)+r|0)&r|~n&o)+e[13]-40341101|0)<<12|i>>>20)+n|0)&n|~i&r)+e[14]-1502002290|0)<<17|o>>>15)+i|0)&i|~o&n)+e[15]+1236535329|0)<<22|r>>>10)+o|0,r=((r+=((o=((o+=((i=((i+=((n=((n+=(r&i|o&~i)+e[1]-165796510|0)<<5|n>>>27)+r|0)&o|r&~o)+e[6]-1069501632|0)<<9|i>>>23)+n|0)&r|n&~r)+e[11]+643717713|0)<<14|o>>>18)+i|0)&n|i&~n)+e[0]-373897302|0)<<20|r>>>12)+o|0,r=((r+=((o=((o+=((i=((i+=((n=((n+=(r&i|o&~i)+e[5]-701558691|0)<<5|n>>>27)+r|0)&o|r&~o)+e[10]+38016083|0)<<9|i>>>23)+n|0)&r|n&~r)+e[15]-660478335|0)<<14|o>>>18)+i|0)&n|i&~n)+e[4]-405537848|0)<<20|r>>>12)+o|0,r=((r+=((o=((o+=((i=((i+=((n=((n+=(r&i|o&~i)+e[9]+568446438|0)<<5|n>>>27)+r|0)&o|r&~o)+e[14]-1019803690|0)<<9|i>>>23)+n|0)&r|n&~r)+e[3]-187363961|0)<<14|o>>>18)+i|0)&n|i&~n)+e[8]+1163531501|0)<<20|r>>>12)+o|0,r=((r+=((o=((o+=((i=((i+=((n=((n+=(r&i|o&~i)+e[13]-1444681467|0)<<5|n>>>27)+r|0)&o|r&~o)+e[2]-51403784|0)<<9|i>>>23)+n|0)&r|n&~r)+e[7]+1735328473|0)<<14|o>>>18)+i|0)&n|i&~n)+e[12]-1926607734|0)<<20|r>>>12)+o|0,r=((r+=((o=((o+=((i=((i+=((n=((n+=(r^o^i)+e[5]-378558|0)<<4|n>>>28)+r|0)^r^o)+e[8]-2022574463|0)<<11|i>>>21)+n|0)^n^r)+e[11]+1839030562|0)<<16|o>>>16)+i|0)^i^n)+e[14]-35309556|0)<<23|r>>>9)+o|0,r=((r+=((o=((o+=((i=((i+=((n=((n+=(r^o^i)+e[1]-1530992060|0)<<4|n>>>28)+r|0)^r^o)+e[4]+1272893353|0)<<11|i>>>21)+n|0)^n^r)+e[7]-155497632|0)<<16|o>>>16)+i|0)^i^n)+e[10]-1094730640|0)<<23|r>>>9)+o|0,r=((r+=((o=((o+=((i=((i+=((n=((n+=(r^o^i)+e[13]+681279174|0)<<4|n>>>28)+r|0)^r^o)+e[0]-358537222|0)<<11|i>>>21)+n|0)^n^r)+e[3]-722521979|0)<<16|o>>>16)+i|0)^i^n)+e[6]+76029189|0)<<23|r>>>9)+o|0,r=((r+=((o=((o+=((i=((i+=((n=((n+=(r^o^i)+e[9]-640364487|0)<<4|n>>>28)+r|0)^r^o)+e[12]-421815835|0)<<11|i>>>21)+n|0)^n^r)+e[15]+530742520|0)<<16|o>>>16)+i|0)^i^n)+e[2]-995338651|0)<<23|r>>>9)+o|0,r=((r+=((i=((i+=(r^((n=((n+=(o^(r|~i))+e[0]-198630844|0)<<6|n>>>26)+r|0)|~o))+e[7]+1126891415|0)<<10|i>>>22)+n|0)^((o=((o+=(n^(i|~r))+e[14]-1416354905|0)<<15|o>>>17)+i|0)|~n))+e[5]-57434055|0)<<21|r>>>11)+o|0,r=((r+=((i=((i+=(r^((n=((n+=(o^(r|~i))+e[12]+1700485571|0)<<6|n>>>26)+r|0)|~o))+e[3]-1894986606|0)<<10|i>>>22)+n|0)^((o=((o+=(n^(i|~r))+e[10]-1051523|0)<<15|o>>>17)+i|0)|~n))+e[1]-2054922799|0)<<21|r>>>11)+o|0,r=((r+=((i=((i+=(r^((n=((n+=(o^(r|~i))+e[8]+1873313359|0)<<6|n>>>26)+r|0)|~o))+e[15]-30611744|0)<<10|i>>>22)+n|0)^((o=((o+=(n^(i|~r))+e[6]-1560198380|0)<<15|o>>>17)+i|0)|~n))+e[13]+1309151649|0)<<21|r>>>11)+o|0,r=((r+=((i=((i+=(r^((n=((n+=(o^(r|~i))+e[4]-145523070|0)<<6|n>>>26)+r|0)|~o))+e[11]-1120210379|0)<<10|i>>>22)+n|0)^((o=((o+=(n^(i|~r))+e[2]+718787259|0)<<15|o>>>17)+i|0)|~n))+e[9]-343485551|0)<<21|r>>>11)+o|0,t[0]=n+t[0]|0,t[1]=r+t[1]|0,t[2]=o+t[2]|0,t[3]=i+t[3]|0}function n(t){var e,n=[];for(e=0;e<64;e+=4)n[e>>2]=t.charCodeAt(e)+(t.charCodeAt(e+1)<<8)+(t.charCodeAt(e+2)<<16)+(t.charCodeAt(e+3)<<24);return n}function r(t){var e,n=[];for(e=0;e<64;e+=4)n[e>>2]=t[e]+(t[e+1]<<8)+(t[e+2]<<16)+(t[e+3]<<24);return n}function o(t){var r,o,i,a,s,u,c=t.length,f=[1732584193,-271733879,-1732584194,271733878];for(r=64;r<=c;r+=64)e(f,n(t.substring(r-64,r)));for(o=(t=t.substring(r-64)).length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],r=0;r<o;r+=1)i[r>>2]|=t.charCodeAt(r)<<(r%4<<3);if(i[r>>2]|=128<<(r%4<<3),r>55)for(e(f,i),r=0;r<16;r+=1)i[r]=0;return a=(a=8*c).toString(16).match(/(.*?)(.{0,8})$/),s=parseInt(a[2],16),u=parseInt(a[1],16)||0,i[14]=s,i[15]=u,e(f,i),f}function i(t){var e,n="";for(e=0;e<4;e+=1)n+=f[t>>8*e+4&15]+f[t>>8*e&15];return n}function a(t){var e;for(e=0;e<t.length;e+=1)t[e]=i(t[e]);return t.join("")}function s(t){return/[\u0080-\uFFFF]/.test(t)&&(t=unescape(encodeURIComponent(t))),t}function u(t){var e,n=[],r=t.length;for(e=0;e<r-1;e+=2)n.push(parseInt(t.substr(e,2),16));return String.fromCharCode.apply(String,n)}function c(){this.reset()}var f=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];return a(o("hello")),"undefined"==typeof ArrayBuffer||ArrayBuffer.prototype.slice||function(){function e(t,e){return(t=0|t||0)<0?Math.max(t+e,0):Math.min(t,e)}ArrayBuffer.prototype.slice=function(n,r){var o,i,a,s,u=this.byteLength,c=e(n,u),f=u;return r!==t&&(f=e(r,u)),c>f?new ArrayBuffer(0):(o=f-c,i=new ArrayBuffer(o),a=new Uint8Array(i),s=new Uint8Array(this,c,o),a.set(s),i)}}(),c.prototype.append=function(t){return this.appendBinary(s(t)),this},c.prototype.appendBinary=function(t){this._buff+=t,this._length+=t.length;var r,o=this._buff.length;for(r=64;r<=o;r+=64)e(this._hash,n(this._buff.substring(r-64,r)));return this._buff=this._buff.substring(r-64),this},c.prototype.end=function(t){var e,n,r=this._buff,o=r.length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(e=0;e<o;e+=1)i[e>>2]|=r.charCodeAt(e)<<(e%4<<3);return this._finish(i,o),n=a(this._hash),t&&(n=u(n)),this.reset(),n},c.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},c.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash}},c.prototype.setState=function(t){return this._buff=t.buff,this._length=t.length,this._hash=t.hash,this},c.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},c.prototype._finish=function(t,n){var r,o,i,a=n;if(t[a>>2]|=128<<(a%4<<3),a>55)for(e(this._hash,t),a=0;a<16;a+=1)t[a]=0;r=(r=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),o=parseInt(r[2],16),i=parseInt(r[1],16)||0,t[14]=o,t[15]=i,e(this._hash,t)},c.hash=function(t,e){return c.hashBinary(s(t),e)},c.hashBinary=function(t,e){var n=a(o(t));return e?u(n):n},c.ArrayBuffer=function(){this.reset()},c.ArrayBuffer.prototype.append=function(t){var n,o=function(t,e,n){var r=new Uint8Array(t.byteLength+e.byteLength);return r.set(new Uint8Array(t)),r.set(new Uint8Array(e),t.byteLength),r}(this._buff.buffer,t),i=o.length;for(this._length+=t.byteLength,n=64;n<=i;n+=64)e(this._hash,r(o.subarray(n-64,n)));return this._buff=n-64<i?new Uint8Array(o.buffer.slice(n-64)):new Uint8Array(0),this},c.ArrayBuffer.prototype.end=function(t){var e,n,r=this._buff,o=r.length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(e=0;e<o;e+=1)i[e>>2]|=r[e]<<(e%4<<3);return this._finish(i,o),n=a(this._hash),t&&(n=u(n)),this.reset(),n},c.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},c.ArrayBuffer.prototype.getState=function(){var t=c.prototype.getState.call(this);return t.buff=function(t){return String.fromCharCode.apply(null,new Uint8Array(t))}(t.buff),t},c.ArrayBuffer.prototype.setState=function(t){return t.buff=function(t,e){var n,r=t.length,o=new ArrayBuffer(r),i=new Uint8Array(o);for(n=0;n<r;n+=1)i[n]=t.charCodeAt(n);return i}(t.buff),c.prototype.setState.call(this,t)},c.ArrayBuffer.prototype.destroy=c.prototype.destroy,c.ArrayBuffer.prototype._finish=c.prototype._finish,c.ArrayBuffer.hash=function(t,n){var o=a(function(t){var n,o,i,a,s,u,c=t.length,f=[1732584193,-271733879,-1732584194,271733878];for(n=64;n<=c;n+=64)e(f,r(t.subarray(n-64,n)));for(o=(t=n-64<c?t.subarray(n-64):new Uint8Array(0)).length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],n=0;n<o;n+=1)i[n>>2]|=t[n]<<(n%4<<3);if(i[n>>2]|=128<<(n%4<<3),n>55)for(e(f,i),n=0;n<16;n+=1)i[n]=0;return a=(a=8*c).toString(16).match(/(.*?)(.{0,8})$/),s=parseInt(a[2],16),u=parseInt(a[1],16)||0,i[14]=s,i[15]=u,e(f,i),f}(new Uint8Array(t)));return n?u(o):o},c}()}()},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0,e.UploadManager=void 0;var o=r(n(18)),i=r(n(34)),a=r(n(17)),s=n(12),u=n(93);e.UploadManager=function(){function t(e,n,r){var o=this;(0,a.default)(this,t),this.config=(0,i.default)({useCdnDomain:!0,disableStatisticsReport:!1,retryCount:3,checkByMD5:!1,uphost:null,forceDirect:!1,concurrentRequestLimit:3,region:null},e.config),this.putExtra=(0,i.default)({fname:"",params:{},mimeType:null},e.putExtra),this.statisticsLogger=r,this.progress=null,this.xhrList=[],this.xhrHandler=function(t){return o.xhrList.push(t)},this.aborted=!1,this.file=e.file,this.key=e.key,this.token=e.token,this.onData=function(){},this.onError=function(){},this.onComplete=function(){},this.retryCount=0,(0,i.default)(this,n)}return t.prototype.putFile=function(){var t=this;if(this.aborted=!1,this.putExtra.fname||(this.putExtra.fname=this.file.name),!this.putExtra.mimeType||!this.putExtra.mimeType.length||(0,s.isContainFileMimeType)(this.file.type,this.putExtra.mimeType)){var e=(0,s.getUploadUrl)(this.config,this.token).then((function(e){return t.uploadUrl=e,t.uploadAt=(new Date).getTime(),t.config.forceDirect?t.directUpload():t.file.size>4194304?t.resumeUpload():t.directUpload()}));return e.then((function(e){t.onComplete(e.data),t.config.disableStatisticsReport||t.sendLog(e.reqId,200)}),(function(e){if(t.clear(),e.isRequestError&&!t.config.disableStatisticsReport){var n=t.aborted?"":e.reqId,r=t.aborted?-2:e.code;t.sendLog(n,r)}var o=e.isRequestError&&0===e.code&&!t.aborted,i=++t.retryCount<=t.config.retryCount;o&&i?t.putFile():t.onError(e)})),e}var n=new Error("file type doesn't match with what you specify");this.onError(n)},t.prototype.clear=function(){this.xhrList.forEach((function(t){return t.abort()})),this.xhrList=[]},t.prototype.stop=function(){this.clear(),this.aborted=!0},t.prototype.sendLog=function(t,e){this.statisticsLogger.log({code:e,reqId:t,host:(0,s.getDomainFromUrl)(this.uploadUrl),remoteIp:"",port:(0,s.getPortFromUrl)(this.uploadUrl),duration:((new Date).getTime()-this.uploadAt)/1e3,time:Math.floor(this.uploadAt/1e3),bytesSent:this.progress?this.progress.total.loaded:0,upType:"jssdk-h5",size:this.file.size},this.token)},t.prototype.directUpload=function(){var t=this,e=new FormData;return e.append("file",this.file),e.append("token",this.token),null!=this.key&&e.append("key",this.key),e.append("fname",this.putExtra.fname),(0,s.filterParams)(this.putExtra.params).forEach((function(t){return e.append(t[0],t[1])})),(0,s.request)(this.uploadUrl,{method:"POST",body:e,onProgress:function(e){t.updateDirectProgress(e.loaded,e.total)},onCreate:this.xhrHandler}).then((function(e){return t.finishDirectProgress(),e}))},t.prototype.resumeUpload=function(){var t=this;this.loaded={mkFileProgress:0,chunks:null},this.ctxList=[],this.localInfo=(0,s.getLocalFileInfo)(this.file),this.chunks=(0,s.getChunks)(this.file,4194304),this.initChunksProgress();var e=new u.Pool((function(e){return t.uploadChunk(e)}),this.config.concurrentRequestLimit),n=this.chunks.map((function(t,n){return e.enqueue({chunk:t,index:n})})),r=o.default.all(n).then((function(){return t.mkFileReq()}));return r.then((function(e){(0,s.removeLocalFileInfo)(t.file)}),(function(e){701!==e.code||(0,s.removeLocalFileInfo)(t.file)})),r},t.prototype.uploadChunk=function(t){var e=this,n=t.index,r=t.chunk,i=this.localInfo[n],a=this.uploadUrl+"/mkblk/"+r.size,u=i&&!(0,s.isChunkExpired)(i.time),c=this.config.checkByMD5,f=function(){return e.updateChunkProgress(r.size,n),e.ctxList[n]={ctx:i.ctx,size:i.size,time:i.time,md5:i.md5},o.default.resolve(null)};return u&&!c?f():(0,s.computeMd5)(r).then((function(t){if(u&&t===i.md5)return f();var o=(0,s.getHeadersForChunkUpload)(e.token),c=function(t){e.updateChunkProgress(t.loaded,n)},l=e.xhrHandler;return(0,s.request)(a,{method:"POST",headers:o,body:r,onProgress:c,onCreate:l}).then((function(o){c({loaded:r.size}),e.ctxList[n]={time:(new Date).getTime(),ctx:o.data.ctx,size:r.size,md5:t},(0,s.setLocalFileInfo)(e.file,e.ctxList)}))}))},t.prototype.mkFileReq=function(){var t=this,e=(0,i.default)({mimeType:"application/octet-stream"},this.putExtra),n=(0,s.createMkFileUrl)(this.uploadUrl,this.file,this.key,e),r=this.ctxList.map((function(t){return t.ctx})).join(","),a=(0,s.getHeadersForMkFile)(this.token),u=this.xhrHandler;return(0,s.request)(n,{method:"POST",body:r,headers:a,onCreate:u}).then((function(e){return t.updateMkFileProgress(1),o.default.resolve(e)}))},t.prototype.updateDirectProgress=function(t,e){this.progress={total:this.getProgressInfoItem(t,e+1)},this.onData(this.progress)},t.prototype.finishDirectProgress=function(){if(!this.progress)return this.progress={total:this.getProgressInfoItem(this.file.size,this.file.size)},void this.onData(this.progress);var t=this.progress.total;this.progress={total:this.getProgressInfoItem(t.loaded+1,t.size)},this.onData(this.progress)},t.prototype.initChunksProgress=function(){this.loaded.chunks=this.chunks.map((function(t){return 0})),this.notifyResumeProgress()},t.prototype.updateChunkProgress=function(t,e){this.loaded.chunks[e]=t,this.notifyResumeProgress()},t.prototype.updateMkFileProgress=function(t){this.loaded.mkFileProgress=t,this.notifyResumeProgress()},t.prototype.notifyResumeProgress=function(){var t=this;this.progress={total:this.getProgressInfoItem((0,s.sum)(this.loaded.chunks)+this.loaded.mkFileProgress,this.file.size+1),chunks:this.chunks.map((function(e,n){return t.getProgressInfoItem(t.loaded.chunks[n],e.size)}))},this.onData(this.progress)},t.prototype.getProgressInfoItem=function(t,e){return{loaded:t,size:e,percent:t/e*100}},t}()},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0,e.Pool=void 0;var o=r(n(18)),i=r(n(17));e.Pool=function(){function t(e,n){(0,i.default)(this,t),this.runTask=e,this.queue=[],this.processing=[],this.limit=n}return t.prototype.enqueue=function(t){var e=this;return new o.default((function(n,r){e.queue.push({task:t,resolve:n,reject:r}),e.check()}))},t.prototype.run=function(t){var e=this;this.queue=this.queue.filter((function(e){return e!==t})),this.processing.push(t),this.runTask(t.task).then((function(){e.processing=e.processing.filter((function(e){return e!==t})),t.resolve(),e.check()}),(function(e){return t.reject(e)}))},t.prototype.check=function(){var t=this,e=this.processing.length,n=this.limit-e;this.queue.slice(0,n).forEach((function(e,n){t.run(e)}))},t}()},function(t,e,n){"use strict";function r(t,e){return t=encodeURIComponent(t),"/"!==e.slice(e.length-1)&&(e+="/"),e+t}function o(t,e,n){if(!/^\d$/.test(t.mode))throw"mode should be number in imageView2";var o=t.mode,i=t.w,a=t.h,s=t.q,u=t.format;if(!i&&!a)throw"param w and h is empty in imageView2";var c="imageView2/"+encodeURIComponent(o);return c+=i?"/w/"+encodeURIComponent(i):"",c+=a?"/h/"+encodeURIComponent(a):"",c+=s?"/q/"+encodeURIComponent(s):"",c+=u?"/format/"+encodeURIComponent(u):"",e&&(c=r(e,n)+"?"+c),c}function i(t,e,n){var o=t["auto-orient"],i=t.thumbnail,a=t.strip,s=t.gravity,u=t.crop,c=t.quality,f=t.rotate,l=t.format,h=t.blur,p="imageMogr2";return p+=o?"/auto-orient":"",p+=i?"/thumbnail/"+encodeURIComponent(i):"",p+=a?"/strip":"",p+=s?"/gravity/"+encodeURIComponent(s):"",p+=c?"/quality/"+encodeURIComponent(c):"",p+=u?"/crop/"+encodeURIComponent(u):"",p+=f?"/rotate/"+encodeURIComponent(f):"",p+=l?"/format/"+encodeURIComponent(l):"",p+=h?"/blur/"+encodeURIComponent(h):"",e&&(p=r(e,n)+"?"+p),p}function a(t,e,n){var o=t.mode;if(!o)throw"mode can't be empty in watermark";var i="watermark/"+o;if(1!==o&&2!==o)throw"mode is wrong";if(1===o){var a=t.image;if(!a)throw"image can't be empty in watermark";i+=a?"/image/"+(0,u.urlSafeBase64Encode)(a):""}if(2===o){var s=t.text,c=t.font,f=t.fontsize,l=t.fill;if(!s)throw"text can't be empty in watermark";i+=s?"/text/"+(0,u.urlSafeBase64Encode)(s):"",i+=c?"/font/"+(0,u.urlSafeBase64Encode)(c):"",i+=f?"/fontsize/"+f:"",i+=l?"/fill/"+(0,u.urlSafeBase64Encode)(l):""}var h=t.dissolve,p=t.gravity,d=t.dx,g=t.dy;return i+=h?"/dissolve/"+encodeURIComponent(h):"",i+=p?"/gravity/"+encodeURIComponent(p):"",i+=d?"/dx/"+encodeURIComponent(d):"",i+=g?"/dy/"+encodeURIComponent(g):"",e&&(i=r(e,n)+"?"+i),i}e.__esModule=!0,e.imageView2=o,e.imageMogr2=i,e.watermark=a,e.imageInfo=function(t,e){var n=r(t,e)+"?imageInfo";return(0,s.request)(n,{method:"GET"})},e.exif=function(t,e){var n=r(t,e)+"?exif";return(0,s.request)(n,{method:"GET"})},e.pipeline=function(t,e,n){var s=void 0,u=void 0,c="";if("[object Array]"===Object.prototype.toString.call(t)){for(var f=0,l=t.length;f<l;f++){if(!(s=t[f]).fop)throw"fop can't be empty in pipeline";switch(s.fop){case"watermark":c+=a(s)+"|";break;case"imageView2":c+=o(s)+"|";break;case"imageMogr2":c+=i(s)+"|";break;default:u=!0}if(u)throw"fop is wrong in pipeline"}if(e){var h=(c=r(e,n)+"?"+c).length;"|"===c.slice(h-1)&&(c=c.slice(0,h-1))}return c}throw"pipeline's first param should be array"};var s=n(12),u=n(56)},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0,e.Observable=void 0;var o=r(n(96)),i=r(n(17));e.Observable=function(){function t(e){(0,i.default)(this,t),this.subscribeAction=e}return t.prototype.subscribe=function(t,e,n){var r=new a(t,e,n),o=this.subscribeAction(r);return new s(r,o)},t}();var a=function(){function t(e,n,r){(0,i.default)(this,t),this.isStopped=!1,"object"===(void 0===e?"undefined":(0,o.default)(e))?(this._onNext=e.next,this._onError=e.error,this._onCompleted=e.complete):(this._onNext=e,this._onError=n,this._onCompleted=r)}return t.prototype.next=function(t){!this.isStopped&&this._onNext&&this._onNext(t)},t.prototype.error=function(t){!this.isStopped&&this._onError&&(this.isStopped=!0,this._onError(t))},t.prototype.complete=function(t){!this.isStopped&&this._onCompleted&&(this.isStopped=!0,this._onCompleted(t))},t}(),s=function(){function t(e,n){(0,i.default)(this,t),this.observer=e,this.result=n}return t.prototype.unsubscribe=function(){this.observer.isStopped=!0,this.result()},t}()},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var o=r(n(97)),i=r(n(99)),a="function"==typeof i.default&&"symbol"==typeof o.default?function(t){return typeof t}:function(t){return t&&"function"==typeof i.default&&t.constructor===i.default&&t!==i.default.prototype?"symbol":typeof t};e.default="function"==typeof i.default&&"symbol"===a(o.default)?function(t){return void 0===t?"undefined":a(t)}:function(t){return t&&"function"==typeof i.default&&t.constructor===i.default&&t!==i.default.prototype?"symbol":void 0===t?"undefined":a(t)}},function(t,e,n){t.exports={default:n(98),__esModule:!0}},function(t,e,n){n(41),n(50),t.exports=n(37).f("iterator")},function(t,e,n){t.exports={default:n(100),__esModule:!0}},function(t,e,n){n(101),n(40),n(107),n(108),t.exports=n(1).Symbol},function(t,e,n){"use strict";var r=n(0),o=n(9),i=n(4),a=n(5),s=n(44),u=n(102).KEY,c=n(10),f=n(31),l=n(23),h=n(22),p=n(2),d=n(37),g=n(38),m=n(103),v=n(104),y=n(3),b=n(8),w=n(24),x=n(11),S=n(29),P=n(21),_=n(45),C=n(105),I=n(106),F=n(35),U=n(7),k=n(15),M=I.f,E=U.f,O=C.f,T=r.Symbol,R=r.JSON,A=R&&R.stringify,L=p("_hidden"),D=p("toPrimitive"),j={}.propertyIsEnumerable,B=f("symbol-registry"),G=f("symbols"),N=f("op-symbols"),q=Object.prototype,z="function"==typeof T&&!!F.f,H=r.QObject,V=!H||!H.prototype||!H.prototype.findChild,W=i&&c((function(){return 7!=_(E({},"a",{get:function(){return E(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=M(q,e);r&&delete q[e],E(t,e,n),r&&t!==q&&E(q,e,r)}:E,J=function(t){var e=G[t]=_(T.prototype);return e._k=t,e},X=z&&"symbol"==typeof T.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof T},Y=function(t,e,n){return t===q&&Y(N,e,n),y(t),e=S(e,!0),y(n),o(G,e)?(n.enumerable?(o(t,L)&&t[L][e]&&(t[L][e]=!1),n=_(n,{enumerable:P(0,!1)})):(o(t,L)||E(t,L,P(1,{})),t[L][e]=!0),W(t,e,n)):E(t,e,n)},K=function(t,e){y(t);for(var n,r=m(e=x(e)),o=0,i=r.length;i>o;)Y(t,n=r[o++],e[n]);return t},$=function(t){var e=j.call(this,t=S(t,!0));return!(this===q&&o(G,t)&&!o(N,t))&&(!(e||!o(this,t)||!o(G,t)||o(this,L)&&this[L][t])||e)},Q=function(t,e){if(t=x(t),e=S(e,!0),t!==q||!o(G,e)||o(N,e)){var n=M(t,e);return!n||!o(G,e)||o(t,L)&&t[L][e]||(n.enumerable=!0),n}},Z=function(t){for(var e,n=O(x(t)),r=[],i=0;n.length>i;)o(G,e=n[i++])||e==L||e==u||r.push(e);return r},tt=function(t){for(var e,n=t===q,r=O(n?N:x(t)),i=[],a=0;r.length>a;)!o(G,e=r[a++])||n&&!o(q,e)||i.push(G[e]);return i};z||(s((T=function(){if(this instanceof T)throw TypeError("Symbol is not a constructor!");var t=h(arguments.length>0?arguments[0]:void 0),e=function(n){this===q&&e.call(N,n),o(this,L)&&o(this[L],t)&&(this[L][t]=!1),W(this,t,P(1,n))};return i&&V&&W(q,t,{configurable:!0,set:e}),J(t)}).prototype,"toString",(function(){return this._k})),I.f=Q,U.f=Y,n(57).f=C.f=Z,n(25).f=$,F.f=tt,i&&!n(13)&&s(q,"propertyIsEnumerable",$,!0),d.f=function(t){return J(p(t))}),a(a.G+a.W+a.F*!z,{Symbol:T});for(var et="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),nt=0;et.length>nt;)p(et[nt++]);for(var rt=k(p.store),ot=0;rt.length>ot;)g(rt[ot++]);a(a.S+a.F*!z,"Symbol",{for:function(t){return o(B,t+="")?B[t]:B[t]=T(t)},keyFor:function(t){if(!X(t))throw TypeError(t+" is not a symbol!");for(var e in B)if(B[e]===t)return e},useSetter:function(){V=!0},useSimple:function(){V=!1}}),a(a.S+a.F*!z,"Object",{create:function(t,e){return void 0===e?_(t):K(_(t),e)},defineProperty:Y,defineProperties:K,getOwnPropertyDescriptor:Q,getOwnPropertyNames:Z,getOwnPropertySymbols:tt});var it=c((function(){F.f(1)}));a(a.S+a.F*it,"Object",{getOwnPropertySymbols:function(t){return F.f(w(t))}}),R&&a(a.S+a.F*(!z||c((function(){var t=T();return"[null]"!=A([t])||"{}"!=A({a:t})||"{}"!=A(Object(t))}))),"JSON",{stringify:function(t){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);if(n=e=r[1],(b(e)||void 0!==t)&&!X(t))return v(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!X(e))return e}),r[1]=e,A.apply(R,r)}}),T.prototype[D]||n(6)(T.prototype,D,T.prototype.valueOf),l(T,"Symbol"),l(Math,"Math",!0),l(r.JSON,"JSON",!0)},function(t,e,n){var r=n(22)("meta"),o=n(8),i=n(9),a=n(7).f,s=0,u=Object.isExtensible||function(){return!0},c=!n(10)((function(){return u(Object.preventExtensions({}))})),f=function(t){a(t,r,{value:{i:"O"+ ++s,w:{}}})},l=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,r)){if(!u(t))return"F";if(!e)return"E";f(t)}return t[r].i},getWeak:function(t,e){if(!i(t,r)){if(!u(t))return!0;if(!e)return!1;f(t)}return t[r].w},onFreeze:function(t){return c&&l.NEED&&u(t)&&!i(t,r)&&f(t),t}}},function(t,e,n){var r=n(15),o=n(35),i=n(25);t.exports=function(t){var e=r(t),n=o.f;if(n)for(var a,s=n(t),u=i.f,c=0;s.length>c;)u.call(t,a=s[c++])&&e.push(a);return e}},function(t,e,n){var r=n(16);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){var r=n(11),o=n(57).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(t){return a.slice()}}(t):o(r(t))}},function(t,e,n){var r=n(25),o=n(21),i=n(11),a=n(29),s=n(9),u=n(43),c=Object.getOwnPropertyDescriptor;e.f=n(4)?c:function(t,e){if(t=i(t),e=a(e,!0),u)try{return c(t,e)}catch(t){}if(s(t,e))return o(!r.f.call(t,e),t[e])}},function(t,e,n){n(38)("asyncIterator")},function(t,e,n){n(38)("observable")},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0,e.StatisticsLogger=void 0;var o=r(n(36)),i=r(n(17)),a=n(12);e.StatisticsLogger=function(){function t(){(0,i.default)(this,t)}return t.prototype.log=function(t,e){var n="";(0,o.default)(t).forEach((function(e){return n+=t[e]+","})),this.send(n,e,0)},t.prototype.send=function(t,e,n){var r=(0,a.createXHR)(),o=this;r.open("POST","https://uplog.qbox.me/log/3"),r.setRequestHeader("Content-type","application/x-www-form-urlencoded"),r.setRequestHeader("Authorization","UpToken "+e),r.onreadystatechange=function(){4===r.readyState&&200!==r.status&&++n<=3&&o.send(t,e,n)},r.send(t)},t}()},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var o=r(n(18)),i=r(n(34)),a=r(n(17)),s=r(n(36)),u=n(111),c=n(12),f={PNG:"image/png",JPEG:"image/jpeg",WEBP:"image/webp",BMP:"image/bmp"},l=Math.log(2),h=(0,s.default)(f).map((function(t){return f[t]})),p=f.JPEG,d=function(){function t(e,n){(0,a.default)(this,t),this.config=(0,i.default)({quality:.92,noCompressIfLarger:!1},n),this.file=e}return t.prototype.process=function(){var t=this;this.outputType=this.file.type;var e={};return function(t){return h.includes(t)}(this.file.type)?this.getOriginImage().then((function(e){return t.getCanvas(e)})).then((function(n){var r=1;return t.config.maxWidth&&(r=Math.min(1,t.config.maxWidth/n.width)),t.config.maxHeight&&(r=Math.min(1,r,t.config.maxHeight/n.height)),e.width=n.width,e.height=n.height,t.doScale(n,r)})).then((function(n){var r=t.toBlob(n);return r.size>t.file.size&&t.config.noCompressIfLarger?{dist:t.file,width:e.width,height:e.height}:{dist:r,width:n.width,height:n.height}})):o.default.reject(new Error("unsupported file type: "+this.file.type))},t.prototype.clear=function(t,e,n){this.outputType===p?(t.fillStyle="#fff",t.fillRect(0,0,e,n)):t.clearRect(0,0,e,n)},t.prototype.getOriginImage=function(){var t=this;return new o.default((function(e,n){var r=(0,c.createObjectURL)(t.file),o=new Image;o.onload=function(){e(o)},o.onerror=function(){n("image load error")},o.src=r}))},t.prototype.getCanvas=function(t){var e=this;return new o.default((function(n,r){u.EXIF.getData(t,(function(){var r=u.EXIF.getTag(t,"Orientation")||1,o=(0,c.getTransform)(t,r),i=o.width,a=o.height,s=o.matrix,f=document.createElement("canvas"),l=f.getContext("2d");f.width=i,f.height=a,e.clear(l,i,a),l.transform.apply(l,s),l.drawImage(t,0,0),n(f)}))}))},t.prototype.doScale=function(t,e){if(1===e)return o.default.resolve(t);var n=t.getContext("2d"),r=Math.min(4,Math.ceil(1/e/l)),i=Math.pow(e,1/r),a=document.createElement("canvas"),s=a.getContext("2d"),u=t.width,c=t.height,f=u,h=c;a.width=u,a.height=c;for(var p=void 0,d=void 0,g=0;g<r;g++){var m=u*i|0,v=c*i|0;g===r-1&&(m=f*e,v=h*e),g%2==0?(p=t,d=s):(p=a,d=n),this.clear(d,u,c),d.drawImage(p,0,0,u,c,0,0,m,v),u=m,c=v}var y=p===t?a:t,b=d.getImageData(0,0,u,c);return y.width=u,y.height=c,d.putImageData(b,0,0),o.default.resolve(y)},t.prototype.toBlob=function(t){var e=t.toDataURL(this.outputType,this.config.quality),n=atob(e.split(",")[1]).split("").map((function(t){return t.charCodeAt(0)}));return new Blob([new Uint8Array(n)],{type:this.outputType})},t}();e.default=function(t,e){return new d(t,e).process()}},function(t,e,r){var o;(function(){function r(t){return!!t.exifdata}function i(t,e){function n(n){var r=a(n);t.exifdata=r||{};var o=function(t){var e=new DataView(t);if(d&&console.log("Got file of length "+t.byteLength),255!=e.getUint8(0)||216!=e.getUint8(1))return d&&console.log("Not a valid JPEG"),!1;for(var n=2,r=t.byteLength;n<r;){if(function(t,e){return 56===t.getUint8(e)&&66===t.getUint8(e+1)&&73===t.getUint8(e+2)&&77===t.getUint8(e+3)&&4===t.getUint8(e+4)&&4===t.getUint8(e+5)}(e,n)){var o=e.getUint8(n+7);return o%2!=0&&(o+=1),0===o&&(o=4),s(t,n+8+o,e.getUint16(n+6+o))}n++}}(n);if(t.iptcdata=o||{},g.isXmpEnabled){var i=function(t){if("DOMParser"in self){var e=new DataView(t);if(d&&console.log("Got file of length "+t.byteLength),255!=e.getUint8(0)||216!=e.getUint8(1))return d&&console.log("Not a valid JPEG"),!1;for(var n=2,r=t.byteLength,o=new DOMParser;n<r-4;){if("http"==f(e,n,4)){var i=n-1,a=e.getUint16(n-2)-1,s=f(e,i,a),u=s.indexOf("xmpmeta>")+8,c=(s=s.substring(s.indexOf("<x:xmpmeta"),u)).indexOf("x:xmpmeta")+10;return s=s.slice(0,c)+'xmlns:Iptc4xmpCore="http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:plus="http://schemas.android.com/apk/lib/com.google.android.gms.plus" xmlns:ext="http://www.gettyimages.com/xsltExtension/1.0" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:crs="http://ns.adobe.com/camera-raw-settings/1.0/" xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/" xmlns:Iptc4xmpExt="http://iptc.org/std/Iptc4xmpExt/2008-02-29/" '+s.slice(c),p(o.parseFromString(s,"text/xml"))}n++}}}(n);t.xmpdata=i||{}}e&&e.call(t)}if(t.src)if(/^data\:/i.test(t.src))n(function(t,e){e=e||t.match(/^data\:([^\;]+)\;base64,/im)[1]||"",t=t.replace(/^data\:([^\;]+)\;base64,/gim,"");for(var n=atob(t),r=n.length,o=new ArrayBuffer(r),i=new Uint8Array(o),a=0;a<r;a++)i[a]=n.charCodeAt(a);return o}(t.src));else if(/^blob\:/i.test(t.src))(o=new FileReader).onload=function(t){n(t.target.result)},function(t,e){var n=new XMLHttpRequest;n.open("GET",t,!0),n.responseType="blob",n.onload=function(t){200!=this.status&&0!==this.status||e(this.response)},n.send()}(t.src,(function(t){o.readAsArrayBuffer(t)}));else{var r=new XMLHttpRequest;r.onload=function(){if(200!=this.status&&0!==this.status)throw"Could not load image";n(r.response),r=null},r.open("GET",t.src,!0),r.responseType="arraybuffer",r.send(null)}else if(self.FileReader&&(t instanceof self.Blob||t instanceof self.File)){var o;(o=new FileReader).onload=function(t){d&&console.log("Got file of length "+t.target.result.byteLength),n(t.target.result)},o.readAsArrayBuffer(t)}}function a(t){var e=new DataView(t);if(d&&console.log("Got file of length "+t.byteLength),255!=e.getUint8(0)||216!=e.getUint8(1))return d&&console.log("Not a valid JPEG"),!1;for(var n,r=2,o=t.byteLength;r<o;){if(255!=e.getUint8(r))return d&&console.log("Not a valid marker at offset "+r+", found: "+e.getUint8(r)),!1;if(n=e.getUint8(r+1),d&&console.log(n),225==n)return d&&console.log("Found 0xFFE1 marker"),l(e,r+4,e.getUint16(r+2));r+=2+e.getUint16(r+2)}}function s(t,e,n){for(var r,o,i,a,s=new DataView(t),u={},c=e;c<e+n;)28===s.getUint8(c)&&2===s.getUint8(c+1)&&(a=s.getUint8(c+2))in x&&(i=s.getInt16(c+3),o=x[a],r=f(s,c+5,i),u.hasOwnProperty(o)?u[o]instanceof Array?u[o].push(r):u[o]=[u[o],r]:u[o]=r),c++;return u}function u(t,e,n,r,o){var i,a,s,u=t.getUint16(n,!o),f={};for(s=0;s<u;s++)i=n+12*s+2,!(a=r[t.getUint16(i,!o)])&&d&&console.log("Unknown tag: "+t.getUint16(i,!o)),f[a]=c(t,i,e,n,o);return f}function c(t,e,n,r,o){var i,a,s,u,c,l,h=t.getUint16(e+2,!o),p=t.getUint32(e+4,!o),d=t.getUint32(e+8,!o)+n;switch(h){case 1:case 7:if(1==p)return t.getUint8(e+8,!o);for(i=p>4?d:e+8,a=[],u=0;u<p;u++)a[u]=t.getUint8(i+u);return a;case 2:return f(t,i=p>4?d:e+8,p-1);case 3:if(1==p)return t.getUint16(e+8,!o);for(i=p>2?d:e+8,a=[],u=0;u<p;u++)a[u]=t.getUint16(i+2*u,!o);return a;case 4:if(1==p)return t.getUint32(e+8,!o);for(a=[],u=0;u<p;u++)a[u]=t.getUint32(d+4*u,!o);return a;case 5:if(1==p)return c=t.getUint32(d,!o),l=t.getUint32(d+4,!o),(s=new Number(c/l)).numerator=c,s.denominator=l,s;for(a=[],u=0;u<p;u++)c=t.getUint32(d+8*u,!o),l=t.getUint32(d+4+8*u,!o),a[u]=new Number(c/l),a[u].numerator=c,a[u].denominator=l;return a;case 9:if(1==p)return t.getInt32(e+8,!o);for(a=[],u=0;u<p;u++)a[u]=t.getInt32(d+4*u,!o);return a;case 10:if(1==p)return t.getInt32(d,!o)/t.getInt32(d+4,!o);for(a=[],u=0;u<p;u++)a[u]=t.getInt32(d+8*u,!o)/t.getInt32(d+4+8*u,!o);return a}}function f(t,e,r){var o="";for(n=e;n<e+r;n++)o+=String.fromCharCode(t.getUint8(n));return o}function l(t,e){if("Exif"!=f(t,e,4))return d&&console.log("Not valid EXIF data! "+f(t,e,4)),!1;var n,r,o,i,a,s=e+6;if(18761==t.getUint16(s))n=!1;else{if(19789!=t.getUint16(s))return d&&console.log("Not valid TIFF data! (no 0x4949 or 0x4D4D)"),!1;n=!0}if(42!=t.getUint16(s+2,!n))return d&&console.log("Not valid TIFF data! (no 0x002A)"),!1;var c=t.getUint32(s+4,!n);if(c<8)return d&&console.log("Not valid TIFF data! (First offset less than 8)",t.getUint32(s+4,!n)),!1;if((r=u(t,s,s+c,v,n)).ExifIFDPointer)for(o in i=u(t,s,s+r.ExifIFDPointer,m,n)){switch(o){case"LightSource":case"Flash":case"MeteringMode":case"ExposureProgram":case"SensingMethod":case"SceneCaptureType":case"SceneType":case"CustomRendered":case"WhiteBalance":case"GainControl":case"Contrast":case"Saturation":case"Sharpness":case"SubjectDistanceRange":case"FileSource":i[o]=w[o][i[o]];break;case"ExifVersion":case"FlashpixVersion":i[o]=String.fromCharCode(i[o][0],i[o][1],i[o][2],i[o][3]);break;case"ComponentsConfiguration":i[o]=w.Components[i[o][0]]+w.Components[i[o][1]]+w.Components[i[o][2]]+w.Components[i[o][3]]}r[o]=i[o]}if(r.GPSInfoIFDPointer)for(o in a=u(t,s,s+r.GPSInfoIFDPointer,y,n)){switch(o){case"GPSVersionID":a[o]=a[o][0]+"."+a[o][1]+"."+a[o][2]+"."+a[o][3]}r[o]=a[o]}return r.thumbnail=function(t,e,n,r){var o=function(t,e,n){var r=t.getUint16(e,!n);return t.getUint32(e+2+12*r,!n)}(t,e+n,r);if(!o)return{};if(o>t.byteLength)return{};var i=u(t,e,e+o,b,r);if(i.Compression)switch(i.Compression){case 6:if(i.JpegIFOffset&&i.JpegIFByteCount){var a=e+i.JpegIFOffset,s=i.JpegIFByteCount;i.blob=new Blob([new Uint8Array(t.buffer,a,s)],{type:"image/jpeg"})}break;case 1:console.log("Thumbnail image format is TIFF, which is not implemented.");break;default:console.log("Unknown thumbnail image format '%s'",i.Compression)}else 2==i.PhotometricInterpretation&&console.log("Thumbnail image format is RGB, which is not implemented.");return i}(t,s,c,n),r}function h(t){var e={};if(1==t.nodeType){if(t.attributes.length>0){e["@attributes"]={};for(var n=0;n<t.attributes.length;n++){var r=t.attributes.item(n);e["@attributes"][r.nodeName]=r.nodeValue}}}else if(3==t.nodeType)return t.nodeValue;if(t.hasChildNodes())for(var o=0;o<t.childNodes.length;o++){var i=t.childNodes.item(o),a=i.nodeName;if(null==e[a])e[a]=h(i);else{if(null==e[a].push){var s=e[a];e[a]=[],e[a].push(s)}e[a].push(h(i))}}return e}function p(t){try{var e={};if(t.children.length>0)for(var n=0;n<t.children.length;n++){var r=t.children.item(n),o=r.attributes;for(var i in o){var a=o[i],s=a.nodeName,u=a.nodeValue;void 0!==s&&(e[s]=u)}var c=r.nodeName;if(void 0===e[c])e[c]=h(r);else{if(void 0===e[c].push){var f=e[c];e[c]=[],e[c].push(f)}e[c].push(h(r))}}else e=t.textContent;return e}catch(t){console.log(t.message)}}var d=!1,g=function(t){return t instanceof g?t:this instanceof g?void(this.EXIFwrapped=t):new g(t)};void 0!==t&&t.exports&&(e=t.exports=g),e.EXIF=g;var m=g.Tags={36864:"ExifVersion",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37500:"MakerNote",37510:"UserComment",40964:"RelatedSoundFile",36867:"DateTimeOriginal",36868:"DateTimeDigitized",37520:"SubsecTime",37521:"SubsecTimeOriginal",37522:"SubsecTimeDigitized",33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"ISOSpeedRatings",34856:"OECF",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBias",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37396:"SubjectArea",37386:"FocalLength",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRation",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",40965:"InteroperabilityIFDPointer",42016:"ImageUniqueID"},v=g.TiffTags={256:"ImageWidth",257:"ImageHeight",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer",40965:"InteroperabilityIFDPointer",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",274:"Orientation",277:"SamplesPerPixel",284:"PlanarConfiguration",530:"YCbCrSubSampling",531:"YCbCrPositioning",282:"XResolution",283:"YResolution",296:"ResolutionUnit",273:"StripOffsets",278:"RowsPerStrip",279:"StripByteCounts",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",301:"TransferFunction",318:"WhitePoint",319:"PrimaryChromaticities",529:"YCbCrCoefficients",532:"ReferenceBlackWhite",306:"DateTime",270:"ImageDescription",271:"Make",272:"Model",305:"Software",315:"Artist",33432:"Copyright"},y=g.GPSTags={0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential"},b=g.IFD1Tags={256:"ImageWidth",257:"ImageHeight",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",273:"StripOffsets",274:"Orientation",277:"SamplesPerPixel",278:"RowsPerStrip",279:"StripByteCounts",282:"XResolution",283:"YResolution",284:"PlanarConfiguration",296:"ResolutionUnit",513:"JpegIFOffset",514:"JpegIFByteCount",529:"YCbCrCoefficients",530:"YCbCrSubSampling",531:"YCbCrPositioning",532:"ReferenceBlackWhite"},w=g.StringValues={ExposureProgram:{0:"Not defined",1:"Manual",2:"Normal program",3:"Aperture priority",4:"Shutter priority",5:"Creative program",6:"Action program",7:"Portrait mode",8:"Landscape mode"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{0:"Unknown",1:"Daylight",2:"Fluorescent",3:"Tungsten (incandescent light)",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 - 5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire",1:"Flash fired",5:"Strobe return light not detected",7:"Strobe return light detected",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},SensingMethod:{1:"Not defined",2:"One-chip color area sensor",3:"Two-chip color area sensor",4:"Three-chip color area sensor",5:"Color sequential area sensor",7:"Trilinear sensor",8:"Color sequential linear sensor"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},SceneType:{1:"Directly photographed"},CustomRendered:{0:"Normal process",1:"Custom process"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},GainControl:{0:"None",1:"Low gain up",2:"High gain up",3:"Low gain down",4:"High gain down"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},SubjectDistanceRange:{0:"Unknown",1:"Macro",2:"Close view",3:"Distant view"},FileSource:{3:"DSC"},Components:{0:"",1:"Y",2:"Cb",3:"Cr",4:"R",5:"G",6:"B"}},x={120:"caption",110:"credit",25:"keywords",55:"dateCreated",80:"byline",85:"bylineTitle",122:"captionWriter",105:"headline",116:"copyright",15:"category"};g.enableXmp=function(){g.isXmpEnabled=!0},g.disableXmp=function(){g.isXmpEnabled=!1},g.getData=function(t,e){return!((self.Image&&t instanceof self.Image||self.HTMLImageElement&&t instanceof self.HTMLImageElement)&&!t.complete||(r(t)?e&&e.call(t):i(t,e),0))},g.getTag=function(t,e){if(r(t))return t.exifdata[e]},g.getIptcTag=function(t,e){if(r(t))return t.iptcdata[e]},g.getAllTags=function(t){if(!r(t))return{};var e,n=t.exifdata,o={};for(e in n)n.hasOwnProperty(e)&&(o[e]=n[e]);return o},g.getAllIptcTags=function(t){if(!r(t))return{};var e,n=t.iptcdata,o={};for(e in n)n.hasOwnProperty(e)&&(o[e]=n[e]);return o},g.pretty=function(t){if(!r(t))return"";var e,n=t.exifdata,o="";for(e in n)n.hasOwnProperty(e)&&("object"==typeof n[e]?n[e]instanceof Number?o+=e+" : "+n[e]+" ["+n[e].numerator+"/"+n[e].denominator+"]\r\n":o+=e+" : ["+n[e].length+" values]\r\n":o+=e+" : "+n[e]+"\r\n");return o},g.readFromBinaryFile=function(t){return a(t)},void 0===(o=function(){return g}.apply(e,[]))||(t.exports=o)}).call(this)}])}))},fb21:function(t,e,n){"use strict";n("9865"),n("7f7f");var r,o=n("4360"),i=n("cea2"),a=n("bc3a"),s=n.n(a);e["a"]=function(t){var e=t.file,n=t.progress,a=t.success,u=t.error;if(e){var c=o["a"].getters.uploadToken||{},f=parseInt(1e4*Math.random()*(new Date).getTime())+e.name.substr(e.name.lastIndexOf("."));if(1==c.mode){var l=s.a.CancelToken;r=l.source();var h=new FormData;h.append("file",e),h.append("file_name",f),s.a.post("/public/upload",h,{cancelToken:r.token}).then((function(t){return a(t.data.data)})).catch((function(t){return u(t.message)})),n(100)}else if(2==c.mode){var p={next:function(t){return n(Math.ceil(t.total.percent))},error:function(t){return u(t.message)},complete:function(t){return a(t.key)}},d=i["upload"](e,f,c.secret,{},{});r=d.subscribe(p)}else alert("上传配置错误");return r}}}}]);
//# sourceMappingURL=chunk-343c8d41.f0041881.js.map
\ No newline at end of file
This diff could not be displayed because it is too large.
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-35027968"],{"4f37":function(t,e,s){"use strict";s("aa77")("trim",(function(t){return function(){return t(this,3)}}))},aa77:function(t,e,s){var n=s("5ca1"),a=s("be13"),o=s("79e5"),i=s("fdef"),r="["+i+"]",c="​…",l=RegExp("^"+r+r+"*"),u=RegExp(r+r+"*$"),m=function(t,e,s){var a={},r=o((function(){return!!i[t]()||c[t]()!=c})),l=a[t]=r?e(f):i[t];s&&(a[s]=l),n(n.P+n.F*r,"String",a)},f=m.trim=function(t,e){return t=String(a(t)),1&e&&(t=t.replace(l,"")),2&e&&(t=t.replace(u,"")),t};t.exports=m},bd01:function(t,e,s){"use strict";s.r(e);var n=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"login"},[s("div",{staticClass:"form"},[s("div",{staticClass:"left"},[s("div",{staticClass:"tit"},[t._v("欢迎回来, 请登录!")]),s("span",[t._v("客服系统-工作台")]),s("div",{staticClass:"client"},[s("p",[t._v("客户端下载")]),s("el-button",{attrs:{type:"primary",size:"mini",icon:"el-icon-download"},on:{click:t.dmac}},[t._v("Mac 版下载")]),s("el-button",{attrs:{type:"primary",size:"mini",icon:"el-icon-download"},on:{click:t.dwin}},[t._v("Windows 版下载")])],1)]),s("div",{staticClass:"right"},[s("el-form",{ref:"form",attrs:{model:t.form,onsubmit:"return false","label-width":"80px"}},[s("span",{staticClass:"lable"},[t._v("用户登录")]),s("el-input",{staticClass:"input",attrs:{placeholder:"请输入用户名","prefix-icon":"el-icon-user"},model:{value:t.form.username,callback:function(e){t.$set(t.form,"username",e)},expression:"form.username"}}),s("el-input",{staticClass:"input",attrs:{type:"password",placeholder:"请输入密码","prefix-icon":"el-icon-unlock","show-password":""},model:{value:t.form.password,callback:function(e){t.$set(t.form,"password",e)},expression:"form.password"}}),s("el-row",{staticClass:"btn-group",attrs:{type:"flex"}},[s("el-button",{attrs:{"native-type":"submit",size:"small",type:"primary"},on:{click:t.login}},[t._v("登录")]),s("el-button",{attrs:{size:"small",type:"info"}},[t._v("重置")])],1)],1)],1)])])},a=[],o=(s("4f37"),s("bc3a")),i=s.n(o),r={name:"login",data:function(){return{form:{username:"",password:""}}},mounted:function(){document.title="用户登录"},methods:{login:function(){var t=this;""!=this.form.username.trim()?""!=this.form.password.trim()?i.a.post("/auth/login",this.form).then((function(e){t.$store.commit("onChangeAdminInfo",e.data.data),t.$store.commit("onIsLogin",!0),localStorage.setItem("Authorization",e.data.data.token),t.$message({message:"登录成功!",type:"success"}),t.$router.push({path:"/index"})})).catch((function(e){console.log(e),t.$message.error(e.response.data.message)})):this.$message.error("密码不能为空!"):this.$message.error("用户名不能为空!")},dmac:function(){window.open("http://kf.aissz.com:666/static/app/mac-0.0.1.dmg")},dwin:function(){window.open("http://kf.aissz.com:666/static/app/win-0.0.1.exe")}}},c=r,l=(s("de49"),s("2877")),u=Object(l["a"])(c,n,a,!1,null,"27526a96",null);e["default"]=u.exports},de49:function(t,e,s){"use strict";var n=s("ed1b"),a=s.n(n);a.a},ed1b:function(t,e,s){},fdef:function(t,e){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"}}]);
//# sourceMappingURL=chunk-35027968.79ffcf7b.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es6.string.trim.js","webpack:///./node_modules/core-js/modules/_string-trim.js","webpack:///./src/views/auth/login.vue?735a","webpack:///src/views/auth/login.vue","webpack:///./src/views/auth/login.vue?767d","webpack:///./src/views/auth/login.vue","webpack:///./src/views/auth/login.vue?d233","webpack:///./node_modules/core-js/modules/_string-ws.js"],"names":["$trim","this","$export","defined","fails","spaces","space","non","ltrim","RegExp","rtrim","exporter","KEY","exec","ALIAS","exp","FORCE","fn","trim","P","F","string","TYPE","String","replace","module","exports","render","_vm","_h","$createElement","_c","_self","staticClass","_v","attrs","on","dmac","dwin","ref","form","model","value","callback","$$v","$set","expression","login","staticRenderFns","name","data","username","password","mounted","document","title","methods","localStorage","setItem","response","token","message","type","console","log","error","$message","window","open","component"],"mappings":"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","file":"js/chunk-35027968.79ffcf7b.js","sourcesContent":["'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"login\"},[_c('div',{staticClass:\"form\"},[_c('div',{staticClass:\"left\"},[_c('div',{staticClass:\"tit\"},[_vm._v(\"欢迎回来, 请登录!\")]),_c('span',[_vm._v(\"客服系统-工作台\")]),_c('div',{staticClass:\"client\"},[_c('p',[_vm._v(\"客户端下载\")]),_c('el-button',{attrs:{\"type\":\"primary\",\"size\":\"mini\",\"icon\":\"el-icon-download\"},on:{\"click\":_vm.dmac}},[_vm._v(\"Mac 版下载\")]),_c('el-button',{attrs:{\"type\":\"primary\",\"size\":\"mini\",\"icon\":\"el-icon-download\"},on:{\"click\":_vm.dwin}},[_vm._v(\"Windows 版下载\")])],1)]),_c('div',{staticClass:\"right\"},[_c('el-form',{ref:\"form\",attrs:{\"model\":_vm.form,\"onsubmit\":\"return false\",\"label-width\":\"80px\"}},[_c('span',{staticClass:\"lable\"},[_vm._v(\"用户登录\")]),_c('el-input',{staticClass:\"input\",attrs:{\"placeholder\":\"请输入用户名\",\"prefix-icon\":\"el-icon-user\"},model:{value:(_vm.form.username),callback:function ($$v) {_vm.$set(_vm.form, \"username\", $$v)},expression:\"form.username\"}}),_c('el-input',{staticClass:\"input\",attrs:{\"type\":\"password\",\"placeholder\":\"请输入密码\",\"prefix-icon\":\"el-icon-unlock\",\"show-password\":\"\"},model:{value:(_vm.form.password),callback:function ($$v) {_vm.$set(_vm.form, \"password\", $$v)},expression:\"form.password\"}}),_c('el-row',{staticClass:\"btn-group\",attrs:{\"type\":\"flex\"}},[_c('el-button',{attrs:{\"native-type\":\"submit\",\"size\":\"small\",\"type\":\"primary\"},on:{\"click\":_vm.login}},[_vm._v(\"登录\")]),_c('el-button',{attrs:{\"size\":\"small\",\"type\":\"info\"}},[_vm._v(\"重置\")])],1)],1)],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"login\">\n <div class=\"form\">\n <div class=\"left\">\n <div class=\"tit\">欢迎回来, 请登录!</div>\n <span>客服系统-工作台</span>\n <div class=\"client\">\n <p>客户端下载</p>\n <el-button @click=\"dmac\" type=\"primary\" size=\"mini\" icon=\"el-icon-download\">Mac 版下载</el-button>\n <el-button @click=\"dwin\" type=\"primary\" size=\"mini\" icon=\"el-icon-download\">Windows 版下载</el-button>\n </div>\n </div>\n <div class=\"right\">\n <el-form ref=\"form\" :model=\"form\" onsubmit=\"return false\" label-width=\"80px\">\n <span class=\"lable\">用户登录</span>\n <el-input\n class=\"input\"\n placeholder=\"请输入用户名\"\n prefix-icon=\"el-icon-user\"\n v-model=\"form.username\">\n </el-input>\n <el-input\n class=\"input\"\n type=\"password\"\n placeholder=\"请输入密码\"\n prefix-icon=\"el-icon-unlock\"\n show-password\n v-model=\"form.password\">\n </el-input>\n <el-row type=\"flex\" class=\"btn-group\">\n <el-button native-type=\"submit\" @click=\"login\" size=\"small\" type=\"primary\">登录</el-button>\n <el-button size=\"small\" type=\"info\">重置</el-button>\n </el-row>\n </el-form>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport axios from 'axios'\nexport default {\n name: 'login',\n data(){\n return{\n form: {\n username: \"\",\n password: \"\"\n }\n }\n },\n mounted(){\n document.title = \"用户登录\"\n },\n methods: {\n // login\n login(){\n // valid\n if(this.form.username.trim() == \"\"){\n this.$message.error('用户名不能为空!')\n return\n }\n if(this.form.password.trim() == \"\"){\n this.$message.error('密码不能为空!')\n return\n }\n axios.post('/auth/login', this.form)\n .then(response => {\n this.$store.commit(\"onChangeAdminInfo\", response.data.data)\n this.$store.commit(\"onIsLogin\", true)\n localStorage.setItem(\"Authorization\", response.data.data.token)\n this.$message({\n message: '登录成功!',\n type: 'success'\n });\n this.$router.push({ path: '/index'})\n })\n .catch(error => {\n console.log(error)\n this.$message.error(error.response.data.message)\n });\n },\n dmac(){\n window.open(\"http://kf.aissz.com:666/static/app/mac-0.0.1.dmg\")\n },\n dwin(){\n window.open(\"http://kf.aissz.com:666/static/app/win-0.0.1.exe\")\n }\n }\n}\n</script>\n<style lang=\"stylus\" scoped>\n .login{\n display flex\n width 100%\n height 100%\n background url('../../assets/login_bg.jpg') center bottom no-repeat;\n background-size cover\n .form{\n display flex\n overflow hidden\n width 600px;\n height 300px;\n background-color #fff\n margin auto\n border-radius 5px;\n .left{\n width 350px\n height 100%\n padding 20px;\n box-sizing border-box\n background url('../../assets/login_bg1.jpg') center bottom no-repeat;\n background-size cover\n font-size 18px;\n color #fff\n display flex\n flex-direction column\n justify-content center\n .tit{\n margin-top: 50px;\n border-bottom 1px solid #fff\n }\n div{\n width 300px\n padding-bottom 10px;\n margin-bottom 10px;\n }\n span{\n font-size 14px;\n }\n .client{\n margin-top: 80px;\n button{\n margin-top 10px\n }\n }\n }\n .right{\n padding 20px;\n padding-top: 50px;\n .input{\n margin-bottom 20px;\n }\n .btn-group{\n margin-top: 15px;\n }\n .lable{\n font-size 18px;\n color: #606266;\n margin-bottom 15px;\n display block\n }\n }\n }\n }\n</style>\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./login.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./login.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./login.vue?vue&type=template&id=27526a96&scoped=true&\"\nimport script from \"./login.vue?vue&type=script&lang=js&\"\nexport * from \"./login.vue?vue&type=script&lang=js&\"\nimport style0 from \"./login.vue?vue&type=style&index=0&id=27526a96&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"27526a96\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./login.vue?vue&type=style&index=0&id=27526a96&lang=stylus&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./login.vue?vue&type=style&index=0&id=27526a96&lang=stylus&scoped=true&\"","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n"],"sourceRoot":""}
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-3a5ae4b9"],{"26b0":function(e,t,o){"use strict";o.r(t);var a=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",[o("div",{staticClass:"mini-im-head"},[o("span",[o("i",{staticClass:"el-icon-setting"}),o("span",{attrs:{slot:"title"},slot:"title"},[e._v("系统设置")])])]),o("el-tabs",{model:{value:e.activeName,callback:function(t){e.activeName=t},expression:"activeName"}},[o("el-tab-pane",{attrs:{label:"基本设置",name:"first"}},[o("el-form",{ref:"form",staticStyle:{width:"500px"},attrs:{"label-width":"100px"}},[o("el-form-item",{attrs:{label:"系统LOGO","label-width":"120px"}},[o("el-row",{attrs:{gutter:10}},[o("el-col",{attrs:{span:3}},[o("div",{staticClass:"mini-im-file-button",attrs:{title:"点击上传图片"}},[o("img",{attrs:{src:e.systemInfo.logo,alt:"点击上传图片"}}),o("input",{attrs:{disabled:!e.isRoot,onClick:"this.value = null",type:"file",accept:"image/*"},on:{change:e.systemLogoUpload}}),o("div",{directives:[{name:"show",rawName:"v-show",value:e.isUploadingSysLogo,expression:"isUploadingSysLogo"}],staticClass:"mini-im-file-percent"},[o("span",[e._v(e._s(e.uploadysLogoPercent))])])])]),o("el-col",{attrs:{span:6}})],1)],1),o("el-form-item",{attrs:{label:"系统名称"}},[o("el-input",{attrs:{readonly:!e.isRoot,placeholder:"请输入系统名称"},model:{value:e.systemInfo.title,callback:function(t){e.$set(e.systemInfo,"title",t)},expression:"systemInfo.title"}})],1),o("el-form-item",{attrs:{label:"版权信息"}},[o("el-input",{attrs:{readonly:!e.isRoot,placeholder:"请输入版权信息"},model:{value:e.systemInfo.copy_right,callback:function(t){e.$set(e.systemInfo,"copy_right",t)},expression:"systemInfo.copy_right"}})],1),o("el-divider",{attrs:{"content-position":"left"}},[e._v("选择资源存储空间服务商(上传的,图片,文件)")]),o("el-form-item",{attrs:{label:"上传选项"}},[o("el-select",{model:{value:e.systemInfo.upload_mode,callback:function(t){e.$set(e.systemInfo,"upload_mode",t)},expression:"systemInfo.upload_mode"}},e._l(e.$store.getters.uploadsConfigs,(function(e){return o("el-option",{key:e.id,attrs:{label:e.name,value:e.id}})})),1)],1),o("el-form-item",[e.isRoot?o("el-button",{attrs:{size:"mini"},on:{click:e.saveSystem}},[e._v("保存设置")]):e._e()],1)],1)],1),o("el-tab-pane",{attrs:{label:"公司信息",name:"second"}},[o("el-divider",{attrs:{"content-position":"left"}},[e._v("该配置信息会展示在各个前台给客户")]),o("el-form",{ref:"form",staticStyle:{width:"500px"},attrs:{"label-width":"100px"}},[o("el-form-item",{attrs:{label:"公司LOGO","label-width":"120px"}},[o("el-row",{attrs:{gutter:10}},[o("el-col",{attrs:{span:3}},[o("div",{staticClass:"mini-im-file-button",attrs:{title:"点击上传图片"}},[o("img",{attrs:{src:e.companyInfo.logo,alt:"点击上传图片"}}),o("input",{attrs:{disabled:!e.isRoot,onClick:"this.value = null",type:"file",accept:"image/*"},on:{change:e.companyLogoUpload}}),o("div",{directives:[{name:"show",rawName:"v-show",value:e.isUploadingCompany,expression:"isUploadingCompany"}],staticClass:"mini-im-file-percent"},[o("span",[e._v(e._s(e.uploadCompanyPercent))])])])]),o("el-col",{attrs:{span:6}})],1)],1),o("el-form-item",{attrs:{label:"公司名称"}},[o("el-input",{attrs:{readonly:!e.isRoot,placeholder:"请输入公司名称"},model:{value:e.companyInfo.title,callback:function(t){e.$set(e.companyInfo,"title",t)},expression:"companyInfo.title"}})],1),o("el-form-item",{attrs:{label:"服务时间"}},[o("el-input",{attrs:{readonly:!e.isRoot,placeholder:"请输入在线客服服务时间"},model:{value:e.companyInfo.service,callback:function(t){e.$set(e.companyInfo,"service",t)},expression:"companyInfo.service"}})],1),o("el-form-item",{attrs:{label:"公司邮箱"}},[o("el-input",{attrs:{readonly:!e.isRoot,placeholder:"请输入公司邮箱"},model:{value:e.companyInfo.email,callback:function(t){e.$set(e.companyInfo,"email",t)},expression:"companyInfo.email"}})],1),o("el-form-item",{attrs:{label:"公司电话"}},[o("el-input",{attrs:{readonly:!e.isRoot,placeholder:"请输入公司电话"},model:{value:e.companyInfo.tel,callback:function(t){e.$set(e.companyInfo,"tel",t)},expression:"companyInfo.tel"}})],1),o("el-form-item",{attrs:{label:"公司地址"}},[o("el-input",{attrs:{readonly:!e.isRoot,type:"textarea",rows:"5",placeholder:"请输入公司地址"},model:{value:e.companyInfo.address,callback:function(t){e.$set(e.companyInfo,"address",t)},expression:"companyInfo.address"}})],1),o("el-form-item",[e.isRoot?o("el-button",{attrs:{size:"mini"},on:{click:e.saveCompany}},[e._v("保存设置")]):e._e()],1)],1)],1),e.isRoot?o("el-tab-pane",{attrs:{label:"七牛云存储配置",name:"three"}},[o("el-form",{ref:"form",staticStyle:{width:"500px"},attrs:{"label-width":"100px"}},[o("el-divider",{attrs:{"content-position":"left"}},[e._v("请不要随意修改该选项,可能会导致客户端上传不了文件或图片")]),o("el-form-item",{attrs:{label:"Bucket"}},[o("el-input",{attrs:{placeholder:"请输入bucket"},model:{value:e.qiniuSecret.bucket,callback:function(t){e.$set(e.qiniuSecret,"bucket",t)},expression:"qiniuSecret.bucket"}})],1),o("el-form-item",{attrs:{label:"accessKey"}},[o("el-input",{attrs:{placeholder:"请输入accessKey","show-password":""},model:{value:e.qiniuSecret.access_key,callback:function(t){e.$set(e.qiniuSecret,"access_key",t)},expression:"qiniuSecret.access_key"}})],1),o("el-form-item",{attrs:{label:"secretKey"}},[o("el-input",{attrs:{placeholder:"请输入secretKey","show-password":""},model:{value:e.qiniuSecret.secret_key,callback:function(t){e.$set(e.qiniuSecret,"secret_key",t)},expression:"qiniuSecret.secret_key"}})],1),o("el-form-item",{attrs:{label:"Host"}},[o("el-input",{attrs:{placeholder:"请输入host"},model:{value:e.qiniuSecret.host,callback:function(t){e.$set(e.qiniuSecret,"host",t)},expression:"qiniuSecret.host"}})],1),o("el-form-item",[o("el-button",{attrs:{size:"mini"},on:{click:e.saveQiniu}},[e._v("保存设置")])],1)],1)],1):e._e(),o("el-tab-pane",{attrs:{label:"客户端平台",name:"fives"}},[o("el-divider",{attrs:{"content-position":"left"}},[e._v("通过该配置,对接的平台,机器人,知识库匹配等 (系统默认项不可修改)")]),o("el-table",{staticStyle:{width:"100%"},attrs:{data:e.$store.getters.platformConfig}},[o("el-table-column",{attrs:{prop:"id",label:"#ID",width:"80"}}),o("el-table-column",{attrs:{prop:"title",label:"名称",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){return[1==t.row.system?o("el-tag",{attrs:{type:"danger"}},[e._v(e._s(t.row.title))]):e._e(),0==t.row.system?o("el-tag",[e._v(e._s(t.row.title))]):e._e()]}}])}),o("el-table-column",{attrs:{prop:"alias",label:"别名",align:"center"}}),e.isRoot?o("el-table-column",{attrs:{label:"操作",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){return[0==t.row.system?[o("el-button",{attrs:{size:"mini"},on:{click:function(o){return e.editPlatform(t.row)}}},[e._v("编 辑")]),o("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(o){return e.deletePlatform(t.row)}}},[e._v("删 除")])]:e._e(),1==t.row.system?o("span",{staticStyle:{"font-size":"12px",color:"#999"}},[e._v("系统内置,不可操作")]):e._e()]}}],null,!1,748916141)}):e._e(),o("el-table-column")],1),e.isRoot?o("el-button",{staticStyle:{"margin-top":"20px"},attrs:{size:"mini"},on:{click:function(t){e.createDialogFormVisible=!0}}},[e._v("添加新平台")]):e._e()],1)],1),o("CreatePlatformDialog",{attrs:{dialogFormVisible:e.createDialogFormVisible},on:{"update:dialogFormVisible":function(t){e.createDialogFormVisible=t},"update:dialog-form-visible":function(t){e.createDialogFormVisible=t}}}),o("EditPlatformDialog",{attrs:{formData:e.editPlatformItem,dialogFormVisible:e.editDialogFormVisible},on:{"update:dialogFormVisible":function(t){e.editDialogFormVisible=t},"update:dialog-form-visible":function(t){e.editDialogFormVisible=t}}})],1)},s=[],i=o("bc3a"),l=o.n(i),n=o("fb21"),r=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("el-dialog",{attrs:{title:"添加平台","show-close":!1,visible:e.dialogFormVisible,"close-on-click-modal":!1},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[o("el-form",{attrs:{model:e.form}},[o("el-form-item",{attrs:{label:"平台名称","label-width":e.formLabelWidth}},[o("el-input",{attrs:{placeholder:"请输入平台名称",autocomplete:"off"},model:{value:e.form.title,callback:function(t){e.$set(e.form,"title",t)},expression:"form.title"}})],1),o("el-form-item",{attrs:{label:"平台别名","label-width":e.formLabelWidth}},[o("el-input",{attrs:{placeholder:"请输入平台别名",autocomplete:"off"},model:{value:e.form.alias,callback:function(t){e.$set(e.form,"alias",t)},expression:"form.alias"}})],1)],1),o("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[o("el-button",{on:{click:e.closeModal}},[e._v("取 消")]),o("el-button",{attrs:{type:"primary"},on:{click:e.save}},[e._v("保 存")])],1)],1)},c=[],m={name:"mini-im-create-admin",data:function(){return{form:{title:"",alias:""},formLabelWidth:"80px"}},props:{dialogFormVisible:Boolean,complete:Function},methods:{closeModal:function(){this.$emit("update:dialogFormVisible",!1)},save:function(){var e=this,t=this.$loading({lock:!0,text:"保存中...",spinner:"el-icon-loading",background:"rgba(0, 0, 0, 0.5)"});l.a.post("/platform",this.form).then((function(o){console.log(o),t.close(),e.$message.success("添加成功"),e.closeModal(),e.resize(),e.$store.dispatch("ON_GET_PLATFORM_CONFIG")})).catch((function(o){t.close(),e.$message.error(o.response.data.message)}))},resize:function(){this.form={title:"",alias:""}}}},f=m,u=o("2877"),p=Object(u["a"])(f,r,c,!1,null,"74dae80a",null),d=p.exports,g=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("el-dialog",{attrs:{title:"修改平台","show-close":!1,visible:e.dialogFormVisible,"close-on-click-modal":!1},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[o("el-form",{attrs:{model:e.form}},[o("el-form-item",{attrs:{label:"平台名称","label-width":e.formLabelWidth}},[o("el-input",{attrs:{placeholder:"请输入平台名称",autocomplete:"off"},model:{value:e.form.title,callback:function(t){e.$set(e.form,"title",t)},expression:"form.title"}})],1),o("el-form-item",{attrs:{label:"平台别名","label-width":e.formLabelWidth}},[o("el-input",{attrs:{placeholder:"请输入平台别名",autocomplete:"off"},model:{value:e.form.alias,callback:function(t){e.$set(e.form,"alias",t)},expression:"form.alias"}})],1)],1),o("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[o("el-button",{on:{click:e.closeModal}},[e._v("取 消")]),o("el-button",{attrs:{type:"primary"},on:{click:e.save}},[e._v("保 存")])],1)],1)},b=[],h={name:"me-create-admin",data:function(){return{form:{title:"",alias:""},formLabelWidth:"80px"}},props:{dialogFormVisible:Boolean,complete:Function,formData:Object},methods:{closeModal:function(){this.$emit("update:dialogFormVisible",!1)},save:function(){var e=this,t=this.$loading({lock:!0,text:"保存中...",spinner:"el-icon-loading",background:"rgba(0, 0, 0, 0.5)"});l.a.put("/platform",this.form).then((function(o){console.log(o),t.close(),e.$message.success("添加成功"),e.closeModal(),e.$store.dispatch("ON_GET_PLATFORM_CONFIG")})).catch((function(o){t.close(),e.$message.error(o.response.data.message)}))}},watch:{formData:function(){this.form=Object.assign({},this.form,this.formData)}}},y=h,v=Object(u["a"])(y,g,b,!1,null,"51cfd3c3",null),_=v.exports,$={name:"system",components:{CreatePlatformDialog:d,EditPlatformDialog:_},data:function(){return{activeName:"first",systemInfo:{},companyInfo:{},isUploadingSysLogo:!1,uploadysLogoPercent:"",isUploadingCompany:!1,uploadCompanyPercent:"",qiniuSecret:{},createDialogFormVisible:!1,editDialogFormVisible:!1,editPlatformItem:{}}},computed:{isRoot:function(){return!!this.$store.getters.adminInfo&&1==this.$store.getters.adminInfo.root}},updated:function(){this.$nextTick((function(){this.systemInfo=this.$store.getters.systemInfo,this.companyInfo=this.$store.getters.companyInfo}))},mounted:function(){this.systemInfo=this.$store.getters.systemInfo,this.companyInfo=this.$store.getters.companyInfo,this.isRoot&&this.getQiniu()},methods:{onSubmit:function(){this.$confirm("您确定要保存修改后的配置吗?","温馨提示!",{confirmButtonText:"保存",cancelButtonText:"取消",center:!0,type:"warning"})},systemLogoUpload:function(e){var t=this,o=e.target.files[0];Object(n["a"])({file:o,progress:function(e){t.isUploadingSysLogo=!0,t.uploadysLogoPercent=e+"%"},success:function(e){t.isUploadingSysLogo=!1,t.uploadysLogoPercent="",t.$message.success("上传成功");var o=t.$store.getters.uploadToken.host+"/"+e;t.systemInfo.logo=o},error:function(e){t.isUploadingSysLogo=!1,t.uploadysLogoPercent="",t.$message.error(e.message)}})},saveSystem:function(){var e=this;this.$confirm("您确定要保存修改后的系统配置吗?","温馨提示!",{confirmButtonText:"保存",cancelButtonText:"取消",center:!0,type:"warning"}).then((function(){l.a.put("/system",e.systemInfo).then((function(t){e.$store.commit("onChangeSystemInfo",t.data.data),e.$message.success("保存成功"),e.$store.dispatch("ON_GET_SYSTEM"),e.$store.dispatch("ON_GET_UPLOADS_CONFIG")})).catch((function(t){e.$message.error(t.response.data.message)}))}))},companyLogoUpload:function(e){var t=this,o=e.target.files[0];Object(n["a"])({file:o,progress:function(e){t.isUploadingCompany=!0,t.uploadCompanyPercent=e+"%"},success:function(e){t.isUploadingCompany=!1,t.uploadCompanyPercent="",t.$message.success("上传成功");var o=t.$store.getters.uploadToken.host+"/"+e;t.companyInfo.logo=o},error:function(e){t.isUploadingCompany=!1,t.uploadCompanyPercent="",t.$message.error(e.message)}})},saveCompany:function(){var e=this;this.$confirm("您确定要保存修改后的公司信息吗?","温馨提示!",{confirmButtonText:"保存",cancelButtonText:"取消",center:!0,type:"warning"}).then((function(){l.a.put("/company",e.companyInfo).then((function(t){e.$store.commit("onChangeCompanyInfo",t.data.data),e.$message.success("保存成功")})).catch((function(t){e.$message.error(t.response.data.message)}))}))},getQiniu:function(){var e=this;l.a.get("/qiniu").then((function(t){e.qiniuSecret=t.data.data})).catch((function(t){e.$message.error(t.response.data.message)}))},saveQiniu:function(){var e=this;this.$confirm("您确定要保存修改后的七牛配置信息吗?如配置信息错误会导致客户端无法上传图片文件","警告!",{confirmButtonText:"保存",cancelButtonText:"取消",center:!0,type:"warning"}).then((function(){l.a.put("/qiniu",e.qiniuSecret).then((function(t){console.log(t.data.data),e.$message.success("保存成功")})).catch((function(t){e.$message.error(t.response.data.message)}))}))},deletePlatform:function(e){var t=this;console.log(e),this.$confirm("您确定要删除该平台配置吗? 删除后不可恢复!","温馨提示!",{confirmButtonText:"确定",cancelButtonText:"取消",center:!0,type:"warning"}).then((function(){l.a.delete("/platform/"+e.id).then((function(e){console.log(e.data),t.$message.success("删除成功"),t.$store.dispatch("ON_GET_PLATFORM_CONFIG")})).catch((function(e){t.$message.error(e.response.data.message)}))}))},editPlatform:function(e){this.editPlatformItem=e,this.editDialogFormVisible=!0}}},k=$,I=(o("5fcc"),Object(u["a"])(k,a,s,!1,null,"e4baa1e8",null));t["default"]=I.exports},"5fcc":function(e,t,o){"use strict";var a=o("7c07"),s=o.n(a);s.a},"7c07":function(e,t,o){}}]);
//# sourceMappingURL=chunk-3a5ae4b9.95fb80dc.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///./src/views/system/index.vue?33ff","webpack:///./src/views/system/create_platform.vue?5cf8","webpack:///src/views/system/create_platform.vue","webpack:///./src/views/system/create_platform.vue?17f1","webpack:///./src/views/system/create_platform.vue","webpack:///./src/views/system/edit_platform.vue?b052","webpack:///src/views/system/edit_platform.vue","webpack:///./src/views/system/edit_platform.vue?54ae","webpack:///./src/views/system/edit_platform.vue","webpack:///src/views/system/index.vue","webpack:///./src/views/system/index.vue?cbce","webpack:///./src/views/system/index.vue","webpack:///./src/views/system/index.vue?2ad3"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","slot","_v","model","value","callback","$$v","activeName","expression","ref","staticStyle","systemInfo","logo","isRoot","on","systemLogoUpload","directives","name","rawName","_s","uploadysLogoPercent","$set","_l","$store","getters","item","key","id","saveSystem","_e","companyInfo","companyLogoUpload","uploadCompanyPercent","saveCompany","qiniuSecret","saveQiniu","platformConfig","scopedSlots","_u","fn","scope","row","system","title","$event","editPlatform","deletePlatform","createDialogFormVisible","editPlatformItem","editDialogFormVisible","staticRenderFns","dialogFormVisible","form","formLabelWidth","closeModal","save","data","props","Boolean","complete","Function","methods","$emit","lock","text","spinner","background","resize","component","formData","Object","watch","assign","components","CreatePlatformDialog","EditPlatformDialog","isUploadingSysLogo","isUploadingCompany","computed","adminInfo","root","updated","$nextTick","mounted","onSubmit","$confirm","confirmButtonText","cancelButtonText","center","type","fileData","file","target","files","imgUrl","getQiniu"],"mappings":"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","file":"js/chunk-3a5ae4b9.95fb80dc.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"mini-im-head\"},[_c('span',[_c('i',{staticClass:\"el-icon-setting\"}),_c('span',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"系统设置\")])])]),_c('el-tabs',{model:{value:(_vm.activeName),callback:function ($$v) {_vm.activeName=$$v},expression:\"activeName\"}},[_c('el-tab-pane',{attrs:{\"label\":\"基本设置\",\"name\":\"first\"}},[_c('el-form',{ref:\"form\",staticStyle:{\"width\":\"500px\"},attrs:{\"label-width\":\"100px\"}},[_c('el-form-item',{attrs:{\"label\":\"系统LOGO\",\"label-width\":\"120px\"}},[_c('el-row',{attrs:{\"gutter\":10}},[_c('el-col',{attrs:{\"span\":3}},[_c('div',{staticClass:\"mini-im-file-button\",attrs:{\"title\":\"点击上传图片\"}},[_c('img',{attrs:{\"src\":_vm.systemInfo.logo,\"alt\":\"点击上传图片\"}}),_c('input',{attrs:{\"disabled\":!_vm.isRoot,\"onClick\":\"this.value = null\",\"type\":\"file\",\"accept\":\"image/*\"},on:{\"change\":_vm.systemLogoUpload}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isUploadingSysLogo),expression:\"isUploadingSysLogo\"}],staticClass:\"mini-im-file-percent\"},[_c('span',[_vm._v(_vm._s(_vm.uploadysLogoPercent))])])])]),_c('el-col',{attrs:{\"span\":6}})],1)],1),_c('el-form-item',{attrs:{\"label\":\"系统名称\"}},[_c('el-input',{attrs:{\"readonly\":!_vm.isRoot,\"placeholder\":\"请输入系统名称\"},model:{value:(_vm.systemInfo.title),callback:function ($$v) {_vm.$set(_vm.systemInfo, \"title\", $$v)},expression:\"systemInfo.title\"}})],1),_c('el-form-item',{attrs:{\"label\":\"版权信息\"}},[_c('el-input',{attrs:{\"readonly\":!_vm.isRoot,\"placeholder\":\"请输入版权信息\"},model:{value:(_vm.systemInfo.copy_right),callback:function ($$v) {_vm.$set(_vm.systemInfo, \"copy_right\", $$v)},expression:\"systemInfo.copy_right\"}})],1),_c('el-divider',{attrs:{\"content-position\":\"left\"}},[_vm._v(\"选择资源存储空间服务商(上传的,图片,文件)\")]),_c('el-form-item',{attrs:{\"label\":\"上传选项\"}},[_c('el-select',{model:{value:(_vm.systemInfo.upload_mode),callback:function ($$v) {_vm.$set(_vm.systemInfo, \"upload_mode\", $$v)},expression:\"systemInfo.upload_mode\"}},_vm._l((_vm.$store.getters.uploadsConfigs),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.name,\"value\":item.id}})}),1)],1),_c('el-form-item',[(_vm.isRoot)?_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":_vm.saveSystem}},[_vm._v(\"保存设置\")]):_vm._e()],1)],1)],1),_c('el-tab-pane',{attrs:{\"label\":\"公司信息\",\"name\":\"second\"}},[_c('el-divider',{attrs:{\"content-position\":\"left\"}},[_vm._v(\"该配置信息会展示在各个前台给客户\")]),_c('el-form',{ref:\"form\",staticStyle:{\"width\":\"500px\"},attrs:{\"label-width\":\"100px\"}},[_c('el-form-item',{attrs:{\"label\":\"公司LOGO\",\"label-width\":\"120px\"}},[_c('el-row',{attrs:{\"gutter\":10}},[_c('el-col',{attrs:{\"span\":3}},[_c('div',{staticClass:\"mini-im-file-button\",attrs:{\"title\":\"点击上传图片\"}},[_c('img',{attrs:{\"src\":_vm.companyInfo.logo,\"alt\":\"点击上传图片\"}}),_c('input',{attrs:{\"disabled\":!_vm.isRoot,\"onClick\":\"this.value = null\",\"type\":\"file\",\"accept\":\"image/*\"},on:{\"change\":_vm.companyLogoUpload}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isUploadingCompany),expression:\"isUploadingCompany\"}],staticClass:\"mini-im-file-percent\"},[_c('span',[_vm._v(_vm._s(_vm.uploadCompanyPercent))])])])]),_c('el-col',{attrs:{\"span\":6}})],1)],1),_c('el-form-item',{attrs:{\"label\":\"公司名称\"}},[_c('el-input',{attrs:{\"readonly\":!_vm.isRoot,\"placeholder\":\"请输入公司名称\"},model:{value:(_vm.companyInfo.title),callback:function ($$v) {_vm.$set(_vm.companyInfo, \"title\", $$v)},expression:\"companyInfo.title\"}})],1),_c('el-form-item',{attrs:{\"label\":\"服务时间\"}},[_c('el-input',{attrs:{\"readonly\":!_vm.isRoot,\"placeholder\":\"请输入在线客服服务时间\"},model:{value:(_vm.companyInfo.service),callback:function ($$v) {_vm.$set(_vm.companyInfo, \"service\", $$v)},expression:\"companyInfo.service\"}})],1),_c('el-form-item',{attrs:{\"label\":\"公司邮箱\"}},[_c('el-input',{attrs:{\"readonly\":!_vm.isRoot,\"placeholder\":\"请输入公司邮箱\"},model:{value:(_vm.companyInfo.email),callback:function ($$v) {_vm.$set(_vm.companyInfo, \"email\", $$v)},expression:\"companyInfo.email\"}})],1),_c('el-form-item',{attrs:{\"label\":\"公司电话\"}},[_c('el-input',{attrs:{\"readonly\":!_vm.isRoot,\"placeholder\":\"请输入公司电话\"},model:{value:(_vm.companyInfo.tel),callback:function ($$v) {_vm.$set(_vm.companyInfo, \"tel\", $$v)},expression:\"companyInfo.tel\"}})],1),_c('el-form-item',{attrs:{\"label\":\"公司地址\"}},[_c('el-input',{attrs:{\"readonly\":!_vm.isRoot,\"type\":\"textarea\",\"rows\":\"5\",\"placeholder\":\"请输入公司地址\"},model:{value:(_vm.companyInfo.address),callback:function ($$v) {_vm.$set(_vm.companyInfo, \"address\", $$v)},expression:\"companyInfo.address\"}})],1),_c('el-form-item',[(_vm.isRoot)?_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":_vm.saveCompany}},[_vm._v(\"保存设置\")]):_vm._e()],1)],1)],1),(_vm.isRoot)?_c('el-tab-pane',{attrs:{\"label\":\"七牛云存储配置\",\"name\":\"three\"}},[_c('el-form',{ref:\"form\",staticStyle:{\"width\":\"500px\"},attrs:{\"label-width\":\"100px\"}},[_c('el-divider',{attrs:{\"content-position\":\"left\"}},[_vm._v(\"请不要随意修改该选项,可能会导致客户端上传不了文件或图片\")]),_c('el-form-item',{attrs:{\"label\":\"Bucket\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入bucket\"},model:{value:(_vm.qiniuSecret.bucket),callback:function ($$v) {_vm.$set(_vm.qiniuSecret, \"bucket\", $$v)},expression:\"qiniuSecret.bucket\"}})],1),_c('el-form-item',{attrs:{\"label\":\"accessKey\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入accessKey\",\"show-password\":\"\"},model:{value:(_vm.qiniuSecret.access_key),callback:function ($$v) {_vm.$set(_vm.qiniuSecret, \"access_key\", $$v)},expression:\"qiniuSecret.access_key\"}})],1),_c('el-form-item',{attrs:{\"label\":\"secretKey\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入secretKey\",\"show-password\":\"\"},model:{value:(_vm.qiniuSecret.secret_key),callback:function ($$v) {_vm.$set(_vm.qiniuSecret, \"secret_key\", $$v)},expression:\"qiniuSecret.secret_key\"}})],1),_c('el-form-item',{attrs:{\"label\":\"Host\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入host\"},model:{value:(_vm.qiniuSecret.host),callback:function ($$v) {_vm.$set(_vm.qiniuSecret, \"host\", $$v)},expression:\"qiniuSecret.host\"}})],1),_c('el-form-item',[_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":_vm.saveQiniu}},[_vm._v(\"保存设置\")])],1)],1)],1):_vm._e(),_c('el-tab-pane',{attrs:{\"label\":\"客户端平台\",\"name\":\"fives\"}},[_c('el-divider',{attrs:{\"content-position\":\"left\"}},[_vm._v(\"通过该配置,对接的平台,机器人,知识库匹配等 (系统默认项不可修改)\")]),_c('el-table',{staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.$store.getters.platformConfig}},[_c('el-table-column',{attrs:{\"prop\":\"id\",\"label\":\"#ID\",\"width\":\"80\"}}),_c('el-table-column',{attrs:{\"prop\":\"title\",\"label\":\"名称\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.system == 1)?_c('el-tag',{attrs:{\"type\":\"danger\"}},[_vm._v(_vm._s(scope.row.title))]):_vm._e(),(scope.row.system == 0)?_c('el-tag',[_vm._v(_vm._s(scope.row.title))]):_vm._e()]}}])}),_c('el-table-column',{attrs:{\"prop\":\"alias\",\"label\":\"别名\",\"align\":\"center\"}}),(_vm.isRoot)?_c('el-table-column',{attrs:{\"label\":\"操作\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.system == 0)?[_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":function($event){return _vm.editPlatform(scope.row)}}},[_vm._v(\"编 辑\")]),_c('el-button',{attrs:{\"size\":\"mini\",\"type\":\"danger\"},on:{\"click\":function($event){return _vm.deletePlatform(scope.row)}}},[_vm._v(\"删 除\")])]:_vm._e(),(scope.row.system == 1)?_c('span',{staticStyle:{\"font-size\":\"12px\",\"color\":\"#999\"}},[_vm._v(\"系统内置,不可操作\")]):_vm._e()]}}],null,false,748916141)}):_vm._e(),_c('el-table-column')],1),(_vm.isRoot)?_c('el-button',{staticStyle:{\"margin-top\":\"20px\"},attrs:{\"size\":\"mini\"},on:{\"click\":function($event){_vm.createDialogFormVisible = true}}},[_vm._v(\"添加新平台\")]):_vm._e()],1)],1),_c('CreatePlatformDialog',{attrs:{\"dialogFormVisible\":_vm.createDialogFormVisible},on:{\"update:dialogFormVisible\":function($event){_vm.createDialogFormVisible=$event},\"update:dialog-form-visible\":function($event){_vm.createDialogFormVisible=$event}}}),_c('EditPlatformDialog',{attrs:{\"formData\":_vm.editPlatformItem,\"dialogFormVisible\":_vm.editDialogFormVisible},on:{\"update:dialogFormVisible\":function($event){_vm.editDialogFormVisible=$event},\"update:dialog-form-visible\":function($event){_vm.editDialogFormVisible=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{\"title\":\"添加平台\",\"show-close\":false,\"visible\":_vm.dialogFormVisible,\"close-on-click-modal\":false},on:{\"update:visible\":function($event){_vm.dialogFormVisible=$event}}},[_c('el-form',{attrs:{\"model\":_vm.form}},[_c('el-form-item',{attrs:{\"label\":\"平台名称\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入平台名称\",\"autocomplete\":\"off\"},model:{value:(_vm.form.title),callback:function ($$v) {_vm.$set(_vm.form, \"title\", $$v)},expression:\"form.title\"}})],1),_c('el-form-item',{attrs:{\"label\":\"平台别名\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入平台别名\",\"autocomplete\":\"off\"},model:{value:(_vm.form.alias),callback:function ($$v) {_vm.$set(_vm.form, \"alias\", $$v)},expression:\"form.alias\"}})],1)],1),_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.closeModal}},[_vm._v(\"取 消\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"保 存\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <el-dialog title=\"添加平台\" :show-close=\"false\" :visible.sync=\"dialogFormVisible\" :close-on-click-modal=\"false\">\n <el-form :model=\"form\">\n <el-form-item label=\"平台名称\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.title\" placeholder=\"请输入平台名称\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"平台别名\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.alias\" placeholder=\"请输入平台别名\" autocomplete=\"off\"></el-input>\n </el-form-item>\n </el-form>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"closeModal\">取 消</el-button>\n <el-button type=\"primary\" @click=\"save\">保 存</el-button>\n </div>\n </el-dialog>\n</template>\n<script>\nimport axios from \"axios\";\nexport default {\n name: 'mini-im-create-admin',\n data(){\n return {\n form: {\n title: '',\n alias: '',\n },\n formLabelWidth: \"80px\"\n }\n },\n props:{\n dialogFormVisible: Boolean,\n complete: Function\n },\n methods: {\n // 关闭\n closeModal(){\n this.$emit('update:dialogFormVisible', false);\n },\n // 保存\n save() {\n // 验证字段 !! 算了其它前端不验证了\n const loading = this.$loading({\n lock: true,\n text: \"保存中...\",\n spinner: \"el-icon-loading\",\n background: \"rgba(0, 0, 0, 0.5)\"\n });\n axios\n .post(\"/platform\", this.form)\n .then(response => {\n console.log(response);\n loading.close();\n this.$message.success(\"添加成功\");\n this.closeModal();\n this.resize();\n this.$store.dispatch('ON_GET_PLATFORM_CONFIG')\n })\n .catch(error => {\n loading.close();\n this.$message.error(error.response.data.message);\n });\n },\n resize() {\n this.form = {\n title: '',\n alias: '',\n };\n }\n }\n}\n</script>\n<style scoped lang=\"stylus\">\n \n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create_platform.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create_platform.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./create_platform.vue?vue&type=template&id=74dae80a&scoped=true&\"\nimport script from \"./create_platform.vue?vue&type=script&lang=js&\"\nexport * from \"./create_platform.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74dae80a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{\"title\":\"修改平台\",\"show-close\":false,\"visible\":_vm.dialogFormVisible,\"close-on-click-modal\":false},on:{\"update:visible\":function($event){_vm.dialogFormVisible=$event}}},[_c('el-form',{attrs:{\"model\":_vm.form}},[_c('el-form-item',{attrs:{\"label\":\"平台名称\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入平台名称\",\"autocomplete\":\"off\"},model:{value:(_vm.form.title),callback:function ($$v) {_vm.$set(_vm.form, \"title\", $$v)},expression:\"form.title\"}})],1),_c('el-form-item',{attrs:{\"label\":\"平台别名\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入平台别名\",\"autocomplete\":\"off\"},model:{value:(_vm.form.alias),callback:function ($$v) {_vm.$set(_vm.form, \"alias\", $$v)},expression:\"form.alias\"}})],1)],1),_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.closeModal}},[_vm._v(\"取 消\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"保 存\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <el-dialog title=\"修改平台\" :show-close=\"false\" :visible.sync=\"dialogFormVisible\" :close-on-click-modal=\"false\">\n <el-form :model=\"form\">\n <el-form-item label=\"平台名称\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.title\" placeholder=\"请输入平台名称\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"平台别名\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.alias\" placeholder=\"请输入平台别名\" autocomplete=\"off\"></el-input>\n </el-form-item>\n </el-form>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"closeModal\">取 消</el-button>\n <el-button type=\"primary\" @click=\"save\">保 存</el-button>\n </div>\n </el-dialog>\n</template>\n<script>\nimport axios from \"axios\";\nexport default {\n name: 'me-create-admin',\n data(){\n return {\n form: {\n title: '',\n alias: '',\n },\n formLabelWidth: \"80px\"\n }\n },\n props:{\n dialogFormVisible: Boolean,\n complete: Function,\n formData: Object\n },\n methods: {\n // 关闭\n closeModal(){\n this.$emit('update:dialogFormVisible', false);\n },\n // 保存\n save() {\n // 验证字段 !! 算了其它前端不验证了\n const loading = this.$loading({\n lock: true,\n text: \"保存中...\",\n spinner: \"el-icon-loading\",\n background: \"rgba(0, 0, 0, 0.5)\"\n });\n axios\n .put(\"/platform\", this.form)\n .then(response => {\n console.log(response);\n loading.close();\n this.$message.success(\"添加成功\");\n this.closeModal();\n this.$store.dispatch('ON_GET_PLATFORM_CONFIG')\n })\n .catch(error => {\n loading.close();\n this.$message.error(error.response.data.message);\n });\n }\n },\n watch:{\n formData(){\n this.form = Object.assign({},this.form, this.formData)\n }\n }\n}\n</script>\n<style scoped lang=\"stylus\">\n \n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit_platform.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit_platform.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./edit_platform.vue?vue&type=template&id=51cfd3c3&scoped=true&\"\nimport script from \"./edit_platform.vue?vue&type=script&lang=js&\"\nexport * from \"./edit_platform.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"51cfd3c3\",\n null\n \n)\n\nexport default component.exports","<template>\n <div>\n <div class=\"mini-im-head\">\n <span>\n <i class=\"el-icon-setting\"></i>\n <span slot=\"title\">系统设置</span>\n </span>\n </div>\n <el-tabs v-model=\"activeName\">\n <el-tab-pane label=\"基本设置\" name=\"first\">\n <el-form style=\"width:500px\" ref=\"form\" label-width=\"100px\">\n <el-form-item label=\"系统LOGO\" label-width=\"120px\">\n <el-row :gutter=\"10\">\n <el-col :span=\"3\">\n <div class=\"mini-im-file-button\" title=\"点击上传图片\">\n <img :src=\"systemInfo.logo\" alt=\"点击上传图片\">\n <input\n :disabled=\"!isRoot\"\n onClick=\"this.value = null\"\n @change=\"systemLogoUpload\"\n type=\"file\"\n accept=\"image/*\"\n />\n <div v-show=\"isUploadingSysLogo\" class=\"mini-im-file-percent\">\n <span>{{uploadysLogoPercent}}</span>\n </div>\n </div>\n </el-col>\n <el-col :span=\"6\"></el-col>\n </el-row>\n </el-form-item>\n <el-form-item label=\"系统名称\">\n <el-input :readonly=\"!isRoot\" v-model=\"systemInfo.title\" placeholder=\"请输入系统名称\"></el-input>\n </el-form-item>\n <el-form-item label=\"版权信息\">\n <el-input :readonly=\"!isRoot\" v-model=\"systemInfo.copy_right\" placeholder=\"请输入版权信息\"></el-input>\n </el-form-item>\n <el-divider content-position=\"left\">选择资源存储空间服务商(上传的,图片,文件)</el-divider>\n <el-form-item label=\"上传选项\">\n <el-select v-model=\"systemInfo.upload_mode\">\n <el-option :label=\"item.name\" :value=\"item.id\" :key=\"item.id\" v-for=\"item in $store.getters.uploadsConfigs\"></el-option>\n </el-select>\n </el-form-item>\n <el-form-item>\n <el-button v-if=\"isRoot\" @click=\"saveSystem\" size=\"mini\">保存设置</el-button>\n </el-form-item>\n </el-form>\n </el-tab-pane>\n <el-tab-pane label=\"公司信息\" name=\"second\">\n <el-divider content-position=\"left\">该配置信息会展示在各个前台给客户</el-divider>\n <el-form style=\"width:500px\" ref=\"form\" label-width=\"100px\">\n <el-form-item label=\"公司LOGO\" label-width=\"120px\">\n <el-row :gutter=\"10\">\n <el-col :span=\"3\">\n <div class=\"mini-im-file-button\" title=\"点击上传图片\">\n <img :src=\"companyInfo.logo\" alt=\"点击上传图片\">\n <input\n :disabled=\"!isRoot\"\n onClick=\"this.value = null\"\n @change=\"companyLogoUpload\"\n type=\"file\"\n accept=\"image/*\"\n />\n <div v-show=\"isUploadingCompany\" class=\"mini-im-file-percent\">\n <span>{{uploadCompanyPercent}}</span>\n </div>\n </div>\n </el-col>\n <el-col :span=\"6\"></el-col>\n </el-row>\n </el-form-item>\n <el-form-item label=\"公司名称\">\n <el-input :readonly=\"!isRoot\" v-model=\"companyInfo.title\" placeholder=\"请输入公司名称\"></el-input>\n </el-form-item>\n <el-form-item label=\"服务时间\">\n <el-input :readonly=\"!isRoot\" v-model=\"companyInfo.service\" placeholder=\"请输入在线客服服务时间\"></el-input>\n </el-form-item>\n <el-form-item label=\"公司邮箱\">\n <el-input :readonly=\"!isRoot\" v-model=\"companyInfo.email\" placeholder=\"请输入公司邮箱\"></el-input>\n </el-form-item>\n <el-form-item label=\"公司电话\">\n <el-input :readonly=\"!isRoot\" v-model=\"companyInfo.tel\" placeholder=\"请输入公司电话\"></el-input>\n </el-form-item>\n <el-form-item label=\"公司地址\">\n <el-input :readonly=\"!isRoot\" type=\"textarea\" rows=\"5\" v-model=\"companyInfo.address\" placeholder=\"请输入公司地址\"></el-input>\n </el-form-item>\n <el-form-item>\n <el-button v-if=\"isRoot\" @click=\"saveCompany\" size=\"mini\">保存设置</el-button>\n </el-form-item>\n </el-form>\n </el-tab-pane>\n <el-tab-pane v-if=\"isRoot\" label=\"七牛云存储配置\" name=\"three\">\n <el-form style=\"width:500px\" ref=\"form\" label-width=\"100px\">\n <el-divider content-position=\"left\">请不要随意修改该选项,可能会导致客户端上传不了文件或图片</el-divider>\n <el-form-item label=\"Bucket\">\n <el-input v-model=\"qiniuSecret.bucket\" placeholder=\"请输入bucket\"></el-input>\n </el-form-item>\n <el-form-item label=\"accessKey\">\n <el-input v-model=\"qiniuSecret.access_key\" placeholder=\"请输入accessKey\" show-password></el-input>\n </el-form-item>\n <el-form-item label=\"secretKey\">\n <el-input v-model=\"qiniuSecret.secret_key\" placeholder=\"请输入secretKey\" show-password></el-input>\n </el-form-item>\n <el-form-item label=\"Host\">\n <el-input v-model=\"qiniuSecret.host\" placeholder=\"请输入host\"></el-input>\n </el-form-item>\n <el-form-item>\n <el-button @click=\"saveQiniu\" size=\"mini\">保存设置</el-button>\n </el-form-item>\n </el-form>\n </el-tab-pane>\n <el-tab-pane label=\"客户端平台\" name=\"fives\">\n <el-divider content-position=\"left\">通过该配置,对接的平台,机器人,知识库匹配等 (系统默认项不可修改)</el-divider>\n <el-table :data=\"$store.getters.platformConfig\" style=\"width: 100%\">\n <el-table-column prop=\"id\" label=\"#ID\" width=\"80\"></el-table-column>\n <el-table-column prop=\"title\" label=\"名称\" align=\"center\">\n <template slot-scope=\"scope\">\n <el-tag type=\"danger\" v-if=\"scope.row.system == 1\">{{scope.row.title}}</el-tag>\n <el-tag v-if=\"scope.row.system == 0\">{{scope.row.title}}</el-tag>\n </template>\n </el-table-column>\n <el-table-column prop=\"alias\" label=\"别名\" align=\"center\"></el-table-column>\n <el-table-column v-if=\"isRoot\" label=\"操作\" align=\"center\">\n <template slot-scope=\"scope\">\n <template v-if=\"scope.row.system == 0\">\n <el-button @click=\"editPlatform(scope.row)\" size=\"mini\">编 辑</el-button>\n <el-button @click=\"deletePlatform(scope.row)\" size=\"mini\" type=\"danger\">删 除</el-button>\n </template>\n <span v-if=\"scope.row.system == 1\" style=\"font-size: 12px;color: #999;\">系统内置,不可操作</span>\n </template>\n </el-table-column>\n <el-table-column></el-table-column>\n </el-table>\n <el-button v-if=\"isRoot\" style=\"margin-top:20px;\" @click=\"createDialogFormVisible = true\" size=\"mini\">添加新平台</el-button>\n </el-tab-pane>\n </el-tabs>\n <CreatePlatformDialog :dialogFormVisible.sync=\"createDialogFormVisible\" />\n <EditPlatformDialog :formData=\"editPlatformItem\" :dialogFormVisible.sync=\"editDialogFormVisible\" />\n </div>\n</template>\n\n<script>\nimport axios from 'axios'\nimport upload from '../../common/upload'\nimport CreatePlatformDialog from \"./create_platform\"\nimport EditPlatformDialog from \"./edit_platform\"\nexport default {\n name: \"system\",\n components: {\n CreatePlatformDialog,\n EditPlatformDialog,\n },\n data() {\n return {\n activeName: \"first\",\n systemInfo: {},\n companyInfo: {},\n isUploadingSysLogo: false,\n uploadysLogoPercent: \"\",\n isUploadingCompany: false,\n uploadCompanyPercent: \"\",\n qiniuSecret: {},\n createDialogFormVisible: false,\n editDialogFormVisible: false,\n editPlatformItem: {}\n }\n },\n computed:{\n isRoot(){\n if(this.$store.getters.adminInfo){\n return this.$store.getters.adminInfo.root == 1\n }else{\n return false\n }\n \n }\n },\n updated: function () {\n this.$nextTick(function () {\n this.systemInfo = this.$store.getters.systemInfo\n this.companyInfo = this.$store.getters.companyInfo\n })\n },\n mounted(){\n this.systemInfo = this.$store.getters.systemInfo\n this.companyInfo = this.$store.getters.companyInfo\n if(this.isRoot) this.getQiniu()\n },\n methods: {\n onSubmit() {\n this.$confirm(\"您确定要保存修改后的配置吗?\", \"温馨提示!\", {\n confirmButtonText: \"保存\",\n cancelButtonText: \"取消\",\n center: true,\n type: \"warning\"\n });\n },\n // 系统logo上传\n systemLogoUpload(file) {\n var fileData = file.target.files[0];\n upload({\n file: fileData,\n progress: (percent) => {\n this.isUploadingSysLogo = true;\n this.uploadysLogoPercent = percent + \"%\";\n },\n success: (url) => {\n this.isUploadingSysLogo = false;\n this.uploadysLogoPercent = \"\";\n this.$message.success(\"上传成功\");\n var imgUrl = this.$store.getters.uploadToken.host + \"/\" + url;\n this.systemInfo.logo = imgUrl;\n },\n error: (err)=>{\n this.isUploadingSysLogo = false;\n this.uploadysLogoPercent = \"\";\n this.$message.error(err.message);\n }\n });\n\n },\n // 保存系统配置\n saveSystem(){\n this.$confirm(\"您确定要保存修改后的系统配置吗?\", \"温馨提示!\", {\n confirmButtonText: \"保存\",\n cancelButtonText: \"取消\",\n center: true,\n type: \"warning\"\n }).then(()=>{\n axios\n .put(\"/system\", this.systemInfo)\n .then(response => {\n this.$store.commit('onChangeSystemInfo', response.data.data)\n this.$message.success(\"保存成功\");\n this.$store.dispatch('ON_GET_SYSTEM')\n this.$store.dispatch('ON_GET_UPLOADS_CONFIG')\n })\n .catch(error => {\n this.$message.error(error.response.data.message);\n });\n })\n },\n // 公司logo上传\n companyLogoUpload(file) {\n\n var fileData = file.target.files[0];\n upload({\n file: fileData,\n progress: (percent) => {\n this.isUploadingCompany = true;\n this.uploadCompanyPercent = percent + \"%\";\n },\n success: (url) => {\n this.isUploadingCompany = false;\n this.uploadCompanyPercent = \"\";\n this.$message.success(\"上传成功\");\n var imgUrl = this.$store.getters.uploadToken.host + \"/\" + url;\n this.companyInfo.logo = imgUrl;\n },\n error: (err)=>{\n this.isUploadingCompany = false;\n this.uploadCompanyPercent = \"\";\n this.$message.error(err.message);\n }\n });\n\n \n },\n // 保存公司配置\n saveCompany(){\n this.$confirm(\"您确定要保存修改后的公司信息吗?\", \"温馨提示!\", {\n confirmButtonText: \"保存\",\n cancelButtonText: \"取消\",\n center: true,\n type: \"warning\"\n }).then(()=>{\n axios\n .put(\"/company\", this.companyInfo)\n .then(response => {\n this.$store.commit('onChangeCompanyInfo', response.data.data)\n this.$message.success(\"保存成功\");\n })\n .catch(error => {\n this.$message.error(error.response.data.message);\n });\n })\n },\n // 获取七牛配置\n getQiniu(){\n axios.get('/qiniu')\n .then(response => {\n this.qiniuSecret = response.data.data\n })\n .catch(error => {\n this.$message.error(error.response.data.message)\n });\n },\n // 保存七牛配置\n saveQiniu(){\n this.$confirm(\"您确定要保存修改后的七牛配置信息吗?如配置信息错误会导致客户端无法上传图片文件\", \"警告!\", {\n confirmButtonText: \"保存\",\n cancelButtonText: \"取消\",\n center: true,\n type: \"warning\"\n }).then(()=>{\n axios\n .put(\"/qiniu\", this.qiniuSecret)\n .then(response => {\n console.log(response.data.data)\n this.$message.success(\"保存成功\");\n })\n .catch(error => {\n this.$message.error(error.response.data.message);\n });\n })\n },\n // 删除平台\n deletePlatform(item){\n console.log(item)\n this.$confirm('您确定要删除该平台配置吗? 删除后不可恢复!', '温馨提示!', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n center: true,\n type: 'warning'\n }).then(() => {\n \n axios.delete('/platform/' + item.id)\n .then(response => {\n console.log(response.data)\n this.$message.success(\"删除成功\")\n this.$store.dispatch('ON_GET_PLATFORM_CONFIG')\n })\n .catch(error => {\n this.$message.error(error.response.data.message)\n });\n })\n },\n // 编辑平台\n editPlatform(item){\n this.editPlatformItem = item\n this.editDialogFormVisible = true\n },\n }\n};\n</script>\n<style lang=\"stylus\" scoped>\n.mini-im-head {\n height: 60px;\n display: flex;\n align-items: center;\n font-size: 20px;\n justify-content: space-between;\n color: #666;\n\n i {\n margin-right: 5px;\n }\n}\n\n.mini-im-file-button {\n width: 180px;\n position: relative;\n overflow: hidden;\n // background-color #f3f3f3\n border-radius 3px\n padding 5px\n box-shadow 1px 1px 7px 0px #ccc\n input {\n width: 180px;\n font-size: 100px;\n position: absolute;\n top: 0px;\n left: 0px;\n opacity 0\n cursor: pointer;\n opacity 0\n }\n img{\n width 100%\n display block\n }\n\n cursor: pointer;\n\n .mini-im-file-percent {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: rgba(0, 0, 0, 0.5);\n color: #fff;\n font-size: 12px;\n }\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=e4baa1e8&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=e4baa1e8&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e4baa1e8\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=e4baa1e8&lang=stylus&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=e4baa1e8&lang=stylus&scoped=true&\""],"sourceRoot":""}
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-487f5713"],{"3fe6":function(e,t,a){},4540:function(e,t,a){"use strict";var o=a("d8ee"),i=a.n(o);i.a},"4f37":function(e,t,a){"use strict";a("aa77")("trim",(function(e){return function(){return e(this,3)}}))},aa77:function(e,t,a){var o=a("5ca1"),i=a("be13"),l=a("79e5"),n=a("fdef"),r="["+n+"]",s="​…",c=RegExp("^"+r+r+"*"),m=RegExp(r+r+"*$"),d=function(e,t,a){var i={},r=l((function(){return!!n[e]()||s[e]()!=s})),c=i[e]=r?t(u):n[e];a&&(i[a]=c),o(o.P+o.F*r,"String",i)},u=d.trim=function(e,t){return e=String(i(e)),1&t&&(e=e.replace(c,"")),2&t&&(e=e.replace(m,"")),e};e.exports=d},aedf:function(e,t,a){"use strict";a.r(t);var o=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{staticClass:"mini-im-head"},[a("span",[a("i",{staticClass:"el-icon-headset"}),a("span",{attrs:{slot:"title"},slot:"title"},[e._v("客服管理")])]),1==e.adminInfo.root?a("el-button",{attrs:{size:"mini"},on:{click:function(t){e.createDialogFormVisible=!0}}},[e._v("添 加")]):e._e()],1),a("el-divider"),a("div",{staticClass:"search"},[a("el-row",{attrs:{gutter:20}},[a("el-col",{attrs:{span:2.1}},[a("el-form",{ref:"form",attrs:{"label-width":"120px"}},[a("el-form-item",{attrs:{label:"按关键字:"}})],1)],1),a("el-col",{attrs:{span:5}},[a("el-input",{attrs:{placeholder:"请输入关键词",clearable:"","prefix-icon":"el-icon-search"},on:{change:e.changeInput,clear:e.clearKeyword},model:{value:e.tableData.keyword,callback:function(t){e.$set(e.tableData,"keyword",t)},expression:"tableData.keyword"}})],1),a("el-col",{attrs:{span:3}},[a("el-button",{on:{click:e.search}},[e._v("查 找")])],1)],1)],1),a("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.tableData.list}},[a("el-table-column",{attrs:{type:"index",index:e.indexMethod,width:"60"}}),a("el-table-column",{attrs:{prop:"avatar",label:"头像",width:"120"},scopedSlots:e._u([{key:"default",fn:function(t){return[a("el-avatar",{attrs:{size:40,src:t.row.avatar||e.$store.state.avatar}})]}}])}),a("el-table-column",{attrs:{prop:"username",label:"客服账号"}}),a("el-table-column",{attrs:{prop:"nickname",label:"客服昵称"}}),a("el-table-column",{attrs:{prop:"online",align:"center",label:"在线状态"},scopedSlots:e._u([{key:"default",fn:function(t){return[1==t.row.online?a("el-tag",{attrs:{type:"success"}},[e._v("在线")]):e._e(),2==t.row.online?a("el-tag",{attrs:{type:"warning"}},[e._v("繁忙")]):e._e(),0==t.row.online?a("el-tag",{attrs:{type:"info"}},[e._v("离线")]):e._e()]}}])}),a("el-table-column",{attrs:{prop:"root",align:"center",label:"角色"},scopedSlots:e._u([{key:"default",fn:function(t){return[1==t.row.root?a("el-tag",{attrs:{effect:"dark",type:"warning"}},[e._v("超级管理")]):e._e(),0==t.row.root?a("el-tag",[e._v("客服人员")]):e._e()]}}])}),a("el-table-column",{attrs:{prop:"last_activity",label:"最后在线时间"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(e.$formatUnixDate(t.row.last_activity,"YYYY/MM/DD HH:mm"))+"\n ")]}}])}),a("el-table-column",{attrs:{prop:"create_at",label:"创建时间"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(e.$formatUnixDate(t.row.create_at,"YYYY/MM/DD"))+"\n ")]}}])}),1==e.adminInfo.root?a("el-table-column",{attrs:{prop:"operating",align:"center",width:"150",label:"操作"},scopedSlots:e._u([{key:"default",fn:function(t){return[0==t.row.root?a("el-button",{attrs:{size:"mini"},on:{click:function(a){return e.edit(t.row)}}},[e._v("编 辑")]):e._e(),0==t.row.root?a("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(a){return e.deleteAdmin(t.row)}}},[e._v("删 除")]):e._e()]}}],null,!1,1757062568)}):e._e()],1),a("el-row",{staticStyle:{"margin-top":"20px"},attrs:{type:"flex",justify:"space-between"}},[a("span",{staticStyle:{color:"#666","font-size":"14px"}},[e._v("共找到"+e._s(e.tableData.total)+"条数据")]),a("el-pagination",{attrs:{background:"",layout:"sizes, prev, pager, next","current-page":e.tableData.page_on,"page-sizes":[5,10,15,20],total:e.tableData.total},on:{"size-change":e.handleSizeChange,"current-change":e.handleCurrentChange}})],1),a("CreateDialog",{attrs:{complete:e.getAdmins,dialogFormVisible:e.createDialogFormVisible},on:{"update:dialogFormVisible":function(t){e.createDialogFormVisible=t},"update:dialog-form-visible":function(t){e.createDialogFormVisible=t}}}),a("EditDialog",{attrs:{formData:e.editItem,complete:e.getAdmins,dialogFormVisible:e.editDialogFormVisible},on:{"update:dialogFormVisible":function(t){e.editDialogFormVisible=t},"update:dialog-form-visible":function(t){e.editDialogFormVisible=t}}})],1)},i=[],l=(a("4f37"),function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-dialog",{attrs:{width:"600px",title:"添加客服","show-close":!1,visible:e.dialogFormVisible,"close-on-click-modal":!1},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[a("el-form",{attrs:{model:e.form}},[a("el-form-item",{attrs:{label:"客服账号","label-width":e.formLabelWidth}},[a("el-input",{attrs:{placeholder:"请输入客服账号",autocomplete:"off"},model:{value:e.form.username,callback:function(t){e.$set(e.form,"username",t)},expression:"form.username"}})],1),a("el-form-item",{attrs:{label:"客服昵称","label-width":e.formLabelWidth}},[a("el-input",{attrs:{placeholder:"请输入客服昵称",autocomplete:"off"},model:{value:e.form.nickname,callback:function(t){e.$set(e.form,"nickname",t)},expression:"form.nickname"}})],1),a("el-form-item",{attrs:{label:"登录密码","label-width":e.formLabelWidth}},[a("el-input",{attrs:{placeholder:"请输入登录密码",autocomplete:"off"},model:{value:e.form.password,callback:function(t){e.$set(e.form,"password",t)},expression:"form.password"}})],1),a("el-form-item",{attrs:{label:"确认密码","label-width":e.formLabelWidth}},[a("el-input",{attrs:{placeholder:"请输入确认密码",autocomplete:"off"},model:{value:e.cCassword,callback:function(t){e.cCassword=t},expression:"cCassword"}})],1)],1),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:e.closeModal}},[e._v("取 消")]),a("el-button",{attrs:{type:"primary"},on:{click:e.save}},[e._v("保 存")])],1)],1)}),n=[],r=a("bc3a"),s=a.n(r),c={name:"mini-im-create-admin",data:function(){return{form:{username:"",nickname:"",password:""},cCassword:"",formLabelWidth:"80px"}},props:{dialogFormVisible:Boolean,complete:Function},mounted:function(){},methods:{closeModal:function(){this.$emit("update:dialogFormVisible",!1)},save:function(){var e=this;if(""!=this.form.username.trim())if(""!=this.form.nickname.trim())if(""!=this.form.password.trim())if(this.form.password.trim()==this.cCassword.trim()){var t=this.$loading({lock:!0,text:"保存中...",spinner:"el-icon-loading",background:"rgba(0, 0, 0, 0.5)"});s.a.post("/admin",this.form).then((function(a){try{console.log(a),t.close(),e.$message.success("添加成功"),e.closeModal(),e.resize(),e.complete(1)}catch(o){console.log(o)}})).catch((function(a){t.close(),e.$message.error(a.response.data.message)}))}else this.$message.error("两次密码不一致!");else this.$message.error("密码不能为空!");else this.$message.error("昵称不能为空!");else this.$message.error("账号不能为空!")},resize:function(){this.cCassword="",this.form={username:"",nickname:"",password:""}}}},m=c,d=a("2877"),u=Object(d["a"])(m,l,n,!1,null,"56150a82",null),f=u.exports,p=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-dialog",{attrs:{width:"600px",title:"修改客服资料","show-close":!1,visible:e.dialogFormVisible,"close-on-click-modal":!1},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[a("el-form",{attrs:{model:e.form}},[a("el-form-item",{attrs:{label:"头像","label-width":e.formLabelWidth}},[a("el-row",{attrs:{gutter:10}},[a("el-col",{attrs:{span:3}},[a("div",{staticClass:"mini-im-file-button",attrs:{title:"点击上传图片"}},[a("el-avatar",{attrs:{size:50,src:e.form.avatar||e.$store.state.avatar}}),a("input",{attrs:{onClick:"this.value = null",type:"file",accept:"image/*"},on:{change:e.changeFile}}),a("div",{directives:[{name:"show",rawName:"v-show",value:e.isUploading,expression:"isUploading"}],staticClass:"mini-im-file-percent"},[a("span",[e._v(e._s(e.uploadPercent))])])],1)]),a("el-col",{attrs:{span:6}})],1)],1),a("el-form-item",{attrs:{label:"客服账号","label-width":e.formLabelWidth}},[a("span",[e._v(e._s(e.form.username))])]),a("el-form-item",{attrs:{label:"客服昵称","label-width":e.formLabelWidth}},[a("el-input",{attrs:{placeholder:"请输入客服昵称",autocomplete:"off"},model:{value:e.form.nickname,callback:function(t){e.$set(e.form,"nickname",t)},expression:"form.nickname"}})],1),a("el-form-item",{attrs:{label:"手机号","label-width":e.formLabelWidth}},[a("el-input",{attrs:{placeholder:"请输入登录密码",autocomplete:"off"},model:{value:e.form.phone,callback:function(t){e.$set(e.form,"phone",t)},expression:"form.phone"}})],1),a("el-form-item",{attrs:{label:"自动回复语","label-width":e.formLabelWidth}},[a("el-input",{attrs:{type:"textarea",placeholder:"请输入自动回复语,不支持emoji,请使用简单语句描述",autocomplete:"off"},model:{value:e.form.auto_reply,callback:function(t){e.$set(e.form,"auto_reply",t)},expression:"form.auto_reply"}})],1)],1),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:e.closeModal}},[e._v("取 消")]),a("el-button",{attrs:{type:"primary"},on:{click:e.save}},[e._v("保 存")])],1)],1)},g=[],h=a("fb21"),b={name:"mini-im-create-admin",data:function(){return{form:{phone:"",nickname:"",avatar:"",auto_reply:""},formLabelWidth:"90px",isUploading:!1,uploadPercent:""}},props:{dialogFormVisible:Boolean,complete:Function,formData:Object},methods:{closeModal:function(){this.$emit("update:dialogFormVisible",!1)},changeFile:function(e){var t=this,a=e.target.files[0];Object(h["a"])({file:a,progress:function(e){t.isUploading=!0,t.uploadPercent=e+"%"},success:function(e){t.isUploading=!1,t.uploadPercent="",t.$message.success("上传成功");var a=t.$store.getters.uploadToken.host+"/"+e;t.form.avatar=a},error:function(e){t.isUploading=!1,t.uploadPercent="",t.$message.error(e.message)}})},save:function(){var e=this,t=this.$loading({lock:!0,text:"保存中...",spinner:"el-icon-loading",background:"rgba(0, 0, 0, 0.5)"});s.a.put("/admin",this.form).then((function(a){try{t.close(),e.$message.success("添加成功"),e.closeModal(),e.complete(1)}catch(o){console.log(o,a)}})).catch((function(a){t.close(),e.$message.error(a.response.data.message)}))}},watch:{formData:function(){this.form=Object.assign({},this.form,this.formData)}}},v=b,w=(a("4540"),Object(d["a"])(v,p,g,!1,null,"0a24570c",null)),_=w.exports,k={name:"admins",components:{CreateDialog:f,EditDialog:_},data:function(){return{tableData:{list:[],page_on:1,page_size:10,keyword:"",total:0},createDialogFormVisible:!1,editDialogFormVisible:!1,loading:!0,editItem:{}}},computed:{adminInfo:function(){return this.$store.getters.adminInfo}},created:function(){var e=this;setTimeout((function(){return e.getAdmins(1)}),500)},methods:{indexMethod:function(e){return(this.tableData.page_on-1)*this.tableData.page_size+e+1},deleteAdmin:function(e){var t=this;this.$confirm("您确定要删除该客服吗? 删除后不可恢复!","温馨提示!",{confirmButtonText:"确定",cancelButtonText:"取消",center:!0,type:"warning"}).then((function(){s.a.delete("/admin/"+e.id).then((function(e){console.log(e.data),t.$message.success("删除成功"),t.getAdmins(1)})).catch((function(e){t.$message.error(e.response.data.message)}))}))},edit:function(e){this.editItem=e,this.editDialogFormVisible=!0},handleSizeChange:function(e){this.tableData.page_size=e,this.getAdmins()},handleCurrentChange:function(e){this.tableData.page_on=e,this.getAdmins()},clearKeyword:function(){this.getAdmins(1)},changeInput:function(){""==this.tableData.keyword&&this.getAdmins(1)},search:function(){this.tableData.keyword=this.tableData.keyword.trim(),this.tableData.keyword&&this.getAdmins(1)},getAdmins:function(e){var t=this;e&&(this.tableData.page_on=e);var a=this.tableData,o=a.page_on,i=a.page_size,l=a.keyword;s.a.post("/admin/list",{page_on:o,page_size:i,keyword:l,online:3}).then((function(e){t.loading=!1,t.tableData=e.data.data})).catch((function(e){t.loading=!1,t.$message.error(e.response.data.message)}))}}},y=k,D=(a("b4a5"),Object(d["a"])(y,o,i,!1,null,"0aee8f9a",null));t["default"]=D.exports},b4a5:function(e,t,a){"use strict";var o=a("3fe6"),i=a.n(o);i.a},d8ee:function(e,t,a){},fdef:function(e,t){e.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"}}]);
//# sourceMappingURL=chunk-487f5713.773eab50.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///./src/views/customer/edit.vue?f087","webpack:///./node_modules/core-js/modules/es6.string.trim.js","webpack:///./node_modules/core-js/modules/_string-trim.js","webpack:///./src/views/customer/index.vue?cf9f","webpack:///./src/views/customer/create.vue?dff4","webpack:///src/views/customer/create.vue","webpack:///./src/views/customer/create.vue?c0ff","webpack:///./src/views/customer/create.vue","webpack:///./src/views/customer/edit.vue?ccfb","webpack:///src/views/customer/edit.vue","webpack:///./src/views/customer/edit.vue?939e","webpack:///./src/views/customer/edit.vue","webpack:///src/views/customer/index.vue","webpack:///./src/views/customer/index.vue?3888","webpack:///./src/views/customer/index.vue","webpack:///./src/views/customer/index.vue?ae5a","webpack:///./node_modules/core-js/modules/_string-ws.js"],"names":["$trim","this","$export","defined","fails","spaces","space","non","ltrim","RegExp","rtrim","exporter","KEY","exec","ALIAS","exp","FORCE","fn","trim","P","F","string","TYPE","String","replace","module","exports","render","_vm","_h","$createElement","_c","_self","staticClass","attrs","slot","_v","adminInfo","root","on","$event","createDialogFormVisible","_e","ref","changeInput","clearKeyword","model","value","tableData","callback","$$v","$set","expression","search","directives","name","rawName","staticStyle","list","indexMethod","scopedSlots","_u","key","scope","row","avatar","$store","state","online","_s","$formatUnixDate","last_activity","create_at","edit","deleteAdmin","total","page_on","handleSizeChange","handleCurrentChange","getAdmins","editItem","editDialogFormVisible","staticRenderFns","dialogFormVisible","form","formLabelWidth","cCassword","closeModal","save","data","props","Boolean","complete","Function","mounted","methods","$emit","lock","text","spinner","background","$message","error","resize","username","nickname","password","component","changeFile","uploadPercent","phone","auto_reply","isUploading","formData","Object","fileData","file","target","files","imgUrl","watch","assign","components","CreateDialog","EditDialog","page_size","keyword","loading","computed","getters","created","setTimeout","index","$confirm","confirmButtonText","cancelButtonText","center","type","item","val"],"mappings":"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","file":"js/chunk-487f5713.773eab50.js","sourcesContent":["import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit.vue?vue&type=style&index=0&id=0a24570c&scoped=true&lang=stylus&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit.vue?vue&type=style&index=0&id=0a24570c&scoped=true&lang=stylus&\"","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"mini-im-head\"},[_c('span',[_c('i',{staticClass:\"el-icon-headset\"}),_c('span',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"客服管理\")])]),(_vm.adminInfo.root == 1)?_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":function($event){_vm.createDialogFormVisible = true}}},[_vm._v(\"添 加\")]):_vm._e()],1),_c('el-divider'),_c('div',{staticClass:\"search\"},[_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":2.1}},[_c('el-form',{ref:\"form\",attrs:{\"label-width\":\"120px\"}},[_c('el-form-item',{attrs:{\"label\":\"按关键字:\"}})],1)],1),_c('el-col',{attrs:{\"span\":5}},[_c('el-input',{attrs:{\"placeholder\":\"请输入关键词\",\"clearable\":\"\",\"prefix-icon\":\"el-icon-search\"},on:{\"change\":_vm.changeInput,\"clear\":_vm.clearKeyword},model:{value:(_vm.tableData.keyword),callback:function ($$v) {_vm.$set(_vm.tableData, \"keyword\", $$v)},expression:\"tableData.keyword\"}})],1),_c('el-col',{attrs:{\"span\":3}},[_c('el-button',{on:{\"click\":_vm.search}},[_vm._v(\"查 找\")])],1)],1)],1),_c('el-table',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.tableData.list}},[_c('el-table-column',{attrs:{\"type\":\"index\",\"index\":_vm.indexMethod,\"width\":\"60\"}}),_c('el-table-column',{attrs:{\"prop\":\"avatar\",\"label\":\"头像\",\"width\":\"120\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-avatar',{attrs:{\"size\":40,\"src\":scope.row.avatar || _vm.$store.state.avatar}})]}}])}),_c('el-table-column',{attrs:{\"prop\":\"username\",\"label\":\"客服账号\"}}),_c('el-table-column',{attrs:{\"prop\":\"nickname\",\"label\":\"客服昵称\"}}),_c('el-table-column',{attrs:{\"prop\":\"online\",\"align\":\"center\",\"label\":\"在线状态\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.online == 1)?_c('el-tag',{attrs:{\"type\":\"success\"}},[_vm._v(\"在线\")]):_vm._e(),(scope.row.online == 2)?_c('el-tag',{attrs:{\"type\":\"warning\"}},[_vm._v(\"繁忙\")]):_vm._e(),(scope.row.online == 0)?_c('el-tag',{attrs:{\"type\":\"info\"}},[_vm._v(\"离线\")]):_vm._e()]}}])}),_c('el-table-column',{attrs:{\"prop\":\"root\",\"align\":\"center\",\"label\":\"角色\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.root == 1)?_c('el-tag',{attrs:{\"effect\":\"dark\",\"type\":\"warning\"}},[_vm._v(\"超级管理\")]):_vm._e(),(scope.row.root == 0)?_c('el-tag',[_vm._v(\"客服人员\")]):_vm._e()]}}])}),_c('el-table-column',{attrs:{\"prop\":\"last_activity\",\"label\":\"最后在线时间\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(\"\\n \"+_vm._s(_vm.$formatUnixDate(scope.row.last_activity, \"YYYY/MM/DD HH:mm\"))+\"\\n \")]}}])}),_c('el-table-column',{attrs:{\"prop\":\"create_at\",\"label\":\"创建时间\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(\"\\n \"+_vm._s(_vm.$formatUnixDate(scope.row.create_at, \"YYYY/MM/DD\"))+\"\\n \")]}}])}),(_vm.adminInfo.root == 1)?_c('el-table-column',{attrs:{\"prop\":\"operating\",\"align\":\"center\",\"width\":\"150\",\"label\":\"操作\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.root == 0)?_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":function($event){return _vm.edit(scope.row)}}},[_vm._v(\"编 辑\")]):_vm._e(),(scope.row.root == 0)?_c('el-button',{attrs:{\"size\":\"mini\",\"type\":\"danger\"},on:{\"click\":function($event){return _vm.deleteAdmin(scope.row)}}},[_vm._v(\"删 除\")]):_vm._e()]}}],null,false,1757062568)}):_vm._e()],1),_c('el-row',{staticStyle:{\"margin-top\":\"20px\"},attrs:{\"type\":\"flex\",\"justify\":\"space-between\"}},[_c('span',{staticStyle:{\"color\":\"#666\",\"font-size\":\"14px\"}},[_vm._v(\"共找到\"+_vm._s(_vm.tableData.total)+\"条数据\")]),_c('el-pagination',{attrs:{\"background\":\"\",\"layout\":\"sizes, prev, pager, next\",\"current-page\":_vm.tableData.page_on,\"page-sizes\":[5, 10, 15, 20],\"total\":_vm.tableData.total},on:{\"size-change\":_vm.handleSizeChange,\"current-change\":_vm.handleCurrentChange}})],1),_c('CreateDialog',{attrs:{\"complete\":_vm.getAdmins,\"dialogFormVisible\":_vm.createDialogFormVisible},on:{\"update:dialogFormVisible\":function($event){_vm.createDialogFormVisible=$event},\"update:dialog-form-visible\":function($event){_vm.createDialogFormVisible=$event}}}),_c('EditDialog',{attrs:{\"formData\":_vm.editItem,\"complete\":_vm.getAdmins,\"dialogFormVisible\":_vm.editDialogFormVisible},on:{\"update:dialogFormVisible\":function($event){_vm.editDialogFormVisible=$event},\"update:dialog-form-visible\":function($event){_vm.editDialogFormVisible=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{\"width\":\"600px\",\"title\":\"添加客服\",\"show-close\":false,\"visible\":_vm.dialogFormVisible,\"close-on-click-modal\":false},on:{\"update:visible\":function($event){_vm.dialogFormVisible=$event}}},[_c('el-form',{attrs:{\"model\":_vm.form}},[_c('el-form-item',{attrs:{\"label\":\"客服账号\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入客服账号\",\"autocomplete\":\"off\"},model:{value:(_vm.form.username),callback:function ($$v) {_vm.$set(_vm.form, \"username\", $$v)},expression:\"form.username\"}})],1),_c('el-form-item',{attrs:{\"label\":\"客服昵称\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入客服昵称\",\"autocomplete\":\"off\"},model:{value:(_vm.form.nickname),callback:function ($$v) {_vm.$set(_vm.form, \"nickname\", $$v)},expression:\"form.nickname\"}})],1),_c('el-form-item',{attrs:{\"label\":\"登录密码\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入登录密码\",\"autocomplete\":\"off\"},model:{value:(_vm.form.password),callback:function ($$v) {_vm.$set(_vm.form, \"password\", $$v)},expression:\"form.password\"}})],1),_c('el-form-item',{attrs:{\"label\":\"确认密码\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入确认密码\",\"autocomplete\":\"off\"},model:{value:(_vm.cCassword),callback:function ($$v) {_vm.cCassword=$$v},expression:\"cCassword\"}})],1)],1),_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.closeModal}},[_vm._v(\"取 消\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"保 存\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <el-dialog width=\"600px\" title=\"添加客服\" :show-close=\"false\" :visible.sync=\"dialogFormVisible\" :close-on-click-modal=\"false\">\n <el-form :model=\"form\">\n <el-form-item label=\"客服账号\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.username\" placeholder=\"请输入客服账号\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"客服昵称\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.nickname\" placeholder=\"请输入客服昵称\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"登录密码\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.password\" placeholder=\"请输入登录密码\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"确认密码\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"cCassword\" placeholder=\"请输入确认密码\" autocomplete=\"off\"></el-input>\n </el-form-item>\n </el-form>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"closeModal\">取 消</el-button>\n <el-button type=\"primary\" @click=\"save\">保 存</el-button>\n </div>\n </el-dialog>\n</template>\n<script>\nimport axios from \"axios\";\nexport default {\n name: 'mini-im-create-admin',\n data(){\n return {\n form: {\n username: '',\n nickname: '',\n password: ''\n },\n cCassword: '',\n formLabelWidth: \"80px\"\n }\n },\n props:{\n dialogFormVisible: Boolean,\n complete: Function\n },\n mounted(){\n },\n methods: {\n // 关闭\n closeModal(){\n this.$emit('update:dialogFormVisible', false);\n },\n // 保存\n save() {\n // 验证一下密码字段\n if(this.form.username.trim() == \"\"){\n this.$message.error(\"账号不能为空!\")\n return;\n }\n if(this.form.nickname.trim() == \"\"){\n this.$message.error(\"昵称不能为空!\")\n return;\n }\n if(this.form.password.trim() == \"\"){\n this.$message.error(\"密码不能为空!\")\n return;\n }\n if(this.form.password.trim() != this.cCassword.trim()){\n this.$message.error(\"两次密码不一致!\")\n return;\n }\n\n // 验证字段 !! 算了其它前端不验证了\n const loading = this.$loading({\n lock: true,\n text: \"保存中...\",\n spinner: \"el-icon-loading\",\n background: \"rgba(0, 0, 0, 0.5)\"\n });\n axios\n .post(\"/admin\", this.form)\n .then(response => {\n try {\n console.log(response);\n loading.close();\n this.$message.success(\"添加成功\");\n this.closeModal();\n this.resize();\n this.complete(1);\n } catch (e) {\n console.log(e);\n }\n })\n .catch(error => {\n loading.close();\n this.$message.error(error.response.data.message);\n });\n },\n resize() {\n this.cCassword = '';\n this.form = {\n username: '',\n nickname: '',\n password: ''\n };\n }\n }\n}\n</script>\n<style scoped lang=\"stylus\">\n \n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./create.vue?vue&type=template&id=56150a82&scoped=true&\"\nimport script from \"./create.vue?vue&type=script&lang=js&\"\nexport * from \"./create.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"56150a82\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{\"width\":\"600px\",\"title\":\"修改客服资料\",\"show-close\":false,\"visible\":_vm.dialogFormVisible,\"close-on-click-modal\":false},on:{\"update:visible\":function($event){_vm.dialogFormVisible=$event}}},[_c('el-form',{attrs:{\"model\":_vm.form}},[_c('el-form-item',{attrs:{\"label\":\"头像\",\"label-width\":_vm.formLabelWidth}},[_c('el-row',{attrs:{\"gutter\":10}},[_c('el-col',{attrs:{\"span\":3}},[_c('div',{staticClass:\"mini-im-file-button\",attrs:{\"title\":\"点击上传图片\"}},[_c('el-avatar',{attrs:{\"size\":50,\"src\":_vm.form.avatar || _vm.$store.state.avatar}}),_c('input',{attrs:{\"onClick\":\"this.value = null\",\"type\":\"file\",\"accept\":\"image/*\"},on:{\"change\":_vm.changeFile}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isUploading),expression:\"isUploading\"}],staticClass:\"mini-im-file-percent\"},[_c('span',[_vm._v(_vm._s(_vm.uploadPercent))])])],1)]),_c('el-col',{attrs:{\"span\":6}})],1)],1),_c('el-form-item',{attrs:{\"label\":\"客服账号\",\"label-width\":_vm.formLabelWidth}},[_c('span',[_vm._v(_vm._s(_vm.form.username))])]),_c('el-form-item',{attrs:{\"label\":\"客服昵称\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入客服昵称\",\"autocomplete\":\"off\"},model:{value:(_vm.form.nickname),callback:function ($$v) {_vm.$set(_vm.form, \"nickname\", $$v)},expression:\"form.nickname\"}})],1),_c('el-form-item',{attrs:{\"label\":\"手机号\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入登录密码\",\"autocomplete\":\"off\"},model:{value:(_vm.form.phone),callback:function ($$v) {_vm.$set(_vm.form, \"phone\", $$v)},expression:\"form.phone\"}})],1),_c('el-form-item',{attrs:{\"label\":\"自动回复语\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"placeholder\":\"请输入自动回复语,不支持emoji,请使用简单语句描述\",\"autocomplete\":\"off\"},model:{value:(_vm.form.auto_reply),callback:function ($$v) {_vm.$set(_vm.form, \"auto_reply\", $$v)},expression:\"form.auto_reply\"}})],1)],1),_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.closeModal}},[_vm._v(\"取 消\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"保 存\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <el-dialog\n width=\"600px\" \n title=\"修改客服资料\"\n :show-close=\"false\"\n :visible.sync=\"dialogFormVisible\"\n :close-on-click-modal=\"false\"\n >\n <el-form :model=\"form\">\n <el-form-item label=\"头像\" :label-width=\"formLabelWidth\">\n <el-row :gutter=\"10\">\n <el-col :span=\"3\">\n <div class=\"mini-im-file-button\" title=\"点击上传图片\">\n <el-avatar\n :size=\"50\"\n :src=\"form.avatar || $store.state.avatar\"\n ></el-avatar>\n <input onClick=\"this.value = null\" @change=\"changeFile\" type=\"file\" accept=\"image/*\" />\n <div v-show=\"isUploading\" class=\"mini-im-file-percent\">\n <span>{{uploadPercent}}</span>\n </div>\n </div>\n </el-col>\n <el-col :span=\"6\"></el-col>\n </el-row>\n </el-form-item>\n <el-form-item label=\"客服账号\" :label-width=\"formLabelWidth\">\n <span>{{form.username}}</span>\n </el-form-item>\n <el-form-item label=\"客服昵称\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.nickname\" placeholder=\"请输入客服昵称\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"手机号\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.phone\" placeholder=\"请输入登录密码\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"自动回复语\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.auto_reply\" type=\"textarea\" placeholder=\"请输入自动回复语,不支持emoji,请使用简单语句描述\" autocomplete=\"off\"></el-input>\n </el-form-item>\n </el-form>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"closeModal\">取 消</el-button>\n <el-button type=\"primary\" @click=\"save\">保 存</el-button>\n </div>\n </el-dialog>\n</template>\n<script>\nimport axios from \"axios\";\nimport upload from '../../common/upload'\nexport default {\n name: \"mini-im-create-admin\",\n data() {\n return {\n form: {\n phone: \"\",\n nickname: \"\",\n avatar: \"\",\n auto_reply: \"\"\n },\n formLabelWidth: \"90px\",\n isUploading: false,\n uploadPercent: \"\"\n };\n },\n props: {\n dialogFormVisible: Boolean,\n complete: Function,\n formData: Object\n },\n methods: {\n // 关闭\n closeModal() {\n this.$emit(\"update:dialogFormVisible\", false);\n },\n // 上传\n changeFile(file) {\n\n var fileData = file.target.files[0];\n upload({\n file: fileData,\n progress: (percent) => {\n this.isUploading = true;\n this.uploadPercent = percent + \"%\";\n },\n success: (url) => {\n this.isUploading = false;\n this.uploadPercent = \"\";\n this.$message.success(\"上传成功\");\n var imgUrl = this.$store.getters.uploadToken.host + \"/\" + url\n this.form.avatar = imgUrl;\n },\n error: (err)=>{\n this.isUploading = false;\n this.uploadPercent = \"\";\n this.$message.error(err.message);\n }\n });\n\n\n },\n // 保存\n save() {\n // 验证字段 !! 算了其它前端不验证了\n const loading = this.$loading({\n lock: true,\n text: \"保存中...\",\n spinner: \"el-icon-loading\",\n background: \"rgba(0, 0, 0, 0.5)\"\n });\n axios\n .put(\"/admin\", this.form)\n .then(response => {\n try {\n loading.close();\n this.$message.success(\"添加成功\");\n this.closeModal();\n this.complete(1);\n } catch (e) {\n console.log(e, response);\n }\n })\n .catch(error => {\n loading.close();\n this.$message.error(error.response.data.message);\n });\n }\n },\n watch: {\n formData() {\n this.form = Object.assign({}, this.form, this.formData);\n }\n }\n};\n</script>\n<style scoped lang=\"stylus\">\n.mini-im-file-button {\n width: 50px;\n height: 50px;\n border-radius: 50%;\n position: relative;\n overflow: hidden;\n\n input {\n font-size: 100px;\n position: absolute;\n top: 0px;\n left: 0px;\n cursor: pointer;\n opacity 0\n }\n\n cursor: pointer;\n\n .mini-im-file-percent {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, 0.5);\n color: #fff;\n font-size: 12px;\n }\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./edit.vue?vue&type=template&id=0a24570c&scoped=true&\"\nimport script from \"./edit.vue?vue&type=script&lang=js&\"\nexport * from \"./edit.vue?vue&type=script&lang=js&\"\nimport style0 from \"./edit.vue?vue&type=style&index=0&id=0a24570c&scoped=true&lang=stylus&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0a24570c\",\n null\n \n)\n\nexport default component.exports","<template>\n <div>\n <div class=\"mini-im-head\">\n <span>\n <i class=\"el-icon-headset\"></i>\n <span slot=\"title\">客服管理</span>\n </span>\n <el-button v-if=\"adminInfo.root == 1\" @click=\"createDialogFormVisible = true\" size=\"mini\">添 加</el-button>\n </div>\n <el-divider />\n <div class=\"search\">\n <el-row :gutter=\"20\">\n <el-col :span=\"2.1\">\n <el-form ref=\"form\" label-width=\"120px\">\n <el-form-item label=\"按关键字:\"></el-form-item>\n </el-form>\n </el-col>\n <el-col :span=\"5\">\n <el-input @change=\"changeInput\" @clear=\"clearKeyword\" placeholder=\"请输入关键词\" v-model=\"tableData.keyword\" clearable prefix-icon=\"el-icon-search\"></el-input>\n </el-col>\n <el-col :span=\"3\">\n <el-button @click=\"search\">查 找</el-button>\n </el-col>\n </el-row>\n </div>\n <el-table\n :data=\"tableData.list\"\n style=\"width: 100%\"\n v-loading=\"loading\"\n >\n <el-table-column\n type=\"index\"\n :index=\"indexMethod\"\n width=\"60\">\n </el-table-column>\n <el-table-column\n prop=\"avatar\"\n label=\"头像\"\n width=\"120\">\n <template slot-scope=\"scope\">\n <el-avatar :size=\"40\" :src=\"scope.row.avatar || $store.state.avatar\"></el-avatar>\n </template>\n </el-table-column>\n <el-table-column\n prop=\"username\"\n label=\"客服账号\">\n </el-table-column>\n <el-table-column\n prop=\"nickname\"\n label=\"客服昵称\">\n </el-table-column>\n <el-table-column\n prop=\"online\"\n align=\"center\"\n label=\"在线状态\">\n <template slot-scope=\"scope\">\n <el-tag type=\"success\" v-if=\"scope.row.online == 1\">在线</el-tag>\n <el-tag type=\"warning\" v-if=\"scope.row.online == 2\">繁忙</el-tag>\n <el-tag type=\"info\" v-if=\"scope.row.online == 0\">离线</el-tag>\n </template>\n </el-table-column>\n <el-table-column\n prop=\"root\"\n align=\"center\"\n label=\"角色\">\n <template slot-scope=\"scope\">\n <el-tag effect=\"dark\" type=\"warning\" v-if=\"scope.row.root == 1\">超级管理</el-tag>\n <el-tag v-if=\"scope.row.root == 0\">客服人员</el-tag>\n </template>\n </el-table-column>\n <el-table-column\n prop=\"last_activity\"\n label=\"最后在线时间\">\n <template slot-scope=\"scope\">\n {{$formatUnixDate(scope.row.last_activity, \"YYYY/MM/DD HH:mm\")}}\n </template>\n </el-table-column>\n <el-table-column\n prop=\"create_at\"\n label=\"创建时间\">\n <template slot-scope=\"scope\">\n {{$formatUnixDate(scope.row.create_at, \"YYYY/MM/DD\")}}\n </template>\n </el-table-column>\n <el-table-column\n prop=\"operating\"\n align=\"center\"\n width=\"150\"\n v-if=\"adminInfo.root == 1\"\n label=\"操作\">\n <template slot-scope=\"scope\">\n <el-button\n size=\"mini\"\n v-if=\"scope.row.root == 0\"\n @click=\"edit(scope.row)\">编 辑</el-button>\n <el-button\n size=\"mini\"\n type=\"danger\"\n v-if=\"scope.row.root == 0\"\n @click=\"deleteAdmin(scope.row)\">删 除</el-button>\n </template>\n </el-table-column>\n </el-table>\n <el-row type=\"flex\" style=\"margin-top: 20px;\" justify=\"space-between\">\n <span style=\"color:#666;font-size: 14px;\">共找到{{tableData.total}}条数据</span>\n <el-pagination\n background\n @size-change=\"handleSizeChange\"\n @current-change=\"handleCurrentChange\"\n layout=\"sizes, prev, pager, next\"\n :current-page=\"tableData.page_on\"\n :page-sizes=\"[5, 10, 15, 20]\"\n :total=\"tableData.total\">\n </el-pagination>\n </el-row>\n <CreateDialog :complete=\"getAdmins\" :dialogFormVisible.sync=\"createDialogFormVisible\" />\n <EditDialog :formData=\"editItem\" :complete=\"getAdmins\" :dialogFormVisible.sync=\"editDialogFormVisible\" />\n </div>\n</template>\n\n<script>\nimport CreateDialog from \"./create\"\nimport EditDialog from \"./edit\"\nimport axios from 'axios'\nexport default {\n name: \"admins\",\n components: {\n CreateDialog,\n EditDialog\n },\n data() {\n return {\n tableData: {\n list: [],\n page_on: 1,\n page_size: 10,\n keyword: \"\",\n total: 0,\n },\n createDialogFormVisible: false,\n editDialogFormVisible: false,\n loading: true,\n editItem: {}\n }\n },\n computed: {\n adminInfo(){\n return this.$store.getters.adminInfo\n }\n },\n created(){\n setTimeout(()=> this.getAdmins(1), 500)\n },\n methods: {\n // 行号\n indexMethod(index) {\n return (this.tableData.page_on - 1) * this.tableData.page_size + index +1;\n },\n // 删除\n deleteAdmin(item){\n this.$confirm('您确定要删除该客服吗? 删除后不可恢复!', '温馨提示!', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n center: true,\n type: 'warning'\n }).then(() => {\n axios.delete('/admin/' + item.id)\n .then(response => {\n console.log(response.data)\n this.$message.success(\"删除成功\")\n this.getAdmins(1)\n })\n .catch(error => {\n this.$message.error(error.response.data.message)\n });\n })\n },\n // 编辑\n edit(item){\n this.editItem = item\n this.editDialogFormVisible = true\n },\n // 改变每页条数\n handleSizeChange(val) {\n this.tableData.page_size = val\n this.getAdmins()\n },\n // 分页\n handleCurrentChange(val) {\n this.tableData.page_on = val\n this.getAdmins()\n },\n // 清空关键字\n clearKeyword(){\n this.getAdmins(1)\n },\n // 关键字input变动\n changeInput(){\n if(this.tableData.keyword == \"\"){\n this.getAdmins(1)\n }\n },\n // 查找\n search(){\n this.tableData.keyword = this.tableData.keyword.trim()\n if(!this.tableData.keyword) return\n this.getAdmins(1)\n },\n // 获取数据\n getAdmins(index){\n if(index) this.tableData.page_on = index\n const {page_on, page_size, keyword} = this.tableData\n axios.post('/admin/list', {page_on, page_size, keyword, \"online\": 3})\n .then(response => {\n this.loading = false\n this.tableData = response.data.data\n })\n .catch(error => {\n this.loading = false\n this.$message.error(error.response.data.message)\n });\n }\n }\n};\n</script>\n<style lang=\"stylus\" scoped>\n .mini-im-head{\n height 30px\n display flex\n align-items center\n font-size 20px\n justify-content space-between\n color #666\n i{\n margin-right 5px\n }\n }\n .el-select .el-input {\n width: 130px;\n }\n .input-with-select .el-input-group__prepend {\n background-color: #fff;\n }\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0aee8f9a&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=0aee8f9a&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0aee8f9a\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=0aee8f9a&lang=stylus&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=0aee8f9a&lang=stylus&scoped=true&\"","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n"],"sourceRoot":""}
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-771e4186"],{4468:function(e,t,a){"use strict";a.r(t);var o=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{staticClass:"mini-im-head"},[a("span",[a("i",{staticClass:"el-icon-user"}),a("span",{attrs:{slot:"title"},slot:"title"},[e._v("用户管理")])])]),a("el-divider"),a("div",{staticClass:"search"},[a("el-row",{attrs:{gutter:20}},[a("el-col",{staticStyle:{width:"120px"}},[a("el-form",{ref:"form",attrs:{"label-width":"120px"}},[a("el-form-item",{attrs:{label:"按条件查找:"}})],1)],1),a("el-col",{attrs:{span:3}},[a("el-select",{attrs:{placeholder:"请选择平台"},model:{value:e.tableData.platform,callback:function(t){e.$set(e.tableData,"platform",t)},expression:"tableData.platform"}},e._l(e.platformConfig,(function(e){return a("el-option",{key:e.id,attrs:{label:e.title,value:e.id}})})),1)],1),a("el-col",{attrs:{span:4}},[a("el-input",{attrs:{placeholder:"请输入关键词","prefix-icon":"el-icon-search",clearable:""},model:{value:e.tableData.keyword,callback:function(t){e.$set(e.tableData,"keyword",t)},expression:"tableData.keyword"}})],1),a("el-col",{attrs:{span:6.5}},[a("el-date-picker",{attrs:{type:"daterange",align:"right","unlink-panels":"","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:e.selectDate,callback:function(t){e.selectDate=t},expression:"selectDate"}})],1),a("el-col",{attrs:{span:3}},[a("el-button",{on:{click:e.search}},[e._v("查 找")])],1)],1)],1),a("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.tableData.list}},[a("el-table-column",{attrs:{type:"index",index:e.indexMethod,width:"60"}}),a("el-table-column",{attrs:{prop:"avatar",label:"头像",width:"80"},scopedSlots:e._u([{key:"default",fn:function(t){return[a("el-avatar",{attrs:{size:40,src:t.row.avatar||e.$store.state.avatar}})]}}])}),a("el-table-column",{attrs:{prop:"nickname",label:"用户昵称"},scopedSlots:e._u([{key:"default",fn:function(t){return[""!=t.row.nickname?a("span",[e._v(e._s(t.row.nickname))]):a("span",[e._v("------")])]}}])}),a("el-table-column",{attrs:{prop:"uid",label:"业务平台ID"},scopedSlots:e._u([{key:"default",fn:function(t){return[""!=t.row.uid?a("span",[e._v(e._s(t.row.uid))]):a("span",[e._v("------")])]}}])}),a("el-table-column",{attrs:{prop:"address",label:"所在地区"},scopedSlots:e._u([{key:"default",fn:function(t){return[""!=t.row.address?a("span",[e._v(e._s(t.row.address))]):a("span",[e._v("------")])]}}])}),a("el-table-column",{attrs:{prop:"phone",label:"联系方式"},scopedSlots:e._u([{key:"default",fn:function(t){return[""!=t.row.phone?a("span",[e._v(e._s(t.row.phone))]):a("span",[e._v("------")])]}}])}),a("el-table-column",{attrs:{prop:"online",align:"center",label:"在线状态"},scopedSlots:e._u([{key:"default",fn:function(t){return[1==t.row.online?a("el-tag",{attrs:{type:"success"}},[e._v("在线")]):e._e(),0==t.row.online?a("el-tag",{attrs:{type:"info"}},[e._v("离线")]):e._e()]}}])}),a("el-table-column",{attrs:{prop:"platform",align:"center",label:"服务平台"},scopedSlots:e._u([{key:"default",fn:function(t){return[a("el-tag",[e._v(e._s(e.$getPlatformItem(t.row.platform).title))])]}}])}),a("el-table-column",{attrs:{prop:"remarks",label:"备注"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(t.row.remarks||"------")+"\n ")]}}])}),a("el-table-column",{attrs:{prop:"create_at",label:"注册时间"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(e.$formatUnixDate(t.row.create_at,"YYYY/MM/DD"))+"\n ")]}}])}),a("el-table-column",{attrs:{prop:"operating",align:"center",label:"操作",width:"150"},scopedSlots:e._u([{key:"default",fn:function(t){return[a("el-button",{attrs:{size:"mini"},on:{click:function(a){return e.edit(t.row)}}},[e._v("编 辑")]),1==e.$store.getters.adminInfo.root?a("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(a){return e.deleteUser(t.row)}}},[e._v("删 除")]):e._e()]}}])})],1),a("el-row",{staticStyle:{"margin-top":"20px"},attrs:{type:"flex",justify:"space-between"}},[a("span",{staticStyle:{color:"#666","font-size":"14px"}},[e._v("共找到"+e._s(e.tableData.total)+"条数据")]),a("el-pagination",{attrs:{background:"",layout:"sizes, prev, pager, next","current-page":e.tableData.page_on,"page-sizes":[5,10,15,20],total:e.tableData.total},on:{"size-change":e.handleSizeChange,"current-change":e.handleCurrentChange}})],1),a("EditDialog",{attrs:{complete:e.getUsers,formData:e.editItem,dialogFormVisible:e.editDialogFormVisible},on:{"update:dialogFormVisible":function(t){e.editDialogFormVisible=t},"update:dialog-form-visible":function(t){e.editDialogFormVisible=t}}})],1)},l=[],s=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-dialog",{attrs:{title:"编辑用户","show-close":!1,visible:e.dialogFormVisible,"close-on-click-modal":!1},on:{"update:visible":function(t){e.dialogFormVisible=t}}},[a("el-form",{attrs:{model:e.form}},[a("el-form-item",{attrs:{label:"头像","label-width":e.formLabelWidth}},[a("el-row",{attrs:{gutter:10}},[a("el-col",{attrs:{span:3}},[a("div",{staticClass:"mini-im-file-button",attrs:{title:"点击上传图片"}},[a("el-avatar",{attrs:{size:50,src:e.form.avatar||e.$store.state.avatar}}),a("input",{attrs:{onClick:"this.value = null",type:"file",accept:"image/*"},on:{change:e.changeFile}}),a("div",{directives:[{name:"show",rawName:"v-show",value:e.isUploading,expression:"isUploading"}],staticClass:"mini-im-file-percent"},[a("span",[e._v(e._s(e.uploadPercent))])])],1)]),a("el-col",{attrs:{span:6}})],1)],1),a("el-form-item",{attrs:{label:"用户昵称","label-width":e.formLabelWidth}},[a("el-input",{attrs:{placeholder:"请输入用户昵称",autocomplete:"off"},model:{value:e.form.nickname,callback:function(t){e.$set(e.form,"nickname",t)},expression:"form.nickname"}})],1),a("el-form-item",{attrs:{label:"所在地区","label-width":e.formLabelWidth}},[a("el-input",{attrs:{placeholder:"请输入所在地区",autocomplete:"off"},model:{value:e.form.address,callback:function(t){e.$set(e.form,"address",t)},expression:"form.address"}})],1),a("el-form-item",{attrs:{label:"联系方式","label-width":e.formLabelWidth}},[a("el-input",{attrs:{placeholder:"请输入联系方式",autocomplete:"off"},model:{value:e.form.phone,callback:function(t){e.$set(e.form,"phone",t)},expression:"form.phone"}})],1),a("el-form-item",{attrs:{label:"备注","label-width":e.formLabelWidth}},[a("el-input",{attrs:{type:"textarea",placeholder:"请输入备注",autocomplete:"off"},model:{value:e.form.remarks,callback:function(t){e.$set(e.form,"remarks",t)},expression:"form.remarks"}})],1)],1),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:e.closeModal}},[e._v("取 消")]),a("el-button",{attrs:{type:"primary"},on:{click:e.save}},[e._v("保 存")])],1)],1)},n=[],r=a("bc3a"),i=a.n(r),c=a("fb21"),d={name:"mini-im-edit-user",data:function(){return{form:{id:"",avatar:"",phone:"",address:"",nickname:"",remarks:""},formLabelWidth:"120px",isUploading:!1,uploadPercent:""}},props:{dialogFormVisible:Boolean,complete:Function,formData:Object},methods:{closeModal:function(){this.$emit("update:dialogFormVisible",!1)},changeFile:function(e){var t=this,a=e.target.files[0];Object(c["a"])({file:a,progress:function(e){t.isUploading=!0,t.uploadPercent=e+"%"},success:function(e){t.isUploading=!1,t.uploadPercent="",t.$message.success("上传成功");var a=t.$store.getters.uploadToken.host+"/"+e;t.form.avatar=a},error:function(e){t.isUploading=!1,t.uploadPercent="",t.$message.error(e.message)}})},save:function(){var e=this,t=this.$loading({lock:!0,text:"保存中...",spinner:"el-icon-loading",background:"rgba(0, 0, 0, 0.5)"});i.a.put("/user",this.form).then((function(a){try{console.log(a),t.close(),e.$message.success("修改成功"),e.closeModal(),e.complete()}catch(o){console.log(o)}})).catch((function(a){t.close(),e.$message.error(a.response.data.message)}))}},watch:{formData:function(){this.form=Object.assign({},this.form,this.formData)}}},u=d,p=(a("b3fc"),a("2877")),f=Object(p["a"])(u,s,n,!1,null,"6bfc8d44",null),m=f.exports,b=a("c1df"),g={name:"robot",components:{EditDialog:m},data:function(){return{loading:!0,selectDate:[],tableData:{list:[],page_on:1,page_size:10,keyword:"",total:0,platform:1,date_start:"",date_end:""},editItem:{},editDialogFormVisible:!1}},computed:{platformConfig:function(){return this.$store.getters.platformConfig}},created:function(){var e=this;setTimeout((function(){return e.getUsers(1)}),500)},methods:{indexMethod:function(e){return(this.tableData.page_on-1)*this.tableData.page_size+e+1},edit:function(e){this.editItem=e,this.editDialogFormVisible=!0},deleteUser:function(e){var t=this;this.$confirm("您确定要删除该用户吗? 删除后不可恢复!","温馨提示!",{confirmButtonText:"确定",cancelButtonText:"取消",center:!0,type:"warning"}).then((function(){i.a.delete("/user/"+e.id).then((function(e){console.log(e.data),t.$message.success("删除成功"),t.getUsers(1)})).catch((function(e){t.$message.error(e.response.data.message)}))}))},handleSizeChange:function(e){this.tableData.page_size=e,this.getUsers()},handleCurrentChange:function(e){this.tableData.page_on=e,this.getUsers()},search:function(){2==this.selectDate.length?(this.tableData.date_start=b(this.selectDate[0]).format("YYYY-MM-DD"),this.tableData.date_end=b(this.selectDate[1]).format("YYYY-MM-DD")):(this.tableData.date_start="",this.tableData.date_end=""),this.getUsers(1)},getUsers:function(e){var t=this;e&&(this.tableData.page_on=e);var a=this.tableData,o=a.page_on,l=a.page_size,s=a.keyword,n=a.date_start,r=a.date_end,c=a.platform;i.a.post("/user/list",{page_on:o,page_size:l,keyword:s,date_start:n,date_end:r,platform:c}).then((function(e){t.loading=!1,t.tableData=e.data.data})).catch((function(e){t.loading=!1,t.$message.error(e.response.data.message)}))}}},h=g,_=(a("7487"),Object(p["a"])(h,o,l,!1,null,"d2bb02c0",null));t["default"]=_.exports},5672:function(e,t,a){},7487:function(e,t,a){"use strict";var o=a("5672"),l=a.n(o);l.a},8904:function(e,t,a){},b3fc:function(e,t,a){"use strict";var o=a("8904"),l=a.n(o);l.a}}]);
//# sourceMappingURL=chunk-771e4186.f1240d97.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///./src/views/users/index.vue?67bf","webpack:///./src/views/users/edit.vue?fca4","webpack:///src/views/users/edit.vue","webpack:///./src/views/users/edit.vue?2db2","webpack:///./src/views/users/edit.vue","webpack:///src/views/users/index.vue","webpack:///./src/views/users/index.vue?6c0d","webpack:///./src/views/users/index.vue","webpack:///./src/views/users/index.vue?3a21","webpack:///./src/views/users/edit.vue?3e06"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","slot","_v","staticStyle","ref","model","value","tableData","callback","$$v","$set","expression","_l","item","key","id","title","selectDate","on","search","directives","name","rawName","list","indexMethod","scopedSlots","_u","fn","scope","row","avatar","$store","state","nickname","_s","uid","address","phone","online","_e","$getPlatformItem","platform","remarks","$formatUnixDate","create_at","$event","edit","getters","adminInfo","root","deleteUser","total","page_on","handleSizeChange","handleCurrentChange","getUsers","editItem","editDialogFormVisible","staticRenderFns","dialogFormVisible","form","formLabelWidth","changeFile","uploadPercent","closeModal","save","data","isUploading","props","Boolean","complete","Function","formData","Object","methods","$emit","fileData","file","target","files","lock","text","spinner","background","watch","assign","component","moment","components","EditDialog","loading","page_size","keyword","date_start","date_end","computed","platformConfig","created","setTimeout","index","$confirm","confirmButtonText","cancelButtonText","center","type","val","format"],"mappings":"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","file":"js/chunk-771e4186.f1240d97.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"mini-im-head\"},[_c('span',[_c('i',{staticClass:\"el-icon-user\"}),_c('span',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"用户管理\")])])]),_c('el-divider'),_c('div',{staticClass:\"search\"},[_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{staticStyle:{\"width\":\"120px\"}},[_c('el-form',{ref:\"form\",attrs:{\"label-width\":\"120px\"}},[_c('el-form-item',{attrs:{\"label\":\"按条件查找:\"}})],1)],1),_c('el-col',{attrs:{\"span\":3}},[_c('el-select',{attrs:{\"placeholder\":\"请选择平台\"},model:{value:(_vm.tableData.platform),callback:function ($$v) {_vm.$set(_vm.tableData, \"platform\", $$v)},expression:\"tableData.platform\"}},_vm._l((_vm.platformConfig),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.title,\"value\":item.id}})}),1)],1),_c('el-col',{attrs:{\"span\":4}},[_c('el-input',{attrs:{\"placeholder\":\"请输入关键词\",\"prefix-icon\":\"el-icon-search\",\"clearable\":\"\"},model:{value:(_vm.tableData.keyword),callback:function ($$v) {_vm.$set(_vm.tableData, \"keyword\", $$v)},expression:\"tableData.keyword\"}})],1),_c('el-col',{attrs:{\"span\":6.5}},[_c('el-date-picker',{attrs:{\"type\":\"daterange\",\"align\":\"right\",\"unlink-panels\":\"\",\"range-separator\":\"至\",\"start-placeholder\":\"开始日期\",\"end-placeholder\":\"结束日期\"},model:{value:(_vm.selectDate),callback:function ($$v) {_vm.selectDate=$$v},expression:\"selectDate\"}})],1),_c('el-col',{attrs:{\"span\":3}},[_c('el-button',{on:{\"click\":_vm.search}},[_vm._v(\"查 找\")])],1)],1)],1),_c('el-table',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.tableData.list}},[_c('el-table-column',{attrs:{\"type\":\"index\",\"index\":_vm.indexMethod,\"width\":\"60\"}}),_c('el-table-column',{attrs:{\"prop\":\"avatar\",\"label\":\"头像\",\"width\":\"80\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-avatar',{attrs:{\"size\":40,\"src\":scope.row.avatar || _vm.$store.state.avatar}})]}}])}),_c('el-table-column',{attrs:{\"prop\":\"nickname\",\"label\":\"用户昵称\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.nickname != '')?_c('span',[_vm._v(_vm._s(scope.row.nickname))]):_c('span',[_vm._v(\"------\")])]}}])}),_c('el-table-column',{attrs:{\"prop\":\"uid\",\"label\":\"业务平台ID\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.uid != '')?_c('span',[_vm._v(_vm._s(scope.row.uid))]):_c('span',[_vm._v(\"------\")])]}}])}),_c('el-table-column',{attrs:{\"prop\":\"address\",\"label\":\"所在地区\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.address != '')?_c('span',[_vm._v(_vm._s(scope.row.address))]):_c('span',[_vm._v(\"------\")])]}}])}),_c('el-table-column',{attrs:{\"prop\":\"phone\",\"label\":\"联系方式\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.phone != '')?_c('span',[_vm._v(_vm._s(scope.row.phone))]):_c('span',[_vm._v(\"------\")])]}}])}),_c('el-table-column',{attrs:{\"prop\":\"online\",\"align\":\"center\",\"label\":\"在线状态\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.online == 1)?_c('el-tag',{attrs:{\"type\":\"success\"}},[_vm._v(\"在线\")]):_vm._e(),(scope.row.online == 0)?_c('el-tag',{attrs:{\"type\":\"info\"}},[_vm._v(\"离线\")]):_vm._e()]}}])}),_c('el-table-column',{attrs:{\"prop\":\"platform\",\"align\":\"center\",\"label\":\"服务平台\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-tag',[_vm._v(_vm._s(_vm.$getPlatformItem(scope.row.platform).title))])]}}])}),_c('el-table-column',{attrs:{\"prop\":\"remarks\",\"label\":\"备注\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(\"\\n \"+_vm._s(scope.row.remarks || '------')+\"\\n \")]}}])}),_c('el-table-column',{attrs:{\"prop\":\"create_at\",\"label\":\"注册时间\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(\"\\n \"+_vm._s(_vm.$formatUnixDate(scope.row.create_at, \"YYYY/MM/DD\"))+\"\\n \")]}}])}),_c('el-table-column',{attrs:{\"prop\":\"operating\",\"align\":\"center\",\"label\":\"操作\",\"width\":\"150\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":function($event){return _vm.edit(scope.row)}}},[_vm._v(\"编 辑\")]),(_vm.$store.getters.adminInfo.root == 1)?_c('el-button',{attrs:{\"size\":\"mini\",\"type\":\"danger\"},on:{\"click\":function($event){return _vm.deleteUser(scope.row)}}},[_vm._v(\"删 除\")]):_vm._e()]}}])})],1),_c('el-row',{staticStyle:{\"margin-top\":\"20px\"},attrs:{\"type\":\"flex\",\"justify\":\"space-between\"}},[_c('span',{staticStyle:{\"color\":\"#666\",\"font-size\":\"14px\"}},[_vm._v(\"共找到\"+_vm._s(_vm.tableData.total)+\"条数据\")]),_c('el-pagination',{attrs:{\"background\":\"\",\"layout\":\"sizes, prev, pager, next\",\"current-page\":_vm.tableData.page_on,\"page-sizes\":[5, 10, 15, 20],\"total\":_vm.tableData.total},on:{\"size-change\":_vm.handleSizeChange,\"current-change\":_vm.handleCurrentChange}})],1),_c('EditDialog',{attrs:{\"complete\":_vm.getUsers,\"formData\":_vm.editItem,\"dialogFormVisible\":_vm.editDialogFormVisible},on:{\"update:dialogFormVisible\":function($event){_vm.editDialogFormVisible=$event},\"update:dialog-form-visible\":function($event){_vm.editDialogFormVisible=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{\"title\":\"编辑用户\",\"show-close\":false,\"visible\":_vm.dialogFormVisible,\"close-on-click-modal\":false},on:{\"update:visible\":function($event){_vm.dialogFormVisible=$event}}},[_c('el-form',{attrs:{\"model\":_vm.form}},[_c('el-form-item',{attrs:{\"label\":\"头像\",\"label-width\":_vm.formLabelWidth}},[_c('el-row',{attrs:{\"gutter\":10}},[_c('el-col',{attrs:{\"span\":3}},[_c('div',{staticClass:\"mini-im-file-button\",attrs:{\"title\":\"点击上传图片\"}},[_c('el-avatar',{attrs:{\"size\":50,\"src\":_vm.form.avatar || _vm.$store.state.avatar}}),_c('input',{attrs:{\"onClick\":\"this.value = null\",\"type\":\"file\",\"accept\":\"image/*\"},on:{\"change\":_vm.changeFile}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isUploading),expression:\"isUploading\"}],staticClass:\"mini-im-file-percent\"},[_c('span',[_vm._v(_vm._s(_vm.uploadPercent))])])],1)]),_c('el-col',{attrs:{\"span\":6}})],1)],1),_c('el-form-item',{attrs:{\"label\":\"用户昵称\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入用户昵称\",\"autocomplete\":\"off\"},model:{value:(_vm.form.nickname),callback:function ($$v) {_vm.$set(_vm.form, \"nickname\", $$v)},expression:\"form.nickname\"}})],1),_c('el-form-item',{attrs:{\"label\":\"所在地区\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入所在地区\",\"autocomplete\":\"off\"},model:{value:(_vm.form.address),callback:function ($$v) {_vm.$set(_vm.form, \"address\", $$v)},expression:\"form.address\"}})],1),_c('el-form-item',{attrs:{\"label\":\"联系方式\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入联系方式\",\"autocomplete\":\"off\"},model:{value:(_vm.form.phone),callback:function ($$v) {_vm.$set(_vm.form, \"phone\", $$v)},expression:\"form.phone\"}})],1),_c('el-form-item',{attrs:{\"label\":\"备注\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"placeholder\":\"请输入备注\",\"autocomplete\":\"off\"},model:{value:(_vm.form.remarks),callback:function ($$v) {_vm.$set(_vm.form, \"remarks\", $$v)},expression:\"form.remarks\"}})],1)],1),_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.closeModal}},[_vm._v(\"取 消\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"保 存\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <el-dialog\n title=\"编辑用户\"\n :show-close=\"false\"\n :visible.sync=\"dialogFormVisible\"\n :close-on-click-modal=\"false\"\n >\n <el-form :model=\"form\">\n <el-form-item label=\"头像\" :label-width=\"formLabelWidth\">\n <el-row :gutter=\"10\">\n <el-col :span=\"3\">\n <div class=\"mini-im-file-button\" title=\"点击上传图片\">\n <el-avatar\n :size=\"50\"\n :src=\"form.avatar || $store.state.avatar\"\n ></el-avatar>\n <input onClick=\"this.value = null\" @change=\"changeFile\" type=\"file\" accept=\"image/*\" />\n <div v-show=\"isUploading\" class=\"mini-im-file-percent\">\n <span>{{uploadPercent}}</span>\n </div>\n </div>\n </el-col>\n <el-col :span=\"6\"></el-col>\n </el-row>\n </el-form-item>\n <el-form-item label=\"用户昵称\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.nickname\" placeholder=\"请输入用户昵称\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"所在地区\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.address\" placeholder=\"请输入所在地区\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"联系方式\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.phone\" placeholder=\"请输入联系方式\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"备注\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.remarks\" type=\"textarea\" placeholder=\"请输入备注\" autocomplete=\"off\"></el-input>\n </el-form-item>\n </el-form>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"closeModal\">取 消</el-button>\n <el-button type=\"primary\" @click=\"save\">保 存</el-button>\n </div>\n </el-dialog>\n</template>\n<script>\nimport axios from 'axios'\nimport upload from '../../common/upload'\nexport default {\n name: \"mini-im-edit-user\",\n data() {\n return {\n form: {\n id: \"\",\n avatar: \"\",\n phone: \"\",\n address: \"\",\n nickname: \"\",\n remarks: \"\"\n },\n formLabelWidth: \"120px\",\n isUploading: false,\n uploadPercent: \"\"\n };\n },\n props: {\n dialogFormVisible: Boolean,\n complete: Function,\n formData: Object\n },\n methods: {\n // 关闭\n closeModal() {\n this.$emit(\"update:dialogFormVisible\", false);\n },\n // 上传\n changeFile(file) {\n\n var fileData = file.target.files[0];\n upload({\n file: fileData,\n progress: (percent) => {\n this.isUploading = true;\n this.uploadPercent = percent + \"%\";\n },\n success: (url) => {\n this.isUploading = false;\n this.uploadPercent = \"\";\n this.$message.success(\"上传成功\");\n var imgUrl = this.$store.getters.uploadToken.host + \"/\" + url\n this.form.avatar = imgUrl;\n },\n error: (err)=>{\n this.isUploading = false;\n this.uploadPercent = \"\";\n this.$message.error(err.message);\n }\n });\n\n\n },\n // 保存\n save(){\n // 验证字段 !! 算了前端不验证了\n const loading = this.$loading({\n lock: true,\n text: \"保存中...\",\n spinner: \"el-icon-loading\",\n background: \"rgba(0, 0, 0, 0.5)\"\n });\n axios\n .put(\"/user\", this.form)\n .then(response => {\n try {\n console.log(response);\n loading.close();\n this.$message.success(\"修改成功\");\n this.closeModal();\n this.complete();\n } catch (e) {\n console.log(e);\n }\n })\n .catch(error => {\n loading.close();\n this.$message.error(error.response.data.message);\n });\n },\n },\n watch:{\n formData(){\n this.form = Object.assign({},this.form, this.formData)\n }\n }\n};\n</script>\n<style scoped lang=\"stylus\">\n.mini-im-file-button {\n width: 50px;\n height: 50px;\n border-radius: 50%;\n position: relative;\n overflow: hidden;\n\n input {\n font-size: 100px;\n position: absolute;\n top: 0px;\n left: 0px;\n cursor: pointer;\n opacity 0\n }\n\n cursor: pointer;\n\n .mini-im-file-percent {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, 0.5);\n color: #fff;\n font-size: 12px;\n }\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./edit.vue?vue&type=template&id=6bfc8d44&scoped=true&\"\nimport script from \"./edit.vue?vue&type=script&lang=js&\"\nexport * from \"./edit.vue?vue&type=script&lang=js&\"\nimport style0 from \"./edit.vue?vue&type=style&index=0&id=6bfc8d44&scoped=true&lang=stylus&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6bfc8d44\",\n null\n \n)\n\nexport default component.exports","<template>\n <div>\n <div class=\"mini-im-head\">\n <span>\n <i class=\"el-icon-user\"></i>\n <span slot=\"title\">用户管理</span>\n </span>\n </div>\n <el-divider />\n <div class=\"search\">\n <el-row :gutter=\"20\">\n <el-col style=\"width: 120px\">\n <el-form ref=\"form\" label-width=\"120px\">\n <el-form-item label=\"按条件查找:\"></el-form-item>\n </el-form>\n </el-col>\n <el-col :span=\"3\">\n <el-select v-model=\"tableData.platform\" placeholder=\"请选择平台\">\n <el-option\n v-for=\"item in platformConfig\"\n :key=\"item.id\"\n :label=\"item.title\"\n :value=\"item.id\"\n ></el-option>\n </el-select>\n </el-col>\n <el-col :span=\"4\">\n <el-input placeholder=\"请输入关键词\" prefix-icon=\"el-icon-search\" v-model=\"tableData.keyword\" clearable></el-input>\n </el-col>\n <el-col :span=\"6.5\">\n <el-date-picker\n v-model=\"selectDate\"\n type=\"daterange\"\n align=\"right\"\n unlink-panels\n range-separator=\"至\"\n start-placeholder=\"开始日期\"\n end-placeholder=\"结束日期\"\n ></el-date-picker>\n </el-col>\n <el-col :span=\"3\">\n <el-button @click=\"search\">查 找</el-button>\n </el-col>\n </el-row>\n </div>\n <el-table :data=\"tableData.list\" v-loading=\"loading\" style=\"width: 100%\">\n <el-table-column\n type=\"index\"\n :index=\"indexMethod\"\n width=\"60\">\n </el-table-column>\n <el-table-column prop=\"avatar\" label=\"头像\" width=\"80\">\n <template slot-scope=\"scope\">\n <el-avatar :size=\"40\" :src=\"scope.row.avatar || $store.state.avatar\"></el-avatar>\n </template>\n </el-table-column>\n <el-table-column prop=\"nickname\" label=\"用户昵称\">\n <template slot-scope=\"scope\">\n <span v-if=\"scope.row.nickname != ''\">{{scope.row.nickname}}</span>\n <span v-else>------</span>\n </template>\n </el-table-column>\n <el-table-column prop=\"uid\" label=\"业务平台ID\">\n <template slot-scope=\"scope\">\n <span v-if=\"scope.row.uid != ''\">{{scope.row.uid}}</span>\n <span v-else>------</span>\n </template>\n </el-table-column>\n <el-table-column prop=\"address\" label=\"所在地区\">\n <template slot-scope=\"scope\">\n <span v-if=\"scope.row.address != ''\">{{scope.row.address}}</span>\n <span v-else>------</span>\n </template>\n </el-table-column>\n <el-table-column prop=\"phone\" label=\"联系方式\">\n <template slot-scope=\"scope\">\n <span v-if=\"scope.row.phone != ''\">{{scope.row.phone}}</span>\n <span v-else>------</span>\n </template>\n </el-table-column>\n <el-table-column prop=\"online\" align=\"center\" label=\"在线状态\">\n <template slot-scope=\"scope\">\n <el-tag type=\"success\" v-if=\"scope.row.online == 1\">在线</el-tag>\n <el-tag type=\"info\" v-if=\"scope.row.online == 0\">离线</el-tag>\n </template>\n </el-table-column>\n <el-table-column prop=\"platform\" align=\"center\" label=\"服务平台\">\n <template slot-scope=\"scope\">\n <el-tag>{{$getPlatformItem(scope.row.platform).title}}</el-tag>\n </template>\n </el-table-column>\n <el-table-column prop=\"remarks\" label=\"备注\">\n <template slot-scope=\"scope\">\n {{scope.row.remarks || '------'}}\n </template>\n </el-table-column>\n <el-table-column prop=\"create_at\" label=\"注册时间\">\n <template slot-scope=\"scope\">\n {{$formatUnixDate(scope.row.create_at, \"YYYY/MM/DD\")}}\n </template>\n </el-table-column>\n <el-table-column prop=\"operating\" align=\"center\" label=\"操作\" width=\"150\">\n <template slot-scope=\"scope\">\n <el-button size=\"mini\" @click=\"edit(scope.row)\">编 辑</el-button>\n <el-button v-if=\"$store.getters.adminInfo.root == 1\" size=\"mini\" type=\"danger\" @click=\"deleteUser(scope.row)\">删 除</el-button>\n </template>\n </el-table-column>\n </el-table>\n <el-row type=\"flex\" style=\"margin-top: 20px;\" justify=\"space-between\">\n <span style=\"color:#666;font-size: 14px;\">共找到{{tableData.total}}条数据</span>\n <el-pagination\n background\n @size-change=\"handleSizeChange\"\n @current-change=\"handleCurrentChange\"\n layout=\"sizes, prev, pager, next\"\n :current-page=\"tableData.page_on\"\n :page-sizes=\"[5, 10, 15, 20]\"\n :total=\"tableData.total\">\n </el-pagination>\n </el-row>\n <EditDialog :complete=\"getUsers\" :formData=\"editItem\" :dialogFormVisible.sync=\"editDialogFormVisible\" />\n </div>\n</template>\n\n<script>\nimport EditDialog from \"./edit\";\nimport axios from 'axios'\nvar moment = require('moment');\nexport default {\n name: \"robot\",\n components: {\n EditDialog\n },\n data() {\n return {\n loading: true,\n selectDate: [],\n tableData: {\n list: [],\n page_on: 1,\n page_size: 10,\n keyword: \"\",\n total: 0,\n platform: 1,\n date_start: \"\",\n date_end: \"\",\n },\n editItem: {},\n editDialogFormVisible: false,\n };\n },\n computed: {\n platformConfig(){\n return this.$store.getters.platformConfig\n }\n },\n created() {\n setTimeout(()=> this.getUsers(1), 500)\n },\n methods: {\n // 行号\n indexMethod(index) {\n return (this.tableData.page_on - 1) * this.tableData.page_size + index +1;\n },\n // 编辑\n edit(item){\n this.editItem = item\n this.editDialogFormVisible = true\n },\n // 删除\n deleteUser(item) {\n this.$confirm('您确定要删除该用户吗? 删除后不可恢复!', '温馨提示!', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n center: true,\n type: 'warning'\n }).then(() => {\n axios.delete('/user/' + item.id)\n .then(response => {\n console.log(response.data)\n this.$message.success(\"删除成功\")\n this.getUsers(1)\n })\n .catch(error => {\n this.$message.error(error.response.data.message)\n });\n })\n },\n // 改变每页条数\n handleSizeChange(val) {\n this.tableData.page_size = val\n this.getUsers()\n },\n // 分页\n handleCurrentChange(val) {\n this.tableData.page_on = val\n this.getUsers()\n },\n // 查询\n search(){\n if(this.selectDate.length == 2){\n this.tableData.date_start = moment(this.selectDate[0]).format(\"YYYY-MM-DD\")\n this.tableData.date_end = moment(this.selectDate[1]).format(\"YYYY-MM-DD\")\n }else{\n this.tableData.date_start = \"\"\n this.tableData.date_end = \"\"\n }\n this.getUsers(1)\n },\n // 获取数据\n getUsers(index){\n if(index) this.tableData.page_on = index\n const {page_on, page_size, keyword, date_start, date_end, platform} = this.tableData\n axios.post('/user/list', {page_on, page_size, keyword, date_start, date_end, platform})\n .then(response => {\n this.loading = false\n this.tableData = response.data.data\n })\n .catch(error => {\n this.loading = false\n this.$message.error(error.response.data.message)\n });\n },\n }\n};\n</script>\n<style lang=\"stylus\" scoped>\n.mini-im-head {\n height: 30px;\n display: flex;\n align-items: center;\n font-size: 20px;\n justify-content: space-between;\n color: #666;\n\n i {\n margin-right: 5px;\n }\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=d2bb02c0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=d2bb02c0&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d2bb02c0\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=d2bb02c0&lang=stylus&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=d2bb02c0&lang=stylus&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit.vue?vue&type=style&index=0&id=6bfc8d44&scoped=true&lang=stylus&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit.vue?vue&type=style&index=0&id=6bfc8d44&scoped=true&lang=stylus&\""],"sourceRoot":""}
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-99e15be2"],{"0980":function(t,e,a){"use strict";var o=a("89c6"),i=a.n(o);i.a},2157:function(t,e,a){"use strict";a.r(e);var o=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("div",{staticClass:"mini-im-head"},[a("span",[a("i",{staticClass:"el-icon-picture-outline-round"}),a("span",{attrs:{slot:"title"},slot:"title"},[t._v("机器人管理")])]),1==t.adminInfo.root?a("el-button",{attrs:{size:"mini"},on:{click:function(e){t.createDialogFormVisible=!0}}},[t._v("添 加")]):t._e()],1),a("el-divider"),a("el-table",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:t.tableData}},[a("el-table-column",{attrs:{type:"index",width:"60"}}),a("el-table-column",{attrs:{prop:"avatar",label:"头像",width:"80"},scopedSlots:t._u([{key:"default",fn:function(t){return[a("el-avatar",{attrs:{size:40,src:t.row.avatar}})]}}])}),a("el-table-column",{attrs:{prop:"nickname",label:"机器人昵称"}}),a("el-table-column",{attrs:{prop:"welcome",label:"欢迎语"}}),a("el-table-column",{attrs:{prop:"understand",label:"无匹配知识库语"}}),a("el-table-column",{attrs:{prop:"timeout_text",label:"超时结束提示"}}),a("el-table-column",{attrs:{prop:"no_services",label:"无人工在线提示"}}),a("el-table-column",{attrs:{prop:"loog_time_wait_text",label:"长时间等待提示"}}),a("el-table-column",{attrs:{prop:"keyword",label:"检索知识库热词"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("span",[t._v(t._s(e.row.keyword.replace(/\|/g," , ")))])]}}])}),a("el-table-column",{attrs:{prop:"artificial",label:"转人工关键词"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("span",[t._v(t._s(e.row.artificial.replace(/\|/g," , ")))])]}}])}),a("el-table-column",{attrs:{prop:"switch",align:"center",label:"运行状态"},scopedSlots:t._u([{key:"default",fn:function(e){return[1==e.row.switch?a("el-tag",{attrs:{type:"success"}},[t._v("服务中")]):t._e(),0==e.row.switch?a("el-tag",{attrs:{type:"danger"}},[t._v("服务暂停")]):t._e()]}}])}),a("el-table-column",{attrs:{align:"center",prop:"platform",label:"服务平台"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("el-tag",[t._v(t._s(t.$getPlatformItem(e.row.platform).title))])]}}])}),a("el-table-column",{attrs:{prop:"create_at",label:"创建时间"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v("\n "+t._s(t.$formatUnixDate(e.row.create_at,"YYYY/MM/DD"))+"\n ")]}}])}),1==t.adminInfo.root?a("el-table-column",{attrs:{prop:"operating",align:"center",label:"操作",width:"150"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("el-button",{attrs:{size:"mini"},on:{click:function(a){return t.edit(e.row)}}},[t._v("编 辑")]),a("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(a){return t.deleteRobot(e.row)}}},[t._v("删 除")])]}}],null,!1,289946275)}):t._e()],1),a("el-row",{staticStyle:{"margin-top":"20px"},attrs:{type:"flex",justify:"space-between"}},[a("span",{staticStyle:{color:"#666","font-size":"14px"}},[t._v("当前有"+t._s(t.tableData.length)+"个机器人")])]),a("CreateDialog",{attrs:{complete:t.getRobotList,dialogFormVisible:t.createDialogFormVisible},on:{"update:dialogFormVisible":function(e){t.createDialogFormVisible=e},"update:dialog-form-visible":function(e){t.createDialogFormVisible=e}}}),a("EditDialog",{attrs:{complete:t.getRobotList,formData:t.editItem,dialogFormVisible:t.editDialogFormVisible},on:{"update:dialogFormVisible":function(e){t.editDialogFormVisible=e},"update:dialog-form-visible":function(e){t.editDialogFormVisible=e}}})],1)},i=[],l=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-dialog",{attrs:{width:"600px",title:"添加机器人","show-close":!1,visible:t.dialogFormVisible,"close-on-click-modal":!1},on:{"update:visible":function(e){t.dialogFormVisible=e}}},[a("el-form",{attrs:{model:t.form}},[a("el-form-item",{attrs:{label:"头像","label-width":t.formLabelWidth}},[a("el-row",{attrs:{gutter:10}},[a("el-col",{attrs:{span:3}},[a("div",{staticClass:"mini-im-file-button",attrs:{title:"点击上传图片"}},[a("el-avatar",{attrs:{size:50,src:t.form.avatar}}),a("input",{attrs:{onClick:"this.value = null",type:"file",accept:"image/*"},on:{change:t.changeFile}}),a("div",{directives:[{name:"show",rawName:"v-show",value:t.isUploading,expression:"isUploading"}],staticClass:"mini-im-file-percent"},[a("span",[t._v(t._s(t.uploadPercent))])])],1)]),a("el-col",{attrs:{span:6}})],1)],1),a("el-form-item",{attrs:{label:"机器人昵称","label-width":t.formLabelWidth}},[a("el-input",{attrs:{placeholder:"请输入机器人昵称",autocomplete:"off"},model:{value:t.form.nickname,callback:function(e){t.$set(t.form,"nickname",e)},expression:"form.nickname"}})],1),a("el-form-item",{attrs:{label:"机器人欢迎语","label-width":t.formLabelWidth}},[a("el-input",{attrs:{type:"textarea",rows:2,placeholder:"请输入机器人欢迎语",autocomplete:"off"},model:{value:t.form.welcome,callback:function(e){t.$set(t.form,"welcome",e)},expression:"form.welcome"}})],1),a("el-form-item",{attrs:{label:"无匹配知识库语","label-width":t.formLabelWidth}},[a("el-input",{attrs:{type:"textarea",rows:2,placeholder:"请输入无法识别回复语",autocomplete:"off"},model:{value:t.form.understand,callback:function(e){t.$set(t.form,"understand",e)},expression:"form.understand"}})],1),a("el-form-item",{attrs:{label:"超时结束提示","label-width":t.formLabelWidth}},[a("el-input",{attrs:{type:"textarea",rows:2,placeholder:"请输入会话超时结束提示",autocomplete:"off"},model:{value:t.form.timeout_text,callback:function(e){t.$set(t.form,"timeout_text",e)},expression:"form.timeout_text"}})],1),a("el-form-item",{attrs:{label:"无人工在线提示","label-width":t.formLabelWidth}},[a("el-input",{attrs:{type:"textarea",rows:2,placeholder:"请输入无人工在线提示",autocomplete:"off"},model:{value:t.form.no_services,callback:function(e){t.$set(t.form,"no_services",e)},expression:"form.no_services"}})],1),a("el-form-item",{attrs:{label:"长时间等待提示","label-width":t.formLabelWidth}},[a("el-input",{attrs:{type:"textarea",rows:2,placeholder:"请输入长时间等待提示语",autocomplete:"off"},model:{value:t.form.loog_time_wait_text,callback:function(e){t.$set(t.form,"loog_time_wait_text",e)},expression:"form.loog_time_wait_text"}})],1),a("el-form-item",{attrs:{label:"检索知识库热词","label-width":t.formLabelWidth}},[t._l(t.keyWordTags,(function(e){return a("el-tag",{key:e,attrs:{closable:"","disable-transitions":!1},on:{close:function(a){return t.handleKeyWordDel(e,"keyWordTagsInput")}}},[t._v(t._s(e))])})),t.showkeyWordTagsInput?a("el-input",{ref:"keyWordTagsInput",staticClass:"input-new-tag",attrs:{size:"small"},on:{blur:t.handleInputConfirm},nativeOn:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.handleInputConfirm(e)}},model:{value:t.inputkeyWordTagValue,callback:function(e){t.inputkeyWordTagValue=e},expression:"inputkeyWordTagValue"}}):a("el-button",{staticClass:"button-new-tag",attrs:{size:"small"},on:{click:function(e){return t.showTagInput("keyWordTagsInput")}}},[t._v("+ 新增")]),a("div",{staticStyle:{"font-size":"12px"}},[t._v("* 该词库会在用户输入的时候去匹配检索提示")])],2),a("el-form-item",{attrs:{label:"转人工关键词","label-width":t.formLabelWidth}},[t._l(t.dynamicTags,(function(e){return a("el-tag",{key:e,attrs:{closable:"","disable-transitions":!1},on:{close:function(a){return t.handleKeyWordDel(e,"dynamicTagsInput")}}},[t._v(t._s(e))])})),t.showDynamicTagsInput?a("el-input",{ref:"dynamicTagsInput",staticClass:"input-new-tag",attrs:{size:"small"},on:{blur:t.handleInputConfirm},nativeOn:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.handleInputConfirm(e)}},model:{value:t.inputDynamicTagValue,callback:function(e){t.inputDynamicTagValue=e},expression:"inputDynamicTagValue"}}):a("el-button",{staticClass:"button-new-tag",attrs:{size:"small"},on:{click:function(e){return t.showTagInput("dynamicTagsInput")}}},[t._v("+ 新增")]),a("div",{staticStyle:{"font-size":"12px"}},[t._v('* 匹配该关键词进入人工,系统已内置: "人工"')])],2),a("el-form-item",{attrs:{label:"运行状态","label-width":t.formLabelWidth}},[a("el-switch",{attrs:{"active-color":"#13ce66","inactive-color":"#ff4949"},model:{value:t.robotSwitch,callback:function(e){t.robotSwitch=e},expression:"robotSwitch"}})],1),a("el-form-item",{attrs:{label:"匹配平台","label-width":t.formLabelWidth}},[a("el-select",{attrs:{placeholder:"请选择匹配平台"},model:{value:t.form.platform,callback:function(e){t.$set(t.form,"platform",e)},expression:"form.platform"}},t._l(t.$store.getters.platformConfig,(function(t,e){return a("el-option",{key:e,attrs:{label:t.title,value:t.id}})})),1)],1)],1),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:t.closeModal}},[t._v("取 消")]),a("el-button",{attrs:{type:"primary"},on:{click:t.save}},[t._v("保 存")])],1)],1)},n=[],s=(a("57e7"),a("bc3a")),r=a.n(s),c=a("fb21"),u={name:"mini-im-create-robot",data:function(){return{dynamicTags:[],keyWordTags:[],showkeyWordTagsInput:!1,inputkeyWordTagValue:"",showDynamicTagsInput:!1,inputDynamicTagValue:"",form:{nickname:"",avatar:"",welcome:"",understand:"",artificial:"",keyword:"",timeout_text:"",no_services:"",loog_time_wait_text:"",platform:1,switch:1},robotSwitch:!0,formLabelWidth:"120px",isUploading:!1,uploadPercent:""}},props:{dialogFormVisible:Boolean,complete:Function},methods:{closeModal:function(){this.resize(),this.$emit("update:dialogFormVisible",!1)},changeFile:function(t){var e=this,a=t.target.files[0];Object(c["a"])({file:a,progress:function(t){e.isUploading=!0,e.uploadPercent=t+"%"},success:function(t){e.isUploading=!1,e.uploadPercent="",e.$message.success("上传成功");var a=e.$store.getters.uploadToken.host+"/"+t;e.form.avatar=a},error:function(t){e.isUploading=!1,e.uploadPercent="",e.$message.error(t.message)}})},handleKeyWordDel:function(t,e){"dynamicTagsInput"==e?this.dynamicTags.splice(this.dynamicTags.indexOf(t),1):"keyWordTagsInput"==e&&this.keyWordTags.splice(this.keyWordTags.indexOf(t),1)},showTagInput:function(t){var e=this;"dynamicTagsInput"==t?(this.showDynamicTagsInput=!0,this.$nextTick((function(){e.$refs.dynamicTagsInput.$refs.input.focus()}))):"keyWordTagsInput"==t&&(this.showkeyWordTagsInput=!0,this.$nextTick((function(){e.$refs.keyWordTagsInput.$refs.input.focus()})))},handleInputConfirm:function(){var t=this.inputDynamicTagValue,e=this.inputkeyWordTagValue;t&&this.dynamicTags.push(t),e&&this.keyWordTags.push(e),this.showkeyWordTagsInput=!1,this.showDynamicTagsInput=!1,this.inputDynamicTagValue="",this.inputkeyWordTagValue=""},save:function(){var t=this,e=this.$loading({lock:!0,text:"保存中...",spinner:"el-icon-loading",background:"rgba(0, 0, 0, 0.5)"});this.form.artificial=this.dynamicTags.join("|"),this.form.keyword=this.keyWordTags.join("|"),this.form.switch=this.robotSwitch?1:0,r.a.post("/robot",this.form).then((function(a){try{console.log(a),e.close(),t.$message.success("添加成功"),t.closeModal(),t.resize(),t.complete()}catch(o){console.log(o)}})).catch((function(a){e.close(),t.$message.error(a.response.data.message)}))},resize:function(){this.dynamicTags=[],this.inputVisible=!1,this.inputValue="",this.form={nickname:"",avatar:"",welcome:"",timeout_text:"",no_services:"",loog_time_wait_text:"",understand:"",artificial:"",platform:1,switch:1}}}},m=u,d=(a("ea25"),a("2877")),f=Object(d["a"])(m,l,n,!1,null,"2e63f8e9",null),p=f.exports,h=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-dialog",{attrs:{width:"600px",title:"编辑机器人","show-close":!1,visible:t.dialogFormVisible,"close-on-click-modal":!1},on:{"update:visible":function(e){t.dialogFormVisible=e}}},[a("el-form",{attrs:{model:t.form}},[a("el-form-item",{attrs:{label:"头像","label-width":t.formLabelWidth}},[a("el-row",{attrs:{gutter:10}},[a("el-col",{attrs:{span:3}},[a("div",{staticClass:"mini-im-file-button",attrs:{title:"点击上传图片"}},[a("el-avatar",{attrs:{size:50,src:t.form.avatar}}),a("input",{attrs:{onClick:"this.value = null",type:"file",accept:"image/*"},on:{change:t.changeFile}}),a("div",{directives:[{name:"show",rawName:"v-show",value:t.isUploading,expression:"isUploading"}],staticClass:"mini-im-file-percent"},[a("span",[t._v(t._s(t.uploadPercent))])])],1)]),a("el-col",{attrs:{span:6}})],1)],1),a("el-form-item",{attrs:{label:"机器人昵称","label-width":t.formLabelWidth}},[a("el-input",{attrs:{placeholder:"请输入机器人昵称",autocomplete:"off"},model:{value:t.form.nickname,callback:function(e){t.$set(t.form,"nickname",e)},expression:"form.nickname"}})],1),a("el-form-item",{attrs:{type:"textarea",rows:2,label:"机器人欢迎语","label-width":t.formLabelWidth}},[a("el-input",{attrs:{placeholder:"请输入机器人欢迎语",autocomplete:"off"},model:{value:t.form.welcome,callback:function(e){t.$set(t.form,"welcome",e)},expression:"form.welcome"}})],1),a("el-form-item",{attrs:{label:"无匹配知识库语","label-width":t.formLabelWidth}},[a("el-input",{attrs:{type:"textarea",rows:2,placeholder:"请输入无法识别回复语",autocomplete:"off"},model:{value:t.form.understand,callback:function(e){t.$set(t.form,"understand",e)},expression:"form.understand"}})],1),a("el-form-item",{attrs:{label:"超时结束提示","label-width":t.formLabelWidth}},[a("el-input",{attrs:{type:"textarea",rows:2,placeholder:"请输入会话超时结束提示",autocomplete:"off"},model:{value:t.form.timeout_text,callback:function(e){t.$set(t.form,"timeout_text",e)},expression:"form.timeout_text"}})],1),a("el-form-item",{attrs:{label:"无人工在线提示","label-width":t.formLabelWidth}},[a("el-input",{attrs:{type:"textarea",rows:2,placeholder:"请输入无人工在线提示",autocomplete:"off"},model:{value:t.form.no_services,callback:function(e){t.$set(t.form,"no_services",e)},expression:"form.no_services"}})],1),a("el-form-item",{attrs:{label:"长时间等待提示","label-width":t.formLabelWidth}},[a("el-input",{attrs:{type:"textarea",rows:2,placeholder:"请输入长时间等待提示语",autocomplete:"off"},model:{value:t.form.loog_time_wait_text,callback:function(e){t.$set(t.form,"loog_time_wait_text",e)},expression:"form.loog_time_wait_text"}})],1),a("el-form-item",{attrs:{label:"检索知识库热词","label-width":t.formLabelWidth}},[t._l(t.keyWordTags,(function(e){return a("el-tag",{key:e,attrs:{closable:"","disable-transitions":!1},on:{close:function(a){return t.handleKeyWordDel(e,"keyWordTagsInput")}}},[t._v(t._s(e))])})),t.showkeyWordTagsInput?a("el-input",{ref:"keyWordTagsInput",staticClass:"input-new-tag",attrs:{size:"small"},on:{blur:t.handleInputConfirm},nativeOn:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.handleInputConfirm(e)}},model:{value:t.inputkeyWordTagValue,callback:function(e){t.inputkeyWordTagValue=e},expression:"inputkeyWordTagValue"}}):a("el-button",{staticClass:"button-new-tag",attrs:{size:"small"},on:{click:function(e){return t.showTagInput("keyWordTagsInput")}}},[t._v("+ 新增")]),a("div",{staticStyle:{"font-size":"12px"}},[t._v("* 该词库会在用户输入的时候去匹配检索提示")])],2),a("el-form-item",{attrs:{label:"转人工关键词","label-width":t.formLabelWidth}},[t._l(t.dynamicTags,(function(e){return a("el-tag",{key:e,attrs:{closable:"","disable-transitions":!1},on:{close:function(a){return t.handleKeyWordDel(e,"dynamicTagsInput")}}},[t._v(t._s(e))])})),t.showDynamicTagsInput?a("el-input",{ref:"dynamicTagsInput",staticClass:"input-new-tag",attrs:{size:"small"},on:{blur:t.handleInputConfirm},nativeOn:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.handleInputConfirm(e)}},model:{value:t.inputDynamicTagValue,callback:function(e){t.inputDynamicTagValue=e},expression:"inputDynamicTagValue"}}):a("el-button",{staticClass:"button-new-tag",attrs:{size:"small"},on:{click:function(e){return t.showTagInput("dynamicTagsInput")}}},[t._v("+ 新增")]),a("div",{staticStyle:{"font-size":"12px"}},[t._v('* 匹配该关键词进入人工,系统已内置: "人工"')])],2),a("el-form-item",{directives:[{name:"show",rawName:"v-show",value:1e9!=t.formData.id,expression:"formData.id != 1000000000"}],attrs:{label:"运行状态","label-width":t.formLabelWidth}},[a("el-switch",{attrs:{"active-color":"#13ce66","inactive-color":"#ff4949"},model:{value:t.robotSwitch,callback:function(e){t.robotSwitch=e},expression:"robotSwitch"}})],1),a("el-form-item",{directives:[{name:"show",rawName:"v-show",value:1e9!=t.formData.id,expression:"formData.id != 1000000000"}],attrs:{label:"匹配平台","label-width":t.formLabelWidth}},[a("el-select",{attrs:{placeholder:"请选择匹配平台"},model:{value:t.form.platform,callback:function(e){t.$set(t.form,"platform",e)},expression:"form.platform"}},t._l(t.$store.getters.platformConfig,(function(t,e){return a("el-option",{key:e,attrs:{label:t.title,value:t.id}})})),1)],1)],1),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:t.closeModal}},[t._v("取 消")]),a("el-button",{attrs:{type:"primary"},on:{click:t.save}},[t._v("保 存")])],1)],1)},g=[],b=(a("28a5"),{name:"mini-im-edit-robot",data:function(){return{dynamicTags:[],keyWordTags:[],showkeyWordTagsInput:!1,inputkeyWordTagValue:"",showDynamicTagsInput:!1,inputDynamicTagValue:"",form:{nickname:"",avatar:"",welcome:"",understand:"",artificial:"",keyword:"",timeout_text:"",no_services:"",loog_time_wait_text:"",platform:1,switch:1},robotSwitch:!0,formLabelWidth:"120px",isUploading:!1,uploadPercent:""}},props:{dialogFormVisible:Boolean,complete:Function,formData:Object},methods:{closeModal:function(){this.$emit("update:dialogFormVisible",!1)},changeFile:function(t){var e=this,a=t.target.files[0];Object(c["a"])({file:a,progress:function(t){e.isUploading=!0,e.uploadPercent=t+"%"},success:function(t){e.isUploading=!1,e.uploadPercent="",e.$message.success("上传成功");var a=e.$store.getters.uploadToken.host+"/"+t;e.form.avatar=a},error:function(t){e.isUploading=!1,e.uploadPercent="",e.$message.error(t.message)}})},handleKeyWordDel:function(t,e){"dynamicTagsInput"==e?this.dynamicTags.splice(this.dynamicTags.indexOf(t),1):"keyWordTagsInput"==e&&this.keyWordTags.splice(this.keyWordTags.indexOf(t),1)},showTagInput:function(t){var e=this;"dynamicTagsInput"==t?(this.showDynamicTagsInput=!0,this.$nextTick((function(){e.$refs.dynamicTagsInput.$refs.input.focus()}))):"keyWordTagsInput"==t&&(this.showkeyWordTagsInput=!0,this.$nextTick((function(){e.$refs.keyWordTagsInput.$refs.input.focus()})))},handleInputConfirm:function(){var t=this.inputDynamicTagValue,e=this.inputkeyWordTagValue;t&&this.dynamicTags.push(t),e&&this.keyWordTags.push(e),this.showkeyWordTagsInput=!1,this.showDynamicTagsInput=!1,this.inputDynamicTagValue="",this.inputkeyWordTagValue=""},save:function(){var t=this,e=this.$loading({lock:!0,text:"保存中...",spinner:"el-icon-loading",background:"rgba(0, 0, 0, 0.5)"});this.form.artificial=this.dynamicTags.join("|"),this.form.keyword=this.keyWordTags.join("|"),this.form.switch=this.robotSwitch?1:0,r.a.put("/robot",this.form).then((function(a){try{console.log(a),e.close(),t.$message.success("修改成功"),t.closeModal(),t.complete()}catch(o){console.log(o)}})).catch((function(a){e.close(),t.$message.error(a.response.data.message)}))}},watch:{formData:function(){this.platformConfig=this.$store.getters.platformConfig,this.form=Object.assign({},this.form,this.formData),""!=this.formData.artificial&&(this.dynamicTags=this.formData.artificial.split("|")),""!=this.formData.keyword&&(this.keyWordTags=this.formData.keyword.split("|")),this.robotSwitch=1==this.form.switch}}}),y=b,w=(a("a900"),Object(d["a"])(y,h,g,!1,null,"6b34f2e3",null)),k=w.exports,v={name:"robot",components:{CreateDialog:p,EditDialog:k},data:function(){return{createDialogFormVisible:!1,editDialogFormVisible:!1,loading:!0,editItem:{}}},created:function(){var t=this;setTimeout((function(){return t.getRobotList()}),500)},computed:{tableData:function(){return this.$store.getters.robots||[]},adminInfo:function(){return this.$store.getters.adminInfo||{}}},methods:{deleteRobot:function(t){var e=this;this.$confirm("您确定要删除该机器人吗? 删除后不可恢复!","温馨提示!",{confirmButtonText:"确定",cancelButtonText:"取消",center:!0,type:"warning"}).then((function(){r.a.delete("/robot/"+t.id).then((function(t){console.log(t.data),e.$message.success("删除成功"),e.getRobotList()})).catch((function(t){e.$message.error(t.response.data.message)}))}))},edit:function(t){this.editItem=t,this.editDialogFormVisible=!0},getRobotList:function(){var t=this;r.a.get("/robot/list").then((function(e){t.loading=!1,t.$store.commit("onChangeRobos",e.data.data)})).catch((function(e){t.loading=!1,t.$message.error(e.response.data.message)}))}}},_=v,T=(a("0980"),Object(d["a"])(_,o,i,!1,null,"dea0f158",null));e["default"]=T.exports},"89c6":function(t,e,a){},9104:function(t,e,a){},a900:function(t,e,a){"use strict";var o=a("9104"),i=a.n(o);i.a},c19b:function(t,e,a){},ea25:function(t,e,a){"use strict";var o=a("c19b"),i=a.n(o);i.a}}]);
//# sourceMappingURL=chunk-99e15be2.69d71101.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///./src/views/robot/index.vue?32d5","webpack:///./src/views/robot/index.vue?8601","webpack:///./src/views/robot/create.vue?788e","webpack:///src/views/robot/create.vue","webpack:///./src/views/robot/create.vue?68be","webpack:///./src/views/robot/create.vue","webpack:///./src/views/robot/edit.vue?97e5","webpack:///src/views/robot/edit.vue","webpack:///./src/views/robot/edit.vue?8ee4","webpack:///./src/views/robot/edit.vue","webpack:///src/views/robot/index.vue","webpack:///./src/views/robot/index.vue?870d","webpack:///./src/views/robot/index.vue","webpack:///./src/views/robot/edit.vue?66a2","webpack:///./src/views/robot/create.vue?2d57"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","slot","_v","adminInfo","root","on","$event","createDialogFormVisible","_e","directives","name","rawName","value","expression","staticStyle","tableData","scopedSlots","_u","key","fn","scope","row","avatar","_s","keyword","replace","artificial","switch","$getPlatformItem","platform","title","$formatUnixDate","create_at","edit","deleteRobot","length","getRobotList","editItem","editDialogFormVisible","staticRenderFns","dialogFormVisible","form","formLabelWidth","changeFile","uploadPercent","model","callback","$$v","$set","_l","tag","handleKeyWordDel","ref","handleInputConfirm","nativeOn","type","indexOf","_k","keyCode","inputkeyWordTagValue","showTagInput","inputDynamicTagValue","robotSwitch","$store","getters","item","index","id","closeModal","save","data","dynamicTags","keyWordTags","showkeyWordTagsInput","showDynamicTagsInput","nickname","welcome","understand","timeout_text","no_services","loog_time_wait_text","isUploading","props","Boolean","complete","Function","methods","resize","$emit","fileData","file","target","files","imgUrl","splice","$nextTick","push","lock","text","spinner","background","join","inputVisible","inputValue","component","formData","Object","watch","platformConfig","assign","components","CreateDialog","EditDialog","loading","created","setTimeout","computed","robots","$confirm","confirmButtonText","cancelButtonText","center"],"mappings":"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","file":"js/chunk-99e15be2.69d71101.js","sourcesContent":["import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=dea0f158&lang=stylus&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=dea0f158&lang=stylus&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"mini-im-head\"},[_c('span',[_c('i',{staticClass:\"el-icon-picture-outline-round\"}),_c('span',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"机器人管理\")])]),(_vm.adminInfo.root == 1)?_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":function($event){_vm.createDialogFormVisible = true}}},[_vm._v(\"添 加\")]):_vm._e()],1),_c('el-divider'),_c('el-table',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.tableData}},[_c('el-table-column',{attrs:{\"type\":\"index\",\"width\":\"60\"}}),_c('el-table-column',{attrs:{\"prop\":\"avatar\",\"label\":\"头像\",\"width\":\"80\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-avatar',{attrs:{\"size\":40,\"src\":scope.row.avatar}})]}}])}),_c('el-table-column',{attrs:{\"prop\":\"nickname\",\"label\":\"机器人昵称\"}}),_c('el-table-column',{attrs:{\"prop\":\"welcome\",\"label\":\"欢迎语\"}}),_c('el-table-column',{attrs:{\"prop\":\"understand\",\"label\":\"无匹配知识库语\"}}),_c('el-table-column',{attrs:{\"prop\":\"timeout_text\",\"label\":\"超时结束提示\"}}),_c('el-table-column',{attrs:{\"prop\":\"no_services\",\"label\":\"无人工在线提示\"}}),_c('el-table-column',{attrs:{\"prop\":\"loog_time_wait_text\",\"label\":\"长时间等待提示\"}}),_c('el-table-column',{attrs:{\"prop\":\"keyword\",\"label\":\"检索知识库热词\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('span',[_vm._v(_vm._s(scope.row.keyword.replace(/\\|/g, \" , \")))])]}}])}),_c('el-table-column',{attrs:{\"prop\":\"artificial\",\"label\":\"转人工关键词\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('span',[_vm._v(_vm._s(scope.row.artificial.replace(/\\|/g, \" , \")))])]}}])}),_c('el-table-column',{attrs:{\"prop\":\"switch\",\"align\":\"center\",\"label\":\"运行状态\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.switch == 1)?_c('el-tag',{attrs:{\"type\":\"success\"}},[_vm._v(\"服务中\")]):_vm._e(),(scope.row.switch == 0)?_c('el-tag',{attrs:{\"type\":\"danger\"}},[_vm._v(\"服务暂停\")]):_vm._e()]}}])}),_c('el-table-column',{attrs:{\"align\":\"center\",\"prop\":\"platform\",\"label\":\"服务平台\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-tag',[_vm._v(_vm._s(_vm.$getPlatformItem(scope.row.platform).title))])]}}])}),_c('el-table-column',{attrs:{\"prop\":\"create_at\",\"label\":\"创建时间\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(\"\\n \"+_vm._s(_vm.$formatUnixDate(scope.row.create_at, \"YYYY/MM/DD\"))+\"\\n \")]}}])}),(_vm.adminInfo.root == 1)?_c('el-table-column',{attrs:{\"prop\":\"operating\",\"align\":\"center\",\"label\":\"操作\",\"width\":\"150\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":function($event){return _vm.edit(scope.row)}}},[_vm._v(\"编 辑\")]),_c('el-button',{attrs:{\"size\":\"mini\",\"type\":\"danger\"},on:{\"click\":function($event){return _vm.deleteRobot(scope.row)}}},[_vm._v(\"删 除\")])]}}],null,false,289946275)}):_vm._e()],1),_c('el-row',{staticStyle:{\"margin-top\":\"20px\"},attrs:{\"type\":\"flex\",\"justify\":\"space-between\"}},[_c('span',{staticStyle:{\"color\":\"#666\",\"font-size\":\"14px\"}},[_vm._v(\"当前有\"+_vm._s(_vm.tableData.length)+\"个机器人\")])]),_c('CreateDialog',{attrs:{\"complete\":_vm.getRobotList,\"dialogFormVisible\":_vm.createDialogFormVisible},on:{\"update:dialogFormVisible\":function($event){_vm.createDialogFormVisible=$event},\"update:dialog-form-visible\":function($event){_vm.createDialogFormVisible=$event}}}),_c('EditDialog',{attrs:{\"complete\":_vm.getRobotList,\"formData\":_vm.editItem,\"dialogFormVisible\":_vm.editDialogFormVisible},on:{\"update:dialogFormVisible\":function($event){_vm.editDialogFormVisible=$event},\"update:dialog-form-visible\":function($event){_vm.editDialogFormVisible=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{\"width\":\"600px\",\"title\":\"添加机器人\",\"show-close\":false,\"visible\":_vm.dialogFormVisible,\"close-on-click-modal\":false},on:{\"update:visible\":function($event){_vm.dialogFormVisible=$event}}},[_c('el-form',{attrs:{\"model\":_vm.form}},[_c('el-form-item',{attrs:{\"label\":\"头像\",\"label-width\":_vm.formLabelWidth}},[_c('el-row',{attrs:{\"gutter\":10}},[_c('el-col',{attrs:{\"span\":3}},[_c('div',{staticClass:\"mini-im-file-button\",attrs:{\"title\":\"点击上传图片\"}},[_c('el-avatar',{attrs:{\"size\":50,\"src\":_vm.form.avatar}}),_c('input',{attrs:{\"onClick\":\"this.value = null\",\"type\":\"file\",\"accept\":\"image/*\"},on:{\"change\":_vm.changeFile}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isUploading),expression:\"isUploading\"}],staticClass:\"mini-im-file-percent\"},[_c('span',[_vm._v(_vm._s(_vm.uploadPercent))])])],1)]),_c('el-col',{attrs:{\"span\":6}})],1)],1),_c('el-form-item',{attrs:{\"label\":\"机器人昵称\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入机器人昵称\",\"autocomplete\":\"off\"},model:{value:(_vm.form.nickname),callback:function ($$v) {_vm.$set(_vm.form, \"nickname\", $$v)},expression:\"form.nickname\"}})],1),_c('el-form-item',{attrs:{\"label\":\"机器人欢迎语\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":2,\"placeholder\":\"请输入机器人欢迎语\",\"autocomplete\":\"off\"},model:{value:(_vm.form.welcome),callback:function ($$v) {_vm.$set(_vm.form, \"welcome\", $$v)},expression:\"form.welcome\"}})],1),_c('el-form-item',{attrs:{\"label\":\"无匹配知识库语\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":2,\"placeholder\":\"请输入无法识别回复语\",\"autocomplete\":\"off\"},model:{value:(_vm.form.understand),callback:function ($$v) {_vm.$set(_vm.form, \"understand\", $$v)},expression:\"form.understand\"}})],1),_c('el-form-item',{attrs:{\"label\":\"超时结束提示\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":2,\"placeholder\":\"请输入会话超时结束提示\",\"autocomplete\":\"off\"},model:{value:(_vm.form.timeout_text),callback:function ($$v) {_vm.$set(_vm.form, \"timeout_text\", $$v)},expression:\"form.timeout_text\"}})],1),_c('el-form-item',{attrs:{\"label\":\"无人工在线提示\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":2,\"placeholder\":\"请输入无人工在线提示\",\"autocomplete\":\"off\"},model:{value:(_vm.form.no_services),callback:function ($$v) {_vm.$set(_vm.form, \"no_services\", $$v)},expression:\"form.no_services\"}})],1),_c('el-form-item',{attrs:{\"label\":\"长时间等待提示\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":2,\"placeholder\":\"请输入长时间等待提示语\",\"autocomplete\":\"off\"},model:{value:(_vm.form.loog_time_wait_text),callback:function ($$v) {_vm.$set(_vm.form, \"loog_time_wait_text\", $$v)},expression:\"form.loog_time_wait_text\"}})],1),_c('el-form-item',{attrs:{\"label\":\"检索知识库热词\",\"label-width\":_vm.formLabelWidth}},[_vm._l((_vm.keyWordTags),function(tag){return _c('el-tag',{key:tag,attrs:{\"closable\":\"\",\"disable-transitions\":false},on:{\"close\":function($event){return _vm.handleKeyWordDel(tag, 'keyWordTagsInput')}}},[_vm._v(_vm._s(tag))])}),(_vm.showkeyWordTagsInput)?_c('el-input',{ref:\"keyWordTagsInput\",staticClass:\"input-new-tag\",attrs:{\"size\":\"small\"},on:{\"blur\":_vm.handleInputConfirm},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handleInputConfirm($event)}},model:{value:(_vm.inputkeyWordTagValue),callback:function ($$v) {_vm.inputkeyWordTagValue=$$v},expression:\"inputkeyWordTagValue\"}}):_c('el-button',{staticClass:\"button-new-tag\",attrs:{\"size\":\"small\"},on:{\"click\":function($event){return _vm.showTagInput('keyWordTagsInput')}}},[_vm._v(\"+ 新增\")]),_c('div',{staticStyle:{\"font-size\":\"12px\"}},[_vm._v(\"* 该词库会在用户输入的时候去匹配检索提示\")])],2),_c('el-form-item',{attrs:{\"label\":\"转人工关键词\",\"label-width\":_vm.formLabelWidth}},[_vm._l((_vm.dynamicTags),function(tag){return _c('el-tag',{key:tag,attrs:{\"closable\":\"\",\"disable-transitions\":false},on:{\"close\":function($event){return _vm.handleKeyWordDel(tag, 'dynamicTagsInput')}}},[_vm._v(_vm._s(tag))])}),(_vm.showDynamicTagsInput)?_c('el-input',{ref:\"dynamicTagsInput\",staticClass:\"input-new-tag\",attrs:{\"size\":\"small\"},on:{\"blur\":_vm.handleInputConfirm},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handleInputConfirm($event)}},model:{value:(_vm.inputDynamicTagValue),callback:function ($$v) {_vm.inputDynamicTagValue=$$v},expression:\"inputDynamicTagValue\"}}):_c('el-button',{staticClass:\"button-new-tag\",attrs:{\"size\":\"small\"},on:{\"click\":function($event){return _vm.showTagInput('dynamicTagsInput')}}},[_vm._v(\"+ 新增\")]),_c('div',{staticStyle:{\"font-size\":\"12px\"}},[_vm._v(\"* 匹配该关键词进入人工,系统已内置: \\\"人工\\\"\")])],2),_c('el-form-item',{attrs:{\"label\":\"运行状态\",\"label-width\":_vm.formLabelWidth}},[_c('el-switch',{attrs:{\"active-color\":\"#13ce66\",\"inactive-color\":\"#ff4949\"},model:{value:(_vm.robotSwitch),callback:function ($$v) {_vm.robotSwitch=$$v},expression:\"robotSwitch\"}})],1),_c('el-form-item',{attrs:{\"label\":\"匹配平台\",\"label-width\":_vm.formLabelWidth}},[_c('el-select',{attrs:{\"placeholder\":\"请选择匹配平台\"},model:{value:(_vm.form.platform),callback:function ($$v) {_vm.$set(_vm.form, \"platform\", $$v)},expression:\"form.platform\"}},_vm._l((_vm.$store.getters.platformConfig),function(item,index){return _c('el-option',{key:index,attrs:{\"label\":item.title,\"value\":item.id}})}),1)],1)],1),_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.closeModal}},[_vm._v(\"取 消\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"保 存\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <el-dialog\n width=\"600px\"\n title=\"添加机器人\"\n :show-close=\"false\"\n :visible.sync=\"dialogFormVisible\"\n :close-on-click-modal=\"false\"\n >\n <el-form :model=\"form\">\n <el-form-item label=\"头像\" :label-width=\"formLabelWidth\">\n <el-row :gutter=\"10\">\n <el-col :span=\"3\">\n <div class=\"mini-im-file-button\" title=\"点击上传图片\">\n <el-avatar\n :size=\"50\"\n :src=\"form.avatar\"\n ></el-avatar>\n <input onClick=\"this.value = null\" @change=\"changeFile\" type=\"file\" accept=\"image/*\" />\n <div v-show=\"isUploading\" class=\"mini-im-file-percent\">\n <span>{{uploadPercent}}</span>\n </div>\n </div>\n </el-col>\n <el-col :span=\"6\"></el-col>\n </el-row>\n </el-form-item>\n <el-form-item label=\"机器人昵称\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.nickname\" placeholder=\"请输入机器人昵称\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"机器人欢迎语\" :label-width=\"formLabelWidth\">\n <el-input type=\"textarea\" :rows=\"2\" v-model=\"form.welcome\" placeholder=\"请输入机器人欢迎语\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"无匹配知识库语\" :label-width=\"formLabelWidth\">\n <el-input type=\"textarea\" :rows=\"2\" v-model=\"form.understand\" placeholder=\"请输入无法识别回复语\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"超时结束提示\" :label-width=\"formLabelWidth\">\n <el-input type=\"textarea\" :rows=\"2\" v-model=\"form.timeout_text\" placeholder=\"请输入会话超时结束提示\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"无人工在线提示\" :label-width=\"formLabelWidth\">\n <el-input type=\"textarea\" :rows=\"2\" v-model=\"form.no_services\" placeholder=\"请输入无人工在线提示\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"长时间等待提示\" :label-width=\"formLabelWidth\">\n <el-input type=\"textarea\" :rows=\"2\" v-model=\"form.loog_time_wait_text\" placeholder=\"请输入长时间等待提示语\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"检索知识库热词\" :label-width=\"formLabelWidth\">\n <el-tag\n :key=\"tag\"\n v-for=\"tag in keyWordTags\"\n closable\n :disable-transitions=\"false\"\n @close=\"handleKeyWordDel(tag, 'keyWordTagsInput')\"\n >{{tag}}</el-tag>\n <el-input\n class=\"input-new-tag\"\n v-if=\"showkeyWordTagsInput\"\n v-model=\"inputkeyWordTagValue\"\n ref=\"keyWordTagsInput\"\n size=\"small\"\n @keyup.enter.native=\"handleInputConfirm\"\n @blur=\"handleInputConfirm\"\n ></el-input>\n <el-button v-else class=\"button-new-tag\" size=\"small\" @click=\"showTagInput('keyWordTagsInput')\">+ 新增</el-button>\n <div style=\"font-size:12px;\">* 该词库会在用户输入的时候去匹配检索提示</div>\n </el-form-item>\n <el-form-item label=\"转人工关键词\" :label-width=\"formLabelWidth\">\n <el-tag\n :key=\"tag\"\n v-for=\"tag in dynamicTags\"\n closable\n :disable-transitions=\"false\"\n @close=\"handleKeyWordDel(tag, 'dynamicTagsInput')\"\n >{{tag}}</el-tag>\n <el-input\n class=\"input-new-tag\"\n v-if=\"showDynamicTagsInput\"\n v-model=\"inputDynamicTagValue\"\n ref=\"dynamicTagsInput\"\n size=\"small\"\n @keyup.enter.native=\"handleInputConfirm\"\n @blur=\"handleInputConfirm\"\n ></el-input>\n <el-button v-else class=\"button-new-tag\" size=\"small\" @click=\"showTagInput('dynamicTagsInput')\">+ 新增</el-button>\n <div style=\"font-size:12px;\">* 匹配该关键词进入人工,系统已内置: \"人工\"</div>\n </el-form-item>\n <el-form-item label=\"运行状态\" :label-width=\"formLabelWidth\">\n <el-switch v-model=\"robotSwitch\" active-color=\"#13ce66\" inactive-color=\"#ff4949\"></el-switch>\n </el-form-item>\n <el-form-item label=\"匹配平台\" :label-width=\"formLabelWidth\">\n <el-select v-model=\"form.platform\" placeholder=\"请选择匹配平台\">\n <el-option\n :label=\"item.title\"\n :value=\"item.id\"\n :key=\"index\"\n v-for=\"(item, index) in $store.getters.platformConfig\"\n ></el-option>\n </el-select>\n </el-form-item>\n </el-form>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"closeModal\">取 消</el-button>\n <el-button type=\"primary\" @click=\"save\">保 存</el-button>\n </div>\n </el-dialog>\n</template>\n<script>\nimport axios from 'axios'\nimport upload from '../../common/upload'\nexport default {\n name: \"mini-im-create-robot\",\n data() {\n return {\n dynamicTags: [],\n keyWordTags: [],\n showkeyWordTagsInput: false,\n inputkeyWordTagValue: \"\",\n showDynamicTagsInput: false,\n inputDynamicTagValue: \"\",\n form: {\n nickname: \"\",\n avatar: \"\",\n welcome: \"\",\n understand: \"\",\n artificial: \"\",\n keyword: \"\",\n timeout_text: \"\",\n no_services: \"\",\n loog_time_wait_text: \"\",\n platform: 1,\n switch: 1\n },\n robotSwitch: true,\n formLabelWidth: \"120px\",\n isUploading: false,\n uploadPercent: \"\"\n };\n },\n props: {\n dialogFormVisible: Boolean,\n complete: Function\n },\n methods: {\n // 关闭\n closeModal() {\n this.resize();\n this.$emit(\"update:dialogFormVisible\", false);\n },\n // 上传\n changeFile(file) {\n \n var fileData = file.target.files[0];\n upload({\n file: fileData,\n progress: (percent) => {\n this.isUploading = true;\n this.uploadPercent = percent + \"%\";\n },\n success: (url) => {\n this.isUploading = false;\n this.uploadPercent = \"\";\n this.$message.success(\"上传成功\");\n var imgUrl = this.$store.getters.uploadToken.host + \"/\" + url\n this.form.avatar = imgUrl;\n },\n error: (err)=>{\n this.isUploading = false;\n this.uploadPercent = \"\";\n this.$message.error(err.message);\n }\n });\n\n\n },\n // 删除标签\n handleKeyWordDel(tag, type) {\n if(type == \"dynamicTagsInput\"){\n this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);\n }\n else if(type == \"keyWordTagsInput\"){\n this.keyWordTags.splice(this.keyWordTags.indexOf(tag), 1);\n }\n },\n // 显示子标题输入框\n showTagInput(type) {\n if(type == \"dynamicTagsInput\"){\n this.showDynamicTagsInput = true;\n this.$nextTick(() => {\n this.$refs.dynamicTagsInput.$refs.input.focus();\n });\n }else if(type == \"keyWordTagsInput\"){\n this.showkeyWordTagsInput = true;\n this.$nextTick(() => {\n this.$refs.keyWordTagsInput.$refs.input.focus();\n });\n }\n \n },\n // 标签确定\n handleInputConfirm() {\n let inputDynamicTagValue = this.inputDynamicTagValue;\n let inputkeyWordTagValue = this.inputkeyWordTagValue;\n if (inputDynamicTagValue) {\n this.dynamicTags.push(inputDynamicTagValue);\n }\n if (inputkeyWordTagValue) {\n this.keyWordTags.push(inputkeyWordTagValue);\n }\n this.showkeyWordTagsInput = false;\n this.showDynamicTagsInput = false;\n this.inputDynamicTagValue = \"\";\n this.inputkeyWordTagValue = \"\";\n },\n // 保存\n save(){\n // 验证字段 !! 算了前端不验证了\n const loading = this.$loading({\n lock: true,\n text: \"保存中...\",\n spinner: \"el-icon-loading\",\n background: \"rgba(0, 0, 0, 0.5)\"\n });\n this.form.artificial = this.dynamicTags.join(\"|\");\n this.form.keyword = this.keyWordTags.join(\"|\");\n this.form.switch = this.robotSwitch ? 1 : 0\n axios\n .post(\"/robot\", this.form)\n .then(response => {\n try {\n console.log(response);\n loading.close();\n this.$message.success(\"添加成功\");\n this.closeModal();\n this.resize();\n this.complete();\n } catch (e) {\n console.log(e);\n }\n })\n .catch(error => {\n loading.close();\n this.$message.error(error.response.data.message);\n });\n },\n // 重置\n resize(){\n this.dynamicTags = []\n this.inputVisible = false\n this.inputValue = \"\"\n this.form = {\n nickname: \"\",\n avatar: \"\",\n welcome: \"\",\n timeout_text: \"\",\n no_services: \"\",\n loog_time_wait_text: \"\",\n understand: \"\",\n artificial: \"\",\n platform: 1,\n switch: 1\n }\n }\n }\n};\n</script>\n<style scoped lang=\"stylus\">\n.mini-im-file-button {\n width: 50px;\n height: 50px;\n border-radius: 50%;\n position: relative;\n overflow: hidden;\n\n input {\n font-size: 100px;\n position: absolute;\n top: 0px;\n left: 0px;\n cursor: pointer;\n opacity 0\n }\n\n cursor: pointer;\n\n .mini-im-file-percent {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, 0.5);\n color: #fff;\n font-size: 12px;\n }\n}\n\n.el-tag + .el-tag {\n margin-left: 10px;\n}\n\n.button-new-tag {\n margin-left: 10px;\n height: 32px;\n line-height: 30px;\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.input-new-tag {\n width: 150px;\n margin-left: 10px;\n vertical-align: bottom;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./create.vue?vue&type=template&id=2e63f8e9&scoped=true&\"\nimport script from \"./create.vue?vue&type=script&lang=js&\"\nexport * from \"./create.vue?vue&type=script&lang=js&\"\nimport style0 from \"./create.vue?vue&type=style&index=0&id=2e63f8e9&scoped=true&lang=stylus&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2e63f8e9\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{\"width\":\"600px\",\"title\":\"编辑机器人\",\"show-close\":false,\"visible\":_vm.dialogFormVisible,\"close-on-click-modal\":false},on:{\"update:visible\":function($event){_vm.dialogFormVisible=$event}}},[_c('el-form',{attrs:{\"model\":_vm.form}},[_c('el-form-item',{attrs:{\"label\":\"头像\",\"label-width\":_vm.formLabelWidth}},[_c('el-row',{attrs:{\"gutter\":10}},[_c('el-col',{attrs:{\"span\":3}},[_c('div',{staticClass:\"mini-im-file-button\",attrs:{\"title\":\"点击上传图片\"}},[_c('el-avatar',{attrs:{\"size\":50,\"src\":_vm.form.avatar}}),_c('input',{attrs:{\"onClick\":\"this.value = null\",\"type\":\"file\",\"accept\":\"image/*\"},on:{\"change\":_vm.changeFile}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isUploading),expression:\"isUploading\"}],staticClass:\"mini-im-file-percent\"},[_c('span',[_vm._v(_vm._s(_vm.uploadPercent))])])],1)]),_c('el-col',{attrs:{\"span\":6}})],1)],1),_c('el-form-item',{attrs:{\"label\":\"机器人昵称\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入机器人昵称\",\"autocomplete\":\"off\"},model:{value:(_vm.form.nickname),callback:function ($$v) {_vm.$set(_vm.form, \"nickname\", $$v)},expression:\"form.nickname\"}})],1),_c('el-form-item',{attrs:{\"type\":\"textarea\",\"rows\":2,\"label\":\"机器人欢迎语\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入机器人欢迎语\",\"autocomplete\":\"off\"},model:{value:(_vm.form.welcome),callback:function ($$v) {_vm.$set(_vm.form, \"welcome\", $$v)},expression:\"form.welcome\"}})],1),_c('el-form-item',{attrs:{\"label\":\"无匹配知识库语\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":2,\"placeholder\":\"请输入无法识别回复语\",\"autocomplete\":\"off\"},model:{value:(_vm.form.understand),callback:function ($$v) {_vm.$set(_vm.form, \"understand\", $$v)},expression:\"form.understand\"}})],1),_c('el-form-item',{attrs:{\"label\":\"超时结束提示\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":2,\"placeholder\":\"请输入会话超时结束提示\",\"autocomplete\":\"off\"},model:{value:(_vm.form.timeout_text),callback:function ($$v) {_vm.$set(_vm.form, \"timeout_text\", $$v)},expression:\"form.timeout_text\"}})],1),_c('el-form-item',{attrs:{\"label\":\"无人工在线提示\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":2,\"placeholder\":\"请输入无人工在线提示\",\"autocomplete\":\"off\"},model:{value:(_vm.form.no_services),callback:function ($$v) {_vm.$set(_vm.form, \"no_services\", $$v)},expression:\"form.no_services\"}})],1),_c('el-form-item',{attrs:{\"label\":\"长时间等待提示\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":2,\"placeholder\":\"请输入长时间等待提示语\",\"autocomplete\":\"off\"},model:{value:(_vm.form.loog_time_wait_text),callback:function ($$v) {_vm.$set(_vm.form, \"loog_time_wait_text\", $$v)},expression:\"form.loog_time_wait_text\"}})],1),_c('el-form-item',{attrs:{\"label\":\"检索知识库热词\",\"label-width\":_vm.formLabelWidth}},[_vm._l((_vm.keyWordTags),function(tag){return _c('el-tag',{key:tag,attrs:{\"closable\":\"\",\"disable-transitions\":false},on:{\"close\":function($event){return _vm.handleKeyWordDel(tag, 'keyWordTagsInput')}}},[_vm._v(_vm._s(tag))])}),(_vm.showkeyWordTagsInput)?_c('el-input',{ref:\"keyWordTagsInput\",staticClass:\"input-new-tag\",attrs:{\"size\":\"small\"},on:{\"blur\":_vm.handleInputConfirm},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handleInputConfirm($event)}},model:{value:(_vm.inputkeyWordTagValue),callback:function ($$v) {_vm.inputkeyWordTagValue=$$v},expression:\"inputkeyWordTagValue\"}}):_c('el-button',{staticClass:\"button-new-tag\",attrs:{\"size\":\"small\"},on:{\"click\":function($event){return _vm.showTagInput('keyWordTagsInput')}}},[_vm._v(\"+ 新增\")]),_c('div',{staticStyle:{\"font-size\":\"12px\"}},[_vm._v(\"* 该词库会在用户输入的时候去匹配检索提示\")])],2),_c('el-form-item',{attrs:{\"label\":\"转人工关键词\",\"label-width\":_vm.formLabelWidth}},[_vm._l((_vm.dynamicTags),function(tag){return _c('el-tag',{key:tag,attrs:{\"closable\":\"\",\"disable-transitions\":false},on:{\"close\":function($event){return _vm.handleKeyWordDel(tag, 'dynamicTagsInput')}}},[_vm._v(_vm._s(tag))])}),(_vm.showDynamicTagsInput)?_c('el-input',{ref:\"dynamicTagsInput\",staticClass:\"input-new-tag\",attrs:{\"size\":\"small\"},on:{\"blur\":_vm.handleInputConfirm},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handleInputConfirm($event)}},model:{value:(_vm.inputDynamicTagValue),callback:function ($$v) {_vm.inputDynamicTagValue=$$v},expression:\"inputDynamicTagValue\"}}):_c('el-button',{staticClass:\"button-new-tag\",attrs:{\"size\":\"small\"},on:{\"click\":function($event){return _vm.showTagInput('dynamicTagsInput')}}},[_vm._v(\"+ 新增\")]),_c('div',{staticStyle:{\"font-size\":\"12px\"}},[_vm._v(\"* 匹配该关键词进入人工,系统已内置: \\\"人工\\\"\")])],2),_c('el-form-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.formData.id != 1000000000),expression:\"formData.id != 1000000000\"}],attrs:{\"label\":\"运行状态\",\"label-width\":_vm.formLabelWidth}},[_c('el-switch',{attrs:{\"active-color\":\"#13ce66\",\"inactive-color\":\"#ff4949\"},model:{value:(_vm.robotSwitch),callback:function ($$v) {_vm.robotSwitch=$$v},expression:\"robotSwitch\"}})],1),_c('el-form-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.formData.id != 1000000000),expression:\"formData.id != 1000000000\"}],attrs:{\"label\":\"匹配平台\",\"label-width\":_vm.formLabelWidth}},[_c('el-select',{attrs:{\"placeholder\":\"请选择匹配平台\"},model:{value:(_vm.form.platform),callback:function ($$v) {_vm.$set(_vm.form, \"platform\", $$v)},expression:\"form.platform\"}},_vm._l((_vm.$store.getters.platformConfig),function(item,index){return _c('el-option',{key:index,attrs:{\"label\":item.title,\"value\":item.id}})}),1)],1)],1),_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.closeModal}},[_vm._v(\"取 消\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"保 存\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <el-dialog\n width=\"600px\"\n title=\"编辑机器人\"\n :show-close=\"false\"\n :visible.sync=\"dialogFormVisible\"\n :close-on-click-modal=\"false\"\n >\n <el-form :model=\"form\">\n <el-form-item label=\"头像\" :label-width=\"formLabelWidth\">\n <el-row :gutter=\"10\">\n <el-col :span=\"3\">\n <div class=\"mini-im-file-button\" title=\"点击上传图片\">\n <el-avatar\n :size=\"50\"\n :src=\"form.avatar\"\n ></el-avatar>\n <input onClick=\"this.value = null\" @change=\"changeFile\" type=\"file\" accept=\"image/*\" />\n <div v-show=\"isUploading\" class=\"mini-im-file-percent\">\n <span>{{uploadPercent}}</span>\n </div>\n </div>\n </el-col>\n <el-col :span=\"6\"></el-col>\n </el-row>\n </el-form-item>\n <el-form-item label=\"机器人昵称\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.nickname\" placeholder=\"请输入机器人昵称\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item type=\"textarea\" :rows=\"2\" label=\"机器人欢迎语\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.welcome\" placeholder=\"请输入机器人欢迎语\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"无匹配知识库语\" :label-width=\"formLabelWidth\">\n <el-input type=\"textarea\" :rows=\"2\" v-model=\"form.understand\" placeholder=\"请输入无法识别回复语\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"超时结束提示\" :label-width=\"formLabelWidth\">\n <el-input type=\"textarea\" :rows=\"2\" v-model=\"form.timeout_text\" placeholder=\"请输入会话超时结束提示\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"无人工在线提示\" :label-width=\"formLabelWidth\">\n <el-input type=\"textarea\" :rows=\"2\" v-model=\"form.no_services\" placeholder=\"请输入无人工在线提示\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"长时间等待提示\" :label-width=\"formLabelWidth\">\n <el-input type=\"textarea\" :rows=\"2\" v-model=\"form.loog_time_wait_text\" placeholder=\"请输入长时间等待提示语\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"检索知识库热词\" :label-width=\"formLabelWidth\">\n <el-tag\n :key=\"tag\"\n v-for=\"tag in keyWordTags\"\n closable\n :disable-transitions=\"false\"\n @close=\"handleKeyWordDel(tag, 'keyWordTagsInput')\"\n >{{tag}}</el-tag>\n <el-input\n class=\"input-new-tag\"\n v-if=\"showkeyWordTagsInput\"\n v-model=\"inputkeyWordTagValue\"\n ref=\"keyWordTagsInput\"\n size=\"small\"\n @keyup.enter.native=\"handleInputConfirm\"\n @blur=\"handleInputConfirm\"\n ></el-input>\n <el-button v-else class=\"button-new-tag\" size=\"small\" @click=\"showTagInput('keyWordTagsInput')\">+ 新增</el-button>\n <div style=\"font-size:12px;\">* 该词库会在用户输入的时候去匹配检索提示</div>\n </el-form-item>\n <el-form-item label=\"转人工关键词\" :label-width=\"formLabelWidth\">\n <el-tag\n :key=\"tag\"\n v-for=\"tag in dynamicTags\"\n closable\n :disable-transitions=\"false\"\n @close=\"handleKeyWordDel(tag, 'dynamicTagsInput')\"\n >{{tag}}</el-tag>\n <el-input\n class=\"input-new-tag\"\n v-if=\"showDynamicTagsInput\"\n v-model=\"inputDynamicTagValue\"\n ref=\"dynamicTagsInput\"\n size=\"small\"\n @keyup.enter.native=\"handleInputConfirm\"\n @blur=\"handleInputConfirm\"\n ></el-input>\n <el-button v-else class=\"button-new-tag\" size=\"small\" @click=\"showTagInput('dynamicTagsInput')\">+ 新增</el-button>\n <div style=\"font-size:12px;\">* 匹配该关键词进入人工,系统已内置: \"人工\"</div>\n </el-form-item>\n <el-form-item v-show=\"formData.id != 1000000000\" label=\"运行状态\" :label-width=\"formLabelWidth\">\n <el-switch v-model=\"robotSwitch\" active-color=\"#13ce66\" inactive-color=\"#ff4949\"></el-switch>\n </el-form-item>\n <el-form-item v-show=\"formData.id != 1000000000\" label=\"匹配平台\" :label-width=\"formLabelWidth\">\n <el-select v-model=\"form.platform\" placeholder=\"请选择匹配平台\">\n <el-option\n :label=\"item.title\"\n :value=\"item.id\"\n :key=\"index\"\n v-for=\"(item, index) in $store.getters.platformConfig\"\n ></el-option>\n </el-select>\n </el-form-item>\n </el-form>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"closeModal\">取 消</el-button>\n <el-button type=\"primary\" @click=\"save\">保 存</el-button>\n </div>\n </el-dialog>\n</template>\n<script>\nimport axios from 'axios'\nimport upload from '../../common/upload'\nexport default {\n name: \"mini-im-edit-robot\",\n data() {\n return {\n dynamicTags: [],\n keyWordTags: [],\n showkeyWordTagsInput: false,\n inputkeyWordTagValue: \"\",\n showDynamicTagsInput: false,\n inputDynamicTagValue: \"\",\n form: {\n nickname: \"\",\n avatar: \"\",\n welcome: \"\",\n understand: \"\",\n artificial: \"\",\n keyword: \"\",\n timeout_text: \"\",\n no_services: \"\",\n loog_time_wait_text: \"\",\n platform: 1,\n switch: 1\n },\n robotSwitch: true,\n formLabelWidth: \"120px\",\n isUploading: false,\n uploadPercent: \"\"\n };\n },\n props: {\n dialogFormVisible: Boolean,\n complete: Function,\n formData: Object\n },\n methods: {\n // 关闭\n closeModal() {\n this.$emit(\"update:dialogFormVisible\", false);\n },\n // 上传\n changeFile(file) {\n var fileData = file.target.files[0];\n upload({\n file: fileData,\n progress: (percent) => {\n this.isUploading = true;\n this.uploadPercent = percent + \"%\";\n },\n success: (url) => {\n this.isUploading = false;\n this.uploadPercent = \"\";\n this.$message.success(\"上传成功\");\n var imgUrl = this.$store.getters.uploadToken.host + \"/\" + url\n this.form.avatar = imgUrl;\n },\n error: (err)=>{\n this.isUploading = false;\n this.uploadPercent = \"\";\n this.$message.error(err.message);\n }\n });\n \n },\n // 删除标签\n handleKeyWordDel(tag, type) {\n if(type == \"dynamicTagsInput\"){\n this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);\n }\n else if(type == \"keyWordTagsInput\"){\n this.keyWordTags.splice(this.keyWordTags.indexOf(tag), 1);\n }\n },\n // 显示子标题输入框\n showTagInput(type) {\n if(type == \"dynamicTagsInput\"){\n this.showDynamicTagsInput = true;\n this.$nextTick(() => {\n this.$refs.dynamicTagsInput.$refs.input.focus();\n });\n }else if(type == \"keyWordTagsInput\"){\n this.showkeyWordTagsInput = true;\n this.$nextTick(() => {\n this.$refs.keyWordTagsInput.$refs.input.focus();\n });\n }\n \n },\n // 标签确定\n handleInputConfirm() {\n let inputDynamicTagValue = this.inputDynamicTagValue;\n let inputkeyWordTagValue = this.inputkeyWordTagValue;\n if (inputDynamicTagValue) {\n this.dynamicTags.push(inputDynamicTagValue);\n }\n if (inputkeyWordTagValue) {\n this.keyWordTags.push(inputkeyWordTagValue);\n }\n this.showkeyWordTagsInput = false;\n this.showDynamicTagsInput = false;\n this.inputDynamicTagValue = \"\";\n this.inputkeyWordTagValue = \"\";\n },\n // 保存\n save(){\n // 验证字段 !! 算了前端不验证了\n const loading = this.$loading({\n lock: true,\n text: \"保存中...\",\n spinner: \"el-icon-loading\",\n background: \"rgba(0, 0, 0, 0.5)\"\n });\n this.form.artificial = this.dynamicTags.join(\"|\");\n this.form.keyword = this.keyWordTags.join(\"|\");\n this.form.switch = this.robotSwitch ? 1 : 0\n axios\n .put(\"/robot\", this.form)\n .then(response => {\n try {\n console.log(response);\n loading.close();\n this.$message.success(\"修改成功\");\n this.closeModal();\n this.complete();\n } catch (e) {\n console.log(e);\n }\n })\n .catch(error => {\n loading.close();\n this.$message.error(error.response.data.message);\n });\n },\n },\n watch:{\n formData(){\n this.platformConfig = this.$store.getters.platformConfig\n this.form = Object.assign({},this.form, this.formData)\n if(this.formData.artificial != \"\") this.dynamicTags = this.formData.artificial.split(\"|\")\n if(this.formData.keyword != \"\") this.keyWordTags = this.formData.keyword.split(\"|\")\n this.robotSwitch = this.form.switch == 1 ? true : false\n }\n }\n};\n</script>\n<style scoped lang=\"stylus\">\n.mini-im-file-button {\n width: 50px;\n height: 50px;\n border-radius: 50%;\n position: relative;\n overflow: hidden;\n\n input {\n font-size: 100px;\n position: absolute;\n top: 0px;\n left: 0px;\n cursor: pointer;\n opacity 0\n }\n\n cursor: pointer;\n\n .mini-im-file-percent {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, 0.5);\n color: #fff;\n font-size: 12px;\n }\n}\n\n.el-tag + .el-tag {\n margin-left: 10px;\n}\n\n.button-new-tag {\n margin-left: 10px;\n height: 32px;\n line-height: 30px;\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.input-new-tag {\n width: 150px;\n margin-left: 10px;\n vertical-align: bottom;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./edit.vue?vue&type=template&id=6b34f2e3&scoped=true&\"\nimport script from \"./edit.vue?vue&type=script&lang=js&\"\nexport * from \"./edit.vue?vue&type=script&lang=js&\"\nimport style0 from \"./edit.vue?vue&type=style&index=0&id=6b34f2e3&scoped=true&lang=stylus&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b34f2e3\",\n null\n \n)\n\nexport default component.exports","<template>\n <div>\n <div class=\"mini-im-head\">\n <span>\n <i class=\"el-icon-picture-outline-round\"></i>\n <span slot=\"title\">机器人管理</span>\n </span>\n <el-button v-if=\"adminInfo.root == 1\" @click=\"createDialogFormVisible = true\" size=\"mini\">添 加</el-button>\n </div>\n <el-divider />\n <el-table\n :data=\"tableData\"\n style=\"width: 100%\"\n v-loading=\"loading\"\n >\n <el-table-column\n type=\"index\"\n width=\"60\">\n </el-table-column>\n <el-table-column\n prop=\"avatar\"\n label=\"头像\"\n width=\"80\">\n <template slot-scope=\"scope\">\n <el-avatar :size=\"40\" :src=\"scope.row.avatar\"></el-avatar>\n </template>\n </el-table-column>\n <el-table-column\n prop=\"nickname\"\n label=\"机器人昵称\">\n </el-table-column>\n <el-table-column\n prop=\"welcome\"\n label=\"欢迎语\">\n </el-table-column>\n <el-table-column\n prop=\"understand\"\n label=\"无匹配知识库语\">\n </el-table-column>\n <el-table-column\n prop=\"timeout_text\"\n label=\"超时结束提示\">\n </el-table-column>\n <el-table-column\n prop=\"no_services\"\n label=\"无人工在线提示\">\n </el-table-column>\n <el-table-column\n prop=\"loog_time_wait_text\"\n label=\"长时间等待提示\">\n </el-table-column>\n <el-table-column\n prop=\"keyword\"\n label=\"检索知识库热词\">\n <template slot-scope=\"scope\">\n <span>{{scope.row.keyword.replace(/\\|/g, \" , \")}}</span>\n </template>\n </el-table-column>\n <el-table-column\n prop=\"artificial\"\n label=\"转人工关键词\">\n <template slot-scope=\"scope\">\n <span>{{scope.row.artificial.replace(/\\|/g, \" , \")}}</span>\n </template>\n </el-table-column>\n <el-table-column\n prop=\"switch\"\n align=\"center\"\n label=\"运行状态\">\n <template slot-scope=\"scope\">\n <el-tag type=\"success\" v-if=\"scope.row.switch == 1\">服务中</el-tag>\n <el-tag type=\"danger\" v-if=\"scope.row.switch == 0\">服务暂停</el-tag>\n </template>\n </el-table-column>\n <el-table-column\n align=\"center\"\n prop=\"platform\"\n label=\"服务平台\">\n <template slot-scope=\"scope\">\n <el-tag>{{$getPlatformItem(scope.row.platform).title}}</el-tag>\n </template>\n </el-table-column>\n\n <el-table-column\n prop=\"create_at\"\n label=\"创建时间\">\n <template slot-scope=\"scope\">\n {{$formatUnixDate(scope.row.create_at, \"YYYY/MM/DD\")}}\n </template>\n </el-table-column>\n <el-table-column\n v-if=\"adminInfo.root == 1\"\n prop=\"operating\"\n align=\"center\"\n label=\"操作\"\n width=\"150\"\n >\n <template slot-scope=\"scope\">\n <el-button\n size=\"mini\"\n @click=\"edit(scope.row)\">编 辑</el-button>\n <el-button\n size=\"mini\"\n type=\"danger\"\n @click=\"deleteRobot(scope.row)\">删 除</el-button>\n </template>\n </el-table-column>\n </el-table>\n <el-row type=\"flex\" style=\"margin-top: 20px;\" justify=\"space-between\">\n <span style=\"color:#666;font-size: 14px;\">当前有{{tableData.length}}个机器人</span>\n </el-row>\n <CreateDialog :complete=\"getRobotList\" :dialogFormVisible.sync=\"createDialogFormVisible\" />\n <EditDialog :complete=\"getRobotList\" :formData=\"editItem\" :dialogFormVisible.sync=\"editDialogFormVisible\" />\n </div>\n</template>\n\n<script>\nimport CreateDialog from \"./create\"\nimport EditDialog from \"./edit\"\nimport axios from 'axios'\nexport default {\n name: \"robot\",\n components: {\n CreateDialog,\n EditDialog\n },\n data() {\n return {\n createDialogFormVisible: false,\n editDialogFormVisible: false,\n loading: true,\n editItem: {}\n }\n },\n created(){\n setTimeout( ()=> this.getRobotList(), 500)\n },\n computed: {\n tableData(){\n return this.$store.getters.robots || []\n },\n adminInfo(){\n return this.$store.getters.adminInfo || {}\n }\n },\n methods: {\n // 删除\n deleteRobot(item){\n this.$confirm('您确定要删除该机器人吗? 删除后不可恢复!', '温馨提示!', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n center: true,\n type: 'warning'\n }).then(() => {\n axios.delete('/robot/' + item.id)\n .then(response => {\n console.log(response.data)\n this.$message.success(\"删除成功\")\n this.getRobotList()\n })\n .catch(error => {\n this.$message.error(error.response.data.message)\n });\n })\n },\n // 编辑\n edit(item){\n this.editItem = item\n this.editDialogFormVisible = true\n },\n // 获取数据\n getRobotList(){\n axios.get('/robot/list')\n .then(response => {\n this.loading = false\n this.$store.commit('onChangeRobos', response.data.data)\n })\n .catch(error => {\n this.loading = false\n this.$message.error(error.response.data.message)\n });\n },\n }\n};\n</script>\n<style lang=\"stylus\" scoped>\n .mini-im-head{\n height 30px\n display flex\n align-items center\n font-size 20px\n justify-content space-between\n color #666\n i{\n margin-right 5px\n }\n }\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=dea0f158&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=dea0f158&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dea0f158\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit.vue?vue&type=style&index=0&id=6b34f2e3&scoped=true&lang=stylus&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit.vue?vue&type=style&index=0&id=6b34f2e3&scoped=true&lang=stylus&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create.vue?vue&type=style&index=0&id=2e63f8e9&scoped=true&lang=stylus&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create.vue?vue&type=style&index=0&id=2e63f8e9&scoped=true&lang=stylus&\""],"sourceRoot":""}
\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-e3edb682"],{5817:function(t,e,i){},"682a":function(t,e,i){"use strict";var a=i("5817"),n=i.n(a);n.a},"69a5":function(t,e,i){"use strict";var a=i("ac73"),n=i.n(a);n.a},"6fdd":function(t,e,i){"use strict";var a=i("af44"),n=i.n(a);n.a},"7a26":function(t,e,i){"use strict";i.r(e);var a=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",[i("div",{staticClass:"me-head"},[i("span",[i("i",{staticClass:"el-icon-reading"}),i("span",{attrs:{slot:"title"},slot:"title"},[t._v("知识库管理 "),i("span",{staticStyle:{color:"#666","font-size":"18px"}},[t._v("("+t._s(t.tableData.total)+"条知识)")])])]),i("el-button",{attrs:{size:"mini"},on:{click:function(e){t.createDialogFormVisible=!0}}},[t._v("添 加")])],1),i("el-divider"),i("el-table",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:t.tableData.list}},[i("el-table-column",{attrs:{type:"index",index:t.indexMethod,width:"60"}}),i("el-table-column",{attrs:{prop:"title",label:"主标题"}}),i("el-table-column",{attrs:{prop:"sub_title",label:"子标题"},scopedSlots:t._u([{key:"default",fn:function(e){return[""!=e.row.sub_title?i("div",t._l(e.row.sub_title.split("|"),(function(e,a){return i("div",{key:a,staticStyle:{"font-size":"13px"}},[t._v("\n "+t._s(a+1)+"."+t._s(e)+"\n ")])})),0):i("div",[t._v("-----")])]}}])}),i("el-table-column",{attrs:{prop:"content",label:"内容"},scopedSlots:t._u([{key:"default",fn:function(e){return t._l(e.row.content.split("\n"),(function(e,a){return i("div",{key:a,staticStyle:{"font-size":"13px"}},[t._v("\n "+t._s(e)+"\n ")])}))}}])}),i("el-table-column",{attrs:{prop:"platform",align:"center",label:"匹配平台"},scopedSlots:t._u([{key:"default",fn:function(e){return[i("el-tag",[t._v(t._s(t.$getPlatformItem(e.row.platform).title))])]}}])}),i("el-table-column",{attrs:{prop:"create_at",label:"创建时间"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v("\n "+t._s(t.$formatUnixDate(e.row.create_at,"YYYY/MM/DD"))+"\n ")]}}])}),i("el-table-column",{attrs:{prop:"operating",align:"center",width:"150",label:"操作"},scopedSlots:t._u([{key:"default",fn:function(e){return[i("el-button",{attrs:{size:"mini"},on:{click:function(i){return t.edit(e.row)}}},[t._v("编 辑")]),i("el-button",{attrs:{size:"mini",type:"danger"},on:{click:function(i){return t.deleteKnowledge(e.row)}}},[t._v("删 除")])]}}])})],1),i("el-row",{staticStyle:{"margin-top":"20px"},attrs:{type:"flex",justify:"space-between"}},[i("span",{staticStyle:{color:"#666","font-size":"14px"}},[t._v("共找到"+t._s(t.tableData.total)+"条数据")]),i("el-pagination",{attrs:{background:"",layout:"sizes, prev, pager, next","current-page":t.tableData.page_on,"page-sizes":[5,10,15,20],total:t.tableData.total},on:{"size-change":t.handleSizeChange,"current-change":t.handleCurrentChange}})],1),i("CreateDialog",{attrs:{complete:t.getKnowledgeList,dialogFormVisible:t.createDialogFormVisible},on:{"update:dialogFormVisible":function(e){t.createDialogFormVisible=e},"update:dialog-form-visible":function(e){t.createDialogFormVisible=e}}}),i("EditDialog",{attrs:{formData:t.editItem,complete:t.getKnowledgeList,dialogFormVisible:t.editDialogFormVisible},on:{"update:dialogFormVisible":function(e){t.editDialogFormVisible=e},"update:dialog-form-visible":function(e){t.editDialogFormVisible=e}}})],1)},n=[],o=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("el-dialog",{attrs:{width:"600px",title:"添加新的知识","show-close":!1,visible:t.dialogFormVisible,"close-on-click-modal":!1},on:{"update:visible":function(e){t.dialogFormVisible=e}}},[i("el-form",{attrs:{model:t.form}},[i("el-form-item",{attrs:{label:"主标题","label-width":t.formLabelWidth}},[i("el-input",{attrs:{placeholder:"请输入主标题",autocomplete:"off"},model:{value:t.form.title,callback:function(e){t.$set(t.form,"title",e)},expression:"form.title"}})],1),i("el-form-item",{attrs:{label:"子标题","label-width":t.formLabelWidth}},[t._l(t.dynamicTags,(function(e){return i("el-tag",{key:e,attrs:{closable:"","disable-transitions":!1},on:{close:function(i){return t.handleDel(e)}}},[t._v(t._s(e))])})),t.inputVisible?i("el-input",{ref:"saveTagInput",staticClass:"input-new-tag",attrs:{size:"small"},on:{blur:t.handleInputConfirm},nativeOn:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.handleInputConfirm(e)}},model:{value:t.inputValue,callback:function(e){t.inputValue=e},expression:"inputValue"}}):i("el-button",{staticClass:"button-new-tag",attrs:{size:"small"},on:{click:t.showInput}},[t._v("+ 新增")])],2),i("el-form-item",{attrs:{label:"内容","label-width":t.formLabelWidth}},[i("el-input",{attrs:{rows:"5",type:"textarea",autocomplete:"off"},model:{value:t.form.content,callback:function(e){t.$set(t.form,"content",e)},expression:"form.content"}})],1),i("el-form-item",{attrs:{label:"匹配平台","label-width":t.formLabelWidth}},[i("el-select",{attrs:{placeholder:"请选择匹配平台"},model:{value:t.form.platform,callback:function(e){t.$set(t.form,"platform",e)},expression:"form.platform"}},t._l(t.$store.getters.platformConfig,(function(t,e){return i("el-option",{key:e,attrs:{label:t.title,value:t.id}})})),1)],1)],1),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:t.closeModal}},[t._v("取 消")]),i("el-button",{attrs:{type:"primary"},on:{click:t.save}},[t._v("保 存")])],1)],1)},l=[],s=(i("57e7"),i("bc3a")),r=i.n(s),c={name:"mini-im-create-knowledge",data:function(){return{dynamicTags:[],inputVisible:!1,inputValue:"",form:{uid:"",platform:1,title:"",sub_title:"",content:""},formLabelWidth:"80px"}},props:{dialogFormVisible:Boolean,complete:Function},methods:{closeModal:function(){this.$emit("update:dialogFormVisible",!1)},handleDel:function(t){this.dynamicTags.splice(this.dynamicTags.indexOf(t),1)},showInput:function(){var t=this;this.inputVisible=!0,this.$nextTick((function(){t.$refs.saveTagInput.$refs.input.focus()}))},handleInputConfirm:function(){var t=this.inputValue;t&&this.dynamicTags.push(t),this.inputVisible=!1,this.inputValue="",console.log(this.dynamicTags.join("|"))},save:function(){var t=this,e=this.$loading({lock:!0,text:"保存中...",spinner:"el-icon-loading",background:"rgba(0, 0, 0, 0.5)"});this.form.uid=this.$store.state.adminInfo.id,this.form.sub_title=this.dynamicTags.join("|"),r.a.post("/knowledge",this.form).then((function(i){try{console.log(i),e.close(),t.$message.success("添加成功"),t.closeModal(),t.resize(),t.complete(1)}catch(a){console.log(a)}})).catch((function(i){e.close(),t.$message.error(i.response.data.message)}))},resize:function(){this.dynamicTags=[],this.form={uid:"",platform:1,title:"",sub_title:"",content:""}}}},u=c,f=(i("6fdd"),i("2877")),d=Object(f["a"])(u,o,l,!1,null,"015f50bf",null),m=d.exports,p=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("el-dialog",{attrs:{width:"600px",title:"编辑的知识","show-close":!1,visible:t.dialogFormVisible,"close-on-click-modal":!1},on:{"update:visible":function(e){t.dialogFormVisible=e}}},[i("el-form",{attrs:{model:t.form}},[i("el-form-item",{attrs:{label:"主标题","label-width":t.formLabelWidth}},[i("el-input",{attrs:{placeholder:"请输入主标题",autocomplete:"off"},model:{value:t.form.title,callback:function(e){t.$set(t.form,"title",e)},expression:"form.title"}})],1),i("el-form-item",{attrs:{label:"子标题","label-width":t.formLabelWidth}},[t._l(t.dynamicTags,(function(e){return i("el-tag",{key:e,attrs:{closable:"","disable-transitions":!1},on:{close:function(i){return t.handleDel(e)}}},[t._v("\n "+t._s(e)+"\n ")])})),t.inputVisible?i("el-input",{ref:"saveTagInput",staticClass:"input-new-tag",attrs:{size:"small"},on:{blur:t.handleInputConfirm},nativeOn:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.handleInputConfirm(e)}},model:{value:t.inputValue,callback:function(e){t.inputValue=e},expression:"inputValue"}}):i("el-button",{staticClass:"button-new-tag",attrs:{size:"small"},on:{click:t.showInput}},[t._v("+ 新增子标题")])],2),i("el-form-item",{attrs:{label:"内容","label-width":t.formLabelWidth}},[i("el-input",{attrs:{rows:"5",type:"textarea",autocomplete:"off"},model:{value:t.form.content,callback:function(e){t.$set(t.form,"content",e)},expression:"form.content"}})],1),i("el-form-item",{attrs:{label:"匹配平台","label-width":t.formLabelWidth}},[i("el-select",{attrs:{placeholder:"请选择匹配平台"},model:{value:t.form.platform,callback:function(e){t.$set(t.form,"platform",e)},expression:"form.platform"}},t._l(t.platformConfig,(function(t,e){return i("el-option",{key:e,attrs:{label:t.title,value:t.id}})})),1)],1)],1),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:t.closeModal}},[t._v("取 消")]),i("el-button",{attrs:{type:"primary"},on:{click:t.save}},[t._v("保 存")])],1)],1)},g=[],b=(i("28a5"),{name:"mini-im-create-knowledge",data:function(){return{dynamicTags:[],inputVisible:!1,inputValue:"",form:{uid:"",platform:1,title:"",sub_title:"",content:""},platformConfig:[],formLabelWidth:"80px"}},props:{dialogFormVisible:Boolean,complete:Function,formData:Object},methods:{closeModal:function(){this.$emit("update:dialogFormVisible",!1)},handleDel:function(t){this.dynamicTags.splice(this.dynamicTags.indexOf(t),1)},showInput:function(){var t=this;this.inputVisible=!0,this.$nextTick((function(){t.$refs.saveTagInput.$refs.input.focus()}))},handleInputConfirm:function(){var t=this.inputValue;t&&this.dynamicTags.push(t),this.inputVisible=!1,this.inputValue=""},save:function(){var t=this,e=this.$loading({lock:!0,text:"保存中...",spinner:"el-icon-loading",background:"rgba(0, 0, 0, 0.5)"});this.form.uid=this.$store.state.adminInfo.id,this.form.sub_title=this.dynamicTags.join("|"),r.a.put("/knowledge",this.form).then((function(i){try{console.log(i),e.close(),t.$message.success("修改成功"),t.closeModal(),t.resize(),t.complete(1)}catch(a){console.log(a)}})).catch((function(i){e.close(),t.$message.error(i.response.data.message)}))},resize:function(){this.dynamicTags=[],this.form={uid:"",platform:1,title:"",sub_title:"",content:""}}},watch:{formData:function(){this.platformConfig=this.$store.getters.platformConfig,this.form=Object.assign({},this.form,this.formData),""!=this.formData.sub_title&&(this.dynamicTags=this.formData.sub_title.split("|"))}}}),h=b,v=(i("682a"),Object(f["a"])(h,p,g,!1,null,"7b12f7d6",null)),_=v.exports,w={name:"knowledge",components:{CreateDialog:m,EditDialog:_},data:function(){return{tableData:{list:[],page_on:1,page_size:10,total:0},createDialogFormVisible:!1,editDialogFormVisible:!1,loading:!0,editItem:null}},created:function(){var t=this;setTimeout((function(){return t.getKnowledgeList()}),500)},methods:{indexMethod:function(t){return(this.tableData.page_on-1)*this.tableData.page_size+t+1},deleteKnowledge:function(t){var e=this;this.$confirm("您确定要删除该知识库吗? 删除后不可恢复!","温馨提示!",{confirmButtonText:"确定",cancelButtonText:"取消",center:!0,type:"warning"}).then((function(){r.a.delete("/knowledge/"+t.id).then((function(t){console.log(t.data),e.$message.success("删除成功"),e.getKnowledgeList(1)})).catch((function(t){e.$message.error(t.response.data.message)}))}))},edit:function(t){this.editItem=t,this.editDialogFormVisible=!0},handleSizeChange:function(t){this.tableData.page_size=t,this.getKnowledgeList()},handleCurrentChange:function(t){this.tableData.page_on=t,this.getKnowledgeList()},getKnowledgeList:function(t){var e=this;t&&(this.tableData.page_on=t);var i=this.tableData,a=i.page_on,n=i.page_size;r.a.post("/knowledge/list",{page_on:a,page_size:n}).then((function(t){e.loading=!1,e.tableData=t.data.data})).catch((function(t){e.loading=!1,e.$message.error(t.response.data.message)}))}}},k=w,y=(i("69a5"),Object(f["a"])(k,a,n,!1,null,"e8cecb14",null));e["default"]=y.exports},ac73:function(t,e,i){},af44:function(t,e,i){}}]);
//# sourceMappingURL=chunk-e3edb682.604c708b.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///./src/views/knowledge/edit.vue?212d","webpack:///./src/views/knowledge/index.vue?0b41","webpack:///./src/views/knowledge/create.vue?79ac","webpack:///./src/views/knowledge/index.vue?f6c8","webpack:///./src/views/knowledge/create.vue?e5d1","webpack:///src/views/knowledge/create.vue","webpack:///./src/views/knowledge/create.vue?c80e","webpack:///./src/views/knowledge/create.vue","webpack:///./src/views/knowledge/edit.vue?ef0c","webpack:///src/views/knowledge/edit.vue","webpack:///./src/views/knowledge/edit.vue?8aad","webpack:///./src/views/knowledge/edit.vue","webpack:///src/views/knowledge/index.vue","webpack:///./src/views/knowledge/index.vue?43e7","webpack:///./src/views/knowledge/index.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","slot","_v","staticStyle","_s","tableData","total","on","$event","createDialogFormVisible","directives","name","rawName","value","expression","list","indexMethod","scopedSlots","_u","key","fn","scope","row","sub_title","_l","split","item","content","$getPlatformItem","platform","title","$formatUnixDate","create_at","edit","deleteKnowledge","page_on","handleSizeChange","handleCurrentChange","getKnowledgeList","editItem","editDialogFormVisible","staticRenderFns","dialogFormVisible","form","formLabelWidth","model","callback","$$v","$set","tag","handleDel","ref","handleInputConfirm","nativeOn","type","indexOf","_k","keyCode","inputValue","showInput","$store","getters","index","id","closeModal","save","data","dynamicTags","inputVisible","uid","props","Boolean","complete","Function","methods","$emit","splice","$nextTick","push","console","log","join","lock","text","spinner","background","state","adminInfo","resize","component","platformConfig","formData","Object","response","loading","close","e","watch","assign","components","CreateDialog","EditDialog","page_size","created","setTimeout","$confirm","confirmButtonText","cancelButtonText","center","val"],"mappings":"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","file":"js/chunk-e3edb682.604c708b.js","sourcesContent":["import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit.vue?vue&type=style&index=0&id=7b12f7d6&scoped=true&lang=stylus&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit.vue?vue&type=style&index=0&id=7b12f7d6&scoped=true&lang=stylus&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=e8cecb14&lang=stylus&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=e8cecb14&lang=stylus&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create.vue?vue&type=style&index=0&id=015f50bf&scoped=true&lang=stylus&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/stylus-loader/index.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create.vue?vue&type=style&index=0&id=015f50bf&scoped=true&lang=stylus&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"me-head\"},[_c('span',[_c('i',{staticClass:\"el-icon-reading\"}),_c('span',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"知识库管理 \"),_c('span',{staticStyle:{\"color\":\"#666\",\"font-size\":\"18px\"}},[_vm._v(\"(\"+_vm._s(_vm.tableData.total)+\"条知识)\")])])]),_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":function($event){_vm.createDialogFormVisible = true}}},[_vm._v(\"添 加\")])],1),_c('el-divider'),_c('el-table',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.tableData.list}},[_c('el-table-column',{attrs:{\"type\":\"index\",\"index\":_vm.indexMethod,\"width\":\"60\"}}),_c('el-table-column',{attrs:{\"prop\":\"title\",\"label\":\"主标题\"}}),_c('el-table-column',{attrs:{\"prop\":\"sub_title\",\"label\":\"子标题\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.sub_title != '')?_c('div',_vm._l((scope.row.sub_title.split('|')),function(item,key){return _c('div',{key:key,staticStyle:{\"font-size\":\"13px\"}},[_vm._v(\"\\n \"+_vm._s(key+1)+\".\"+_vm._s(item)+\"\\n \")])}),0):_c('div',[_vm._v(\"-----\")])]}}])}),_c('el-table-column',{attrs:{\"prop\":\"content\",\"label\":\"内容\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return _vm._l((scope.row.content.split(\"\\n\")),function(item,key){return _c('div',{key:key,staticStyle:{\"font-size\":\"13px\"}},[_vm._v(\"\\n \"+_vm._s(item)+\"\\n \")])})}}])}),_c('el-table-column',{attrs:{\"prop\":\"platform\",\"align\":\"center\",\"label\":\"匹配平台\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-tag',[_vm._v(_vm._s(_vm.$getPlatformItem(scope.row.platform).title))])]}}])}),_c('el-table-column',{attrs:{\"prop\":\"create_at\",\"label\":\"创建时间\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(\"\\n \"+_vm._s(_vm.$formatUnixDate(scope.row.create_at, \"YYYY/MM/DD\"))+\"\\n \")]}}])}),_c('el-table-column',{attrs:{\"prop\":\"operating\",\"align\":\"center\",\"width\":\"150\",\"label\":\"操作\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{attrs:{\"size\":\"mini\"},on:{\"click\":function($event){return _vm.edit(scope.row)}}},[_vm._v(\"编 辑\")]),_c('el-button',{attrs:{\"size\":\"mini\",\"type\":\"danger\"},on:{\"click\":function($event){return _vm.deleteKnowledge(scope.row)}}},[_vm._v(\"删 除\")])]}}])})],1),_c('el-row',{staticStyle:{\"margin-top\":\"20px\"},attrs:{\"type\":\"flex\",\"justify\":\"space-between\"}},[_c('span',{staticStyle:{\"color\":\"#666\",\"font-size\":\"14px\"}},[_vm._v(\"共找到\"+_vm._s(_vm.tableData.total)+\"条数据\")]),_c('el-pagination',{attrs:{\"background\":\"\",\"layout\":\"sizes, prev, pager, next\",\"current-page\":_vm.tableData.page_on,\"page-sizes\":[5, 10, 15, 20],\"total\":_vm.tableData.total},on:{\"size-change\":_vm.handleSizeChange,\"current-change\":_vm.handleCurrentChange}})],1),_c('CreateDialog',{attrs:{\"complete\":_vm.getKnowledgeList,\"dialogFormVisible\":_vm.createDialogFormVisible},on:{\"update:dialogFormVisible\":function($event){_vm.createDialogFormVisible=$event},\"update:dialog-form-visible\":function($event){_vm.createDialogFormVisible=$event}}}),_c('EditDialog',{attrs:{\"formData\":_vm.editItem,\"complete\":_vm.getKnowledgeList,\"dialogFormVisible\":_vm.editDialogFormVisible},on:{\"update:dialogFormVisible\":function($event){_vm.editDialogFormVisible=$event},\"update:dialog-form-visible\":function($event){_vm.editDialogFormVisible=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{\"width\":\"600px\",\"title\":\"添加新的知识\",\"show-close\":false,\"visible\":_vm.dialogFormVisible,\"close-on-click-modal\":false},on:{\"update:visible\":function($event){_vm.dialogFormVisible=$event}}},[_c('el-form',{attrs:{\"model\":_vm.form}},[_c('el-form-item',{attrs:{\"label\":\"主标题\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入主标题\",\"autocomplete\":\"off\"},model:{value:(_vm.form.title),callback:function ($$v) {_vm.$set(_vm.form, \"title\", $$v)},expression:\"form.title\"}})],1),_c('el-form-item',{attrs:{\"label\":\"子标题\",\"label-width\":_vm.formLabelWidth}},[_vm._l((_vm.dynamicTags),function(tag){return _c('el-tag',{key:tag,attrs:{\"closable\":\"\",\"disable-transitions\":false},on:{\"close\":function($event){return _vm.handleDel(tag)}}},[_vm._v(_vm._s(tag))])}),(_vm.inputVisible)?_c('el-input',{ref:\"saveTagInput\",staticClass:\"input-new-tag\",attrs:{\"size\":\"small\"},on:{\"blur\":_vm.handleInputConfirm},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handleInputConfirm($event)}},model:{value:(_vm.inputValue),callback:function ($$v) {_vm.inputValue=$$v},expression:\"inputValue\"}}):_c('el-button',{staticClass:\"button-new-tag\",attrs:{\"size\":\"small\"},on:{\"click\":_vm.showInput}},[_vm._v(\"+ 新增\")])],2),_c('el-form-item',{attrs:{\"label\":\"内容\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"rows\":\"5\",\"type\":\"textarea\",\"autocomplete\":\"off\"},model:{value:(_vm.form.content),callback:function ($$v) {_vm.$set(_vm.form, \"content\", $$v)},expression:\"form.content\"}})],1),_c('el-form-item',{attrs:{\"label\":\"匹配平台\",\"label-width\":_vm.formLabelWidth}},[_c('el-select',{attrs:{\"placeholder\":\"请选择匹配平台\"},model:{value:(_vm.form.platform),callback:function ($$v) {_vm.$set(_vm.form, \"platform\", $$v)},expression:\"form.platform\"}},_vm._l((_vm.$store.getters.platformConfig),function(item,index){return _c('el-option',{key:index,attrs:{\"label\":item.title,\"value\":item.id}})}),1)],1)],1),_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.closeModal}},[_vm._v(\"取 消\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"保 存\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <el-dialog\n width=\"600px\"\n title=\"添加新的知识\"\n :show-close=\"false\"\n :visible.sync=\"dialogFormVisible\"\n :close-on-click-modal=\"false\"\n >\n <el-form :model=\"form\">\n <el-form-item label=\"主标题\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.title\" placeholder=\"请输入主标题\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"子标题\" :label-width=\"formLabelWidth\">\n <el-tag\n :key=\"tag\"\n v-for=\"tag in dynamicTags\"\n closable\n :disable-transitions=\"false\"\n @close=\"handleDel(tag)\"\n >{{tag}}</el-tag>\n <el-input\n class=\"input-new-tag\"\n v-if=\"inputVisible\"\n v-model=\"inputValue\"\n ref=\"saveTagInput\"\n size=\"small\"\n @keyup.enter.native=\"handleInputConfirm\"\n @blur=\"handleInputConfirm\"\n ></el-input>\n <el-button v-else class=\"button-new-tag\" size=\"small\" @click=\"showInput\">+ 新增</el-button>\n </el-form-item>\n <el-form-item label=\"内容\" :label-width=\"formLabelWidth\">\n <el-input rows=\"5\" type=\"textarea\" v-model=\"form.content\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"匹配平台\" :label-width=\"formLabelWidth\">\n <el-select v-model=\"form.platform\" placeholder=\"请选择匹配平台\">\n <el-option\n :label=\"item.title\"\n :value=\"item.id\"\n :key=\"index\"\n v-for=\"(item, index) in $store.getters.platformConfig\"\n ></el-option>\n </el-select>\n </el-form-item>\n </el-form>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"closeModal\">取 消</el-button>\n <el-button type=\"primary\" @click=\"save\">保 存</el-button>\n </div>\n </el-dialog>\n</template>\n<script>\nimport axios from \"axios\";\nexport default {\n name: \"mini-im-create-knowledge\",\n data() {\n return {\n dynamicTags: [],\n inputVisible: false,\n inputValue: \"\",\n form: {\n uid: \"\",\n platform: 1,\n title: \"\",\n sub_title: \"\",\n content: \"\"\n },\n formLabelWidth: \"80px\"\n };\n },\n props: {\n dialogFormVisible: Boolean,\n complete: Function\n },\n methods: {\n // 关闭\n closeModal() {\n this.$emit(\"update:dialogFormVisible\", false);\n },\n // 删除标签\n handleDel(tag) {\n this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);\n },\n // 显示子标题输入框\n showInput() {\n this.inputVisible = true;\n this.$nextTick(() => {\n this.$refs.saveTagInput.$refs.input.focus();\n });\n },\n // 标签确定\n handleInputConfirm() {\n let inputValue = this.inputValue;\n if (inputValue) {\n this.dynamicTags.push(inputValue);\n }\n this.inputVisible = false;\n this.inputValue = \"\";\n console.log(this.dynamicTags.join(\"|\"));\n },\n // 保存\n save() {\n // 验证字段 !! 算了前端不验证了\n const loading = this.$loading({\n lock: true,\n text: \"保存中...\",\n spinner: \"el-icon-loading\",\n background: \"rgba(0, 0, 0, 0.5)\"\n });\n this.form.uid = this.$store.state.adminInfo.id;\n this.form.sub_title = this.dynamicTags.join(\"|\");\n axios\n .post(\"/knowledge\", this.form)\n .then(response => {\n try {\n console.log(response);\n loading.close();\n this.$message.success(\"添加成功\");\n this.closeModal();\n this.resize();\n this.complete(1);\n } catch (e) {\n console.log(e);\n }\n })\n .catch(error => {\n loading.close();\n this.$message.error(error.response.data.message);\n });\n },\n resize() {\n this.dynamicTags = [];\n this.form = {\n uid: \"\",\n platform: 1,\n title: \"\",\n sub_title: \"\",\n content: \"\"\n };\n }\n }\n};\n</script>\n<style scoped lang=\"stylus\">\n.el-tag + .el-tag {\n margin-left: 10px;\n}\n\n.button-new-tag {\n margin-left: 10px;\n height: 32px;\n line-height: 30px;\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.input-new-tag {\n width: 150px;\n margin-left: 10px;\n vertical-align: bottom;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./create.vue?vue&type=template&id=015f50bf&scoped=true&\"\nimport script from \"./create.vue?vue&type=script&lang=js&\"\nexport * from \"./create.vue?vue&type=script&lang=js&\"\nimport style0 from \"./create.vue?vue&type=style&index=0&id=015f50bf&scoped=true&lang=stylus&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"015f50bf\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{\"width\":\"600px\",\"title\":\"编辑的知识\",\"show-close\":false,\"visible\":_vm.dialogFormVisible,\"close-on-click-modal\":false},on:{\"update:visible\":function($event){_vm.dialogFormVisible=$event}}},[_c('el-form',{attrs:{\"model\":_vm.form}},[_c('el-form-item',{attrs:{\"label\":\"主标题\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"placeholder\":\"请输入主标题\",\"autocomplete\":\"off\"},model:{value:(_vm.form.title),callback:function ($$v) {_vm.$set(_vm.form, \"title\", $$v)},expression:\"form.title\"}})],1),_c('el-form-item',{attrs:{\"label\":\"子标题\",\"label-width\":_vm.formLabelWidth}},[_vm._l((_vm.dynamicTags),function(tag){return _c('el-tag',{key:tag,attrs:{\"closable\":\"\",\"disable-transitions\":false},on:{\"close\":function($event){return _vm.handleDel(tag)}}},[_vm._v(\"\\n \"+_vm._s(tag)+\"\\n \")])}),(_vm.inputVisible)?_c('el-input',{ref:\"saveTagInput\",staticClass:\"input-new-tag\",attrs:{\"size\":\"small\"},on:{\"blur\":_vm.handleInputConfirm},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handleInputConfirm($event)}},model:{value:(_vm.inputValue),callback:function ($$v) {_vm.inputValue=$$v},expression:\"inputValue\"}}):_c('el-button',{staticClass:\"button-new-tag\",attrs:{\"size\":\"small\"},on:{\"click\":_vm.showInput}},[_vm._v(\"+ 新增子标题\")])],2),_c('el-form-item',{attrs:{\"label\":\"内容\",\"label-width\":_vm.formLabelWidth}},[_c('el-input',{attrs:{\"rows\":\"5\",\"type\":\"textarea\",\"autocomplete\":\"off\"},model:{value:(_vm.form.content),callback:function ($$v) {_vm.$set(_vm.form, \"content\", $$v)},expression:\"form.content\"}})],1),_c('el-form-item',{attrs:{\"label\":\"匹配平台\",\"label-width\":_vm.formLabelWidth}},[_c('el-select',{attrs:{\"placeholder\":\"请选择匹配平台\"},model:{value:(_vm.form.platform),callback:function ($$v) {_vm.$set(_vm.form, \"platform\", $$v)},expression:\"form.platform\"}},_vm._l((_vm.platformConfig),function(item,index){return _c('el-option',{key:index,attrs:{\"label\":item.title,\"value\":item.id}})}),1)],1)],1),_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.closeModal}},[_vm._v(\"取 消\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"保 存\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <el-dialog width=\"600px\" title=\"编辑的知识\" :show-close=\"false\" :visible.sync=\"dialogFormVisible\" :close-on-click-modal=\"false\">\n <el-form :model=\"form\">\n <el-form-item label=\"主标题\" :label-width=\"formLabelWidth\">\n <el-input v-model=\"form.title\" placeholder=\"请输入主标题\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"子标题\" :label-width=\"formLabelWidth\">\n <el-tag\n :key=\"tag\"\n v-for=\"tag in dynamicTags\"\n closable\n :disable-transitions=\"false\"\n @close=\"handleDel(tag)\">\n {{tag}}\n </el-tag>\n <el-input\n class=\"input-new-tag\"\n v-if=\"inputVisible\"\n v-model=\"inputValue\"\n ref=\"saveTagInput\"\n size=\"small\"\n @keyup.enter.native=\"handleInputConfirm\"\n @blur=\"handleInputConfirm\"\n >\n </el-input>\n <el-button v-else class=\"button-new-tag\" size=\"small\" @click=\"showInput\">+ 新增子标题</el-button>\n </el-form-item>\n <el-form-item label=\"内容\" :label-width=\"formLabelWidth\">\n <el-input rows=\"5\" type=\"textarea\" v-model=\"form.content\" autocomplete=\"off\"></el-input>\n </el-form-item>\n <el-form-item label=\"匹配平台\" :label-width=\"formLabelWidth\">\n <el-select v-model=\"form.platform\" placeholder=\"请选择匹配平台\">\n <el-option :label=\"item.title\" :value=\"item.id\" :key=\"index\" v-for=\"(item, index) in platformConfig\"></el-option>\n </el-select>\n </el-form-item>\n </el-form>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"closeModal\">取 消</el-button>\n <el-button type=\"primary\" @click=\"save\">保 存</el-button>\n </div>\n </el-dialog>\n</template>\n<script>\nimport axios from 'axios'\nexport default {\n name: 'mini-im-create-knowledge',\n data(){\n return {\n dynamicTags: [],\n inputVisible: false,\n inputValue: '',\n form: {\n uid: \"\",\n platform: 1,\n title: '',\n sub_title: '',\n content: '',\n },\n platformConfig: [],\n formLabelWidth: \"80px\"\n }\n },\n props:{\n dialogFormVisible: Boolean,\n complete: Function,\n formData: Object\n },\n methods: {\n // 关闭\n closeModal(){\n this.$emit('update:dialogFormVisible', false);\n },\n // 删除标签\n handleDel(tag) {\n this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);\n },\n // 显示子标题输入框\n showInput() {\n this.inputVisible = true;\n this.$nextTick(() => {\n this.$refs.saveTagInput.$refs.input.focus();\n });\n },\n // 确定\n handleInputConfirm() {\n let inputValue = this.inputValue;\n if (inputValue) {\n this.dynamicTags.push(inputValue);\n }\n this.inputVisible = false;\n this.inputValue = '';\n },\n // 保存\n save(){\n // 验证字段 !! 算了前端不验证了\n const loading = this.$loading({\n lock: true,\n text: '保存中...',\n spinner: 'el-icon-loading',\n background: 'rgba(0, 0, 0, 0.5)'\n });\n this.form.uid = this.$store.state.adminInfo.id\n this.form.sub_title = this.dynamicTags.join(\"|\")\n axios.put('/knowledge', this.form)\n .then(response => {\n try{\n console.log(response)\n loading.close();\n this.$message.success(\"修改成功\")\n this.closeModal()\n this.resize()\n this.complete(1)\n }catch(e){\n console.log(e)\n }\n })\n .catch(error => {\n loading.close();\n this.$message.error(error.response.data.message)\n });\n\n },\n resize(){\n this.dynamicTags = []\n this.form = {\n uid: \"\",\n platform: 1,\n title: '',\n sub_title: '',\n content: '',\n };\n }\n },\n watch:{\n formData(){\n this.platformConfig = this.$store.getters.platformConfig\n this.form = Object.assign({},this.form, this.formData)\n if(this.formData.sub_title != \"\") this.dynamicTags = this.formData.sub_title.split(\"|\")\n }\n }\n}\n</script>\n<style scoped lang=\"stylus\">\n .el-tag + .el-tag {\n margin-left: 10px;\n }\n .button-new-tag {\n margin-left: 10px;\n height: 32px;\n line-height: 30px;\n padding-top: 0;\n padding-bottom: 0;\n }\n .input-new-tag {\n width: 150px;\n margin-left: 10px;\n vertical-align: bottom;\n }\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./edit.vue?vue&type=template&id=7b12f7d6&scoped=true&\"\nimport script from \"./edit.vue?vue&type=script&lang=js&\"\nexport * from \"./edit.vue?vue&type=script&lang=js&\"\nimport style0 from \"./edit.vue?vue&type=style&index=0&id=7b12f7d6&scoped=true&lang=stylus&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7b12f7d6\",\n null\n \n)\n\nexport default component.exports","<template>\n <div>\n <div class=\"me-head\">\n <span>\n <i class=\"el-icon-reading\"></i>\n <span slot=\"title\">知识库管理 <span style=\"color: #666; font-size: 18px\">({{tableData.total}}条知识)</span></span>\n </span>\n <el-button @click=\"createDialogFormVisible = true\" size=\"mini\">添 加</el-button>\n </div>\n <el-divider />\n <el-table\n :data=\"tableData.list\"\n style=\"width: 100%\"\n v-loading=\"loading\"\n >\n <el-table-column\n type=\"index\"\n :index=\"indexMethod\"\n width=\"60\">\n </el-table-column>\n <el-table-column\n prop=\"title\"\n label=\"主标题\">\n </el-table-column>\n <el-table-column\n prop=\"sub_title\"\n label=\"子标题\">\n <template slot-scope=\"scope\">\n <div v-if=\"scope.row.sub_title != ''\">\n <div style=\"font-size: 13px;\" :key=\"key\" v-for=\"(item, key) in scope.row.sub_title.split('|')\">\n {{key+1}}.{{item}}\n </div>\n </div>\n <div v-else>-----</div>\n </template>\n </el-table-column>\n <el-table-column\n prop=\"content\"\n label=\"内容\">\n <template slot-scope=\"scope\">\n <div style=\"font-size: 13px;\" :key=\"key\" v-for='(item, key) in scope.row.content.split(\"\\n\")'>\n {{item}}\n </div>\n </template>\n </el-table-column>\n <el-table-column\n prop=\"platform\"\n align=\"center\"\n label=\"匹配平台\">\n <template slot-scope=\"scope\">\n <el-tag>{{$getPlatformItem(scope.row.platform).title}}</el-tag>\n </template>\n </el-table-column>\n <el-table-column\n prop=\"create_at\"\n label=\"创建时间\">\n <template slot-scope=\"scope\">\n {{$formatUnixDate(scope.row.create_at, \"YYYY/MM/DD\")}}\n </template>\n </el-table-column>\n <el-table-column\n prop=\"operating\"\n align=\"center\"\n width=\"150\"\n label=\"操作\">\n <template slot-scope=\"scope\">\n <el-button\n size=\"mini\"\n @click=\"edit(scope.row)\">编 辑</el-button>\n <el-button\n size=\"mini\"\n type=\"danger\"\n @click=\"deleteKnowledge(scope.row)\">删 除</el-button>\n </template>\n </el-table-column>\n </el-table>\n <el-row type=\"flex\" style=\"margin-top: 20px;\" justify=\"space-between\">\n <span style=\"color:#666;font-size: 14px;\">共找到{{tableData.total}}条数据</span>\n <el-pagination\n background\n @size-change=\"handleSizeChange\"\n @current-change=\"handleCurrentChange\"\n layout=\"sizes, prev, pager, next\"\n :current-page=\"tableData.page_on\"\n :page-sizes=\"[5, 10, 15, 20]\"\n :total=\"tableData.total\">\n </el-pagination>\n </el-row>\n <CreateDialog :complete=\"getKnowledgeList\" :dialogFormVisible.sync=\"createDialogFormVisible\" />\n <EditDialog :formData=\"editItem\" :complete=\"getKnowledgeList\" :dialogFormVisible.sync=\"editDialogFormVisible\" />\n </div>\n</template>\n\n<script>\nimport CreateDialog from \"./create\"\nimport EditDialog from \"./edit\"\nimport axios from 'axios'\nexport default {\n name: \"knowledge\",\n components: {\n CreateDialog,\n EditDialog\n },\n data() {\n return {\n tableData: {\n list: [],\n page_on: 1,\n page_size: 10,\n total: 0,\n },\n createDialogFormVisible: false,\n editDialogFormVisible: false,\n loading: true,\n editItem: null\n }\n },\n created(){\n setTimeout( ()=> this.getKnowledgeList(), 500)\n },\n methods: {\n // 行号\n indexMethod(index) {\n return (this.tableData.page_on - 1) * this.tableData.page_size + index +1;\n },\n // 删除\n deleteKnowledge(item){\n this.$confirm('您确定要删除该知识库吗? 删除后不可恢复!', '温馨提示!', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n center: true,\n type: 'warning'\n }).then(() => {\n axios.delete('/knowledge/' + item.id)\n .then(response => {\n console.log(response.data)\n this.$message.success(\"删除成功\")\n this.getKnowledgeList(1)\n })\n .catch(error => {\n this.$message.error(error.response.data.message)\n });\n })\n },\n // 编辑\n edit(item){\n this.editItem = item\n this.editDialogFormVisible = true\n },\n // 改变每页条数\n handleSizeChange(val) {\n this.tableData.page_size = val\n this.getKnowledgeList()\n },\n // 分页\n handleCurrentChange(val) {\n this.tableData.page_on = val\n this.getKnowledgeList()\n },\n // 获取数据\n getKnowledgeList(index){\n if(index) this.tableData.page_on = index\n const {page_on, page_size} = this.tableData\n axios.post('/knowledge/list', {page_on, page_size})\n .then(response => {\n this.loading = false\n this.tableData = response.data.data\n })\n .catch(error => {\n this.loading = false\n this.$message.error(error.response.data.message)\n });\n },\n },\n};\n</script>\n<style lang=\"stylus\" scoped>\n .me-head{\n height 30px\n display flex\n align-items center\n font-size 20px\n justify-content space-between\n color #666\n i{\n margin-right 5px\n }\n }\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=e8cecb14&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=e8cecb14&lang=stylus&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e8cecb14\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}
\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory(global):typeof define==="function"&&define.amd?define(factory):factory(global)})(typeof self!=="undefined"?self:typeof window!=="undefined"?window:typeof global!=="undefined"?global:this,function(global){"use strict";global=global||{};var _Base64=global.Base64;var version="2.5.1";var buffer;if(typeof module!=="undefined"&&module.exports){try{buffer=eval("require('buffer').Buffer")}catch(err){buffer=undefined}}var b64chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var b64tab=function(bin){var t={};for(var i=0,l=bin.length;i<l;i++)t[bin.charAt(i)]=i;return t}(b64chars);var fromCharCode=String.fromCharCode;var cb_utob=function(c){if(c.length<2){var cc=c.charCodeAt(0);return cc<128?c:cc<2048?fromCharCode(192|cc>>>6)+fromCharCode(128|cc&63):fromCharCode(224|cc>>>12&15)+fromCharCode(128|cc>>>6&63)+fromCharCode(128|cc&63)}else{var cc=65536+(c.charCodeAt(0)-55296)*1024+(c.charCodeAt(1)-56320);return fromCharCode(240|cc>>>18&7)+fromCharCode(128|cc>>>12&63)+fromCharCode(128|cc>>>6&63)+fromCharCode(128|cc&63)}};var re_utob=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;var utob=function(u){return u.replace(re_utob,cb_utob)};var cb_encode=function(ccc){var padlen=[0,2,1][ccc.length%3],ord=ccc.charCodeAt(0)<<16|(ccc.length>1?ccc.charCodeAt(1):0)<<8|(ccc.length>2?ccc.charCodeAt(2):0),chars=[b64chars.charAt(ord>>>18),b64chars.charAt(ord>>>12&63),padlen>=2?"=":b64chars.charAt(ord>>>6&63),padlen>=1?"=":b64chars.charAt(ord&63)];return chars.join("")};var btoa=global.btoa?function(b){return global.btoa(b)}:function(b){return b.replace(/[\s\S]{1,3}/g,cb_encode)};var _encode=buffer?buffer.from&&Uint8Array&&buffer.from!==Uint8Array.from?function(u){return(u.constructor===buffer.constructor?u:buffer.from(u)).toString("base64")}:function(u){return(u.constructor===buffer.constructor?u:new buffer(u)).toString("base64")}:function(u){return btoa(utob(u))};var encode=function(u,urisafe){return!urisafe?_encode(String(u)):_encode(String(u)).replace(/[+\/]/g,function(m0){return m0=="+"?"-":"_"}).replace(/=/g,"")};var encodeURI=function(u){return encode(u,true)};var re_btou=new RegExp(["[À-ß][€-¿]","[à-ï][€-¿]{2}","[ð-÷][€-¿]{3}"].join("|"),"g");var cb_btou=function(cccc){switch(cccc.length){case 4:var cp=(7&cccc.charCodeAt(0))<<18|(63&cccc.charCodeAt(1))<<12|(63&cccc.charCodeAt(2))<<6|63&cccc.charCodeAt(3),offset=cp-65536;return fromCharCode((offset>>>10)+55296)+fromCharCode((offset&1023)+56320);case 3:return fromCharCode((15&cccc.charCodeAt(0))<<12|(63&cccc.charCodeAt(1))<<6|63&cccc.charCodeAt(2));default:return fromCharCode((31&cccc.charCodeAt(0))<<6|63&cccc.charCodeAt(1))}};var btou=function(b){return b.replace(re_btou,cb_btou)};var cb_decode=function(cccc){var len=cccc.length,padlen=len%4,n=(len>0?b64tab[cccc.charAt(0)]<<18:0)|(len>1?b64tab[cccc.charAt(1)]<<12:0)|(len>2?b64tab[cccc.charAt(2)]<<6:0)|(len>3?b64tab[cccc.charAt(3)]:0),chars=[fromCharCode(n>>>16),fromCharCode(n>>>8&255),fromCharCode(n&255)];chars.length-=[0,0,2,1][padlen];return chars.join("")};var _atob=global.atob?function(a){return global.atob(a)}:function(a){return a.replace(/\S{1,4}/g,cb_decode)};var atob=function(a){return _atob(String(a).replace(/[^A-Za-z0-9\+\/]/g,""))};var _decode=buffer?buffer.from&&Uint8Array&&buffer.from!==Uint8Array.from?function(a){return(a.constructor===buffer.constructor?a:buffer.from(a,"base64")).toString()}:function(a){return(a.constructor===buffer.constructor?a:new buffer(a,"base64")).toString()}:function(a){return btou(_atob(a))};var decode=function(a){return _decode(String(a).replace(/[-_]/g,function(m0){return m0=="-"?"+":"/"}).replace(/[^A-Za-z0-9\+\/]/g,""))};var noConflict=function(){var Base64=global.Base64;global.Base64=_Base64;return Base64};global.Base64={VERSION:version,atob:atob,btoa:btoa,fromBase64:decode,toBase64:encode,utob:utob,encode:encode,encodeURI:encodeURI,btou:btou,decode:decode,noConflict:noConflict,__buffer__:buffer};if(typeof Object.defineProperty==="function"){var noEnum=function(v){return{value:v,enumerable:false,writable:true,configurable:true}};global.Base64.extendString=function(){Object.defineProperty(String.prototype,"fromBase64",noEnum(function(){return decode(this)}));Object.defineProperty(String.prototype,"toBase64",noEnum(function(urisafe){return encode(this,urisafe)}));Object.defineProperty(String.prototype,"toBase64URI",noEnum(function(){return encode(this,true)}))}}if(global["Meteor"]){Base64=global.Base64}if(typeof module!=="undefined"&&module.exports){module.exports.Base64=global.Base64}else if(typeof define==="function"&&define.amd){define([],function(){return global.Base64})}return{Base64:global.Base64}});
\ No newline at end of file
body{min-width:240px;overflow:hidden;height:100vh;background-color:#f3f3f3}.mint-header.is-fixed{height:50px!important;background:-webkit-gradient(linear,left top,right top,from(#26a2ff),to(#736cde));background:linear-gradient(90deg,#26a2ff,#736cde)}.mint-header.is-fixed .mint-header-title{font-size:15px}.mint-header,.mint-tabbar{min-width:240px;z-index:999999999!important}.mint-header .is-right img{width:25px}.mint-header .mint-button .mintui{font-size:23px!important}.mint-tabbar{z-index:999999999!important;background-color:#fff!important}.mint-loadmore-spinner{width:15px!important;height:15px!important}.mini-im-container{margin:0 auto;padding:50px 0 100px;overflow:hidden;height:100vh;-webkit-box-sizing:border-box;box-sizing:border-box}.mini-im-container .input-ing{width:100vw;height:25px;position:fixed;top:0;left:0;right:0;background-color:#26a2ff!important;z-index:9;color:#fff;margin:auto;text-align:center;font-size:14px;line-height:25px}.mini-im-container .mini-im-loading{display:-webkit-box;display:-ms-flexbox;display:flex;min-width:240px;width:100%;position:fixed;top:0;left:0;right:0;background-color:#fff!important;margin:auto;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.mini-im-container-no-pto{padding-top:0!important}.mini-im-tabbar-input{width:100%;padding:5px 10px;overflow:hidden;height:100px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;position:fixed;bottom:0;z-index:9;background-color:#fff!important;border-top:1px solid #f2f2f2;left:0;right:0;margin:0 auto;-webkit-box-sizing:border-box;box-sizing:border-box}.mini-im-tabbar-input textarea{outline:none;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0);border:none;border-radius:5px;height:65px;-webkit-box-flex:1;-ms-flex-positive:1;padding:8px 0;font-size:14px;color:#666;background-color:#fff;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;resize:none;-ms-flex-negative:1;flex-shrink:1;flex-grow:1;width:100px}.mini-im-tabbar-input span{width:25px;height:25px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.mini-im-tabbar-input span img{width:28px}.mini-im-tabbar-input span.expression-btn{position:absolute;left:40px;top:6px;z-index:99}.mini-im-tabbar-input span.photo-btn{position:absolute;left:10px;top:5px;overflow:hidden;z-index:99}.mini-im-tabbar-input span.photo-btn img{width:22px}.mini-im-tabbar-input span.photo-btn input{width:100%;height:100%;position:absolute;top:0;left:0;opacity:0}.mini-im-tabbar-input span.serverci{width:70px;position:absolute;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;top:5px;right:10px}.mini-im-tabbar-input span.serverci img{width:26px}.mini-im-tabbar-input span.serverci span{width:70px;background-color:hsla(0,0%,95.3%,.439);color:#999;font-size:14px}.mini-im-tabbar-input span.serverci.on{left:75px;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;right:auto}.mini-im-tabbar-input .mini-input-send{width:55px;height:30px;color:#fff;line-height:30px;text-align:center;border-radius:3px;border:none;font-size:14px;background:-webkit-gradient(linear,left top,right top,from(#26a2ff),to(#736cde));background:linear-gradient(90deg,#26a2ff,#736cde);-ms-flex-negative:0;flex-shrink:0}.mini-im-tabbar-input .mini-input-send:active{opacity:.8}.mini-im-emoji{position:fixed;top:0;padding:5px 0;z-index:9}.mini-im-emoji,.mini-im-emoji .mini-im-emoji-content{width:100%;height:100vh;left:0;right:0;margin:0 auto;background-color:#fff}.mini-im-emoji .mini-im-emoji-content{padding:50px 0 5px;position:absolute;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;overflow:hidden;bottom:0;text-align:center;-webkit-box-shadow:0 2px 2px 1px rgba(0,0,0,.1);box-shadow:0 2px 2px 1px rgba(0,0,0,.1)}.mini-im-emoji .mini-im-emoji-content span{display:inline-block;width:28px;height:28px;padding:2px;text-align:center;font-size:23px}.mini-im-body{position:relative;height:100%;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;background-color:#f3f3f3;margin:0 auto;overflow:hidden;z-index:1}.mini-im-body ul{position:absolute;z-index:1;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;-o-text-size-adjust:none;text-size-adjust:none}.mini-im-body .loading{position:fixed;bottom:0;margin:auto}.mini-im-body .loading,.mini-im-body .no-network{height:100%;top:0;left:0;right:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.mini-im-body .no-network{width:100%;background-color:#fff;position:absolute;margin:0 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;z-index:9}.mini-im-body .no-network span{color:#999;font-size:13px;margin:20px 0}.mini-im-body .no-network button{width:100px;height:30px;color:#fff;line-height:30px;text-align:center;border-radius:3px;border:none;font-size:14px;background:-webkit-gradient(linear,left top,right top,from(#26a2ff),to(#736cde));background:linear-gradient(90deg,#26a2ff,#736cde);-ms-flex-negative:0;flex-shrink:0}.mini-im-knowledge{width:100vw;height:100vh;background-color:rgba(0,0,0,.2);position:fixed;z-index:8;top:0;left:0;right:0;margin:0 auto;-webkit-box-sizing:border-box;box-sizing:border-box;padding-bottom:100px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.mini-im-knowledge .mask{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:100vw;height:100px}.mini-im-knowledge span{background-color:#fff;font-size:14px;color:#666;padding:10px}.mini-im-knowledge ul{background-color:#fff}.mini-im-knowledge ul li{font-size:13px;cursor:pointer;color:#56b7ff;padding:6px 10px;border-top:1px solid #f2f2f2}.mint-loadmore{height:100%}.mint-loadmore-text{color:#666;font-size:14px}.mini-im-chat-list{padding:20px 10px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.mini-im-chat-list .message-loading{padding-bottom:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.mini-im-chat-list .mini-im-chat-item{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:15px}.mini-im-chat-list .mini-im-chat-item .chat-avatar{width:30px;height:30px;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;overflow:hidden;margin-top:2px;-webkit-box-shadow:1px 1px 2px 0 rgba(0,0,0,.3);box-shadow:1px 1px 2px 0 rgba(0,0,0,.3);border-radius:100%}.mini-im-chat-list .mini-im-chat-item .chat-avatar img{width:100%;height:100%;border-radius:100%}.mini-im-chat-list .mini-im-chat-item .chat-content{width:100%;padding-left:10px}.mini-im-chat-list .mini-im-chat-item .chat-content .chat-username{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-bottom:5px}.mini-im-chat-list .mini-im-chat-item .chat-content .chat-username span{font-size:12px;color:#666;font-weight:500}.mini-im-chat-list .mini-im-chat-item .chat-content .chat-username em{color:#666;font-size:12px;margin-left:8px}.mini-im-chat-list .mini-im-chat-item .chat-content .chat-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.mini-im-chat-list .mini-im-chat-item .chat-content .chat-body .cancel-btn{font-size:12px;color:#26a2ff!important;margin-right:5px}.mini-im-chat-list .mini-im-chat-item .chat-content .chat-body .text{padding:5px 8px;background-color:#fff;border-radius:3px;font-size:14px;color:#333;max-width:85%;position:relative;-webkit-box-shadow:1px 2px 2px 0 rgba(0,0,0,.1);box-shadow:1px 2px 2px 0 rgba(0,0,0,.1);-webkit-user-select:text;-moz-user-select:text;-o-user-select:text;-ms-user-select:text;user-select:text;word-break:break-all}.mini-im-chat-list .mini-im-chat-item .chat-content .chat-body .text:before{content:"";display:block;position:absolute;top:5px;left:-9px;width:0;height:0;overflow:hidden;font-size:0;line-height:0;border:5px;border-radius:2px;border-style:dashed solid dashed dashed;border-color:transparent #fff transparent transparent}.mini-im-chat-list .mini-im-chat-item .chat-content .chat-body .photo{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.mini-im-chat-list .mini-im-chat-item .chat-content .chat-body .photo img{width:120px;display:block;border-radius:5px}.mini-im-chat-list .mini-im-chat-item .chat-content .chat-body .photo span{font-size:12px;color:#999;padding-right:5px}.mini-im-chat-list .mini-im-chat-item .chat-content .chat-body .system{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.mini-im-chat-list .mini-im-chat-item .chat-content .chat-body .system span{text-align:center;font-size:12px;color:#999}.mini-im-chat-list .mini-im-chat-item .chat-content .chat-body .system .content{margin-top:1.5px;height:25px;text-align:center}.mini-im-chat-list .mini-im-chat-item .chat-content .chat-body .system .content span{padding:0 10px;text-align:center;font-size:12px;border-radius:5px;display:inline-block;line-height:22px;height:22px;min-width:80px;color:#949393}.mini-im-chat-list .mini-im-chat-item .chat-content .chat-body .knowledge{padding:5px 8px;background-color:#fff;border-radius:3px;font-size:13px;color:#333;max-width:80%;position:relative;-webkit-box-shadow:1px 2px 2px 0 rgba(0,0,0,.1);box-shadow:1px 2px 2px 0 rgba(0,0,0,.1);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.mini-im-chat-list .mini-im-chat-item .chat-content .chat-body .knowledge .title{min-height:25px;font-size:14px}.mini-im-chat-list .mini-im-chat-item .chat-content .chat-body .knowledge a{font-size:13px;color:#26a2ff;text-decoration:none;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;min-height:25px}.mini-im-chat-list .mini-im-chat-item.self{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.mini-im-chat-list .mini-im-chat-item.self .chat-content{padding-right:10px}.mini-im-chat-list .mini-im-chat-item.self .chat-body{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.mini-im-chat-list .mini-im-chat-item.self .chat-body .text{-webkit-box-shadow:-1px 1px 3px 0 rgba(0,0,0,.1);box-shadow:-1px 1px 3px 0 rgba(0,0,0,.1);background-color:#26a2ff;color:#fff;-webkit-user-select:text;-moz-user-select:text;-o-user-select:text;-ms-user-select:text;user-select:text;word-break:break-all}.mini-im-chat-list .mini-im-chat-item.self .chat-body .text:before{left:inherit;right:-9px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #26a2ff}.mini-im-chat-list .mini-im-chat-item.self .chat-avatar{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.mini-im-chat-list .mini-im-chat-item.self .chat-username{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.mini-im-chat-list .mini-im-chat-item.self .chat-username em{-webkit-box-ordinal-group:-1;-ms-flex-order:-2;order:-2;margin-right:5px}.mini-im-pc-container{width:360px;height:500px;position:fixed;top:0;left:0;right:0;bottom:0;margin:auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:0!important;overflow:hidden;-webkit-box-shadow:1px 1px 8px 2px #ccc;box-shadow:1px 1px 8px 2px #ccc}.mini-im-pc-container .mini-im-emoji,.mini-im-pc-container .mini-im-loading{width:360px!important;height:500px!important;bottom:0;margin:auto!important}.mini-im-pc-container .mini-im-emoji{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.mini-im-pc-container .cancel-btn{cursor:pointer}.mini-im-pc-container .mini-im-emoji-content{padding:8px!important;height:465px!important;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.mini-im-pc-container .mini-im-emoji-content span{width:26px;height:26px;cursor:pointer}.mini-im-pc-container .mini-im-body{width:360px;height:500px;position:static!important}.mini-im-pc-container .mini-im-body .mini-im-chat-list{padding:15px!important}.mini-im-pc-container .mini-im-pc-header{z-index:999999999!important;height:45px;background:-webkit-gradient(linear,left top,right top,from(#26a2ff),to(#736cde));background:linear-gradient(90deg,#26a2ff,#736cde);-ms-flex-negative:0;flex-shrink:0;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:0 10px;color:#fff}.mini-im-pc-container .mini-im-pc-header,.mini-im-pc-container .mini-im-pc-header .right{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.mini-im-pc-container .mini-im-pc-header .right{cursor:pointer}.mini-im-pc-container .mini-im-pc-header .right img{width:20px;margin-right:5px}.mini-im-pc-container .mini-im-pc-header .title{font-size:14px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.mini-im-pc-container .mini-im-pc-header .title img{width:20px;margin-right:5px}.mini-im-pc-container .mini-im-pc-header span{font-size:14px}.mini-im-pc-container .mini-im-pc-header .close-btn{width:20px;height:35px;text-align:right;line-height:35px;cursor:pointer}.mini-im-pc-container .mini-im-tabbar-input{height:130px;overflow:hidden;padding:5px;position:relative;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;z-index:9}.mini-im-pc-container .mini-im-tabbar-input textarea{height:65px;padding-right:5px;margin:0}.mini-im-pc-container .mini-im-tabbar-input .mini-input-send{height:70px;width:60px;background:-webkit-gradient(linear,left top,right top,from(#26a2ff),to(#736cde));background:linear-gradient(90deg,#26a2ff,#736cde);color:#fff;border:0;cursor:pointer;border-radius:2px}.mini-im-pc-container .mini-im-tabbar-input span.photo-btn{left:3px}.mini-im-pc-container .mini-im-tabbar-input span.expression-btn{left:30px}.bscroll-vertical-scrollbar{right:0!important;height:100%!important}.bscroll-vertical-scrollbar .bscroll-indicator{width:4px!important;border:0!important;background:rgba(0,0,0,.2)!important;right:0!important}
\ No newline at end of file
/*! PhotoSwipe main CSS by Dmitry Semenov | photoswipe.com | MIT license */.pswp{display:none;position:absolute;width:100%;height:100%;left:0;top:0;overflow:hidden;-ms-touch-action:none;touch-action:none;z-index:1500;-webkit-text-size-adjust:100%;-webkit-backface-visibility:hidden;outline:none}.pswp *{-webkit-box-sizing:border-box;box-sizing:border-box}.pswp img{max-width:none}.pswp--animate_opacity{opacity:.001;will-change:opacity;-webkit-transition:opacity 333ms cubic-bezier(.4,0,.22,1);transition:opacity 333ms cubic-bezier(.4,0,.22,1)}.pswp--open{display:block}.pswp--zoom-allowed .pswp__img{cursor:-webkit-zoom-in;cursor:zoom-in}.pswp--zoomed-in .pswp__img{cursor:-webkit-grab;cursor:grab}.pswp--dragging .pswp__img{cursor:-webkit-grabbing;cursor:grabbing}.pswp__bg{background:#000;opacity:0;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden}.pswp__bg,.pswp__scroll-wrap{position:absolute;left:0;top:0;width:100%;height:100%}.pswp__scroll-wrap{overflow:hidden}.pswp__container,.pswp__zoom-wrap{-ms-touch-action:none;touch-action:none;position:absolute;left:0;right:0;top:0;bottom:0}.pswp__container,.pswp__img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.pswp__zoom-wrap{position:absolute;width:100%;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transition:-webkit-transform 333ms cubic-bezier(.4,0,.22,1);transition:-webkit-transform 333ms cubic-bezier(.4,0,.22,1);transition:transform 333ms cubic-bezier(.4,0,.22,1);transition:transform 333ms cubic-bezier(.4,0,.22,1),-webkit-transform 333ms cubic-bezier(.4,0,.22,1)}.pswp__bg{will-change:opacity;-webkit-transition:opacity 333ms cubic-bezier(.4,0,.22,1);transition:opacity 333ms cubic-bezier(.4,0,.22,1)}.pswp--animated-in .pswp__bg,.pswp--animated-in .pswp__zoom-wrap{-webkit-transition:none;transition:none}.pswp__container,.pswp__zoom-wrap{-webkit-backface-visibility:hidden}.pswp__item{right:0;bottom:0;overflow:hidden}.pswp__img,.pswp__item{position:absolute;left:0;top:0}.pswp__img{width:auto;height:auto}.pswp__img--placeholder{-webkit-backface-visibility:hidden}.pswp__img--placeholder--blank{background:#222}.pswp--ie .pswp__img{width:100%!important;height:auto!important;left:0;top:0}.pswp__error-msg{position:absolute;left:0;top:50%;width:100%;text-align:center;font-size:14px;line-height:16px;margin-top:-8px;color:#ccc}.pswp__error-msg a{color:#ccc;text-decoration:underline}/*! PhotoSwipe Default UI CSS by Dmitry Semenov | photoswipe.com | MIT license */.pswp__button{width:44px;height:44px;position:relative;background:none;cursor:pointer;overflow:visible;-webkit-appearance:none;display:block;border:0;padding:0;margin:0;float:right;opacity:.75;-webkit-transition:opacity .2s;transition:opacity .2s;-webkit-box-shadow:none;box-shadow:none}.pswp__button:focus,.pswp__button:hover{opacity:1}.pswp__button:active{outline:none;opacity:.9}.pswp__button::-moz-focus-inner{padding:0;border:0}.pswp__ui--over-close .pswp__button--close{opacity:1}.pswp__button,.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQgAAABYCAQAAACjBqE3AAAB6klEQVR4Ae3bsWpUQRTG8YkkanwCa7GzVotsI/gEgk9h4Vu4ySLYmMYgbJrc3lrwZbJwC0FMt4j7F6Y4oIZrsXtgxvx/1c0ufEX4cnbmLCmSJEmSJEmSJEmSJP3XCBPvbJU+8doWmDFwyZpLBmYlNJebz0KwzykwsuSYJSNwykEJreV2BaBMaLIQZ2xYcFgqDlmw4ayE/FwL0dDk4Qh4W37DAjgqIT+3HRbigjH+iikVdxgZStgyN0Su2sXIeTwTT+esdpcbIlfNAuZ/TxresG4zV8kYWSZNiKUTokMMSWeIwTNEn4fK2TW3gRNgVkJLuVksROA9G+bEvoATNlBCa7nZXEwdxEZxzpKRKFh+bsv8LmPFmhX1OwfIz81jIRJQ5eeqG9B+riRJkiRJkiRJkiRJkiRJkiRJUkvA/8RQoEpKlJWINFkJ62AlrEP/mNBibnv2yz/A3t7Uq3LcpoxP8COjC1T5vxoAD5VdoEqdDrd5QuW1swtUSaueh3zkiuBiqgtA2OlkeMcP/uDqugsJdbjHF65VdPMKwS0+WQc/MgKvrIOHysB9vgPwk8+85hmPbnQdvHZyDMAFD7L3EOpgMcVdvnHFS0/vlatrXvCVx0U9gt3fxvnA0/hB4nmRJEmSJEmSJEmSJGmHfgFLaDPoMu5xWwAAAABJRU5ErkJggg==) 0 0 no-repeat;background-size:264px 88px;width:44px;height:44px}@media (-webkit-min-device-pixel-ratio:1.1),(-webkit-min-device-pixel-ratio:1.09375),(min-resolution:1.1dppx),(min-resolution:105dpi){.pswp--svg .pswp__button,.pswp--svg .pswp__button--arrow--left:before,.pswp--svg .pswp__button--arrow--right:before{background-image:url(../img/default-skin.b257fa9c.svg)}.pswp--svg .pswp__button--arrow--left,.pswp--svg .pswp__button--arrow--right{background:none}}.pswp__button--close{background-position:0 -44px}.pswp__button--share{background-position:-44px -44px}.pswp__button--fs{display:none}.pswp--supports-fs .pswp__button--fs{display:block}.pswp--fs .pswp__button--fs{background-position:-44px 0}.pswp__button--zoom{display:none;background-position:-88px 0}.pswp--zoom-allowed .pswp__button--zoom{display:block}.pswp--zoomed-in .pswp__button--zoom{background-position:-132px 0}.pswp--touch .pswp__button--arrow--left,.pswp--touch .pswp__button--arrow--right{visibility:hidden}.pswp__button--arrow--left,.pswp__button--arrow--right{background:none;top:50%;margin-top:-50px;width:70px;height:100px;position:absolute}.pswp__button--arrow--left{left:0}.pswp__button--arrow--right{right:0}.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{content:"";top:35px;background-color:rgba(0,0,0,.3);height:30px;width:32px;position:absolute}.pswp__button--arrow--left:before{left:6px;background-position:-138px -44px}.pswp__button--arrow--right:before{right:6px;background-position:-94px -44px}.pswp__counter,.pswp__share-modal{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pswp__share-modal{display:block;background:rgba(0,0,0,.5);width:100%;height:100%;top:0;left:0;padding:10px;position:absolute;z-index:1600;opacity:0;-webkit-transition:opacity .25s ease-out;transition:opacity .25s ease-out;-webkit-backface-visibility:hidden;will-change:opacity}.pswp__share-modal--hidden{display:none}.pswp__share-tooltip{z-index:1620;position:absolute;background:#fff;top:56px;border-radius:2px;display:block;width:auto;right:44px;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.25);box-shadow:0 2px 5px rgba(0,0,0,.25);-webkit-transform:translateY(6px);transform:translateY(6px);-webkit-transition:-webkit-transform .25s;transition:-webkit-transform .25s;transition:transform .25s;transition:transform .25s,-webkit-transform .25s;-webkit-backface-visibility:hidden;will-change:transform}.pswp__share-tooltip a{display:block;padding:8px 12px;font-size:14px;line-height:18px}.pswp__share-tooltip a,.pswp__share-tooltip a:hover{color:#000;text-decoration:none}.pswp__share-tooltip a:first-child{border-radius:2px 2px 0 0}.pswp__share-tooltip a:last-child{border-radius:0 0 2px 2px}.pswp__share-modal--fade-in{opacity:1}.pswp__share-modal--fade-in .pswp__share-tooltip{-webkit-transform:translateY(0);transform:translateY(0)}.pswp--touch .pswp__share-tooltip a{padding:16px 12px}a.pswp__share--facebook:before{content:"";display:block;width:0;height:0;position:absolute;top:-12px;right:15px;border:6px solid transparent;border-bottom-color:#fff;-webkit-pointer-events:none;-moz-pointer-events:none;pointer-events:none}a.pswp__share--facebook:hover{background:#3e5c9a;color:#fff}a.pswp__share--facebook:hover:before{border-bottom-color:#3e5c9a}a.pswp__share--twitter:hover{background:#55acee;color:#fff}a.pswp__share--pinterest:hover{background:#ccc;color:#ce272d}a.pswp__share--download:hover{background:#ddd}.pswp__counter{position:absolute;left:0;top:0;height:44px;font-size:13px;line-height:44px;color:#fff;opacity:.75;padding:0 10px}.pswp__caption{position:absolute;left:0;bottom:0;width:100%;min-height:44px}.pswp__caption small{font-size:11px;color:#bbb}.pswp__caption__center{text-align:left;max-width:420px;margin:0 auto;font-size:13px;padding:10px;line-height:20px;color:#ccc}.pswp__caption--empty{display:none}.pswp__caption--fake{visibility:hidden}.pswp__preloader{width:44px;height:44px;position:absolute;top:0;left:50%;margin-left:-22px;opacity:0;-webkit-transition:opacity .25s ease-out;transition:opacity .25s ease-out;will-change:opacity;direction:ltr}.pswp__preloader__icn{width:20px;height:20px;margin:12px}.pswp__preloader--active{opacity:1}.pswp__preloader--active .pswp__preloader__icn{background:url(data:image/gif;base64,R0lGODlhFAAUAPMIAIeHhz8/P1dXVycnJ8/Pz7e3t5+fn29vb////wAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFBwAIACwAAAAAFAAUAEAEUxDJSatFxtwaggWAdIyHJAhXoRYSQUhDPGx0TbmujahbXGWZWqdDAYEsp5NupLPkdDwE7oXwWVasimzWrAE1tKFHErQRK8eL8mMUlRBJVI307uoiACH5BAUHAAgALAEAAQASABIAAAROEMkpS6E4W5upMdUmEQT2feFIltMJYivbvhnZ3R0A4NMwIDodz+cL7nDEn5CH8DGZh8MtEMBEoxkqlXKVIgQCibbK9YLBYvLtHH5K0J0IACH5BAUHAAgALAEAAQASABIAAAROEMkpjaE4W5spANUmFQX2feFIltMJYivbvhnZ3d1x4BNBIDodz+cL7nDEn5CH8DGZAsFtMMBEoxkqlXKVIgIBibbK9YLBYvLtHH5K0J0IACH5BAUHAAgALAEAAQASABIAAAROEMkpAaA4W5vpOdUmGQb2feFIltMJYivbvhnZ3Z0g4FNRIDodz+cL7nDEn5CH8DGZgcCNQMBEoxkqlXKVIgYDibbK9YLBYvLtHH5K0J0IACH5BAUHAAgALAEAAQASABIAAAROEMkpz6E4W5upENUmAQD2feFIltMJYivbvhnZ3V0Q4JNhIDodz+cL7nDEn5CH8DGZg8GtUMBEoxkqlXKVIggEibbK9YLBYvLtHH5K0J0IACH5BAUHAAgALAEAAQASABIAAAROEMkphaA4W5tpCNUmHQf2feFIltMJYivbvhnZ3d0w4BMAIDodz+cL7nDEn5CH8DGZBMLNYMBEoxkqlXKVIgoFibbK9YLBYvLtHH5K0J0IACH5BAUHAAgALAEAAQASABIAAAROEMkpQ6A4W5vpGNUmCQL2feFIltMJYivbvhnZ3R1B4NNxIDodz+cL7nDEn5CH8DGZhcINAMBEoxkqlXKVIgwGibbK9YLBYvLtHH5K0J0IACH5BAUHAAcALAEAAQASABIAAANCeLo6wzA6FxkhbaoQ4L3ZxnXLh0EjWZ4RV71VUcCLIByyTNt2PsO8m452sBGJBsNxkUwuD03lAQBASqnUJ7aq5UYSADs=) 0 0 no-repeat}.pswp--css_animation .pswp__preloader--active{opacity:1}.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn{-webkit-animation:clockwise .5s linear infinite;animation:clockwise .5s linear infinite}.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut{-webkit-animation:donut-rotate 1s cubic-bezier(.4,0,.22,1) infinite;animation:donut-rotate 1s cubic-bezier(.4,0,.22,1) infinite}.pswp--css_animation .pswp__preloader__icn{background:none;opacity:.75;width:14px;height:14px;position:absolute;left:15px;top:15px;margin:0}.pswp--css_animation .pswp__preloader__cut{position:relative;width:7px;height:14px;overflow:hidden}.pswp--css_animation .pswp__preloader__donut{-webkit-box-sizing:border-box;box-sizing:border-box;width:14px;height:14px;border:2px solid #fff;border-radius:50%;border-left-color:transparent;border-bottom-color:transparent;position:absolute;top:0;left:0;background:none;margin:0}@media screen and (max-width:1024px){.pswp__preloader{position:relative;left:auto;top:auto;margin:0;float:right}}@-webkit-keyframes clockwise{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes clockwise{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes donut-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}50%{-webkit-transform:rotate(-140deg);transform:rotate(-140deg)}to{-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes donut-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}50%{-webkit-transform:rotate(-140deg);transform:rotate(-140deg)}to{-webkit-transform:rotate(0);transform:rotate(0)}}.pswp__ui{-webkit-font-smoothing:auto;visibility:visible;opacity:1;z-index:1550}.pswp__top-bar{position:absolute;left:0;top:0;height:44px;width:100%}.pswp--has_mouse .pswp__button--arrow--left,.pswp--has_mouse .pswp__button--arrow--right,.pswp__caption,.pswp__top-bar{-webkit-backface-visibility:hidden;will-change:opacity;-webkit-transition:opacity 333ms cubic-bezier(.4,0,.22,1);transition:opacity 333ms cubic-bezier(.4,0,.22,1)}.pswp--has_mouse .pswp__button--arrow--left,.pswp--has_mouse .pswp__button--arrow--right{visibility:visible}.pswp__caption,.pswp__top-bar{background-color:rgba(0,0,0,.5)}.pswp__ui--fit .pswp__caption,.pswp__ui--fit .pswp__top-bar{background-color:rgba(0,0,0,.3)}.pswp__ui--idle .pswp__button--arrow--left,.pswp__ui--idle .pswp__button--arrow--right,.pswp__ui--idle .pswp__top-bar{opacity:0}.pswp__ui--hidden .pswp__button--arrow--left,.pswp__ui--hidden .pswp__button--arrow--right,.pswp__ui--hidden .pswp__caption,.pswp__ui--hidden .pswp__top-bar{opacity:.001}.pswp__ui--one-slide .pswp__button--arrow--left,.pswp__ui--one-slide .pswp__button--arrow--right,.pswp__ui--one-slide .pswp__counter{display:none}.pswp__element--disabled{display:none!important}.pswp--minimal--dark .pswp__top-bar{background:none}.mint-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#26a2ff;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;height:40px;line-height:1;padding:0 10px;position:relative;text-align:center;white-space:nowrap}.mint-header .mint-button{background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none;color:inherit;display:inline-block;padding:0;font-size:inherit}.mint-header .mint-button:after{content:none}.mint-header.is-fixed{top:0;right:0;left:0;position:fixed;z-index:1}.mint-header-button{-webkit-box-flex:.5;-ms-flex:.5;flex:.5}.mint-header-button>a{color:inherit}.mint-header-button.is-right{text-align:right}.mint-header-button.is-left{text-align:left}.mint-header-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:inherit;font-weight:400;-webkit-box-flex:1;-ms-flex:1;flex:1}.mint-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:4px;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:block;font-size:18px;height:41px;outline:0;overflow:hidden;position:relative;text-align:center}.mint-button:after{background-color:#000;content:" ";opacity:0;top:0;right:0;bottom:0;left:0;position:absolute}.mint-button:not(.is-disabled):active:after{opacity:.4}.mint-button.is-disabled{opacity:.6}.mint-button-icon{vertical-align:middle;display:inline-block}.mint-button--default{color:#656b79;background-color:#f6f8fa;-webkit-box-shadow:0 0 1px #b8bbbf;box-shadow:0 0 1px #b8bbbf}.mint-button--default.is-plain{border:1px solid #5a5a5a;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;color:#5a5a5a}.mint-button--primary{color:#fff;background-color:#26a2ff}.mint-button--primary.is-plain{border:1px solid #26a2ff;background-color:transparent;color:#26a2ff}.mint-button--danger{color:#fff;background-color:#ef4f4f}.mint-button--danger.is-plain{border:1px solid #ef4f4f;background-color:transparent;color:#ef4f4f}.mint-button--large{display:block;width:100%}.mint-button--normal,.mint-button--small{display:inline-block;padding:0 12px}.mint-button--small{font-size:14px;height:33px}.mint-cell{background-color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;min-height:48px;display:block;overflow:hidden;position:relative;text-decoration:none}.mint-cell img{vertical-align:middle}.mint-cell:first-child .mint-cell-wrapper{background-origin:border-box}.mint-cell:last-child{background-image:-webkit-gradient(linear,left bottom,left top,from(#d9d9d9),color-stop(50%,#d9d9d9),color-stop(50%,transparent));background-image:linear-gradient(0deg,#d9d9d9,#d9d9d9 50%,transparent 0);background-size:100% 1px;background-repeat:no-repeat;background-position:bottom}.mint-cell-wrapper{background-image:-webkit-gradient(linear,left top,left bottom,from(#d9d9d9),color-stop(50%,#d9d9d9),color-stop(50%,transparent));background-image:linear-gradient(180deg,#d9d9d9,#d9d9d9 50%,transparent 0);background-size:120% 1px;background-repeat:no-repeat;background-position:0 0;background-origin:content-box;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:16px;line-height:1;min-height:inherit;overflow:hidden;padding:0 10px;width:100%}.mint-cell-mask:after{background-color:#000;content:" ";opacity:0;top:0;right:0;bottom:0;left:0;position:absolute}.mint-cell-mask:active:after{opacity:.1}.mint-cell-text{vertical-align:middle}.mint-cell-label{color:#888;display:block;font-size:12px;margin-top:6px}.mint-cell-title{-webkit-box-flex:1;-ms-flex:1;flex:1}.mint-cell-value{color:#888;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.mint-cell-value.is-link{margin-right:24px}.mint-cell-left{position:absolute;height:100%;left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.mint-cell-right{position:absolute;height:100%;right:0;top:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.mint-cell-allow-right:after{border:2px solid #c8c8cd;border-bottom-width:0;border-left-width:0;content:" ";top:50%;right:20px;position:absolute;width:5px;height:5px;-webkit-transform:translateY(-50%) rotate(45deg);transform:translateY(-50%) rotate(45deg)}.mint-cell-swipe .mint-cell-wrapper{position:relative}.mint-cell-swipe .mint-cell-left,.mint-cell-swipe .mint-cell-right,.mint-cell-swipe .mint-cell-wrapper{-webkit-transition:-webkit-transform .15s ease-in-out;transition:-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out;transition:transform .15s ease-in-out,-webkit-transform .15s ease-in-out}.mint-cell-swipe-buttongroup{height:100%}.mint-cell-swipe-button{height:100%;display:inline-block;padding:0 10px;line-height:48px}.mint-field{display:-webkit-box;display:-ms-flexbox;display:flex}.mint-field .mint-cell-title{width:105px;-webkit-box-flex:0;-ms-flex:none;flex:none}.mint-field .mint-cell-value{-webkit-box-flex:1;-ms-flex:1;flex:1;color:inherit;display:-webkit-box;display:-ms-flexbox;display:flex}.mint-field.is-nolabel .mint-cell-title{display:none}.mint-field.is-textarea{-webkit-box-align:inherit;-ms-flex-align:inherit;align-items:inherit}.mint-field.is-textarea .mint-cell-title{padding:10px 0}.mint-field.is-textarea .mint-cell-value{padding:5px 0}.mint-field-core{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;border:0;-webkit-box-flex:1;-ms-flex:1;flex:1;outline:0;line-height:1.6;font-size:inherit;width:100%}.mint-field-clear{opacity:.2}.mint-field-state{color:inherit;margin-left:20px}.mint-field-state .mintui{font-size:20px}.mint-field-state.is-default{margin-left:0}.mint-field-state.is-success{color:#4caf50}.mint-field-state.is-warning{color:#ffc107}.mint-field-state.is-error{color:#f44336}.mint-field-other{top:0;right:0;position:relative}.mint-badge{color:#fff;text-align:center;display:inline-block}.mint-badge.is-size-large{border-radius:14px;font-size:18px;padding:2px 10px}.mint-badge.is-size-small{border-radius:8px;font-size:12px;padding:2px 6px}.mint-badge.is-size-normal{border-radius:12px;font-size:15px;padding:2px 8px}.mint-badge.is-warning{background-color:#ffc107}.mint-badge.is-error{background-color:#f44336}.mint-badge.is-primary{background-color:#26a2ff}.mint-badge.is-success{background-color:#4caf50}.mint-switch{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative}.mint-switch *{pointer-events:none}.mint-switch-label{margin-left:10px;display:inline-block}.mint-switch-label:empty{margin-left:0}.mint-switch-core{display:inline-block;position:relative;width:52px;height:32px;border:1px solid #d9d9d9;border-radius:16px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#d9d9d9}.mint-switch-core:after,.mint-switch-core:before{content:" ";top:0;left:0;position:absolute;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;border-radius:15px}.mint-switch-core:after{width:30px;height:30px;background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.4);box-shadow:0 1px 3px rgba(0,0,0,.4)}.mint-switch-core:before{width:50px;height:30px;background-color:#fdfdfd}.mint-switch-input{display:none}.mint-switch-input:checked+.mint-switch-core{border-color:#26a2ff;background-color:#26a2ff}.mint-switch-input:checked+.mint-switch-core:before{-webkit-transform:scale(0);transform:scale(0)}.mint-switch-input:checked+.mint-switch-core:after{-webkit-transform:translateX(20px);transform:translateX(20px)}.mint-spinner-snake{-webkit-animation:mint-spinner-rotate .8s linear infinite;animation:mint-spinner-rotate .8s linear infinite;border:4px solid transparent;border-radius:50%}@-webkit-keyframes mint-spinner-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes mint-spinner-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.mint-spinner-double-bounce{position:relative}.mint-spinner-double-bounce-bounce1,.mint-spinner-double-bounce-bounce2{width:100%;height:100%;border-radius:50%;opacity:.6;position:absolute;top:0;left:0;-webkit-animation:mint-spinner-double-bounce 2s ease-in-out infinite;animation:mint-spinner-double-bounce 2s ease-in-out infinite}.mint-spinner-double-bounce-bounce2{-webkit-animation-delay:-1s;animation-delay:-1s}@-webkit-keyframes mint-spinner-double-bounce{0%,to{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes mint-spinner-double-bounce{0%,to{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1);transform:scale(1)}}.mint-spinner-triple-bounce-bounce1,.mint-spinner-triple-bounce-bounce2,.mint-spinner-triple-bounce-bounce3{border-radius:100%;display:inline-block;-webkit-animation:mint-spinner-triple-bounce 1.4s ease-in-out infinite both;animation:mint-spinner-triple-bounce 1.4s ease-in-out infinite both}.mint-spinner-triple-bounce-bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.mint-spinner-triple-bounce-bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}@-webkit-keyframes mint-spinner-triple-bounce{0%,80%,to{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes mint-spinner-triple-bounce{0%,80%,to{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}.mint-spinner-fading-circle{position:relative}.mint-spinner-fading-circle-circle{width:100%;height:100%;top:0;left:0;position:absolute}.mint-spinner-fading-circle-circle:before{content:" ";display:block;margin:0 auto;width:15%;height:15%;border-radius:100%;-webkit-animation:mint-fading-circle 1.2s ease-in-out infinite both;animation:mint-fading-circle 1.2s ease-in-out infinite both}.mint-spinner-fading-circle-circle.is-circle2{-webkit-transform:rotate(30deg);transform:rotate(30deg)}.mint-spinner-fading-circle-circle.is-circle2:before{-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.mint-spinner-fading-circle-circle.is-circle3{-webkit-transform:rotate(60deg);transform:rotate(60deg)}.mint-spinner-fading-circle-circle.is-circle3:before{-webkit-animation-delay:-1s;animation-delay:-1s}.mint-spinner-fading-circle-circle.is-circle4{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.mint-spinner-fading-circle-circle.is-circle4:before{-webkit-animation-delay:-.9s;animation-delay:-.9s}.mint-spinner-fading-circle-circle.is-circle5{-webkit-transform:rotate(120deg);transform:rotate(120deg)}.mint-spinner-fading-circle-circle.is-circle5:before{-webkit-animation-delay:-.8s;animation-delay:-.8s}.mint-spinner-fading-circle-circle.is-circle6{-webkit-transform:rotate(150deg);transform:rotate(150deg)}.mint-spinner-fading-circle-circle.is-circle6:before{-webkit-animation-delay:-.7s;animation-delay:-.7s}.mint-spinner-fading-circle-circle.is-circle7{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.mint-spinner-fading-circle-circle.is-circle7:before{-webkit-animation-delay:-.6s;animation-delay:-.6s}.mint-spinner-fading-circle-circle.is-circle8{-webkit-transform:rotate(210deg);transform:rotate(210deg)}.mint-spinner-fading-circle-circle.is-circle8:before{-webkit-animation-delay:-.5s;animation-delay:-.5s}.mint-spinner-fading-circle-circle.is-circle9{-webkit-transform:rotate(240deg);transform:rotate(240deg)}.mint-spinner-fading-circle-circle.is-circle9:before{-webkit-animation-delay:-.4s;animation-delay:-.4s}.mint-spinner-fading-circle-circle.is-circle10{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.mint-spinner-fading-circle-circle.is-circle10:before{-webkit-animation-delay:-.3s;animation-delay:-.3s}.mint-spinner-fading-circle-circle.is-circle11{-webkit-transform:rotate(300deg);transform:rotate(300deg)}.mint-spinner-fading-circle-circle.is-circle11:before{-webkit-animation-delay:-.2s;animation-delay:-.2s}.mint-spinner-fading-circle-circle.is-circle12{-webkit-transform:rotate(330deg);transform:rotate(330deg)}.mint-spinner-fading-circle-circle.is-circle12:before{-webkit-animation-delay:-.1s;animation-delay:-.1s}@-webkit-keyframes mint-fading-circle{0%,39%,to{opacity:0}40%{opacity:1}}@keyframes mint-fading-circle{0%,39%,to{opacity:0}40%{opacity:1}}.mint-tab-item{display:block;padding:7px 0;-webkit-box-flex:1;-ms-flex:1;flex:1;text-decoration:none}.mint-tab-item-icon{width:24px;height:24px;margin:0 auto 5px}.mint-tab-item-icon:empty{display:none}.mint-tab-item-icon>*{display:block;width:100%;height:100%}.mint-tab-item-label{color:inherit;font-size:12px;line-height:1}.mint-tab-container-item{-ms-flex-negative:0;flex-shrink:0;width:100%}.mint-tab-container{overflow:hidden;position:relative}.mint-tab-container .swipe-transition{-webkit-transition:-webkit-transform .15s ease-in-out;transition:-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out;transition:transform .15s ease-in-out,-webkit-transform .15s ease-in-out}.mint-navbar,.mint-tab-container-wrap{display:-webkit-box;display:-ms-flexbox;display:flex}.mint-navbar{background-color:#fff;text-align:center}.mint-navbar .mint-tab-item{padding:17px 0;font-size:15px}.mint-navbar .mint-tab-item:last-child{border-right:0}.mint-navbar .mint-tab-item.is-selected{border-bottom:3px solid #26a2ff;color:#26a2ff;margin-bottom:-3px}.mint-navbar.is-fixed{top:0;right:0;left:0;position:fixed;z-index:1}.mint-tabbar{background-image:-webkit-gradient(linear,left top,left bottom,from(#d9d9d9),color-stop(50%,#d9d9d9),color-stop(50%,transparent));background-image:linear-gradient(180deg,#d9d9d9,#d9d9d9 50%,transparent 0);background-size:100% 1px;background-repeat:no-repeat;background-position:0 0;position:relative;background-color:#fafafa;display:-webkit-box;display:-ms-flexbox;display:flex;right:0;bottom:0;left:0;position:absolute;text-align:center}.mint-tabbar>.mint-tab-item.is-selected{background-color:#eaeaea;color:#26a2ff}.mint-tabbar.is-fixed{right:0;bottom:0;left:0;position:fixed;z-index:1}.mint-search{height:100%;height:100vh;overflow:hidden}.mint-searchbar{position:relative;background-color:#d9d9d9;-webkit-box-sizing:border-box;box-sizing:border-box;padding:8px 10px;z-index:1}.mint-searchbar,.mint-searchbar-inner{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.mint-searchbar-inner{background-color:#fff;border-radius:2px;-webkit-box-flex:1;-ms-flex:1;flex:1;height:28px;padding:4px 6px}.mint-searchbar-inner .mintui-search{font-size:12px;color:#d9d9d9}.mint-searchbar-core{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;outline:0}.mint-searchbar-cancel{color:#26a2ff;margin-left:10px;text-decoration:none}.mint-search-list{overflow:auto;padding-top:44px;top:0;right:0;bottom:0;left:0;position:absolute}.mint-checklist .mint-cell{padding:0}.mint-checklist.is-limit .mint-checkbox-core:not(:checked){background-color:#d9d9d9;border-color:#d9d9d9}.mint-checklist-label{display:block;padding:0 10px}.mint-checklist-title{color:#888;display:block;font-size:12px;margin:8px}.mint-checkbox.is-right{float:right}.mint-checkbox-label{vertical-align:middle;margin-left:6px}.mint-checkbox-input{display:none}.mint-checkbox-input:checked+.mint-checkbox-core{background-color:#26a2ff;border-color:#26a2ff}.mint-checkbox-input:checked+.mint-checkbox-core:after{border-color:#fff;-webkit-transform:rotate(45deg) scale(1);transform:rotate(45deg) scale(1)}.mint-checkbox-input[disabled]+.mint-checkbox-core{background-color:#d9d9d9;border-color:#ccc}.mint-checkbox-core{display:inline-block;background-color:#fff;border-radius:100%;border:1px solid #ccc;position:relative;width:20px;height:20px;vertical-align:middle}.mint-checkbox-core:after{border:2px solid transparent;border-left:0;border-top:0;content:" ";top:3px;left:6px;position:absolute;width:4px;height:8px;-webkit-transform:rotate(45deg) scale(0);transform:rotate(45deg) scale(0);-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.mint-radiolist .mint-cell{padding:0}.mint-radiolist-label{display:block;padding:0 10px}.mint-radiolist-title{font-size:12px;margin:8px;display:block;color:#888}.mint-radio.is-right{float:right}.mint-radio-label{vertical-align:middle;margin-left:6px}.mint-radio-input{display:none}.mint-radio-input:checked+.mint-radio-core{background-color:#26a2ff;border-color:#26a2ff}.mint-radio-input:checked+.mint-radio-core:after{background-color:#fff;-webkit-transform:scale(1);transform:scale(1)}.mint-radio-input[disabled]+.mint-radio-core{background-color:#d9d9d9;border-color:#ccc}.mint-radio-core{-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;background-color:#fff;border-radius:100%;border:1px solid #ccc;position:relative;width:20px;height:20px;vertical-align:middle}.mint-radio-core:after{content:" ";border-radius:100%;top:5px;left:5px;position:absolute;width:8px;height:8px;-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s;-webkit-transform:scale(0);transform:scale(0)}.mint-loadmore{overflow:hidden}.mint-loadmore-content.is-dropped{-webkit-transition:.2s;transition:.2s}.mint-loadmore-bottom,.mint-loadmore-top{text-align:center;height:50px;line-height:50px}.mint-loadmore-top{margin-top:-50px}.mint-loadmore-bottom{margin-bottom:-50px}.mint-loadmore-spinner{display:inline-block;margin-right:5px;vertical-align:middle}.mint-loadmore-text{vertical-align:middle}.mint-actionsheet{position:fixed;background:#e0e0e0;width:100%;text-align:center;bottom:0;left:50%;-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out}.mint-actionsheet-list{list-style:none;padding:0;margin:0}.mint-actionsheet-listitem{border-bottom:1px solid #e0e0e0}.mint-actionsheet-button,.mint-actionsheet-listitem{display:block;width:100%;height:45px;line-height:45px;font-size:18px;color:#333;background-color:#fff}.mint-actionsheet-button:active,.mint-actionsheet-listitem:active{background-color:#f0f0f0}.actionsheet-float-enter,.actionsheet-float-leave-active{-webkit-transform:translate3d(-50%,100%,0);transform:translate3d(-50%,100%,0)}.mint-popup{position:fixed;background:#fff;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:.2s ease-out;transition:.2s ease-out}.mint-popup-top{top:0;right:auto;bottom:auto;left:50%;-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}.mint-popup-right{top:50%;right:0;bottom:auto;left:auto;-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.mint-popup-bottom{top:auto;right:auto;bottom:0;left:50%;-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}.mint-popup-left{top:50%;right:auto;bottom:auto;left:0;-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.popup-slide-top-enter,.popup-slide-top-leave-active{-webkit-transform:translate3d(-50%,-100%,0);transform:translate3d(-50%,-100%,0)}.popup-slide-right-enter,.popup-slide-right-leave-active{-webkit-transform:translate3d(100%,-50%,0);transform:translate3d(100%,-50%,0)}.popup-slide-bottom-enter,.popup-slide-bottom-leave-active{-webkit-transform:translate3d(-50%,100%,0);transform:translate3d(-50%,100%,0)}.popup-slide-left-enter,.popup-slide-left-leave-active{-webkit-transform:translate3d(-100%,-50%,0);transform:translate3d(-100%,-50%,0)}.popup-fade-enter,.popup-fade-leave-active{opacity:0}.mint-swipe,.mint-swipe-items-wrap{overflow:hidden;position:relative;height:100%}.mint-swipe-items-wrap>div{position:absolute;-webkit-transform:translateX(-100%);transform:translateX(-100%);width:100%;height:100%;display:none}.mint-swipe-items-wrap>div.is-active{display:block;-webkit-transform:none;transform:none}.mint-swipe-indicators{position:absolute;bottom:10px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.mint-swipe-indicator{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2;margin:0 3px}.mint-swipe-indicator.is-active{background:#fff}.mt-range{position:relative;height:30px;line-height:30px}.mt-range,.mt-range>*{display:-webkit-box;display:-ms-flexbox;display:flex}.mt-range [slot=start]{margin-right:5px}.mt-range [slot=end]{margin-left:5px}.mt-range-content{position:relative;-webkit-box-flex:1;-ms-flex:1;flex:1;margin-right:30px}.mt-range-runway{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);left:0;right:-30px;border-top-color:#a9acb1;border-top-style:solid}.mt-range-thumb{background-color:#fff;position:absolute;left:0;top:0;width:30px;height:30px;border-radius:100%;cursor:move;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.4);box-shadow:0 1px 3px rgba(0,0,0,.4)}.mt-range-progress{position:absolute;display:block;background-color:#26a2ff;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:0}.mt-range--disabled{opacity:.5}.picker{overflow:hidden}.picker-toolbar{height:40px}.picker-items{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0;text-align:right;font-size:24px;position:relative}.picker-center-highlight{-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;left:0;width:100%;top:50%;margin-top:-18px;pointer-events:none}.picker-center-highlight:after,.picker-center-highlight:before{content:"";position:absolute;height:1px;width:100%;background-color:#eaeaea;display:block;z-index:15;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.picker-center-highlight:before{left:0;top:0;bottom:auto;right:auto}.picker-center-highlight:after{left:0;bottom:0;right:auto;top:auto}.picker-slot{font-size:18px;overflow:hidden;position:relative;max-height:100%}.picker-slot.picker-slot-left{text-align:left}.picker-slot.picker-slot-center{text-align:center}.picker-slot.picker-slot-right{text-align:right}.picker-slot.picker-slot-divider{color:#000;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.picker-slot-wrapper{-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;-webkit-backface-visibility:hidden;backface-visibility:hidden}.picker-slot-wrapper.dragging,.picker-slot-wrapper.dragging .picker-item{-webkit-transition-duration:0s;transition-duration:0s}.picker-item{height:36px;line-height:36px;padding:0 10px;white-space:nowrap;position:relative;overflow:hidden;text-overflow:ellipsis;color:#707274;left:0;top:0;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-backface-visibility:hidden;backface-visibility:hidden}.picker-slot-absolute .picker-item{position:absolute}.picker-item.picker-item-far{pointer-events:none}.picker-item.picker-selected{color:#000;-webkit-transform:translateZ(0) rotateX(0);transform:translateZ(0) rotateX(0)}.picker-3d .picker-items{overflow:hidden;-webkit-perspective:700px;perspective:700px}.picker-3d .picker-item,.picker-3d .picker-slot,.picker-3d .picker-slot-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.picker-3d .picker-slot{overflow:visible}.picker-3d .picker-item{-webkit-transform-origin:center center;transform-origin:center center;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.mt-progress{position:relative;height:30px;line-height:30px}.mt-progress,.mt-progress>*{display:-webkit-box;display:-ms-flexbox;display:flex}.mt-progress [slot=start]{margin-right:5px}.mt-progress [slot=end]{margin-left:5px}.mt-progress-content{position:relative;-webkit-box-flex:1;-ms-flex:1;flex:1}.mt-progress-runway{left:0;right:0;background-color:#ebebeb;height:3px}.mt-progress-progress,.mt-progress-runway{position:absolute;-webkit-transform:translateY(-50%);transform:translateY(-50%);top:50%}.mt-progress-progress{display:block;background-color:#26a2ff;width:0}.mint-toast{position:fixed;max-width:80%;border-radius:5px;background:rgba(0,0,0,.7);color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;z-index:1000;-webkit-transition:opacity .3s linear;transition:opacity .3s linear}.mint-toast.is-placebottom{bottom:50px;left:50%;-webkit-transform:translate(-50%);transform:translate(-50%)}.mint-toast.is-placemiddle{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.mint-toast.is-placetop{top:50px;left:50%;-webkit-transform:translate(-50%);transform:translate(-50%)}.mint-toast-icon{display:block;text-align:center;font-size:56px}.mint-toast-text{font-size:14px;display:block;text-align:center}.mint-toast-pop-enter,.mint-toast-pop-leave-active{opacity:0}.mint-indicator{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.mint-indicator-wrapper{top:50%;left:50%;position:fixed;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);border-radius:5px;background:rgba(0,0,0,.7);color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center}.mint-indicator-text{display:block;color:#fff;text-align:center;margin-top:10px;font-size:16px}.mint-indicator-spin{display:inline-block;text-align:center}.mint-indicator-mask{top:0;left:0;position:fixed;width:100%;height:100%;opacity:0;background:transparent}.mint-indicator-enter,.mint-indicator-leave-active{opacity:0}.mint-msgbox{position:fixed;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);background-color:#fff;width:85%;border-radius:3px;font-size:16px;-webkit-user-select:none;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:.2s;transition:.2s}.mint-msgbox-header{padding:15px 0 0}.mint-msgbox-content{padding:10px 20px 15px;border-bottom:1px solid #ddd;min-height:36px;position:relative}.mint-msgbox-input{padding-top:15px}.mint-msgbox-input input{border:1px solid #dedede;border-radius:5px;padding:4px 5px;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none}.mint-msgbox-input input.invalid,.mint-msgbox-input input.invalid:focus{border-color:#ff4949}.mint-msgbox-errormsg{color:red;font-size:12px;min-height:18px;margin-top:2px}.mint-msgbox-title{text-align:center;padding-left:0;margin-bottom:0;font-size:16px;font-weight:700;color:#333}.mint-msgbox-message{color:#999;margin:0;text-align:center;line-height:36px}.mint-msgbox-btns{display:-webkit-box;display:-ms-flexbox;display:flex;height:40px;line-height:40px}.mint-msgbox-btn{line-height:35px;display:block;background-color:#fff;-webkit-box-flex:1;-ms-flex:1;flex:1;margin:0;border:0}.mint-msgbox-btn:focus{outline:none}.mint-msgbox-btn:active{background-color:#fff}.mint-msgbox-cancel{width:50%;border-right:1px solid #ddd}.mint-msgbox-cancel:active{color:#000}.mint-msgbox-confirm{color:#26a2ff;width:50%}.mint-msgbox-confirm:active{color:#26a2ff}.msgbox-bounce-enter{opacity:0;-webkit-transform:translate3d(-50%,-50%,0) scale(.7);transform:translate3d(-50%,-50%,0) scale(.7)}.msgbox-bounce-leave-active{opacity:0;-webkit-transform:translate3d(-50%,-50%,0) scale(.9);transform:translate3d(-50%,-50%,0) scale(.9)}.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;height:100%;opacity:.5;background:#000}.mint-datetime,.v-modal{width:100%}.mint-datetime .picker-item,.mint-datetime .picker-slot-wrapper{-webkit-backface-visibility:hidden;backface-visibility:hidden}.mint-datetime .picker-toolbar{border-bottom:1px solid #eaeaea}.mint-datetime-action{display:inline-block;width:50%;text-align:center;line-height:40px;font-size:16px;color:#26a2ff}.mint-datetime-cancel{float:left}.mint-datetime-confirm{float:right}.mint-indexlist{width:100%;position:relative;overflow:hidden}.mint-indexlist-content{margin:0;padding:0;overflow:auto}.mint-indexlist-nav{position:absolute;top:0;bottom:0;right:0;background-color:#fff;border-left:1px solid #ddd;text-align:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.mint-indexlist-nav,.mint-indexlist-navlist{margin:0;max-height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.mint-indexlist-navlist{padding:0;list-style:none}.mint-indexlist-navitem{padding:2px 6px;font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}.mint-indexlist-indicator{position:absolute;width:50px;height:50px;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-align:center;line-height:50px;background-color:rgba(0,0,0,.7);border-radius:5px;color:#fff;font-size:22px}.mint-indexsection{padding:0;margin:0}.mint-indexsection-index{margin:0;padding:10px;background-color:#fafafa}.mint-indexsection-index+ul{padding:0}.mint-palette-button{display:inline-block;position:relative;border-radius:50%;width:56px;height:56px;line-height:56px;text-align:center;-webkit-transition:-webkit-transform .1s ease-in-out;transition:-webkit-transform .1s ease-in-out;transition:transform .1s ease-in-out;transition:transform .1s ease-in-out,-webkit-transform .1s ease-in-out}.mint-main-button{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;background-color:#00f;font-size:2em}.mint-palette-button-active{-webkit-animation:mint-zoom .5s ease-in-out;animation:mint-zoom .5s ease-in-out}.mint-sub-button-container>*{position:absolute;top:15px;left:15px;width:25px;height:25px;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}@-webkit-keyframes mint-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}10%{-webkit-transform:scale(1.1);transform:scale(1.1)}30%{-webkit-transform:scale(.9);transform:scale(.9)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}70%{-webkit-transform:scale(.95);transform:scale(.95)}90%{-webkit-transform:scale(1.01);transform:scale(1.01)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes mint-zoom{0%{-webkit-transform:scale(1);transform:scale(1)}10%{-webkit-transform:scale(1.1);transform:scale(1.1)}30%{-webkit-transform:scale(.9);transform:scale(.9)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}70%{-webkit-transform:scale(.95);transform:scale(.95)}90%{-webkit-transform:scale(1.01);transform:scale(1.01)}to{-webkit-transform:scale(1);transform:scale(1)}}@font-face{font-family:mintui;src:url(data:application/x-font-ttf;base64,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)}.mintui{font-family:mintui!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-webkit-text-stroke-width:.2px;-moz-osx-font-smoothing:grayscale}.mintui-search:before{content:"\E604"}.mintui-more:before{content:"\E601"}.mintui-back:before{content:"\E600"}.mintui-field-error:before{content:"\E605"}.mintui-field-warning:before{content:"\E608"}.mintui-success:before{content:"\E602"}.mintui-field-success:before{content:"\E609"}
\ No newline at end of file
No preview for this file type
<svg width="264" height="88" viewBox="0 0 264 88" xmlns="http://www.w3.org/2000/svg"><title>default-skin 2</title><g fill="none" fill-rule="evenodd"><g><path d="M67.002 59.5v3.768c-6.307.84-9.184 5.75-10.002 9.732 2.22-2.83 5.564-5.098 10.002-5.098V71.5L73 65.585 67.002 59.5z" id="Shape" fill="#fff"/><g fill="#fff"><path d="M13 29v-5h2v3h3v2h-5zM13 15h5v2h-3v3h-2v-5zM31 15v5h-2v-3h-3v-2h5zM31 29h-5v-2h3v-3h2v5z" id="Shape"/></g><g fill="#fff"><path d="M62 24v5h-2v-3h-3v-2h5zM62 20h-5v-2h3v-3h2v5zM70 20v-5h2v3h3v2h-5zM70 24h5v2h-3v3h-2v-5z"/></g><path d="M20.586 66l-5.656-5.656 1.414-1.414L22 64.586l5.656-5.656 1.414 1.414L23.414 66l5.656 5.656-1.414 1.414L22 67.414l-5.656 5.656-1.414-1.414L20.586 66z" fill="#fff"/><path d="M111.785 65.03L110 63.5l3-3.5h-10v-2h10l-3-3.5 1.785-1.468L117 59l-5.215 6.03z" fill="#fff"/><path d="M152.215 65.03L154 63.5l-3-3.5h10v-2h-10l3-3.5-1.785-1.468L147 59l5.215 6.03z" fill="#fff"/><g><path id="Rectangle-11" fill="#fff" d="M160.957 28.543l-3.25-3.25-1.413 1.414 3.25 3.25z"/><path d="M152.5 27c3.038 0 5.5-2.462 5.5-5.5s-2.462-5.5-5.5-5.5-5.5 2.462-5.5 5.5 2.462 5.5 5.5 5.5z" id="Oval-1" stroke="#fff" stroke-width="1.5"/><path fill="#fff" d="M150 21h5v1h-5z"/></g><g><path d="M116.957 28.543l-1.414 1.414-3.25-3.25 1.414-1.414 3.25 3.25z" fill="#fff"/><path d="M108.5 27c3.038 0 5.5-2.462 5.5-5.5s-2.462-5.5-5.5-5.5-5.5 2.462-5.5 5.5 2.462 5.5 5.5 5.5z" stroke="#fff" stroke-width="1.5"/><path fill="#fff" d="M106 21h5v1h-5z"/><path fill="#fff" d="M109.043 19.008l-.085 5-1-.017.085-5z"/></g></g></g></svg>
\ No newline at end of file
<!DOCTYPE html><html lang=zh><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0" name=viewport><meta content=yes name=apple-mobile-web-app-capable><meta content=black name=apple-mobile-web-app-status-bar-style><meta content="telephone=no" name=format-detection><link rel=icon href=favicon.ico><script src=mimc-min_1_0_2.js></script><script src=base64.min.js></script><title>在线客服</title><style>body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td { margin:0; padding:0; }
body, button, input, select, textarea { font-family: "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif; }
h1, h2, h3, h4, h5, h6{ font-size:100%; }
address, cite, dfn, em, var { font-style:normal; }
code, kbd, pre, samp { font-family:couriernew, courier, monospace; }
small{ font-size:12px; }
ul, ol { list-style:none; }
a { text-decoration:none;
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
-webkit-user-select: none;
-moz-user-focus: none;
-moz-user-select: none;
}
a:hover { text-decoration:underline; }
sup { vertical-align:text-top; }
sub{ vertical-align:text-bottom; }
legend { color:#000; }
fieldset, img { border:0; }
button, input, select, textarea { font-size:100%; outline: none;}
table { border-collapse:collapse; border-spacing:0; }
input{
border:0;
outline: none;
}
html{
overflow: hidden;
height: 100vh;
}
body{
height: 100vh;
-webkit-overflow-scrolling:touch;
background-color: #f3f3f3;
}
.lx-load-box{
width: 2rem !important;
height: 2rem !important;
top:0 !important;
min-height: inherit!important;
left:0 !important; right:0 !important; bottom:0 !important; margin: auto !important;
}</style><link href=css/app.7e49cb6c.css rel=preload as=style><link href=css/chunk-vendors.946d2c9d.css rel=preload as=style><link href=js/app.9de5a83c.js rel=preload as=script><link href=js/chunk-vendors.5505216b.js rel=preload as=script><link href=css/chunk-vendors.946d2c9d.css rel=stylesheet><link href=css/app.7e49cb6c.css rel=stylesheet></head><body><noscript><strong>We're sorry but m doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=js/chunk-vendors.5505216b.js></script><script src=js/app.9de5a83c.js></script></body></html>
\ No newline at end of file
(function(e){function t(t){for(var i,o,c=t[0],r=t[1],l=t[2],d=0,h=[];d<c.length;d++)o=c[d],a[o]&&h.push(a[o][0]),a[o]=0;for(i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i]);u&&u(t);while(h.length)h.shift()();return n.push.apply(n,l||[]),s()}function s(){for(var e,t=0;t<n.length;t++){for(var s=n[t],i=!0,c=1;c<s.length;c++){var r=s[c];0!==a[r]&&(i=!1)}i&&(n.splice(t--,1),e=o(o.s=s[0]))}return e}var i={},a={app:0},n=[];function o(t){if(i[t])return i[t].exports;var s=i[t]={i:t,l:!1,exports:{}};return e[t].call(s.exports,s,s.exports,o),s.l=!0,s.exports}o.m=e,o.c=i,o.d=function(e,t,s){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:s})},o.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var s=Object.create(null);if(o.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)o.d(s,i,function(t){return e[t]}.bind(null,i));return s},o.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="";var c=window["webpackJsonp"]=window["webpackJsonp"]||[],r=c.push.bind(c);c.push=t,c=c.slice();for(var l=0;l<c.length;l++)t(c[l]);var u=r;n.push([0,"chunk-vendors"]),s()})({0:function(e,t,s){e.exports=s("56d7")},"21fb":function(e,t,s){e.exports=s.p+"img/expression.73c98a16.png"},"42e0":function(e,t){e.exports="data:image/png;base64,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"},4678:function(e,t,s){var i={"./af":"2bfb","./af.js":"2bfb","./ar":"8e73","./ar-dz":"a356","./ar-dz.js":"a356","./ar-kw":"423e","./ar-kw.js":"423e","./ar-ly":"1cfd","./ar-ly.js":"1cfd","./ar-ma":"0a84","./ar-ma.js":"0a84","./ar-sa":"8230","./ar-sa.js":"8230","./ar-tn":"6d83","./ar-tn.js":"6d83","./ar.js":"8e73","./az":"485c","./az.js":"485c","./be":"1fc1","./be.js":"1fc1","./bg":"84aa","./bg.js":"84aa","./bm":"a7fa","./bm.js":"a7fa","./bn":"9043","./bn.js":"9043","./bo":"d26a","./bo.js":"d26a","./br":"6887","./br.js":"6887","./bs":"2554","./bs.js":"2554","./ca":"d716","./ca.js":"d716","./cs":"3c0d","./cs.js":"3c0d","./cv":"03ec","./cv.js":"03ec","./cy":"9797","./cy.js":"9797","./da":"0f14","./da.js":"0f14","./de":"b469","./de-at":"b3eb","./de-at.js":"b3eb","./de-ch":"bb71","./de-ch.js":"bb71","./de.js":"b469","./dv":"598a","./dv.js":"598a","./el":"8d47","./el.js":"8d47","./en-SG":"cdab","./en-SG.js":"cdab","./en-au":"0e6b","./en-au.js":"0e6b","./en-ca":"3886","./en-ca.js":"3886","./en-gb":"39a6","./en-gb.js":"39a6","./en-ie":"e1d3","./en-ie.js":"e1d3","./en-il":"7333","./en-il.js":"7333","./en-nz":"6f50","./en-nz.js":"6f50","./eo":"65db","./eo.js":"65db","./es":"898b","./es-do":"0a3c","./es-do.js":"0a3c","./es-us":"55c9","./es-us.js":"55c9","./es.js":"898b","./et":"ec18","./et.js":"ec18","./eu":"0ff2","./eu.js":"0ff2","./fa":"8df4","./fa.js":"8df4","./fi":"81e9","./fi.js":"81e9","./fo":"0721","./fo.js":"0721","./fr":"9f26","./fr-ca":"d9f8","./fr-ca.js":"d9f8","./fr-ch":"0e49","./fr-ch.js":"0e49","./fr.js":"9f26","./fy":"7118","./fy.js":"7118","./ga":"5120","./ga.js":"5120","./gd":"f6b4","./gd.js":"f6b4","./gl":"8840","./gl.js":"8840","./gom-latn":"0caa","./gom-latn.js":"0caa","./gu":"e0c5","./gu.js":"e0c5","./he":"c7aa","./he.js":"c7aa","./hi":"dc4d","./hi.js":"dc4d","./hr":"4ba9","./hr.js":"4ba9","./hu":"5b14","./hu.js":"5b14","./hy-am":"d6b6","./hy-am.js":"d6b6","./id":"5038","./id.js":"5038","./is":"0558","./is.js":"0558","./it":"6e98","./it-ch":"6f12","./it-ch.js":"6f12","./it.js":"6e98","./ja":"079e","./ja.js":"079e","./jv":"b540","./jv.js":"b540","./ka":"201b","./ka.js":"201b","./kk":"6d79","./kk.js":"6d79","./km":"e81d","./km.js":"e81d","./kn":"3e92","./kn.js":"3e92","./ko":"22f8","./ko.js":"22f8","./ku":"2421","./ku.js":"2421","./ky":"9609","./ky.js":"9609","./lb":"440c","./lb.js":"440c","./lo":"b29d","./lo.js":"b29d","./lt":"26f9","./lt.js":"26f9","./lv":"b97c","./lv.js":"b97c","./me":"293c","./me.js":"293c","./mi":"688b","./mi.js":"688b","./mk":"6909","./mk.js":"6909","./ml":"02fb","./ml.js":"02fb","./mn":"958b","./mn.js":"958b","./mr":"39bd","./mr.js":"39bd","./ms":"ebe4","./ms-my":"6403","./ms-my.js":"6403","./ms.js":"ebe4","./mt":"1b45","./mt.js":"1b45","./my":"8689","./my.js":"8689","./nb":"6ce3","./nb.js":"6ce3","./ne":"3a39","./ne.js":"3a39","./nl":"facd","./nl-be":"db29","./nl-be.js":"db29","./nl.js":"facd","./nn":"b84c","./nn.js":"b84c","./pa-in":"f3ff","./pa-in.js":"f3ff","./pl":"8d57","./pl.js":"8d57","./pt":"f260","./pt-br":"d2d4","./pt-br.js":"d2d4","./pt.js":"f260","./ro":"972c","./ro.js":"972c","./ru":"957c","./ru.js":"957c","./sd":"6784","./sd.js":"6784","./se":"ffff","./se.js":"ffff","./si":"eda5","./si.js":"eda5","./sk":"7be6","./sk.js":"7be6","./sl":"8155","./sl.js":"8155","./sq":"c8f3","./sq.js":"c8f3","./sr":"cf1e","./sr-cyrl":"13e9","./sr-cyrl.js":"13e9","./sr.js":"cf1e","./ss":"52bd","./ss.js":"52bd","./sv":"5fbd","./sv.js":"5fbd","./sw":"74dc","./sw.js":"74dc","./ta":"3de5","./ta.js":"3de5","./te":"5cbb","./te.js":"5cbb","./tet":"576c","./tet.js":"576c","./tg":"3b1b","./tg.js":"3b1b","./th":"10e8","./th.js":"10e8","./tl-ph":"0f38","./tl-ph.js":"0f38","./tlh":"cf75","./tlh.js":"cf75","./tr":"0e81","./tr.js":"0e81","./tzl":"cf51","./tzl.js":"cf51","./tzm":"c109","./tzm-latn":"b53d","./tzm-latn.js":"b53d","./tzm.js":"c109","./ug-cn":"6117","./ug-cn.js":"6117","./uk":"ada2","./uk.js":"ada2","./ur":"5294","./ur.js":"5294","./uz":"2e8c","./uz-latn":"010e","./uz-latn.js":"010e","./uz.js":"2e8c","./vi":"2921","./vi.js":"2921","./x-pseudo":"fd7e","./x-pseudo.js":"fd7e","./yo":"7f33","./yo.js":"7f33","./zh-cn":"5c3a","./zh-cn.js":"5c3a","./zh-hk":"49ab","./zh-hk.js":"49ab","./zh-tw":"90ea","./zh-tw.js":"90ea"};function a(e){var t=n(e);return s(t)}function n(e){var t=i[e];if(!(t+1)){var s=new Error("Cannot find module '"+e+"'");throw s.code="MODULE_NOT_FOUND",s}return t}a.keys=function(){return Object.keys(i)},a.resolve=n,e.exports=a,a.id="4678"},"56d7":function(e,t,s){"use strict";s.r(t);s("cadf"),s("551c"),s("f751"),s("097d");var i=s("2b0e"),a=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"mini-im-container",class:{"mini-im-pc-container":!e.isMobile,"mini-im-container-no-pto":!e.isShowHeader}},[i("span",{directives:[{name:"show",rawName:"v-show",value:e.isMobile&&e.isInputPongIng&&!e.isShowHeader,expression:"isMobile && (isInputPongIng && !isShowHeader)"}],staticClass:"input-ing"},[e._v(e._s(e.inputPongIngString))]),e.isShowHeader?i("mt-header",{attrs:{fixed:"",title:e.isInputPongIng?e.inputPongIngString:"在线客服"}},[i("div",{attrs:{slot:"left"},slot:"left"},[i("mt-button",{attrs:{icon:"back"},on:{click:e.back}})],1),i("mt-button",{attrs:{slot:"right"},on:{click:e.headRightBtn},slot:"right"},[e.isArtificial?i("span",[e._v("结束会话")]):i("img",{attrs:{title:"人工客服",src:"http://qiniu.cmp520.com/kefu_icon_2000.png",alt:""}})])],1):e._e(),e.isMobile?e._e():i("div",{staticClass:"mini-im-pc-header"},[e._m(0),i("span",{directives:[{name:"show",rawName:"v-show",value:e.isInputPongIng,expression:"isInputPongIng"}]},[e._v(e._s(e.inputPongIngString))]),i("div",{staticClass:"right"},[e.isArtificial?e._e():i("img",{attrs:{title:"人工客服",src:"http://qiniu.cmp520.com/kefu_icon_2000.png",alt:""},on:{click:e.headRightBtn}}),e.isArtificial?i("span",{on:{click:e.headRightBtn}},[e._v("结束会话")]):e._e(),i("div",{staticClass:"close-btn",on:{click:e.clickCloseWindow}},[e._v("ㄨ")])])]),i("div",{ref:"miniImBody",staticClass:"mini-im-body"},[i("ul",{staticClass:"mini-im-chat-list"},[e.isLoadMorLoading?i("li",{staticClass:"message-loading"},[i("mt-spinner",{attrs:{color:"#26a2ff",size:20,type:"triple-bounce"}})],1):e._e(),e._l(e.viewMessage,function(t,s){return i("li",{key:s},[t.isShowDate?[i("div",{staticClass:"mini-im-chat-item"},[i("div",{staticClass:"chat-content"},[i("div",{staticClass:"chat-body"},[[i("div",{staticClass:"system"},[i("div",{staticClass:"content"},[i("span",[e._v(e._s(e.$formatFromNowDate(t.timestamp,"YYYY年MM月DD日 HH:mm")))])])])]],2)])])]:e._e(),i("div",{staticClass:"mini-im-chat-item",class:{self:t.from_account==e.userInfo.id}},[e.isShowInfo(t.biz_type)?i("div",{staticClass:"chat-avatar"},[i("img",{attrs:{src:t.avatar}})]):e._e(),i("div",{staticClass:"chat-content"},[i("div",{staticClass:"chat-body"},[t.isShowCancel?[t.from_account==e.userInfo.id&&e.isShowInfo(t.biz_type)?i("span",{staticClass:"cancel-btn",on:{click:function(){return e.cancelMessage(t.key)}}},[e._v("撤回")]):e._e()]:e._e(),"text"==t.biz_type||"welcome"==t.biz_type?[i("div",{staticClass:"text"},[i("span",{domProps:{innerHTML:e._s(t.payload.replace(/\n/gi,"<br />"))}})])]:e._e(),"photo"==t.biz_type?[i("div",{staticClass:"photo"},[t.percent&&100!=t.percent?i("span",[e._v("上传中"+e._s(t.percent)+"%")]):e._e(),i("img",{attrs:{src:t.payload,preview:"1"}})])]:e._e(),"knowledge"==t.biz_type?[i("div",{staticClass:"knowledge"},[i("div",{staticClass:"title"},[e._v("以下是您关心的相关问题?")]),e._l(JSON.parse(t.payload),function(t,s){return i("a",{key:s,attrs:{href:"javascript:void(0);"},on:{click:function(){return e.sendKnowledgeMessage(t.title)}}},[i("span",[e._v("• "+e._s(t.title))])])}),i("a",{on:{click:e.headRightBtn}},[e._v("• 以上都不是?我要找人工")])],2)]:e._e(),"end"==t.biz_type?[e._m(1,!0)]:e._e(),"timeout"==t.biz_type?[e._m(2,!0)]:e._e(),"system"==t.biz_type?[i("div",{staticClass:"system"},[i("div",{staticClass:"content"},[i("span",{domProps:{innerHTML:e._s(t.payload)}})])])]:e._e(),"cancel"==t.biz_type?[i("div",{staticClass:"system"},[i("div",{staticClass:"content"},[t.from_account==e.userInfo.id?i("span",[e._v("您撤回了一条消息")]):i("span",[e._v("对方撤回了一条消息")])])])]:e._e(),"transfer"==t.biz_type?[i("div",{staticClass:"system"},[i("div",{staticClass:"content"},[i("span",[e._v("已为您转接"+e._s(t.transfer_account)+"号客服")])])])]:e._e()],2)])])],2)})],2),e.isNotNetWork?i("div",{staticClass:"no-network"},[i("img",{attrs:{src:s("42e0"),alt:""}}),i("span",[e._v("网络连接已断开,请重新加载尝试~")]),i("button",{on:{click:e.resetLoad}},[e._v("重新加载")])]):e._e()]),e.isLoading?i("div",{staticClass:"mini-im-loading"},[i("mt-spinner",{attrs:{type:"triple-bounce",color:"#26a2ff"}})],1):e._e(),i("div",{directives:[{name:"show",rawName:"v-show",value:e.showEmoji,expression:"showEmoji"}],staticClass:"mini-im-emoji"},[i("div",{staticClass:"mini-im-emoji-content"},e._l(e.emojis,function(t,s){return i("span",{key:s,on:{click:function(){return e.clickEmoji(t)}}},[e._v(e._s(t))])}),0)]),i("div",{directives:[{name:"show",rawName:"v-show",value:e.handshakeKeywordList.length>0,expression:"handshakeKeywordList.length > 0"}],staticClass:"mini-im-knowledge"},[i("div",{staticClass:"mask",on:{click:function(t){e.handshakeKeywordList=[]}}}),i("span",[e._v("以下是您关心的相关问题?")]),i("ul",e._l(e.handshakeKeywordList,function(t,s){return i("li",{key:s,staticClass:"sendKnowledgeMessage",attrs:{data:t.title},on:{click:function(s){!e.isIOS&&e.sendKnowledgeMessage(t.title)}}},[e._v("• "+e._s(t.title))])}),0)]),i("div",{staticClass:"mini-im-tabbar-input"},[i("span",{staticClass:"photo-btn"},[i("img",{attrs:{src:s("bed0"),alt:""}}),i("input",{attrs:{onClick:"this.value = null",type:"file",accept:"image/*"},on:{change:e.changeFile}})]),i("span",{staticClass:"expression-btn",on:{click:function(t){e.showEmoji=!e.showEmoji}}},[i("img",{attrs:{src:s("21fb"),alt:""}})]),i("span",{directives:[{name:"show",rawName:"v-show",value:e.isMobile&&!e.isShowHeader,expression:"isMobile && !isShowHeader"}],staticClass:"serverci",class:{on:!e.isArtificial},on:{click:e.headRightBtn}},[e.isArtificial?i("span",[e._v("结束会话")]):i("img",{attrs:{title:"人工客服",src:"http://qiniu.cmp520.com/bfbfbf.png",alt:""}})]),i("textarea",{directives:[{name:"model",rawName:"v-model",value:e.chatValue,expression:"chatValue"}],ref:"textarea",staticStyle:{"vertical-align":"top",outline:"none"},attrs:{maxlength:"200",placeholder:"请用一句话描述您的问题~"},domProps:{value:e.chatValue},on:{keyup:[function(t){return t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:e.keyUpEvent(t)},function(t){return!t.type.indexOf("key")&&13!==t.keyCode&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:t.shiftKey?e.enterShift(t):null},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:e.enterSendMessage(t)}],submit:e.sendTextMessage,focus:e.chatInputFocus,blur:e.chatInputBlur,input:function(t){t.target.composing||(e.chatValue=t.target.value)}}}),i("button",{ref:"sendButton",staticClass:"mini-input-send",attrs:{type:"button"}},[e._v("发送")])])],1)},n=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"title"},[s("img",{attrs:{src:"http://qiniu.cmp520.com/kefu_icon_2000.png",alt:""}}),s("span",[e._v("在线客服")])])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"system"},[s("div",{staticClass:"content"},[s("span",[e._v("本次会话结束,感谢您的耐心与支持!")])])])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"system"},[s("div",{staticClass:"content"},[s("span",[e._v("会话超时,系统结束了本次会话")])])])}],o=(s("7f7f"),s("28a5"),s("386d"),s("4917"),s("bc3a")),c=s.n(o),r=s("76a0"),l=s.n(r),u=s("cea2"),d=s("1fba"),h=s("bb7f"),m={name:"app",data:function(){return{messages:[],isLoading:!0,isNotNetWork:!1,userLocal:"",isFirstGetMessage:!0,platform:5,uid:null,chatValue:"",emojis:h.emojiData,showEmoji:!1,userInfo:{},userAccount:null,companyInfo:null,uploadToken:null,isArtificial:!1,artificialAccount:null,robotInfo:null,robotAccount:null,isLoadMorEnd:!1,isUserSendLongTimeSystemMessage:!1,isAdminSendLongTimeSystemMessage:!1,isInputPongIng:!1,isLoadMorLoading:!1,isSendPong:!1,qiniuObservable:null,inputPongIngString:"对方正在输入...",scroll:null,isShowHeader:!0,isMobile:!0,handshakeKeywordList:[],searchHandshakeTimer:null}},created:function(){this.getLocal(),this.run()},computed:{account:function(){return this.isArtificial?this.artificialAccount:this.robotAccount},isIOS:function(){return!!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)},isSafari:function(){return navigator.userAgent.indexOf("Safari")>-1&&navigator.userAgent.indexOf("Chrome")<1},isJudgeBigScreen:function(){return this.$judgeBigScreen()},viewMessage:function(){for(var e=this.messages,t=0;t<e.length;t++)0==t&&(e[t].isShowDate=!0),t<e.length-1&&(e[t+1].isShowDate=!1,e[t+1].timestamp-120>e[t].timestamp&&(e[t+1].isShowDate=!0));return e}},mounted:function(){var e=this,t=this.queryToJson(location.search);t&&t.c&&localStorage.clear();var s=this.queryToJson(localStorage.getItem("urlQuery"));s&&(t=Object.assign({},s,t),t.u=s.u),t&&("0"==t.h&&(this.isShowHeader=!1),"0"==t.m&&(this.isMobile=!1,this.isShowHeader=!1),t.u&&(this.userAccount=parseInt(t.u)),t.p&&(this.platform=parseInt(t.p)),t.uid&&(this.uid=parseInt(t.uid)),"0"==t.r?(this.isArtificial=!0,this.artificialAccount=parseInt(t.a)):this.robotAccount=parseInt(t.a));var i=localStorage.getItem("isArtificial_"+this.userAccount),a=localStorage.getItem("artificialAccount_"+this.userAccount);"true"==i&&(this.isArtificial=!0,this.artificialAccount=parseInt(a)),setTimeout(function(){e.isLoading=!1,e.scroll=new d["a"](e.$refs.miniImBody,{click:!0,tab:!0,scrollY:!0,scrollbar:!0,bounceTime:400,preventDefaultException:{className:/(^|\s)text(\s|$)/},mouseWheel:!0}),e.scroll.on("touchEnd",function(t){t.y>30&&e.loadMorData()}),e.addSendButtonTouchEventListener(),e.createLinkQuery(),e.scrollIntoBottom()},500),this.onCheckIsOutSession()},beforeDestroy:function(){this.toggleWindow(this.userAccount,0)},methods:{run:function(){var e=this;this.getAllhttp(),this.upLastActivity(),this.$mimcInstance.addEventListener("receiveP2PMsg",this.receiveP2PMsg),this.$mimcInstance.addEventListener("disconnect",function(){console.log("链接断开!"),e.isNotNetWork=!0}),this.$mimcInstance.addEventListener("statusChange",function(e,t,s,i){console.log("状态发生变化",e,t,s,i)}),this.$mimcInstance.addEventListener("serverAck",function(t,s,i,a){console.log("发送消息服务器ack",t,s,i,a),localStorage.setItem("userLastCallBackMessageTime_"+e.userAccount,Date.now()),e.isUserSendLongTimeSystemMessage=!1}),this.onCheckIsloogTimeNotCallBack()},getLocal:function(){var e=this,t="";c.a.get("https://restapi.amap.com/v3/ip?key="+t).then(function(t){t.data.province&&(console.log(t.data.province+t.data.city),e.userLocal=t.data.province+t.data.city)}).catch(function(e){console.error(e)})},initMimc:function(){var e=this,t=this.$mimcInstance,s=t.getLocalCacheUser(this.userAccount);this.userInfo=s;var i=this.userAccount?this.userAccount:s?s.id:0;t.init({type:0,address:this.userLocal,uid:this.uid,platform:this.platform,account_id:i},function(s){s?(e.userInfo=s,e.userAccount=s.id,e.cleanRead(s.id),e.toggleWindow(s.id,1),t.login(function(){setTimeout(function(){e.messages=e.getLocalMessages(),e.isLoading=!1,e.artificialAccount||(console.log("握手消息"),t.sendMessage("handshake",e.robotAccount,"")),e.scrollIntoBottom()},500)})):setTimeout(function(){return e.initMimc()},1e3)}),this.onServciceLastMessageTimeNotCallBack()},resetLoad:function(){window.location.reload()},enterShift:function(e){this.isMobile||"Enter"!=e.code&&(this.chatValue=this.chatValue+"\n")},addSendButtonTouchEventListener:function(){var e=this;this.isIOS?document.addEventListener("touchstart",function(t){"mini-input-send"==t.target.getAttribute("class")&&e.sendTextMessage(),"sendKnowledgeMessage"==t.target.getAttribute("class")&&(console.log("监听发送按钮触摸事件",t.target.getAttribute("data")),e.sendKnowledgeMessage(t.target.getAttribute("data")))},!1):this.$refs.sendButton.addEventListener("click",this.sendTextMessage,!1)},cleanRead:function(e){c.a.get("/public/clean_read/"+e)},toggleWindow:function(e,t){c.a.put("/public/window/"+e,{window:t})},queryToJson:function(e){if(!e||""==e)return null;var t=e.substr(1,e.length).split("&");if(!t)return null;for(var s={},i=0;i<t.length;i++){var a=t[i].split("=");s[a[0]]=a[1]}return s},back:function(){history.go(-1)},isShowInfo:function(e){return-1==["end","transfer","cancel","timeout","system"].indexOf(e)},upLastActivity:function(){var e=this;this.onCheckIsOutSession();var t=this.$mimcInstance.getLocalCacheUser(this.userAccount);t&&c.a.get("/public/activity/"+t.id),this.isArtificial&&localStorage.setItem("artificialTime_"+this.userAccount,Date.now()),setTimeout(function(){return e.upLastActivity()},6e4)},onCheckIsOutSession:function(){var e=localStorage.getItem("artificialTime_"+this.userAccount);e&&(e=parseInt(e),Date.now()>e+6e5&&(this.isArtificial=!1,this.artificialAccount=null))},loadMorData:function(){var e=this;this.isLoadMorLoading||this.isLoadMorEnd||(this.isLoadMorLoading=!0,setTimeout(function(){var t=e.getLocalMessages();0==t.length&&(e.isLoadMorEnd=!0),e.messages=t.concat(e.messages),e.isLoadMorLoading=!1},1e3))},localAdmin:function(e){var t=localStorage.getItem("admin_"+e);return t?JSON.parse(t):null},localRobot:function(e){var t=localStorage.getItem("robot_"+e);return t?JSON.parse(t):null},clickEmoji:function(e){this.showEmoji=!1,this.chatValue=this.chatValue+e,this.scrollIntoBottom()},changeFile:function(e){var t=e.target,s=new FileReader,i=t.files[0];s.readAsDataURL(i);var a,n=this,o=parseInt(1e4*Math.random()*(new Date).getTime())+i.name.substr(i.name.lastIndexOf("."));s.onload=function(){var e=function(){a.percent=0,n.qiniuObservable=null,n.removeMessage(n.userInfo.id,a.key),Object(r["Toast"])({message:"上传失败,请重新上传!"});var e=n.$mimcInstance,t=e.createLocalMessage("system",n.account,"您刚刚上传的图片失败了,请重新上传!");n.messages.push(n.handlerMessage(t)),n.scrollIntoBottom()},t=function(e){n.qiniuObservable=null,a.percent=100;var t=n.uploadToken.host+"/"+e;n.$mimcInstance.sendMessage("photo",n.account,t)};a=n.$mimcInstance.createLocalMessage("photo",n.account,this.result),a["percent"]=0,a.isShowCancel=!0,setTimeout(function(){a.isShowCancel=!1},1e4),n.messages.push(n.handlerMessage(a));var s=Object.assign({},a);if(s.payload=n.uploadToken.host+"/"+o,n.messagesPushMemoryAndLocalStoreSave(s,!1),n.$previewRefresh(),n.scrollIntoBottom(),1==n.uploadToken.mode){var l=new FormData;l.append("file",i),l.append("file_name",o),c.a.post("/public/upload",l).then(function(e){t(e.data.data)}).catch(function(){e()})}else if(2==n.uploadToken.mode){var d={quality:.92,noCompressIfLarger:!0,maxWidth:1500};u["compressImage"](i,d).then(function(s){var i=u["upload"](s.dist,o,n.uploadToken.secret,{},{mimeType:null});n.qiniuObservable=i.subscribe({next:function(e){a.percent=Math.ceil(e.total.percent),e.total.size<1&&(n.qiniuObservable.unsubscribe(),n.cancelMessage(a.key),Object(r["Toast"])({message:"上传失败,该图片已损坏!"}))},error:function(){e()},complete:function(e){t(e.key)}})})}}},scrollIntoBottom:function(){var e=this;setTimeout(function(){var t=e.$refs.miniImBody.querySelectorAll("li");e.scroll&&e.scroll.scrollToElement(t[t.length-1])},50)},chatInputFocus:function(){this.scrollIntoBottom(),this.showEmoji=!1},chatInputBlur:function(){window.chatInputInterval=null,window.scroll(0,0)},getRobot:function(){var e=this;return c.a.get("/public/robot/1").then(function(t){var s=t.data.data;localStorage.setItem("robot_"+s.id,JSON.stringify(s)),e.robotAccount=s.id,e.robotInfo=s}).catch(function(e){Object(r["Toast"])({message:e.response.data.message})})},getUploadSecret:function(){var e=this;return c.a.get("/public/secret").then(function(t){e.uploadToken=t.data.data})},getCompanyInfo:function(){var e=this;return c.a.get("/public/company").then(function(t){e.companyInfo=t.data.data}).catch(function(e){Object(r["Toast"])({message:e.response.data.message})})},getAllhttp:function(){var e=this;c.a.all([this.getRobot(),this.getCompanyInfo(),this.getUploadSecret()]).then(c.a.spread(function(){e.initMimc()})).catch(function(){return setTimeout(function(){return e.getAllhttp()},1e3)})},receiveP2PMsg:function(e){if("transfer"==e.biz_type){this.isArtificial=!0,this.artificialAccount=e.transfer_account;var t=this.$mimcInstance;t.sendMessage("handshake",e.transfer_account,"");var s=JSON.parse(e.payload);localStorage.setItem("admin_"+s.id,JSON.stringify(s)),localStorage.setItem("adminLastCallBackMessageTime_"+s.id,Date.now()),this.isAdminSendLongTimeSystemMessage=!1}if(!this.isArtificial||"text"!=e.biz_type&&"photo"!=e.biz_type&&"cancel"!=e.biz_type||(localStorage.setItem("adminLastCallBackMessageTime_"+this.account,Date.now()),this.isAdminSendLongTimeSystemMessage=!1),"cancel"==e.biz_type&&this.removeMessage(e.from_account,e.payload),"end"!=e.biz_type&&"timeout"!=e.biz_type||(this.isArtificial=!1,this.artificialAccount=null),"pong"!=e.biz_type){if("search_knowledge"==e.biz_type)return this.handshakeKeywordList=[],void(""!=e.payload&&(this.handshakeKeywordList=JSON.parse(e.payload)));this.messagesPushMemoryAndLocalStoreSave(e),this.scrollIntoBottom(),this.$previewRefresh(),window.parent.postMessage({newMessage:1},"*");try{"transfer"==e.biz_type&&(e.payload="客服转接"),"cancel"==e.biz_type&&(e.payload="对方撤回了一条消息"),"end"!=e.biz_type&&"timeout"!=e.biz_type||(e.payload="会话超时")}catch(i){console.log(i)}}else this.inputPongIng()},inputPongIng:function(){var e=this;this.isInputPongIng||(this.isInputPongIng=!0,setTimeout(function(){e.inputPongIngString="对方正在输入."},500),setTimeout(function(){e.inputPongIngString="对方正在输入.."},1500),setTimeout(function(){e.inputPongIngString="对方正在输入...",e.isInputPongIng=!1},3e3))},enterSendMessage:function(){this.isMobile||(this.sendTextMessage(),this.$refs.textarea.focus())},sendTextMessage:function(){if(0!=this.userInfo.online){var e=this.chatValue.trim();if(""!=e){var t=this.$mimcInstance,s=t.sendMessage("text",this.account,e);s.isShowCancel=!0,setTimeout(function(){return s.isShowCancel=!1},1e4),this.messagesPushMemoryAndLocalStoreSave(s),this.chatValue="",this.handshakeKeywordList=[]}}else Object(r["Toast"])({message:"您貌似掉线了"})},cancelMessage:function(e){var t=this.$mimcInstance,s=t.sendMessage("cancel",this.account,e);this.messagesPushMemoryAndLocalStoreSave(s),this.removeMessage(this.userInfo.id,e),this.qiniuObservable&&this.qiniuObservable.unsubscribe()},sendKnowledgeMessage:function(e){this.handshakeKeywordList=[];var t=this.$mimcInstance,s=t.sendMessage("text",this.account,e);this.messagesPushMemoryAndLocalStoreSave(s),this.chatValue=""},headRightBtn:function(){var e=this;if(!window.isClickHeadRightBtn){window.isClickHeadRightBtn=!0;var t=this.$mimcInstance;if(this.isArtificial)return r["MessageBox"].confirm("您确定关闭此次会话吗?","温馨提示! ").then(function(){var s=t.sendMessage("end",e.account,"");e.messagesPushMemoryAndLocalStoreSave(s),e.isArtificial=!1,e.artificialAccount=null}),void setTimeout(function(){return window.isClickHeadRightBtn=!1},3e3);var s=t.sendMessage("text",this.account,"人工");this.messagesPushMemoryAndLocalStoreSave(s),setTimeout(function(){return window.isClickHeadRightBtn=!1},3e3)}},messagesPushMemoryAndLocalStoreSave:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if("pong"!=e.biz_type&&"handshake"!=e.biz_type&&"into"!=e.biz_type&&(t&&this.messages.push(this.handlerMessage(e)),"welcome"!=e.biz_type)){var s=[],i=localStorage.getItem("miniImAppMessageRecord_"+this.userInfo.id);i&&(s=JSON.parse(i)),s.push(this.handlerMessage(e)),localStorage.setItem("miniImAppMessageRecord_"+this.userInfo.id,JSON.stringify(s)),this.scrollIntoBottom()}},handlerMessage:function(e){var t="data:image/png;base64,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",s=this.localAdmin(e.from_account),i=this.localRobot(e.from_account);return s&&e.from_account==s.id?(e.nickname=s.nickname,e.avatar=""==s.avatar?t:s.avatar):i&&e.from_account==i.id?(e.nickname=i.nickname,e.avatar=""==i.avatar?t:i.avatar):e.from_account==this.userInfo.id&&(e.nickname=this.userInfo.nickname,-1!=this.userInfo.nickname.indexOf(this.userInfo.id)&&(e.nickname="我"),e.avatar=""==this.userInfo.avatar?t:this.userInfo.avatar),e},getLocalMessages:function(){var e=15,t=[],s=localStorage.getItem("miniImAppMessageRecord_"+this.userInfo.id);if(s){var i=JSON.parse(s);if(this.isFirstGetMessage)this.isFirstGetMessage=!1,t=i.slice(-e,i.length);else{for(var a=-1,n=i.length-1;n>=0;n--)if(i[n].timestamp==this.messages[0].timestamp){a=n;break}if(-1==a)return[];t=i.slice(-(i.length-a+e),a)}}for(var o=0;o<t.length;o++){var c=t[o];c.isShowCancel=!1,t[o]=this.handlerMessage(c)}return t},keyUpEvent:function(){var e=this;this.isArtificial&&(this.isSendPong||(this.isSendPong=!0,setTimeout(function(){return e.isSendPong=!1},100),this.$mimcInstance.sendMessage("pong",this.account,this.chatValue)))},removeMessage:function(e,t){for(var s=[],i=0;i<this.messages.length;i++)this.messages[i].key==t&&this.messages[i].from_account==e||s.push(this.messages[i]);var a=localStorage.getItem("miniImAppMessageRecord_"+this.userInfo.id);if(a){for(var n=JSON.parse(a),o=[],c=0;c<n.length;c++){var r=n[c];r.key==t&&r.from_account==e||"welcome"!=r.biz_type&&"handshake"!=r.biz_type&&"into"!=r.biz_type&&o.push(n[c])}localStorage.setItem("miniImAppMessageRecord_"+this.userInfo.id,JSON.stringify(o))}this.messages=s},createLinkQuery:function(){var e=this.isArtificial?0:1,t=0==e?this.artificialAccount:this.robotAccount,s=this.isMobile?1:0,i=this.isShowHeader?1:0,a=this.platform?this.platform:1,n=this.userAccount?"&u="+this.userAccount:"",o=this.uid?"&uid="+this.uid:"",c="?h="+i+"&m="+s+"&p="+a+"&r="+e+"&a="+t+n+o;history.replaceState(null,null,c),null!=this.userAccount&&"null"!=this.userAccount&&""!=this.userAccount&&localStorage.setItem("urlQuery",c)},clickCloseWindow:function(){window.parent.postMessage({clickCloseWindow:!0},"*")},onCheckIsloogTimeNotCallBack:function(){var e=this,t=localStorage.getItem("userLastCallBackMessageTime_"+this.userAccount)||Date.now();if(this.isArtificial&&!this.isUserSendLongTimeSystemMessage&&Date.now()-t>=3e5){var s=this.$mimcInstance,i=s.createLocalMessage("system",this.account,"您已超过5分钟未回复消息,系统3分钟后将结束对话");this.messages.push(this.handlerMessage(i)),this.isUserSendLongTimeSystemMessage=!0,this.scrollIntoBottom()}setTimeout(function(){return e.onCheckIsloogTimeNotCallBack()},1e4)},onServciceLastMessageTimeNotCallBack:function(){var e=this;if(this.robotInfo){var t=this.robotInfo.loog_time_wait_text,s=localStorage.getItem("adminLastCallBackMessageTime_"+this.account)||Date.now();if(this.isArtificial&&!this.isAdminSendLongTimeSystemMessage&&""!=t.trim()&&Date.now()-s>=12e4){var i=this.$mimcInstance,a=i.createLocalMessage("text",this.account,t);a.from_account=this.robotAccount,this.messages.push(this.handlerMessage(a)),this.isAdminSendLongTimeSystemMessage=!0,this.scrollIntoBottom()}setTimeout(function(){return e.onServciceLastMessageTimeNotCallBack()},1e4)}},onSearchHandshake:function(){var e=this;if(this.chatValue&&!this.isArtificial){this.searchHandshakeTimer&&clearTimeout(this.searchHandshakeTimer);var t=this.$mimcInstance;this.searchHandshakeTimer=setTimeout(function(){t.sendMessage("search_knowledge",e.robotAccount,e.chatValue),e.searchHandshakeTimer=null},500)}else this.handshakeKeywordList=[]}},watch:{messages:function(){var e=this;setTimeout(function(){e.scroll&&e.scroll.refresh(),e.$previewRefresh()},50)},isArtificial:function(e){this.createLinkQuery(),localStorage.setItem("isArtificial_"+this.userAccount,e),localStorage.setItem("artificialTime_"+this.userAccount,Date.now()),e||localStorage.removeItem("artificialTime_"+this.userAccount)},artificialAccount:function(){localStorage.setItem("artificialAccount_"+this.userAccount,this.artificialAccount)},userInfo:function(){this.createLinkQuery()},chatValue:function(){this.onSearchHandshake()}}},f=m,g=(s("7faf"),s("2877")),p=Object(g["a"])(f,a,n,!1,null,null,null),b=p.exports,v=s("d1d4"),A=s.n(v),y=(s("394c"),s("aa35"),s("c1df")),k={install:function(e,t){e.prototype.$myMethod=function(){console.log(t)},e.prototype.$formatUnixDate=function(e,t){return y(parseInt(e+"000")).format(t)},e.prototype.$formatFromNowDate=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"YYYY-MM-DD HH:mm";return y().format("YYYYMMDD")==y(parseInt(e+"000")).format("YYYYMMDD")?"今天 "+y(parseInt(e+"000")).format("HH:mm"):y(parseInt(e+"000")).format(t)},e.prototype.$robotNickname=function(e){for(var t,s=this.$store.getters.robots,i=0;i<s.length;i++)s[i].id==e&&(t=s[i].nickname);return t},e.prototype.$judgeBigScreen=function(){var e=!1,t=window.screen.height/window.screen.width,s=window.screen.height==window.screen.availHeight?1.8:1.65;return t>s&&(e=!0),e}}},w=k,I=(s("6b54"),{install:function(e,t){console.log(t),e.MimcInstance=e.prototype.$mimcInstance={user:null,robot:null,platform:5,fetchMIMCTokenResult:null,_receiveP2PMsgCallback:null,_statusChangeCallback:null,_serverAckCallback:null,_disconnectCallback:null,init:function(e,t){this.platform=e.platform,this.fetchMIMCToken(e,t),this.getRobot()},getLocalCacheUser:function(e){var t=localStorage.getItem("miniImAppUser_"+e);return t?JSON.parse(t):null},fetchMIMCToken:function(e,t){var s=this;c.a.post("/public/register",e).then(function(e){s.fetchMIMCTokenResult=e.data.data.token,localStorage.setItem("miniImAppUser_"+e.data.data.user.id,JSON.stringify(e.data.data.user)),console.log("MIMC初始化成功"),t&&t(e.data.data.user)}).catch(function(e){t&&t(null),console.log(e.response),Object(r["Toast"])({message:e.response.data.message})})},getRobot:function(){var e=this;c.a.get("/public/robot/1").then(function(t){e.robot=t.data.data}).catch(function(e){Object(r["Toast"])({message:"mimc初始化失败,请刷新重试"+e.response.data.message})})},login:function(e){var t=this;try{if(this.user)return;var s=this.fetchMIMCTokenResult;this.user=new MIMCUser(s.data.appId,s.data.appAccount,"666"),this.user.registerP2PMsgHandler(function(e){var s=JSON.parse(window.Base64.decode(e.getPayload()));t._receiveP2PMsgCallback&&t._receiveP2PMsgCallback(s)}),this.user.registerFetchToken(function(){return s}),this.user.registerStatusChange(function(e,s,i,a){t._statusChangeCallback&&t._statusChangeCallback(e,s,i,a)}),this.user.registerServerAckHandler(function(e,s,i,a){t._serverAckCallback&&t._serverAckCallback(e,s,i,a)}),this.user.registerDisconnHandler(function(){t._disconnectCallback&&t._disconnectCallback()}),this.user.login(),window.mimcInstance=this,e&&e(),console.log("MIMC登录成功")}catch(i){console.log("MIMC登录失败"),setTimeout(function(){t.login()},1e3)}},logout:function(){this.user&&(this.user.logout(),this.user=null)},addEventListener:function(e,t){switch(e){case"receiveP2PMsg":this._receiveP2PMsgCallback=t;break;case"statusChange":this._statusChangeCallback=t;break;case"serverAck":this._serverAckCallback=t;break;case"disconnect":this._disconnectCallback=t;break}},sendMessage:function(e,t){var s=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(this.user){var a={from_account:parseInt(this.fetchMIMCTokenResult.data.appAccount),to_account:parseInt(t),biz_type:e,version:"0",timestamp:parseInt(((new Date).getTime()+" ").substr(0,10)),key:(new Date).getTime(),read:0,platform:this.platform,transfer_account:0,payload:i+""},n=window.Base64.encode(JSON.stringify(a));if("contacts"!=e&&"pong"!=e&&"welcome"!=e&&"handshake"!=e&&"search_knowledge"!=e){var o={biz_type:"into",payload:n},c=window.Base64.encode(JSON.stringify(o));this.user.sendMessage(this.robot.id.toString(),c)}return setTimeout(function(){s.user.sendMessage(t.toString(),n)},150),a}Object(r["Toast"])({message:"服务异常,请刷新重试!"})},createLocalMessage:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a={from_account:parseInt(this.fetchMIMCTokenResult.data.appAccount),to_account:parseInt(t),biz_type:e,version:"0",platform:this.platform,timestamp:parseInt(((new Date).getTime()+" ").substr(0,10)),key:(new Date).getTime(),read:0,transfer_account:parseInt(i),payload:s+""};return a}}}}),M=I,j={months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY年MM月DD日",LLL:"YYYY年MM月DD日Ah点mm分",LLLL:"YYYY年MM月DD日ddddAh点mm分",l:"YYYY-M-D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"下午"===t||"晚上"===t?e+12:e>=11?e:e+12},meridiem:function(e,t){var s=100*e+t;return s<600?"凌晨":s<900?"早上":s<1130?"上午":s<1230?"中午":s<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",ss:"%d秒",m:"1分钟",mm:"%d分钟",h:"1小时",hh:"%d小时",d:"1天",dd:"%d天",M:"1个月",MM:"%d个月",y:"1年",yy:"%d年"},week:{dow:1,doy:4}},C=s("c1df");C.locale("zh-cn",j),c.a.defaults.baseURL="http://kf.aissz.com:666/v1";var S={clickToCloseNonZoomable:!1,fullscreenEl:!1};i["default"].use(A.a,S),i["default"].use(w),i["default"].use(M),i["default"].use(l.a),i["default"].config.productionTip=!1,new i["default"]({render:function(e){return e(b)}}).$mount("#app")},"7faf":function(e,t,s){"use strict";var i=s("8fba"),a=s.n(i);a.a},"8fba":function(e,t,s){},bb7f:function(e,t){var s=["😀","😁","😂","🤣","😃","😄","😅","😆","😉","😊","😋","😎","😍","😘","😗","😙","😚","🙂","🤗","🤩","🤔","🤨","😐","😑","😶","🙄","😏","😣","😥","😮","🤐","😯","😪","😫","😴","😌","😛","😜","😝","🤤","😒","😓","😔","😕","🙃","🤑","😲","🙁","😖","😞","😟","😤","😢","😭","😦","😧","😨","😩","🤯","😬","😰","😱","😳","🤪","😵","😡","😠","🤬","😷","🤒","🤕","🤢","🤮","🤧","😇","🤠","🤡","🤥","🤫","🤭","🧐","🤓","😈","👿","👹","👺","💀","👻","👽","🤖","💩","😺","😸","😹","😻","😼","😽","🙀","😿","😾","🤲","👐","🙌","👏","🤝","👍","👎","👊","✊","🤛","🤜","🤞","✌️","🤟","🤘","👌","👈","👉","👆","👇","☝️","✋","🤚","🖐","🖖","👋","🤙","💪","🖕","✍️","🙏"];t.emojiData=s},bed0:function(e,t,s){e.exports=s.p+"img/photo_btn.c337b681.png"}});
//# sourceMappingURL=app.0d81bffb.js.map
\ No newline at end of file
This diff could not be displayed because it is too large.
(function(e){function t(t){for(var i,o,c=t[0],r=t[1],l=t[2],d=0,h=[];d<c.length;d++)o=c[d],a[o]&&h.push(a[o][0]),a[o]=0;for(i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i]);u&&u(t);while(h.length)h.shift()();return n.push.apply(n,l||[]),s()}function s(){for(var e,t=0;t<n.length;t++){for(var s=n[t],i=!0,c=1;c<s.length;c++){var r=s[c];0!==a[r]&&(i=!1)}i&&(n.splice(t--,1),e=o(o.s=s[0]))}return e}var i={},a={app:0},n=[];function o(t){if(i[t])return i[t].exports;var s=i[t]={i:t,l:!1,exports:{}};return e[t].call(s.exports,s,s.exports,o),s.l=!0,s.exports}o.m=e,o.c=i,o.d=function(e,t,s){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:s})},o.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var s=Object.create(null);if(o.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)o.d(s,i,function(t){return e[t]}.bind(null,i));return s},o.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="";var c=window["webpackJsonp"]=window["webpackJsonp"]||[],r=c.push.bind(c);c.push=t,c=c.slice();for(var l=0;l<c.length;l++)t(c[l]);var u=r;n.push([0,"chunk-vendors"]),s()})({0:function(e,t,s){e.exports=s("56d7")},"21fb":function(e,t,s){e.exports=s.p+"img/expression.73c98a16.png"},"42e0":function(e,t){e.exports="data:image/png;base64,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"},4678:function(e,t,s){var i={"./af":"2bfb","./af.js":"2bfb","./ar":"8e73","./ar-dz":"a356","./ar-dz.js":"a356","./ar-kw":"423e","./ar-kw.js":"423e","./ar-ly":"1cfd","./ar-ly.js":"1cfd","./ar-ma":"0a84","./ar-ma.js":"0a84","./ar-sa":"8230","./ar-sa.js":"8230","./ar-tn":"6d83","./ar-tn.js":"6d83","./ar.js":"8e73","./az":"485c","./az.js":"485c","./be":"1fc1","./be.js":"1fc1","./bg":"84aa","./bg.js":"84aa","./bm":"a7fa","./bm.js":"a7fa","./bn":"9043","./bn.js":"9043","./bo":"d26a","./bo.js":"d26a","./br":"6887","./br.js":"6887","./bs":"2554","./bs.js":"2554","./ca":"d716","./ca.js":"d716","./cs":"3c0d","./cs.js":"3c0d","./cv":"03ec","./cv.js":"03ec","./cy":"9797","./cy.js":"9797","./da":"0f14","./da.js":"0f14","./de":"b469","./de-at":"b3eb","./de-at.js":"b3eb","./de-ch":"bb71","./de-ch.js":"bb71","./de.js":"b469","./dv":"598a","./dv.js":"598a","./el":"8d47","./el.js":"8d47","./en-SG":"cdab","./en-SG.js":"cdab","./en-au":"0e6b","./en-au.js":"0e6b","./en-ca":"3886","./en-ca.js":"3886","./en-gb":"39a6","./en-gb.js":"39a6","./en-ie":"e1d3","./en-ie.js":"e1d3","./en-il":"7333","./en-il.js":"7333","./en-nz":"6f50","./en-nz.js":"6f50","./eo":"65db","./eo.js":"65db","./es":"898b","./es-do":"0a3c","./es-do.js":"0a3c","./es-us":"55c9","./es-us.js":"55c9","./es.js":"898b","./et":"ec18","./et.js":"ec18","./eu":"0ff2","./eu.js":"0ff2","./fa":"8df4","./fa.js":"8df4","./fi":"81e9","./fi.js":"81e9","./fo":"0721","./fo.js":"0721","./fr":"9f26","./fr-ca":"d9f8","./fr-ca.js":"d9f8","./fr-ch":"0e49","./fr-ch.js":"0e49","./fr.js":"9f26","./fy":"7118","./fy.js":"7118","./ga":"5120","./ga.js":"5120","./gd":"f6b4","./gd.js":"f6b4","./gl":"8840","./gl.js":"8840","./gom-latn":"0caa","./gom-latn.js":"0caa","./gu":"e0c5","./gu.js":"e0c5","./he":"c7aa","./he.js":"c7aa","./hi":"dc4d","./hi.js":"dc4d","./hr":"4ba9","./hr.js":"4ba9","./hu":"5b14","./hu.js":"5b14","./hy-am":"d6b6","./hy-am.js":"d6b6","./id":"5038","./id.js":"5038","./is":"0558","./is.js":"0558","./it":"6e98","./it-ch":"6f12","./it-ch.js":"6f12","./it.js":"6e98","./ja":"079e","./ja.js":"079e","./jv":"b540","./jv.js":"b540","./ka":"201b","./ka.js":"201b","./kk":"6d79","./kk.js":"6d79","./km":"e81d","./km.js":"e81d","./kn":"3e92","./kn.js":"3e92","./ko":"22f8","./ko.js":"22f8","./ku":"2421","./ku.js":"2421","./ky":"9609","./ky.js":"9609","./lb":"440c","./lb.js":"440c","./lo":"b29d","./lo.js":"b29d","./lt":"26f9","./lt.js":"26f9","./lv":"b97c","./lv.js":"b97c","./me":"293c","./me.js":"293c","./mi":"688b","./mi.js":"688b","./mk":"6909","./mk.js":"6909","./ml":"02fb","./ml.js":"02fb","./mn":"958b","./mn.js":"958b","./mr":"39bd","./mr.js":"39bd","./ms":"ebe4","./ms-my":"6403","./ms-my.js":"6403","./ms.js":"ebe4","./mt":"1b45","./mt.js":"1b45","./my":"8689","./my.js":"8689","./nb":"6ce3","./nb.js":"6ce3","./ne":"3a39","./ne.js":"3a39","./nl":"facd","./nl-be":"db29","./nl-be.js":"db29","./nl.js":"facd","./nn":"b84c","./nn.js":"b84c","./pa-in":"f3ff","./pa-in.js":"f3ff","./pl":"8d57","./pl.js":"8d57","./pt":"f260","./pt-br":"d2d4","./pt-br.js":"d2d4","./pt.js":"f260","./ro":"972c","./ro.js":"972c","./ru":"957c","./ru.js":"957c","./sd":"6784","./sd.js":"6784","./se":"ffff","./se.js":"ffff","./si":"eda5","./si.js":"eda5","./sk":"7be6","./sk.js":"7be6","./sl":"8155","./sl.js":"8155","./sq":"c8f3","./sq.js":"c8f3","./sr":"cf1e","./sr-cyrl":"13e9","./sr-cyrl.js":"13e9","./sr.js":"cf1e","./ss":"52bd","./ss.js":"52bd","./sv":"5fbd","./sv.js":"5fbd","./sw":"74dc","./sw.js":"74dc","./ta":"3de5","./ta.js":"3de5","./te":"5cbb","./te.js":"5cbb","./tet":"576c","./tet.js":"576c","./tg":"3b1b","./tg.js":"3b1b","./th":"10e8","./th.js":"10e8","./tl-ph":"0f38","./tl-ph.js":"0f38","./tlh":"cf75","./tlh.js":"cf75","./tr":"0e81","./tr.js":"0e81","./tzl":"cf51","./tzl.js":"cf51","./tzm":"c109","./tzm-latn":"b53d","./tzm-latn.js":"b53d","./tzm.js":"c109","./ug-cn":"6117","./ug-cn.js":"6117","./uk":"ada2","./uk.js":"ada2","./ur":"5294","./ur.js":"5294","./uz":"2e8c","./uz-latn":"010e","./uz-latn.js":"010e","./uz.js":"2e8c","./vi":"2921","./vi.js":"2921","./x-pseudo":"fd7e","./x-pseudo.js":"fd7e","./yo":"7f33","./yo.js":"7f33","./zh-cn":"5c3a","./zh-cn.js":"5c3a","./zh-hk":"49ab","./zh-hk.js":"49ab","./zh-tw":"90ea","./zh-tw.js":"90ea"};function a(e){var t=n(e);return s(t)}function n(e){var t=i[e];if(!(t+1)){var s=new Error("Cannot find module '"+e+"'");throw s.code="MODULE_NOT_FOUND",s}return t}a.keys=function(){return Object.keys(i)},a.resolve=n,e.exports=a,a.id="4678"},"56d7":function(e,t,s){"use strict";s.r(t);s("cadf"),s("551c"),s("f751"),s("097d");var i=s("2b0e"),a=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"mini-im-container",class:{"mini-im-pc-container":!e.isMobile,"mini-im-container-no-pto":!e.isShowHeader}},[i("span",{directives:[{name:"show",rawName:"v-show",value:e.isMobile&&e.isInputPongIng&&!e.isShowHeader,expression:"isMobile && (isInputPongIng && !isShowHeader)"}],staticClass:"input-ing"},[e._v(e._s(e.inputPongIngString))]),e.isShowHeader?i("mt-header",{attrs:{fixed:"",title:e.isInputPongIng?e.inputPongIngString:"在线客服"}},[i("div",{attrs:{slot:"left"},slot:"left"},[i("mt-button",{attrs:{icon:"back"},on:{click:e.back}})],1),i("mt-button",{attrs:{slot:"right"},on:{click:e.headRightBtn},slot:"right"},[e.isArtificial?i("span",[e._v("结束会话")]):i("img",{attrs:{title:"人工客服",src:"http://qiniu.cmp520.com/kefu_icon_2000.png",alt:""}})])],1):e._e(),e.isMobile?e._e():i("div",{staticClass:"mini-im-pc-header"},[e._m(0),i("span",{directives:[{name:"show",rawName:"v-show",value:e.isInputPongIng,expression:"isInputPongIng"}]},[e._v(e._s(e.inputPongIngString))]),i("div",{staticClass:"right"},[e.isArtificial?e._e():i("img",{attrs:{title:"人工客服",src:"http://qiniu.cmp520.com/kefu_icon_2000.png",alt:""},on:{click:e.headRightBtn}}),e.isArtificial?i("span",{on:{click:e.headRightBtn}},[e._v("结束会话")]):e._e(),i("div",{staticClass:"close-btn",on:{click:e.clickCloseWindow}},[e._v("ㄨ")])])]),i("div",{ref:"miniImBody",staticClass:"mini-im-body"},[i("ul",{staticClass:"mini-im-chat-list"},[e.isLoadMorLoading?i("li",{staticClass:"message-loading"},[i("mt-spinner",{attrs:{color:"#26a2ff",size:20,type:"triple-bounce"}})],1):e._e(),e._l(e.viewMessage,function(t,s){return i("li",{key:s},[t.isShowDate?[i("div",{staticClass:"mini-im-chat-item"},[i("div",{staticClass:"chat-content"},[i("div",{staticClass:"chat-body"},[[i("div",{staticClass:"system"},[i("div",{staticClass:"content"},[i("span",[e._v(e._s(e.$formatFromNowDate(t.timestamp,"YYYY年MM月DD日 HH:mm")))])])])]],2)])])]:e._e(),i("div",{staticClass:"mini-im-chat-item",class:{self:t.from_account==e.userInfo.id}},[e.isShowInfo(t.biz_type)?i("div",{staticClass:"chat-avatar"},[i("img",{attrs:{src:t.avatar}})]):e._e(),i("div",{staticClass:"chat-content"},[i("div",{staticClass:"chat-body"},[t.isShowCancel?[t.from_account==e.userInfo.id&&e.isShowInfo(t.biz_type)?i("span",{staticClass:"cancel-btn",on:{click:function(){return e.cancelMessage(t.key)}}},[e._v("撤回")]):e._e()]:e._e(),"text"==t.biz_type||"welcome"==t.biz_type?[i("div",{staticClass:"text"},[i("span",{domProps:{innerHTML:e._s(t.payload.replace(/\n/gi,"<br />"))}})])]:e._e(),"photo"==t.biz_type?[i("div",{staticClass:"photo"},[t.percent&&100!=t.percent?i("span",[e._v("上传中"+e._s(t.percent)+"%")]):e._e(),i("img",{attrs:{src:t.payload},on:{click:function(s){return e.clickPhoto(t.payload)}}})])]:e._e(),"knowledge"==t.biz_type?[i("div",{staticClass:"knowledge"},[i("div",{staticClass:"title"},[e._v("以下是您关心的相关问题?")]),e._l(JSON.parse(t.payload),function(t,s){return i("a",{key:s,attrs:{href:"javascript:void(0);"},on:{click:function(){return e.sendKnowledgeMessage(t.title)}}},[i("span",[e._v("• "+e._s(t.title))])])}),i("a",{on:{click:e.headRightBtn}},[e._v("• 以上都不是?我要找人工")])],2)]:e._e(),"end"==t.biz_type?[e._m(1,!0)]:e._e(),"timeout"==t.biz_type?[e._m(2,!0)]:e._e(),"system"==t.biz_type?[i("div",{staticClass:"system"},[i("div",{staticClass:"content"},[i("span",{domProps:{innerHTML:e._s(t.payload)}})])])]:e._e(),"cancel"==t.biz_type?[i("div",{staticClass:"system"},[i("div",{staticClass:"content"},[t.from_account==e.userInfo.id?i("span",[e._v("您撤回了一条消息")]):i("span",[e._v("对方撤回了一条消息")])])])]:e._e(),"transfer"==t.biz_type?[i("div",{staticClass:"system"},[i("div",{staticClass:"content"},[i("span",[e._v("已为您转接"+e._s(t.transfer_account)+"号客服")])])])]:e._e()],2)])])],2)})],2),e.isNotNetWork?i("div",{staticClass:"no-network"},[i("img",{attrs:{src:s("42e0"),alt:""}}),i("span",[e._v("网络连接已断开,请重新加载尝试~")]),i("button",{on:{click:e.resetLoad}},[e._v("重新加载")])]):e._e()]),e.isLoading?i("div",{staticClass:"mini-im-loading"},[i("mt-spinner",{attrs:{type:"triple-bounce",color:"#26a2ff"}})],1):e._e(),i("div",{directives:[{name:"show",rawName:"v-show",value:e.showEmoji,expression:"showEmoji"}],staticClass:"mini-im-emoji"},[i("div",{staticClass:"mini-im-emoji-content"},e._l(e.emojis,function(t,s){return i("span",{key:s,on:{click:function(){return e.clickEmoji(t)}}},[e._v(e._s(t))])}),0)]),i("div",{directives:[{name:"show",rawName:"v-show",value:e.handshakeKeywordList.length>0,expression:"handshakeKeywordList.length > 0"}],staticClass:"mini-im-knowledge"},[i("div",{staticClass:"mask",on:{click:function(t){e.handshakeKeywordList=[]}}}),i("span",[e._v("以下是您关心的相关问题?")]),i("ul",e._l(e.handshakeKeywordList,function(t,s){return i("li",{key:s,staticClass:"sendKnowledgeMessage",attrs:{data:t.title},on:{click:function(s){!e.isIOS&&e.sendKnowledgeMessage(t.title)}}},[e._v("• "+e._s(t.title))])}),0)]),i("div",{staticClass:"mini-im-tabbar-input"},[i("span",{staticClass:"photo-btn"},[i("img",{attrs:{src:s("bed0"),alt:""}}),i("input",{attrs:{onClick:"this.value = null",type:"file",accept:"image/*"},on:{change:e.changeFile}})]),i("span",{staticClass:"expression-btn",on:{click:function(t){e.showEmoji=!e.showEmoji}}},[i("img",{attrs:{src:s("21fb"),alt:""}})]),i("span",{directives:[{name:"show",rawName:"v-show",value:e.isMobile&&!e.isShowHeader,expression:"isMobile && !isShowHeader"}],staticClass:"serverci",class:{on:!e.isArtificial},on:{click:e.headRightBtn}},[e.isArtificial?i("span",[e._v("结束会话")]):i("img",{attrs:{title:"人工客服",src:"http://qiniu.cmp520.com/bfbfbf.png",alt:""}})]),i("textarea",{directives:[{name:"model",rawName:"v-model",value:e.chatValue,expression:"chatValue"}],ref:"textarea",staticStyle:{"vertical-align":"top",outline:"none"},attrs:{maxlength:"200",placeholder:"请用一句话描述您的问题~"},domProps:{value:e.chatValue},on:{keyup:[function(t){return t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:e.keyUpEvent(t)},function(t){return!t.type.indexOf("key")&&13!==t.keyCode&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:t.shiftKey?e.enterShift(t):null},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:e.enterSendMessage(t)}],submit:e.sendTextMessage,focus:e.chatInputFocus,blur:e.chatInputBlur,input:function(t){t.target.composing||(e.chatValue=t.target.value)}}}),i("button",{ref:"sendButton",staticClass:"mini-input-send",attrs:{type:"button"}},[e._v("发送")])])],1)},n=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"title"},[s("img",{attrs:{src:"http://qiniu.cmp520.com/kefu_icon_2000.png",alt:""}}),s("span",[e._v("在线客服")])])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"system"},[s("div",{staticClass:"content"},[s("span",[e._v("本次会话结束,感谢您的耐心与支持!")])])])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"system"},[s("div",{staticClass:"content"},[s("span",[e._v("会话超时,系统结束了本次会话")])])])}],o=(s("7f7f"),s("28a5"),s("386d"),s("4917"),s("bc3a")),c=s.n(o),r=s("76a0"),l=s.n(r),u=s("cea2"),d=s("1fba"),h=s("bb7f"),m={name:"app",data:function(){return{messages:[],isLoading:!0,isNotNetWork:!1,userLocal:"",isFirstGetMessage:!0,platform:5,uid:null,chatValue:"",emojis:h.emojiData,showEmoji:!1,userInfo:{},userAccount:null,companyInfo:null,uploadToken:null,isArtificial:!1,artificialAccount:null,robotInfo:null,robotAccount:null,isLoadMorEnd:!1,isUserSendLongTimeSystemMessage:!1,isAdminSendLongTimeSystemMessage:!1,isInputPongIng:!1,isLoadMorLoading:!1,isSendPong:!1,qiniuObservable:null,inputPongIngString:"对方正在输入...",scroll:null,isShowHeader:!0,isMobile:!0,handshakeKeywordList:[],searchHandshakeTimer:null}},created:function(){this.getLocal(),this.run()},computed:{account:function(){return this.isArtificial?this.artificialAccount:this.robotAccount},isIOS:function(){return!!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)},isSafari:function(){return navigator.userAgent.indexOf("Safari")>-1&&navigator.userAgent.indexOf("Chrome")<1},isJudgeBigScreen:function(){return this.$judgeBigScreen()},viewMessage:function(){for(var e=this.messages,t=0;t<e.length;t++)0==t&&(e[t].isShowDate=!0),t<e.length-1&&(e[t+1].isShowDate=!1,e[t+1].timestamp-120>e[t].timestamp&&(e[t+1].isShowDate=!0));return e}},mounted:function(){var e=this,t=this.queryToJson(location.search);t&&t.c&&localStorage.clear();var s=this.queryToJson(localStorage.getItem("urlQuery"));s&&(t=Object.assign({},s,t),t.u=s.u),t&&("0"==t.h&&(this.isShowHeader=!1),"0"==t.m&&(this.isMobile=!1,this.isShowHeader=!1),t.u&&(this.userAccount=parseInt(t.u)),t.p&&(this.platform=parseInt(t.p)),t.uid&&(this.uid=parseInt(t.uid)),"0"==t.r?(this.isArtificial=!0,this.artificialAccount=parseInt(t.a)):this.robotAccount=parseInt(t.a));var i=localStorage.getItem("isArtificial_"+this.userAccount),a=localStorage.getItem("artificialAccount_"+this.userAccount);"true"==i&&(this.isArtificial=!0,this.artificialAccount=parseInt(a)),setTimeout(function(){e.isLoading=!1,e.scroll=new d["a"](e.$refs.miniImBody,{click:!0,tab:!0,scrollY:!0,scrollbar:!0,bounceTime:400,preventDefaultException:{className:/(^|\s)text(\s|$)/},mouseWheel:!0}),e.scroll.on("touchEnd",function(t){t.y>30&&e.loadMorData()}),e.addSendButtonTouchEventListener(),e.createLinkQuery(),e.scrollIntoBottom()},500),this.onCheckIsOutSession()},beforeDestroy:function(){this.toggleWindow(this.userAccount,0)},methods:{run:function(){var e=this;this.getAllhttp(),this.upLastActivity(),this.$mimcInstance.addEventListener("receiveP2PMsg",this.receiveP2PMsg),this.$mimcInstance.addEventListener("disconnect",function(){console.log("链接断开!"),e.isNotNetWork=!0}),this.$mimcInstance.addEventListener("statusChange",function(e,t,s,i){console.log("状态发生变化",e,t,s,i)}),this.$mimcInstance.addEventListener("serverAck",function(t,s,i,a){console.log("发送消息服务器ack",t,s,i,a),localStorage.setItem("userLastCallBackMessageTime_"+e.userAccount,Date.now()),e.isUserSendLongTimeSystemMessage=!1}),this.onCheckIsloogTimeNotCallBack()},getLocal:function(){var e=this,t="";c.a.get("https://restapi.amap.com/v3/ip?key="+t).then(function(t){t.data.province&&(console.log(t.data.province+t.data.city),e.userLocal=t.data.province+t.data.city)}).catch(function(e){console.error(e)})},initMimc:function(){var e=this,t=this.$mimcInstance,s=t.getLocalCacheUser(this.userAccount);this.userInfo=s;var i=this.userAccount?this.userAccount:s?s.id:0;t.init({type:0,address:this.userLocal,uid:this.uid,platform:this.platform,account_id:i},function(s){s?(e.userInfo=s,e.userAccount=s.id,e.cleanRead(s.id),e.toggleWindow(s.id,1),t.login(function(){setTimeout(function(){e.messages=e.getLocalMessages(),e.isLoading=!1,e.artificialAccount||(console.log("握手消息"),t.sendMessage("handshake",e.robotAccount,"")),e.scrollIntoBottom()},500)})):setTimeout(function(){return e.initMimc()},1e3)}),this.onServciceLastMessageTimeNotCallBack()},resetLoad:function(){window.location.reload()},enterShift:function(e){this.isMobile||"Enter"!=e.code&&(this.chatValue=this.chatValue+"\n")},addSendButtonTouchEventListener:function(){var e=this;this.isIOS?document.addEventListener("touchstart",function(t){"mini-input-send"==t.target.getAttribute("class")&&e.sendTextMessage(),"sendKnowledgeMessage"==t.target.getAttribute("class")&&(console.log("监听发送按钮触摸事件",t.target.getAttribute("data")),e.sendKnowledgeMessage(t.target.getAttribute("data")))},!1):this.$refs.sendButton.addEventListener("click",this.sendTextMessage,!1)},cleanRead:function(e){c.a.get("/public/clean_read/"+e)},toggleWindow:function(e,t){c.a.put("/public/window/"+e,{window:t})},queryToJson:function(e){if(!e||""==e)return null;var t=e.substr(1,e.length).split("&");if(!t)return null;for(var s={},i=0;i<t.length;i++){var a=t[i].split("=");s[a[0]]=a[1]}return s},back:function(){history.go(-1)},isShowInfo:function(e){return-1==["end","transfer","cancel","timeout","system"].indexOf(e)},clickPhoto:function(e){window.open(e)},upLastActivity:function(){var e=this;this.onCheckIsOutSession();var t=this.$mimcInstance.getLocalCacheUser(this.userAccount);t&&c.a.get("/public/activity/"+t.id),this.isArtificial&&localStorage.setItem("artificialTime_"+this.userAccount,Date.now()),setTimeout(function(){return e.upLastActivity()},6e4)},onCheckIsOutSession:function(){var e=localStorage.getItem("artificialTime_"+this.userAccount);e&&(e=parseInt(e),Date.now()>e+6e5&&(this.isArtificial=!1,this.artificialAccount=null))},loadMorData:function(){var e=this;this.isLoadMorLoading||this.isLoadMorEnd||(this.isLoadMorLoading=!0,setTimeout(function(){var t=e.getLocalMessages();0==t.length&&(e.isLoadMorEnd=!0),e.messages=t.concat(e.messages),e.isLoadMorLoading=!1},1e3))},localAdmin:function(e){var t=localStorage.getItem("admin_"+e);return t?JSON.parse(t):null},localRobot:function(e){var t=localStorage.getItem("robot_"+e);return t?JSON.parse(t):null},clickEmoji:function(e){this.showEmoji=!1,this.chatValue=this.chatValue+e,this.scrollIntoBottom()},changeFile:function(e){var t=e.target,s=new FileReader,i=t.files[0];s.readAsDataURL(i);var a,n=this,o=parseInt(1e4*Math.random()*(new Date).getTime())+i.name.substr(i.name.lastIndexOf("."));s.onload=function(){var e=function(){a.percent=0,n.qiniuObservable=null,n.removeMessage(n.userInfo.id,a.key),Object(r["Toast"])({message:"上传失败,请重新上传!"});var e=n.$mimcInstance,t=e.createLocalMessage("system",n.account,"您刚刚上传的图片失败了,请重新上传!");n.messages.push(n.handlerMessage(t)),n.scrollIntoBottom()},t=function(e){n.qiniuObservable=null,a.percent=100;var t=n.uploadToken.host+"/"+e;n.$mimcInstance.sendMessage("photo",n.account,t)};a=n.$mimcInstance.createLocalMessage("photo",n.account,this.result),a["percent"]=0,a.isShowCancel=!0,setTimeout(function(){a.isShowCancel=!1},1e4),n.messages.push(n.handlerMessage(a));var s=Object.assign({},a);if(s.payload=n.uploadToken.host+"/"+o,n.messagesPushMemoryAndLocalStoreSave(s,!1),n.$previewRefresh(),n.scrollIntoBottom(),1==n.uploadToken.mode){var l=new FormData;l.append("file",i),l.append("file_name",o),c.a.post("/public/upload",l).then(function(e){t(e.data.data)}).catch(function(){e()})}else if(2==n.uploadToken.mode){var d={quality:.92,noCompressIfLarger:!0,maxWidth:1500};u["compressImage"](i,d).then(function(s){var i=u["upload"](s.dist,o,n.uploadToken.secret,{},{mimeType:null});n.qiniuObservable=i.subscribe({next:function(e){a.percent=Math.ceil(e.total.percent),e.total.size<1&&(n.qiniuObservable.unsubscribe(),n.cancelMessage(a.key),Object(r["Toast"])({message:"上传失败,该图片已损坏!"}))},error:function(){e()},complete:function(e){t(e.key)}})})}}},scrollIntoBottom:function(){var e=this;setTimeout(function(){var t=e.$refs.miniImBody.querySelectorAll("li");e.scroll&&e.scroll.scrollToElement(t[t.length-1])},50)},chatInputFocus:function(){this.scrollIntoBottom(),this.showEmoji=!1},chatInputBlur:function(){window.chatInputInterval=null,window.scroll(0,0)},getRobot:function(){var e=this;return c.a.get("/public/robot/1").then(function(t){var s=t.data.data;localStorage.setItem("robot_"+s.id,JSON.stringify(s)),e.robotAccount=s.id,e.robotInfo=s}).catch(function(e){Object(r["Toast"])({message:e.response.data.message})})},getUploadSecret:function(){var e=this;return c.a.get("/public/secret").then(function(t){e.uploadToken=t.data.data})},getCompanyInfo:function(){var e=this;return c.a.get("/public/company").then(function(t){e.companyInfo=t.data.data}).catch(function(e){Object(r["Toast"])({message:e.response.data.message})})},getAllhttp:function(){var e=this;c.a.all([this.getRobot(),this.getCompanyInfo(),this.getUploadSecret()]).then(c.a.spread(function(){e.initMimc()})).catch(function(){return setTimeout(function(){return e.getAllhttp()},1e3)})},receiveP2PMsg:function(e){if("transfer"==e.biz_type){this.isArtificial=!0,this.artificialAccount=e.transfer_account;var t=this.$mimcInstance;t.sendMessage("handshake",e.transfer_account,"");var s=JSON.parse(e.payload);localStorage.setItem("admin_"+s.id,JSON.stringify(s)),localStorage.setItem("adminLastCallBackMessageTime_"+s.id,Date.now()),this.isAdminSendLongTimeSystemMessage=!1}if(!this.isArtificial||"text"!=e.biz_type&&"photo"!=e.biz_type&&"cancel"!=e.biz_type||(localStorage.setItem("adminLastCallBackMessageTime_"+this.account,Date.now()),this.isAdminSendLongTimeSystemMessage=!1),"cancel"==e.biz_type&&this.removeMessage(e.from_account,e.payload),"end"!=e.biz_type&&"timeout"!=e.biz_type||(this.isArtificial=!1,this.artificialAccount=null),"pong"!=e.biz_type){if("search_knowledge"==e.biz_type)return this.handshakeKeywordList=[],void(""!=e.payload&&(this.handshakeKeywordList=JSON.parse(e.payload)));this.messagesPushMemoryAndLocalStoreSave(e),this.scrollIntoBottom(),this.$previewRefresh(),window.parent.postMessage({newMessage:1},"*");try{"transfer"==e.biz_type&&(e.payload="客服转接"),"cancel"==e.biz_type&&(e.payload="对方撤回了一条消息"),"end"!=e.biz_type&&"timeout"!=e.biz_type||(e.payload="会话超时")}catch(i){console.log(i)}}else this.inputPongIng()},inputPongIng:function(){var e=this;this.isInputPongIng||(this.isInputPongIng=!0,setTimeout(function(){e.inputPongIngString="对方正在输入."},500),setTimeout(function(){e.inputPongIngString="对方正在输入.."},1500),setTimeout(function(){e.inputPongIngString="对方正在输入...",e.isInputPongIng=!1},3e3))},enterSendMessage:function(){this.isMobile||(this.sendTextMessage(),this.$refs.textarea.focus())},sendTextMessage:function(){if(0!=this.userInfo.online){var e=this.chatValue.trim();if(""!=e){var t=this.$mimcInstance,s=t.sendMessage("text",this.account,e);s.isShowCancel=!0,setTimeout(function(){return s.isShowCancel=!1},1e4),this.messagesPushMemoryAndLocalStoreSave(s),this.chatValue="",this.handshakeKeywordList=[]}}else Object(r["Toast"])({message:"您貌似掉线了"})},cancelMessage:function(e){var t=this.$mimcInstance,s=t.sendMessage("cancel",this.account,e);this.messagesPushMemoryAndLocalStoreSave(s),this.removeMessage(this.userInfo.id,e),this.qiniuObservable&&this.qiniuObservable.unsubscribe()},sendKnowledgeMessage:function(e){this.handshakeKeywordList=[];var t=this.$mimcInstance,s=t.sendMessage("text",this.account,e);this.messagesPushMemoryAndLocalStoreSave(s),this.chatValue=""},headRightBtn:function(){var e=this;if(!window.isClickHeadRightBtn){window.isClickHeadRightBtn=!0;var t=this.$mimcInstance;if(this.isArtificial)return r["MessageBox"].confirm("您确定关闭此次会话吗?","温馨提示! ").then(function(){var s=t.sendMessage("end",e.account,"");e.messagesPushMemoryAndLocalStoreSave(s),e.isArtificial=!1,e.artificialAccount=null}),void setTimeout(function(){return window.isClickHeadRightBtn=!1},3e3);var s=t.sendMessage("text",this.account,"人工");this.messagesPushMemoryAndLocalStoreSave(s),setTimeout(function(){return window.isClickHeadRightBtn=!1},3e3)}},messagesPushMemoryAndLocalStoreSave:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if("pong"!=e.biz_type&&"handshake"!=e.biz_type&&"into"!=e.biz_type&&(t&&this.messages.push(this.handlerMessage(e)),"welcome"!=e.biz_type)){var s=[],i=localStorage.getItem("miniImAppMessageRecord_"+this.userInfo.id);i&&(s=JSON.parse(i)),s.push(this.handlerMessage(e)),localStorage.setItem("miniImAppMessageRecord_"+this.userInfo.id,JSON.stringify(s)),this.scrollIntoBottom()}},handlerMessage:function(e){var t="data:image/png;base64,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",s=this.localAdmin(e.from_account),i=this.localRobot(e.from_account);return s&&e.from_account==s.id?(e.nickname=s.nickname,e.avatar=""==s.avatar?t:s.avatar):i&&e.from_account==i.id?(e.nickname=i.nickname,e.avatar=""==i.avatar?t:i.avatar):e.from_account==this.userInfo.id&&(e.nickname=this.userInfo.nickname,-1!=this.userInfo.nickname.indexOf(this.userInfo.id)&&(e.nickname="我"),e.avatar=""==this.userInfo.avatar?t:this.userInfo.avatar),e},getLocalMessages:function(){var e=15,t=[],s=localStorage.getItem("miniImAppMessageRecord_"+this.userInfo.id);if(s){var i=JSON.parse(s);if(this.isFirstGetMessage)this.isFirstGetMessage=!1,t=i.slice(-e,i.length);else{for(var a=-1,n=i.length-1;n>=0;n--)if(i[n].timestamp==this.messages[0].timestamp){a=n;break}if(-1==a)return[];t=i.slice(-(i.length-a+e),a)}}for(var o=0;o<t.length;o++){var c=t[o];c.isShowCancel=!1,t[o]=this.handlerMessage(c)}return t},keyUpEvent:function(){var e=this;this.isArtificial&&(this.isSendPong||(this.isSendPong=!0,setTimeout(function(){return e.isSendPong=!1},100),this.$mimcInstance.sendMessage("pong",this.account,this.chatValue)))},removeMessage:function(e,t){for(var s=[],i=0;i<this.messages.length;i++)this.messages[i].key==t&&this.messages[i].from_account==e||s.push(this.messages[i]);var a=localStorage.getItem("miniImAppMessageRecord_"+this.userInfo.id);if(a){for(var n=JSON.parse(a),o=[],c=0;c<n.length;c++){var r=n[c];r.key==t&&r.from_account==e||"welcome"!=r.biz_type&&"handshake"!=r.biz_type&&"into"!=r.biz_type&&o.push(n[c])}localStorage.setItem("miniImAppMessageRecord_"+this.userInfo.id,JSON.stringify(o))}this.messages=s},createLinkQuery:function(){var e=this.isArtificial?0:1,t=0==e?this.artificialAccount:this.robotAccount,s=this.isMobile?1:0,i=this.isShowHeader?1:0,a=this.platform?this.platform:1,n=this.userAccount?"&u="+this.userAccount:"",o=this.uid?"&uid="+this.uid:"",c="?h="+i+"&m="+s+"&p="+a+"&r="+e+"&a="+t+n+o;history.replaceState(null,null,c),null!=this.userAccount&&"null"!=this.userAccount&&""!=this.userAccount&&localStorage.setItem("urlQuery",c)},clickCloseWindow:function(){window.parent.postMessage({clickCloseWindow:!0},"*")},onCheckIsloogTimeNotCallBack:function(){var e=this,t=localStorage.getItem("userLastCallBackMessageTime_"+this.userAccount)||Date.now();if(this.isArtificial&&!this.isUserSendLongTimeSystemMessage&&Date.now()-t>=3e5){var s=this.$mimcInstance,i=s.createLocalMessage("system",this.account,"您已超过5分钟未回复消息,系统3分钟后将结束对话");this.messages.push(this.handlerMessage(i)),this.isUserSendLongTimeSystemMessage=!0,this.scrollIntoBottom()}setTimeout(function(){return e.onCheckIsloogTimeNotCallBack()},1e4)},onServciceLastMessageTimeNotCallBack:function(){var e=this;if(this.robotInfo){var t=this.robotInfo.loog_time_wait_text,s=localStorage.getItem("adminLastCallBackMessageTime_"+this.account)||Date.now();if(this.isArtificial&&!this.isAdminSendLongTimeSystemMessage&&""!=t.trim()&&Date.now()-s>=12e4){var i=this.$mimcInstance,a=i.createLocalMessage("text",this.account,t);a.from_account=this.robotAccount,this.messages.push(this.handlerMessage(a)),this.isAdminSendLongTimeSystemMessage=!0,this.scrollIntoBottom()}setTimeout(function(){return e.onServciceLastMessageTimeNotCallBack()},1e4)}},onSearchHandshake:function(){var e=this;if(this.chatValue&&!this.isArtificial){this.searchHandshakeTimer&&clearTimeout(this.searchHandshakeTimer);var t=this.$mimcInstance;this.searchHandshakeTimer=setTimeout(function(){t.sendMessage("search_knowledge",e.robotAccount,e.chatValue),e.searchHandshakeTimer=null},500)}else this.handshakeKeywordList=[]}},watch:{messages:function(){var e=this;setTimeout(function(){e.scroll&&e.scroll.refresh(),e.$previewRefresh()},50)},isArtificial:function(e){this.createLinkQuery(),localStorage.setItem("isArtificial_"+this.userAccount,e),localStorage.setItem("artificialTime_"+this.userAccount,Date.now()),e||localStorage.removeItem("artificialTime_"+this.userAccount)},artificialAccount:function(){localStorage.setItem("artificialAccount_"+this.userAccount,this.artificialAccount)},userInfo:function(){this.createLinkQuery()},chatValue:function(){this.onSearchHandshake()}}},f=m,g=(s("7faf"),s("2877")),p=Object(g["a"])(f,a,n,!1,null,null,null),b=p.exports,v=s("d1d4"),A=s.n(v),y=(s("394c"),s("aa35"),s("c1df")),k={install:function(e,t){e.prototype.$myMethod=function(){console.log(t)},e.prototype.$formatUnixDate=function(e,t){return y(parseInt(e+"000")).format(t)},e.prototype.$formatFromNowDate=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"YYYY-MM-DD HH:mm";return y().format("YYYYMMDD")==y(parseInt(e+"000")).format("YYYYMMDD")?"今天 "+y(parseInt(e+"000")).format("HH:mm"):y(parseInt(e+"000")).format(t)},e.prototype.$robotNickname=function(e){for(var t,s=this.$store.getters.robots,i=0;i<s.length;i++)s[i].id==e&&(t=s[i].nickname);return t},e.prototype.$judgeBigScreen=function(){var e=!1,t=window.screen.height/window.screen.width,s=window.screen.height==window.screen.availHeight?1.8:1.65;return t>s&&(e=!0),e}}},w=k,I=(s("6b54"),{install:function(e,t){console.log(t),e.MimcInstance=e.prototype.$mimcInstance={user:null,robot:null,platform:5,fetchMIMCTokenResult:null,_receiveP2PMsgCallback:null,_statusChangeCallback:null,_serverAckCallback:null,_disconnectCallback:null,init:function(e,t){this.platform=e.platform,this.fetchMIMCToken(e,t),this.getRobot()},getLocalCacheUser:function(e){var t=localStorage.getItem("miniImAppUser_"+e);return t?JSON.parse(t):null},fetchMIMCToken:function(e,t){var s=this;c.a.post("/public/register",e).then(function(e){s.fetchMIMCTokenResult=e.data.data.token,localStorage.setItem("miniImAppUser_"+e.data.data.user.id,JSON.stringify(e.data.data.user)),console.log("MIMC初始化成功"),t&&t(e.data.data.user)}).catch(function(e){t&&t(null),console.log(e.response),Object(r["Toast"])({message:e.response.data.message})})},getRobot:function(){var e=this;c.a.get("/public/robot/1").then(function(t){e.robot=t.data.data}).catch(function(e){Object(r["Toast"])({message:"mimc初始化失败,请刷新重试"+e.response.data.message})})},login:function(e){var t=this;try{if(this.user)return;var s=this.fetchMIMCTokenResult;this.user=new MIMCUser(s.data.appId,s.data.appAccount,"666"),this.user.registerP2PMsgHandler(function(e){var s=JSON.parse(window.Base64.decode(e.getPayload()));t._receiveP2PMsgCallback&&t._receiveP2PMsgCallback(s)}),this.user.registerFetchToken(function(){return s}),this.user.registerStatusChange(function(e,s,i,a){t._statusChangeCallback&&t._statusChangeCallback(e,s,i,a)}),this.user.registerServerAckHandler(function(e,s,i,a){t._serverAckCallback&&t._serverAckCallback(e,s,i,a)}),this.user.registerDisconnHandler(function(){t._disconnectCallback&&t._disconnectCallback()}),this.user.login(),window.mimcInstance=this,e&&e(),console.log("MIMC登录成功")}catch(i){console.log("MIMC登录失败"),setTimeout(function(){t.login()},1e3)}},logout:function(){this.user&&(this.user.logout(),this.user=null)},addEventListener:function(e,t){switch(e){case"receiveP2PMsg":this._receiveP2PMsgCallback=t;break;case"statusChange":this._statusChangeCallback=t;break;case"serverAck":this._serverAckCallback=t;break;case"disconnect":this._disconnectCallback=t;break}},sendMessage:function(e,t){var s=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(this.user){var a={from_account:parseInt(this.fetchMIMCTokenResult.data.appAccount),to_account:parseInt(t),biz_type:e,version:"0",timestamp:parseInt(((new Date).getTime()+" ").substr(0,10)),key:(new Date).getTime(),read:0,platform:this.platform,transfer_account:0,payload:i+""},n=window.Base64.encode(JSON.stringify(a));if("contacts"!=e&&"pong"!=e&&"welcome"!=e&&"handshake"!=e&&"search_knowledge"!=e){var o={biz_type:"into",payload:n},c=window.Base64.encode(JSON.stringify(o));this.user.sendMessage(this.robot.id.toString(),c)}return setTimeout(function(){s.user.sendMessage(t.toString(),n)},150),a}Object(r["Toast"])({message:"服务异常,请刷新重试!"})},createLocalMessage:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a={from_account:parseInt(this.fetchMIMCTokenResult.data.appAccount),to_account:parseInt(t),biz_type:e,version:"0",platform:this.platform,timestamp:parseInt(((new Date).getTime()+" ").substr(0,10)),key:(new Date).getTime(),read:0,transfer_account:parseInt(i),payload:s+""};return a}}}}),M=I,j={months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY年MM月DD日",LLL:"YYYY年MM月DD日Ah点mm分",LLLL:"YYYY年MM月DD日ddddAh点mm分",l:"YYYY-M-D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"下午"===t||"晚上"===t?e+12:e>=11?e:e+12},meridiem:function(e,t){var s=100*e+t;return s<600?"凌晨":s<900?"早上":s<1130?"上午":s<1230?"中午":s<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",ss:"%d秒",m:"1分钟",mm:"%d分钟",h:"1小时",hh:"%d小时",d:"1天",dd:"%d天",M:"1个月",MM:"%d个月",y:"1年",yy:"%d年"},week:{dow:1,doy:4}},C=s("c1df");C.locale("zh-cn",j),c.a.defaults.baseURL="http://kf.aissz.com:666/v1";var S={clickToCloseNonZoomable:!1,fullscreenEl:!1};i["default"].use(A.a,S),i["default"].use(w),i["default"].use(M),i["default"].use(l.a),i["default"].config.productionTip=!1,new i["default"]({render:function(e){return e(b)}}).$mount("#app")},"7faf":function(e,t,s){"use strict";var i=s("8fba"),a=s.n(i);a.a},"8fba":function(e,t,s){},bb7f:function(e,t){var s=["😀","😁","😂","🤣","😃","😄","😅","😆","😉","😊","😋","😎","😍","😘","😗","😙","😚","🙂","🤗","🤩","🤔","🤨","😐","😑","😶","🙄","😏","😣","😥","😮","🤐","😯","😪","😫","😴","😌","😛","😜","😝","🤤","😒","😓","😔","😕","🙃","🤑","😲","🙁","😖","😞","😟","😤","😢","😭","😦","😧","😨","😩","🤯","😬","😰","😱","😳","🤪","😵","😡","😠","🤬","😷","🤒","🤕","🤢","🤮","🤧","😇","🤠","🤡","🤥","🤫","🤭","🧐","🤓","😈","👿","👹","👺","💀","👻","👽","🤖","💩","😺","😸","😹","😻","😼","😽","🙀","😿","😾","🤲","👐","🙌","👏","🤝","👍","👎","👊","✊","🤛","🤜","🤞","✌️","🤟","🤘","👌","👈","👉","👆","👇","☝️","✋","🤚","🖐","🖖","👋","🤙","💪","🖕","✍️","🙏"];t.emojiData=s},bed0:function(e,t,s){e.exports=s.p+"img/photo_btn.c337b681.png"}});
//# sourceMappingURL=app.9de5a83c.js.map
\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
// @APIVersion 1.0.0
// @Title MIMC server API
// @Description kefu server APIs.
// @Contact 361554012@qq.com
package routers
import (
"kefu_server/controllers"
"kefu_server/filters"
"github.com/astaxie/beego"
"github.com/astaxie/beego/plugins/cors"
)
func init() {
/// 跨域处理
beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
AllowAllOrigins: true,
//AllowOrigins: []string{"https://192.168.0.102"}, // 开放跨域白名单
AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
AllowHeaders: []string{"Origin", "Authorization", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
ExposeHeaders: []string{"Content-Length", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
AllowCredentials: true,
}))
ns := beego.NewNamespace("/v1",
// auth
beego.NSNamespace("/auth",
beego.NSRouter("/login", &controllers.AuthController{}, "post:Login"),
beego.NSRouter("/logout", &controllers.AuthController{}, "get:Logout"),
),
// public
beego.NSNamespace("/public",
beego.NSRouter("/register", &controllers.PublicController{}, "post:Register"),
beego.NSRouter("/robot/:platform", &controllers.PublicController{}, "get:Robot"),
beego.NSRouter("/read/:id", &controllers.PublicController{}, "get:Read"),
beego.NSRouter("/secret", &controllers.PublicController{}, "get:UploadSecret"),
beego.NSRouter("/activity/?:id", &controllers.PublicController{}, "get:LastActivity"),
beego.NSRouter("/company", &controllers.PublicController{}, "get:GetCompanyInfo"),
beego.NSRouter("/robot_info/:id", &controllers.PublicController{}, "get:RobotInfo"),
beego.NSRouter("/clean_read/:id", &controllers.PublicController{}, "get:CleanRead"),
beego.NSRouter("/window/:id", &controllers.PublicController{}, "put:Window"),
beego.NSRouter("/upload", &controllers.PublicController{}, "post:Upload"),
),
// knowledge_base
beego.NSNamespace("/knowledge",
beego.NSBefore(filters.FilterToken),
beego.NSRouter("/?:id", &controllers.KnowledgeBaseController{}),
beego.NSRouter("/list", &controllers.KnowledgeBaseController{}, "post:List"),
),
// home
beego.NSNamespace("/home",
beego.NSBefore(filters.FilterToken),
beego.NSRouter("/statistical", &controllers.HomeController{}, "post:Statistical"),
beego.NSRouter("/today_statistical", &controllers.HomeController{}, "post:TodayActionStatistical"),
),
// message
beego.NSNamespace("/message",
beego.NSBefore(filters.FilterToken),
beego.NSRouter("/list", &controllers.MessageController{}, "post:List"),
beego.NSRouter("/transfer", &controllers.MessageController{}, "post:Transfer"),
),
// admin
beego.NSNamespace("/admin",
beego.NSBefore(filters.FilterToken),
beego.NSRouter("/?:id", &controllers.AdminController{}),
beego.NSRouter("/list", &controllers.AdminController{}, "post:List"),
beego.NSRouter("/password", &controllers.AdminController{}, "put:UpdatePassword"),
beego.NSRouter("/me", &controllers.AdminController{}, "get:GetMeInfo"),
beego.NSRouter("/current/user/?:id", &controllers.AdminController{}, "get:ChangeCurrentUser"),
beego.NSRouter("/online/?:state", &controllers.AdminController{}, "put:Online"),
),
// user
beego.NSNamespace("/user",
beego.NSBefore(filters.FilterToken),
beego.NSRouter("/?:id", &controllers.UserController{}),
beego.NSRouter("/list", &controllers.UserController{}, "post:Users"),
beego.NSRouter("/onlines", &controllers.UserController{}, "get:OnLineCount"),
),
// robot
beego.NSNamespace("/robot",
beego.NSBefore(filters.FilterToken),
beego.NSRouter("/?:id", &controllers.RobotController{}),
beego.NSRouter("/list", &controllers.RobotController{}, "get:List"),
),
// shortcut
beego.NSNamespace("/shortcut",
beego.NSBefore(filters.FilterToken),
beego.NSRouter("/?:id", &controllers.ShortcutController{}),
beego.NSRouter("/list", &controllers.ShortcutController{}, "get:List"),
),
// company
beego.NSNamespace("/company",
beego.NSBefore(filters.FilterToken),
beego.NSRouter("/", &controllers.CompanyController{}),
),
// system
beego.NSNamespace("/system",
beego.NSBefore(filters.FilterToken),
beego.NSRouter("/", &controllers.SystemController{}),
),
// uploads config
beego.NSNamespace("/uploads",
beego.NSBefore(filters.FilterToken),
beego.NSRouter("/config", &controllers.UploadsConfigController{}, "get:Config"),
),
// QiniuUp
beego.NSNamespace("/qiniu",
beego.NSBefore(filters.FilterToken),
beego.NSRouter("/", &controllers.QiniuController{}),
),
// contact
beego.NSNamespace("/contact",
beego.NSBefore(filters.FilterToken),
beego.NSRouter("/?:id", &controllers.ContactController{}),
beego.NSRouter("/list", &controllers.ContactController{}, "get:GetContacts"),
beego.NSRouter("/clear", &controllers.ContactController{}, "delete:Clear"),
),
// platform
beego.NSNamespace("/platform",
beego.NSBefore(filters.FilterToken),
beego.NSRouter("/?:id", &controllers.PlatformController{}),
beego.NSRouter("/list", &controllers.PlatformController{}, "get:List"),
),
// Services Statistical
beego.NSNamespace("/services_statistical",
beego.NSBefore(filters.FilterToken),
beego.NSRouter("/list", &controllers.ServicesStatisticalController{}, "post:List"),
),
)
beego.AddNamespace(ns)
}
/*
Navicat MySQL Data Transfer
Source Server : 192.168.31.72
Source Server Type : MySQL
Source Server Version : 50728
Source Host : 192.168.31.72:3306
Source Schema : kefu_server
Target Server Type : MySQL
Target Server Version : 50728
File Encoding : 65001
Date: 18/12/2019 23:43:00
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for admin
-- ----------------------------
DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`avatar` char(255) NOT NULL DEFAULT '',
`username` char(255) NOT NULL DEFAULT '',
`nickname` char(255) NOT NULL DEFAULT '',
`password` char(255) NOT NULL DEFAULT '',
`phone` char(255) DEFAULT NULL,
`token` longtext,
`auto_reply` longtext,
`online` int(11) NOT NULL DEFAULT '0',
`root` int(11) NOT NULL DEFAULT '0',
`current_con_user` bigint(20) NOT NULL DEFAULT '0',
`last_activity` bigint(20) NOT NULL DEFAULT '0',
`update_at` bigint(20) NOT NULL DEFAULT '0',
`create_at` bigint(20) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=106 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of admin
-- ----------------------------
BEGIN;
INSERT INTO `admin` VALUES (100, 'http://qiniu.cmp520.com/11445830860408686.jpeg', 'keith', 'Keith', 'b74625d2e39e76f7d017873f3f5a7571', '13800138000', 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTAwLCJhdmF0YXIiOiJodHRwOi8vcWluaXUuY21wNTIwLmNvbS84MDk2MTYwOTU5OTgzNTc2LmpwZyIsInVzZXJuYW1lIjoia2VpdGgiLCJuaWNrbmFtZSI6IktlaXRoIiwicGFzc3dvcmQiOiIiLCJwaG9uZSI6IjEzODAwMTM4MDAwIiwidG9rZW4iOiIiLCJhdXRvX3JlcGx5Ijoi5oKo5aW977yM5oiR5piv5Zyo57q_5a6i5pyNS2VpdGgs5bel5Y-3MTAw77yM5pyJ5LuA5LmI5Y-v5Lul5biu5Yiw5oKo5ZGi77yfIiwib25saW5lIjowLCJyb290IjoxLCJjdXJyZW50X2Nvbl91c2VyIjowLCJsYXN0X2FjdGl2aXR5IjoxNTc2NTk3MzI5LCJ1cGRhdGVfYXQiOjE1NzY1ODgxNDMsImNyZWF0ZV9hdCI6MTU2MzExODYzMCwiZXhwIjoxNTc2OTM2MzgyLCJpYXQiOjE1NzY2NzcxODIsImlzcyI6ImtlaXRoIn0.xO5jp__ogQ0uUi99NKAE31l7Fa7bB4tL7w4hfaCE3LA', '您好,我是在线客服Keith,工号100,有什么可以帮到您呢?', 1, 1, 0, 1576683750, 1576681836, 1563118630);
INSERT INTO `admin` VALUES (101, 'http://qiniu.cmp520.com/3971858868282022.jpg', 'test1', '小敏', '2569d419bfea999ff13fd1f7f4498b89', '13800138000', 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTExLCJhdmF0YXIiOiJodHRwOi8vcWluaXUuY21wNTIwLmNvbS8zOTcxODU4ODY4MjgyMDIyLmpwZyIsInVzZXJuYW1lIjoib3VtaW4iLCJuaWNrbmFtZSI6IuWwj-aVjyIsInBhc3N3b3JkIjoiIiwicGhvbmUiOiIxMzgwMDEzODAwMCIsInRva2VuIjoiIiwiYXV0b19yZXBseSI6IuaCqOWlve-8jOaIkeaYr-WcqOe6v-WuouacjeWwj-aVj--8jOacieS7gOS5iOWPr-S7peW4ruWIsOS9oO-8nyIsIm9ubGluZSI6MSwicm9vdCI6MCwiY3VycmVudF9jb25fdXNlciI6MjM4OTAwNCwibGFzdF9hY3Rpdml0eSI6MTU3NjM5MTM2NSwidXBkYXRlX2F0IjowLCJjcmVhdGVfYXQiOjE1Njc1NjQ3OTYsImV4cCI6MTU3NjY1MDU4MCwiaWF0IjoxNTc2MzkxMzgwLCJpc3MiOiJvdW1pbiJ9.B7kTtJUHmBX7c-jz54G1K_OUTL3FRhojUe_IAPtUaKg', '您好,我是在线客服小敏,工号101,有什么可以帮到您呢?', 0, 0, 2394408, 1576403960, 0, 1567564796);
INSERT INTO `admin` VALUES (102, 'http://qiniu.cmp520.com/4097459283995998.jpeg', 'test2', '草草', '2569d419bfea999ff13fd1f7f4498b89', '13800138000', 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTE1LCJhdmF0YXIiOiJodHRwOi8vcWluaXUuY21wNTIwLmNvbS80MDk3NDU5MjgzOTk1OTk4LmpwZWciLCJ1c2VybmFtZSI6Inl1YW55dWFuIiwibmlja25hbWUiOiLojYnojYkiLCJwYXNzd29yZCI6IiIsInBob25lIjoiMTM4MDAxMzgwMDAiLCJ0b2tlbiI6IiIsImF1dG9fcmVwbHkiOiLmgqjlpb3vvIzmiJHmmK_lnKjnur_kurrlt6XlrqLmnI3lsI_onJzonILvvIzmnInku4DkuYjlj6_ku6XluK7liLDkvaDvvJ8iLCJvbmxpbmUiOjAsInJvb3QiOjAsImN1cnJlbnRfY29uX3VzZXIiOjIzODQ2OTgsImxhc3RfYWN0aXZpdHkiOjE1NzY0Njg5MzIsInVwZGF0ZV9hdCI6MTU3MzAxMzQyNywiY3JlYXRlX2F0IjoxNTY5MjA5ODMyLCJleHAiOjE1NzY3MjgxNDcsImlhdCI6MTU3NjQ2ODk0NywiaXNzIjoieXVhbnl1YW4ifQ.MojEmfRIc9yUik-td5FOOcuj4LU_zALhVTiP2CrcnfM', '您好,我是在线客服草草,工号102,有什么可以帮到您呢?', 0, 0, 2397675, 1576470937, 1573013427, 1569209832);
INSERT INTO `admin` VALUES (103, 'http://qiniu.cmp520.com/1845329999348814.jpeg', 'test3', '小文', '2569d419bfea999ff13fd1f7f4498b89', '13800138000', 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTE2LCJhdmF0YXIiOiJodHRwOi8vcWluaXUuY21wNTIwLmNvbS8xODQ1MzI5OTk5MzQ4ODE0LmpwZWciLCJ1c2VybmFtZSI6ImxpbmdsaW5nIiwibmlja25hbWUiOiLlkYblkYYiLCJwYXNzd29yZCI6IiIsInBob25lIjoiMTM4MDAxMzgwMDAiLCJ0b2tlbiI6IiIsImF1dG9fcmVwbHkiOiLmgqjlpb3vvIzmiJHmmK_lnKjnur_kurrlt6XlrqLmnI3lkYblkYbvvIzor7fnroDljZXmj4_ov7Dpl67popgr5o-Q5L6b5LiL5Y2V5omL5py65Y-356CBL-iuouWNleWPt--8jOS7peS-v-W_q-mAn-S4uuaCqOino-WGs-mXrumimOOAgiIsIm9ubGluZSI6MCwicm9vdCI6MCwiY3VycmVudF9jb25fdXNlciI6MjM4NTI2NiwibGFzdF9hY3Rpdml0eSI6MTU3NjIyMDM4MywidXBkYXRlX2F0IjoxNTc2MDI2MzA2LCJjcmVhdGVfYXQiOjE1NjkyMDk4NjIsImV4cCI6MTU3NjczMzQ3NiwiaWF0IjoxNTc2NDc0Mjc2LCJpc3MiOiJsaW5nbGluZyJ9.ETARh2wSN_xnMtlav7u9Y3HOE6hyWmpjsXsVUB9kWEM', '您好,我是在线客服小文,工号103,有什么可以帮到您呢?', 0, 0, 2398306, 1576477657, 1576026306, 1569209862);
INSERT INTO `admin` VALUES (104, 'http://qiniu.cmp520.com/11538885325704032.jpeg', 'test4', 'lucky', '2569d419bfea999ff13fd1f7f4498b89', '13800138000', 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTE3LCJhdmF0YXIiOiJodHRwOi8vcWluaXUuY21wNTIwLmNvbS8xMTUzODg4NTMyNTcwNDAzMi5qcGVnIiwidXNlcm5hbWUiOiJkaWRpIiwibmlja25hbWUiOiJsdWNreSIsInBhc3N3b3JkIjoiIiwicGhvbmUiOiIxMzgwMDEzODAwMCIsInRva2VuIjoiIiwiYXV0b19yZXBseSI6IuaCqOWlve-8jOW-iOmrmOWFtOS4uuaCqOacjeWKoe-8jOivt-eugOWNleaPj-i_sOmXrumimCvmj5DkvpvkuIvljZXmiYvmnLrlj7fnoIEv6K6i5Y2V5Y-377yM5Lul5L6_5b-r6YCf5Li65oKo6Kej5Yaz6Zeu6aKY44CCIiwib25saW5lIjowLCJyb290IjowLCJjdXJyZW50X2Nvbl91c2VyIjoyMzg1MTAzLCJsYXN0X2FjdGl2aXR5IjoxNTc2NDcyNzUwLCJ1cGRhdGVfYXQiOjE1NzYwMjUyNTAsImNyZWF0ZV9hdCI6MTU2OTIwOTk2OSwiZXhwIjoxNTc2NzMxOTU1LCJpYXQiOjE1NzY0NzI3NTUsImlzcyI6ImRpZGkifQ.1eS63ZAUnF3nAKRD4qCmct4GutZkhoZOgJ3pg37Afl8', '您好,我是在线客服lucky,工号104,有什么可以帮到您呢?', 0, 0, 2398187, 1576474882, 1576025250, 1569209969);
INSERT INTO `admin` VALUES (105, 'http://qiniu.cmp520.com/9195327141090814.jpg', 'test5', '雯雯', '2569d419bfea999ff13fd1f7f4498b89', '13800138000', 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTE4LCJhdmF0YXIiOiJodHRwOi8vcWluaXUuY21wNTIwLmNvbS85MTk1MzI3MTQxMDkwODE0LmpwZyIsInVzZXJuYW1lIjoibGlud2Fud2VuIiwibmlja25hbWUiOiLpm6_pm68iLCJwYXNzd29yZCI6IiIsInBob25lIjoiMTM4MDAxMzgwMDAiLCJ0b2tlbiI6IiIsImF1dG9fcmVwbHkiOiLmgqjlpb3vvIzlvojpq5jlhbTkuLrmgqjmnI3liqHvvIzor7fnroDljZXmj4_ov7Dpl67popgr5o-Q5L6b5LiL5Y2V5omL5py65Y-356CBL-iuouWNleWPt--8jOS7peS-v-W_q-mAn-S4uuaCqOino-WGs-mXrumimOOAgiIsIm9ubGluZSI6MCwicm9vdCI6MCwiY3VycmVudF9jb25fdXNlciI6MjM4Njc0MywibGFzdF9hY3Rpdml0eSI6MTU3NjMwMTQyMCwidXBkYXRlX2F0IjoxNTc2MDI2MzI2LCJjcmVhdGVfYXQiOjE1NzEwMTYxMjAsImV4cCI6MTU3NjU2MDY1MSwiaWF0IjoxNTc2MzAxNDUxLCJpc3MiOiJsaW53YW53ZW4ifQ.1lhMawoCtROiPIs7T2AEMCIX6pgl35oJDRV-nBzKsIE', '您好,我是在线客服雯雯,工号105,有什么可以帮到您呢?', 0, 0, 2399519, 1576490686, 1576026326, 1571016120);
COMMIT;
-- ----------------------------
-- Table structure for company
-- ----------------------------
DROP TABLE IF EXISTS `company`;
CREATE TABLE `company` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`title` char(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`logo` char(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`service` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`email` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`tel` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`address` char(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`update_at` bigint(20) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
-- ----------------------------
-- Records of company
-- ----------------------------
BEGIN;
INSERT INTO `company` VALUES (1, '客服系统', 'http://localhost:8080/static/uploads/images/7485103156563738.png', '周一至周日 9:00 - 18:00', '361554012@qq.com', '400', '广州', 1576680961);
COMMIT;
-- ----------------------------
-- Table structure for contact
-- ----------------------------
DROP TABLE IF EXISTS `contact`;
CREATE TABLE `contact` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`from_account` bigint(20) NOT NULL DEFAULT '0',
`to_account` bigint(20) NOT NULL DEFAULT '0',
`last_message` longtext COLLATE utf8mb4_bin NOT NULL,
`last_message_type` longtext COLLATE utf8mb4_bin NOT NULL,
`create_at` bigint(20) NOT NULL DEFAULT '0',
`is_session_end` int(11) NOT NULL DEFAULT '0',
`delete` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15766 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
-- ----------------------------
-- Table structure for knowledge_base
-- ----------------------------
DROP TABLE IF EXISTS `knowledge_base`;
CREATE TABLE `knowledge_base` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`uid` bigint(20) NOT NULL DEFAULT '0',
`title` char(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`sub_title` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
`content` longtext COLLATE utf8mb4_bin,
`platform` bigint(20) NOT NULL DEFAULT '0',
`update_at` bigint(20) NOT NULL DEFAULT '0',
`create_at` bigint(20) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
-- ----------------------------
-- Table structure for message
-- ----------------------------
DROP TABLE IF EXISTS `message`;
CREATE TABLE `message` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`from_account` bigint(20) NOT NULL DEFAULT '0',
`to_account` bigint(20) NOT NULL DEFAULT '0',
`biz_type` char(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`version` char(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '0',
`platform` bigint(20) NOT NULL DEFAULT '0',
`timestamp` bigint(20) NOT NULL DEFAULT '0',
`payload` longtext COLLATE utf8mb4_bin,
`read` int(11) NOT NULL DEFAULT '1',
`transfer_account` bigint(20) NOT NULL DEFAULT '0',
`delete` int(11) NOT NULL DEFAULT '0',
`key` bigint(20) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=310031 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPACT;
-- ----------------------------
-- Table structure for platform
-- ----------------------------
DROP TABLE IF EXISTS `platform`;
CREATE TABLE `platform` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`title` char(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`alias` char(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`system` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
-- ----------------------------
-- Records of platform
-- ----------------------------
BEGIN;
INSERT INTO `platform` VALUES (1, '全平台', 'all', 1);
INSERT INTO `platform` VALUES (2, 'IOS', 'ios', 1);
INSERT INTO `platform` VALUES (3, '小程序', 'small', 1);
INSERT INTO `platform` VALUES (4, 'PC网页', 'pc', 1);
INSERT INTO `platform` VALUES (5, '移动网页', 'mobile', 1);
INSERT INTO `platform` VALUES (6, 'Android', 'android', 1);
COMMIT;
-- ----------------------------
-- Table structure for qiniu_setting
-- ----------------------------
DROP TABLE IF EXISTS `qiniu_setting`;
CREATE TABLE `qiniu_setting` (
`id` bigint(20) NOT NULL,
`bucket` char(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`access_key` char(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`secret_key` char(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`host` char(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`update_at` bigint(20) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
-- ----------------------------
-- Records of qiniu_setting
-- ----------------------------
BEGIN;
INSERT INTO `qiniu_setting` VALUES (1, 'cmp520', 'eeMnLRyKSTp0JvtsX1fIhZFDWSb6c8qQEBqc5OGZ', 'tPdOHTsSI7d8uXOZUcmVolF7qGARxYvHQrDut8RR', 'http://qiniu.cmp520.com', 1576680587);
COMMIT;
-- ----------------------------
-- Table structure for robot
-- ----------------------------
DROP TABLE IF EXISTS `robot`;
CREATE TABLE `robot` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`nickname` char(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`avatar` char(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`welcome` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`understand` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`artificial` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`switch` int(11) NOT NULL DEFAULT '0',
`platform` bigint(20) NOT NULL DEFAULT '0',
`update_at` bigint(20) NOT NULL DEFAULT '0',
`create_at` bigint(20) DEFAULT NULL,
`system` int(11) NOT NULL DEFAULT '1',
`keyword` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`timeout_text` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`no_services` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`loog_time_wait_text` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1000000001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
-- ----------------------------
-- Records of robot
-- ----------------------------
BEGIN;
INSERT INTO `robot` VALUES (1000000000, 'MIMC机器人助理', 'http://qiniu.cmp520.com/4473448454302935.jpg', '您好,我是MIMC机器人助理,很高兴为您服务,您可以问我一些关于MIMC的相关问题,如需接入在线客服,请回复“人工”。', '我还不理解您的意思呢,换个其他问题看看.', '|转人工|在线客服|找人工|人工服务|我要找人工|人工客服|', 1, 1, 0, 1564626187, 1, '|收费|', '由于您长时间未回复,系统结束了本次会话,如您还有其他问题,请重新发起会话,感谢您的支持', '当前没有值班MM哦,我们的MM值班时间为周一至周五 9:00 - 18:00 您可以在此时间段进行咨询,感谢您的支持', '很抱歉呢,由于目前咨询人数过多,请耐心等待一会哦');
COMMIT;
-- ----------------------------
-- Table structure for services_statistical
-- ----------------------------
DROP TABLE IF EXISTS `services_statistical`;
CREATE TABLE `services_statistical` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_account` bigint(20) NOT NULL DEFAULT '0',
`service_account` bigint(20) NOT NULL DEFAULT '0',
`transfer_account` bigint(20) NOT NULL DEFAULT '0',
`create_at` bigint(20) NOT NULL DEFAULT '0',
`platform` bigint(20) NOT NULL DEFAULT '0',
`nickname` char(255) DEFAULT NULL,
`satisfaction` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=17050 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for shortcut
-- ----------------------------
DROP TABLE IF EXISTS `shortcut`;
CREATE TABLE `shortcut` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`uid` bigint(20) NOT NULL DEFAULT '0',
`content` longtext COLLATE utf8mb4_bin,
`update_at` bigint(20) NOT NULL DEFAULT '0',
`create_at` bigint(20) NOT NULL DEFAULT '0',
`title` longtext COLLATE utf8mb4_bin,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
-- ----------------------------
-- Table structure for system
-- ----------------------------
DROP TABLE IF EXISTS `system`;
CREATE TABLE `system` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`title` char(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`logo` char(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`copy_right` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`upload_mode` int(11) NOT NULL DEFAULT '0',
`update_at` bigint(20) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
-- ----------------------------
-- Records of system
-- ----------------------------
BEGIN;
INSERT INTO `system` VALUES (1, '客服系统-工作台', 'http://localhost:8080/static/uploads/images/1895426542557186.png', '©2019-2029 Macromedia, Inc. All rights reserved.', 1, 1576682340);
COMMIT;
-- ----------------------------
-- Table structure for uploads_config
-- ----------------------------
DROP TABLE IF EXISTS `uploads_config`;
CREATE TABLE `uploads_config` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` char(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
-- ----------------------------
-- Records of uploads_config
-- ----------------------------
BEGIN;
INSERT INTO `uploads_config` VALUES (1, '系统内置存储');
INSERT INTO `uploads_config` VALUES (2, '七牛云存储');
COMMIT;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`uid` bigint(20) NOT NULL DEFAULT '0',
`avatar` char(255) COLLATE utf8mb4_bin DEFAULT NULL,
`address` char(255) COLLATE utf8mb4_bin DEFAULT NULL,
`nickname` char(255) COLLATE utf8mb4_bin DEFAULT NULL,
`token` longtext COLLATE utf8mb4_bin,
`phone` char(255) COLLATE utf8mb4_bin DEFAULT NULL,
`platform` bigint(20) NOT NULL DEFAULT '0',
`online` int(11) NOT NULL DEFAULT '0',
`update_at` bigint(20) NOT NULL DEFAULT '0',
`remarks` char(255) COLLATE utf8mb4_bin DEFAULT NULL,
`last_activity` bigint(20) NOT NULL DEFAULT '0',
`create_at` bigint(20) NOT NULL DEFAULT '0',
`is_window` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10006 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
SET FOREIGN_KEY_CHECKS = 1;
package utils
import (
"io/ioutil"
"kefu_server/models"
"math/rand"
"net/http"
"strings"
"time"
"github.com/astaxie/beego/logs"
)
var userAgentList = []string{"Mozilla/5.0 (compatible, MSIE 10.0, Windows NT, DigExt)",
"Mozilla/4.0 (compatible, MSIE 7.0, Windows NT 5.1, 360SE)",
"Mozilla/4.0 (compatible, MSIE 8.0, Windows NT 6.0, Trident/4.0)",
"Mozilla/5.0 (compatible, MSIE 9.0, Windows NT 6.1, Trident/5.0,",
"Opera/9.80 (Windows NT 6.1, U, en) Presto/2.8.131 Version/11.11",
"Mozilla/4.0 (compatible, MSIE 7.0, Windows NT 5.1, TencentTraveler 4.0)",
"Mozilla/5.0 (Windows, U, Windows NT 6.1, en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
"Mozilla/5.0 (Macintosh, Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11",
"Mozilla/5.0 (Macintosh, U, Intel Mac OS X 10_6_8, en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
"Mozilla/5.0 (Linux, U, Android 3.0, en-us, Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13",
"Mozilla/5.0 (iPad, U, CPU OS 4_3_3 like Mac OS X, en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5",
"Mozilla/4.0 (compatible, MSIE 7.0, Windows NT 5.1, Trident/4.0, SE 2.X MetaSr 1.0, SE 2.X MetaSr 1.0, .NET CLR 2.0.50727, SE 2.X MetaSr 1.0)",
"Mozilla/5.0 (iPhone, U, CPU iPhone OS 4_3_3 like Mac OS X, en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5",
"MQQBrowser/26 Mozilla/5.0 (Linux, U, Android 2.3.7, zh-cn, MB200 Build/GRJ22, CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"}
// GetRandomUserAgent ...
func GetRandomUserAgent() string {
r := rand.New(rand.NewSource(time.Now().UnixNano()))
return userAgentList[r.Intn(len(userAgentList))]
}
// HTTPRequest ...
// url 访问的链接
// method post, get 等
// data body 数据
// token 授权token
func HTTPRequest(url string, method string, bodyData string, token string) *models.Response {
client := &http.Client{}
response := new(models.Response)
req, err := http.NewRequest(method, url, strings.NewReader(bodyData))
if err != nil {
response.Code = 500
response.Message = "链接错误"
logs.Error(err)
}
req.Header.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8")
req.Header.Add("Accept-Language", "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3")
req.Header.Add("Connection", "keep-alive")
req.Header.Add("User-Agent", GetRandomUserAgent())
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
req.Header.Set("Access-Control-Max-Age", "2592000")
req.Header.Set("Authorization", token)
req.Header.Set("usertype", "cmp_app")
resp, err := client.Do(req)
response.Code = resp.StatusCode
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
response.Message = "请求错误"
logs.Error(err)
return response
}
if resp.StatusCode != 200 {
response.Message = "请求错误"
return response
}
response.Data = string(body)
return response
}
package utils
// InExistInSlice 检查内容是否在slice中存在
func InExistInSlice(input string, slice []string) bool {
for _, v := range slice {
if v == input {
return true
}
}
return false
}
package utils
import (
"kefu_server/models"
"github.com/astaxie/beego/context"
)
// ResponseError ...
func ResponseError(ctx *context.Context, message string, error interface{}) *models.Response {
ctx.Output.Status = 400
ctx.Output.Header("Access-Control-Max-Age", "2592000")
return &models.Response{Code: 400, Message: message, Data: error}
}
package utils
import (
"kefu_server/models"
"github.com/astaxie/beego/context"
)
// ResponseSuccess ...
func ResponseSuccess(ctx *context.Context, message string, data interface{}) *models.Response {
ctx.Output.Header("Access-Control-Max-Age", "2592000")
return &models.Response{Code: 200, Message: message, Data: data}
}
package utils
import (
"fmt"
"kefu_server/models"
"time"
"github.com/astaxie/beego/logs"
"github.com/dgrijalva/jwt-go"
)
// KEY ...
// DEFAULT_EXPIRE_SECONDS ...
const (
KEY string = "JWT-ARY-STARK"
DEFAULT_EXPIRE_SECONDS int = 259200
)
// MyCustomClaims JWT -- json web token
// HEADER PAYLOAD SIGNATURE
// This struct is the PAYLOAD
type MyCustomClaims struct {
models.Admin
jwt.StandardClaims
}
// RefreshToken 刷新token
func RefreshToken(tokenString string) (string, error) {
// first get previous token
token, err := jwt.ParseWithClaims(
tokenString, &MyCustomClaims{},
func(token *jwt.Token) (interface{}, error) {
return []byte(KEY), nil
})
claims, ok := token.Claims.(*MyCustomClaims)
if !ok || !token.Valid {
return "", err
}
mySigningKey := []byte(KEY)
expireAt := time.Now().Add(time.Second * time.Duration(DEFAULT_EXPIRE_SECONDS)).Unix()
newClaims := MyCustomClaims{
claims.Admin,
jwt.StandardClaims{
ExpiresAt: expireAt,
Issuer: claims.Admin.UserName,
IssuedAt: time.Now().Unix(),
},
}
// generate new token with new claims
newToken := jwt.NewWithClaims(jwt.SigningMethodHS256, newClaims)
tokenStr, err := newToken.SignedString(mySigningKey)
if err != nil {
logs.Error("generate new fresh json web token failed !! error :", err)
return "", err
}
return "Bearer " + tokenStr, err
}
// ValidateToken 验证token
func ValidateToken(tokenString string) error {
token, err := jwt.ParseWithClaims(
tokenString,
&MyCustomClaims{},
func(token *jwt.Token) (interface{}, error) {
return []byte(KEY), nil
})
if err != nil && !token.Valid {
logs.Error("validate tokenString failed !!!", err)
return err
}
return nil
}
// DecodeToken 解析token
func DecodeToken(token string) (map[string]interface{}, error) {
parseAuth, err := jwt.Parse(token, func(*jwt.Token) (interface{}, error) {
return []byte(KEY), nil
})
//将token中的内容存入parmMap
claim := parseAuth.Claims.(jwt.MapClaims)
var parmMap map[string]interface{}
parmMap = make(map[string]interface{})
for key, val := range claim {
parmMap[key] = val
}
return parmMap, err
}
// GenerateToken 生成token
func GenerateToken(admin models.Admin) (tokenString string) {
var expiredSeconds int
expiredSeconds = 259200
if expiredSeconds == 0 {
expiredSeconds = DEFAULT_EXPIRE_SECONDS
}
// Create the Claims
mySigningKey := []byte(KEY)
expireAt := time.Now().Add(time.Second * time.Duration(expiredSeconds)).Unix()
fmt.Println("token will be expired at ", time.Unix(expireAt, 0))
// pass parameter to this func or not
claims := MyCustomClaims{
admin,
jwt.StandardClaims{
ExpiresAt: expireAt,
Issuer: admin.UserName,
IssuedAt: time.Now().Unix(),
},
}
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
tokenStr, err := token.SignedString(mySigningKey)
if err != nil {
fmt.Println("generate json web token failed !! error :", err)
}
return "Bearer " + tokenStr
}
// return this result to client then all later request should have header "Authorization: Bearer <token> "
func getHeaderTokenValue(tokenString string) string {
//Authorization: Bearer <token>
return fmt.Sprintf("Bearer %s", tokenString)
}
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 sign in to comment