udpate code

dev_xds
haha 2024-08-06 23:26:23 +08:00
parent 3685314a3f
commit 6b593024ff
12 changed files with 1090 additions and 2618 deletions

View File

@ -1,37 +1,22 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="项目名称" prop="projectName">
<el-input
v-model="queryParams.projectName"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="项目名称" prop="projectId">
<el-select v-model="queryParams.projectId" filterable placeholder="请选择项目" clearable @change="doQuerySub">
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="单位名称" prop="deptName">
<el-input
v-model="queryParams.deptName"
placeholder="请输入单位名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form-item label="单位名称" prop="deptId">
<el-select v-model="queryParams.deptId" filterable placeholder="请输入单位名称" clearable>
<el-option v-for="(item, index) in depts" :key="index" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="送检类型" prop="checkType">
<el-select v-model="queryParams.checkType" placeholder="请选择送检类型" clearable>
<el-option
v-for="dict in dict.type.check_detection_check_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-option v-for="dict in dict.type.check_detection_check_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<!-- <el-form-item label="检测结果" prop="detectionResult">
@ -49,66 +34,32 @@
</el-select>
</el-form-item> -->
<el-form-item label="材料名称" prop="materialName">
<el-input
v-model="queryParams.materialName"
placeholder="请输入材料名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.materialName" placeholder="请输入材料名称" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="送检时间">
<el-date-picker
v-model="daterangeCheckTime"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
<el-date-picker v-model="daterangeCheckTime" 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="approveStatus" v-if="false">
<el-select
v-model="queryParams.approveStatus"
placeholder="请选择审批状态"
clearable
>
<el-option
v-for="dict in dict.type.project_check_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-select v-model="queryParams.approveStatus" placeholder="请选择审批状态" clearable>
<el-option v-for="dict in dict.type.project_check_status" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="使用部位" prop="usePosition">
<el-input
v-model="queryParams.usePosition"
placeholder="请输入使用部位"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.usePosition" placeholder="请输入使用部位" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="监理专员" prop="witnessUserName">
<el-input
v-model="queryParams.witnessUserName"
placeholder="请输入监理专员名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.witnessUserName" placeholder="请输入监理专员名称" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="实验室" prop="laboratoryName">
<el-input
v-model="queryParams.laboratoryName"
placeholder="请输入实验室名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.laboratoryName" placeholder="请输入实验室名称" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
>搜索</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -165,80 +116,35 @@
<el-tabs type="card" v-model="queryParams.activeName" @tab-click="getList">
<el-tab-pane :label="tabs.all" name="all"></el-tab-pane>
<el-tab-pane :label="tabs.jxz" name="jxz"></el-tab-pane>
<el-tab-pane :label="tabs.ywc" name="ywc"></el-tab-pane
></el-tabs>
<el-table
v-loading="loading"
:data="checkDetectionList"
@selection-change="handleSelectionChange"
stripe
>
<el-tab-pane :label="tabs.ywc" name="ywc"></el-tab-pane></el-tabs>
<el-table v-loading="loading" :data="checkDetectionList" @selection-change="handleSelectionChange" stripe>
<el-table-column label="项目名称" align="center" prop="projectName" width="200">
<template slot-scope="scope">
<div>{{ scope.row.projectName }}</div>
</template>
</el-table-column>
<el-table-column
label="单位名称"
align="center"
prop="deptName"
width="180"
show-overflow-tooltip
/>
<el-table-column label="单位名称" align="center" prop="deptName" width="180" show-overflow-tooltip />
<el-table-column label="送检类型" align="center" prop="checkType">
<template slot-scope="scope">
<dict-tag
:options="dict.type.check_detection_check_type"
:value="scope.row.checkType"
/>
<dict-tag :options="dict.type.check_detection_check_type" :value="scope.row.checkType" />
</template>
</el-table-column>
<el-table-column
label="材料名称"
align="center"
prop="materialName"
width="100"
show-overflow-tooltip
/>
<el-table-column
label="使用部位"
align="center"
prop="usePosition"
width="120"
show-overflow-tooltip
/>
<el-table-column
label="取样数量"
align="center"
prop="sampleNum"
width="80"
show-overflow-tooltip
/>
<el-table-column label="材料名称" align="center" prop="materialName" width="100" show-overflow-tooltip />
<el-table-column label="使用部位" align="center" prop="usePosition" width="120" show-overflow-tooltip />
<el-table-column label="取样数量" align="center" prop="sampleNum" width="80" show-overflow-tooltip />
<el-table-column label="合格证" align="center" prop="qualifiedFlag">
<template slot-scope="scope">
<el-tag v-if="scope.row.qualifiedFlag == 'Y'" type="success"></el-tag>
<el-tag v-if="scope.row.qualifiedFlag == 'N'" type="danger"></el-tag>
</template>
</el-table-column>
<el-table-column
label="监理专员"
align="left"
prop="witnessUser"
width="140"
show-overflow-tooltip
>
<el-table-column label="监理专员" align="left" prop="witnessUser" width="140" show-overflow-tooltip>
<template slot-scope="scope">
<div>{{ scope.row.witnessUserName }}</div>
<div>{{ scope.row.witnessUser }}</div>
</template>
</el-table-column>
<el-table-column
label="实验室名称"
align="center"
prop="laboratoryName"
width="150"
show-overflow-tooltip
/>
<el-table-column label="实验室名称" align="center" prop="laboratoryName" width="150" show-overflow-tooltip />
<el-table-column label="送检时间" align="center" prop="checkTime" width="100">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.checkTime, "{y}-{m}-{d}") }}</span>
@ -254,17 +160,9 @@
</el-table-column> -->
<el-table-column label="审批状态" align="center" prop="approveStatus" width="120">
<template slot-scope="scope">
<dict-tag
v-if="scope.row.approveStatus"
:options="dict.type.project_check_status"
:value="scope.row.approveStatus"
/>
<el-tag
v-if="!scope.row.approveStatus"
key="待登记检测结果"
type="info"
effect="dark"
>
<dict-tag v-if="scope.row.approveStatus" :options="dict.type.project_check_status"
:value="scope.row.approveStatus" />
<el-tag v-if="!scope.row.approveStatus" key="待登记检测结果" type="info" effect="dark">
待登记检测结果
</el-tag>
</template>
@ -278,132 +176,57 @@
<el-table-column label="登记结果用户" align="center" prop="updateBy" width="110" />
<el-table-column label="登记结果时间" align="center" prop="updateTime" width="110">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.checkTime, "{y}-{m}-{d}") }}</span>
<span>{{ parseTime(scope.row.updateTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column label="检测报告" align="center" prop="updateTime" width="80">
<template slot-scope="scope">
<el-button
v-if="scope.row.checkState == '2'"
size="mini"
type="text"
icon="el-icon-paperclip"
@click="doDown(scope.row)"
v-hasPermi="['project:surProjectSpecial:list']"
>下载检测报告</el-button
>
<el-button v-if="scope.row.checkState == '2'" size="mini" type="text" icon="el-icon-paperclip"
@click="doDown(scope.row)" v-hasPermi="['project:surProjectSpecial:list']">下载检测报告</el-button>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
fixed="right"
class-name="small-padding fixed-width"
width="200"
>
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width" width="200">
<template slot-scope="scope">
<el-button
v-if="scope.row.checkState == '1'"
size="mini"
type="text"
icon="el-icon-edit-outline"
@click="handleUpdateResult(scope.row)"
style="margin-left: 8px"
v-hasPermi="['project:checkDetection:editResult']"
>登记检测结果</el-button
>
<el-button
v-if="scope.row.approveStatus != null"
size="mini"
type="text"
icon="el-icon-tickets"
@click="handleAuditinfo(scope.row)"
>审批日志</el-button
>
<el-button
v-if="scope.row.approveStatus == '1'"
size="mini"
type="text"
icon="el-icon-finished"
v-hasPermi="['project:checkDetection:approve']"
@click="handleAudit(scope.row)"
>处理审批</el-button
>
<el-button
v-if="scope.row.checkState == '1'"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['project:checkDetection:edit']"
>修改</el-button
>
<el-button
v-if="scope.row.approveStatus != '4'"
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['project:checkDetection:remove']"
>删除</el-button
>
<el-button v-if="scope.row.checkState == '1'" size="mini" type="text" icon="el-icon-edit-outline"
@click="handleUpdateResult(scope.row)" style="margin-left: 8px"
v-hasPermi="['project:checkDetection:editResult']">登记检测结果</el-button>
<el-button v-if="scope.row.approveStatus != null" size="mini" type="text" icon="el-icon-tickets"
@click="handleAuditinfo(scope.row)">审批日志</el-button>
<el-button v-if="scope.row.approveStatus == '1'" size="mini" type="text" icon="el-icon-finished"
v-hasPermi="['project:checkDetection:approve']" @click="handleAudit(scope.row)">处理审批</el-button>
<el-button v-if="scope.row.checkState == '1'" size="mini" type="text" icon="el-icon-edit"
@click="handleUpdate(scope.row)" v-hasPermi="['project:checkDetection:edit']">修改</el-button>
<el-button v-if="scope.row.approveStatus != '4'" size="mini" type="text" icon="el-icon-delete"
@click="handleDelete(scope.row)" v-hasPermi="['project:checkDetection: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"
/>
<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="900px"
append-to-body
:close-on-click-modal="false"
custom-class="prj-checking-detection-dlg"
:close-on-press-escape="false"
>
<el-dialog :title="title" :visible.sync="open" width="900px" append-to-body :close-on-click-modal="false"
custom-class="prj-checking-detection-dlg" :close-on-press-escape="false">
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="12">
<el-form-item label="项目名称" prop="projectName" class="mg-b-8">
<el-input
v-model="form.projectName"
placeholder="请输入项目名称"
:disabled="true"
/>
<el-input v-model="form.projectName" placeholder="请输入项目名称" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="单位名称" prop="deptName" class="mg-b-8">
<el-input
v-model="form.deptName"
placeholder="请输入单位名称"
:disabled="true"
/>
<el-input v-model="form.deptName" placeholder="请输入单位名称" :disabled="true" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="送检类型" prop="checkType">
<el-select
v-model="form.checkType"
placeholder="请选择送检类型"
style="width: 100%"
>
<el-option
v-for="dict in dict.type.check_detection_check_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="form.checkType" placeholder="请选择送检类型" style="width: 100%">
<el-option v-for="dict in dict.type.check_detection_check_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
</el-col>
@ -435,40 +258,20 @@
<el-row>
<el-col :span="12">
<el-form-item label="提供合格证" prop="qualifiedFlag">
<el-select
v-model="form.qualifiedFlag"
placeholder="请选择提供合格证"
style="width: 100%"
>
<el-option
v-for="dict in dict.type.sys_yes_no"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="form.qualifiedFlag" placeholder="请选择提供合格证" style="width: 100%">
<el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="监理专员" prop="witnessUser">
<el-select
v-model="form.witnessUser"
placeholder="请选择监理专员"
filterable
style="width: 100%"
@change="selectWitnessUser"
>
<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-select v-model="form.witnessUser" placeholder="请选择监理专员" filterable style="width: 100%"
@change="selectWitnessUser">
<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>
@ -479,29 +282,17 @@
<el-row>
<el-col :span="24">
<el-form-item label="实验室名称" prop="laboratoryName">
<el-input
v-model="form.laboratoryName"
placeholder="请输入实验室名称"
/> </el-form-item
></el-col>
<el-input v-model="form.laboratoryName" placeholder="请输入实验室名称" /> </el-form-item></el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item
label="委托单"
prop="trustDeed"
:class="form.trustDeed ? 'img-1' : ''"
>
<el-form-item label="委托单" prop="trustDeed" :class="form.trustDeed ? 'img-1' : ''">
<image-upload v-model="form.trustDeed" :limit="1" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="false">
<el-form-item
label="样品照片"
prop="specimenPhoto"
:class="form.specimenPhoto ? 'img-1' : ''"
>
<el-form-item label="样品照片" prop="specimenPhoto" :class="form.specimenPhoto ? 'img-1' : ''">
<image-upload v-model="form.specimenPhoto" :limit="1" />
</el-form-item>
</el-col>
@ -510,13 +301,8 @@
<el-row>
<el-col :span="24">
<el-form-item label="送检时间" prop="checkTime">
<el-date-picker
clearable
v-model="form.checkTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择送检时间"
>
<el-date-picker clearable v-model="form.checkTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择送检时间">
</el-date-picker>
</el-form-item>
</el-col>
@ -537,89 +323,37 @@
</el-dialog>
<!-- 材料取样复试等级结果 -->
<el-dialog
:title="title"
v-if="resultopen"
:visible.sync="resultopen"
width="680px"
append-to-body
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-form
ref="resultform"
:model="resultform"
:rules="resultrules"
label-width="100px"
>
<el-dialog :title="title" v-if="resultopen" :visible.sync="resultopen" width="680px" append-to-body
:close-on-click-modal="false" :close-on-press-escape="false">
<el-form ref="resultform" :model="resultform" :rules="resultrules" label-width="100px">
<el-form-item label="项目名称">
<el-input
v-model="resultform.projectName"
placeholder="请输入项目名称"
:disabled="true"
/>
<el-input v-model="resultform.projectName" placeholder="请输入项目名称" :disabled="true" />
</el-form-item>
<el-form-item label="单位名称">
<el-input
v-model="resultform.deptName"
placeholder="请输入单位名称"
:disabled="true"
/>
<el-input v-model="resultform.deptName" placeholder="请输入单位名称" :disabled="true" />
</el-form-item>
<el-form-item label="送检类型">
<el-select
v-model="resultform.checkType"
placeholder="请选择送检类型"
style="width: 100%"
:disabled="true"
>
<el-option
v-for="dict in dict.type.check_detection_check_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="resultform.checkType" placeholder="请选择送检类型" style="width: 100%" :disabled="true">
<el-option v-for="dict in dict.type.check_detection_check_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="材料名称">
<el-input
v-model="resultform.materialName"
placeholder="请输入材料名称"
:disabled="true"
/>
<el-input v-model="resultform.materialName" placeholder="请输入材料名称" :disabled="true" />
</el-form-item>
<el-form-item label="实验室名称">
<el-input
v-model="resultform.laboratoryName"
placeholder="请输入实验室名称"
:disabled="true"
/>
<el-input v-model="resultform.laboratoryName" placeholder="请输入实验室名称" :disabled="true" />
</el-form-item>
<el-form-item label="送检时间">
<el-input
v-model="resultform.checkTime"
placeholder="请输入实送检时间"
:disabled="true"
/>
<el-input v-model="resultform.checkTime" placeholder="请输入实送检时间" :disabled="true" />
</el-form-item>
<el-form-item label="检测结果" prop="detectionResult" v-if="false">
<el-radio
v-model="resultform.detectionResult"
v-for="dict in dict.type.project_checking_result"
:label="dict.value"
:key="dict.value"
border
size="small"
>{{ dict.label }}</el-radio
>
<el-radio v-model="resultform.detectionResult" 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="detectionFile">
<FileUpload
v-model="resultform.detectionFile"
:limit="2"
@input="fileInput"
:fileType="['pdf', 'png', 'jpg', 'jpeg']"
/>
<FileUpload v-model="resultform.detectionFile" :limit="2" @input="fileInput"
:fileType="['pdf', 'png', 'jpg', 'jpeg']" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -628,10 +362,7 @@
</div>
</el-dialog>
<indexDrawer ref="indexDrawer" />
<approveCheckDetectionDrawer
ref="approveCheckDetectionDrawer"
:closeCallBack="getList"
/>
<approveCheckDetectionDrawer ref="approveCheckDetectionDrawer" :closeCallBack="getList" />
</div>
</template>
@ -753,12 +484,45 @@ export default {
jxz: "进行中0",
ywc: "已完成0",
},
projectOptions:[],
depts:[],
};
},
created() {
this.getList();
this.$api.publics.getMyProjectList({}).then((response) => {
this.projectOptions = response.rows;
});
},
methods: {
doQuerySub() {
let tmps = this.prjDept2 && this.prjDept2[this.queryParams.projectId] ? this.prjDept2[this.queryParams.projectId] || [] : [];
if (tmps.length > 0) {
this.depts = tmps;
if (tmps.length == 1) {
this.queryParams.deptId = tmps[0].deptId;
} else {
this.queryParams.deptId = '';
}
return;
}
this.$api.publics.queryUnitList({
projectId: this.queryParams.projectId,
unitTypes: "2".split(","),
}).then((d) => {
let objs = d.rows || [];
if (!this.prjDept2) {
this.prjDept2 = {};
}
this.prjDept2[this.queryParams.projectId] = objs;
this.depts = objs;
if (objs.length == 1) {
this.queryParams.deptId = objs[0].deptId;
} else {
this.queryParams.deptId = '';
}
});
},
doDown(row) {
this.files = row.detectionFile.split(",");
this.files.forEach((item) => {
@ -946,7 +710,7 @@ export default {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
.catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
@ -986,38 +750,47 @@ export default {
.prj-checking-detection-dlg {
.el-dialog__body {
padding: 0px 10px;
.el-form-item {
margin-bottom: 16px;
&.mg-b-8 {
margin-bottom: 8px;
}
&.img-1 {
.el-upload--picture-card {
display: none;
}
.el-upload__tip {
display: none;
}
}
.upload-file {
.upload-file-uploader {
display: flex;
align-items: center;
margin-bottom: 0px;
line-height: 30px;
.el-upload__tip {
margin-left: 8px;
}
}
}
.el-form-item__error {
z-index: 9;
margin-top: -4px;
}
.upload-file-list {
max-height: 120px;
overflow-y: auto;
padding-right: 30px;
.el-upload-list__item {
margin-bottom: 0px !important;
}

View File

@ -1,71 +1,35 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="项目名称" prop="projectName">
<el-input
v-model="queryParams.projectName"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="项目名称" prop="projectId">
<el-select v-model="queryParams.projectId" filterable placeholder="请选择项目" clearable @change="doQuerySub">
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="单位名称" prop="deptName">
<el-input
v-model="queryParams.deptName"
placeholder="请输入单位名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form-item label="单位名称" prop="deptId">
<el-select v-model="queryParams.deptId" filterable placeholder="请输入单位名称" clearable>
<el-option v-for="(item, index) in depts" :key="index" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="封样名称" prop="materialName">
<el-input
v-model="queryParams.materialName"
placeholder="请输入封样名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.materialName" placeholder="请输入封样名称" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="使用部位" prop="usePosition">
<el-input
v-model="queryParams.usePosition"
placeholder="请输入使用部位"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.usePosition" placeholder="请输入使用部位" clearable @keyup.enter.native="handleQuery" />
</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-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-input
v-model="queryParams.contractBrand"
placeholder="请输入指定品牌"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.contractBrand" placeholder="请输入指定品牌" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="拟用品牌" prop="useBrand">
<el-input
v-model="queryParams.useBrand"
placeholder="请输入拟用品牌"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.useBrand" placeholder="请输入拟用品牌" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<!-- <el-form-item label="封样结果" prop="materialResult">
<el-select
@ -82,37 +46,23 @@
</el-select>
</el-form-item> -->
<el-form-item label="审批状态" prop="approveStatus" v-if="false">
<el-select
v-model="queryParams.approveStatus"
placeholder="请选择审批状态"
clearable
>
<el-option
v-for="dict in dict.type.project_check_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-select v-model="queryParams.approveStatus" placeholder="请选择审批状态" clearable>
<el-option v-for="dict in dict.type.project_check_status" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="监理专员" prop="witnessUser">
<el-input
v-model="queryParams.witnessUser"
placeholder="请输入监理专员名称/电话"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.witnessUser" placeholder="请输入监理专员名称/电话" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
>搜索</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<!-- <el-row :gutter="10" class="mb8"> -->
<!-- <el-col :span="1.5">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
@ -123,7 +73,7 @@
>新增</el-button
>
</el-col> -->
<!-- <el-col :span="1.5">
<!-- <el-col :span="1.5">
<el-button
type="success"
plain
@ -163,67 +113,21 @@
<el-tabs type="card" v-model="queryParams.activeName" @tab-click="getList">
<el-tab-pane :label="tabs.all" name="all"></el-tab-pane>
<el-tab-pane :label="tabs.jxz" name="jxz"></el-tab-pane>
<el-tab-pane :label="tabs.ywc" name="ywc"></el-tab-pane
></el-tabs>
<el-table
v-loading="loading"
:data="materialSealList"
@selection-change="handleSelectionChange" stripe
>
<el-tab-pane :label="tabs.ywc" name="ywc"></el-tab-pane></el-tabs>
<el-table v-loading="loading" :data="materialSealList" @selection-change="handleSelectionChange" stripe>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="项目名称"
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="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">
<el-image
ref="preview"
style="width: 200px; height: 100px"
:src="getImageUrl(scope.row.mainImage)"
@click="onPreview(scope.row.imageUrls)"
></el-image>
<el-image ref="preview" style="width: 200px; height: 100px" :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="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="100">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.sealDate, "{y}-{m}-{d}") }}</span>
@ -234,13 +138,7 @@
<dict-tag :options="dict.type.project_check_status" :value="scope.row.approveStatus" />
</template>
</el-table-column>
<el-table-column
label="监理专员"
align="center"
prop="witnessUser"
width="120"
show-overflow-tooltip
>
<el-table-column label="监理专员" align="center" prop="witnessUser" width="120" show-overflow-tooltip>
<template slot-scope="scope">
<div>{{ scope.row.witnessUserName }}</div>
<div>{{ scope.row.witnessUser }}</div>
@ -253,29 +151,16 @@
</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
>
<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"
<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
>
v-hasPermi="['project:materialSeal:list']">下载变更单</el-button>
<span v-if="scope.row.signFiles == null"> - </span>
</template>
</el-table-column>
@ -289,77 +174,32 @@
<span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
fixed="right"
width="200"
>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="200">
<template slot-scope="scope">
<el-button
v-if="scope.row.approveStatus != null"
size="mini"
type="text"
icon="el-icon-tickets"
@click="handleAuditinfo(scope.row)"
>审批日志</el-button
>
<el-button
v-if="scope.row.approveStatus == '1'"
size="mini"
type="text"
icon="el-icon-finished"
v-hasPermi="['project:materialSeal:approve']"
@click="handleAudit(scope.row)"
>处理审批</el-button
>
<el-button
v-if="scope.row.approveStatus!='4'"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['project:materialSeal:edit']"
>修改</el-button
>
<el-button
v-if="scope.row.approveStatus!='4'"
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['project:materialSeal:remove']"
>删除</el-button
>
<el-button v-if="scope.row.approveStatus != null" size="mini" type="text" icon="el-icon-tickets"
@click="handleAuditinfo(scope.row)">审批日志</el-button>
<el-button v-if="scope.row.approveStatus == '1'" size="mini" type="text" icon="el-icon-finished"
v-hasPermi="['project:materialSeal:approve']" @click="handleAudit(scope.row)">处理审批</el-button>
<el-button v-if="scope.row.approveStatus != '4'" size="mini" type="text" icon="el-icon-edit"
@click="handleUpdate(scope.row)" v-hasPermi="['project:materialSeal:edit']">修改</el-button>
<el-button v-if="scope.row.approveStatus != '4'" 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"
/>
<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 :close-on-click-modal="false" :close-on-press-escape="false">
<el-dialog :title="title" :visible.sync="open" width="780px" append-to-body :close-on-click-modal="false"
:close-on-press-escape="false">
<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-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-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" />
@ -371,67 +211,33 @@
<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-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-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="date"
placeholder="请选择封样时间"
style="width: 100%"
>
<el-date-picker clearable v-model="form.sealDate" type="date" placeholder="请选择封样时间" style="width: 100%">
</el-date-picker>
</el-form-item>
<el-form-item label="监理专员" prop="witnessUser">
<el-select
v-model="form.witnessUser"
placeholder="请选择监理专员"
filterable
style="width: 100%"
@change="selectWitnessUser"
>
<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-select v-model="form.witnessUser" placeholder="请选择监理专员" filterable style="width: 100%"
@change="selectWitnessUser">
<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="signFiles">
<file-upload
v-model="form.signFiles"
:limit="1"
:fileType="['pdf', 'png', 'jpg', 'jpeg']"
@input="fileInputSign"
/>
<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="isOnly">
<file-upload
v-model="form.alterationFiles"
:limit="1"
:fileType="['pdf', 'png', 'jpg', 'jpeg']"
@input="fileInputAlteration"
/>
<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">
@ -441,7 +247,7 @@
</el-dialog>
<el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="previewList" />
<indexDrawer ref="indexDrawer"></indexDrawer>
<approveMaterialSealDrawer ref="approveMaterialSealDrawer" :closeCallBack="getList"/>
<approveMaterialSealDrawer ref="approveMaterialSealDrawer" :closeCallBack="getList" />
</div>
</template>
@ -465,7 +271,7 @@ export default {
ElImageViewer,
approveMaterialSealDrawer,
},
dicts: ["sys_common_isdel","project_check_status","project_checking_result"],
dicts: ["sys_common_isdel", "project_check_status", "project_checking_result"],
data() {
return {
showViewer: false,
@ -504,9 +310,9 @@ export default {
useBrand: null,
sealDate: null,
isDel: null,
approveStatus:null,
materialResult:null,
witnessUser:null,
approveStatus: null,
materialResult: null,
witnessUser: null,
activeName: "jxz",
},
tabs: {
@ -547,12 +353,45 @@ export default {
previewList: [],
deptUserData: [],
isOnly: false,
projectOptions:[],
depts:[],
};
},
created() {
this.getList();
this.$api.publics.getMyProjectList({}).then((response) => {
this.projectOptions = response.rows;
});
},
methods: {
doQuerySub() {
let tmps = this.prjDept2 && this.prjDept2[this.queryParams.projectId] ? this.prjDept2[this.queryParams.projectId] || [] : [];
if (tmps.length > 0) {
this.depts = tmps;
if (tmps.length == 1) {
this.queryParams.deptId = tmps[0].deptId;
} else {
this.queryParams.deptId = '';
}
return;
}
this.$api.publics.queryUnitList({
projectId: this.queryParams.projectId,
unitTypes: "2".split(","),
}).then((d) => {
let objs = d.rows || [];
if (!this.prjDept2) {
this.prjDept2 = {};
}
this.prjDept2[this.queryParams.projectId] = objs;
this.depts = objs;
if (objs.length == 1) {
this.queryParams.deptId = objs[0].deptId;
} else {
this.queryParams.deptId = '';
}
});
},
fileInputSign(files) {
let fileUrls = null;
if (files.length > 0) {
@ -703,7 +542,7 @@ export default {
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.form.approveStatus="1";
this.form.approveStatus = "1";
if (this.form.id != null) {
updateMaterialSeal(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
@ -732,7 +571,7 @@ export default {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
.catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
@ -770,13 +609,13 @@ export default {
},
/** 审批日志 */
handleAuditinfo(row) {
row.title="材料封样";
row.logType="4";
row.title = "材料封样";
row.logType = "4";
this.$refs.indexDrawer.show(row);
},
/** 处理审批 */
handleAudit(row){
row.typeName="材料封样";
handleAudit(row) {
row.typeName = "材料封样";
this.$refs.approveMaterialSealDrawer.show(row);
}
},

View File

@ -1,52 +1,27 @@
<template>
<div class="projectect-attendance-drawer">
<el-drawer
v-if="isOpen"
:visible.sync="isOpen"
ref="drawer"
direction="rtl"
@close="closeCallBack"
size="50%"
>
<el-drawer v-if="isOpen" :visible.sync="isOpen" ref="drawer" direction="rtl" @close="closeCallBack" size="50%">
<template slot="title">
<div>{{ title + " 【处理审批】" }}</div>
</template>
<el-form
ref="form"
v-loading="loading"
:model="form"
:rules="rules"
label-width="80px"
style="padding-right: 20px; padding-left: 20px"
>
<el-form ref="form" v-loading="loading" :model="form" :rules="rules" label-width="80px"
style="padding-right: 20px; padding-left: 20px">
<el-form-item label="项目名称">
{{ dataInfo.projectName }}
</el-form-item>
<el-form-item label="验收图片">
<el-image
ref="preview"
v-for="(img, idx) in dataInfo.imageUrls.split(',')"
:key="idx"
:src="getImageUrl(img)"
style="width: 120px; height: 120px; margin-right: 15px"
@click="onPreview(img)"
></el-image>
<el-image ref="preview" v-for="(img, idx) in dataInfo.imageUrls.split(',')" :key="idx" :src="getImageUrl(img)"
style="width: 120px; height: 120px; margin-right: 15px" @click="onPreview(img)"></el-image>
</el-form-item>
<el-row>
<el-col :span="12">
<el-form-item label="验收类型">
<dict-tag
:options="dict.type.project_checking_data_type_lvl1"
:value="dataInfo.dataTypeLvl1"
/>
<dict-tag :options="dict.type.project_checking_data_type_lvl1" :value="dataInfo.dataTypeLvl1" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="类型分类">
<dict-tag
:options="dict.type.project_checking_data_type_lvl2"
:value="dataInfo.dataTypeLvl2"
/>
<dict-tag :options="dict.type.project_checking_data_type_lvl2" :value="dataInfo.dataTypeLvl2" />
</el-form-item>
</el-col>
</el-row>
@ -86,23 +61,11 @@
<span>{{ parseTime(dataInfo.checkingDate, "{y}-{m}-{d}") }}</span>
</el-form-item>
<el-form-item label="验收结果" prop="checkResult">
<el-radio
v-model="form.checkResult"
v-for="dict in dict.type.project_checking_result"
:label="dict.value"
:key="dict.value"
border
size="small"
>{{ dict.label }}</el-radio
>
<el-radio v-model="form.checkResult" 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="comment">
<el-input
type="textarea"
:rows="3"
placeholder="请输入审批意见200字内"
v-model="form.comment"
/>
<el-input type="textarea" :rows="3" placeholder="请输入审批意见200字内" v-model="form.comment" />
</el-form-item>
<div style="text-align: center;margin-bottom:20px;">
<el-button type="primary" @click="submitForm"> </el-button>
@ -110,12 +73,7 @@
</div>
</el-form>
</el-drawer>
<el-image-viewer
v-if="showViewer"
:on-close="closeViewer"
:url-list="previewList"
style="z-index: 2050"
/>
<el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="previewList" style="z-index: 2050" />
</div>
</template>
@ -161,7 +119,7 @@ export default {
};
},
computed: {},
mounted() {},
mounted() { },
methods: {
getImageUrl(url) {
return process.env.VUE_APP_BASE_API + url + ".min.jpg";

View File

@ -1,92 +1,45 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="项目名称" prop="projectName">
<el-input
v-model="queryParams.projectName"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="项目名称" prop="projectId">
<el-select v-model="queryParams.projectId" filterable placeholder="请选择项目" clearable @change="doQuerySub">
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="单位名称" prop="deptName">
<el-input
v-model="queryParams.deptName"
placeholder="请输入单位名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form-item label="单位名称" prop="deptId">
<el-select v-model="queryParams.deptId" filterable placeholder="请输入单位名称" clearable>
<el-option v-for="(item, index) in depts" :key="index" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="验收类型" prop="dataTypeLvl1">
<el-select
v-model="queryParams.dataTypeLvl1"
placeholder="请选择验收类型"
clearable
>
<el-option
v-for="dict in dict.type.project_checking_data_type_lvl1"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-select v-model="queryParams.dataTypeLvl1" placeholder="请选择验收类型" clearable>
<el-option v-for="dict in dict.type.project_checking_data_type_lvl1" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="类型分类" prop="dataTypeLvl2" v-if="queryParams.dataTypeLvl1">
<el-select
v-model="queryParams.dataTypeLvl2"
placeholder="请选择验收类型分类"
clearable
>
<el-option
v-for="dict in dict.type.project_checking_data_type_lvl2"
v-if="queryParams.dataTypeLvl1 == dict.raw.remark"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-select v-model="queryParams.dataTypeLvl2" placeholder="请选择验收类型分类" clearable>
<el-option v-for="dict in dict.type.project_checking_data_type_lvl2"
v-if="queryParams.dataTypeLvl1 == dict.raw.remark" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="质量专员" prop="qualityUser">
<el-input
v-model="queryParams.qualityUser"
placeholder="请输入质量专员"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.qualityUser" placeholder="请输入质量专员" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="监理专员" prop="superviseUser">
<el-input
v-model="queryParams.superviseUser"
placeholder="请输入监理专员"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.superviseUser" placeholder="请输入监理专员" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="验收时间">
<el-date-picker
v-model="daterangeCheckingDate"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
<el-date-picker v-model="daterangeCheckingDate" 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="checkWorkingPosition">
<el-input
v-model="queryParams.checkWorkingPosition"
placeholder="请输入工序部位"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.checkWorkingPosition" placeholder="请输入工序部位" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<!-- <el-form-item label="验收结果" prop="checkResult">
<el-select
@ -103,23 +56,13 @@
</el-select>
</el-form-item> -->
<el-form-item label="审批状态" prop="approveStatus" v-if="false">
<el-select
v-model="queryParams.approveStatus"
placeholder="请选择审批状态"
clearable
>
<el-option
v-for="dict in dict.type.project_check_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-select v-model="queryParams.approveStatus" placeholder="请选择审批状态" clearable>
<el-option v-for="dict in dict.type.project_check_status" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
>搜索</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -176,38 +119,15 @@
<el-tabs type="card" v-model="queryParams.activeName" @tab-click="getList">
<el-tab-pane :label="tabs.all" name="all"></el-tab-pane>
<el-tab-pane :label="tabs.jxz" name="jxz"></el-tab-pane>
<el-tab-pane :label="tabs.ywc" name="ywc"></el-tab-pane
></el-tabs>
<el-table
v-loading="loading"
:data="projectCheckingList"
@selection-change="handleSelectionChange"
stripe
>
<el-tab-pane :label="tabs.ywc" name="ywc"></el-tab-pane></el-tabs>
<el-table v-loading="loading" :data="projectCheckingList" @selection-change="handleSelectionChange" stripe>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="项目名称"
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="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">
<el-image
ref="preview"
style="width: 200px; height: 100px"
:src="getImageUrl(scope.row.mainImage)"
@click="onPreview(scope.row.imageUrls)"
></el-image>
<el-image ref="preview" style="width: 200px; height: 100px" :src="getImageUrl(scope.row.mainImage)"
@click="onPreview(scope.row.imageUrls)"></el-image>
</template>
</el-table-column>
<!-- <el-table-column
@ -228,89 +148,37 @@
/>
</template>
</el-table-column> -->
<el-table-column
label="验收类型"
align="center"
width="180"
prop="dataTypeLvl1"
>
<el-table-column label="验收类型" align="center" width="180" prop="dataTypeLvl1">
<template slot-scope="scope">
<el-select
v-model="scope.row.dataTypeLvl1"
placeholder="请选择验收类型"
style="width: 100%"
@change="setDataTypeLvl1(scope.row, $event)"
>
<el-option
v-for="dict in dict.type.project_checking_data_type_lvl1"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="scope.row.dataTypeLvl1" placeholder="请选择验收类型" style="width: 100%"
@change="setDataTypeLvl1(scope.row, $event)">
<el-option v-for="dict in dict.type.project_checking_data_type_lvl1" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
<el-select v-model="scope.row.dataTypeLvl2" v-show="scope.row.dataTypeLvl1" placeholder="请选择类型分类"
style="width: 100%" @change="setDataTypeLvl2(scope.row, $event)">
<el-option v-for="dict in dict.type.project_checking_data_type_lvl2"
v-if="scope.row.dataTypeLvl1 == dict.raw.remark" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
<el-select
v-model="scope.row.dataTypeLvl2"
v-show="scope.row.dataTypeLvl1"
placeholder="请选择类型分类"
style="width: 100%"
@change="setDataTypeLvl2(scope.row, $event)"
>
<el-option
v-for="dict in dict.type.project_checking_data_type_lvl2"
v-if="scope.row.dataTypeLvl1 == dict.raw.remark"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
label="验收工序部位"
align="center"
prop="checkWorkingPosition"
width="180"
show-overflow-tooltip
/>
<el-table-column label="验收工序部位" align="center" prop="checkWorkingPosition" width="180" show-overflow-tooltip />
<el-table-column
label="验收描述"
align="center"
prop="intro"
width="180"
show-overflow-tooltip
/>
<el-table-column
label="质量专员"
align="left"
prop="qualityUser"
width="130"
show-overflow-tooltip
>
<el-table-column label="验收描述" align="center" prop="intro" width="180" show-overflow-tooltip />
<el-table-column label="质量专员" align="left" prop="qualityUser" width="130" 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="130"
show-overflow-tooltip
>
<el-table-column label="监理专员" align="left" prop="superviseUser" width="130" 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="checkingDate"
width="100"
show-overflow-tooltip
>
<el-table-column label="验收时间" align="center" prop="checkingDate" width="100" show-overflow-tooltip>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.checkingDate, "{y}-{m}-{d}") }}</span>
</template>
@ -325,10 +193,7 @@
</el-table-column> -->
<el-table-column label="审批状态" align="center" prop="approveStatus" width="120">
<template slot-scope="scope">
<dict-tag
:options="dict.type.project_check_status"
:value="scope.row.approveStatus"
/>
<dict-tag :options="dict.type.project_check_status" :value="scope.row.approveStatus" />
</template>
</el-table-column>
<el-table-column label="数据状态" align="center" prop="isDel">
@ -341,196 +206,82 @@
<span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="200"
fixed="right"
>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" fixed="right">
<template slot-scope="scope">
<el-button
v-if="scope.row.checkingFiles != null"
size="mini"
type="text"
icon="el-icon-paperclip"
@click="handledownload(scope.row)"
v-hasPermi="['project:projectChecking:list']"
>下载附件</el-button
>
<el-button
v-if="scope.row.approveStatus != null"
size="mini"
type="text"
icon="el-icon-tickets"
@click="handleAuditinfo(scope.row)"
>审批日志</el-button
>
<el-button
v-if="scope.row.approveStatus == '1'"
size="mini"
type="text"
icon="el-icon-finished"
v-hasPermi="['project:projectChecking:approve']"
@click="handleAudit(scope.row)"
>处理审批</el-button
>
<el-button
v-if="scope.row.approveStatus != '4'"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['project:projectChecking:edit']"
>修改</el-button
>
<el-button
v-if="scope.row.approveStatus != '4'"
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['project:projectChecking:remove']"
>删除</el-button
>
<el-button v-if="scope.row.checkingFiles != null" size="mini" type="text" icon="el-icon-paperclip"
@click="handledownload(scope.row)" v-hasPermi="['project:projectChecking:list']">下载附件</el-button>
<el-button v-if="scope.row.approveStatus != null" size="mini" type="text" icon="el-icon-tickets"
@click="handleAuditinfo(scope.row)">审批日志</el-button>
<el-button v-if="scope.row.approveStatus == '1'" size="mini" type="text" icon="el-icon-finished"
v-hasPermi="['project:projectChecking:approve']" @click="handleAudit(scope.row)">处理审批</el-button>
<el-button v-if="scope.row.approveStatus != '4'" size="mini" type="text" icon="el-icon-edit"
@click="handleUpdate(scope.row)" v-hasPermi="['project:projectChecking:edit']">修改</el-button>
<el-button v-if="scope.row.approveStatus != '4'" size="mini" type="text" icon="el-icon-delete"
@click="handleDelete(scope.row)" v-hasPermi="['project:projectChecking: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"
/>
<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
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-dialog :title="title" :visible.sync="open" width="780px" append-to-body :close-on-click-modal="false"
:close-on-press-escape="false">
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="验收图片" prop="imageUrls">
<image-upload v-model="form.dataTypeLvl1" :limit="9" />
<image-upload v-model="form.imageUrls" :limit="9" />
</el-form-item>
<el-form-item label="验收类型" prop="dataTypeLvl1">
<el-select
v-model="form.dataTypeLvl1"
placeholder="请选择验收类型"
style="width: 100%"
>
<el-option
v-for="dict in dict.type.project_checking_data_type_lvl1"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="form.dataTypeLvl1" placeholder="请选择验收类型" style="width: 100%">
<el-option v-for="dict in dict.type.project_checking_data_type_lvl1" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="类型分类" prop="dataTypeLvl2" v-if="form.dataTypeLvl1">
<el-select
v-model="form.dataTypeLvl2"
placeholder="请选择类型分类"
style="width: 100%"
>
<el-option
v-for="dict in dict.type.project_checking_data_type_lvl2"
v-if="form.dataTypeLvl1 == dict.raw.remark"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="form.dataTypeLvl2" placeholder="请选择类型分类" style="width: 100%">
<el-option v-for="dict in dict.type.project_checking_data_type_lvl2"
v-if="form.dataTypeLvl1 == dict.raw.remark" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</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 deptUserData2"
: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-select v-model="form.qualityUser" placeholder="请选择质量专员" filterable style="width: 100%"
@change="selectQualityUser">
<el-option-group v-for="group in deptUserData2" :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-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="checkWorkingPosition">
<el-input
type="textarea"
v-model="form.checkWorkingPosition"
placeholder="请输入验收工序部位"
/>
<el-input type="textarea" v-model="form.checkWorkingPosition" placeholder="请输入验收工序部位" />
</el-form-item>
<el-form-item label="验收描述" prop="intro">
<el-input v-model="form.intro" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="验收时间" prop="checkingDate">
<el-date-picker
style="width: 100%"
v-model="form.checkingDate"
type="datetime"
placeholder="选择日期时间"
default-time="10:00:00"
value-format="yyyy-MM-dd HH:mm:ss"
>
<el-date-picker
style="width: 100%"
v-model="form.checkingDate"
type="date"
placeholder="选择日期时间"
>
</el-date-picker>
<el-date-picker style="width: 100%" v-model="form.checkingDate" type="datetime" placeholder="选择日期时间"
default-time="10:00:00" value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>
<el-form-item label="验收结果" prop="checkResult" v-if="false">
<el-radio
v-model="form.checkResult"
v-for="dict in dict.type.project_checking_result"
:label="dict.value"
:key="dict.value"
border
size="small"
>{{ dict.label }}</el-radio
>
<el-radio v-model="form.checkResult" 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="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
@ -652,18 +403,51 @@ export default {
deptUserData: [],
deptUserData2: [],
previewList: [],
projectOptions:[],
depts:[],
};
},
created() {
this.getList();
this.$api.publics.getMyProjectList({}).then((response) => {
this.projectOptions = response.rows;
});
},
methods: {
setDataTypeLvl1(row, val){
row.dataTypeLvl2=null;
updateProjectChecking({id:row.id,dataTypeLvl1:val,dataTypeLvl2:null});
doQuerySub() {
let tmps = this.prjDept2 && this.prjDept2[this.queryParams.projectId] ? this.prjDept2[this.queryParams.projectId] || [] : [];
if (tmps.length > 0) {
this.depts = tmps;
if (tmps.length == 1) {
this.queryParams.deptId = tmps[0].deptId;
} else {
this.queryParams.deptId = '';
}
return;
}
this.$api.publics.queryUnitList({
projectId: this.queryParams.projectId,
unitTypes: "2".split(","),
}).then((d) => {
let objs = d.rows || [];
if (!this.prjDept2) {
this.prjDept2 = {};
}
this.prjDept2[this.queryParams.projectId] = objs;
this.depts = objs;
if (objs.length == 1) {
this.queryParams.deptId = objs[0].deptId;
} else {
this.queryParams.deptId = '';
}
});
},
setDataTypeLvl2(row, val){
updateProjectChecking({id:row.id,dataTypeLvl2:val});
setDataTypeLvl1(row, val) {
row.dataTypeLvl2 = null;
updateProjectChecking({ id: row.id, dataTypeLvl1: val, dataTypeLvl2: null });
},
setDataTypeLvl2(row, val) {
updateProjectChecking({ id: row.id, dataTypeLvl2: val });
},
getImageUrl(url) {
return process.env.VUE_APP_BASE_API + url + ".min.jpg";
@ -821,7 +605,7 @@ export default {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
.catch(() => { });
},
/** 导出按钮操作 */
handleExport() {

View File

@ -1,88 +1,43 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="项目名称" prop="projectName">
<el-input
v-model="queryParams.projectName"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="项目名称" prop="projectId">
<el-select v-model="queryParams.projectId" filterable placeholder="请选择项目" clearable @change="doQuerySub">
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="单位名称" prop="deptName">
<el-input
v-model="queryParams.deptName"
placeholder="请输入单位名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form-item label="单位名称" prop="deptId">
<el-select v-model="queryParams.deptId" filterable placeholder="请输入单位名称" clearable>
<el-option v-for="(item, index) in depts" :key="index" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="检验类型" prop="checkType">
<el-select
v-model="queryParams.checkType"
placeholder="请选择检验类型"
clearable
>
<el-option
v-for="dict in dict.type.project_fun_verify_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-select v-model="queryParams.checkType" placeholder="请选择检验类型" clearable>
<el-option v-for="dict in dict.type.project_fun_verify_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="质量专员" prop="qualityUser">
<el-input
v-model="queryParams.qualityUser"
placeholder="请输入质量专员"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.qualityUser" placeholder="请输入质量专员" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="监理专员" prop="superviseUser">
<el-input
v-model="queryParams.superviseUser"
placeholder="请输入监理专员"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.superviseUser" placeholder="请输入监理专员" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="检验时间">
<el-date-picker
v-model="daterangeDate"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
<el-date-picker v-model="daterangeDate" 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="approveStatus" v-if="false">
<el-select
v-model="queryParams.approveStatus"
placeholder="请选择审批状态"
clearable
>
<el-option
v-for="dict in dict.type.project_check_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-select v-model="queryParams.approveStatus" placeholder="请选择审批状态" clearable>
<el-option v-for="dict in dict.type.project_check_status" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
>搜索</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -139,95 +94,37 @@
<el-tabs type="card" v-model="queryParams.activeName" @tab-click="getList">
<el-tab-pane :label="tabs.all" name="all"></el-tab-pane>
<el-tab-pane :label="tabs.jxz" name="jxz"></el-tab-pane>
<el-tab-pane :label="tabs.ywc" name="ywc"></el-tab-pane
></el-tabs>
<el-table
v-loading="loading"
:data="projectFunVerifyList"
@selection-change="handleSelectionChange"
stripe
>
<el-tab-pane :label="tabs.ywc" name="ywc"></el-tab-pane></el-tabs>
<el-table v-loading="loading" :data="projectFunVerifyList" @selection-change="handleSelectionChange" stripe>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="项目名称"
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="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">
<el-image
ref="preview"
style="width: 200px; height: 100px"
:src="getImageUrl(scope.row.mainImage)"
@click="onPreview(scope.row.imageUrls)"
></el-image>
<el-image ref="preview" style="width: 200px; height: 100px" :src="getImageUrl(scope.row.mainImage)"
@click="onPreview(scope.row.imageUrls)"></el-image>
</template>
</el-table-column>
<el-table-column
label="检验类型"
align="center"
width="200"
prop="checkType"
>
<el-table-column label="检验类型" align="center" width="200" prop="checkType">
<template slot-scope="scope">
<dict-tag
:options="dict.type.project_fun_verify_type"
:value="scope.row.checkType"
/>
<dict-tag :options="dict.type.project_fun_verify_type" :value="scope.row.checkType" />
</template>
</el-table-column>
<el-table-column
label="检验名称"
align="center"
prop="checkName"
show-overflow-tooltip
/>
<el-table-column
label="检验描述"
align="center"
prop="intro"
show-overflow-tooltip
/>
<el-table-column
label="质量专员"
align="left"
prop="qualityUser"
width="130"
show-overflow-tooltip
>
<el-table-column label="检验名称" align="center" prop="checkName" show-overflow-tooltip />
<el-table-column label="检验描述" align="center" prop="intro" show-overflow-tooltip />
<el-table-column label="质量专员" align="left" prop="qualityUser" width="130" 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="130"
show-overflow-tooltip
>
<el-table-column label="监理专员" align="left" prop="superviseUser" width="130" 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="checkDate"
width="100"
>
<el-table-column label="检验时间" align="center" prop="checkDate" width="100">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.checkDate, "{y}-{m}-{d}") }}</span>
</template>
@ -242,10 +139,7 @@
</el-table-column> -->
<el-table-column label="审批状态" align="center" prop="approveStatus" width="120">
<template slot-scope="scope">
<dict-tag
:options="dict.type.project_check_status"
:value="scope.row.approveStatus"
/>
<dict-tag :options="dict.type.project_check_status" :value="scope.row.approveStatus" />
</template>
</el-table-column>
<el-table-column label="数据状态" align="center" prop="isDel">
@ -258,184 +152,82 @@
<span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="200"
fixed="right"
>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" fixed="right">
<template slot-scope="scope">
<el-button
v-if="scope.row.checkFiles"
size="mini"
type="text"
icon="el-icon-paperclip"
@click="handleDownload(scope.row)"
v-hasPermi="['project:projectFunVerify:list']"
>下载附件</el-button
>
<el-button
v-if="scope.row.approveStatus != null"
size="mini"
type="text"
icon="el-icon-tickets"
@click="handleAuditinfo(scope.row)"
>审批日志</el-button
>
<el-button
v-if="scope.row.approveStatus == '1'"
size="mini"
type="text"
icon="el-icon-finished"
v-hasPermi="['project:projectFunVerify:approve']"
@click="handleAudit(scope.row)"
>处理审批</el-button
>
<el-button
v-if="scope.row.approveStatus != '4'"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['project:projectFunVerify:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['project:projectFunVerify:remove']"
>删除</el-button
>
<el-button v-if="scope.row.checkFiles" size="mini" type="text" icon="el-icon-paperclip"
@click="handleDownload(scope.row)" v-hasPermi="['project:projectFunVerify:list']">下载附件</el-button>
<el-button v-if="scope.row.approveStatus != null" size="mini" type="text" icon="el-icon-tickets"
@click="handleAuditinfo(scope.row)">审批日志</el-button>
<el-button v-if="scope.row.approveStatus == '1'" size="mini" type="text" icon="el-icon-finished"
v-hasPermi="['project:projectFunVerify:approve']" @click="handleAudit(scope.row)">处理审批</el-button>
<el-button v-if="scope.row.approveStatus != '4'" size="mini" type="text" icon="el-icon-edit"
@click="handleUpdate(scope.row)" v-hasPermi="['project:projectFunVerify:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['project:projectFunVerify: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"
/>
<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
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-dialog :title="title" :visible.sync="open" width="780px" append-to-body :close-on-click-modal="false"
:close-on-press-escape="false">
<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-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="999" />
</el-form-item>
<el-form-item label="检验类型" prop="checkType">
<el-select
v-model="form.checkType"
placeholder="请选择检验类型"
style="width: 100%"
>
<el-option
v-for="dict in dict.type.project_fun_verify_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="form.checkType" placeholder="请选择检验类型" style="width: 100%">
<el-option v-for="dict in dict.type.project_fun_verify_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="检验名称" prop="checkName">
<el-input v-model="form.checkName" placeholder="请输入检验名称" />
</el-form-item>
<el-input v-model="form.checkName" 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 deptUserData2"
: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-select v-model="form.qualityUser" placeholder="请选择质量专员" filterable style="width: 100%"
@change="selectQualityUser">
<el-option-group v-for="group in deptUserData2" :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-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="checkDate">
<el-date-picker
style="width: 100%"
v-model="form.checkDate"
type="date"
placeholder="选择检验时间"
>
<el-date-picker style="width: 100%" v-model="form.checkDate" type="date" placeholder="选择检验时间">
</el-date-picker>
</el-form-item>
<el-form-item label="检验描述" prop="intro">
<el-input v-model="form.intro" type="textarea" placeholder="请输入检验描述" />
</el-form-item>
<el-form-item label="相关附件" prop="files">
<FileUpload :limit="10" v-model="files" @input="fileInput"/>
</el-form-item>
<FileUpload :limit="10" v-model="files" @input="fileInput" />
</el-form-item>
<el-form-item label="验收结果" prop="checkResult" v-if="false">
<el-radio
v-model="form.checkResult"
v-for="dict in dict.type.project_FunVerify_result"
:label="dict.value"
:key="dict.value"
border
size="small"
>{{ dict.label }}</el-radio
>
<el-radio v-model="form.checkResult" v-for="dict in dict.type.project_FunVerify_result" :label="dict.value"
:key="dict.value" border size="small">{{ dict.label }}</el-radio>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -551,13 +343,46 @@ export default {
deptUserData: [],
deptUserData2: [],
previewList: [],
files:null,
files: null,
projectOptions:[],
depts:[],
};
},
created() {
this.getList();
this.$api.publics.getMyProjectList({}).then((response) => {
this.projectOptions = response.rows;
});
},
methods: {
doQuerySub() {
let tmps = this.prjDept2 && this.prjDept2[this.queryParams.projectId] ? this.prjDept2[this.queryParams.projectId] || [] : [];
if (tmps.length > 0) {
this.depts = tmps;
if (tmps.length == 1) {
this.queryParams.deptId = tmps[0].deptId;
} else {
this.queryParams.deptId = '';
}
return;
}
this.$api.publics.queryUnitList({
projectId: this.queryParams.projectId,
unitTypes: "2".split(","),
}).then((d) => {
let objs = d.rows || [];
if (!this.prjDept2) {
this.prjDept2 = {};
}
this.prjDept2[this.queryParams.projectId] = objs;
this.depts = objs;
if (objs.length == 1) {
this.queryParams.deptId = objs[0].deptId;
} else {
this.queryParams.deptId = '';
}
});
},
fileInput(fs) {
let fileUrls = [];
if (fs.length > 0) {
@ -662,9 +487,9 @@ export default {
this.reset();
const id = row.id || this.ids;
getProjectFunVerify(id).then((response) => {
if(response.data.checkFiles){
if (response.data.checkFiles) {
this.files = response.data.checkFiles.split(",");
}else{
} else {
this.files = [];
}
this.form = response.data;
@ -721,7 +546,7 @@ export default {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
.catch(() => { });
},
/** 导出按钮操作 */
handleExport() {

View File

@ -1,55 +1,28 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="项目名称" prop="projectName">
<el-input
v-model="queryParams.projectName"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="项目名称" prop="projectId">
<el-select v-model="queryParams.projectId" filterable placeholder="请选择项目" clearable @change="doQuerySub">
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="单位名称" prop="deptName">
<el-input
v-model="queryParams.deptName"
placeholder="请输入单位名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form-item label="单位名称" prop="deptId">
<el-select v-model="queryParams.deptId" filterable placeholder="请输入单位名称" clearable>
<el-option v-for="(item, index) in depts" :key="index" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</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 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="measureInfo">
<el-select
v-model="queryParams.measureInfo"
placeholder="请选择测量类型"
clearable
>
<el-option
v-for="dict in dict.type.project_measure_info_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-select v-model="queryParams.measureInfo" placeholder="请选择测量类型" clearable>
<el-option v-for="dict in dict.type.project_measure_info_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<!-- <el-form-item label="测量结果" prop="measureResult">
@ -67,64 +40,34 @@
</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-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-input
v-model="queryParams.measurePosition"
placeholder="请输入测量部位"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.measurePosition" placeholder="请输入测量部位" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="质量专员" prop="qualityUser">
<el-input
v-model="queryParams.qualityUser"
placeholder="请输入监理专员"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.qualityUser" placeholder="请输入监理专员" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="监理专员" prop="superviseUser">
<el-input
v-model="queryParams.superviseUser"
placeholder="请输入监理专员"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.superviseUser" placeholder="请输入监理专员" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="审批状态" prop="approveStatus" v-if="false">
<el-select
v-model="queryParams.approveStatus"
placeholder="请选择审批状态"
clearable
>
<el-option
v-for="dict in dict.type.project_check_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-select v-model="queryParams.approveStatus" placeholder="请选择审批状态" clearable>
<el-option v-for="dict in dict.type.project_check_status" :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
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<!-- <el-row :gutter="10" class="mb8"> -->
<!--<el-col :span="1.5">
<!--<el-col :span="1.5">
<el-button
type="primary"
plain
@ -135,7 +78,7 @@
>新增</el-button
>
</el-col> -->
<!-- <el-col :span="1.5">
<!-- <el-col :span="1.5">
<el-button
type="success"
plain
@ -175,62 +118,28 @@
<el-tabs type="card" v-model="queryParams.activeName" @tab-click="getList">
<el-tab-pane :label="tabs.all" name="all"></el-tab-pane>
<el-tab-pane :label="tabs.jxz" name="jxz"></el-tab-pane>
<el-tab-pane :label="tabs.ywc" name="ywc"></el-tab-pane
></el-tabs>
<el-table
v-loading="loading"
:data="projectMeasureList"
@selection-change="handleSelectionChange" stripe
>
<el-tab-pane :label="tabs.ywc" name="ywc"></el-tab-pane></el-tabs>
<el-table v-loading="loading" :data="projectMeasureList" @selection-change="handleSelectionChange" stripe>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="项目名称"
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="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">
<el-image
ref="preview"
style="width: 200px; height: 100px"
:src="getImageUrl(scope.row.mainImage)"
@click="onPreview(scope.row.imageUrls)"
></el-image>
<el-image ref="preview" style="width: 200px; height: 100px" :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"
/>
<dict-tag :options="dict.type.project_measure_type" :value="scope.row.measureType" />
</template>
</el-table-column>
<el-table-column label="测量内容" align="center" prop="measureInfo">
<template slot-scope="scope">
<dict-tag
:options="dict.type.project_measure_info_type"
:value="scope.row.measureInfo"
/>
<dict-tag :options="dict.type.project_measure_info_type" :value="scope.row.measureInfo" />
</template>
</el-table-column>
<el-table-column
label="测量部位"
align="center"
prop="measurePosition"
width="140"
show-overflow-tooltip
/>
<el-table-column label="测量部位" align="center" prop="measurePosition" width="140" show-overflow-tooltip />
<el-table-column label="测量时间" align="center" prop="measureTime" width="100">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.measureTime, "{y}-{m}-{d}") }}</span>
@ -241,13 +150,7 @@
<dict-tag :options="dict.type.project_check_status" :value="scope.row.approveStatus" />
</template>
</el-table-column>
<el-table-column
label="测量点位"
align="center"
prop="measurePointPosition"
width="100"
show-overflow-tooltip
/>
<el-table-column label="测量点位" align="center" prop="measurePointPosition" width="100" show-overflow-tooltip />
<!-- <el-table-column label="测量结果" align="center" prop="measureResult">
<template slot-scope="scope">
<dict-tag
@ -256,25 +159,13 @@
/>
</template>
</el-table-column> -->
<el-table-column
label="质量专员"
align="left"
prop="qualityUser"
width="120"
show-overflow-tooltip
>
<el-table-column label="质量专员" align="left" prop="qualityUser" width="120" 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
>
<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>
@ -290,118 +181,48 @@
<span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
fixed="right"
width="200"
>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="200">
<template slot-scope="scope">
<el-button
v-if="scope.row.measureFiles"
size="mini"
type="text"
icon="el-icon-paperclip"
@click="handleDownload(scope.row)"
v-hasPermi="['project:projectMeasure:list']"
>下载附件</el-button
>
<el-button
v-if="scope.row.approveStatus != null"
size="mini"
type="text"
icon="el-icon-tickets"
@click="handleAuditinfo(scope.row)"
>审批日志</el-button
>
<el-button
v-if="scope.row.approveStatus == '1'"
size="mini"
type="text"
icon="el-icon-finished"
v-hasPermi="['project:projectMeasure:approve']"
@click="handleAudit(scope.row)"
>处理审批</el-button
>
<el-button
v-if="scope.row.approveStatus != '4'"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['project:projectMeasure:edit']"
>修改</el-button
>
<el-button
v-if="scope.row.approveStatus != '4'"
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['project:projectMeasure:remove']"
>删除</el-button
>
<el-button v-if="scope.row.measureFiles" size="mini" type="text" icon="el-icon-paperclip"
@click="handleDownload(scope.row)" v-hasPermi="['project:projectMeasure:list']">下载附件</el-button>
<el-button v-if="scope.row.approveStatus != null" size="mini" type="text" icon="el-icon-tickets"
@click="handleAuditinfo(scope.row)">审批日志</el-button>
<el-button v-if="scope.row.approveStatus == '1'" size="mini" type="text" icon="el-icon-finished"
v-hasPermi="['project:projectMeasure:approve']" @click="handleAudit(scope.row)">处理审批</el-button>
<el-button v-if="scope.row.approveStatus != '4'" size="mini" type="text" icon="el-icon-edit"
@click="handleUpdate(scope.row)" v-hasPermi="['project:projectMeasure:edit']">修改</el-button>
<el-button v-if="scope.row.approveStatus != '4'" 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"
/>
<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 :close-on-click-modal="false" :close-on-press-escape="false">
<el-dialog :title="title" :visible.sync="open" width="780px" append-to-body :close-on-click-modal="false"
:close-on-press-escape="false">
<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-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-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%"
@change="selectMeasureType"
>
<el-option
v-for="dict in dict.type.project_measure_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="form.measureType" placeholder="请选择测量类型" style="width: 100%" @change="selectMeasureType">
<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="measureInfo">
<el-select
v-model="form.measureInfo"
placeholder="请选择测量内容"
style="width: 100%"
>
<el-option
v-for="dict in dict.type.project_measure_info_type"
v-show="showInfoType(dict)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="form.measureInfo" placeholder="请选择测量内容" style="width: 100%">
<el-option v-for="dict in dict.type.project_measure_info_type" v-show="showInfoType(dict)" :key="dict.value"
:label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="测量部位" prop="measurePosition">
@ -411,64 +232,34 @@
<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 deptUserData2"
: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-select v-model="form.qualityUser" placeholder="请选择质量专员" filterable style="width: 100%"
@change="selectQualityUser">
<el-option-group v-for="group in deptUserData2" :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-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="date"
value-format="yyyy-MM-dd"
placeholder="请选择测量时间"
style="width: 100%"
>
<el-date-picker clearable v-model="form.measureTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择测量时间" style="width: 100%">
</el-date-picker>
</el-form-item>
<el-form-item label="测量附件" prop="measureFiles">
<file-upload v-model="form.measureFiles" :limit="9" @input="fileInput"/>
<file-upload v-model="form.measureFiles" :limit="9" @input="fileInput" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -478,7 +269,7 @@
</el-dialog>
<el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="previewList" />
<indexDrawer ref="indexDrawer"></indexDrawer>
<approveMeasureDrawer ref="approveMeasureDrawer" :closeCallBack="getList"/>
<approveMeasureDrawer ref="approveMeasureDrawer" :closeCallBack="getList" />
</div>
</template>
@ -579,14 +370,47 @@ export default {
measureFiles: [{ required: false, message: "请上传测量附件", trigger: "blur" }],
},
deptUserData: [],
deptUserData2:[],
deptUserData2: [],
previewList: [],
projectOptions:[],
depts:[],
};
},
created() {
this.getList();
this.$api.publics.getMyProjectList({}).then((response) => {
this.projectOptions = response.rows;
});
},
methods: {
doQuerySub() {
let tmps = this.prjDept2 && this.prjDept2[this.queryParams.projectId] ? this.prjDept2[this.queryParams.projectId] || [] : [];
if (tmps.length > 0) {
this.depts = tmps;
if (tmps.length == 1) {
this.queryParams.deptId = tmps[0].deptId;
} else {
this.queryParams.deptId = '';
}
return;
}
this.$api.publics.queryUnitList({
projectId: this.queryParams.projectId,
unitTypes: "2".split(","),
}).then((d) => {
let objs = d.rows || [];
if (!this.prjDept2) {
this.prjDept2 = {};
}
this.prjDept2[this.queryParams.projectId] = objs;
this.depts = objs;
if (objs.length == 1) {
this.queryParams.deptId = objs[0].deptId;
} else {
this.queryParams.deptId = '';
}
});
},
fileInput(files) {
let fileUrls = null;
if (files.length > 0) {
@ -598,17 +422,17 @@ export default {
}
this.form.measureFiles = fileUrls;
},
selectMeasureType(val){
this.form.measureInfo=null;
selectMeasureType(val) {
this.form.measureInfo = null;
},
showInfoType(dict){
if(this.form.measureType){
if(this.form.measureType=='6'){
showInfoType(dict) {
if (this.form.measureType) {
if (this.form.measureType == '6') {
return dict.raw.remark == 'gjgc' || dict.raw.remark == 'all';
}else{
} else {
return dict.raw.remark == null || dict.raw.remark == 'all';
}
}else{
} else {
return false;
}
},
@ -737,7 +561,7 @@ export default {
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.form.approveStatus="1";
this.form.approveStatus = "1";
if (this.form.id) {
updateProjectMeasure(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
@ -766,7 +590,7 @@ export default {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
.catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
@ -807,13 +631,13 @@ export default {
},
/** 审批日志 */
handleAuditinfo(row) {
row.title="实测实量";
row.logType="2";
row.title = "实测实量";
row.logType = "2";
this.$refs.indexDrawer.show(row);
},
/** 处理审批 */
handleAudit(row){
row.typeName="实测实量";
handleAudit(row) {
row.typeName = "实测实量";
this.$refs.approveMeasureDrawer.show(row);
}
},

View File

@ -1,77 +1,39 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="项目名称" prop="projectName">
<el-input
v-model="queryParams.projectName"
placeholder="请输入项目主键"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="项目名称" prop="projectId">
<el-select v-model="queryParams.projectId" filterable placeholder="请选择项目" clearable @change="doQuerySub">
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="总包单位" prop="deptName">
<el-input
v-model="queryParams.deptName"
placeholder="请输入总包单位名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form-item label="总包单位" prop="deptId">
<el-select v-model="queryParams.deptId" filterable placeholder="请输入总包单位名称" clearable>
<el-option v-for="(item, index) in depts" :key="index" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="保险公司" prop="companyName">
<el-input
v-model="queryParams.companyName"
placeholder="请输入保险公司"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.companyName" placeholder="请输入保险公司" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="保险单号" prop="insuranceNumber">
<el-input
v-model="queryParams.insuranceNumber"
placeholder="请输入保险单号"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.insuranceNumber" placeholder="请输入保险单号" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="保险类型" prop="insuranceType">
<el-select
v-model="queryParams.insuranceType"
placeholder="请选择保险类型"
clearable
>
<el-option
v-for="dict in dict.type.sur_project_insurance_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-select v-model="queryParams.insuranceType" placeholder="请选择保险类型" clearable>
<el-option v-for="dict in dict.type.sur_project_insurance_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="保险状态" prop="insuranceState">
<el-select
v-model="queryParams.insuranceState"
placeholder="请选择保险类型"
clearable
>
<el-option
v-for="dict in dict.type.sur_project_insurance_state"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-select v-model="queryParams.insuranceState" placeholder="请选择保险类型" clearable>
<el-option v-for="dict in dict.type.sur_project_insurance_state" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
>搜索</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -101,46 +63,24 @@
>
</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:surProjectInsurance:remove']"
>删除</el-button
>
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['project:surProjectInsurance:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['project:surProjectInsurance:export']"
>导出</el-button
>
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['project:surProjectInsurance:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="surProjectInsuranceList"
@selection-change="handleSelectionChange"
stripe
>
<el-table v-loading="loading" :data="surProjectInsuranceList" @selection-change="handleSelectionChange" stripe>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="项目名称" align="center" prop="projectName" />
<el-table-column label="总包单位" align="center" prop="deptName" />
<el-table-column label="项目名称" align="center" prop="projectName" 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="insuranceTypeName" />
<el-table-column label="保险状态" align="center" prop="insuranceState">
<template slot-scope="scope">
<svg
v-if="scope.row.insuranceState == '1'"
style="
<svg v-if="scope.row.insuranceState == '1'" style="
width: 1em;
height: 1em;
position: relative;
@ -148,21 +88,12 @@
vertical-align: middle;
fill: currentColor;
overflow: hidden;
"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="3100"
>
" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3100">
<path
d="M802.922882 383.309012 428.076612 758.155283 220.943065 551.154765c-22.317285-22.317285-22.317285-55.993269 0-78.310553 22.450315-22.450315 55.993269-22.450315 78.443583 0l128.689964 128.689964L724.613352 304.999482c22.450315-22.450315 55.993269-22.450315 78.30953 0C825.373197 327.316767 825.373197 360.858698 802.922882 383.309012zM512 64.322981c-246.155283 0-447.677019 201.521736-447.677019 447.677019s201.521736 447.677019 447.677019 447.677019 447.677019-201.521736 447.677019-447.677019S758.155283 64.322981 512 64.322981z"
fill="#22C134"
p-id="3101"
></path>
fill="#22C134" p-id="3101"></path>
</svg>
<svg
v-else
style="
<svg v-else style="
width: 1em;
height: 1em;
position: relative;
@ -170,34 +101,21 @@
vertical-align: middle;
fill: currentColor;
overflow: hidden;
"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="3472"
>
" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3472">
<path
d="M512 981.333333C252.8 981.333333 42.666667 771.2 42.666667 512S252.8 42.666667 512 42.666667s469.333333 210.133333 469.333333 469.333333-210.133333 469.333333-469.333333 469.333333z m44.245333-469.333333l159.914667-159.914667a31.274667 31.274667 0 1 0-44.245333-44.245333L512 467.754667 352.085333 307.84a31.274667 31.274667 0 1 0-44.245333 44.245333L467.754667 512l-159.914667 159.914667a31.274667 31.274667 0 1 0 44.245333 44.245333L512 556.245333l159.914667 159.914667a31.274667 31.274667 0 1 0 44.245333-44.245333L556.245333 512z"
fill="#F5222D"
p-id="3473"
></path>
fill="#F5222D" p-id="3473"></path>
</svg>
<span
v-if="scope.row.insuranceState == '1'"
style="font-weight: 700; color: rgb(34, 193, 52)"
>
<span v-if="scope.row.insuranceState == '1'" style="font-weight: 700; color: rgb(34, 193, 52)">
已办理
</span>
<span
v-if="scope.row.insuranceState == '0'"
style="font-weight: 700; color: rgb(245, 34, 45)"
>
<span v-if="scope.row.insuranceState == '0'" style="font-weight: 700; color: rgb(245, 34, 45)">
未办理
</span>
</template>
</el-table-column>
<el-table-column label="保险公司" align="center" prop="companyName" />
<el-table-column label="保险单号" align="center" prop="insuranceNumber" />
<el-table-column label="保险公司" align="center" prop="companyName" width="180" show-overflow-tooltip />
<el-table-column label="保险单号" align="center" prop="insuranceNumber" width="180" show-overflow-tooltip />
<el-table-column label="数据状态" align="center" prop="isDel">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_common_isdel" :value="scope.row.isDel" />
@ -210,68 +128,27 @@
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
v-if="scope.row.insuranceState == 1"
size="mini"
type="text"
icon="el-icon-link"
@click="handleDownload(scope.row)"
v-hasPermi="['project:surProjectInsurance:edit']"
>保险合同</el-button
>
<el-button
v-if="scope.row.insuranceState == 1"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['project:surProjectInsurance:edit']"
>修改</el-button
>
<el-button
v-if="scope.row.insuranceState == 1"
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['project:surProjectInsurance:remove']"
>删除</el-button
>
<el-button v-if="scope.row.insuranceState == 1" size="mini" type="text" icon="el-icon-link"
@click="handleDownload(scope.row)" v-hasPermi="['project:surProjectInsurance:edit']">保险合同</el-button>
<el-button v-if="scope.row.insuranceState == 1" size="mini" type="text" icon="el-icon-edit"
@click="handleUpdate(scope.row)" v-hasPermi="['project:surProjectInsurance:edit']">修改</el-button>
<el-button v-if="scope.row.insuranceState == 1" size="mini" type="text" icon="el-icon-delete"
@click="handleDelete(scope.row)" v-hasPermi="['project:surProjectInsurance: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"
/>
<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="680px"
append-to-body
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-dialog :title="title" :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="80px">
<el-form-item label="保险类型" prop="insuranceType">
<el-select
v-model="form.insuranceType"
placeholder="请选择保险类型"
:disabled="form.id != null"
style="width: 100%"
>
<el-option
v-for="dict in dict.type.sur_project_insurance_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="form.insuranceType" placeholder="请选择保险类型" :disabled="form.id != null" style="width: 100%">
<el-option v-for="dict in dict.type.sur_project_insurance_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="保险公司" prop="companyName">
@ -360,12 +237,45 @@ export default {
],
insuranceFile: [{ required: true, message: "请上传保险合同", trigger: "blur" }],
},
projectOptions:[],
depts:[],
};
},
created() {
this.getList();
this.$api.publics.getMyProjectList({}).then((response) => {
this.projectOptions = response.rows;
});
},
methods: {
doQuerySub() {
let tmps = this.prjDept2 && this.prjDept2[this.queryParams.projectId] ? this.prjDept2[this.queryParams.projectId] || [] : [];
if (tmps.length > 0) {
this.depts = tmps;
if (tmps.length == 1) {
this.queryParams.deptId = tmps[0].deptId;
} else {
this.queryParams.deptId = '';
}
return;
}
this.$api.publics.queryUnitList({
projectId: this.queryParams.projectId,
unitTypes: "2".split(","),
}).then((d) => {
let objs = d.rows || [];
if (!this.prjDept2) {
this.prjDept2 = {};
}
this.prjDept2[this.queryParams.projectId] = objs;
this.depts = objs;
if (objs.length == 1) {
this.queryParams.deptId = objs[0].deptId;
} else {
this.queryParams.deptId = '';
}
});
},
/** 查询项目保险列表 */
getList() {
this.loading = true;
@ -476,7 +386,7 @@ export default {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
.catch(() => { });
},
/** 导出按钮操作 */
handleExport() {

View File

@ -3,11 +3,14 @@
<el-row>
<el-col :span="24">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
label-width="68px">
<el-form-item label="项目名称" prop="projectId">
<el-input v-model="queryParams.projectName" placeholder="请输入项目名称" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-select v-model="queryParams.projectId" filterable placeholder="请选择项目" clearable @change="handleQuery">
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="责任主体" prop="projectDeptId" v-hasPermi="['project:project:zgs']">
<el-select v-model="queryParams.projectDeptId" placeholder="请选择责任主体" clearable>
<el-option v-for="dict in depts" :key="dict.deptId" :label="dict.deptName"
@ -48,7 +51,7 @@
</el-row>
<el-table v-loading="loading" :data="surProjectScheduleList" @selection-change="handleSelectionChange" stripe>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="编号" align="center" prop="id" />
<el-table-column label="编号" align="center" prop="id" v-if="1==2"/>
<el-table-column label="项目名称" align="left" prop="projectName" show-overflow-tooltip width="200" />
<el-table-column label="形象图片" align="center" prop="image" width="100">
<template slot-scope="scope">
@ -194,6 +197,7 @@ export default {
//
rules: {},
previewList: [],
projectOptions:[],
};
},
created() {
@ -201,6 +205,9 @@ export default {
this.$api.publics.getZgsDeptList().then((d) => {
this.depts = d?.data || [];
});
this.$api.publics.getMyProjectList({}).then((response) => {
this.projectOptions = response.rows;
});
},
methods: {
getImageUrl(url) {

View File

@ -1,81 +1,38 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="项目名称" prop="projectName">
<el-input
v-model="queryParams.projectName"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="项目名称" prop="projectId">
<el-select v-model="queryParams.projectId" filterable placeholder="请选择项目" clearable @change="doQuerySub">
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="总包单位" prop="deptName">
<el-input
v-model="queryParams.deptName"
placeholder="请输入总包单位名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form-item label="总包单位" prop="deptId">
<el-select v-model="queryParams.deptId" filterable placeholder="总包单位" clearable>
<el-option v-for="(item, index) in depts" :key="index" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="人员姓名" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入人员姓名"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.name" placeholder="请输入人员姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="人员类型" prop="specialType">
<el-select
v-model="queryParams.specialType"
placeholder="请选择是人员类型"
clearable
>
<el-option
v-for="dict in dict.type.project_special_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-select v-model="queryParams.specialType" placeholder="请选择是人员类型" clearable>
<el-option v-for="dict in dict.type.project_special_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="证书编号" prop="credentialNumber">
<el-input
v-model="queryParams.credentialNumber"
placeholder="请输入证书编号"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.credentialNumber" placeholder="请输入证书编号" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item
label="责任主体"
prop="projectDeptId"
v-hasPermi="['project:project:zgs']"
>
<el-select
v-model="queryParams.projectDeptId"
placeholder="请选择责任主体"
clearable
>
<el-option
v-for="dict in depts"
:key="dict.deptId"
:label="dict.deptName"
:value="dict.deptId"
></el-option>
<el-form-item label="责任主体" prop="projectDeptId" v-hasPermi="['project:project:zgs']">
<el-select v-model="queryParams.projectDeptId" placeholder="请选择责任主体" clearable>
<el-option v-for="dict in depts" :key="dict.deptId" :label="dict.deptName" :value="dict.deptId"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
>搜索</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -92,39 +49,16 @@
>新增</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:surProjectSpecial:edit']"
>修改</el-button
>
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['project:surProjectSpecial: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:surProjectSpecial:remove']"
>删除</el-button
>
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['project:surProjectSpecial:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['project:surProjectSpecial:export']"
>导出</el-button
>
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['project:surProjectSpecial:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@ -133,55 +67,24 @@
<el-tab-pane :label="tabs.all" name="all"></el-tab-pane>
<el-tab-pane :label="tabs.wgq" name="wgq"></el-tab-pane>
<el-tab-pane :label="tabs.ygq" name="ygq"></el-tab-pane>
<el-table
v-loading="loading"
:data="surProjectSpecialList"
@selection-change="handleSelectionChange"
stripe
>
<el-table v-loading="loading" :data="surProjectSpecialList" @selection-change="handleSelectionChange" stripe>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
label="项目名称"
align="center"
prop="projectName"
width="220"
show-overflow-tooltip
/>
<el-table-column label="提交单位" align="center" prop="deptName" />
<el-table-column label="项目名称" align="center" prop="projectName" width="220" show-overflow-tooltip />
<el-table-column label="提交单位" align="center" prop="deptName" width="180" show-overflow-tooltip/>
<el-table-column label="人员姓名" align="center" prop="name" />
<el-table-column label="性别" align="center" prop="sex">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex" />
</template>
</el-table-column>
<el-table-column
label="人员类型"
align="center"
prop="specialType"
width="120"
show-overflow-tooltip
>
<el-table-column label="人员类型" align="center" prop="specialType" width="120" show-overflow-tooltip>
<template slot-scope="scope">
<dict-tag
:options="dict.type.project_special_type"
:value="scope.row.specialType"
/>
<dict-tag :options="dict.type.project_special_type" :value="scope.row.specialType" />
</template>
</el-table-column>
<el-table-column label="联系方式" align="center" prop="phoneNumber" />
<el-table-column
label="证书编号"
align="center"
prop="credentialNumber"
width="150"
show-overflow-tooltip
/>
<el-table-column
label="证书过期时间"
align="center"
prop="credentialExpirationTime"
width="120"
>
<el-table-column label="证书编号" align="center" prop="credentialNumber" width="150" show-overflow-tooltip />
<el-table-column label="证书过期时间" align="center" prop="credentialExpirationTime" width="120">
<template slot-scope="scope">
<span>{{
parseTime(scope.row.credentialExpirationTime, "{y}-{m}-{d}")
@ -190,104 +93,47 @@
</el-table-column>
<el-table-column label="证书预览" align="center" prop="credentialFile" width="80">
<template slot-scope="scope">
<svg
v-if="scope.row.credentialType == 'PDF'"
style="vertical-align: middle; fill: currentColor; overflow: hidden"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="1379"
width="50"
height="50"
>
<svg v-if="scope.row.credentialType == 'PDF'"
style="vertical-align: middle; fill: currentColor; overflow: hidden" viewBox="0 0 1024 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="1379" width="50" height="50">
<path
d="M905.185809 178.844158C898.576738 172.685485 891.19337 165.824412 883.21687 158.436127 860.422682 137.322863 837.434925 116.207791 815.697647 96.487895 813.243072 94.261877 813.243072 94.261877 810.786411 92.037081 781.783552 65.781062 757.590948 44.376502 739.713617 29.293612 729.254178 20.469111 721.020606 13.860686 714.970549 9.501727 710.955023 6.608611 707.690543 4.524745 704.47155 2.998714 700.417679 1.07689 696.638044-0.094029 691.307277 0.005928 677.045677 0.273349 665.6 11.769337 665.6 26.182727L665.6 77.352844 665.6 128.522961 665.6 230.863194 665.6 256.448252 691.2 256.448252 896 256.448252 870.4 230.863194 870.4 998.414942 896 972.829884 230.381436 972.829884C187.90385 972.829884 153.6 938.623723 153.6 896.20663L153.6 26.182727 128 51.767786 588.8 51.767786C602.93849 51.767786 614.4 40.312965 614.4 26.182727 614.4 12.05249 602.93849 0.597669 588.8 0.597669L128 0.597669 102.4 0.597669 102.4 26.182727 102.4 896.20663C102.4 966.91021 159.652833 1024 230.381436 1024L896 1024 921.6 1024 921.6 998.414942 921.6 230.863194 921.6 205.278135 896 205.278135 691.2 205.278135 716.8 230.863194 716.8 128.522961 716.8 77.352844 716.8 26.182727C716.8 39.813762 705.748075 50.91427 692.267725 51.167041 687.705707 51.252584 685.069822 50.435995 682.52845 49.231204 682.259458 49.103682 683.344977 49.796618 685.029451 51.010252 689.779394 54.432502 697.145822 60.34494 706.686383 68.394196 724.009052 83.009121 747.816448 104.072869 776.413589 129.961594 778.850014 132.168064 778.850014 132.168064 781.285216 134.376514 802.876774 153.964212 825.739479 174.96442 848.413564 195.966437 856.350957 203.3185 863.697005 210.144893 870.269888 216.269843 874.209847 219.941299 877.019309 222.565641 878.499674 223.951409 888.81866 233.610931 905.019017 233.081212 914.684179 222.768247 924.349344 212.455283 923.819315 196.264383 913.500326 186.604861 911.981323 185.182945 909.155025 182.542876 905.185809 178.844158ZM102.4 461.128719 0 461.128719 0 896.074709 512 896.074709 1024 896.074709 1024 461.128719 153.6 461.128719 153.6 460.531049 102.4 460.531049 102.4 461.128719ZM208.2 711 208.2 819.2 157.6 819.2 157.6 528 269 528C301.533495 528 327.366571 536.466581 346.5 553.4 365.633429 570.333419 375.2 592.733195 375.2 620.6 375.2 649.133476 365.833427 671.333254 347.1 687.2 328.366573 703.066746 302.133502 711 268.4 711L208.2 711ZM208.2 670.4 269 670.4C287.00009 670.4 300.733286 666.166709 310.2 657.7 319.666714 649.233291 324.4 637.000079 324.4 621 324.4 605.266588 319.600047 592.700047 310 583.3 300.399951 573.899953 287.200083 569.066669 270.4 568.8L208.2 568.8 208.2 670.4ZM419.4 819.2 419.4 528 505.4 528C531.133461 528 553.966566 533.733276 573.9 545.2 593.833434 556.666724 609.266611 572.933229 620.2 594 631.133389 615.066771 636.6 639.199863 636.6 666.4L636.6 681C636.6 708.600139 631.100055 732.866562 620.1 753.8 609.099945 774.733438 593.433436 790.866609 573.1 802.2 552.766564 813.533391 529.466799 819.2 503.2 819.2L419.4 819.2ZM470 568.8 470 778.8 503 778.8C529.533466 778.8 549.89993 770.500083 564.1 753.9 578.30007 737.299917 585.533331 713.466822 585.8 682.4L585.8 666.2C585.8 634.599842 578.933402 610.46675 565.2 593.8 551.466598 577.13325 531.533463 568.8 505.4 568.8L470 568.8ZM854.8 695.8 737.6 695.8 737.6 819.2 687 819.2 687 528 872 528 872 568.8 737.6 568.8 737.6 655.4 854.8 655.4 854.8 695.8Z"
fill="#01A9FF"
p-id="1380"
></path>
fill="#01A9FF" p-id="1380"></path>
</svg>
<el-image
v-if="
scope.row.credentialType == 'JPG' ||
scope.row.credentialType == 'PNG' ||
scope.row.credentialType == 'JPEG'
"
ref="preview"
style="width: 50px; height: 50px"
:src="getImageUrl(scope.row.credentialFile)"
@click="onPreview(scope.row.credentialFile)"
></el-image>
<el-image v-if="
scope.row.credentialType == 'JPG' ||
scope.row.credentialType == 'PNG' ||
scope.row.credentialType == 'JPEG'
" ref="preview" style="width: 50px; height: 50px" :src="getImageUrl(scope.row.credentialFile)"
@click="onPreview(scope.row.credentialFile)"></el-image>
</template>
</el-table-column>
<el-table-column
label="提交时间"
align="center"
prop="createTime"
width="100"
>
<template slot-scope="scope">
<span>{{
parseTime(scope.row.createTime, "{y}-{m}-{d}")
}}</span>
</template>
</el-table-column>
<el-table-column
label="备注"
align="center"
prop="remark"
show-overflow-tooltip
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<el-table-column label="提交时间" align="center" prop="createTime" width="100">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-download"
@click="handledownload(scope.row)"
v-hasPermi="['project:surProjectSpecial:list']"
>下载证书</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['project:surProjectSpecial:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['project:surProjectSpecial:remove']"
>删除</el-button
>
<span>{{
parseTime(scope.row.createTime, "{y}-{m}-{d}")
}}</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip />
<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-download" @click="handledownload(scope.row)"
v-hasPermi="['project:surProjectSpecial:list']">下载证书</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['project:surProjectSpecial:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['project:surProjectSpecial: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"
/>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
</el-tabs>
<!-- 添加或修改项目特种人员对话框 -->
<el-dialog
:title="title"
:visible.sync="open"
width="500px"
append-to-body
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body :close-on-click-modal="false"
:close-on-press-escape="false">
<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 />
@ -297,26 +143,14 @@
</el-form-item>
<el-form-item label="性别" prop="sex">
<el-select v-model="form.sex" placeholder="请选择性别" style="width: 100%">
<el-option
v-for="dict in dict.type.sys_user_sex"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="人员类型" prop="specialType">
<el-select
v-model="form.specialType"
placeholder="请选择是否有证书"
style="width: 100%"
>
<el-option
v-for="dict in dict.type.project_special_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="form.specialType" placeholder="请选择是否有证书" style="width: 100%">
<el-option v-for="dict in dict.type.project_special_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="联系方式" prop="phoneNumber">
@ -325,28 +159,13 @@
<el-form-item label="证书编号" prop="credentialNumber" v-show="credential">
<el-input v-model="form.credentialNumber" placeholder="请输入证书编号" />
</el-form-item>
<el-form-item
label="证书过期时间"
prop="credentialExpirationTime"
v-show="credential"
>
<el-date-picker
clearable
v-model="form.credentialExpirationTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择证书过期时间"
style="width: 100%"
>
<el-form-item label="证书过期时间" prop="credentialExpirationTime" v-show="credential">
<el-date-picker clearable v-model="form.credentialExpirationTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择证书过期时间" style="width: 100%">
</el-date-picker>
</el-form-item>
<el-form-item label="证书附件" prop="credentialFile">
<FileUpload
@input="fileInput"
:limit="1"
:fileType="['pdf', 'png', 'jpg', 'jpeg']"
v-model="files"
/>
<FileUpload @input="fileInput" :limit="1" :fileType="['pdf', 'png', 'jpg', 'jpeg']" v-model="files" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
@ -462,6 +281,8 @@ export default {
wgq: "未过期0",
ygq: "已过期0",
},
projectOptions:[],
depts:[],
};
},
created() {
@ -470,8 +291,39 @@ export default {
this.$api.publics.getZgsDeptList().then((d) => {
this.depts = d?.data || [];
});
this.$api.publics.getMyProjectList({}).then((response) => {
this.projectOptions = response.rows;
});
},
methods: {
doQuerySub() {
let tmps = this.prjDept2 && this.prjDept2[this.queryParams.projectId] ? this.prjDept2[this.queryParams.projectId] || [] : [];
if (tmps.length > 0) {
this.depts = tmps;
if (tmps.length == 1) {
this.queryParams.deptId = tmps[0].deptId;
} else {
this.queryParams.deptId = '';
}
return;
}
this.$api.publics.queryUnitList({
projectId: this.queryParams.projectId,
unitTypes: "2".split(","),
}).then((d) => {
let objs = d.rows || [];
if (!this.prjDept2) {
this.prjDept2 = {};
}
this.prjDept2[this.queryParams.projectId] = objs;
this.depts = objs;
if (objs.length == 1) {
this.queryParams.deptId = objs[0].deptId;
} else {
this.queryParams.deptId = '';
}
});
},
getImageUrl(url) {
return process.env.VUE_APP_BASE_API + url + ".min.jpg";
},
@ -484,7 +336,7 @@ export default {
this.showViewer = false;
},
//
credentialChange(ev) {},
credentialChange(ev) { },
fileInput(files) {
if (files.length > 0) {
this.form.credentialFile = files[0].url;
@ -636,7 +488,7 @@ export default {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
.catch(() => { });
},
/** 导出按钮操作 */
handleExport() {

View File

@ -2,58 +2,34 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="项目名称" prop="projectId">
<el-input
v-model="queryParams.projectName"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-select v-model="queryParams.projectId" filterable placeholder="请选择项目" clearable @change="handleQuery">
<el-option v-for="(item, index) in projectOptionsList" :key="index" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<!--
<el-form-item label="单位名称" prop="deptName">
<el-input
v-model="queryParams.deptName"
placeholder="请输入单位名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.deptName" placeholder="请输入单位名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
-->
<el-form-item label="人员名称" prop="nickName">
<el-input
v-model="queryParams.nickName"
placeholder="请输入人员名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.nickName" placeholder="请输入人员名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="单位类型" prop="deptType">
<el-select v-model="queryParams.deptType" placeholder="请选择单位类型" clearable>
<el-option
v-for="dict in dict.type.sys_dept_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-option v-for="dict in dict.type.sys_dept_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="职务类型" prop="jobType">
<el-select v-model="queryParams.jobType" placeholder="请选择职务类型" clearable>
<el-option
v-for="dict in dict.type.sys_job_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-option v-for="dict in dict.type.sys_job_type" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="责任主体" prop="projectDeptId" v-hasPermi="['project:project:zgs']">
<el-select v-model="queryParams.projectDeptId" placeholder="请选择责任主体" clearable>
<el-option
v-for="dict in depts"
:key="dict.deptId"
:label="dict.deptName"
:value="dict.deptId"
></el-option>
</el-select>
<el-option v-for="dict in depts" :key="dict.deptId" :label="dict.deptName" :value="dict.deptId"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
@ -84,43 +60,30 @@
>修改</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:surProjectUserInfo:remove']"
>删除</el-button>
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['project:surProjectUserInfo:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['project:surProjectUserInfo:export']"
>导出</el-button>
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['project:surProjectUserInfo:export']">导出</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" stripe>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键" align="center" prop="id" v-if="false"/>
<el-table-column label="项目名称" prop="projectName" align="left" width="200" show-overflow-tooltip/>
<el-table-column label="单位主键" align="center" prop="deptId" v-if="false"/>
<el-table-column label="单位名称" prop="deptName" align="left" width="200" show-overflow-tooltip/>
<el-table-column label="主键" align="center" prop="id" v-if="false" />
<el-table-column label="项目名称" prop="projectName" align="left" width="200" show-overflow-tooltip />
<el-table-column label="单位主键" align="center" prop="deptId" v-if="false" />
<el-table-column label="单位名称" prop="deptName" align="left" width="200" show-overflow-tooltip />
<el-table-column label="单位类型" align="center" prop="deptType">
<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>
</el-table-column>
<el-table-column label="职务类型" align="center" prop="jobType">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_job_type" :value="scope.row.jobType"/>
<dict-tag :options="dict.type.sys_job_type" :value="scope.row.jobType" />
</template>
</el-table-column>
<el-table-column label="人员名称" align="center" prop="nickName" />
@ -135,40 +98,28 @@
@click="handleUpdate(scope.row)"
v-hasPermi="['project:surProjectUserInfo:edit']"
>修改</el-button> -->
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['project:surProjectUserInfo:remove']"
>删除</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['project:surProjectUserInfo: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"
/>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@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="80px">
<el-form-item label="所属项目" prop="projectId">
<el-select v-model="form.projectId" filterable placeholder="请选择所属项目" style="width: 100%;">
<el-option
v-for="item in projectOptions"
:key="item.id"
:label="item.projectName"
:value="item.id">
<el-option v-for="item in projectOptions" :key="item.id" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<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 label="单位类型" prop="deptType">
<el-select v-model="form.deptType" placeholder="请选择单位类型" style="width: 100%;">
@ -182,21 +133,13 @@
</el-form-item> -->
<el-form-item label="职务类型" prop="jobType">
<el-select v-model="form.jobType" filterable placeholder="请选择职务类型" style="width: 100%;">
<el-option
v-for="dict in dict.type.sys_job_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-option v-for="dict in dict.type.sys_job_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="项目人员" prop="userIds">
<el-select v-model="form.userIds" filterable multiple clearable placeholder="请选择项目人员" style="width: 100%;">
<el-option
v-for="item in userOptions"
:key="item.userId"
:label="item.nickName"
:value="item.userId">
<el-option v-for="item in userOptions" :key="item.userId" :label="item.nickName" :value="item.userId">
</el-option>
</el-select>
</el-form-item>
@ -262,7 +205,7 @@ export default {
isDel: null,
projectDeptId: null
},
depts:null,
depts: null,
//
form: {},
//
@ -279,7 +222,8 @@ export default {
userIds: [
{ required: true, message: "请选择项目人员", trigger: "blur" }
]
}
},
projectOptionsList:[]
};
},
watch: {
@ -290,9 +234,12 @@ export default {
},
created() {
this.getList();
this.$api.publics.getZgsDeptList().then(d=>{
this.depts=d?.data||[];
this.$api.publics.getZgsDeptList().then(d => {
this.depts = d?.data || [];
})
this.$api.publics.getMyProjectList({}).then((response) => {
this.projectOptionsList = response.rows;
});
},
methods: {
/** 查询项目人员列表 */
@ -355,10 +302,10 @@ export default {
updateTime: null,
remark: null
};
this.projectId=[];
this.projectOptions=[];
this.userIds= [];
this.userOptions=[];
this.projectId = [];
this.projectOptions = [];
this.userIds = [];
this.userOptions = [];
this.resetForm("form");
},
/** 搜索按钮操作 */
@ -374,15 +321,15 @@ export default {
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.single = selection.length !== 1
this.multiple = !selection.length
},
//
deptChange(note){
this.userIds=[];
this.userOptions=[];
this.form.userIds=[];
if(note&&note.id){
deptChange(note) {
this.userIds = [];
this.userOptions = [];
this.form.userIds = [];
if (note && note.id) {
this.form.deptId = note.id;
this.getUserList(note.id);
}
@ -428,12 +375,12 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除项目人员编号为"' + ids + '"的数据项?').then(function() {
this.$modal.confirm('是否确认删除项目人员编号为"' + ids + '"的数据项?').then(function () {
return delSurProjectUserInfo(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {

View File

@ -1,97 +1,42 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="项目名称" prop="projectName">
<el-input
v-model="queryParams.projectName"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="项目名称" prop="projectId">
<el-select v-model="queryParams.projectId" filterable placeholder="请选择项目" clearable @change="doQuerySub">
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="总包单位" prop="trainNatureName">
<el-input
v-model="queryParams.trainNatureName"
placeholder="请输入总包单位名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form-item label="总包单位名称" prop="trainDeptIds">
<el-select v-model="queryParams.trainDeptIds" filterable placeholder="请输入总包单位名称" clearable>
<el-option v-for="(item, index) in depts" :key="index" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="演练类型" prop="dataType">
<el-select
v-model="queryParams.dataType"
@keyup.enter.native="handleQuery"
placeholder="请选择演练类型"
clearable
>
<el-option
v-for="dict in dict.type.work_train_data_type"
v-show="dict.raw.remark == '1'"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-select v-model="queryParams.dataType" @keyup.enter.native="handleQuery" placeholder="请选择演练类型" clearable>
<el-option v-for="dict in dict.type.work_train_data_type" v-show="dict.raw.remark == '1'" :key="dict.value"
:label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="演练标题" prop="trainTitle">
<el-input
v-model="queryParams.trainTitle"
placeholder="请输入演练标题"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.trainTitle" placeholder="请输入演练标题" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item
label="责任主体"
prop="projectDeptId"
v-hasPermi="['project:project:zgs']"
>
<el-select
v-model="queryParams.projectDeptId"
placeholder="请选择责任主体"
clearable
>
<el-option
v-for="dict in depts"
:key="dict.deptId"
:label="dict.deptName"
:value="dict.deptId"
></el-option>
<el-form-item label="责任主体" prop="projectDeptId" v-hasPermi="['project:project:zgs']">
<el-select v-model="queryParams.projectDeptId" placeholder="请选择责任主体" clearable>
<el-option v-for="dict in depts" :key="dict.deptId" :label="dict.deptName" :value="dict.deptId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="演练时间">
<el-date-picker
v-model="daterangeMarksTime"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
<el-date-picker v-model="daterangeMarksTime" 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="提交时间">
<el-date-picker
v-model="daterangeTime"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
<el-date-picker v-model="daterangeTime" 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>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
>搜索</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -142,74 +87,35 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> -->
<el-table
v-loading="loading"
:data="workTrainList"
@selection-change="handleSelectionChange"
stripe
>
<el-table v-loading="loading" :data="workTrainList" @selection-change="handleSelectionChange" stripe>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="项目名称" align="center" prop="projectName" width="200" />
<el-table-column label="演练主图" align="center" prop="mainImage" width="200">
<template slot-scope="scope">
<el-image
ref="preview"
style="width: 50px; height: 50px"
:src="getImageUrl(scope.row.mainImage)"
@click="onPreview(scope.row.mainImage)"
></el-image>
<el-image ref="preview" style="width: 50px; height: 50px" :src="getImageUrl(scope.row.mainImage)"
@click="onPreview(scope.row.mainImage)"></el-image>
</template>
</el-table-column>
<el-table-column label="演练类型" align="center" prop="dataType">
<template slot-scope="scope">
<el-select
v-model="scope.row.dataType"
placeholder="请选择演练类型"
style="width: 100%"
@change="setDataType(scope.row.id, $event)"
>
<el-option
v-for="dict in dict.type.work_train_data_type"
v-show="dict.raw.remark == '1'"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="scope.row.dataType" placeholder="请选择演练类型" style="width: 100%"
@change="setDataType(scope.row.id, $event)">
<el-option v-for="dict in dict.type.work_train_data_type" v-show="dict.raw.remark == '1'" :key="dict.value"
:label="dict.label" :value="dict.value"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
label="演练标题"
align="center"
prop="trainTitle"
width="150"
show-overflow-tooltip
/>
<el-table-column label="演练标题" align="center" prop="trainTitle" width="150" show-overflow-tooltip />
<el-table-column label="参与人数" align="center" prop="trainParticipants" />
<el-table-column label="演练时间" align="center" prop="beginDate" width="100">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.beginDate, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
label="演练内容"
align="center"
prop="trainContent"
width="150"
show-overflow-tooltip
/>
<el-table-column
label="协同部门"
align="center"
prop="trainDeptNames"
width="220"
show-overflow-tooltip
>
<el-table-column label="演练内容" align="center" prop="trainContent" width="150" show-overflow-tooltip />
<el-table-column label="协同部门" align="center" prop="trainDeptNames" width="220" show-overflow-tooltip>
<template slot-scope="scope">
<div
class="div_tag"
v-for="dept in getTrainDeptNames(scope.row.trainDeptNames)"
>
<div class="div_tag" v-for="dept in getTrainDeptNames(scope.row.trainDeptNames)">
<el-tag>{{ dept }}</el-tag>
</div>
</template>
@ -220,129 +126,62 @@
</template>
</el-table-column>
<el-table-column label="提交时间" align="center" prop="createTime" width="100">
<template slot-scope="scope">
<div>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</div>
</template>
</el-table-column>
<template slot-scope="scope">
<div>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</div>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
v-if="scope.row.trainFile"
size="mini"
type="text"
icon="el-icon-paperclip"
@click="handleDownload(scope.row)"
v-hasPermi="['work:emergencyDrill:edit']"
>下载文件</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['work:workTrain:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['work:workTrain:remove']"
>删除</el-button
>
<el-button v-if="scope.row.trainFile" size="mini" type="text" icon="el-icon-paperclip"
@click="handleDownload(scope.row)" v-hasPermi="['work:emergencyDrill:edit']">下载文件</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['work:workTrain:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['work:workTrain: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"
/>
<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="680px"
append-to-body
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-dialog :title="title" :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="80px">
<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 label="演练主图" prop="mainImage">
<image-upload v-model="form.mainImage" :limit="1" />
</el-form-item>
<el-form-item label="演练类型" prop="dataType">
<el-select
v-model="form.dataType"
filterable
placeholder="请选择演练类型"
style="width: 100%"
>
<el-option
v-for="dict in dict.type.work_train_data_type"
v-show="dict.raw.remark == '1'"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="form.dataType" filterable placeholder="请选择演练类型" style="width: 100%">
<el-option v-for="dict in dict.type.work_train_data_type" v-show="dict.raw.remark == '1'" :key="dict.value"
:label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="演练标题" prop="trainTitle">
<el-input placeholder="请输入演练标题" v-model="form.trainTitle"></el-input>
</el-form-item>
<el-form-item label="参与人数" prop="trainParticipants">
<el-input
v-model="form.trainParticipants"
type="number"
placeholder="请输入参与人数"
>
<el-input v-model="form.trainParticipants" type="number" placeholder="请输入参与人数">
<i slot="suffix"></i>
</el-input>
</el-form-item>
<el-form-item label="演练日期" prop="beginDate">
<el-date-picker
style="width: 100%"
v-model="form.beginDate"
type="date"
placeholder="选择日期时间"
>
<el-date-picker style="width: 100%" v-model="form.beginDate" type="date" placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="演练内容" prop="trainContent">
<el-input
type="textarea"
v-model="form.trainContent"
placeholder="请输入演练内容"
/>
<el-input type="textarea" v-model="form.trainContent" placeholder="请输入演练内容" />
</el-form-item>
<el-form-item label="相关文件" prop="trainFile">
<FileUpload @input="fileInput" :limit="9" v-model="files" />
</el-form-item>
<el-form-item label="协同部门" prop="workTrainDeptList">
<el-select
v-model="form.workTrainDeptList"
multiple
placeholder="请选择协同部门"
style="width: 100%"
>
<el-option
v-for="item in deptOptions"
:key="item.deptId"
:label="item.deptName"
:value="item.deptId"
>
<el-select v-model="form.workTrainDeptList" multiple placeholder="请选择协同部门" style="width: 100%">
<el-option v-for="item in deptOptions" :key="item.deptId" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
@ -408,6 +247,8 @@ export default {
pageNum: 1,
pageSize: 10,
projectName: "",
projectId:null,
trainDeptIds:null,
trainType: 1,
dataType: null,
isDel: null,
@ -437,6 +278,8 @@ export default {
},
previewList: [],
files: [],
projectOptions:[],
depts:[],
};
},
created() {
@ -444,10 +287,41 @@ export default {
this.$api.publics.getZgsDeptList().then((d) => {
this.depts = d?.data || [];
});
this.$api.publics.getMyProjectList({}).then((response) => {
this.projectOptions = response.rows;
});
},
methods: {
setDataType(rowid,val){
updateWorkTrainDataType({id:rowid,dataType:val});
doQuerySub() {
let tmps = this.prjDept2 && this.prjDept2[this.queryParams.projectId] ? this.prjDept2[this.queryParams.projectId] || [] : [];
if (tmps.length > 0) {
this.depts = tmps;
if (tmps.length == 1) {
this.queryParams.trainDeptIds = tmps[0].deptId;
} else {
this.queryParams.trainDeptIds = '';
}
return;
}
this.$api.publics.queryUnitList({
projectId: this.queryParams.projectId,
unitTypes: "2".split(","),
}).then((d) => {
let objs = d.rows || [];
if (!this.prjDept2) {
this.prjDept2 = {};
}
this.prjDept2[this.queryParams.projectId] = objs;
this.depts = objs;
if (objs.length == 1) {
this.queryParams.trainDeptIds = objs[0].deptId;
} else {
this.queryParams.trainDeptIds = '';
}
});
},
setDataType(rowid, val) {
updateWorkTrainDataType({ id: rowid, dataType: val });
},
getImageUrl(url) {
return process.env.VUE_APP_BASE_API + url + ".min.jpg";
@ -522,8 +396,8 @@ export default {
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.daterangeTime=[];
this.daterangeMarksTime=[];
this.daterangeTime = [];
this.daterangeMarksTime = [];
this.handleQuery();
},
//
@ -601,7 +475,7 @@ export default {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
.catch(() => { });
},
/** 演练演练协同部门序号 */
rowWorkTrainDeptIndex({ row, rowIndex }) {

View File

@ -1,97 +1,43 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="项目名称" prop="projectName">
<el-input
v-model="queryParams.projectName"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="项目名称" prop="projectId">
<el-select v-model="queryParams.projectId" filterable placeholder="请选择项目" clearable @change="doQuerySub">
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="总包单位" prop="trainNatureName">
<el-input
v-model="queryParams.trainNatureName"
placeholder="请输入总包单位名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form-item label="总包单位名称" prop="trainDeptIds">
<el-select v-model="queryParams.trainDeptIds" filterable placeholder="请输入总包单位名称" clearable>
<el-option v-for="(item, index) in depts" :key="index" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="培训类型" prop="dataType">
<el-select
v-model="queryParams.dataType"
@keyup.enter.native="handleQuery"
placeholder="请选择培训类型"
clearable
>
<el-option
v-for="dict in dict.type.work_train_data_type"
v-show="dict.raw.remark == '0'"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-select v-model="queryParams.dataType" @keyup.enter.native="handleQuery" placeholder="请选择培训类型" clearable>
<el-option v-for="dict in dict.type.work_train_data_type" v-show="dict.raw.remark == '0'" :key="dict.value"
:label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="培训标题" prop="trainTitle">
<el-input
v-model="queryParams.trainTitle"
placeholder="请输入培训标题"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.trainTitle" placeholder="请输入培训标题" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item
label="责任主体"
prop="projectDeptId"
v-hasPermi="['project:project:zgs']"
>
<el-select
v-model="queryParams.projectDeptId"
placeholder="请选择责任主体"
clearable
>
<el-option
v-for="dict in depts"
:key="dict.deptId"
:label="dict.deptName"
:value="dict.deptId"
></el-option>
<el-form-item label="责任主体" prop="projectDeptId" v-hasPermi="['project:project:zgs']">
<el-select v-model="queryParams.projectDeptId" placeholder="请选择责任主体" clearable>
<el-option v-for="dict in depts" :key="dict.deptId" :label="dict.deptName" :value="dict.deptId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="培训时间">
<el-date-picker
v-model="daterangeMarksTime"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
<el-date-picker v-model="daterangeMarksTime" 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="上传时间">
<el-date-picker
v-model="daterangeTime"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
<el-date-picker v-model="daterangeTime" 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>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
>搜索</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -142,74 +88,35 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> -->
<el-table
v-loading="loading"
:data="workTrainList"
@selection-change="handleSelectionChange"
stripe
>
<el-table v-loading="loading" :data="workTrainList" @selection-change="handleSelectionChange" stripe>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="项目名称" align="center" prop="projectName" width="200" />
<el-table-column label="培训主图" align="center" prop="mainImage" width="200">
<template slot-scope="scope">
<el-image
ref="preview"
style="width: 50px; height: 50px"
:src="getImageUrl(scope.row.mainImage)"
@click="onPreview(scope.row.mainImage)"
></el-image>
<el-image ref="preview" style="width: 50px; height: 50px" :src="getImageUrl(scope.row.mainImage)"
@click="onPreview(scope.row.mainImage)"></el-image>
</template>
</el-table-column>
<el-table-column label="培训类型" align="center" prop="dataType">
<template slot-scope="scope">
<el-select
v-model="scope.row.dataType"
placeholder="请选择培训类型"
style="width: 100%"
@change="setDataType(scope.row, $event)"
>
<el-option
v-for="dict in dict.type.work_train_data_type"
v-show="dict.raw.remark == '0'"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="scope.row.dataType" placeholder="请选择培训类型" style="width: 100%"
@change="setDataType(scope.row, $event)">
<el-option v-for="dict in dict.type.work_train_data_type" v-show="dict.raw.remark == '0'" :key="dict.value"
:label="dict.label" :value="dict.value"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
label="培训标题"
align="center"
prop="trainTitle"
width="150"
show-overflow-tooltip
/>
<el-table-column label="培训标题" align="center" prop="trainTitle" width="150" show-overflow-tooltip />
<el-table-column label="参与人数" align="center" prop="trainParticipants" />
<el-table-column label="培训时间" align="center" prop="beginDate" width="100">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.beginDate, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column
label="培训内容"
align="center"
prop="trainContent"
width="150"
show-overflow-tooltip
/>
<el-table-column
label="协同部门"
align="center"
prop="trainDeptNames"
width="220"
show-overflow-tooltip
>
<el-table-column label="培训内容" align="center" prop="trainContent" width="150" show-overflow-tooltip />
<el-table-column label="协同部门" align="center" prop="trainDeptNames" width="220" show-overflow-tooltip>
<template slot-scope="scope">
<div
class="div_tag"
v-for="dept in getTrainDeptNames(scope.row.trainDeptNames)"
>
<div class="div_tag" v-for="dept in getTrainDeptNames(scope.row.trainDeptNames)">
<el-tag>{{ dept }}</el-tag>
</div>
</template>
@ -220,122 +127,59 @@
</template>
</el-table-column>
<el-table-column label="提交时间" align="center" prop="createTime" width="100">
<template slot-scope="scope">
<div>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</div>
</template>
</el-table-column>
<template slot-scope="scope">
<div>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</div>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
v-if="scope.row.trainFile"
size="mini"
type="text"
icon="el-icon-paperclip"
@click="handleDownload(scope.row)"
v-hasPermi="['work:emergencyDrill:edit']"
>下载文件</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['work:workTrain:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['work:workTrain:remove']"
>删除</el-button
>
<el-button v-if="scope.row.trainFile" size="mini" type="text" icon="el-icon-paperclip"
@click="handleDownload(scope.row)" v-hasPermi="['work:emergencyDrill:edit']">下载文件</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['work:workTrain:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['work:workTrain: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"
/>
<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="680px"
append-to-body
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-dialog :title="title" :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="80px">
<el-form-item label="培训主图" prop="mainImage">
<image-upload v-model="form.mainImage" :limit="1" />
</el-form-item>
<el-form-item label="培训类型" prop="dataType">
<el-select
v-model="form.dataType"
filterable
placeholder="请选择培训类型"
style="width: 100%"
>
<el-option
v-for="dict in dict.type.work_train_data_type"
v-show="dict.raw.remark == '0'"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="form.dataType" filterable placeholder="请选择培训类型" style="width: 100%">
<el-option v-for="dict in dict.type.work_train_data_type" v-show="dict.raw.remark == '0'" :key="dict.value"
:label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="培训标题" prop="trainTitle">
<el-input placeholder="请输入培训标题" v-model="form.trainTitle"></el-input>
</el-form-item>
<el-form-item label="参与人数" prop="trainParticipants">
<el-input
v-model="form.trainParticipants"
type="number"
placeholder="请输入参与人数"
>
<el-input v-model="form.trainParticipants" type="number" placeholder="请输入参与人数">
<i slot="suffix"></i>
</el-input>
</el-form-item>
<el-form-item label="培训日期" prop="beginDate">
<el-date-picker
style="width: 100%"
v-model="form.beginDate"
type="date"
placeholder="选择日期时间"
>
<el-date-picker style="width: 100%" v-model="form.beginDate" type="date" placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="培训内容" prop="trainContent">
<el-input
type="textarea"
v-model="form.trainContent"
placeholder="请输入培训内容"
/>
<el-input type="textarea" v-model="form.trainContent" placeholder="请输入培训内容" />
</el-form-item>
<el-form-item label="相关文件" prop="trainFile">
<FileUpload @input="fileInput" :limit="9" v-model="files" />
</el-form-item>
<el-form-item label="协同部门" prop="workTrainDeptList">
<el-select
v-model="form.workTrainDeptList"
multiple
placeholder="请选择协同部门"
style="width: 100%"
>
<el-option
v-for="item in deptOptions"
:key="item.deptId"
:label="item.deptName"
:value="item.deptId"
>
<el-select v-model="form.workTrainDeptList" multiple placeholder="请选择协同部门" style="width: 100%">
<el-option v-for="item in deptOptions" :key="item.deptId" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
@ -402,6 +246,8 @@ export default {
pageSize: 10,
projectName: "",
trainType: 0,
trainDeptIds:null,
projectId:null,
dataType: null,
isDel: null,
trainTitle: null,
@ -430,6 +276,8 @@ export default {
},
previewList: [],
files: [],
projectOptions:[],
depts:[],
};
},
created() {
@ -437,10 +285,41 @@ export default {
this.$api.publics.getZgsDeptList().then((d) => {
this.depts = d?.data || [];
});
this.$api.publics.getMyProjectList({}).then((response) => {
this.projectOptions = response.rows;
});
},
methods: {
setDataType(row,val){
updateWorkTrainDataType({id:row.id,dataType:val});
doQuerySub() {
let tmps = this.prjDept2 && this.prjDept2[this.queryParams.projectId] ? this.prjDept2[this.queryParams.projectId] || [] : [];
if (tmps.length > 0) {
this.depts = tmps;
if (tmps.length == 1) {
this.queryParams.trainDeptIds = tmps[0].deptId;
} else {
this.queryParams.trainDeptIds = '';
}
return;
}
this.$api.publics.queryUnitList({
projectId: this.queryParams.projectId,
unitTypes: "2".split(","),
}).then((d) => {
let objs = d.rows || [];
if (!this.prjDept2) {
this.prjDept2 = {};
}
this.prjDept2[this.queryParams.projectId] = objs;
this.depts = objs;
if (objs.length == 1) {
this.queryParams.trainDeptIds = objs[0].deptId;
} else {
this.queryParams.trainDeptIds = '';
}
});
},
setDataType(row, val) {
updateWorkTrainDataType({ id: row.id, dataType: val });
},
getImageUrl(url) {
return process.env.VUE_APP_BASE_API + url + ".min.jpg";
@ -515,8 +394,8 @@ export default {
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.daterangeTime=[];
this.daterangeMarksTime=[];
this.daterangeTime = [];
this.daterangeMarksTime = [];
this.handleQuery();
},
//
@ -594,7 +473,7 @@ export default {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
.catch(() => { });
},
/** 演练培训协同部门序号 */
rowWorkTrainDeptIndex({ row, rowIndex }) {