合并
This commit is contained in:
@ -5,7 +5,7 @@ VITE_APP_TITLE = 煤科建管平台
|
|||||||
VITE_APP_ENV = 'development'
|
VITE_APP_ENV = 'development'
|
||||||
|
|
||||||
# 开发环境
|
# 开发环境
|
||||||
VITE_APP_BASE_API = 'http://192.168.110.213:8899'
|
VITE_APP_BASE_API = 'http://192.168.110.149:8899'
|
||||||
|
|
||||||
# 无人机接口地址
|
# 无人机接口地址
|
||||||
|
|
||||||
|
@ -53,3 +53,18 @@ export const sheetList = (query) => {
|
|||||||
params: query
|
params: query
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
//获取sheet
|
||||||
|
export const obtainAllVersionNumbers = (query) => {
|
||||||
|
return request({
|
||||||
|
url: '/bidding/biddingLimitList/obtainAllVersionNumbers',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
||||||
|
//获取sheet
|
||||||
|
export const getVersionDetail = (id) => {
|
||||||
|
return request({
|
||||||
|
url: '/bidding/biddingLimitList/getVersionDetail/' + id,
|
||||||
|
method: 'get'
|
||||||
|
});
|
||||||
|
};
|
||||||
|
@ -1,56 +1,52 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog v-model="dialogVisible" title="附件列表" width="45%">
|
<el-dialog v-model="dialogVisible" title="附件列表" width="45%">
|
||||||
<el-table :data="fileList" style="width: 100%">
|
<el-table :data="fileList" style="width: 100%">
|
||||||
<el-table-column prop="fileName" label="文件名" />
|
<el-table-column prop="fileName" label="文件名" />
|
||||||
<el-table-column prop="type" label="操作">
|
<el-table-column prop="type" label="操作">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button link type="success" @click="viewFile(scope.row)" icon="View">查看文件</el-button>
|
<el-button link type="success" @click="viewFile(scope.row)" icon="View">查看文件</el-button>
|
||||||
<el-button link type="primary" @click="downloadFile(scope.row)" icon="download">下载文件</el-button>
|
<el-button link type="primary" @click="downloadFile(scope.row)" icon="download">下载文件</el-button>
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
|
||||||
<template #footer>
|
|
||||||
<div class="dialog-footer">
|
|
||||||
<el-button type="primary" @click="dialogVisible = false">
|
|
||||||
关闭
|
|
||||||
</el-button>
|
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-table-column>
|
||||||
<el-dialog width="80%" v-model="viewFileVisible" title="查看文件" append-to-body>
|
</el-table>
|
||||||
<iframe :src="fileUrl" frameborder="0" width="100%" height="800"></iframe>
|
<template #footer>
|
||||||
<template #footer>
|
<div class="dialog-footer">
|
||||||
<div class="dialog-footer">
|
<el-button type="primary" @click="dialogVisible = false"> 关闭 </el-button>
|
||||||
<el-button @click="viewFileVisible = false" type="primary">关闭</el-button>
|
</div>
|
||||||
</div>
|
</template>
|
||||||
</template>
|
</el-dialog>
|
||||||
</el-dialog>
|
<el-dialog width="80%" v-model="viewFileVisible" title="查看文件" append-to-body>
|
||||||
|
<iframe :src="fileUrl" frameborder="0" width="100%" height="800"></iframe>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button @click="viewFileVisible = false" type="primary">关闭</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const dialogVisible = defineModel();
|
const dialogVisible = defineModel();
|
||||||
const props = defineProps(['fileList'])
|
const props = defineProps(['fileList']);
|
||||||
const viewFileVisible = ref(false)
|
const viewFileVisible = ref(false);
|
||||||
const fileUrl = ref('')
|
const fileUrl = ref('');
|
||||||
const downloadFile = async (data) => {
|
const downloadFile = async (data) => {
|
||||||
// 这里可以添加下载文件的逻辑
|
// 这里可以添加下载文件的逻辑
|
||||||
await proxy?.download(data.fileUrl, {}, data.fileName);
|
await proxy?.downloadFile(data.fileUrl, data.fileName);
|
||||||
proxy?.$message({
|
// proxy?.$message({
|
||||||
message: '下载成功',
|
// message: '下载成功',
|
||||||
type: 'success'
|
// type: 'success'
|
||||||
});
|
// });
|
||||||
};
|
};
|
||||||
const viewFile = (data) => {
|
const viewFile = (data) => {
|
||||||
// 这里可以添加查看文件的逻辑
|
// 这里可以添加查看文件的逻辑
|
||||||
fileUrl.value = data.fileUrl;
|
fileUrl.value = data.fileUrl;
|
||||||
viewFileVisible.value = true;
|
viewFileVisible.value = true;
|
||||||
}
|
|
||||||
const adjustIframe = () => {
|
|
||||||
const iframe = document.querySelector('iframe');
|
|
||||||
if (iframe) {
|
|
||||||
iframe.style.height = `${iframe.contentWindow.document.body.scrollHeight}px`;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
</script>
|
const adjustIframe = () => {
|
||||||
|
const iframe = document.querySelector('iframe');
|
||||||
|
if (iframe) {
|
||||||
|
iframe.style.height = `${iframe.contentWindow.document.body.scrollHeight}px`;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
@ -3,6 +3,11 @@
|
|||||||
<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">
|
||||||
<el-card shadow="always">
|
<el-card shadow="always">
|
||||||
<el-form :model="queryForm" :inline="true">
|
<el-form :model="queryForm" :inline="true">
|
||||||
|
<el-form-item label="版本号" prop="versions">
|
||||||
|
<el-select v-model="queryForm.versions" placeholder="选择版本号" @change="changeVersions">
|
||||||
|
<el-option v-for="item in options" :key="item.id" :label="item.versions" :value="item.id" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="表名" prop="sheet">
|
<el-form-item label="表名" prop="sheet">
|
||||||
<el-select v-model="queryForm.sheet" placeholder="选择表名" @change="changeSheet">
|
<el-select v-model="queryForm.sheet" placeholder="选择表名" @change="changeSheet">
|
||||||
<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" />
|
||||||
@ -28,7 +33,24 @@
|
|||||||
<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-form-item>
|
||||||
<el-button type="primary" icon="Edit" @click="handleAudit" v-hasPermi="['desibiddinggn:biddingLimitList:query']">审核</el-button>
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
v-if="versionObj.status == 'draft' || versionObj.status == 'back'"
|
||||||
|
icon="Edit"
|
||||||
|
@click="handleAudit"
|
||||||
|
v-hasPermi="['desibiddinggn:biddingLimitList:query']"
|
||||||
|
>审核</el-button
|
||||||
|
>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
icon="view"
|
||||||
|
@click="handleViewInfo"
|
||||||
|
v-hasPermi="['desibiddinggn:biddingLimitList:query']"
|
||||||
|
v-if="versionObj.status != 'draft'"
|
||||||
|
>查看流程</el-button
|
||||||
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -75,8 +97,7 @@
|
|||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useUserStoreHook } from '@/store/modules/user';
|
import { useUserStoreHook } from '@/store/modules/user';
|
||||||
import { obtainAllVersionNumbers } from '@/api/contract/index';
|
import { BiddingImportExcelFile, getTreeLimit, biddingLimitListUpdate, sheetList, obtainAllVersionNumbers } from '@/api/bidding/biddingLimit';
|
||||||
import { BiddingImportExcelFile, getTreeLimit, biddingLimitListUpdate, sheetList } from '@/api/bidding/biddingLimit';
|
|
||||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
|
|
||||||
const userStore = useUserStoreHook();
|
const userStore = useUserStoreHook();
|
||||||
@ -90,7 +111,8 @@ const options = ref<any[]>([]);
|
|||||||
const sheets = ref<any[]>([]);
|
const sheets = ref<any[]>([]);
|
||||||
const tableData = ref<any[]>([]);
|
const tableData = ref<any[]>([]);
|
||||||
const isExpandAll = ref(true);
|
const isExpandAll = ref(true);
|
||||||
|
const versionObj = ref({});
|
||||||
|
const versionMap = new Map();
|
||||||
//获取版本号
|
//获取版本号
|
||||||
const getVersionNums = async () => {
|
const getVersionNums = async () => {
|
||||||
try {
|
try {
|
||||||
@ -99,15 +121,19 @@ const getVersionNums = async () => {
|
|||||||
pageSize: 1000,
|
pageSize: 1000,
|
||||||
pageNum: 1
|
pageNum: 1
|
||||||
};
|
};
|
||||||
|
|
||||||
const res = await obtainAllVersionNumbers(params);
|
const res = await obtainAllVersionNumbers(params);
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
options.value = res.data;
|
options.value = res.data;
|
||||||
if (res.data.length > 0) {
|
if (res.data.length > 0) {
|
||||||
queryForm.value.versions = res.data[0];
|
res.data.forEach((item: any) => {
|
||||||
|
versionMap.set(item.versions, item);
|
||||||
|
});
|
||||||
|
queryForm.value.versions = res.data[0].versions;
|
||||||
|
versionObj.value = res.data[0];
|
||||||
getSheetName();
|
getSheetName();
|
||||||
} else {
|
} else {
|
||||||
queryForm.value.versions = '';
|
queryForm.value.versions = '';
|
||||||
|
versionObj.value = {};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@ -115,7 +141,7 @@ const getVersionNums = async () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
//选择版本号
|
//选择版本号
|
||||||
const changeVersions = () => {
|
const changeVersions = (val) => {
|
||||||
getSheetName();
|
getSheetName();
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -127,8 +153,8 @@ const changeSheet = () => {
|
|||||||
//获取表名
|
//获取表名
|
||||||
const getSheetName = async () => {
|
const getSheetName = async () => {
|
||||||
const params = {
|
const params = {
|
||||||
projectId: currentProject.value?.id
|
projectId: currentProject.value?.id,
|
||||||
// versions: queryForm.value.versions
|
versions: queryForm.value.versions
|
||||||
};
|
};
|
||||||
const res = await sheetList(params);
|
const res = await sheetList(params);
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
@ -151,7 +177,11 @@ const getTableData = async () => {
|
|||||||
const res = await getTreeLimit(params);
|
const res = await getTreeLimit(params);
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
tableData.value = [res.data[0]];
|
if (res.data && res.data.length > 0) {
|
||||||
|
tableData.value = [res.data[0]];
|
||||||
|
} else {
|
||||||
|
tableData.value = [];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
//修改单价
|
//修改单价
|
||||||
@ -214,6 +244,7 @@ const listeningProject = watch(
|
|||||||
() => currentProject.value?.id,
|
() => currentProject.value?.id,
|
||||||
(nid, oid) => {
|
(nid, oid) => {
|
||||||
getVersionNums();
|
getVersionNums();
|
||||||
|
// getSheetName();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
const handleExport = () => {
|
const handleExport = () => {
|
||||||
@ -227,24 +258,39 @@ const handleExport = () => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
// 审核
|
// 审核
|
||||||
const handleAudit = (row: any) => {
|
const handleAudit = () => {
|
||||||
console.log(11111);
|
proxy.$tab.closePage(proxy.$route);
|
||||||
|
let id = versionMap.get(queryForm.value.versions).id;
|
||||||
// proxy.$tab.closePage(proxy.$route);
|
proxy.$router.push({
|
||||||
// proxy.$router.push({
|
path: `/approval/biddingLimit/indexEdit`,
|
||||||
// path: `/approval/biddingLimit/indexEdit`,
|
query: {
|
||||||
// query: {
|
id,
|
||||||
// id: row.id,
|
type: 'add',
|
||||||
// type: 'add'
|
sheets: sheets.value,
|
||||||
// }
|
versions: versionObj.value
|
||||||
// });
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 查看审核
|
||||||
|
const handleViewInfo = () => {
|
||||||
|
proxy.$tab.closePage(proxy.$route);
|
||||||
|
let id = versionMap.get(queryForm.value.versions).id;
|
||||||
|
proxy.$router.push({
|
||||||
|
path: `/approval/biddingLimit/indexEdit`,
|
||||||
|
query: {
|
||||||
|
id,
|
||||||
|
type: 'view',
|
||||||
|
sheets: sheets.value,
|
||||||
|
versions: versionObj.value
|
||||||
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
listeningProject();
|
listeningProject();
|
||||||
});
|
});
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getSheetName();
|
getVersionNums();
|
||||||
|
// getSheetName();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -19,17 +19,10 @@
|
|||||||
<h3 class="text-lg font-semibold text-gray-800">成本核算清单</h3>
|
<h3 class="text-lg font-semibold text-gray-800">成本核算清单</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="p-6">
|
<div class="p-6">
|
||||||
<el-form
|
<el-form ref="leaveFormRef" disabled :model="form" :rules="rules" label-width="100px" class="space-y-4">
|
||||||
ref="leaveFormRef"
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-4" v-for="item in sheets" :key="item">
|
||||||
:disabled="routeParams.type === 'view' || form.status == 'waiting'"
|
<el-form-item label="表格文件">
|
||||||
:model="form"
|
<span style="color: #8d8d8d">{{ item }}</span>
|
||||||
:rules="rules"
|
|
||||||
label-width="100px"
|
|
||||||
class="space-y-4"
|
|
||||||
>
|
|
||||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
||||||
<el-form-item label="表格文件" prop="fileId" class="mb-2 md:col-span-2">
|
|
||||||
<input type="text" :value="form.fileId" class="w-full" readonly />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
@ -77,8 +70,7 @@ import ApprovalButton from '@/components/Process/approvalButton.vue';
|
|||||||
import { StartProcessBo } from '@/api/workflow/workflowCommon/types';
|
import { StartProcessBo } from '@/api/workflow/workflowCommon/types';
|
||||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
import { useUserStoreHook } from '@/store/modules/user';
|
import { useUserStoreHook } from '@/store/modules/user';
|
||||||
import { getDrawing } from '@/api/design/drawing';
|
import { getVersionDetail } from '@/api/bidding/biddingLimit';
|
||||||
import { updateDesignChange, getDesignChange } from '@/api/design/designChange';
|
|
||||||
|
|
||||||
// 获取用户 store
|
// 获取用户 store
|
||||||
const userStore = useUserStoreHook();
|
const userStore = useUserStoreHook();
|
||||||
@ -107,7 +99,8 @@ const submitVerifyRef = ref<InstanceType<typeof SubmitVerify>>();
|
|||||||
const approvalRecordRef = ref<InstanceType<typeof ApprovalRecord>>();
|
const approvalRecordRef = ref<InstanceType<typeof ApprovalRecord>>();
|
||||||
//按钮组件
|
//按钮组件
|
||||||
const approvalButtonRef = ref<InstanceType<typeof ApprovalButton>>();
|
const approvalButtonRef = ref<InstanceType<typeof ApprovalButton>>();
|
||||||
|
const sheets = ref([]);
|
||||||
|
const versions = ref({});
|
||||||
const leaveFormRef = ref<ElFormInstance>();
|
const leaveFormRef = ref<ElFormInstance>();
|
||||||
const dialog = reactive({
|
const dialog = reactive({
|
||||||
visible: false,
|
visible: false,
|
||||||
@ -135,18 +128,6 @@ const initFormData = {
|
|||||||
};
|
};
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
form: { ...initFormData },
|
form: { ...initFormData },
|
||||||
queryParams: {
|
|
||||||
pageNum: 1,
|
|
||||||
pageSize: 10,
|
|
||||||
projectId: currentProject.value?.id,
|
|
||||||
fileName: undefined,
|
|
||||||
fileType: undefined,
|
|
||||||
fileSuffix: undefined,
|
|
||||||
fileStatus: undefined,
|
|
||||||
originalName: undefined,
|
|
||||||
newest: undefined,
|
|
||||||
params: {}
|
|
||||||
},
|
|
||||||
rules: {}
|
rules: {}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -168,7 +149,7 @@ const getInfo = () => {
|
|||||||
loading.value = true;
|
loading.value = true;
|
||||||
buttonLoading.value = false;
|
buttonLoading.value = false;
|
||||||
nextTick(async () => {
|
nextTick(async () => {
|
||||||
const res = await getDesignChange(routeParams.value.id);
|
const res = await getVersionDetail(routeParams.value.id);
|
||||||
Object.assign(form.value, res.data);
|
Object.assign(form.value, res.data);
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
buttonLoading.value = false;
|
buttonLoading.value = false;
|
||||||
@ -178,19 +159,8 @@ const getInfo = () => {
|
|||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
const submitForm = (status1: string) => {
|
const submitForm = (status1: string) => {
|
||||||
status.value = status1;
|
status.value = status1;
|
||||||
leaveFormRef.value?.validate(async (valid: boolean) => {
|
buttonLoading.value = true;
|
||||||
if (valid) {
|
submit(status.value, form.value);
|
||||||
buttonLoading.value = true;
|
|
||||||
var res;
|
|
||||||
// if (form.value.id) {
|
|
||||||
res = await updateDesignChange({ ...form.value, id: routeParams.value.id }).finally(() => (buttonLoading.value = false));
|
|
||||||
// }
|
|
||||||
if (res.code == 200) {
|
|
||||||
dialog.visible = false;
|
|
||||||
submit(status.value, res.data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const submitFlow = async () => {
|
const submitFlow = async () => {
|
||||||
@ -228,8 +198,7 @@ const submitCallback = async () => {
|
|||||||
};
|
};
|
||||||
//审批
|
//审批
|
||||||
const approvalVerifyOpen = async () => {
|
const approvalVerifyOpen = async () => {
|
||||||
submitVerifyRef.value.openDialog(routeParams.value.taskId, true, routeParams.value.businessId);
|
submitVerifyRef.value.openDialog(routeParams.value.taskId);
|
||||||
// submitVerifyRef.value.openDialog(routeParams.value.taskId);
|
|
||||||
};
|
};
|
||||||
// 图纸上传成功之后 开始提交
|
// 图纸上传成功之后 开始提交
|
||||||
const submit = async (status, data) => {
|
const submit = async (status, data) => {
|
||||||
@ -256,8 +225,11 @@ const submit = async (status, data) => {
|
|||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
nextTick(async () => {
|
nextTick(async () => {
|
||||||
routeParams.value = proxy.$route.query;
|
|
||||||
reset();
|
reset();
|
||||||
|
routeParams.value = proxy.$route.query;
|
||||||
|
sheets.value = routeParams.value.sheets;
|
||||||
|
versions.value = routeParams.value.versions;
|
||||||
|
Object.assign(form.value, versions.value);
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
if (routeParams.value.type === 'update' || routeParams.value.type === 'view' || routeParams.value.type === 'approval') {
|
if (routeParams.value.type === 'update' || routeParams.value.type === 'view' || routeParams.value.type === 'approval') {
|
||||||
getInfo();
|
getInfo();
|
||||||
|
Reference in New Issue
Block a user