合并
This commit is contained in:
@ -8,11 +8,11 @@ VITE_APP_ENV = 'development'
|
|||||||
# 李陈杰 209
|
# 李陈杰 209
|
||||||
# VITE_APP_BASE_API = 'http://192.168.110.209:8899'
|
# VITE_APP_BASE_API = 'http://192.168.110.209:8899'
|
||||||
# 曾涛
|
# 曾涛
|
||||||
VITE_APP_BASE_API = 'http://192.168.110.180:8899'
|
# VITE_APP_BASE_API = 'http://192.168.110.180:8899'
|
||||||
# 罗成
|
# 罗成
|
||||||
# VITE_APP_BASE_API = 'http://192.168.110.213:8899'
|
# VITE_APP_BASE_API = 'http://192.168.110.213:8899'
|
||||||
# 朱银
|
# 朱银
|
||||||
# VITE_APP_BASE_API = 'http://192.168.110.149:8899'
|
VITE_APP_BASE_API = 'http://192.168.110.149:8899'
|
||||||
#曾涛
|
#曾涛
|
||||||
# VITE_APP_BASE_API = 'http://192.168.110.171:8899'
|
# VITE_APP_BASE_API = 'http://192.168.110.171:8899'
|
||||||
|
|
||||||
|
@ -75,3 +75,12 @@ export const getWhetherItExists = (id: string | number): AxiosPromise<ListOfForm
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//模版新增
|
||||||
|
export const addFormalities = (data: any): AxiosPromise<ListOfFormalitiesVO> => {
|
||||||
|
return request({
|
||||||
|
url: '/formalities/formalitiesAreConsolidated/addFormalities',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
@ -63,14 +63,7 @@
|
|||||||
<el-table-column prop="quantity" label="数量" />
|
<el-table-column prop="quantity" label="数量" />
|
||||||
<el-table-column prop="remark" label="单价" align="center">
|
<el-table-column prop="remark" label="单价" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-input-number
|
<span>{{ scope.row.unitPrice }}</span>
|
||||||
:model-value="scope.row.unitPrice"
|
|
||||||
@change="(val) => (scope.row.unitPrice = val)"
|
|
||||||
:precision="2"
|
|
||||||
:step="0.1"
|
|
||||||
:controls="false"
|
|
||||||
v-if="scope.row.quantity && scope.row.quantity != 0"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="price" label="总价" align="center">
|
<el-table-column prop="price" label="总价" align="center">
|
||||||
|
@ -32,6 +32,15 @@
|
|||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="handleExport()" v-hasPermi="['bidding:biddingLimitList:export']">导出excel</el-button>
|
<el-button type="primary" @click="handleExport()" v-hasPermi="['bidding:biddingLimitList:export']">导出excel</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
:disabled="versionObj.status && versionObj.status != 'draft'"
|
||||||
|
@click="handleSave(null, 'all')"
|
||||||
|
v-hasPermi="['tender:billofquantitiesLimitList:edit']"
|
||||||
|
>一键确定</el-button
|
||||||
|
>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
@ -48,7 +57,7 @@
|
|||||||
icon="view"
|
icon="view"
|
||||||
@click="handleViewInfo"
|
@click="handleViewInfo"
|
||||||
v-hasPermi="['bidding:biddingLimitList:getVersionDetail']"
|
v-hasPermi="['bidding:biddingLimitList:getVersionDetail']"
|
||||||
v-if="versionObj.status != 'draft'"
|
v-if="versionObj.status && versionObj.status != 'draft'"
|
||||||
>查看流程</el-button
|
>查看流程</el-button
|
||||||
>
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -66,7 +75,12 @@
|
|||||||
<el-input-number
|
<el-input-number
|
||||||
:disabled="versionObj.status != 'draft'"
|
:disabled="versionObj.status != 'draft'"
|
||||||
:model-value="scope.row.unitPrice"
|
:model-value="scope.row.unitPrice"
|
||||||
@change="(val) => (scope.row.unitPrice = val)"
|
@change="
|
||||||
|
(val) => {
|
||||||
|
scope.row.unitPrice = val;
|
||||||
|
changePrice(scope.row);
|
||||||
|
}
|
||||||
|
"
|
||||||
:precision="2"
|
:precision="2"
|
||||||
:step="0.1"
|
:step="0.1"
|
||||||
:controls="false"
|
:controls="false"
|
||||||
@ -85,7 +99,7 @@
|
|||||||
type="primary"
|
type="primary"
|
||||||
size="small"
|
size="small"
|
||||||
:disabled="versionObj.status != 'draft'"
|
:disabled="versionObj.status != 'draft'"
|
||||||
@click="handleSave(scope.row)"
|
@click="handleSave(scope.row, 'single')"
|
||||||
v-if="scope.row.quantity && scope.row.quantity != 0"
|
v-if="scope.row.quantity && scope.row.quantity != 0"
|
||||||
v-hasPermi="['bidding:biddingLimitList:edit']"
|
v-hasPermi="['bidding:biddingLimitList:edit']"
|
||||||
>确定</el-button
|
>确定</el-button
|
||||||
@ -187,18 +201,21 @@ const getTableData = async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
//修改单价
|
const modifyPrice = new Map();
|
||||||
const handleSave = (row: any) => {
|
|
||||||
|
const changePrice = (row: any) => {
|
||||||
|
modifyPrice.set(row.id, row);
|
||||||
|
// if (!row.unitPrice) {
|
||||||
|
// modifyPrice.delete(row.id);
|
||||||
|
// }
|
||||||
|
};
|
||||||
|
//修改单价 biddingLimitListUpdate
|
||||||
|
const handleSave = (row?: any, type?: any) => {
|
||||||
try {
|
try {
|
||||||
if (!row.unitPrice) {
|
if (type == 'single') {
|
||||||
ElMessage({
|
|
||||||
message: '请输入单价',
|
|
||||||
type: 'warning'
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
biddingLimitListUpdate(row).then((res) => {
|
const list = [{ ...row }];
|
||||||
|
biddingLimitListUpdate(list).then((res) => {
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
message: '修改成功',
|
message: '修改成功',
|
||||||
@ -207,11 +224,30 @@ const handleSave = (row: any) => {
|
|||||||
getTableData();
|
getTableData();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
if (type == 'all') {
|
||||||
|
loading.value = true;
|
||||||
|
const list = [];
|
||||||
|
modifyPrice.forEach((item) => {
|
||||||
|
list.push({ ...item });
|
||||||
|
});
|
||||||
|
biddingLimitListUpdate(list).then((res) => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
ElMessage({
|
||||||
|
message: '修改成功',
|
||||||
|
type: 'success'
|
||||||
|
});
|
||||||
|
getTableData();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
message: '修改失败',
|
message: '修改失败',
|
||||||
type: 'error'
|
type: 'error'
|
||||||
});
|
});
|
||||||
|
} finally {
|
||||||
|
loading.value = false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const tableRef = ref<any>();
|
const tableRef = ref<any>();
|
||||||
|
@ -26,20 +26,39 @@
|
|||||||
<el-table-column prop="name" label="名称" />
|
<el-table-column prop="name" label="名称" />
|
||||||
<el-table-column prop="content" label="内容" />
|
<el-table-column prop="content" label="内容" />
|
||||||
<el-table-column prop="price" label="限价" />
|
<el-table-column prop="price" label="限价" />
|
||||||
<el-table-column prop="plannedBiddingTime" label="计划招标时间" align="center">
|
<el-table-column prop="plannedBiddingTime" align="center">
|
||||||
|
<template #header> <span style="color: red">*</span>计划招标时间 </template>
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-date-picker v-model="scope.row.plannedBiddingTime" type="date" value-format="YYYY-MM-DD" placeholder="选择时间" />
|
<el-date-picker v-model="scope.row.plannedBiddingTime" type="date" value-format="YYYY-MM-DD" placeholder="选择时间" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="price" label="操作" align="center">
|
<el-table-column prop="price" label="操作" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button type="warning" size="small" @click="handleDetail(scope.row)" v-hasPermi="['tender:segmentedIndicatorPlanning:getMore']"
|
<el-button
|
||||||
|
type="warning"
|
||||||
|
icon="view"
|
||||||
|
size="small"
|
||||||
|
link
|
||||||
|
@click="handleDetail(scope.row)"
|
||||||
|
v-hasPermi="['tender:segmentedIndicatorPlanning:getMore']"
|
||||||
>详情</el-button
|
>详情</el-button
|
||||||
>
|
>
|
||||||
<el-button type="primary" size="small" @click="handleSave(scope.row)" v-hasPermi="['tender:segmentedIndicatorPlanning:edit']"
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
icon="edit"
|
||||||
|
size="small"
|
||||||
|
link
|
||||||
|
@click="handleSave(scope.row)"
|
||||||
|
v-hasPermi="['tender:segmentedIndicatorPlanning:edit']"
|
||||||
>确定</el-button
|
>确定</el-button
|
||||||
>
|
>
|
||||||
<el-button type="danger" size="small" @click="delHandle(scope.row)" v-hasPermi="['tender:segmentedIndicatorPlanning:remove']"
|
<el-button
|
||||||
|
type="danger"
|
||||||
|
icon="delete"
|
||||||
|
size="small"
|
||||||
|
link
|
||||||
|
@click="delHandle(scope.row)"
|
||||||
|
v-hasPermi="['tender:segmentedIndicatorPlanning:remove']"
|
||||||
>删除</el-button
|
>删除</el-button
|
||||||
>
|
>
|
||||||
</template>
|
</template>
|
||||||
|
@ -36,13 +36,22 @@
|
|||||||
<el-button type="primary" @click="handleExport()" v-hasPermi="['tender:billofquantitiesLimitList:export']">导出excel</el-button>
|
<el-button type="primary" @click="handleExport()" v-hasPermi="['tender:billofquantitiesLimitList:export']">导出excel</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" v-if="reviewStatus == 'draft'" @click="clickApprovalSheet()">审核</el-button>
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
:disabled="reviewStatus && reviewStatus != 'draft'"
|
||||||
|
@click="handleSave(null, 'all')"
|
||||||
|
v-hasPermi="['tender:billofquantitiesLimitList:edit']"
|
||||||
|
>一键确定</el-button
|
||||||
|
>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" v-if="reviewStatus && reviewStatus == 'draft'" @click="clickApprovalSheet()">审核</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button
|
<el-button
|
||||||
type="warning"
|
type="warning"
|
||||||
icon="view"
|
icon="view"
|
||||||
v-if="reviewStatus != 'draft'"
|
v-if="reviewStatus && reviewStatus != 'draft'"
|
||||||
@click="clickApprovalSheet()"
|
@click="clickApprovalSheet()"
|
||||||
v-hasPermi="['tender:tenderPlanLimitList:getVersionDetail']"
|
v-hasPermi="['tender:tenderPlanLimitList:getVersionDetail']"
|
||||||
>查看流程</el-button
|
>查看流程</el-button
|
||||||
@ -65,6 +74,7 @@
|
|||||||
@change="
|
@change="
|
||||||
(val) => {
|
(val) => {
|
||||||
scope.row.unitPrice = val;
|
scope.row.unitPrice = val;
|
||||||
|
changePrice(scope.row);
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
:precision="2"
|
:precision="2"
|
||||||
@ -87,7 +97,7 @@
|
|||||||
type="primary"
|
type="primary"
|
||||||
size="small"
|
size="small"
|
||||||
:disabled="reviewStatus != 'draft'"
|
:disabled="reviewStatus != 'draft'"
|
||||||
@click="handleSave(scope.row)"
|
@click="handleSave(scope.row, 'single')"
|
||||||
v-if="scope.row.quantity && scope.row.quantity != 0"
|
v-if="scope.row.quantity && scope.row.quantity != 0"
|
||||||
v-hasPermi="['tender:billofquantitiesLimitList:edit']"
|
v-hasPermi="['tender:billofquantitiesLimitList:edit']"
|
||||||
>确定</el-button
|
>确定</el-button
|
||||||
@ -220,18 +230,18 @@ const getTableData = async () => {
|
|||||||
loading.value = false;
|
loading.value = false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
const modifyPrice = new Map();
|
||||||
|
|
||||||
|
const changePrice = (row: any) => {
|
||||||
|
modifyPrice.set(row.id, row);
|
||||||
|
};
|
||||||
//修改单价
|
//修改单价
|
||||||
const handleSave = (row: any) => {
|
const handleSave = (row?: any, type?: any) => {
|
||||||
try {
|
try {
|
||||||
if (!row.unitPrice) {
|
if (type == 'single') {
|
||||||
ElMessage({
|
|
||||||
message: '请输入单价',
|
|
||||||
type: 'warning'
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
updatePrice({ ...row, type: '1' }).then((res) => {
|
const list = [{ ...row, type: '1' }];
|
||||||
|
updatePrice(list).then((res) => {
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
message: '修改成功',
|
message: '修改成功',
|
||||||
@ -240,11 +250,30 @@ const handleSave = (row: any) => {
|
|||||||
getTableData();
|
getTableData();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
if (type == 'all') {
|
||||||
|
loading.value = true;
|
||||||
|
const list = [];
|
||||||
|
modifyPrice.forEach((item) => {
|
||||||
|
list.push({ ...item, type: '1' });
|
||||||
|
});
|
||||||
|
updatePrice(list).then((res) => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
ElMessage({
|
||||||
|
message: '修改成功',
|
||||||
|
type: 'success'
|
||||||
|
});
|
||||||
|
getTableData();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
message: '修改失败',
|
message: '修改失败',
|
||||||
type: 'error'
|
type: 'error'
|
||||||
});
|
});
|
||||||
|
} finally {
|
||||||
|
loading.value = false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const tableRef = ref<any>();
|
const tableRef = ref<any>();
|
||||||
|
@ -49,6 +49,11 @@
|
|||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="primary" plain icon="Plus" @click="handleAdd()" v-hasPermi="['formalities:listOfFormalities:add']">新增</el-button>
|
<el-button type="primary" plain icon="Plus" @click="handleAdd()" v-hasPermi="['formalities:listOfFormalities:add']">新增</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="primary" plain icon="Plus" @click="addTemplate()" v-hasPermi="['formalities:formalitiesAreConsolidated:addFormalities']"
|
||||||
|
>新增模版</el-button
|
||||||
|
>
|
||||||
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button
|
||||||
type="success"
|
type="success"
|
||||||
@ -67,7 +72,7 @@
|
|||||||
<el-table v-loading="loading" :data="formalitiesAreConsolidatedList" @selection-change="handleSelectionChange" row-key="id" default-expand-all>
|
<el-table v-loading="loading" :data="formalitiesAreConsolidatedList" @selection-change="handleSelectionChange" row-key="id" default-expand-all>
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<!-- <el-table-column label="手续办理清单模板父级" align="center" prop="formalitiesPname" /> -->
|
<!-- <el-table-column label="手续办理清单模板父级" align="center" prop="formalitiesPname" /> -->
|
||||||
<el-table-column label="手续办理清单模板" align="center" prop="formalitiesName" />
|
<el-table-column label="手续办理清单" align="center" prop="formalitiesName" />
|
||||||
<el-table-column label="计划开始时间" align="center" prop="planTheStartTime" width="180">
|
<el-table-column label="计划开始时间" align="center" prop="planTheStartTime" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.planTheStartTime, '{y}-{m}-{d}') }}</span>
|
<span>{{ parseTime(scope.row.planTheStartTime, '{y}-{m}-{d}') }}</span>
|
||||||
@ -230,6 +235,11 @@
|
|||||||
}
|
}
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
|
<div style="margin-left: 10px; display: flex; justify-content: center; align-items: center">
|
||||||
|
<el-tooltip class="box-item" effect="dark" content="列表上已选择得模版不可再选" placement="top">
|
||||||
|
<el-icon><WarningFilled /></el-icon>
|
||||||
|
</el-tooltip>
|
||||||
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span>
|
<span>
|
||||||
@ -238,6 +248,27 @@
|
|||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
|
<!-- 添加或修改手续办理清单模板对话框 -->
|
||||||
|
<el-dialog title="添加手续办理清单模板" v-model="tempDialogVisible" width="500px" append-to-body @close="templateCancel">
|
||||||
|
<el-form ref="listOfFormalitiesFormRef" :model="formTemplate" label-width="80px">
|
||||||
|
<el-form-item label="父级" prop="formalitiesPid" :rules="[{ required: true, message: '请选择父级', trigger: 'blur' }]">
|
||||||
|
<el-select v-model="formTemplate.formalitiesPid" placeholder="请选择父级">
|
||||||
|
<el-option label="根目录" value="0" />
|
||||||
|
<el-option v-for="item in listOfFormalitiesList" :label="item.name" :value="item.id" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="名称" prop="formalitiesName" :rules="[{ required: true, message: '请输入名称', trigger: 'blur' }]">
|
||||||
|
<el-input v-model="formTemplate.formalitiesName" placeholder="请输入名称" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button :loading="buttonLoading" type="primary" @click="submitFormTemplate">确 定</el-button>
|
||||||
|
<el-button @click="templateCancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -253,12 +284,15 @@ import {
|
|||||||
editStatus,
|
editStatus,
|
||||||
getTemplateTreeList
|
getTemplateTreeList
|
||||||
} from '@/api/formalities/formalitiesAreConsolidated';
|
} from '@/api/formalities/formalitiesAreConsolidated';
|
||||||
|
import { listListOfFormalities, addFormalities } from '@/api/formalities/listOfFormalities';
|
||||||
import {
|
import {
|
||||||
FormalitiesAreConsolidatedVO,
|
FormalitiesAreConsolidatedVO,
|
||||||
FormalitiesAreConsolidatedQuery,
|
FormalitiesAreConsolidatedQuery,
|
||||||
FormalitiesAreConsolidatedForm
|
FormalitiesAreConsolidatedForm
|
||||||
} from '@/api/formalities/formalitiesAreConsolidated/types';
|
} from '@/api/formalities/formalitiesAreConsolidated/types';
|
||||||
import { useUserStoreHook } from '@/store/modules/user';
|
import { useUserStoreHook } from '@/store/modules/user';
|
||||||
|
import { WarningFilled } from '@element-plus/icons-vue';
|
||||||
|
|
||||||
const fileVisible = ref(false);
|
const fileVisible = ref(false);
|
||||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
// 获取用户 store
|
// 获取用户 store
|
||||||
@ -287,6 +321,7 @@ const dialog = reactive<DialogOption>({
|
|||||||
visible: false,
|
visible: false,
|
||||||
title: ''
|
title: ''
|
||||||
});
|
});
|
||||||
|
|
||||||
const file = ref(null);
|
const file = ref(null);
|
||||||
const fileParams = reactive({
|
const fileParams = reactive({
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
@ -404,7 +439,39 @@ const handleAdd = async () => {
|
|||||||
tempTreeList.value = res.data;
|
tempTreeList.value = res.data;
|
||||||
templateVisbile.value = true;
|
templateVisbile.value = true;
|
||||||
};
|
};
|
||||||
|
const tempDialogVisible = ref(false);
|
||||||
|
const formTemplate: any = ref({
|
||||||
|
formalitiesPid: '',
|
||||||
|
formalitiesName: ''
|
||||||
|
});
|
||||||
|
const listOfFormalitiesList: any = ref([]);
|
||||||
|
//新增模版
|
||||||
|
const addTemplate = async () => {
|
||||||
|
tempDialogVisible.value = true;
|
||||||
|
const res = await listListOfFormalities();
|
||||||
|
listOfFormalitiesList.value = res.data;
|
||||||
|
};
|
||||||
|
//确定信息
|
||||||
|
const submitFormTemplate = async () => {
|
||||||
|
const params = {
|
||||||
|
projectId: currentProject.value.id,
|
||||||
|
addBusFormalitiesAreConsolidatedBo: {
|
||||||
|
...formTemplate.value
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const res = await addFormalities(params);
|
||||||
|
if (res.code == 200) {
|
||||||
|
proxy?.$modal.msgSuccess('操作成功');
|
||||||
|
templateCancel();
|
||||||
|
getList();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
//取消
|
||||||
|
const templateCancel = () => {
|
||||||
|
tempDialogVisible.value = false;
|
||||||
|
formTemplate.value.formalitiesPid = '';
|
||||||
|
formTemplate.value.formalitiesName = '';
|
||||||
|
};
|
||||||
// 选择模板
|
// 选择模板
|
||||||
const setTemp = async () => {
|
const setTemp = async () => {
|
||||||
// form.value.formalitiesPid = tempValue.value[tempValue.value.length - 1];
|
// form.value.formalitiesPid = tempValue.value[tempValue.value.length - 1];
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<formalitiesAreConsolidated ref="formalitiesAreConsolidatedRef" class="overlay" v-if="showFormalitiesAreConsolidated" />
|
<formalitiesAreConsolidated ref="formalitiesAreConsolidatedRef" class="overlay" v-if="showFormalitiesAreConsolidated" />
|
||||||
|
|
||||||
<div class="p-2" v-else>
|
<div class="p-2" v-else>
|
||||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||||
<div v-show="showSearch" class="mb-[10px]">
|
<div v-show="showSearch" class="mb-[10px]">
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
</el-table>
|
</el-table>
|
||||||
<el-table v-loading="loading" :data="tableData" v-if="activeTab == '3'">
|
<el-table v-loading="loading" :data="tableData" v-if="activeTab == '3'">
|
||||||
<el-table-column label="项目" align="center" prop="projectName" />
|
<el-table-column label="项目" align="center" prop="projectName" />
|
||||||
<el-table-column label="累计完工产值" align="center" prop="totalCompletionOutputValue" />
|
<!-- <el-table-column label="累计完工产值" align="center" prop="totalCompletionOutputValue" /> -->
|
||||||
<el-table-column label="分包累计结算产值" align="center" prop="subTotalSettlementOutputValue" />
|
<el-table-column label="分包累计结算产值" align="center" prop="subTotalSettlementOutputValue" />
|
||||||
<el-table-column label="业主累计结算产值" align="center" prop="ownerTotalSettlementOutputValue" />
|
<el-table-column label="业主累计结算产值" align="center" prop="ownerTotalSettlementOutputValue" />
|
||||||
<el-table-column label="差额" align="center" prop="differenceValue" />
|
<el-table-column label="差额" align="center" prop="differenceValue" />
|
||||||
|
@ -15,12 +15,22 @@
|
|||||||
<el-option v-for="item in sheets" :key="item" :label="item" :value="item" />
|
<el-option v-for="item in sheets" :key="item" :label="item" :value="item" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="toggleExpandAll(true)">一键展开</el-button>
|
<el-button type="primary" @click="toggleExpandAll(true)">一键展开</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="toggleExpandAll(false)">一键收起</el-button>
|
<el-button type="primary" @click="toggleExpandAll(false)">一键收起</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
:disabled="versionsData.status != 'draft'"
|
||||||
|
@click="handleSave(null, 'all')"
|
||||||
|
v-hasPermi="['tender:tenderPlanLimitList:edit']"
|
||||||
|
>一键确定</el-button
|
||||||
|
>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-upload
|
<el-upload
|
||||||
ref="uploadRef"
|
ref="uploadRef"
|
||||||
@ -42,11 +52,16 @@
|
|||||||
type="warning"
|
type="warning"
|
||||||
icon="view"
|
icon="view"
|
||||||
@click="handleAudit()"
|
@click="handleAudit()"
|
||||||
v-if="versionsData.status == 'draft'"
|
v-if="versionsData.status && versionsData.status == 'draft'"
|
||||||
v-hasPermi="['tender:tenderPlanLimitList:getVersionDetail']"
|
v-hasPermi="['tender:tenderPlanLimitList:getVersionDetail']"
|
||||||
>审核</el-button
|
>审核</el-button
|
||||||
>
|
>
|
||||||
<el-button type="warning" icon="view" @click="handleAudit()" v-else v-hasPermi="['tender:tenderPlanLimitList:getVersionDetail']"
|
<el-button
|
||||||
|
type="warning"
|
||||||
|
icon="view"
|
||||||
|
@click="handleAudit()"
|
||||||
|
v-if="versionsData.status && versionsData.status != 'draft'"
|
||||||
|
v-hasPermi="['tender:tenderPlanLimitList:getVersionDetail']"
|
||||||
>查看流程</el-button
|
>查看流程</el-button
|
||||||
>
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -63,7 +78,12 @@
|
|||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
:model-value="scope.row.unitPrice"
|
:model-value="scope.row.unitPrice"
|
||||||
@change="(val) => (scope.row.unitPrice = val)"
|
@change="
|
||||||
|
(val) => {
|
||||||
|
scope.row.unitPrice = val;
|
||||||
|
changePrice(scope.row);
|
||||||
|
}
|
||||||
|
"
|
||||||
:precision="2"
|
:precision="2"
|
||||||
:step="0.1"
|
:step="0.1"
|
||||||
:controls="false"
|
:controls="false"
|
||||||
@ -82,7 +102,7 @@
|
|||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
size="small"
|
size="small"
|
||||||
@click="handleSave(scope.row)"
|
@click="handleSave(scope.row, 'single')"
|
||||||
v-if="scope.row.quantity && scope.row.quantity != 0"
|
v-if="scope.row.quantity && scope.row.quantity != 0"
|
||||||
v-hasPermi="['tender:tenderPlanLimitList:edit']"
|
v-hasPermi="['tender:tenderPlanLimitList:edit']"
|
||||||
:disabled="versionsData.status != 'draft'"
|
:disabled="versionsData.status != 'draft'"
|
||||||
@ -133,6 +153,8 @@ const versionMap = new Map();
|
|||||||
// 切换tab
|
// 切换tab
|
||||||
const handleTabChange = (tab: string) => {
|
const handleTabChange = (tab: string) => {
|
||||||
activeTab.value = tab;
|
activeTab.value = tab;
|
||||||
|
tableData.value = [];
|
||||||
|
versionsData.value = {};
|
||||||
getVersionNums();
|
getVersionNums();
|
||||||
};
|
};
|
||||||
//切换版本
|
//切换版本
|
||||||
@ -205,6 +227,8 @@ const getSheetName = async () => {
|
|||||||
//获取表格数据
|
//获取表格数据
|
||||||
const getTableData = async () => {
|
const getTableData = async () => {
|
||||||
try {
|
try {
|
||||||
|
loading.value = true;
|
||||||
|
|
||||||
const params = {
|
const params = {
|
||||||
projectId: currentProject.value?.id,
|
projectId: currentProject.value?.id,
|
||||||
versions: queryForm.value.versions,
|
versions: queryForm.value.versions,
|
||||||
@ -217,6 +241,8 @@ const getTableData = async () => {
|
|||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
|
} finally {
|
||||||
|
loading.value = false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
//导入
|
//导入
|
||||||
@ -257,18 +283,21 @@ const handleExport = () => {
|
|||||||
`招标一览表${queryForm.value.sheet}.xlsx`
|
`招标一览表${queryForm.value.sheet}.xlsx`
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
//确认修改
|
const modifyPrice = new Map();
|
||||||
const handleSave = (row: any) => {
|
|
||||||
|
const changePrice = (row: any) => {
|
||||||
|
modifyPrice.set(row.id, row);
|
||||||
|
// if (!row.unitPrice) {
|
||||||
|
// modifyPrice.delete(row.id);
|
||||||
|
// }
|
||||||
|
};
|
||||||
|
//修改单价
|
||||||
|
const handleSave = (row?: any, type?: any) => {
|
||||||
try {
|
try {
|
||||||
if (!row.unitPrice) {
|
if (type == 'single') {
|
||||||
ElMessage({
|
|
||||||
message: '请输入单价',
|
|
||||||
type: 'warning'
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
updatePrice(row).then((res) => {
|
const list = [{ ...row, type: activeTab.value }];
|
||||||
|
updatePrice(list).then((res) => {
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
message: '修改成功',
|
message: '修改成功',
|
||||||
@ -277,9 +306,28 @@ const handleSave = (row: any) => {
|
|||||||
getTableData();
|
getTableData();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
if (type == 'all') {
|
||||||
|
loading.value = true;
|
||||||
|
const list = [];
|
||||||
|
modifyPrice.forEach((item) => {
|
||||||
|
list.push({ ...item, type: activeTab.value });
|
||||||
|
});
|
||||||
|
updatePrice(list).then((res) => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
ElMessage({
|
||||||
|
message: '修改成功',
|
||||||
|
type: 'success'
|
||||||
|
});
|
||||||
|
getTableData();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
ElMessage({
|
||||||
loading.value = false;
|
message: '修改失败',
|
||||||
|
type: 'error'
|
||||||
|
});
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user