This commit is contained in:
zmj 2024-02-03 17:03:59 +08:00
parent 27af0a96f7
commit 4b0840a5a5
28 changed files with 349 additions and 112 deletions

View File

@ -1,49 +1,109 @@
<template>
<el-row>
<el-col :span="24">
<el-form-item label="选择审批流程" prop="mailing_no">
<el-select class="flex-1" v-model="a" clearable placeholder="选择审批流程">
<el-option v-for="(item, index) in flowList" :key="index" :label="item.name" :value="item.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="审批流程" prop="mailing_no">
<el-steps :active="2" style="width:100%" finish-status="success" align-center>
<el-step title="第一级审批" description="当前部门负责人" />
<el-step title="第二级审批" description="当前部门负责人" />
<el-step title="第三级审批(会签)" description="当前部门负责人" />
</el-steps>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="抄送人" prop="mailing_no">
<el-tag class="ml-2">究极张伟</el-tag>
<el-tag class="ml-2"> 究极张伟</el-tag>
<el-tag class="ml-2">究极张伟</el-tag>
</el-form-item>
</el-col>
</el-row>
<el-card>
<template #header>
<div class="card-header">
<span>审批流程</span>
</div>
</template>
<div>
<el-row>
<el-col :span="8">
<el-form-item label="审批分类">
<el-select class="flex-1" v-model="formData.flow_type" clearable placeholder="请选择所属分类"
@change="getFlowTypeList">
<el-option v-for="(item, index) in flowTyprList" :key="index" :label="item.title"
:value="(item.id)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="审批流程" prop="flow_cate">
<el-select class="flex-1" v-model="formData.flow_path" :disabled="!formData.flow_type" clearable
@change="getDetail" placeholder="请选择审批类型">
<el-option v-for="(item, index) in flowTypeList" :key="index" :label="item.name"
:value="parseInt(item.id)" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="flowDetail.id">
<el-col :span="24">
<el-form-item label="审批流程" prop="mailing_no">
<el-steps align-center :active="flowDetail.flow_list.length">
<el-step :title="`第${numberToChinese(index + 1)}级审批`" :description="getDescr(item)"
v-for="(item, index) in flowDetail.flow_list" :key="idnex" />
</el-steps>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="flowDetail.id">
<el-col :span="24">
<el-form-item label="抄送人" prop="mailing_no">
<el-tag v-for="(item, index) in flowDetail.copy_uids" :key="index" class="ml-2">{{ item.name
}}</el-tag>
</el-form-item>
</el-col>
</el-row>
</div>
</el-card>
</template>
<script setup>
import { ref, reactive } from 'vue'
const a = ref('')
const flowList = reactive([
{
name: "究极张伟",
value: 1
},
{
name: "究极张2",
value: 2
},
])
import { ref, reactive, defineProps } from 'vue'
import { apiFlowTypeLists, } from '@/api/flow_type'
import { apiFlowLists, apiFlowDetail, apiFlowDelete } from '@/api/flow'
const emits = defineEmits(["confirm"]);
const formData = reactive({
flow_type: "",
flow_path: ""
})
</script>
<style lang="scss" scoped></style>
const flowTyprList = ref([])
const getFlowtypeList = async () => {
let res = await apiFlowTypeLists()
flowTyprList.value = res.lists
console.log(res, "res")
}
//
const flowTypeList = ref([])
const getFlowTypeList = async () => {
if (!formData.flow_type) return
formData.flow_path = ''
flowTypeList.value = []
let res = await apiFlowLists({
flow_type: formData.flow_type,
status: 2
})
Object.assign(flowTypeList.value, res.lists)
}
//
const flowDetail = ref({})
const getDetail = async () => {
let res = await apiFlowDetail({ id: formData.flow_path })
flowDetail.value = res
emits("confirm", formData);
}
const getDescr = (item) => {
if (item.flow_step == 1) return "当前部门负责人"
else {
return (item.flow_user.map(val => ([val.name]))).join(',')
}
}
const numberToChinese = (num) => {
let chineseNum = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"];
return chineseNum[num];
}
//
getFlowtypeList()
</script>

View File

