SetEDBInfoEn.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <script setup>
  2. import { reactive, watch } from "vue"
  3. import apiDataEDB from '@/api/dataEDB'
  4. import { showToast } from "vant"
  5. const props=defineProps({
  6. show:{
  7. type:Boolean,
  8. default:false
  9. },
  10. edbInfo:null
  11. })
  12. const emit=defineEmits(['update:show'])
  13. function handleClose(){
  14. emit('update:show',false)
  15. }
  16. const formState=reactive({
  17. enName:'',
  18. enUnit:''
  19. })
  20. watch(
  21. ()=>props.show,
  22. ()=>{
  23. if(props.show){
  24. formState.enName=props.edbInfo?.EdbNameEn||''
  25. formState.enUnit=props.edbInfo?.UnitEn||''
  26. }else{
  27. formState.enName=''
  28. formState.enUnit=''
  29. }
  30. }
  31. )
  32. async function handleSave(){
  33. const res=await apiDataEDB.edbInfoEnEdit({
  34. EdbInfoId:props.edbInfo.EdbInfoId,
  35. EdbNameEn:formState.enName,
  36. UnitEn:formState.enUnit
  37. })
  38. if(res.Ret===200){
  39. showToast(res.Msg)
  40. handleClose()
  41. }
  42. }
  43. </script>
  44. <template>
  45. <van-dialog
  46. :show="props.show"
  47. title="设置英文名称"
  48. show-cancel-button
  49. @confirm="handleSave"
  50. @cancel="handleClose"
  51. >
  52. <div class="edb-info-set-en-wrap">
  53. <div class="info-item">
  54. <h3 class="label">指标名称</h3>
  55. <p class="text">{{props.edbInfo?.EdbName}}</p>
  56. </div>
  57. <div class="info-item" v-if="props.edbInfo?.Unit&&props.edbInfo?.Unit!='无'">
  58. <h3 class="label">单位</h3>
  59. <p class="text">{{props.edbInfo?.Unit}}</p>
  60. </div>
  61. <div class="info-item">
  62. <input class="input" type="text" placeholder="请输入英文指标名称" v-model="formState.enName">
  63. </div>
  64. <div class="info-item" v-if="props.edbInfo?.Unit&&props.edbInfo?.Unit!='无'">
  65. <input class="input" type="text" placeholder="请输入英文单位" v-model="formState.enUnit">
  66. </div>
  67. </div>
  68. </van-dialog>
  69. </template>
  70. <style lang="scss" scoped>
  71. .edb-info-set-en-wrap{
  72. padding: 48px;
  73. .info-item{
  74. margin-bottom: 32px;
  75. .label{
  76. font-size: 32px;
  77. margin: 0;
  78. line-height: 48px;
  79. }
  80. .text{
  81. color: $font-grey;
  82. margin: 0;
  83. }
  84. .input{
  85. background-color: $page-bg-grey;
  86. box-sizing: border-box;
  87. display: block;
  88. width: 100%;
  89. padding: 24px 32px;
  90. border-radius: 12px;
  91. }
  92. }
  93. }
  94. @media screen and (min-width:$media-width){
  95. .edb-info-set-en-wrap{
  96. padding: 24px;
  97. .info-item{
  98. margin-bottom: 16px;
  99. .label{
  100. font-size: 16px;
  101. line-height: 28px;
  102. }
  103. .input{
  104. padding: 12px 16px;
  105. border-radius: 6px;
  106. }
  107. }
  108. }
  109. }
  110. </style>