add
This commit is contained in:
parent
3bdadbd2bb
commit
d5c5e0268d
dist.rarstats.html
src/views
bid_bidding_decision
bid_buy_bidding_document
quotation
supervision_material_parallel_testing
supervision_witness_sampling
BIN
dist.rar
Normal file
BIN
dist.rar
Normal file
Binary file not shown.
@ -5,42 +5,46 @@
|
||||
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目名称" prop="project_id"
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]"
|
||||
<el-form-item label="项目名称" :rules="[{ required: true, message: '不可为空', trigger: 'change' }]"
|
||||
@click="showDialog = true">
|
||||
<el-input v-model="project_name" readonly clearable placeholder="选择项目"
|
||||
:disabled="project" />
|
||||
<el-input v-model="project_name" readonly clearable placeholder="选择项目" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目编码" prop="project_id"
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
|
||||
<el-form-item label="项目编码">
|
||||
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写" />
|
||||
</el-form-item></el-col>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="客户名称" prop="project_id"
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
|
||||
<el-form-item label="客户名称">
|
||||
<el-input v-model="matsname" clearable disabled placeholder="系统自动填写" />
|
||||
</el-form-item></el-col><el-col :span="8">
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目估算" prop="project_estimation"
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-input v-model="formData.project_estimation" clearable placeholder="请输入项目估算"
|
||||
type="number" />
|
||||
</el-form-item></el-col><el-col :span="24">
|
||||
<el-form-item label="招标项目资金来源" label-width="130px" prop="bidding_project_fund_source">
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目资金来源" label-width="130px" prop="bidding_project_fund_source">
|
||||
<el-radio-group v-model="formData.bidding_project_fund_source" placeholder="请选择招标项目资金来源">
|
||||
<el-radio v-for="(item, index) in dictData.construction_funds_sources" :key="index"
|
||||
:label="parseInt(item.value)">
|
||||
{{ item.name }}
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item></el-col><el-col :span="8">
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="投标时间" prop="bidding_time">
|
||||
<!-- <el-input v-model="formData.bidding_time" clearable placeholder="请输入投标时间" />
|
||||
-->
|
||||
<el-date-picker v-model="formData.bidding_time" format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD" placeholder="请选择投标时间" clearable></el-date-picker>
|
||||
</el-form-item></el-col><el-col :span="8">
|
||||
value-format="YYYY-MM-DD" placeholder="请选择投标时间" class="!flex flex-1"
|
||||
clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="招标方式" prop="bid_type">
|
||||
<el-radio-group v-model="formData.bid_type" placeholder="请选择招标方式">
|
||||
<el-radio v-for="(item, index) in dictData.bidding_method" :key="index"
|
||||
@ -48,10 +52,14 @@
|
||||
{{ item.name }}
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item></el-col><el-col :span="8">
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="竞争对手" prop="competitor">
|
||||
<el-input v-model="formData.competitor" clearable placeholder="请输入竞争对手" />
|
||||
</el-form-item></el-col><el-col :span="24">
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="是否需要保证金" prop="is_margin"
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
|
||||
<el-radio-group v-model="formData.is_margin" placeholder="请选择是否需要保证金">
|
||||
@ -60,21 +68,25 @@
|
||||
{{ item.name }}
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item></el-col><el-col :span="8">
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="保证金金额" prop="margin_amount">
|
||||
<el-input v-model="formData.margin_amount" clearable placeholder="请输入保证金金额" />
|
||||
</el-form-item></el-col><el-col :span="8">
|
||||
<el-form-item label="开标日期" prop="bid_opening_date">
|
||||
<!-- <el-input v-model="formData.bid_opening_date" clearable placeholder="请输入开标日期" />
|
||||
-->
|
||||
<el-date-picker v-model="formData.bid_opening_date" format="YYYY-MM-DD"
|
||||
<el-date-picker class="!flex flex-1" v-model="formData.bid_opening_date" format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD" placeholder="请输入开标日期" clearable></el-date-picker>
|
||||
</el-form-item></el-col><el-col :span="8">
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="保证金退还时间" prop="margin_amount_return_date">
|
||||
<!-- <el-input v-model="formData.margin_amount_return_date" clearable placeholder="请输入保证金退还时间" /> -->
|
||||
<el-date-picker v-model="formData.margin_amount_return_date" format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD" placeholder="请输入保证金退还时间" clearable></el-date-picker>
|
||||
</el-form-item></el-col><el-col :span="24">
|
||||
class="!flex flex-1" value-format="YYYY-MM-DD" placeholder="请输入保证金退还时间"
|
||||
clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="有无内部资源" prop="is_internal_resources">
|
||||
<el-radio-group v-model="formData.is_internal_resources" placeholder="请选择有无内部资源">
|
||||
<el-radio v-for="(item, index) in dictData.whether_status" :key="index"
|
||||
@ -82,25 +94,28 @@
|
||||
{{ item.name }}
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item></el-col>
|
||||
|
||||
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目把握度" label-width="130px" prop="project_assurance">
|
||||
|
||||
<el-select v-model="formData.project_assurance" clearable placeholder="请选择项目把握度">
|
||||
<el-select v-model="formData.project_assurance" clearable placeholder="请选择项目把握度"
|
||||
class="flex-1">
|
||||
<el-option v-for="(item, index) in dictData.project_assurance" :key="index"
|
||||
:label="item.name" :value="parseInt(item.value)" />
|
||||
</el-select>
|
||||
</el-form-item></el-col>
|
||||
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="招标项目概况" prop="bid_project_overview">
|
||||
<el-input v-model="formData.bid_project_overview" clearable placeholder="请输入招标项目概况" />
|
||||
</el-form-item></el-col><el-col :span="8">
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目简介" prop="project_desc">
|
||||
<el-input v-model="formData.project_desc" clearable placeholder="请输入项目简介" />
|
||||
</el-form-item></el-col><el-col :span="24">
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="16">
|
||||
<el-form-item label="附件">
|
||||
<el-upload
|
||||
accept="doc, docx, xls, xlsx, ppt, pptx, pdf, txt, zip, rar, tar, jpg, png, gif, jpeg, webp, wmv, avi, mpg, mpeg, 3gp, mov, mp4, flv, f4v, rmvb, mkv"
|
||||
@ -111,7 +126,6 @@
|
||||
上传
|
||||
</el-button>
|
||||
</el-upload>
|
||||
|
||||
<div>
|
||||
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
|
||||
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start"
|
||||
@ -120,9 +134,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</el-form-item></el-col>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<reviewprocess />
|
||||
|
@ -63,12 +63,14 @@
|
||||
<el-table-column label="项目把握度" width="85" prop="project_assurance" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="160" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<!-- <el-button v-perms="['bid.bid_bidding_decision/edit']" type="primary" link @click="handleEdit(row)">
|
||||
<el-button v-perms="['bid.bid_bidding_decision/edit']" type="primary" link
|
||||
@click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button> -->
|
||||
<!-- <el-button v-perms="['bid.bid_bidding_decision/delete']" type="danger" link @click="handleDelete(row.id)">
|
||||
</el-button>
|
||||
<el-button v-perms="['bid.bid_bidding_decision/delete']" type="danger" link
|
||||
@click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button> -->
|
||||
</el-button>
|
||||
<el-button v-perms="['bid.bid_bidding_decision/detail']" link @click="handledetail(row)">
|
||||
详情
|
||||
</el-button>
|
||||
@ -88,8 +90,9 @@
|
||||
<script lang="ts" setup name="bidBiddingDecisionLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { apiBidBiddingDecisionLists, apiBidBiddingDecisionDetail } from '@/api/bid_bidding_decision'
|
||||
import { apiBidBiddingDecisionLists, apiBidBiddingDecisionDetail, apiBidBiddingDecisionDelete } from '@/api/bid_bidding_decision'
|
||||
import { apiProjectSearch } from '@/api/project'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './edit.vue'
|
||||
import DetailPopup from './detail.vue'
|
||||
const detailRef = shallowRef<InstanceType<typeof DetailPopup>>()
|
||||
@ -141,6 +144,25 @@ const handledetail = async (data: any) => {
|
||||
detailRef.value?.open()
|
||||
detailRef.value?.setFormData(res)
|
||||
}
|
||||
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
let res = await apiBidBiddingDecisionDetail({ id: data.id })
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(res)
|
||||
}
|
||||
|
||||
// 删除
|
||||
const handleDelete = async (id: number | any[]) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiBidBiddingDecisionDelete({ id })
|
||||
getLists()
|
||||
}
|
||||
|
||||
|
||||
|
||||
getLists()
|
||||
import { useRoute } from "vue-router";
|
||||
const route = useRoute()
|
||||
|
@ -31,7 +31,8 @@
|
||||
<el-form-item label="投标公司名称" prop="bid_company_name"
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-input v-model="formData.bid_company_name" clearable placeholder="请输入投标公司名称" />
|
||||
</el-form-item></el-col>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="投标决策信息" prop="bid_decision_id"
|
||||
|
@ -36,9 +36,7 @@
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
<!-- <el-button v-perms="['bid.bid_buy_bidding_document/delete']" :disabled="!selectData.length" @click="handleDelete(selectData)">
|
||||
删除
|
||||
</el-button> -->
|
||||
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
@ -60,12 +58,14 @@
|
||||
|
||||
<el-table-column label="操作" width="160" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<!-- <el-button v-perms="['bid.bid_buy_bidding_document/edit']" type="primary" link @click="handleEdit(row)">
|
||||
<el-button v-perms="['bid.bid_buy_bidding_document/edit']" type="primary" link
|
||||
@click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button> -->
|
||||
<!-- <el-button v-perms="['bid.bid_buy_bidding_document/delete']" type="danger" link @click="handleDelete(row.id)">
|
||||
</el-button>
|
||||
<el-button v-perms="['bid.bid_buy_bidding_document/delete']" type="danger" link
|
||||
@click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button> -->
|
||||
</el-button>
|
||||
<el-button v-perms="['bid.bid_buy_bidding_document/detail']" link
|
||||
@click="handledetail(row)">
|
||||
详情
|
||||
@ -133,21 +133,21 @@ const handleAdd = async () => {
|
||||
editRef.value?.open('add')
|
||||
}
|
||||
|
||||
// // 编辑
|
||||
// const handleEdit = async (data: any) => {
|
||||
// let res = await apiBidBuyBiddingDocumentDetail({ id: data.id })
|
||||
// showEdit.value = true
|
||||
// await nextTick()
|
||||
// editRef.value?.open('edit')
|
||||
// editRef.value?.setFormData(res)
|
||||
// }
|
||||
// 编辑
|
||||
const handleEdit = async (data: any) => {
|
||||
let res = await apiBidBuyBiddingDocumentDetail({ id: data.id })
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(res)
|
||||
}
|
||||
|
||||
// // 删除
|
||||
// const handleDelete = async (id: number | any[]) => {
|
||||
// await feedback.confirm('确定要删除?')
|
||||
// await apiBidBuyBiddingDocumentDelete({ id })
|
||||
// getLists()
|
||||
// }
|
||||
// 删除
|
||||
const handleDelete = async (id: number | any[]) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiBidBuyBiddingDocumentDelete({ id })
|
||||
getLists()
|
||||
}
|
||||
//详情
|
||||
const handledetail = async (data: any) => {
|
||||
let res = await apiBidBuyBiddingDocumentDetail({ id: data.id })
|
||||
@ -158,8 +158,8 @@ const handledetail = async (data: any) => {
|
||||
detailRef.value?.setFormData(res)
|
||||
}
|
||||
|
||||
//获取项目
|
||||
|
||||
//获取项目
|
||||
const projectlist = async () => {
|
||||
let res = await apiProjectLists({ page_no: 1, page_size: 15 })
|
||||
projectList.value = res.lists
|
||||
@ -173,4 +173,3 @@ if (route.query?.listId) {
|
||||
projectlist()
|
||||
getLists()
|
||||
</script>
|
||||
|
||||
|
@ -31,9 +31,6 @@
|
||||
formData.amount_including_tax
|
||||
|
||||
}}</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="订单金额大写" label-align="left" align="left" label-class-name="my-label"> {{ formData.competitive_power
|
||||
}}</el-descriptions-item> -->
|
||||
|
||||
<el-descriptions-item label="运费" label-align="left" align="left" label-class-name="my-label"> {{
|
||||
formData.freight
|
||||
}}</el-descriptions-item>
|
||||
@ -45,8 +42,6 @@
|
||||
<el-descriptions-item label="合计金额" label-align="left" align="left" label-class-name="my-label">
|
||||
{{
|
||||
formData.total_amount }}</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="合计金额大写" label-align="left" align="left" label-class-name="my-label"> {{ formData.competitor_disadvantages
|
||||
}}</el-descriptions-item> -->
|
||||
<el-descriptions-item label="客户需求" label-align="left" align="left" label-class-name="my-label">
|
||||
{{
|
||||
formData.customer_require
|
||||
|
@ -7,7 +7,7 @@
|
||||
<el-col :span="8">
|
||||
<el-form-item label="客户名称" prop="custom_id"
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'change' }]">
|
||||
<el-input v-model="customer_name" clearable placeholder="点击选择客户" readonly
|
||||
<el-input v-model="formData.custom_name" clearable placeholder="点击选择客户" readonly
|
||||
@click="showDialog = true" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -213,7 +213,6 @@ const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const mode = ref('add')
|
||||
const showDialog = ref(false)
|
||||
const showDialog1 = ref(false)
|
||||
const customer_name = ref('')
|
||||
|
||||
|
||||
// 弹窗标题
|
||||
@ -227,6 +226,7 @@ const formData = reactive({
|
||||
id: '',
|
||||
approve_id: 1,
|
||||
custom_id: '',
|
||||
custom_name: "",
|
||||
quotation_date: '',
|
||||
custom_master_name: '',
|
||||
custom_master_phone: '',
|
||||
@ -245,14 +245,13 @@ const formData = reactive({
|
||||
|
||||
const customEvent = (e: any) => {
|
||||
formData.custom_id = e.id;
|
||||
customer_name.value = e.name;
|
||||
formData.custom_name = e.name;
|
||||
formData.custom_master_name = e.master_name
|
||||
formData.custom_master_phone = e.master_phone
|
||||
showDialog.value = false;
|
||||
|
||||
};
|
||||
const customEvent1 = (e: any) => {
|
||||
|
||||
formData.quotation_detail.push({
|
||||
product_id: e.id,
|
||||
product_name: e.name,
|
||||
@ -273,13 +272,12 @@ const customEvent1 = (e: any) => {
|
||||
const formRules = reactive<any>({
|
||||
})
|
||||
|
||||
|
||||
|
||||
const handleDelete = async (row: any) => {
|
||||
if (row.id) await apiQuotationDetailDelete({ id: row.id });
|
||||
// 删除 row
|
||||
const index = formData.quotation_detail.indexOf(row);
|
||||
formData.quotation_detail.splice(index, 1);
|
||||
calcAmount()
|
||||
};
|
||||
|
||||
// 获取详情
|
||||
@ -337,7 +335,7 @@ const getTaxText = (index: number) => {
|
||||
}
|
||||
|
||||
// 计算价格
|
||||
const calcAmount = (index: number) => {
|
||||
const calcAmount = () => {
|
||||
let table = formData.quotation_detail
|
||||
// 通过含税单价tax_inclusive_price和税率tax_rate_text计算列表每行的含税金额tax_inclusive_amount,不含税金额tax_exclusive_amount,遍历列表累加含税金额得出总的含税金额
|
||||
formData.amount_including_tax = 0
|
||||
@ -361,10 +359,6 @@ const total_amount_daxie = computed(() => {
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData,
|
||||
|
@ -53,7 +53,7 @@
|
||||
<script lang="ts" setup name="supervisionWitnessSamplingEdit">
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiSupervisionMaterialParallelTestingAdd, apiSupervisionMaterialParallelTestingEdit } from '@/api/supervision_material_parallel_testing'
|
||||
import { apiSupervisionMaterialParallelTestingAdd, apiSupervisionMaterialParallelTestingEdit, apisupervision_material_parallel_testing_detail } from '@/api/supervision_material_parallel_testing'
|
||||
import { apisupervision_material_entry_detail } from '@/api/supervision_material_entry'
|
||||
import type { PropType } from 'vue'
|
||||
import { supervision_material_entry } from "@/components/dialogTable/dialogTableConfig"
|
||||
@ -190,7 +190,7 @@ const setFormData = async (data: Record<any, any>) => {
|
||||
}
|
||||
}
|
||||
|
||||
let res = await apisupervision_material_entry_detail({ material_entry_id: formData.material_entry_id })
|
||||
let res = await apisupervision_material_parallel_testing_detail({ material_parallel_testing_id: formData.id })
|
||||
formData.detail = res.lists
|
||||
}
|
||||
|
||||
@ -200,7 +200,9 @@ const setFormData = async (data: Record<any, any>) => {
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
data.detail = formData.detail.map(item => ({ material_entry_detail_id: item.id, num: item.num }))
|
||||
data.detail = (mode.value == 'edit'
|
||||
? formData.detail.map(item => ({ material_entry_detail_id: item.material_entry_detail_id, id: item.id, num: item.num }))
|
||||
: formData.detail.map(item => ({ material_entry_detail_id: item.id, num: item.num })))
|
||||
mode.value == 'edit'
|
||||
? await apiSupervisionMaterialParallelTestingEdit(data)
|
||||
: await apiSupervisionMaterialParallelTestingAdd(data)
|
||||
|
@ -229,7 +229,9 @@ const getDetail = async (row: Record<string, any>) => {
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData, }
|
||||
data.sampling_detail = formData.sampling_detail.map(item => ({ material_entry_detail_id: item.id, num: item.num }))
|
||||
data.sampling_detail = (mode.value == 'edit'
|
||||
? formData.sampling_detail.map(item => ({ material_entry_detail_id: item.material_entry_detail_id, id: item.id, num: item.num }))
|
||||
: formData.sampling_detail.map(item => ({ material_entry_detail_id: item.id, num: item.num })))
|
||||
mode.value == 'edit'
|
||||
? await apiSupervisionWitnessSamplingEdit(data)
|
||||
: await apiSupervisionWitnessSamplingAdd(data)
|
||||
|
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user