Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/master'

ZaiZai 1 gadu atpakaļ
vecāks
revīzija
0632fe42b1

+ 5 - 2
src/views/debit-pay/material/book.vue

@@ -18,7 +18,7 @@
             <hc-pages :pages="searchForm" @change="pageChange" />
         </template>
         <!-- 新增/修改 -->
-        <hc-new-dialog v-model="formModalShow" is-to-body widths="30rem" title="材料计量单新增" :loading="saveLoading" @save="formModalSave" @close="formModalClose">
+        <hc-new-dialog v-model="formModalShow" is-to-body widths="30rem" :title="modalTitle" :loading="saveLoading" @save="formModalSave" @close="formModalClose">
             <el-form ref="formRef" class="p-4" :model="formModel" :rules="formRules" label-position="top">
                 <el-form-item label="计量期:">
                     <el-select v-if="editType === 'add'" v-model="formModel.meterPeriodId" placeholder="选择计量期" filterable clearable block @change="selectPeriod">
@@ -35,7 +35,7 @@
                     <el-input v-model="formModel.statementPeriod" disabled />
                 </el-form-item>
                 <el-form-item label="打印日期:">
-                    <el-date-picker v-model="formModel.printDate" class="block" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD" disabled />
+                    <el-date-picker v-model="formModel.printDate" class="block" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD" />
                 </el-form-item>
                 <el-form-item label="请款理由:">
                     <el-input v-model="formModel.repaymentCause" :autosize="{ minRows: 3, maxRows: 6 }" type="textarea" />
@@ -144,16 +144,19 @@ const getTableData = async () => {
 //新增
 const formModalShow = ref(false)
 const editType = ref('')
+const modalTitle = ref('材料预付款报表新增')
 const addModalClick = () => {
     formModalShow.value = true
     formModel.value = {}
     editType.value = 'add'
+    modalTitle.value = '材料预付款报表新增'
 }
 const editRow = (row)=>{
     formModalShow.value = true
     console.log(row, 'row')
     formModel.value = row
     editType.value = 'edit'
+    modalTitle.value = '材料预付款报表修改'
 }
 const delCilck = (row)=>{
     delMessageV2(async (action, instance, done) => {

+ 7 - 3
src/views/debit-pay/material/components/order/dataModal.vue

@@ -4,7 +4,7 @@
             <div id="hc_modal_tree">
                 <hc-card-item scrollbar>
                     <!-- <hc-lazy-tree :h-props="treeProps" @load="treeLoadNode" /> -->
-                    <HcDataTree :h-props="treeProps" :datas="treeLoadNode" @nodeTap="treeClick" />
+                    <HcDataTree :h-props="treeProps" :datas="treeLoadNode" @node-tap="treeClick" />
                 </hc-card-item>
             </div>
             <div id="hc_modal_form">
@@ -98,7 +98,7 @@
                     </div>
                     <el-form :model="baseForm" label-position="top" style="overflow-y: auto;height: 100px;">
                         <el-form-item label="">
-                            <hc-form-upload type="list" :src="fileName" @upload="formItemUpload" />
+                            <hc-form-upload type="list" :src="fileName" @upload="formItemUpload" @change="formItemChange" />
                         </el-form-item>
                     </el-form>
                 </hc-card-item>
@@ -288,7 +288,11 @@ fileName.value = arrToKey(arr, 'originalName', ',')
 const formItemUpload = () => {
     HcUploadFileRef.value?.selectFile()
 }
-
+const formItemChange = (src)=>{
+    if (!src) {
+        baseForm.value.fileList = []
+    }
+}
 
 const modalClose = () => {
     isShow.value = false

+ 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) => {

+ 5 - 2
src/views/debit-pay/start-work/book.vue

@@ -18,7 +18,7 @@
             <hc-pages :pages="searchForm" @change="pageChange" />
         </template>
         <!-- 新增/修改 -->
-        <hc-new-dialog v-model="formModalShow" is-to-body widths="30rem" title="材料计量单新增" :loading="saveLoading" @save="formModalSave" @close="formModalClose">
+        <hc-new-dialog v-model="formModalShow" is-to-body widths="30rem" :title="modalTitle" :loading="saveLoading" @save="formModalSave" @close="formModalClose">
             <el-form ref="formRef" class="p-4" :model="formModel" :rules="formRules" label-position="top">
                 <el-form-item label="计量期:">
                     <el-select v-if="editType === 'add'" v-model="formModel.meterPeriodId" placeholder="选择计量期" filterable clearable block @change="selectPeriod">
@@ -35,7 +35,7 @@
                     <el-input v-model="formModel.statementPeriod" disabled />
                 </el-form-item>
                 <el-form-item label="打印日期:">
-                    <el-date-picker v-model="formModel.printDate" class="block" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD" disabled />
+                    <el-date-picker v-model="formModel.printDate" class="block" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD" />
                 </el-form-item>
                 <el-form-item label="请款理由:">
                     <el-input v-model="formModel.repaymentCause" :autosize="{ minRows: 3, maxRows: 6 }" type="textarea" />
@@ -144,16 +144,19 @@ const getTableData = async () => {
 //新增
 const formModalShow = ref(false)
 const editType = ref('')
+const modalTitle = ref('开工预付款报表新增')
 const addModalClick = () => {
     formModalShow.value = true
     formModel.value = {}
     editType.value = 'add'
+    modalTitle.value = '开工预付款报表新增'
 }
 const editRow = (row)=>{
     formModalShow.value = true
     console.log(row, 'row')
     formModel.value = row
     editType.value = 'edit'
+    modalTitle.value = '开工预付款报表修改'
 }
 const delCilck = (row)=>{
     delMessageV2(async (action, instance, done) => {

+ 6 - 1
src/views/debit-pay/start-work/components/order/dataModal.vue

@@ -26,7 +26,7 @@
             <hc-card-item class="mt-3" title="附件列表" extra-text="可上传:图片、Excel、PDF、Word文件">
                 <el-form :model="baseForm" label-position="top">
                     <el-form-item label="">
-                        <hc-form-upload type="list" :src="fileName" @upload="formItemUpload" />
+                        <hc-form-upload type="list" :src="fileName" @upload="formItemUpload" @change="formItemChange" />
                     </el-form-item>
                 </el-form>
             </hc-card-item>
@@ -156,6 +156,11 @@ const modalClose = () => {
 const formItemUpload = () => {
     HcUploadFileRef.value?.selectFile()
 }
+const formItemChange = (src)=>{
+    if (!src) {
+        baseForm.value.fileList = []
+    }
+}
 const HcUploadFileRef = ref(null)
 // const fileName = ref('')
 // 文件全部上传完成