Commit ede9a08a authored by 田翔's avatar 田翔

fix: 本人相关信息修改,隐藏增加变量

parent 013fdc8f
{
"name": "panda-xform",
"version": "5.3.4",
"description": "5.3.4 关联表单隐藏分组也隐藏",
"version": "5.3.5",
"description": "5.3.5 本人相关信息修改,隐藏增加变量",
"keywords": [
"panda-xform"
],
......
......@@ -237,6 +237,16 @@ export function GetFieldValueFromTable(accountName, fieldName, filter) {
});
}
export function getUserName(userID) {
return request({
headers: {
'Civ-Site': window?.globalConfig?.userInfo?.site
},
url: `PandaOMS/OMS/UserCenter/GetUserName?userIds=${userID}`,
method: 'get',
});
}
// 台账表单的提交
export function SubmitAccountData(tableName, key, value, data) {
return request({
......
......@@ -178,12 +178,16 @@ const textWidgets = [
default: false,
width: '33%',
disabled: disabled,
dependencies: ['tableTypeParent', 'IsSystemField'],
hidden: "{{rootValue.isStoreID}}",
dependencies: ['tableTypeParent', 'IsSystemField', 'isStoreID'],
},
isStoreID: {
title: '是否存储ID',
type: 'boolean',
widget: 'BooleanSwitch',
default: false,
displayType: 'row',
labelWidth: 120,
hidden: "{{!['【本人姓名】','【本人部门】'].includes(rootValue.presetValue) }}",
disabled: disabled,
dependencies: ['presetValue', 'tableTypeParent', 'IsSystemField'],
......
......@@ -21,8 +21,11 @@ const XRender = (props, ref) => {
}
))
const { schemaValues, disabledFields, disabled, codes } = props
window.pandaXform = { codes }
const { schemaValues, disabledFields, disabled, codes, env } = props
window.pandaXform = {
codes,
env,
}
const { formJson, values } = schemaValues
const { getPrefixCls } = useContext(ConfigProvider.ConfigContext)
......@@ -68,7 +71,7 @@ const XRender = (props, ref) => {
childObj[s] = {
...child[s],
presetValue: disabled ? (value || '') : (value || child[s].presetValue),
textDefalut: disabled ? '' : child[s].presetValue,
textDefalut: child[s].presetValue,
disabled: disabledField,
required
}
......
......@@ -28,7 +28,7 @@ export const jsonToValues = (data, paths) => {
})
}
})
let values = []
let values = Array.isArray(window.pandaXform.env) ? window.pandaXform.env : []
if (Array.isArray(paths)) {
paths.forEach(v => {
let fieldName = v.path.split('.')[1]
......
......@@ -429,6 +429,7 @@ const RelationForm = (props) => {
useEffect(() => {
try {
setTimeout(() => {
if (addons) {
let dataPath = addons?.dataPath?.split('.')[0]
let group = addons?.formData?.[dataPath]
let paths = Object.keys(group)
......@@ -443,6 +444,7 @@ const RelationForm = (props) => {
hidden = false
}
addons?.setSchemaByPath(dataPath, { hidden: hidden })
}
}, 500)
} catch (e) {
console.log('error', error)
......
......@@ -147,7 +147,13 @@ const FileUpload = (props) => {
} else {
message.info('不支持该类型预览')
}
}
},
onRemove: async (file) => {
let files = value?.split(",") || [];
let list = files.filter(v => v !== file.name);
onChange(list.join(","))
setShowList(await valueToList(list.join(",")))
},
}
const elemet = () => {
......
......@@ -16,6 +16,13 @@ const BooleanSwitch = (props) => {
addons.setValue('isMultiple', false)
}
}
if (widget === 'TextInput') {
if (schema.$id === 'isStoreID') {
if (value) {
addons.setValue('disabled', true)
}
}
}
}, [value])
return (
......
......@@ -25,6 +25,13 @@ const HiddenCondition = (props) => {
let { code, data, msg } = await ReloadTableFields({ tableName: tableNameParent })
if (code === 0) {
setFieldList([
{
title: '环境变量',
key: '环境变量',
children: [
{ title: '当前节点名称', key: '$env.nodeName' },
]
},
{
title: tableNameParent,
key: tableNameParent,
......@@ -51,8 +58,12 @@ const HiddenCondition = (props) => {
const onSelect = (prop, treeNode) => {
if (!treeNode.node.children) {
if (['$env.nodeName'].includes(treeNode.node.key)) {
insert(treeNode.node.key)
} else {
insert(`{${treeNode.node.key}}`)
}
}
setCurrentSelectId(prop[0]);
}
......
......@@ -2,7 +2,7 @@ import React, { useState, useEffect, useMemo, useContext } from 'react'
import { Input, message, ConfigProvider } from 'antd'
import Icon, { PlusOutlined } from '@ant-design/icons'
import * as icons from '@ant-design/icons'
import { GetFieldValueFromTable } from '../../../../apis/process'
import { GetFieldValueFromTable, getUserName } from '../../../../apis/process'
import styles from './index.less'
const iconList = Object.keys(icons).filter((item) => typeof icons[item] === 'object')
......@@ -34,41 +34,41 @@ const TextInput = (props) => {
const { value, onChange, schema, addons } = props
const { title, disabled, placeholder, presetValue, addonBefore, addonAfter, maxLength, rules, uniqueVerify, tableName, fieldName, isStoreID, textDefalut } = schema
console.log('props', props)
const handleChange = (e) => {
if (addons) {
onChange(e.target.value)
}
}
const valueShow = useMemo(() => {
if (isStoreID) {
if (textDefalut === '【本人姓名】') {
return userInfo.fullName
//仅仅支持本人姓名
const getUserInfo = async (userID) => {
const { code, data } = await getUserName(userID)
if (code === 0) {
if (Array.isArray(data) && data.length > 0) {
onChange(data[0])
}
if (textDefalut === '【本人部门】') {
return userInfo.depart.name
}
}
return value
}, [textDefalut, value, isStoreID])
useEffect(() => {
let value = presetValue
if (preview !== 'preview') {
if (loaclPaths.includes(value)) {
if (value === '【本人姓名】') {
if (!disabled) {
if (textDefalut === '【本人姓名】') {
if (isStoreID) {
value = userInfo.OID + ''
} else {
value = userInfo.fullName
}
} else if (value === '【本人部门】') {
} else if (textDefalut === '【本人部门】') {
if (isStoreID) {
value = userInfo.depart.OID + ''
} else {
value = userInfo.depart.name
}
} else if (value === '【本人电话】') {
} else if (textDefalut === '【本人电话】') {
value = userInfo.Phone
}
}
......@@ -78,7 +78,10 @@ const TextInput = (props) => {
} else {
onChange(value || '')
}
}, [presetValue])
if (isStoreID && value) {
getUserInfo(value)
}
}, [])
useEffect(() => {
if (uniqueVerify === '表名/字段名' && tableName && fieldName) {
......@@ -107,7 +110,7 @@ const TextInput = (props) => {
<Input
style={{ color: loaclPaths.includes(presetValue) ? 'blue' : '' }}
disabled={disabled}
value={valueShow}
value={value}
maxLength={maxLength}
placeholder={disabled ? (placeholder || '') : (placeholder || '请输入内容')}
onChange={handleChange}
......
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 to comment