This commit is contained in:
zmj 2024-04-09 11:18:52 +08:00
parent 8d418fd8de
commit 41c1a2f80e
17 changed files with 338 additions and 489 deletions

View File

@ -608,9 +608,7 @@ export const financial_budget_doc: Iconfig = {
],
};
import { apiFinancialFeeApplicationLists } from '@/api/financial_fee_application'
import { apiFinancialFeeApplicationLists } from "@/api/financial_fee_application";
export const financial_fee_application: Iconfig = {
fetchFn: apiFinancialFeeApplicationLists,
@ -640,7 +638,7 @@ export const financial_fee_application: Iconfig = {
],
};
import { apiFinancialBorrowMoneyLists } from '@/api/financial_borrow_money'
import { apiFinancialBorrowMoneyLists } from "@/api/financial_borrow_money";
export const financial_borrow_money: Iconfig = {
fetchFn: apiFinancialBorrowMoneyLists,
@ -653,13 +651,12 @@ export const financial_borrow_money: Iconfig = {
{
label: "费用类别",
value: "cost_type",
select:'cost_type'
select: "cost_type",
},
{
label: "支付方式",
value: "pay_type",
select:'financial_pay_type'
select: "financial_pay_type",
},
],
tableList: [
@ -674,7 +671,7 @@ export const financial_borrow_money: Iconfig = {
],
};
import { apiMarketingCustomReturnVisitTemplateLists, } from '@/api/marketing_custom_return_visit_template'
import { apiMarketingCustomReturnVisitTemplateLists } from "@/api/marketing_custom_return_visit_template";
export const marketing_custom_return_visit_template: Iconfig = {
fetchFn: apiMarketingCustomReturnVisitTemplateLists,
@ -689,14 +686,14 @@ export const marketing_custom_return_visit_template: Iconfig = {
value: "is_use",
select: [
{
name:'启用',
value:0
name: "启用",
value: 0,
},
{
name:'不启用',
value:1
}
]
name: "不启用",
value: 1,
},
],
},
{
label: "模板名称",
@ -715,13 +712,11 @@ export const marketing_custom_return_visit_template: Iconfig = {
],
};
import { apiMarketingCustomReturnVisitLists, } from '@/api/marketing_custom_return_visit'
import { apiMarketingCustomReturnVisitLists } from "@/api/marketing_custom_return_visit";
export const marketing_custom_return_visit: Iconfig = {
fetchFn: apiMarketingCustomReturnVisitLists,
dictData:'return_visit_type',
dictData: "return_visit_type",
serchList: [
{
label: "回访编号",
@ -730,13 +725,12 @@ export const marketing_custom_return_visit: Iconfig = {
{
label: "回访方式",
value: "return_visit_type",
select:'return_visit_type',
select: "return_visit_type",
},
{
label: "回访人",
value: "create_user",
},
],
tableList: [
{ contract_name: "合同名称" },
@ -748,4 +742,35 @@ export const marketing_custom_return_visit: Iconfig = {
],
};
import { apiMarketingCustomLists } from "@/api/marketing_custom";
export const marketing_custom: Iconfig = {
fetchFn: apiMarketingCustomLists,
// dictData: "return_visit_type",
serchList: [
{
label: "客户名称",
value: "name",
},
{
label: "客户编号",
value: "code",
},
{
label: "重要等级",
value: "important_level",
select: "custom_important_level",
},
],
tableList: [
{ name: "客户名称" },
{ code: "客户编号" },
{ important_level_text: "重要等级" },
{ dept_name: "负责部门" },
{ category_text: "客户分类" },
{ province_name: "省份" },
{ city_name: "城市" },
{ create_user: "录入人" },
{ create_time: "录入日期" },
],
};

View File

@ -91,7 +91,7 @@
<el-col :span="8">
<el-form-item label="账号" prop="account" @click="showDialog2 = true"
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
<el-input v-model="formData.account" clearable placeholder="请输入账号" />
<el-input v-model="formData.account" clearable placeholder="请输入账号" type="number" />
</el-form-item>
</el-col>
<el-col :span="8">
@ -212,6 +212,8 @@ const formData = reactive({
})
//
const formRules = reactive<any>({

View File

@ -103,7 +103,7 @@
</el-col>
<el-dialog v-model="showDialog" title="选择合同" width="70%">
<dialogTable :config="cost_approved_projects" @customEvent="customEvent" :query="{ status: 2 }">
<dialogTable :config="cost_approved_projects" @customEvent="customEvent" :query="{ status: 1 }">
</dialogTable>
</el-dialog>
</popup>

View File

@ -78,7 +78,7 @@
</el-form>
<el-dialog v-model="showDialog" title="选择合同" width="70%">
<dialogTable :config="cost_approved_projects" @customEvent="customEvent" :query="{ status: 2 }">
<dialogTable :config="cost_approved_projects" @customEvent="customEvent" :query="{ status: 1 }">
</dialogTable>
</el-dialog>
<el-dialog v-model="showDialog1" title="选择费用申请单" width="70%">

View File

@ -119,7 +119,7 @@
</el-row>
</el-form>
<el-dialog v-model="showDialog" title="选择合同" width="70%">
<dialogTable :config="cost_approved_projects" @customEvent="customEvent" :query="{ status: 2 }">
<dialogTable :config="cost_approved_projects" @customEvent="customEvent" :query="{ status: 1 }">
</dialogTable>
</el-dialog>
</popup>

View File

@ -46,7 +46,7 @@
<createUserLable :formData="formData" />
</el-form>
<el-dialog v-model="showDialog" title="选择合同" width="70%">
<dialogTable :config="cost_approved_projects" @customEvent="customEvent" :query="{ status: 2 }">
<dialogTable :config="cost_approved_projects" @customEvent="customEvent" :query="{ status: 1 }">
</dialogTable>
</el-dialog>
<div v-if="showDialog1">

View File

@ -40,7 +40,7 @@
</el-form-item>
</el-form>
<el-dialog v-model="showDialog" title="选择合同" width="70%">
<dialogTable :config="cost_approved_projects" @customEvent="customEvent" :query="{ status: 2 }">
<dialogTable :config="cost_approved_projects" @customEvent="customEvent" :query="{ status: 1 }">
</dialogTable>
</el-dialog>
</popup>

View File

@ -103,11 +103,7 @@
</el-form-item>
</el-col>
<createUserLable :formData="formData" name="申请" flag></createUserLable>
<!-- <el-col :span="8">
<el-form-item label="附件">
<uploadAnnex :formData="formData"></uploadAnnex>
</el-form-item>
</el-col> -->
</el-row>
<FormTable :form-data="formData.detail" :config="tableConfig" @getSummaries="getSummaries"
:dict-data="dictData">
@ -125,7 +121,7 @@
</el-form>
<el-dialog v-model="showDialog" title="选择合同" width="70%">
<dialogTable :config="cost_approved_projects" @customEvent="customEvent" :query="{ status: 2 }">
<dialogTable :config="cost_approved_projects" @customEvent="customEvent" :query="{ status: 1 }">
</dialogTable>
</el-dialog>
</popup>

View File

@ -18,7 +18,8 @@
</el-col>
<el-col :span="8">
<el-form-item label="甲方签订单位" prop="part_a">
<el-input v-model="formData.part_a" clearable placeholder="请输入甲方签订单位" />
<el-input v-model="formData.part_a_text" clearable placeholder="点击选择甲方签约单位"
@click="showDialog1 = true" readonly />
</el-form-item>
</el-col>
<el-col :span="8">
@ -166,6 +167,10 @@
<personnelselector ref="personnel" @confirm="submituser" type="1">
</personnelselector>
</div>
<el-dialog v-model="showDialog1" title="选择甲方签订单位" width="70%">
<dialogTable :config="marketing_custom" @customEvent="customEvent">
</dialogTable>
</el-dialog>
</popup>
</div>
</template>
@ -174,6 +179,10 @@
import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue'
import { apimketingFrameworkAgreementAdd, apimketingFrameworkAgreementEdit } from '@/api/marketing_framework_agreement'
import { marketing_custom } from "@/components/dialogTable/dialogTableConfig";
defineProps({
dictData: {
type: Object as PropType<Record<string, any[]>>,
@ -187,6 +196,7 @@ const formRef = shallowRef<FormInstance>()
const popupRef = shallowRef<InstanceType<typeof Popup>>()
const mode = ref('add')
const showDialog = ref(false)
const showDialog1 = ref(false)
const personnel = ref(null)
@ -200,6 +210,7 @@ const formData = reactive({
"contract_name": "",
"agreement_nature": '',
"part_a": '',
"part_a_text": '',
"part_a_contact": "",
"part_a_address": "",
"part_b": "",
@ -229,6 +240,13 @@ const formData = reactive({
"create_time": ""
})
const customEvent = (e) => {
formData.part_a = e.id
formData.part_a_text = e.invoice_company
showDialog1.value = false
}
let value;
const userclick = async (val) => {
@ -242,7 +260,7 @@ const userclick = async (val) => {
//
const submituser = (e: any) => {
formData[value + '_name'] = e.name
formData.seal_user = e.id
formData[value] = e.id
showDialog.value = false
}

View File

@ -1,137 +1,149 @@
<template>
<div class="edit-popup">
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
<el-form-item label="关联主合同id" prop="related_contract_id">
<el-input v-model="formData.related_contract_id" clearable placeholder="请输入关联主合同id" />
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
<el-row>
<el-col :span="8">
<el-form-item label="补充协议名称" prop="contract_name">
<el-input v-model="formData.contract_name" clearable placeholder="请输入补充协议名称" />
</el-form-item>
<el-form-item label="合同类型 0-主合同 1-框架协议 2-补充协议" prop="contract_type">
<el-input v-model="formData.contract_type" clearable placeholder="请输入合同类型 0-主合同 1-框架协议 2-补充协议" />
</el-form-item>
<el-form-item label="合同名称" prop="contract_name">
<el-input v-model="formData.contract_name" clearable placeholder="请输入合同名称" />
</el-form-item>
<el-form-item label="合同编号" prop="contract_code">
<el-input v-model="formData.contract_code" clearable placeholder="请输入合同编号" />
</el-col>
<el-col :span="8">
<el-form-item label="关联主合同" prop="related_contract_id">
<!-- <el-input v-model="formData.related_contract_id" clearable placeholder="点击选择" /> -->
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="甲方签约单位" prop="part_a">
<el-input v-model="formData.part_a" clearable placeholder="请输入甲方签约单位" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系人" prop="part_a_contact">
<el-input v-model="formData.part_a_contact" clearable placeholder="请输入联系人" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="业主地址" prop="part_a_address">
<el-input v-model="formData.part_a_address" clearable placeholder="请输入业主地址" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="乙方签约单位" prop="part_b">
<el-input v-model="formData.part_b" clearable placeholder="请输入乙方签约单位" />
</el-form-item>
</el-col>
<el-col :span="8">
<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" clearable placeholder="请输入乙方签约人" /> -->
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="业务性质" prop="business_nature">
<el-input v-model="formData.business_nature" clearable placeholder="请输入业务性质" />
</el-form-item>
<el-form-item label="行业性质" prop="industry_nature">
<el-input v-model="formData.industry_nature" clearable placeholder="请输入行业性质" />
</el-form-item>
<el-form-item label="资金来源" prop="fund_sources">
<el-input v-model="formData.fund_sources" clearable placeholder="请输入资金来源" />
</el-form-item>
<el-form-item label="建设区域" prop="const_area">
<el-input v-model="formData.const_area" clearable placeholder="请输入建设区域" />
</el-form-item>
<el-form-item label="协议性质" prop="agreement_nature">
<el-input v-model="formData.agreement_nature" clearable placeholder="请输入协议性质" />
</el-form-item>
<el-form-item label="工程总投资" prop="project_money">
<el-input v-model="formData.project_money" clearable placeholder="请输入工程总投资" />
</el-form-item>
<el-form-item label="工程规模及概况" prop="project_scale">
<el-input v-model="formData.project_scale" clearable placeholder="请输入工程规模及概况" />
<!-- <el-input v-model="formData.business_nature" clearable placeholder="请输入关联主合同id" /> -->
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="签订金额" prop="signed_amount">
<el-input v-model="formData.signed_amount" clearable placeholder="请输入签订金额" />
</el-form-item>
<el-form-item label="合同签订费率" prop="signed_rate">
<el-input v-model="formData.signed_rate" clearable placeholder="请输入合同签订费率" />
</el-form-item>
<el-form-item label="合同服务工期" prop="service_duration">
<el-input v-model="formData.service_duration" clearable placeholder="请输入合同服务工期" />
</el-form-item>
<el-form-item label="计划开始日期" prop="start_date">
<el-input v-model="formData.start_date" clearable placeholder="请输入计划开始日期" />
</el-form-item>
<el-form-item label="计划结束日期" prop="end_date">
<el-input v-model="formData.end_date" clearable placeholder="请输入计划结束日期" />
</el-form-item>
<el-form-item label="履约金" prop="performance_money">
<el-input v-model="formData.performance_money" clearable placeholder="请输入履约金" />
</el-form-item>
<el-form-item label="履约金到期时间" prop="performance_money_expiration_time">
<el-input v-model="formData.performance_money_expiration_time" clearable placeholder="请输入履约金到期时间" />
<el-input v-model="formData.signed_amount" clearable placeholder="请输入签订金额" type="number" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同付款方式" prop="payment_method">
<el-input v-model="formData.payment_method" clearable placeholder="请输入合同付款方式" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同主要内容" prop="content">
<el-input v-model="formData.content" clearable placeholder="请输入合同主要内容" />
<el-input v-model="formData.content" clearable placeholder="请输入合同主要内容" type="textarea" />
</el-form-item>
<el-form-item label="附件" prop="annex">
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-col>
<el-col :span="8">
<el-form-item label="附件">
<uploadAnnex :form-data="formData"></uploadAnnex>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="签订部门" prop="signed_dept">
<el-input v-model="formData.signed_dept" clearable placeholder="请输入签订部门" />
<el-select v-model="formData.signed_dept" placeholder="请选择部门" class="flex-1">
<el-option :label="item.name" :value="item.id" v-for="item in deptList">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="签订负责人" prop="signed_head">
<el-input v-model="formData.signed_head" clearable placeholder="请输入签订负责人" />
</el-col>
<el-col :span="8">
<el-form-item label="签订负责人" prop="signed_head_name">
<el-input v-model="formData.signed_head_name" clearable placeholder="点击选择"
@click="userclick('signed_head')" />
</el-form-item>
<el-form-item label="监管部门" prop="supervise_dept">
<el-input v-model="formData.supervise_dept" clearable placeholder="请输入监管部门" />
</el-col>
<el-col :span="8">
<el-form-item label="盖章名称">
<el-select class=' flex-1' v-model="formData.seal_name">
<el-option v-for="(item, index) in dictData.cost_consultation_seal_name " :key="index"
:label="item.name" :value="parseInt(item.value)"></el-option>
</el-select>
</el-form-item>
<el-form-item label="项目总监/经理" prop="project_manager">
<el-input v-model="formData.project_manager" clearable placeholder="请输入项目总监/经理" />
</el-col>
<el-col :span="8">
<el-form-item label="是否限制">
<el-select v-model="formData.is_limit" class="flex-1">
<el-option label="否" :value="0"></el-option>
<el-option label="是" :value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="实施方式" prop="implement_method">
<el-input v-model="formData.implement_method" clearable placeholder="请输入实施方式" />
</el-col>
<el-col :span="8" v-if="formData.is_limit">
<el-form-item label="限制次数">
<el-input v-model="formData.limit_num" clearable placeholder="请输入限制次数" type="number" />
</el-form-item>
<el-form-item label="盖章名称" prop="seal_name">
<el-input v-model="formData.seal_name" clearable placeholder="请输入盖章名称" />
</el-col>
<el-col :span="8">
<el-form-item label="文件类型">
<el-select class='flex-1' v-model="formData.file_type">
<el-option v-for="( item, index ) in dictData.cost_consultation_file_type " :key="index"
:label="item.name" :value="parseInt(item.value)"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否限制" prop="is_limit">
<el-input v-model="formData.is_limit" clearable placeholder="请输入是否限制" />
</el-col>
<el-col :span="8">
<el-form-item label="盖章份数">
<el-input v-model="formData.seal_num" clearable placeholder="请输入盖章份数" type="number" />
</el-form-item>
<el-form-item label="限制次数" prop="limit_num">
<el-input v-model="formData.limit_num" clearable placeholder="请输入限制次数" />
</el-col>
<el-col :span="8">
<el-form-item label="盖章人">
<el-input v-model="formData.seal_user_name" clearable placeholder="点击选择"
@click="userclick('seal_user')" />
</el-form-item>
<el-form-item label="文件类型" prop="file_type">
<el-input v-model="formData.file_type" clearable placeholder="请输入文件类型" />
</el-col>
<el-col :span="8">
<el-form-item label="骑缝盖章">
<el-select class='flex-1' v-model="formData.plance_seal">
<el-option v-for="( item, index ) in dictData.isqfgz " :key="index" :label="item.name"
:value="parseInt(item.value)"></el-option>
</el-select>
</el-form-item>
<el-form-item label="盖章份数" prop="seal_num">
<el-input v-model="formData.seal_num" clearable placeholder="请输入盖章份数" />
</el-col>
<el-col :span="8">
<el-form-item label="发出日期">
<el-date-picker class="flex-1 !flex" v-model="formData.send_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="选择发生日期">
</el-date-picker>
</el-form-item>
<el-form-item label="盖章人" prop="seal_user">
<el-input v-model="formData.seal_user" clearable placeholder="请输入盖章人" />
</el-form-item>
<el-form-item label="骑缝盖章" prop="plance_seal">
<el-input v-model="formData.plance_seal" clearable placeholder="请输入骑缝盖章" />
</el-form-item>
<el-form-item label="发出日期" prop="send_date">
<el-input v-model="formData.send_date" clearable placeholder="请输入发出日期" />
</el-form-item>
<el-form-item label="邮寄编号" prop="mailing_number">
<el-input v-model="formData.mailing_number" clearable placeholder="请输入邮寄编号" />
</el-form-item>
<el-form-item label="评审状态 0-待移交 1-已移交" prop="review_status">
<el-input v-model="formData.review_status" clearable placeholder="请输入评审状态 0-待移交 1-已移交" />
</el-form-item>
<el-form-item label="立项状态 0-待立项 1-已立项" prop="status">
<el-input v-model="formData.status" clearable placeholder="请输入立项状态 0-待立项 1-已立项" />
</el-form-item>
<el-form-item label="录入人" prop="create_user">
<el-input v-model="formData.create_user" clearable placeholder="请输入录入人" />
</el-col>
<el-col :span="8">
<el-form-item label="邮寄编号">
<el-input v-model="formData.mailing_number" clearable placeholder="请输入邮寄编号" type="number" />
</el-form-item>
</el-col>
<createUserLable :form-data='formData' name='录入' flag></createUserLable>
</el-row>
</el-form>
<div v-if="showDialog">
<personnelselector ref="personnel" @confirm="submituser" type="1">
</personnelselector>
</div>
</popup>
</div>
</template>
@ -152,6 +164,9 @@ const emit = defineEmits(['success', 'close'])
const formRef = shallowRef<FormInstance>()
const popupRef = shallowRef<InstanceType<typeof Popup>>()
const mode = ref('add')
const showDialog = ref(false)
const personnel = ref(null)
//
@ -161,265 +176,53 @@ const popupTitle = computed(() => {
//
const formData = reactive({
id: '',
related_contract_id: '',
contract_type: '',
contract_name: '',
contract_code: '',
part_a: '',
part_a_contact: '',
part_a_address: '',
part_b: '',
part_b_signatory: '',
business_nature: '',
industry_nature: '',
fund_sources: '',
const_area: '',
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: '',
supervise_dept: '',
project_manager: '',
implement_method: '',
seal_name: '',
is_limit: '',
limit_num: '',
file_type: '',
seal_num: '',
seal_user: '',
plance_seal: '',
send_date: '',
mailing_number: '',
review_status: '',
status: '',
create_user: '',
"contract_name": "",
"related_contract_id": '',
"part_a": '',
"part_a_contact": "",
"part_a_address": "",
"part_b": "",
"part_b_signatory": '',
"business_nature": '',
"signed_amount": '',
"payment_method": "",
"content": "",
"annex": [],
"signed_dept": '',
"signed_head": '',
"seal_name": '',
"is_limit": '',
"limit_num": '',
"file_type": '',
"seal_num": '',
"seal_user": '',
"plance_seal": '',
"send_date": "",
"mailing_number": "",
"create_user": "",
"create_time": ""
})
let value;
const userclick = async (val) => {
showDialog.value = true
value = val
await nextTick()
personnel.value.open()
}
//
const submituser = (e: any) => {
formData[value + '_name'] = e.name
formData.seal_user = e.id
showDialog.value = false
}
//
const formRules = reactive<any>({
related_contract_id: [{
required: true,
message: '请输入关联主合同id',
trigger: ['blur']
}],
contract_type: [{
required: true,
message: '请输入合同类型 0-主合同 1-框架协议 2-补充协议',
trigger: ['blur']
}],
contract_name: [{
required: true,
message: '请输入合同名称',
trigger: ['blur']
}],
contract_code: [{
required: true,
message: '请输入合同编号',
trigger: ['blur']
}],
part_a: [{
required: true,
message: '请输入甲方签约单位',
trigger: ['blur']
}],
part_a_contact: [{
required: true,
message: '请输入联系人',
trigger: ['blur']
}],
part_a_address: [{
required: true,
message: '请输入业主地址',
trigger: ['blur']
}],
part_b: [{
required: true,
message: '请输入乙方签约单位',
trigger: ['blur']
}],
part_b_signatory: [{
required: true,
message: '请输入乙方签约人',
trigger: ['blur']
}],
business_nature: [{
required: true,
message: '请输入业务性质',
trigger: ['blur']
}],
industry_nature: [{
required: true,
message: '请输入行业性质',
trigger: ['blur']
}],
fund_sources: [{
required: true,
message: '请输入资金来源',
trigger: ['blur']
}],
const_area: [{
required: true,
message: '请输入建设区域',
trigger: ['blur']
}],
agreement_nature: [{
required: true,
message: '请输入协议性质',
trigger: ['blur']
}],
project_money: [{
required: true,
message: '请输入工程总投资',
trigger: ['blur']
}],
project_scale: [{
required: true,
message: '请输入工程规模及概况',
trigger: ['blur']
}],
signed_amount: [{
required: true,
message: '请输入签订金额',
trigger: ['blur']
}],
signed_rate: [{
required: true,
message: '请输入合同签订费率',
trigger: ['blur']
}],
service_duration: [{
required: true,
message: '请输入合同服务工期',
trigger: ['blur']
}],
start_date: [{
required: true,
message: '请输入计划开始日期',
trigger: ['blur']
}],
end_date: [{
required: true,
message: '请输入计划结束日期',
trigger: ['blur']
}],
performance_money: [{
required: true,
message: '请输入履约金',
trigger: ['blur']
}],
performance_money_expiration_time: [{
required: true,
message: '请输入履约金到期时间',
trigger: ['blur']
}],
payment_method: [{
required: true,
message: '请输入合同付款方式',
trigger: ['blur']
}],
content: [{
required: true,
message: '请输入合同主要内容',
trigger: ['blur']
}],
signed_dept: [{
required: true,
message: '请输入签订部门',
trigger: ['blur']
}],
signed_head: [{
required: true,
message: '请输入签订负责人',
trigger: ['blur']
}],
supervise_dept: [{
required: true,
message: '请输入监管部门',
trigger: ['blur']
}],
project_manager: [{
required: true,
message: '请输入项目总监/经理',
trigger: ['blur']
}],
implement_method: [{
required: true,
message: '请输入实施方式',
trigger: ['blur']
}],
seal_name: [{
required: true,
message: '请输入盖章名称',
trigger: ['blur']
}],
is_limit: [{
required: true,
message: '请输入是否限制',
trigger: ['blur']
}],
limit_num: [{
required: true,
message: '请输入限制次数',
trigger: ['blur']
}],
file_type: [{
required: true,
message: '请输入文件类型',
trigger: ['blur']
}],
seal_num: [{
required: true,
message: '请输入盖章份数',
trigger: ['blur']
}],
seal_user: [{
required: true,
message: '请输入盖章人',
trigger: ['blur']
}],
plance_seal: [{
required: true,
message: '请输入骑缝盖章',
trigger: ['blur']
}],
send_date: [{
required: true,
message: '请输入发出日期',
trigger: ['blur']
}],
mailing_number: [{
required: true,
message: '请输入邮寄编号',
trigger: ['blur']
}],
review_status: [{
required: true,
message: '请输入评审状态 0-待移交 1-已移交',
trigger: ['blur']
}],
status: [{
required: true,
message: '请输入立项状态 0-待立项 1-已立项',
trigger: ['blur']
}],
create_user: [{
required: true,
message: '请输入录入人',
trigger: ['blur']
}]
})

View File

@ -40,39 +40,7 @@
<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" show-overflow-tooltip />
<!-- <el-table-column label="行业性质" prop="industry_nature" show-overflow-tooltip />
<el-table-column label="资金来源" prop="fund_sources" show-overflow-tooltip />
<el-table-column label="建设区域" prop="const_area" 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_scale" show-overflow-tooltip />
<el-table-column label="签订金额" prop="signed_amount" show-overflow-tooltip />
<el-table-column label="合同签订费率" prop="signed_rate" show-overflow-tooltip />
<el-table-column label="合同服务工期" prop="service_duration" 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="performance_money" show-overflow-tooltip />
<el-table-column label="履约金到期时间" prop="performance_money_expiration_time" show-overflow-tooltip />
<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 }">
<el-button v-perms="['marketing.marketing_contract/edit']" type="primary" link

View File

@ -48,8 +48,10 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="下班时间" prop="work_end_time">
<el-form-item label="下班时间" prop="work_end_time" :rules="{
validator: chekcDate,
trigger: ['change']
}">
<el-time-select v-model="formData.work_end_time" start="06:30" step="00:15" end="23:30"
placeholder="请选择" class="flex-1 flex" />
</el-form-item>
@ -174,6 +176,14 @@ const popupTitle = computed(() => {
return mode.value == 'edit' ? '编辑考勤明细' : '新增考勤明细'
})
const chekcDate = (rule: any, value: any, callback: any) => {
if (new Date('2024-4-9 ' + formData.work_end_time) < new Date('2024-4-9 ' + formData.work_start_time)) {
callback(new Error('下班时间时间不能早于上班时间'))
} else {
callback()
}
}
//
const formRules = reactive<any>({

View File

@ -253,12 +253,16 @@ const getDetail = async (row: Record<string, any>) => {
//
const handleSubmit = async () => {
await formRef.value?.validate()
const data = cloneDeep({ ...formData, })
data.attendance_detail.forEach(item => {
item.work_start_time = item.work_start_time ? formData.attendance_date + ` ${item.work_start_time}` : ""
item.work_end_time = item.work_end_time ? formData.attendance_date + ` ${item.work_end_time}` : ""
})
// data.attendance_detail.forEach(item => {
// item.work_start_time = item.work_start_time ? formData.attendance_date + ` ${item.work_start_time}` : ""
// item.work_end_time = item.work_end_time ? formData.attendance_date + ` ${item.work_end_time}` : ""
// })
console.log(data)
mode.value == 'edit'
? await attendanceRecordEdit(data)
: await attendanceRecordAdd(data)

View File

@ -37,7 +37,10 @@
</el-col>
<el-col :span="8">
<el-form-item label="退款日期" prop="refund_date">
<el-form-item label="退款日期" prop="refund_date" :rules="{
validator: chekcDate,
trigger: ['blur']
}">
<el-date-picker class="flex-1 !flex" v-model="formData.refund_date" clearable type="date"
value-format="YYYY-MM-DD" placeholder="请选择退款日期">
</el-date-picker>
@ -206,6 +209,15 @@ const formData = reactive({
})
const chekcDate = (rule: any, value: any, callback: any) => {
if (new Date(formData.refund_date) < new Date(bidding_time.value)) {
callback(new Error('退款日期不能早于投标时间'))
} else {
callback()
}
}
//
const formRules = reactive<any>({

View File

@ -54,18 +54,17 @@
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="合格率" prop="pass_rate">
<el-input v-model="formData.pass_rate" type="number" clearable placeholder="请输入合格率" />
<el-form-item label="合格率(%)" prop="pass_rate">
<el-input-number v-model="formData.pass_rate" :min="0" :max="100" class="flex flex-1"
placeholder="偏差范围为0-100" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="允许偏差" prop="deviation">
<el-input v-model="formData.deviation" type="number" clearable placeholder="请输入允许偏差" />
<el-input-number v-model="formData.deviation" :min="1" :max="200" class="flex flex-1"
placeholder="偏差范围为1-200" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="附件">

View File

@ -39,7 +39,7 @@
<el-table-column label="安全目标" prop="target" show-overflow-tooltip />
<el-table-column label="基本要求" prop="require" show-overflow-tooltip />
<el-table-column label="目标规范" prop="target_standard" show-overflow-tooltip />
<el-table-column label="合格率" prop="pass_rate" show-overflow-tooltip />
<el-table-column label="合格率(%)" prop="pass_rate" show-overflow-tooltip />
<el-table-column label="允许偏差" prop="deviation" show-overflow-tooltip />
<el-table-column label="操作" width="170" fixed="right">
<template #default="{ row }">

View File

@ -1,7 +1,6 @@
<template>
<div class="edit-popup">
<popup ref="popupRef" :title="popupTitle" :async="true" width="60vw" @confirm="handleSubmit"
@close="handleClose">
<popup ref="popupRef" :title="popupTitle" :async="true" width="60vw" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
<el-row>
<el-col :span="8">
@ -12,17 +11,16 @@
</el-col>
<el-col :span="8">
<el-form-item label="分部分项工程" prop="partial_project">
<el-select class="flex-1" v-model="formData.partial_project" clearable
placeholder="请选择分部分项工程">
<el-option v-for="(item, index) in dictData.partial_project" :key="index"
:label="item.name" :value="parseInt(item.value)" />
<el-select class="flex-1" v-model="formData.partial_project" clearable placeholder="请选择分部分项工程">
<el-option v-for="(item, index) in dictData.partial_project" :key="index" :label="item.name"
:value="parseInt(item.value)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="归属年月" prop="attribution_date">
<el-date-picker class="flex-1 !flex" v-model="formData.attribution_date" clearable
type="month" value-format="YYYY-MM" placeholder="请选择日期">
<el-date-picker class="flex-1 !flex" v-model="formData.attribution_date" clearable type="month"
value-format="YYYY-MM" placeholder="请选择日期">
</el-date-picker>
</el-form-item>
</el-col>
@ -99,7 +97,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检查时间">
<el-form-item label="检查时间" prop="check_time">
<el-date-picker class="flex-1 !flex" v-model="formData.check_time" clearable
value-format="YYYY-MM-DD" placeholder="选择检查时间">
</el-date-picker>
@ -210,6 +208,16 @@ const customEvent = (e) => {
formData.project_name = e.project_name
showDialog.value = false
}
const chekcDate = (rule: any, value: any, callback: any) => {
if (new Date(formData.check_time) < new Date(formData.actual_construction_time)) {
callback(new Error('检查时间时间不能早于实际开工时间'))
} else {
callback()
}
}
//
const formRules = reactive<any>({
project_id: [{
@ -271,6 +279,10 @@ const formRules = reactive<any>({
required: true,
message: '请输入检查时间',
trigger: ['blur']
},
{
validator: chekcDate,
trigger: ['blur']
}],
problems_rectification: [{
required: true,