qa-regulatory-gwj-app/pages/super-hot/security-committee/detail.vue

422 lines
15 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view class="content p-10">
<view class="card">
<view class="view-title">
<u--text text="特级动火申请" bold></u--text>
</view>
<u-cell-group :border="false" class="mt-10">
<u-cell>
<view slot="title" class="title">申请人</view>
<view slot="value">{{ form.APPLY_USER_NAME }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">申请时间</view>
<view slot="value">{{ form.APPLICATION_DATE }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">作业证编号</view>
<view slot="value">{{ form.JOB_NUMBER }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">作业类型</view>
<view slot="value">{{ form.JOB_TYPE_NAME }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">动火许可证</view>
<view slot="value">
<u-button type="primary" text="查看" size="mini" class="bth-mini" @click="fnNavigator"></u-button>
</view>
</u-cell>
</u-cell-group>
</view>
<view class="card">
<view class="view-title">
<u--text text="动火单位作业负责人确认" bold></u--text>
</view>
<u-cell-group :border="false" class="mt-10">
<u-cell>
<view slot="title" class="title">动火单位作业负责人</view>
<view slot="value">{{ form.projectCompetent_USER_NAME }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">确认时间</view>
<view slot="value">{{ form.projectCompetent_OPERATTIME }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">是否确认通过</view>
<view slot="value">{{ form.projectCompetent_TYPE == '2' ? '通过' : '不通过' }}</view>
</u-cell>
</u-cell-group>
</view>
<view class="card">
<view class="view-title">
<u--text text="项目主管人员初审" bold></u--text>
</view>
<u-cell-group :border="false" class="mt-10">
<u-cell>
<view slot="title" class="title">项目主管人员</view>
<view slot="value">{{ form.projectPreliminarily_USER_NAME }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">初审时间</view>
<view slot="value">{{ form.projectPreliminarily_OPERATTIME }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">初审结果</view>
<view slot="value">{{ form.projectPreliminarily_TYPE == '2' ? '通过' : '不通过' }}</view>
</u-cell>
</u-cell-group>
</view>
<view class="card">
<view class="view-title">
<u--text text="项目主管部门负责人审批" bold></u--text>
</view>
<u-cell-group :border="false" class="mt-10">
<u-cell>
<view slot="title" class="title">初审结果</view>
<view slot="value">{{ form.projectPreliminarily_TYPE == '2' ? '通过' : '不通过' }}</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title">签字</view>
<view slot="value" class="mt-10">
<u--image :showLoading="true" :src="$store.state.filePath + form.projectPreliminarily_PRINCIPAL" width="70" height="70" mode="scaleToFill" @click="previewImage($store.state.filePath + form.projectPreliminarily_PRINCIPAL)"></u--image>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">签字时间</view>
<view slot="value">{{ form.projectPreliminarily_OPERATTIME }}</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title">上传会签文件</view>
<view slot="value" class="mt-10">
<u-row>
<u-col span="3" v-for="(item,index) in meetingImgList" :key="index">
<u--image :showLoading="true" :src="$store.state.filePath + item.FILEPATH" width="70" height="70" mode="scaleToFill" @click="previewImage($store.state.filePath + item.FILEPATH,meetingImgList)"></u--image>
</u-col>
</u-row>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title">上传附件:</view>
<view slot="value" class="mt-10">
<u-row>
<u-col span="3" v-for="(item,index) in appendixImgList" :key="index">
<u--image :showLoading="true" :src="$store.state.filePath + item.FILEPATH" width="70" height="70" mode="scaleToFill" @click="previewImage($store.state.filePath + item.FILEPATH,appendixImgList)"></u--image>
</u-col>
</u-row>
</view>
</u-cell>
</u-cell-group>
</view>
<view class="card">
<view class="view-title">
<u--text text="分公司安全总监审批" bold></u--text>
</view>
<u-cell-group :border="false" class="mt-10">
<u-cell>
<view slot="title" class="title">审批结果:</view>
<view slot="value">{{ form.inspectorGeneral_TYPE == '2' ? '通过' : '不通过' }}</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title">签字:</view>
<view slot="value" class="mt-10">
<u--image :showLoading="true" :src="$store.state.filePath + form.inspectorGeneral_PRINCIPAL" width="70" height="70" mode="scaleToFill" @click="previewImage($store.state.filePath + form.inspectorGeneral_PRINCIPAL)"></u--image>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">签字时间:</view>
<view slot="value">{{ form.inspectorGeneral_OPERATTIME }}</view>
</u-cell>
</u-cell-group>
</view>
<view class="card">
<view class="view-title">
<u--text text="分公司主要负责人签批" bold></u--text>
</view>
<u-cell-group :border="false" class="mt-10">
<u-cell>
<view slot="title" class="title">签批结果:</view>
<view slot="value">{{ form.supervision_TYPE == '2' ? '通过' : '不通过' }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">签字:</view>
<view slot="value" class="mt-10">
<u--image :showLoading="true" :src="$store.state.filePath + form.supervision_PRINCIPAL" width="70" height="70" mode="scaleToFill" @click="previewImage($store.state.filePath + form.supervision_PRINCIPAL)"></u--image>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">签字时间:</view>
<view slot="value">{{ form.supervision_OPERATTIME }}</view>
</u-cell>
</u-cell-group>
</view>
<view class="card">
<view class="view-title">
<u--text text="(港股)安全监督部初审" bold></u--text>
</view>
<u-cell-group :border="false" class="mt-10">
<u-cell>
<view slot="title" class="title">初审结果:</view>
<view slot="value">{{ form.committee_TYPE == '2' ? '通过' : '不通过' }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">初审人员:</view>
<view slot="value">{{form.committee_USER_NAME}}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">初审时间:</view>
<view slot="value">{{form.committee_OPERATTIME}}</view>
</u-cell>
</u-cell-group>
</view>
<view class="card">
<view class="view-title">
<u--text text="(港股)安委会办公室审批" bold></u--text>
</view>
<u-cell-group :border="false" class="mt-10">
<u-cell>
<view slot="title" class="title">审核结果:</view>
<view slot="value">
<u-radio-group v-model="pd.isChange" placement="row">
<u-radio label="通过" name="2"></u-radio>
<u-radio label="不通过" name="1" class="ml-10"></u-radio>
</u-radio-group>
</view>
</u-cell>
<u-cell class="flex-none" v-if="pd.isChange === '2'">
<view slot="title" class="title">上传会议纪要:</view>
<view slot="value" class="mt-10">
<u-upload
ref="aaa"
capture="album"
uploadIcon="plus"
:fileList="fileList"
@afterRead="afterRead"
@delete="deletePic"
name="1" multiple
:maxCount="4"></u-upload>
<!-- <u-upload-->
<!-- uploadIcon="plus"-->
<!-- :fileList="form.fileList"-->
<!-- @afterRead="afterRead"-->
<!-- @delete="deletePic"-->
<!-- multiple-->
<!-- :maxCount="4"-->
<!-- ></u-upload>-->
</view>
</u-cell>
<u-cell class="flex-none" v-if="pd.isChange === '2'">
<view slot="title" class="title">上传附件:</view>
<view slot="value" class="mt-10">
<u-upload
uploadIcon="plus"
:fileList="fileList1"
@afterRead="afterRead1"
@delete="deletePic1"
multiple
:maxCount="4"
></u-upload>
</view>
</u-cell>
<u-cell v-if="pd.isChange === '2'">
<view slot="title" class="title">(港股安委办主任)安全总监部门:</view>
<view slot="value">
<u--text :text="pd.safetyDirector_dept_id ==''?'请选择':pd.safetyDirector_dept_name" @click="showTree"></u--text>
<tki-tree ref="tkitree" :range="deptRange" rangeKey="name" selectParent @confirm="confirmTree" />
</view>
</u-cell>
<u-cell v-if="pd.isChange === '2'">
<view slot="title" class="title">(港股安委办主任)安全总监:</view>
<view slot="value">
<u--text :text="pd.safetyDirector_user_id ==''?'请选择':pd.safetyDirector_user_name" @click="showPicker"></u--text>
<u-picker :show="show" :columns="columns" keyName="NAME" @cancel="show = false" @confirm="confirmPicker"></u-picker>
</view>
</u-cell>
</u-cell-group>
</view>
<u-button type="primary" text="提交" class="bth-mini mt-10" @click="$u.debounce(submit, 1000,true)"></u-button>
</view>
</template>
<script>
import tkiTree from "@/components/tki-tree/tki-tree.vue"
import {
getHotWorkGoEdit,
getImgfilesListByKeyAndType,
getDept,
getDeptUser,
approveHotWorkSupervision,
setImgFilesListAdd
} from '../../../api/index'
export default {
components: {tkiTree},
data() {
return {
form: {
},
fileList:[],
fileList1:[],
pd:{
safetyDirector_dept_id:'',
safetyDirector_dept_name:'',
safetyDirector_user_id:'',
safetyDirector_user_name:''
},
range:[],
show: false,
columns: [],
HOTWORKAPPLICATION_ID:'',
meetingImgList: [],
appendixImgList: [],
deptRange:[]
}
},
computed: {
userInfo() {
return this.$store.getters.getUserInfo
}
},
onLoad(event) {
this.HOTWORKAPPLICATION_ID = event.HOTWORKAPPLICATION_ID
this.getDate()
this.getImgFilesList('203','meetingImgList')
this.getImgFilesList('204','appendixImgList')
this.getDept()
},
methods: {
async getDate(){
let resData = await getHotWorkGoEdit({HOTWORKAPPLICATION_ID:this.HOTWORKAPPLICATION_ID});
this.form = resData.pd
},
async getImgFilesList(type,listName){
let imgPd = {'FOREIGN_KEY':this.HOTWORKAPPLICATION_ID ,'TYPE':type}
let resData = await getImgfilesListByKeyAndType({...imgPd});
this[listName] = resData.imgs
},
async getDept(){
let resData = await getDept({'DEPARTMENT_ID':'0'});
this.deptRange = JSON.parse(resData.zTreeNodes)
},
async getDeptUser(detpId){
let resData = await getDeptUser({'DEPARTMENT_ID':detpId});
this.$set(this.columns,0,resData.userList)
},
fnNavigator(){
uni.$u.route({
url: '/pages/super-hot/hot-work-permit/index',
params: {
HOTWORKAPPLICATION_ID: this.HOTWORKAPPLICATION_ID
}
})
},
showTree() {
this.$refs.tkitree._show()
},
confirmTree(e){
this.pd.safetyDirector_dept_id = e[0].id
this.pd.safetyDirector_dept_name = e[0].name
this.pd.safetyDirector_user_id = ''
this.pd.safetyDirector_user_name = ''
this.getDeptUser(this.pd.safetyDirector_dept_id)
},
showPicker(){
this.show = true
},
confirmPicker(e){
this.pd.safetyDirector_user_id = e.value[0].USER_ID
this.pd.safetyDirector_user_name = e.value[0].NAME
this.show = false;
},
afterRead(event) {
this.fileList = [...this.fileList, ...event.file]
},
deletePic(event) {
this.fileList = this.fileList.filter(item => item.url !== event.file.url)
},
afterRead1(event) {
if(!this.fileList1) this.$set(this, 'fileList1', [])
this.fileList1 = [...this.fileList1, ...event.file]
},
deletePic1(event) {
this.fileList1 = this.fileList1.filter(item => item.url !== event.file.url)
},
previewImage(){
uni.previewImage({
urls: [current],
current
});
},
async submit() {
var _this = this
if (this.pd.isChange === '2') { // 审批通过
console.log(_this.fileList)
console.log(_this.fileList1)
if (_this.fileList.length == 0) {
uni.showToast({
icon: "none",
title: '请上传会议纪要',
duration: 1500
});
return false
}
if (_this.fileList1.length == 0) {
uni.showToast({
icon: "none",
title: '请上传上传附件',
duration: 1500
});
return false
}
if (_this.pd.safetyDirector_user_id == '') {
uni.showToast({
icon: "none",
title: '请选择安全总监',
duration: 1500
});
return false
}
}
await approveHotWorkSupervision({
'TYPE':_this.pd.isChange,
'HOTWORKAPPLICATION_ID':_this.HOTWORKAPPLICATION_ID,
'STATE':'36',
'safetyDirector_USER_ID':_this.pd.safetyDirector_user_id,
'loginUserId':_this.userInfo.USER_ID
});
console.log(_this.fileList)
if(_this.fileList.length>0){
await this.uploadImg('fileList', '205')
await this.uploadImg('fileList1', '206')
}
uni.$u.route({
type: 'navigateBack'
})
},
async uploadImg(listName, imgType) {
let imgFiles1 = []
for (let i = 0; i < this[listName].length; i++) {
imgFiles1.push({
uri: this[listName][i].url,
FFILE: this[listName][i].url,
name:'file'+i
})
}
let formData1 = {'TYPE':imgType,'FOREIGN_KEY':this.HOTWORKAPPLICATION_ID,'CORPINFO_ID':this.userInfo.CORPINFO_ID,}
await setImgFilesListAdd({files: imgFiles1,formData:formData1})
},
goBack(){
}
},
}
</script>
<style scoped>
</style>