editPro.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <template>
  2. <div class="system-edit-dic-container">
  3. <el-dialog :title="(ruleForm.dictId!==0?'修改':'添加')+'产品'" v-model="isShowDialog" width="769px">
  4. <el-form :model="ruleForm" ref="formRef" :rules="rules" size="default" label-width="90px">
  5. <el-form-item label="产品名称" prop="dictName">
  6. <el-input v-model="ruleForm.dictName" placeholder="请输入产品名称" />
  7. </el-form-item>
  8. <el-form-item label="状态" prop="status">
  9. <el-radio-group v-model="ruleForm.status">
  10. <el-radio :label="1" >启用</el-radio>
  11. <el-radio :label="0" >禁用</el-radio>
  12. </el-radio-group>
  13. </el-form-item>
  14. <el-form-item label="备注" prop="remark">
  15. <el-input v-model="ruleForm.remark" type="textarea" placeholder="请输入内容"></el-input>
  16. </el-form-item>
  17. </el-form>
  18. <template #footer>
  19. <span class="dialog-footer">
  20. <el-button @click="onCancel" size="default">取 消</el-button>
  21. <el-button type="primary" @click="onSubmit" size="default">{{ruleForm.dictId!==0?'修 改':'添 加'}}</el-button>
  22. </span>
  23. </template>
  24. </el-dialog>
  25. </div>
  26. </template>
  27. <script lang="ts">
  28. import { reactive, toRefs, defineComponent,ref, unref } from 'vue';
  29. import api from '/@/api/device';
  30. import {ElMessage} from "element-plus";
  31. interface RuleFormState {
  32. id:number;
  33. name:string;
  34. dictType:string;
  35. status:number;
  36. remark:string;
  37. }
  38. interface DicState {
  39. isShowDialog: boolean;
  40. ruleForm: RuleFormState;
  41. rules:{}
  42. }
  43. export default defineComponent({
  44. name: 'deviceEditPro',
  45. setup(prop,{emit}) {
  46. const formRef = ref<HTMLElement | null>(null);
  47. const state = reactive<DicState>({
  48. isShowDialog: false,
  49. ruleForm: {
  50. dictId:0,
  51. dictName:'',
  52. dictType:'',
  53. status:1,
  54. remark:''
  55. },
  56. rules: {
  57. name: [
  58. { required: true, message: "产品名称不能为空", trigger: "blur" }
  59. ]
  60. }
  61. });
  62. // 打开弹窗
  63. const openDialog = (row: RuleFormState|null) => {
  64. resetForm();
  65. if (row){
  66. // api.dict.getType(row.dictId).then((res:any)=>{
  67. // state.ruleForm = res.data.dictType
  68. // })
  69. state.ruleForm = row;
  70. }
  71. state.isShowDialog = true;
  72. };
  73. const resetForm = ()=>{
  74. state.ruleForm = {
  75. dictId:0,
  76. dictName:'',
  77. dictType:'',
  78. status:1,
  79. remark:''
  80. }
  81. };
  82. // 关闭弹窗
  83. const closeDialog = () => {
  84. state.isShowDialog = false;
  85. };
  86. // 取消
  87. const onCancel = () => {
  88. closeDialog();
  89. };
  90. // 新增
  91. const onSubmit = () => {
  92. const formWrap = unref(formRef) as any;
  93. if (!formWrap) return;
  94. formWrap.validate((valid: boolean) => {
  95. if (valid) {
  96. if(state.ruleForm.dictId!==0){
  97. //修改
  98. // api.dict.editType(state.ruleForm).then(()=>{
  99. // ElMessage.success('产品类型修改成功');
  100. // closeDialog(); // 关闭弹窗
  101. // emit('typeList')
  102. // })
  103. }else{
  104. //添加
  105. // api.dict.addType(state.ruleForm).then(()=>{
  106. // ElMessage.success('产品类型添加成功');
  107. // closeDialog(); // 关闭弹窗
  108. // emit('typeList')
  109. // })
  110. }
  111. }
  112. });
  113. };
  114. return {
  115. openDialog,
  116. closeDialog,
  117. onCancel,
  118. onSubmit,
  119. formRef,
  120. ...toRefs(state),
  121. };
  122. },
  123. });
  124. </script>