代码更新

This commit is contained in:
jia 2023-11-05 15:34:42 +08:00
parent 86d52c81ac
commit 2c47202245
16 changed files with 1762 additions and 5361 deletions

View File

@ -15,6 +15,10 @@
{
"playground" : "custom",
"type" : "uni-app:app-android"
},
{
"playground" : "standard",
"type" : "uni-app:app-ios"
}
]
}

View File

@ -25,47 +25,3 @@ export const userInfo = (data) => oahttp.get('/home_index/userinfo', data)
*/
export const changePassword = (data) => oahttp.post('/home_index/edit_password', data)
/**
* 获取当前公司已创建的小队
*/
export const userCompanyBrigade = (data) => oahttp.get('/user/company_brigade', data)
/**
* 新增人员
*/
export const loginAdd = (data) => oahttp.post('/login/add', data)
/**
* 修改人员
*/
export const userSetInfo = (data) => oahttp.post('/user/setInfo', data)
/**
* 设置是否为队长
*/
export const loginSetInfo = (data) => oahttp.post('/login/setInfo', data)
/**
* 生成合同
*/
export const userDraftingcontracts = (data) => oahttp.post('/user/Draftingcontracts', data)
/**
* 发起合同
*/
export const userInitiateContract = (data) => oahttp.post('/user/initiate_contract', data)
/**
* 发送短信
*/
export const userPostsms = (data) => oahttp.post('/user/postsms', data)
/**
* 注销账号
*/
export const destroyAccount = (data) => oahttp.post('/user/destroy_account', data)
/**
* 商城登录
*/
export const loginShopAccount = (data) => oahttp.post('/login/shop_account', data, { noAuth: true })

View File

@ -78,7 +78,7 @@
"path": "pages/leaveapplication/index",
"style": {
"navigationBarTitleText": "申请"
}
},
@ -198,21 +198,21 @@
}
},
{
"path": "pages/reimbursementrecord/index",
"style": {
"navigationBarTitleText": "报销打款",
"navigationStyle": "custom"
}
},
{
"path": "pages/reimbursementrecord/index",
"style": {
"navigationBarTitleText": "报销打款",
"navigationBarBackgroundColor": "#3274F9"
}
},
{
@ -256,7 +256,7 @@
"navigationBarTextStyle": "white"
}
},{
}, {
"path": "pages/leave_request/bianji",
"style": {
"navigationBarTitleText": "审批",
@ -299,7 +299,7 @@
"navigationBarBackgroundColor": "#3274F9",
"navigationBarTextStyle": "white"
}
},{
}, {
"path": "pages/reimbursement/index",
"style": {
"navigationBarTitleText": "审批",
@ -348,7 +348,7 @@
"navigationBarTextStyle": "white"
}
},
{
"path": "pages/user/user",
"style": {
@ -388,9 +388,25 @@
"navigationBarBackgroundColor": "#3274F9",
"navigationBarTextStyle": "white"
}
},
{
"path": "pages/message/index",
"style": {
"navigationBarTitleText": "消息",
"navigationBarBackgroundColor": "#3274F9",
"navigationBarTextStyle": "white"
}
},
{
"path": "pages/message/detail",
"style": {
"navigationBarTitleText": "消息",
"navigationBarBackgroundColor": "#3274F9",
"navigationBarTextStyle": "white"
}
}
],
"globalStyle": {
"navigationBarTextStyle": "black",
@ -432,116 +448,71 @@
},
"uniIdRouter": {},
"subPackages": [{
"root": "pages/views",
"name": "views",
"pages": [
{
"path": "new_task",
"style": {
"navigationBarTitleText": "新建任务",
"enablePullDownRefresh": false
}
},
{
"path": "com_approve",
"style": {
"navigationBarTitleText": "通用审批",
"enablePullDownRefresh": false
}
}, {
"path": "task_details",
"style": {
"navigationBarTitleText": "任务描述",
"enablePullDownRefresh": false
}
}, {
"path": "leave_request",
"style": {
"navigationBarTitleText": "请假申请",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white"
}
}, {
"path": "leave_request",
"style": {
"navigationBarTitleText": "请假申请",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white"
}
}
]
},
{
"root": "pages/users",
"name": "users",
"pages": [{
"path": "myInformation/index",
"style": {
"navigationBarTitleText": "个人信息",
"navigationBarBackgroundColor": "#3274F9",
"navigationBarTextStyle": "white"
}
},
{
"path": "salarydetails/index",
"style": {
"navigationBarTitleText": "工资详情",
"navigationBarBackgroundColor": "#3274F9",
"navigationBarTextStyle": "white"
}
},
{
"path": "user_document/index",
"style": {
"navigationBarTitleText": "公司公示文档",
"navigationBarBackgroundColor": "#3274F9",
"navigationBarTextStyle": "white"
}
},
{
"path": "user_document/detail",
"style": {
"navigationBarTitleText": "公司公示文档详情",
"navigationBarBackgroundColor": "#3274F9",
"navigationBarTextStyle": "white"
}
},
{
"path": "article/index",
"style": {
"navigationBarTitleText": "文章列表",
"navigationBarBackgroundColor": "#3274F9",
"navigationBarTextStyle": "white"
}
},
{
"path": "article/detail",
"style": {
"navigationBarTitleText": "文章详情",
"navigationBarBackgroundColor": "#3274F9",
"navigationBarTextStyle": "white"
}
"root": "pages/users",
"name": "users",
"pages": [{
"path": "myInformation/index",
"style": {
"navigationBarTitleText": "个人信息",
"navigationBarBackgroundColor": "#3274F9",
"navigationBarTextStyle": "white"
}
]
}
},
{
"path": "salarydetails/index",
"style": {
"navigationBarTitleText": "工资详情",
"navigationBarBackgroundColor": "#3274F9",
"navigationBarTextStyle": "white"
]
}
},
{
"path": "user_document/index",
"style": {
"navigationBarTitleText": "公告",
"navigationBarBackgroundColor": "#3274F9",
"navigationBarTextStyle": "white"
}
},
{
"path": "user_document/detail",
"style": {
"navigationBarTitleText": "公司公示文档详情",
"navigationBarBackgroundColor": "#3274F9",
"navigationBarTextStyle": "white"
}
},
{
"path": "article/index",
"style": {
"navigationBarTitleText": "文章列表",
"navigationBarBackgroundColor": "#3274F9",
"navigationBarTextStyle": "white"
}
},
{
"path": "article/detail",
"style": {
"navigationBarTitleText": "文章详情",
"navigationBarBackgroundColor": "#3274F9",
"navigationBarTextStyle": "white"
}
}
]
}]
}

