Merge remote-tracking branch 'origin/anhui-mall-ui-test' into anhui-mall-ui-test

This commit is contained in:
jiang 2026-01-23 18:13:09 +08:00
commit bf09df4fbc
20 changed files with 698 additions and 145 deletions

View File

@ -769,12 +769,12 @@
<!-- 弹框 -->
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" append-to-body width="40%">
<el-table :data="dialogList" fit highlight-current-row style="width: 100%" height="546" stripe>
<el-table :data="dialogList" fit highlight-current-row style="width: 100%" stripe>
<el-table-column type="index" width="55" label="序号" align="center"/>
<el-table-column label="附件名称" prop="fileName" align="left">
<!-- 插槽 -->
<template v-slot="{ row }">
<span style="color: #00a288; cursor: pointer" @click="handleFile(row)">{{ row.fileName }}</span>
<span style="color: #2CBAB2; cursor: pointer" @click="handleFile(row)">{{ row.fileName }}</span>
</template>
</el-table-column>
</el-table>
@ -2205,7 +2205,7 @@ export default {
.center-dialog {
::v-deep .el-dialog {
margin: 0 auto;
top: 50%;
top: 40%;
transform: translateY(-50%);
}
}
@ -2274,7 +2274,7 @@ export default {
}
::v-deep.el-loading-spinner{
position: absolute;
top: 30%;
top: 40%;
left: 44%;
width: 12%;
height: 15%;

View File

@ -6,7 +6,7 @@
<el-card class="search-box">
<el-row :gutter="10" style="display: flex; justify-content: space-between">
<el-col :span="5">
<el-form-item label="装备名称" prop="name" label-width="70px">
<el-form-item label="装备名称" prop="name" label-width="120px">
<el-input
style="width: 100%"
v-model="queryParams.name"
@ -137,7 +137,7 @@
</el-table-column>
<el-table-column align="center" show-overflow-tooltip prop="address" label="操作">
<template slot-scope="scope">
<el-button type="text" size="mini" @click="onHandleRetire(scope.row)">退役</el-button>
<el-button type="text" style="color: #2CBAB2;" @click="onHandleRetire(scope.row)">退役</el-button>
</template>
</el-table-column>
</el-table>
@ -293,6 +293,33 @@ export default {
</script>
<style lang="scss" scoped>
.app-container{
padding: 20px;
background: #F0F0F0;
}
::v-deep.el-button--primary{
background-color: #2CBAB2;
border-color: #2CBAB2;
}
::v-deep.el-button--danger{
background-color: #FF5129;
border-color: #FF5129;
}
::v-deep.el-tag.el-tag--info {
background-color: #F5F5F5;
border-color: #B3B3B3;
color: #B3B3B3;
}
::v-deep.el-tag.el-tag--warn{
background-color: rgba(255,171,41,0.1);;
border: #FFAB29;
color: #FFAB29;
}
::v-deep.el-tag.el-tag--success {
background-color: rgba(52,226,199,0.1);
border-color: #34E2C7;
color: #34E2C7;
}
.red {
color: red;

View File

@ -1,10 +1,9 @@
<template>
<div class="app-container">
<GoBack :title="'退役审核'" @goBack="goBack"/>
<el-card style="margin-bottom: 20px">
<div class="app-container">
<el-card style="margin-bottom: 20px" shadow="never">
<GoBack :title="'退役审核'" @goBack="goBack"/>
<!-- 基本信息 -->
<el-form ref="baseForm" :model="baseInfo" label-width="70px" inline style="height: 36px">
<el-form ref="baseForm" :model="baseInfo" label-width="120px" inline style="height: 36px">
<el-form-item label="申请单号" style="margin-bottom: 0; height: 36px">
<!-- 申请单号禁用的输入框 -->
@ -43,20 +42,123 @@
</el-form>
</el-card>
<!-- 装备和工具列表 -->
<el-card>
<el-row :gutter="24">
<el-col :span="6">
<el-card shadow="never" style="min-height: 640px;">
<div style="display: flex;align-items: center;padding-bottom: 20px;border-bottom: 1px solid #F0F0F0;">
<span style="font-size: 20px; font-weight: 800;margin-right: 48px;">审批进度</span>
</div>
<div class="approval-progress" v-if="processConfig && processConfig.nodeList && !collapsed">
<el-timeline>
<el-timeline-item
v-for="node in processConfig.nodeList"
:key="node.nodeOrder"
:timestamp="getNodeRecord(node) ? getNodeRecord(node).approveTime : ''"
placement="top"
>
<template #dot>
<img src="../../assets/images/timeIcon.png" class="custom-icon" alt="">
</template>
<div class="timeline-content">
<div class="node-title">
<span class="node-name">节点{{ node.nodeOrder }}{{ node.nodeName }}</span>
<el-tag :type="getNodeTagType(node)">
{{ getNodeStatusLabel(node) }}
</el-tag>
</div>
<div class="node-info">
<div>审批人{{ node.name }}</div>
<div v-if="getNodeRecord(node)">
<div>审批结果{{ getNodeRecord(node).approveResult === '1' ? '通过' : '驳回' }}</div>
<div>审批意见{{ getNodeRecord(node).approveOpinion }}</div>
<div>审批时间{{ getNodeRecord(node).approveTime }}</div>
</div>
<div v-else-if="node.nodeOrder === approvalInstance.currentNodeOrder">
状态待审批
</div>
<div v-else>
状态等待上一节点审批
</div>
</div>
</div>
</el-timeline-item>
</el-timeline>
</div>
<div class="approval-actions" v-if="canApprove && !collapsed">
<div class="section-header">
<span>审批操作</span>
</div>
<el-form ref="approveForm" :model="approveData" label-width="100px">
<el-form-item label="审批意见">
<el-input
v-model="approveData.opinion"
type="textarea"
rows="4"
placeholder="请输入审批意见"
maxlength="500"
show-word-limit
/>
</el-form-item>
<el-form-item>
<el-button type="success" @click="onHandleApprove">通过</el-button>
<el-button type="danger" @click="onHandleReject">驳回</el-button>
<el-button @click="onHandleCancel">取消</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
</el-col>
<el-col :span="18">
<el-card shadow="never">
<div class="mb8" style="display: flex;align-items: center;padding-bottom: 20px;border-bottom: 1px solid #F0F0F0;">
<span style="font-size: 20px; font-weight: 800;margin-right: 48px;">退役审核列表</span>
<span style="font-size: 16px;color: #808080;">{{detailList.length}}条记录</span>
</div>
<el-table ref="detailTable" :data="detailList" class="my-table" style="width: 100%" border stripe size="small"
fit @selection-change="onSelectionChange"
>
<el-table-column type="selection" width="50"
:selectable="row => !row.reviewStatus || (row.reviewStatus !== '1' && row.reviewStatus !== '2')"
/>
<el-table-column align="center" type="index" label="序号" width="80"/>
<el-table-column align="center" prop="type" label="分类" width="100"/>
<el-table-column align="center" prop="typeName" label="类目" min-width="100"/>
<el-table-column align="center" prop="typeModelName" label="规格型号" width="150"/>
<el-table-column align="center" prop="manageMode" label="管理模式" width="120"/>
<el-table-column align="center" prop="devCode" label="设备编码" min-width="120"/>
<el-table-column align="center" prop="scrapQuantity" label="申请报废数量" width="120"/>
<el-table-column align="center" prop="retireReason" label="退役原因" min-width="120"
show-overflow-tooltip
/>
<el-table-column align="center" label="报废附件" width="120">
<template slot-scope="scope">
<el-button type="text" style="color: #2CBAB2" @click="onHandleViewAttachment(scope.row)">
查看
</el-button>
</template>
</el-table-column>
<el-table-column align="center" prop="reviewStatus" label="审批状态" width="100">
<template slot-scope="scope">
<el-tag :type="getReviewStatusType(scope.row.reviewStatus)">
{{ getReviewStatusLabel(scope.row.reviewStatus) }}
</el-tag>
</template>
</el-table-column>
</el-table>
</el-card>
</el-col>
</el-row>
<!-- <el-card shadow="never">
<div class="detail-section">
<div class="section-header">
<el-row :gutter="20">
<el-col :span="24">
<span style="font-size: 20px; font-weight: 800">退役审核列表</span>
</el-col>
<el-col :span="0" style="display: flex; justify-content: flex-end">
<!-- <el-button type="primary" @click="onHandleApproveBatch">通过</el-button> -->
<!-- <el-button type="primary" @click="onHandleRejectBatch">驳回</el-button> -->
<!-- <el-button @click="onHandleCancel">返回</el-button>-->
<el-col :span="0" style="display: flex; justify-content: flex-end">
</el-col>
</el-row>
</el-row>
</div>
<el-row :gutter="20">
@ -79,7 +181,7 @@
/>
<el-table-column align="center" label="报废附件" width="120">
<template slot-scope="scope">
<el-button type="text" size="mini" @click="onHandleViewAttachment(scope.row)">
<el-button type="text" style="color: #2CBAB2" @click="onHandleViewAttachment(scope.row)">
查看
</el-button>
</template>
@ -94,8 +196,7 @@
</el-table>
</el-col>
<el-col :span="collapsed ? 1 : 6">
<!-- 审批进度 -->
<el-col :span="collapsed ? 1 : 6">
<div class="approval-progress" v-if="processConfig && processConfig.nodeList && !collapsed">
<div class="section-header">
<span>审批进度</span>
@ -131,9 +232,7 @@
</div>
</el-timeline-item>
</el-timeline>
</div>
<!-- 审批操作 -->
</div>
<div class="approval-actions" v-if="canApprove && !collapsed">
<div class="section-header">
<span>审批操作</span>
@ -155,10 +254,8 @@
<el-button @click="onHandleCancel">取消</el-button>
</el-form-item>
</el-form>
</div>
<div style="position: absolute; width: 10px; top: 50%; right: 0">
<!-- 右侧折叠/展开按钮 -->
</div>
<div style="position: absolute; width: 10px; top: 50%; right: 0">
<el-button
size="mini"
@click="collapsed = !collapsed"
@ -167,16 +264,9 @@
/>
</div>
</el-col>
</el-row>
</div>
<!-- 操作按钮 -->
<!-- <div class="action-buttons" v-if="!canApprove">
<el-button @click="onHandleCancel">返回</el-button>
</div> -->
</el-card>
</el-row>
</div>
</el-card> -->
</div>
</template>
@ -549,6 +639,32 @@ export default {
</script>
<style lang="scss" scoped>
.app-container{
background: #F0F0F0;
}
::v-deep.el-button--primary{
background-color: #2CBAB2;
border-color: #2CBAB2;
}
::v-deep.el-button--danger{
background-color: #FF5129;
border-color: #FF5129;
}
::v-deep.el-tag.el-tag--info {
background-color: #F5F5F5;
border-color: #B3B3B3;
color: #B3B3B3;
}
::v-deep.el-tag.el-tag--warn{
background-color: rgba(255,171,41,0.1);;
border: #FFAB29;
color: #FFAB29;
}
::v-deep.el-tag.el-tag--success {
background-color: rgba(52,226,199,0.1);
border-color: #34E2C7;
color: #34E2C7;
}
.box-card {
margin: 20px;
}
@ -577,6 +693,7 @@ export default {
.node-title {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
margin-bottom: 8px;
@ -587,13 +704,21 @@ export default {
}
.node-info {
font-size: 12px;
color: #606266;
font-size: 12px;
background: rgba(52, 226, 199,0.08);
color: #3F3F3F;
padding: 15px;
border-radius:5px;
line-height: 1.8;
}
}
}
.custom-icon{
width: 20px;
height: 20px;
}
.approval-actions {
/* border: 1px solid #dcdfe6;
border-radius: 4px;

View File

@ -1,10 +1,8 @@
<template>
<div class="app-container">
<el-row>
<el-form ref="queryForm" size="small" label-width="auto" :model="queryParams">
<el-card class="search-box">
<el-form ref="queryForm" size="small" label-width="140px" :model="queryParams">
<el-card class="search-box" shadow="never">
<el-row :gutter="20" style="display: flex; justify-content: space-between">
<el-col :span="5">
<el-form-item label="任务状态" prop="reviewStatus">
@ -43,7 +41,7 @@
</el-card>
</el-form>
<el-card class="content-box">
<el-card class="content-box" shadow="never">
<el-row :gutter="10" class="mb8" justify="end">
<el-col :span="4">
<span style="font-size: 20px; font-weight: 800">退役审核列表</span>
@ -83,8 +81,8 @@
<el-table-column align="center" show-overflow-tooltip prop="createTime" label="申请时间" />
<el-table-column align="center" show-overflow-tooltip label="操作">
<template slot-scope="scope">
<el-button v-if="scope.row.reviewStatus != 0" size="mini" type="text" icon="el-icon-zoom-in" @click="onHandleView(scope.row)">查看</el-button>
<el-button v-if="scope.row.reviewStatus == 0" size="mini" type="text" icon="el-icon-edit" @click="onHandleAudit(scope.row)">审核</el-button>
<el-button v-if="scope.row.reviewStatus != 0" style="color: #2CBAB2;" type="text" @click="onHandleView(scope.row)">查看</el-button>
<el-button v-if="scope.row.reviewStatus == 0" style="color: #2CBAB2;" type="text" @click="onHandleAudit(scope.row)">审核</el-button>
</template>
</el-table-column>
</el-table>
@ -229,6 +227,32 @@ export default {
</script>
<style lang="scss" scoped>
.app-container{
background: #F0F0F0;
}
::v-deep.el-button--primary{
background-color: #2CBAB2;
border-color: #2CBAB2;
}
::v-deep.el-button--danger{
background-color: #FF5129;
border-color: #FF5129;
}
::v-deep.el-tag.el-tag--info {
background-color: #F5F5F5;
border-color: #B3B3B3;
color: #B3B3B3;
}
::v-deep.el-tag.el-tag--warn{
background-color: rgba(255,171,41,0.1);;
border: #FFAB29;
color: #FFAB29;
}
::v-deep.el-tag.el-tag--success {
background-color: rgba(52,226,199,0.1);
border-color: #34E2C7;
color: #34E2C7;
}
.el-form-item {
margin-bottom: 0; /* 取消form-item的默认下边距 */

View File

@ -456,7 +456,30 @@ export default {
}
</script>
<style lang="scss" scoped>
<style lang="scss" scoped>
::v-deep.el-button--primary{
background-color: #2CBAB2;
border-color: #2CBAB2;
}
::v-deep.el-button--danger{
background-color: #FF5129;
border-color: #FF5129;
}
::v-deep.el-tag.el-tag--info {
background-color: #F5F5F5;
border-color: #B3B3B3;
color: #B3B3B3;
}
::v-deep.el-tag.el-tag--warn{
background-color: rgba(255,171,41,0.1);;
border: #FFAB29;
color: #FFAB29;
}
::v-deep.el-tag.el-tag--success {
background-color: rgba(52,226,199,0.1);
border-color: #34E2C7;
color: #34E2C7;
}
::v-deep .red {
color: red; /* Element UI官方危险色比纯red更贴合UI风格 */
font-weight: 500; /* 可选:加粗突出告警文本 */

View File

@ -1,13 +1,14 @@
<template>
<div class="app-container">
<GoBack :title="'退役申请'" @goBack="goBack"/>
<el-card style="margin-bottom: 20px">
<div slot="header" class="clearfix">
<el-card style="margin-bottom: 20px" shadow="never">
<GoBack :title="'退役申请'" @goBack="goBack"/>
<!-- <div slot="header" class="clearfix">
<span>{{ isNew ? '新增退役申请' : '退役申请明细' }}</span>
</div>
</div> -->
<!-- 基本信息 -->
<el-form ref="baseForm" :model="baseInfo" label-width="70px" inline style="height: 36px">
<el-form ref="baseForm" :model="baseInfo" label-width="120px" inline style="height: 36px">
<el-form-item label="申请单号" style="margin-bottom: 0; height: 36px">
<!-- 申请单号禁用的输入框 -->
<el-input
@ -39,7 +40,7 @@
</el-card>
<!-- 装备和工具列表 -->
<el-card>
<el-card shadow="never">
<div class="detail-section">
<div class="section-header">
<el-col :span="4">
@ -91,16 +92,15 @@
v-if="canEdit && !scope.row.bmFileInfos.length > 0"
:file-list="scope.row.bmFileInfos"
>
<el-button type="primary" size="mini">上传附件</el-button>
<el-button type="primary" style="color: #2CBAB2;">上传附件</el-button>
</el-upload>
<el-button v-if="scope.row.bmFileInfos && scope.row.bmFileInfos.length > 0" type="text" size="mini"
<el-button v-if="scope.row.bmFileInfos && scope.row.bmFileInfos.length > 0" type="text" style="color: #2CBAB2;"
@click="picturePreview(scope.row)"
>
查看
</el-button>
<el-button v-if="canEdit && scope.row.bmFileInfos && scope.row.bmFileInfos.length > 0" type="text"
size="mini"
style="color: red" @click="deleteFile(scope.row)"
style="color: #FF5129" @click="deleteFile(scope.row)"
>
删除附件
</el-button>
@ -401,6 +401,32 @@ export default {
</script>
<style lang="scss" scoped>
.app-container{
background: #F0F0F0;
}
::v-deep.el-button--primary{
background-color: #2CBAB2;
border-color: #2CBAB2;
}
::v-deep.el-button--danger{
background-color: #FF5129;
border-color: #FF5129;
}
::v-deep.el-tag.el-tag--info {
background-color: #F5F5F5;
border-color: #B3B3B3;
color: #B3B3B3;
}
::v-deep.el-tag.el-tag--warn{
background-color: rgba(255,171,41,0.1);;
border: #FFAB29;
color: #FFAB29;
}
::v-deep.el-tag.el-tag--success {
background-color: rgba(52,226,199,0.1);
border-color: #34E2C7;
color: #34E2C7;
}
.box-card {
margin: 20px;
}

View File

@ -2,7 +2,7 @@
<div class="app-container">
<el-row>
<el-form ref="queryForm" size="small" label-width="auto" :model="queryParams" inline>
<el-card class="search-box">
<el-card class="search-box" shadow="never">
<el-row >
<el-form-item label="任务状态" prop="reviewStatus" >
@ -43,7 +43,7 @@
</el-card>
</el-form>
<el-card class="content-box">
<el-card class="content-box" shadow="never">
<el-row>
<el-col :span="4">
<span style="font-size: 20px; font-weight: 800">退役申请列表</span>
@ -70,9 +70,9 @@
<el-table-column align="center" show-overflow-tooltip prop="createTime" label="申请时间" />
<el-table-column align="center" show-overflow-tooltip label="操作" width="250">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-zoom-in" @click="onHandleView(scope.row)">查看</el-button>
<el-button v-if="scope.row.reviewStatus == '0'" type="text" icon="el-icon-edit" size="mini" @click="onHandleEdit(scope.row)">编辑</el-button>
<el-button v-if="scope.row.reviewStatus == '0' || scope.row.reviewStatus == '3'" type="text" icon="el-icon-delete" size="mini" style="color:red;" @click="onHandleDelete(scope.row)">删除</el-button>
<el-button type="text" style="color: #2CBAB2;" @click="onHandleView(scope.row)">查看</el-button>
<el-button v-if="scope.row.reviewStatus == '0'" type="text" style="color: #2CBAB2;" @click="onHandleEdit(scope.row)">编辑</el-button>
<el-button v-if="scope.row.reviewStatus == '0' || scope.row.reviewStatus == '3'" type="text" style="color:#FF5129;" @click="onHandleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
@ -224,6 +224,32 @@ export default {
</script>
<style lang="scss" scoped>
.app-container{
background: #F0F0F0;
}
::v-deep.el-button--primary{
background-color: #2CBAB2;
border-color: #2CBAB2;
}
::v-deep.el-button--danger{
background-color: #FF5129;
border-color: #FF5129;
}
::v-deep.el-tag.el-tag--info {
background-color: #F5F5F5;
border-color: #B3B3B3;
color: #B3B3B3;
}
::v-deep.el-tag.el-tag--warn{
background-color: rgba(255,171,41,0.1);;
border: #FFAB29;
color: #FFAB29;
}
::v-deep.el-tag.el-tag--success {
background-color: rgba(52,226,199,0.1);
border-color: #34E2C7;
color: #34E2C7;
}
/* 搜索栏样式 */
.search-box {
margin-bottom: 20px;

View File

@ -2,7 +2,7 @@
<div class="app-container">
<el-row>
<el-form ref="queryForm" size="small" label-width="auto" :model="queryParams">
<el-card class="search-box">
<el-card class="search-box" shadow="never">
<el-row :gutter="20" style="display: flex; justify-content: space-between">
<el-col :span="5">
<el-form-item label="业务类型" prop="businessType">
@ -27,7 +27,7 @@
</el-card>
</el-form>
<el-card class="content-box">
<el-card class="content-box" shadow="never">
<div >
<el-table :data="tableData" style="width: 100%" border stripe class="my-table" fit>
<el-table-column align="center" show-overflow-tooltip type="index" label="序号" width="50" />
@ -147,6 +147,32 @@ export default {
</script>
<style lang="scss" scoped>
.app-container{
background: #F0F0F0;
}
::v-deep.el-button--primary{
background-color: #2CBAB2;
border-color: #2CBAB2;
}
::v-deep.el-button--danger{
background-color: #FF5129;
border-color: #FF5129;
}
::v-deep.el-tag.el-tag--info {
background-color: #F5F5F5;
border-color: #B3B3B3;
color: #B3B3B3;
}
::v-deep.el-tag.el-tag--warn{
background-color: rgba(255,171,41,0.1);;
border: #FFAB29;
color: #FFAB29;
}
::v-deep.el-tag.el-tag--success {
background-color: rgba(52,226,199,0.1);
border-color: #34E2C7;
color: #34E2C7;
}
.search-box {
height: 65px;
margin-bottom: 20px;

View File

@ -1,8 +1,8 @@
<template>
<!-- 装备流转记录 -->
<div class="app-container">
<el-form ref="queryForm" size="small" inline label-width="auto" :model="queryParams">
<el-card class="search-box">
<el-form ref="queryForm" size="small" inline label-width="140px" :model="queryParams">
<el-card class="search-box" shadow="never">
<el-row>
<el-col :span="12">
<el-form-item prop="keyword" label="关键字">
@ -37,7 +37,7 @@
</el-card>
</el-form>
<el-card class="content-box">
<el-card class="content-box" shadow="never">
<el-row>
<el-col :span="2">
<span style="font-size: 20px; font-weight: 800">维修记录列表</span>
@ -52,7 +52,7 @@
<el-table-column align="center" show-overflow-tooltip prop="createUser" label="操作人"/>
<el-table-column align="center" show-overflow-tooltip prop="type" label="操作类型">
<template slot-scope="scope">
<el-tag size="mini" type="warning">
<el-tag type="warning">
{{ typeInfo[scope.row.type] }}
</el-tag>
</template>
@ -82,7 +82,7 @@
<el-table-column align="center" show-overflow-tooltip prop="devNum" label="数量"/>
<el-table-column align="center" show-overflow-tooltip prop="address" label="操作">
<template slot-scope="scope">
<el-button type="text" @click="onHandleOutRecord(scope.row)">
<el-button type="text" style="color: #2CBAB2;" @click="onHandleOutRecord(scope.row)">
{{ typeInfo[scope.row.type] }}记录单
</el-button>
</template>
@ -100,14 +100,7 @@
</div>
</el-card>
<!-- 出库记录单 -->
<el-dialog title="维修记录单" :visible.sync="outRecordVisible" width="80%" append-to-body>
<el-row style="display: flex; justify-content: flex-end; gap: 8px;">
<!-- 下载PDF-->
<el-button size="mini" type="primary" @click="handleDownloadPDF">下载</el-button>
<!-- <el-button size="mini" type="primary" @click="onHandleDownload">下载</el-button>-->
<el-button size="mini" type="primary" @click="onHandlePrint">打印</el-button>
<el-button size="mini" type="primary" @click="onHandleClose">关闭</el-button>
</el-row>
<el-dialog title="维修记录单" :visible.sync="outRecordVisible" width="80%" append-to-body>
<vue-easy-print ref="recordPrintRef" id="print-content" tableShow style="width: 100%">
<h2 style="text-align: center;font-size: 28px;">维修记录单</h2>
@ -154,7 +147,14 @@
</table>
</div>
</vue-easy-print>
<div slot="footer">
<el-row style="display: flex; justify-content: flex-end; gap: 8px;">
<el-button size="mini" type="primary" @click="handleDownloadPDF">下载</el-button>
<el-button size="mini" type="primary" @click="onHandlePrint">打印</el-button>
<el-button size="mini" type="primary" @click="onHandleClose">关闭</el-button>
</el-row>
</div>
<!-- <el-row class="record-row" style="margin-top: 10px">
<el-col :span="24" style="text-align: right">
<div>
@ -289,6 +289,32 @@ export default {
</script>
<style scoped lang="scss">
.app-container{
background: #F0F0F0;
}
::v-deep.el-button--primary{
background-color: #2CBAB2;
border-color: #2CBAB2;
}
::v-deep.el-button--danger{
background-color: #FF5129;
border-color: #FF5129;
}
::v-deep.el-tag.el-tag--info {
background-color: #F5F5F5;
border-color: #B3B3B3;
color: #B3B3B3;
}
::v-deep.el-tag.el-tag--warn{
background-color: rgba(255,171,41,0.1);;
border: #FFAB29;
color: #FFAB29;
}
::v-deep.el-tag.el-tag--success {
background-color: rgba(52,226,199,0.1);
border-color: #34E2C7;
color: #34E2C7;
}
.record-row {
/* margin-bottom: 10px; */
font-size: 16px;

View File

@ -1,7 +1,7 @@
<template>
<!-- 装备流转记录 -->
<div class="app-container">
<el-form ref="queryForm" size="small" inline label-width="auto" :model="queryParams">
<el-form ref="queryForm" size="small" inline label-width="120px" :model="queryParams">
<el-card class="search-box">
<el-row>
<el-col :span="12">
@ -90,7 +90,7 @@
<el-table-column align="center" show-overflow-tooltip prop="devNum" label="数量"/>
<el-table-column align="center" show-overflow-tooltip prop="address" label="操作">
<template slot-scope="scope">
<el-button type="text" @click="onHandleOutRecord(scope.row)">
<el-button type="text" style="color: #2CBAB2;" @click="onHandleOutRecord(scope.row)">
{{ typeInfo[scope.row.type] }}记录单
</el-button>
</template>
@ -108,14 +108,7 @@
</div>
</el-card>
<!-- 出库记录单 -->
<el-dialog title="退役记录单" :visible.sync="outRecordVisible" width="80%" append-to-body>
<el-row style="display: flex; justify-content: flex-end; gap: 8px;">
<!-- 下载PDF-->
<el-button size="mini" type="primary" @click="handleDownloadPDF">下载</el-button>
<!-- <el-button size="mini" type="primary" @click="onHandleDownload">下载</el-button>-->
<el-button size="mini" type="primary" @click="onHandlePrint">打印</el-button>
<el-button size="mini" type="primary" @click="onHandleClose">关闭</el-button>
</el-row>
<el-dialog title="退役记录单" :visible.sync="outRecordVisible" width="80%" append-to-body>
<vue-easy-print ref="recordPrintRef" id="print-content" tableShow style="width: 100%">
<h2 style="text-align: center;font-size: 28px;">退役记录单</h2>
@ -164,7 +157,13 @@
</table>
</div>
</vue-easy-print>
<div slot="footer">
<el-row style="display: flex; justify-content: flex-end; gap: 8px;">
<el-button size="mini" type="primary" @click="handleDownloadPDF">下载</el-button>
<el-button size="mini" type="primary" @click="onHandlePrint">打印</el-button>
<el-button size="mini" type="primary" @click="onHandleClose">关闭</el-button>
</el-row>
</div>
<!-- <el-row class="record-row" style="margin-top: 10px">
<el-col :span="24" style="text-align: right">
<div>
@ -299,6 +298,32 @@ export default {
</script>
<style scoped lang="scss">
.app-container{
background: #F0F0F0;
}
::v-deep.el-button--primary{
background-color: #2CBAB2;
border-color: #2CBAB2;
}
::v-deep.el-button--danger{
background-color: #FF5129;
border-color: #FF5129;
}
::v-deep.el-tag.el-tag--info {
background-color: #F5F5F5;
border-color: #B3B3B3;
color: #B3B3B3;
}
::v-deep.el-tag.el-tag--warn{
background-color: rgba(255,171,41,0.1);;
border: #FFAB29;
color: #FFAB29;
}
::v-deep.el-tag.el-tag--success {
background-color: rgba(52,226,199,0.1);
border-color: #34E2C7;
color: #34E2C7;
}
.record-row {
/* margin-bottom: 10px; */
font-size: 16px;

View File

@ -9,7 +9,7 @@
:inline="true"
label-width="100px" size="small"
>
<el-card class="search-box">
<el-card class="search-box" shadow="never">
<el-row type="flex">
<el-col :span="6" class="flex-center">
<el-form-item label="装备编码" prop="deviceCode" style="margin-bottom: 0 !important;">
@ -75,7 +75,7 @@
</el-card>
</el-form>
<el-card class="content-box">
<el-card class="content-box" shadow="never">
<el-row>
<el-col :span="2">
<span style="font-size: 20px; font-weight: 800">维保预警列表</span>
@ -866,10 +866,33 @@ export default {
</style>
<style lang="scss" scoped>
.app-container {
.app-container{
padding: 20px;
background: #F0F0F0;
}
::v-deep.el-button--primary{
background-color: #2CBAB2;
border-color: #2CBAB2;
}
::v-deep.el-button--danger{
background-color: #FF5129;
border-color: #FF5129;
}
::v-deep.el-tag.el-tag--info {
background-color: #F5F5F5;
border-color: #B3B3B3;
color: #B3B3B3;
}
::v-deep.el-tag.el-tag--warn{
background-color: rgba(255,171,41,0.1);;
border: #FFAB29;
color: #FFAB29;
}
::v-deep.el-tag.el-tag--success {
background-color: rgba(52,226,199,0.1);
border-color: #34E2C7;
color: #34E2C7;
}
.page-header {
display: flex;
align-items: center;

View File

@ -500,6 +500,10 @@ export default {
<style lang="scss" scoped>
::v-deep.el-button--primary{
background-color: #2CBAB2;
border-color: #2CBAB2;
}
/* 六级级联选择器样式 */
::v-deep .six-level-cascader .el-cascader-menu {
max-height: 300px;

View File

@ -1,8 +1,8 @@
<template>
<div class="app-container">
<GoBack :title="'维修申请'" @goBack="goBack" />
<div class="app-container">
<!-- 列表 -->
<el-card class="content-box">
<el-card class="content-box" shadow="never">
<GoBack :title="'维修申请'" @goBack="goBack" />
<el-row class="mb8" :gutter="10" justify="end">
<el-col :span="4">
<span style="font-size: 20px; font-weight: 800">维修申请设备</span>
@ -81,11 +81,11 @@
:on-success="handleFileSuccess2"
:auto-upload="true"
>
<el-button :disabled="scope.row.status && scope.row.status === '通过'" size="mini" type="text" @click="beforeFileUpload(scope.row)">上传</el-button>
<el-button :disabled="scope.row.status && scope.row.status === '通过'" style="color: #2CBAB2;" type="text" @click="beforeFileUpload(scope.row)">上传</el-button>
</el-upload>
<el-button
size="mini"
type="text"
type="text" style="color: #2CBAB2;"
@click="picturePreview(scope.row)"
v-if="scope.row.bmFileInfos && scope.row.bmFileInfos.length > 0"
>
@ -109,7 +109,7 @@
<el-table-column label="操作" align="center" width="80px" v-if="!routerParams.isView">
<template slot-scope="scope">
<el-button v-if="!routerParams.isSubmit && !hideAddDelete" :disabled="scope.row.status && scope.row.status === '通过'"
size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" style="color: red">
type="text" @click="handleDelete(scope.row)" style="color: #FF5129;">
删除
</el-button>
</template>
@ -589,6 +589,32 @@ export default {
</script>
<style lang="scss" scoped>
.app-container{
background: #F0F0F0;
}
::v-deep.el-button--primary{
background-color: #2CBAB2;
border-color: #2CBAB2;
}
::v-deep.el-button--danger{
background-color: #FF5129;
border-color: #FF5129;
}
::v-deep.el-tag.el-tag--info {
background-color: #F5F5F5;
border-color: #B3B3B3;
color: #B3B3B3;
}
::v-deep.el-tag.el-tag--warn{
background-color: rgba(255,171,41,0.1);;
border: #FFAB29;
color: #FFAB29;
}
::v-deep.el-tag.el-tag--success {
background-color: rgba(52,226,199,0.1);
border-color: #34E2C7;
color: #34E2C7;
}
.content-box {
border-radius: 8px;
//height: calc(100vh - 130px);

View File

@ -1,8 +1,8 @@
<template>
<!-- 基础页面 -->
<div class="app-container">
<div class="app-container" shadow="never">
<el-card v-show="showSearch" style="margin-bottom: 20px">
<el-form :model="queryParams" ref="queryForm" size="small" inline @submit.native.prevent>
<el-form :model="queryParams" ref="queryForm" size="small" label-width="140px" inline @submit.native.prevent>
<el-col :span="12" >
<el-form-item label="任务状态" prop="status">
<el-select
@ -41,7 +41,7 @@
</el-form>
</el-card>
<el-card class="content-box">
<el-card class="content-box" shadow="never">
<el-row :gutter="10" class="mb8" justify="end">
<el-col :span="4">
<span style="font-size: 20px; font-weight: 800">维修申请列表</span>
@ -93,8 +93,8 @@
<el-table-column label="操作" align="center">
<template slot-scope="{ row }">
<el-button size="mini" type="text" icon="el-icon-zoom-in" @click="handleView(row)">查看</el-button>
<el-button v-if="row.status == '0' || row.status == '3' || row.status == '5'" size="mini" type="text" icon="el-icon-edit" @click="handleEdit(row)">编辑</el-button>
<el-button type="text" style="color: #2CBAB2;" @click="handleView(row)">查看</el-button>
<el-button v-if="row.status == '0' || row.status == '3' || row.status == '5'" type="text" style="color: #2CBAB2;" @click="handleEdit(row)">编辑</el-button>
<!-- <el-button v-if="row.status == '0' || row.status == '3'" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(row)" style="color: red"-->
<!-- >删除</el-button-->
<!-- >-->
@ -291,6 +291,32 @@ export default {
</script>
<style lang="scss" scoped>
.app-container{
background: #F0F0F0;
}
::v-deep.el-button--primary{
background-color: #2CBAB2;
border-color: #2CBAB2;
}
::v-deep.el-button--danger{
background-color: #FF5129;
border-color: #FF5129;
}
::v-deep.el-tag.el-tag--info {
background-color: #F5F5F5;
border-color: #B3B3B3;
color: #B3B3B3;
}
::v-deep.el-tag.el-tag--warn{
background-color: rgba(255,171,41,0.1);;
border: #FFAB29;
color: #FFAB29;
}
::v-deep.el-tag.el-tag--success {
background-color: rgba(52,226,199,0.1);
border-color: #34E2C7;
color: #34E2C7;
}
.content-box {
border-radius: 8px;
//height: calc(100vh - 220px);

View File

@ -1,8 +1,8 @@
<template>
<div class="app-container">
<GoBack :title="tipTitle" @goBack="goBack" />
<!-- 列表 -->
<el-card>
<el-card shadow="never">
<GoBack :title="tipTitle" @goBack="goBack" />
<el-row class="mb8" :gutter="10" justify="end">
<el-col :span="4">
<span style="font-size: 20px; font-weight: 800">{{ tipTitle }}列表</span>
@ -179,3 +179,8 @@ export default {
}
}
</script>
<style lang="scss" scoped>
.app-container{
background: #F0F0F0;
}
</style>

View File

@ -1,9 +1,9 @@
<template>
<div class="app-container">
<GoBack :title="'维修审核'" @goBack="goBack" />
<div class="app-container">
<!-- 基本信息 -->
<el-card style="margin-bottom: 20px">
<el-form ref="baseForm" :model="baseInfo" label-width="70px" inline style="height: 36px">
<el-card style="margin-bottom: 20px" shadow="never">
<GoBack :title="'维修审核'" @goBack="goBack" />
<el-form ref="baseForm" :model="baseInfo" label-width="120px" inline style="height: 36px">
<el-form-item label="申请单号" style="margin-bottom: 0; height: 36px">
<el-input
v-model="baseInfo.code"
@ -31,8 +31,100 @@
</el-form>
</el-card>
<el-row :gutter="24">
<el-col :span="6">
<el-card shadow="never" style="min-height: 640px;">
<div style="display: flex;align-items: center;padding-bottom: 20px;border-bottom: 1px solid #F0F0F0;">
<span style="font-size: 20px; font-weight: 800;margin-right: 48px;">审批进度</span>
</div>
<div class="approval-progress" v-if="processConfig && processConfig.nodeList && !collapsed">
<el-timeline>
<el-timeline-item
v-for="node in processConfig.nodeList"
:key="node.id"
:timestamp="getNodeRecord(node) ? getNodeRecord(node).approveTime : ''"
placement="top"
>
<template #dot>
<img src="../../../assets/images/timeIcon.png" class="custom-icon" alt="">
</template>
<div class="timeline-content">
<div class="node-title">
<span class="node-name">节点{{ node.nodeOrder }}{{ node.nodeName }}</span>
<el-tag :type="getNodeTagType(node)">
{{ getNodeStatusLabel(node) }}
</el-tag>
</div>
<div class="node-info">
<div>审批人{{ node.name }}</div>
<div v-if="getNodeRecord(node)">
<div>审批结果{{ getNodeRecord(node).approveResult === '1' ? '通过' : '驳回' }}</div>
<div>审批意见{{ getNodeRecord(node).approveOpinion }}</div>
<div>审批时间{{ getNodeRecord(node).approveTime }}</div>
</div>
<div v-else-if="node.nodeOrder === approvalInstance.currentNodeOrder">
状态待审批
</div>
<div v-else>
状态等待上一节点审批
</div>
</div>
</div>
</el-timeline-item>
</el-timeline>
</div>
<div class="approval-actions" v-if="canApprove && !collapsed">
<div class="section-header">
<span>审批操作</span>
</div>
<el-form ref="approveForm" :model="approveData" label-width="100px">
<el-form-item label="审批意见">
<el-input
v-model="approveData.opinion"
type="textarea"
rows="4"
placeholder="请输入审批意见"
maxlength="500"
show-word-limit
/>
</el-form-item>
<el-form-item>
<el-button type="success" @click="onHandleApprove">通过</el-button>
<el-button type="danger" @click="onHandleReject">驳回</el-button>
<el-button @click="onHandleCancel">取消</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
</el-col>
<el-col :span="18">
<el-card shadow="never">
<div class="mb8" style="display: flex;align-items: center;padding-bottom: 20px;border-bottom: 1px solid #F0F0F0;">
<span style="font-size: 20px; font-weight: 800;margin-right: 48px;">维修审核列表</span>
<span style="font-size: 16px;color: #808080;">{{detailList.length}}条记录</span>
</div>
<el-table ref="detailTable" :data="detailList" height="546" style="width: 100%" border stripe size="small" fit @selection-change="onSelectionChange">
<el-table-column type="selection" width="50" />
<el-table-column align="center" type="index" label="序号" width="80" />
<el-table-column align="center" prop="type" label="分类" width="100" />
<el-table-column align="center" prop="typeName" label="类目" min-width="100" />
<el-table-column align="center" prop="typeModelName" label="规格型号" width="150" />
<el-table-column align="center" prop="manageMode" label="管理模式" width="120" />
<el-table-column align="center" prop="code" label="设备编码" min-width="120" />
<el-table-column align="center" prop="repairNum" label="维修数量" width="100" />
<el-table-column align="center" prop="isScrap" label="维修是否合格" width="120">
<template slot-scope="scope">
{{ scope.row.isScrap === '0' ? '是' : '否' }}
</template>
</el-table-column>
<el-table-column align="center" prop="repairTime" label="维修日期" width="150" />
</el-table>
</el-card>
</el-col>
</el-row>
<!-- 维修详情列表 -->
<el-card>
<!-- <el-card>
<div class="detail-section">
<div class="section-header">
<el-row :gutter="20">
@ -40,12 +132,9 @@
<span style="font-size: 20px; font-weight: 800">维修审核列表</span>
</el-col>
<el-col :span="20" style="display: flex; justify-content: flex-end">
<!-- <el-button v-if="canApprove" type="primary" @click="onHandleApprove">通过</el-button> -->
<!-- <el-button v-if="canApprove" type="primary" @click="onHandleReject">驳回</el-button> -->
</el-col>
</el-row>
</div>
</div>
<el-row :gutter="20">
<el-col :span="collapsed ? 23 : 18">
<el-table ref="detailTable" :data="detailList" height="546" style="width: 100%" border stripe size="small" fit @selection-change="onSelectionChange">
@ -65,8 +154,7 @@
<el-table-column align="center" prop="repairTime" label="维修日期" width="150" />
</el-table>
</el-col>
<el-col :span="collapsed ? 1 : 6">
<!-- 审批进度 -->
<el-col :span="collapsed ? 1 : 6">
<div class="approval-progress" v-if="processConfig && processConfig.nodeList && !collapsed">
<div class="section-header">
<span>审批进度</span>
@ -103,9 +191,7 @@
</div>
</el-timeline-item>
</el-timeline>
</div>
<!-- 审批操作 -->
</div>
<div class="approval-actions" v-if="canApprove && !collapsed">
<div class="section-header">
<span>审批操作</span>
@ -129,8 +215,7 @@
</el-form>
</div>
<div style="position: absolute; width: 10px; top: 50%; right: 0">
<!-- 右侧折叠/展开按钮 -->
<div style="position: absolute; width: 10px; top: 50%; right: 0">
<el-button
size="mini"
@click="collapsed = !collapsed"
@ -139,11 +224,9 @@
/>
</div>
</el-col>
</el-row>
</div>
</el-card>
</el-row>
</div>
</el-card> -->
</div>
</template>
@ -390,6 +473,32 @@ export default {
</script>
<style scoped lang="scss">
.app-container{
background: #F0F0F0;
}
::v-deep.el-button--primary{
background-color: #2CBAB2;
border-color: #2CBAB2;
}
::v-deep.el-button--danger{
background-color: #FF5129;
border-color: #FF5129;
}
::v-deep.el-tag.el-tag--info {
background-color: #F5F5F5;
border-color: #B3B3B3;
color: #B3B3B3;
}
::v-deep.el-tag.el-tag--warn{
background-color: rgba(255,171,41,0.1);;
border: #FFAB29;
color: #FFAB29;
}
::v-deep.el-tag.el-tag--success {
background-color: rgba(52,226,199,0.1);
border-color: #34E2C7;
color: #34E2C7;
}
.detail-section {
margin-bottom: 30px;
}
@ -408,6 +517,7 @@ export default {
.node-title {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
margin-bottom: 8px;
@ -418,13 +528,19 @@ export default {
}
.node-info {
font-size: 12px;
color: #606266;
font-size: 12px;
background: rgba(52, 226, 199,0.08);
color: #3F3F3F;
padding: 15px;
border-radius:5px;
line-height: 1.8;
}
}
}
.custom-icon{
width: 20px;
height: 20px;
}
.approval-actions {
margin-top: 30px;
}

View File

@ -1,8 +1,8 @@
<template>
<!-- 基础页面 -->
<div class="app-container">
<el-card v-show="showSearch" style="margin-bottom: 20px">
<el-form :model="queryParams" ref="queryForm" size="small" inline @submit.native.prevent>
<el-card v-show="showSearch" style="margin-bottom: 20px" shadow="never">
<el-form :model="queryParams" ref="queryForm" size="small" label-width="140px" inline @submit.native.prevent>
<el-col :span="12">
<el-form-item label="任务状态" prop="status">
<el-select
@ -38,11 +38,10 @@
<el-button icon="el-icon-refresh" size="mini" @click="handleReset">重置</el-button>
</el-form-item>
</el-col>
</el-form>
</el-form>
</el-card>
<el-card class="content-box">
<el-card class="content-box" shadow="never">
<el-row :gutter="10" class="mb8" justify="end">
<el-col :span="4">
<span style="font-size: 20px; font-weight: 800">维修审核列表</span>
@ -106,8 +105,8 @@
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="{ row }">
<el-button v-if="row.status != '0'" size="mini" type="text" icon="el-icon-zoom-in" @click="handleView(row)">查看</el-button>
<el-button v-if="row.status == '0'" size="mini" type="text" icon="el-icon-edit" @click="handleEdit(row)">审核</el-button>
<el-button v-if="row.status != '0'" type="text" style="color: #2CBAB2;" @click="handleView(row)">查看</el-button>
<el-button v-if="row.status == '0'" type="text" style="color: #2CBAB2;" @click="handleEdit(row)">审核</el-button>
</template>
</el-table-column>
</el-table>
@ -312,6 +311,32 @@ export default {
</script>
<style lang="scss" scoped>
.app-container{
background: #F0F0F0;
}
::v-deep.el-button--primary{
background-color: #2CBAB2;
border-color: #2CBAB2;
}
::v-deep.el-button--danger{
background-color: #FF5129;
border-color: #FF5129;
}
::v-deep.el-tag.el-tag--info {
background-color: #F5F5F5;
border-color: #B3B3B3;
color: #B3B3B3;
}
::v-deep.el-tag.el-tag--warn{
background-color: rgba(255,171,41,0.1);;
border: #FFAB29;
color: #FFAB29;
}
::v-deep.el-tag.el-tag--success {
background-color: rgba(52,226,199,0.1);
border-color: #34E2C7;
color: #34E2C7;
}
.content-box {
border-radius: 8px;
//height: calc(100vh - 220px);

View File

@ -48,7 +48,7 @@ export default {
},
methods: {
goBack() {
this.$router.push({ path: '/stockManagement/inventoryAudit' }).then(() => {
this.$router.push({ path: '/stockManagement/entryApply' }).then(() => {
this.$tab.closePage({ path: '/stockManagement/entryApply/apply' })
})
},

View File

@ -1021,7 +1021,7 @@ export default {
}
::v-deep.el-loading-spinner{
position: absolute;
top: 30%;
top: 40%;
left: 44%;
width: 12%;
height: 15%;

View File

@ -2,7 +2,7 @@
<!-- 基础页面 -->
<div class="app-container" v-loading="isLoading">
<el-card v-show="showSearch" style="margin-bottom: 20px">
<el-form :model="queryParams" ref="queryForm" size="small" label-width="120px" inline @submit.native.prevent>
<el-form :model="queryParams" ref="queryForm" size="small" label-width="140px" inline @submit.native.prevent>
<!-- <el-form-item label="管理模式" prop="manageMode">
<el-select v-model="queryParams.manageMode" placeholder="请选择管理模式" clearable style="width: 240px">
<el-option label="编码工具" value="0"/>
@ -16,7 +16,7 @@
placeholder="请选择产权单位"
:options="propertyUnitList"
:props="{ label: 'label', value: 'id', children: 'children', checkStrictly: true }"
style="width: 240px"
style="width: 300px"
@change="handleUnitChange"
/>
</el-form-item>
@ -30,7 +30,7 @@
:props="toolCascaderProps"
placeholder="请选择工具类目"
clearable
style="width: 200px"
style="width: 300px"
filterable
popper-class="six-level-cascader"
@change="handleToolCategoryChange"
@ -92,7 +92,7 @@
placeholder="请输入规格型号"
clearable
@keyup.enter.native="handleQuery"
style="width: 240px"
style="width: 300px"
/>
</el-form-item>
<!-- 表单按钮 -->
@ -670,7 +670,7 @@ export default {
}
::v-deep.el-loading-spinner{
position: absolute;
top: 30%;
top: 40%;
left: 44%;
width: 12%;
height: 15%;