|
@@ -4,9 +4,9 @@
|
|
<div id="hc_add_dialog_tree_card">
|
|
<div id="hc_add_dialog_tree_card">
|
|
<hc-card-item title="工程部位" scrollbar>
|
|
<hc-card-item title="工程部位" scrollbar>
|
|
<template #extra>
|
|
<template #extra>
|
|
- <el-link type="primary">添加</el-link>
|
|
|
|
|
|
+ <el-link type="primary" @click="addChangeNode">添加</el-link>
|
|
</template>
|
|
</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>
|
|
</hc-card-item>
|
|
</div>
|
|
</div>
|
|
<div id="hc_add_dialog_table_card">
|
|
<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-form ref="baseFormRef" :model="baseForm" :rules="baseFormRules" label-position="left" label-width="auto">
|
|
<el-row :gutter="20">
|
|
<el-row :gutter="20">
|
|
<el-col :span="8">
|
|
<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-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<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-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
<el-form-item label="变更发起单位:">
|
|
<el-form-item label="变更发起单位:">
|
|
- <el-input v-model="baseForm.key6" />
|
|
|
|
|
|
+ <el-input v-model="baseForm.changeUnit" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<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-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
<el-form-item label="变更类型:">
|
|
<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-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
<el-form-item label="延长工期:">
|
|
<el-form-item label="延长工期:">
|
|
- <el-input v-model="baseForm.key5" />
|
|
|
|
|
|
+ <el-input v-model="baseForm.lengthenDays" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
-
|
|
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
<el-form-item label="变更申请金额:">
|
|
<el-form-item label="变更申请金额:">
|
|
- <el-input v-model="baseForm.key3" />
|
|
|
|
|
|
+ <el-input v-model="baseForm.changeMoney" disabled />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<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-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
<el-form-item label="实际变更桩号:">
|
|
<el-form-item label="实际变更桩号:">
|
|
- <el-input v-model="baseForm.key8" />
|
|
|
|
|
|
+ <el-input v-model="baseForm.realityChangeNumber" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
<el-form-item label="变更归类:">
|
|
<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-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
<el-form-item label="变更批复文号:">
|
|
<el-form-item label="变更批复文号:">
|
|
- <el-input v-model="baseForm.key8" />
|
|
|
|
|
|
+ <el-input v-model="baseForm.changeApprovalNumber" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<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-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<!-- el-col :span="24">
|
|
<!-- el-col :span="24">
|
|
@@ -93,7 +88,7 @@
|
|
</el-col -->
|
|
</el-col -->
|
|
<el-col :span="24">
|
|
<el-col :span="24">
|
|
<el-form-item label="变更原因:">
|
|
<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-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
@@ -102,11 +97,11 @@
|
|
<!-- 变更申请部位 -->
|
|
<!-- 变更申请部位 -->
|
|
<hc-card-item title="变更申请部位" class="mt-3">
|
|
<hc-card-item title="变更申请部位" class="mt-3">
|
|
<hc-table :column="tableColumn" :datas="tableData" is-new :index-style="{ width: 60 }">
|
|
<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>
|
|
- <template #action="{ row }">
|
|
|
|
- <el-link type="danger">删除</el-link>
|
|
|
|
|
|
+ <template #action="{ index }">
|
|
|
|
+ <el-link type="danger" @click="delChangeNode(index)">删除</el-link>
|
|
</template>
|
|
</template>
|
|
</hc-table>
|
|
</hc-table>
|
|
</hc-card-item>
|
|
</hc-card-item>
|
|
@@ -164,9 +159,10 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
-import { getArrValue, getObjValue } from 'js-fast-way'
|
|
|
|
import { nextTick, ref, watch } from 'vue'
|
|
import { nextTick, ref, watch } from 'vue'
|
|
import { useAppStore } from '~src/store'
|
|
import { useAppStore } from '~src/store'
|
|
|
|
+import { getDictionaryData } from '~uti/tools'
|
|
|
|
+import { getArrValue, getObjValue, isNullES } from 'js-fast-way'
|
|
|
|
|
|
//子组件
|
|
//子组件
|
|
import ChangeRequest from './changeRequest.vue'
|
|
import ChangeRequest from './changeRequest.vue'
|
|
@@ -174,7 +170,7 @@ import ChangePre from './changePre.vue'
|
|
|
|
|
|
//请求
|
|
//请求
|
|
import unitApi from '~api/project/debit/contract/unit'
|
|
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({
|
|
const props = defineProps({
|
|
ids: {
|
|
ids: {
|
|
@@ -206,6 +202,8 @@ watch(() => props.ids, (ids) => {
|
|
watch(isShow, (val) => {
|
|
watch(isShow, (val) => {
|
|
if (val) {
|
|
if (val) {
|
|
setSplitRef()
|
|
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 = {
|
|
const treeProps = {
|
|
label: 'nodeName',
|
|
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 baseFormRef = ref(null)
|
|
const baseForm = ref({})
|
|
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([
|
|
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' },
|
|
{ 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 = () => {
|
|
const addModalSave = () => {
|
|
emit('finish')
|
|
emit('finish')
|