增强办公,新增审批,缺少电子签章功能

This commit is contained in:
2026-04-22 13:10:58 +08:00
parent 3db80e5ff7
commit 244dc8a056
6 changed files with 287 additions and 43 deletions

View File

@@ -48,6 +48,14 @@
</view>
</template>
<template v-else-if="field.type === 'sealPreview'">
<view class="seal-preview-box" v-if="getSealPreviewSrc(field)">
<image class="seal-preview-image" :src="getSealPreviewSrc(field)" mode="aspectFit"></image>
<view class="seal-preview-text">盖章示例当前选择</view>
</view>
<view class="input-like" v-else>请先选择用印类型</view>
</template>
<template v-else-if="field.type === 'file'">
<view class="file-picker-wrap">
<view class="upload-box clickable" :class="{ disabled: uploadingFieldKey === field.key }" @tap="openFilePicker(field.key)">
@@ -246,6 +254,16 @@ export default {
normalizeInputType(inputType) {
return inputType || 'text'
},
getSealPreviewSrc(field) {
if (!field || field.key !== 'sealType') return ''
const value = this.form[field.key]
const map = {
'山东福安德信息科技有限公司采购部专用章FAD201400201.png': 'http://49.232.154.205:10900/fad-oa/files%2Fstamp%2F山东福安德信息科技有限公司采购部专用章FAD201400201.png',
'山东福安德信息科技有限公司采购部专用章FAD201400202.png': 'http://49.232.154.205:10900/fad-oa/files%2Fstamp%2F山东福安德信息科技有限公司采购部专用章FAD201400202.png',
'山东福安德信息科技有限公司采购部专用章FAD201400401.png': 'http://49.232.154.205:10900/fad-oa/files%2Fstamp%2F山东福安德信息科技有限公司采购部专用章FAD201400401.png'
}
return map[value] || ''
},
onInputFocus(fieldKey) {
this.currentInputFieldKey = fieldKey
},

View File

@@ -1,6 +1,11 @@
<template>
<!-- 出差申请详情容器复用统一卡片样式 -->
<view class="reimburse-detail-container">
<view class="detail-item single-item status-item">
<text class="item-icon icon-status"></text>
<view class="item-label">出差状态</view>
<view class="item-value">{{ travelStatusText }}</view>
</view>
<!-- 出差类型 - 带分类图标 -->
<view class="detail-item single-item">
<text class="item-icon icon-travel-type"></text>
@@ -66,6 +71,11 @@
<view class="item-label">申请时间</view>
<view class="item-value">{{ detail.createTime || '无' }}</view>
</view>
<view class="detail-item single-item" v-if="detail.actualEndTime">
<text class="item-icon icon-end-time"></text>
<view class="item-label">实际结束时间</view>
<view class="item-value">{{ detail.actualEndTime }}</view>
</view>
<view class="detail-item single-item">
<text class="item-icon icon-date"></text>
@@ -74,6 +84,10 @@
<oa-file-list :files="detail.accessoryApplyIds"></oa-file-list>
</view>
</view>
<view class="detail-action-row" v-if="canEarlyEnd">
<button class="early-end-btn" @click="handleEarlyEnd">提前结束</button>
</view>
<view class="detail-item single-item amount-item" @click="openPopup" v-if="detail.projectId">
<text class="item-icon icon-creator"></text>
@@ -147,6 +161,14 @@
detail: {}
}
},
computed: {
travelStatusText() {
return this.detail.actualEndTime ? '已结束' : '出差中';
},
canEarlyEnd() {
return !this.detail.actualEndTime;
}
},
watch: {
bizId: {
handler(newVal) {
@@ -175,6 +197,9 @@
},
openPopup() {
this.$refs.popup.open()
},
handleEarlyEnd() {
this.$emit('early-end', this.detail)
}
}
}