This commit is contained in:
许允枞 2025-02-21 09:22:56 +08:00
parent 0d301e865d
commit 0a3ba92c0d
23 changed files with 1530 additions and 815 deletions

View File

@ -123,7 +123,7 @@
if(index == 1){
this.aindex = index
uni.reLaunch({
url:'/pages/index/synthesis'
url:'/pages/index/newindex'
});
// uni.navigateTo({
// url:'/pages/index/index'
@ -132,7 +132,7 @@
if(index == 2){
this.aindex = index
uni.reLaunch({
url:'/pages/xiaoxi/xiaoxi'
url:'/pages/xiaoxi/notice'
})
}

View File

@ -148,6 +148,13 @@
"navigationStyle": "custom"
}
},
{
"path": "pages/xiaoxi/notice",
"style": {
"navigationBarTitleText": "消息",
"navigationStyle": "custom"
}
},
{
"path": "pages/xiaoxi/details",
"style": {
@ -476,5 +483,33 @@
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
},
// "tabBar": {
// "custom": true,
// "color": "#929292",
// "selectedColor": "#327DFB",
// "borderStyle": "black",
// "backgroundColor": "#F7F7F7",
// "list": [
// {
// "pagePath": "pages/index/newindex",
// "text": "首页",
// "iconPath": "/static/tabBar/home.png",
// "selectedIconPath": "/static/tabBar/homex.png"
// },
// {
// "pagePath": "pages/notice/notice",
// "text": "通知",
// "iconPath": "/static/tabBar/notice.png",
// "selectedIconPath": "/static/tabBar/noticex.png"
// },
// {
// "pagePath": "pages/my/my",
// "text": "我的",
// "iconPath": "/static/tabBar/my.png",
// "selectedIconPath": "/static/tabBar/myx.png"
// }
//
// ]
// },
"uniIdRouter": {}
}

View File

