From 79e5599727c2ad19bb40cccd35f6f3302ff1b896 Mon Sep 17 00:00:00 2001
From: GULIMMO <2820890765@qq.com>
Date: Thu, 09 Nov 2023 17:39:57 +0800
Subject: [PATCH] 场所维护及其审核页面、报事审核及其审核页面更新
---
api/task/taskReportForRepairs.js | 70 ++-
pages.json | 27 +
subPackage/workbench/views/examine.vue | 124 +++++--
subPackage/workbench/views/audit.vue | 1
subPackage/workbench/views/editExamine.vue | 169 ++++++++++
subPackage/workbench/components/formItem.vue | 45 ++
subPackage/workbench/views/rental.vue | 26 +
pages/home/index.vue | 7
api/placeExp/placeExp.js | 4
subPackage/workbench/views/reportAudit.vue | 222 +++++++++++++
subPackage/workbench/views/cshw.vue | 19
subPackage/workbench/views/report.vue | 194 ++++++++++++
subPackage/workbench/components/lineItem.vue | 4
13 files changed, 823 insertions(+), 89 deletions(-)
diff --git a/api/placeExp/placeExp.js b/api/placeExp/placeExp.js
index 3e032fc..d9b6bc8 100644
--- a/api/placeExp/placeExp.js
+++ b/api/placeExp/placeExp.js
@@ -10,11 +10,11 @@
-export const getCheckPlaceExtData = (params) => {
+export const checkPlaceExtData = (data) => {
return http.request({
url: 'blade-placeExt/placeExt/checkPlaceExt',
method: 'POST',
- params
+ data
})
}
diff --git a/api/task/taskReportForRepairs.js b/api/task/taskReportForRepairs.js
index cbb7153..0dab66d 100644
--- a/api/task/taskReportForRepairs.js
+++ b/api/task/taskReportForRepairs.js
@@ -1,32 +1,40 @@
-import http from '@/http/api.js'
-
-//获取报事统计数据
-export const getStatistics = (params) => {
- return http.request({
- url: '/blade-taskReportForRepairs/taskReportForRepairs/getStatisticsCount',
- method: 'GET',
- params: {
- ...params
- }
- })
-}
-
-export const getPage = (params) => {
- return http.request({
- url: '/blade-taskReportForRepairs/taskReportForRepairs/page',
- method: 'GET',
- params: {
- ...params
- }
- })
-}
-
-
-//添加
-export const save = (data) => {
- return http.request({
- url: '/blade-taskReportForRepairs/taskReportForRepairs/save',
- method: 'POST',
- data: data
- })
+import http from '@/http/api.js'
+
+//获取报事统计数据
+export const getStatistics = (params) => {
+ return http.request({
+ url: '/blade-taskReportForRepairs/taskReportForRepairs/getStatisticsCount',
+ method: 'GET',
+ params: {
+ ...params
+ }
+ })
+}
+
+export const getPage = (params) => {
+ return http.request({
+ url: '/blade-taskReportForRepairs/taskReportForRepairs/page',
+ method: 'GET',
+ params: {
+ ...params
+ }
+ })
+}
+
+
+//添加
+export const save = (data) => {
+ return http.request({
+ url: '/blade-taskReportForRepairs/taskReportForRepairs/save',
+ method: 'POST',
+ data: data
+ })
+}
+
+export const checkReportForRepairsData = (data) => {
+ return http.request({
+ url: 'blade-taskReportForRepairs/taskReportForRepairs/checkReportForRepairs ',
+ method: 'POST',
+ data
+ })
}
\ No newline at end of file
diff --git a/pages.json b/pages.json
index 8bc86f9..7c3c5c7 100644
--- a/pages.json
+++ b/pages.json
@@ -206,6 +206,33 @@
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle": "black"
}
+ },
+ {
+ "path": "views/editExamine",
+ "style": {
+ "navigationBarTitleText": "场合维护",
+ "enablePullDownRefresh": false,
+ "navigationBarBackgroundColor": "#fff",
+ "navigationBarTextStyle": "black"
+ }
+ },
+ {
+ "path": "views/report",
+ "style": {
+ "navigationBarTitleText": "网格任务审核",
+ "enablePullDownRefresh": false,
+ "navigationBarBackgroundColor": "#fff",
+ "navigationBarTextStyle": "black"
+ }
+ },
+ {
+ "path": "views/reportAudit",
+ "style": {
+ "navigationBarTitleText": "审核",
+ "enablePullDownRefresh": false,
+ "navigationBarBackgroundColor": "#fff",
+ "navigationBarTextStyle": "black"
+ }
}
]
},
diff --git a/pages/home/index.vue b/pages/home/index.vue
index 8b80954..55ad0a3 100644
--- a/pages/home/index.vue
+++ b/pages/home/index.vue
@@ -249,7 +249,8 @@
style: {
background: 'linear-gradient(133deg, #F9FAFE 0%, rgba(249,250,254,0) 100%)',
},
- path:"/subPackage/workbench/views/cshw"
+ path: this.roleType === 2 ? '/subPackage/workbench/views/editExamine' :
+ "/subPackage/workbench/views/cshw"
},
{
icon: "/static/icon/menu-06.png",
@@ -257,7 +258,7 @@
style: {
background: 'linear-gradient(137deg, #FFF4F3 0%, rgba(255,244,243,0) 100%)',
},
- path: ""
+ path: "/subPackage/workbench/views/report"
},
// {
// icon: "/static/icon/menu-07.png",
@@ -396,7 +397,7 @@
} else {
this.curSelectSite = dataList[0];
}
- this.curHouseCode = this.curSelectSite.id
+ this.curHouseCode = this.curSelectSite.id
uni.setStorageSync('curSelectSite', this.curSelectSite)
}
},
diff --git a/subPackage/workbench/components/formItem.vue b/subPackage/workbench/components/formItem.vue
new file mode 100644
index 0000000..f7228c2
--- /dev/null
+++ b/subPackage/workbench/components/formItem.vue
@@ -0,0 +1,45 @@
+<template>
+ <view class="form-box">
+ <u-form labelWidth="70" :model="form" :rules="rules" ref="form">
+ <u-form-item label="姓名" required prop="name" class="form-item">
+ <u--input v-model="form.name" border="none"></u--input>
+ </u-form-item>
+ <u-form-item label="电话号码" class="form-item">
+ <u--input v-model="form.phone" border="none"></u--input>
+ </u-form-item>
+ <u-form-item label="咱据地" class="form-item">
+ <u--input v-model="form.address" border="none"></u--input>
+ </u-form-item>
+ </u-form>
+ </view>
+</template>
+<script>
+ export default {
+ data() {
+ return {
+ form: {
+ name: '',
+ phone: '',
+ address: ''
+ },
+ rules: {
+ name: {
+ type: 'string',
+ required: true,
+ message: '请填写姓名',
+ trigger: ['blur', 'change']
+ }
+ }
+ }
+ }
+ }
+</script>
+<style lang="scss" scoped>
+ .form-box {
+ .form-item {
+ border-bottom: 1rpx solid #f6f6f6;
+ padding: 0 20rpx;
+ background-color: #fff;
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/subPackage/workbench/components/lineItem.vue b/subPackage/workbench/components/lineItem.vue
index 0710482..ea2360a 100644
--- a/subPackage/workbench/components/lineItem.vue
+++ b/subPackage/workbench/components/lineItem.vue
@@ -65,7 +65,9 @@
padding: 20rpx 10px;
border-bottom: 1px solid #eff1f3;
- .l {}
+ .l {
+ width: 200rpx;
+ }
.r {
color: #969799;
diff --git a/subPackage/workbench/views/audit.vue b/subPackage/workbench/views/audit.vue
index 8ac0619..07b5471 100644
--- a/subPackage/workbench/views/audit.vue
+++ b/subPackage/workbench/views/audit.vue
@@ -77,6 +77,7 @@
background-color:#fff;
padding:0 30rpx;
box-sizing: border-box;
+ z-index: 999;
}
.tab /deep/.u-tabs__wrapper__nav__item{
diff --git a/subPackage/workbench/views/cshw.vue b/subPackage/workbench/views/cshw.vue
index 67f5b2a..dc7c73e 100644
--- a/subPackage/workbench/views/cshw.vue
+++ b/subPackage/workbench/views/cshw.vue
@@ -65,11 +65,12 @@
tabIndex: 0,
tabStatus: 1,
keyWord: '',
- loadingStatus: 'nomore'
+ loadingStatus: 'nomore',
+ clickInfo: {}
}
},
onShow() {
- this.siteList = []
+ this.resetParams()
this.getSiteList()
},
onReachBottom() {
@@ -95,7 +96,8 @@
} = res
if (code !== 200) {
uni.showToast({
- title: '数据请求失败'
+ title: '数据请求失败',
+ icon: 'error'
})
return
}
@@ -112,7 +114,9 @@
this.getSiteList()
},
clearConfirm() {
- this.keyWord = ''
+ this.keyWord = ''
+ this.resetParams()
+ this.searchConfirm()
},
resetParams() {
this.siteList = []
@@ -124,8 +128,11 @@
})
return res
},
- pushPage(id) {
- this.$u.func.globalNavigator('/subPackage/workbench/views/examine?id='+id)
+ pushPage(id) {
+ const siteData = this.siteList.find(item => item.id === id)
+ const siteDataStr = JSON.stringify(siteData)
+ // this.$u.func.globalNavigator('/subPackage/workbench/views/examine?id='+id)
+ this.$u.func.globalNavigator('/subPackage/workbench/views/examine?siteData='+siteDataStr)
}
}
}
diff --git a/subPackage/workbench/views/editExamine.vue b/subPackage/workbench/views/editExamine.vue
new file mode 100644
index 0000000..1e36b43
--- /dev/null
+++ b/subPackage/workbench/views/editExamine.vue
@@ -0,0 +1,169 @@
+<template>
+ <div class="container">
+ <view class="">
+ <box-title title="基本信息"></box-title>
+ <u-form labelWidth="70" :model="form" :rules="rules" ref="form" class="form">
+ <u-form-item label="场所位置" required class="form-item" prop="localtion">
+ <u--input border="none" v-model="form.localtion"></u--input>
+ </u-form-item>
+ <u-form-item label="场所名称" required class="form-item" prop="placeName">
+ <u--input border="none" v-model="form.placeName"></u--input>
+ </u-form-item>
+ <u-form-item label="法人信息" required class="form-item" prop="legalPerson">
+ <u--input border="none" v-model="form.legalPerson"></u--input>
+ </u-form-item>
+ <u-form-item label="法人电话" class="form-item">
+ <u--input border="none" v-model="form.legalTel"></u--input>
+ </u-form-item>
+ </u-form>
+ </view>
+ <view class="">
+ <box-title title="营业执照"></box-title>
+ <view class="upload-img">
+ <u-upload :fileList="form.images" :previewFullImage="uploadConfig.previewFullImage"
+ :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple" :maxCount="uploadConfig.maxCount"
+ :capture="uploadConfig.capture" @afterRead="afterReadImg" @delete="deletePic">
+ </u-upload>
+ </view>
+ </view>
+ <view class="">
+ <box-title title="场所平面图"></box-title>
+ <view class="upload-img">
+ <u-upload :fileList="form.images" :previewFullImage="uploadConfig.previewFullImage"
+ :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple" :maxCount="uploadConfig.maxCount"
+ :capture="uploadConfig.capture" @afterRead="afterReadImg" @delete="deletePic">
+ </u-upload>
+ </view>
+ </view>
+ <view class="practitioner">
+ <box-title title="从业人员信息"></box-title>
+ <view class="info" v-for="i in personNum" :key="i">
+ <view class="title">人员信息-#{{ i }}</view>
+ <formItem ref="formItemRef"></formItem>
+ </view>
+ </view>
+ <u-button type="success" plain class="add-person" @click="addPerson">在加一人</u-button>
+ <view class="btn-group">
+ <u-button class="btn-item" type="primary" @click="submit">提交</u-button>
+ <u-button class="btn-item">我上报的事件</u-button>
+ </view>
+ </div>
+</template>
+
+<script>
+ import { updatePlaceExtData } from '@/api/placeExp/placeExp.js'
+ import uploadMixin from "@/mixin/uploadMixin";
+ import boxTtitle from '@/components/boxTitle/index.vue'
+ import formItem from '../components/formItem.vue'
+ export default {
+ mixins: [uploadMixin],
+ components: {
+ formItem
+ },
+ data() {
+ return {
+ form: {
+ localtion: '',
+ placeName: '',
+ legalPerson: '',
+ legalTel: '',
+ imageUrls: [],
+ planImageUrls: []
+ },
+ rules: {
+ localtion: {
+ required: true,
+ message: '请选择地址',
+ trigger: ['blur', 'change']
+ },
+ placeName: {
+ required: true,
+ message: '请填写场所名称',
+ trigger: ['blur', 'change']
+ },
+ legalPerson: {
+ required: true,
+ message: '请填写法人信息',
+ trigger: ['blur', 'change']
+ }
+ },
+ personNum: 1
+ }
+ },
+ methods: {
+ updatePlaceExt() {
+
+ },
+ addPerson() {
+ this.personNum++
+ },
+ submit() {
+ const personList = []
+ this.$refs.formItemRef.forEach(item => {
+ personList.push(item.form)
+ })
+ console.log(personList);
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ page {
+ background-color: #f6f6f6;
+ }
+
+ .container {
+ padding-bottom: 300rpx;
+
+ .form {
+ margin-top: 20rpx;
+
+ .form-item {
+ background-color: #fff;
+ padding: 0 20rpx;
+ border-bottom: 1rpx solid #f6f6f6;
+ }
+
+ }
+
+ .upload-img {
+ background-color: #fff;
+ padding: 20rpx;
+ padding-bottom: 10rpx;
+ margin-top: 20rpx;
+ }
+
+ .add-person {
+ width: 30%;
+ margin: 20rpx auto;
+ }
+
+ .practitioner {
+ .info {
+ margin-top: 20rpx;
+
+ .title {
+ text-align: center;
+ font-size: 30rpx;
+ margin-bottom: 10rpx;
+ }
+ }
+ }
+
+ .btn-group {
+ background-color: #fff;
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: calc(100% - 40rpx);
+ padding: 20rpx;
+ border-top: 1rpx solid #f6f6f6;
+ z-index: 999;
+
+ .btn-item {
+ margin-top: 20rpx;
+ }
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/subPackage/workbench/views/examine.vue b/subPackage/workbench/views/examine.vue
index aacc524..046416f 100644
--- a/subPackage/workbench/views/examine.vue
+++ b/subPackage/workbench/views/examine.vue
@@ -32,12 +32,12 @@
<view class="info">
<u-form labelWidth="70" :model="form" ref="form" class="form">
<u-form-item label="审核状态" @click="isPickerShow = true" class="form-item">
- <u-input v-model="form.status" disabled disabledColor="#ffffff" placeholder="请选择审核状态"
- border="none"></u-input>
+ <u--input v-model="form.confirmFlag" disabled disabledColor="#ffffff" placeholder="请选择审核状态"
+ border="none"></u--input>
<u-icon slot="right" name="arrow-right"></u-icon>
</u-form-item>
<u-form-item label="备注" class="form-item">
- <u-input v-model="form.remark" border="none"></u-input>
+ <u--input v-model="form.confirmNotion" border="none"></u--input>
</u-form-item>
</u-form>
</view>
@@ -53,6 +53,9 @@
<script>
import boxTitle from '@/components/boxTitle/index.vue'
import lineItem from '../components/lineItem.vue'
+ import {
+ checkPlaceExtData
+ } from '@/api/placeExp/placeExp.js'
export default {
components: {
boxTitle,
@@ -61,19 +64,23 @@
data() {
return {
basicData: [{
- label: '场所名称',
+ label: '场所名称',
+ name: "placeName",
value: '未完善'
},
{
- label: '法人信息',
+ label: '法人信息',
+ name: 'legalPerson',
value: '未完善'
},
{
- label: '法人电话',
+ label: '法人电话',
+ name: 'legalTel',
value: '未完善'
},
{
- label: '场所位置',
+ label: '场所位置',
+ name: 'localtion',
value: '未完善'
},
],
@@ -90,45 +97,84 @@
label: '暂住地',
value: '未完善',
}
- ],
- [{
- label: '姓名',
- value: '未完善',
- },
- {
- label: '电话号码',
- value: '未完善',
- },
- {
- label: '暂住地',
- value: '未完善',
- }
]
],
form: {
- status: '未审批',
- remark: ''
+ confirmFlag: '待审核',
+ confirmNotion: ''
},
isPickerShow: false,
columns: [
[{
- name: '通过',
- type: 1
- }, {
- name: '不通过',
- type: 2
- }]
- ]
+ name: "待审核",
+ status: 1
+ },
+ {
+ name: "审核通过",
+ status: 2
+ },
+ {
+ name: "审核不通过",
+ status: 3
+ },
+ ]
+ ],
+ currentId: '',
+ currentData: {}
}
},
- methods: {
+ onLoad(option) {
+ // const {
+ // id
+ // } = option
+ // this.currentId = id
+ const { siteData } = option
+ this.currentData = JSON.parse(siteData)
+ },
+ onShow() {
+ this.setDefaultValue()
+ },
+ methods: {
+ setDefaultValue() {
+ this.basicData.forEach(item => {
+ item.value = this.currentData[item.name]
+ })
+ },
+ async checkPlaceExt(data) {
+ const res = await checkPlaceExtData(data)
+ if (res.code !== 200) {
+ uni.showToast({
+ title: '更新失败',
+ icon: 'error'
+ })
+ return
+ }
+ uni.navigateBack()
+ },
handleConfirm(e) {
- this.form.status = e.value[0].name
+ this.form.confirmFlag = e.value[0].name
this.isPickerShow = false
},
submit() {
-
- }
+ const {
+ confirmFlag,
+ confirmNotion
+ } = this.form
+ let data = {
+ id: this.currentData.id,
+ confirmFlag: this.findObjValue(confirmFlag, this.columns[0]).status
+ }
+ confirmNotion && Object.assign(data, {
+ confirmNotion
+ })
+ this.checkPlaceExt(data)
+ },
+ findObjValue(value, obj) {
+ const res = obj.find(item => {
+ return item.name == value
+ })
+ return res
+ },
}
}
</script>
@@ -146,10 +192,10 @@
}
.info {
-
+
.title {
- font-size: 30rpx;
+ font-size: 30rpx;
padding-left: 10rpx;
}
@@ -160,13 +206,14 @@
}
}
- .form {
+ .form {
background-color: #fff;
+
.form-item {
padding: 0 20rpx;
&:first-child {
- border: 1rpx solid #f6f6ff;
+ border-bottom: 1rpx solid #f6f6ff;
}
}
}
@@ -178,11 +225,12 @@
padding: 20rpx;
width: calc(100% - 40rpx);
background-color: #fff;
+ z-index: 9999;
}
}
/deep/ .u-form-item__body__left__content__label,
- /deep/ .uni-input-input {
+ /deep/ .uni-input-placeholder {
font-size: 30rpx;
}
</style>
\ No newline at end of file
diff --git a/subPackage/workbench/views/rental.vue b/subPackage/workbench/views/rental.vue
index 6d31cdb..7d417ff 100644
--- a/subPackage/workbench/views/rental.vue
+++ b/subPackage/workbench/views/rental.vue
@@ -173,17 +173,18 @@
methods: {
handleSelect(res) {
const [auditStatus, floor] = res
- console.log(auditStatus, floor);
- this.pagingParams = {
- current: 1,
- size: 10
- }
- this.tenantList = []
+ this.resetParams()
let params = {}
if (auditStatus[0].value !== '') {
params = {
auditStatus: auditStatus[0].value
}
+ }
+ if (floor[0].value !== '') {
+ params = {
+ ...params,
+ floor: floor[0].value
+ }
}
this.getRentalHouseInfo(params)
},
@@ -226,11 +227,13 @@
this.tenantList = [...this.tenantList, ...records]
this.loadingStatus = 'nomore'
},
- search() {
+ search() {
+ this.resetParams()
this.getRentalHouseInfo()
},
clear() {
- this.keyword = ''
+ this.keyword = ''
+ this.resetParams()
this.search()
},
tenantManage({
@@ -238,6 +241,13 @@
id
}) {
this.$u.func.globalNavigator(`/subPackage/bs/views/rentDetail?houseCode=${houseCode}&id=${id}`)
+ },
+ resetParams() {
+ this.tenantList = []
+ this.pagingParams = {
+ current: 1,
+ size: 10
+ }
}
}
}
diff --git a/subPackage/workbench/views/report.vue b/subPackage/workbench/views/report.vue
new file mode 100644
index 0000000..3ede0b4
--- /dev/null
+++ b/subPackage/workbench/views/report.vue
@@ -0,0 +1,194 @@
+<template>
+ <view>
+ <u-sticky>
+ <view class="tab">
+ <view class="tab">
+ <u-tabs :list="tabList" :scrollable="false" :current="tabIndex" @click="changeTab"
+ :inactiveStyle="{color:'#999999'}" :activeStyle="{color:'#017BFC'}"></u-tabs>
+ <view class="search">
+ <u-search placeholder="请输入需要查询信息的姓名" v-model="keyWord" :clearabled="true" :showAction="true"
+ :animation="true" @search="searchConfirm" @clear="clearConfirm"></u-search>
+ </view>
+ </view>
+ </view>
+ </u-sticky>
+ <view class="list">
+ <view class="list-item bgc-ff mb-20" v-for="item in reportList" :key="item.id" @click="pushPage(item.id)">
+ <view class="item-title flex a-i-c j-c-s-b mb-20">
+ <text class="f-32 fw">{{ findObjValue(item.type, typeList, 'type').name }}</text>
+ <u-tag class="u_tag" size="mini" plain plainFill :text="findObjValue(item.status, tabList, 'status').name" :type="findObjValue(item.status, tabList, 'status').type"></u-tag>
+ </view>
+ <view class="item-row flex a-i-c j-c-s-b">
+ <text class="f-28">姓名</text>
+ <text class="f-28 c-66">{{ item.realName }}</text>
+ </view>
+ <view class="item-row flex a-i-c j-c-s-b">
+ <text class="f-28">手机</text>
+ <text class="f-28 c-66">{{ item.phone }}</text>
+ </view>
+ <view class="item-row flex a-i-c j-c-s-b">
+ <text class="f-28">地址</text>
+ <text class="f-28 c-66">{{ item.addressName }}</text>
+ </view>
+ </view>
+ </view>
+ <u-loadmore :status="loadingStatus" loadmoreText="开始加载" loadingText="数据加载中" nomoreText="没有更多了" line />
+ </view>
+</template>
+
+<script>
+ import {
+ getPage
+ } from '@/api/task/taskReportForRepairs.js'
+ export default {
+ data() {
+ return {
+ reportList: [],
+ pagingParams: {
+ current: 1,
+ size: 10
+ },
+ tabList: [{
+ name: "待处理",
+ status: 1,
+ type: 'warning'
+ },
+ {
+ name: "处理中",
+ status: 2,
+ type: 'success'
+ },
+ {
+ name: "已处理",
+ status: 3,
+ type: 'error'
+ },
+ ],
+ typeList: [
+ {
+ name: "公共维修",
+ type: 1
+ },
+ {
+ name: "居家维修",
+ type: 2
+ },
+ {
+ name: "矛盾纠纷",
+ type: 3
+ },
+ {
+ name: "投诉举报",
+ type: 4
+ },
+ {
+ name: "企业商户上报",
+ type: 5
+ }
+ ],
+ tabIndex: 0,
+ tabStatus: 1,
+ keyWord: '',
+ loadingStatus: 'nomore'
+ }
+ },
+ onShow() {
+ this.reportList = []
+ this.getPageList()
+ },
+ onReachBottom() {
+ this.pagingParams.current++
+ this.getPageList()
+ },
+ methods: {
+ async getPageList() {
+ this.loadingStatus = 'loadingmore'
+ const params = {
+ realName: this.keyWord,
+ confirmFlag: this.tabStatus
+ }
+ const res = await getPage({
+ ...params,
+ ...this.pagingParams
+ })
+ const {
+ code,
+ data: {
+ records
+ }
+ } = res
+ if (code !== 200) {
+ uni.showToast({
+ title: '数据请求失败',
+ icon: 'error'
+ })
+ return
+ }
+ this.reportList = [...this.reportList, ...records]
+ this.loadingStatus = 'nomore'
+ },
+ changeTab(e) {
+ this.tabStatus = e.status;
+ this.resetParams()
+ this.getPageList()
+ },
+ searchConfirm() {
+ this.resetParams()
+ this.getPageList()
+ },
+ clearConfirm() {
+ this.keyWord = ''
+ this.searchConfirm()
+ },
+ resetParams() {
+ this.reportList = []
+ this.pagingParams.current = 1
+ },
+ findObjValue(value, obj, word) {
+ const res = obj.find(item => {
+ return item[word] == value
+ })
+ return res
+ },
+ pushPage(id) {
+ this.$u.func.globalNavigator('/subPackage/workbench/views/reportAudit?id='+id)
+ }
+ }
+ }
+</script>
+
+<style lang="scss">
+ page {
+ background-color: #F5F5F5;
+ }
+
+ .tab {
+ background-color: #fff;
+
+ .search {
+ padding: 20rpx 70rpx;
+ }
+ }
+
+ .list {
+ margin: 20rpx 30rpx 0;
+ }
+
+ .list-item {
+ padding: 0 30rpx 20rpx;
+ border-radius: 8rpx;
+
+ .item-title {
+ padding: 30rpx 0;
+ border-bottom: 1px solid #F5F5F5;
+ }
+
+ .item-row {
+ padding: 10rpx 0;
+
+ .address {
+ width: 65%;
+ }
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/subPackage/workbench/views/reportAudit.vue b/subPackage/workbench/views/reportAudit.vue
new file mode 100644
index 0000000..d898dcd
--- /dev/null
+++ b/subPackage/workbench/views/reportAudit.vue
@@ -0,0 +1,222 @@
+<template>
+ <view class="container">
+ <view class="basic-box">
+ <view class="title-box">
+ <view class="line"></view>
+ <view class="text">基本信息</view>
+ </view>
+ <view class="basic-data">
+ <lineItem :data-info="basicData"></lineItem>
+ </view>
+ </view>
+ <view class="pic-box">
+ <view class="title-box">
+ <view class="line"></view>
+ <view class="text">事件照片</view>
+ </view>
+ <view class="pic-data">
+ <u-image class="img" v-for="i in 1" src="" width="80" height="80"></u-image>
+ </view>
+ </view>
+ <view class="audit-box">
+ <view class="title-box">
+ <view class="line"></view>
+ <view class="text">审核信息</view>
+ </view>
+ <view class="audit-form">
+ <u-form labelWidth="70" :model="form" class="form" ref="form">
+ <u-form-item label="事件状态" @click="isPickerShow = true" class="form-item">
+ <u--input v-model="form.confirmFlag" disabled disabledColor="#ffffff" placeholder="请选择审核状态"
+ border="none"></u--input>
+ <u-icon slot="right" name="arrow-right"></u-icon>
+ </u-form-item>
+ <u-form-item label="备注" class="form-item">
+ <u--input v-model="form.confirmNotion" border="none"></u--input>
+ </u-form-item>
+ </u-form>
+ </view>
+ </view>
+ <view class="bottom">
+ <u-button type="primary" @click="submit">提交处理</u-button>
+ </view>
+ <u-picker :closeOnClickOverlay="true" @close="isPickerShow = false" :show="isPickerShow" ref="uPicker"
+ :columns="columns" keyName="name" @cancel="isPickerShow = false" @confirm="handleConfirm"></u-picker>
+ </view>
+</template>
+
+<script>
+ import lineItem from '../components/lineItem.vue'
+ import { checkReportForRepairsData } from '@/api/task/taskReportForRepairs.js'
+ export default {
+ components: {
+ lineItem
+ },
+ data() {
+ return {
+ basicData: [{
+ label: '当前位置',
+ value: '未完善'
+ },
+ {
+ label: '业主',
+ value: '未完善'
+ },
+ {
+ label: '手机号码',
+ value: '未完善'
+ },
+ {
+ label: '事件类型',
+ value: '未完善'
+ },
+ {
+ label: '事件描述',
+ value: '未完善'
+ }
+ ],
+ form: {
+ confirmFlag: '待审核',
+ confirmNotion: ''
+ },
+ currentId: '',
+ isPickerShow: false,
+ columns: [
+ [{
+ name: "待处理",
+ status: 1
+ },
+ {
+ name: "处理中",
+ status: 2
+ },
+ {
+ name: "已处理",
+ status: 3
+ },
+ ]
+ ]
+ }
+ },
+ onLoad(option) {
+ const { id } = option
+ this.currentId = id
+ },
+ methods: {
+ async checkReportForRepairs() {
+ const { confirmFlag, confirmNotion } = this.form
+ const res = await checkReportForRepairsData({
+ id: this.currentId,
+ confirmFlag: this.findObjValue(confirmFlag, this.columns[0]).status,
+ confirmNotion
+ })
+
+ if (res.code !== 200) {
+ uni.showToast({
+ title: "提交处理失败",
+ icon: "error"
+ })
+ return
+ }
+
+ uni.showToast({
+ title: "处理事件成功",
+ icon: "success",
+ duration: 1500,
+ complete() {
+ setTimeout(() =>{
+ uni.navigateBack()
+ }, 1500)
+ }
+ })
+
+ },
+ submit() {
+ this.checkReportForRepairs()
+ },
+ handleConfirm(e) {
+ this.form.confirmFlag = e.value[0].name
+ this.isPickerShow = false
+ },
+ findObjValue(value, obj) {
+ const res = obj.find(item => {
+ return item.name == value
+ })
+ return res
+ },
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ page {
+ background-color: #f6f6f6;
+ }
+
+ .container {
+ padding: 20rpx 30rpx 150rpx 30rpx;
+
+ .basic-box,
+ .pic-box,
+ .audit-box,
+ .bottom {
+ background-color: #fff;
+ padding: 20rpx;
+ }
+
+ .pic-box {
+ margin-top: 20rpx;
+
+ .pic-data {
+ display: flex;
+ flex-wrap: wrap;
+ margin-top: 20rpx;
+ }
+ }
+
+ .audit-box {
+ margin-top: 20rpx;
+
+ .audit-form {
+ .form {
+ font-size: 30rpx;
+
+ .form-item {
+ padding: 0 20rpx;
+
+ &:first-child {
+ border-bottom: 1rpx solid #f6f6ff;
+ }
+ }
+ }
+ }
+ }
+
+ .bottom {
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ width: calc(100% - 40rpx);
+ border-top: 1rpx solid #f6f6f6;
+ }
+
+ .title-box {
+ display: flex;
+ font-size: 30rpx;
+
+ .line {
+ background-color: #4586FE;
+ width: 7rpx;
+ margin-right: 10rpx;
+ }
+
+ .text {
+ font-weight: 700;
+ }
+ }
+ }
+
+ /deep/ .u-form-item__body__left__content__label,
+ /deep/ .uni-input-placeholder {
+ font-size: 30rpx;
+ }
+</style>
\ No newline at end of file
--
Gitblit v1.9.3