ZaiZai 1 rok temu
rodzic
commit
4f40b153da
2 zmienionych plików z 121 dodań i 45 usunięć
  1. 21 0
      src/utils/tools.js
  2. 100 45
      src/views/alter/admin/components/order/addModal.vue

+ 21 - 0
src/utils/tools.js

@@ -1,3 +1,24 @@
+import { getArrValue } from 'js-fast-way'
+import { getDictionary } from '~api/other'
+
+//获取字典数据
+export const getDictionaryData = async (code) => {
+    const { data } = await getDictionary({
+        code: code,
+    })
+    //处理数据
+    let newArr = []
+    const newData = getArrValue(data)
+    for (let i = 0; i < newData.length; i++) {
+        newArr.push({
+            label: newData[i]['dictValue'],
+            value: Number(newData[i]['dictKey']),
+        })
+    }
+    return newArr
+}
+
+
 //删除提醒
 export const delMessage = (cbk) => {
     window?.$messageBox?.alert('请谨慎考虑后,确认是否需要删除?', '删除提醒', {

+ 100 - 45
src/views/alter/admin/components/order/addModal.vue

@@ -4,9 +4,9 @@
             <div id="hc_add_dialog_tree_card">
                 <hc-card-item title="工程部位" scrollbar>
                     <template #extra>
-                        <el-link type="primary">添加</el-link>
+                        <el-link type="primary" @click="addChangeNode">添加</el-link>
                     </template>
-                    <hc-lazy-tree show-checkbox tree-key="id" :h-props="treeProps" @load="treeLoadNode" @nodeTap="treeNodeTap" />
+                    <hc-lazy-tree show-checkbox tree-key="id" :h-props="treeProps" @load="treeLoadNode" @check="treeNodeCheck" />
                 </hc-card-item>
             </div>
             <div id="hc_add_dialog_table_card">
@@ -16,72 +16,67 @@
                         <el-form ref="baseFormRef" :model="baseForm" :rules="baseFormRules" label-position="left" label-width="auto">
                             <el-row :gutter="20">
                                 <el-col :span="8">
-                                    <el-form-item label="变更令编号:">
-                                        <el-input v-model="baseForm.key1" />
+                                    <el-form-item label="变更令编号:" prop="changeNumber">
+                                        <el-input v-model="baseForm.changeNumber" />
                                     </el-form-item>
                                 </el-col>
                                 <el-col :span="8">
-                                    <el-form-item label="变更令名称:">
-                                        <el-input v-model="baseForm.key2" />
+                                    <el-form-item label="变更令名称:" prop="changeName">
+                                        <el-input v-model="baseForm.changeName" />
                                     </el-form-item>
                                 </el-col>
                                 <el-col :span="8">
                                     <el-form-item label="变更发起单位:">
-                                        <el-input v-model="baseForm.key6" />
+                                        <el-input v-model="baseForm.changeUnit" />
                                     </el-form-item>
                                 </el-col>
                                 <el-col :span="8">
-                                    <el-form-item label="业务日期:">
-                                        <el-date-picker v-model="baseForm.key7" class="block" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD" />
+                                    <el-form-item label="业务日期:" prop="businessDate">
+                                        <el-date-picker v-model="baseForm.businessDate" class="block" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD" />
                                     </el-form-item>
                                 </el-col>
                                 <el-col :span="8">
                                     <el-form-item label="变更类型:">
-                                        <el-select v-model="baseForm.key4" filterable block>
-                                            <el-option label="一般变更A" value="1" />
-                                            <el-option label="一般变更B" value="2" />
-                                            <el-option label="一般变更C" value="3" />
+                                        <el-select v-model="baseForm.changeType" filterable block>
+                                            <el-option v-for="item in typeData" :key="item.value" :label="item.label" :value="item.value" />
                                         </el-select>
                                     </el-form-item>
                                 </el-col>
                                 <el-col :span="8">
                                     <el-form-item label="延长工期:">
-                                        <el-input v-model="baseForm.key5" />
+                                        <el-input v-model="baseForm.lengthenDays" />
                                     </el-form-item>
                                 </el-col>
-
                                 <el-col :span="8">
                                     <el-form-item label="变更申请金额:">
-                                        <el-input v-model="baseForm.key3" />
+                                        <el-input v-model="baseForm.changeMoney" disabled />
                                     </el-form-item>
                                 </el-col>
                                 <el-col :span="8">
-                                    <el-form-item label="设计完成时间:">
-                                        <el-date-picker v-model="baseForm.key7" class="block" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD" />
+                                    <el-form-item label="设计完成时间:" prop="designDate">
+                                        <el-date-picker v-model="baseForm.designDate" class="block" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD" />
                                     </el-form-item>
                                 </el-col>
                                 <el-col :span="8">
                                     <el-form-item label="实际变更桩号:">
-                                        <el-input v-model="baseForm.key8" />
+                                        <el-input v-model="baseForm.realityChangeNumber" />
                                     </el-form-item>
                                 </el-col>
                                 <el-col :span="8">
                                     <el-form-item label="变更归类:">
-                                        <el-select v-model="baseForm.key4" filterable block>
-                                            <el-option label="路基" value="1" />
-                                            <el-option label="路面" value="2" />
-                                            <el-option label="软基" value="3" />
+                                        <el-select v-model="baseForm.changeClassify" filterable block>
+                                            <el-option v-for="item in classifyData" :key="item.value" :label="item.label" :value="item.value" />
                                         </el-select>
                                     </el-form-item>
                                 </el-col>
                                 <el-col :span="8">
                                     <el-form-item label="变更批复文号:">
-                                        <el-input v-model="baseForm.key8" />
+                                        <el-input v-model="baseForm.changeApprovalNumber" />
                                     </el-form-item>
                                 </el-col>
                                 <el-col :span="8">
-                                    <el-form-item label="变更批复日期:">
-                                        <el-date-picker v-model="baseForm.key7" class="block" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD" />
+                                    <el-form-item label="变更批复日期:" prop="changeApprovalDate">
+                                        <el-date-picker v-model="baseForm.changeApprovalDate" class="block" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD" />
                                     </el-form-item>
                                 </el-col>
                                 <!-- el-col :span="24">
@@ -93,7 +88,7 @@
                                 </el-col -->
                                 <el-col :span="24">
                                     <el-form-item label="变更原因:">
-                                        <el-input v-model="baseForm.key9" :autosize="{ minRows: 4, maxRows: 8 }" type="textarea" />
+                                        <el-input v-model="baseForm.changeCause" :autosize="{ minRows: 4, maxRows: 8 }" type="textarea" />
                                     </el-form-item>
                                 </el-col>
                             </el-row>
@@ -102,11 +97,11 @@
                     <!-- 变更申请部位 -->
                     <hc-card-item title="变更申请部位" class="mt-3">
                         <hc-table :column="tableColumn" :datas="tableData" is-new :index-style="{ width: 60 }">
-                            <template #key3="{ row }">
-                                <hc-table-input v-model="row.key3" />
+                            <template #contractPicture="{ row }">
+                                <hc-table-input v-model="row.contractPicture" />
                             </template>
-                            <template #action="{ row }">
-                                <el-link type="danger">删除</el-link>
+                            <template #action="{ index }">
+                                <el-link type="danger" @click="delChangeNode(index)">删除</el-link>
                             </template>
                         </hc-table>
                     </hc-card-item>
@@ -164,9 +159,10 @@
 </template>
 
 <script setup>
-import { getArrValue, getObjValue } from 'js-fast-way'
 import { nextTick, ref, watch } from 'vue'
 import { useAppStore } from '~src/store'
+import { getDictionaryData } from '~uti/tools'
+import { getArrValue, getObjValue, isNullES } from 'js-fast-way'
 
 //子组件
 import ChangeRequest from './changeRequest.vue'
@@ -174,7 +170,7 @@ import ChangePre from './changePre.vue'
 
 //请求
 import unitApi from '~api/project/debit/contract/unit'
-import mainApi from '~api/alter/admin/zero'
+import mainApi from '~api/alter/admin/order'
 
 const props = defineProps({
     ids: {
@@ -206,6 +202,8 @@ watch(() => props.ids, (ids) => {
 watch(isShow, (val) => {
     if (val) {
         setSplitRef()
+        getMeterChangeClassify()
+        getMeterChangeType()
     }
 })
 
@@ -221,6 +219,18 @@ const setSplitRef = () => {
     })
 }
 
+//计量变更归类
+const classifyData = ref([])
+const getMeterChangeClassify = async () => {
+    classifyData.value = await getDictionaryData('meter_change_classify')
+}
+
+//计量变更类型
+const typeData = ref([])
+const getMeterChangeType = async () => {
+    typeData.value = await getDictionaryData('meter_change_type')
+}
+
 //数据格式
 const treeProps = {
     label: 'nodeName',
@@ -244,29 +254,74 @@ const treeLoadNode = async ({ item, level }, resolve) => {
 }
 
 //节点树被点击
-const treeItem = ref({})
-const treeNodeTap = ({ data }) => {
-    treeItem.value = data
+const treeCheckKeys = ref('')
+const treeNodeCheck = (_, { checkedKeys, halfCheckedKeys }) => {
+    const newArr = [...halfCheckedKeys, ...checkedKeys]
+    treeCheckKeys.value = newArr?.join() ?? ''
 }
 
 
 //基础表单
 const baseFormRef = ref(null)
 const baseForm = ref({})
-const baseFormRules = {}
+const baseFormRules = {
+    changeNumber: {
+        required: true,
+        trigger: 'blur',
+        message: '请输入变更令编号',
+    },
+    changeName: {
+        required: true,
+        trigger: 'blur',
+        message: '请输入变更令名称',
+    },
+    businessDate: {
+        required: true,
+        trigger: 'blur',
+        message: '请选择业务日期',
+    },
+    designDate: {
+        required: true,
+        trigger: 'blur',
+        message: '请选择设计完成时间',
+    },
+    changeApprovalDate: {
+        required: true,
+        trigger: 'blur',
+        message: '请选择变更批复日期',
+    },
+}
 
 //变更申请部位列表
 const tableColumn = ref([
-    { key: 'key1', name: '工程名称' },
-    { key: 'key2', name: '节点路径' },
-    { key: 'key3', name: '合同图号' },
-    { key: 'key4', name: '变更后金额(元)' },
-    { key: 'key5', name: '是否增补' },
+    { key: 'nodeName', name: '工程名称' },
+    { key: 'nodeUrl', name: '节点路径' },
+    { key: 'contractPicture', name: '合同图号' },
+    { key: 'changeMoney', name: '变更后金额(元)' },
+    { key: 'isSupplementName', name: '是否增补' },
     { key: 'action', name: '操作', width: 80, align: 'center' },
 ])
-const tableData = ref([
-    { key1: '101-1-a' },
-])
+const tableData = ref([])
+const addChangeNode = async () => {
+    const nodeId = treeCheckKeys.value ?? ''
+    if (isNullES(nodeId)) {
+        window.$message.warning('请先选择节点')
+        return
+    }
+    const { data } = await mainApi.getChangeNode({
+        projectId: projectId.value,
+        contractId: contractId.value,
+        ids: nodeId,
+    })
+    const newArr = getArrValue(data)
+    tableData.value.push(...newArr)
+}
+
+//删除变更申请部位
+const delChangeNode = (index) => {
+    tableData.value.splice(index, 1)
+}
+
 
 const addModalSave = () => {
     emit('finish')