提交代码
parent
9ac4cb4e03
commit
27db4819ba
|
@ -16,10 +16,10 @@
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="部门名称" prop="deptName">
|
<el-form-item label="单位名称" prop="deptName">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.deptName"
|
v-model="queryParams.deptName"
|
||||||
placeholder="请输入部门名称"
|
placeholder="请输入单位名称"
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
|
@ -40,6 +40,17 @@
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="封样时间">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="daterangeSealDate"
|
||||||
|
style="width: 240px"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
type="daterange"
|
||||||
|
range-separator="-"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="指定品牌" prop="contractBrand">
|
<el-form-item label="指定品牌" prop="contractBrand">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.contractBrand"
|
v-model="queryParams.contractBrand"
|
||||||
|
@ -56,27 +67,6 @@
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="封样时间">
|
|
||||||
<el-date-picker
|
|
||||||
v-model="daterangeSealDate"
|
|
||||||
style="width: 240px"
|
|
||||||
value-format="yyyy-MM-dd"
|
|
||||||
type="daterange"
|
|
||||||
range-separator="-"
|
|
||||||
start-placeholder="开始日期"
|
|
||||||
end-placeholder="结束日期"
|
|
||||||
></el-date-picker>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="数据状态" prop="isDel">
|
|
||||||
<el-select v-model="queryParams.isDel" placeholder="请选择数据状态" clearable>
|
|
||||||
<el-option
|
|
||||||
v-for="dict in dict.type.sys_common_isdel"
|
|
||||||
:key="dict.value"
|
|
||||||
:label="dict.label"
|
|
||||||
:value="dict.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
|
||||||
>搜索</el-button
|
>搜索</el-button
|
||||||
|
@ -141,29 +131,92 @@
|
||||||
@selection-change="handleSelectionChange"
|
@selection-change="handleSelectionChange"
|
||||||
>
|
>
|
||||||
<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="projectName" />
|
<el-table-column
|
||||||
<el-table-column label="部门名称" align="center" prop="deptName" />
|
label="项目名称"
|
||||||
<el-table-column label="封样主图" align="center" prop="mainImage" width="100">
|
align="center"
|
||||||
|
prop="projectName"
|
||||||
|
width="200"
|
||||||
|
fixed="left"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="单位名称"
|
||||||
|
align="center"
|
||||||
|
prop="deptName"
|
||||||
|
width="180"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column label="封样主图" align="center" prop="mainImage" width="220">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<image-preview :src="scope.row.mainImage" :width="50" :height="50" />
|
<el-image
|
||||||
|
ref="preview"
|
||||||
|
style="width: 200px; height: 100px"
|
||||||
|
:src="getImageUrl(scope.row.mainImage)"
|
||||||
|
@click="onPreview(scope.row.imageUrls)"
|
||||||
|
></el-image>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="图片集合" align="center" prop="imgUrls" width="100">
|
<el-table-column
|
||||||
<template slot-scope="scope">
|
label="封样名称"
|
||||||
<image-preview :src="scope.row.imgUrls" :width="50" :height="50" />
|
align="center"
|
||||||
</template>
|
prop="materialName"
|
||||||
</el-table-column>
|
width="180"
|
||||||
<el-table-column label="封样名称" align="center" prop="materialName" />
|
show-overflow-tooltip
|
||||||
<el-table-column label="使用部位" align="center" prop="usePosition" />
|
/>
|
||||||
<el-table-column label="指定品牌" align="center" prop="contractBrand" />
|
<el-table-column
|
||||||
<el-table-column label="拟用品牌" align="center" prop="useBrand" />
|
label="使用部位"
|
||||||
|
align="center"
|
||||||
|
prop="usePosition"
|
||||||
|
width="150"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="指定品牌"
|
||||||
|
align="center"
|
||||||
|
prop="contractBrand"
|
||||||
|
width="120"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="拟用品牌"
|
||||||
|
align="center"
|
||||||
|
prop="useBrand"
|
||||||
|
width="120"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
<el-table-column label="封样时间" align="center" prop="sealDate" width="180">
|
<el-table-column label="封样时间" align="center" prop="sealDate" width="180">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ parseTime(scope.row.sealDate, "{y}-{m}-{d}") }}</span>
|
<span>{{ parseTime(scope.row.sealDate, "{y}-{m}-{d} {h}:{i}") }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="会签单" align="center" prop="signFiles" width="120">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
v-if="scope.row.signFiles != null"
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-paperclip"
|
||||||
|
@click="handledownloadSignFiles(scope.row)"
|
||||||
|
v-hasPermi="['project:materialSeal:list']"
|
||||||
|
>下载会签单</el-button
|
||||||
|
>
|
||||||
|
<span v-if="scope.row.signFiles == null"> - </span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="变更单" align="center" prop="alterationFiles" width="120">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
v-if="scope.row.alterationFiles != null"
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-paperclip"
|
||||||
|
@click="handledownloadAlterationFiles(scope.row)"
|
||||||
|
v-hasPermi="['project:materialSeal:list']"
|
||||||
|
>下载变更单</el-button
|
||||||
|
>
|
||||||
|
<span v-if="scope.row.signFiles == null"> - </span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="会签单" align="center" prop="signFiles" />
|
|
||||||
<el-table-column label="变更单" align="center" prop="alterationFiles" />
|
|
||||||
<el-table-column label="数据状态" align="center" prop="isDel">
|
<el-table-column label="数据状态" align="center" prop="isDel">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<dict-tag :options="dict.type.sys_common_isdel" :value="scope.row.isDel" />
|
<dict-tag :options="dict.type.sys_common_isdel" :value="scope.row.isDel" />
|
||||||
|
@ -206,19 +259,24 @@
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 添加或修改材料封样对话框 -->
|
<!-- 添加或修改材料封样对话框 -->
|
||||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
<el-dialog :title="title" :visible.sync="open" width="780px" append-to-body>
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
<el-form-item label="项目名称" prop="projectId">
|
<el-form-item label="项目名称" prop="projectName">
|
||||||
<el-input v-model="form.projectId" placeholder="请输入项目名称" />
|
<el-input
|
||||||
|
v-model="form.projectName"
|
||||||
|
placeholder="请输入项目名称"
|
||||||
|
:disabled="true"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="部门名称" prop="deptId">
|
<el-form-item label="单位名称" prop="deptName">
|
||||||
<el-input v-model="form.deptId" placeholder="请输入部门名称" />
|
<el-input
|
||||||
|
v-model="form.deptName"
|
||||||
|
placeholder="请输入单位名称"
|
||||||
|
:disabled="true"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="封样主图" prop="mainImage">
|
<el-form-item label="封样图片" prop="imageUrls">
|
||||||
<image-upload v-model="form.mainImage" />
|
<image-upload v-model="form.imageUrls" :limit="9" />
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="图片集合" prop="imgUrls">
|
|
||||||
<image-upload v-model="form.imgUrls" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="封样名称" prop="materialName">
|
<el-form-item label="封样名称" prop="materialName">
|
||||||
<el-input v-model="form.materialName" placeholder="请输入封样名称" />
|
<el-input v-model="form.materialName" placeholder="请输入封样名称" />
|
||||||
|
@ -227,39 +285,46 @@
|
||||||
<el-input v-model="form.usePosition" placeholder="请输入使用部位" />
|
<el-input v-model="form.usePosition" placeholder="请输入使用部位" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="指定品牌" prop="contractBrand">
|
<el-form-item label="指定品牌" prop="contractBrand">
|
||||||
<el-input v-model="form.contractBrand" placeholder="请输入指定品牌" />
|
<el-input
|
||||||
|
v-model="form.contractBrand"
|
||||||
|
placeholder="请输入指定品牌"
|
||||||
|
@change="onlyFile"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="拟用品牌" prop="useBrand">
|
<el-form-item label="拟用品牌" prop="useBrand">
|
||||||
<el-input v-model="form.useBrand" placeholder="请输入拟用品牌" />
|
<el-input
|
||||||
|
v-model="form.useBrand"
|
||||||
|
placeholder="请输入拟用品牌"
|
||||||
|
@change="onlyFile"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="封样时间" prop="sealDate">
|
<el-form-item label="封样时间" prop="sealDate">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
clearable
|
clearable
|
||||||
v-model="form.sealDate"
|
v-model="form.sealDate"
|
||||||
type="date"
|
type="datetime"
|
||||||
value-format="yyyy-MM-dd"
|
default-time="10:00:00"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
placeholder="请选择封样时间"
|
placeholder="请选择封样时间"
|
||||||
|
style="width: 100%"
|
||||||
>
|
>
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="会签单" prop="signFiles">
|
<el-form-item label="会签单" prop="signFiles">
|
||||||
<file-upload v-model="form.signFiles" />
|
<file-upload
|
||||||
|
v-model="form.signFiles"
|
||||||
|
:limit="1"
|
||||||
|
:fileType="['pdf', 'png', 'jpg', 'jpeg']"
|
||||||
|
@input="fileInputSign"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="变更单" prop="alterationFiles">
|
<el-form-item label="变更单" prop="alterationFiles" v-show="isOnly">
|
||||||
<file-upload v-model="form.alterationFiles" />
|
<file-upload
|
||||||
</el-form-item>
|
v-model="form.alterationFiles"
|
||||||
<el-form-item label="数据状态" prop="isDel">
|
:limit="1"
|
||||||
<el-select v-model="form.isDel" placeholder="请选择数据状态">
|
:fileType="['pdf', 'png', 'jpg', 'jpeg']"
|
||||||
<el-option
|
@input="fileInputAlteration"
|
||||||
v-for="dict in dict.type.sys_common_isdel"
|
/>
|
||||||
:key="dict.value"
|
|
||||||
:label="dict.label"
|
|
||||||
:value="dict.value"
|
|
||||||
></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="备注" prop="remark">
|
|
||||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
|
@ -267,6 +332,7 @@
|
||||||
<el-button @click="cancel">取 消</el-button>
|
<el-button @click="cancel">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="previewList" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -278,12 +344,17 @@ import {
|
||||||
addMaterialSeal,
|
addMaterialSeal,
|
||||||
updateMaterialSeal,
|
updateMaterialSeal,
|
||||||
} from "@/api/project/materialSeal";
|
} from "@/api/project/materialSeal";
|
||||||
|
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "MaterialSeal",
|
name: "MaterialSeal",
|
||||||
|
components: {
|
||||||
|
ElImageViewer,
|
||||||
|
},
|
||||||
dicts: ["sys_common_isdel"],
|
dicts: ["sys_common_isdel"],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
showViewer: false,
|
||||||
// 遮罩层
|
// 遮罩层
|
||||||
loading: true,
|
loading: true,
|
||||||
// 选中数组
|
// 选中数组
|
||||||
|
@ -312,7 +383,7 @@ export default {
|
||||||
projectName: null,
|
projectName: null,
|
||||||
deptId: null,
|
deptId: null,
|
||||||
deptName: null,
|
deptName: null,
|
||||||
imgUrls: null,
|
imageUrls: null,
|
||||||
materialName: null,
|
materialName: null,
|
||||||
usePosition: null,
|
usePosition: null,
|
||||||
contractBrand: null,
|
contractBrand: null,
|
||||||
|
@ -323,13 +394,89 @@ export default {
|
||||||
// 表单参数
|
// 表单参数
|
||||||
form: {},
|
form: {},
|
||||||
// 表单校验
|
// 表单校验
|
||||||
rules: {},
|
rules: {
|
||||||
|
imageUrls: [{ required: true, message: "请上传封样现场图片", trigger: "blur" }],
|
||||||
|
materialName: [
|
||||||
|
{ required: true, message: "请输入封样名称", trigger: "blur" },
|
||||||
|
{ max: 100, message: "封样名称最多100字符", trigger: "blur" },
|
||||||
|
],
|
||||||
|
usePosition: [
|
||||||
|
{ required: true, message: "请输入使用部位", trigger: "blur" },
|
||||||
|
{ max: 100, message: "使用部位最多100字符", trigger: "blur" },
|
||||||
|
],
|
||||||
|
contractBrand: [
|
||||||
|
{ required: true, message: "请输入合同指定品牌", trigger: "blur" },
|
||||||
|
{ max: 100, message: "合同指定品牌最多100字符", trigger: "blur" },
|
||||||
|
],
|
||||||
|
useBrand: [
|
||||||
|
{ required: true, message: "请输入使用品牌", trigger: "blur" },
|
||||||
|
{ max: 100, message: "使用品牌最多100字符", trigger: "blur" },
|
||||||
|
],
|
||||||
|
sealDate: [{ required: true, message: "请选择封样时间", trigger: "blur" }],
|
||||||
|
signFiles: [{ required: true, message: "请上传会签单附件", trigger: "blur" }],
|
||||||
|
alterationFiles: [
|
||||||
|
{ required: false, message: "请上传变更单附件", trigger: "blur" },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
previewList: [],
|
||||||
|
isOnly: false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
fileInputSign(files) {
|
||||||
|
let fileUrls = null;
|
||||||
|
if (files.length > 0) {
|
||||||
|
fileUrls = "";
|
||||||
|
files.forEach((item) => {
|
||||||
|
fileUrls += "," + item.url;
|
||||||
|
});
|
||||||
|
fileUrls = fileUrls.substring(1);
|
||||||
|
}
|
||||||
|
this.form.signFiles = fileUrls;
|
||||||
|
},
|
||||||
|
fileInputAlteration(files) {
|
||||||
|
let fileUrls = null;
|
||||||
|
if (files.length > 0) {
|
||||||
|
fileUrls = "";
|
||||||
|
files.forEach((item) => {
|
||||||
|
fileUrls += "," + item.url;
|
||||||
|
});
|
||||||
|
fileUrls = fileUrls.substring(1);
|
||||||
|
}
|
||||||
|
this.form.alterationFiles = fileUrls;
|
||||||
|
},
|
||||||
|
onlyFile() {
|
||||||
|
if (this.form.contractBrand && this.form.useBrand) {
|
||||||
|
if (this.form.contractBrand != this.form.useBrand) {
|
||||||
|
this.isOnly = true;
|
||||||
|
this.rules.alterationFiles[0].required = true;
|
||||||
|
} else {
|
||||||
|
this.isOnly = false;
|
||||||
|
this.form.alterationFiles = null;
|
||||||
|
this.rules.alterationFiles[0].required = false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.isOnly = false;
|
||||||
|
this.form.alterationFiles = null;
|
||||||
|
this.rules.alterationFiles[0].required = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getImageUrl(url) {
|
||||||
|
return process.env.VUE_APP_BASE_API + url + ".min.jpg";
|
||||||
|
},
|
||||||
|
onPreview(urls) {
|
||||||
|
this.previewList = [];
|
||||||
|
urls.split(",").forEach((item) => {
|
||||||
|
this.previewList.push(process.env.VUE_APP_BASE_API + item);
|
||||||
|
});
|
||||||
|
this.showViewer = true;
|
||||||
|
},
|
||||||
|
closeViewer() {
|
||||||
|
this.showViewer = false;
|
||||||
|
},
|
||||||
/** 查询材料封样列表 */
|
/** 查询材料封样列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
|
@ -354,9 +501,11 @@ export default {
|
||||||
this.form = {
|
this.form = {
|
||||||
id: null,
|
id: null,
|
||||||
projectId: null,
|
projectId: null,
|
||||||
|
projectName: null,
|
||||||
deptId: null,
|
deptId: null,
|
||||||
|
deptName: null,
|
||||||
mainImage: null,
|
mainImage: null,
|
||||||
imgUrls: null,
|
imageUrls: null,
|
||||||
materialName: null,
|
materialName: null,
|
||||||
usePosition: null,
|
usePosition: null,
|
||||||
contractBrand: null,
|
contractBrand: null,
|
||||||
|
@ -450,6 +599,20 @@ export default {
|
||||||
`materialSeal_${new Date().getTime()}.xlsx`
|
`materialSeal_${new Date().getTime()}.xlsx`
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
/** 下载附件 */
|
||||||
|
handledownloadSignFiles(row) {
|
||||||
|
this.files = row.signFiles.split(",");
|
||||||
|
this.files.forEach((item) => {
|
||||||
|
this.$download.resource(item);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 下载附件 */
|
||||||
|
handledownloadAlterationFiles(row) {
|
||||||
|
this.files = row.alterationFiles.split(",");
|
||||||
|
this.files.forEach((item) => {
|
||||||
|
this.$download.resource(item);
|
||||||
|
});
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -0,0 +1,586 @@
|
||||||
|
<template>
|
||||||
|
<div class="projectect-attendance-drawer">
|
||||||
|
<el-drawer
|
||||||
|
v-if="isOpen"
|
||||||
|
:visible.sync="isOpen"
|
||||||
|
direction="rtl"
|
||||||
|
size="65%"
|
||||||
|
style="padding-left: 20px"
|
||||||
|
>
|
||||||
|
<template slot="title">
|
||||||
|
<div>{{ title + " 【材料封样管理】" }}</div>
|
||||||
|
</template>
|
||||||
|
<el-tabs
|
||||||
|
v-model="activeName"
|
||||||
|
style="margin-left: 20px; margin-right: 20px"
|
||||||
|
@tab-click="getList"
|
||||||
|
>
|
||||||
|
<el-tab-pane
|
||||||
|
v-for="(it, idx) in nodes"
|
||||||
|
:label="it.unitName + ''"
|
||||||
|
:name="it.unitId + ''"
|
||||||
|
:key="idx"
|
||||||
|
></el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
<el-row
|
||||||
|
:gutter="10"
|
||||||
|
class="mb8"
|
||||||
|
style="margin-left: 20px; margin-top: 10px; margin-right: 20px"
|
||||||
|
>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
icon="el-icon-plus"
|
||||||
|
size="mini"
|
||||||
|
@click="handleAdd"
|
||||||
|
v-hasPermi="['project:materialSeal:add']"
|
||||||
|
>新增</el-button
|
||||||
|
>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="success"
|
||||||
|
plain
|
||||||
|
icon="el-icon-edit"
|
||||||
|
size="mini"
|
||||||
|
:disabled="single"
|
||||||
|
@click="handleUpdate"
|
||||||
|
v-hasPermi="['project:materialSeal:edit']"
|
||||||
|
>修改</el-button
|
||||||
|
>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="danger"
|
||||||
|
plain
|
||||||
|
icon="el-icon-delete"
|
||||||
|
size="mini"
|
||||||
|
:disabled="multiple"
|
||||||
|
@click="handleDelete"
|
||||||
|
v-hasPermi="['project:materialSeal:remove']"
|
||||||
|
>删除</el-button
|
||||||
|
>
|
||||||
|
</el-col>
|
||||||
|
<right-toolbar
|
||||||
|
:showSearch.sync="showSearch"
|
||||||
|
@queryTable="getList"
|
||||||
|
></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
<el-table
|
||||||
|
v-loading="loading"
|
||||||
|
:data="projectMaterialSealList"
|
||||||
|
@selection-change="handleSelectionChange"
|
||||||
|
>
|
||||||
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
|
<el-table-column label="封样图片" align="center" prop="mainImage" width="80">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-image
|
||||||
|
ref="preview"
|
||||||
|
style="width: 50px; height: 50px"
|
||||||
|
:src="getImageUrl(scope.row.mainImage)"
|
||||||
|
@click="onPreview(scope.row.imageUrls)"
|
||||||
|
></el-image>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="封样名称"
|
||||||
|
align="center"
|
||||||
|
prop="materialName"
|
||||||
|
width="180"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="使用部位"
|
||||||
|
align="center"
|
||||||
|
prop="usePosition"
|
||||||
|
width="150"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="指定品牌"
|
||||||
|
align="center"
|
||||||
|
prop="contractBrand"
|
||||||
|
width="120"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="拟用品牌"
|
||||||
|
align="center"
|
||||||
|
prop="useBrand"
|
||||||
|
width="120"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column label="封样时间" align="center" prop="sealDate" width="160">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ parseTime(scope.row.sealDate, "{y}-{m}-{d} {h}:{i}") }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="会签单" align="center" prop="signFiles" width="100">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
v-if="scope.row.signFiles != null"
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-paperclip"
|
||||||
|
@click="handledownloadSignFiles(scope.row)"
|
||||||
|
v-hasPermi="['project:materialSeal:list']"
|
||||||
|
>下载会签单</el-button
|
||||||
|
>
|
||||||
|
<span v-if="scope.row.signFiles == null"> - </span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="变更单" align="center" prop="alterationFiles" width="100">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
v-if="scope.row.alterationFiles != null"
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-paperclip"
|
||||||
|
@click="handledownloadAlterationFiles(scope.row)"
|
||||||
|
v-hasPermi="['project:materialSeal:list']"
|
||||||
|
>下载变更单</el-button
|
||||||
|
>
|
||||||
|
<span v-if="scope.row.signFiles == null"> - </span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<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="['project:materialSeal:edit']"
|
||||||
|
>修改</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
v-hasPermi="['project:materialSeal: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="780px" append-to-body>
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
|
<el-form-item label="项目名称" prop="projectName">
|
||||||
|
<el-input
|
||||||
|
v-model="form.projectName"
|
||||||
|
placeholder="请输入项目名称"
|
||||||
|
:disabled="true"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="单位名称" prop="deptName">
|
||||||
|
<el-input
|
||||||
|
v-model="form.deptName"
|
||||||
|
placeholder="请输入单位名称"
|
||||||
|
:disabled="true"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="封样图片" prop="imageUrls">
|
||||||
|
<image-upload v-model="form.imageUrls" :limit="9" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="封样名称" prop="materialName">
|
||||||
|
<el-input v-model="form.materialName" placeholder="请输入封样名称" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="使用部位" prop="usePosition">
|
||||||
|
<el-input v-model="form.usePosition" placeholder="请输入使用部位" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="指定品牌" prop="contractBrand">
|
||||||
|
<el-input
|
||||||
|
v-model="form.contractBrand"
|
||||||
|
placeholder="请输入指定品牌"
|
||||||
|
@change="onlyFile"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="拟用品牌" prop="useBrand">
|
||||||
|
<el-input
|
||||||
|
v-model="form.useBrand"
|
||||||
|
placeholder="请输入拟用品牌"
|
||||||
|
@change="onlyFile"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="封样时间" prop="sealDate">
|
||||||
|
<el-date-picker
|
||||||
|
clearable
|
||||||
|
v-model="form.sealDate"
|
||||||
|
type="datetime"
|
||||||
|
default-time="10:00:00"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
placeholder="请选择封样时间"
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="会签单" prop="signFiles">
|
||||||
|
<file-upload
|
||||||
|
v-model="form.signFiles"
|
||||||
|
:limit="1"
|
||||||
|
:fileType="['pdf', 'png', 'jpg', 'jpeg']"
|
||||||
|
@input="fileInputSign"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="变更单" prop="alterationFiles" v-show="true">
|
||||||
|
<file-upload
|
||||||
|
v-model="form.alterationFiles"
|
||||||
|
:limit="1"
|
||||||
|
:fileType="['pdf', 'png', 'jpg', 'jpeg']"
|
||||||
|
@input="fileInputAlteration"
|
||||||
|
/>
|
||||||
|
</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>
|
||||||
|
</el-drawer>
|
||||||
|
<el-image-viewer
|
||||||
|
v-if="showViewer"
|
||||||
|
:on-close="closeViewer"
|
||||||
|
:url-list="previewList"
|
||||||
|
style="z-index: 2050"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { mapGetters } from "vuex";
|
||||||
|
import {
|
||||||
|
listMaterialSeal,
|
||||||
|
getMaterialSeal,
|
||||||
|
delMaterialSeal,
|
||||||
|
addMaterialSeal,
|
||||||
|
updateMaterialSeal,
|
||||||
|
} from "@/api/project/materialSeal";
|
||||||
|
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "RuoyiUiProjectDeptWroksDrawer",
|
||||||
|
components: {
|
||||||
|
ElImageViewer,
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
showViewer: false,
|
||||||
|
open: false,
|
||||||
|
isOpen: false,
|
||||||
|
project: null,
|
||||||
|
title: "",
|
||||||
|
isUnit: true,
|
||||||
|
nodes: [],
|
||||||
|
form: {},
|
||||||
|
rules: {
|
||||||
|
imageUrls: [{ required: true, message: "请上传封样现场图片", trigger: "blur" }],
|
||||||
|
materialName: [
|
||||||
|
{ required: true, message: "请输入封样名称", trigger: "blur" },
|
||||||
|
{ max: 100, message: "封样名称最多100字符", trigger: "blur" },
|
||||||
|
],
|
||||||
|
usePosition: [
|
||||||
|
{ required: true, message: "请输入使用部位", trigger: "blur" },
|
||||||
|
{ max: 100, message: "使用部位最多100字符", trigger: "blur" },
|
||||||
|
],
|
||||||
|
contractBrand: [
|
||||||
|
{ required: true, message: "请输入合同指定品牌", trigger: "blur" },
|
||||||
|
{ max: 100, message: "合同指定品牌最多100字符", trigger: "blur" },
|
||||||
|
],
|
||||||
|
useBrand: [
|
||||||
|
{ required: true, message: "请输入使用品牌", trigger: "blur" },
|
||||||
|
{ max: 100, message: "使用品牌最多100字符", trigger: "blur" },
|
||||||
|
],
|
||||||
|
sealDate: [{ required: true, message: "请选择封样时间", trigger: "blur" }],
|
||||||
|
signFiles: [{ required: true, message: "请上传会签单附件", trigger: "blur" }],
|
||||||
|
alterationFiles: [
|
||||||
|
{ required: false, message: "请上传变更单附件", trigger: "blur" },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
projectMaterialSealList: [],
|
||||||
|
activeName: "",
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
projectId: null,
|
||||||
|
deptId: null,
|
||||||
|
},
|
||||||
|
previewList: [],
|
||||||
|
isOnly: false,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters(["dept"]),
|
||||||
|
},
|
||||||
|
mounted() {},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
fileInputSign(files) {
|
||||||
|
let fileUrls = null;
|
||||||
|
if (files.length > 0) {
|
||||||
|
fileUrls = "";
|
||||||
|
files.forEach((item) => {
|
||||||
|
fileUrls += "," + item.url;
|
||||||
|
});
|
||||||
|
fileUrls = fileUrls.substring(1);
|
||||||
|
}
|
||||||
|
this.form.signFiles = fileUrls;
|
||||||
|
},
|
||||||
|
fileInputAlteration(files) {
|
||||||
|
let fileUrls = null;
|
||||||
|
if (files.length > 0) {
|
||||||
|
fileUrls = "";
|
||||||
|
files.forEach((item) => {
|
||||||
|
fileUrls += "," + item.url;
|
||||||
|
});
|
||||||
|
fileUrls = fileUrls.substring(1);
|
||||||
|
}
|
||||||
|
this.form.alterationFiles = fileUrls;
|
||||||
|
},
|
||||||
|
onlyFile() {
|
||||||
|
if (
|
||||||
|
this.form.contractBrand &&
|
||||||
|
this.form.useBrand &&
|
||||||
|
this.form.contractBrand != this.form.useBrand
|
||||||
|
) {
|
||||||
|
console.log("qqqq");
|
||||||
|
//this.isOnly = true;
|
||||||
|
this.rules.alterationFiles[0].required = true;
|
||||||
|
} else {
|
||||||
|
console.log("qqqq22222");
|
||||||
|
//this.isOnly = false;
|
||||||
|
this.alterationFiles = null;
|
||||||
|
this.rules.alterationFiles[0].required = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getImageUrl(url) {
|
||||||
|
return process.env.VUE_APP_BASE_API + url + ".min.jpg";
|
||||||
|
},
|
||||||
|
onPreview(urls) {
|
||||||
|
this.previewList = [];
|
||||||
|
urls.split(",").forEach((item) => {
|
||||||
|
this.previewList.push(process.env.VUE_APP_BASE_API + item);
|
||||||
|
});
|
||||||
|
this.showViewer = true;
|
||||||
|
},
|
||||||
|
closeViewer() {
|
||||||
|
this.showViewer = false;
|
||||||
|
},
|
||||||
|
doOk() {
|
||||||
|
updateProjectDeptWroks(this.form).then((response) => {
|
||||||
|
this.$modal.msgSuccess("保存成功");
|
||||||
|
this.isOpen = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
doCanel() {
|
||||||
|
this.isOpen = false;
|
||||||
|
},
|
||||||
|
show(project) {
|
||||||
|
this.project = project;
|
||||||
|
this.title = project.projectName;
|
||||||
|
this.isOpen = true;
|
||||||
|
this.queryParams.projectId = project.id;
|
||||||
|
this.$api.publics
|
||||||
|
.queryUnitList({
|
||||||
|
projectId: project.id,
|
||||||
|
unitType: 2,
|
||||||
|
})
|
||||||
|
.then((d) => {
|
||||||
|
this.nodes = d.rows;
|
||||||
|
if (d.rows.length > 0) {
|
||||||
|
this.activeName = this.nodes[0].unitId + "";
|
||||||
|
this.isUnit = true;
|
||||||
|
this.getList();
|
||||||
|
} else {
|
||||||
|
this.projectMaterialSealList = [];
|
||||||
|
this.$message.error("当前项目未分配总包单位,不能办理材料封样!");
|
||||||
|
this.isUnit = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 页签点击
|
||||||
|
getList() {
|
||||||
|
this.queryParams.deptId = this.activeName;
|
||||||
|
this.loading = true;
|
||||||
|
listMaterialSeal(this.queryParams).then((response) => {
|
||||||
|
this.projectMaterialSealList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 取消按钮
|
||||||
|
cancel() {
|
||||||
|
this.open = false;
|
||||||
|
this.reset();
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
id: null,
|
||||||
|
projectId: null,
|
||||||
|
deptId: null,
|
||||||
|
insuranceType: null,
|
||||||
|
insuranceNumber: null,
|
||||||
|
insuranceFile: null,
|
||||||
|
insuranceState: null,
|
||||||
|
beginDate: null,
|
||||||
|
endDate: null,
|
||||||
|
companyName: null,
|
||||||
|
isDel: null,
|
||||||
|
createBy: null,
|
||||||
|
createTime: null,
|
||||||
|
updateBy: null,
|
||||||
|
updateTime: null,
|
||||||
|
remark: null,
|
||||||
|
};
|
||||||
|
this.resetForm("form");
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
// 多选框选中数据
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.ids = selection.map((item) => item.id);
|
||||||
|
this.single = selection.length !== 1;
|
||||||
|
this.multiple = !selection.length;
|
||||||
|
},
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
handleAdd() {
|
||||||
|
if (this.nodes.length > 0) {
|
||||||
|
this.reset();
|
||||||
|
this.form.projectId = this.project.id;
|
||||||
|
this.form.projectName = this.project.projectName;
|
||||||
|
this.form.deptId = this.activeName;
|
||||||
|
this.nodes.forEach((item) => {
|
||||||
|
if (item.unitId == this.activeName) {
|
||||||
|
this.form.deptName = item.unitName;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.open = true;
|
||||||
|
this.title = "添加项目材料封样";
|
||||||
|
} else {
|
||||||
|
this.$message.error("当前项目未分配总包单位,不能办理材料封样!");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
handleUpdate(row) {
|
||||||
|
this.reset();
|
||||||
|
const id = row.id || this.ids;
|
||||||
|
getMaterialSeal(id).then((response) => {
|
||||||
|
this.form = response.data;
|
||||||
|
this.form.projectName = this.project.projectName;
|
||||||
|
this.nodes.forEach((item) => {
|
||||||
|
if (item.unitId == this.activeName) {
|
||||||
|
this.form.deptName = item.unitName;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.open = true;
|
||||||
|
this.title = "修改项目材料封样";
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 提交按钮 */
|
||||||
|
submitForm() {
|
||||||
|
this.$refs["form"].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
if (this.form.id != null) {
|
||||||
|
updateMaterialSeal(this.form).then((response) => {
|
||||||
|
this.$modal.msgSuccess("修改成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
addMaterialSeal(this.form).then((response) => {
|
||||||
|
if (response.code == 200) {
|
||||||
|
this.$modal.msgSuccess("新增成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(row) {
|
||||||
|
const ids = row.id || this.ids;
|
||||||
|
this.$modal
|
||||||
|
.confirm('是否确认删除项目材料封样编号为"' + ids + '"的数据项?')
|
||||||
|
.then(function () {
|
||||||
|
return delMaterialSeal(ids);
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
handleExport() {
|
||||||
|
this.download(
|
||||||
|
"project/materialSeal/export",
|
||||||
|
{
|
||||||
|
...this.queryParams,
|
||||||
|
},
|
||||||
|
`materialSeal_${new Date().getTime()}.xlsx`
|
||||||
|
);
|
||||||
|
},
|
||||||
|
/** 下载附件 */
|
||||||
|
handleDownload(row) {
|
||||||
|
this.files = row.checkingFiles.split(",");
|
||||||
|
this.files.forEach((item) => {
|
||||||
|
this.$download.resource(item);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 下载附件 */
|
||||||
|
handledownloadSignFiles(row) {
|
||||||
|
this.files = row.signFiles.split(",");
|
||||||
|
this.files.forEach((item) => {
|
||||||
|
this.$download.resource(item);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 下载附件 */
|
||||||
|
handledownloadAlterationFiles(row) {
|
||||||
|
this.files = row.alterationFiles.split(",");
|
||||||
|
this.files.forEach((item) => {
|
||||||
|
this.$download.resource(item);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped></style>
|
|
@ -147,7 +147,7 @@
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="部门名称"
|
label="单位名称"
|
||||||
align="center"
|
align="center"
|
||||||
prop="deptName"
|
prop="deptName"
|
||||||
width="180"
|
width="180"
|
||||||
|
@ -557,14 +557,14 @@ export default {
|
||||||
this.form = response.data;
|
this.form = response.data;
|
||||||
this.open = true;
|
this.open = true;
|
||||||
this.title = "修改项目验收";
|
this.title = "修改项目验收";
|
||||||
this.$api.publics
|
|
||||||
.selectProjectUnitUser({
|
|
||||||
projectId: response.data.projectId,
|
|
||||||
})
|
|
||||||
.then((d) => {
|
|
||||||
this.deptUserData = d.data;
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
this.$api.publics
|
||||||
|
.selectProjectUnitUser({
|
||||||
|
projectId: row.projectId,
|
||||||
|
})
|
||||||
|
.then((d) => {
|
||||||
|
this.deptUserData = d.data;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm() {
|
submitForm() {
|
||||||
|
|
|
@ -67,7 +67,11 @@
|
||||||
@queryTable="getList"
|
@queryTable="getList"
|
||||||
></right-toolbar>
|
></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-table v-loading="loading" :data="projectCheckingList">
|
<el-table
|
||||||
|
v-loading="loading"
|
||||||
|
:data="projectCheckingList"
|
||||||
|
@selection-change="handleSelectionChange"
|
||||||
|
>
|
||||||
<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="mainImage" width="80">
|
<el-table-column label="验收图片" align="center" prop="mainImage" width="80">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
|
|
@ -16,14 +16,53 @@
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="部门名称" prop="deptName">
|
<el-form-item label="单位名称" prop="deptName">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.deptName"
|
v-model="queryParams.deptName"
|
||||||
placeholder="请输入部门名称"
|
placeholder="请输入单位名称"
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="测量类型" prop="measureType">
|
||||||
|
<el-select
|
||||||
|
v-model="queryParams.measureType"
|
||||||
|
placeholder="请选择测量类型"
|
||||||
|
clearable
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in dict.type.project_measure_type"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="测量结果" prop="measureResult">
|
||||||
|
<el-select
|
||||||
|
v-model="queryParams.measureResult"
|
||||||
|
placeholder="请选择测量结果"
|
||||||
|
clearable
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in dict.type.project_checking_result"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="测量时间">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="daterangeMeasureTime"
|
||||||
|
style="width: 240px"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
type="daterange"
|
||||||
|
range-separator="-"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="测量部位" prop="measurePosition">
|
<el-form-item label="测量部位" prop="measurePosition">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.measurePosition"
|
v-model="queryParams.measurePosition"
|
||||||
|
@ -40,29 +79,10 @@
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="测量时间">
|
<el-form-item label="质量专员" prop="qualityUser">
|
||||||
<el-date-picker
|
|
||||||
v-model="daterangeMeasureTime"
|
|
||||||
style="width: 240px"
|
|
||||||
value-format="yyyy-MM-dd"
|
|
||||||
type="daterange"
|
|
||||||
range-separator="-"
|
|
||||||
start-placeholder="开始日期"
|
|
||||||
end-placeholder="结束日期"
|
|
||||||
></el-date-picker>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="测量点位" prop="measurePointPosition">
|
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.measurePointPosition"
|
v-model="queryParams.qualityUser"
|
||||||
placeholder="请输入测量点位"
|
placeholder="请输入监理专员"
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="测量结果" prop="measureResult">
|
|
||||||
<el-input
|
|
||||||
v-model="queryParams.measureResult"
|
|
||||||
placeholder="请输入测量结果"
|
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
|
@ -75,14 +95,6 @@
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="数据状态" prop="isDel">
|
|
||||||
<el-input
|
|
||||||
v-model="queryParams.isDel"
|
|
||||||
placeholder="请输入数据状态"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
|
||||||
>搜索</el-button
|
>搜索</el-button
|
||||||
|
@ -147,27 +159,65 @@
|
||||||
@selection-change="handleSelectionChange"
|
@selection-change="handleSelectionChange"
|
||||||
>
|
>
|
||||||
<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="projectName" fixed="left" />
|
<el-table-column
|
||||||
<el-table-column label="部门名称" align="center" prop="deptName" />
|
label="项目名称"
|
||||||
<el-table-column label="测量主图" align="center" prop="mainImage" width="100">
|
align="center"
|
||||||
|
prop="projectName"
|
||||||
|
fixed="left"
|
||||||
|
width="200"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="单位名称"
|
||||||
|
align="center"
|
||||||
|
prop="deptName"
|
||||||
|
width="180"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column label="测量主图" align="center" prop="mainImage" width="210">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<image-preview :src="scope.row.mainImage" :width="50" :height="50" />
|
<el-image
|
||||||
|
ref="preview"
|
||||||
|
style="width: 200px; height: 100px"
|
||||||
|
:src="getImageUrl(scope.row.mainImage)"
|
||||||
|
@click="onPreview(scope.row.imageUrls)"
|
||||||
|
></el-image>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="图片集合" align="center" prop="imageUrls" width="100">
|
<el-table-column label="测量类型" align="center" prop="measureType">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<image-preview :src="scope.row.imageUrls" :width="50" :height="50" />
|
<dict-tag
|
||||||
|
:options="dict.type.project_measure_type"
|
||||||
|
:value="scope.row.measureType"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="测量类型" align="center" prop="measureType" />
|
<el-table-column
|
||||||
<el-table-column label="测量部位" align="center" prop="measurePosition" />
|
label="测量部位"
|
||||||
<el-table-column label="测量内容" align="center" prop="measureInfo" />
|
align="center"
|
||||||
<el-table-column label="测量时间" align="center" prop="measureTime" width="180">
|
prop="measurePosition"
|
||||||
|
width="140"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="测量内容"
|
||||||
|
align="center"
|
||||||
|
prop="measureInfo"
|
||||||
|
width="150"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column label="测量时间" align="center" prop="measureTime" width="160">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ parseTime(scope.row.measureTime, "{y}-{m}-{d}") }}</span>
|
<span>{{ parseTime(scope.row.measureTime, "{y}-{m}-{d} {h}:{i}") }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="测量点位" align="center" prop="measurePointPosition" />
|
<el-table-column
|
||||||
|
label="测量点位"
|
||||||
|
align="center"
|
||||||
|
prop="measurePointPosition"
|
||||||
|
width="100"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
<el-table-column label="测量结果" align="center" prop="measureResult">
|
<el-table-column label="测量结果" align="center" prop="measureResult">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<dict-tag
|
<dict-tag
|
||||||
|
@ -176,20 +226,53 @@
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="测量文件" align="center" prop="measureFiles" />
|
<el-table-column
|
||||||
<el-table-column label="质量专员" align="center" prop="qualityUser" />
|
label="质量专员"
|
||||||
<el-table-column label="质量专员名称" align="center" prop="qualityUserName" />
|
align="left"
|
||||||
<el-table-column label="监理专员" align="center" prop="superviseUser" />
|
prop="qualityUser"
|
||||||
<el-table-column label="监理专员名称" align="center" prop="superviseUserName" />
|
width="120"
|
||||||
<el-table-column label="数据状态" align="center" prop="isDel" />
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<div>{{ scope.row.qualityUserName }}</div>
|
||||||
|
<div>{{ scope.row.qualityUser }}</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="监理专员"
|
||||||
|
align="left"
|
||||||
|
prop="superviseUser"
|
||||||
|
width="120"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<div>{{ scope.row.superviseUserName }}</div>
|
||||||
|
<div>{{ scope.row.superviseUser }}</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="数据状态" align="center" prop="isDel">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.sys_common_isdel" :value="scope.row.isDel" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="备注" align="center" prop="remark" />
|
<el-table-column label="备注" align="center" prop="remark" />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="操作"
|
label="操作"
|
||||||
align="center"
|
align="center"
|
||||||
class-name="small-padding fixed-width"
|
class-name="small-padding fixed-width"
|
||||||
fixed="right"
|
fixed="right"
|
||||||
|
width="130"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
v-if="scope.row.measureFiles != null"
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-paperclip"
|
||||||
|
@click="handledownload(scope.row)"
|
||||||
|
v-hasPermi="['project:projectMeasure:list']"
|
||||||
|
>下载附件</el-button
|
||||||
|
>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
|
@ -219,19 +302,38 @@
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 添加或修改实测实量对话框 -->
|
<!-- 添加或修改实测实量对话框 -->
|
||||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
<el-dialog :title="title" :visible.sync="open" width="780px" append-to-body>
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
<el-form-item label="项目名称" prop="projectId">
|
<el-form-item label="项目名称" prop="projectName">
|
||||||
<el-input v-model="form.projectId" placeholder="请输入项目名称" />
|
<el-input
|
||||||
|
v-model="form.projectName"
|
||||||
|
placeholder="请输入项目名称"
|
||||||
|
:disabled="true"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="部门名称" prop="deptId">
|
<el-form-item label="单位名称" prop="deptName">
|
||||||
<el-input v-model="form.deptId" placeholder="请输入部门名称" />
|
<el-input
|
||||||
|
v-model="form.deptName"
|
||||||
|
placeholder="请输入单位名称"
|
||||||
|
:disabled="true"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="测量主图" prop="mainImage">
|
<el-form-item label="测量图片" prop="imageUrls">
|
||||||
<image-upload v-model="form.mainImage" />
|
<image-upload v-model="form.imageUrls" :limit="9" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="图片集合" prop="imageUrls">
|
<el-form-item label="测量类型" prop="measureType">
|
||||||
<image-upload v-model="form.imageUrls" />
|
<el-select
|
||||||
|
v-model="form.measureType"
|
||||||
|
placeholder="请选择测量类型"
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in dict.type.project_measure_type"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="测量部位" prop="measurePosition">
|
<el-form-item label="测量部位" prop="measurePosition">
|
||||||
<el-input v-model="form.measurePosition" placeholder="请输入测量部位" />
|
<el-input v-model="form.measurePosition" placeholder="请输入测量部位" />
|
||||||
|
@ -239,42 +341,80 @@
|
||||||
<el-form-item label="测量内容" prop="measureInfo">
|
<el-form-item label="测量内容" prop="measureInfo">
|
||||||
<el-input v-model="form.measureInfo" placeholder="请输入测量内容" />
|
<el-input v-model="form.measureInfo" placeholder="请输入测量内容" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="测量点位" prop="measurePointPosition">
|
||||||
|
<el-input v-model="form.measurePointPosition" placeholder="请输入测量点位" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="质量专员" prop="qualityUser">
|
||||||
|
<el-select
|
||||||
|
v-model="form.qualityUser"
|
||||||
|
placeholder="请选择质量专员"
|
||||||
|
filterable
|
||||||
|
style="width: 100%"
|
||||||
|
@change="selectQualityUser"
|
||||||
|
>
|
||||||
|
<el-option-group
|
||||||
|
v-for="group in deptUserData"
|
||||||
|
:key="group.unitId + ''"
|
||||||
|
:label="group.unitName + ' [' + group.unitTypeName + '] '"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in group.userinfoList"
|
||||||
|
:key="item.phonenumber"
|
||||||
|
:label="item.nickName + ' [' + item.jobTypeName + '] '"
|
||||||
|
:value="item.phonenumber"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-option-group>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="监理专员" prop="superviseUser">
|
||||||
|
<el-select
|
||||||
|
v-model="form.superviseUser"
|
||||||
|
placeholder="请选择监理专员"
|
||||||
|
filterable
|
||||||
|
style="width: 100%"
|
||||||
|
@change="selectSuperviseUser"
|
||||||
|
>
|
||||||
|
<el-option-group
|
||||||
|
v-for="group in deptUserData"
|
||||||
|
:key="group.unitId + ''"
|
||||||
|
:label="group.unitName + ' [' + group.unitTypeName + '] '"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in group.userinfoList"
|
||||||
|
:key="item.phonenumber"
|
||||||
|
:label="item.nickName + ' [' + item.jobTypeName + '] '"
|
||||||
|
:value="item.phonenumber"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-option-group>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="测量时间" prop="measureTime">
|
<el-form-item label="测量时间" prop="measureTime">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
clearable
|
clearable
|
||||||
v-model="form.measureTime"
|
v-model="form.measureTime"
|
||||||
type="date"
|
type="datetime"
|
||||||
value-format="yyyy-MM-dd"
|
default-time="10:00:00"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
placeholder="请选择测量时间"
|
placeholder="请选择测量时间"
|
||||||
|
style="width: 100%"
|
||||||
>
|
>
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="测量点位" prop="measurePointPosition">
|
|
||||||
<el-input v-model="form.measurePointPosition" placeholder="请输入测量点位" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="测量结果" prop="measureResult">
|
<el-form-item label="测量结果" prop="measureResult">
|
||||||
<el-input v-model="form.measureResult" placeholder="请输入测量结果" />
|
<el-radio
|
||||||
|
v-model="form.measureResult"
|
||||||
|
v-for="dict in dict.type.project_checking_result"
|
||||||
|
:label="dict.value"
|
||||||
|
:key="dict.value"
|
||||||
|
border
|
||||||
|
size="small"
|
||||||
|
>{{ dict.label }}</el-radio
|
||||||
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="测量文件" prop="measureFiles">
|
<el-form-item label="测量附件" prop="measureFiles" v-if="false">
|
||||||
<file-upload v-model="form.measureFiles" />
|
<file-upload v-model="form.measureFiles" :limit="1" @input="fileInput" />
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="质量专员" prop="qualityUser">
|
|
||||||
<el-input v-model="form.qualityUser" placeholder="请输入质量专员" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="质量专员名称" prop="qualityUserName">
|
|
||||||
<el-input v-model="form.qualityUserName" placeholder="请输入质量专员名称" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="监理专员" prop="superviseUser">
|
|
||||||
<el-input v-model="form.superviseUser" placeholder="请输入监理专员" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="监理专员名称" prop="superviseUserName">
|
|
||||||
<el-input v-model="form.superviseUserName" placeholder="请输入监理专员名称" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="数据状态" prop="isDel">
|
|
||||||
<el-input v-model="form.isDel" placeholder="请输入数据状态" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="备注" prop="remark">
|
|
||||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
|
@ -282,6 +422,7 @@
|
||||||
<el-button @click="cancel">取 消</el-button>
|
<el-button @click="cancel">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="previewList" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -293,11 +434,17 @@ import {
|
||||||
addProjectMeasure,
|
addProjectMeasure,
|
||||||
updateProjectMeasure,
|
updateProjectMeasure,
|
||||||
} from "@/api/project/projectMeasure";
|
} from "@/api/project/projectMeasure";
|
||||||
|
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "ProjectMeasure",
|
name: "ProjectMeasure",
|
||||||
|
components: {
|
||||||
|
ElImageViewer,
|
||||||
|
},
|
||||||
|
dicts: ["project_measure_type", "project_checking_result", "sys_common_isdel"],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
showViewer: false,
|
||||||
// 遮罩层
|
// 遮罩层
|
||||||
loading: true,
|
loading: true,
|
||||||
// 选中数组
|
// 选中数组
|
||||||
|
@ -332,19 +479,66 @@ export default {
|
||||||
measureTime: null,
|
measureTime: null,
|
||||||
measurePointPosition: null,
|
measurePointPosition: null,
|
||||||
measureResult: null,
|
measureResult: null,
|
||||||
|
qualityUser: null,
|
||||||
superviseUser: null,
|
superviseUser: null,
|
||||||
isDel: null,
|
isDel: null,
|
||||||
},
|
},
|
||||||
// 表单参数
|
// 表单参数
|
||||||
form: {},
|
form: {},
|
||||||
// 表单校验
|
// 表单校验
|
||||||
rules: {},
|
rules: {
|
||||||
|
imageUrls: [{ required: true, message: "请上传测量图片", trigger: "blur" }],
|
||||||
|
measureType: [{ required: true, message: "请选择测量类型", trigger: "blur" }],
|
||||||
|
measurePosition: [
|
||||||
|
{ required: true, message: "请输入测量部位", trigger: "blur" },
|
||||||
|
{ max: 100, message: "测量部位最多100字符", trigger: "blur" },
|
||||||
|
],
|
||||||
|
measureInfo: [
|
||||||
|
{ required: true, message: "请输入测量内容", trigger: "blur" },
|
||||||
|
{ max: 100, message: "测量内容最多100字符", trigger: "blur" },
|
||||||
|
],
|
||||||
|
measurePointPosition: [
|
||||||
|
{ required: true, message: "请输入测量点位", trigger: "blur" },
|
||||||
|
{ max: 100, message: "测量点位最多100字符", trigger: "blur" },
|
||||||
|
],
|
||||||
|
qualityUser: [{ required: true, message: "请选择质量专员", trigger: "blur" }],
|
||||||
|
superviseUser: [{ required: true, message: "请选择监理专员", trigger: "blur" }],
|
||||||
|
measureTime: [{ required: true, message: "请选择测量时间", trigger: "blur" }],
|
||||||
|
measureResult: [{ required: true, message: "请选择测量结果", trigger: "blur" }],
|
||||||
|
measureFiles: [{ required: false, message: "请上传测量附件", trigger: "blur" }],
|
||||||
|
},
|
||||||
|
deptUserData: [],
|
||||||
|
previewList: [],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
fileInput(files) {
|
||||||
|
let fileUrls = null;
|
||||||
|
if (files.length > 0) {
|
||||||
|
fileUrls = "";
|
||||||
|
files.forEach((item) => {
|
||||||
|
fileUrls += "," + item.url;
|
||||||
|
});
|
||||||
|
fileUrls = fileUrls.substring(1);
|
||||||
|
}
|
||||||
|
this.form.measureFiles = fileUrls;
|
||||||
|
},
|
||||||
|
getImageUrl(url) {
|
||||||
|
return process.env.VUE_APP_BASE_API + url + ".min.jpg";
|
||||||
|
},
|
||||||
|
onPreview(urls) {
|
||||||
|
this.previewList = [];
|
||||||
|
urls.split(",").forEach((item) => {
|
||||||
|
this.previewList.push(process.env.VUE_APP_BASE_API + item);
|
||||||
|
});
|
||||||
|
this.showViewer = true;
|
||||||
|
},
|
||||||
|
closeViewer() {
|
||||||
|
this.showViewer = false;
|
||||||
|
},
|
||||||
/** 查询实测实量列表 */
|
/** 查询实测实量列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
|
@ -369,7 +563,9 @@ export default {
|
||||||
this.form = {
|
this.form = {
|
||||||
id: null,
|
id: null,
|
||||||
projectId: null,
|
projectId: null,
|
||||||
|
projectName: null,
|
||||||
deptId: null,
|
deptId: null,
|
||||||
|
deptName: null,
|
||||||
mainImage: null,
|
mainImage: null,
|
||||||
imageUrls: null,
|
imageUrls: null,
|
||||||
measureType: null,
|
measureType: null,
|
||||||
|
@ -424,6 +620,13 @@ export default {
|
||||||
this.open = true;
|
this.open = true;
|
||||||
this.title = "修改实测实量";
|
this.title = "修改实测实量";
|
||||||
});
|
});
|
||||||
|
this.$api.publics
|
||||||
|
.selectProjectUnitUser({
|
||||||
|
projectId: row.projectId,
|
||||||
|
})
|
||||||
|
.then((d) => {
|
||||||
|
this.deptUserData = d.data;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm() {
|
submitForm() {
|
||||||
|
@ -469,6 +672,33 @@ export default {
|
||||||
`projectMeasure_${new Date().getTime()}.xlsx`
|
`projectMeasure_${new Date().getTime()}.xlsx`
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
/** 选择质量专员*/
|
||||||
|
selectQualityUser(val) {
|
||||||
|
this.deptUserData.forEach((item) => {
|
||||||
|
item.userinfoList.forEach((u) => {
|
||||||
|
if (u.phonenumber == val) {
|
||||||
|
this.form.qualityUserName = u.nickName + " [" + u.jobTypeName + "] ";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 选择监理专员*/
|
||||||
|
selectSuperviseUser(val) {
|
||||||
|
this.deptUserData.forEach((item) => {
|
||||||
|
item.userinfoList.forEach((u) => {
|
||||||
|
if (u.phonenumber == val) {
|
||||||
|
this.form.superviseUserName = u.nickName + " [" + u.jobTypeName + "] ";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 下载附件 */
|
||||||
|
handleDownload(row) {
|
||||||
|
this.files = row.measureFiles.split(",");
|
||||||
|
this.files.forEach((item) => {
|
||||||
|
this.$download.resource(item);
|
||||||
|
});
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -0,0 +1,631 @@
|
||||||
|
<template>
|
||||||
|
<div class="projectect-attendance-drawer">
|
||||||
|
<el-drawer
|
||||||
|
v-if="isOpen"
|
||||||
|
:visible.sync="isOpen"
|
||||||
|
direction="rtl"
|
||||||
|
size="65%"
|
||||||
|
style="padding-left: 20px"
|
||||||
|
>
|
||||||
|
<template slot="title">
|
||||||
|
<div>{{ title + " 【实时测量管理】" }}</div>
|
||||||
|
</template>
|
||||||
|
<el-tabs
|
||||||
|
v-model="activeName"
|
||||||
|
style="margin-left: 20px; margin-right: 20px"
|
||||||
|
@tab-click="getList"
|
||||||
|
>
|
||||||
|
<el-tab-pane
|
||||||
|
v-for="(it, idx) in nodes"
|
||||||
|
:label="it.unitName + ''"
|
||||||
|
:name="it.unitId + ''"
|
||||||
|
:key="idx"
|
||||||
|
></el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
<el-row
|
||||||
|
:gutter="10"
|
||||||
|
class="mb8"
|
||||||
|
style="margin-left: 20px; margin-top: 10px; margin-right: 20px"
|
||||||
|
>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
icon="el-icon-plus"
|
||||||
|
size="mini"
|
||||||
|
@click="handleAdd"
|
||||||
|
v-hasPermi="['project:projectMeasure:add']"
|
||||||
|
>新增</el-button
|
||||||
|
>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="success"
|
||||||
|
plain
|
||||||
|
icon="el-icon-edit"
|
||||||
|
size="mini"
|
||||||
|
:disabled="single"
|
||||||
|
@click="handleUpdate"
|
||||||
|
v-hasPermi="['project:projectMeasure:edit']"
|
||||||
|
>修改</el-button
|
||||||
|
>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="danger"
|
||||||
|
plain
|
||||||
|
icon="el-icon-delete"
|
||||||
|
size="mini"
|
||||||
|
:disabled="multiple"
|
||||||
|
@click="handleDelete"
|
||||||
|
v-hasPermi="['project:projectMeasure:remove']"
|
||||||
|
>删除</el-button
|
||||||
|
>
|
||||||
|
</el-col>
|
||||||
|
<right-toolbar
|
||||||
|
:showSearch.sync="showSearch"
|
||||||
|
@queryTable="getList"
|
||||||
|
></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
<el-table
|
||||||
|
v-loading="loading"
|
||||||
|
:data="projectMeasureList"
|
||||||
|
@selection-change="handleSelectionChange"
|
||||||
|
>
|
||||||
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
|
<el-table-column label="测量图片" align="center" prop="mainImage" width="80">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-image
|
||||||
|
ref="preview"
|
||||||
|
style="width: 50px; height: 50px"
|
||||||
|
:src="getImageUrl(scope.row.mainImage)"
|
||||||
|
@click="onPreview(scope.row.imageUrls)"
|
||||||
|
></el-image>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="测量类型" align="center" prop="measureType">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag
|
||||||
|
:options="dict.type.project_measure_type"
|
||||||
|
:value="scope.row.measureType"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="测量部位"
|
||||||
|
align="center"
|
||||||
|
prop="measurePosition"
|
||||||
|
width="120"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
label="测量内容"
|
||||||
|
align="center"
|
||||||
|
prop="measureInfo"
|
||||||
|
width="140"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column label="测量时间" align="center" prop="measureTime" width="160">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ parseTime(scope.row.measureTime, "{y}-{m}-{d} {h}:{i}") }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="测量点位"
|
||||||
|
align="center"
|
||||||
|
prop="measurePointPosition"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column label="测量结果" align="center" prop="measureResult">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag
|
||||||
|
:options="dict.type.project_checking_result"
|
||||||
|
:value="scope.row.measureResult"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="质量专员"
|
||||||
|
align="center"
|
||||||
|
prop="qualityUser"
|
||||||
|
width="100"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<div>{{ scope.row.qualityUserName }}</div>
|
||||||
|
<div>{{ scope.row.qualityUser }}</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="监理专员"
|
||||||
|
align="left"
|
||||||
|
prop="superviseUser"
|
||||||
|
width="100"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<div>{{ scope.row.superviseUserName }}</div>
|
||||||
|
<div>{{ scope.row.superviseUser }}</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="操作"
|
||||||
|
align="center"
|
||||||
|
class-name="small-padding fixed-width"
|
||||||
|
width="120"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
v-if="scope.row.measureFiles != null"
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-paperclip"
|
||||||
|
@click="handledownload(scope.row)"
|
||||||
|
v-hasPermi="['project:projectMeasure:list']"
|
||||||
|
>下载附件</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
@click="handleUpdate(scope.row)"
|
||||||
|
v-hasPermi="['project:projectMeasure:edit']"
|
||||||
|
>修改</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
v-hasPermi="['project:projectMeasure: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="780px" append-to-body>
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
|
<el-form-item label="项目名称" prop="projectName">
|
||||||
|
<el-input
|
||||||
|
v-model="form.projectName"
|
||||||
|
placeholder="请输入项目名称"
|
||||||
|
:disabled="true"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="单位名称" prop="deptName">
|
||||||
|
<el-input
|
||||||
|
v-model="form.deptName"
|
||||||
|
placeholder="请输入单位名称"
|
||||||
|
:disabled="true"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="测量图片" prop="imageUrls">
|
||||||
|
<image-upload v-model="form.imageUrls" :limit="9" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="测量类型" prop="measureType">
|
||||||
|
<el-select
|
||||||
|
v-model="form.measureType"
|
||||||
|
placeholder="请选择测量类型"
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in dict.type.project_measure_type"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="测量部位" prop="measurePosition">
|
||||||
|
<el-input v-model="form.measurePosition" placeholder="请输入测量部位" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="测量内容" prop="measureInfo">
|
||||||
|
<el-input v-model="form.measureInfo" placeholder="请输入测量内容" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="测量点位" prop="measurePointPosition">
|
||||||
|
<el-input v-model="form.measurePointPosition" placeholder="请输入测量点位" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="质量专员" prop="qualityUser">
|
||||||
|
<el-select
|
||||||
|
v-model="form.qualityUser"
|
||||||
|
placeholder="请选择质量专员"
|
||||||
|
filterable
|
||||||
|
style="width: 100%"
|
||||||
|
@change="selectQualityUser"
|
||||||
|
>
|
||||||
|
<el-option-group
|
||||||
|
v-for="group in deptUserData"
|
||||||
|
:key="group.unitId + ''"
|
||||||
|
:label="group.unitName + ' [' + group.unitTypeName + '] '"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in group.userinfoList"
|
||||||
|
:key="item.phonenumber"
|
||||||
|
:label="item.nickName + ' [' + item.jobTypeName + '] '"
|
||||||
|
:value="item.phonenumber"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-option-group>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="监理专员" prop="superviseUser">
|
||||||
|
<el-select
|
||||||
|
v-model="form.superviseUser"
|
||||||
|
placeholder="请选择监理专员"
|
||||||
|
filterable
|
||||||
|
style="width: 100%"
|
||||||
|
@change="selectSuperviseUser"
|
||||||
|
>
|
||||||
|
<el-option-group
|
||||||
|
v-for="group in deptUserData"
|
||||||
|
:key="group.unitId + ''"
|
||||||
|
:label="group.unitName + ' [' + group.unitTypeName + '] '"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in group.userinfoList"
|
||||||
|
:key="item.phonenumber"
|
||||||
|
:label="item.nickName + ' [' + item.jobTypeName + '] '"
|
||||||
|
:value="item.phonenumber"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-option-group>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="测量时间" prop="measureTime">
|
||||||
|
<el-date-picker
|
||||||
|
clearable
|
||||||
|
v-model="form.measureTime"
|
||||||
|
type="datetime"
|
||||||
|
default-time="10:00:00"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
placeholder="请选择测量时间"
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="测量结果" prop="measureResult">
|
||||||
|
<el-radio
|
||||||
|
v-model="form.measureResult"
|
||||||
|
v-for="dict in dict.type.project_checking_result"
|
||||||
|
:label="dict.value"
|
||||||
|
:key="dict.value"
|
||||||
|
border
|
||||||
|
size="small"
|
||||||
|
>{{ dict.label }}</el-radio
|
||||||
|
>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="测量附件" prop="measureFiles" v-if="false">
|
||||||
|
<file-upload v-model="form.measureFiles" :limit="1" @input="fileInput" />
|
||||||
|
</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>
|
||||||
|
</el-drawer>
|
||||||
|
<el-image-viewer
|
||||||
|
v-if="showViewer"
|
||||||
|
:on-close="closeViewer"
|
||||||
|
:url-list="previewList"
|
||||||
|
style="z-index: 2050"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { mapGetters } from "vuex";
|
||||||
|
import {
|
||||||
|
listProjectMeasure,
|
||||||
|
getProjectMeasure,
|
||||||
|
delProjectMeasure,
|
||||||
|
addProjectMeasure,
|
||||||
|
updateProjectMeasure,
|
||||||
|
} from "@/api/project/projectMeasure";
|
||||||
|
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "RuoyiUiProjectDeptWroksDrawer",
|
||||||
|
components: {
|
||||||
|
ElImageViewer,
|
||||||
|
},
|
||||||
|
dicts: ["project_measure_type", "project_checking_result"],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
showViewer: false,
|
||||||
|
open: false,
|
||||||
|
isOpen: false,
|
||||||
|
project: null,
|
||||||
|
title: "",
|
||||||
|
isUnit: true,
|
||||||
|
nodes: [],
|
||||||
|
form: {},
|
||||||
|
rules: {
|
||||||
|
imageUrls: [{ required: true, message: "请上传测量图片", trigger: "blur" }],
|
||||||
|
measureType: [{ required: true, message: "请选择测量类型", trigger: "blur" }],
|
||||||
|
measurePosition: [
|
||||||
|
{ required: true, message: "请输入测量部位", trigger: "blur" },
|
||||||
|
{ max: 100, message: "测量部位最多100字符", trigger: "blur" },
|
||||||
|
],
|
||||||
|
measureInfo: [
|
||||||
|
{ required: true, message: "请输入测量内容", trigger: "blur" },
|
||||||
|
{ max: 100, message: "测量内容最多100字符", trigger: "blur" },
|
||||||
|
],
|
||||||
|
measurePointPosition: [
|
||||||
|
{ required: true, message: "请输入测量点位", trigger: "blur" },
|
||||||
|
{ max: 100, message: "测量点位最多100字符", trigger: "blur" },
|
||||||
|
],
|
||||||
|
qualityUser: [{ required: true, message: "请选择质量专员", trigger: "blur" }],
|
||||||
|
superviseUser: [{ required: true, message: "请选择监理专员", trigger: "blur" }],
|
||||||
|
measureTime: [{ required: true, message: "请选择测量时间", trigger: "blur" }],
|
||||||
|
measureResult: [{ required: true, message: "请选择测量结果", trigger: "blur" }],
|
||||||
|
measureFiles: [{ required: false, message: "请上传测量附件", trigger: "blur" }],
|
||||||
|
},
|
||||||
|
projectMeasureList: [],
|
||||||
|
activeName: "",
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
projectId: null,
|
||||||
|
deptId: null,
|
||||||
|
},
|
||||||
|
deptUserData: [],
|
||||||
|
previewList: [],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters(["dept"]),
|
||||||
|
},
|
||||||
|
mounted() {},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
fileInput(files) {
|
||||||
|
let fileUrls = null;
|
||||||
|
if (files.length > 0) {
|
||||||
|
fileUrls = "";
|
||||||
|
files.forEach((item) => {
|
||||||
|
fileUrls += "," + item.url;
|
||||||
|
});
|
||||||
|
fileUrls = fileUrls.substring(1);
|
||||||
|
}
|
||||||
|
this.form.measureFiles = fileUrls;
|
||||||
|
},
|
||||||
|
getImageUrl(url) {
|
||||||
|
return process.env.VUE_APP_BASE_API + url + ".min.jpg";
|
||||||
|
},
|
||||||
|
onPreview(urls) {
|
||||||
|
this.previewList = [];
|
||||||
|
urls.split(",").forEach((item) => {
|
||||||
|
this.previewList.push(process.env.VUE_APP_BASE_API + item);
|
||||||
|
});
|
||||||
|
this.showViewer = true;
|
||||||
|
},
|
||||||
|
closeViewer() {
|
||||||
|
this.showViewer = false;
|
||||||
|
},
|
||||||
|
doOk() {
|
||||||
|
updateProjectDeptWroks(this.form).then((response) => {
|
||||||
|
this.$modal.msgSuccess("保存成功");
|
||||||
|
this.isOpen = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
doCanel() {
|
||||||
|
this.isOpen = false;
|
||||||
|
},
|
||||||
|
show(project) {
|
||||||
|
this.project = project;
|
||||||
|
this.title = project.projectName;
|
||||||
|
this.isOpen = true;
|
||||||
|
this.queryParams.projectId = project.id;
|
||||||
|
this.$api.publics
|
||||||
|
.queryUnitList({
|
||||||
|
projectId: project.id,
|
||||||
|
unitTypes: "2,4".split(","),
|
||||||
|
})
|
||||||
|
.then((d) => {
|
||||||
|
this.nodes = d.rows;
|
||||||
|
if (d.rows.length > 0) {
|
||||||
|
this.activeName = this.nodes[0].unitId + "";
|
||||||
|
this.isUnit = true;
|
||||||
|
this.getList();
|
||||||
|
} else {
|
||||||
|
this.projectMeasureList = [];
|
||||||
|
this.$message.error("当前项目未分配总包单位,不能办理举牌测量!");
|
||||||
|
this.isUnit = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.$api.publics
|
||||||
|
.selectProjectUnitUser({
|
||||||
|
projectId: project.id,
|
||||||
|
})
|
||||||
|
.then((d) => {
|
||||||
|
this.deptUserData = d.data;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 页签点击
|
||||||
|
getList() {
|
||||||
|
this.queryParams.deptId = this.activeName;
|
||||||
|
this.loading = true;
|
||||||
|
listProjectMeasure(this.queryParams).then((response) => {
|
||||||
|
this.projectMeasureList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 取消按钮
|
||||||
|
cancel() {
|
||||||
|
this.open = false;
|
||||||
|
this.reset();
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
id: null,
|
||||||
|
projectId: null,
|
||||||
|
deptId: null,
|
||||||
|
insuranceType: null,
|
||||||
|
insuranceNumber: null,
|
||||||
|
insuranceFile: null,
|
||||||
|
insuranceState: null,
|
||||||
|
beginDate: null,
|
||||||
|
endDate: null,
|
||||||
|
companyName: null,
|
||||||
|
isDel: null,
|
||||||
|
createBy: null,
|
||||||
|
createTime: null,
|
||||||
|
updateBy: null,
|
||||||
|
updateTime: null,
|
||||||
|
remark: null,
|
||||||
|
};
|
||||||
|
this.resetForm("form");
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
// 多选框选中数据
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.ids = selection.map((item) => item.id);
|
||||||
|
this.single = selection.length !== 1;
|
||||||
|
this.multiple = !selection.length;
|
||||||
|
},
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
handleAdd() {
|
||||||
|
if (this.nodes.length > 0) {
|
||||||
|
this.reset();
|
||||||
|
this.form.projectId = this.project.id;
|
||||||
|
this.form.projectName = this.project.projectName;
|
||||||
|
this.form.deptId = this.activeName;
|
||||||
|
this.nodes.forEach((item) => {
|
||||||
|
if (item.unitId == this.activeName) {
|
||||||
|
this.form.deptName = item.unitName;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.open = true;
|
||||||
|
this.title = "添加项目举牌测量";
|
||||||
|
} else {
|
||||||
|
this.$message.error("当前项目未分配总包单位,不能办理举牌测量!");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
handleUpdate(row) {
|
||||||
|
this.reset();
|
||||||
|
const id = row.id || this.ids;
|
||||||
|
getProjectMeasure(id).then((response) => {
|
||||||
|
this.form = response.data;
|
||||||
|
this.form.projectName = this.project.projectName;
|
||||||
|
this.nodes.forEach((item) => {
|
||||||
|
if (item.unitId == this.activeName) {
|
||||||
|
this.form.deptName = item.unitName;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.open = true;
|
||||||
|
this.title = "修改项目举牌测量";
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 提交按钮 */
|
||||||
|
submitForm() {
|
||||||
|
this.$refs["form"].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
if (this.form.id != null) {
|
||||||
|
updateProjectMeasure(this.form).then((response) => {
|
||||||
|
this.$modal.msgSuccess("修改成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
addProjectMeasure(this.form).then((response) => {
|
||||||
|
if (response.code == 200) {
|
||||||
|
this.$modal.msgSuccess("新增成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(row) {
|
||||||
|
const ids = row.id || this.ids;
|
||||||
|
this.$modal
|
||||||
|
.confirm('是否确认删除项目举牌测量编号为"' + ids + '"的数据项?')
|
||||||
|
.then(function () {
|
||||||
|
return delProjectMeasure(ids);
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
handleExport() {
|
||||||
|
this.download(
|
||||||
|
"project/projectMeasure/export",
|
||||||
|
{
|
||||||
|
...this.queryParams,
|
||||||
|
},
|
||||||
|
`ProjectMeasure_${new Date().getTime()}.xlsx`
|
||||||
|
);
|
||||||
|
},
|
||||||
|
/** 选择质量专员*/
|
||||||
|
selectQualityUser(val) {
|
||||||
|
this.deptUserData.forEach((item) => {
|
||||||
|
item.userinfoList.forEach((u) => {
|
||||||
|
if (u.phonenumber == val) {
|
||||||
|
this.form.qualityUserName = u.nickName + " [" + u.jobTypeName + "] ";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 选择监理专员*/
|
||||||
|
selectSuperviseUser(val) {
|
||||||
|
this.deptUserData.forEach((item) => {
|
||||||
|
item.userinfoList.forEach((u) => {
|
||||||
|
if (u.phonenumber == val) {
|
||||||
|
this.form.superviseUserName = u.nickName + " [" + u.jobTypeName + "] ";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 下载附件 */
|
||||||
|
handleDownload(row) {
|
||||||
|
this.files = row.measureFiles.split(",");
|
||||||
|
this.files.forEach((item) => {
|
||||||
|
this.$download.resource(item);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped></style>
|
|
@ -369,6 +369,8 @@
|
||||||
'work:emergencyDrill:list',
|
'work:emergencyDrill:list',
|
||||||
'project:surProjectInsurance:list',
|
'project:surProjectInsurance:list',
|
||||||
'project:surProjectSpecial:list',
|
'project:surProjectSpecial:list',
|
||||||
|
'project:projectMeasure:list',
|
||||||
|
'project:materialSeal:list',
|
||||||
'project:projectDeptWroks:list',
|
'project:projectDeptWroks:list',
|
||||||
'project:surProjectAttendance:add',
|
'project:surProjectAttendance:add',
|
||||||
'project:surProject:remove',
|
'project:surProject:remove',
|
||||||
|
@ -420,6 +422,18 @@
|
||||||
v-hasPermi="['project:surProjectSpecial:list']"
|
v-hasPermi="['project:surProjectSpecial:list']"
|
||||||
>项目特种人员</el-dropdown-item
|
>项目特种人员</el-dropdown-item
|
||||||
>
|
>
|
||||||
|
<el-dropdown-item
|
||||||
|
command="handleProjectMeasure"
|
||||||
|
icon="el-icon-s-operation"
|
||||||
|
v-hasPermi="['project:projectMeasure:list']"
|
||||||
|
>实时测量管理</el-dropdown-item
|
||||||
|
>
|
||||||
|
<el-dropdown-item
|
||||||
|
command="handleProjectMaterialSeal"
|
||||||
|
icon="el-icon-s-ticket"
|
||||||
|
v-hasPermi="['project:materialSeal:list']"
|
||||||
|
>材料封样管理</el-dropdown-item
|
||||||
|
>
|
||||||
<el-dropdown-item
|
<el-dropdown-item
|
||||||
command="handleProjectDeptWroks"
|
command="handleProjectDeptWroks"
|
||||||
icon="el-icon-s-custom"
|
icon="el-icon-s-custom"
|
||||||
|
@ -432,7 +446,6 @@
|
||||||
v-hasPermi="['project:surProjectAttendance:add']"
|
v-hasPermi="['project:surProjectAttendance:add']"
|
||||||
>今日出勤</el-dropdown-item
|
>今日出勤</el-dropdown-item
|
||||||
>
|
>
|
||||||
|
|
||||||
<el-dropdown-item
|
<el-dropdown-item
|
||||||
command="handleDelete"
|
command="handleDelete"
|
||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
|
@ -764,6 +777,8 @@
|
||||||
<projectDeptWroksDrawer ref="deptWroksDrawer"></projectDeptWroksDrawer>
|
<projectDeptWroksDrawer ref="deptWroksDrawer"></projectDeptWroksDrawer>
|
||||||
<insuranceDrawer ref="insurance"></insuranceDrawer>
|
<insuranceDrawer ref="insurance"></insuranceDrawer>
|
||||||
<projectCheckingDrawer ref="projectChecking"></projectCheckingDrawer>
|
<projectCheckingDrawer ref="projectChecking"></projectCheckingDrawer>
|
||||||
|
<materialSealDrawer ref="materialSeal"></materialSealDrawer>
|
||||||
|
<projectMeasureDrawer ref="projectMeasure"></projectMeasureDrawer>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -789,6 +804,8 @@ import attendanceDrawer from "../surProjectAttendance/attendanceDrawer.vue";
|
||||||
import projectDeptWroksDrawer from "../projectDeptWroks/projectDeptWroksDrawer.vue";
|
import projectDeptWroksDrawer from "../projectDeptWroks/projectDeptWroksDrawer.vue";
|
||||||
import insuranceDrawer from "../surProjectInsurance/insuranceDrawer.vue";
|
import insuranceDrawer from "../surProjectInsurance/insuranceDrawer.vue";
|
||||||
import projectCheckingDrawer from "../projectChecking/projectCheckingDrawer.vue";
|
import projectCheckingDrawer from "../projectChecking/projectCheckingDrawer.vue";
|
||||||
|
import materialSealDrawer from "../materialSeal/projectMaterialSealDrawer.vue";
|
||||||
|
import projectMeasureDrawer from "../projectMeasure/projectMeasureDrawer.vue";
|
||||||
import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
|
import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
@ -806,6 +823,8 @@ export default {
|
||||||
projectDeptWroksDrawer,
|
projectDeptWroksDrawer,
|
||||||
insuranceDrawer,
|
insuranceDrawer,
|
||||||
projectCheckingDrawer,
|
projectCheckingDrawer,
|
||||||
|
materialSealDrawer,
|
||||||
|
projectMeasureDrawer,
|
||||||
},
|
},
|
||||||
dicts: [
|
dicts: [
|
||||||
"sys_check_state",
|
"sys_check_state",
|
||||||
|
@ -1046,6 +1065,12 @@ export default {
|
||||||
case "handleProjectChecking":
|
case "handleProjectChecking":
|
||||||
this.$refs.projectChecking.show(row);
|
this.$refs.projectChecking.show(row);
|
||||||
break;
|
break;
|
||||||
|
case "handleProjectMeasure":
|
||||||
|
this.$refs.projectMeasure.show(row);
|
||||||
|
break;
|
||||||
|
case "handleProjectMaterialSeal":
|
||||||
|
this.$refs.materialSeal.show(row);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,11 @@
|
||||||
@queryTable="getList"
|
@queryTable="getList"
|
||||||
></right-toolbar>
|
></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-table v-loading="loading" :data="surProjectInsuranceList">
|
<el-table
|
||||||
|
v-loading="loading"
|
||||||
|
:data="surProjectInsuranceList"
|
||||||
|
@selection-change="handleSelectionChange"
|
||||||
|
>
|
||||||
<el-table-column label="保险类型" align="center" prop="insuranceTypeName" />
|
<el-table-column label="保险类型" align="center" prop="insuranceTypeName" />
|
||||||
<el-table-column label="保险状态" align="center" prop="insuranceState">
|
<el-table-column label="保险状态" align="center" prop="insuranceState">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
|
|
@ -1,71 +1,123 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-drawer v-bind="$attrs" v-if="onOpen" v-on="$listeners" @opened="onOpen" @close="onClose" style="padding-left: 20px;">
|
<el-drawer
|
||||||
<el-row :gutter="10" class="mb8" style="margin-left: 25px; margin-top:10px;margin-right:0px;">
|
v-bind="$attrs"
|
||||||
<el-col :span="1.5">
|
v-if="onOpen"
|
||||||
<el-button
|
v-on="$listeners"
|
||||||
type="primary"
|
@opened="onOpen"
|
||||||
plain
|
@close="onClose"
|
||||||
icon="el-icon-plus"
|
style="padding-left: 20px"
|
||||||
size="mini"
|
>
|
||||||
@click="handleAdd"
|
<el-row
|
||||||
v-hasPermi="['project:surProjectUserInfo:add']"
|
:gutter="10"
|
||||||
>添加</el-button>
|
class="mb8"
|
||||||
</el-col>
|
style="margin-left: 25px; margin-top: 10px; margin-right: 0px"
|
||||||
<el-col :span="1.5">
|
>
|
||||||
<el-button
|
<el-col :span="1.5">
|
||||||
type="danger"
|
<el-button
|
||||||
plain
|
type="primary"
|
||||||
icon="el-icon-delete"
|
plain
|
||||||
size="mini"
|
icon="el-icon-plus"
|
||||||
:disabled="multiple"
|
size="mini"
|
||||||
@click="handleDelete"
|
@click="handleAdd"
|
||||||
v-hasPermi="['project:surProjectUserInfo:remove']"
|
v-hasPermi="['project:surProjectUserInfo:add']"
|
||||||
>删除</el-button>
|
>添加</el-button
|
||||||
|
>
|
||||||
</el-col>
|
</el-col>
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<el-col :span="1.5">
|
||||||
</el-row>
|
<el-button
|
||||||
<el-table v-loading="loading" :data="surProjectUserInfoList" @selection-change="handleSelectionChange">
|
type="danger"
|
||||||
|
plain
|
||||||
|
icon="el-icon-delete"
|
||||||
|
size="mini"
|
||||||
|
:disabled="multiple"
|
||||||
|
@click="handleDelete"
|
||||||
|
v-hasPermi="['project:surProjectUserInfo:remove']"
|
||||||
|
>删除</el-button
|
||||||
|
>
|
||||||
|
</el-col>
|
||||||
|
<right-toolbar
|
||||||
|
:showSearch.sync="showSearch"
|
||||||
|
@queryTable="getList"
|
||||||
|
></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
<el-table
|
||||||
|
v-loading="loading"
|
||||||
|
:data="surProjectUserInfoList"
|
||||||
|
@selection-change="handleSelectionChange"
|
||||||
|
>
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<el-table-column label="单位名称" prop="deptName" align="left" show-overflow-tooltip/>
|
<el-table-column
|
||||||
|
label="单位名称"
|
||||||
|
prop="deptName"
|
||||||
|
align="left"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
<el-table-column label="单位类型" align="center" prop="deptType">
|
<el-table-column label="单位类型" align="center" prop="deptType">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<dict-tag :options="dict.type.sys_dept_type" :value="scope.row.deptType"/>
|
<dict-tag :options="dict.type.sys_dept_type" :value="scope.row.deptType" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="职务类型" align="center" prop="jobType">
|
<el-table-column label="职务类型" align="center" prop="jobType">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-select v-model="scope.row.jobType" placeholder="请选择职务类型" @change="changeJobType(scope.row,$event)">
|
<el-select
|
||||||
<el-option
|
v-model="scope.row.jobType"
|
||||||
v-for="item in dict.type.sys_job_type"
|
placeholder="请选择职务类型"
|
||||||
:key="item.value"
|
@change="changeJobType(scope.row, $event)"
|
||||||
:label="item.label"
|
>
|
||||||
:value="item.value"
|
<el-option
|
||||||
>
|
v-for="item in dict.type.sys_job_type"
|
||||||
</el-option>
|
:key="item.value"
|
||||||
</el-select>
|
:label="item.label"
|
||||||
</template>
|
:value="item.value"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="人员名称" align="center" prop="nickName" />
|
<el-table-column label="人员名称" align="center" prop="nickName" />
|
||||||
<el-table-column label="联系电话" align="center" prop="phonenumber" />
|
<el-table-column label="联系电话" align="center" prop="phonenumber" />
|
||||||
</el-table>
|
</el-table>
|
||||||
<pagination
|
<pagination
|
||||||
v-show="total>0"
|
v-show="total > 0"
|
||||||
:total="total"
|
:total="total"
|
||||||
:page.sync="queryParams.pageNum"
|
:page.sync="queryParams.pageNum"
|
||||||
:limit.sync="queryParams.pageSize"
|
:limit.sync="queryParams.pageSize"
|
||||||
@pagination="getList"
|
@pagination="getList"
|
||||||
/>
|
/>
|
||||||
<el-dialog :title="title" v-if="open" :visible.sync="open" width="680px" append-to-body :close-on-click-modal="false" :close-on-press-escape="false">
|
<el-dialog
|
||||||
|
:title="title"
|
||||||
|
v-if="open"
|
||||||
|
:visible.sync="open"
|
||||||
|
width="680px"
|
||||||
|
append-to-body
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
:close-on-press-escape="false"
|
||||||
|
>
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
||||||
<el-form-item label="项目名称">
|
<el-form-item label="项目名称">
|
||||||
<el-input placeholder="请输入项目名称" v-model="form.projectName" :disabled="true"></el-input>
|
<el-input
|
||||||
|
placeholder="请输入项目名称"
|
||||||
|
v-model="form.projectName"
|
||||||
|
:disabled="true"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="所属单位" prop="deptId">
|
<el-form-item label="所属单位" prop="deptId">
|
||||||
<treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择所属单位" @select="deptChange"/>
|
<treeselect
|
||||||
|
v-model="form.deptId"
|
||||||
|
:options="deptOptions"
|
||||||
|
:show-count="true"
|
||||||
|
placeholder="请选择所属单位"
|
||||||
|
@select="deptChange"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="职务类型" prop="jobType">
|
<el-form-item label="职务类型" prop="jobType">
|
||||||
<el-select v-model="form.jobType" filterable placeholder="请选择职务类型" style="width: 100%;">
|
<el-select
|
||||||
|
v-model="form.jobType"
|
||||||
|
filterable
|
||||||
|
placeholder="请选择职务类型"
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in dict.type.sys_job_type"
|
v-for="dict in dict.type.sys_job_type"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
|
@ -75,12 +127,20 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="项目人员" prop="userIds">
|
<el-form-item label="项目人员" prop="userIds">
|
||||||
<el-select v-model="form.userIds" filterable multiple clearable placeholder="请选择项目人员" style="width: 100%;">
|
<el-select
|
||||||
|
v-model="form.userIds"
|
||||||
|
filterable
|
||||||
|
multiple
|
||||||
|
clearable
|
||||||
|
placeholder="请选择项目人员"
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in userOptions"
|
v-for="item in userOptions"
|
||||||
:key="item.userId"
|
:key="item.userId"
|
||||||
:label="item.nickName"
|
:label="item.nickName"
|
||||||
:value="item.userId">
|
:value="item.userId"
|
||||||
|
>
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -93,112 +153,106 @@
|
||||||
<el-button @click="cancel">取 消</el-button>
|
<el-button @click="cancel">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listSurProjectUserInfo, delSurProjectUserInfo, addSurProjectUserInfo, updateSurProjectUserInfo, findUserByDeptId } from "@/api/project/surProjectUserInfo";
|
import {
|
||||||
import Treeselect from "@riophae/vue-treeselect";
|
listSurProjectUserInfo,
|
||||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
delSurProjectUserInfo,
|
||||||
|
addSurProjectUserInfo,
|
||||||
|
updateSurProjectUserInfo,
|
||||||
|
findUserByDeptId,
|
||||||
|
} from "@/api/project/surProjectUserInfo";
|
||||||
|
import Treeselect from "@riophae/vue-treeselect";
|
||||||
|
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {Treeselect},
|
components: { Treeselect },
|
||||||
props: {
|
props: {
|
||||||
formData: {
|
formData: {
|
||||||
projectId: String,
|
projectId: String,
|
||||||
projectName: String
|
projectName: String,
|
||||||
}
|
|
||||||
},
|
},
|
||||||
dicts: ['sys_dept_type','sys_job_type'],
|
},
|
||||||
data() {
|
dicts: ["sys_dept_type", "sys_job_type"],
|
||||||
return {
|
data() {
|
||||||
// 遮罩层
|
return {
|
||||||
loading: true,
|
// 遮罩层
|
||||||
// 选中数组
|
loading: true,
|
||||||
ids: [],
|
// 选中数组
|
||||||
// 总条数
|
ids: [],
|
||||||
total: 0,
|
// 总条数
|
||||||
// 项目人员表格数据
|
total: 0,
|
||||||
surProjectUserInfoList: [],
|
// 项目人员表格数据
|
||||||
// 非单个禁用
|
surProjectUserInfoList: [],
|
||||||
single: true,
|
// 非单个禁用
|
||||||
// 非多个禁用
|
single: true,
|
||||||
multiple: true,
|
// 非多个禁用
|
||||||
// 显示搜索条件
|
multiple: true,
|
||||||
showSearch: true,
|
// 显示搜索条件
|
||||||
// 是否显示弹出层
|
showSearch: true,
|
||||||
open: false,
|
// 是否显示弹出层
|
||||||
// 弹出层标题
|
open: false,
|
||||||
title: "",
|
// 弹出层标题
|
||||||
userIds: [],
|
title: "",
|
||||||
userOptions: [],
|
userIds: [],
|
||||||
// 单位树选项
|
userOptions: [],
|
||||||
deptOptions: [],
|
// 单位树选项
|
||||||
// 单位名称
|
deptOptions: [],
|
||||||
deptName: null,
|
// 单位名称
|
||||||
// 查询参数
|
deptName: null,
|
||||||
queryParams: {
|
// 查询参数
|
||||||
pageNum: 1,
|
queryParams: {
|
||||||
pageSize: 20,
|
pageNum: 1,
|
||||||
projectId: null
|
pageSize: 20,
|
||||||
},
|
projectId: null,
|
||||||
// 表单参数
|
},
|
||||||
form: {},
|
// 表单参数
|
||||||
// 表单校验
|
form: {},
|
||||||
rules: {
|
// 表单校验
|
||||||
deptId: [
|
rules: {
|
||||||
{ required: true, message: "请选择所属单位", trigger: "blur" }
|
deptId: [{ required: true, message: "请选择所属单位", trigger: "blur" }],
|
||||||
],
|
jobType: [{ required: true, message: "请选择职务类型", trigger: "blur" }],
|
||||||
jobType: [
|
userIds: [{ required: true, message: "请选择项目人员", trigger: "blur" }],
|
||||||
{ required: true, message: "请选择职务类型", trigger: "blur" }
|
},
|
||||||
],
|
};
|
||||||
userIds: [
|
},
|
||||||
{ required: true, message: "请选择项目人员", trigger: "blur" }
|
computed: {},
|
||||||
]
|
watch: {
|
||||||
}
|
formData: {
|
||||||
|
handler(value) {
|
||||||
|
this.formData = value;
|
||||||
|
},
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
created() {},
|
||||||
|
mounted() {},
|
||||||
|
beforeDestroy() {},
|
||||||
|
methods: {
|
||||||
|
onOpen() {
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
onClose() {},
|
||||||
|
/** 查询项目人员列表 */
|
||||||
|
getList() {
|
||||||
|
if (this.formData.projectId) {
|
||||||
|
this.loading = true;
|
||||||
|
this.queryParams.projectId = this.formData.projectId;
|
||||||
|
listSurProjectUserInfo(this.queryParams).then((response) => {
|
||||||
|
this.surProjectUserInfoList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {},
|
|
||||||
watch: {
|
|
||||||
formData: {
|
|
||||||
handler(value) {
|
|
||||||
this.formData = value
|
|
||||||
},
|
|
||||||
immediate: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
created() {
|
|
||||||
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
|
|
||||||
},
|
|
||||||
beforeDestroy() {
|
|
||||||
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
onOpen() {
|
|
||||||
this.getList();
|
|
||||||
},
|
|
||||||
onClose() {},
|
|
||||||
/** 查询项目人员列表 */
|
|
||||||
getList() {
|
|
||||||
if(this.formData.projectId){
|
|
||||||
this.loading = true;
|
|
||||||
this.queryParams.projectId = this.formData.projectId;
|
|
||||||
listSurProjectUserInfo(this.queryParams).then(response => {
|
|
||||||
this.surProjectUserInfoList = response.rows;
|
|
||||||
this.total = response.total;
|
|
||||||
this.loading = false;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
this.ids = selection.map(item => item.id)
|
this.ids = selection.map((item) => item.id);
|
||||||
this.single = selection.length!==1
|
this.single = selection.length !== 1;
|
||||||
this.multiple = !selection.length
|
this.multiple = !selection.length;
|
||||||
},
|
},
|
||||||
// 表单重置
|
// 表单重置
|
||||||
reset() {
|
reset() {
|
||||||
|
@ -215,18 +269,18 @@
|
||||||
createTime: null,
|
createTime: null,
|
||||||
updateBy: null,
|
updateBy: null,
|
||||||
updateTime: null,
|
updateTime: null,
|
||||||
remark: null
|
remark: null,
|
||||||
};
|
};
|
||||||
this.userIds= [];
|
this.userIds = [];
|
||||||
this.userOptions=[];
|
this.userOptions = [];
|
||||||
this.resetForm("form");
|
this.resetForm("form");
|
||||||
},
|
},
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.reset();
|
this.reset();
|
||||||
this.getDeptTree();
|
this.getDeptTree();
|
||||||
this.form.projectId=this.formData.projectId;
|
this.form.projectId = this.formData.projectId;
|
||||||
this.form.projectName=this.formData.projectName;
|
this.form.projectName = this.formData.projectName;
|
||||||
this.open = true;
|
this.open = true;
|
||||||
this.title = "添加项目人员";
|
this.title = "添加项目人员";
|
||||||
},
|
},
|
||||||
|
@ -238,16 +292,16 @@
|
||||||
// 获取单位列表
|
// 获取单位列表
|
||||||
getDeptTree() {
|
getDeptTree() {
|
||||||
//获取单位列表的接口
|
//获取单位列表的接口
|
||||||
this.$api.publics.getDeptTree().then(response => {
|
this.$api.publics.getDeptTree().then((response) => {
|
||||||
this.deptOptions = response.data;
|
this.deptOptions = response.data;
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
// 单位改变数据
|
// 单位改变数据
|
||||||
deptChange(note){
|
deptChange(note) {
|
||||||
this.userIds=[];
|
this.userIds = [];
|
||||||
this.userOptions=[];
|
this.userOptions = [];
|
||||||
this.form.userIds=[];
|
this.form.userIds = [];
|
||||||
if(note&¬e.id){
|
if (note && note.id) {
|
||||||
this.form.deptId = note.id;
|
this.form.deptId = note.id;
|
||||||
this.getUserList(note.id);
|
this.getUserList(note.id);
|
||||||
}
|
}
|
||||||
|
@ -256,27 +310,27 @@
|
||||||
getUserList(id) {
|
getUserList(id) {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
let param = {
|
let param = {
|
||||||
id:this.form.projectId,
|
id: this.form.projectId,
|
||||||
deptId: this.form.deptId
|
deptId: this.form.deptId,
|
||||||
}
|
};
|
||||||
//获取人员列表的接口
|
//获取人员列表的接口
|
||||||
findUserByDeptId(param).then(response => {
|
findUserByDeptId(param).then((response) => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.userOptions = response.rows
|
this.userOptions = response.rows;
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm() {
|
submitForm() {
|
||||||
this.$refs["form"].validate(valid => {
|
this.$refs["form"].validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
if (this.form.id != null) {
|
if (this.form.id != null) {
|
||||||
updateSurProjectUserInfo(this.form).then(response => {
|
updateSurProjectUserInfo(this.form).then((response) => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功");
|
||||||
this.open = false;
|
this.open = false;
|
||||||
this.getList();
|
this.getList();
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
addSurProjectUserInfo(this.form).then(response => {
|
addSurProjectUserInfo(this.form).then((response) => {
|
||||||
this.$modal.msgSuccess("添加成功");
|
this.$modal.msgSuccess("添加成功");
|
||||||
this.open = false;
|
this.open = false;
|
||||||
this.getList();
|
this.getList();
|
||||||
|
@ -286,36 +340,40 @@
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 改变职务类型
|
// 改变职务类型
|
||||||
changeJobType(row,val){
|
changeJobType(row, val) {
|
||||||
this.form.id = row.id;
|
this.form.id = row.id;
|
||||||
this.form.jobType = val;
|
this.form.jobType = val;
|
||||||
updateSurProjectUserInfo(this.form).then(response => {
|
updateSurProjectUserInfo(this.form).then((response) => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功");
|
||||||
this.getList();
|
this.getList();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
const ids = row.id || this.ids;
|
const ids = row.id || this.ids;
|
||||||
this.$modal.confirm('是否确认删除项目人员编号为"' + ids + '"的数据项?').then(function() {
|
this.$modal
|
||||||
return delSurProjectUserInfo(ids);
|
.confirm('是否确认删除项目人员编号为"' + ids + '"的数据项?')
|
||||||
}).then(() => {
|
.then(function () {
|
||||||
this.getList();
|
return delSurProjectUserInfo(ids);
|
||||||
this.$modal.msgSuccess("删除成功");
|
})
|
||||||
}).catch(() => {});
|
.then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import '@/styles/mixin.scss';
|
@import "@/styles/mixin.scss";
|
||||||
|
|
||||||
::v-deep .el-drawer__header {
|
::v-deep .el-drawer__header {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
@include action-bar;
|
@include action-bar;
|
||||||
|
|
||||||
.json-editor{
|
.json-editor {
|
||||||
height: calc(100vh - 33px);
|
height: calc(100vh - 33px);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -61,7 +61,7 @@ spring:
|
||||||
servlet:
|
servlet:
|
||||||
multipart:
|
multipart:
|
||||||
# 单个文件大小
|
# 单个文件大小
|
||||||
max-file-size: 500MB
|
max-file-size: 100MB
|
||||||
# 设置总上传的文件大小
|
# 设置总上传的文件大小
|
||||||
max-request-size: 500MB
|
max-request-size: 500MB
|
||||||
# 服务模块
|
# 服务模块
|
||||||
|
|
|
@ -34,7 +34,7 @@ public class SurProjectMaterialSeal extends BaseEntity
|
||||||
|
|
||||||
/** 图片集合 */
|
/** 图片集合 */
|
||||||
@Excel(name = "图片集合")
|
@Excel(name = "图片集合")
|
||||||
private String imgUrls;
|
private String imageUrls;
|
||||||
|
|
||||||
/** 封样名称 */
|
/** 封样名称 */
|
||||||
@Excel(name = "封样名称")
|
@Excel(name = "封样名称")
|
||||||
|
@ -108,14 +108,14 @@ public class SurProjectMaterialSeal extends BaseEntity
|
||||||
{
|
{
|
||||||
return mainImage;
|
return mainImage;
|
||||||
}
|
}
|
||||||
public void setImgUrls(String imgUrls)
|
public void setImageUrls(String imageUrls)
|
||||||
{
|
{
|
||||||
this.imgUrls = imgUrls;
|
this.imageUrls = imageUrls;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getImgUrls()
|
public String getImageUrls()
|
||||||
{
|
{
|
||||||
return imgUrls;
|
return imageUrls;
|
||||||
}
|
}
|
||||||
public void setMaterialName(String materialName)
|
public void setMaterialName(String materialName)
|
||||||
{
|
{
|
||||||
|
@ -213,7 +213,7 @@ public class SurProjectMaterialSeal extends BaseEntity
|
||||||
.append("projectId", getProjectId())
|
.append("projectId", getProjectId())
|
||||||
.append("deptId", getDeptId())
|
.append("deptId", getDeptId())
|
||||||
.append("mainImage", getMainImage())
|
.append("mainImage", getMainImage())
|
||||||
.append("imgUrls", getImgUrls())
|
.append("imageUrls", getImageUrls())
|
||||||
.append("materialName", getMaterialName())
|
.append("materialName", getMaterialName())
|
||||||
.append("usePosition", getUsePosition())
|
.append("usePosition", getUsePosition())
|
||||||
.append("contractBrand", getContractBrand())
|
.append("contractBrand", getContractBrand())
|
||||||
|
|
|
@ -55,6 +55,8 @@ public class SurProjectUnitInfo extends BaseEntity
|
||||||
/** 删除状态(0 未删除 1 已删除) */
|
/** 删除状态(0 未删除 1 已删除) */
|
||||||
private Long delFlag;
|
private Long delFlag;
|
||||||
|
|
||||||
|
private List<Long> unitTypes;
|
||||||
|
|
||||||
private String unitTypeName;
|
private String unitTypeName;
|
||||||
|
|
||||||
private List<SurProjectUserinfo> userinfoList;
|
private List<SurProjectUserinfo> userinfoList;
|
||||||
|
@ -172,6 +174,14 @@ public class SurProjectUnitInfo extends BaseEntity
|
||||||
this.userinfoList = userinfoList;
|
this.userinfoList = userinfoList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Long> getUnitTypes() {
|
||||||
|
return unitTypes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUnitTypes(List<Long> unitTypes) {
|
||||||
|
this.unitTypes = unitTypes;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package com.yanzhu.jh.project.service.impl;
|
package com.yanzhu.jh.project.service.impl;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.ruoyi.common.enums.PublicStateEnum;
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
@ -53,6 +55,8 @@ public class SurProjectMaterialSealServiceImpl implements ISurProjectMaterialSea
|
||||||
@Override
|
@Override
|
||||||
public int insertSurProjectMaterialSeal(SurProjectMaterialSeal surProjectMaterialSeal)
|
public int insertSurProjectMaterialSeal(SurProjectMaterialSeal surProjectMaterialSeal)
|
||||||
{
|
{
|
||||||
|
surProjectMaterialSeal.setIsDel(PublicStateEnum.OK.getCode());
|
||||||
|
surProjectMaterialSeal.setMainImage(surProjectMaterialSeal.getImageUrls().split(",")[0]);
|
||||||
surProjectMaterialSeal.setCreateBy(SecurityUtils.getUsername());
|
surProjectMaterialSeal.setCreateBy(SecurityUtils.getUsername());
|
||||||
surProjectMaterialSeal.setCreateTime(DateUtils.getNowDate());
|
surProjectMaterialSeal.setCreateTime(DateUtils.getNowDate());
|
||||||
return surProjectMaterialSealMapper.insertSurProjectMaterialSeal(surProjectMaterialSeal);
|
return surProjectMaterialSealMapper.insertSurProjectMaterialSeal(surProjectMaterialSeal);
|
||||||
|
@ -67,6 +71,7 @@ public class SurProjectMaterialSealServiceImpl implements ISurProjectMaterialSea
|
||||||
@Override
|
@Override
|
||||||
public int updateSurProjectMaterialSeal(SurProjectMaterialSeal surProjectMaterialSeal)
|
public int updateSurProjectMaterialSeal(SurProjectMaterialSeal surProjectMaterialSeal)
|
||||||
{
|
{
|
||||||
|
surProjectMaterialSeal.setMainImage(surProjectMaterialSeal.getImageUrls().split(",")[0]);
|
||||||
surProjectMaterialSeal.setUpdateBy(SecurityUtils.getUsername());
|
surProjectMaterialSeal.setUpdateBy(SecurityUtils.getUsername());
|
||||||
surProjectMaterialSeal.setUpdateTime(DateUtils.getNowDate());
|
surProjectMaterialSeal.setUpdateTime(DateUtils.getNowDate());
|
||||||
return surProjectMaterialSealMapper.updateSurProjectMaterialSeal(surProjectMaterialSeal);
|
return surProjectMaterialSealMapper.updateSurProjectMaterialSeal(surProjectMaterialSeal);
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package com.yanzhu.jh.project.service.impl;
|
package com.yanzhu.jh.project.service.impl;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.ruoyi.common.enums.PublicStateEnum;
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
@ -53,6 +55,8 @@ public class SurProjectMeasureServiceImpl implements ISurProjectMeasureService
|
||||||
@Override
|
@Override
|
||||||
public int insertSurProjectMeasure(SurProjectMeasure surProjectMeasure)
|
public int insertSurProjectMeasure(SurProjectMeasure surProjectMeasure)
|
||||||
{
|
{
|
||||||
|
surProjectMeasure.setMainImage(surProjectMeasure.getImageUrls().split(",")[0]);
|
||||||
|
surProjectMeasure.setIsDel(PublicStateEnum.OK.getCode());
|
||||||
surProjectMeasure.setCreateBy(SecurityUtils.getUsername());
|
surProjectMeasure.setCreateBy(SecurityUtils.getUsername());
|
||||||
surProjectMeasure.setCreateTime(DateUtils.getNowDate());
|
surProjectMeasure.setCreateTime(DateUtils.getNowDate());
|
||||||
return surProjectMeasureMapper.insertSurProjectMeasure(surProjectMeasure);
|
return surProjectMeasureMapper.insertSurProjectMeasure(surProjectMeasure);
|
||||||
|
@ -67,6 +71,7 @@ public class SurProjectMeasureServiceImpl implements ISurProjectMeasureService
|
||||||
@Override
|
@Override
|
||||||
public int updateSurProjectMeasure(SurProjectMeasure surProjectMeasure)
|
public int updateSurProjectMeasure(SurProjectMeasure surProjectMeasure)
|
||||||
{
|
{
|
||||||
|
surProjectMeasure.setMainImage(surProjectMeasure.getImageUrls().split(",")[0]);
|
||||||
surProjectMeasure.setUpdateBy(SecurityUtils.getUsername());
|
surProjectMeasure.setUpdateBy(SecurityUtils.getUsername());
|
||||||
surProjectMeasure.setUpdateTime(DateUtils.getNowDate());
|
surProjectMeasure.setUpdateTime(DateUtils.getNowDate());
|
||||||
return surProjectMeasureMapper.updateSurProjectMeasure(surProjectMeasure);
|
return surProjectMeasureMapper.updateSurProjectMeasure(surProjectMeasure);
|
||||||
|
|
|
@ -11,7 +11,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<result property="deptId" column="dept_id" />
|
<result property="deptId" column="dept_id" />
|
||||||
<result property="deptName" column="dept_name" />
|
<result property="deptName" column="dept_name" />
|
||||||
<result property="mainImage" column="main_image" />
|
<result property="mainImage" column="main_image" />
|
||||||
<result property="imgUrls" column="img_urls" />
|
<result property="imageUrls" column="image_urls" />
|
||||||
<result property="materialName" column="material_name" />
|
<result property="materialName" column="material_name" />
|
||||||
<result property="usePosition" column="use_position" />
|
<result property="usePosition" column="use_position" />
|
||||||
<result property="contractBrand" column="contract_brand" />
|
<result property="contractBrand" column="contract_brand" />
|
||||||
|
@ -28,7 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectSurProjectMaterialSealVo">
|
<sql id="selectSurProjectMaterialSealVo">
|
||||||
select spme.id, spme.project_id, spme.dept_id, spme.main_image, spme.img_urls, spme.material_name, spme.use_position, spme.contract_brand, spme.use_brand, spme.seal_date, spme.sign_files, spme.alteration_files, spme.is_del, spme.create_by, spme.create_time, spme.update_by, spme.update_time, spme.remark, sp.projectName, sd.dept_name from sur_project_material_seal spme
|
select spme.id, spme.project_id, spme.dept_id, spme.main_image, spme.image_urls, spme.material_name, spme.use_position, spme.contract_brand, spme.use_brand, spme.seal_date, spme.sign_files, spme.alteration_files, spme.is_del, spme.create_by, spme.create_time, spme.update_by, spme.update_time, spme.remark, sp.projectName, sd.dept_name from sur_project_material_seal spme
|
||||||
left join sur_project sp on spme.project_id = sp.id
|
left join sur_project sp on spme.project_id = sp.id
|
||||||
left join sys_dept sd on sd.dept_id = spme.dept_id
|
left join sys_dept sd on sd.dept_id = spme.dept_id
|
||||||
</sql>
|
</sql>
|
||||||
|
@ -43,7 +43,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
and spme.is_del='0'
|
and spme.is_del='0'
|
||||||
<if test="projectId != null "> and spme.project_id = #{projectId}</if>
|
<if test="projectId != null "> and spme.project_id = #{projectId}</if>
|
||||||
<if test="deptId != null "> and spme.dept_id = #{deptId}</if>
|
<if test="deptId != null "> and spme.dept_id = #{deptId}</if>
|
||||||
<if test="imgUrls != null and imgUrls != ''"> and spme.img_urls = #{imgUrls}</if>
|
<if test="imageUrls != null and imageUrls != ''"> and spme.image_urls = #{imageUrls}</if>
|
||||||
<if test="materialName != null and materialName != ''"> and spme.material_name like concat('%', #{materialName}, '%')</if>
|
<if test="materialName != null and materialName != ''"> and spme.material_name like concat('%', #{materialName}, '%')</if>
|
||||||
<if test="usePosition != null and usePosition != ''"> and spme.use_position like concat('%', #{usePosition}, '%')</if>
|
<if test="usePosition != null and usePosition != ''"> and spme.use_position like concat('%', #{usePosition}, '%')</if>
|
||||||
<if test="contractBrand != null and contractBrand != ''"> and spme.contract_brand like concat('%', #{contractBrand}, '%')</if>
|
<if test="contractBrand != null and contractBrand != ''"> and spme.contract_brand like concat('%', #{contractBrand}, '%')</if>
|
||||||
|
@ -63,7 +63,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
|
||||||
<select id="selectSurProjectMaterialSealById" parameterType="Long" resultMap="SurProjectMaterialSealResult">
|
<select id="selectSurProjectMaterialSealById" parameterType="Long" resultMap="SurProjectMaterialSealResult">
|
||||||
<include refid="selectSurProjectMaterialSealVo"/>
|
<include refid="selectSurProjectMaterialSealVo"/>
|
||||||
where id = #{id}
|
where spme.id = #{id}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<insert id="insertSurProjectMaterialSeal" parameterType="SurProjectMaterialSeal" useGeneratedKeys="true" keyProperty="id">
|
<insert id="insertSurProjectMaterialSeal" parameterType="SurProjectMaterialSeal" useGeneratedKeys="true" keyProperty="id">
|
||||||
|
@ -72,7 +72,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="projectId != null">project_id,</if>
|
<if test="projectId != null">project_id,</if>
|
||||||
<if test="deptId != null">dept_id,</if>
|
<if test="deptId != null">dept_id,</if>
|
||||||
<if test="mainImage != null">main_image,</if>
|
<if test="mainImage != null">main_image,</if>
|
||||||
<if test="imgUrls != null">img_urls,</if>
|
<if test="imageUrls != null">image_urls,</if>
|
||||||
<if test="materialName != null">material_name,</if>
|
<if test="materialName != null">material_name,</if>
|
||||||
<if test="usePosition != null">use_position,</if>
|
<if test="usePosition != null">use_position,</if>
|
||||||
<if test="contractBrand != null">contract_brand,</if>
|
<if test="contractBrand != null">contract_brand,</if>
|
||||||
|
@ -91,7 +91,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="projectId != null">#{projectId},</if>
|
<if test="projectId != null">#{projectId},</if>
|
||||||
<if test="deptId != null">#{deptId},</if>
|
<if test="deptId != null">#{deptId},</if>
|
||||||
<if test="mainImage != null">#{mainImage},</if>
|
<if test="mainImage != null">#{mainImage},</if>
|
||||||
<if test="imgUrls != null">#{imgUrls},</if>
|
<if test="imageUrls != null">#{imageUrls},</if>
|
||||||
<if test="materialName != null">#{materialName},</if>
|
<if test="materialName != null">#{materialName},</if>
|
||||||
<if test="usePosition != null">#{usePosition},</if>
|
<if test="usePosition != null">#{usePosition},</if>
|
||||||
<if test="contractBrand != null">#{contractBrand},</if>
|
<if test="contractBrand != null">#{contractBrand},</if>
|
||||||
|
@ -114,7 +114,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="projectId != null">project_id = #{projectId},</if>
|
<if test="projectId != null">project_id = #{projectId},</if>
|
||||||
<if test="deptId != null">dept_id = #{deptId},</if>
|
<if test="deptId != null">dept_id = #{deptId},</if>
|
||||||
<if test="mainImage != null">main_image = #{mainImage},</if>
|
<if test="mainImage != null">main_image = #{mainImage},</if>
|
||||||
<if test="imgUrls != null">img_urls = #{imgUrls},</if>
|
<if test="imageUrls != null">image_urls = #{imageUrls},</if>
|
||||||
<if test="materialName != null">material_name = #{materialName},</if>
|
<if test="materialName != null">material_name = #{materialName},</if>
|
||||||
<if test="usePosition != null">use_position = #{usePosition},</if>
|
<if test="usePosition != null">use_position = #{usePosition},</if>
|
||||||
<if test="contractBrand != null">contract_brand = #{contractBrand},</if>
|
<if test="contractBrand != null">contract_brand = #{contractBrand},</if>
|
||||||
|
|
|
@ -32,7 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectSurProjectMeasureVo">
|
<sql id="selectSurProjectMeasureVo">
|
||||||
select spm.id, spm.project_id, spm.dept_id, spm.main_image, spm.image_urls, spm.measure_type, spm.measure_position, spm.measure_info, spm.measure_time, spm.measure_point_position, spm.measure_result, spm.measure_files, spm.quality_user, spm.quality_user_name, spm.supervise_user, spm.supervise_user_name, spm.is_del, spm.create_by, spm.create_time, spm.update_by, spm.update_time, spm.remark, sp.prijectName, sd.dept_name from sur_project_measure spm
|
select spm.id, spm.project_id, spm.dept_id, spm.main_image, spm.image_urls, spm.measure_type, spm.measure_position, spm.measure_info, spm.measure_time, spm.measure_point_position, spm.measure_result, spm.measure_files, spm.quality_user, spm.quality_user_name, spm.supervise_user, spm.supervise_user_name, spm.is_del, spm.create_by, spm.create_time, spm.update_by, spm.update_time, spm.remark, sp.projectName, sd.dept_name from sur_project_measure spm
|
||||||
left join sur_project sp on spm.project_id = sp.id
|
left join sur_project sp on spm.project_id = sp.id
|
||||||
left join sys_dept sd on sd.dept_id = spm.dept_id
|
left join sys_dept sd on sd.dept_id = spm.dept_id
|
||||||
</sql>
|
</sql>
|
||||||
|
|
|
@ -38,6 +38,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="createUser != null and createUser != ''"> and spui.createUser = #{createUser}</if>
|
<if test="createUser != null and createUser != ''"> and spui.createUser = #{createUser}</if>
|
||||||
<if test="createTime != null "> and spui.createTime = #{createTime}</if>
|
<if test="createTime != null "> and spui.createTime = #{createTime}</if>
|
||||||
<if test="nowDept != null and nowDept != ''"> and spui.unitId != #{nowDept}</if>
|
<if test="nowDept != null and nowDept != ''"> and spui.unitId != #{nowDept}</if>
|
||||||
|
<if test="unitTypes != null ">
|
||||||
|
and spui.unitType in
|
||||||
|
<foreach item="type" collection="unitTypes" open="(" separator="," close=")">
|
||||||
|
#{type}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue