qa-regulatory-gwj-vue/src/views/keyprojects/outsourced/components/edit.vue

1464 lines
56 KiB
Vue
Raw Normal View History

2023-11-07 10:04:37 +08:00
<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"
2023-11-07 10:04:37 +08:00
: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"
2023-11-07 10:04:37 +08:00
/>
</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">
2023-12-14 14:59:20 +08:00
<el-select v-model="form.UNITS_ID" filterable placeholder="请选择施工相关方" style="width: 100%;" @change="getUnitUser">
2023-11-07 10:04:37 +08:00
<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">
2023-12-08 17:24:58 +08:00
<el-select v-model="form.STATE" disabled style="width: 100%;">
2023-11-07 10:04:37 +08:00
<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">-->
<!-- &lt;!&ndash; <el-date-picker v-model="form.TRAINING_TIME" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择培训日期" clearable class="filter-item"/>&ndash;&gt;-->
<!-- <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,
2023-11-07 10:04:37 +08:00
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: '已完成' }
2023-12-08 17:24:58 +08:00
{ ID: '0', NAME: '未开工' },
2023-11-07 10:04:37 +08:00
{ ID: '1', NAME: '进行中' },
2023-12-08 17:24:58 +08:00
{ ID: '2', NAME: '已结束' },
2023-12-13 14:44:44 +08:00
{ ID: '-1', NAME: '开工申请中' },
{ ID: '-2', NAME: '结束申请中' }
2023-11-07 10:04:37 +08:00
],
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
},
2024-01-31 14:13:49 +08:00
// 'form.ENDTIME': {
2023-12-14 09:51:11 +08:00
// 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'
// }
// }
2024-01-31 14:13:49 +08:00
// },
2023-11-07 10:04:37 +08:00
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()
2023-12-08 17:24:58 +08:00
} else {
this.form.STATE = '0'
2023-11-07 10:04:37 +08:00
}
},
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.$parent.activeName = 'List'
this.$parent.OUTSOURCED_ID = ''
},
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
})
2023-11-07 10:04:37 +08:00
}
}
}
</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>