@ -43,7 +43,7 @@
}
else if(chooseIdx == 0){
uni.navigateTo({
url:'/pages/index/synthesis'
url:'/pages/index/newindex'
})
}else if(chooseIdx == 2){
uni.navigateTo({

View File

@ -214,8 +214,8 @@
display: flex;
align-items: center;
justify-content: center;
background: #0D2E8D;
color: white;
background: #327DFB;
color: white;
position: fixed;
bottom: 10px;
transform: translate(-50%);

View File

@ -67,30 +67,30 @@
{{ roleName != null ? this.roleName : '请选择岗位' }} >
</view>
</view>
<view class="d_b" @click="handleUpload">
<view class="d_b" @click="goFile">
<view class="">附件</view>
<view class="lan_">上传附件
<view class="lan_">查看附件
<image src="/static/imgs/add.png" mode=""></image>
</view>
</view>
<u-upload
ref="uploadRef"
:fileList="fileList1"
@afterRead="afterRead"
@delete="deletePic"
name="1"
multiple
:maxCount="10"
v-show="fileList1.length > 0"
>
</u-upload>
<view class="hui_box" v-if="fileList1.length == 0">
<image src="/static/imgs/wod.png" mode=""></image>
<view class="">
<view class="big_">附件格式 jpg/png</view>
<view class="sm_">100KB</view>
</view>
</view>
<!-- <u-upload-->
<!-- ref="uploadRef"-->
<!-- :fileList="fileList1"-->
<!-- @afterRead="afterRead"-->
<!-- @delete="deletePic"-->
<!-- name="1"-->
<!-- multiple-->
<!-- :maxCount="10"-->
<!-- v-show="fileList1.length > 0"-->
<!-- >-->
<!-- </u-upload>-->
<!-- <view class="hui_box" v-if="fileList1.length == 0">-->
<!-- <image src="/static/imgs/wod.png" mode=""></image>-->
<!-- <view class="">-->
<!-- <view class="big_">附件格式 jpg/png</view>-->
<!-- <view class="sm_">100KB</view>-->
<!-- </view>-->
<!-- </view>-->
<view class="anniu" @click="submit">
@ -230,10 +230,9 @@ export default {
},
submit() {
//
console.log(this.staff.fileList)
if (this.userId) {
this.update()
}else {
} else {
this.add()
}
},
@ -245,13 +244,17 @@ export default {
}
this.staff.userId = this.userId
console.log(this.staff)
const data = {
...this.staff,
fileList: this.fileList1,
fileList: this.fileList1
.map(item => {
item.url = item.url.replace(/^https?:\/\/[^/]+\/minio\//, '');
return item;
}), // minio/
driverLicenseType: this.driverLicenseTypeArrStr,
driverLicenseTypeArr: this.driverLicenseTypeArr.map(item => item.id)
}
request({
url: '/inspectionStaff/update',
method: 'put',
@ -406,6 +409,34 @@ export default {
this.showRole = false
},
goFile() {
if (!this.userId) {
uni.showToast({
title: '请先新建员工',
icon: 'none'
})
return
}
if (!this.staff.folderId) {
console.log('当前员工没有文件加')
//
request({
url: '/inspectionStaff/addFolder',
method: 'post',
data: this.userId
}).then(res => {
this.staff.folderId = res.data
uni.navigateTo({
url: '/pages/manage/deviceManage?type=staff&folderId=' + this.staff.folderId
})
})
}else {
uni.navigateTo({
url: '/pages/manage/deviceManage?type=staff&folderId=' + this.staff.folderId
})
}
},
//
handleUpload() {
// ref u-upload

View File

@ -9,7 +9,7 @@
<input type="text" placeholder="输入手机号搜索" v-model="phoneNum">
</view>
<view class="" @click="sousuo()">搜索</view>
</view>
</view>
<view class="tap">
<view class="tap-box" v-for="(item,index) in tapList" :key="index" @click="tapqh(index)">
<view class="xhuihui" :class="{'xzhei':tapindex == index}">{{item.text}}</view>

File diff suppressed because it is too large Load Diff

View File

@ -2,16 +2,20 @@
<template>
<view class="content">
<view style="width: 100%; height: 55px;"></view>
<view class="top-heder">
<view class="t-left" @click="getfan()">
<uni-icons type="left" size="18"></uni-icons>
</view>
<view class="t-input">
<uni-icons type="search" color="#BCBCBC" size="22"></uni-icons>
<input type="text" v-model="carNum" placeholder="搜索车牌号.....">
</view>
<view class="sou" @click="getList()">搜索</view>
<headersVue titles="订单管理">
<u-icon name="arrow-left" color="#fff" size="18"></u-icon>
</headersVue>
<!-- <view class="top-heder">-->
<!-- </view>-->
<view class="search_box">
<u-search placeholder="搜索车牌号....." @clear="getList()" @search="getList()" :showAction="false" v-model="carNum" searchIconColor="#427FFE"></u-search>
</view>
<!-- <view class="t-input">-->
<!-- <uni-icons type="search" color="#BCBCBC" size="22"></uni-icons>-->
<!-- <input type="text" v-model="carNum" placeholder="搜索车牌号.....">-->
<!-- </view>-->
<!-- <view class="sou" @click="getList()">搜索</view>-->
<view class="tap">
<view class="tap-box" v-for="(item,index) in tapList" :key="index" @click="tapqh(index)">
<view class="xhuihui" :class="{'xzhei':tapindex == index}">{{ item.text }}</view>
@ -42,7 +46,7 @@
<!-- <text class="xhui">施工人员{{ item.workerName }}</text>-->
</view>
<view @click="callUser(item.buyPhone)" class="top-right">
<image src="../../static/detection/teel.png" mode=""></image>
<image src="/static/imgs/tel.png" style="width: 36rpx; height: 36rpx; " mode=""></image>
</view>
</view>
<view class="" @click="godetails(item.id)">
@ -93,8 +97,10 @@
<script>
import config from '@/config'
import request from '../../utils/request';
import headersVue from "@/components/header/headers.vue";
export default {
components: {headersVue},
data() {
return {
imgurl: this.$imgeUrl,
@ -204,6 +210,13 @@ export default {
background: white;
}
.search_box{
box-sizing: border-box;
padding-bottom: 20rpx;
border-bottom: 2rpx solid #F5F5F5;
margin-top: 130rpx;
}
.sshi {
position: absolute;
bottom: 20px;
@ -243,6 +256,7 @@ export default {
padding: 0 15px;
display: flex;
align-items: center;
margin-top: 120rpx;
}
@ -250,7 +264,8 @@ export default {
width: 100%;
box-sizing: border-box;
padding: 15px;
background-color: #F4F4F4;
//background-color: #F4F4F4;
background: white;
}
@ -285,7 +300,8 @@ export default {
.gang {
width: 24px;
height: 4px;
background: #0D2E8D;
//background: #0D2E8D;
background: #327DFB;
border-radius: 4px;
margin: 2px auto;
}
@ -298,7 +314,7 @@ export default {
.m-box {
position: relative;
background: #FFFFFF;
background: #F4F4F4;
border-radius: 8px;
box-sizing: border-box;
padding: 15px 10px;
@ -324,7 +340,7 @@ export default {
z-index: 9999;
width: 33px;
height: 33px;
border-radius: 50%;
//border-radius: 50%;
overflow: hidden;
image {
@ -380,7 +396,8 @@ export default {
display: flex;
align-items: center;
justify-content: center;
background: #0D2E8D;
//background: #0D2E8D;
background: #327DFB;
color: white;
height: 44px;
border-radius: 8px;

View File

@ -1,102 +1,104 @@
<template>
<view class="">
<view class="">
<headersVue :titles="titles"><u-icon name="arrow-left" color="#fff" size="18"></u-icon></headersVue>
<view class="content">
<headersVue :titles="titles">
<u-icon name="arrow-left" color="#fff" size="18"></u-icon>
</headersVue>
<view class="content">
<view class="box_">
<view class="box_list">
<view class="">
<image src="/static/imgs/s1.png" mode=""></image>
<view class="name_">底检设备</view>
<view class="">100</view>
</view>
<view class="box_">
<view class="box_list" v-for="(item, index) in tabList">
<view class="" @click="gettap(item)">
<image :src=iconArr[index] mode=""></image>
<view class="name_">{{ item.label }}</view>
<view class="">100</view>
</view>
</view>
<view class="box_list">
<view class="">
<image src="/static/imgs/s2.png" mode=""></image>
<view class="name_">底检设备</view>
<view class="">100</view>
</view>
</view>
</view>
<view class="box_list">
<view class="">
<image src="/static/imgs/s3.png" mode=""></image>
<view class="name_">底检设备</view>
<view class="">100</view>
</view>
</view>
<view class="box_list">
<view class="">
<image src="/static/imgs/s4.png" mode=""></image>
<view class="name_">底检设备</view>
<view class="">100</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import headersVue from '../../components/header/headers.vue';
import headersVue from '../../components/header/headers.vue';
import {getDictDataByType} from "@/utils/utils";
export default {
data() {
return {
titles: "设备管理",
List: [],
show: false,
status: 'loading',
}
},
components:{
headersVue
},
}
export default {
data() {
return {
titles: "设备管理",
List: [],
show: false,
status: 'loading',
tabList:[],
iconArr:["/static/imgs/s1.png","/static/imgs/s2.png","/static/imgs/s3.png","/static/imgs/s4.png"]
}
},
components: {
headersVue
},
onLoad() {
this.getTab()
},
methods: {
gettap(value) {
uni.navigateTo({
url: `/pages/manage/informationManage?value=${value.value}`
})
},
async getTab() {
const data = await getDictDataByType("ins_equ_type");
this.tabList = [...this.tabList, ...data];
console.log(this.tabList)
},
},
}
</script>
<style scoped lang="scss">
.content{
background: #F7F8FC;
width: 100%;
height: 100vh;
box-sizing: border-box;
padding: 30rpx;
padding-top: 200rpx;
}
.box_{
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.box_list{
width: 328rpx;
height: 396rpx;
background: #fff;
border-radius: 18px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
margin-bottom: 30rpx;
image{
width: 130rpx;
height: 130rpx;
}
}
.name_{
font-size: 28rpx;
color: #000000;
}
.num_{
font-size: 36rpx;
color: #000000;
}
.content {
background: #F7F8FC;
width: 100%;
height: 100vh;
box-sizing: border-box;
padding: 30rpx;
padding-top: 200rpx;
}
.box_ {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.box_list {
width: 328rpx;
height: 396rpx;
background: #fff;
border-radius: 18px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
margin-bottom: 30rpx;
image {
width: 130rpx;
height: 130rpx;
}
}
.name_ {
font-size: 28rpx;
color: #000000;
}
.num_ {
font-size: 36rpx;
color: #000000;
}
</style>

View File

@ -26,7 +26,7 @@
<!-- <view class="">
<image src="../../static/imgs/wenjianjia.png" mode=""></image>
</view> -->
<view style="width: 100%; display: flex; justify-content: center;">
<view style="width: 100%; display: flex;justify-content: center;">
<text> + 新增文件</text>
</view>
</view>
@ -50,7 +50,7 @@
<view class="bsd-dis">
<view class="bianji" v-if="item.type == '2'" @click="viewFile(item.filePath)">预览</view>
<view class="bianji" @click="editFile(item.id)">编辑</view>
<view class="bianji" @click="showHistory(item.id)">历史版本</view>
<view class="bianji" @click="showHistory(item.id)">历史</view>
<view class="sanchu" @click="delFile(item.id)">删除</view>
</view>
</view>
@ -69,7 +69,7 @@
<view class="popup-title">修改记录</view>
<!-- 步骤条 -->
<view class="steps">
<view class="steps" v-if="drawerData.length > 0">
<view v-for="(item, index) in drawerData" :key="index" class="step">
<view class="step-index">{{ index + 1 }}</view>
<view class="step-content">
@ -80,6 +80,9 @@
</view>
</view>
</view>
<view v-else>
暂无历史记录
</view>
<!-- <button class="close-btn" @click="isShow = false">关闭</button>-->
</view>
@ -110,11 +113,16 @@ export default {
}
},
onLoad() {
onLoad(data) {
console.log('传递进来的数据',data)
if (data.folderId) {
this.fileId = data.folderId
}
this.getlist()
},
onShow() {
this.getlist()
},
onReachBottom() {
@ -131,16 +139,20 @@ export default {
},
methods: {
formatDate,
async getlist() {
async getlist(flag) {
let data = {
pageSize: this.pageSize,
pageNum: this.pageNum,
fatherId: this.fileId,
fileName: this.fileName,
}
if (flag) {
data.fileName = null
}
let res = await request({
url: '/inspectionFile/inspectionFile/list',
method: 'get',
data: {
pageSize: this.pageSize,
pageNum: this.pageNum,
fatherId: this.fileId,
fileName: this.fileName,
}
data: data
})
if (this.pageNum != 1) {
this.arrlist = this.arrlist.concat(res.data)
@ -208,7 +220,7 @@ export default {
this.fileId = fileId
this.arrlist = []
this.pageNum = 1
this.getlist()
this.getlist(true)
},
viewFile(filePath) {
this.isLoading = true;
@ -644,6 +656,7 @@ export default {
.searchContent {
display: flex;
justify-content: center;
margin-top: 20rpx;
}
/* 弹出层背景 */

View File

@ -96,16 +96,8 @@
<text class="hong1">*</text>
设备附件
</view>
<view class="you">
<u-upload
:fileList="fileList3"
@afterRead="afterRead"
@delete="deletePic"
name="3"
multiple
:maxCount="10"
:previewFullImage="true"
></u-upload>
<view class="lan_" @click="goFile">查看附件
<image src="/static/imgs/add.png" mode=""></image>
</view>
</view>
<u-datetime-picker
@ -352,6 +344,34 @@ export default {
});
},
goFile() {
if (!this.box.id) {
uni.showToast({
title: '请先新建设备',
icon: 'none'
})
return
}
if (!this.box.folderId) {
console.log('当前员工没有文件加')
//
request({
url: '/system/equInfo/addFolder',
method: 'post',
data: this.box.id
}).then(res => {
this.box.folderId = res.data
uni.navigateTo({
url: '/pages/manage/deviceManage?type=staff&folderId=' + this.box.folderId
})
})
}else {
uni.navigateTo({
url: '/pages/manage/deviceManage?type=staff&folderId=' + this.box.folderId
})
}
},
}
}
@ -373,6 +393,19 @@ export default {
}
.lan_ {
font-size: 28rpx;
color: #327DFB;
display: flex;
align-items: center;
image {
width: 36rpx;
height: 36rpx;
margin-left: 15rpx;
}
}
.top-icon {
margin-bottom: 45px;
}

View File

@ -87,8 +87,10 @@ import code from '../../uni_modules/uview-ui/libs/config/props/code';
import request from '../../utils/request';
import {getDictDataByType} from "../../utils/utils";
import {getStorageWithExpiry} from "../../utils/auth";
import headersVue from "@/components/header/headers.vue";
export default {
components: {headersVue},
data() {
return {
@ -111,8 +113,13 @@ export default {
}
},
onLoad() {
onLoad(data) {
this.partnerId = uni.getStorageSync('partnerId')
if (data.value) {
console.log(data.value)
this.tapindex = parseInt(data.value)
this.type = data.value === '0' ? null : data.value
}
this.getlistindex()
this.getTab()
},
@ -169,7 +176,6 @@ export default {
uni.navigateTo({
url: '/pages/manage/informationAdd?type=' + type + '&id=' + id
})
},
getback() {
uni.navigateBack()
@ -196,8 +202,6 @@ export default {
let total = res.total
this.totalPages = Math.ceil(total / this.pageSize);
},
},
@ -524,6 +528,7 @@ export default {
.searchContent {
display: flex;
justify-content: center;
margin-top: 20rpx;
}
.box-bottom {

View File

@ -1,134 +1,143 @@
<template>
<view class="">
<headersVue :titles="titles"><u-icon name="arrow-left" color="#fff" size="18"></u-icon></headersVue>
<view class="content">
<!-- <view class="top_"></view> -->
<view class="box_" @click="goManage(1)">
<view class="ds">
<image src="/static/imgs/nb1.png" mode=""></image>
<view class="">员工管理</view>
</view>
<view class="anniu">
去查看
</view>
</view>
<view class="box_" @click="goManage(2)">
<view class="ds">
<image src="/static/imgs/nb2.png" mode=""></image>
<view class="">设备管理</view>
</view>
<view class="anniu">
去查看
</view>
</view>
<view class="box_">
<view class="ds">
<image src="/static/imgs/nb3.png" mode=""></image>
<view class="">资料管理</view>
</view>
<view class="anniu">
去查看
</view>
</view>
<view class="box_" @click="goManage(4)">
<view class="ds">
<image src="/static/imgs/nb4.png" mode=""></image>
<view class="">工作汇报</view>
</view>
<view class="anniu">
去查看
</view>
</view>
</view>
</view>
<view class="">
<headersVue :titles="titles">
<u-icon name="arrow-left" color="#fff" size="18"></u-icon>
</headersVue>
<view class="content">
<!-- <view class="top_"></view> -->
<view class="box_" @click="goManage(1)">
<view class="ds">
<image src="/static/imgs/nb1.png" mode=""></image>
<view class="">员工管理</view>
</view>
<view class="anniu">
去查看
</view>
</view>
<view class="box_" @click="goManage(2)">
<view class="ds">
<image src="/static/imgs/nb2.png" mode=""></image>
<view class="">设备管理</view>
</view>
<view class="anniu">
去查看
</view>
</view>
<view class="box_" @click="goManage(3)">
<view class="ds">
<image src="/static/imgs/nb3.png" mode=""></image>
<view class="">资料管理</view>
</view>
<view class="anniu">
去查看
</view>
</view>
<view class="box_" @click="goManage(4)">
<view class="ds">
<image src="/static/imgs/nb4.png" mode=""></image>
<view class="">工作汇报</view>
</view>
<view class="anniu">
去查看
</view>
</view>
</view>
</view>
</template>
<script>
import headersVue from '../../components/header/headers.vue';
import headersVue from '../../components/header/headers.vue';
export default {
data() {
return {
titles: "内部管理",
msg: "1",
List: [],
show: false,
status: 'loading',
}
},
components:{
headersVue
},
methods:{
goManage(num){
if(num == 1){
uni.navigateTo({
url:'/pages/index/NewstaffManagement'
})
}
if(num == 2){
uni.navigateTo({
url:'/pages/manage/NewdeviceManage'
})
}
if (num == 4) {
uni.navigateTo({
url: '/pages/manage/workReport/reportList'
})
}
export default {
data() {
return {
titles: "内部管理",
msg: "1",
List: [],
show: false,
status: 'loading',
}
},
components: {
headersVue
},
methods: {
goManage(num) {
if (num == 1) {
uni.navigateTo({
url: '/pages/index/NewstaffManagement'
})
}
if (num == 2) {
uni.navigateTo({
url: '/pages/manage/NewdeviceManage'
})
}
if (num == 3) {
uni.navigateTo({
url: '/pages/manage/deviceManage'
})
}
if (num == 4) {
uni.navigateTo({
url: '/pages/manage/workReport/reportList'
})
}
}
}
}
}
}
}
</script>
<style scoped lang="scss">
.content{
background: #F7F8FC;
width: 100%;
height: 100vh;
box-sizing: border-box;
padding: 30rpx;
padding-top: 200rpx;
}
.box_{
width: 100%;
height: 128rpx;
background-image: url('/static/imgs/box_.png');
background-size: 100% 100%;
box-sizing: border-box;
padding: 24rpx;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 32rpx;
color: #000000;
margin-bottom: 30rpx;
image{
width: 80rpx;
height: 80rpx;
margin-right: 20rpx;
}
.content {
background: #F7F8FC;
width: 100%;
height: 100vh;
box-sizing: border-box;
padding: 30rpx;
padding-top: 200rpx;
}
}
.ds{
display: flex;
align-items: center;
}
.anniu{
width: 144rpx;
height: 66rpx;
background: #327DFB;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 28rpx;
color: #FFFFFF;
border-radius: 50px;
}
.box_ {
width: 100%;
height: 128rpx;
background-image: url('/static/imgs/box_.png');
background-size: 100% 100%;
box-sizing: border-box;
padding: 24rpx;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 32rpx;
color: #000000;
margin-top: 30rpx;
image {
width: 80rpx;
height: 80rpx;
margin-right: 20rpx;
}
}
.ds {
display: flex;
align-items: center;
}
.anniu {
width: 144rpx;
height: 66rpx;
background: #327DFB;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 28rpx;
color: #FFFFFF;
border-radius: 50px;
}
</style>

View File

@ -86,6 +86,7 @@ import headersVue from '../../../components/header/headers.vue';
import request from "@/utils/request";
import {formatDateTimeToMinute} from "@/utils/utils";
import upload from "@/utils/upload";
import config from "@/config";
export default {
data() {
@ -110,18 +111,19 @@ export default {
reportTosStr:null,
fileList1: [],
buttonTitle:"保存",
baseImageUrl: config.baseImageUrl,
}
},
components: {
headersVue
},
onLoad(data) {
async onLoad(data) {
await this.getReportTo(); // getReportTo
if (data.id) {
this.buttonTitle="修改"
this.buttonTitle = "修改"
console.log(data.id)
this.getWorkReport(data.id)
}
this.getReportTo()
},
methods: {
formatDateTimeToMinute,
@ -187,19 +189,6 @@ export default {
},
uploadFilePromise(url) {
return new Promise((resolve, reject) => {
// let a = uni.uploadFile({
// url: "http://192.168.2.21:7001/upload", //
// filePath: url,
// name: "file",
// formData: {
// user: "test",
// },
// success: (res) => {
// setTimeout(() => {
// resolve(res.data.data);
// }, 1000);
// },
// });
upload({
url: '/common/upload',
filePath: url,
@ -211,7 +200,6 @@ export default {
},
/** 表单提交 */
onSubmit() {
console.log('提交的数据:', this.report.reportTime)
//
const isValid = this.checkForm()
if (!isValid) {
@ -225,7 +213,7 @@ export default {
this.report.reportTos = this.report.reportTos.map(item => item.id)
let url = '/work/report/create'
let method = 'post'
if (this.type === 'edit') {
if (this.report.id) {
url = '/work/report/update'
method = 'put'
}
@ -236,7 +224,7 @@ export default {
}).then(res => {
if (res.code === 200) {
uni.showToast({
title: '保存成功',
title: '操作成功',
icon: 'none',
duration: 2000
});
@ -295,6 +283,7 @@ export default {
// ID report.reportTos
this.report.reportTos = this.reportToList.filter(item => res.data.reportTos.includes(item.id));
this.reportTosStr = this.report.reportTos.map(item => item.nickname).join(',')
console.log('当前选择的汇报对象',this.reportTosStr)
if (res.data.filePath) {
this.fileList1 = res.data.filePath.split(',').map(item => {
return {

View File

@ -3,11 +3,21 @@
<headersVue :titles="titles">
<u-icon name="arrow-left" color="#fff" size="18"></u-icon>
</headersVue>
<view class="top_">
<view class="search_box">
<u-search placeholder="请输入汇报人姓名或汇报主题进行搜索" @search="getReportList" @clear="getReportList" :showAction="false" searchIconColor="#427FFE" v-model="queryParams.topicOrUserName"></u-search>
<u-search
placeholder="请输入汇报人姓名或汇报主题进行搜索"
@search="getReportList"
@clear="getReportList"
:showAction="false"
searchIconColor="#427FFE"
v-model="queryParams.topicOrUserName">
</u-search>
<text @click="showFilterPopup" class="filter-btn">筛选</text> <!-- 筛选按钮放在这里 -->
</view>
</view>
<view class="container">
<view class="c_box" v-for="(item,index) in reportList" :key="index" @click="goDetails(item)">
<view class="c_ds" style="margin-bottom: 15px;">
@ -24,18 +34,51 @@
</view>
</view>
</view>
<view style="width: 100%; height: 60px; "></view>
<view class="bottom_" @click="goDetails()">
<view class="bottom_box">填写汇报</view>
</view>
<!-- 筛选弹窗 -->
<u-popup :show="showPopup" @close="closeFilterPopup" mode="right" >
<view class="filter-popup">
<view class="popup-header">
<text>时间筛选</text>
</view>
<view style="width: 95%; margin: 50px auto;">
<uni-datetime-picker v-model="queryParams.reportTime" type="daterange" />
</view>
<view class="popup-footer">
<u-button type="primary" @click="applyFilter">应用筛选</u-button>
<u-button type="default" @click="clearTime">清除时间</u-button>
</view>
</view>
</u-popup>
<u-datetime-picker
:show="showStarTime"
v-model="queryParams.reportTime[0]"
mode="date"
@cancel="showStarTime = false"
@confirm="selectStartTime"
></u-datetime-picker>
<u-datetime-picker
:show="showEndTime"
v-model="queryParams.reportTime[1]"
mode="date"
@cancel="showEndTime = false"
@confirm="selectEndTime"
></u-datetime-picker>
</view>
</template>
<script>
import headersVue from '../../../components/header/headers.vue';
import config from "@/config";
import {formatDateChinese, formatDateTimeToMinute} from "@/utils/utils";
import {formatDate, formatDateChinese, formatDateTimeToMinute} from "@/utils/utils";
import request from "@/utils/request";
export default {
@ -114,7 +157,51 @@ export default {
url: '/pages/manage/workReport/reportDetals?id=' + data.id
})
}
}
},
//
//
search() {
this.reportList = [];
this.queryParams.pageNo = 1;
this.getReportList();
},
//
showFilterPopup() {
this.showPopup = true;
},
//
closeFilterPopup() {
this.showPopup = false;
},
//
applyFilter() {
this.closeFilterPopup();
this.search();
},
//
clearTime() {
this.showPopup = false;
this.queryParams.reportTime = ['', ''];
this.reportTimeStr = [];
this.search();
},
selectStartTime() {
//
this.$nextTick(() => {
this.queryParams.reportTime[0] = formatDate(this.queryParams.reportTime[0]);
this.reportTimeStr[0] = this.queryParams.reportTime[0]
this.showStarTime = false;
});
},
selectEndTime() {
this.$nextTick(() => {
this.queryParams.reportTime[1] = formatDate(this.queryParams.reportTime[1]);
this.reportTimeStr[1] = this.queryParams.reportTime[1]
this.showEndTime = false;
});
},
}
}
@ -139,6 +226,8 @@ export default {
box-sizing: border-box;
padding-bottom: 20rpx;
border-bottom: 2rpx solid #F5F5F5;
display: flex;
align-items: center;
}
.top_{
@ -148,6 +237,14 @@ export default {
background: #fff;
padding-bottom: 0px;
}
.filter-btn {
font-size: 28rpx;
color: #427FFE;
margin-left: 20rpx;
cursor: pointer;
}
.c_box {
width: 100%;
background: #fff;
@ -159,14 +256,12 @@ export default {
.c_ds {
display: flex;
align-items: center;
}
.touxiang_ {
width: 90rpx;
height: 90rpx;
margin-right: 20rpx;
image {
width: 100%;
height: 100%;
@ -218,4 +313,25 @@ export default {
border-radius: 50px;
margin: 30rpx;
}
.filter-popup {
padding: 20rpx;
width: 450rpx;
max-width: 90%;
}
.popup-header {
display: flex;
justify-content: space-between;
align-items: center;
padding-bottom: 20rpx;
border-bottom: 1rpx solid #eee;
margin-top: 70rpx;
}
.popup-footer {
display: flex;
justify-content: space-between;
margin-top: 20rpx;
}
</style>

325
pages/xiaoxi/notice.vue Normal file
View File

@ -0,0 +1,325 @@
<template>
<view class="container">
<headersVue :titles="titles">
<u-icon name="arrow-left" color="#fff" size="18"></u-icon>
</headersVue>
<view class="content">
<view class="top_">
<view class="top_box" v-for="(item,index) in taplist" :key="index" @click="tapqh(index)">
<view class="">{{ item }}</view>
<view class="gang" v-if="tapindex == index"></view>
</view>
</view>
<view class="lsit_">
<view class="lsit_box" v-for="(item,index) in arrlist" :key="index" @click="getdetails(item.id)">
<view v-if="tapindex === 0">
<view class="d_s">
<view class="touxiang_">
<image :src="baseImageUrl+getUrl(item.newsCover)" mode=""></image>
</view>
<view class="">
<view class="title_">{{ item.newsTitle }}</view>
<view class="num_">{{ getDate(item.createTime || new Date()) }}</view>
</view>
</view>
<view class="t-zi" v-html="item.newsContent"></view>
</view>
<view v-else>
<view class="d_s">
<view class="item-container">
<view class="title_">{{ item.title }}</view>
<view class="num_">{{ getDate(item.createTime || new Date()) }}</view>
</view>
</view>
<view class="t-zi" v-html="item.content"></view>
</view>
</view>
</view>
<view style="width: 100%; height: 88rpx;"></view>
</view>
<!-- 底部 -->
<view style="width: 100%; height: 50px;"></view>
<tabBar :msg="msg "></tabBar>
</view>
</template>
<script>
import headersVue from '../../components/header/headers.vue';
import request from "@/utils/request";
import {formatDate} from "@/utils/utils";
export default {
data() {
return {
titles: "通知",
tapindex: 0,
taplist: ["监管通知", "内部通知"],
show: false,
status: 'loading',
msg: '2',
chuan: '',
roles: [],
jcshopRole: false,
jcgfRole: false,
isOpen: false,
fab: false,
imgs: '',
type: 'zflm',
animationData: {},
isRote: false,
animation: null,
actindex: 0,
partnerId: '',
arrlist: [],
pageNum: 1,//
pageSize: 20,//
totalPages: 0,//
baseImageUrl: this.$baseImageUrl,
}
},
components: {
headersVue
},
onShow() {
if (this.tapindex === 1) {
this.getwarnMsglist()
} else {
this.getlistindex()
this.getIfSend()
}
},
onLoad(data) {
this.partnerId = uni.getStorageSync('partnerId')
if (data && data.index) {
this.tapindex = parseInt(data.index)
this.getwarnMsglist()
} else {
this.getlistindex()
this.getIfSend()
}
},
methods: {
setIndex(num) {
this.tapindex = num
},
getUrl(value) {
if (!value) {
return ""
}
if (value[0] === '/') {
return value
} else {
return "/" + value
}
},
toAdd() {
uni.navigateTo({
url: '/pages/authority/newadd?type=' + null
})
},
getIfSend() {
request({
url: '/system/inspectionNews/ifSend',
method: 'get'
}).then(res => {
this.ifSend = res.data
})
},
clearAll() {
let that = this
uni.showModal({
title: '确认',
content: '确认全部已读吗?',
success: function (res) {
if (res.confirm) {
request({
url: '/warnMsg/warnMsg/readAll',
method: 'get'
}).then(res => {
that.getwarnMsglist()
})
}
}
});
},
async getwarnMsglist() {
let res = await request({
url: '/warnMsg/warnMsg/list',
method: 'get',
})
this.arrlist = res.data
let total = res.total
this.totalPages = Math.ceil(total / this.pageSize);
},
getDate(value) {
return formatDate(value)
},
tapqh(index) {
this.tapindex = index
this.arrlist = []
if (index === 0) {
this.pageNum = 1
this.getlistindex()
} else {
this.pageNum = 1
this.getwarnMsglist()
}
},
getdetails(id) {
const url = this.tapindex === 0 ? '/pages/xiaoxi/details?id=' + id : '/pages/xiaoxi/details?id=' + id + "&index=1"
uni.navigateTo({
url: url
})
},
getback() {
uni.navigateBack({
delta: 1,
})
},
async getlistindex() {
let res = await request({
url: '/appInspection/news/msgList',
method: 'get',
data: {
partnerId: this.partnerId,
pageSize: this.pageSize,
pageNum: this.pageNum
}
})
// this.arrlist = res.rows
if (this.pageNum != 1) {
this.arrlist = this.arrlist.concat(res.data.records)
} else {
this.arrlist = res.data.records
}
let total = res.total
this.totalPages = Math.ceil(total / this.pageSize);
},
}
}
</script>
<style scoped lang="scss">
.container {
background: #F7F8FC;
width: 100%;
height: 100vh;
}
.content {
background: #F7F8FC;
width: 100%;
box-sizing: border-box;
padding-top: 170rpx;
}
.top_ {
margin-top: 20rpx;
height: 98rpx;
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
background: #fff;
}
.top_box {
width: 50%;
height: 98rpx;
text-align: center;
font-size: 28rpx;
color: #8D90A6;
box-sizing: border-box;
padding: 30rpx;
}
.gang {
width: 112rpx;
height: 8rpx;
background: linear-gradient(90deg, #366FFF 0%, #5DA0FC 100%);
margin: 5px auto;
}
.lsit_ {
background: #F7F8FC;
box-sizing: border-box;
padding: 30rpx;
}
.lsit_box {
width: 100%;
border-radius: 8rpx;
box-sizing: border-box;
padding: 30rpx;
background: #fff;
margin-bottom: 20rpx;
}
.d_s {
display: flex;
align-items: center;
}
.touxiang_ {
width: 40%;
height: 100px;
margin-right: 10px;
overflow: hidden;
image {
width: 100%;
height: 100%;
}
}
.title_ {
font-size: 32rpx;
color: #101A3E;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.num_ {
font-size: 24rpx;
color: #327DFB;
}
.text_ {
font-size: 24rpx;
color: #8D90A6;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
margin-top: 20rpx;
}
.t-zi {
font-size: 14px;
font-weight: 400;
color: #666666;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
.item-container {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%; /* 确保容器占满父级 */
}
</style>

BIN
static/tabBar/home.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 757 B

BIN
static/tabBar/homex.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 584 B

BIN
static/tabBar/my.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
static/tabBar/myx.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
static/tabBar/notice.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
static/tabBar/noticex.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
static/tabBar/touxiang.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB