Explorar o código

合同材料修改

duy hai 1 ano
pai
achega
59cdf15f0d
Modificáronse 1 ficheiros con 30 adicións e 16 borrados
  1. 30 16
      src/views/debit-pay/material/contract.vue

+ 30 - 16
src/views/debit-pay/material/contract.vue

@@ -22,31 +22,31 @@
             </div>
             <div class="ml-3 w-[400px]">
                 <hc-card-item title="详情信息" scrollbar>
-                    <el-form label-position="left" :model="formModel" label-width="auto" size="large" disabled>
+                    <el-form label-position="left" :model="infoData" label-width="auto" size="large" disabled>
                         <el-form-item label="材料编号:">
-                            <el-input v-model="formModel.materialNumber" />
+                            <el-input v-model="infoData.materialNumber" />
                         </el-form-item>
                         <el-form-item label="材料名称:">
-                            <el-input v-model="formModel.materialName" />
+                            <el-input v-model="infoData.materialName" />
                         </el-form-item>
                         <el-form-item label="规格型号:">
-                            <el-input v-model="formModel.specification" />
+                            <el-input v-model="infoData.specification" />
                         </el-form-item>
                         <el-form-item label="单位:">
-                            <el-input v-model="formModel.unit" />
+                            <el-input v-model="infoData.unit" />
                         </el-form-item>
                         <el-form-item label="单价:">
-                            <el-input v-model="formModel.price" />
+                            <el-input v-model="infoData.price" />
                         </el-form-item>
                         <el-form-item label="数量:">
-                            <el-input v-model="formModel.amount" />
+                            <el-input v-model="infoData.amount" />
                         </el-form-item>
                     </el-form>
                 </hc-card-item>
             </div>
         </div>
         <!-- 新增/修改 -->
-        <hc-new-dialog widths="30rem" :show="isFormModal" title="合同材料新增" :loading="saveLoaing" @save="modalSave" @close="modalClose">
+        <hc-new-dialog widths="30rem" :show="isFormModal" :title="modalTitle" :loading="saveLoaing" @save="modalSave" @close="modalClose">
             <el-form ref="formRef" class="p-2" label-position="top" :model="formModel" :rules="formRules" size="large">
                 <el-form-item label="材料编号:">
                     <el-input v-model="formModel.materialNumber" />
@@ -75,7 +75,7 @@
 import { onMounted, ref } from 'vue'
 import mainApi from '~api/debit-pay/material/contract.js'
 import { useAppStore } from '~src/store'
-import { getArrValue } from 'js-fast-way'
+import { deepClone, formValidate, getArrValue } from 'js-fast-way'
 import { delMessageV2 } from '~com/message/index.js'
 const useAppState = useAppStore()
 const projectId = ref(useAppState.getProjectId)
@@ -113,6 +113,7 @@ const tableColumn = ref([
     { key: 'action', name: '操作', width: 100 },
 ])
 const tableData = ref([])
+const infoData = ref({})
 const getTableData = async () => {
     tableLoading.value = true
     const { error, code, data } = await mainApi.getPage({
@@ -124,7 +125,7 @@ const getTableData = async () => {
     if (!error && code === 200) {
         tableData.value = getArrValue(data['records'])
         if (tableData.value.length > 0) {
-            formModel.value = tableData.value[0]
+            infoData.value = tableData.value[0]
             // getDetail(tableData.value[0].id)
         }
        
@@ -135,30 +136,41 @@ const getTableData = async () => {
     }
 }
 const viewRow = ({ row })=>{
-   formModel.value = row
+    infoData.value = row
 }
+const modalTitle = ref('')
 //新增
 const isFormModal = ref(false)
 const rowAddClick = () => {
     isFormModal.value = true
     formModel.value = {}
+    modalTitle.value = '合同材料新增'
 }
 
 //表单数据
 const formRef = ref(null)
 const formModel = ref({})
-const formRules = {}
+const formRules = {
+    materialName: {
+        required: true,
+        trigger: 'blur',
+        message: '请输入材料名称',
+    },
+}
 
 //修改
 const rowEditClick = (row) => {
+    modalTitle.value = '合同材料修改'
     isFormModal.value = true
-    formModel.value = row
+    formModel.value = deepClone(row)
 }
 
 //保存
 const saveLoaing = ref(false)
 const modalSave = async () => {
-    saveLoaing.value = true
+    const res = await formValidate(formRef.value)
+    if (res) {
+        saveLoaing.value = true
     const { error, code, msg } = await mainApi.submit({
         ...formModel.value,
         projectId:projectId.value,
@@ -170,8 +182,10 @@ const modalSave = async () => {
         if (!error && code === 200) {
             window?.$message?.success(msg)
         }
-        getTableData()
-    modalClose()
+            getTableData()
+             modalClose()
+    }
+ 
 }
 const delRowClick = async (row)=>{
     delMessageV2(async (action, instance, done) => {