houzhongjian
2024-07-23 8501060c4f921d1e744c477e4dc08eb47b52693c
提交 | 用户 | 时间
850106 1 <template>
H 2   <el-dialog
3     :title="!dataForm.id ? '新增' : '修改'"
4     :close-on-click-modal="false"
5     :visible.sync="visible">
6     <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
7       <el-form-item label="类型名称" prop="datatypename">
8         <el-input v-model="dataForm.datatypename" placeholder="类型名称" maxlength="50" clearable></el-input>
9       </el-form-item>
10       <el-form-item label="编号" prop="datatypeno">
11         <el-input v-model="dataForm.datatypeno" placeholder="编号" maxlength="5" clearable :disabled="!!dataForm.id"></el-input>
12       </el-form-item>
13       <el-form-item label="描述" prop="descp">
14         <el-input v-model="dataForm.descp" placeholder="描述" maxlength="50" clearable></el-input>
15       </el-form-item>
16     </el-form>
17     <span slot="footer" class="dialog-footer">
18       <el-button @click="visible = false">取消</el-button>
19       <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
20     </span>
21   </el-dialog>
22 </template>
23
24 <script>
25   import { isPositiveInteger } from '@/utils/validate'
26   export default {
27     data () {
28       var validateDatatypeno = (rule, value, callback) => {
29         if (!isPositiveInteger(value)) {
30           callback(new Error('编号应该为整数'))
31         } else {
32           callback()
33         }
34       }
35       return {
36
37         visible: false,
38         noDisabled: false,
39         roleList: [],
40         dataForm: {
41           id: 0,
42           datatypename: '',
43           datatypeno: '',
44           descp: ''
45         },
46         dataRule: {
47           datatypename: [
48             { required: true, message: '类型名称不能为空', trigger: 'blur' }
49           ],
50           datatypeno: [
51             { required: true, message: '编号不能为空', trigger: 'blur' },
52             { validator: validateDatatypeno, trigger: 'blur' }
53           ]
54         }
55       }
56     },
57     methods: {
58       init (id) {
59         this.dataForm.id = id || 0
60         this.visible = true
61         this.$nextTick(() => {
62           this.$refs['dataForm'].resetFields()
63         })
64         if (id) {
65           this.$http({
66             url: `/data/data/data-type/info/${this.dataForm.id}`,
67             method: 'get',
68             params: this.$http.adornParams()
69           }).then(({data}) => {
70             if (data && data.code === 0) {
71               this.dataForm.datatypename = data.dataType.datatypename
72               this.dataForm.datatypeno = data.dataType.datatypeno
73               this.dataForm.descp = data.dataType.descp
74             }
75           })
76         }
77       },
78       // 表单提交
79       dataFormSubmit () {
80         this.$refs['dataForm'].validate((valid) => {
81           if (valid) {
82             this.$http['post'](`/data/data/data-type/${!this.dataForm.id ? 'save' : 'update'}`, this.dataForm).then(({ data: res }) => {
83               if (res.code !== 0) {
84                 return this.$message.error(res.msg)
85               }
86               this.$message({
87                 message: this.$t('prompt.success'),
88                 type: 'success',
89                 duration: 500,
90                 onClose: () => {
91                   this.visible = false
92                   this.$emit('refreshDataList')
93                 }
94               })
95             }).catch(() => {})
96           }
97         })
98       }
99     }
100   }
101 </script>