groupInfoCom.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <template>
  2. <div class="siteManage-main groupInfo p20">
  3. <el-form :model="form" :rules="rules" ref="formInfo" label-width="100px">
  4. <div class="el-form-item blockTitle">分组信息</div>
  5. <div></div>
  6. <el-form-item label="分组名称" prop="groupingName" label-width="130px">
  7. <el-input v-model="form.groupingName" v-if="label == '所有站点'" disabled></el-input>
  8. <el-input v-model="form.groupingName" v-else></el-input>
  9. </el-form-item>
  10. <el-form-item>
  11. <el-button type="primary" @click="submitForm('formInfo')" v-if="label != '所有站点'">
  12. 保存
  13. </el-button>
  14. </el-form-item>
  15. </el-form>
  16. </div>
  17. </template>
  18. <script setup>
  19. /*----------------------------------依赖引入-----------------------------------*/
  20. import { ElMessage, ElNotification } from 'element-plus'
  21. import { ref, onMounted, watch, getCurrentInstance, reactive, toRefs, watchEffect } from 'vue'
  22. /*----------------------------------接口引入-----------------------------------*/
  23. import * as api from '@/api/siteManage/index'
  24. /*----------------------------------组件引入-----------------------------------*/
  25. /*----------------------------------store引入-----------------------------------*/
  26. /*----------------------------------公共方法引入-----------------------------------*/
  27. /*----------------------------------公共变量-----------------------------------*/
  28. const props = defineProps({
  29. groupingId: Number,
  30. groupingName: String,
  31. }) //数据双向绑定
  32. const emit = defineEmits(['handleSelect']);
  33. const { proxy } = getCurrentInstance();
  34. /*----------------------------------变量声明-----------------------------------*/
  35. const formInfo = ref(null)
  36. const state = reactive({
  37. form: {},
  38. rules: {
  39. groupingName: [
  40. { required: true, message: '请输入分组名称', trigger: 'blur' },
  41. ],
  42. },
  43. })
  44. const { form, rules } = toRefs(state)
  45. // 保存-修改操作
  46. function submitForm() {
  47. proxy.$refs['formInfo'].validate((valid) => {
  48. if (valid) {
  49. state.form.groupingId = props.groupingId
  50. api
  51. .siteGroupingUpdate({
  52. id: props.groupingId,
  53. groupingName: state.form.groupingName,
  54. })
  55. .then((requset) => {
  56. if (requset.status === 'SUCCESS') {
  57. ElMessage.success({
  58. message: '修改成功',
  59. type: 'success',
  60. })
  61. emit('handleSelect')
  62. } else {
  63. ElMessage.error(requset.msg)
  64. }
  65. })
  66. } else {
  67. console.log('error submit!!')
  68. return false
  69. }
  70. })
  71. }
  72. //监听变化
  73. watch(
  74. () => props.groupingName,
  75. (newVal) => {
  76. form.value.groupingName = newVal
  77. }
  78. )
  79. onMounted(() => {
  80. form.value.groupingName = props.groupingName
  81. })
  82. </script>
  83. <style scoped lang="scss"></style>