@ -5,6 +5,7 @@ import (
"appPlatform/models/customerForm"
"appPlatform/models/modelAppPlatform"
"appPlatform/models/modelshr"
"appPlatform/models/modelssystempermission"
"appPlatform/overall"
"appPlatform/overall/publicmethod"
"encoding/json"
@ -862,28 +863,56 @@ func (a *ApiMethod) GainFormTableField(c *gin.Context) {
err = json . Unmarshal ( [ ] byte ( customerFormMaster . TableStructure ) , & sunTable )
if err == nil {
sunTableMap := publicmethod . MapOut [ string ] ( )
sunTableNameMap := publicmethod . MapOut [ string ] ( )
var sunFormList [ ] SunTableInfo
for _ , v := range sunTable { //遍历子表单名称
if vStr , ok := v . ( string ) ; ok {
var sunFormInfo SunTableInfo
sunFormInfo . FieldKey = vStr
sunFormInfo . Name = gainSunTableName ( vStr , formJsonCont )
sunField := GainSunFormTableField ( vStr , formFieldAry . SunFormInfo )
if len ( sunField ) > 0 {
sunTableForm , formErr := GainFormTableField ( vStr )
if formErr == nil {
sunTableMap [ vStr ] = TableFieldCompare ( sunTableForm , sunField )
fields := TableFieldCompare ( sunTableForm , sunField )
sunTableMap [ vStr ] = fields
sunFormInfo . Fields = fields
} else {
sunTableMap [ vStr ] , _ = GainFormTableField ( vStr ) //获取表单字段
fields , _ := GainFormTableField ( vStr )
sunTableMap [ vStr ] = TableFieldCompare ( fields , sunField ) //获取表单字段
sunFormInfo . Fields = TableFieldCompare ( fields , sunField )
}
} else {
sunTableMap [ vStr ] , _ = GainFormTableField ( vStr ) //获取表单字段
sunTableForm , _ := GainFormTableField ( vStr )
fields := TableFieldCompare ( sunTableForm , sunField )
sunTableMap [ vStr ] = fields //获取表单字段
sunFormInfo . Fields = fields
}
sunTableNameMap [ vStr ] = gainSunTableName ( vStr , formJsonCont )
sunFormList = append ( sunFormList , sunFormInfo )
}
}
sendTableList [ "sunTable" ] = sunTableMap
sendTableList [ "sunTableName" ] = sunTableNameMap
sendTableList [ "sunFormList" ] = sunFormList
}
}
publicmethod . Result ( 0 , sendTableList , c )
}
// 获取子表单名称
func gainSunTableName ( tableKey string , formJsonCont CustomerFormMaster ) ( sunTableName string ) {
if len ( formJsonCont . List ) > 0 {
for _ , v := range formJsonCont . List {
if v . Type == "table" && v . Name == tableKey {
sunTableName = v . Item . Label
return
}
}
}
return
}
/ *
*
@ 作者 : 秦东
@ -1352,6 +1381,10 @@ func (a *ApiMethod) GainFormPageListCont(c *gin.Context) {
var formJsonCont CustomerFormMaster
json . Unmarshal ( [ ] byte ( formInfo . MastesFormJson ) , & formJsonCont )
var sunMap map [ string ] string
json . Unmarshal ( [ ] byte ( formInfo . TableStructure ) , & sunMap )
if formJsonCont . Form . DataSource == "yes" {
var sqlDb datacenter . DataBastType
sqlDb . Type = formJsonCont . Form . DataSourceConfig . DSN . SqlType
@ -1384,15 +1417,16 @@ func (a *ApiMethod) GainFormPageListCont(c *gin.Context) {
publicmethod . Result ( 0 , err , c )
return
}
var listFieldsMap ListPageFields
// sqlDborm.Table(formJsonCont.Form.DataSourceConfig.TableKey).Find(&formList)
// fmt.Printf("%T----------->%v----------->%v\n", formList, err, formList)
if formInfo . ListJson != "" {
var listFieldsMap ListPageFields
err = json . Unmarshal ( [ ] byte ( formInfo . ListJson ) , & listFieldsMap )
// fmt.Printf("%T----------->%v----------->%v\n", listFieldsMap, err, listFieldsMap)
if err == nil {
// fmt.Printf("%T----------->%v\n", listFieldsMap, listFieldsMap)
formList = listFieldsMap . DevelopSpecificationsSend ( formList )
formList = listFieldsMap . DevelopSpecificationsSend ( formList , formJsonCont )
// formList = DevelopSpecificationsSend(formList, listFieldsMap)
}
@ -1401,8 +1435,9 @@ func (a *ApiMethod) GainFormPageListCont(c *gin.Context) {
//获取任务状态
for i , v := range formList {
formList [ i ] [ "isRetract" ] = false
var masterKey int64
if mastrKeyVal , isOk := v [ "masters_key" ] ; isOk {
masterKey , _ = publicmethod . StringToInt64 ( mastrKeyVal )
if mastrKeyUint64 , ok := mastrKeyVal . ( uint64 ) ; ok {
formList [ i ] [ "masters_key" ] = strconv . FormatUint ( mastrKeyUint64 , 10 )
}
@ -1455,6 +1490,9 @@ func (a *ApiMethod) GainFormPageListCont(c *gin.Context) {
// formList[i]["masters_key"] = strconv.FormatUint(mastrKeyUint64, 10)
// }
// }
for _ , sv := range sunMap {
formList [ i ] [ sv ] = gainMasterSunList ( sv , masterKey , formJsonCont , sqlDborm )
}
}
// publicmethod.Result(100, formList, c)
@ -1492,13 +1530,14 @@ func (a *ApiMethod) GainFormPageListCont(c *gin.Context) {
// // formList[i]["flowIsOpen"] = formInfo.FlowIsOpen
// formList[i]["flowkey"] = strconv.FormatInt(formInfo.Flowkey, 10)
// }
var listFieldsMap ListPageFields
if formInfo . ListJson != "" {
var listFieldsMap ListPageFields
err = json . Unmarshal ( [ ] byte ( formInfo . ListJson ) , & listFieldsMap )
// fmt.Printf("%T----------->%v----------->%v\n", listFieldsMap, err, listFieldsMap)
if err == nil {
// fmt.Printf("%T----------->%v\n", listFieldsMap, listFieldsMap)
formList = listFieldsMap . DevelopSpecificationsSend ( formList )
formList = listFieldsMap . DevelopSpecificationsSend ( formList , formJsonCont )
// formList = DevelopSpecificationsSend(formList, listFieldsMap)
}
@ -1535,12 +1574,19 @@ func (a *ApiMethod) GainFormPageListCont(c *gin.Context) {
}
}
var masterKey int64
if mastrKeyVal , ok := v [ "masters_key" ] ; ok {
masterKey , _ = publicmethod . StringToInt64 ( mastrKeyVal )
// fmt.Printf("mastrKeyVal----------->%T----------->%v\n", mastrKeyVal, mastrKeyVal)
if mastrKeyUint64 , ok := mastrKeyVal . ( uint64 ) ; ok {
formList [ i ] [ "masters_key" ] = strconv . FormatUint ( mastrKeyUint64 , 10 )
}
}
fmt . Printf ( "mastrKeyVal----------->%T----------->%v\n" , v [ "table_structure" ] , v [ "table_structure" ] )
for _ , sv := range sunMap {
formList [ i ] [ sv ] = gainMasterSunList ( sv , masterKey , formJsonCont , overall . CONSTANT_DB_CustomerForm )
}
}
// publicmethod.Result(100, formList, c)
@ -1548,13 +1594,286 @@ func (a *ApiMethod) GainFormPageListCont(c *gin.Context) {
}
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2025 - 03 - 14 0 8 : 59 : 27
@ 功能 : 获取每条数据得子数据列表
* /
func gainMasterSunList ( tableName string , masterKey int64 , formJsonCont CustomerFormMaster , gormDbConfig * gorm . DB ) ( list [ ] map [ string ] interface { } ) {
// fmt.Printf(" 获取每条数据得子数据列表------->%v\n------->%v\n------->%v\n", tableName, masterKey, gormDbConfig)
gormDbConfig . Table ( tableName ) . Where ( "`masters_key` = ? and `states` = 1" , masterKey ) . Find ( & list )
if len ( list ) > 0 {
var listFieldsMap ListPageFields
var sunTable MasterStruct
for _ , v := range formJsonCont . List {
if v . Type == "table" && v . Name == tableName {
sunTable = v
}
}
list = listFieldsMap . SunTableForm ( list , masterKey , sunTable )
}
// fmt.Printf(" 获取每条数据得子数据列表------->%v\n------->%v\n------->%v\n", err, err, err)
return
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2025 - 03 - 14 11 : 20 : 00
@ 功能 : 数值结果类型转换
* /
func ( l * ListPageFields ) SunTableForm ( listData [ ] map [ string ] interface { } , masterKey int64 , sunTable MasterStruct ) [ ] map [ string ] interface { } {
var sendList [ ] map [ string ] interface { }
for _ , v := range listData {
sendInfo := publicmethod . MapOut [ string ] ( )
for mi , mv := range v {
switch mi {
case "creater" :
mvInt , _ := publicmethod . StringToInt64 ( mv )
if mvInt != 0 {
var myInfo modelshr . PersonArchives
myInfo . GetCont ( map [ string ] interface { } { "`key`" : mvInt } , "`name`" )
sendInfo [ mi ] = myInfo . Name
}
case "creater_time" :
timeInt , _ := publicmethod . StringToInt64 ( mv )
sendInfo [ mi ] = publicmethod . UnixTimeToDay ( timeInt , 27 )
case "edit_time" :
timeInt , _ := publicmethod . StringToInt64 ( mv )
sendInfo [ mi ] = publicmethod . UnixTimeToDay ( timeInt , 27 )
default :
sendInfo [ mi ] = l . BaseSunTableAttrField ( mi , mv , sunTable )
// sendInfo[mi] = publicmethod.TypeToInterface(mv)
}
for _ , lv := range l . TableData . Columns {
if lv . FieldClass != "-" && lv . FieldClass != "_lableTitle" && lv . FieldClass != "__control" {
if lv . Id == mi {
switch lv . FieldClass {
case "radio" :
for _ , ov := range lv . Options {
radioId := publicmethod . TypeToInterface ( mv )
if radioId == ov . Value {
sendInfo [ mi ] = ov . Label
}
}
case "datePicker" :
var beginTime string
timeVal , _ := publicmethod . StringToInt64 ( mv )
switch lv . Auxiliary {
case "year" :
sendInfo [ mi ] = publicmethod . UnixTimeToDay ( timeVal / 1000 , 16 )
case "month" :
sendInfo [ mi ] = publicmethod . UnixTimeToDay ( timeVal / 1000 , 15 )
case "datetime" :
sendInfo [ mi ] = publicmethod . UnixTimeToDay ( timeVal / 1000 , 11 )
case "week" :
sendInfo [ mi ] = publicmethod . UnixTimeToDay ( timeVal / 1000 , 41 )
case "datetimerange" :
beginTime = publicmethod . UnixTimeToDay ( timeVal / 1000 , 11 )
sendInfo [ mi ] = beginTime
case "daterange" :
beginTime = publicmethod . UnixTimeToDay ( timeVal / 1000 , 14 )
sendInfo [ mi ] = beginTime
case "monthrange" :
beginTime = publicmethod . UnixTimeToDay ( timeVal / 1000 , 15 )
sendInfo [ mi ] = beginTime
default :
beginTime = publicmethod . UnixTimeToDay ( timeVal / 1000 , 14 )
sendInfo [ mi ] = beginTime
}
case "timePicker" :
timeVal , _ := publicmethod . StringToInt64 ( mv )
if timeVal != 0 {
sendInfo [ mi ] = publicmethod . UnixTimeToDay ( timeVal / 1000 , 5 )
} else {
sendInfo [ mi ] = ""
}
case "deptOrg" :
var orgCont modelshr . AdministrativeOrganization
orgCont . GetCont ( map [ string ] interface { } { "`id`" : mv } , "`name`" )
sendInfo [ mi ] = orgCont . Name
case "owner" :
var userInfo modelshr . PersonArchives
userInfo . GetCont ( map [ string ] interface { } { "`key`" : mv } , "`name`" , "`number`" )
sendInfo [ mi ] = fmt . Sprintf ( "%v(%v)" , userInfo . Name , userInfo . Number )
case "expand-user" :
var userAry [ ] string
jsonStr := publicmethod . TypeToInterface ( mv )
json . Unmarshal ( [ ] byte ( jsonStr ) , & userAry )
sendInfo [ mi ] = strings . Join ( userAry , " , " )
case "select" :
var sendInfp [ ] string
if mv != nil {
fmt . Printf ( "Step1:\n" )
valStr := publicmethod . TypeToInterface ( mv )
var valAry [ ] int64
json . Unmarshal ( [ ] byte ( valStr ) , & valAry )
if len ( valAry ) > 0 {
for _ , vv := range valAry {
for _ , v := range lv . Options {
vvStr := strconv . FormatInt ( vv , 10 )
if v . Value == vvStr {
fmt . Printf ( "Step2:\n" )
sendInfp = append ( sendInfp , v . Label )
}
}
}
} else {
fmt . Printf ( "Step3:\n" )
for _ , v := range lv . Options {
if v . Value == valStr {
fmt . Printf ( "Step4:\n" )
sendInfp = append ( sendInfp , v . Label )
}
}
}
sendInfo [ mi ] = strings . Join ( sendInfp , " , " )
}
default :
}
}
}
}
}
sendList = append ( sendList , sendInfo )
}
return sendList
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2025 - 03 - 14 11 : 23 : 55
@ 功能 : 根据字段显示格式处理数据
* /
func ( l * ListPageFields ) BaseSunTableAttrField ( key string , val interface { } , sunTable MasterStruct ) interface { } {
if len ( l . TableData . Columns ) < 0 {
return val
}
for _ , v := range l . TableData . Columns {
if v . Id == key {
fmt . Printf ( "组件类型---->\n\n%v\n\n" , v . FieldClass )
switch v . FieldClass {
case "checkbox" :
if val != nil {
var checkboxStrAry [ ] interface { }
var checkboxAry [ ] string
if valStr , ok := val . ( string ) ; ok {
err := json . Unmarshal ( [ ] byte ( valStr ) , & checkboxStrAry )
if err == nil {
for _ , v := range checkboxStrAry {
checkboxAry = append ( checkboxAry , publicmethod . TypeToInterface ( v ) )
}
}
}
if len ( checkboxAry ) > 0 {
var jieGuo [ ] string
for _ , ov := range v . Options {
intVal , _ := publicmethod . StringToInt64 ( ov . Value )
intValStr := strconv . FormatInt ( intVal , 10 )
if publicmethod . IsInTrue [ string ] ( intValStr , checkboxAry ) {
jieGuo = append ( jieGuo , ov . Label )
}
}
val = strings . Join ( jieGuo , "," )
}
}
case "orgCentent" :
var orgCont modelshr . AdministrativeOrganization
orgCont . GetCont ( map [ string ] interface { } { "`id`" : val } , "name" )
return orgCont . Name
case "baidumap" :
var mapAry [ ] string
if valStr , ok := val . ( string ) ; ok {
mapAry = strings . Split ( valStr , "|*@*|" )
}
if len ( mapAry ) > 0 {
return mapAry [ 0 ]
}
case "treeSelect" :
// jsonStr, _ := json.Marshal(v)
// fmt.Printf("树形菜单结构----》\n%v\n", string(jsonStr))
// formJsonCont.GetUnitVal(v.Id)
hjakshdk := GetSunUnitVal ( v . Id , val , sunTable )
// fmt.Printf("树形菜单结构----》\n%v\n", hjakshdk)
return hjakshdk
case "pickrole" :
return 112
case "pickpost" :
return 250
case "select" :
var sendInfp [ ] string
if val != nil {
valStr := publicmethod . TypeToInterface ( val )
var valAry [ ] int64
json . Unmarshal ( [ ] byte ( valStr ) , & valAry )
if len ( valAry ) > 0 {
for _ , vv := range valAry {
for _ , v := range v . Options {
vvStr := strconv . FormatInt ( vv , 10 )
if v . Value == vvStr {
sendInfp = append ( sendInfp , v . Label )
}
}
}
} else {
for _ , v := range v . Options {
if v . Value == valStr {
sendInfp = append ( sendInfp , v . Label )
}
}
}
selectVal := strings . Join ( sendInfp , " , " )
return selectVal
}
default :
return publicmethod . TypeToInterface ( val )
}
}
}
return publicmethod . TypeToInterface ( val )
}
func GetSunUnitVal ( key string , val interface { } , formJsonCont MasterStruct ) ( rutVal string ) {
if len ( formJsonCont . List ) > 0 {
for _ , v := range formJsonCont . List {
if v . Name == key {
if datList , isOk := v . Control . Data . ( [ ] interface { } ) ; isOk {
rutVal = diGuiShu ( val , datList )
// fmt.Printf("已经是结果了:%v\n", rutVal)
}
}
}
}
return
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2024 - 04 - 02 0 8 : 14 : 10
@ 功能 : 按照制定列表字段输出
* /
func ( l * ListPageFields ) DevelopSpecificationsSend ( listData [ ] map [ string ] interface { } ) [ ] map [ string ] interface { } {
func ( l * ListPageFields ) DevelopSpecificationsSend ( listData [ ] map [ string ] interface { } , formJsonCont CustomerFormMaster ) [ ] map [ string ] interface { } {
var sendList [ ] map [ string ] interface { }
for _ , v := range listData {
sendInfo := publicmethod . MapOut [ string ] ( )
@ -1575,14 +1894,38 @@ func (l *ListPageFields) DevelopSpecificationsSend(listData []map[string]interfa
case "edit_time" :
timeInt , _ := publicmethod . StringToInt64 ( mv )
sendInfo [ mi ] = publicmethod . UnixTimeToDay ( timeInt , 27 )
case "states" :
mvInt , _ := publicmethod . StringToInt64 ( mv )
switch mvInt {
case 1 :
sendInfo [ mi ] = "启用"
case 2 :
sendInfo [ mi ] = "禁用"
case 3 :
sendInfo [ mi ] = "删除"
default :
sendInfo [ mi ] = "未知"
}
case "flowIsOpen" :
mvInt , _ := publicmethod . StringToInt64 ( mv )
switch mvInt {
case 1 :
sendInfo [ mi ] = "开启"
case 2 :
sendInfo [ mi ] = "关闭"
case 3 :
sendInfo [ mi ] = "删除"
default :
sendInfo [ mi ] = "未知"
}
default :
sendInfo [ mi ] = l . BaseTableAttrField ( mi , mv )
sendInfo [ mi ] = l . BaseTableAttrField ( mi , mv , formJsonCont )
// sendInfo[mi] = publicmethod.TypeToInterface(mv)
}
for _ , lv := range l . TableData . Columns {
if lv . FieldClass != "-" && lv . FieldClass != "_lableTitle" && lv . FieldClass != "__control" {
if lv . Id == mi {
// fmt.Printf("%T = %v\n", lv.FieldClass, lv.FieldClass)
switch lv . FieldClass {
case "radio" :
for _ , ov := range lv . Options {
@ -1729,10 +2072,14 @@ func (l *ListPageFields) DevelopSpecificationsSend(listData []map[string]interfa
@ 时间 : 2024 - 04 - 02 11 : 42 : 20
@ 功能 : 根据字段显示格式处理数据
* /
func ( l * ListPageFields ) BaseTableAttrField ( key string , val interface { } ) interface { } {
func ( l * ListPageFields ) BaseTableAttrField ( key string , val interface { } , formJsonCont CustomerFormMaster ) interface { } {
if len ( l . TableData . Columns ) < 0 {
return val
}
// jsonStrl, _ := json.Marshal(formJsonCont)
// fmt.Printf("树形菜单结构--1--》\n\n\n\n%v\n\n\n\n", string(jsonStrl))
for _ , v := range l . TableData . Columns {
if v . Id == key {
switch v . FieldClass {
@ -1773,6 +2120,13 @@ func (l *ListPageFields) BaseTableAttrField(key string, val interface{}) interfa
if len ( mapAry ) > 0 {
return mapAry [ 0 ]
}
case "treeSelect" :
// jsonStr, _ := json.Marshal(v)
// fmt.Printf("树形菜单结构----》\n%v\n", string(jsonStr))
// formJsonCont.GetUnitVal(v.Id)
hjakshdk := GetUnitVal ( v . Id , val , formJsonCont )
// fmt.Printf("树形菜单结构----》\n%v\n", hjakshdk)
return hjakshdk
case "select" :
var sendInfp [ ] string
if val != nil {
@ -1804,7 +2158,34 @@ func (l *ListPageFields) BaseTableAttrField(key string, val interface{}) interfa
return selectVal
}
case "pickrole" :
valInt := publicmethod . TypeToInterface ( val )
if valInt != "" && valInt != "0" {
var roleMode modelssystempermission . SystemRole
roleMode . GetCont ( map [ string ] interface { } { "`id`" : val } )
return roleMode . Name
} else {
return val
}
case "pickpost" :
valString := publicmethod . TypeToInterface ( val )
if valString != "" {
mapAry := strings . Split ( valString , "#@#" )
if len ( mapAry ) >= 2 {
var orgInfo modelshr . AdministrativeOrganization
orgInfo . GetCont ( map [ string ] interface { } { "`id`" : mapAry [ 0 ] } , "`name`" )
var postInfo modelshr . Position
postInfo . GetCont ( map [ string ] interface { } { "`id`" : mapAry [ len ( mapAry ) - 1 ] } , "`name`" )
return fmt . Sprintf ( "%v - %v" , orgInfo . Name , postInfo . Name )
} else if len ( mapAry ) == 1 {
var orgInfo modelshr . AdministrativeOrganization
orgInfo . GetCont ( map [ string ] interface { } { "`id`" : mapAry [ 0 ] } , "`name`" )
return orgInfo . Name
}
} else {
return val
}
default :
return publicmethod . TypeToInterface ( val )
}
@ -1813,6 +2194,62 @@ func (l *ListPageFields) BaseTableAttrField(key string, val interface{}) interfa
return publicmethod . TypeToInterface ( val )
}
func GetUnitVal ( key string , val interface { } , formJsonCont CustomerFormMaster ) ( rutVal string ) {
if len ( formJsonCont . List ) > 0 {
for _ , v := range formJsonCont . List {
if v . Name == key {
if datList , isOk := v . Control . Data . ( [ ] interface { } ) ; isOk {
rutVal = diGuiShu ( val , datList )
// fmt.Printf("已经是结果了:%v\n", rutVal)
}
}
}
}
return
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2025 - 02 - 28 15 : 43 : 27
@ 功能 : 递归查值
* /
func diGuiShu ( key interface { } , val [ ] interface { } ) string {
jieguo := ""
for _ , v := range val {
if mapVal , isOk := v . ( map [ string ] interface { } ) ; isOk {
// fmt.Printf("结果是---111-->%v---111-->%v---111-->%v\n", mapVal["value"], key, publicmethod.TypeToInterface(mapVal["value"]) == publicmethod.TypeToInterface(key))
publicmethod . TypeToInterface ( mapVal [ "value" ] )
if publicmethod . TypeToInterface ( mapVal [ "value" ] ) == publicmethod . TypeToInterface ( key ) {
// fmt.Printf("结果是---label-->%v\n", publicmethod.TypeToInterface(mapVal["label"]))
jieguo = publicmethod . TypeToInterface ( mapVal [ "label" ] )
// return jieguo
} else {
if childVal , isok := mapVal [ "children" ] ; isok {
// fmt.Printf("\n\n组件清苦--->>%T------>%v\n\n", childVal, childVal)
if vhiList , ok := childVal . ( [ ] interface { } ) ; ok {
jieguo = diGuiShu ( key , vhiList )
}
}
}
}
if jieguo != "" {
return jieguo
}
}
// fmt.Printf("结果是-1--label--1>%v\n", jieguo)
return jieguo
}
/ *
*
@ 作者 : 秦东
@ -2150,10 +2587,10 @@ func (a *ApiMethod) GainTableVersionField(c *gin.Context) {
if len ( formFieldAry . MasterInfo ) > 0 {
sendTableList [ "masterTable" ] = TableFieldCompareForm ( masterTable , formFieldAry . MasterInfo )
} else {
sendTableList [ "masterTablesss " ] = masterTable
sendTableList [ "masterTable" ] = masterTable
}
} else {
sendTableList [ "masterTablesss " ] = masterTable
sendTableList [ "masterTable" ] = masterTable
}
if version . TableStructure != "" {
var sunTable map [ string ] interface { }