提交代码
This commit is contained in:
1 parent
e54cb0bca0
commit
f9b5e278ea
16 files changed
+333
-314
No files matched your search
+32
-7
@@ -34,9 +34,10 @@ export default Vue.extend({
|
|||||||
@import 'uview-ui/index.scss';
|
@import 'uview-ui/index.scss';
|
||||||
|
|
||||||
/* 引入自定义图标系统 - 暂时禁用,使用uview-ui内置图标 */
|
/* 引入自定义图标系统 - 暂时禁用,使用uview-ui内置图标 */
|
||||||
/* @import 'common/icons/iconfont.css'; */
|
@import '@/static/fonts/iconfont.css';
|
||||||
|
|
||||||
/* 修复uni-app和uview-ui兼容性问题 */
|
/* 修复uni-app和uview-ui兼容性问题 */
|
||||||
|
|
||||||
page {
|
page {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
@@ -118,10 +119,10 @@ page {
|
|||||||
border-color: #d32f2f !important;
|
border-color: #d32f2f !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.u-button--info {
|
// .u-button--info {
|
||||||
background-color: #1976d2 !important;
|
// background-color: #007dfb !important;
|
||||||
border-color: #1976d2 !important;
|
// border-color: #007dfb !important;
|
||||||
}
|
// }
|
||||||
|
|
||||||
/* 标签主题色覆盖 */
|
/* 标签主题色覆盖 */
|
||||||
.u-tag--primary {
|
.u-tag--primary {
|
||||||
@@ -145,8 +146,8 @@ page {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.u-tag--info {
|
.u-tag--info {
|
||||||
background-color: #1976d2 !important;
|
background-color: #007dfb !important;
|
||||||
border-color: #1976d2 !important;
|
border-color: #007dfb !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ========== 全局温暖商务风格样式 ========== */
|
/* ========== 全局温暖商务风格样式 ========== */
|
||||||
@@ -326,4 +327,28 @@ page {
|
|||||||
.bg-warm-green {
|
.bg-warm-green {
|
||||||
background-color: #689f38;
|
background-color: #689f38;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.u-toolbar__wrapper__confirm {
|
||||||
|
color: #0051d9 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.u-button--plain.u-button--primary {
|
||||||
|
color: #ffffff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.u-button--plain.u-button--error {
|
||||||
|
color: #ffffff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.u-button--plain.u-button--info {
|
||||||
|
color: #3e3b3b !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.u-button--plain.u-button--warning {
|
||||||
|
color: #ffffff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.u-button--plain.u-button--success {
|
||||||
|
color: #ffffff !important;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -26,7 +26,8 @@
|
|||||||
<view v-if="approvalButtonShow || (id && status !== 'draft')" class="button-group">
|
<view v-if="approvalButtonShow || (id && status !== 'draft')" class="button-group">
|
||||||
<u-button
|
<u-button
|
||||||
v-if="approvalButtonShow"
|
v-if="approvalButtonShow"
|
||||||
type="primary"
|
type="warning"
|
||||||
|
shape="round"
|
||||||
plain
|
plain
|
||||||
:loading="buttonLoading"
|
:loading="buttonLoading"
|
||||||
@click="handleApproval"
|
@click="handleApproval"
|
||||||
@@ -36,8 +37,9 @@
|
|||||||
</u-button>
|
</u-button>
|
||||||
<u-button
|
<u-button
|
||||||
v-if="id && status !== 'draft'"
|
v-if="id && status !== 'draft'"
|
||||||
type="primary"
|
type="info"
|
||||||
plain
|
plain
|
||||||
|
shape="round"
|
||||||
@click="handleApprovalRecord"
|
@click="handleApprovalRecord"
|
||||||
class="action-button"
|
class="action-button"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -195,7 +195,8 @@
|
|||||||
</u-button>
|
</u-button>
|
||||||
<u-button
|
<u-button
|
||||||
v-if="task.flowStatus === 'waiting' && buttonObj.back"
|
v-if="task.flowStatus === 'waiting' && buttonObj.back"
|
||||||
type="error"
|
type="warning"
|
||||||
|
shape="round"
|
||||||
plain
|
plain
|
||||||
:loading="buttonDisabled"
|
:loading="buttonDisabled"
|
||||||
@click="handleBackProcessOpen"
|
@click="handleBackProcessOpen"
|
||||||
|
|||||||
@@ -1067,6 +1067,7 @@ export default {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
|
color: #ffffff !important;
|
||||||
|
|
||||||
&:active {
|
&:active {
|
||||||
background: rgba(255, 255, 255, 0.25);
|
background: rgba(255, 255, 255, 0.25);
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
class="location-icon-btn"
|
class="location-icon-btn"
|
||||||
@click="openLeaveLocationInMap"
|
@click="openLeaveLocationInMap"
|
||||||
>
|
>
|
||||||
<u-icon name="map-fill" size="28" color="#2979ff" />
|
<u-icon name="map-fill" size="23" color="#2979ff" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -91,6 +91,7 @@
|
|||||||
<u-button
|
<u-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="primary"
|
type="primary"
|
||||||
|
shape="round"
|
||||||
plain
|
plain
|
||||||
@tap="handleImageDownload(image)"
|
@tap="handleImageDownload(image)"
|
||||||
@click.stop.prevent="handleImageDownloadClick(image, $event)"
|
@click.stop.prevent="handleImageDownloadClick(image, $event)"
|
||||||
@@ -138,6 +139,7 @@
|
|||||||
<u-button
|
<u-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="primary"
|
type="primary"
|
||||||
|
shape="round"
|
||||||
plain
|
plain
|
||||||
@tap="handleDownloadFile(file)"
|
@tap="handleDownloadFile(file)"
|
||||||
@click.stop.prevent="handleDownloadFileClick(file, $event)"
|
@click.stop.prevent="handleDownloadFileClick(file, $event)"
|
||||||
@@ -190,7 +192,13 @@
|
|||||||
|
|
||||||
<u-form-item label="销假地点" prop="cancelLocation" required>
|
<u-form-item label="销假地点" prop="cancelLocation" required>
|
||||||
<view class="location-row">
|
<view class="location-row">
|
||||||
<u-button type="primary" size="mini" plain @click="handleGetLocation">
|
<u-button
|
||||||
|
shape="round"
|
||||||
|
type="info"
|
||||||
|
size="mini"
|
||||||
|
plain
|
||||||
|
@click="handleGetLocation"
|
||||||
|
>
|
||||||
<u-icon name="map-fill" size="20" color="#2979ff" />
|
<u-icon name="map-fill" size="20" color="#2979ff" />
|
||||||
<text style="margin-left: 8rpx">
|
<text style="margin-left: 8rpx">
|
||||||
{{ isWechatBrowser ? '微信定位' : '定位' }}
|
{{ isWechatBrowser ? '微信定位' : '定位' }}
|
||||||
@@ -207,7 +215,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="location-action-container">
|
<view class="location-action-container">
|
||||||
<view class="location-icon-btn" @click="openLocationInMap">
|
<view class="location-icon-btn" @click="openLocationInMap">
|
||||||
<u-icon name="map-fill" size="28" color="#2979ff" />
|
<u-icon name="map-fill" size="23" color="#2979ff" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -278,6 +286,7 @@
|
|||||||
v-if="image.status === 'success'"
|
v-if="image.status === 'success'"
|
||||||
size="mini"
|
size="mini"
|
||||||
type="primary"
|
type="primary"
|
||||||
|
shape="round"
|
||||||
plain
|
plain
|
||||||
@tap="handleImageDownload(image)"
|
@tap="handleImageDownload(image)"
|
||||||
@click.stop.prevent="
|
@click.stop.prevent="
|
||||||
@@ -290,6 +299,7 @@
|
|||||||
v-if="image.status === 'error'"
|
v-if="image.status === 'error'"
|
||||||
size="mini"
|
size="mini"
|
||||||
type="warning"
|
type="warning"
|
||||||
|
shape="round"
|
||||||
plain
|
plain
|
||||||
@click.stop.prevent="retryUploadFile(image, $event)"
|
@click.stop.prevent="retryUploadFile(image, $event)"
|
||||||
>
|
>
|
||||||
@@ -298,6 +308,7 @@
|
|||||||
<u-button
|
<u-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="error"
|
type="error"
|
||||||
|
shape="round"
|
||||||
plain
|
plain
|
||||||
@tap="handleImageDelete(image, index, $event)"
|
@tap="handleImageDelete(image, index, $event)"
|
||||||
@click.stop.prevent="
|
@click.stop.prevent="
|
||||||
@@ -374,6 +385,7 @@
|
|||||||
<u-button
|
<u-button
|
||||||
v-if="file.status === 'success'"
|
v-if="file.status === 'success'"
|
||||||
size="mini"
|
size="mini"
|
||||||
|
shape="round"
|
||||||
type="primary"
|
type="primary"
|
||||||
plain
|
plain
|
||||||
@tap="handleDownloadFile(file)"
|
@tap="handleDownloadFile(file)"
|
||||||
@@ -384,6 +396,7 @@
|
|||||||
<u-button
|
<u-button
|
||||||
v-if="file.status === 'error'"
|
v-if="file.status === 'error'"
|
||||||
size="mini"
|
size="mini"
|
||||||
|
shape="round"
|
||||||
type="warning"
|
type="warning"
|
||||||
plain
|
plain
|
||||||
@click.stop.prevent="retryUploadFile(file, $event)"
|
@click.stop.prevent="retryUploadFile(file, $event)"
|
||||||
@@ -392,10 +405,13 @@
|
|||||||
</u-button>
|
</u-button>
|
||||||
<u-button
|
<u-button
|
||||||
size="mini"
|
size="mini"
|
||||||
|
shape="round"
|
||||||
type="error"
|
type="error"
|
||||||
plain
|
plain
|
||||||
@tap="handleRemoveFile(file, index)"
|
@tap="handleRemoveFile(file, index)"
|
||||||
@click.stop.prevent="handleRemoveFileClick(file, index, $event)"
|
@click.stop.prevent="
|
||||||
|
handleRemoveFileClick(file, index, $event)
|
||||||
|
"
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
</u-button>
|
</u-button>
|
||||||
@@ -410,7 +426,8 @@
|
|||||||
<!-- 统一附件上传按钮 -->
|
<!-- 统一附件上传按钮 -->
|
||||||
<view class="doc-upload-section">
|
<view class="doc-upload-section">
|
||||||
<u-button
|
<u-button
|
||||||
type="primary"
|
type="info"
|
||||||
|
shape="round"
|
||||||
icon="plus"
|
icon="plus"
|
||||||
plain
|
plain
|
||||||
@click="handleDocUpload"
|
@click="handleDocUpload"
|
||||||
@@ -1346,14 +1363,14 @@ export default {
|
|||||||
// 文档删除按钮点击处理(安全的事件处理)
|
// 文档删除按钮点击处理(安全的事件处理)
|
||||||
handleRemoveFileClick(file, index, event) {
|
handleRemoveFileClick(file, index, event) {
|
||||||
console.log('销假文档删除按钮被点击:', file, index);
|
console.log('销假文档删除按钮被点击:', file, index);
|
||||||
|
|
||||||
// 强制阻止事件冒泡和默认行为
|
// 强制阻止事件冒泡和默认行为
|
||||||
if (event) {
|
if (event) {
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopImmediatePropagation();
|
event.stopImmediatePropagation();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 调用实际的删除方法
|
// 调用实际的删除方法
|
||||||
this.handleRemoveFile(file, index);
|
this.handleRemoveFile(file, index);
|
||||||
},
|
},
|
||||||
@@ -1840,7 +1857,7 @@ export default {
|
|||||||
height: 48rpx;
|
height: 48rpx;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
background: #f5faff;
|
background: #f5faff;
|
||||||
border: 1px solid #e6f1ff;
|
/* border: 1px solid #e6f1ff; */
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: all 0.2s ease;
|
transition: all 0.2s ease;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,10 +58,22 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="search-actions">
|
<view class="search-actions">
|
||||||
<u-button type="primary" size="small" class="search-btn" @click="handleQuery">
|
<u-button
|
||||||
|
type="primary"
|
||||||
|
shape="round"
|
||||||
|
size="small"
|
||||||
|
class="search-btn"
|
||||||
|
@click="handleQuery"
|
||||||
|
>
|
||||||
搜索
|
搜索
|
||||||
</u-button>
|
</u-button>
|
||||||
<u-button type="info" size="small" @click="resetQuery" style="margin-left: 10px">
|
<u-button
|
||||||
|
type="info"
|
||||||
|
shape="round"
|
||||||
|
size="small"
|
||||||
|
@click="resetQuery"
|
||||||
|
style="margin-left: 10px"
|
||||||
|
>
|
||||||
重置
|
重置
|
||||||
</u-button>
|
</u-button>
|
||||||
</view>
|
</view>
|
||||||
@@ -215,38 +227,74 @@
|
|||||||
<!-- 操作按钮 -->
|
<!-- 操作按钮 -->
|
||||||
<view class="card-actions">
|
<view class="card-actions">
|
||||||
<!-- 修改/查看按钮:根据审批状态动态显示 -->
|
<!-- 修改/查看按钮:根据审批状态动态显示 -->
|
||||||
<view
|
<u-button
|
||||||
v-if="isEditableStatus(item.approvalStatus)"
|
v-if="isEditableStatus(item.approvalStatus)"
|
||||||
class="action-btn info-btn"
|
type="primary"
|
||||||
|
shape="round"
|
||||||
|
size="small"
|
||||||
|
plain
|
||||||
@click="handleUpdate(item)"
|
@click="handleUpdate(item)"
|
||||||
>
|
>
|
||||||
<u-icon name="edit-pen" size="16" color="#3c9cff"></u-icon>
|
<u-icon
|
||||||
<text class="btn-text">修改</text>
|
name="edit-pen"
|
||||||
</view>
|
size="14"
|
||||||
<view v-else class="action-btn warning-btn" @click="handleUpdate(item)">
|
color="#ffffff"
|
||||||
<u-icon name="eye" size="16" color="#ff9900"></u-icon>
|
style="margin-right: 4px"
|
||||||
<text class="btn-text">查看</text>
|
></u-icon>
|
||||||
</view>
|
修改
|
||||||
|
</u-button>
|
||||||
|
<u-button
|
||||||
|
v-else
|
||||||
|
type="info"
|
||||||
|
shape="round"
|
||||||
|
size="small"
|
||||||
|
plain
|
||||||
|
@click="handleUpdate(item)"
|
||||||
|
>
|
||||||
|
<u-icon
|
||||||
|
name="eye"
|
||||||
|
size="14"
|
||||||
|
color="#323233"
|
||||||
|
style="margin-right: 4px"
|
||||||
|
></u-icon>
|
||||||
|
查看
|
||||||
|
</u-button>
|
||||||
|
|
||||||
<!-- 删除按钮:仅草稿状态可见 -->
|
<!-- 删除按钮:仅草稿状态可见 -->
|
||||||
<view
|
<u-button
|
||||||
v-if="item.approvalStatus === 'draft'"
|
v-if="item.approvalStatus === 'draft'"
|
||||||
class="action-btn danger-btn"
|
type="error"
|
||||||
|
size="small"
|
||||||
|
shape="round"
|
||||||
|
plain
|
||||||
@click="handleDelete(item)"
|
@click="handleDelete(item)"
|
||||||
>
|
>
|
||||||
<u-icon name="trash" size="16" color="#f56c6c"></u-icon>
|
<u-icon
|
||||||
<text class="btn-text">删除</text>
|
name="trash"
|
||||||
</view>
|
size="14"
|
||||||
|
color="#ffffff"
|
||||||
|
style="margin-right: 4px"
|
||||||
|
></u-icon>
|
||||||
|
删除
|
||||||
|
</u-button>
|
||||||
|
|
||||||
<!-- 销假按钮:仅已完成状态且需要销假时可见 -->
|
<!-- 销假按钮:仅已完成状态且需要销假时可见 -->
|
||||||
<view
|
<u-button
|
||||||
v-if="item.approvalStatus === 'finish' && item.needCancel === '1'"
|
v-if="item.approvalStatus === 'finish' && item.needCancel === '1'"
|
||||||
class="action-btn success-btn"
|
type="success"
|
||||||
|
shape="round"
|
||||||
|
size="small"
|
||||||
|
plain
|
||||||
@click="handleCancelLeave(item)"
|
@click="handleCancelLeave(item)"
|
||||||
>
|
>
|
||||||
<u-icon name="checkmark-circle" size="16" color="#5ac725"></u-icon>
|
<u-icon
|
||||||
<text class="btn-text">销假</text>
|
name="checkmark-circle"
|
||||||
</view>
|
size="14"
|
||||||
|
color="#ffffff"
|
||||||
|
style="margin-right: 4px"
|
||||||
|
></u-icon>
|
||||||
|
销假
|
||||||
|
</u-button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -975,46 +1023,6 @@ export default {
|
|||||||
padding: 20rpx;
|
padding: 20rpx;
|
||||||
border-top: 1px solid #f0f0f0;
|
border-top: 1px solid #f0f0f0;
|
||||||
gap: 16rpx;
|
gap: 16rpx;
|
||||||
// background-color: #fafafa;
|
|
||||||
}
|
|
||||||
|
|
||||||
.action-btn {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
padding: 16rpx 20rpx;
|
|
||||||
border-radius: 12rpx;
|
|
||||||
min-width: 120rpx;
|
|
||||||
transition: all 0.3s ease;
|
|
||||||
background-color: transparent;
|
|
||||||
|
|
||||||
&:active {
|
|
||||||
transform: scale(0.95);
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-text {
|
|
||||||
font-size: 24rpx;
|
|
||||||
margin-top: 8rpx;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.info-btn .btn-text {
|
|
||||||
color: #3c9cff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.danger-btn .btn-text {
|
|
||||||
color: #f56c6c;
|
|
||||||
}
|
|
||||||
|
|
||||||
.success-btn .btn-text {
|
|
||||||
color: #5ac725;
|
|
||||||
}
|
|
||||||
|
|
||||||
.warning-btn .btn-text {
|
|
||||||
color: #ff9900;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 分页容器
|
// 分页容器
|
||||||
@@ -1024,7 +1032,7 @@ export default {
|
|||||||
|
|
||||||
// 搜索按钮样式
|
// 搜索按钮样式
|
||||||
::v-deep .search-btn {
|
::v-deep .search-btn {
|
||||||
background: linear-gradient(135deg, #007aff, #0051d9) !important;
|
// background: linear-gradient(135deg, #007aff, #0051d9) !important;
|
||||||
border: none !important;
|
border: none !important;
|
||||||
box-shadow: 0 4px 16px rgba(0, 122, 255, 0.3) !important;
|
box-shadow: 0 4px 16px rgba(0, 122, 255, 0.3) !important;
|
||||||
transition: all 0.3s ease !important;
|
transition: all 0.3s ease !important;
|
||||||
|
|||||||
@@ -178,7 +178,13 @@
|
|||||||
<u-form-item label="请假地点">
|
<u-form-item label="请假地点">
|
||||||
<view class="location-row">
|
<view class="location-row">
|
||||||
<!-- 微信定位按钮单独一行 -->
|
<!-- 微信定位按钮单独一行 -->
|
||||||
<u-button type="primary" size="mini" plain @click="handleGetLocation">
|
<u-button
|
||||||
|
type="info"
|
||||||
|
shape="round"
|
||||||
|
size="mini"
|
||||||
|
plain
|
||||||
|
@click="handleGetLocation"
|
||||||
|
>
|
||||||
<u-icon name="map-fill" size="20" color="#2979ff" />
|
<u-icon name="map-fill" size="20" color="#2979ff" />
|
||||||
<text style="margin-left: 8rpx">
|
<text style="margin-left: 8rpx">
|
||||||
{{ isWechatBrowser ? '微信定位' : '定位' }}
|
{{ isWechatBrowser ? '微信定位' : '定位' }}
|
||||||
@@ -195,7 +201,13 @@
|
|||||||
</text>
|
</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="location-action-container">
|
<view class="location-action-container">
|
||||||
<u-button size="mini" type="primary" plain @click="openLocationInMap">
|
<u-button
|
||||||
|
shape="round"
|
||||||
|
size="mini"
|
||||||
|
type="info"
|
||||||
|
plain
|
||||||
|
@click="openLocationInMap"
|
||||||
|
>
|
||||||
<!-- <u-icon name="eye" size="16" color="#0051d9" /> -->
|
<!-- <u-icon name="eye" size="16" color="#0051d9" /> -->
|
||||||
<text>查看位置</text>
|
<text>查看位置</text>
|
||||||
</u-button>
|
</u-button>
|
||||||
@@ -262,6 +274,7 @@
|
|||||||
v-if="image.status === 'success'"
|
v-if="image.status === 'success'"
|
||||||
size="mini"
|
size="mini"
|
||||||
type="primary"
|
type="primary"
|
||||||
|
shape="round"
|
||||||
plain
|
plain
|
||||||
@tap="handleImageDownload(image)"
|
@tap="handleImageDownload(image)"
|
||||||
@click.stop.prevent="
|
@click.stop.prevent="
|
||||||
@@ -274,6 +287,7 @@
|
|||||||
v-if="image.status === 'error'"
|
v-if="image.status === 'error'"
|
||||||
size="mini"
|
size="mini"
|
||||||
type="warning"
|
type="warning"
|
||||||
|
shape="round"
|
||||||
plain
|
plain
|
||||||
@click.stop.prevent="retryUploadFile(image, $event)"
|
@click.stop.prevent="retryUploadFile(image, $event)"
|
||||||
>
|
>
|
||||||
@@ -283,6 +297,7 @@
|
|||||||
size="mini"
|
size="mini"
|
||||||
type="error"
|
type="error"
|
||||||
plain
|
plain
|
||||||
|
shape="round"
|
||||||
@tap="handleImageDelete(image, index)"
|
@tap="handleImageDelete(image, index)"
|
||||||
@click.stop.prevent="
|
@click.stop.prevent="
|
||||||
handleImageDeleteClick(image, index, $event)
|
handleImageDeleteClick(image, index, $event)
|
||||||
@@ -368,6 +383,7 @@
|
|||||||
v-if="file.status === 'success'"
|
v-if="file.status === 'success'"
|
||||||
size="mini"
|
size="mini"
|
||||||
type="primary"
|
type="primary"
|
||||||
|
shape="round"
|
||||||
plain
|
plain
|
||||||
@tap="handleDownloadFile(file)"
|
@tap="handleDownloadFile(file)"
|
||||||
@click.stop.prevent="handleDownloadFileClick(file, $event)"
|
@click.stop.prevent="handleDownloadFileClick(file, $event)"
|
||||||
@@ -379,6 +395,7 @@
|
|||||||
size="mini"
|
size="mini"
|
||||||
type="warning"
|
type="warning"
|
||||||
plain
|
plain
|
||||||
|
shape="round"
|
||||||
@click.stop.prevent="retryUploadFile(file, $event)"
|
@click.stop.prevent="retryUploadFile(file, $event)"
|
||||||
>
|
>
|
||||||
重试
|
重试
|
||||||
@@ -386,6 +403,7 @@
|
|||||||
<u-button
|
<u-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="error"
|
type="error"
|
||||||
|
shape="round"
|
||||||
plain
|
plain
|
||||||
@tap="handleRemoveFile(file, index)"
|
@tap="handleRemoveFile(file, index)"
|
||||||
@click.stop.prevent="
|
@click.stop.prevent="
|
||||||
@@ -406,8 +424,9 @@
|
|||||||
<!-- 统一附件上传按钮 -->
|
<!-- 统一附件上传按钮 -->
|
||||||
<view class="doc-upload-section">
|
<view class="doc-upload-section">
|
||||||
<u-button
|
<u-button
|
||||||
type="primary"
|
type="info"
|
||||||
icon="plus"
|
icon="plus"
|
||||||
|
shape="round"
|
||||||
plain
|
plain
|
||||||
@click="handleDocUpload"
|
@click="handleDocUpload"
|
||||||
style="margin-top: 20rpx; width: 100%"
|
style="margin-top: 20rpx; width: 100%"
|
||||||
@@ -495,11 +514,12 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="popup-actions">
|
<view class="popup-actions">
|
||||||
<u-button @click="handleFlowSelectionClose">取消</u-button>
|
<u-button shape="round" @click="handleFlowSelectionClose">取消</u-button>
|
||||||
<u-button
|
<u-button
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="handleFlowSelectionConfirm"
|
@click="handleFlowSelectionConfirm"
|
||||||
:disabled="!selectedFlowCode"
|
:disabled="!selectedFlowCode"
|
||||||
|
shape="round"
|
||||||
>
|
>
|
||||||
确认
|
确认
|
||||||
</u-button>
|
</u-button>
|
||||||
|
|||||||
@@ -75,23 +75,39 @@
|
|||||||
|
|
||||||
<!-- 操作按钮 -->
|
<!-- 操作按钮 -->
|
||||||
<view class="card-actions">
|
<view class="card-actions">
|
||||||
<view
|
<u-button
|
||||||
v-if="isBatchValid(item)"
|
v-if="isBatchValid(item)"
|
||||||
class="action-btn success-btn"
|
type="primary"
|
||||||
|
shape="round"
|
||||||
|
size="small"
|
||||||
@click="handleInfoComplete(item)"
|
@click="handleInfoComplete(item)"
|
||||||
>
|
>
|
||||||
<u-icon name="edit-pen" size="16" color="#5ac725"></u-icon>
|
<u-icon
|
||||||
<text class="btn-text">信息完善</text>
|
name="edit-pen"
|
||||||
</view>
|
size="14"
|
||||||
|
color="#fff"
|
||||||
<view class="action-btn warning-btn" @click="handleViewHistory(item)">
|
style="margin-right: 8rpx"
|
||||||
<u-icon name="clock" size="16" color="#ff9900"></u-icon>
|
></u-icon>
|
||||||
<text class="btn-text">提交历史</text>
|
信息完善
|
||||||
</view>
|
</u-button>
|
||||||
<view class="action-btn info-btn" @click="handleView(item)">
|
<u-button type="info" shape="round" size="small" @click="handleViewHistory(item)">
|
||||||
<u-icon name="eye" size="16" color="#3c9cff"></u-icon>
|
<u-icon
|
||||||
<text class="btn-text">查看详细</text>
|
name="clock"
|
||||||
</view>
|
size="14"
|
||||||
|
color="#323233"
|
||||||
|
style="margin-right: 8rpx"
|
||||||
|
></u-icon>
|
||||||
|
提交历史
|
||||||
|
</u-button>
|
||||||
|
<u-button type="info" shape="round" size="small" @click="handleView(item)">
|
||||||
|
<u-icon
|
||||||
|
name="eye"
|
||||||
|
size="14"
|
||||||
|
color="#323233"
|
||||||
|
style="margin-right: 8rpx"
|
||||||
|
></u-icon>
|
||||||
|
查看详细
|
||||||
|
</u-button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -471,57 +487,15 @@ export default {
|
|||||||
.card-actions {
|
.card-actions {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
|
align-items: center;
|
||||||
padding: 20rpx;
|
padding: 20rpx;
|
||||||
border-top: 1px solid #f0f0f0;
|
border-top: 1px solid #f0f0f0;
|
||||||
gap: 16rpx;
|
gap: 12rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.action-btn {
|
// u-button组件样式调整
|
||||||
display: flex;
|
::v-deep .u-button {
|
||||||
flex-direction: column;
|
font-size: 24rpx !important;
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
padding: 16rpx 20rpx;
|
|
||||||
border-radius: 12rpx;
|
|
||||||
background-color: #f8f9fa;
|
|
||||||
min-width: 120rpx;
|
|
||||||
transition: all 0.3s ease;
|
|
||||||
|
|
||||||
&:active {
|
|
||||||
transform: scale(0.95);
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-text {
|
|
||||||
font-size: 24rpx;
|
|
||||||
margin-top: 8rpx;
|
|
||||||
color: #303133;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.info-btn {
|
|
||||||
background-color: rgba(60, 156, 255, 0);
|
|
||||||
|
|
||||||
.btn-text {
|
|
||||||
color: #3c9cff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.success-btn {
|
|
||||||
background-color: rgba(90, 199, 37, 0);
|
|
||||||
|
|
||||||
.btn-text {
|
|
||||||
color: #5ac725;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.warning-btn {
|
|
||||||
background-color: rgba(255, 153, 0, 0);
|
|
||||||
|
|
||||||
.btn-text {
|
|
||||||
color: #ff9900;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 弹窗样式
|
// 弹窗样式
|
||||||
|
|||||||
@@ -1243,6 +1243,8 @@
|
|||||||
<!-- 底部操作按钮 -->
|
<!-- 底部操作按钮 -->
|
||||||
<view class="action-buttons">
|
<view class="action-buttons">
|
||||||
<u-button
|
<u-button
|
||||||
|
type="primary"
|
||||||
|
shape="round"
|
||||||
:loading="saveLoading"
|
:loading="saveLoading"
|
||||||
@click="handleSave"
|
@click="handleSave"
|
||||||
size="default"
|
size="default"
|
||||||
@@ -3365,12 +3367,12 @@ export default {
|
|||||||
|
|
||||||
// 保存按钮渐变色样式
|
// 保存按钮渐变色样式
|
||||||
.save-button {
|
.save-button {
|
||||||
background: linear-gradient(
|
// background: linear-gradient(
|
||||||
135deg,
|
// 135deg,
|
||||||
rgb(0, 81, 217) 0%,
|
// rgb(0, 81, 217) 0%,
|
||||||
rgb(51, 122, 235) 50%,
|
// rgb(51, 122, 235) 50%,
|
||||||
rgb(102, 163, 255) 100%
|
// rgb(102, 163, 255) 100%
|
||||||
) !important;
|
// ) !important;
|
||||||
border: none !important;
|
border: none !important;
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
font-weight: 600 !important;
|
font-weight: 600 !important;
|
||||||
|
|||||||
@@ -28,10 +28,22 @@
|
|||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="search-actions">
|
<view class="search-actions">
|
||||||
<u-button type="primary" size="small" class="search-btn" @click="handleQuery">
|
<u-button
|
||||||
|
shape="round"
|
||||||
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
class="search-btn"
|
||||||
|
@click="handleQuery"
|
||||||
|
>
|
||||||
搜索
|
搜索
|
||||||
</u-button>
|
</u-button>
|
||||||
<u-button type="info" size="small" class="reset-btn" @click="resetQuery">
|
<u-button
|
||||||
|
shape="round"
|
||||||
|
type="info"
|
||||||
|
size="small"
|
||||||
|
class="reset-btn"
|
||||||
|
@click="resetQuery"
|
||||||
|
>
|
||||||
重置
|
重置
|
||||||
</u-button>
|
</u-button>
|
||||||
</view>
|
</view>
|
||||||
@@ -153,10 +165,15 @@
|
|||||||
|
|
||||||
<!-- 操作按钮 -->
|
<!-- 操作按钮 -->
|
||||||
<view class="card-actions">
|
<view class="card-actions">
|
||||||
<view class="action-btn view-btn" @click="handleView(item)">
|
<u-button
|
||||||
<u-icon name="eye" size="16" color="#3c9cff"></u-icon>
|
type="primary"
|
||||||
<text class="btn-text">查看详细</text>
|
shape="round"
|
||||||
</view>
|
size="small"
|
||||||
|
icon="eye"
|
||||||
|
@click="handleView(item)"
|
||||||
|
>
|
||||||
|
查看详细
|
||||||
|
</u-button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -656,34 +673,6 @@ export default {
|
|||||||
border-top: 1px solid #f0f0f0;
|
border-top: 1px solid #f0f0f0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.action-btn {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
padding: 16rpx 20rpx;
|
|
||||||
border-radius: 12rpx;
|
|
||||||
background-color: #f8f9fa;
|
|
||||||
min-width: 120rpx;
|
|
||||||
transition: all 0.3s ease;
|
|
||||||
|
|
||||||
&:active {
|
|
||||||
transform: scale(0.95);
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.view-btn {
|
|
||||||
background-color: rgba(60, 156, 255, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-text {
|
|
||||||
font-size: 24rpx;
|
|
||||||
margin-top: 8rpx;
|
|
||||||
color: #3c9cff;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.load-more {
|
.load-more {
|
||||||
padding: 20rpx 0;
|
padding: 20rpx 0;
|
||||||
}
|
}
|
||||||
@@ -701,7 +690,7 @@ export default {
|
|||||||
|
|
||||||
// 搜索按钮样式
|
// 搜索按钮样式
|
||||||
::v-deep .search-btn {
|
::v-deep .search-btn {
|
||||||
background: linear-gradient(135deg, #007aff, #0051d9) !important;
|
// background: linear-gradient(135deg, #007aff, #0051d9) !important;
|
||||||
border: none !important;
|
border: none !important;
|
||||||
box-shadow: 0 4px 16px rgba(0, 122, 255, 0.3) !important;
|
box-shadow: 0 4px 16px rgba(0, 122, 255, 0.3) !important;
|
||||||
transition: all 0.3s ease !important;
|
transition: all 0.3s ease !important;
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
<!-- 基本信息 -->
|
<!-- 基本信息 -->
|
||||||
<view class="section">
|
<view class="section">
|
||||||
<view class="section-title">
|
<view class="section-title">
|
||||||
<u-icon name="account" size="20" color="#3c9cff"></u-icon>
|
<u-icon name="account" size="20" color="#0051d9"></u-icon>
|
||||||
<text class="title-text">学生信息</text>
|
<text class="title-text">学生信息</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="info-grid">
|
<view class="info-grid">
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
<!-- 宿舍信息 -->
|
<!-- 宿舍信息 -->
|
||||||
<view class="section">
|
<view class="section">
|
||||||
<view class="section-title">
|
<view class="section-title">
|
||||||
<u-icon name="home" size="20" color="#3c9cff"></u-icon>
|
<u-icon name="home" size="20" color="#0051d9"></u-icon>
|
||||||
<text class="title-text">宿舍信息</text>
|
<text class="title-text">宿舍信息</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="info-grid">
|
<view class="info-grid">
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
<!-- 违纪信息 -->
|
<!-- 违纪信息 -->
|
||||||
<view class="section">
|
<view class="section">
|
||||||
<view class="section-title">
|
<view class="section-title">
|
||||||
<u-icon name="warning" size="20" color="#ff6b6b"></u-icon>
|
<u-icon name="warning" size="20" color="#d32f2f"></u-icon>
|
||||||
<text class="title-text">违纪信息</text>
|
<text class="title-text">违纪信息</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="violation-info">
|
<view class="violation-info">
|
||||||
|
|||||||
@@ -22,10 +22,22 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="search-actions">
|
<view class="search-actions">
|
||||||
<u-button type="primary" size="small" class="search-btn" @click="handleQuery">
|
<u-button
|
||||||
|
type="primary"
|
||||||
|
shape="round"
|
||||||
|
size="small"
|
||||||
|
class="search-btn"
|
||||||
|
@click="handleQuery"
|
||||||
|
>
|
||||||
搜索
|
搜索
|
||||||
</u-button>
|
</u-button>
|
||||||
<u-button type="info" size="small" @click="resetQuery" style="margin-left: 10px">
|
<u-button
|
||||||
|
type="info"
|
||||||
|
shape="round"
|
||||||
|
size="small"
|
||||||
|
@click="resetQuery"
|
||||||
|
style="margin-left: 10px"
|
||||||
|
>
|
||||||
重置
|
重置
|
||||||
</u-button>
|
</u-button>
|
||||||
</view>
|
</view>
|
||||||
@@ -151,10 +163,15 @@
|
|||||||
<!-- 操作按钮 -->
|
<!-- 操作按钮 -->
|
||||||
<view class="card-actions">
|
<view class="card-actions">
|
||||||
<!-- 查看按钮 -->
|
<!-- 查看按钮 -->
|
||||||
<view class="action-btn primary-btn" @click="handleView(item)">
|
<u-button
|
||||||
<u-icon name="eye" size="16" color="#19be6b"></u-icon>
|
type="info"
|
||||||
<text class="btn-text">查看</text>
|
shape="round"
|
||||||
</view>
|
size="small"
|
||||||
|
icon="eye"
|
||||||
|
@click="handleView(item)"
|
||||||
|
>
|
||||||
|
查看
|
||||||
|
</u-button>
|
||||||
|
|
||||||
<!-- 修改按钮 -->
|
<!-- 修改按钮 -->
|
||||||
<!-- <view class="action-btn info-btn" @click="handleUpdate(item)">
|
<!-- <view class="action-btn info-btn" @click="handleUpdate(item)">
|
||||||
@@ -805,7 +822,7 @@ export default {
|
|||||||
|
|
||||||
// 搜索按钮样式
|
// 搜索按钮样式
|
||||||
::v-deep .search-btn {
|
::v-deep .search-btn {
|
||||||
background: linear-gradient(135deg, #007aff, #0051d9) !important;
|
// background: linear-gradient(135deg, #007aff, #0051d9) !important;
|
||||||
border: none !important;
|
border: none !important;
|
||||||
box-shadow: 0 4px 16px rgba(0, 122, 255, 0.3) !important;
|
box-shadow: 0 4px 16px rgba(0, 122, 255, 0.3) !important;
|
||||||
transition: all 0.3s ease !important;
|
transition: all 0.3s ease !important;
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
class="view-data-btn"
|
class="view-data-btn"
|
||||||
@click="handleViewIndicatorData(item)"
|
@click="handleViewIndicatorData(item)"
|
||||||
>
|
>
|
||||||
<u-icon name="eye" size="16" color="#3c9cff"></u-icon>
|
<u-icon name="eye" size="16" color="#0051d9"></u-icon>
|
||||||
<text class="view-data-text">查看数据</text>
|
<text class="view-data-text">查看数据</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -1373,13 +1373,13 @@ $radius-lg: 16rpx;
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 4rpx;
|
gap: 4rpx;
|
||||||
padding: 4rpx 8rpx;
|
padding: 4rpx 8rpx;
|
||||||
background-color: #f0f8ff;
|
// background-color: #f0f8ff;
|
||||||
border-radius: $radius-sm;
|
border-radius: $radius-sm;
|
||||||
}
|
}
|
||||||
|
|
||||||
.view-data-text {
|
.view-data-text {
|
||||||
font-size: 22rpx;
|
font-size: 22rpx;
|
||||||
color: $primary-color;
|
color: $u-primary;
|
||||||
}
|
}
|
||||||
|
|
||||||
.indicator-content {
|
.indicator-content {
|
||||||
|
|||||||
@@ -76,22 +76,34 @@
|
|||||||
|
|
||||||
<!-- 卡片操作按钮 -->
|
<!-- 卡片操作按钮 -->
|
||||||
<view class="card-actions">
|
<view class="card-actions">
|
||||||
<view class="action-btn info-btn" @click="handleViewSchedule(item)">
|
<u-button
|
||||||
<u-icon name="eye" size="20" color="#3c9cff"></u-icon>
|
type="info"
|
||||||
<text class="btn-text">查看计划</text>
|
size="small"
|
||||||
</view>
|
icon="eye"
|
||||||
<view
|
shape="round"
|
||||||
|
@click="handleViewSchedule(item)"
|
||||||
|
>
|
||||||
|
查看计划
|
||||||
|
</u-button>
|
||||||
|
<u-button
|
||||||
v-if="canSubmitApplication(item)"
|
v-if="canSubmitApplication(item)"
|
||||||
class="action-btn success-btn"
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
icon="edit-pen"
|
||||||
|
shape="round"
|
||||||
@click="handleSubmitApplication(item)"
|
@click="handleSubmitApplication(item)"
|
||||||
>
|
>
|
||||||
<u-icon name="edit-pen" size="20" color="#5ac725"></u-icon>
|
提交申请
|
||||||
<text class="btn-text">提交申请</text>
|
</u-button>
|
||||||
</view>
|
<u-button
|
||||||
<view class="action-btn warning-btn" @click="handleViewApplication(item)">
|
type="warning"
|
||||||
<u-icon name="file-text" size="20" color="#ff9900"></u-icon>
|
size="small"
|
||||||
<text class="btn-text">查看申请</text>
|
icon="file-text"
|
||||||
</view>
|
shape="round"
|
||||||
|
@click="handleViewApplication(item)"
|
||||||
|
>
|
||||||
|
查看申请
|
||||||
|
</u-button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -192,7 +204,12 @@
|
|||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="popup-footer">
|
<view class="popup-footer">
|
||||||
<u-button type="primary" size="medium" @click="closeScheduleDetail">
|
<u-button
|
||||||
|
type="primary"
|
||||||
|
size="medium"
|
||||||
|
shape="round"
|
||||||
|
@click="closeScheduleDetail"
|
||||||
|
>
|
||||||
确定
|
确定
|
||||||
</u-button>
|
</u-button>
|
||||||
</view>
|
</view>
|
||||||
@@ -619,40 +636,6 @@ export default {
|
|||||||
gap: 16rpx;
|
gap: 16rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.action-btn {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
padding: 16rpx 20rpx;
|
|
||||||
border-radius: 12rpx;
|
|
||||||
min-width: 120rpx;
|
|
||||||
transition: all 0.3s ease;
|
|
||||||
|
|
||||||
&:active {
|
|
||||||
transform: scale(0.95);
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-text {
|
|
||||||
font-size: 24rpx;
|
|
||||||
margin-top: 8rpx;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.info-btn .btn-text {
|
|
||||||
color: #3c9cff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.success-btn .btn-text {
|
|
||||||
color: #5ac725;
|
|
||||||
}
|
|
||||||
|
|
||||||
.warning-btn .btn-text {
|
|
||||||
color: #ff9900;
|
|
||||||
}
|
|
||||||
|
|
||||||
.load-more {
|
.load-more {
|
||||||
padding: 20rpx 0;
|
padding: 20rpx 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -185,6 +185,7 @@
|
|||||||
v-if="image.status === 'success'"
|
v-if="image.status === 'success'"
|
||||||
size="mini"
|
size="mini"
|
||||||
type="primary"
|
type="primary"
|
||||||
|
shape="round"
|
||||||
plain
|
plain
|
||||||
@tap="handleImageDownload(image)"
|
@tap="handleImageDownload(image)"
|
||||||
@click.stop.prevent="
|
@click.stop.prevent="
|
||||||
@@ -197,6 +198,7 @@
|
|||||||
v-if="image.status === 'error'"
|
v-if="image.status === 'error'"
|
||||||
size="mini"
|
size="mini"
|
||||||
type="warning"
|
type="warning"
|
||||||
|
shape="round"
|
||||||
plain
|
plain
|
||||||
@click.stop.prevent="retryUploadFile(image, $event)"
|
@click.stop.prevent="retryUploadFile(image, $event)"
|
||||||
>
|
>
|
||||||
@@ -206,6 +208,7 @@
|
|||||||
v-if="canApply"
|
v-if="canApply"
|
||||||
size="mini"
|
size="mini"
|
||||||
type="error"
|
type="error"
|
||||||
|
shape="round"
|
||||||
plain
|
plain
|
||||||
@tap="handleImageDelete(image, index)"
|
@tap="handleImageDelete(image, index)"
|
||||||
@click.stop.prevent="
|
@click.stop.prevent="
|
||||||
@@ -317,6 +320,7 @@
|
|||||||
v-if="file.status === 'success'"
|
v-if="file.status === 'success'"
|
||||||
size="mini"
|
size="mini"
|
||||||
type="primary"
|
type="primary"
|
||||||
|
shape="round"
|
||||||
plain
|
plain
|
||||||
@tap="handleDownloadFile(file)"
|
@tap="handleDownloadFile(file)"
|
||||||
@click.stop.prevent="
|
@click.stop.prevent="
|
||||||
@@ -329,6 +333,7 @@
|
|||||||
v-if="file.status === 'error'"
|
v-if="file.status === 'error'"
|
||||||
size="mini"
|
size="mini"
|
||||||
type="warning"
|
type="warning"
|
||||||
|
shape="round"
|
||||||
plain
|
plain
|
||||||
@click.stop.prevent="retryUploadFile(file, $event)"
|
@click.stop.prevent="retryUploadFile(file, $event)"
|
||||||
>
|
>
|
||||||
@@ -338,9 +343,12 @@
|
|||||||
v-if="canApply"
|
v-if="canApply"
|
||||||
size="mini"
|
size="mini"
|
||||||
type="error"
|
type="error"
|
||||||
|
shape="round"
|
||||||
plain
|
plain
|
||||||
@tap="handleRemoveFile(file, index)"
|
@tap="handleRemoveFile(file, index)"
|
||||||
@click.stop.prevent="handleRemoveFileClick(file, index, $event)"
|
@click.stop.prevent="
|
||||||
|
handleRemoveFileClick(file, index, $event)
|
||||||
|
"
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
</u-button>
|
</u-button>
|
||||||
@@ -357,7 +365,8 @@
|
|||||||
<!-- 统一附件上传按钮 -->
|
<!-- 统一附件上传按钮 -->
|
||||||
<view v-if="canApply" class="doc-upload-section">
|
<view v-if="canApply" class="doc-upload-section">
|
||||||
<u-button
|
<u-button
|
||||||
type="primary"
|
type="info"
|
||||||
|
shape="round"
|
||||||
icon="plus"
|
icon="plus"
|
||||||
plain
|
plain
|
||||||
@click="handleDocUpload"
|
@click="handleDocUpload"
|
||||||
@@ -390,6 +399,7 @@
|
|||||||
<u-button
|
<u-button
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="submitForm"
|
@click="submitForm"
|
||||||
|
shape="round"
|
||||||
:loading="buttonLoading"
|
:loading="buttonLoading"
|
||||||
:disabled="!canApply"
|
:disabled="!canApply"
|
||||||
custom-style="flex: 1; margin-right: 16rpx;"
|
custom-style="flex: 1; margin-right: 16rpx;"
|
||||||
@@ -402,6 +412,7 @@
|
|||||||
@click="handleDeleteApplication"
|
@click="handleDeleteApplication"
|
||||||
:loading="deleteLoading"
|
:loading="deleteLoading"
|
||||||
plain
|
plain
|
||||||
|
shape="round"
|
||||||
custom-style="flex: 1;"
|
custom-style="flex: 1;"
|
||||||
>
|
>
|
||||||
删除申请
|
删除申请
|
||||||
|
|||||||
@@ -76,24 +76,40 @@
|
|||||||
|
|
||||||
<!-- 操作按钮 -->
|
<!-- 操作按钮 -->
|
||||||
<view class="card-actions">
|
<view class="card-actions">
|
||||||
<view class="action-btn info-btn" @click="handleView(item)">
|
<u-button
|
||||||
<u-icon name="eye" size="16" color="#3c9cff"></u-icon>
|
type="info"
|
||||||
<text class="btn-text">查看</text>
|
size="small"
|
||||||
</view>
|
icon="eye"
|
||||||
|
shape="round"
|
||||||
<view
|
icon-color="#323233"
|
||||||
v-if="item.status === '1'"
|
@click="handleView(item)"
|
||||||
class="action-btn warning-btn"
|
plain
|
||||||
@click="handleRevokeApply(item)"
|
|
||||||
>
|
>
|
||||||
<u-icon name="edit-pen" size="16" color="#ff9900"></u-icon>
|
查看
|
||||||
<text class="btn-text">撤销申请</text>
|
</u-button>
|
||||||
</view>
|
<u-button
|
||||||
|
v-if="item.status === '1'"
|
||||||
<view class="action-btn success-btn" @click="handleViewRevoke(item)">
|
type="warning"
|
||||||
<u-icon name="file-text" size="16" color="#5ac725"></u-icon>
|
size="small"
|
||||||
<text class="btn-text">查看撤销申请</text>
|
shape="round"
|
||||||
</view>
|
icon="edit-pen"
|
||||||
|
icon-color="#ffffff"
|
||||||
|
@click="handleRevokeApply(item)"
|
||||||
|
plain
|
||||||
|
>
|
||||||
|
撤销申请
|
||||||
|
</u-button>
|
||||||
|
<u-button
|
||||||
|
type="success"
|
||||||
|
size="small"
|
||||||
|
shape="round"
|
||||||
|
icon="file-text"
|
||||||
|
icon-color="#ffffff"
|
||||||
|
@click="handleViewRevoke(item)"
|
||||||
|
plain
|
||||||
|
>
|
||||||
|
查看撤销申请
|
||||||
|
</u-button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -412,59 +428,12 @@ export default {
|
|||||||
.card-actions {
|
.card-actions {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
|
align-items: center;
|
||||||
padding: 20rpx;
|
padding: 20rpx;
|
||||||
border-top: 1px solid #f0f0f0;
|
border-top: 1px solid #f0f0f0;
|
||||||
gap: 16rpx;
|
gap: 16rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.action-btn {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
padding: 16rpx 20rpx;
|
|
||||||
border-radius: 12rpx;
|
|
||||||
// background-color: #f8f9fa;
|
|
||||||
min-width: 120rpx;
|
|
||||||
transition: all 0.3s ease;
|
|
||||||
|
|
||||||
&:active {
|
|
||||||
transform: scale(0.95);
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-text {
|
|
||||||
font-size: 24rpx;
|
|
||||||
margin-top: 8rpx;
|
|
||||||
color: #303133;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.info-btn {
|
|
||||||
// background-color: rgba(60, 156, 255, 0.1);
|
|
||||||
|
|
||||||
.btn-text {
|
|
||||||
color: #3c9cff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.success-btn {
|
|
||||||
// background-color: rgba(90, 199, 37, 0.1);
|
|
||||||
|
|
||||||
.btn-text {
|
|
||||||
color: #5ac725;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.warning-btn {
|
|
||||||
// background-color: rgba(255, 153, 0, 0.1);
|
|
||||||
|
|
||||||
.btn-text {
|
|
||||||
color: #ff9900;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.load-more {
|
.load-more {
|
||||||
padding: 40rpx 20rpx;
|
padding: 40rpx 20rpx;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user