feat(ctr): 优化合同管理功能
- 优化富文本编辑器组件,增加占位符功能 - 在费用合同和收入合同列表中添加支付方式列 - 增加合同内容详情对话框,用于查看分包内容 - 在收入合同列表中添加修改合同功能 - 根据合同类型动态显示承包内容或合同内容
This commit is contained in:
@ -61,6 +61,12 @@
|
||||
<dict-tag :options="income_contract_type" :value="scope.row.contractType" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="支付方式" align="center" prop="payType">
|
||||
<template #default="scope">
|
||||
<el-tag type="success" v-if="scope.row.payType == '1'">月结算</el-tag>
|
||||
<el-tag type="primary" v-else-if="scope.row.payType == '2'">形象节点</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="业主单位" align="center" prop="contractOwner" />
|
||||
<!-- <el-table-column label="承包内容" align="center" prop="contractedContent" /> -->
|
||||
<el-table-column label="合同金额" align="center" prop="amount" />
|
||||
@ -82,10 +88,17 @@
|
||||
<!-- <el-tooltip content="查看承包内容" placement="top">
|
||||
<el-button link type="primary" icon="View" @click="handleDetail(scope.row)">详情</el-button>
|
||||
</el-tooltip> -->
|
||||
<el-tooltip content="查看附件列表" placement="top">
|
||||
<el-button link type="primary" icon="View" @click="handleShowFileList(scope.row)">查看附件列表</el-button>
|
||||
</el-tooltip>
|
||||
<div>
|
||||
<el-button link type="primary" icon="edit" @click="handleEdit(scope.row)"
|
||||
v-if="scope.row.isUpdate">修改合同</el-button>
|
||||
</div>
|
||||
<div>
|
||||
<el-button link type="success" icon="View" @click="handleShowDetail(scope.row)">查看分包内容</el-button>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<el-button link type="primary" icon="View" @click="handleShowFileList(scope.row)">查看附件列表</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -123,6 +136,17 @@
|
||||
</template>
|
||||
</el-dialog>
|
||||
<FileList v-model="fileListVisible" :fileList="fileList" />
|
||||
<el-dialog v-model="detailVisible" title="承包内容详情" width="45%">
|
||||
<editor :model-value="detailContent" :min-height="192" readOnly placeholder="" />
|
||||
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="detailVisible = false">
|
||||
关闭
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -131,9 +155,12 @@ import { listIncomeContract, getIncomeContract, delIncomeContract, addIncomeCont
|
||||
import { IncomeContractVO, IncomeContractQuery, IncomeContractForm } from '@/api/ctr/incomeContract/types';
|
||||
import FileList from '@/components/FileList/index.vue';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
import { useRouter } from 'vue-router'
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
const userStore = useUserStore();
|
||||
const currentProject = computed(() => userStore.selectedProject);
|
||||
const router = useRouter();
|
||||
|
||||
const { expenses_contract_type, income_contract_type } = toRefs(
|
||||
proxy?.useDict('income_contract_type', 'expenses_contract_type')
|
||||
@ -154,7 +181,8 @@ const dialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: ''
|
||||
});
|
||||
|
||||
const detailVisible = ref(false); // 控制承包内容详情对话框的显示
|
||||
const detailContent = ref('');
|
||||
const initFormData: IncomeContractForm = {
|
||||
id: undefined,
|
||||
projectId: undefined,
|
||||
@ -292,7 +320,20 @@ const handleShowFileList = async (row: IncomeContractVO) => {
|
||||
});
|
||||
|
||||
}
|
||||
const handleEdit = (row: IncomeContractVO) => {
|
||||
// console.log(router);
|
||||
|
||||
router.push({
|
||||
path: "/ctr/update",
|
||||
query: {
|
||||
id: row.id,
|
||||
}
|
||||
})
|
||||
}
|
||||
const handleShowDetail = (data) => {
|
||||
detailContent.value = data.contractedContent
|
||||
detailVisible.value = true;
|
||||
}
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user