add
This commit is contained in:
parent
a45ed7521e
commit
df2619a433
@ -774,3 +774,128 @@ export const marketing_custom: Iconfig = {
|
|||||||
{ create_time: "录入日期" },
|
{ create_time: "录入日期" },
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
import { attendanceRecordLists } from "@/api/project_attendance_record";
|
||||||
|
|
||||||
|
export const project_attendance_record: Iconfig = {
|
||||||
|
fetchFn: attendanceRecordLists,
|
||||||
|
// dictData: "return_visit_type",
|
||||||
|
serchList: [
|
||||||
|
// {
|
||||||
|
// label: "客户名称",
|
||||||
|
// value: "name",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// label: "客户编号",
|
||||||
|
// value: "code",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// label: "重要等级",
|
||||||
|
// value: "important_level",
|
||||||
|
// select: "custom_important_level",
|
||||||
|
// },
|
||||||
|
],
|
||||||
|
tableList: [
|
||||||
|
{ attendance_code: "日记工单号" },
|
||||||
|
{ project_code: "项目编码" },
|
||||||
|
{ project_name: "项目名称" },
|
||||||
|
{ attendance_date: "日期" },
|
||||||
|
{ cqrs: "出勤人数" },
|
||||||
|
{ work_record_num_total: "记工数量" },
|
||||||
|
{ daily_salary_total: "日工资合计" },
|
||||||
|
{ daily_living_total: "日生活费合计" },
|
||||||
|
{ daily_subsidy_total: "日补贴合计" },
|
||||||
|
{ daily_other_total: "日其它合计" },
|
||||||
|
{ daily_income_total: "日收入合计" },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
import { apimketingFrameworkAgreementLists } from "@/api/marketing_framework_agreement";
|
||||||
|
|
||||||
|
export const marketing_framework_agreement: Iconfig = {
|
||||||
|
fetchFn: apimketingFrameworkAgreementLists,
|
||||||
|
dictData: "custom_important_level,cost_consultation_business_nature",
|
||||||
|
serchList: [
|
||||||
|
{
|
||||||
|
label: "合同名称",
|
||||||
|
value: "contract_name",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "协议性质",
|
||||||
|
value: "important_level",
|
||||||
|
select: "custom_important_level",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "业务性质",
|
||||||
|
value: "business_nature",
|
||||||
|
select: "cost_consultation_business_nature",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
tableList: [
|
||||||
|
{ contract_name: "协议名称" },
|
||||||
|
{ contract_code: "合同编号" },
|
||||||
|
{ part_a_contact: "甲方签约单位联系人" },
|
||||||
|
{ part_b: "乙方签约单位" },
|
||||||
|
{ business_nature_text: "业务性质" },
|
||||||
|
{ signed_dept_name: "签订部门" },
|
||||||
|
{ signed_head_name: "签订负责人" },
|
||||||
|
{ seal_user_name: "盖章人" },
|
||||||
|
{ agreement_nature_text: "协议性质" },
|
||||||
|
{ seal_name_text: "盖章名称" },
|
||||||
|
{ is_limit_text: "是否限制次数" },
|
||||||
|
{ file_type_text: "文件类型" },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
import { apiMarketingContractLists } from "@/api/marketing_contract";
|
||||||
|
|
||||||
|
export const marketing_contract: Iconfig = {
|
||||||
|
fetchFn: apiMarketingContractLists,
|
||||||
|
dictData: "cost_consultation_business_nature",
|
||||||
|
serchList: [
|
||||||
|
{
|
||||||
|
label: "合同类型",
|
||||||
|
value: "contract_type",
|
||||||
|
select: [
|
||||||
|
{
|
||||||
|
name: "主合同",
|
||||||
|
value: 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "框架协议",
|
||||||
|
value: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "补充协议",
|
||||||
|
value: 2,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "合同名称",
|
||||||
|
value: "contract_name",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "业务性质",
|
||||||
|
value: "business_nature",
|
||||||
|
select: "cost_consultation_business_nature",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
tableList: [
|
||||||
|
{ contract_name: "合同名称" },
|
||||||
|
{ contract_code: "合同编号" },
|
||||||
|
{ part_a_name: "甲方签约单位" },
|
||||||
|
{ part_b: "乙方签约单位" },
|
||||||
|
{ part_b_signatory_name: "乙方签约人" },
|
||||||
|
{ business_nature_text: "业务性质" },
|
||||||
|
{ industry_nature_text: "行业性质" },
|
||||||
|
{ fund_sources_text: "资金来源" },
|
||||||
|
{ const_area_text: "建设区域" },
|
||||||
|
{ project_money: "工程总投资" },
|
||||||
|
{ project_scale: "工程规模及概况" },
|
||||||
|
{ signed_rate: "合同签订费率" },
|
||||||
|
{ service_duration: "合同服务工期" },
|
||||||
|
{ start_date: "计划开始日期" },
|
||||||
|
{ end_date: "计划结束日期" },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
286
src/views/marketing_contract/detail.vue
Normal file
286
src/views/marketing_contract/detail.vue
Normal file
@ -0,0 +1,286 @@
|
|||||||
|
<template>
|
||||||
|
<div class="detail-popup">
|
||||||
|
<popup ref="popupRef" title="合同详情" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
|
||||||
|
|
||||||
|
<el-card>
|
||||||
|
<el-descriptions :column="3" border>
|
||||||
|
<el-descriptions-item label="关联协议框架" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.contract_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="合同类型" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.contract_type_text }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="合同名称" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.contract_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="合同编号" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.contract_code }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="甲方签订单位" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.part_a_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="联系人" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.part_a_contact }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="业主地址" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.part_a_address }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="乙方签约单位" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.part_b }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="乙方签约人" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.part_b_signatory_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="业务性质" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.business_nature_text }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="行业性质" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.industry_nature_text }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="资金来源" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.fund_sources_text }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="建设区域" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.const_area_text }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="工程总投资" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.project_money }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="工程规模及概况" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.project_scale }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="签订金额" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.signed_amount }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="合同签订费率" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.signed_rate }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="合同服务工期" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.service_duration }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="计划开始日期" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.start_date }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="计划结束日期" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.end_date }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="履约金" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.performance_money }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="履约金到期时间" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.performance_money_expiration_time }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="合同付款方式" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.payment_method }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="合同主要内容" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.content }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="签订部门" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.signed_dept_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
<el-descriptions-item label="签订负责人" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.signed_head_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="监管部门" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.supervise_dept_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="项目总监/总理" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.project_manager_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="实施方式" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.implement_method_text }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="盖章名称" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.seal_name_text }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="是否限制" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.is_limit_text }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="限制次数" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.limit_num }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="文件类型" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.file_type_text }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="盖章份数" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.seal_num }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="盖章人" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.seal_user_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="发出日期" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.send_date }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="邮寄编号" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.mailing_number }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="录入人" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.create_user }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="录入日期" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.create_time }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
||||||
|
<annexLink :annex="formData.annex"></annexLink>
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<flowProcess v-if="!formData?.approve_id || formData.approve_check_status == 4" :flows="flows"
|
||||||
|
:submitApi="apiproject_cost_budgetApprove" :id="formData?.id" @off="handleClose">
|
||||||
|
</flowProcess>
|
||||||
|
<flowDetail v-else :approve_id="formData?.approve_id" @off="handleClose" /> -->
|
||||||
|
</popup>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup name="customdetail">
|
||||||
|
import { apiProjectCostBudgetDetailLists } from '@/api/project_cost_budget_detail.ts'
|
||||||
|
import { apiproject_cost_budgetApprove, apiproject_cost_budgetFlows } from '@/api/flowSet'
|
||||||
|
import type { FormInstance } from 'element-plus'
|
||||||
|
import Popup from '@/components/popup/index.vue'
|
||||||
|
import { apiCustomDetail } from '@/api/custom'
|
||||||
|
import type { PropType } from 'vue'
|
||||||
|
defineProps({
|
||||||
|
dictData: {
|
||||||
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
|
default: () => ({})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const emit = defineEmits(['success', 'close'])
|
||||||
|
const formRef = shallowRef<FormInstance>()
|
||||||
|
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||||
|
const formDataannex = reactive([])
|
||||||
|
|
||||||
|
const datas = reactive({
|
||||||
|
provinceOptions: [],
|
||||||
|
cityOptions: [],
|
||||||
|
areaOptions: [],
|
||||||
|
});
|
||||||
|
|
||||||
|
const tableData = ref([])
|
||||||
|
// 表单数据
|
||||||
|
const formData = reactive({
|
||||||
|
id: "",
|
||||||
|
related_contract_id: "",
|
||||||
|
framework_agreement_name: "",
|
||||||
|
contract_type: "",
|
||||||
|
contract_type_text: "",
|
||||||
|
contract_name: "",
|
||||||
|
contract_code: "",
|
||||||
|
part_a: "",
|
||||||
|
part_a_name: "",
|
||||||
|
part_a_contact: "",
|
||||||
|
part_a_address: "",
|
||||||
|
part_b: "",
|
||||||
|
part_b_signatory: "",
|
||||||
|
part_b_signatory_name: "",
|
||||||
|
business_nature: "",
|
||||||
|
business_nature_text: "",
|
||||||
|
industry_nature: "",
|
||||||
|
industry_nature_text: "",
|
||||||
|
fund_sources: "",
|
||||||
|
fund_sources_text: "",
|
||||||
|
const_area: "",
|
||||||
|
const_area_text: "",
|
||||||
|
agreement_nature: "",
|
||||||
|
project_money: "",
|
||||||
|
project_scale: "",
|
||||||
|
signed_amount: "",
|
||||||
|
signed_rate: "",
|
||||||
|
service_duration: "",
|
||||||
|
start_date: "",
|
||||||
|
end_date: "",
|
||||||
|
performance_money: "",
|
||||||
|
performance_money_expiration_time: "",
|
||||||
|
payment_method: "",
|
||||||
|
content: "",
|
||||||
|
annex: "",
|
||||||
|
signed_dept: "",
|
||||||
|
signed_head: "",
|
||||||
|
signed_head_name: "",
|
||||||
|
supervise_dept: "",
|
||||||
|
project_manager: "",
|
||||||
|
project_manager_name: "",
|
||||||
|
implement_method: "",
|
||||||
|
seal_name: "",
|
||||||
|
is_limit: "",
|
||||||
|
limit_num: "",
|
||||||
|
file_type: "",
|
||||||
|
seal_num: "",
|
||||||
|
seal_user: "",
|
||||||
|
seal_user_name: "",
|
||||||
|
plance_seal: "",
|
||||||
|
send_date: "",
|
||||||
|
mailing_number: "",
|
||||||
|
review_status: "",
|
||||||
|
status: "",
|
||||||
|
create_user: "",
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 获取详情
|
||||||
|
const setFormData = async (data: Record<any, any>) => {
|
||||||
|
Object.assign(formData, data)
|
||||||
|
// getbidDocumentExaminationFlows()
|
||||||
|
}
|
||||||
|
|
||||||
|
const getDetail = async (row: Record<string, any>) => {
|
||||||
|
const data = await apiCustomDetail({
|
||||||
|
id: row.id
|
||||||
|
})
|
||||||
|
setFormData(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 提交按钮
|
||||||
|
const handleSubmit = async () => {
|
||||||
|
popupRef.value?.close()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//打开弹窗
|
||||||
|
const open = () => {
|
||||||
|
popupRef.value?.open()
|
||||||
|
}
|
||||||
|
|
||||||
|
// 关闭回调
|
||||||
|
const handleClose = () => {
|
||||||
|
emit('close')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取审批流程
|
||||||
|
const flows = ref([])
|
||||||
|
const getbidDocumentExaminationFlows = async () => {
|
||||||
|
if (formData?.approve_id) return
|
||||||
|
let res = await apiproject_cost_budgetFlows()
|
||||||
|
flows.value = res
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
defineExpose({
|
||||||
|
open,
|
||||||
|
setFormData,
|
||||||
|
getDetail
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.tit {
|
||||||
|
font-size: 1.2em;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
|
</style>
|
@ -4,8 +4,9 @@
|
|||||||
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
|
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="关联主合同id" prop="related_contract_id">
|
<el-form-item label="关联协议框架" prop="related_contract_id">
|
||||||
<el-input v-model="formData.related_contract_id" clearable placeholder="请输入关联主合同id" />
|
<el-input v-model="formData.framework_agreement_name" clearable placeholder="点击选择协议框架"
|
||||||
|
@click="showDialog1 = true" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
@ -29,7 +30,8 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="甲方签约单位" prop="part_a">
|
<el-form-item label="甲方签约单位" prop="part_a">
|
||||||
<el-input v-model="formData.part_a" clearable placeholder="请输入甲方签约单位" />
|
<el-input v-model="formData.part_a_name" clearable placeholder="请输入甲方签约单位" readonly
|
||||||
|
@click="showDialog2 = true" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
@ -85,11 +87,11 @@
|
|||||||
</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="协议性质" prop="agreement_nature">
|
<el-form-item label="协议性质" prop="agreement_nature">
|
||||||
<el-input v-model="formData.agreement_nature" clearable placeholder="请输入协议性质" />
|
<el-input v-model="formData.agreement_nature" clearable placeholder="请输入协议性质" />
|
||||||
</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="formData.project_money" clearable placeholder="请输入工程总投资" type="number" />
|
<el-input v-model="formData.project_money" clearable placeholder="请输入工程总投资" type="number" />
|
||||||
@ -123,7 +125,7 @@
|
|||||||
</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="计划结束日期" prop="end_date">
|
||||||
<el-date-picker class="flex-1 !flex" v-model="formData.end_date" clearable type="date"
|
<el-date-picker class="flex-1 !flex" v-model="formData.end_date" clearable type="date"
|
||||||
value-format="YYYY-MM-DD" placeholder="选择发生日期">
|
value-format="YYYY-MM-DD" placeholder="选择发生日期">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
@ -151,11 +153,7 @@
|
|||||||
<el-input v-model="formData.content" clearable placeholder="请输入合同主要内容" />
|
<el-input v-model="formData.content" clearable placeholder="请输入合同主要内容" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="附件">
|
|
||||||
<upload-annex :form-data="formData" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="签订部门" prop="signed_dept">
|
<el-form-item label="签订部门" prop="signed_dept">
|
||||||
<el-select v-model="formData.signed_dept" placeholder="请选择部门" class="flex-1">
|
<el-select v-model="formData.signed_dept" placeholder="请选择部门" class="flex-1">
|
||||||
@ -252,7 +250,8 @@
|
|||||||
<el-input v-model="formData.mailing_number" clearable placeholder="请输入邮寄编号" type="number" />
|
<el-input v-model="formData.mailing_number" clearable placeholder="请输入邮寄编号" type="number" />
|
||||||
</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="formData.review_status" class="flex-1">
|
<el-select v-model="formData.review_status" class="flex-1">
|
||||||
<el-option label="待移交" :value="0"></el-option>
|
<el-option label="待移交" :value="0"></el-option>
|
||||||
@ -267,14 +266,27 @@
|
|||||||
<el-option label="已立项" :value="1"></el-option>
|
<el-option label="已立项" :value="1"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
<createUserLable :form-data='formData' name='录入' flag></createUserLable>
|
<createUserLable :form-data='formData' name='录入' flag></createUserLable>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="附件">
|
||||||
|
<upload-annex :form-data="formData" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div v-if="showDialog">
|
<div v-if="showDialog">
|
||||||
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||||
</personnelselector>
|
</personnelselector>
|
||||||
</div>
|
</div>
|
||||||
|
<el-dialog v-model="showDialog1" title="选择框架协议" width="70%">
|
||||||
|
<dialogTable :config="marketing_framework_agreement" @customEvent="customEvent">
|
||||||
|
</dialogTable>
|
||||||
|
</el-dialog>
|
||||||
|
<el-dialog v-model="showDialog2" title="选择甲方签订单位" width="70%">
|
||||||
|
<dialogTable :config="marketing_custom" @customEvent="customEvent1">
|
||||||
|
</dialogTable>
|
||||||
|
</el-dialog>
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -289,6 +301,10 @@ import {
|
|||||||
} from "@/api/marketing_contract";
|
} from "@/api/marketing_contract";
|
||||||
import { timeFormat } from "@/utils/util";
|
import { timeFormat } from "@/utils/util";
|
||||||
import type { PropType } from "vue";
|
import type { PropType } from "vue";
|
||||||
|
import { marketing_framework_agreement, marketing_custom } from "@/components/dialogTable/dialogTableConfig";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
type: Object as PropType<Record<string, any[]>>,
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
@ -302,6 +318,8 @@ const formRef = shallowRef<FormInstance>();
|
|||||||
const popupRef = shallowRef<InstanceType<typeof Popup>>();
|
const popupRef = shallowRef<InstanceType<typeof Popup>>();
|
||||||
const mode = ref("add");
|
const mode = ref("add");
|
||||||
const showDialog = ref(false)
|
const showDialog = ref(false)
|
||||||
|
const showDialog1 = ref(false)
|
||||||
|
const showDialog2 = ref(false)
|
||||||
const personnel = ref(null)
|
const personnel = ref(null)
|
||||||
|
|
||||||
|
|
||||||
@ -316,10 +334,12 @@ const popupTitle = computed(() => {
|
|||||||
const formData = reactive({
|
const formData = reactive({
|
||||||
id: "",
|
id: "",
|
||||||
related_contract_id: "",
|
related_contract_id: "",
|
||||||
|
framework_agreement_name: "",
|
||||||
contract_type: "",
|
contract_type: "",
|
||||||
contract_name: "",
|
contract_name: "",
|
||||||
contract_code: "",
|
contract_code: "",
|
||||||
part_a: "",
|
part_a: "",
|
||||||
|
part_a_name: "",
|
||||||
part_a_contact: "",
|
part_a_contact: "",
|
||||||
part_a_address: "",
|
part_a_address: "",
|
||||||
part_b: "",
|
part_b: "",
|
||||||
@ -365,6 +385,20 @@ const formData = reactive({
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
const customEvent = (e) => {
|
||||||
|
formData.related_contract_id = e.id
|
||||||
|
formData.framework_agreement_name = e.contract_name
|
||||||
|
showDialog1.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
const customEvent1 = (e) => {
|
||||||
|
formData.part_a = e.id
|
||||||
|
formData.part_a_name = e.invoice_company
|
||||||
|
showDialog2.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
let value;
|
let value;
|
||||||
const userclick = async (val) => {
|
const userclick = async (val) => {
|
||||||
showDialog.value = true
|
showDialog.value = true
|
||||||
@ -377,11 +411,17 @@ const userclick = async (val) => {
|
|||||||
//确认
|
//确认
|
||||||
const submituser = (e: any) => {
|
const submituser = (e: any) => {
|
||||||
formData[value + '_name'] = e.name
|
formData[value + '_name'] = e.name
|
||||||
formData.seal_user = e.id
|
formData[value] = e.id
|
||||||
showDialog.value = false
|
showDialog.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const chekcDate = (rule: any, value: any, callback: any) => {
|
||||||
|
if (new Date(formData.end_date) < new Date(formData.start_date)) {
|
||||||
|
callback(new Error('计划结束日期时间不能早于计划开始日期'))
|
||||||
|
} else {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 表单验证
|
// 表单验证
|
||||||
const formRules = reactive<any>({
|
const formRules = reactive<any>({
|
||||||
@ -531,6 +571,10 @@ const formRules = reactive<any>({
|
|||||||
message: "请输入计划结束日期",
|
message: "请输入计划结束日期",
|
||||||
trigger: ["blur"],
|
trigger: ["blur"],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
validator: chekcDate,
|
||||||
|
trigger: ['blur']
|
||||||
|
}
|
||||||
],
|
],
|
||||||
performance_money: [
|
performance_money: [
|
||||||
{
|
{
|
||||||
|
@ -14,14 +14,12 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="合同名称" prop="contract_name">
|
<el-form-item label="合同名称" prop="contract_name">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.contract_name" clearable
|
<el-input v-model="queryParams.contract_name" clearable placeholder="请输入合同名称" />
|
||||||
placeholder="请输入合同名称" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="合同编号" prop="contract_code">
|
<el-form-item label="合同编号" prop="contract_code">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.contract_code" clearable
|
<el-input v-model="queryParams.contract_code" clearable placeholder="请输入合同编号" />
|
||||||
placeholder="请输入合同编号" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
@ -58,8 +56,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="签订金额" prop="signed_amount">
|
<el-form-item label="签订金额" prop="signed_amount">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.signed_amount" clearable placeholder="请输入签订金额"
|
<el-input v-model="queryParams.signed_amount" clearable placeholder="请输入签订金额" type="number" />
|
||||||
type="number" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
@ -87,14 +84,13 @@
|
|||||||
<el-table-column type="selection" width="55" />
|
<el-table-column type="selection" width="55" />
|
||||||
<el-table-column label="合同名称" prop="contract_name" show-overflow-tooltip />
|
<el-table-column label="合同名称" prop="contract_name" show-overflow-tooltip />
|
||||||
<el-table-column label="合同编号" prop="contract_code" show-overflow-tooltip />
|
<el-table-column label="合同编号" prop="contract_code" show-overflow-tooltip />
|
||||||
<el-table-column label="甲方签约单位" prop="part_a" show-overflow-tooltip />
|
<el-table-column label="甲方签约单位" prop="part_a_name" show-overflow-tooltip />
|
||||||
<el-table-column label="乙方签约单位" prop="part_b" show-overflow-tooltip />
|
<el-table-column label="乙方签约单位" prop="part_b" show-overflow-tooltip />
|
||||||
<el-table-column label="乙方签约人" prop="part_b_signatory" show-overflow-tooltip />
|
<el-table-column label="乙方签约人" prop="part_b_signatory_name" show-overflow-tooltip />
|
||||||
<el-table-column label="业务性质" prop="business_nature" show-overflow-tooltip />
|
<el-table-column label="业务性质" prop="business_nature_text" show-overflow-tooltip />
|
||||||
<el-table-column label="行业性质" prop="industry_nature" show-overflow-tooltip />
|
<el-table-column label="行业性质" prop="industry_nature_text" show-overflow-tooltip />
|
||||||
<el-table-column label="资金来源" prop="fund_sources" show-overflow-tooltip />
|
<el-table-column label="资金来源" prop="fund_sources_text" show-overflow-tooltip />
|
||||||
<el-table-column label="建设区域" prop="const_area" show-overflow-tooltip />
|
<el-table-column label="建设区域" prop="const_area_text" show-overflow-tooltip />
|
||||||
<el-table-column label="协议性质" prop="agreement_nature" show-overflow-tooltip />
|
|
||||||
<el-table-column label="工程总投资" prop="project_money" show-overflow-tooltip />
|
<el-table-column label="工程总投资" prop="project_money" show-overflow-tooltip />
|
||||||
<el-table-column label="工程规模及概况" prop="project_scale" show-overflow-tooltip />
|
<el-table-column label="工程规模及概况" prop="project_scale" show-overflow-tooltip />
|
||||||
<el-table-column label="签订金额" prop="signed_amount" show-overflow-tooltip />
|
<el-table-column label="签订金额" prop="signed_amount" show-overflow-tooltip />
|
||||||
@ -103,28 +99,7 @@
|
|||||||
<el-table-column label="计划开始日期" prop="start_date" show-overflow-tooltip />
|
<el-table-column label="计划开始日期" prop="start_date" show-overflow-tooltip />
|
||||||
<el-table-column label="计划结束日期" prop="end_date" show-overflow-tooltip />
|
<el-table-column label="计划结束日期" prop="end_date" show-overflow-tooltip />
|
||||||
<el-table-column label="履约金" prop="performance_money" show-overflow-tooltip />
|
<el-table-column label="履约金" prop="performance_money" show-overflow-tooltip />
|
||||||
<el-table-column label="履约金到期时间" prop="performance_money_expiration_time" show-overflow-tooltip />
|
<el-table-column label="操作" width="170" fixed="right">
|
||||||
<el-table-column label="合同付款方式" prop="payment_method" show-overflow-tooltip />
|
|
||||||
<el-table-column label="合同主要内容" prop="content" show-overflow-tooltip />
|
|
||||||
<el-table-column label="附件" prop="annex" show-overflow-tooltip />
|
|
||||||
<el-table-column label="签订部门" prop="signed_dept" show-overflow-tooltip />
|
|
||||||
<el-table-column label="签订负责人" prop="signed_head" show-overflow-tooltip />
|
|
||||||
<el-table-column label="监管部门" prop="supervise_dept" show-overflow-tooltip />
|
|
||||||
<el-table-column label="项目总监/经理" prop="project_manager" show-overflow-tooltip />
|
|
||||||
<el-table-column label="实施方式" prop="implement_method" show-overflow-tooltip />
|
|
||||||
<el-table-column label="盖章名称" prop="seal_name" show-overflow-tooltip />
|
|
||||||
<el-table-column label="是否限制" prop="is_limit" show-overflow-tooltip />
|
|
||||||
<el-table-column label="限制次数" prop="limit_num" show-overflow-tooltip />
|
|
||||||
<el-table-column label="文件类型" prop="file_type" show-overflow-tooltip />
|
|
||||||
<el-table-column label="盖章份数" prop="seal_num" show-overflow-tooltip />
|
|
||||||
<el-table-column label="盖章人" prop="seal_user" show-overflow-tooltip />
|
|
||||||
<el-table-column label="骑缝盖章" prop="plance_seal" show-overflow-tooltip />
|
|
||||||
<el-table-column label="发出日期" prop="send_date" show-overflow-tooltip />
|
|
||||||
<el-table-column label="邮寄编号" prop="mailing_number" show-overflow-tooltip />
|
|
||||||
<el-table-column label="评审状态 0-待移交 1-已移交" prop="review_status" show-overflow-tooltip />
|
|
||||||
<el-table-column label="立项状态 0-待立项 1-已立项" prop="status" show-overflow-tooltip />
|
|
||||||
<el-table-column label="录入人" prop="create_user" show-overflow-tooltip />
|
|
||||||
<el-table-column label="操作" width="120" fixed="right">
|
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button v-perms="['marketing.marketing_contract/edit']" type="primary" link
|
<el-button v-perms="['marketing.marketing_contract/edit']" type="primary" link
|
||||||
@click="handleEdit(row)">
|
@click="handleEdit(row)">
|
||||||
@ -134,6 +109,9 @@
|
|||||||
@click="handleDelete(row.id)">
|
@click="handleDelete(row.id)">
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button v-perms="['marketing.marketing_contract/detail']" link @click="handledetail(row)">
|
||||||
|
详情
|
||||||
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -144,21 +122,25 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false"
|
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false"
|
||||||
:deptList="deptList" />
|
:deptList="deptList" />
|
||||||
|
<detail-popup v-if="showDtail" ref="detailRef" :dict-data="dictData" @close="showDtail = false" />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup name="marketingContractLists">
|
<script lang="ts" setup name="marketingContractLists">
|
||||||
import { usePaging } from '@/hooks/usePaging'
|
import { usePaging } from '@/hooks/usePaging'
|
||||||
import { useDictData } from '@/hooks/useDictOptions'
|
import { useDictData } from '@/hooks/useDictOptions'
|
||||||
import { apiMarketingContractLists, apiMarketingContractDelete } from '@/api/marketing_contract'
|
import { apiMarketingContractLists, apiMarketingContractDelete, apiMarketingContractDetail } from '@/api/marketing_contract'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { timeFormat } from '@/utils/util'
|
||||||
import feedback from '@/utils/feedback'
|
import feedback from '@/utils/feedback'
|
||||||
import { deptLists } from "@/api/org/department"
|
import { deptLists } from "@/api/org/department"
|
||||||
import EditPopup from './edit.vue'
|
import EditPopup from './edit.vue'
|
||||||
|
import DetailPopup from './detail.vue'
|
||||||
|
|
||||||
|
const detailRef = shallowRef<InstanceType<typeof DetailPopup>>()
|
||||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||||
// 是否显示编辑框
|
|
||||||
const showEdit = ref(false)
|
const showEdit = ref(false)
|
||||||
|
const showDtail = ref(false)
|
||||||
|
|
||||||
|
|
||||||
// 查询条件
|
// 查询条件
|
||||||
@ -200,10 +182,11 @@ const handleAdd = async () => {
|
|||||||
|
|
||||||
// 编辑
|
// 编辑
|
||||||
const handleEdit = async (data: any) => {
|
const handleEdit = async (data: any) => {
|
||||||
|
let res = await apiMarketingContractDetail({ id: data.id })
|
||||||
showEdit.value = true
|
showEdit.value = true
|
||||||
await nextTick()
|
await nextTick()
|
||||||
editRef.value?.open('edit')
|
editRef.value?.open('edit')
|
||||||
editRef.value?.setFormData(data)
|
editRef.value?.setFormData(res)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除
|
// 删除
|
||||||
@ -213,6 +196,17 @@ const handleDelete = async (id: number | any[]) => {
|
|||||||
getLists()
|
getLists()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 详情
|
||||||
|
const handledetail = async (data: any) => {
|
||||||
|
let res = await apiMarketingContractDetail({ id: data.id })
|
||||||
|
showDtail.value = true
|
||||||
|
await nextTick()
|
||||||
|
detailRef.value?.open()
|
||||||
|
detailRef.value?.setFormData(res)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const deptList = ref([])
|
const deptList = ref([])
|
||||||
const getDeptList = async () => {
|
const getDeptList = async () => {
|
||||||
let res = await deptLists()
|
let res = await deptLists()
|
||||||
|
202
src/views/marketing_framework_agreement/detail.vue
Normal file
202
src/views/marketing_framework_agreement/detail.vue
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
<template>
|
||||||
|
<div class="detail-popup">
|
||||||
|
<popup ref="popupRef" title="框架协议详情" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
|
||||||
|
|
||||||
|
<el-card>
|
||||||
|
<el-descriptions :column="2" border>
|
||||||
|
<el-descriptions-item label="协议名称" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.contract_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="协议性质" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.agreement_nature_text }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="甲方签订单位" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.part_a_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="联系人" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.part_a_contact }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="业主地址" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.part_a_address }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="乙方签约单位" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.part_b }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="乙方签约人" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.part_b_signatory_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="业务性质" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.business_nature_text }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="暂估签订金额" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.signed_amount }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="签订费率(%)" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.signed_rate }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="协议有效期" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.service_duration }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="取消规则" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.payment_method }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="协议主要内容" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.content }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="签订部门" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.signed_dept_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="签订负责人" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.signed_head_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="盖章名称" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.seal_name_text }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="是否限制次数" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.is_limit ? "是" : "否" }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="限制次数" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.limit_num }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="文件类型" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.file_type_text }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="盖章份数" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.seal_num }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="盖章人" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.seal_user_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="骑缝盖章" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.plance_seal_text }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="发出日期" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.send_date }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="邮寄编号" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.mailing_number }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="录入人" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.create_user }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="录入日期" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.create_time }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
||||||
|
<annexLink :annex="formData.annex"></annexLink>
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<flowProcess v-if="!formData?.approve_id || formData.approve_check_status == 4" :flows="flows"
|
||||||
|
:submitApi="apiproject_cost_budgetApprove" :id="formData?.id" @off="handleClose">
|
||||||
|
</flowProcess>
|
||||||
|
<flowDetail v-else :approve_id="formData?.approve_id" @off="handleClose" /> -->
|
||||||
|
</popup>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup name="customdetail">
|
||||||
|
import { apiProjectCostBudgetDetailLists } from '@/api/project_cost_budget_detail.ts'
|
||||||
|
import { apiproject_cost_budgetApprove, apiproject_cost_budgetFlows } from '@/api/flowSet'
|
||||||
|
import type { FormInstance } from 'element-plus'
|
||||||
|
import Popup from '@/components/popup/index.vue'
|
||||||
|
import { apiCustomDetail } from '@/api/custom'
|
||||||
|
import type { PropType } from 'vue'
|
||||||
|
defineProps({
|
||||||
|
dictData: {
|
||||||
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
|
default: () => ({})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const emit = defineEmits(['success', 'close'])
|
||||||
|
const formRef = shallowRef<FormInstance>()
|
||||||
|
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||||
|
const formDataannex = reactive([])
|
||||||
|
|
||||||
|
const datas = reactive({
|
||||||
|
provinceOptions: [],
|
||||||
|
cityOptions: [],
|
||||||
|
areaOptions: [],
|
||||||
|
});
|
||||||
|
|
||||||
|
const tableData = ref([])
|
||||||
|
// 表单数据
|
||||||
|
const formData = reactive({
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//获取预算明细列表
|
||||||
|
const budgetDetailLists = (id) => {
|
||||||
|
apiProjectCostBudgetDetailLists({ 'page_no': pager1.page_no, 'page_size': pager1.page_size, cost_budget_id: id }).then((res) => {
|
||||||
|
tableData.value = res.lists
|
||||||
|
total.value = res.count
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取详情
|
||||||
|
const setFormData = async (data: Record<any, any>) => {
|
||||||
|
Object.assign(formData, data)
|
||||||
|
budgetDetailLists(data.id)
|
||||||
|
// getbidDocumentExaminationFlows()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const getDetail = async (row: Record<string, any>) => {
|
||||||
|
const data = await apiCustomDetail({
|
||||||
|
id: row.id
|
||||||
|
})
|
||||||
|
setFormData(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 提交按钮
|
||||||
|
const handleSubmit = async () => {
|
||||||
|
popupRef.value?.close()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//打开弹窗
|
||||||
|
const open = () => {
|
||||||
|
popupRef.value?.open()
|
||||||
|
}
|
||||||
|
|
||||||
|
// 关闭回调
|
||||||
|
const handleClose = () => {
|
||||||
|
emit('close')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取审批流程
|
||||||
|
const flows = ref([])
|
||||||
|
const getbidDocumentExaminationFlows = async () => {
|
||||||
|
if (formData?.approve_id) return
|
||||||
|
let res = await apiproject_cost_budgetFlows()
|
||||||
|
flows.value = res
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
defineExpose({
|
||||||
|
open,
|
||||||
|
setFormData,
|
||||||
|
getDetail
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.tit {
|
||||||
|
font-size: 1.2em;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
|
</style>
|
@ -18,7 +18,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="甲方签订单位" prop="part_a">
|
<el-form-item label="甲方签订单位" prop="part_a">
|
||||||
<el-input v-model="formData.part_a_text" clearable placeholder="点击选择甲方签约单位"
|
<el-input v-model="formData.part_a_name" clearable placeholder="点击选择甲方签约单位"
|
||||||
@click="showDialog1 = true" readonly />
|
@click="showDialog1 = true" readonly />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -78,10 +78,8 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="附件" prop="">
|
<el-form-item label="附件" prop="">
|
||||||
|
|
||||||
<upload-annex :form-data="formData"></upload-annex>
|
<upload-annex :form-data="formData"></upload-annex>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="签订部门" prop="signed_dept">
|
<el-form-item label="签订部门" prop="signed_dept">
|
||||||
@ -158,10 +156,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<createUserLable :form-data='formData' name='录入' flag></createUserLable>
|
<createUserLable :form-data='formData' name='录入' flag></createUserLable>
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
<div v-if="showDialog">
|
<div v-if="showDialog">
|
||||||
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||||
@ -207,10 +202,11 @@ const popupTitle = computed(() => {
|
|||||||
|
|
||||||
// 表单数据
|
// 表单数据
|
||||||
const formData = reactive({
|
const formData = reactive({
|
||||||
|
id: "",
|
||||||
"contract_name": "",
|
"contract_name": "",
|
||||||
"agreement_nature": '',
|
"agreement_nature": '',
|
||||||
"part_a": '',
|
"part_a": '',
|
||||||
"part_a_text": '',
|
"part_a_name": '',
|
||||||
"part_a_contact": "",
|
"part_a_contact": "",
|
||||||
"part_a_address": "",
|
"part_a_address": "",
|
||||||
"part_b": "",
|
"part_b": "",
|
||||||
@ -242,7 +238,7 @@ const formData = reactive({
|
|||||||
|
|
||||||
const customEvent = (e) => {
|
const customEvent = (e) => {
|
||||||
formData.part_a = e.id
|
formData.part_a = e.id
|
||||||
formData.part_a_text = e.invoice_company
|
formData.part_a_name = e.name
|
||||||
showDialog1.value = false
|
showDialog1.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,19 +6,26 @@
|
|||||||
<el-input class="w-[280px]" v-model="queryParams.contract_name" clearable placeholder="请输入合同名称" />
|
<el-input class="w-[280px]" v-model="queryParams.contract_name" clearable placeholder="请输入合同名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="协议性质">
|
<el-form-item label="协议性质">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.agreement_nature" clearable
|
<el-select class='flex-1' v-model="queryParams.agreement_nature">
|
||||||
placeholder="请输入合同编号" />
|
<el-option v-for="(item, index) in dictData.agreement_nature " :key="index" :label="item.name"
|
||||||
|
:value="parseInt(item.value)"></el-option>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="业务性质">
|
<el-form-item label="业务性质">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.business_nature" clearable
|
<el-select class='flex-1' v-model="queryParams.business_nature">
|
||||||
placeholder="请输入甲方签约单位" />
|
<el-option v-for="(item, index) in dictData.cost_consultation_business_nature " :key="index"
|
||||||
|
:label="item.name" :value="parseInt(item.value)"></el-option>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="签订部门">
|
<el-form-item label="签订部门">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.signed_dept" clearable placeholder="请输入业务性质" />
|
<el-select v-model="queryParams.signed_dept" placeholder="请选择部门">
|
||||||
|
<el-option :label="item.name" :value="item.id" v-for="item in deptList">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="甲方签约单位">
|
<!-- <el-form-item label="甲方签约单位">
|
||||||
<el-input class="w-[280px]" v-model="queryParams.part_a" clearable placeholder="请输入行业性质" />
|
<el-input class="w-[280px]" v-model="queryParams.part_a" clearable placeholder="请输入行业性质" />
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||||
<el-button @click="resetParams">重置</el-button>
|
<el-button @click="resetParams">重置</el-button>
|
||||||
@ -39,22 +46,32 @@
|
|||||||
<div class="mt-4">
|
<div class="mt-4">
|
||||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||||
<el-table-column type="selection" width="55" />
|
<el-table-column type="selection" width="55" />
|
||||||
<el-table-column label="合同名称" prop="contract_name" show-overflow-tooltip />
|
<el-table-column label="协议名称" prop="contract_name" show-overflow-tooltip />
|
||||||
<el-table-column label="合同编号" prop="contract_code" show-overflow-tooltip />
|
<el-table-column label="合同编号" prop="contract_code" show-overflow-tooltip />
|
||||||
<el-table-column label="甲方签约单位" prop="part_a" show-overflow-tooltip />
|
<el-table-column label="甲方签约单位联系人" prop="part_a_contact" show-overflow-tooltip />
|
||||||
<el-table-column label="乙方签约单位" prop="part_b" show-overflow-tooltip />
|
<el-table-column label="乙方签约单位" prop="part_b" show-overflow-tooltip />
|
||||||
<el-table-column label="乙方签约人" prop="part_b_signatory" show-overflow-tooltip />
|
<el-table-column label="业务性质" prop="business_nature_text" show-overflow-tooltip />
|
||||||
<el-table-column label="业务性质" prop="business_nature" show-overflow-tooltip />
|
<el-table-column label="签订部门" prop="signed_dept_name" show-overflow-tooltip />
|
||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="签订负责人" prop="signed_head_name" show-overflow-tooltip />
|
||||||
|
<el-table-column label="盖章人" prop="seal_user_name" show-overflow-tooltip />
|
||||||
|
<el-table-column label="协议性质" prop="agreement_nature_text" show-overflow-tooltip />
|
||||||
|
<el-table-column label="盖章名称" prop="seal_name_text" show-overflow-tooltip />
|
||||||
|
<el-table-column label="是否限制次数" prop="is_limit_text" show-overflow-tooltip />
|
||||||
|
<el-table-column label="文件类型" prop="file_type_text" show-overflow-tooltip />
|
||||||
|
<el-table-column label="操作" width="170" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button v-perms="['marketing.marketing_contract/edit']" type="primary" link
|
<el-button v-perms="['marketing.marketing_framework_agreement/edit']" type="primary" link
|
||||||
@click="handleEdit(row)">
|
@click="handleEdit(row)">
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-perms="['marketing.marketing_contract/delete']" type="danger" link
|
<el-button v-perms="['marketing.marketing_framework_agreement/delete']" type="danger" link
|
||||||
@click="handleDelete(row.id)">
|
@click="handleDelete(row.id)">
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button v-perms="['marketing.marketing_framework_agreement/detail']" link
|
||||||
|
@click="handledetail(row)">
|
||||||
|
详情
|
||||||
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -65,6 +82,8 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
<edit-popup :deptList="deptList" v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists"
|
<edit-popup :deptList="deptList" v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists"
|
||||||
@close="showEdit = false" />
|
@close="showEdit = false" />
|
||||||
|
<detail-popup v-if="showDtail" ref="detailRef" :dict-data="dictData" @close="showDtail = false" />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -76,11 +95,12 @@ import { timeFormat } from '@/utils/util'
|
|||||||
import feedback from '@/utils/feedback'
|
import feedback from '@/utils/feedback'
|
||||||
import EditPopup from './edit.vue'
|
import EditPopup from './edit.vue'
|
||||||
import { deptLists } from "@/api/org/department"
|
import { deptLists } from "@/api/org/department"
|
||||||
|
import DetailPopup from './detail.vue'
|
||||||
|
|
||||||
|
const detailRef = shallowRef<InstanceType<typeof DetailPopup>>()
|
||||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||||
// 是否显示编辑框
|
|
||||||
const showEdit = ref(false)
|
const showEdit = ref(false)
|
||||||
|
const showDtail = ref(false)
|
||||||
|
|
||||||
// 查询条件
|
// 查询条件
|
||||||
const queryParams = reactive({
|
const queryParams = reactive({
|
||||||
@ -131,6 +151,14 @@ const handleDelete = async (id: number | any[]) => {
|
|||||||
getLists()
|
getLists()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 详情
|
||||||
|
const handledetail = async (data: any) => {
|
||||||
|
let res = await apimketingFrameworkAgreementDetail({ id: data.id })
|
||||||
|
showDtail.value = true
|
||||||
|
await nextTick()
|
||||||
|
detailRef.value?.open()
|
||||||
|
detailRef.value?.setFormData(res)
|
||||||
|
}
|
||||||
|
|
||||||
const deptList = ref([])
|
const deptList = ref([])
|
||||||
const getDeptList = async () => {
|
const getDeptList = async () => {
|
||||||
|
226
src/views/marketing_supplementary_agreement/detail.vue
Normal file
226
src/views/marketing_supplementary_agreement/detail.vue
Normal file
@ -0,0 +1,226 @@
|
|||||||
|
<template>
|
||||||
|
<div class="detail-popup">
|
||||||
|
<popup ref="popupRef" title="补充协议名详情" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
|
||||||
|
|
||||||
|
<el-card>
|
||||||
|
<el-descriptions :column="3" border>
|
||||||
|
<el-descriptions-item label="补充协议名称" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.contract_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="关联主合同" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.supplementary_agreement_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="甲方签约单位" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.part_a_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="联系人" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.part_a_contact }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="业主地址" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.part_a_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="联系人" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.part_a_contact }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="业主地址" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.part_a_address }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="乙方签约单位" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.part_b }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="乙方签约人" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.part_b_signatory_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="业务性质" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.business_nature_text }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="签订金额" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.signed_amount }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="合同付款方式" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.payment_method }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="合同主要内容" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.content }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
|
||||||
|
<el-descriptions-item label="签订部门" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.signed_dept_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
<el-descriptions-item label="签订负责人" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.signed_head_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
<el-descriptions-item label="盖章名称" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.seal_name_text }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="是否限制" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.is_limit_text }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="限制次数" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.limit_num }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="文件类型" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.file_type_text }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="盖章份数" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.seal_num }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="盖章人" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.seal_user_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="骑缝盖章" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.plance_seal }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="发出日期" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.send_date }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="邮寄编号" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.mailing_number }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="录入人" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.create_user }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="录入日期" label-align="left" align="left" label-class-name="my-label"> {{
|
||||||
|
formData.create_time }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
||||||
|
<annexLink :annex="formData.annex"></annexLink>
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<flowProcess v-if="!formData?.approve_id || formData.approve_check_status == 4" :flows="flows"
|
||||||
|
:submitApi="apiproject_cost_budgetApprove" :id="formData?.id" @off="handleClose">
|
||||||
|
</flowProcess>
|
||||||
|
<flowDetail v-else :approve_id="formData?.approve_id" @off="handleClose" /> -->
|
||||||
|
</popup>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup name="customdetail">
|
||||||
|
import { apiProjectCostBudgetDetailLists } from '@/api/project_cost_budget_detail.ts'
|
||||||
|
import { apiproject_cost_budgetApprove, apiproject_cost_budgetFlows } from '@/api/flowSet'
|
||||||
|
import type { FormInstance } from 'element-plus'
|
||||||
|
import Popup from '@/components/popup/index.vue'
|
||||||
|
import { apiCustomDetail } from '@/api/custom'
|
||||||
|
import type { PropType } from 'vue'
|
||||||
|
defineProps({
|
||||||
|
dictData: {
|
||||||
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
|
default: () => ({})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const emit = defineEmits(['success', 'close'])
|
||||||
|
const formRef = shallowRef<FormInstance>()
|
||||||
|
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||||
|
const formDataannex = reactive([])
|
||||||
|
|
||||||
|
const datas = reactive({
|
||||||
|
provinceOptions: [],
|
||||||
|
cityOptions: [],
|
||||||
|
areaOptions: [],
|
||||||
|
});
|
||||||
|
|
||||||
|
const tableData = ref([])
|
||||||
|
// 表单数据
|
||||||
|
const formData = reactive({
|
||||||
|
id: "",
|
||||||
|
"contract_name": "",
|
||||||
|
"related_contract_id": '',
|
||||||
|
"supplementary_agreement_name": '',
|
||||||
|
"part_a": '',
|
||||||
|
"part_a_name": '',
|
||||||
|
"part_a_contact": "",
|
||||||
|
"part_a_address": "",
|
||||||
|
"part_b": "",
|
||||||
|
"part_b_signatory": '',
|
||||||
|
"part_b_signatory_name": '',
|
||||||
|
"business_nature": '',
|
||||||
|
"signed_amount": '',
|
||||||
|
"payment_method": "",
|
||||||
|
"content": "",
|
||||||
|
"annex": [],
|
||||||
|
"signed_dept": '',
|
||||||
|
"signed_head": '',
|
||||||
|
"signed_head_name": '',
|
||||||
|
"seal_name": '',
|
||||||
|
"is_limit": '',
|
||||||
|
"limit_num": '',
|
||||||
|
"file_type": '',
|
||||||
|
"seal_num": '',
|
||||||
|
"seal_user": '',
|
||||||
|
"seal_user_name": '',
|
||||||
|
"plance_seal": '',
|
||||||
|
"send_date": "",
|
||||||
|
"mailing_number": "",
|
||||||
|
"create_user": "",
|
||||||
|
"create_time": ""
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 获取详情
|
||||||
|
const setFormData = async (data: Record<any, any>) => {
|
||||||
|
Object.assign(formData, data)
|
||||||
|
// getbidDocumentExaminationFlows()
|
||||||
|
}
|
||||||
|
|
||||||
|
const getDetail = async (row: Record<string, any>) => {
|
||||||
|
const data = await apiCustomDetail({
|
||||||
|
id: row.id
|
||||||
|
})
|
||||||
|
setFormData(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 提交按钮
|
||||||
|
const handleSubmit = async () => {
|
||||||
|
popupRef.value?.close()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//打开弹窗
|
||||||
|
const open = () => {
|
||||||
|
popupRef.value?.open()
|
||||||
|
}
|
||||||
|
|
||||||
|
// 关闭回调
|
||||||
|
const handleClose = () => {
|
||||||
|
emit('close')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取审批流程
|
||||||
|
const flows = ref([])
|
||||||
|
const getbidDocumentExaminationFlows = async () => {
|
||||||
|
if (formData?.approve_id) return
|
||||||
|
let res = await apiproject_cost_budgetFlows()
|
||||||
|
flows.value = res
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
defineExpose({
|
||||||
|
open,
|
||||||
|
setFormData,
|
||||||
|
getDetail
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.tit {
|
||||||
|
font-size: 1.2em;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
|
</style>
|
@ -10,12 +10,14 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="关联主合同" prop="related_contract_id">
|
<el-form-item label="关联主合同" prop="related_contract_id">
|
||||||
<!-- <el-input v-model="formData.related_contract_id" clearable placeholder="点击选择" /> -->
|
<el-input v-model="formData.supplementary_agreement_name" clearable placeholder="点击选择"
|
||||||
|
@click="showDialog1 = true" readonly />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="甲方签约单位" prop="part_a">
|
<el-form-item label="甲方签约单位" prop="part_a">
|
||||||
<el-input v-model="formData.part_a" clearable placeholder="请输入甲方签约单位" />
|
<el-input v-model="formData.part_a_name" clearable placeholder="请输入甲方签约单位" readonly
|
||||||
|
@click="showDialog2 = true" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
@ -35,12 +37,16 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="乙方签约人" prop="part_b_signatory">
|
<el-form-item label="乙方签约人" prop="part_b_signatory">
|
||||||
<!-- <el-input v-model="formData.part_b_signatory" clearable placeholder="请输入乙方签约人" /> -->
|
<el-input v-model="formData.part_b_signatory_name" clearable placeholder="点击选择"
|
||||||
|
@click="userclick('part_b_signatory')" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="业务性质" prop="business_nature">
|
<el-form-item label="业务性质" prop="business_nature">
|
||||||
<!-- <el-input v-model="formData.business_nature" clearable placeholder="请输入关联主合同id" /> -->
|
<el-select class='flex-1' v-model="formData.business_nature">
|
||||||
|
<el-option v-for="(item, index) in dictData.cost_consultation_business_nature "
|
||||||
|
:key="index" :label="item.name" :value="parseInt(item.value)"></el-option>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
@ -144,6 +150,14 @@
|
|||||||
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
<personnelselector ref="personnel" @confirm="submituser" type="1">
|
||||||
</personnelselector>
|
</personnelselector>
|
||||||
</div>
|
</div>
|
||||||
|
<el-dialog v-model="showDialog1" title="选择主合同" width="70%">
|
||||||
|
<dialogTable :config="marketing_contract" @customEvent="customEvent">
|
||||||
|
</dialogTable>
|
||||||
|
</el-dialog>
|
||||||
|
<el-dialog v-model="showDialog2" title="选择甲方签订单位" width="70%">
|
||||||
|
<dialogTable :config="marketing_custom" @customEvent="customEvent1">
|
||||||
|
</dialogTable>
|
||||||
|
</el-dialog>
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -151,38 +165,45 @@
|
|||||||
<script lang="ts" setup name="marketingContractEdit">
|
<script lang="ts" setup name="marketingContractEdit">
|
||||||
import type { FormInstance } from 'element-plus'
|
import type { FormInstance } from 'element-plus'
|
||||||
import Popup from '@/components/popup/index.vue'
|
import Popup from '@/components/popup/index.vue'
|
||||||
import { apiMarketingContractAdd, apiMarketingContractEdit, apiMarketingContractDetail } from '@/api/marketing_contract'
|
import { apiMarketingSupplementaryAgreementAdd, apiMarketingSupplementaryAgreementEdit, apiMarketingSupplementaryAgreementDetail } from '@/api/marketing_supplementary_agreement'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { marketing_contract, marketing_custom } from "@/components/dialogTable/dialogTableConfig";
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
type: Object as PropType<Record<string, any[]>>,
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
default: () => ({})
|
default: () => ({})
|
||||||
}
|
},
|
||||||
|
deptList: Array
|
||||||
})
|
})
|
||||||
const emit = defineEmits(['success', 'close'])
|
const emit = defineEmits(['success', 'close'])
|
||||||
const formRef = shallowRef<FormInstance>()
|
const formRef = shallowRef<FormInstance>()
|
||||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||||
const mode = ref('add')
|
const mode = ref('add')
|
||||||
const showDialog = ref(false)
|
const showDialog = ref(false)
|
||||||
|
const showDialog1 = ref(false)
|
||||||
|
const showDialog2 = ref(false)
|
||||||
const personnel = ref(null)
|
const personnel = ref(null)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 弹窗标题
|
// 弹窗标题
|
||||||
const popupTitle = computed(() => {
|
const popupTitle = computed(() => {
|
||||||
return mode.value == 'edit' ? '编辑市场经营--合同信息' : '新增市场经营--合同信息'
|
return mode.value == 'edit' ? '编辑市场经营--补充协议' : '新增市场经营--补充协议'
|
||||||
})
|
})
|
||||||
|
|
||||||
// 表单数据
|
// 表单数据
|
||||||
const formData = reactive({
|
const formData = reactive({
|
||||||
|
id: "",
|
||||||
"contract_name": "",
|
"contract_name": "",
|
||||||
"related_contract_id": '',
|
"related_contract_id": '',
|
||||||
|
"supplementary_agreement_name": '',
|
||||||
"part_a": '',
|
"part_a": '',
|
||||||
|
"part_a_name": '',
|
||||||
"part_a_contact": "",
|
"part_a_contact": "",
|
||||||
"part_a_address": "",
|
"part_a_address": "",
|
||||||
"part_b": "",
|
"part_b": "",
|
||||||
"part_b_signatory": '',
|
"part_b_signatory": '',
|
||||||
|
"part_b_signatory_name": '',
|
||||||
"business_nature": '',
|
"business_nature": '',
|
||||||
"signed_amount": '',
|
"signed_amount": '',
|
||||||
"payment_method": "",
|
"payment_method": "",
|
||||||
@ -190,12 +211,14 @@ const formData = reactive({
|
|||||||
"annex": [],
|
"annex": [],
|
||||||
"signed_dept": '',
|
"signed_dept": '',
|
||||||
"signed_head": '',
|
"signed_head": '',
|
||||||
|
"signed_head_name": '',
|
||||||
"seal_name": '',
|
"seal_name": '',
|
||||||
"is_limit": '',
|
"is_limit": '',
|
||||||
"limit_num": '',
|
"limit_num": '',
|
||||||
"file_type": '',
|
"file_type": '',
|
||||||
"seal_num": '',
|
"seal_num": '',
|
||||||
"seal_user": '',
|
"seal_user": '',
|
||||||
|
"seal_user_name": '',
|
||||||
"plance_seal": '',
|
"plance_seal": '',
|
||||||
"send_date": "",
|
"send_date": "",
|
||||||
"mailing_number": "",
|
"mailing_number": "",
|
||||||
@ -203,6 +226,19 @@ const formData = reactive({
|
|||||||
"create_time": ""
|
"create_time": ""
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const customEvent = (e) => {
|
||||||
|
formData.related_contract_id = e.id
|
||||||
|
formData.supplementary_agreement_name = e.contract_name
|
||||||
|
showDialog1.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
const customEvent1 = (e) => {
|
||||||
|
formData.part_a = e.id
|
||||||
|
formData.part_a_name = e.name
|
||||||
|
showDialog2.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
let value;
|
let value;
|
||||||
const userclick = async (val) => {
|
const userclick = async (val) => {
|
||||||
@ -216,7 +252,10 @@ const userclick = async (val) => {
|
|||||||
//确认
|
//确认
|
||||||
const submituser = (e: any) => {
|
const submituser = (e: any) => {
|
||||||
formData[value + '_name'] = e.name
|
formData[value + '_name'] = e.name
|
||||||
formData.seal_user = e.id
|
formData[value] = e.id
|
||||||
|
|
||||||
|
|
||||||
|
console.log(formData[value], 'v')
|
||||||
showDialog.value = false
|
showDialog.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -238,12 +277,7 @@ const setFormData = async (data: Record<any, any>) => {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const getDetail = async (row: Record<string, any>) => {
|
|
||||||
const data = await apiMarketingContractDetail({
|
|
||||||
id: row.id
|
|
||||||
})
|
|
||||||
setFormData(data)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 提交按钮
|
// 提交按钮
|
||||||
@ -251,8 +285,8 @@ const handleSubmit = async () => {
|
|||||||
await formRef.value?.validate()
|
await formRef.value?.validate()
|
||||||
const data = { ...formData, }
|
const data = { ...formData, }
|
||||||
mode.value == 'edit'
|
mode.value == 'edit'
|
||||||
? await apiMarketingContractEdit(data)
|
? await apiMarketingSupplementaryAgreementEdit(data)
|
||||||
: await apiMarketingContractAdd(data)
|
: await apiMarketingSupplementaryAgreementAdd(data)
|
||||||
popupRef.value?.close()
|
popupRef.value?.close()
|
||||||
emit('success')
|
emit('success')
|
||||||
}
|
}
|
||||||
@ -273,6 +307,5 @@ const handleClose = () => {
|
|||||||
defineExpose({
|
defineExpose({
|
||||||
open,
|
open,
|
||||||
setFormData,
|
setFormData,
|
||||||
getDetail
|
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
@ -36,21 +36,30 @@
|
|||||||
<el-table-column type="selection" width="55" />
|
<el-table-column type="selection" width="55" />
|
||||||
<el-table-column label="合同名称" prop="contract_name" show-overflow-tooltip />
|
<el-table-column label="合同名称" prop="contract_name" show-overflow-tooltip />
|
||||||
<el-table-column label="合同编号" prop="contract_code" show-overflow-tooltip />
|
<el-table-column label="合同编号" prop="contract_code" show-overflow-tooltip />
|
||||||
<el-table-column label="甲方签约单位" prop="part_a" show-overflow-tooltip />
|
<el-table-column label="甲方签约单位" prop="part_a_name" show-overflow-tooltip />
|
||||||
<el-table-column label="乙方签约单位" prop="part_b" show-overflow-tooltip />
|
<el-table-column label="乙方签约单位" prop="part_b" show-overflow-tooltip />
|
||||||
<el-table-column label="乙方签约人" prop="part_b_signatory" show-overflow-tooltip />
|
<el-table-column label="签订金额" prop="signed_amount" show-overflow-tooltip />
|
||||||
<el-table-column label="业务性质" prop="business_nature" show-overflow-tooltip />
|
<el-table-column label="关联主合同" prop="supplementary_agreement_name" show-overflow-tooltip />
|
||||||
|
<el-table-column label="签订负责人" prop="signed_head_name" show-overflow-tooltip />
|
||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="盖章人" prop="seal_user_name" show-overflow-tooltip />
|
||||||
|
<el-table-column label="业务性质" prop="business_nature_text" show-overflow-tooltip />
|
||||||
|
<el-table-column label="盖章名称" prop="seal_name_text" show-overflow-tooltip />
|
||||||
|
<el-table-column label="是否限制" prop="is_limit_text" show-overflow-tooltip />
|
||||||
|
<el-table-column label="文件类型" prop="file_type_text" show-overflow-tooltip />
|
||||||
|
<el-table-column label="操作" width="170" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button v-perms="['marketing.marketing_contract/edit']" type="primary" link
|
<el-button v-perms="['marketing.marketing_supplementary_agreement/edit']" type="primary" link
|
||||||
@click="handleEdit(row)">
|
@click="handleEdit(row)">
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-perms="['marketing.marketing_contract/delete']" type="danger" link
|
<el-button v-perms="['marketing.marketing_supplementary_agreement/delete']" type="danger" link
|
||||||
@click="handleDelete(row.id)">
|
@click="handleDelete(row.id)">
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button v-perms="['marketing.marketing_supplementary_agreement/detail']" link
|
||||||
|
@click="handledetail(row)">
|
||||||
|
详情
|
||||||
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -59,7 +68,10 @@
|
|||||||
<pagination v-model="pager" @change="getLists" />
|
<pagination v-model="pager" @change="getLists" />
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
|
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false"
|
||||||
|
:deptList="deptList" />
|
||||||
|
<detail-popup v-if="showDtail" ref="detailRef" :dict-data="dictData" @close="showDtail = false" />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -67,13 +79,15 @@
|
|||||||
import { usePaging } from '@/hooks/usePaging'
|
import { usePaging } from '@/hooks/usePaging'
|
||||||
import { useDictData } from '@/hooks/useDictOptions'
|
import { useDictData } from '@/hooks/useDictOptions'
|
||||||
import { apiMarketingSupplementaryAgreementLists, apiMarketingSupplementaryAgreementDelete, apiMarketingSupplementaryAgreementDetail } from '@/api/marketing_supplementary_agreement'
|
import { apiMarketingSupplementaryAgreementLists, apiMarketingSupplementaryAgreementDelete, apiMarketingSupplementaryAgreementDetail } from '@/api/marketing_supplementary_agreement'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { deptLists } from "@/api/org/department"
|
||||||
import feedback from '@/utils/feedback'
|
import feedback from '@/utils/feedback'
|
||||||
import EditPopup from './edit.vue'
|
import EditPopup from './edit.vue'
|
||||||
|
import DetailPopup from './detail.vue'
|
||||||
|
|
||||||
|
const detailRef = shallowRef<InstanceType<typeof DetailPopup>>()
|
||||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||||
// 是否显示编辑框
|
|
||||||
const showEdit = ref(false)
|
const showEdit = ref(false)
|
||||||
|
const showDtail = ref(false)
|
||||||
|
|
||||||
|
|
||||||
// 查询条件
|
// 查询条件
|
||||||
@ -93,7 +107,7 @@ const handleSelectionChange = (val: any[]) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取字典数据
|
// 获取字典数据
|
||||||
const { dictData } = useDictData('')
|
const { dictData } = useDictData('cost_consultation_business_nature,cost_consultation_industry_nature,money_source,const_area,cost_consultation_way,cost_consultation_seal_name,cost_consultation_file_type,isqfgz')
|
||||||
|
|
||||||
// 分页相关
|
// 分页相关
|
||||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||||
@ -124,6 +138,23 @@ const handleDelete = async (id: number | any[]) => {
|
|||||||
getLists()
|
getLists()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 详情
|
||||||
|
const handledetail = async (data: any) => {
|
||||||
|
let res = await apiMarketingSupplementaryAgreementDetail({ id: data.id })
|
||||||
|
showDtail.value = true
|
||||||
|
await nextTick()
|
||||||
|
detailRef.value?.open()
|
||||||
|
detailRef.value?.setFormData(res)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const deptList = ref([])
|
||||||
|
const getDeptList = async () => {
|
||||||
|
let res = await deptLists()
|
||||||
|
deptList.value = res.lists
|
||||||
|
}
|
||||||
|
|
||||||
getLists()
|
getLists()
|
||||||
|
getDeptList()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -5,15 +5,17 @@
|
|||||||
<el-row>
|
<el-row>
|
||||||
|
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="项目名称" prop="project_id" @click="showDialog = true">
|
<el-form-item label="日记工单号" prop="attendance_id">
|
||||||
<el-input v-model="project_name" clearable placeholder="请输入项目名称" :disabled="project" />
|
<el-input v-model="formData.attendance_code" clearable placeholder="点击选择考勤记录" readonly
|
||||||
</el-form-item> </el-col>
|
@click="showDialog = true" />
|
||||||
<el-col :span="8">
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<!-- <el-col :span="8">
|
||||||
<el-form-item label="项目编码" prop="project_id">
|
<el-form-item label="项目编码" prop="project_id">
|
||||||
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写"
|
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写"
|
||||||
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
|
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="日期" prop="attendance_date">
|
<el-form-item label="日期" prop="attendance_date">
|
||||||
<el-date-picker class="flex-1 !flex" clearable v-model="formData.attendance_date" type="date"
|
<el-date-picker class="flex-1 !flex" clearable v-model="formData.attendance_date" type="date"
|
||||||
@ -94,8 +96,9 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-dialog v-model="showDialog" title="选择项目" width="70%">
|
<el-dialog v-model="showDialog" title="选择考勤记录" width="70%">
|
||||||
<projectDialog @customEvent="customEvent"></projectDialog>
|
<dialogTable :config="project_attendance_record" @customEvent="customEvent">
|
||||||
|
</dialogTable>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<div v-if="showDialog1">
|
<div v-if="showDialog1">
|
||||||
<el-dialog v-model="showDialog1" title="选择项目人员" width="70%">
|
<el-dialog v-model="showDialog1" title="选择项目人员" width="70%">
|
||||||
@ -113,6 +116,10 @@ import type { FormInstance } from 'element-plus'
|
|||||||
import Popup from '@/components/popup/index.vue'
|
import Popup from '@/components/popup/index.vue'
|
||||||
import projectDialog from '@/components/project/index.vue'
|
import projectDialog from '@/components/project/index.vue'
|
||||||
import { attendancedetailAdd, attendancedetailEdit, attendancedetailDetail } from '@/api/project_attendance_detail'
|
import { attendancedetailAdd, attendancedetailEdit, attendancedetailDetail } from '@/api/project_attendance_detail'
|
||||||
|
import { project_attendance_record } from "@/components/dialogTable/dialogTableConfig";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import customDialog from '@/components/project_personnel/index.vue'
|
import customDialog from '@/components/project_personnel/index.vue'
|
||||||
let props = defineProps({
|
let props = defineProps({
|
||||||
project: Object
|
project: Object
|
||||||
@ -133,8 +140,9 @@ const userInfo = userStore.userInfo
|
|||||||
// 表单数据
|
// 表单数据
|
||||||
const formData = reactive({
|
const formData = reactive({
|
||||||
id: '',
|
id: '',
|
||||||
project_id: '',
|
attendance_id: "",
|
||||||
person_id: '',
|
person_id: '',
|
||||||
|
attendance_code: "",
|
||||||
attendance_date: '',
|
attendance_date: '',
|
||||||
work_start_time: '',
|
work_start_time: '',
|
||||||
work_end_time: '',
|
work_end_time: '',
|
||||||
@ -151,17 +159,14 @@ const formData = reactive({
|
|||||||
})
|
})
|
||||||
//获取值
|
//获取值
|
||||||
const customEvent = (e) => {
|
const customEvent = (e) => {
|
||||||
formData.project_id = e.id
|
console.log(e)
|
||||||
project_name.value = e.name
|
formData.attendance_id = e.id
|
||||||
project_code.value = e.project_code
|
formData.attendance_code = e.attendance_code
|
||||||
idcard.value = ''
|
|
||||||
work_type.value = ''
|
|
||||||
showDialog.value = false
|
showDialog.value = false
|
||||||
formData.people = ''
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (props.project) customEvent(props.project);
|
// if (props.project) customEvent(props.project);
|
||||||
|
|
||||||
const customEvent1 = (e) => {
|
const customEvent1 = (e) => {
|
||||||
formData.person_id = e.id
|
formData.person_id = e.id
|
||||||
|
Loading…
x
Reference in New Issue
Block a user