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