View File

@ -267,6 +267,10 @@
uni.navigateTo({
url: '/pages/leave_request/index?type=' + item.id
})
}else if (this.num == 2){
uni.navigateTo({
url: '/pages/leave_request/detail?type=' + item.id +'&num=0'
})
}else{
uni.navigateTo({
url: '/pages/leave_request/detail?type=' + item.id

View File

@ -48,22 +48,66 @@
</view>
</view>
<view class="content-banner">
<view class="content-banner-title">
待办事项
<view class="content-banner-title" style="display: flex;justify-content: space-between;">
<view class="">
待办事项
</view>
<view @click="gongao1">
更多
<text class="iconfont icon-xiangyou" style="margin-top: 5rpx;margin-right: 20rpx;"></text>
</view>
</view>
<view class="content-banner-detail" v-for="(item,k) in list2" :key='k'>
<view class="content-banner-detail" v-for="(item,k) in list2" :key='k' v-if="isshow1">
<view class="banner-detail">
<view class="banner-detail-title">
提醒
</view>
<view class="banner-detail-detail">
{{item.detail}}
{{item.title}}
</view>
</view>
<view class="iconfont icon-xiangyou" style="margin-top: 5rpx;">
</view>
</view>
<view class="bootom-top-three" v-else>
<scroll-view scroll-x="true" scroll-left="0" class="top-three">
<view class="top_users-header">
<view class="">
{{list6.approve}}
</view>
<view class="title1">
待审批
</view>
</view>
<view class="top_users-header">
<view class="">
{{list6.expenses}}
</view>
<view class="title2">
待报销
</view>
</view>
<view class="top_users-header">
<view class="">
{{list6.approve}}
</view>
<view class="title3">
待审发票
</view>
</view>
<view class="top_users-header">
<view class="">
{{list6.approve}}
</view>
<view class="title4">
待回款
</view>
</view>
</scroll-view>
</view>
</view>
<view class="content-sort">
<view class="content-sort-con" v-for="(item,l) in list3" :key="l" @click="appcenter(item,l)">
@ -80,7 +124,7 @@
<view class="">
公告
</view>
<view>
<view @click="gongao">
更多
<text class="iconfont icon-xiangyou" style="margin-top: 5rpx;margin-right: 20rpx;"></text>
</view>
@ -109,6 +153,7 @@
<text>更多</text>
<text class="iconfont icon-xiangyou" style="font-size: 25rpx;"></text>
</view>
</view>
<view class="content-bootom-detail">
@ -126,17 +171,18 @@
<view class="detail-one-c" v-if="item.flow_status==3">
{{item.flow_name}}
</view>
<view class="detail-one-c" v-else style="background-color: #E4EDFF;color: #3274F9;">
<view class="detail-one-c" v-else style="background-color: #E4EDFF;color: #3274F9;">
{{item.flow_name}}
</view>
</view>
<view class="bootom-detail-two">
<view class="detail-twoa ">
</view>
<view class="detail-twob">
任务性质{{item.cate_name}} <text style="margin-left: 20rpx;"> 计划完成时间{{item.end_time}}</text>
任务性质{{item.cate_name}} <text style="margin-left: 20rpx;">
计划完成时间{{item.end_time}}</text>
</view>
</view>
</view>
@ -155,7 +201,8 @@
getdatatotal,
getDocumentListApi,
projecttasklist,
todosubjec,tasksubjec
todosubjec,
tasksubjec
} from '@/api/oa.js'
import {
HTTP_REQUEST_URL
@ -232,7 +279,9 @@
}],
HTTP_IMG_URL: '',
list5: []
list5: [],
list6: {},
isshow1:true
}
},
computed: {
@ -248,8 +297,8 @@
this.getList()
this.getDtnote()
this.getDocumentList2()
this.getDtlist()
this.getDtlist1()
this.getDtlist()
this.getDtlist1()
},
methods: {
login() {
@ -263,36 +312,36 @@
page: 1,
limit: 2
})
// console.log(res.data)
this.list5 = res.data.data
},
async getDtlist() {
let res = await todosubjec()
console.log(res.data)
this.list6 = res.data
// this.list5 = res.data.data
},
async getDtlist1() {
let res = await tasksubjec()
console.log(res.data)
// this.list5 = res.data.data
this.list2 = res.data.data
},
//
async getDocumentList2() {
let res = await projecttasklist({
page: 1,
limit: 3,
})
this.list4=res.data.data
this.list4 = res.data.data
},
//
async getList() {
const res = await getdatatotal()
console.log(res.data)
this.list = res.data
},
//
@ -307,7 +356,7 @@
uni.switchTab({
url: '/pages/examine/index'
})
break;
case "expense":
uni.navigateTo({
@ -325,8 +374,8 @@
})
break;
case "project":
case "project":
uni.navigateTo({
url: '/pages/project/index'
})
@ -344,6 +393,16 @@
}
},
//
gongao() {
uni.navigateTo({
url: '/pages/users/user_document/index'
})
},
//
gongao1() {
this.isshow1=!this.isshow1
},
//
appcenter(item, i) {
switch (i) {
@ -492,6 +551,73 @@
}
}
.bootom-top-three {
display: flex;
white-space: nowrap;
.top_users-header {
display: inline-block;
margin-right: 30rpx;
text-align: center;
font-size: 53rpx;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: rgba(0, 0, 0, 0.8);
.title1 {
width: 131rpx;
height: 42rpx;
line-height: 42rpx;
background-color: #3274F9;
text-align: center;
border-radius: 21rpx 21rpx;
font-size: 25rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #FFFFFF;
}
.title2 {
width: 131rpx;
height: 42rpx;
line-height: 42rpx;
background-color: #F9AA32;
text-align: center;
border-radius: 21rpx 21rpx;
font-size: 25rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #FFFFFF;
}
.title3 {
width: 131rpx;
height: 42rpx;
line-height: 42rpx;
background-color: #F9AA32;
text-align: center;
border-radius: 21rpx 21rpx;
font-size: 25rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #FFFFFF;
}
.title4 {
width: 131rpx;
height: 42rpx;
line-height: 42rpx;
background-color: red;
text-align: center;
border-radius: 21rpx 21rpx;
font-size: 25rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #FFFFFF;
}
}
}
.my_msg-con {
display: flex;
margin-top: 138rpx;

View File

@ -7,17 +7,18 @@
<!-- {{fieldKey}} -->
<!-- {{ fieldValue.title }} - {{ fieldValue.type }} -->
<!-- v-if="fieldValue.type=='select'&& fieldKey!='copy_uids'&&fieldKey!='check_admin_ids'&&fieldKey!='flow_id'&&fieldKey!='name'" -->
<view class="leava_type flex_a_c"
v-if="fieldValue.type=='select'&& fieldKey!='copy_uids'&&fieldKey!='check_admin_ids'&&fieldKey!='flow_id'&&fieldKey!='name'">
<view class="title">{{fieldValue.title}}</view>
<input type="text" v-model="meatelist[fieldKey]" placeholder="请选择" @click="leixin(fieldKey)" v-if="fieldKey!='name'">
v-if="fieldValue.type=='select'&& fieldKey!='copy_uids'&&fieldKey!='check_admin_ids'&&fieldKey!='flow_id'&&fieldKey!='name'">
<view class="title">{{fieldValue.title}}</view>
<input type="text" v-model="meatelist[fieldKey]" placeholder="请选择" @click="leixin(fieldKey)"
v-if="fieldKey!='name'">
</view>
<view class="leava_type flex_a_c" v-if="fieldKey=='name'">
<view class="title">{{fieldValue.title}}</view>
<input type="text" v-model="meatelist[fieldKey]" placeholder="请选择" @click="leixiner()">
<view class="title">{{fieldValue.title}}</view>
<input type="text" v-model="meatelist[fieldKey]" placeholder="请选择" @click="leixiner()">
</view>
<view class=""
v-if="fieldValue.type=='input'&&fieldKey!='end_time'&&fieldKey!='start_time'&&fieldKey!='duration'">
@ -60,7 +61,16 @@
<view class="" v-if="fieldValue.type=='file'">
<!-- <view class="" v-for="(itemValue, itemKey) in fieldValue.item" :key="itemKey">
{{ itemKey }}: {{ itemValue }}
</view> -->
</view>
</view>
<view class="leave_box" style="padding-top: 30rpx;" >
<block v-for="(item, i) in fileArray" :key="i">
<view class="file flex_a_c_j_sb">
<view class="l_file">
@ -93,15 +103,6 @@
</view>
</view>
<!-- <view class="" v-for="(itemValue, itemKey) in fieldValue.item" :key="itemKey">
{{ itemKey }}: {{ itemValue }}
</view> -->
</view>
</view>
<view class="flow_path">
<view class="cont_cell">
<view class="title">选择审批流程</view>
@ -164,9 +165,6 @@
</template>
<script>
import {
oaLeaveData
} from '@/static/server/server.js'
import {
oaUploads
} from '../../api/upload'
@ -178,7 +176,7 @@
getemployee,
userdepartment,
appapprove,
appapproveview
appapproveview
} from '@/api/oa.js'
import {
FILE_URL
@ -272,7 +270,7 @@ appapproveview
this.getDocumentList2()
},
onShow() {
// this.getFlow()
//
this.timestamp = Date.parse(new Date());
},
@ -317,16 +315,10 @@ appapproveview
this.dataobj1 = res.data
// this.check_record = res.data.check_record
this.applist1(res.data.detail.type)
// if ('detail_type' in res.data.field.flow_id) {
// const detailTypeOptions1 = Object.entries(res.data.field.flow_id.item).map(([id, name]) => ({
// id,
// name
// }));
// this.flowPathSheet = detailTypeOptions1
// }
@ -335,34 +327,52 @@ appapproveview
let res = await appfield({
type: type
})
this.dataobj = res.data.field
console.log(this.columns)
this.meatelist.name = 'name' in this.dataobj1.detail ? this.dataobj1.detail.name : ''
this.timeData[0].time = 'start_time' in this.dataobj1.detail ? this.dataobj1.detail.start_time : ''
this.timeData[1].time = 'end_time' in this.dataobj1.detail ? this.dataobj1.detail.end_time : ''
if (this.typeId != 53) {
this.timeData[0].time = 'start_time' in this.dataobj1.detail ? this.dataobj1.detail.start_time : ''
this.timeData[1].time = 'end_time' in this.dataobj1.detail ? this.dataobj1.detail.end_time : ''
}
this.meatelist.mobile = 'mobile' in this.dataobj1.detail ? this.dataobj1.detail.mobile : ''
this.meatelist.department_type = 'department_type' in this.dataobj1.detail ? this.dataobj1.detail
.department_type_title : ''
this.meatelist.detail_type = 'detail_type' in this.dataobj1.detail ? this.dataobj1.detail
.detail_type_title : ''
this.meatelist.other_type = 'other_type' in this.dataobj1.detail ? this.dataobj1.detail
.other_type_title : ''
// this.meatelist.department_type = 'department_type' in this.dataobj1.detail ? this.dataobj1.detail
// .department_type_title : ''
// this.meatelist.detail_type = 'detail_type' in this.dataobj1.detail ? this.dataobj1.detail
// .detail_type_title : ''
// this.meatelist.other_type = 'other_type' in this.dataobj1.detail ? this.dataobj1.detail
// .other_type_title : ''
this.meatelist.remark = 'remark' in this.dataobj1.detail ? this.dataobj1.detail.remark : ''
this.meatelist.remark1 = 'remark1' in this.dataobj1.detail ? this.dataobj1.detail.remark1 : ''
this.meatelist.address = 'address' in this.dataobj1.detail ? this.dataobj1.detail.address : ''
this.meatelist.detail_time = 'detail_time' in this.dataobj1.detail ? this.dataobj1.detail.detail_time :
''
this.meatelist.content = 'content' in this.dataobj1.detail ? this.dataobj1.detail.content : ''
this.check_admin_name = 'check_user' in this.dataobj1.detail ? this.dataobj1.detail.check_user : ''
this.check_admin_ids = 'check_admin_ids' in this.dataobj1.detail ? this.dataobj1.detail.check_admin_ids : ''
this.copy_uids = 'copy_uids' in this.dataobj1.detail ? this.dataobj1.detail.copy_uids : ''
this.copy_names = 'copy_user' in this.dataobj1.detail ? this.dataobj1.detail.copy_user : ''
// this.check_admin_name = 'check_user' in this.dataobj1.detail ? this.dataobj1.detail.check_user : ''
// this.check_admin_ids = 'check_admin_ids' in this.dataobj1.detail ? this.dataobj1.detail
// .check_admin_ids : ''
// this.copy_uids = 'copy_uids' in this.dataobj1.detail ? this.dataobj1.detail.copy_uids : ''
// this.copy_names = 'copy_user' in this.dataobj1.detail ? this.dataobj1.detail.copy_user : ''
this.flowPath = 'file_ids_title' in this.dataobj1.detail ? this.dataobj1.detail.file_ids_title : ''
this.flow_id = 'flow_id' in this.dataobj1.detail ? this.dataobj1.detail.flow_id : ''
if('fileArray' in this.dataobj1.detail){
this.flow_id = 'flow_id' in this.dataobj1.detail ? this.dataobj1.detail.flow_id : ''
this.meatelist.num = 'num' in this.dataobj1.detail ? this.dataobj1.detail.num : ''
if ('flow_id' in res.data.field) {
const detailTypeOptions1 = Object.entries(res.data.field.flow_id.item).map(([id, name]) => ({
id,
name
}));
// console.log(detailTypeOptions1)
this.flowPathSheet = detailTypeOptions1
}
if ('fileArray' in this.dataobj1.detail) {
this.fileArray = res.data.detail.fileArray.map(function(obj) {
return {
name: obj.name,
@ -372,96 +382,98 @@ appapproveview
}
// this.meatelist.remark1 = 'remark1' in this.dataobj1.detail ? this.dataobj1.detail.remark1 : ''
// this.meatelist.remark1 = 'remark1' in this.dataobj1.detail ? this.dataobj1.detail.remark1 : ''
console.log(this.timeData)
// console.log(this.timeData)
if ('detail_type' in this.dataobj) {
const detailTypeOptions = Object.entries(this.dataobj.detail_type.item).map(([id, name]) => ({
id,
name
}));
this.columns = detailTypeOptions
for (let i in this.columns) {
console.log(this.columns[i].id, this.dataobj1.detail.detail_type, '1111111111111')
if (this.columns[i].id == this.dataobj1.detail.detail_type) {
this.meatelist.detail_type = this.columns[i].name
this.leavaTypeId1= this.columns[i].id
this.leavaTypeId1 = this.columns[i].id
}
console.log(this.meatelist.detail_type,this.leavaTypeId1)
}
}
if ('department_type' in this.dataobj) {
const detailTypeOptions = Object.entries(this.dataobj.department_type.item).map(([id, name]) => ({
id,
name
}));
this.columns = detailTypeOptions
for (let i in this.columns) {
if (this.columns[i].id == this.dataobj1.detail.department_type) {
this.meatelist.department_type= this.columns[i].name
this.leavaTypeId = this.columns[i].id
this.meatelist.department_type = this.columns[i].name
this.leavaTypeId = this.columns[i].id
}
// console.log(this.meatelist.detail_type)
}
}
if ('other_type' in this.dataobj) {
const detailTypeOptions = Object.entries(this.dataobj.other_type.item).map(([id, name]) => ({
id,
name
}));
this.columns = detailTypeOptions
for (let i in this.columns) {
if (this.columns[i].id == this.dataobj1.detail.other_type) {
this.meatelist.other_type = this.columns[i].name
this.leavaTypeId2= this.columns[i].id
this.leavaTypeId2 = this.columns[i].id
}
// console.log(this.meatelist.detail_type)
}
}
if ('position_type' in this.dataobj) {
const detailTypeOptions = Object.entries(this.dataobj.position_type.item).map(([id, name]) => ({
id,
name
}));
this.columns = detailTypeOptions
for (let i in this.columns) {
if (this.columns[i].id == this.dataobj1.detail.position_type) {
this.meatelist.position_type = this.columns[i].name
this.leavaTypeId3= this.columns[i].id
this.leavaTypeId3 = this.columns[i].id
}
// console.log(this.meatelist.detail_type)
}
}
},
//
async getDocumentList() {
@ -712,13 +724,7 @@ appapproveview
this.flow_id = value.id
},
async getFlow() {
const flow = await getFlowAPI({
type: 1,
flow_cate: 1
})
this.flowPathSheet = flow
},
timeConfirm(e, i) {
this.timeData[i].time = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM:ss')
// this.timeData[i].timeDay = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
@ -751,8 +757,8 @@ appapproveview
if (this.typeId == 8) {
subData1.start_time = this.timeData[0].time,
subData1.end_time = this.timeData[1].time,
subData1.department_type = this.leavaTypeId
subData1.end_time = this.timeData[1].time,
subData1.department_type = this.leavaTypeId
subData1.detail_type = this.leavaTypeId1
subData1.other_type = this.leavaTypeId2
@ -774,7 +780,7 @@ appapproveview
this.fileArray.map((item, i) => {
fileIds.push(item.id)
});
subData = {
detail_type: this.leavaTypeId1,
start_time: this.timeData[0].time,
@ -798,15 +804,15 @@ appapproveview
try {
const res = await appapprove(subData)
Toast('提交成功')
if(res.code==0){
uni.navigateTo({
url:'/pages/examine/index'
})
if (res.code == 0) {
uni.switchTab({
url: '/pages/examine/index'
})
}
} catch (e) {
Toast('提交失败')
@ -893,7 +899,7 @@ appapproveview
content: '确定删除图片?',
success: res => {
if (res.confirm) {
that.fileArray.splice((i, 1))
that.fileArray.splice(i, 1)
} else if (res.cancel) {
console.log('用户点击取消');
}

View File

@ -92,10 +92,11 @@
</view>
<view class="cont_details">
<view class="examine">审批流程</view>
<view class="cont_cell">
<view class="title" >审核状态</view>
{{dataobj1.detail.check_status=='0'?'待审核':dataobj1.detail.check_status=='1'?'审核中':dataobj1.detail.check_status=='2'?'审核通过':dataobj1.detail.check_status=='3'?'审核不通过':'撤销审核'}}
<view class="cont_cell"
v-if="dataobj1 && dataobj1.detail && dataobj1.detail.hasOwnProperty('check_status')">
<view class="title">审核状态</view>
{{dataobj1.detail.check_status=='0'?'待审核':dataobj1.detail.check_status=='1'?'审核中':dataobj1.detail.check_status=='2'?'审核通过':dataobj1.detail.check_status=='3'?'审核不通过':'撤销审核'}}
</view>
<view class="cont_cell">
<view class="title">当前审核人</view>
@ -114,22 +115,25 @@
了此申请操作意见{{item.content}}</text>
</view>
</block>
<view class="cont_cell" style="padding-top: 20rpx;">
<view class="cont_cell" style="padding-top: 20rpx;" v-if="ktype!=0">
<view class="title" style="width: 200rpx;">撤回意见</view>
<textarea v-model="mscontent" placeholder="请输入撤回意见" />
</view>
</view>
<view class="bot_btn" v-if='dataobj1.detail.check_status!=4'>
<!-- <view class="reset" @click="appflowcheck()">拒绝</view>
<view class="" v-if="ktype!=0">
<view class="bot_btn" v-if='dataobj1.detail.check_status!=4'>
<!-- <view class="reset" @click="appflowcheck()">拒绝</view>
<view class="submit_btn" @click=" appflowcheck1()">通过</view> -->
<view class="submit_btn" @click="appflowcheck1()">撤回</view>
</view>
<view class="bot_btn" v-else>
<view class="submit_btn" @click="editcheck1(dataobj1)">重新编辑</view>
</view>
<view class="submit_btn" @click="appflowcheck1()">撤回</view>
</view>
<view class="bot_btn" v-else>
<view class="submit_btn" @click="editcheck1(dataobj1)">重新编辑</view>
</view>
</view>
<u-picker :show="branchShow" :defaultIndex='defaultIndex' ref="branchRef" :columns="branchColumns"
@confirm="branchConfirm" @change="columnCode" :closeOnClickOverlay="true" @close="branchShowclose"
keyName="name">
@ -138,9 +142,6 @@
</template>
<script>
import {
oaLeaveData
} from '@/static/server/server.js'
import {
oaUploads
} from '../../api/upload'
@ -217,11 +218,13 @@
flag1: false,
datatype: '',
dataobj1: {},
check_record: []
check_record: [],
ktype: 1
}
},
onLoad(option) {
this.typeId = option.type
this.ktype = option.num
if (option.type == 8) {
this.timeData[0].title = '借用日期:'
this.timeData[1].title = '拟归还日期:'
@ -308,16 +311,9 @@
this.meatelist.detail_time = 'detail_time' in this.dataobj1.detail ? this.dataobj1.detail.detail_time :
''
this.meatelist.content = 'content' in this.dataobj1.detail ? this.dataobj1.detail.content : ''
if('fileArray' in this.dataobj1.detail){
this.fileArray = res.data.detail.fileArray.map(function(obj) {
return {
name: obj.name,
filesize: obj.filesize
};
});
}
this.meatelist.num = 'num' in this.dataobj1.detail ? this.dataobj1.detail.num : ''
// this.meatelist.remark1 = 'remark1' in this.dataobj1.detail ? this.dataobj1.detail.remark1 : ''
// this.meatelist.remark1 = 'remark1' in this.dataobj1.detail ? this.dataobj1.detail.remark1 : ''
@ -327,10 +323,11 @@
// console.log(this.meatelist.detail_type, '2222222222')
console.log(this.dataobj1.detail.detail_type)
if ('detail_type' in this.dataobj1.detail) {
if ('detail_type' in this.dataobj) {
const detailTypeOptions = Object.entries(this.dataobj.detail_type.item).map(([id, name]) => ({
id,
name
@ -341,14 +338,79 @@
if (this.columns[i].id == this.dataobj1.detail.detail_type) {
this.meatelist.detail_type = this.columns[i].name
this.leavaTypeId1 = this.columns[i].id
}
console.log(this.meatelist.detail_type, this.leavaTypeId1)
}
}
if ('department_type' in this.dataobj) {
const detailTypeOptions = Object.entries(this.dataobj.department_type.item).map(([id, name]) => ({
id,
name
}));
this.columns = detailTypeOptions
for (let i in this.columns) {
if (this.columns[i].id == this.dataobj1.detail.department_type) {
this.meatelist.department_type = this.columns[i].name
this.leavaTypeId = this.columns[i].id
}
// console.log(this.meatelist.detail_type)
}
}
if ('other_type' in this.dataobj) {
const detailTypeOptions = Object.entries(this.dataobj.other_type.item).map(([id, name]) => ({
id,
name
}));
this.columns = detailTypeOptions
for (let i in this.columns) {
if (this.columns[i].id == this.dataobj1.detail.other_type) {
this.meatelist.other_type = this.columns[i].name
this.leavaTypeId2 = this.columns[i].id
}
// console.log(this.meatelist.detail_type)
}
}
if ('position_type' in this.dataobj) {
const detailTypeOptions = Object.entries(this.dataobj.position_type.item).map(([id, name]) => ({
id,
name
}));
this.columns = detailTypeOptions
for (let i in this.columns) {
if (this.columns[i].id == this.dataobj1.detail.position_type) {
this.meatelist.position_type = this.columns[i].name
this.leavaTypeId3 = this.columns[i].id
}
// console.log(this.meatelist.detail_type)
}
}
this.fileArray = this.dataobj1.detail.fileArray.map(function(obj) {
return {
name: obj.name,
filesize: obj.filesize
};
});
},
//
@ -486,7 +548,11 @@
check_admin_ids: this.check_admin_ids.toString()
}
let res = await appflow_check(data)
if (res.code == 0) {
uni.navigateBack({
delta: 1
})
}
Toast(res.msg)
},
@ -501,6 +567,11 @@
}
let res = await appflow_check(data)
console.log(res)
if (res.code == 0) {
uni.navigateBack({
delta: 1
})
}
Toast(res.msg)
},
leixin(e) {
@ -601,8 +672,8 @@
this.meatelist.other_type = e.name
this.leavaTypeId2 = e.id
}
this.leavaTypeShow = false
@ -625,17 +696,17 @@
this.timeData[i].timeDay = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
this.timeData[i].timeHour = uni.$u.timeFormat(e.value, 'hh:MM')
this.timeData[i].timeShow = false
},
//
editcheck1(item){
editcheck1(item) {
console.log(item)
uni.navigateTo({
url: '/pages/leave_request/bianji??type=' + item.detail.id
})
},
/**
* 计算两个时间戳之间相差的小时数
* */

View File

@ -158,9 +158,7 @@
</template>
<script>
import {
oaLeaveData
} from '@/static/server/server.js'
import {
oaUploads
} from '../../api/upload'
@ -293,7 +291,7 @@
let res = await appapproveview({
id: type
})
console.log(res.data)
this.dataobj1 = res.data
this.check_record = res.data.check_record
this.applist1(res.data.detail.type)
@ -343,24 +341,82 @@
if ('detail_type' in this.dataobj1.detail) {
if ('detail_type' in this.dataobj) {
const detailTypeOptions = Object.entries(this.dataobj.detail_type.item).map(([id, name]) => ({
id,
name
}));
this.columns = detailTypeOptions
for (let i in this.columns) {
if (this.columns[i].id == this.dataobj1.detail.detail_type) {
this.meatelist.detail_type = this.columns[i].name
this.leavaTypeId1= this.columns[i].id
}
console.log(this.meatelist.detail_type,this.leavaTypeId1)
}
}
if ('department_type' in this.dataobj) {
const detailTypeOptions = Object.entries(this.dataobj.department_type.item).map(([id, name]) => ({
id,
name
}));
this.columns = detailTypeOptions
for (let i in this.columns) {
if (this.columns[i].id == this.dataobj1.detail.department_type) {
this.meatelist.department_type= this.columns[i].name
this.leavaTypeId = this.columns[i].id
}
// console.log(this.meatelist.detail_type)
}
}
if ('other_type' in this.dataobj) {
const detailTypeOptions = Object.entries(this.dataobj.other_type.item).map(([id, name]) => ({
id,
name
}));
this.columns = detailTypeOptions
for (let i in this.columns) {
if (this.columns[i].id == this.dataobj1.detail.other_type) {
this.meatelist.other_type = this.columns[i].name
this.leavaTypeId2= this.columns[i].id
}
// console.log(this.meatelist.detail_type)
}
}
if ('position_type' in this.dataobj) {
const detailTypeOptions = Object.entries(this.dataobj.position_type.item).map(([id, name]) => ({
id,
name
}));
this.columns = detailTypeOptions
for (let i in this.columns) {
if (this.columns[i].id == this.dataobj1.detail.position_type) {
this.meatelist.position_type = this.columns[i].name
this.leavaTypeId3= this.columns[i].id
}
// console.log(this.meatelist.detail_type)
}
}
},

View File

@ -168,9 +168,7 @@
</template>
<script>
import {
oaLeaveData
} from '@/static/server/server.js'
import {
oaUploads
} from '../../api/upload'
@ -598,6 +596,10 @@
},
async submiteBtn() {
console.log(this.leavaTypeId2)
if (this.meatelist.mobile) {
const pattern = /^1[3456789]\d{9}$/;
if (!pattern.test(this.meatelist.mobile)) return Toast('手机号输入错误')
}
let subData;
let subData1;
if (this.typeId == 6 || this.typeId == 7 || this.typeId == 8 || this.typeId == 21) {
@ -759,11 +761,11 @@
delImg(i) {
let that = this
uni.showModal({
title: '删除图片',
content: '确定删除图片?',
title: '删除上传内容吗',
content: '确定删除上传内容吗?',
success: res => {
if (res.confirm) {
that.fileArray.splice((i, 1))
that.fileArray.splice(i, 1)
} else if (res.cancel) {
console.log('用户点击取消');
}

View File

@ -110,9 +110,7 @@
<script>
import {
oaLeaveData
} from '@/static/server/server.js'
import {
oaUploads
} from '../../api/upload'
@ -464,7 +462,7 @@
content: '确定删除图片?',
success: res => {
if (res.confirm) {
that.fileArray.splice((i, 1))
that.fileArray.splice(i, 1)
} else if (res.cancel) {
console.log('用户点击取消');
}

375
pages/message/detail.vue Normal file
View File

@ -0,0 +1,375 @@
<template>
<view class="content">
<view class="content-middle">
<view class="content-middle-three">
<view class="middle-three">
<view class="middle-threeb" style="margin-bottom: 20rpx;">
<view class="middle-threeb-title">
<view class="title">
{{list.send_time}}
</view>
<!-- <view class="title-status">
{{list.send_time}}
</view> -->
</view>
<view class="middle-threeba">
<view class="middle-threeb-a">
<view class="threeb-a-b">
<view class="name">消息<text>{{list.content}}</text></view>
<view class="name">用户<text>{{list.users}}</text></view>
<view class="name">发送时间<text>{{list.send_time}}</text></view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<u-empty v-if="list.length==0" text="没有信息" icon="/static/empty/data.png"></u-empty>
</view>
</template>
<script>
import {
appmessageread
} from '@/api/oa.js'
import {
HTTP_REQUEST_URL
} from '@/config/app.js'
import {
Toast
} from '@/libs/uniApi.js'
export default {
data() {
return {
keyword: '',
list: {},
};
},
computed: {
},
onLoad(option) {
this.getDocumentList(option.type)
},
onShow() {
},
methods: {
//
async getDocumentList(id) {
let res = await appmessageread({
id: id
})
console.log(res.data)
this.list = res.data
}
}
};
</script>
<style lang="scss">
page {
padding-bottom: 88rpx;
}
.content-middle {
.content-middle-one {
.middle-one {
display: flex;
background-color: #FFFFFF;
padding: 28rpx 18rpx;
.search {
font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #666666;
width: 149rpx;
line-height: 63rpx;
height: 63rpx;
background: #FFFFFF;
text-align: center;
border-radius: 35rpx 35rpx;
border: 2rpx solid #E6E5E5;
margin-left: 18rpx;
}
.content-middle-search {
display: flex;
width: 527rpx;
height: 63rpx;
line-height: 63rpx;
padding-left: 30rpx;
background: #F7F7F7;
border-radius: 35rpx 35rpx;
font-size: 25rpx;
input {
width: 527rpx;
height: 63rpx;
line-height: 63rpx;
padding-left: 30rpx;
}
.placeholder {
font-size: 25rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #999999;
padding-left: 30rpx;
}
}
.content-middle-sai {
display: flex;
width: 149rpx;
height: 63rpx;
line-height: 63rpx;
background: #FFFFFF;
border-radius: 35rpx 35rpx;
border: 2rpx solid #E6E5E5;
margin-left: 18rpx;
.content-middle-saia {
width: 29rpx;
height: 28rpx;
margin-left: 25rpx;
margin-right: 10rpx;
image {
width: 100%;
height: 100%;
}
}
.content-middle-saib {
font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
}
}
}
.content-middle-search-detail {
background-color: #FFFFFF;
:nth-last-child(1) {
border: none !important;
}
.search-detail {
display: flex;
justify-content: space-between;
padding-right: 195rpx;
padding: 18rpx 53rpx;
border-bottom: 2rpx solid #E6E6E6;
;
.search-detail-one {}
}
}
}
.content-middle-three {
margin-top: 26rpx;
.middle-three {
.middle-threea {
font-size: 35rpx;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #3274F9;
margin-bottom: 30rpx;
}
.middle-threeb {
background-color: #FFFFFF;
padding: 28rpx 28rpx;
.middle-threeb-title {
height: 98rpx;
line-height: 98rpx;
border-bottom: 1px solid #CCCCCC;
display: flex;
justify-content: space-between;
margin-bottom: 20rpx;
.title {
font-size: 32rpx;
font-family: PingFang SC-Medium, PingFang SC;
font-weight: 500;
color: #333333;
}
.title-status {
font-size: 32rpx;
font-family: PingFang SC-Medium, PingFang SC;
font-weight: 500;
}
}
.middle-threeba {
display: flex;
justify-content: space-between;
.middle-threeb-a {
.threeb-a-b {
view {
margin-bottom: 20rpx;
}
.middle-edit {
width: 645rpx;
height: 63rpx;
line-height: 63rpx;
background: #e6e5d9;
text-align: center;
font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #000;
margin-bottom: 20rpx;
}
.middle-delete {
width: 645rpx;
height: 63rpx;
line-height: 63rpx;
background: #F02828;
text-align: center;
font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #FFFFFF;
}
.name {
font-size: 35rpx;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #333333;
text {
font-size: 25rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #CCCCCC;
}
}
.achor {
font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #999999;
}
}
}
.middle-threeb-b {
height: 80rpx;
image {
width: 100%;
height: 100%;
}
}
}
}
}
}
}
.content-middle-two {
width: 386rpx;
height: 70rpx;
line-height: 70rpx;
background: #3274F9;
border-radius: 60rpx 60rpx;
z-index: 99999;
font-size: 32rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #FFFFFF;
display: flex;
margin: 0 auto;
margin-top: 25rpx;
.middle-two-img {
width: 23rpx;
height: 23rpx;
margin-left: 52rpx;
margin-right: 10rpx;
image {
width: 100%;
height: 100%;
}
}
}
</style>

491
pages/message/index.vue Normal file
View File

@ -0,0 +1,491 @@
<template>
<view class="content">
<view class="content-middle" :style="{'opacity':!screenShow?'0.4':''}">
<view class="content-middle-three" v-if="list.length>0">
<view class="middle-three">
<view class="middle-threeb" v-for="(items,j) in list" :key='j' @click="msg(items.id)"
style="margin-bottom: 20rpx;">
<liu-swipe-action :index="j">
<view class="middle-threeb-title">
<view class="title">
{{items.msg_type}}
</view>
<view class="title-status">
{{items.create_time}}
</view>
</view>
<view class="middle-threeba">
<view class="middle-threeb-a">
<view class="threeb-a-b">
<view class="name">消息<text>{{items.title}}</text></view>
<!-- <view class="achor">{{items.name2}}</view> -->
<!-- <view class="middle-edit" @click="editpart(items)">
编辑
</view>
<view class="middle-delete" @click="clickItem(items)">
删除
</view> -->
</view>
</view>
<!-- <view class="middle-threeb-b">
{{items.name}}
</view> -->
</view>
</liu-swipe-action>
</view>
</view>
</view>
</view>
<view class="content-middle" :style="{'position':'absolute','top':0+'px','zIndex':999}" v-if="!screenShow">
<view class="content-middle-one">
<view class="middle-one">
<view class="content-middle-search">
<text class='iconfont icon-sousuo2'></text>
<input type='text' :value='keyword' placeholder='搜索任务状态、优先级、部门等' placeholder-class='placeholder'
@input="setValue"></input>
</view>
<view class="content-middle-sai" @click="screen" style="background-color: #3274F9;">
<view class="content-middle-saia">
<image src="../../static/images/saixuan.png" mode="aspectFit"></image>
</view>
<view class="content-middle-saib" style="color: #fff;">
筛选
</view>
</view>
</view>
<view class="content-middle-search-detail">
<view class="search-detail" v-for="(item,k) in klist" :key='k'>
<view class="search-detail-one">
<view class="name">
{{item.name}}
</view>
</view>
<view class="search-detail-two">
{{item.name1}}
</view>
</view>
</view>
</view>
</view>
<u-empty v-if="loadConfig.status=='nomore'&& list.length==0" text="没有信息"
icon="/static/empty/data.png"></u-empty>
<u-loadmore v-else :status="loadConfig.status" :loading-text="loadConfig.loadingText"
:loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" />
</view>
</template>
<script>
import {
appmessageinbox,
appmessageread
} from '@/api/oa.js'
import {
HTTP_REQUEST_URL
} from '@/config/app.js'
import {
Toast
} from '@/libs/uniApi.js'
export default {
data() {
return {
show: false,
btnList: [{
id: '1',
name: '编辑',
width: '100rpx',
height: '100rpx',
bgColor: '#5f92f7',
color: '#FFFFFF',
fontSize: '28rpx'
}, {
id: '2',
name: '删除',
height: '100rpx',
width: '100rpx',
bgColor: '#ed656d',
color: '#FFFFFF',
fontSize: '28rpx'
}],
loadConfig: {
page: 1,
limit: 5,
loadingText: '努力加载中',
loadmoreText: '轻轻上拉',
nomoreText: '我也是有底线的~~',
status: 'loadmore'
},
keyword: '',
list: [],
klist: [],
screenShow: true
};
},
computed: {
httpRequestUrl() {
return HTTP_REQUEST_URL;
}
},
onLoad() {
},
onShow() {
this.initList()
},
onReachBottom() {
this.getDocumentList()
},
onPullDownRefresh() {
uni.stopPullDownRefresh()
},
methods: {
async initList() {
this.loadConfig.page = 1;
this.loadConfig.status = "loadmore";
this.list = [];
await this.getDocumentList();
},
//
async getDocumentList() {
if (this.loadConfig.status == "nomore") return;
this.loadConfig.status = "loading"
let res = await appmessageinbox({
page: this.loadConfig.page,
limit: this.loadConfig.limit,
})
this.loadConfig.status = "loadmore"
if (res.data.data.length < this.loadConfig.limit) {
this.loadConfig.status = "nomore"
} else {
this.loadConfig.page++;
}
this.list = [...this.list, ...res.data?.data]
},
//
async msg(id) {
const res = await appmessageread({
id: id
})
uni.navigateTo({
url: '/pages/message/detail??type=' + id
})
// console.log(res)
},
taskDetail(item) {
},
//
editpart(item) {
},
//
search() {
this.initList()
},
//
setValue(e) {
this.keyword = e.detail.value
if (this.keyword.length == 0) {
this.initList()
}
}
}
};
</script>
<style lang="scss">
page {
padding-bottom: 88rpx;
}
.content-middle {
.content-middle-one {
.middle-one {
display: flex;
background-color: #FFFFFF;
padding: 28rpx 18rpx;
.search {
font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #666666;
width: 149rpx;
line-height: 63rpx;
height: 63rpx;
background: #FFFFFF;
text-align: center;
border-radius: 35rpx 35rpx;
border: 2rpx solid #E6E5E5;
margin-left: 18rpx;
}
.content-middle-search {
display: flex;
width: 527rpx;
height: 63rpx;
line-height: 63rpx;
padding-left: 30rpx;
background: #F7F7F7;
border-radius: 35rpx 35rpx;
font-size: 25rpx;
input {
width: 527rpx;
height: 63rpx;
line-height: 63rpx;
padding-left: 30rpx;
}
.placeholder {
font-size: 25rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #999999;
padding-left: 30rpx;
}
}
.content-middle-sai {
display: flex;
width: 149rpx;
height: 63rpx;
line-height: 63rpx;
background: #FFFFFF;
border-radius: 35rpx 35rpx;
border: 2rpx solid #E6E5E5;
margin-left: 18rpx;
.content-middle-saia {
width: 29rpx;
height: 28rpx;
margin-left: 25rpx;
margin-right: 10rpx;
image {
width: 100%;
height: 100%;
}
}
.content-middle-saib {
font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
}
}
}
.content-middle-search-detail {
background-color: #FFFFFF;
:nth-last-child(1) {
border: none !important;
}
.search-detail {
display: flex;
justify-content: space-between;
padding-right: 195rpx;
padding: 18rpx 53rpx;
border-bottom: 2rpx solid #E6E6E6;
;
.search-detail-one {}
}
}
}
.content-middle-three {
margin-top: 26rpx;
.middle-three {
.middle-threea {
font-size: 35rpx;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #3274F9;
margin-bottom: 30rpx;
}
.middle-threeb {
background-color: #FFFFFF;
padding: 28rpx 28rpx;
.middle-threeb-title {
height: 98rpx;
line-height: 98rpx;
border-bottom: 1px solid #CCCCCC;
display: flex;
justify-content: space-between;
margin-bottom: 20rpx;
.title {
font-size: 32rpx;
font-family: PingFang SC-Medium, PingFang SC;
font-weight: 500;
color: #333333;
}
.title-status {
font-size: 32rpx;
font-family: PingFang SC-Medium, PingFang SC;
font-weight: 500;
}
}
.middle-threeba {
display: flex;
justify-content: space-between;
.middle-threeb-a {
.threeb-a-b {
view {
margin-bottom: 20rpx;
}
.middle-edit {
width: 645rpx;
height: 63rpx;
line-height: 63rpx;
background: #e6e5d9;
text-align: center;
font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #000;
margin-bottom: 20rpx;
}
.middle-delete {
width: 645rpx;
height: 63rpx;
line-height: 63rpx;
background: #F02828;
text-align: center;
font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #FFFFFF;
}
.name {
font-size: 35rpx;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #333333;
text {
font-size: 25rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #CCCCCC;
}
}
.achor {
font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #999999;
}
}
}
.middle-threeb-b {
height: 80rpx;
image {
width: 100%;
height: 100%;
}
}
}
}
}
}
}
.content-middle-two {
width: 386rpx;
height: 70rpx;
line-height: 70rpx;
background: #3274F9;
border-radius: 60rpx 60rpx;
z-index: 99999;
font-size: 32rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #FFFFFF;
display: flex;
margin: 0 auto;
margin-top: 25rpx;
.middle-two-img {
width: 23rpx;
height: 23rpx;
margin-left: 52rpx;
margin-right: 10rpx;
image {
width: 100%;
height: 100%;
}
}
}
</style>

View File

@ -9,6 +9,15 @@
<!-- #endif -->
<view class="personage">
<view class="box" @click="msg">
<u-icon name="bell" color="#fff" size="28"></u-icon>
<view>
<view>
<u-badge numberType="limit" :type="type" max="99" :value="value"></u-badge>
</view>
</view>
</view>
<view class="my_msg ">
<view class="my_msg-con">
<u--image :showLoading="true" :src="`${HTTP_IMG_URL}${oaUserInfo.thumb}`" width="130.28rpx"
@ -43,7 +52,7 @@
</view>
</view>
<!-- <view class="my_class">
<!-- <view class="my_class">
<view class="my_class-con" v-for="(item,i) in list" :key="i" @click="navTo(item.paths)">
<view class="name">{{item.value}}</view>
<view class="title">{{item.title}}</view>
@ -85,6 +94,10 @@
import {
userInfo
} from '@/api/oaUser.js'
import {
appmessageinbox
} from '@/api/oa.js'
import {
Toast
} from '@/libs/uniApi.js'
@ -95,6 +108,8 @@
options: {
data: '',
},
type: "warning",
value: 100,
uniMP: false,
myOaData: [{
name: '工资详情',
@ -151,6 +166,7 @@
onShow() {
if (uni.getStorageSync('uniMP')) this.uniMP = true;
this.getOaUserInfo();
this.listmsg()
},
onHide() {
this.modelShow = false;
@ -172,7 +188,21 @@
}
},
methods: {
async listmsg() {
let res = await appmessageinbox({
page: 1,
limit: 10000,
})
this.value=res.data.data.length
},
msg(){
uni.navigateTo({
url:'/pages/message/index'
})
},
leftClick(e) {
uni.sendHostEvent('closeApp', e, (ret) => {
//
@ -428,6 +458,13 @@
}
}
.box {
position: absolute;
right: 30rpx;
display: flex;
top: 20rpx;
}
.log_out {
color: #fff;
border-radius: 100px;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff