GroupModelAdd.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <template>
  2. <div>
  3. <el-dialog v-model="dialogVisible" title="组合装置类型编码设置" width="30%" @close="handleClose"
  4. :close-on-click-modal="false">
  5. <span>组合装置编码:</span>
  6. <el-input v-model="iedValue" :maxlength="10" :show-word-limit="true" style="width: 300px;"
  7. placeholder="请输入编码,仅支持大写英文字母、#、-"></el-input>
  8. <div>编码说明:区分电压等级时,使用编码#电压组合方式,其中高压为H,中压为M,低压为L,本体为0,差动为C,如:PT#H,PT#0,PT#C;</div>
  9. <div>多套说明:当需要区分AB套时,使用横杠-连接套别代码,如:PT#H-A,PT-B;</div>
  10. <template #footer>
  11. <span class="dialog-footer">
  12. <el-button @click="cancels">取消</el-button>
  13. <el-button type="primary" @click="sureClick">确定</el-button>
  14. </span>
  15. </template>
  16. </el-dialog>
  17. </div>
  18. </template>
  19. <script>
  20. import { ref, onMounted, watch, onBeforeUnmount } from 'vue';
  21. import flow from '@/api/flow/flow';
  22. import { ElMessage, ElLoading } from 'element-plus';
  23. export default {
  24. props: {
  25. groupType: {
  26. type: Boolean,
  27. required: true,
  28. },//模态框显示
  29. modelId: {
  30. type: String,
  31. required: true,
  32. },//DrawDesigns.vue传过来的模型id
  33. groupNodeId:{
  34. type:String,
  35. required: true,
  36. }//分组装置节点ID,确定时需要回传回画布界面
  37. },
  38. setup(props, { emit }) {
  39. let dialogVisible = ref(false)//模态框打开/关闭状态
  40. let iedValue = ref('')//输入框value值
  41. let modelType = ref("")//本组件的模型id
  42. // 初始化组件
  43. function reload() {
  44. dialogVisible.value = props.groupType
  45. modelType.value = props.modelId
  46. }
  47. // 关闭模态框
  48. function modalClose() {
  49. dialogVisible.value = false
  50. emit("groupBack", {"show":dialogVisible.value,'ied_type':'',"groupNodeId":props.groupNodeId})
  51. }
  52. // 确认按钮
  53. function modalSure() {
  54. const reg= /^[A-Za-z#\-]+$/;
  55. const v = iedValue.value.replace(/ /g,'')
  56. if (v == '' || !reg.test(v)) {
  57. ElMessage({
  58. message: "请输入正确的组合装置编码:仅支持纯英文字母、#、-",
  59. type: "error"
  60. })
  61. } else {
  62. //仅更新本地编码,此处不需要提交到后台
  63. dialogVisible.value = false
  64. emit("groupBack", {"show":dialogVisible.value,"ied_type":v.toUpperCase(),"groupNodeId":props.groupNodeId})
  65. /*
  66. flow.updateIedType({
  67. id: modelType.value - 0,
  68. old_iedtype: "",
  69. new_iedtype: iedValue.value
  70. }).then(res => {
  71. if (res.code == 0) {
  72. ElMessage({
  73. message: "添加成功",
  74. type: "success"
  75. })
  76. dialogVisible.value = false
  77. emit("groupBack", dialogVisible.value)
  78. } else {
  79. ElMessage({
  80. message: res.msg,
  81. type: "error"
  82. })
  83. }
  84. })
  85. */
  86. }
  87. }
  88. //将输入的编码内容转为大写
  89. onMounted(() => {
  90. reload()
  91. })
  92. return {
  93. reload,//初始化组件函数
  94. handleClose: modalClose,//关闭模态框函数替代关闭函数
  95. cancels: modalClose,//关闭模态框函数替代关闭函数
  96. sureClick: modalSure,//确认按钮函数替代确认函数
  97. iedValue,//输入框value值
  98. dialogVisible,//模态框状态
  99. modelType,//本组件的模型id
  100. }
  101. }
  102. }
  103. </script>
  104. <style lang="scss" scoped></style>