<template> <view class="content"> <view class="card"> <view class="title">{{ info.TYPE === '0' ? '安全生产承诺书' : '安全生产责任状' }}</view> <view v-if="info.TYPE === '0'">{{ info.COVERPEOPLE }}:</view> <view class="text">{{ info.TEXT }}</view> <view class="collateral"> <view v-for="(item,index) in info.DETAIL" :key="index" class="item"> {{ item.value }} </view> </view> <view class="text"> <view v-if="info.TYPE === '0'"> 若违反上述承诺和未履行安全生产职责,或发生责任事故的,接受政府或公司事故调查组做出的处罚决定。 </view> <!-- <view v-if="info.TYPE === '0'">--> <!-- 承诺期限自{{ info.PROMISE_TERM_START }}至{{ info.PROMISE_TERM_END }}。--> <!-- </view>--> <view v-if="info.TYPE === '1'"> 若未履行安全生产职责,或发生生产安全事故的,接受公司或政府事故调查组做出的处罚。 </view> <!-- <view v-if="info.TYPE === '1'">--> <!-- 责任期限自{{ info.PROMISE_TERM_START }}至{{ info.PROMISE_TERM_END }}。--> <!-- </view>--> </view> <view class="footer"> <!-- <view v-if="info.TYPE === '0'" class="hairdresser">承诺单位(盖章):</view>--> <view v-if="info.TYPE === '1'" class="hairdresser"> <view class="promiser">发状人:{{ info.COVERPEOPLE }}</view> <!-- <view class="time">{{ info.CREATTIME.substring(0,10) }}</view>--> </view> <view class="respondent"> <view class="promiser"> <text> {{ info.TYPE === '0' ? '主要负责人签字' : '受状人' }}: </text> <u--image v-if="info.FILEPATH" :showLoading="true" :src="info.FILEPATH" width="200rpx" height="100px" mode="scaleToFill"></u--image> <u-button type="primary" :text="info.FILEPATH ? '重签' : '手写签字'" size="mini" class="bth-mini" @click="signShow = true"></u-button> </view> <!-- <view class="time">--> <!-- {{ info.SIGNTIME }}--> <!-- </view>--> </view> </view> <sign v-if="signShow" :signShow.sync="signShow" @confirm="signConfirm"></sign> <u-button class="mt-10" type="primary" text="提 交" @click="$u.debounce(fnLogin, 1000,true)"></u-button> </view> </view> </template> <script> import sign from "../../../components/sign/sign"; import {getPromiseInfo, setPromiseSign} from "../../../api"; export default { components: { sign }, data() { return { info: {}, signShow:false, } }, onLoad() { this.getData() }, computed: { userInfo() { return this.$store.getters.getUserInfo } }, methods:{ async getData() { let resData = await getPromiseInfo({ USER_ID: this.userInfo.USER_ID, }) const DETAIL = resData.COLLATERAL.map(item => ({ value: item.COLLATERAL, id: item.PROMISEDETAIL_ID })) this.info = { ...resData.TEXT, DETAIL, SIGNTIME: this.$u.timeFormat(new Date(), 'yyyy-mm-dd'), COVERPEOPLE: resData.COVERPEOPLE[0].USERNAME, PROMISEPEOPLE_ID: resData.PROMISEPEOPLE_ID } }, signConfirm(signImg) { this.$set(this.info, 'FILEPATH', signImg.filePath) }, async fnLogin() { if(!this.info.FILEPATH){ uni.showToast({ title:'请签字' }) return } await setPromiseSign({ filePath: this.info.FILEPATH, name: 'FFILE', formData: { ...this.info, CORPINFO_ID: this.userInfo.CORPINFO_ID }, }) uni.showToast({ title: '添加成功', }) uni.$u.route({ url: '/pages/index/index', type: 'reLaunch' }) } } } </script> <style scoped lang="scss"> .title { text-align: center; font-size: 40rpx; font-weight: bold; } .text { text-indent: 60rpx; letter-spacing: 4rpx; text-align: justify; } .collateral { text-indent: 60rpx; letter-spacing: 4rpx; text-align: justify; } .respondent, .hairdresser { margin-top: 60rpx; text-align: right; .promiser { display: flex; align-items: flex-end; justify-content: flex-end; } .time { text-align: right; margin-top: 30rpx; margin-left: 110rpx; } } </style>