選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

180 行
5.9 KiB

  1. import {
  2. Grid, TextField
  3. } from '@mui/material';
  4. import Combo from "./Combo";
  5. export const getDateField=({label, valueName, form, disabled})=>{
  6. return <Grid item lg={4} >
  7. <Grid container alignItems={"center"}>
  8. <Grid item xs={4} s={4} md={4} lg={4}
  9. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  10. {label}
  11. </Grid>
  12. <Grid item xs={7} s={7} md={7} lg={6}>
  13. {initField({
  14. type:"date",
  15. valueName:valueName,
  16. form:form,
  17. disabled:disabled
  18. })}
  19. </Grid>
  20. </Grid>
  21. </Grid>;
  22. }
  23. export const getTextField=({label, valueName, form, disabled})=>{
  24. return <Grid item lg={4} >
  25. <Grid container alignItems={"center"}>
  26. <Grid item xs={4} s={4} md={4} lg={4}
  27. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  28. {label}
  29. </Grid>
  30. <Grid item xs={7} s={7} md={7} lg={6}>
  31. {initField({
  32. type:"text",
  33. valueName:valueName,
  34. form:form,
  35. disabled:disabled
  36. })}
  37. </Grid>
  38. </Grid>
  39. </Grid>;
  40. }
  41. export const getPhoneField=({label, valueName, form, disabled})=>{
  42. return <Grid item lg={4}>
  43. <Grid container alignItems={"center"}>
  44. <Grid item xs={4} s={4} md={4} lg={4}
  45. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  46. {label}
  47. </Grid>
  48. <Grid item xs={2}>
  49. {initField({
  50. type:"tel",
  51. valueName:valueName.code,
  52. form:form,
  53. disabled:disabled
  54. })}
  55. </Grid>
  56. <Grid item xs={4}>
  57. {initField({
  58. type:"tel",
  59. valueName:valueName.num,
  60. form:form,
  61. disabled:disabled
  62. })}
  63. </Grid>
  64. </Grid>
  65. </Grid>;
  66. }
  67. export const getAddressField=({label, valueName, form, disabled})=>{
  68. return <Grid item lg={4} >
  69. <Grid container alignItems={"top"}>
  70. <Grid item xs={4} s={4} md={4} lg={4}
  71. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'top'}}>
  72. <Grid item lg={12} sx={{alignItems: 'center'}}>{label}</Grid>
  73. </Grid>
  74. <Grid item lg={6}>
  75. <Grid item lg={12}>
  76. {initField({
  77. type:"text",
  78. valueName:valueName[0],
  79. form:form,
  80. disabled:disabled
  81. })}
  82. </Grid>
  83. <Grid item lg={12}>
  84. {initField({
  85. type:"text",
  86. valueName:valueName[1],
  87. form:form,
  88. disabled:disabled
  89. })}
  90. </Grid>
  91. <Grid item lg={12}>
  92. {initField({
  93. type:"text",
  94. valueName:valueName[2],
  95. form:form,
  96. disabled:disabled
  97. })}
  98. </Grid>
  99. </Grid>
  100. </Grid>
  101. </Grid>;
  102. }
  103. export const getComboField=({label,dataList, valueName, form, disabled, getOptionLabel, onInputChange, onChange, filterOptions, ...props})=>{
  104. return <Grid item lg={4} >
  105. <Grid container alignItems={"center"}>
  106. <Grid item xs={4} s={4} md={4} lg={4}
  107. sx={{ml: 3, mr: 3, display: 'flex', alignItems: 'center'}}>
  108. {label}
  109. </Grid>
  110. <Grid item xs={7} s={7} md={7} lg={6}>
  111. <Combo
  112. valueName={valueName}
  113. disabled={disabled}
  114. dataList={dataList}
  115. form={form}
  116. filterOptions={filterOptions}
  117. getOptionLabel={getOptionLabel}
  118. onInputChange={onInputChange}
  119. onChange={onChange}
  120. {...props}
  121. />
  122. {/* <Autocomplete
  123. id={key}
  124. name={key}
  125. disabled={disabled}
  126. options={dataList}
  127. value={form.values[key]|| null}
  128. getOptionLabel={option => option?(displayField?option[displayField]:option):""}
  129. onChange={(e, val) => {
  130. console.log(val);
  131. let v = val;
  132. if(valueKey){
  133. v = val[valueKey];
  134. }
  135. form.setFieldValue(key, v);
  136. }}
  137. renderInput={params => (
  138. <TextField
  139. fullWidth
  140. name={key}
  141. {...params}
  142. />
  143. )}
  144. /> */}
  145. </Grid>
  146. </Grid>
  147. </Grid>;
  148. }
  149. export const initField=({type, valueName, form, disabled, placeholder, inputProps})=>{
  150. let err = Boolean(form.errors[valueName]);
  151. return <TextField
  152. fullWidth
  153. id={valueName}
  154. name={valueName}
  155. type={type}
  156. placeholder={placeholder}
  157. inputProps={inputProps}
  158. error={err}
  159. helperText={form.errors[valueName]?form.errors[valueName]:''}
  160. onChange={form.handleChange}
  161. value={form.values[valueName]}
  162. disabled={disabled}
  163. sx={{
  164. "& .MuiInputBase-input.Mui-disabled": {
  165. WebkitTextFillColor: "#000000",
  166. background: "#f8f8f8",
  167. },
  168. }}
  169. />
  170. }