Browse Source

在建-质量检测

dev_kxc
xzt 1 year ago
parent
commit
0022f0f406
  1. 10
      jwtech-admin-page/src/api/build/attachment.js
  2. 7
      jwtech-admin-page/src/api/build/subProject.js
  3. 3
      jwtech-admin-page/src/router/index.js
  4. 264
      jwtech-admin-page/src/views/build/attachment/index.vue
  5. 281
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/EngineeringQualitySupervisionAndInspection.vue
  6. 466
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/components/divAssess.vue
  7. 380
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/components/unitAssess.vue
  8. 28
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/components/viewReport.vue
  9. 634
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/engineeringQualityEvaluation.vue
  10. 830
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/engineeringQualityInspection.vue
  11. 14
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/itemDivision/components/itemDivisionManage.vue
  12. 258
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/itemDivision/components/segmentProject.vue
  13. 34
      jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/itemDivision/components/unitProject.vue

10
jwtech-admin-page/src/api/build/attachment.js

@ -9,6 +9,16 @@ export function listAttachment(query) {
})
}
// 获取质量报告合格率
export function listAttachmentRate(query) {
return request({
url: '/build/attachment/listReport',
method: 'post',
data: query
})
}
// 查询工程质量报告详细
export function getAttachment(id) {
return request({

7
jwtech-admin-page/src/api/build/subProject.js

@ -16,6 +16,13 @@ export function getSubProject(id) {
method: 'get'
})
}
// 查询分部工程详细(通过单位工程id)
export function formUnitGetSubProject(id) {
return request({
url: '/build/subProject/getSubProject/' + id,
method: 'get'
})
}
// 新增分部工程
export function addSubProject(data) {

3
jwtech-admin-page/src/router/index.js

@ -133,7 +133,8 @@ export const constantRoutes = [
]
const router = new Router({
mode: 'hash', // 去掉url中的#
mode: 'hash',
// mode: 'history', // 去掉url中的#
base:"/admin/",
scrollBehavior: () => ({ y: 0 }),
routes: constantRoutes

264
jwtech-admin-page/src/views/build/attachment/index.vue

@ -1,6 +1,12 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="工程监测id" prop="supervisionId">
<el-input
v-model="queryParams.data.supervisionId"
@ -38,11 +44,15 @@
/>
</el-form-item>
<el-form-item label="工程监测id" prop="uploadTime">
<el-date-picker clearable size="small" style="width: 200px"
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="queryParams.uploadTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择工程监测id">
placeholder="选择工程监测id"
>
</el-date-picker>
</el-form-item>
<el-form-item label="工程监测id" prop="remarks">
@ -82,13 +92,26 @@
/>
</el-form-item>
<el-form-item label="工程监测id" prop="reportType">
<el-select v-model="queryParams.data.reportType" placeholder="请选择工程监测id" clearable size="small">
<el-select
v-model="queryParams.data.reportType"
placeholder="请选择工程监测id"
clearable
size="small"
>
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button
type="cyan"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
@ -100,7 +123,8 @@
size="mini"
@click="handleAdd"
v-hasPermi="['build:attachment:add']"
>新增</el-button>
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
@ -110,7 +134,8 @@
:disabled="single"
@click="handleUpdate"
v-hasPermi="['build:attachment:edit']"
>修改</el-button>
>修改</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
@ -120,7 +145,8 @@
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['build:attachment:remove']"
>删除</el-button>
>删除</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
@ -129,30 +155,47 @@
size="mini"
@click="handleExport"
v-hasPermi="['build:attachment:export']"
>导出</el-button>
>导出</el-button
>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="attachmentList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="attachmentList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" type="index" width="50" align="center"/>
<el-table-column label="序号" type="index" width="50" align="center" />
<el-table-column label="工程监测id" align="center" prop="supervisionId" />
<el-table-column label="工程监测id" align="center" prop="reportAttachment" />
<el-table-column label="工程监测id" align="center" prop="isOk" />
<el-table-column label="工程监测id" align="center" prop="reportAttachmentName" />
<el-table-column label="工程监测id" align="center" prop="uploadTime" width="180">
<el-table-column label="文件" align="center" prop="reportAttachment" />
<el-table-column label="是否合格" align="center" prop="isOk" />
<el-table-column
label="文件名称"
align="center"
prop="reportAttachmentName"
/>
<el-table-column
label="上传时间"
align="center"
prop="uploadTime"
width="180"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.uploadTime, '{y}-{m}-{d}') }}</span>
<span>{{ parseTime(scope.row.uploadTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column label="工程监测id" align="center" prop="remarks" />
<el-table-column label="工程监测id" align="center" prop="createUid" />
<el-table-column label="工程监测id" align="center" prop="updateUid" />
<el-table-column label="工程监测id" align="center" prop="owerDept" />
<el-table-column label="工程监测id" align="center" prop="reportType" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table-column label="文件类型" align="center" prop="reportType" />
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
@ -160,20 +203,22 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['build:attachment:edit']"
>修改</el-button>
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['build:attachment:remove']"
>删除</el-button>
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@ -184,23 +229,36 @@
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="工程监测id" prop="supervisionId">
<el-input v-model="form.supervisionId" placeholder="请输入工程监测id" />
<el-input
v-model="form.supervisionId"
placeholder="请输入工程监测id"
/>
</el-form-item>
<el-form-item label="工程监测id" prop="reportAttachment">
<el-input v-model="form.reportAttachment" placeholder="请输入工程监测id" />
<el-input
v-model="form.reportAttachment"
placeholder="请输入工程监测id"
/>
</el-form-item>
<el-form-item label="工程监测id" prop="isOk">
<el-input v-model="form.isOk" placeholder="请输入工程监测id" />
</el-form-item>
<el-form-item label="工程监测id" prop="reportAttachmentName">
<el-input v-model="form.reportAttachmentName" placeholder="请输入工程监测id" />
<el-input
v-model="form.reportAttachmentName"
placeholder="请输入工程监测id"
/>
</el-form-item>
<el-form-item label="工程监测id" prop="uploadTime">
<el-date-picker clearable size="small" style="width: 200px"
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="form.uploadTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择工程监测id">
placeholder="选择工程监测id"
>
</el-date-picker>
</el-form-item>
<el-form-item label="工程监测id" prop="remarks">
@ -230,7 +288,14 @@
</template>
<script>
import { listAttachment, getAttachment, delAttachment, addAttachment, updateAttachment, exportAttachment } from "@/api/build/attachment";
import {
listAttachment,
getAttachment,
delAttachment,
addAttachment,
updateAttachment,
exportAttachment,
} from "@/api/build/attachment";
export default {
name: "Attachment",
@ -258,26 +323,24 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
ids:null,
data:{
supervisionId: null,
reportAttachment: null,
isOk: null,
reportAttachmentName: null,
uploadTime: null,
remarks: null,
createUid: null,
updateUid: null,
owerDept: null,
reportType: null
}
ids: null,
data: {
supervisionId: null,
reportAttachment: null,
isOk: null,
reportAttachmentName: null,
uploadTime: null,
remarks: null,
createUid: null,
updateUid: null,
owerDept: null,
reportType: null,
},
},
//
form: {},
//
rules: {
}
rules: {},
};
},
created() {
@ -287,7 +350,7 @@ export default {
/** 查询工程质量报告列表 */
getList() {
this.loading = true;
listAttachment(this.queryParams).then(response => {
listAttachment(this.queryParams).then((response) => {
this.attachmentList = response.records;
this.total = response.total;
this.loading = false;
@ -313,7 +376,7 @@ export default {
updateUid: null,
updateTime: null,
owerDept: null,
reportType: null
reportType: null,
};
this.resetForm("form");
},
@ -322,21 +385,21 @@ export default {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data:{
id: null,
supervisionId: null,
reportAttachment: null,
isOk: null,
reportAttachmentName: null,
uploadTime: null,
remarks: null,
createTime: null,
createUid: null,
updateUid: null,
updateTime: null,
owerDept: null,
reportType: null
}
data: {
id: null,
supervisionId: null,
reportAttachment: null,
isOk: null,
reportAttachmentName: null,
uploadTime: null,
remarks: null,
createTime: null,
createUid: null,
updateUid: null,
updateTime: null,
owerDept: null,
reportType: null,
},
};
this.resetForm("form");
},
@ -352,9 +415,9 @@ export default {
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
@ -365,8 +428,8 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getAttachment(id).then(response => {
const id = row.id || this.ids;
getAttachment(id).then((response) => {
this.form = response.data;
this.open = true;
this.title = "修改工程质量报告";
@ -374,10 +437,10 @@ export default {
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateAttachment(this.form).then(response => {
updateAttachment(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
@ -385,7 +448,7 @@ export default {
}
});
} else {
addAttachment(this.form).then(response => {
addAttachment(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
@ -399,41 +462,46 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
if(ids){
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delAttachment(ids);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
}).catch(function() {});
}else{
this.$message.warning("请选择要删除的数据!!");
if (ids) {
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delAttachment(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(function () {});
} else {
this.$message.warning("请选择要删除的数据!!");
}
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
let message = "是否确认导出所有的数据项?";
if(this.ids){
if (this.ids) {
message = "是否确认导出选中的数据项?";
queryParams.ids = this.ids;
}
this.$confirm(message, "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return exportAttachment(queryParams);
}).then(response => {
this.downloadFile(response, true, response.msg);
})
.then((response) => {
this.downloadFile(response, true, response.msg);
// this.download(response.msg);
}).catch(function() {});
}
}
})
.catch(function () {});
},
},
};
</script>

281
jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/EngineeringQualitySupervisionAndInspection.vue

@ -25,72 +25,6 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="检查意见报告" prop="inspectTime">
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="queryParams.inspectTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择检查意见报告"
>
</el-date-picker>
</el-form-item>
<el-form-item label="整改落实情况" prop="createUid">
<el-input
v-model="queryParams.data.createUid"
placeholder="请输入整改落实情况"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="整改落实情况" prop="updateUid">
<el-input
v-model="queryParams.data.updateUid"
placeholder="请输入整改落实情况"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="整改落实情况" prop="owerDept">
<el-input
v-model="queryParams.data.owerDept"
placeholder="请输入整改落实情况"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="整改落实情况" prop="remarks">
<el-input
v-model="queryParams.data.remarks"
placeholder="请输入整改落实情况"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="整改落实情况" prop="proCode">
<el-input
v-model="queryParams.data.proCode"
placeholder="请输入整改落实情况"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="整改落实情况" prop="proNo">
<el-input
v-model="queryParams.data.proNo"
placeholder="请输入整改落实情况"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="cyan"
@ -138,16 +72,7 @@
>删除</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['build:inspect:export']"
>导出</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
@ -159,42 +84,62 @@
:data="inspectList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" type="index" width="50" align="center" />
<el-table-column type="selection" width="55" align="center" fixed />
<el-table-column
label="序号"
type="index"
width="50"
align="center"
fixed
/>
<el-table-column label="检查内容" align="center" prop="inspectContent" />
<el-table-column label="检查单位" align="center" prop="inspectUnit" />
<el-table-column label="检察人员" align="center" prop="inspectPerson" />
<el-table-column
label="检查意见报告"
label="检查内容"
align="center"
prop="inspectOpinion"
prop="inspectContent"
min-width="120"
/>
<el-table-column
label="检查意见报告"
label="检查时间"
align="center"
prop="inspectTime"
width="180"
min-width="120"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.inspectTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
label="检查单位"
align="center"
prop="inspectUnit"
min-width="120"
/>
<el-table-column
label="现场检查人员"
align="center"
prop="inspectPerson"
min-width="120"
/>
<!-- <el-table-column
label="检查意见报告"
align="center"
prop="inspectOpinion"
min-width="120"
/> -->
<el-table-column
label="整改落实情况"
align="center"
prop="rectificationContent"
min-width="120"
/>
<el-table-column label="整改落实情况" align="center" prop="createUid" />
<el-table-column label="整改落实情况" align="center" prop="updateUid" />
<el-table-column label="整改落实情况" align="center" prop="owerDept" />
<el-table-column label="整改落实情况" align="center" prop="remarks" />
<el-table-column label="整改落实情况" align="center" prop="proCode" />
<el-table-column label="整改落实情况" align="center" prop="proNo" />
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="180"
fixed="right"
>
<template slot-scope="scope">
<el-button
@ -226,8 +171,14 @@
/>
<!-- 添加或修改工程质量监管与检查对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-dialog
:title="title"
:visible.sync="open"
width="1200px"
append-to-body
@close="closeDiglog"
>
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-form-item label="检查内容" prop="inspectContent">
<el-input
v-model="form.inspectContent"
@ -238,25 +189,22 @@
<el-form-item label="检查单位" prop="inspectUnit">
<el-input v-model="form.inspectUnit" placeholder="请输入检查单位" />
</el-form-item>
<el-form-item label="检察人员" prop="inspectPerson">
<el-input v-model="form.inspectPerson" placeholder="请输入检察人员" />
</el-form-item>
<el-form-item label="检查意见报告" prop="inspectOpinion">
<el-form-item label="现场检查人员" prop="inspectPerson">
<el-input
v-model="form.inspectOpinion"
type="textarea"
placeholder="请输入内容"
v-model="form.inspectPerson"
placeholder="请输入现场检查人员"
/>
</el-form-item>
<el-form-item label="检查意见报告" prop="inspectTime">
<el-form-item label="检查时间" prop="inspectTime">
<el-date-picker
clearable
size="small"
style="width: 200px"
style="width: 100%"
v-model="form.inspectTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择检查意见报告"
placeholder="选择检查时间"
>
</el-date-picker>
</el-form-item>
@ -267,23 +215,31 @@
placeholder="请输入内容"
/>
</el-form-item>
<el-form-item label="整改落实情况" prop="createUid">
<el-input v-model="form.createUid" placeholder="请输入整改落实情况" />
</el-form-item>
<el-form-item label="整改落实情况" prop="updateUid">
<el-input v-model="form.updateUid" placeholder="请输入整改落实情况" />
</el-form-item>
<el-form-item label="整改落实情况" prop="owerDept">
<el-input v-model="form.owerDept" placeholder="请输入整改落实情况" />
</el-form-item>
<el-form-item label="整改落实情况" prop="remarks">
<el-input v-model="form.remarks" placeholder="请输入整改落实情况" />
</el-form-item>
<el-form-item label="整改落实情况" prop="proCode">
<el-input v-model="form.proCode" placeholder="请输入整改落实情况" />
</el-form-item>
<el-form-item label="整改落实情况" prop="proNo">
<el-input v-model="form.proNo" placeholder="请输入整改落实情况" />
<el-form-item label="检查意见报告" prop="inspectOpinion">
<!-- <el-input
v-model="form.inspectOpinion"
type="textarea"
placeholder="请输入内容"
/> -->
<el-upload
class="upload-demo"
action="thinking/common/upload"
:headers="headers"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:on-success="submitUpload"
:file-list="fileList"
>
<el-button size="small" type="primary" plain>
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
<div slot="tip" class="el-upload__tip">
支持jpg/png/pdf/word/excel文件等不超过100M
</div>
</el-upload>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -303,6 +259,8 @@ import {
updateInspect,
exportInspect,
} from "@/api/build/inspect";
import { getToken } from "@/utils/auth";
import { getFileStream } from "@/api/system/upload";
export default {
name: "Inspect",
@ -350,12 +308,21 @@ export default {
form: {},
//
rules: {},
//
fileList: [],
//
headers: {
jianwei: "jwtech " + getToken(),
},
};
},
created() {
this.getList();
},
methods: {
closeDiglog() {
this.fileList = [];
},
/** 查询工程质量监管与检查列表 */
getList() {
this.loading = true;
@ -444,6 +411,9 @@ export default {
const id = row.id || this.ids;
getInspect(id).then((response) => {
this.form = response.data;
if (response.data.inspectOpinion) {
this.fileList = JSON.parse(response.data.inspectOpinion);
}
this.open = true;
this.title = "修改工程质量监管与检查";
});
@ -452,6 +422,9 @@ export default {
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.form.proNo = this.proNo;
this.form.proCode = this.proCode;
this.form.inspectOpinion = JSON.stringify(this.fileList);
if (this.form.id != null) {
updateInspect(this.form).then((response) => {
if (response.code === 200) {
@ -493,27 +466,53 @@ export default {
this.$message.warning("请选择要删除的数据!!");
}
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
let message = "是否确认导出所有的数据项?";
if (this.ids) {
message = "是否确认导出选中的数据项?";
queryParams.ids = this.ids;
}
this.$confirm(message, "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return exportInspect(queryParams);
})
.then((response) => {
this.downloadFile(response, true, response.msg);
// this.download(response.msg);
})
.catch(function () {});
//
submitUpload(_, fileList) {
console.log("fileList", fileList);
this.fileList.push({
name: fileList.name,
fileName: fileList.response.fileName,
url: fileList.response.url,
uid: fileList.uid,
});
},
//
downloadFile(scope, index) {
console.log(scope);
let file = JSON.parse(scope.row.contractFile)[index];
this.handlePreview(file);
},
// ,
downloadFile2(info, index) {
console.log(info);
this.handlePreview(info);
},
handleRemove(file, fileList) {
// console.log(file, fileList);
let index = this.fileList.findIndex((item) => item.uid === file.uid);
//
this.fileList.splice(index, 1);
},
//
handlePreview(file) {
// console.log(file);
getFileStream({ fileName: file.fileName }).then((res) => {
const blob = new Blob([res], {
// type
// application/xlsx application/zip
type: "application/xlsx",
}); //excel,pdf
const href = URL.createObjectURL(blob); //URLblob
const a = document.createElement("a"); //a
a.style.display = "none";
a.href = href; //
a.download = file.name; //
a.click(); //
URL.revokeObjectURL(a.href); //URL
});
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}`);
},
},
};

466
jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/components/divAssess.vue

@ -0,0 +1,466 @@
<template>
<div class="app-container">
<el-table v-loading="loading" :data="divisionRateList">
<el-table-column label="序号" type="index" width="100" align="center" />
<!-- <el-table-column label="单位工程id" align="center" prop="unitId" /> -->
<el-table-column
label="单位工程名称"
align="center"
prop="unitName"
min-width="120"
/>
<el-table-column
label="分部工程名称"
align="center"
prop="divisionalWork"
min-width="120"
/>
<el-table-column
label="评定时间"
align="center"
prop="evaluateTime"
min-width="120"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.evaluateTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
label="质量等级"
align="center"
prop="qualityLevel"
min-width="120"
/>
<el-table-column
label="单元工程优良率"
align="center"
prop="cellProjectRate"
min-width="120"
/>
<!-- <el-table-column
label="关键部位和重要隐藏单元优良率"
align="center"
prop="majorCellRate"
/>
<el-table-column
label="分部工程质量评定表"
align="center"
prop="divisionalAttachment"
/> -->
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="180"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['build:divisionRate:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['build:divisionRate:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改分部工程质量评定对话框 -->
<el-dialog
:title="title"
:visible.sync="open"
width="1200px"
append-to-body
@close="closeDialog"
:close-on-click-modal="false"
>
<el-form ref="form" :model="form" :rules="rules" label-width="150px">
<!-- <el-form-item label="单位工程id" prop="unitId">
<el-input v-model="form.unitId" placeholder="请输入单位工程id" />
</el-form-item> -->
<el-form-item label="单位工程名称" prop="unitName">
<!-- <el-input v-model="form.unitName" placeholder="请输入单位工程名称" /> -->
<el-select
v-model="form.unitName"
placeholder="请选择单位工程名称"
filterable
clearable
size="small"
style="width: 100%"
>
<el-option
v-for="dict in unitProjectOptions"
:key="dict.id"
:label="dict.unitProjectName"
:value="dict.unitProjectName"
@click.native="chooseUnitProjectName(dict)"
/>
</el-select>
</el-form-item>
<el-form-item label="分部工程名称" prop="divisionalWork">
<!-- <el-input
v-model="form.divisionalWork"
placeholder="请输入分部工程名称"
:disabled="divProjectOptions.length === 0"
/> -->
<el-select
v-model="form.divisionalWork"
placeholder="请选择单位工程名称"
filterable
clearable
size="small"
style="width: 100%"
:disabled="divProjectOptionsStatus"
>
<el-option
v-for="dict in divProjectOptions"
:key="dict.id"
:label="dict.divisionalWork"
:value="dict.divisionalWork"
/>
</el-select>
</el-form-item>
<el-form-item label="评定时间" prop="evaluateTime">
<el-date-picker
clearable
size="small"
style="width: 100%"
v-model="form.evaluateTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择评定时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="质量等级" prop="qualityLevel">
<!-- <el-input v-model="form.qualityLevel" placeholder="请输入质量等级" /> -->
<el-select
v-model="form.qualityLevel"
placeholder="请选择质量等级"
filterable
clearable
size="small"
style="width: 100%"
>
<el-option
v-for="dict in qualityLevelOptions"
:key="dict.dictLabel + dict.id"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="单元工程优良率" prop="cellProjectRate">
<el-input
v-model="form.cellProjectRate"
placeholder="请输入单元工程优良率"
>
<template slot="append">%</template>
</el-input>
</el-form-item>
<el-form-item label="关键部位和重要隐藏单元优良率" prop="majorCellRate">
<el-input
v-model="form.majorCellRate"
placeholder="请输入关键部位和重要隐藏单元优良率"
/>
</el-form-item>
<el-form-item label="分部工程质量评定表" prop="divisionalAttachment">
<el-input
v-model="form.divisionalAttachment"
placeholder="请输入分部工程质量评定表"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listDivisionRate,
getDivisionRate,
delDivisionRate,
addDivisionRate,
updateDivisionRate,
exportDivisionRate,
} from "@/api/build/divisionRate";
import { listUnitProject } from "@/api/build/unitProject";
import { formUnitGetSubProject } from "@/api/build/subProject";
export default {
name: "DivisionRate",
props: ["proNo", "proCode"],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
divisionRateList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 3,
ids: null,
data: {
unitId: null,
unitName: null,
divisionalWork: null,
evaluateTime: null,
qualityLevel: null,
cellProjectRate: null,
majorCellRate: null,
divisionalAttachment: null,
createUid: null,
updateUid: null,
proCode: null,
proNo: null,
},
},
//
form: {},
//
rules: {},
unitProjectOptions: [],
divProjectOptions: [],
divProjectOptionsStatus: true,
qualityLevelOptions: [],
};
},
created() {
listUnitProject({
data: {
proNo: this.proNo,
proCode: this.proCode,
},
}).then((response) => {
this.unitProjectOptions = response.records;
});
this.getList();
this.getDicts("quality_level").then((response) => {
this.qualityLevelOptions = response.data;
});
},
methods: {
closeDialog() {
this.divProjectOptionsStatus = true;
},
chooseUnitProjectName(data) {
this.form.unitId = data.id;
formUnitGetSubProject(data.id).then((response) => {
console.log(response);
this.divProjectOptions = response.data;
this.divProjectOptionsStatus = false;
});
},
/** 查询分部工程质量评定列表 */
getList() {
this.loading = true;
listDivisionRate(this.queryParams).then((response) => {
this.divisionRateList = response.records;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
unitId: null,
unitName: null,
divisionalWork: null,
evaluateTime: null,
qualityLevel: null,
cellProjectRate: null,
majorCellRate: null,
divisionalAttachment: null,
createUid: null,
updateUid: null,
proCode: null,
proNo: null,
createTime: null,
updateTime: null,
remark: null,
};
this.resetForm("form");
},
//
resetQueryForm() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data: {
id: null,
unitId: null,
unitName: null,
divisionalWork: null,
evaluateTime: null,
qualityLevel: null,
cellProjectRate: null,
majorCellRate: null,
divisionalAttachment: null,
createUid: null,
updateUid: null,
proCode: null,
proNo: null,
createTime: null,
updateTime: null,
remark: null,
},
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetQueryForm();
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加分部工程质量评定";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getDivisionRate(id).then((response) => {
this.form = response.data;
// console.log(response.data);
if (response.data.unitId) this.divProjectOptionsStatus = false;
formUnitGetSubProject(response.data.unitId).then((res) => {
// console.log(res.data.id, res.data);
this.divProjectOptions = res.data;
});
this.open = true;
this.title = "修改分部工程质量评定";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateDivisionRate(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addDivisionRate(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
if (ids) {
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delDivisionRate(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(function () {});
} else {
this.$message.warning("请选择要删除的数据!!");
}
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
let message = "是否确认导出所有的数据项?";
if (this.ids) {
message = "是否确认导出选中的数据项?";
queryParams.ids = this.ids;
}
this.$confirm(message, "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return exportDivisionRate(queryParams);
})
.then((response) => {
this.downloadFile(response, true, response.msg);
// this.download(response.msg);
})
.catch(function () {});
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/css/dialog.scss";
</style>

380
jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/components/unitAssess.vue

@ -0,0 +1,380 @@
<template>
<div class="app-container">
<el-table v-loading="loading" :data="unitRateList">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="序号" type="index" width="100" align="center" />
<el-table-column
label="单位工程名称"
align="center"
prop="unitName"
min-width="120"
/>
<el-table-column
label="评定时间"
align="center"
prop="evaluateTime"
min-width="120"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.evaluateTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
label="分部工程优良率"
align="center"
prop="divisionalRate"
min-width="120"
/>
<el-table-column
label="主要分部工程优良率"
align="center"
prop="majorDivisionalRate"
min-width="150"
/>
<el-table-column
label="外观质量优良率"
align="center"
prop="appearanceRate"
min-width="120"
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="180"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['build:unitRate:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['build:unitRate:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改单位工程质量评定对话框 -->
<el-dialog
:title="title"
:visible.sync="open"
width="1200px"
append-to-body
:close-on-click-modal="false"
>
<el-form ref="form" :model="form" :rules="rules" label-width="150px">
<el-form-item label="单位工程名称" prop="unitName">
<!-- <el-input v-model="form.unitName" placeholder="请输入单位工程名称" /> -->
<el-select
v-model="form.unitName"
placeholder="请选择单位工程名称"
filterable
clearable
size="small"
style="width: 100%"
>
<el-option
v-for="dict in unitProjectOptions"
:key="dict.id"
:label="dict.unitProjectName"
:value="dict.unitProjectName"
/>
</el-select>
</el-form-item>
<el-form-item label="评定时间" prop="evaluateTime">
<el-date-picker
clearable
size="small"
style="width: 100%"
v-model="form.evaluateTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择评定时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="分部工程优良率" prop="divisionalRate">
<el-input
v-model="form.divisionalRate"
placeholder="请输入分部工程优良率"
>
<template slot="append">%</template>
</el-input>
</el-form-item>
<el-form-item label="主要分部工程优良率" prop="majorDivisionalRate">
<el-input
v-model="form.majorDivisionalRate"
placeholder="请输入主要分部工程优良率"
>
<template slot="append">%</template>
</el-input>
</el-form-item>
<el-form-item label="外观优良率" prop="appearanceRate">
<el-input
v-model="form.appearanceRate"
placeholder="请输入外观优良率"
>
<template slot="append">%</template>
</el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listUnitRate,
getUnitRate,
delUnitRate,
addUnitRate,
updateUnitRate,
exportUnitRate,
} from "@/api/build/unitRate";
import { listUnitProject } from "@/api/build/unitProject";
export default {
name: "UnitRate",
props: ["proNo", "proCode"],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
unitRateList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 3,
ids: null,
data: {
unitName: null,
evaluateTime: null,
divisionalRate: null,
majorDivisionalRate: null,
appearanceRate: null,
createUid: null,
updateUid: null,
proCode: null,
proNo: null,
},
},
//
form: {},
//
rules: {},
unitProjectOptions: [],
};
},
created() {
listUnitProject({
data: {
proNo: this.proNo,
proCode: this.proCode,
},
}).then((response) => {
this.unitProjectOptions = response.records;
});
this.getList();
},
methods: {
/** 查询单位工程质量评定列表 */
getList() {
this.loading = true;
listUnitRate(this.queryParams).then((response) => {
this.unitRateList = response.records;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
unitName: null,
evaluateTime: null,
divisionalRate: null,
majorDivisionalRate: null,
appearanceRate: null,
createUid: null,
updateUid: null,
createTime: null,
updateTime: null,
proCode: null,
proNo: null,
remark: null,
};
this.resetForm("form");
},
//
resetQueryForm() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data: {
id: null,
unitName: null,
evaluateTime: null,
divisionalRate: null,
majorDivisionalRate: null,
appearanceRate: null,
createUid: null,
updateUid: null,
createTime: null,
updateTime: null,
proCode: null,
proNo: null,
remark: null,
},
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetQueryForm();
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加单位工程质量评定";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getUnitRate(id).then((response) => {
this.form = response.data;
this.open = true;
this.title = "修改单位工程质量评定";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateUnitRate(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addUnitRate(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
if (ids) {
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delUnitRate(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(function () {});
} else {
this.$message.warning("请选择要删除的数据!!");
}
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
let message = "是否确认导出所有的数据项?";
if (this.ids) {
message = "是否确认导出选中的数据项?";
queryParams.ids = this.ids;
}
this.$confirm(message, "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return exportUnitRate(queryParams);
})
.then((response) => {
this.downloadFile(response, true, response.msg);
// this.download(response.msg);
})
.catch(function () {});
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/css/dialog.scss";
</style>

28
jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/components/viewReport.vue

@ -0,0 +1,28 @@
<template>
<div>检测报告统计</div>
</template>
<script>
import {
listAttachmentRate,
listAttachment,
getAttachment,
delAttachment,
addAttachment,
updateAttachment,
exportAttachment,
} from "@/api/build/attachment";
export default {
props: ["supervisionId"],
created() {
listAttachmentRate({
data: {
supervisionId: this.supervisionId,
},
}).then((res) => {
console.log(5484864684684, res);
});
},
methods: {},
};
</script>

634
jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/engineeringQualityEvaluation.vue

@ -1,515 +1,181 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="工程监测id" prop="supervisionId">
<el-input
v-model="queryParams.data.supervisionId"
placeholder="请输入工程监测id"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工程监测id" prop="reportAttachment">
<el-input
v-model="queryParams.data.reportAttachment"
placeholder="请输入工程监测id"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工程监测id" prop="isOk">
<el-input
v-model="queryParams.data.isOk"
placeholder="请输入工程监测id"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工程监测id" prop="reportAttachmentName">
<el-input
v-model="queryParams.data.reportAttachmentName"
placeholder="请输入工程监测id"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工程监测id" prop="uploadTime">
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="queryParams.uploadTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择工程监测id"
>
</el-date-picker>
</el-form-item>
<el-form-item label="工程监测id" prop="remarks">
<el-input
v-model="queryParams.data.remarks"
placeholder="请输入工程监测id"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工程监测id" prop="createUid">
<el-input
v-model="queryParams.data.createUid"
placeholder="请输入工程监测id"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工程监测id" prop="updateUid">
<el-input
v-model="queryParams.data.updateUid"
placeholder="请输入工程监测id"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工程监测id" prop="owerDept">
<el-input
v-model="queryParams.data.owerDept"
placeholder="请输入工程监测id"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工程监测id" prop="reportType">
<el-select
v-model="queryParams.data.reportType"
placeholder="请选择工程监测id"
clearable
size="small"
>
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item>
<el-button
type="cyan"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<div>
<!-- ===============分部工程质量评定==================== -->
<div class="listTitle">
<span>分部工程质量评定</span>
<span class="addBtn" @click="openDivDiglog">
<i class="el-icon-plus"></i>
新增
</span>
</div>
<divAssess ref="divAssess" :proNo="proNo" :proCode="proCode" />
<!-- ===============单位工程质量评定==================== -->
<div class="listTitle">
<span>单位工程质量评定</span>
<span class="addBtn" @click="openUnitDiglog">
<i class="el-icon-plus"></i>
新增
</span>
</div>
<unitAssess ref="unitAssess" :proNo="proNo" :proCode="proCode" />
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['build:attachment:add']"
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['build:attachment:edit']"
>修改</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['build:attachment:remove']"
>删除</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['build:attachment:export']"
>导出</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="attachmentList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" type="index" width="50" align="center" />
<el-table-column label="工程监测id" align="center" prop="supervisionId" />
<el-table-column
label="工程监测id"
align="center"
prop="reportAttachment"
/>
<el-table-column label="工程监测id" align="center" prop="isOk" />
<el-table-column
label="工程监测id"
align="center"
prop="reportAttachmentName"
/>
<el-table-column
label="工程监测id"
align="center"
prop="uploadTime"
width="180"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.uploadTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column label="工程监测id" align="center" prop="remarks" />
<el-table-column label="工程监测id" align="center" prop="createUid" />
<el-table-column label="工程监测id" align="center" prop="updateUid" />
<el-table-column label="工程监测id" align="center" prop="owerDept" />
<el-table-column label="工程监测id" align="center" prop="reportType" />
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['build:attachment:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['build:attachment:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改工程质量报告对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="工程监测id" prop="supervisionId">
<el-input
v-model="form.supervisionId"
placeholder="请输入工程监测id"
/>
</el-form-item>
<el-form-item label="工程监测id" prop="reportAttachment">
<el-input
v-model="form.reportAttachment"
placeholder="请输入工程监测id"
/>
</el-form-item>
<el-form-item label="工程监测id" prop="isOk">
<el-input v-model="form.isOk" placeholder="请输入工程监测id" />
</el-form-item>
<el-form-item label="工程监测id" prop="reportAttachmentName">
<el-input
v-model="form.reportAttachmentName"
placeholder="请输入工程监测id"
/>
</el-form-item>
<el-form-item label="工程监测id" prop="uploadTime">
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="form.uploadTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择工程监测id"
>
</el-date-picker>
</el-form-item>
<el-form-item label="工程监测id" prop="remarks">
<el-input v-model="form.remarks" placeholder="请输入工程监测id" />
</el-form-item>
<el-form-item label="工程监测id" prop="createUid">
<el-input v-model="form.createUid" placeholder="请输入工程监测id" />
</el-form-item>
<el-form-item label="工程监测id" prop="updateUid">
<el-input v-model="form.updateUid" placeholder="请输入工程监测id" />
</el-form-item>
<el-form-item label="工程监测id" prop="owerDept">
<el-input v-model="form.owerDept" placeholder="请输入工程监测id" />
</el-form-item>
<el-form-item label="工程监测id" prop="reportType">
<el-select v-model="form.reportType" placeholder="请选择工程监测id">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<div class="listTitle">
<span>项目评定</span>
</div>
<div class="footerForm">
<el-row :gutter="15">
<el-form ref="form" :model="form">
<el-col :span="8">
<el-form-item
label="项目是否完成评定"
label-width="124px"
prop="isEvaluate"
>
<el-radio v-model="form.isEvaluate" label="1"></el-radio>
<el-radio v-model="form.isEvaluate" label="0"></el-radio>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="评定时间"
prop="evaluateTime"
label-width="84px"
>
<el-date-picker
clearable
size="small"
style="width: 100%"
v-model="form.evaluateTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择评定时间"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="质量等级"
label-width="84px"
prop="qualityLevel"
>
<el-select
v-model="form.qualityLevel"
placeholder="请选择质量等级"
filterable
clearable
size="small"
style="width: 100%"
>
<el-option
v-for="dict in qualityLevelOptions"
:key="dict.dictLabel + dict.id"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24" style="text-align: right; margin-top: 10px">
<el-button type="primary" @click="submitForm">保存</el-button>
</el-col>
</el-form>
</el-row>
</div>
</div>
</template>
<script>
import divAssess from "./components/divAssess.vue";
import unitAssess from "./components/unitAssess.vue";
import {
listAttachment,
getAttachment,
delAttachment,
addAttachment,
updateAttachment,
exportAttachment,
} from "@/api/build/attachment";
listInfo,
getInfo,
delInfo,
addInfo,
updateInfo,
exportInfo,
} from "@/api/build/projectInfo";
export default {
name: "Attachment",
props: ["proNo", "proCode"],
components: {
divAssess,
unitAssess,
},
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
attachmentList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
ids: null,
data: {
supervisionId: null,
reportAttachment: null,
isOk: null,
reportAttachmentName: null,
uploadTime: null,
remarks: null,
createUid: null,
updateUid: null,
owerDept: null,
reportType: null,
},
},
//
form: {},
//
rules: {},
qualityLevelOptions: [],
};
},
created() {
this.getList();
this.getDicts("quality_level").then((response) => {
this.qualityLevelOptions = response.data;
});
},
methods: {
/** 查询工程质量报告列表 */
getList() {
this.loading = true;
listAttachment(this.queryParams).then((response) => {
this.attachmentList = response.records;
this.total = response.total;
this.loading = false;
getInfo(this.$route.query.baseDataId).then((response) => {
// console.log("response,", response);
this.form = response.data;
console.log("basedata", this.form);
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
supervisionId: null,
reportAttachment: null,
isOk: null,
reportAttachmentName: null,
uploadTime: null,
remarks: null,
createTime: null,
createUid: null,
updateUid: null,
updateTime: null,
owerDept: null,
reportType: null,
};
this.resetForm("form");
openDivDiglog() {
this.$refs.divAssess.handleAdd();
},
//
resetQueryForm() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data: {
id: null,
supervisionId: null,
reportAttachment: null,
isOk: null,
reportAttachmentName: null,
uploadTime: null,
remarks: null,
createTime: null,
createUid: null,
updateUid: null,
updateTime: null,
owerDept: null,
reportType: null,
},
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetQueryForm();
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加工程质量报告";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getAttachment(id).then((response) => {
this.form = response.data;
this.open = true;
this.title = "修改工程质量报告";
});
openUnitDiglog() {
this.$refs.unitAssess.handleAdd();
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateAttachment(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addAttachment(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
updateInfo(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.getList();
}
});
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
if (ids) {
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delAttachment(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(function () {});
} else {
this.$message.warning("请选择要删除的数据!!");
}
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
let message = "是否确认导出所有的数据项?";
if (this.ids) {
message = "是否确认导出选中的数据项?";
queryParams.ids = this.ids;
}
this.$confirm(message, "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return exportAttachment(queryParams);
})
.then((response) => {
this.downloadFile(response, true, response.msg);
// this.download(response.msg);
})
.catch(function () {});
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/css/dialog.scss";
// ::v-deep {
// .el-dialog {
// margin-top: 10vh !important;
// }
// }
.footerForm {
background: #fff;
padding: 10px;
::v-deep {
.el-form-item {
margin-bottom: 0;
}
}
}
.listTitle {
font-size: 14px;
padding-left: 10px;
padding-right: 30px;
margin: 20px 0;
border-left: 2px solid #36b29e;
display: flex;
justify-content: space-between;
span:nth-child(1) {
font-weight: bold;
}
.addBtn {
color: #36b29e;
cursor: pointer;
}
.addBtn:hover {
color: #31a08e;
}
}
</style>

830
jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/engineeringQualityInspection.vue

File diff suppressed because it is too large

14
jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/itemDivision/components/itemDivisionManage.vue

@ -314,18 +314,18 @@ export default {
@import "@/assets/css/dialog.scss";
::v-deep {
.el-dialog__wrapper {
transform: scale(1);
// transform: scale(1);
}
.el-dialog {
margin-top: 10vh !important;
height: 800px;
margin-top: 4vh !important;
height: 850px;
overflow: auto;
.el-dialog__footer {
position: fixed;
right: 35px;
bottom: 45px;
z-index: 2100;
// position: fixed;
// right: 35px;
// bottom: 45px;
// z-index: 2100;
}
}
}

258
jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/itemDivision/components/segmentProject.vue

@ -4,56 +4,149 @@
<div class="dialog-footer">
<el-button @click="submitForm"> </el-button>
</div>
<el-form ref="form" :model="form" :rules="rules" label-width="180px">
<el-form-item label="单位工程名称" prop="unitProjectName">
<el-input
v-model="form.unitProjectName"
placeholder="请输入单位工程名称"
/>
</el-form-item>
<el-form-item label="是否主要分部工程" prop="isMajor">
<!-- <el-input
<el-row>
<el-col :span="24">
<el-form-item label="单位工程名称" prop="unitProjectName">
<!-- <el-input
v-model="form.unitProjectName"
placeholder="请输入单位工程名称"
/> -->
<el-select
v-model="form.unitProjectName"
placeholder="请选择单位工程名称"
clearable
size="small"
style="width: 100%"
>
<el-option
v-for="dict in unitProjectList"
:key="dict.id"
:label="dict.unitProjectName"
:value="dict.unitProjectName"
@click.native="chooseUnitProjectName(dict.id)"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="是否主要分部工程" prop="isMajor">
<!-- <el-input
v-model="form.isMajor"
placeholder="请选择是否主要分部工程"
/> -->
<el-select
v-model="form.isMajor"
placeholder="请选择是否主要分部工程"
clearable
size="small"
style="width: 100%"
>
<el-option
v-for="dict in whetherOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="分部工程名称" prop="divisionalWork">
<el-input
v-model="form.divisionalWork"
placeholder="请输入分部工程名称"
/>
</el-form-item>
<el-form-item label="分部工程编号" prop="divisionalWorkCode">
<el-input
v-model="form.divisionalWorkCode"
placeholder="请输入分部工程名称"
/>
</el-form-item>
<el-form-item label="单元工程数量(个)" prop="unitNumber">
<el-input
v-model="form.unitNumber"
placeholder="请输入单元工程数量"
/>
</el-form-item>
<el-select
v-model="form.isMajor"
placeholder="请选择是否主要分部工程"
clearable
size="small"
style="width: 100%"
>
<el-option
v-for="dict in whetherOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="分部工程名称" prop="divisionalWork">
<el-input
v-model="form.divisionalWork"
placeholder="请输入分部工程名称"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="分部工程编号" prop="divisionalWorkCode">
<el-input
v-model="form.divisionalWorkCode"
placeholder="请输入分部工程名称"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="单元工程数量(个)" prop="unitNumber">
<el-input
v-model="form.unitNumber"
placeholder="请输入单元工程数量"
/>
</el-form-item>
</el-col>
<el-col :span="12" style="height: 51px">
<div
style="
height: 46px;
display: flex;
justify-content: center;
align-items: center;
"
>
<el-button icon="el-icon-circle-plus-outline"
>新增重要单元</el-button
>
</div>
</el-col>
</el-row>
<!-- 表格头 -->
<el-row>
<el-col :span="8">
<div class="tableTitle">单元工程名称</div>
<!-- <el-form-item label="单元工程名称" label=> -->
<!-- <el-input placeholder="请输入单元工程名称" /> -->
<!-- </el-form-item> -->
</el-col>
<el-col :span="8">
<div class="tableTitle">单元工程编号</div>
<!-- <el-form-item label="单元工程编号">
<el-input placeholder="请输入单元工程编号" />
</el-form-item> -->
</el-col>
<el-col :span="4">
<div class="tableTitle">位置</div>
<!-- <el-form-item label="位置">
<el-input placeholder="请输入位置" />
</el-form-item> -->
</el-col>
<el-col :span="4">
<div class="tableTitle">操作</div>
<!-- <el-form-item label="操作"> 4 </el-form-item> -->
</el-col>
</el-row>
<!-- 列表项 -->
<el-row>
<el-col :span="8">
<!-- <el-form-item label="单元工程名称"> -->
<el-input v-model="value" placeholder="请输入单元工程名称" />
<!-- </el-form-item> -->
</el-col>
<el-col :span="8">
<!-- <el-form-item label="单元工程编号"> -->
<el-input v-model="value" placeholder="请输入单元工程编号" />
<!-- </el-form-item> -->
</el-col>
<el-col :span="4">
<!-- <el-form-item label="位置"> -->
<el-input v-model="value" placeholder="请输入位置" />
<!-- </el-form-item> -->
</el-col>
<el-col :span="4" style="text-align: center">
<el-button type="primary" plain>删除</el-button>
</el-col>
</el-row>
<!-- <el-form-item label="单位id" prop="unitId">
<el-input v-model="form.unitId" placeholder="请输入单位id" />
</el-form-item> -->
</el-form>
</div>
<div class="listTitle" style="margin-top: 0">
<span>分部工程划分</span>
</div>
<el-table
v-loading="loading"
:data="subProjectList"
@ -124,7 +217,13 @@
/>
<!-- 添加或修改分部工程对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-dialog
:title="title"
:visible.sync="open"
width="800px"
append-to-body
:close-on-click-modal="false"
>
<el-form
ref="editForm"
:model="editForm"
@ -132,10 +231,25 @@
label-width="150px"
>
<el-form-item label="单位工程名称" prop="unitProjectName">
<el-input
<!-- <el-input
v-model="editForm.unitProjectName"
placeholder="请输入单位工程名称"
/>
/> -->
<el-select
v-model="editForm.unitProjectName"
placeholder="请选择单位工程名称"
clearable
size="small"
style="width: 100%"
>
<el-option
v-for="dict in unitProjectList"
:key="dict.id"
:label="dict.unitProjectName"
:value="dict.unitProjectName"
@click.native="chooseUnitProjectName(dict.id, 'edit')"
/>
</el-select>
</el-form-item>
<el-form-item label="是否主要分部工程" prop="isMajor">
<!-- <el-input
@ -196,12 +310,21 @@ import {
updateSubProject,
exportSubProject,
} from "@/api/build/subProject";
import {
listUnitProject,
getUnitProject,
delUnitProject,
addUnitProject,
updateUnitProject,
exportUnitProject,
} from "@/api/build/unitProject";
export default {
name: "SubProject",
props: ["proNo", "proCode"],
data() {
return {
value: "",
//
loading: true,
//
@ -266,15 +389,29 @@ export default {
},
//
whetherOptions: [],
unitProjectList: [],
};
},
created() {
listUnitProject({
data: { proNo: this.proNo, proCode: this.proCode },
}).then((response) => {
this.unitProjectList = response.records;
console.log("this.unitProjectList", this.unitProjectList);
});
this.getList();
this.getDicts("whether").then((response) => {
this.whetherOptions = response.data;
});
},
methods: {
chooseUnitProjectName(id, key) {
if (key === "edit") {
this.editForm.unitId = id;
} else {
this.form.unitId = id;
}
},
//
whetherFormat(row) {
return this.selectDictLabel(this.whetherOptions, row.isMajor);
@ -450,16 +587,17 @@ export default {
@import "@/assets/css/dialog.scss";
.formBox {
border: 1px solid #dddddd;
margin-bottom: 10px;
margin-bottom: 20px;
padding: 10px;
.dialog-footer {
display: flex;
justify-content: right;
margin-bottom: 10px;
margin-bottom: 5px;
}
::v-deep {
.el-form-item {
border: 1px solid #e2e2e2;
// margin-bottom: 0;
.el-form-item__label {
border-right: 1px solid #e2e2e2;
background: #fbfbfb;
@ -470,5 +608,33 @@ export default {
}
}
}
.tableTitle {
height: 49px;
line-height: 49px;
background: #fbfbfb;
border: 1px solid #e2e2e2;
color: #595959;
font-weight: bold;
text-align: center;
}
}
.listTitle {
font-size: 14px;
padding-left: 10px;
padding-right: 30px;
margin: 20px 0;
border-left: 2px solid #36b29e;
display: flex;
justify-content: space-between;
span:nth-child(1) {
font-weight: bold;
}
.addBtn {
color: #36b29e;
cursor: pointer;
}
.addBtn:hover {
color: #31a08e;
}
}
</style>

34
jwtech-admin-page/src/views/building/projectInfo/projectProcess/qualityControl/options/itemDivision/components/unitProject.vue

@ -28,6 +28,9 @@
</div>
</div>
<div class="listTitle" style="margin-top: 0">
<span>单位工程划分</span>
</div>
<el-table
v-loading="loading"
:data="unitProjectList"
@ -107,7 +110,13 @@
/>
<!-- 添加或修改单位工程对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-dialog
:title="title"
:visible.sync="open"
width="800px"
append-to-body
:close-on-click-modal="false"
>
<el-form
ref="editForm"
:model="editForm"
@ -423,15 +432,17 @@ export default {
@import "@/assets/css/dialog.scss";
.formBox {
border: 1px solid #dddddd;
margin-bottom: 10px;
margin-bottom: 20px;
padding: 10px;
.dialog-footer {
margin-top: 5px;
display: flex;
justify-content: center;
}
::v-deep {
.el-form-item {
border: 1px solid #e2e2e2;
// margin-bottom: 0;
.el-form-item__label {
border-right: 1px solid #e2e2e2;
background: #fbfbfb;
@ -443,4 +454,23 @@ export default {
}
}
}
.listTitle {
font-size: 14px;
padding-left: 10px;
padding-right: 30px;
margin: 20px 0;
border-left: 2px solid #36b29e;
display: flex;
justify-content: space-between;
span:nth-child(1) {
font-weight: bold;
}
.addBtn {
color: #36b29e;
cursor: pointer;
}
.addBtn:hover {
color: #31a08e;
}
}
</style>

Loading…
Cancel
Save