Commit 470c143c authored by 刘怀志's avatar 刘怀志

feat(审批): 审批列表页完成

parent d5f9039c
...@@ -7,14 +7,50 @@ ...@@ -7,14 +7,50 @@
:scroll-with-animation="true"> :scroll-with-animation="true">
<view v-for="(item,key) in noticeList" :key="key" style="display: flex;background-color: #ffffff"> <view v-for="(item,key) in noticeList" :key="key" style="display: flex;background-color: #ffffff">
<!-- 原消息卡片模板 --> <!-- 原消息卡片模板 -->
<view class="noticeCard"> <view class="noticeCard" @click="goDetail">
<view class="noticeTop"> <view class="noticeTop">
<view class="titleClass">基础数据审批</view> <view class="titleClass">
<view class="timeClass"> <img :src="leftIconTwo" />
{{ parseTimeA(item.createDate,'{m}-{d} {h}:{i}:{s}') }} {{getLabelByValue(tableUserFormList, item.processType)}}
</view>
<view class="statusText" :style="{color: statusMap[item.status].color}">
{{statusMap[item.status].text}}
</view>
</view>
<view class="subTitleClass">
<view class="subRow">
<view class="subTitle">
发起时间
</view>
<view class="subContent">
{{ parseTimeA(item.createDate,'YYYY/MM/DD {h}:{i}:{s}') }}
</view>
</view>
<view class="subRow">
<view class="subTitle">
发起人
</view>
<view class="subContent">
{{ item.initiateUserName || '-' }}{{ item.initiateDeptName ? '·' + item.initiateDeptName : '' }}
</view>
</view>
<view class="subRow">
<view class="subTitle">
审批人
</view>
<view class="subContent">
{{ item.configApproveUserName || '-' }}
</view>
</view>
<view class="subRow">
<view class="subTitle">
结束时间
</view>
<view class="subContent">
{{ parseTimeA(item.endDate,'YYYY/MM/DD {h}:{i}:{s}') }}
</view>
</view> </view>
</view> </view>
<view class="subTitleClass">{{ item.message }}</view>
</view> </view>
</view> </view>
<!--底部加载--> <!--底部加载-->
...@@ -35,16 +71,50 @@ ...@@ -35,16 +71,50 @@
<script> <script>
import {queryInstanceListAeByPage} from '../../api/system/approve' import {queryInstanceListAeByPage} from '../../api/system/approve'
import { parseTime } from '../../api/utils/ruoyi' import { parseTime } from '../../api/utils/ruoyi'
import leftIconOne from "../../static/images/leftIconOne.png";
import leftIconTwo from "../../static/images/leftIconTwo.png";
import {getDicts} from "../../api/system/baseConfig";
export default { export default {
data() { data() {
return { return {
statusMap: {
'2': {
text: '已通过',
color: '#2B9603',
},
'0': {
text: '草稿',
color: 'grey',
},
'6': {
text: '异常结束',
color: '#FF5F5F',
},
'7': {
text: '已失效',
color: '#FF5F5F',
},
'10': {
text: '待审批',
color: '#333399',
},
'5': {
text: '已驳回',
color: '#FF5F5F',
},
'3': {
text: '已驳回',
color: '#FF5F5F',
},
},
leftIconOne,
leftIconTwo,
queryNotice: { queryNotice: {
page: 1, page: 1,
rows: 10, rows: 10,
mesType: '1', mesType: '1',
processGroup: '1', processGroup: '1',
completeStatus: false
}, },
defaultPageSize: 10, defaultPageSize: 10,
// 底部加载 // 底部加载
...@@ -55,10 +125,14 @@ export default { ...@@ -55,10 +125,14 @@ export default {
nomore: '没有更多了' nomore: '没有更多了'
}, },
noticeList: [], noticeList: [],
tableUserFormList: [],
loading: true, loading: true,
total: 0, total: 0,
} }
}, },
created() {
this.getList()
},
mounted() { mounted() {
this.loadData() this.loadData()
}, },
...@@ -71,6 +145,32 @@ export default { ...@@ -71,6 +145,32 @@ export default {
}, },
}, },
methods: { methods: {
goDetail () {
uni.navigateTo({
url: '/pages/approval_detail/baseDetail?id=1'
})
},
/**
* 指定列表,根据值,取label
*/
getLabelByValue (list, value, key = 'value', label = 'label') {
const item = list.find(item => item[key] === value)
return item ? item[label] : '-'
},
/** 查询字典数据列表 */
getList() {
getDicts('table_user_from').then(response => {
// console.log("查询数据字段狗",response)
const tableUserForm = response.data
for (const item of tableUserForm) {
const result = {
value: item.dictValue,
label: item.dictLabel
}
this.tableUserFormList.push(result)
}
})
},
async loadData() { async loadData() {
this.loading = true this.loading = true
const res = await queryInstanceListAeByPage({ const res = await queryInstanceListAeByPage({
...@@ -168,16 +268,29 @@ export default { ...@@ -168,16 +268,29 @@ export default {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
border-bottom: 2rpx solid #F2F2F2; border-bottom: 2rpx solid #F2F2F2;
padding: 22rpx 34rpx 24rpx 32rpx; padding: 22rpx 34rpx 24rpx 0;
} }
.titleClass { .titleClass {
display: flex;
align-items: center;
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 500; font-weight: 500;
font-size: 30rpx; font-size: 30rpx;
color: #333399; color: #111111;
text-align: left; text-align: left;
font-style: normal; font-style: normal;
text-transform: none; text-transform: none;
img{
margin-right: 22rpx;
}
}
.statusText{
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 28rpx;
text-align: right;
font-style: normal;
text-transform: none;
} }
.subTitleClass { .subTitleClass {
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
...@@ -189,6 +302,29 @@ export default { ...@@ -189,6 +302,29 @@ export default {
text-transform: none; text-transform: none;
padding: 28rpx 32rpx 0 32rpx; padding: 28rpx 32rpx 0 32rpx;
} }
.subRow{
display: flex;
justify-content: space-between;
margin-bottom: 12rpx;
.subTitle {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #9A9A9A;
text-align: left;
font-style: normal;
text-transform: none;
}
.subContent {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #222222;
text-align: center;
font-style: normal;
text-transform: none;
}
}
.timeClass { .timeClass {
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 400; font-weight: 400;
......
<!--生产信息审批-->
<template> <template>
<scroll-view <scroll-view
class="scroll-view" class="scroll-view"
...@@ -6,26 +7,52 @@ ...@@ -6,26 +7,52 @@
:scroll-with-animation="true"> :scroll-with-animation="true">
<view v-for="(item,key) in noticeList" :key="key" style="display: flex;background-color: #ffffff"> <view v-for="(item,key) in noticeList" :key="key" style="display: flex;background-color: #ffffff">
<!-- 原消息卡片模板 --> <!-- 原消息卡片模板 -->
<view class="noticeCard"> <view class="noticeCard" @click="goDetail">
<view class="noticeTop"> <view class="noticeTop">
<view class="titleClass">生产信息审批</view> <view class="titleClass">
<view class="timeClass"> <!-- <img :src="leftIconOne" />-->
{{ parseTimeA(item.updateDate,'{m}-{d} {h}:{i}:{s}') }} {{item.processName}}
</view>
<view class="statusText" :style="{color: statusMap[item.processStatus].color}">
{{statusMap[item.processStatus].text}}
</view> </view>
</view> </view>
<view class="subTitleClass">{{ item.message }}</view> <view class="subTitleClass">
</view> <view class="subRow">
</view> <view class="subTitle">
<view v-if="noticeList.length === 0" class="no-message"> 发起时间
<view> </view>
<view style="font-size: 26rpx;font-weight: 400;color: #666666;line-height: 30rpx;margin-top: 36rpx"> <view class="subContent">
<text> {{ parseTimeA(item.initiateDate,'YYYY/MM/DD {h}:{i}:{s}') }}
{{ '暂无消息' }} </view>
</text> </view>
<view class="subRow">
<view class="subTitle">
当前审批人
</view>
<view class="subContent">
{{ item.currentApproveUserName || '-' }}{{ item.currentApproveUserOrgName ? '·' + item.currentApproveUserOrgName : '' }}
</view>
</view>
<view class="subRow">
<view class="subTitle">
审批人
</view>
<view class="subContent">
{{ item.approveUserName || '-' }}
</view>
</view>
<view class="subRow">
<view class="subTitle">
结束时间
</view>
<view class="subContent">
{{ parseTimeA(item.completeDate,'YYYY/MM/DD {h}:{i}:{s}') }}
</view>
</view>
</view> </view>
</view> </view>
</view> </view>
<!--底部加载--> <!--底部加载-->
<view v-show="total > 0 && loadStatus !== 'loading'" style="text-align: center;padding-bottom: 5rpx;"> <view v-show="total > 0 && loadStatus !== 'loading'" style="text-align: center;padding-bottom: 5rpx;">
<u-loadmore <u-loadmore
...@@ -44,18 +71,38 @@ ...@@ -44,18 +71,38 @@
<script> <script>
import { queryInstanceByPage } from '../../api/system/approve' import { queryInstanceByPage } from '../../api/system/approve'
import { parseTime } from '../../api/utils/ruoyi' import { parseTime } from '../../api/utils/ruoyi'
import {getDicts} from "../../api/system/baseConfig";
import leftIconOne from "../../static/images/leftIconOne.png";
import leftIconTwo from "../../static/images/leftIconTwo.png";
export default { export default {
props: ['queryParams'],
data() { data() {
return { return {
statusMap: {
'1': {
text: '已通过',
color: '#2B9603',
},
'3': {
text: '异常结束',
color: '#FF5F5F',
},
'0': {
text: '待审批',
color: '#333399',
},
'2': {
text: '已驳回',
color: '#FF5F5F',
},
},
leftIconOne,
leftIconTwo,
queryNotice: { queryNotice: {
page: 1, page: 1,
rows: 10, rows: 10,
mesType: '1', mesType: '1',
processGroup: '1', processGroup: '1',
running: true,
completeStatus: false
}, },
defaultPageSize: 10, defaultPageSize: 10,
// 底部加载 // 底部加载
...@@ -66,10 +113,14 @@ export default { ...@@ -66,10 +113,14 @@ export default {
nomore: '没有更多了' nomore: '没有更多了'
}, },
noticeList: [], noticeList: [],
tableUserFormList: [],
loading: true, loading: true,
total: 0, total: 0,
} }
}, },
created() {
this.getList()
},
mounted() { mounted() {
this.loadData() this.loadData()
}, },
...@@ -82,7 +133,32 @@ export default { ...@@ -82,7 +133,32 @@ export default {
}, },
}, },
methods: { methods: {
goDetail () {
uni.navigateTo({
url: '/pages/approval_detail/baseDetail?id=1'
})
},
/**
* 指定列表,根据值,取label
*/
getLabelByValue (list, value, key = 'value', label = 'label') {
const item = list.find(item => item[key] === value)
return item ? item[label] : '-'
},
/** 查询字典数据列表 */
getList() {
getDicts('table_user_from').then(response => {
// console.log("查询数据字段狗",response)
const tableUserForm = response.data
for (const item of tableUserForm) {
const result = {
value: item.dictValue,
label: item.dictLabel
}
this.tableUserFormList.push(result)
}
})
},
async loadData() { async loadData() {
this.loading = true this.loading = true
const res = await queryInstanceByPage({ const res = await queryInstanceByPage({
...@@ -114,7 +190,6 @@ export default { ...@@ -114,7 +190,6 @@ export default {
<style scoped lang="scss"> <style scoped lang="scss">
.scroll-view{ .scroll-view{
height: 960rpx; height: 960rpx;
overflow: auto;
} }
.no-message{ .no-message{
text-align: center; text-align: center;
...@@ -183,16 +258,30 @@ export default { ...@@ -183,16 +258,30 @@ export default {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
border-bottom: 2rpx solid #F2F2F2; border-bottom: 2rpx solid #F2F2F2;
padding: 22rpx 34rpx 24rpx 32rpx; padding: 22rpx 34rpx 24rpx 0;
} }
.titleClass { .titleClass {
display: flex;
align-items: center;
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 500; font-weight: 500;
font-size: 30rpx; font-size: 30rpx;
color: #333399; color: #111111;
text-align: left; text-align: left;
font-style: normal; font-style: normal;
text-transform: none; text-transform: none;
padding-left: 22rpx;
img{
margin-right: 22rpx;
}
}
.statusText{
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 28rpx;
text-align: right;
font-style: normal;
text-transform: none;
} }
.subTitleClass { .subTitleClass {
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
...@@ -204,6 +293,29 @@ export default { ...@@ -204,6 +293,29 @@ export default {
text-transform: none; text-transform: none;
padding: 28rpx 32rpx 0 32rpx; padding: 28rpx 32rpx 0 32rpx;
} }
.subRow{
display: flex;
justify-content: space-between;
margin-bottom: 12rpx;
.subTitle {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #9A9A9A;
text-align: left;
font-style: normal;
text-transform: none;
}
.subContent {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #222222;
text-align: center;
font-style: normal;
text-transform: none;
}
}
.timeClass { .timeClass {
font-family: PingFangSC, PingFang SC; font-family: PingFangSC, PingFang SC;
font-weight: 400; font-weight: 400;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment