lm-safe-app/pages/apply/subPages/BS/riskSumbitNoticeCheck.vue

550 lines
16 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- 隐患整改通知确认 -->
<template>
<view class="page-wrap" v-bind:style="{paddingBottom:paddingBottom+'px'}">
<view class="card">
<uni-card margin="0" :is-shadow="true">
<u--form labelPosition="left" labelWidth="auto" labelAlign="center" :model="model" :rules="rules"
ref="wForm" errorType="border-bottom">
<u-form-item label="编码" prop="CODE" borderBottom>
<u--input disabled disabledColor="#fff" v-model="model.CODE" border="none" slot="right"
inputAlign="right"></u--input>
</u-form-item>
<u-form-item label="发起时间" prop="CREATE_TIME" borderBottom>
<u--input disabled disabledColor="#fff" v-model="model.CREATE_TIME" border="none" slot="right"
inputAlign="right"></u--input>
</u-form-item>
<u-form-item label="发起部门" prop="Nav_User.Nav_Department.NAME" borderBottom>
<u--input disabled disabledColor="#fff" v-model="model.Nav_User.Nav_Department.NAME"
border="none" slot="right" inputAlign="right"></u--input>
</u-form-item>
<u-form-item label="发起人" prop="Nav_User.NAME" borderBottom>
<u--input disabled disabledColor="#fff" v-model="model.Nav_User.NAME" border="none" slot="right"
inputAlign="right"></u--input>
</u-form-item>
<view class="upload-title">附件</view>
<full-upload :value="model.Nav_Files" :isShowBtn='false'></full-upload>
</u--form>
</uni-card>
</view>
<u-sticky offset-top="20">
<view class="sub-form">
<view class="sub-form-wrap">
<view class="sub-form-btns">
</view>
<u--form labelPosition="left" labelWidth="auto" labelAlign="center" :model="subDataModel"
errorType="border-bottom" ref="sForm">
<u-collapse :border="false" accordion>
<uni-card style="margin-bottom: 16px;" margin="0" spacing="0" :is-shadow="false"
v-for="(item, index) in model.Nav_ListRiskSubmitContent">
<u-collapse-item :title="index + 1 + '. ' + item.CHECKCONTENT" name="1">
<view class="label-title">检查问题</view>
<u-form-item prop="DESCREPTION" borderBottom>
<u--textarea disabled autoHeight v-model="item.DESCREPTION" placeholder="检查问题"
border="surround"></u--textarea>
</u-form-item>
<u-form-item label="问题等级" prop="QUESTION_LEVEL_SHOW" borderBottom>
<u--input disabled disabledColor="#fff" v-model="item.QUESTION_LEVEL_SHOW"
border="none" inputAlign="right"></u--input>
</u-form-item>
<view class="label-title">整改建议与措施</view>
<u-form-item prop="DEMAND" borderBottom>
<u--textarea disabled autoHeight v-model="item.DEMAND" placeholder="检查问题"
border="surround"></u--textarea>
</u-form-item>
<u-form-item label="隐患地点" prop="ADDRESS" borderBottom>
<u--input disabled disabledColor="#fff" v-model="item.ADDRESS" border="none"
inputAlign="right"></u--input>
</u-form-item>
<view class="upload-title">附件</view>
<full-upload v-model="item.Nav_Files" :isShowBtn='false'></full-upload>
<u-form-item label="备注" prop="REMARK" borderBottom>
<u--input disabled disabledColor="#fff" placeholder='备注' border="none"
v-model="item.REMARK" inputAlign="right"></u--input>
</u-form-item>
<u-form-item label="整改期限" prop="LastDateUserShow" borderBottom>
<u--input disabled disabledColor="#fff" placeholder="请选择整改期限" border="none"
:value="$u.timeFormat(item.LastDateUser, 'yyyy-mm-dd')"
inputAlign="right"></u--input>
</u-form-item>
<u-form-item label="系统整改期限" prop="LastDateSystemShow" borderBottom>
<u--input disabled disabledColor="#fff"
:value="$u.timeFormat(item.LastDateSystem, 'yyyy-mm-dd')" border="none"
inputAlign="right"></u--input>
</u-form-item>
<u-form-item label="整改实施单位" prop="Nav_DepartmentDeal.NAME" borderBottom>
<u--input disabled disabledColor="#fff" v-model="item.Nav_DepartmentDeal.NAME"
border="none" inputAlign="right"></u--input>
</u-form-item>
<u-form-item label="整改责任人" prop="Nav_UserDeal.NAME" borderBottom>
<rich-text disabled disabledColor="#fff" v-html="item.UserDealNameHtml"
border="none" slot="right"></rich-text>
</u-form-item>
<u-form-item label="验收人" prop="Nav_UserCheck.NAME" borderBottom>
<rich-text disabled disabledColor="#fff" slot="right"
v-html="item.UserCheckNameHtml" border="none"></rich-text>
</u-form-item>
<u-form-item label="整改落实人" prop="Nav_UserActualDeal.NAME" borderBottom>
<rich-text disabled disabledColor="#fff" slot="right"
v-html="item.UserActureNameHtml" border="none"></rich-text>
</u-form-item>
</u-collapse-item>
</uni-card>
</u-collapse>
</u--form>
</view>
</view>
</u-sticky>
<u-modal :show="showDelModalIndex >= 0" @confirm="confirmDel" title="确认删除?"></u-modal>
<!-- <query-selector :show="showPopup" :lists="userLists" @close="handleClosePopup" @search="handleSearchUser"-->
<!-- @select="handleSelectedUser" />-->
<!-- <u-picker :show="comPickerInfo.showSheet" :columns="comPickerInfo.columns" @confirm="onConfirmPicker"@close="closePicker" @cancel="closePicker" keyName="NAME"></u-picker> -->
<!-- <Button className={styles.agreedUser} type={'primary'} icon={'check'} loading={this.state.isOKLoad}
onClick={()=> this.sureCheck(riskContentState == 15 ? 10 : 1)} >同意</Button>
<Button className={styles.rejectedUser} type={'primary'} icon={'close'} loading={this.state.isRejectLoad}
onClick={()=> this.sureCheck(riskContentState == 15 ? 20 : 2)} >驳回</Button> -->
<view class="bottom-button">
<button type="primary" v-if='isLoadOK && tableKey === "1" && isActualDealCheck'
@click="sureCheckActualDeal">确认</button>
</view>
<view class="bottom-button">
<!-- 验收人 确认 -->
<button type="primary" v-if=' (isLoadOK && tableKey === "1"&&isCheckerCheck )'
@click="handlePass">确认</button>
</view>
<!-- <check-no-action v-if='isLoadOK && tableKey === "1" && !isActualDealCheck&&(isCheckerCheck || isDealUserCheck)'
v-on:chilPass='handlePass' v-on:chilReject='handleReject'></check-no-action> -->
</view>
</template>
<script>
import checkNoAction from '@/components/custom/check-no-action.vue'
import {
guid,
initFilter,
extendRule,
extendInclude,
extendGroupRule,
initFilterGroup,
extendFilterGroup,
extendFilterGroupGroupRules,
ShowDateTime
} from '../../../../utils/common'
import {
GetDetailCheck,
UserCheckAndSend,
CheckerCheck,
UpdateActualDealRecord
} from '../../../../services/apply/subPages/BS/riskSubmit'
import '@/utils/getLoginInfo.js'
// import UButton from '../../../../uni_modules/uview-ui/components/u-button/u-button.vue'
export default {
components: {
checkNoAction
},
data() {
return {
tableKey: '0',
TaskID: '',
paddingBottom: '70',
isCheckerCheck: true,
isDealUserCheck: true,
isActualDealCheck: true,
riskContentState: 0,
DEALOPINION: '',
model: {
ID: '',
TaskID: '',
LastDateUserShow: '',
LastDateSystemShow: '',
Nav_User: {
NAME: '',
Nav_Department: {
NAME: '',
}
},
Nav_ListRiskSubmitContent: [{
CHECKCONTENT_SHOW: '',
UserDealNameHtml: '',
UserCheckNameHtml: '',
UserActureNameHtml: '',
Nav_DepartmentDeal: {
NAME: ''
},
Nav_UserDeal: {
NAME: ''
},
Nav_UserActualDeal: {
NAME: ''
}
}]
// Nav_CheckType: {},
// Nav_CheckTypeLevel: {
// Nav_Enums: {}
// },
// Nav_ListSafeCheckDetail: [{
// Nav_CheckArea: {},
// Nav_CheckProject: {},
// checkerNames: '',
// Nav_ListCheckDetailReason: [{}],
// listCheckDetailReason: '',
// CHECKCONTENT: '空',
// Nav_ListCheckDetailQuestion: [{
// Nav_Question: [],
// }],
// listCheckDetailQuestion: '',
// QUESTION_LEVELShow: ''
// }] //子表
},
isAudit: true,
isLoadOK: false,
lists: [],
comPickerInfo: {
showSheet: false,
columns: [],
title: '',
dataIndex: undefined,
formIndex: undefined,
name: ''
},
// subForms: [{
// title: '检查详情',
// listCheckDetailReason: '',
// // checkContent: '',
// // checkProblem: '',
// // problemLevel: '',
// // riskPosition: ''
// }],
subDataModel: {
Nav_CheckArea: {},
Nav_CheckProject: {},
checkerNames: '',
Nav_ListCheckDetailReason: [{}],
listCheckDetailReason: '',
CHECKCONTENT: '空',
Nav_ListCheckDetailQuestion: [{
Nav_Question: [],
}],
listCheckDetailQuestion: '',
QUESTION_LEVELShow: ''
},
showCheckDate: false,
showPopup: false,
showDelModalIndex: undefined,
rules: {
'activityTopic': {
type: 'string',
required: true,
trigger: ['blur', 'change']
}
},
}
},
onLoad(option) {
this.model.ID = option.ID
this.model.TaskID = option.taskID
this.TaskID = option.taskID
this.tableKey = option.tableKey
if (this.tableKey == undefined || this.tableKey != '1') {
this.isCheckerCheck = false
this.isDealUserCheck = false
this.isActualDealCheck = false
this.paddingBottom = 10
}
this.loadData()
},
methods: {
// handleOkRow() {
// console.log('ok row')
// },
// handleDelRowBefore(index) {
// this.showDelModalIndex = index
// },
// confirmDel() {
// this.model.Nav_ListSafeCheckDetail.splice(this.showDelModalIndex, 1)
// this.showDelModalIndex = undefined
// },
// handleAdd() {
// this.model.Nav_ListSafeCheckDetail.unshift(this.subDataModel)
// },
// handleTab(t) {
// this.currentTab = t
// },
loadData() {
const orgId = uni.getStorageSync('orgId')
const json = initFilter(orgId, "", "CODE", 1)
extendRule(json, 'ID', 1, this.model.ID)
extendRule(json, 'ISLOGIN', 1, 1)
json.IgnoreDataRule = true
GetDetailCheck(json).then(res => {
if (res.Nav_ListRiskSubmitContent != null && res.Nav_ListRiskSubmitContent.length > 0) {
var UserDealNameHtml = ''
var UserCheckNameHtml = ''
var UserActureNameHtml = ''
for (let i = 0; i < res.Nav_ListRiskSubmitContent.length; i++) {
res.Nav_ListRiskSubmitContent[i].CHECKCONTENT_SHOW = (res.Nav_ListRiskSubmitContent[i]
.ISBACK == 'true' ? '(返)' : '') + res.Nav_ListRiskSubmitContent[i]
.CHECKCONTENT
this.riskContentState = res.Nav_ListRiskSubmitContent[i].RiskContentState
if (!res.Nav_ListRiskSubmitContent[i].ISDEALUSERCHECK) {
UserDealNameHtml = '<a style="color:red">' + res.Nav_ListRiskSubmitContent[i]
.Nav_UserDeal.NAME + '</a>'
} else {
UserDealNameHtml = res.Nav_ListRiskSubmitContent[i].Nav_UserDeal.NAME
}
if (!res.Nav_ListRiskSubmitContent[i].ISCHECKERCHECK && res.OPERATETYPE <= 20) {
UserCheckNameHtml = '<a style="color:red">' + res.Nav_ListRiskSubmitContent[i]
.Nav_UserCheck.NAME + '</a>'
} else {
UserCheckNameHtml = res.Nav_ListRiskSubmitContent[i].Nav_UserCheck.NAME
}
if (res.OPERATETYPE < 30) {
UserActureNameHtml = '<a style="color:red">' + res.Nav_ListRiskSubmitContent[i]
.Nav_UserActualDeal.NAME + '</a>'
} else {
UserActureNameHtml = res.Nav_ListRiskSubmitContent[i].Nav_UserActualDeal.NAME
}
res.Nav_ListRiskSubmitContent[i].UserDealNameHtml = UserDealNameHtml
res.Nav_ListRiskSubmitContent[i].UserCheckNameHtml = UserCheckNameHtml
res.Nav_ListRiskSubmitContent[i].UserActureNameHtml = UserActureNameHtml
}
}
var loginID = uni.getStorageSync('appInfo').User["ID"]
if (this.isCheckerCheck)
this.isCheckerCheck = (loginID == res.Nav_ListRiskSubmitContent[0].CHECK_USER_ID &&
res.Nav_ListRiskSubmitContent[0].RiskContentState == 17) ? true : false //CHECK_USER_ID
if (this.isDealUserCheck)
this.isDealUserCheck = (loginID == res.Nav_ListRiskSubmitContent[0].DEAL_USER_ID &&
res.Nav_ListRiskSubmitContent[0].RiskContentState == 15) ? true : false //DEAL_USER_ID
if (this.isActualDealCheck)
this.isActualDealCheck = (loginID == res.Nav_ListRiskSubmitContent[0]
.ACTUAL_DEAL_USER_ID && res.Nav_ListRiskSubmitContent[0].RiskContentState == 32) ?
true : false
this.model = res
this.isLoadOK = true
})
},
handlePass(data) {
this.DEALOPINION = data.opinions
this.sureCheck(this.riskContentState == 15 ? 1 : 10) //? 10 : 1
},
handleReject(data) {
this.DEALOPINION = data.opinions
this.sureCheck(this.riskContentState == 15 ? 2 : 20) //? 20 : 2
},
// 整改责任人 验收人 同意
sureCheck(val) {
const orgId = uni.getStorageSync('orgId')
if (val == 1 || val == 2) {
//整改责任人 同意
// Parameter4 审批结果 1同意 2驳回
// Parameter3 驳回理由
if (val == 2 && (this.DEALOPINION == undefined || this.DEALOPINION == null || this.DEALOPINION ==
'')) {
uni.$showErrorInfo('请填写驳回意见')
return false;
}
// let json = initFilter(orgId, this.model.ID, null, null, null, this.TaskID, this.state.rowcount, this.DEALOPINION, val);
let json = initFilter(orgId, this.model.ID, null, null, null, this.TaskID, null, this.DEALOPINION,
val);
UserCheckAndSend(json).then(res => {
uni.$showMsgFunc('操作成功!', () => {
// if (this.tableKey == null || this.tableKey == 0) {
// uni.navigateTo({
// url: 'safeCheckIndex'
// })
// } else {
uni.navigateBack()
// }
}, 'success', 1000)
})
} else {
//验收人 同意
if (val == 20 && (this.DEALOPINION == undefined || this.DEALOPINION == null || this.DEALOPINION ==
'')) {
uni.$showErrorInfo('请填写驳回意见!')
return false;
}
let json = initFilter(orgId, this.model.ID, null, null, null, this.TaskID, val, this
.DEALOPINION);
CheckerCheck(json).then(res => {
uni.$showMsgFunc('操作成功!', () => {
// if (this.tableKey == null || this.tableKey == 0) {
// uni.navigateTo({
// url: 'safeCheckIndex'
// })
// } else {
uni.navigateBack()
// }
}, 'success', 1000)
})
}
},
sureCheckActualDeal() {
const orgId = uni.getStorageSync('orgId')
let json = initFilter(orgId, this.model.ID, null, null, null, this.TaskID);
UpdateActualDealRecord(json).then(res => {
uni.$showMsgFunc('操作成功!', () => {
// if (this.tableKey == null || this.tableKey == 0) {
// uni.navigateTo({
// url: 'safeCheckIndex'
// })
// } else {
uni.navigateBack()
// }
}, 'success', 1000)
})
},
},
computed: {},
// onNavigationBarButtonTap(e) {
// this.subForms.push({
// title: '检查详情' + (this.subForms.length + 1),
// Nav_ListCheckDetailReason: '',
// })
// }
}
</script>
<style scoped>
@import url("../../../../style/css/editTemplate.css");
.btn-wrap {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
box-sizing: border-box;
padding: 16px;
z-index: 1000;
background: #fff;
box-shadow: 0 -1px 2px 0 rgba(0, 0, 0, .05);
}
.buttons {
display: flex;
justify-content: space-between;
}
.buttons .first-btn {
margin-right: 20px;
}
/* .page-wrap {
padding: 16px 16px 72px;
}
.card {
margin-bottom: 18px;
}
.sub-form {
margin-bottom: 16px;
}
.upload-title {
color: #303133;
font-size: 15px;
line-height: 22px;
padding: 8px 0;
}
.page-wrap>>>.u-upload__button {
margin-bottom: 0;
}
.row-action {
display: flex;
}
.row-action text {
margin-left: 10px;
}
.sub-form-btns {
padding: 4px 2px;
}
.sub-form-btn {
display: flex;
}
.sub-form-btn .icon {
margin-right: 4px;
}
.btnEnable {
background: #E6E6E6;
color: #303133;
}
.btn-wrap {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
box-sizing: border-box;
padding: 16px;
z-index: 1000;
background: #fff;
box-shadow: 0 -1px 2px 0 rgba(0, 0, 0, .05);
}
.buttons {
display: flex;
justify-content: space-between;
}
.buttons .first-btn {
margin-right: 20px;
}
.bottom-button {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
padding: 10px 16px;
box-sizing: border-box;
background: #fff;
z-index: 999;
} */
</style>