Browse Source

字典必填限制

duy 2 years ago
parent
commit
e46d330374

+ 25 - 14
src/views/system/components/tab-approve.vue

@@ -52,8 +52,8 @@
     </HcCard>
     <!-- 预算分类新增编辑弹窗 -->
     <HcDialog bg-color="#ffffff" widths="22rem" is-to-body :show="priceModal" :title="priceTitle" @close="priceModalClose" @save="saveparentClick">
-        <el-form :model="priceform" label-position="top" label-width="auto" size="large">
-            <el-form-item label="一级科目名称:">
+        <el-form ref="formRef" :model="priceform" label-position="top" label-width="auto" size="large" :rules="formRules"> 
+            <el-form-item label="一级科目名称:" prop="dictName">
                 <el-input v-model="priceform.dictName" />
             </el-form-item>
         </el-form>
@@ -63,7 +63,7 @@
 <script setup>
 import { onMounted, ref, watch } from 'vue'
 import { getApproveList, getParentList, removeDictionary, submitApproveList, submitDictionary } from '~api/system/parameter.js'
-import { getArrValue } from 'js-fast-way'
+import { formValidate, getArrValue } from 'js-fast-way'
 
 const props = defineProps({
     cur: {
@@ -226,20 +226,31 @@ const contextMenuClick = ({ key, item }) => {
 }
 
 //新增一级科目
+const formRef = ref(null)
+const formRules = {
+    dictName: [
+        { required: true, message: '请输入名称', trigger: 'blur' },
+    ],
+}   
+
+  
+
 const saveparentClick = async ()=>{
-    const { error, code, msg } = await submitDictionary({
-        type:tabsType.value,
-        dictName:priceform.value?.dictName,
-        id:menuKey.value || null,
-    })
+    const res = await formValidate(formRef.value)
+    if (res) {
+        const { error, code, msg } = await submitDictionary({
+            type:tabsType.value,
+            dictName:priceform.value?.dictName,
+            id:menuKey.value || null,
+        })
 
-    if (!error && code === 200) {
-        window.$message?.success(msg)
-        priceModal.value = false
-        getParentListData()
-    } else {
-        window.$message?.warning(msg)
+        if (!error && code === 200) {
+            window.$message?.success(msg)
+            priceModal.value = false
+            getParentListData()
+        } 
     }
+  
 }
 const tableColumn = [
     { key: 'roleName', name: '审批岗位', align:'center' },

+ 27 - 17
src/views/system/components/tab-invoice.vue

@@ -18,8 +18,8 @@
         </HcTable>
    
         <HcDialog bg-color="#ffffff" is-to-body widths="24rem" :show="positonModal" :title="positonModalTitle" @close="positonModalClose" @save="savepositionClick">
-            <el-form label-position="top" label-width="auto" :model="formposition" size="large">
-                <el-form-item label="发票类型名称:">
+            <el-form ref="formRef" label-position="top" label-width="auto" :model="formposition" size="large" :rules="formRules">
+                <el-form-item label="发票类型名称:" prop="dictName">
                     <el-input v-model="formposition.dictName" />
                 </el-form-item>
             </el-form>
@@ -30,7 +30,7 @@
 <script setup>
 import { onMounted, ref, watch } from 'vue'
 import { getParentList, removeDictionary, submitDictionary } from '~api/system/parameter.js'
-import { getArrValue } from 'js-fast-way'
+import { formValidate, getArrValue } from 'js-fast-way'
 const props = defineProps({
     cur: {
         type: [String, Number],
@@ -110,23 +110,33 @@ const positonModalClose = () => {
 }
 
 const formposition = ref({})
-
+const formRef = ref(null)
+const formRules = {
+    dictName: [
+        { required: true, message: '请输入名称', trigger: 'blur' },
+    ],
+  
+}
 //新增编辑提交
 const savepositionClick = async ()=>{
-    const { error, code, msg } = await submitDictionary({
-        type:tabsType.value,
-        dictValue:formposition.value?.dictValue,
-        dictName:formposition.value?.dictName,
-        id:editItem.value.id || null,
-      
-    })
-    positonModal.value = false
-    if (!error && code === 200) {
-        window.$message?.success(msg)
-        getParentListData()
-    } else {
-        window.$message?.warning(msg)
+    const res = await formValidate(formRef.value)
+    if (res) {
+        const { error, code, msg } = await submitDictionary({
+            type:tabsType.value,
+            dictValue:formposition.value?.dictValue,
+            dictName:formposition.value?.dictName,
+            id:editItem.value.id || null,
+        
+        })
+        positonModal.value = false
+        if (!error && code === 200) {
+            window.$message?.success(msg)
+            getParentListData()
+        } else {
+            window.$message?.warning(msg)
+        }
     }
+
 }
 const delTaskposition = (row) => {
     window?.$messageBox?.alert('您确定要删除该信息吗? 一旦注销数据将彻底清除,请谨慎操作?', '删除提醒', {

+ 15 - 4
src/views/system/components/tab-price.vue

@@ -18,8 +18,8 @@
         </HcTable>
 
         <HcDialog bg-color="#ffffff" is-to-body widths="24rem" :show="positonModal" :title="positonModalTitle" @close="positonModalClose" @save="savepositionClick">
-            <el-form label-position="top" label-width="auto" :model="formposition" size="large">
-                <el-form-item label="岗位类型名称:">
+            <el-form ref="positionref" label-position="top" label-width="auto" :model="formposition" size="large" :rules="positionformRules">
+                <el-form-item label="岗位类型名称:" prop="dictName">
                     <el-input v-model="formposition.dictName" />
                 </el-form-item>
                 <el-form-item label="日单价:">
@@ -34,7 +34,7 @@
 <script setup>
 import { onMounted, ref, watch } from 'vue'
 import { getParentList, removeDictionary, submitDictionary } from '~api/system/parameter.js'
-import { getArrValue } from 'js-fast-way'
+import { formValidate, getArrValue } from 'js-fast-way'
 const props = defineProps({
     cur: {
         type: [String, Number],
@@ -113,9 +113,18 @@ const positonModalClose = () => {
 }
 
 const formposition = ref({})
+const positionformRules = {
+    dictName: [
+        { required: true, message: '请输入名称', trigger: 'blur' },
+    ],
+  
+}
 //新增编辑提交
+const positionref = ref(null)
 const savepositionClick = async ()=>{
-    const { error, code, msg } = await submitDictionary({
+    const res = await formValidate(positionref.value)
+    if (res) {
+        const { error, code, msg } = await submitDictionary({
         type:tabsType.value,
         dictValue:formposition.value?.dictValue,
         dictName:formposition.value?.dictName,
@@ -129,6 +138,8 @@ const savepositionClick = async ()=>{
     } else {
         window.$message?.warning(msg)
     }
+    }
+ 
 }
 const delTaskposition = (row) => {
     window?.$messageBox?.alert('您确定要删除该信息吗? 一旦注销数据将彻底清除,请谨慎操作?', '删除提醒', {

+ 29 - 17
src/views/system/components/tab-reimbursement.vue

@@ -18,8 +18,8 @@
         </HcTable>
    
         <HcDialog bg-color="#ffffff" is-to-body widths="24rem" :show="positonModal" :title="positonModalTitle" @close="positonModalClose" @save="savepositionClick">
-            <el-form label-position="top" label-width="auto" :model="formposition" size="large">
-                <el-form-item label="报销类型名称:">
+            <el-form ref="formRef" label-position="top" label-width="auto" :model="formposition" size="large" :rules="positionformRules">
+                <el-form-item label="报销类型名称:" prop="dictName">
                     <el-input v-model="formposition.dictName" />
                 </el-form-item>
             </el-form>
@@ -30,7 +30,7 @@
 <script setup>
 import { onMounted, ref, watch } from 'vue'
 import { getParentList, removeDictionary, submitDictionary } from '~api/system/parameter.js'
-import { getArrValue } from 'js-fast-way'
+import { formValidate, getArrValue } from 'js-fast-way'
 const props = defineProps({
     cur: {
         type: [String, Number],
@@ -110,23 +110,35 @@ const positonModalClose = () => {
 }
 
 const formposition = ref({})
-
+const positionformRules = {
+    dictName: [
+        { required: true, message: '请输入名称', trigger: 'blur' },
+    ],
+  
+}
 //新增编辑提交
+const formRef = ref(null)
+
+
 const savepositionClick = async ()=>{
-    const { error, code, msg } = await submitDictionary({
-        type:tabsType.value,
-        dictValue:formposition.value?.dictValue,
-        dictName:formposition.value?.dictName,
-        id:editItem.value.id || null,
-      
-    })
-    positonModal.value = false
-    if (!error && code === 200) {
-        window.$message?.success(msg)
-        getParentListData()
-    } else {
-        window.$message?.warning(msg)
+    const res = await formValidate(formRef.value)
+    if (res) {
+            const { error, code, msg } = await submitDictionary({
+            type:tabsType.value,
+            dictValue:formposition.value?.dictValue,
+            dictName:formposition.value?.dictName,
+            id:editItem.value.id || null,
+        
+        })
+        positonModal.value = false
+        if (!error && code === 200) {
+            window.$message?.success(msg)
+            getParentListData()
+        } else {
+            window.$message?.warning(msg)
+        }
     }
+
 }
 const delTaskposition = (row) => {
     window?.$messageBox?.alert('您确定要删除该信息吗? 一旦注销数据将彻底清除,请谨慎操作?', '删除提醒', {

+ 30 - 18
src/views/system/components/tab-task-type.vue

@@ -23,11 +23,11 @@
 
         <!-- 任务类型弹窗 -->
         <HcDialog bg-color="#ffffff" is-to-body widths="24rem" :show="tasktypeModal" :title="taskTypeTitle" @close="taskTypeModalClose" @save="saveparentClick">
-            <el-form label-position="top" :model="formtaskType" label-width="auto" size="large">
-                <el-form-item label="任务类型名称">
+            <el-form ref="taskformref" label-position="top" :model="formtaskType" label-width="auto" size="large" :rules="taskformRules">
+                <el-form-item label="任务类型名称" prop="dictName">
                     <el-input v-model="formtaskType.dictName" />
                 </el-form-item>
-                <el-form-item label="类型">
+                <el-form-item label="类型" prop="dictValue">
                     <el-select v-model="formtaskType.dictValue" class="block" placeholder="请选择">
                         <el-option v-for="item in typeoptions" :key="item.value" :label="item.name" :value="item.value" />
                     </el-select>
@@ -40,7 +40,7 @@
 <script setup>
 import { onMounted, ref, watch } from 'vue'
 import { getParentList, removeDictionary, submitDictionary } from '~api/system/parameter.js'
-import { getArrValue } from 'js-fast-way'
+import { formValidate, getArrValue } from 'js-fast-way'
 const props = defineProps({
     cur: {
         type: [String, Number],
@@ -91,23 +91,35 @@ const openTypeEdit = (type, row) => {
     }
     tasktypeModal.value = true
 }
-
+const taskformRules = {
+    dictName: [
+        { required: true, message: '请输入名称', trigger: 'blur' },
+    ],
+    dictValue: [
+        { required: true, message: '请选择类型', trigger: 'blur' },
+    ],
+}
 //新增一级科目
+const taskformref = ref(null)
 const saveparentClick = async ()=>{
-    const { error, code, msg } = await submitDictionary({
-        type:tabsType.value,
-        dictValue:formtaskType.value?.dictValue,
-        dictName:formtaskType.value?.dictName,
-        id:editItem.value.id || null,
-      
-    })
-    tasktypeModal.value = false
-    if (!error && code === 200) {
-        window.$message?.success(msg)
-        getParentListData()
-    } else {
-        window.$message?.warning(msg)
+    const res = await formValidate(taskformref.value)
+    if (res) {
+            const { error, code, msg } = await submitDictionary({
+            type:tabsType.value,
+            dictValue:formtaskType.value?.dictValue,
+            dictName:formtaskType.value?.dictName,
+            id:editItem.value.id || null,
+        
+        })
+        tasktypeModal.value = false
+        if (!error && code === 200) {
+            window.$message?.success(msg)
+            getParentListData()
+        } else {
+            window.$message?.warning(msg)
+        }
     }
+ 
 }
 const tableLoaing = ref(false)
 const getParentListData = async ()=>{