diff --git a/application/init.go b/application/init.go
index 484f952..7019d56 100644
--- a/application/init.go
+++ b/application/init.go
@@ -22,6 +22,10 @@ import (
"strconv"
)
+func init() {
+ log.SetFlags(log.LstdFlags | log.Llongfile)
+}
+
// 初始化日志
func InitLogs() (fn func(), err error) {
logger := logs.NewLog(
@@ -40,13 +44,23 @@ func InitLogs() (fn func(), err error) {
// 初始化mysql连接
func InitMysql() (fn func(), err error) {
config := model.GlobConfig.Comm.Mysql
- dbSource := fmt.Sprintf(
- "%s:%s@tcp(%s:%s)/%s",
- config.Username,
- config.Pwd,
- config.IP,
- config.Port,
- config.DbName)
+ dbSource := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8&parseTime=True",
+ config.Username, config.Pwd, config.IP, config.Port, config.DbName)
+ dbNotDbSource := fmt.Sprintf("%s:%s@tcp(%s:%s)/?charset=utf8&parseTime=True",
+ config.Username, config.Pwd, config.IP, config.Port)
+
+ sqlX, err := db.NewSQLX("mysql", dbNotDbSource, config.MaxOpenConns, config.MaxIdleConns)
+ if err != nil {
+ return nil, fmt.Errorf("创建不指定数据库的mysql连接池报错:%v", err)
+ }
+
+ // 数据库不存在,创建它
+ sql := fmt.Sprintf(`create database if not exists %s default charset utf8mb4 collate utf8mb4_unicode_ci`, config.DbName)
+ if _, e := sqlX.Exec(sql); e != nil {
+ return nil, fmt.Errorf("failed to create database:%v", e)
+ }
+ _ = sqlX.Close()
+
db.Sqlx, err = db.NewSQLX(
"mysql",
dbSource,
@@ -70,18 +84,9 @@ func InitClickHouse() (fn func(), err error) {
config := model.GlobConfig.Comm.ClickHouse
dbSource := fmt.Sprintf(
"tcp://%s:%s?username=%s&password=%s&database=%s&compress=true",
- config.IP,
- config.Port,
- config.Username,
- config.Pwd,
- config.DbName,
- )
- db.ClickHouseSqlx, err = db.NewSQLX(
- "clickhouse",
- dbSource,
- config.MaxOpenConns,
- config.MaxIdleConns,
+ config.IP, config.Port, config.Username, config.Pwd, config.DbName,
)
+ db.ClickHouseSqlx, err = db.NewSQLX("clickhouse", dbSource, config.MaxOpenConns, config.MaxIdleConns)
if err != nil {
return fn, fmt.Errorf("init clickhouse error:%v", err)
diff --git a/build_all_bin_linux.sh b/build_all_bin_linux.sh
new file mode 100755
index 0000000..35df655
--- /dev/null
+++ b/build_all_bin_linux.sh
@@ -0,0 +1,6 @@
+export GOOS=linux && \
+ go build -tags netgo -ldflags "-s -w" -trimpath -buildvcs=false -o bin/linux/manager cmd/manager/main.go && \
+ go build -tags netgo -ldflags "-s -w" -trimpath -buildvcs=false -o bin/linux/report_server cmd/report_server/main.go && \
+ go build -tags netgo -ldflags "-s -w" -trimpath -buildvcs=false -o bin/linux/sinker cmd/sinker/main.go && \
+ go build -tags netgo -ldflags "-s -w" -trimpath -buildvcs=false -o bin/linux/init_app cmd/init_app/main.go
+echo "build success"
\ No newline at end of file
diff --git a/build_all_linux.sh b/build_all_linux.sh
index 805e6b3..fedd064 100755
--- a/build_all_linux.sh
+++ b/build_all_linux.sh
@@ -1,6 +1,7 @@
cd vue && npm run build:prod \
- && cd .. && export GOOS=linux&&go build -ldflags="-w -s" -o bin/linux/manager cmd/manager/main.go \
- && go build -ldflags="-w -s" -o bin/linux/report_server cmd/report_server/main.go \
- && go build -ldflags="-w -s" -o bin/linux/sinker cmd/sinker/main.go \
- && go build -ldflags="-w -s" -o bin/linux/init_app cmd/init_app/main.go
+ && cd .. && export GOOS=linux \
+ && go build -tags netgo -ldflags "-s -w" -trimpath -buildvcs=false -o bin/linux/manager cmd/manager/main.go \
+ && go build -tags netgo -ldflags "-s -w" -trimpath -buildvcs=false -o bin/linux/report_server cmd/report_server/main.go \
+ && go build -tags netgo -ldflags "-s -w" -trimpath -buildvcs=false -o bin/linux/sinker cmd/sinker/main.go \
+ && go build -tags netgo -ldflags "-s -w" -trimpath -buildvcs=false -o bin/linux/init_app cmd/init_app/main.go
echo "build success"
\ No newline at end of file
diff --git a/cmd/init_app/ck/init.go b/cmd/init_app/ck/init.go
index 2252eab..011a99e 100644
--- a/cmd/init_app/ck/init.go
+++ b/cmd/init_app/ck/init.go
@@ -8,9 +8,19 @@ import (
"log"
)
-//初始化clickhouse 表数据
-func Init() {
+func CreateDb() (func(), error) {
+ config := model.GlobConfig.Comm.ClickHouse
+ dbSource := fmt.Sprintf(
+ "tcp://%s:%s?username=%s&password=%s&compress=true&database=default",
+ config.IP, config.Port, config.Username, config.Pwd)
+
var err error
+ db.ClickHouseSqlx, err = db.NewSQLX("clickhouse", dbSource, config.MaxOpenConns, config.MaxIdleConns)
+ if err != nil {
+ log.Println(fmt.Sprintf("clickhouse 创建 "+model.GlobConfig.Comm.ClickHouse.DbName+" 失败:%s", err.Error()))
+ panic(err)
+ }
+ defer db.ClickHouseSqlx.Close()
_, err = db.ClickHouseSqlx.Exec(` create database if not exists ` + model.GlobConfig.Comm.ClickHouse.DbName + ` ` + sinker.GetClusterSql())
@@ -18,6 +28,12 @@ func Init() {
log.Println(fmt.Sprintf("clickhouse 建库 "+model.GlobConfig.Comm.ClickHouse.DbName+" 失败:%s", err.Error()))
panic(err)
}
+ return func() {}, nil
+}
+
+// 初始化clickhouse 表数据
+func Init() (func(), error) {
+ var err error
_, err = db.ClickHouseSqlx.Exec(`DROP TABLE IF EXISTS xwl_acceptance_status` + sinker.GetClusterSql() + `;`)
@@ -102,4 +118,6 @@ func Init() {
}
log.Println("初始化CK数据完成!")
+
+ return func() {}, nil
}
diff --git a/cmd/init_app/main.go b/cmd/init_app/main.go
index 76963ea..20d6f4b 100644
--- a/cmd/init_app/main.go
+++ b/cmd/init_app/main.go
@@ -36,6 +36,7 @@ func main() {
application.WithConfigFileExt(configFileExt),
application.RegisterInitFnObserver(application.InitLogs),
application.RegisterInitFnObserver(application.InitMysql),
+ application.RegisterInitFnObserver(ck.CreateDb),
application.RegisterInitFnObserver(application.InitClickHouse),
)
diff --git a/config/config.json b/config/config.json
index b35ddc6..2345f2d 100644
--- a/config/config.json
+++ b/config/config.json
@@ -36,8 +36,8 @@
"mysql": {
"username":"root",
"pwd":"dev123",
- "ip":"192.168.78.128",
- "port":"3306",
+ "ip":"192.168.6.83",
+ "port":"13306",
"dbName":"databi",
"maxOpenConns":10,
"maxIdleConns":10
@@ -45,7 +45,7 @@
"clickhouse": {
"username":"root",
"pwd":"dev123",
- "ip":"192.168.78.128",
+ "ip":"192.168.6.83",
"port":"9000",
"dbName":"databi",
"clusterName":"",
@@ -66,7 +66,7 @@
"realTimeDataGroup": "realTimeDataGroup2"
},
"redis": {
- "addr":"192.168.78.128:6379",
+ "addr":"192.168.6.83:6379",
"passwd":"",
"db": 7,
"maxIdle": 10,
diff --git a/engine/db/sqlx.go b/engine/db/sqlx.go
index 2b18870..6e4d9a5 100644
--- a/engine/db/sqlx.go
+++ b/engine/db/sqlx.go
@@ -52,12 +52,12 @@ func NewSQLX(driverName, dbSource string, maxOpenConns, maxIdleConns int) (db *s
if err != nil {
return nil, fmt.Errorf("sqlx ping driver %v source %v error:%v", driverName, dbSource, err)
}
-
+
go func() {
for {
err = db.Ping()
if err != nil {
- log.Println("mysql db can't connect!")
+ log.Printf("mysql db can't connect!:%v", err)
}
time.Sleep(time.Minute)
}
diff --git a/ops/docker/Dockerfile_init b/ops/docker/Dockerfile_init
index f83fc59..dee9752 100644
--- a/ops/docker/Dockerfile_init
+++ b/ops/docker/Dockerfile_init
@@ -1,8 +1,11 @@
-FROM openjdk:8-jdk-alpine
+FROM harbor.devops.u.niu/tools/alpine:3.21
+
+RUN apk add libc6-compat && apk add tzdata
+
WORKDIR /data
-COPY init_app .
+COPY linux/init_app .
RUN mkdir -p config
diff --git a/ops/docker/Dockerfile_manager b/ops/docker/Dockerfile_manager
index 7264856..7dda4bd 100644
--- a/ops/docker/Dockerfile_manager
+++ b/ops/docker/Dockerfile_manager
@@ -1,8 +1,10 @@
-FROM openjdk:8-jdk-alpine
+FROM harbor.devops.u.niu/tools/alpine:3.21
+
+RUN apk add libc6-compat && apk add tzdata
WORKDIR /data
-COPY manager .
+COPY linux/manager .
RUN mkdir -p config
diff --git a/ops/docker/Dockerfile_reporter b/ops/docker/Dockerfile_reporter
new file mode 100644
index 0000000..1624a53
--- /dev/null
+++ b/ops/docker/Dockerfile_reporter
@@ -0,0 +1,11 @@
+FROM harbor.devops.u.niu/tools/alpine:3.21
+
+RUN apk add libc6-compat && apk add tzdata
+
+WORKDIR /data
+
+COPY linux/report_server .
+
+RUN mkdir -p config
+
+CMD ["./report_server", "-configFileDir=./config"]
\ No newline at end of file
diff --git a/ops/docker/Dockerfile_sinker b/ops/docker/Dockerfile_sinker
new file mode 100644
index 0000000..2df10e9
--- /dev/null
+++ b/ops/docker/Dockerfile_sinker
@@ -0,0 +1,11 @@
+FROM harbor.devops.u.niu/tools/alpine:3.21
+
+RUN apk add libc6-compat && apk add tzdata
+
+WORKDIR /data
+
+COPY linux/sinker .
+
+RUN mkdir -p config
+
+CMD ["./sinker", "-configFileDir=./config"]
\ No newline at end of file
diff --git a/ops/docker/build_all.sh b/ops/docker/build_all.sh
new file mode 100755
index 0000000..b2e4102
--- /dev/null
+++ b/ops/docker/build_all.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+set -e
+
+apps=(init manager reporter sinker)
+build_ctx="../../bin/linux"
+img_prefix="harbor.gamegold.net.cn/bi"
+img_tag="1.0.1"
+
+cp -rf ../../bin/linux .
+
+for app in "${apps[@]}"; do
+ echo "准备构建:$app"
+ docker build -t $img_prefix/$app:$img_tag --file Dockerfile_$app .
+ docker push $img_prefix/$app:$img_tag
+done
+
+rm -rf linux
\ No newline at end of file
diff --git a/ops/docker/docker-compose.yaml b/ops/docker/docker-compose.yaml
new file mode 100644
index 0000000..9745389
--- /dev/null
+++ b/ops/docker/docker-compose.yaml
@@ -0,0 +1,30 @@
+services:
+ manager:
+ image: harbor.devops.u.niu/bi/manager:1.0.0
+ restart: always
+ volumes:
+ - ./logs:/data/logs
+ - ./config:/data/config
+ - /etc/localtime:/etc/localtime
+ - /etc/timezone:/etc/timezone
+ ports:
+ - 11090:8090
+ reporter:
+ image: harbor.devops.u.niu/bi/reporter:1.0.0
+ restart: always
+ volumes:
+ - ./logs:/data/logs
+ - ./config:/data/config
+ - /etc/localtime:/etc/localtime
+ - /etc/timezone:/etc/timezone
+ ports:
+ - 11091:8091
+
+ sinker:
+ image: harbor.devops.u.niu/bi/sinker:1.0.0
+ restart: always
+ volumes:
+ - ./logs:/data/logs
+ - ./config:/data/config
+ - /etc/localtime:/etc/localtime
+ - /etc/timezone:/etc/timezone
\ No newline at end of file
diff --git a/ops/docker/run.sh b/ops/docker/run.sh
new file mode 100644
index 0000000..43066bc
--- /dev/null
+++ b/ops/docker/run.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+set -e
+
+docker pull harbor.devops.u.niu/bi/init:1.0.0
+docker run -ti -v ./config:/data/config -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone harbor.devops.u.niu/bi/init:1.0.0
+
+docker compose up -d
\ No newline at end of file
diff --git a/platform-basic-libs/util/token.go b/platform-basic-libs/util/token.go
index 01fe0ae..4909414 100644
--- a/platform-basic-libs/util/token.go
+++ b/platform-basic-libs/util/token.go
@@ -10,7 +10,14 @@ import (
var TokenBucket sync.Map
func GetUUid() string {
- flake := sonyflake.NewSonyflake(sonyflake.Settings{})
+ flake := sonyflake.NewSonyflake(sonyflake.Settings{
+ MachineID: func() (uint16, error) {
+ return uint16(1), nil
+ },
+ })
+ if flake == nil {
+ log.Printf("new sony flake error!!")
+ }
id, err := flake.NextID()
if err != nil {
log.Println("err", err)
diff --git a/views/dist/index.html b/views/dist/index.html
index 3459bf8..4e0cd38 100644
--- a/views/dist/index.html
+++ b/views/dist/index.html
@@ -1 +1 @@
-
铸龙-埋点数据分析平台
\ No newline at end of file
+铸龙-埋点数据分析平台
\ No newline at end of file
diff --git a/views/dist/static/js/chunk-689cea2e.29aa4e27.js b/views/dist/static/js/chunk-689cea2e.29aa4e27.js
new file mode 100644
index 0000000..353c2c1
--- /dev/null
+++ b/views/dist/static/js/chunk-689cea2e.29aa4e27.js
@@ -0,0 +1 @@
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-689cea2e"],{"49eb":function(e,t,a){"use strict";a.r(t);var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"app-container"},[a("el-card",{staticClass:"box-card",staticStyle:{"min-height":"850px"}},[a("div",{staticStyle:{height:"50px","line-height":"50px",display:"flex","align-items":"center","justify-content":"space-between","border-bottom":"1px solid #f0f2f5"}},[a("a-tooltip",{staticStyle:{cursor:"pointer"},attrs:{placement:"right"}},[a("template",{slot:"title"},[a("span",[e._v("将具有共同特征的用户组建成分群,方便在各种模型中利用分群进行细分筛选分析")])]),e._v(" "),a("span",{staticClass:"title_xwl",staticStyle:{color:"#202d3f"}},[e._v(" 用户分群 "),a("a-icon",{attrs:{type:"question-circle"}})],1)],2),e._v(" "),a("div",[a("a-input-search",{staticStyle:{width:"200px"},attrs:{placeholder:"请输入搜索"},model:{value:e.input,callback:function(t){e.input=t},expression:"input"}})],1)],1),e._v(" "),e.tableShow?a("page-table",{attrs:{border:!1,"connect-loading":e.loading,"table-list":e.tableData,"table-info":e.tableInfo,input:e.input}},[a("el-table-column",{attrs:{slot:"operate",align:"center",prop:"id",label:"分群ID",width:"100"},slot:"operate"}),e._v(" "),a("el-table-column",{attrs:{slot:"operate",align:"center",label:"分群名"},slot:"operate",scopedSlots:e._u([{key:"default",fn:function(t){return[t.row.isEdit?a("div",[a("el-input",{attrs:{size:"small"},model:{value:t.row.group_name,callback:function(a){e.$set(t.row,"group_name",a)},expression:"scope.row.group_name"}})],1):a("div",[e._v("\n "+e._s(t.row.group_name)+"\n ")])]}}],null,!1,2716694467)}),e._v(" "),a("el-table-column",{attrs:{slot:"operate",align:"center",label:"分群备注"},slot:"operate",scopedSlots:e._u([{key:"default",fn:function(t){return[t.row.isEdit?a("div",[a("el-input",{attrs:{size:"small"},model:{value:t.row.group_remark,callback:function(a){e.$set(t.row,"group_remark",a)},expression:"scope.row.group_remark"}})],1):a("div",[e._v("\n "+e._s(t.row.group_remark)+"\n ")])]}}],null,!1,1958917379)}),e._v(" "),a("el-table-column",{attrs:{slot:"operate",align:"center",sortable:"",prop:"create_time",label:"创建时间",width:"150"},slot:"operate"}),e._v(" "),a("el-table-column",{attrs:{slot:"operate",align:"center",sortable:"",prop:"update_time",label:"更新时间",width:"150"},slot:"operate"}),e._v(" "),a("el-table-column",{attrs:{slot:"operate",align:"center",sortable:"",prop:"user_count",label:"用户群人数",width:"100"},slot:"operate"}),e._v(" "),a("el-table-column",{attrs:{slot:"operate",align:"center",fixed:"right",label:"操作",width:"500"},slot:"operate",scopedSlots:e._u([{key:"default",fn:function(t){return[t.row.isEdit?a("el-button",{attrs:{size:"mini",icon:"el-icon-check"},nativeOn:{click:function(a){return a.preventDefault(),e.Save(t.row.index,t.row)}}},[e._v("\n 保存\n ")]):e._e(),e._v(" "),t.row.isEdit?e._e():a("el-button",{attrs:{type:"primary",size:"mini",icon:"el-icon-edit"},nativeOn:{click:function(a){return a.preventDefault(),e.Update(t.row.index)}}},[e._v("\n 修改\n ")]),e._v(" "),a("el-button",{attrs:{type:"danger",size:"mini",icon:"el-icon-close"},nativeOn:{click:function(a){return a.preventDefault(),e.Delete(t.row.id,t.$index)}}},[e._v("\n 删除\n ")]),e._v(" "),a("el-button",{attrs:{type:"success",size:"mini",icon:"el-icon-user"},nativeOn:{click:function(a){return a.preventDefault(),e.drillDown(t.row.user_list)}}},[e._v("\n 进入该用户分群\n ")])]}}],null,!1,3216082355)})],1):e._e()],1)],1)},r=[],s=(a("ac6a"),a("c80c")),i=(a("96cf"),a("3b8d")),o=a("fa8d"),l={name:"Tag",components:{PageTable:function(){return a.e("chunk-b022bae4").then(a.bind(null,"e94a"))},AddUserGroup:function(){return a.e("chunk-2d0e1fde").then(a.bind(null,"7d94"))}},data:function(){return{tableInfo:[{slot:"operate"}],tableShow:!0,input:"",loading:!1,tableData:[]}},mounted:function(){this.init()},methods:{drillDown:function(e){this.$store.dispatch("baseData/SETUI",e),this.$router.push({path:"/user-analysis/user_list"})},Delete:function(){var e=Object(i["a"])(Object(s["a"])().mark((function e(t,a){var n=this;return Object(s["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:this.$confirm("确定删除该分群吗?","警告",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"}).then(Object(i["a"])(Object(s["a"])().mark((function e(){var r,i;return Object(s["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return r={appid:n.$store.state.baseData.EsConnectID},r["id"]=t,e.next=4,Object(o["b"])(r);case 4:if(i=e.sent,0==i.code){e.next=8;break}return n.$message({showClose:!0,offset:60,type:"error",message:i.msg}),e.abrupt("return");case 8:n.$message({showClose:!0,offset:60,type:"success",message:i.msg}),n.tableData.splice(a,1),n.refreshTable();case 11:case"end":return e.stop()}}),e)})))).catch((function(e){console.error(e)}));case 1:case"end":return e.stop()}}),e,this)})));function t(t,a){return e.apply(this,arguments)}return t}(),Save:function(){var e=Object(i["a"])(Object(s["a"])().mark((function e(t,a){var n,r,i;return Object(s["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return n={appid:this.$store.state.baseData.EsConnectID},n["id"]=a["id"],n["name"]=a["group_name"],n["remark"]=a["group_remark"],e.next=6,Object(o["c"])(n);case 6:if(r=e.sent,0==r.code){e.next=10;break}return this.$message({showClose:!0,offset:60,type:"error",message:r.msg}),e.abrupt("return");case 10:this.$message({showClose:!0,offset:60,type:"success",message:r.msg}),e.t0=Object(s["a"])().keys(this.tableData);case 12:if((e.t1=e.t0()).done){e.next=19;break}if(i=e.t1.value,this.tableData[i].index!=t){e.next=17;break}return this.tableData[i].isEdit=!1,e.abrupt("break",19);case 17:e.next=12;break;case 19:this.refreshTable();case 20:case"end":return e.stop()}}),e,this)})));function t(t,a){return e.apply(this,arguments)}return t}(),Update:function(e){for(var t in this.tableData)if(this.tableData[t].index==e){this.tableData[t].isEdit=!0;break}this.refreshTable()},refreshTable:function(){var e=this;this.tableShow=!1,this.$nextTick((function(){e.tableShow=!0}))},init:function(){var e=Object(i["a"])(Object(s["a"])().mark((function e(){var t,a,n;return Object(s["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return this.tableData=[],t={appid:this.$store.state.baseData.EsConnectID},this.loading=!0,e.next=5,Object(o["d"])(t);case 5:if(a=e.sent,this.loading=!1,0==a.code){e.next=11;break}return this.$message({showClose:!0,offset:60,type:"error",message:a.msg}),this.refreshTable(),e.abrupt("return");case 11:for(n in this.$message({showClose:!0,offset:60,type:"success",message:a.msg}),null==a.data&&(a.data=[]),this.tableData=a.data,this.tableData)this.tableData[n].index=n,this.tableData[n].isEdit=!1;this.refreshTable();case 16:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}()}},c=l,u=a("2877"),p=Object(u["a"])(c,n,r,!1,null,"4f18875c",null);t["default"]=p.exports},fa8d:function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"c",(function(){return i})),a.d(t,"b",(function(){return o})),a.d(t,"d",(function(){return l})),a.d(t,"e",(function(){return c}));var n=a("b775"),r="/api/user_group/";function s(e){return Object(n["a"])({url:r+"AddUserGroup",method:"post",data:e})}function i(e){return Object(n["a"])({url:r+"ModifyUserGroup",method:"post",data:e})}function o(e){return Object(n["a"])({url:r+"DeleteUserGroup",method:"post",data:e})}function l(e){return Object(n["a"])({url:r+"UserGroupList",method:"post",data:e})}function c(e){return Object(n["a"])({url:r+"UserGroupSelect",method:"post",data:e})}}}]);
\ No newline at end of file
diff --git a/views/dist/static/js/chunk-689cea2e.9fe40d46.js b/views/dist/static/js/chunk-689cea2e.9fe40d46.js
deleted file mode 100644
index cc0f5ca..0000000
--- a/views/dist/static/js/chunk-689cea2e.9fe40d46.js
+++ /dev/null
@@ -1 +0,0 @@
-(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-689cea2e"],{"49eb":function(e,t,a){"use strict";a.r(t);var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"app-container"},[a("el-card",{staticClass:"box-card",staticStyle:{"min-height":"850px"}},[a("div",{staticStyle:{height:"50px","line-height":"50px",display:"flex","align-items":"center","justify-content":"space-between","border-bottom":"1px solid #f0f2f5"}},[a("a-tooltip",{staticStyle:{cursor:"pointer"},attrs:{placement:"right"}},[a("template",{slot:"title"},[a("span",[e._v("将具有共同特征的用户组建成分群,方便在各种模型中利用分群进行细分筛选分析")])]),e._v(" "),a("span",{staticClass:"title_xwl",staticStyle:{color:"#202d3f"}},[e._v(" 用户分群 "),a("a-icon",{attrs:{type:"question-circle"}})],1)],2),e._v(" "),a("div",[a("a-input-search",{staticStyle:{width:"200px"},attrs:{placeholder:"请输入搜索"},model:{value:e.input,callback:function(t){e.input=t},expression:"input"}})],1)],1),e._v(" "),e.tableShow?a("page-table",{attrs:{border:!1,"connect-loading":e.loading,"table-list":e.tableData,"table-info":e.tableInfo,input:e.input}},[a("el-table-column",{attrs:{slot:"operate",align:"center",prop:"id",label:"分群ID",width:"100"},slot:"operate"}),e._v(" "),a("el-table-column",{attrs:{slot:"operate",align:"center",label:"分群名"},slot:"operate",scopedSlots:e._u([{key:"default",fn:function(t){return[t.row.isEdit?a("div",[a("el-input",{attrs:{size:"small"},model:{value:t.row.group_name,callback:function(a){e.$set(t.row,"group_name",a)},expression:"scope.row.group_name"}})],1):a("div",[e._v("\n "+e._s(t.row.group_name)+"\n ")])]}}],null,!1,3358576963)}),e._v(" "),a("el-table-column",{attrs:{slot:"operate",align:"center",label:"分群备注"},slot:"operate",scopedSlots:e._u([{key:"default",fn:function(t){return[t.row.isEdit?a("div",[a("el-input",{attrs:{size:"small"},model:{value:t.row.group_remark,callback:function(a){e.$set(t.row,"group_remark",a)},expression:"scope.row.group_remark"}})],1):a("div",[e._v("\n "+e._s(t.row.group_remark)+"\n ")])]}}],null,!1,3981738371)}),e._v(" "),a("el-table-column",{attrs:{slot:"operate",align:"center",sortable:"",prop:"create_time",label:"创建时间",width:"150"},slot:"operate"}),e._v(" "),a("el-table-column",{attrs:{slot:"operate",align:"center",sortable:"",prop:"update_time",label:"更新时间",width:"150"},slot:"operate"}),e._v(" "),a("el-table-column",{attrs:{slot:"operate",align:"center",sortable:"",prop:"user_count",label:"用户群人数",width:"100"},slot:"operate"}),e._v(" "),a("el-table-column",{attrs:{slot:"operate",align:"center",fixed:"right",label:"操作",width:"500"},slot:"operate",scopedSlots:e._u([{key:"default",fn:function(t){return[t.row.isEdit?a("el-button",{attrs:{size:"mini",icon:"el-icon-check"},nativeOn:{click:function(a){return a.preventDefault(),e.Save(t.row.index,t.row)}}},[e._v("\n 保存\n ")]):e._e(),e._v(" "),t.row.isEdit?e._e():a("el-button",{attrs:{type:"primary",size:"mini",icon:"el-icon-edit"},nativeOn:{click:function(a){return a.preventDefault(),e.Update(t.row.index)}}},[e._v("\n 修改\n ")]),e._v(" "),a("el-button",{attrs:{type:"danger",size:"mini",icon:"el-icon-close"},nativeOn:{click:function(a){return a.preventDefault(),e.Delete(t.row.id,t.$index)}}},[e._v("\n 删除\n ")]),e._v(" "),a("el-button",{attrs:{type:"success",size:"mini",icon:"el-icon-user"},nativeOn:{click:function(a){return a.preventDefault(),e.drillDown(t.row.user_list)}}},[e._v("\n 进入该用户分群\n ")])]}}],null,!1,3433526579)})],1):e._e()],1)],1)},r=[],s=(a("ac6a"),a("c80c")),i=(a("96cf"),a("3b8d")),o=a("fa8d"),l={name:"Tag",components:{PageTable:function(){return a.e("chunk-b022bae4").then(a.bind(null,"e94a"))},AddUserGroup:function(){return a.e("chunk-2d0e1fde").then(a.bind(null,"7d94"))}},data:function(){return{tableInfo:[{slot:"operate"}],tableShow:!0,input:"",loading:!1,tableData:[]}},mounted:function(){this.init()},methods:{drillDown:function(e){this.$store.dispatch("baseData/SETUI",e),this.$router.push({path:"/user-analysis/user_list"})},Delete:function(){var e=Object(i["a"])(Object(s["a"])().mark((function e(t,a){var n=this;return Object(s["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:this.$confirm("确定删除该分群吗?","警告",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"}).then(Object(i["a"])(Object(s["a"])().mark((function e(){var r,i;return Object(s["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return r={appid:n.$store.state.baseData.EsConnectID},r["id"]=t,e.next=4,Object(o["b"])(r);case 4:if(i=e.sent,0==i.code){e.next=8;break}return n.$message({showClose:!0,offset:60,type:"error",message:i.msg}),e.abrupt("return");case 8:n.$message({showClose:!0,offset:60,type:"success",message:i.msg}),n.tableData.splice(a,1),n.refreshTable();case 11:case"end":return e.stop()}}),e)})))).catch((function(e){console.error(e)}));case 1:case"end":return e.stop()}}),e,this)})));function t(t,a){return e.apply(this,arguments)}return t}(),Save:function(){var e=Object(i["a"])(Object(s["a"])().mark((function e(t,a){var n,r,i;return Object(s["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return n={appid:this.$store.state.baseData.EsConnectID},n["id"]=a["id"],n["name"]=a["group_name"],n["remark"]=a["group_remark"],e.next=6,Object(o["c"])(n);case 6:if(r=e.sent,0==r.code){e.next=10;break}return this.$message({showClose:!0,offset:60,type:"error",message:r.msg}),e.abrupt("return");case 10:this.$message({showClose:!0,offset:60,type:"success",message:r.msg}),e.t0=Object(s["a"])().keys(this.tableData);case 12:if((e.t1=e.t0()).done){e.next=19;break}if(i=e.t1.value,this.tableData[i].index!=t){e.next=17;break}return this.tableData[i].isEdit=!1,e.abrupt("break",19);case 17:e.next=12;break;case 19:this.refreshTable();case 20:case"end":return e.stop()}}),e,this)})));function t(t,a){return e.apply(this,arguments)}return t}(),Update:function(e){for(var t in this.tableData)if(this.tableData[t].index==e){this.tableData[t].isEdit=!0;break}this.refreshTable()},refreshTable:function(){var e=this;this.tableShow=!1,this.$nextTick((function(){e.tableShow=!0}))},init:function(){var e=Object(i["a"])(Object(s["a"])().mark((function e(){var t,a,n;return Object(s["a"])().wrap((function(e){while(1)switch(e.prev=e.next){case 0:return this.tableData=[],t={appid:this.$store.state.baseData.EsConnectID},this.loading=!0,e.next=5,Object(o["d"])(t);case 5:if(a=e.sent,this.loading=!1,0==a.code){e.next=11;break}return this.$message({showClose:!0,offset:60,type:"error",message:a.msg}),this.refreshTable(),e.abrupt("return");case 11:for(n in this.$message({showClose:!0,offset:60,type:"success",message:a.msg}),null==a.data&&(a.data=[]),this.tableData=a.data,this.tableData)this.tableData[n].index=n,this.tableData[n].isEdit=!1;this.refreshTable();case 16:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}()}},c=l,u=a("2877"),p=Object(u["a"])(c,n,r,!1,null,"ffe0cadc",null);t["default"]=p.exports},fa8d:function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"c",(function(){return i})),a.d(t,"b",(function(){return o})),a.d(t,"d",(function(){return l})),a.d(t,"e",(function(){return c}));var n=a("b775"),r="/api/user_group/";function s(e){return Object(n["a"])({url:r+"AddUserGroup",method:"post",data:e})}function i(e){return Object(n["a"])({url:r+"ModifyUserGroup",method:"post",data:e})}function o(e){return Object(n["a"])({url:r+"DeleteUserGroup",method:"post",data:e})}function l(e){return Object(n["a"])({url:r+"UserGroupList",method:"post",data:e})}function c(e){return Object(n["a"])({url:r+"UserGroupSelect",method:"post",data:e})}}}]);
\ No newline at end of file
diff --git a/vue/.env.development b/vue/.env.development
index 98f8d93..8489545 100644
--- a/vue/.env.development
+++ b/vue/.env.development
@@ -3,7 +3,8 @@ ENV = 'development'
# base api
# 开发环境
-VUE_APP_BASE_API = 'http://localhost:8090/'
+#VUE_APP_BASE_API = 'http://192.168.6.83:11090/'
+VUE_APP_BASE_API = 'http://192.168.78.128:8090/'
VUE_APP_BASE_TITLE = '铸龙-埋点数据分析平台(开发)'
# vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable,
# to control whether the babel-plugin-dynamic-import-node plugin is enabled.
diff --git a/vue/src/views/behavior-analysis/event.vue b/vue/src/views/behavior-analysis/event.vue
index a3a29f8..9cf9801 100644
--- a/vue/src/views/behavior-analysis/event.vue
+++ b/vue/src/views/behavior-analysis/event.vue
@@ -598,6 +598,7 @@ export default {
return
}
this.metaEventList = res.data.event_name_list
+ console.log("get meta zhibiao:", res.data)
const attributeMap = res.data.attributeMap
const allAttrOptions = []
diff --git a/vue/vue.config.js b/vue/vue.config.js
index 0018b68..714839e 100644
--- a/vue/vue.config.js
+++ b/vue/vue.config.js
@@ -50,7 +50,7 @@ module.exports = {
changeOrigin: true,
},*/
[process.env.VUE_APP_BASE_API]: {
- target: `http://192.168.78.128:${port}`,
+ target: `http://192.168.78.128:${port}/mock`,
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''