@ -209,15 +209,10 @@
</el-col>
</el-row>
</el-card>
<el-card>
<template #header>
<div class="card-header">
<span>审批流程</span>
</div>
</template>
<FlowProcess></FlowProcess>
</el-card>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
<el-dialog v-model="showDialog" title="选择客户" width="70%">
<customDialog @customEvent="customEvent"></customDialog>
@ -360,10 +355,13 @@ const formData = reactive({
phone: "",
mailing_time: "",
mailing_type: "",
mailing_no: ""
mailing_no: "",
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
//
const formRules = reactive<any>({

View File

@ -232,6 +232,10 @@
</template>
</el-table-column>
</el-table>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
</div>
</el-form>
<el-dialog v-model="showDialog" title="选择标书" width="70%">
@ -390,9 +394,16 @@ const formData = reactive({
business_contract_deviation: '',
business_contract_deviation_handling_plan: '',
business_contract_deviation_annex: [],
quotation_detail: []
})
quotation_detail: [],
approve_detail: {
flow_type: "",
flow_path: ""
}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
watch(tableData.value, (newVal, oldVal) => {
formData.business_review_total_amount = 0
tableData.value.forEach(item => {

View File

@ -121,6 +121,10 @@
</el-form-item>
</el-col>
</el-row>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
<el-dialog v-model="showDialog" title="选择投标决策" width="70%">
<biddingDecisionDialog @customEvent="customEvent" :project_id="project?.id || ''">
</biddingDecisionDialog>
@ -231,9 +235,12 @@ const formData = reactive({
"annex": "",
"deposit_bank": "",
"account_name": "",
"account": ""
"account": "",
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
//
const formRules = reactive<any>({

View File

@ -144,6 +144,10 @@
</div>
</el-form-item></el-col>
</el-row>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
</el-form>
<el-dialog v-model="showDialog" title="选择合同" width="70%">
<proontractTable @customEvent="customEvent" :project_id="project?.id || ''"></proontractTable>
@ -251,6 +255,9 @@ const formData = reactive({
negotiation_quotation: [],
negotiation_basis: [],
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
if (props.project) {
console.log(props.project)

View File

@ -199,6 +199,12 @@
</el-col>
</el-row>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
<el-dialog v-model="showDialog" title="选择供应商" width="70%">
<suppliertable @customEvent="customEvent" :project_id="project?.id || ''"></suppliertable>
</el-dialog>
@ -397,9 +403,12 @@ const formData = reactive({
"deposit_bank": "",
"account_name": "",
"account": ""
}
},
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
//
const formRules = reactive<any>({

View File

@ -117,7 +117,10 @@
</el-col>
</el-row>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
<el-dialog v-model="showDialog" title="选择供应商" width="70%">
<supplier @customEvent="customEvent" :project_id="project?.id || ''"></supplier>
</el-dialog>
@ -257,9 +260,12 @@ const formData = reactive({
status: '',
remark: "",
annex: [],
contract_cate: 1
contract_cate: 1,
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
//
const formRules = reactive<any>({

View File

@ -152,6 +152,11 @@
</el-form-item>
</el-col>
</el-row>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
<el-dialog v-model="showDialog" title="选择供应商" width="70%">
<suppliertable @customEvent="customEvent" :project_id="project?.id || ''"></suppliertable>
</el-dialog>
@ -310,9 +315,12 @@ const formData = reactive({
receipt_date: "",
remark: "",
annex: "",
contract_cate: 1
contract_cate: 1,
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
//
const formRules = reactive<any>({

View File

@ -142,6 +142,10 @@
</el-form-item>
</el-col>
</el-row>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
<el-dialog v-model="showDialog" title="选择供应商" width="70%">
<suppliertable @customEvent="customEvent" :project_id="project?.id || ''"></suppliertable>
</el-dialog>
@ -314,11 +318,14 @@ const formData = reactive({
"deposit_bank": "",
"account_name": "",
"account": ""
}
},
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
//
const formRules = reactive<any>({

View File

@ -141,6 +141,10 @@
</el-row>
<flowProcess @confirm="flowFn" v-if="mode == 'add'" />
<!-- const flowFn=(e: any)=> {
formData.approve_detail = e
} -->
<div v-if="showDialog">
<el-dialog v-model="showDialog" title="选择材料预算" width="70%">
<materialDialog @customEvent="customEvent" :project_id="formData.project_id"></materialDialog>
@ -295,8 +299,11 @@ const formData = reactive({
remark: '',
annex: [],
purchase_request_detail: [],
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
//
const formRules = reactive<any>({

View File

@ -35,7 +35,10 @@
</div>
</div>
</el-form-item>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
</el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%">
<projectDialog @customEvent="customEvent"></projectDialog>
@ -91,9 +94,14 @@ const formData = reactive({
"adjust_amount": "",
"remark": "",
"annex": [],
project_name: ""
project_name: "",
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
const customEvent = (e: any) => {
console.log(e)
formData.project_id = e.id

View File

@ -90,7 +90,10 @@
</el-table>
</div>
</el-col>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
</el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%">
<projectDialog @customEvent="customEvent" :is_budget="1"></projectDialog>
@ -158,8 +161,12 @@ const formData = reactive({
"standard": "",
"remark": ""
}
]
],
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
const customEvent = (e: any) => {
formData.project_id = e.id
formData.project_code = e.project_code

View File

@ -94,7 +94,10 @@
</el-table>
</div>
</el-col>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
</el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%">
<projectDialog @customEvent="customEvent"></projectDialog>
@ -168,8 +171,12 @@ const formData = reactive({
"price": 0,
"remark": ""
}
]
],
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
const customEvent = (e) => {
formData.project_id = e.id
formData.project_code = e.project_code

View File

@ -187,6 +187,10 @@
</el-table>
</div>
</el-col>
<flowProcess @confirm="flowFn" v-if="mode == 'add'" />
<!-- const flowFn=(e: any)=> {
formData.approve_detail = e
} -->
</el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -325,8 +329,12 @@ const formData = reactive({
"deposit_bank": "",
"account_name": "",
"account": ""
}
},
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
//
const handleAvatarSuccess_four = (response: any) => {
// @ts-ignore

View File

@ -90,7 +90,10 @@
</el-table>
</div>
</el-col>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
</el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%">
<projectDialog @customEvent="customEvent" :is_budget="1"></projectDialog>
@ -163,10 +166,13 @@ const formData = reactive({
"remark": ""
}
]
],
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
const customEvent = (e) => {
formData.project_id = e.id

View File

@ -68,6 +68,12 @@
<el-form-item label="开户账号">
<el-input v-model="formData.bank_account.account" readonly />
</el-form-item>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
</el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -132,9 +138,13 @@ const formData = reactive({
"deposit_bank": "",
"account_name": "",
"account": ""
}
},
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
//
const handleAvatarSuccess_four = (response: any) => {
// @ts-ignore

View File

@ -121,6 +121,10 @@
</el-col>
</el-row>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
</el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%">
<projectDialog @customEvent="customEvent"></projectDialog>
@ -173,8 +177,11 @@ const formData = reactive({
material_budget_detail: [],
remark: '',
annex: [],
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
//
const customEvent = (e) => {

View File

@ -53,6 +53,10 @@
</div>
</div>
</el-form-item>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
</el-form>
</popup>
<el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -183,7 +187,11 @@ const formData = reactive({
settlement_date: '',
remark: '',
annex: [],
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
const checkPhone = (rule: any, value: any, callback: (arg0: Error) => any) => {
const phoneReg = /^1[3|4|5|7|8][0-9]{9}$/
// if (!value) {

View File

@ -43,6 +43,10 @@
</div>
</div>
</el-form-item>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
</el-form>
</popup>
<el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -161,24 +165,13 @@ const formData = reactive({
settlement_date: '',
remark: '',
annex: [],
approve_detail: {}
})
const checkPhone = (rule: any, value: any, callback: (arg0: Error) => any) => {
const phoneReg = /^1[3|4|5|7|8][0-9]{9}$/
// if (!value) {
// return callback(new Error(''))
// }
if (value) {
setTimeout(() => {
if (phoneReg.test(value)) {
callback()
} else {
callback(new Error('电话号码格式不正确'))
}
}, 100)
}
const flowFn = (e: any) => {
formData.approve_detail = e
}
//
const amountinput = (e) => {
// console.log(e)

View File

@ -105,6 +105,10 @@
</div>
</el-col>
</el-row>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
</el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%">
<projectDialog @customEvent="customEvent"></projectDialog>
@ -160,7 +164,11 @@ const formData = reactive({
subpackage_budget_detail: [],
remark: '',
annex: [],
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
//
const customEvent = (e) => {

View File

@ -136,6 +136,10 @@
</el-form-item>
</el-col>
</el-row>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
<!-- <el-dialog v-model="showDialog" title="选择客户" width="70%">
<customDialog @customEvent="customEvent"></customDialog>
</el-dialog> -->
@ -439,9 +443,12 @@ const formData = reactive({
budget_list: [],
budget_date: "",
project_manager: "",
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
//
const formRules = reactive<any>({

View File

@ -194,6 +194,10 @@
</el-table>
</div>
</el-col>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
</el-form>
<el-dialog v-model="showDialog" title="选择出差申请单" width="70%">
@ -347,9 +351,12 @@ const formData = reactive({
"deposit_bank": "",
"account_name": "",
"account": ""
}
},
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
//
const handleAvatarSuccess_four = (response: any) => {
// @ts-ignore

View File

@ -60,6 +60,10 @@
</div>
</el-form-item>
</el-col>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
</el-form>
<el-dialog v-model="showDialog" title="选择项目" width="70%">
@ -117,8 +121,12 @@ const formData = reactive({
"reason": "",
"remark": "",
"annex": [],
days: ""
days: "",
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
//
const handleAvatarSuccess_four = (response: any) => {
// @ts-ignore

View File

@ -156,7 +156,10 @@
</el-form-item>
</el-col>
</el-row>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
<el-dialog v-model="showDialog1" title="选择合同" width="70%">
<contractDialog @customEvent="customEvent1" :project_id="project?.id || ''"></contractDialog>
</el-dialog>
@ -303,10 +306,13 @@ const formData = reactive({
bank_account_id: "",
remark: "",
annex: []
annex: [],
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
//
const formRules = reactive<any>({

View File

@ -149,7 +149,10 @@
</el-col>
</el-row>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
<el-dialog v-model="showDialog" title="选择收款银行" width="70%">
<bankaccountDialog @customEvent="customEvent"></bankaccountDialog>
</el-dialog>
@ -280,11 +283,14 @@ const formData = reactive({
"deposit_bank": "",
"account_name": "",
"account": ""
}
},
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
//
const formRules = reactive<any>({

View File

@ -118,7 +118,10 @@
</el-form-item>
</el-col>
</el-row>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
<el-dialog v-model="showDialog" title="选择投标保证金" width="70%">
<bidbondDialog @customEvent="customEvent" :project_id="project?.id || ''"></bidbondDialog>
@ -243,10 +246,13 @@ const formData = reactive({
"deposit_bank": "",
"account_name": "",
"account": ""
}
},
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
//
const formRules = reactive<any>({

View File

@ -99,7 +99,10 @@
</el-row>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
<el-dialog v-model="showDialog1" title="选择合同" width="70%">
<contractDialog @customEvent="customEvent1"></contractDialog>
</el-dialog>
@ -203,10 +206,13 @@ const formData = reactive({
return_status: "",
return_duty_id: '',
remark: "",
annex: []
annex: [],
approve_detail: {}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
//
const formRules = reactive<any>({

View File

@ -143,6 +143,10 @@
</el-form-item>
</el-col>
</el-row>
<flowProcess @confirm="flowFn" v-if="mode == 'add'"></flowProcess>
<!-- const flowFn = (e: any) => {
formData.approve_detail = e
} -->
</el-form>
<el-dialog v-model="showDialog" title="选择分包合同" width="70%">
<procurementTable @customEvent="customEvent" :project_id="project?.id || ''"></procurementTable>
@ -274,11 +278,16 @@ const formData = reactive({
negotiation_content: '',
negotiation_quotation: [],
negotiation_basis: [],
negotiation_content: "",
negotiation_detail: "",
"sign_date": "string",
approve_detail: {
}
})
const flowFn = (e: any) => {
formData.approve_detail = e
}
const customEvent = (e: any) => {
contract_no.value = e.contract_no;
supplier_name.value = e.supplier_name;