1471 lines
56 KiB
Vue
1471 lines
56 KiB
Vue
<template>
|
||
<div>
|
||
<div class="app-container">
|
||
<el-page-header :content="$parent.OUTSOURCED_ID ? '编辑' : '新增'" @back="back"/>
|
||
<div class="level-title mt-20">
|
||
<h1>工程信息:</h1>
|
||
</div>
|
||
<el-form ref="form" :model="form" :rules="rules" label-width="180px">
|
||
<div>
|
||
<el-row>
|
||
<el-col :span="8">
|
||
<el-form-item prop="DEPARTMENT_ID" label="股份主管部门:">
|
||
<SelectTree
|
||
ref="MANAGERTree"
|
||
:clearable="false"
|
||
:options="treeDataInspectDept"
|
||
:props="defaultProps"
|
||
v-model="form.MANAGER_DEPARTMENT_ID"
|
||
placeholder="请选择股份主管部门"
|
||
style="width: 100%"
|
||
/>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="8">
|
||
<el-form-item prop="DEPARTMENT_ID" label="股份监管部门:">
|
||
<SelectTree
|
||
ref="deptTree"
|
||
:clearable="false"
|
||
:options="treeDataInspectDept"
|
||
:props="defaultProps"
|
||
v-model="form.DEPARTMENT_ID"
|
||
placeholder="请选择股份监管部门"
|
||
style="width: 100%"
|
||
/>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="8">
|
||
<el-form-item label="辖区单位">
|
||
<Treeselect
|
||
v-if="updateValue"
|
||
:multiple="true"
|
||
:flat="true"
|
||
:default-expand-level="0"
|
||
:options="treeDataAllDept"
|
||
:props="defaultProps"
|
||
:normalizer="normalizer"
|
||
v-model="form.JURISDICTION_UNIT"
|
||
placeholder="请选择部门"
|
||
no-options-text="暂无数据"
|
||
no-children-text="暂无数据"
|
||
style="width: 100%;"
|
||
@select="handleSelect"
|
||
@deselect="handleRemove"
|
||
/>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row>
|
||
<el-col :span="8">
|
||
<el-form-item label="重点工程名称:" prop="OUTSOURCED_NAME">
|
||
<el-input v-model="form.OUTSOURCED_NAME" placeholder="这里输入重点工程名称..." />
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="8">
|
||
<el-form-item label="计划工期起止时间:" prop="STARTTIME">
|
||
<el-date-picker
|
||
v-model="form.STARTTIME_TIMES"
|
||
style="width: 100%;"
|
||
type="daterange"
|
||
unlink-panels
|
||
value-format="yyyy-MM-dd"
|
||
range-separator="至"
|
||
start-placeholder="开始日期"
|
||
end-placeholder="结束日期"/>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="8">
|
||
<el-form-item label="合同号:" prop="CONTRACT_NUM">
|
||
<el-input v-model="form.CONTRACT_NUM" placeholder="这里输入合同号" />
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row>
|
||
<el-col :span="8">
|
||
<el-form-item label="施工相关方:" prop="UNITS_ID">
|
||
<el-select v-model="form.UNITS_ID" filterable placeholder="请选择施工相关方" style="width: 100%;" @change="getUnitUser">
|
||
<el-option
|
||
v-for="item in unitsList"
|
||
:key="item.UNITS_ID"
|
||
:label="item.UNITS_NAME"
|
||
:value="item.UNITS_ID" />
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
<el-col :span="8">
|
||
<el-form-item label="相关方单位工程负责人:" prop="UNITS_PIC">
|
||
<!-- <el-input v-model="form.UNITS_PIC" placeholder="这里输入相关方单位本工程负责人" />-->
|
||
<el-select v-model="form.UNITS_PIC" placeholder="请选择监理单位" style="width: 100%;" @change="selectUnitsUser($event)">
|
||
<el-option v-for="item in unitsUserList" :key="item.PERSONNELMANAGEMENT_ID" :label="item.NAME" :value="item.PERSONNELMANAGEMENT_ID" />
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="8">
|
||
<el-form-item label="相关方单位负责人手机:" prop="UNITS_PHONE">
|
||
<el-input v-model="form.UNITS_PHONE" disabled placeholder="这里输入相关方单位本工程负责人手机" />
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row>
|
||
|
||
<el-col :span="8">
|
||
<el-form-item label="监理单位名称:" prop="MANAGE_NAME">
|
||
<el-select v-model="form.MANAGE_NAME" multiple placeholder="请选择监理单位" style="width: 100%;" @change="selectDeptOption">
|
||
<el-option v-for="item in mangeList" :key="item.CORPINFO_ID" :label="item.CORP_NAME" :value="item.CORPINFO_ID" />
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
<!-- <el-row>-->
|
||
<!-- <el-col :span="8">-->
|
||
<!-- <el-form-item label="相关方单位资质(附件)" prop="UNITS_APTITUDEPATH">-->
|
||
<!-- <div class="uo-flex">-->
|
||
<!-- <el-input v-model="form.UNITS_APTITUDE" :disabled="true" title="请上传附件" />-->
|
||
<!-- <el-upload :before-upload="beforeFileUpload" accept=".pdf" class="avatar-uploader" action="#">-->
|
||
<!-- <el-button type="primary" icon="el-icon-upload" style="margin-left:10px; " plain>上传附件</el-button>-->
|
||
<!-- </el-upload>-->
|
||
<!-- </div>-->
|
||
<!-- </el-form-item>-->
|
||
<!-- </el-col>-->
|
||
<!-- <el-col :span="8">-->
|
||
|
||
<!-- <el-form-item label="监理单位资质(附件)" prop="MANAGE_APTITUDEPATH">-->
|
||
<!-- <div class="uo-flex">-->
|
||
<!-- <el-input v-model="form.MANAGE_APTITUDE" :disabled="true" title="请上传附件" />-->
|
||
<!-- <el-upload :before-upload="beforeFileUpload2" accept=".pdf" class="avatar-uploader" action="#">-->
|
||
<!-- <el-button type="primary" icon="el-icon-upload" style="margin-left:10px; " plain>上传附件</el-button>-->
|
||
<!-- </el-upload>-->
|
||
<!-- </div>-->
|
||
<!-- </el-form-item>-->
|
||
<!-- </el-col>-->
|
||
<!-- <el-col :span="8">-->
|
||
|
||
<!-- <el-form-item label="安全技术措施(附件)" prop="MEASURESPATH">-->
|
||
<!-- <div class="uo-flex">-->
|
||
<!-- <el-input v-model="form.MEASURES" :disabled="true" title="请上传附件" />-->
|
||
<!-- <el-upload :before-upload="beforeFileUpload1" accept=".pdf" class="avatar-uploader" action="#">-->
|
||
<!-- <el-button type="primary" icon="el-icon-upload" style="margin-left:10px; " plain>上传附件</el-button>-->
|
||
<!-- </el-upload>-->
|
||
<!-- </div>-->
|
||
<!-- </el-form-item>-->
|
||
<!-- </el-col>-->
|
||
<!-- </el-row>-->
|
||
|
||
<el-col :span="8">
|
||
<el-form-item label="监理单位工程负责人:">
|
||
<el-input v-model="form.MANAGE_PIC" placeholder="这里输入监理单位工程负责人姓名" />
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="8">
|
||
<el-form-item label="监理单位负责人手机:" prop="MANAGE_PHONE">
|
||
<el-input v-model="form.MANAGE_PHONE" placeholder="这里输入监理单位工程负责人手机" />
|
||
</el-form-item>
|
||
</el-col>
|
||
<!--<el-col :span="8">
|
||
<el-form-item label="申请人:" prop="APPLICANT">
|
||
<el-input v-model="form.APPLICANT" placeholder="这里输入申请人" />
|
||
</el-form-item>
|
||
</el-col>-->
|
||
|
||
<!-- <el-col :span="8">-->
|
||
<!-- <el-form-item label="备注:" prop="REMARKS">-->
|
||
<!-- <el-input v-model="form.REMARKS" placeholder="这里输入备注" />-->
|
||
<!-- </el-form-item>-->
|
||
<!-- </el-col>-->
|
||
<!-- <el-col :span="8">-->
|
||
<!-- <el-form-item label="相关方组织设计(附件)" prop="DESIGEPATH">-->
|
||
<!-- <div class="uo-flex">-->
|
||
<!-- <el-input v-model="form.DESIGE" :disabled="true" title="请上传附件" />-->
|
||
<!-- <el-upload :before-upload="beforeFileUpload3" accept=".pdf" class="avatar-uploader" action="#">-->
|
||
<!-- <el-button type="primary" icon="el-icon-upload" style="margin-left:10px; " plain>上传附件</el-button>-->
|
||
<!-- </el-upload>-->
|
||
<!-- </div>-->
|
||
<!-- </el-form-item>-->
|
||
<!-- </el-col>-->
|
||
<!-- </el-row>-->
|
||
</el-row>
|
||
<el-row>
|
||
<el-col :span="8">
|
||
<el-form-item label="集团单位:" prop="GROUP_UNIT">
|
||
<!-- <el-date-picker v-model="form.STARTTIME" style="width: 100%;" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择开始日期" clearable class="filter-item"/>-->
|
||
<el-select v-model="form.GROUP_UNIT" multiple placeholder="请选择集团单位" style="width: 100%;">
|
||
<el-option v-for="item in groupCorpList" :key="item.CORPINFO_ID" :label="item.CORP_NAME" :value="item.CORPINFO_ID" />
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row>
|
||
<el-col :span="8">
|
||
<el-form-item label="状态:" prop="STATE">
|
||
<el-select v-model="form.STATE" disabled style="width: 100%;">
|
||
<el-option v-for="item in stateList" :key="item.ID" :label="item.NAME" :value="item.ID" />
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row>
|
||
<el-col :span="8">
|
||
<el-form-item label="是否发送短信:">
|
||
<el-select v-model="form.IS_SMS" style="width: 100%;">
|
||
<el-option v-for="item in smsList" :key="item.ID" :label="item.NAME" :value="item.ID" />
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row>
|
||
<el-col :span="8">
|
||
<el-form-item label="安全管理协议(附件)" prop="AQGLXY" class="is-required">
|
||
<div class="uo-flex">
|
||
<el-upload
|
||
ref="uploadfile9"
|
||
:file-list="file9"
|
||
:on-change="beforeFileUpload9"
|
||
:on-exceed="handleUpload9Exceed"
|
||
:before-remove="beforeBeforeRemove9"
|
||
:on-remove="beforeRemove9"
|
||
:auto-upload="false"
|
||
:limit="9"
|
||
accept=".pdf,.jpg,.jpeg,.png"
|
||
class="avatar-uploader"
|
||
action="#">
|
||
<el-button type="primary" icon="el-icon-upload" style="margin-left:10px; " plain>上传附件</el-button>
|
||
<div slot="tip" class="el-upload__tip">只能上传pdf,jpg,jpeg,png类型文件,且最多上传9个附件</div>
|
||
</el-upload>
|
||
</div>
|
||
</el-form-item>
|
||
</el-col>
|
||
<!-- <el-col :span="8">-->
|
||
|
||
<!-- <el-form-item label="附件" prop="ATTACHMENTSPATH">-->
|
||
<!-- <div class="uo-flex">-->
|
||
<!-- <el-input v-model="form.ATTACHMENTS" :disabled="true" title="请上传附件" />-->
|
||
<!-- <el-upload :before-upload="beforeFileUpload4" accept=".pdf" class="avatar-uploader" action="#">-->
|
||
<!-- <el-button type="primary" icon="el-icon-upload" style="margin-left:10px; " plain>上传附件</el-button>-->
|
||
<!-- </el-upload>-->
|
||
<!-- </div>-->
|
||
<!-- </el-form-item>-->
|
||
<!-- </el-col>-->
|
||
|
||
</el-row>
|
||
|
||
</div>
|
||
|
||
<!-- <div class="level-line" />-->
|
||
<!-- <div class="level-title">-->
|
||
<!-- <h1>安全培训:</h1>-->
|
||
<!-- </div>-->
|
||
|
||
<!-- <div>-->
|
||
<!-- <el-row>-->
|
||
<!-- <el-col :span="8">-->
|
||
<!-- <el-form-item label="培训管理单位:" prop="TRAINING_NAME">-->
|
||
<!-- <el-input v-model="form.TRAINING_NAME" placeholder="这里输入培训管理单位" />-->
|
||
<!-- </el-form-item>-->
|
||
<!-- </el-col>-->
|
||
<!-- <el-col :span="8">-->
|
||
<!-- <el-form-item label="培训时间:" prop="TRAINING_TIME">-->
|
||
<!-- <!– <el-date-picker v-model="form.TRAINING_TIME" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择培训日期" clearable class="filter-item"/>–>-->
|
||
<!-- <el-date-picker-->
|
||
<!-- v-model="form.TRAINING_TIME"-->
|
||
<!-- style="width: 100%;"-->
|
||
<!-- type="daterange"-->
|
||
<!-- unlink-panels-->
|
||
<!-- value-format="yyyy-MM-dd"-->
|
||
<!-- range-separator="至"-->
|
||
<!-- start-placeholder="开始日期"-->
|
||
<!-- end-placeholder="结束日期"-->
|
||
<!-- format="yyyy-MM-dd"-->
|
||
<!-- class="filter-item" />-->
|
||
<!-- </el-form-item>-->
|
||
<!-- </el-col>-->
|
||
<!-- <el-col :span="8">-->
|
||
<!-- <el-form-item label="培训管理负责人:" prop="TRAINING_PIC">-->
|
||
<!-- <el-input v-model="form.TRAINING_PIC" placeholder="这里输入培训管理负责人" />-->
|
||
<!-- </el-form-item>-->
|
||
<!-- </el-col>-->
|
||
<!-- </el-row>-->
|
||
<!-- <el-row>-->
|
||
<!-- <el-col :span="8">-->
|
||
|
||
<!-- <el-form-item label="安全培训记录(附件)" prop="RECORDSPATH">-->
|
||
<!-- <div class="uo-flex">-->
|
||
<!-- <el-input v-model="form.RECORDS" :disabled="true" title="请上传附件" />-->
|
||
<!-- <el-upload :before-upload="beforeFileUpload5" accept=".pdf" class="avatar-uploader" action="#">-->
|
||
<!-- <el-button type="primary" icon="el-icon-upload" style="margin-left:10px; " plain>上传附件</el-button>-->
|
||
<!-- </el-upload>-->
|
||
<!-- </div>-->
|
||
<!-- </el-form-item>-->
|
||
<!-- </el-col>-->
|
||
<!-- <el-col :span="8">-->
|
||
|
||
<!-- <el-form-item label="培训签名表(附件)" prop="SHEETPATH">-->
|
||
<!-- <div class="uo-flex">-->
|
||
<!-- <el-input v-model="form.SHEET" :disabled="true" title="请上传附件" />-->
|
||
<!-- <el-upload :before-upload="beforeFileUpload6" accept=".pdf" class="avatar-uploader" action="#">-->
|
||
<!-- <el-button type="primary" icon="el-icon-upload" style="margin-left:10px; " plain>上传附件</el-button>-->
|
||
<!-- </el-upload>-->
|
||
<!-- </div>-->
|
||
<!-- </el-form-item>-->
|
||
<!-- </el-col>-->
|
||
<!-- -->
|
||
<!-- </el-row>-->
|
||
<!-- <el-row>-->
|
||
<!-- <el-col :span="8">-->
|
||
|
||
<!-- <el-form-item label="重点工程考试题(附件)" prop="EXAMINATIONPATH">-->
|
||
<!-- <div class="uo-flex">-->
|
||
<!-- <el-input v-model="form.EXAMINATION" :disabled="true" title="请上传附件" />-->
|
||
<!-- <el-upload :before-upload="beforeFileUpload7" accept=".pdf" class="avatar-uploader" action="#">-->
|
||
<!-- <el-button type="primary" icon="el-icon-upload" style="margin-left:10px; " plain>上传附件</el-button>-->
|
||
<!-- </el-upload>-->
|
||
<!-- </div>-->
|
||
<!-- </el-form-item>-->
|
||
<!-- </el-col>-->
|
||
<!-- <el-col :span="8">-->
|
||
|
||
<!-- <el-form-item label="其他附件" prop="OATTACHMENTSPATH">-->
|
||
<!-- <div class="uo-flex">-->
|
||
<!-- <el-input v-model="form.OATTACHMENTS" :disabled="true" title="请上传附件" />-->
|
||
<!-- <el-upload :before-upload="beforeFileUpload8" accept=".pdf" class="avatar-uploader" action="#">-->
|
||
<!-- <el-button type="primary" icon="el-icon-upload" style="margin-left:10px; " plain>上传附件</el-button>-->
|
||
<!-- </el-upload>-->
|
||
<!-- </div>-->
|
||
<!-- </el-form-item>-->
|
||
<!-- </el-col>-->
|
||
<!-- </el-row>-->
|
||
<!-- <el-row/>-->
|
||
<!-- </div>-->
|
||
|
||
<div class="level-line" />
|
||
<div class="level-title">
|
||
<h1>处罚相关:</h1>
|
||
</div>
|
||
<el-divider content-position="left">处罚人员 <el-button type="primary" size="mini" @click="addInspector">添加</el-button></el-divider>
|
||
<el-form-item v-for="(item,index) in inspectorList" :key="index + (Math.random() + '').replace('.', '')" :label="(index+1)+'.'" class="is-required">
|
||
<div class="uo-flex">
|
||
<el-row :gutter="20">
|
||
<el-col :span="12">
|
||
<el-form-item label="处罚人员部门" prop="INSPECTION_DEPARTMENT_ID" label-width="100px">
|
||
<SelectTree
|
||
:ref="'deptTree_INSPECTION'+index"
|
||
:clearable="false"
|
||
:options="treeDeptOptions"
|
||
:props="defaultProps"
|
||
v-model="item.INSPECTION_DEPARTMENT_ID"
|
||
placeholder="请选择处罚人员部门"
|
||
style="width: 300px"
|
||
@change="updateInspecteDept(item.INSPECTION_DEPARTMENT_ID,index)"/>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="11">
|
||
<el-form-item label="处罚人员" prop="INSPECTION_USER_ID" label-width="100px">
|
||
<el-select
|
||
v-model="item.INSPECTION_USER_ID"
|
||
clearable
|
||
placeholder="请选择处罚人员"
|
||
>
|
||
<el-option
|
||
v-for="data in INSPECTOR_List[index]"
|
||
:key="data.USER_ID"
|
||
:label="data.NAME"
|
||
:value="data.USER_ID"
|
||
@click.native="changeHiddenUserList(item, data, index)" />
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="1">
|
||
<el-button plain size="mini" type="danger" icon="el-icon-delete" title="移除" @click="delInspectorRow(item,index)"/>
|
||
</el-col>
|
||
</el-row>
|
||
</div>
|
||
</el-form-item>
|
||
<!-- <div>-->
|
||
<!-- <el-form-item v-for="(item,index) in inspectorList" :key="index + (Math.random() + '').replace('.', '')" :label="(index+1)+'.'">-->
|
||
<!-- <div class="uo-flex">-->
|
||
<!-- <el-row :gutter="20">-->
|
||
<!-- <el-col :span="12">-->
|
||
<!-- <el-form-item label="处罚人部门" prop="INSPECTION_DEPARTMENT_ID" label-width="80px">-->
|
||
<!-- <SelectTree-->
|
||
<!-- ref="'deptTree_INSPECTION'+index"-->
|
||
<!-- :clearable="false"-->
|
||
<!-- :options="treeDeptOptions"-->
|
||
<!-- :props="defaultProps"-->
|
||
<!-- v-model="item.INSPECTION_DEPARTMENT_ID"-->
|
||
<!-- placeholder="请选择处罚人部门"-->
|
||
<!-- style="width: 300px"-->
|
||
<!-- @change="selectUserOptionByDept(item.INSPECTION_DEPARTMENT_ID,index)"/>-->
|
||
<!-- </el-form-item>-->
|
||
<!-- </el-col>-->
|
||
<!-- <el-col :span="11">-->
|
||
<!-- <el-form-item label="处罚人" prop="INSPECTION_USER_ID" label-width="80px">-->
|
||
<!-- <el-select v-model="selectUsers" multiple placeholder="请选择处罚人">-->
|
||
<!-- <el-option-->
|
||
<!-- v-for="data in punishThePersonOptions"-->
|
||
<!-- :key="data.USER_ID"-->
|
||
<!-- :label="data.NAME"-->
|
||
<!-- :value="data.USER_ID"-->
|
||
<!-- @click.native="addUserList(item, data)" />-->
|
||
<!-- </el-select>-->
|
||
<!-- </el-form-item>-->
|
||
<!-- </el-col>-->
|
||
<!-- </el-row>-->
|
||
<!-- </div>-->
|
||
<!-- <el-col :span="21">-->
|
||
<!-- <el-form-item label="已选用户" prop="INSPECTION_USER_ID" label-width="80px"/>-->
|
||
<!-- <el-col v-for="(user,index) in chooseUserList" :key="index" style="width: 150px;">-->
|
||
<!-- <el-input v-model="user.NAME" disabled/>-->
|
||
<!-- <el-button @click="delUserList(user,index)">删除</el-button>-->
|
||
<!-- </el-col>-->
|
||
<!-- </el-col>-->
|
||
<!-- </el-form-item>-->
|
||
<!-- </div>-->
|
||
<div style="height: 200px"/>
|
||
</el-form>
|
||
<!-- <div class="ui-height" />-->
|
||
<div class="ui-foot">
|
||
<el-button icon="el-icon-check" type="primary" @click="confirm">保 存</el-button>
|
||
<el-button icon="el-icon-arrow-left" @click="back">返 回</el-button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包
|
||
import { upload } from '@/utils/upload'
|
||
import { requestFN } from '@/utils/request'
|
||
import waves from '@/directive/waves' // waves directive
|
||
import SelectTree from '@/components/SelectTree'
|
||
// eslint-disable-next-line no-unused-vars
|
||
import formatDate from '@/utils/dateformat'
|
||
import Treeselect from '@riophae/vue-treeselect'
|
||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||
|
||
export default {
|
||
components: { Treeselect, Pagination, SelectTree },
|
||
directives: { waves },
|
||
data() {
|
||
return {
|
||
updateValue: true,
|
||
selectUsers: [], // 防止报错,参数无用
|
||
chooseUserList: [],
|
||
punishThePerson: [],
|
||
punishThePersonOptions: [],
|
||
treeDeptOptions: [],
|
||
inspectorList: [{ INSPECTION_DEPARTMENT_ID: '', INSPECTION_USER_ID: '', USER_SIDE: '' }], // 检查人员
|
||
INSPECTOR_List: [],
|
||
listLoading: true,
|
||
add: false,
|
||
del: false,
|
||
edit: false,
|
||
listQuery: {
|
||
page: 1,
|
||
limit: 20
|
||
},
|
||
total: 0,
|
||
KEYWORDS: '',
|
||
CONTRACTTIME: [], // 区间条件
|
||
CONTRACT_STIME: '',
|
||
CONTRACT_ETIME: '',
|
||
TRAINING_TIME: [], // 区间条件
|
||
TRAINING_STIME: '',
|
||
TRAINING_ETIME: '',
|
||
DEPARTMENT_ID: '',
|
||
treeDataInspectDept: [],
|
||
treeDataAllDept: [],
|
||
defaultProps: {
|
||
value: 'id',
|
||
children: 'nodes',
|
||
label: 'name'
|
||
},
|
||
userList: [],
|
||
corpList: [],
|
||
groupCorpList: [],
|
||
mangeList: [],
|
||
unitsList: [],
|
||
STATE: '',
|
||
varList: [],
|
||
pd: [],
|
||
file9: [],
|
||
form: {
|
||
DEPARTMENT_ID: '', // 发包部门
|
||
CONTRACT_PIC: '', // 发包部门负责人
|
||
OUTSOURCED_NAME: '', // 重点工程名称
|
||
STARTTIME: '', // 计划工期开始时间
|
||
ENDTIME: '', // 计划工期结束时间
|
||
CONTRACTTIME: [], // 区间条件
|
||
TRAINING_TIME: [], // 区间条件
|
||
CONTRACT_STIME: '', // 合同起止时间
|
||
CONTRACT_ETIME: '', // 合同起止时间
|
||
UNITS_ID: '', // 相关方单位名称
|
||
CONTRACT_NUM: '', // 合同号
|
||
UNITS_APTITUDE: '', // 相关方单位资质
|
||
UNITS_APTITUDEPATH: '',
|
||
UNITS_PIC: '', // 相关方单位本项目负责人
|
||
UNITS_PHONE: '', // 相关方单位本项目负责人手机
|
||
MANAGE_NAME: '', // 监理单位名称
|
||
MANAGE_APTITUDE: '', // 监理单位资质
|
||
MANAGE_APTITUDEPATH: '',
|
||
MANAGE_PIC: '', // 监理单位本项目负责人姓名
|
||
DESIGE: '', // 相关方组织设计
|
||
DESIGEPATH: '', // 相关方组织设计
|
||
MANAGE_PHONE: '', // 监理单位本项目负责人手机
|
||
MEASURES: '', // 安全技术措施
|
||
MEASURESPATH: '', // 安全技术措施
|
||
ATTACHMENTS: '', // 附件
|
||
ATTACHMENTSPATH: '', // 附件
|
||
REMARKS: '', // 备注
|
||
TRAINING_NAME: '', // 培训管理单位
|
||
TRAINING_PIC: '', // 培训管理负责人
|
||
TRAINING_STIME: '', // 培训时间
|
||
TRAINING_ETIME: '', // 培训时间
|
||
RECORDS: '', // 安全培训记录
|
||
RECORDSPATH: '', // 安全培训记录
|
||
SHEET: '', // 培训签名表
|
||
AQGLXY: '', // 安全管理协议
|
||
SHEETPATH: '', // 培训签名表
|
||
EXAMINATION: '', // 重点工程考试题
|
||
EXAMINATIONPATH: '', // 重点工程考试题
|
||
OATTACHMENTS: '', // 其他附件
|
||
OATTACHMENTSPATH: '', // 其他附件
|
||
file: '', // 相关附件
|
||
APPLICANT: '', // 申请人
|
||
PUNISH_THE_PERSON: '', // 处罚人
|
||
INVOLVING_CORPS: [], // 辖区单位
|
||
JURISDICTION_UNIT: [], // 辖区单位 实际使用
|
||
STATE: '', // 状态
|
||
GROUP_UNIT: [], // 集团单位
|
||
MANAGER_DEPARTMENT_ID: '', // 股份主管部门
|
||
IS_SMS: '1' // 是否发送短信
|
||
},
|
||
multipleSelectionAll: [], // 所有选中的数据包含跨页数据
|
||
multipleSelection: [], // 当前页选中的数据
|
||
dialogFormEdit: false,
|
||
dialogType: 'add',
|
||
rules: {
|
||
DEPARTMENT_ID: [{ required: true, message: '股份监管部门不能为空', trigger: 'blur' }],
|
||
CONTRACT_PIC: [{ required: true, message: '股份监管部门负责人不能为空', trigger: 'blur' }],
|
||
OUTSOURCED_NAME: [{ required: true, message: '重点工程名称不能为空', trigger: 'blur' }],
|
||
UNITS_ID: [{ required: true, message: '施工相关方名称 不能为空', trigger: 'blur' }],
|
||
UNITS_PIC: [{ required: true, message: '相关方单位工程负责人不能为空', trigger: 'blur' }],
|
||
MANAGE_PIC: [{ required: true, message: '监理单位工程负责人不能为空', trigger: 'blur' }],
|
||
UNITS_PHONE: [
|
||
{ required: true, message: '相关方单位工程负责人手机不能为空', trigger: 'change' },
|
||
{ min: 11, max: 11, message: '请输入11位手机号码', trigger: 'blur' },
|
||
{
|
||
pattern: /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/,
|
||
message: '请输入正确的手机号码'
|
||
}
|
||
],
|
||
MANAGE_PHONE: [
|
||
// { required: true, message: '监理单位本项目负责人手机不能为空', trigger: 'change' },
|
||
{ min: 11, max: 11, message: '请输入11位手机号码', trigger: 'blur' },
|
||
{
|
||
pattern: /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/,
|
||
message: '请输入正确的手机号码'
|
||
}
|
||
],
|
||
STATE: [{ required: true, message: '状态不能为空', trigger: 'blur' }]
|
||
},
|
||
smsList: [
|
||
{ ID: '0', NAME: '是' },
|
||
{ ID: '1', NAME: '否' }
|
||
],
|
||
stateList: [
|
||
// { ID: '0', NAME: '未申请' },
|
||
// { ID: '1', NAME: '申请中' },
|
||
// { ID: '2', NAME: '已完成' }
|
||
{ ID: '0', NAME: '未开工' },
|
||
{ ID: '1', NAME: '进行中' },
|
||
{ ID: '2', NAME: '已结束' },
|
||
{ ID: '-1', NAME: '开工申请中' },
|
||
{ ID: '-2', NAME: '结束申请中' }
|
||
],
|
||
unitsUserList: [],
|
||
normalizer(node) {
|
||
return {
|
||
id: node.id,
|
||
label: node.name,
|
||
children: node.nodes,
|
||
isDisabled: node.pId === '0'
|
||
}
|
||
}
|
||
}
|
||
},
|
||
watch: {
|
||
CONTRACTTIME: function(newData, oldData) {
|
||
if (!newData) {
|
||
this.CONTRACTTIME = ['', '']
|
||
this.getQuery()
|
||
}
|
||
},
|
||
'form.DEPARTMENT_ID': {
|
||
handler(newVal, oldVal) {
|
||
if (this.dialogType == 'add' || (oldVal != null && oldVal != '')) { // 编辑初始化时,不监听
|
||
this.form.CONTRACT_PIC = ''
|
||
this.userList = []
|
||
}
|
||
if (newVal != null && newVal != '') {
|
||
this.getInspectorList(newVal)
|
||
}
|
||
},
|
||
immediate: false
|
||
|
||
},
|
||
//'form.ENDTIME': {
|
||
// handler: function() {
|
||
// // eslint-disable-next-line no-unused-vars
|
||
// var time = formatDate(new Date(), 'YYYY-MM-DD')
|
||
// if (this.form.ENDTIME > time) {
|
||
// this.form.STATE = '1'
|
||
// } else {
|
||
// this.form.STATE = '2'
|
||
// }
|
||
// }
|
||
//},
|
||
TRAINING_TIME: function(newData, oldData) {
|
||
if (!newData) {
|
||
this.TRAINING_TIME = ['', '']
|
||
this.getQuery()
|
||
}
|
||
}
|
||
},
|
||
async created() {
|
||
this.getUnitsList()
|
||
this.getCorpList()
|
||
this.getmangeList()
|
||
this.selectDeptOption()
|
||
await this.getDict()
|
||
await this.getistTreeCorpDept()
|
||
if (this.$parent.OUTSOURCED_ID) {
|
||
this.dialogType = 'edit'
|
||
this.form.OUTSOURCED_ID = this.$parent.OUTSOURCED_ID
|
||
this.getData()
|
||
} else {
|
||
this.form.STATE = '0'
|
||
}
|
||
},
|
||
methods: {
|
||
handleTreeSelected(checkedIds, checkedData) {
|
||
this.DEPTIDS = checkedIds.join(',')
|
||
},
|
||
getRowKey(row) {
|
||
return row.OUTSOURCED_ID
|
||
},
|
||
// 获取人员列表
|
||
getInspectorList(DEPARTMENT_ID) {
|
||
if (DEPARTMENT_ID) {
|
||
requestFN(
|
||
'/user/listAllManageAndCorp',
|
||
{
|
||
DEPARTMENT_ID: DEPARTMENT_ID,
|
||
NOMAIN: '1'
|
||
}
|
||
).then((data) => {
|
||
this.userList = data.userList
|
||
}).catch((e) => {
|
||
})
|
||
}
|
||
},
|
||
// 返回列表
|
||
back() {
|
||
this.$confirm('确定要退出吗?', {
|
||
confirmButtonText: '确定',
|
||
cancelButtonText: '取消',
|
||
type: 'warning'
|
||
}).then(() => {
|
||
this.$parent.activeName = 'List'
|
||
this.$parent.OUTSOURCED_ID = ''
|
||
}).catch(() => {
|
||
})
|
||
},
|
||
getUnitsList() {
|
||
requestFN(
|
||
'/units/listAll'
|
||
).then((data) => {
|
||
this.unitsList = data.varList
|
||
}).catch((e) => {
|
||
})
|
||
},
|
||
getmangeList() {
|
||
requestFN(
|
||
'/corpinfo/listAll',
|
||
{}
|
||
).then((data) => {
|
||
this.mangeList = data.varList
|
||
for (let i = 0; i < data.varList.length; i++) {
|
||
const corpId = data.varList[i].CORPINFO_ID
|
||
if (corpId === '1e6dbbe16004402f8d2c0e52afd9a676' ||
|
||
corpId === '3a854eefa7894e06aaa1a2611bca80f6' ||
|
||
corpId === '020578a4c1f04bc692ee25145c2efbe5' || corpId === '90966974de3c4b83aca6f8fd6432d5c2') {
|
||
this.groupCorpList.push(data.varList[i])
|
||
}
|
||
}
|
||
}).catch((e) => {
|
||
})
|
||
},
|
||
getCorpList() {
|
||
requestFN(
|
||
'/corpinfo/listAll',
|
||
{}
|
||
).then((data) => {
|
||
this.corpList = data.varList
|
||
if (!this.$parent.OUTSOURCED_ID) {
|
||
this.form.MANAGE_NAME = ['133a982a3e93464a9b1de25fe6dd4948']
|
||
}
|
||
// for (let i = 0; i < data.varList.length; i++) {
|
||
// const corpId = data.varList[i].CORPINFO_ID
|
||
// if (corpId === '1e6dbbe16004402f8d2c0e52afd9a676' ||
|
||
// corpId === '3a854eefa7894e06aaa1a2611bca80f6' || corpId === '020578a4c1f04bc692ee25145c2efbe5' || corpId === '') {
|
||
// this.groupCorpList.push(data.varList[i])
|
||
// }
|
||
// }
|
||
}).catch((e) => {
|
||
})
|
||
},
|
||
// 修改
|
||
handleEdit(ID) {
|
||
this.getDict()
|
||
this.dialogType = 'edit'
|
||
requestFN(
|
||
'/outsourced/goEdit',
|
||
{
|
||
OUTSOURCED_ID: ID
|
||
}
|
||
).then((data) => {
|
||
this.form = Object.assign({}, data.pd) // copy obj
|
||
}).catch((e) => {
|
||
this.listLoading = false
|
||
})
|
||
this.dialogFormEdit = true
|
||
},
|
||
|
||
// 编辑初始化
|
||
getData() {
|
||
requestFN(
|
||
'/outsourced/goEdit',
|
||
{
|
||
OUTSOURCED_ID: this.form.OUTSOURCED_ID
|
||
}
|
||
).then(async(data) => {
|
||
var pd = data.pd
|
||
if (pd.JURISDICTION_UNIT) {
|
||
pd.JURISDICTION_UNIT = pd.JURISDICTION_UNIT.split(',')
|
||
}
|
||
if (pd.MANAGE_NAME) {
|
||
pd.MANAGE_NAME = pd.MANAGE_NAME.split(',')
|
||
}
|
||
if (pd.GROUP_UNIT) {
|
||
pd.GROUP_UNIT = pd.GROUP_UNIT.split(',')
|
||
}
|
||
pd.STARTTIME_TIMES = []
|
||
if (pd.STARTTIME && pd.ENDTIME) {
|
||
pd.STARTTIME_TIMES.push(pd.STARTTIME)
|
||
pd.STARTTIME_TIMES.push(pd.ENDTIME)
|
||
}
|
||
this.form = Object.assign({}, pd) // copy obj
|
||
this.getUnitUser(this.form.UNITS_ID, true)
|
||
const node = {}
|
||
node.id = this.form.DEPARTMENT_ID
|
||
this.$refs.deptTree.clearHandle()
|
||
this.$nextTick(() => { // 此处使用这个可以等节点渲染后再获取节点
|
||
this.$refs.deptTree.handleNodeClick(node)
|
||
})
|
||
const nodeMANAGER = {}
|
||
nodeMANAGER.id = this.form.MANAGER_DEPARTMENT_ID
|
||
this.$refs.MANAGERTree.clearHandle()
|
||
this.$nextTick(() => { // 此处使用这个可以等节点渲染后再获取节点
|
||
this.$refs.MANAGERTree.handleNodeClick(nodeMANAGER)
|
||
})
|
||
this.$set(this.form, 'CONTRACTTIME', Object.assign([], [this.form.CONTRACT_STIME, this.form.CONTRACT_ETIME]))
|
||
this.$set(this.form, 'TRAINING_TIME', Object.assign([], [this.form.TRAINING_STIME, this.form.TRAINING_ETIME]))
|
||
const punishThePerson = data.punishThePerson
|
||
for (let i = 0; i < data.file9.length; i++) {
|
||
data.file9[i].name = data.file9[i].FILE_NAME
|
||
}
|
||
this.file9 = data.file9
|
||
await this.selectDeptOption()
|
||
if (punishThePerson) {
|
||
this.inspectorList = []
|
||
let i = 0
|
||
punishThePerson.forEach(item => {
|
||
this.selectUserOptionByDept(item.DEPARTMENT_ID, i)
|
||
i++
|
||
var name = {
|
||
INSPECTION_DEPARTMENT_ID: item.DEPARTMENT_ID,
|
||
INSPECTION_USER_ID: item.USER_ID,
|
||
USER_SIDE: ''
|
||
}
|
||
this.inspectorList.push(name)
|
||
})
|
||
}
|
||
// this.chooseUserList = JSON.parse(data.pd.PUNISH_THE_PERSON)
|
||
}).catch((e) => {
|
||
|
||
})
|
||
},
|
||
|
||
// 保存
|
||
confirm() {
|
||
for (let i = 0; i < this.inspectorList.length; i++) {
|
||
if (this.inspectorList[i].INSPECTION_USER_ID == '') {
|
||
this.$message.warning('第' + (i + 1) + '行必须添加处罚人')
|
||
return
|
||
}
|
||
}
|
||
if (this.form.CONTRACTTIME && this.form.CONTRACTTIME.length > 0) {
|
||
this.form.CONTRACT_STIME = this.form.CONTRACTTIME[0]
|
||
this.form.CONTRACT_ETIME = this.form.CONTRACTTIME[1]
|
||
}
|
||
if (this.form.TRAINING_TIME && this.form.TRAINING_TIME.length > 0) {
|
||
this.form.TRAINING_STIME = this.form.TRAINING_TIME[0]
|
||
this.form.TRAINING_ETIME = this.form.TRAINING_TIME[1]
|
||
}
|
||
if (this.file9.length == 0) {
|
||
this.$message({
|
||
message: '请上传安全管理协议(附件)',
|
||
type: 'error'
|
||
})
|
||
return false
|
||
}
|
||
if (this.form.STARTTIME_TIMES && this.form.STARTTIME_TIMES.length > 0) {
|
||
this.form.STARTTIME = this.form.STARTTIME_TIMES[0]
|
||
this.form.ENDTIME = this.form.STARTTIME_TIMES[1]
|
||
}
|
||
this.$refs.form.validate(valid => {
|
||
if (valid) {
|
||
if (this.form.JURISDICTION_UNIT) {
|
||
this.form.JURISDICTION_UNIT = this.form.JURISDICTION_UNIT.toString().split(',')
|
||
}
|
||
if (this.form.MANAGE_NAME) {
|
||
this.form.MANAGE_NAME = this.form.MANAGE_NAME.toString().split(',')
|
||
}
|
||
if (this.form.GROUP_UNIT) {
|
||
this.form.GROUP_UNIT = this.form.GROUP_UNIT.toString().split(',')
|
||
}
|
||
this.listLoading = true
|
||
const formData = new FormData()
|
||
Object.keys(this.form).map(key => {
|
||
formData.append(key, this.form[key])
|
||
})
|
||
// let PUNISH_THE_PERSONStr = ''
|
||
//
|
||
// for (const i in this.chooseUserList) {
|
||
//
|
||
// PUNISH_THE_PERSONStr = PUNISH_THE_PERSONStr + ',' + this.chooseUserList[i].USER_ID
|
||
// }
|
||
var PUNISH_THE_PERSON = ''
|
||
this.inspectorList.forEach(item => {
|
||
PUNISH_THE_PERSON = item.INSPECTION_USER_ID + ',' + PUNISH_THE_PERSON
|
||
})
|
||
if (PUNISH_THE_PERSON.length > 0) {
|
||
PUNISH_THE_PERSON = PUNISH_THE_PERSON.substr(0, PUNISH_THE_PERSON.length - 1)
|
||
}
|
||
|
||
formData.set('PUNISH_THE_PERSON', PUNISH_THE_PERSON)
|
||
// this.$refs.uploadfile9.submit()
|
||
for (let i = 0; i < this.file9.length; i++) {
|
||
if (!this.file9[i].FILEPATH) {
|
||
formData.append('file9', this.file9[i])
|
||
}
|
||
}
|
||
formData.set('PUNISH_THE_PERSON', PUNISH_THE_PERSON)
|
||
upload(
|
||
'/outsourced/' + this.dialogType,
|
||
formData
|
||
).then((data) => {
|
||
this.$parent.activeName = 'List'
|
||
this.$parent.OUTSOURCED_ID = ''
|
||
}).catch((e) => {
|
||
console.log(e)
|
||
if (this.form.JURISDICTION_UNIT) {
|
||
this.form.JURISDICTION_UNIT = this.form.JURISDICTION_UNIT.split(',')
|
||
}
|
||
if (this.form.MANAGE_NAME) {
|
||
this.form.MANAGE_NAME = this.form.MANAGE_NAME.split(',')
|
||
}
|
||
if (this.form.GROUP_UNIT) {
|
||
this.form.GROUP_UNIT = this.form.GROUP_UNIT.toString().split(',')
|
||
}
|
||
this.listLoading = false
|
||
})
|
||
} else {
|
||
return false
|
||
}
|
||
})
|
||
},
|
||
beforeFileUpload(file) {
|
||
const suffix = file.name.substring(file.name.lastIndexOf('.'), file.name.length)
|
||
if (suffix === '.pdf') {
|
||
this.form.file = file
|
||
this.form.UNITS_APTITUDE = file.name
|
||
this.$forceUpdate()
|
||
return false
|
||
} else {
|
||
this.$message.warning('请上传pdf文件')
|
||
}
|
||
return false
|
||
},
|
||
beforeFileUpload1(file1) {
|
||
const suffix = file1.name.substring(file1.name.lastIndexOf('.'), file1.name.length)
|
||
if (suffix === '.pdf') {
|
||
this.form.file1 = file1
|
||
this.form.MEASURES = file1.name
|
||
this.$forceUpdate()
|
||
return false
|
||
} else {
|
||
this.$message.warning('请上传pdf文件')
|
||
}
|
||
return false
|
||
},
|
||
beforeFileUpload2(file2) {
|
||
const suffix = file2.name.substring(file2.name.lastIndexOf('.'), file2.name.length)
|
||
if (suffix === '.pdf') {
|
||
this.form.file2 = file2
|
||
this.form.MANAGE_APTITUDE = file2.name
|
||
this.$forceUpdate()
|
||
return false
|
||
} else {
|
||
this.$message.warning('请上传pdf文件')
|
||
}
|
||
return false
|
||
},
|
||
beforeFileUpload3(file3) {
|
||
const suffix = file3.name.substring(file3.name.lastIndexOf('.'), file3.name.length)
|
||
if (suffix === '.pdf') {
|
||
this.form.file3 = file3
|
||
this.form.DESIGE = file3.name
|
||
this.$forceUpdate()
|
||
return false
|
||
} else {
|
||
this.$message.warning('请上传pdf文件')
|
||
}
|
||
return false
|
||
},
|
||
beforeFileUpload4(file4) {
|
||
const suffix = file4.name.substring(file4.name.lastIndexOf('.'), file4.name.length)
|
||
if (suffix === '.pdf') {
|
||
this.form.file4 = file4
|
||
this.form.ATTACHMENTS = file4.name
|
||
this.$forceUpdate()
|
||
return false
|
||
} else {
|
||
this.$message.warning('请上传pdf文件')
|
||
}
|
||
return false
|
||
},
|
||
beforeFileUpload5(file5) {
|
||
const suffix = file5.name.substring(file5.name.lastIndexOf('.'), file5.name.length)
|
||
if (suffix === '.pdf') {
|
||
this.form.file5 = file5
|
||
this.form.RECORDS = file5.name
|
||
this.$forceUpdate()
|
||
return false
|
||
} else {
|
||
this.$message.warning('请上传pdf文件')
|
||
}
|
||
return false
|
||
},
|
||
beforeFileUpload6(file6) {
|
||
const suffix = file6.name.substring(file6.name.lastIndexOf('.'), file6.name.length)
|
||
if (suffix === '.pdf') {
|
||
this.form.file6 = file6
|
||
this.form.SHEET = file6.name
|
||
this.$forceUpdate()
|
||
return false
|
||
} else {
|
||
this.$message.warning('请上传pdf文件')
|
||
}
|
||
return false
|
||
},
|
||
beforeFileUpload7(file7) {
|
||
const suffix = file7.name.substring(file7.name.lastIndexOf('.'), file7.name.length)
|
||
if (suffix === '.pdf') {
|
||
this.form.file7 = file7
|
||
this.form.EXAMINATION = file7.name
|
||
this.$forceUpdate()
|
||
return false
|
||
} else {
|
||
this.$message.warning('请上传pdf文件')
|
||
}
|
||
return false
|
||
},
|
||
beforeFileUpload8(file8) {
|
||
const suffix = file8.name.substring(file8.name.lastIndexOf('.'), file8.name.length)
|
||
if (suffix === '.pdf') {
|
||
this.form.file8 = file8
|
||
this.form.OATTACHMENTS = file8.name
|
||
this.$forceUpdate()
|
||
return false
|
||
} else {
|
||
this.$message.warning('请上传pdf文件')
|
||
}
|
||
return false
|
||
},
|
||
beforeFileUpload9(file9) {
|
||
const suffix = file9.name.substring(file9.name.lastIndexOf('.'), file9.name.length)
|
||
if (suffix === '.pdf' || suffix === '.jpg' || suffix === '.jpeg' || suffix === '.png') {
|
||
this.file9.push(file9.raw)
|
||
return false
|
||
} else {
|
||
this.$message.warning('请上传pdf,pdf,jpg,jpeg,png文件')
|
||
}
|
||
return false
|
||
},
|
||
handleUpload9Exceed(files, fileList) {
|
||
this.$message.warning(`当前限制选择 9 个文件.`)
|
||
},
|
||
beforeBeforeRemove9(file) {
|
||
if (file.IMGFILES_ID) {
|
||
return new Promise((resolve, reject) => {
|
||
this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
|
||
confirmButtonText: '确定',
|
||
cancelButtonText: '取消',
|
||
type: 'warning'
|
||
}).then(() => {
|
||
requestFN(
|
||
'/imgfiles/delete',
|
||
{
|
||
IMGFILES_ID: file.IMGFILES_ID,
|
||
FOREIGN_KEY: file.FOREIGN_KEY,
|
||
TYPE: 300
|
||
}
|
||
).then(() => {
|
||
this.$message({
|
||
message: '删除成功',
|
||
type: 'success'
|
||
})
|
||
resolve(true)
|
||
}).catch((e) => {
|
||
reject(false)
|
||
})
|
||
})
|
||
})
|
||
}
|
||
return true
|
||
},
|
||
beforeRemove9(files, fileList) {
|
||
this.file9 = fileList
|
||
},
|
||
handleDelete(id) {
|
||
this.$confirm('确定要删除吗?', {
|
||
confirmButtonText: '确定',
|
||
cancelButtonText: '取消',
|
||
type: 'warning'
|
||
}).then(() => {
|
||
this.listLoading = true
|
||
requestFN(
|
||
'/outsourced/delete',
|
||
{
|
||
OUTSOURCED_ID: id
|
||
}
|
||
).then(() => {
|
||
this.$message({
|
||
message: '删除成功',
|
||
type: 'success'
|
||
})
|
||
this.listLoading = false
|
||
this.varList = []
|
||
this.listQuery.page = 1
|
||
this.getList()
|
||
}).catch((e) => {
|
||
this.listLoading = false
|
||
})
|
||
}).catch(() => {
|
||
})
|
||
},
|
||
|
||
batchDel() {
|
||
const _selectData = this.$refs.multipleTable.selection
|
||
if (_selectData == null || _selectData.length == 0) {
|
||
this.$message({
|
||
message: '请选中要删除的项...',
|
||
type: 'error'
|
||
})
|
||
return false
|
||
}
|
||
const ids = _selectData.map((item, index) => {
|
||
return item.OUTSOURCED_ID
|
||
}).join(',')
|
||
|
||
this.$confirm('确定要删除选中的数据吗?', {
|
||
confirmButtonText: '确定',
|
||
cancelButtonText: '取消',
|
||
type: 'warning'
|
||
}).then(() => {
|
||
this.listLoading = true
|
||
requestFN(
|
||
'/outsourced/deleteAll',
|
||
{
|
||
DATA_IDS: ids
|
||
}
|
||
).then(() => {
|
||
this.$message({
|
||
message: '删除成功',
|
||
type: 'success'
|
||
})
|
||
this.listLoading = false
|
||
this.varList = []
|
||
this.listQuery.page = 1
|
||
this.$refs.multipleTable.clearSelection()
|
||
this.getList()
|
||
}).catch((e) => {
|
||
this.listLoading = false
|
||
})
|
||
}).catch(() => {
|
||
})
|
||
},
|
||
// 判断按钮权限,用于是否显示按钮
|
||
hasButton: function() {
|
||
var keys = 'outsourced:add,outsourced:del,outsourced:edit,toExcel'
|
||
requestFN(
|
||
'/head/hasButton',
|
||
{
|
||
keys: keys
|
||
}
|
||
).then((data) => {
|
||
this.add = data.outsourcedfhadminadd // 新增权限
|
||
this.del = data.outsourcedfhadmindel // 删除权限
|
||
this.edit = data.outsourcedfhadminedit // 修改权限
|
||
}).catch((e) => {
|
||
this.listLoading = false
|
||
})
|
||
},
|
||
// 获取数据字典数据
|
||
getDict: function() {
|
||
return new Promise((resolve) => {
|
||
requestFN(
|
||
'/corpDepartment/listTreeManageAndCorp1',
|
||
{}
|
||
).then((data) => {
|
||
this.treeDataInspectDept = this.listTransTree(JSON.parse(data.zTreeNodes), 'id', 'pId', 'nodes')
|
||
resolve()
|
||
}).catch((e) => {
|
||
})
|
||
})
|
||
},
|
||
getistTreeCorpDept() {
|
||
return new Promise((resolve) => {
|
||
requestFN(
|
||
'/corpDepartment/listTreeCorpDept',
|
||
{}
|
||
).then((data) => {
|
||
this.treeDataAllDept = this.listTransTree(JSON.parse(data.zTreeNodes), 'id', 'pId', 'nodes')
|
||
resolve()
|
||
}).catch((e) => {
|
||
})
|
||
})
|
||
},
|
||
resetForm() {
|
||
this.form = {
|
||
DEPARTMENT_ID: '', // 发包部门
|
||
CONTRACT_PIC: '', // 发包部门负责人
|
||
OUTSOURCED_NAME: '', // 重点工程名称
|
||
STARTTIME: '', // 计划工期开始时间
|
||
ENDTIME: '', // 计划工期结束时间
|
||
CONTRACT_STIME: '', // 合同起止时间
|
||
CONTRACT_ETIME: '', // 合同起止时间
|
||
UNITS_ID: '', // 相关方单位名称
|
||
CONTRACT_NUM: '', // 合同号
|
||
UNITS_APTITUDE: '', // 相关方单位资质
|
||
UNITS_PIC: '', // 相关方单位本项目负责人
|
||
UNITS_PHONE: '', // 相关方单位本项目负责人手机
|
||
MANAGE_NAME: '', // 监理单位名称
|
||
MANAGE_APTITUDE: '', // 监理单位资质
|
||
MANAGE_PIC: '', // 监理单位本项目负责人姓名
|
||
DESIGE: '', // 相关方组织设计
|
||
MANAGE_PHONE: '', // 监理单位本项目负责人手机
|
||
MEASURES: '', // 安全技术措施
|
||
ATTACHMENTS: '', // 附件
|
||
REMARKS: '', // 备注
|
||
TRAINING_NAME: '', // 培训管理单位
|
||
TRAINING_PIC: '', // 培训管理负责人
|
||
TRAINING_STIME: '', // 培训时间
|
||
TRAINING_ETIME: '', // 培训时间
|
||
RECORDS: '', // 安全培训记录
|
||
SHEET: '', // 培训签名表
|
||
EXAMINATION: '', // 重点工程考试题
|
||
OATTACHMENTS: '', // 其他附件
|
||
APPLICANT: '', // 申请人
|
||
STATE: '', // 状态
|
||
GROUP_UNIT: [], // 集团单位
|
||
MANAGER_DEPARTMENT_ID: '' // 股份主管部门
|
||
}
|
||
},
|
||
selectDeptOption() {
|
||
// 合并
|
||
// var arr = [...this.form.INVOLVING_CORPS, ...this.form.MANAGE_NAME]
|
||
// // 去重
|
||
// var dataSet = [...new Set(arr)]
|
||
// // 转数组
|
||
// var dataArray = Array.from(dataSet)
|
||
// var dataJson = JSON.stringify(dataArray)
|
||
return new Promise((resolve) => {
|
||
requestFN(
|
||
'/corpDepartment/listTreeManageAndCorpForPcPunishThePerson',
|
||
).then((data) => {
|
||
this.treeDeptOptions = this.listTransTree(JSON.parse(data.zTreeNodes), 'id', 'pId', 'nodes')
|
||
resolve()
|
||
}).catch((e) => {
|
||
})
|
||
})
|
||
},
|
||
removeDeptOption() {
|
||
this.inspectorList = [{ INSPECTION_DEPARTMENT_ID: '', INSPECTION_USER_ID: '', USER_SIDE: '' }] // 检查人员
|
||
},
|
||
selectUserOptionByDept(id, i) {
|
||
return new Promise((resolve) => {
|
||
requestFN(
|
||
'/corpDepartment/selectUserByDepartmentId',
|
||
{
|
||
DEPARTMENT_ID: id
|
||
}
|
||
).then((data) => {
|
||
this.INSPECTOR_List[i] = data.usersList
|
||
this.$forceUpdate()
|
||
// this.punishThePersonOptions = data.usersList
|
||
// resolve()
|
||
}).catch((e) => {
|
||
})
|
||
})
|
||
},
|
||
addUserList(item, data) {
|
||
var con = this.chooseUserList.findIndex(i => i.USER_ID === data.USER_ID)
|
||
if (con < 0) {
|
||
this.chooseUserList.push(data)
|
||
}
|
||
this.selectUsers = ''
|
||
},
|
||
delUserList(user, index) {
|
||
this.chooseUserList.splice(this.chooseUserList.findIndex(i => i.USER_ID === user.USER_ID), 1)
|
||
},
|
||
addInspector() {
|
||
this.inspectorList.push({ INSPECTION_DEPARTMENT_ID: '', INSPECTION_USER_ID: '', USER_SIDE: '' })
|
||
this.INSPECTOR_List.push([])
|
||
},
|
||
updateInspecteDept(DEPARTMENT_ID, i) {
|
||
this.inspectorList[i].INSPECTION_USER_ID = ''
|
||
this.inspectorList[i].USER_SIDE = ''
|
||
this.selectUserOptionByDept(DEPARTMENT_ID, i)
|
||
},
|
||
changeHiddenUserList(item, data, index) {
|
||
var count = 0
|
||
this.inspectorList.forEach(selct => {
|
||
if (selct.INSPECTION_USER_ID === data.USER_ID) {
|
||
count++
|
||
}
|
||
})
|
||
if (count > 1) {
|
||
this.inspectorList[index].INSPECTION_USER_ID = ''
|
||
this.$message.warning('请勿重复选择处罚人员')
|
||
}
|
||
item.USER_SIDE = data.USER_SIDE
|
||
},
|
||
// 删除检查人员
|
||
delInspectorRow(row, index) {
|
||
if (this.inspectorList.length === 1) {
|
||
this.$message.warning('必须添加处罚人')
|
||
return
|
||
}
|
||
if (this.validStr(row.INSPECTION_DEPARTMENT_ID) || this.validStr(row.INSPECTION_USER_ID)) {
|
||
this.$confirm('确定要移除第' + (index + 1) + '个检查人员吗?', {
|
||
confirmButtonText: '确定',
|
||
cancelButtonText: '取消',
|
||
type: 'warning'
|
||
}).then(() => {
|
||
if (this.form.OUTSOURCED_ID) {
|
||
var data = { OUTSOURCED_ID: this.form.OUTSOURCED_ID, CREATOR: row.INSPECTION_USER_ID }
|
||
requestFN(
|
||
'/keyprojectpunish/findByOperator',
|
||
data
|
||
).then((data) => {
|
||
if (data.data.length > 0) {
|
||
this.$message({
|
||
message: '此用户对项目进行了罚款操作,不可删除',
|
||
type: 'error'
|
||
})
|
||
} else {
|
||
this.$set(this.inspectorList, this.inspectorList.splice(index, 1))
|
||
this.INSPECTOR_List.splice(index, 1)
|
||
}
|
||
}).catch((e) => {
|
||
})
|
||
} else {
|
||
this.$set(this.inspectorList, this.inspectorList.splice(index, 1))
|
||
this.INSPECTOR_List.splice(index, 1)
|
||
}
|
||
}).catch(() => {
|
||
})
|
||
} else {
|
||
this.inspectorList.splice(index, 1)
|
||
this.INSPECTOR_List.splice(index, 1)
|
||
}
|
||
},
|
||
getUnitUser(event, clear) {
|
||
if (!clear) {
|
||
this.form.UNITS_PIC = ''
|
||
this.form.UNITS_PHONE = ''
|
||
}
|
||
requestFN(
|
||
'/personnelmanagement/listAll',
|
||
{
|
||
UNITS_ID: event
|
||
}
|
||
).then((data) => {
|
||
// this.form.UNITS_PIC = ''
|
||
// this.form.UNITS_PHONE = ''
|
||
this.unitsUserList = data.varList
|
||
// this.punishThePersonOptions = data.usersList
|
||
// resolve()
|
||
}).catch((e) => {
|
||
})
|
||
},
|
||
selectUnitsUser(event) {
|
||
this.unitsUserList.find((item) => {
|
||
if (item.PERSONNELMANAGEMENT_ID === event) {
|
||
this.form.UNITS_PHONE = item.PHONENUM
|
||
}
|
||
})
|
||
},
|
||
// 将树节点的子节点全部添加到数组中
|
||
pullSelectedNodes(selectedItems) {
|
||
if (selectedItems.nodes && selectedItems.nodes.length > 0) {
|
||
for (let i = 0; i < selectedItems.nodes.length; i++) {
|
||
if (!this.form.JURISDICTION_UNIT.includes(selectedItems.nodes[i].id)) {
|
||
this.form.JURISDICTION_UNIT.push(selectedItems.nodes[i].id)
|
||
}
|
||
this.pullSelectedNodes(selectedItems.nodes[i])
|
||
}
|
||
}
|
||
},
|
||
// 选择项时触发的事件
|
||
handleSelect(selectedItems) {
|
||
// 选择父节点时同时勾选全部子节点
|
||
if (!this.form.JURISDICTION_UNIT.includes(selectedItems.id)) {
|
||
this.form.JURISDICTION_UNIT.push(selectedItems.id)
|
||
}
|
||
this.pullSelectedNodes(selectedItems)
|
||
this.onClick()
|
||
},
|
||
// 将选中项的子节点全部移除
|
||
removeSelectedNodes(selectedItems) {
|
||
if (selectedItems.nodes && selectedItems.nodes.length > 0) {
|
||
for (let i = 0; i < selectedItems.nodes.length; i++) {
|
||
if (this.form.JURISDICTION_UNIT.includes(selectedItems.nodes[i].id)) {
|
||
this.form.JURISDICTION_UNIT.splice(this.form.JURISDICTION_UNIT.indexOf(selectedItems.nodes[i].id), 1)
|
||
}
|
||
this.removeSelectedNodes(selectedItems.nodes[i])
|
||
}
|
||
}
|
||
},
|
||
// 移除选中项时触发的事件
|
||
handleRemove(selectedItems) {
|
||
// 移除选中项时同时移除全部子节点
|
||
if (this.form.JURISDICTION_UNIT.includes(selectedItems.id)) {
|
||
this.form.JURISDICTION_UNIT.splice(this.form.JURISDICTION_UNIT.indexOf(selectedItems.id), 1)
|
||
}
|
||
this.removeSelectedNodes(selectedItems)
|
||
this.onClick()
|
||
},
|
||
onClick() {
|
||
this.updateValue = false
|
||
this.$nextTick(() => {
|
||
this.updateValue = true
|
||
})
|
||
}
|
||
}
|
||
}
|
||
|
||
</script>
|
||
<style lang="sass" scoped>
|
||
.uo-flex
|
||
display: flex
|
||
.avatar-uploader
|
||
ul
|
||
margin: 0
|
||
li
|
||
padding: 0
|
||
.el-dialog__body
|
||
padding: 0
|
||
.map-flex
|
||
display: flex
|
||
width: 500px
|
||
align-items: center
|
||
|
||
.ud-flex
|
||
display: flex
|
||
.form-group
|
||
display: flex
|
||
align-items: center
|
||
.form-label
|
||
padding: 0px 15px
|
||
font-size: 14px
|
||
width: 240px
|
||
font-weight: 400
|
||
text-align: right
|
||
margin-bottom: 18px
|
||
.star
|
||
color: red
|
||
padding-right: 4px
|
||
.input-block
|
||
display: flex
|
||
|
||
.disContent
|
||
display: flex
|
||
align-items: center
|
||
flex-wrap: wrap
|
||
.img-div
|
||
position: relative
|
||
margin: 0 10px 0px 0
|
||
width: 108px
|
||
height: 108px
|
||
border-radius: 4px
|
||
overflow: hidden
|
||
&>img
|
||
width: 100%
|
||
height: 100%
|
||
|
||
.disContent-hide
|
||
position: absolute
|
||
width: 100%
|
||
height: 100%
|
||
border-radius: 4px
|
||
background-color: rgba(48, 48, 48, 0.59)
|
||
display: none
|
||
top: 0
|
||
left: 0
|
||
line-height: 32px
|
||
|
||
.Delete
|
||
position: absolute
|
||
bottom: 14px
|
||
right: 10px
|
||
font-size: 16px
|
||
color: white
|
||
cursor: pointer
|
||
.yuLan
|
||
position: absolute
|
||
bottom: 23px
|
||
right: 50px
|
||
font-size: 16px
|
||
color: white
|
||
cursor: pointer
|
||
.yuLanImg
|
||
position: absolute
|
||
bottom: 0
|
||
right: 0
|
||
width: 100%
|
||
height: 100%
|
||
opacity: 0
|
||
|
||
.img-div:hover .disContent-hide
|
||
display: block
|
||
|
||
.pitchCss
|
||
border: 1px solid #202e78
|
||
transition: all linear 0.1s
|
||
width: 116px
|
||
height: 116px
|
||
|
||
</style>
|