diff --git a/README.md b/README.md index d56e0538..5ea665d4 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,7 @@ Applications developed with YAO | Application | Description | Repository | | -------------------- | ---------------------------------------------------- | --------------------------------------- | +| yaoapp/yao-examples | Yao Examples | https://github.com/YaoApp/yao-examples | | yaoapp/yao-knowledge | A knowledge base application (Coming soon) | https://github.com/YaoApp/yao-knowledge | | yaoapp/xgen-dev-app | A demo application | https://github.com/YaoApp/xgen-dev-app | | yaoapp/demo-project | A demo application for project management | https://github.com/yaoapp/demo-project | diff --git a/README.zh-CN.md b/README.zh-CN.md index 5734f842..d4ae27bb 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -33,6 +33,7 @@ YAO 采用 flow-based 的编程模式,通过编写 YAO DSL (JSON 格式逻辑 | 应用 | 简介 | 代码仓库 | | -------------------- | --------------------------------------- | --------------------------------------- | +| yaoapp/yao-examples | Yao 应用示例 | https://github.com/YaoApp/yao-examples | | yaoapp/yao-knowledge | ChatGPT 驱动的知识管理库应用 (稍后开放) | https://github.com/YaoApp/yao-knowledge | | yaoapp/xgen-dev-app | 演示应用 (演示) | https://github.com/YaoApp/xgen-dev-app | | yaoapp/demo-project | 工程项目管理演示应用(演示) | https://github.com/yaoapp/demo-project | diff --git a/widgets/table/process.go b/widgets/table/process.go index b90bc685..0dbf8a01 100644 --- a/widgets/table/process.go +++ b/widgets/table/process.go @@ -1,8 +1,6 @@ package table import ( - "crypto/md5" - "encoding/hex" "fmt" "net/url" "os" @@ -10,6 +8,7 @@ import ( "strings" "time" + "github.com/google/uuid" "github.com/yaoapp/gou/fs" "github.com/yaoapp/gou/model" gouProcess "github.com/yaoapp/gou/process" @@ -252,11 +251,10 @@ func processExport(process *gouProcess.Process) interface{} { tab := MustGet(process) // 0 params := process.ArgsQueryParams(1, types.QueryParam{}) pagesize := process.ArgsInt(2, 50) + log.Trace("[table] export %s %v %d", tab.ID, params, pagesize) // Filename - hash := md5.Sum([]byte(time.Now().Format("20060102-15:04:05"))) - fingerprint := string(hex.EncodeToString(hash[:])) - fingerprint = strings.ToUpper(fingerprint) + fingerprint := uuid.NewString() dir := time.Now().Format("20060102") filename := filepath.Join(string(os.PathSeparator), dir, fmt.Sprintf("%s.xlsx", fingerprint)) diff --git a/widgets/table/process_test.go b/widgets/table/process_test.go index 3bdb5c28..28d724b4 100644 --- a/widgets/table/process_test.go +++ b/widgets/table/process_test.go @@ -569,6 +569,13 @@ func TestProcessExport(t *testing.T) { fs := fs.MustGet("system") size, _ := fs.Size(response.(string)) assert.Greater(t, size, 1000) + + // Export all data + args = []interface{}{"pet", nil, 2} + response = process.New("yao.table.Export", args...).Run() + assert.NotNil(t, response) + size, _ = fs.Size(response.(string)) + assert.Greater(t, size, 1000) } func load(t *testing.T) {