You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1165 lines
32 KiB
1165 lines
32 KiB
package customerform
|
|
|
|
import (
|
|
"appPlatform/models/modelAppPlatform"
|
|
"appPlatform/models/modelshr"
|
|
"appPlatform/overall"
|
|
"appPlatform/overall/publicmethod"
|
|
"encoding/json"
|
|
"fmt"
|
|
"strconv"
|
|
"strings"
|
|
"time"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-08-28 16:19:38
|
|
@ 功能: 自定义表单列表
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) CustomerFormList(c *gin.Context) {
|
|
var requestData SearchForm
|
|
ersr := c.ShouldBindJSON(&requestData)
|
|
if requestData.Page == 0 {
|
|
requestData.Page = 1
|
|
}
|
|
if requestData.PageSize == 0 {
|
|
requestData.PageSize = 15
|
|
}
|
|
fmt.Printf("requestData---->%v---->%v\n", requestData, ersr)
|
|
var formList []modelAppPlatform.CustomerForm
|
|
gormDb := overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.CustomerForm{}).Select("`id`,`name`,`tablename`,`classify`,`permit`,`states`,`creater_time`").Where("`states` BETWEEN ? AND ?", 1, 2)
|
|
if requestData.KeyWords != "" {
|
|
gormDb = gormDb.Where("`name` LIKE ? OR `tablename` LIKE ?", "%"+requestData.KeyWords+"%", "%"+requestData.KeyWords+"%")
|
|
}
|
|
if requestData.Classify != 0 {
|
|
gormDb = gormDb.Where("`classify` = ?", requestData.Classify)
|
|
}
|
|
var total int64
|
|
totalErr := gormDb.Count(&total).Error
|
|
if totalErr != nil {
|
|
total = 0
|
|
}
|
|
gormDb = publicmethod.PageTurningSettings(gormDb, requestData.Page, requestData.PageSize)
|
|
err := gormDb.Order("`id` DESC").Find(&formList).Error
|
|
if err != nil && len(formList) < 1 {
|
|
publicmethod.Result(0, err, c)
|
|
return
|
|
}
|
|
var sendList []SendCustomerForm
|
|
for _, v := range formList {
|
|
var sendCont SendCustomerForm
|
|
sendCont.Id = strconv.FormatInt(v.Id, 10)
|
|
sendCont.Name = v.Name
|
|
sendCont.TableNames = v.TableNames
|
|
sendCont.States = v.States
|
|
sendCont.Classify = v.Classify
|
|
userCont := HaveCustomerFormCreaterUs(v.TableNames)
|
|
sendCont.CreaterName = userCont.Name
|
|
sendCont.CreaterTime = publicmethod.UnixTimeToDay(v.CreaterTime, 1)
|
|
sendList = append(sendList, sendCont)
|
|
}
|
|
publicmethod.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(sendList)), sendList, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-09-08 11:03:19
|
|
@ 功能: 获取启用自定义表单创建人
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func HaveCustomerFormCreaterUs(tableKey string) (userCont modelshr.PersonArchives) {
|
|
var formVersion modelAppPlatform.CustomerFormVersion
|
|
err := formVersion.GetCont(map[string]interface{}{"`tablekey`": tableKey}, "`creater`")
|
|
if err != nil {
|
|
return
|
|
}
|
|
userCont.GetCont(map[string]interface{}{"`key`": formVersion.Creater}, "`name`", "`number`")
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-08-29 13:16:12
|
|
@ 功能: 生成表单基本信息
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) ProductionMarkOfCustomerForm(c *gin.Context) {
|
|
uuid := publicmethod.GetUUid(1)
|
|
tableName := fmt.Sprintf("customer_form_%v", uuid)
|
|
for {
|
|
isTrue := overall.CONSTANT_DB_CustomerForm.Migrator().HasTable(tableName)
|
|
if !isTrue {
|
|
break
|
|
} else {
|
|
uuid = publicmethod.GetUUid(1)
|
|
tableName = fmt.Sprintf("customer_form_%v", uuid)
|
|
}
|
|
}
|
|
var sendCont SendCustomerFormConfig
|
|
sendCont.FormName = fmt.Sprintf("未命名表单_%v", uuid)
|
|
sendCont.FormLogo = tableName
|
|
publicmethod.Result(0, sendCont, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-08-29 15:21:58
|
|
@ 功能: 保存自定义表单
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) SaveCustomerForm(c *gin.Context) {
|
|
context, _ := c.Get(overall.MyContJwt)
|
|
var requestData HaveCustomerFormConfig
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if requestData.Data == "" {
|
|
publicmethod.Result(1, err, c, "自定义表单错误!")
|
|
return
|
|
}
|
|
if requestData.Name == "" {
|
|
publicmethod.Result(1, err, c, "未知表单名称!")
|
|
return
|
|
}
|
|
if requestData.Classify == 0 {
|
|
requestData.Classify = 1
|
|
}
|
|
var formJsonCont CustomerFormMaster
|
|
json.Unmarshal([]byte(requestData.JsonData), &formJsonCont)
|
|
|
|
if formJsonCont.Form.FormName == "" {
|
|
publicmethod.Result(1, err, c, "未知表单名称!")
|
|
return
|
|
}
|
|
if formJsonCont.Form.Name == "" {
|
|
publicmethod.Result(1, err, c, "未知表单标识!")
|
|
return
|
|
}
|
|
var userCont modelshr.ManCont
|
|
userCont.GetLoginCont(context)
|
|
cureeTime := time.Now().Unix()
|
|
var customerFormCont modelAppPlatform.CustomerForm
|
|
err = customerFormCont.GetCont(map[string]interface{}{"`tablename`": formJsonCont.Form.Name}, "`id`")
|
|
if err == nil || customerFormCont.Id != 0 {
|
|
publicmethod.Result(1, err, c, "已有相同表单标识!请更换后再提交!")
|
|
return
|
|
}
|
|
customerFormCont.Name = formJsonCont.Form.FormName //表单名称"`
|
|
customerFormCont.TableNames = formJsonCont.Form.Name //创建表单名称"`
|
|
customerFormCont.Classify = requestData.Classify //分类1:表单;2:流程表单"`
|
|
customerFormCont.Permit = "" //授权范围"`
|
|
customerFormCont.States = 1 //显示状态(1:启用;2:禁用,3:删除)"`
|
|
// customerFormCont.MastesForm = requestData.Data //表单结构"`
|
|
// customerFormCont.MastesFormJson = requestData.JsonData //表单结构json"`
|
|
// customerFormCont.Creater = userCont.Key //创建人"`
|
|
customerFormCont.CreaterTime = cureeTime //创建时间"`
|
|
customerFormCont.EditTime = cureeTime //编辑时间"`
|
|
// customerFormCont.TableStructure = "" //字表结构"`
|
|
// customerFormCont.Dict = requestData.Dict
|
|
|
|
var formVersion modelAppPlatform.CustomerFormVersion
|
|
formVersion.TableKey = formJsonCont.Form.Name //default:'';not null;comment:表单标识符"`
|
|
varsionNum := HageFormVersionNum(formJsonCont.Form.Name)
|
|
formVersion.Version = varsionNum //1;not null;comment:版本号"`
|
|
if varsionNum > 1 {
|
|
formVersion.Status = 2
|
|
} else {
|
|
formVersion.Status = 1 //not null;comment:显示状态(1:启用;2:禁用,3:删除)"`
|
|
}
|
|
formVersion.MastesForm = requestData.Data //';comment:表单结构"`
|
|
formVersion.MastesFormJson = requestData.JsonData //efault:'';comment:表单结构json"`
|
|
formVersion.Creater = userCont.Key //ult:0;not null;comment:创建人"`
|
|
formVersion.CreaterTime = cureeTime //not null;comment:创建时间"`
|
|
formVersion.EditTime = cureeTime //efault:0;not null;comment:编辑时间"`
|
|
mastSql, _ := formJsonCont.CreateFormDatabaseTable()
|
|
// mastSql, _ := formJsonCont.DisassembleForm()
|
|
formVersion.TableStructure = mastSql //;default:'';comment:字表结构"`
|
|
formVersion.Dict = requestData.Dict //字表结构"`
|
|
|
|
createDb := overall.CONSTANT_DB_AppPlatform.Begin()
|
|
errMain := createDb.Create(&customerFormCont).Error
|
|
errVer := createDb.Create(&formVersion).Error
|
|
|
|
if errMain != nil || errVer != nil {
|
|
createDb.Rollback()
|
|
publicmethod.Result(104, customerFormCont, c)
|
|
return
|
|
}
|
|
createDb.Commit()
|
|
err = createDb.Create(&customerFormCont).Error
|
|
if err != nil {
|
|
publicmethod.Result(104, customerFormCont, c)
|
|
return
|
|
}
|
|
publicmethod.Result(0, err, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-09-08 11:23:48
|
|
@ 功能: 获取自定义表单版本号
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func HageFormVersionNum(tableKey string) (num int64) {
|
|
overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.CustomerFormVersion{}).Where("`tablekey` = ?", tableKey).Count(&num)
|
|
num = num + 1
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-08-30 14:58:19
|
|
@ 功能: 查看自定义表单
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) LookCustomerForm(c *gin.Context) {
|
|
var requestData publicmethod.CommonId[string]
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if requestData.Id == "" {
|
|
publicmethod.Result(1, requestData.Id, c, "未知表单!")
|
|
return
|
|
}
|
|
var customerFormCont modelAppPlatform.CustomerForm
|
|
err = customerFormCont.GetCont(map[string]interface{}{"id": requestData.Id})
|
|
if err != nil {
|
|
publicmethod.Result(107, err, c)
|
|
return
|
|
}
|
|
var sendCont LookCustomerFormInfo
|
|
sendCont.CfId = customerFormCont.Id
|
|
sendCont.Name = customerFormCont.Name //表单名称"`
|
|
sendCont.Classify = customerFormCont.Classify //分类1:表单;2:流程表单"`
|
|
sendCont.Permit = customerFormCont.Permit //授权范围"`
|
|
// sendCont.OpenClose = false
|
|
// if customerFormCont.States == 1 {
|
|
// sendCont.OpenClose = true
|
|
// }
|
|
sendCont.States = customerFormCont.States //显示状态(1:启用;2:禁用,3:删除)"`
|
|
// sendCont.MastesForm = customerFormCont.MastesForm //表单结构"`
|
|
// sendCont.MastesFormJson = customerFormCont.MastesFormJson //表单结构json"`
|
|
// sendCont.Creater = customerFormCont.Creater //创建人"`
|
|
sendCont.CreaterTime = customerFormCont.CreaterTime //创建时间"`
|
|
sendCont.EditTime = customerFormCont.EditTime //编辑时间"`
|
|
// sendCont.TableStructure = customerFormCont.TableStructure //字表结构"`
|
|
// sendCont.Dict = customerFormCont.Dict //字表结构"`
|
|
|
|
var formVersion modelAppPlatform.CustomerFormVersion
|
|
formVersion.GetCont(map[string]interface{}{"tablekey": customerFormCont.TableNames, "`status`": 1})
|
|
sendCont.Id = formVersion.Id
|
|
sendCont.TableKey = customerFormCont.TableNames //创建表单名称"`
|
|
sendCont.MastesForm = formVersion.MastesForm //表单结构"`
|
|
sendCont.MastesFormJson = formVersion.MastesFormJson //表单结构json"`
|
|
sendCont.Creater = formVersion.Creater //创建人"`
|
|
sendCont.TableStructure = formVersion.TableStructure //字表结构"`
|
|
sendCont.Dict = formVersion.Dict //字表结构"`
|
|
sendCont.Status = formVersion.Status //显示状态(1:启用;2:禁用,3:删除)"`
|
|
|
|
json.Unmarshal([]byte(customerFormCont.Permit), &sendCont.PermitList)
|
|
publicmethod.Result(0, sendCont, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-09-01 08:26:14
|
|
@ 功能: 编辑自定义表单状态
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) EditCustomerFormStatus(c *gin.Context) {
|
|
var requestData EditCustomerFormStatus
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if len(requestData.Id) < 1 {
|
|
publicmethod.Result(1, err, c, "没有要删除得内容!")
|
|
return
|
|
}
|
|
if requestData.Status == 0 {
|
|
requestData.Status = 2
|
|
}
|
|
editCustomerForm := publicmethod.MapOut[string]()
|
|
editCustomerForm["`states`"] = requestData.Status
|
|
if requestData.Status != 3 {
|
|
err = overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.CustomerForm{}).Where("`id` IN ?", requestData.Id).Updates(editCustomerForm).Error
|
|
if err != nil {
|
|
publicmethod.Result(108, err, c)
|
|
return
|
|
}
|
|
} else {
|
|
if requestData.IsDelete {
|
|
err = overall.CONSTANT_DB_AppPlatform.Where("`id` IN ?", requestData.Id).Delete(&modelAppPlatform.CustomerForm{}).Error
|
|
} else {
|
|
err = overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.CustomerForm{}).Where("`id` IN ?", requestData.Id).Updates(editCustomerForm).Error
|
|
if err != nil {
|
|
publicmethod.Result(108, err, c)
|
|
return
|
|
}
|
|
}
|
|
}
|
|
publicmethod.Result(0, err, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-09-08 14:08:34
|
|
@ 功能: 获取版本列表
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) HaveCustomerFormVersion(c *gin.Context) {
|
|
var requestData publicmethod.CommonId[string]
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if requestData.Id == "" {
|
|
publicmethod.Result(1, err, c, "未知设置数据!请检查!")
|
|
return
|
|
}
|
|
var list []modelAppPlatform.CustomerFormVersion
|
|
overall.CONSTANT_DB_AppPlatform.Where("`tablekey` = ? AND `status` BETWEEN ? AND ?", requestData.Id, 1, 2).Find(&list)
|
|
publicmethod.Result(0, list, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-09-01 15:14:38
|
|
@ 功能: 编辑自定义表单设置
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) SaveSetupCont(c *gin.Context) {
|
|
var requestData HaveCustomerFormInfo
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if requestData.Id == 0 {
|
|
publicmethod.Result(1, err, c, "未知设置数据!请检查!")
|
|
return
|
|
}
|
|
if requestData.Name == "" {
|
|
publicmethod.Result(1, err, c, "请输入表格名称!")
|
|
return
|
|
}
|
|
if requestData.States == 0 {
|
|
requestData.States = 1
|
|
}
|
|
var saveCont modelAppPlatform.CustomerForm
|
|
err = saveCont.GetCont(map[string]interface{}{"id": requestData.Id})
|
|
if err != nil {
|
|
publicmethod.Result(107, err, c)
|
|
return
|
|
}
|
|
var orgAry [][]int64
|
|
json.Unmarshal([]byte(requestData.Permit), &orgAry)
|
|
var orgList []string
|
|
if len(orgAry) > 0 {
|
|
for i := 0; i < len(orgAry); i++ {
|
|
if len(orgAry[i]) > 0 {
|
|
for j := 0; j < len(orgAry[i]); j++ {
|
|
orgId := strconv.FormatInt(orgAry[i][j], 10)
|
|
if !publicmethod.IsInTrue[string](orgId, orgList) {
|
|
orgList = append(orgList, orgId)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
orgLists := strings.Join(orgList, ",")
|
|
editCont := publicmethod.MapOut[string]()
|
|
editCont["`name`"] = requestData.Name
|
|
editCont["`permit`"] = requestData.Permit
|
|
editCont["`permitstr`"] = orgLists
|
|
editCont["`states`"] = requestData.States
|
|
editCont["`edit_time`"] = time.Now().Unix()
|
|
err = saveCont.EiteCont(map[string]interface{}{"id": requestData.Id}, editCont)
|
|
if err != nil {
|
|
publicmethod.Result(106, err, c)
|
|
return
|
|
}
|
|
publicmethod.Result(0, orgLists, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-09-05 08:03:04
|
|
@ 功能: 拆解表单结构,设计创建数据库表
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (c *CustomerFormMaster) DisassembleForm() (relevance string, err error) {
|
|
err = CreateForm(c.Form.Name, c.Form.FormName, true)
|
|
if err != nil {
|
|
return
|
|
}
|
|
var masterSql []string
|
|
var sunFormName []string
|
|
sunFormNameAry := publicmethod.MapOut[string]()
|
|
sunForm := publicmethod.MapOut[string]()
|
|
for _, v := range c.List {
|
|
switch v.Type {
|
|
// case "title":
|
|
// fmt.Printf("type:%v <===========>label:%v <===========> Name:%v <===========> ModelValue:%v\n", v.Type, v.Control, v.Name, v.Control.ModelValue)
|
|
case "grid", "tabs":
|
|
if len(v.Columns) > 0 {
|
|
for _, cv := range v.Columns {
|
|
// fmt.Printf("type:%v <===========>label:%v <===========> Name:%v<===========> ModelValue:%v\n", v.Type, cv.Attr.Span, cv.Type, v.Control.ModelValue)
|
|
sqlStr := ComponentMappingDataTable(c.Form.Name, cv.List)
|
|
masterSql = append(masterSql, sqlStr...)
|
|
}
|
|
}
|
|
case "card", "div":
|
|
if len(v.List) > 0 {
|
|
sqlStr := ComponentMappingDataTable(c.Form.Name, v.List)
|
|
masterSql = append(masterSql, sqlStr...)
|
|
}
|
|
case "table", "flex":
|
|
if len(v.List) > 0 {
|
|
if !publicmethod.IsInTrue[string](v.Name, sunFormName) {
|
|
sunFormName = append(sunFormName, v.Name)
|
|
sunFormNameAry[v.Name] = v.Name
|
|
sqlStr := ComponentMappingDataTable(v.Name, v.List)
|
|
sunForm[v.Name] = sqlStr
|
|
CreateForm(v.Name, fmt.Sprintf("%v(%v)子表", c.Form.FormName, c.Form.Name), false)
|
|
} else {
|
|
sunTableName := fmt.Sprintf("%v%v", v.Name, publicmethod.GetUUid(1))
|
|
sunFormName = append(sunFormName, sunTableName)
|
|
sunFormNameAry[v.Name] = sunTableName
|
|
sqlStr := ComponentMappingDataTable(sunTableName, v.List)
|
|
sunForm[sunTableName] = sqlStr
|
|
CreateForm(sunTableName, fmt.Sprintf("%v(%v)子表", c.Form.FormName, c.Form.Name), false)
|
|
}
|
|
|
|
}
|
|
case "input":
|
|
masterSql = append(masterSql, fmt.Sprintf("ALTER TABLE `%v` ADD COLUMN `%v` %v COMMENT '%v'", c.Form.Name, v.Name, CustomRules(v.CustomRules), v.Item.Label))
|
|
case "password", "colorPicker", "component":
|
|
// sqlStr = fmt.Sprintf("%v varchar(255) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '%v'", sqlStr, lv.Item.Label)
|
|
masterSql = append(masterSql, fmt.Sprintf("ALTER TABLE `%v` ADD COLUMN `%v` varchar(255) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '%v'", c.Form.Name, v.Name, v.Item.Label))
|
|
case "datePicker", "checkbox", "cascader", "treeSelect", "textarea", "upload", "expand-user":
|
|
// sqlStr = fmt.Sprintf("%v mediumtext COMMENT '%v'", sqlStr, lv.Item.Label)
|
|
masterSql = append(masterSql, fmt.Sprintf("ALTER TABLE `%v` ADD COLUMN `%v` mediumtext COMMENT '%v'", c.Form.Name, v.Name, v.Item.Label))
|
|
case "select", "radio", "inputSlot":
|
|
// sqlStr = fmt.Sprintf("%v %v COMMENT '%v'", sqlStr, SelectUnit(lv.Config), lv.Item.Label)
|
|
masterSql = append(masterSql, fmt.Sprintf("ALTER TABLE `%v` ADD COLUMN `%v` %v COMMENT '%v'", c.Form.Name, v.Name, SelectUnit(v.Config), v.Item.Label))
|
|
case "rate", "inputNumber", "slider", "switch":
|
|
// sqlStr = fmt.Sprintf("%v %v COMMENT '%v'", sqlStr, ControlJudge(lv.Type, lv.Control), lv.Item.Label)
|
|
masterSql = append(masterSql, fmt.Sprintf("ALTER TABLE `%v` ADD COLUMN `%v` %v COMMENT '%v'", c.Form.Name, v.Name, ControlJudge(v.Type, v.Control), v.Item.Label))
|
|
case "tinymce":
|
|
// sqlStr = fmt.Sprintf("%v longtext COMMENT '%v'", sqlStr, lv.Item.Label)
|
|
masterSql = append(masterSql, fmt.Sprintf("ALTER TABLE `%v` ADD COLUMN `%v` longtext COMMENT '%v'", c.Form.Name, v.Name, v.Item.Label))
|
|
default:
|
|
// fmt.Printf("type:%v <===========>label:%v <===========> Name:%v<===========> ModelValue:%v\n", v.Type, v.Item.Label, v.Name, v.Control.ModelValue)
|
|
}
|
|
|
|
}
|
|
// fmt.Printf("主表单结构---》%v\n", masterSql)
|
|
CreateFormFiled(c.Form.Name, c.Form.FormName, true, masterSql)
|
|
if len(sunForm) > 0 {
|
|
relevanceByte, _ := json.Marshal(sunFormNameAry)
|
|
relevance = string(relevanceByte)
|
|
for i, v := range sunForm {
|
|
// fmt.Printf("表单结构----拆解----》%v========>%v\n", i, v)
|
|
CreateFormFiled(i, fmt.Sprintf("%v(%v)子表", c.Form.FormName, c.Form.Name), false, v)
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-09-13 09:28:58
|
|
@ 功能: 创建数据表字段
|
|
@ 参数
|
|
|
|
#formName 表单名称
|
|
#formNotes 表单备注
|
|
#isMasters true 主表;false:子表
|
|
#sqlList 语句列表
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func CreateFormFiled(formName, formNotes string, isMasters bool, sqlList interface{}) {
|
|
// fmt.Printf("函数类型----%v---%T\n", reflect.TypeOf(sqlList), sqlList)
|
|
if sql, isOk := sqlList.([]string); isOk {
|
|
for _, v := range sql {
|
|
// fmt.Printf("%v\n", v)
|
|
overall.CONSTANT_DB_CustomerForm.Exec(v)
|
|
// err := overall.CONSTANT_DB_CustomerForm.Exec(v).Error
|
|
// fmt.Printf("字段创建----%v---%v\n", err, v)
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-09-13 08:12:23
|
|
@ 功能: 创建表单
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func CreateForm(formName, notes string, isMasters bool) (err error) {
|
|
//判断表单是否存在
|
|
isTrue := overall.CONSTANT_DB_CustomerForm.Migrator().HasTable(formName)
|
|
if !isTrue { //当数据表不存在时进行创建
|
|
if isMasters {
|
|
//创建主表
|
|
sqlCreateTable := fmt.Sprintf("CREATE TABLE `%v` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,`masters_key` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '主表标识',`creater` bigint(20) unsigned DEFAULT '0' COMMENT '创建人',`creater_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',`edit_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '编辑时间',`flow_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '流程识别标识',PRIMARY KEY (`id`) USING BTREE,UNIQUE KEY `id` (`id`) USING HASH,UNIQUE KEY `masters_key` (`masters_key`) USING HASH) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COMMENT='%v'", formName, notes)
|
|
err = overall.CONSTANT_DB_CustomerForm.Exec(sqlCreateTable).Error
|
|
|
|
} else {
|
|
//创建子表
|
|
sqlCreateTable := fmt.Sprintf("CREATE TABLE `%v` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,`masters_key` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '主表标识',`creater` bigint(20) unsigned DEFAULT '0' COMMENT '创建人',`creater_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',`edit_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '编辑时间',PRIMARY KEY (`id`) USING BTREE,UNIQUE KEY `id` (`id`) USING HASH,KEY `masters_key` (`masters_key`) USING HASH) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COMMENT='%v'", formName, notes)
|
|
err = overall.CONSTANT_DB_CustomerForm.Exec(sqlCreateTable).Error
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-09-12 16:15:59
|
|
@ 功能: 组件映射数据表
|
|
@ 参数
|
|
|
|
#tableName 表明
|
|
#list 组件列表
|
|
|
|
@ 返回值
|
|
|
|
#mastSql 数据库语句
|
|
|
|
@ 方法原型
|
|
|
|
#func ComponentMappingDataTable(tableName string, list []MasterStruct) (mastSql []string)
|
|
*/
|
|
func ComponentMappingDataTable(tableName string, list []MasterStruct) (mastSql []string) {
|
|
if len(list) > 0 {
|
|
for _, lv := range list {
|
|
sqlStr := fmt.Sprintf("ALTER TABLE `%v` ADD COLUMN `%v`", tableName, lv.Name)
|
|
switch lv.Type {
|
|
case "input":
|
|
sqlStr = fmt.Sprintf("%v %v COMMENT '%v'", sqlStr, CustomRules(lv.CustomRules), lv.Item.Label)
|
|
case "password", "colorPicker", "component":
|
|
sqlStr = fmt.Sprintf("%v varchar(255) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '%v'", sqlStr, lv.Item.Label)
|
|
case "datePicker", "checkbox", "cascader", "treeSelect", "textarea", "upload", "expand-user":
|
|
sqlStr = fmt.Sprintf("%v mediumtext COMMENT '%v'", sqlStr, lv.Item.Label)
|
|
case "select", "radio", "inputSlot":
|
|
sqlStr = fmt.Sprintf("%v %v COMMENT '%v'", sqlStr, SelectUnit(lv.Config), lv.Item.Label)
|
|
case "rate", "inputNumber", "slider", "switch":
|
|
sqlStr = fmt.Sprintf("%v %v COMMENT '%v'", sqlStr, ControlJudge(lv.Type, lv.Control), lv.Item.Label)
|
|
case "tinymce":
|
|
sqlStr = fmt.Sprintf("%v longtext COMMENT '%v'", sqlStr, lv.Item.Label)
|
|
default:
|
|
}
|
|
mastSql = append(mastSql, sqlStr)
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-09-12 14:59:51
|
|
@ 功能: 组件配置判断
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func ControlJudge(class string, control ControlStruct) (sqlStr string) {
|
|
switch class {
|
|
case "rate":
|
|
if control.Max < 10 {
|
|
sqlStr = " tinyint(1) unsigned NOT NULL DEFAULT '0' "
|
|
} else if control.Max <= 255 {
|
|
sqlStr = " tinyint(3) unsigned NOT NULL DEFAULT '0' "
|
|
} else if control.Max <= 4294967295 {
|
|
sqlStr = " int(10) unsigned NOT NULL DEFAULT '0' "
|
|
} else {
|
|
sqlStr = " bigint(20) unsigned NOT NULL DEFAULT '0' "
|
|
}
|
|
case "switch":
|
|
switch control.ModelValue.(type) {
|
|
case bool:
|
|
if control.ModelValue == true {
|
|
sqlStr = " tinyint(1) unsigned NOT NULL DEFAULT '1' "
|
|
} else {
|
|
sqlStr = " tinyint(1) unsigned NOT NULL DEFAULT '0' "
|
|
}
|
|
case int, int8, int16:
|
|
sqlStr = " int(10) unsigned NOT NULL DEFAULT '0' "
|
|
case int32, int64:
|
|
sqlStr = " bigint(20) unsigned NOT NULL DEFAULT '0' "
|
|
case float32, float64:
|
|
sqlStr = " float(20,10) unsigned DEFAULT '0' "
|
|
default:
|
|
sqlStr = " varchar(255) COLLATE utf8mb4_general_ci DEFAULT '' "
|
|
}
|
|
case "slider":
|
|
if control.Max == 0 {
|
|
sqlStr = " tinyint(3) unsigned NOT NULL DEFAULT '0' "
|
|
} else if control.Max < 10 && control.Max > 0 {
|
|
sqlStr = " tinyint(1) unsigned NOT NULL DEFAULT '0' "
|
|
} else if control.Max <= 255 {
|
|
sqlStr = " tinyint(3) unsigned NOT NULL DEFAULT '0' "
|
|
} else if control.Max <= 4294967295 {
|
|
sqlStr = " int(10) unsigned NOT NULL DEFAULT '0' "
|
|
} else {
|
|
sqlStr = " bigint(20) unsigned NOT NULL DEFAULT '0' "
|
|
}
|
|
default:
|
|
sqlStr = " varchar(255) COLLATE utf8mb4_general_ci DEFAULT '' "
|
|
}
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-09-12 10:17:58
|
|
@ 功能: 下拉字段处理
|
|
@ 参数
|
|
|
|
#tableName 表名
|
|
#field 字段名
|
|
#rubric 备注
|
|
#control 控制器
|
|
|
|
@ 返回值
|
|
|
|
#sqlStr 补充SQL语句
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func SelectUnit(config UnitConfigStruct) (sqlStr string) {
|
|
switch config.TransformData {
|
|
case "number":
|
|
sqlStr = " bigint(20) unsigned NOT NULL DEFAULT '0' "
|
|
default:
|
|
sqlStr = " varchar(255) COLLATE utf8mb4_general_ci DEFAULT '' "
|
|
}
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-09-12 09:29:23
|
|
@ 功能: 校验规则
|
|
@ 参数
|
|
|
|
#list 自定义规则
|
|
|
|
@ 返回值
|
|
|
|
#sqlStr 补充SQL语句
|
|
|
|
@ 方法原型
|
|
|
|
#func CustomRules(list []CustomRulesStruct) (sqlStr string)
|
|
*/
|
|
func CustomRules(list []CustomRulesStruct) (sqlStr string) {
|
|
sqlStr = fmt.Sprintf("NOT NULL")
|
|
if len(list) <= 0 {
|
|
sqlStr = fmt.Sprintf(" varchar(255) COLLATE utf8mb4_general_ci %v DEFAULT '' ", sqlStr)
|
|
return
|
|
}
|
|
|
|
var typeAry []string
|
|
for _, v := range list {
|
|
if !publicmethod.IsInTrue[string](v.Type, typeAry) {
|
|
switch v.Type {
|
|
case "int":
|
|
sqlStr = fmt.Sprintf(" int(6) unsigned %v DEFAULT '1' ", sqlStr)
|
|
case "number":
|
|
sqlStr = fmt.Sprintf(" bigint(20) unsigned %v DEFAULT '0' ", sqlStr)
|
|
case "money":
|
|
sqlStr = fmt.Sprintf(" decimal(20,4) unsigned %v DEFAULT '0' ", sqlStr)
|
|
case "mobile", "tel", "phone":
|
|
sqlStr = fmt.Sprintf(" varchar(100) COLLATE utf8mb4_general_ci %v DEFAULT '' ", sqlStr)
|
|
default:
|
|
sqlStr = fmt.Sprintf(" varchar(255) COLLATE utf8mb4_general_ci %v DEFAULT '' ", sqlStr)
|
|
}
|
|
}
|
|
|
|
}
|
|
return
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-09-09 09:31:55
|
|
@ 功能: 编辑自定义表单内容
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) EditCustomerFormInfo(c *gin.Context) {
|
|
context, _ := c.Get(overall.MyContJwt)
|
|
var requestData EditCustomerFormCont
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if requestData.Id == "" {
|
|
publicmethod.Result(1, err, c, "自定义表单错误!")
|
|
return
|
|
}
|
|
if requestData.Version == "" {
|
|
publicmethod.Result(1, err, c, "自定义表单错误!")
|
|
return
|
|
}
|
|
if requestData.Data == "" {
|
|
publicmethod.Result(1, err, c, "自定义表单错误!")
|
|
return
|
|
}
|
|
if requestData.Name == "" {
|
|
publicmethod.Result(1, err, c, "未知表单名称!")
|
|
return
|
|
}
|
|
if requestData.Classify == 0 {
|
|
requestData.Classify = 1
|
|
}
|
|
var formJsonCont CustomerFormMaster
|
|
json.Unmarshal([]byte(requestData.JsonData), &formJsonCont)
|
|
|
|
if formJsonCont.Form.FormName == "" {
|
|
publicmethod.Result(1, err, c, "未知表单名称!")
|
|
return
|
|
}
|
|
if formJsonCont.Form.Name == "" {
|
|
publicmethod.Result(1, err, c, "未知表单标识!")
|
|
return
|
|
}
|
|
var customerFormCont modelAppPlatform.CustomerForm
|
|
err = customerFormCont.GetCont(map[string]interface{}{"`id`": requestData.Id}, "`tablename`")
|
|
if err != nil {
|
|
publicmethod.Result(107, err, c)
|
|
return
|
|
}
|
|
var userCont modelshr.ManCont
|
|
userCont.GetLoginCont(context)
|
|
|
|
cureeTime := time.Now().Unix()
|
|
mainData := publicmethod.MapOut[string]()
|
|
mainData["`name`"] = formJsonCont.Form.FormName
|
|
mainData["`classify`"] = requestData.Classify
|
|
mainData["`edit_time`"] = cureeTime
|
|
customerFormCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, mainData)
|
|
versionData := publicmethod.MapOut[string]()
|
|
versionData["`mastesform`"] = requestData.Data
|
|
versionData["`mastesformjson`"] = requestData.JsonData
|
|
versionData["`creater`"] = userCont.Key
|
|
// mastSql, _ := formJsonCont.DisassembleForm()
|
|
mastSql, _ := formJsonCont.CreateFormDatabaseTable()
|
|
versionData["`table_structure`"] = mastSql
|
|
versionData["`dict`"] = requestData.Dict
|
|
var formVersion modelAppPlatform.CustomerFormVersion
|
|
formVersion.EiteCont(map[string]interface{}{"`id`": requestData.Version}, versionData)
|
|
publicmethod.Result(0, err, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-09-09 09:45:42
|
|
@ 功能: 另存为新版
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) SaveAsNewVersion(c *gin.Context) {
|
|
context, _ := c.Get(overall.MyContJwt)
|
|
var requestData HaveCustomerFormConfig
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if requestData.Data == "" {
|
|
publicmethod.Result(1, err, c, "自定义表单错误!")
|
|
return
|
|
}
|
|
if requestData.Name == "" {
|
|
publicmethod.Result(1, err, c, "未知表单名称!")
|
|
return
|
|
}
|
|
if requestData.Classify == 0 {
|
|
requestData.Classify = 1
|
|
}
|
|
var formJsonCont CustomerFormMaster
|
|
json.Unmarshal([]byte(requestData.JsonData), &formJsonCont)
|
|
|
|
if formJsonCont.Form.FormName == "" {
|
|
publicmethod.Result(1, err, c, "未知表单名称!")
|
|
return
|
|
}
|
|
if formJsonCont.Form.Name == "" {
|
|
publicmethod.Result(1, err, c, "未知表单标识!")
|
|
return
|
|
}
|
|
var userCont modelshr.ManCont
|
|
userCont.GetLoginCont(context)
|
|
cureeTime := time.Now().Unix()
|
|
var customerFormCont modelAppPlatform.CustomerForm
|
|
err = customerFormCont.GetCont(map[string]interface{}{"`tablename`": formJsonCont.Form.Name}, "`id`", "`tablename`")
|
|
if err != nil {
|
|
publicmethod.Result(107, err, c)
|
|
return
|
|
}
|
|
var formVersion modelAppPlatform.CustomerFormVersion
|
|
formVersion.TableKey = customerFormCont.TableNames //default:'';not null;comment:表单标识符"`
|
|
varsionNum := HageFormVersionNum(customerFormCont.TableNames)
|
|
formVersion.Version = varsionNum //1;not null;comment:版本号"`
|
|
if varsionNum > 1 {
|
|
formVersion.Status = 2
|
|
} else {
|
|
formVersion.Status = 1 //not null;comment:显示状态(1:启用;2:禁用,3:删除)"`
|
|
}
|
|
formVersion.MastesForm = requestData.Data //';comment:表单结构"`
|
|
formVersion.MastesFormJson = requestData.JsonData //efault:'';comment:表单结构json"`
|
|
formVersion.Creater = userCont.Key //ult:0;not null;comment:创建人"`
|
|
formVersion.CreaterTime = cureeTime //not null;comment:创建时间"`
|
|
formVersion.EditTime = cureeTime //efault:0;not null;comment:编辑时间"`
|
|
// mastSql, _ := formJsonCont.DisassembleForm()
|
|
mastSql, _ := formJsonCont.CreateFormDatabaseTable()
|
|
formVersion.TableStructure = mastSql //;default:'';comment:字表结构"`
|
|
formVersion.Dict = requestData.Dict //字表结构"`
|
|
errVer := overall.CONSTANT_DB_AppPlatform.Create(&formVersion).Error
|
|
if errVer != nil {
|
|
publicmethod.Result(104, customerFormCont, c)
|
|
return
|
|
}
|
|
publicmethod.Result(0, err, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-09-09 10:44:55
|
|
@ 功能: 启用版本
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) EnableVersion(c *gin.Context) {
|
|
var requestData publicmethod.CommonId[string]
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if requestData.Id == "" {
|
|
publicmethod.Result(1, err, c, "未知启用版本!")
|
|
return
|
|
}
|
|
var formVersion modelAppPlatform.CustomerFormVersion
|
|
err = formVersion.GetCont(map[string]interface{}{"`id`": requestData.Id})
|
|
if err != nil {
|
|
publicmethod.Result(107, err, c)
|
|
return
|
|
}
|
|
overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.CustomerFormVersion{}).Where("`tablekey` = ? AND `status` = 1", formVersion.TableKey).Updates(map[string]interface{}{"`status`": 2})
|
|
err = formVersion.EiteCont(map[string]interface{}{"`id`": requestData.Id}, map[string]interface{}{"`status`": 1})
|
|
publicmethod.Result(0, err, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-09-15 10:29:39
|
|
@ 功能: 检测是否存在提交和返回按钮
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func (a *ApiMethod) JudgeSubmitCancel(c *gin.Context) {
|
|
var requestData publicmethod.PublicName
|
|
err := c.ShouldBindJSON(&requestData)
|
|
if err != nil {
|
|
publicmethod.Result(100, err, c)
|
|
return
|
|
}
|
|
if requestData.Name == "" {
|
|
publicmethod.Result(1, err, c, "未知表单数据!")
|
|
return
|
|
}
|
|
isSubmit := false
|
|
isCancel := false
|
|
|
|
var formJsonCont CustomerFormMaster
|
|
json.Unmarshal([]byte(requestData.Name), &formJsonCont)
|
|
if len(formJsonCont.List) > 0 {
|
|
for _, v := range formJsonCont.List {
|
|
switch v.Type {
|
|
case "grid", "tabs":
|
|
if len(v.Columns) > 0 {
|
|
for _, cv := range v.Columns {
|
|
isSubmits, isCancels := PublicUnitJieXi(cv.List)
|
|
if isSubmits {
|
|
isSubmit = true
|
|
}
|
|
if isCancels {
|
|
isCancel = true
|
|
}
|
|
}
|
|
}
|
|
case "card", "div":
|
|
if len(v.List) > 0 {
|
|
isSubmits, isCancels := PublicUnitJieXi(v.List)
|
|
if isSubmits {
|
|
isSubmit = true
|
|
}
|
|
if isCancels {
|
|
isCancel = true
|
|
}
|
|
}
|
|
case "button":
|
|
if v.Control.Key == "submit" {
|
|
isSubmit = true
|
|
}
|
|
if v.Control.Key == "cancel" {
|
|
isCancel = true
|
|
}
|
|
default:
|
|
// fmt.Printf("type:%v <===========>label:%v <===========> Name:%v<===========> ModelValue:%v\n", v.Type, v.Item.Label, v.Name, v.Control.ModelValue)
|
|
}
|
|
|
|
}
|
|
}
|
|
buttonIsTrue := 0
|
|
if isSubmit && isCancel {
|
|
buttonIsTrue = 1
|
|
} else if isSubmit && !isCancel {
|
|
buttonIsTrue = 2
|
|
} else if !isSubmit && isCancel {
|
|
buttonIsTrue = 3
|
|
} else {
|
|
buttonIsTrue = 4
|
|
}
|
|
snedAry := publicmethod.MapOut[string]()
|
|
snedAry["buttonIsTrue"] = buttonIsTrue
|
|
snedAry["formJsonCont"] = formJsonCont
|
|
publicmethod.Result(0, buttonIsTrue, c)
|
|
}
|
|
|
|
/*
|
|
*
|
|
@ 作者: 秦东
|
|
@ 时间: 2023-09-15 10:44:20
|
|
@ 功能: 通用组件解析
|
|
@ 参数
|
|
|
|
#
|
|
|
|
@ 返回值
|
|
|
|
#
|
|
|
|
@ 方法原型
|
|
|
|
#
|
|
*/
|
|
func PublicUnitJieXi(list []MasterStruct) (isSubmit, isCancel bool) {
|
|
|
|
if len(list) > 0 {
|
|
for _, v := range list {
|
|
switch v.Type {
|
|
case "button":
|
|
if v.Control.Key == "submit" {
|
|
isSubmit = true
|
|
}
|
|
if v.Control.Key == "cancel" {
|
|
isCancel = true
|
|
}
|
|
default:
|
|
}
|
|
}
|
|
}
|
|
return
|
|
|
|
}
|
|
|