13 files modified
9 files added
7 files deleted
| | |
| | | ...params |
| | | } |
| | | }) |
| | | } |
| | | |
| | | //无诈上报 |
| | | export const addCounterfraudReport = (params) => { |
| | | return http.request({ |
| | | url: '/blade-taskNoFraudReporting/taskNoFraudReporting/saveTwo', |
| | | method: 'POST', |
| | | data: params |
| | | }) |
| | | } |
| | | //无诈上报列表 |
| | | export const getCounterfraudReportList = (params) => { |
| | | return http.request({ |
| | | url: '/blade-taskNoFraudReporting/taskNoFraudReporting/page', |
| | | method: 'get', |
| | | params: { |
| | | ...params |
| | | } |
| | | }) |
| | | } |
| | | //无诈上报详情 |
| | | export const getCounterfraudReportDetail = (params) => { |
| | | return http.request({ |
| | | url: '/blade-taskNoFraudReporting/taskNoFraudReporting/getInfo', |
| | | method: 'get', |
| | | params: { |
| | | ...params |
| | | } |
| | | }) |
| | | } |
| | |
| | | ...params |
| | | } |
| | | }) |
| | | } |
| | | |
| | | export const searchContent = (params) => { |
| | | return http.request({ |
| | | url: '/es/es/page', |
| | | method: 'get', |
| | | params: { |
| | | ...params |
| | | } |
| | | }) |
| | | } |
| New file |
| | |
| | | ## 1.0.1(2023-04-21) |
| | | 1. 功能自测 |
| | | 2. 优化组件逻辑,方便父子组件传值 |
| | | 3. 增加DEMO:/components/pages/index |
| | | 4. 增加完整说明文档 +案例 |
| | | ## 1.0.0(2023-04-20) |
| | | 1. 增加搜索页面 |
| | | 2. 输入关键词,下拉列表展示搜索结果 |
| | | 3. 类似百度搜索,搜索关键词变红 |
| | | 4. 引入阿里图标库,节省存储空间 |
| New file |
| | |
| | | <template> |
| | | <view> |
| | | <zhangguangsen-search :hotList="hotList" :searchList="searchList" @onInput="onInput" @onSearchConfirm="onSearchConfirm"></zhangguangsen-search> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | hotList:['aa','bb','cc','dd','测试一个超产的龙欧索','aa','bb','cc','dd','测试一个超产的龙欧索'], |
| | | searchList:[] |
| | | } |
| | | }, |
| | | mounted(){ |
| | | }, |
| | | methods: { |
| | | onInput(val){ |
| | | console.log('**input',val) |
| | | //模拟后端返回数据,根据val调用接口 |
| | | setTimeout(()=>{ |
| | | this.searchList = ['aabacd','bb','cc','dd','测试一个超产的龙欧索','aa',Math.random()]//这里模拟 axios 返回的数据 |
| | | },2000) |
| | | }, |
| | | onSearchConfirm(searchVal){ |
| | | console.log('搜索词',searchVal) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="search"> |
| | | <view class="search-head"> |
| | | <view class="head-icon__search iconfont icon-sousuo1"></view> |
| | | <view class="head-input__search"> |
| | | <input v-model="val" :focus="true" :adjustPosition="false" placeholder="请输入配件名称" placeholder-class="head-input__placeholder" confirmType="搜索" :confirmHold="false" @input="handleInput" @click="handleClick" @confirm="handleConfirm"/> |
| | | <button @click="handleConfirm">搜索</button> |
| | | </view> |
| | | </view> |
| | | <view class="hotSearch"> |
| | | <view class="hotSearch-head"> |
| | | <view class="hotSearch-icon__hot iconfont icon-remensousuo"></view> |
| | | <text class="hotSearch-text__hot"> |
| | | 热门搜索 |
| | | </text> |
| | | </view> |
| | | <view class="hotSearch-list"> |
| | | <view class="hotSearch-li" v-for="(item,index) in hotList" :key="index" @click="handleConfirm(item)"> |
| | | {{item}} |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view v-show="showPop"> |
| | | <view class="pop-search__list"> |
| | | <view class="pop-search__li" v-for="(item,index) in formatSearchList" :key="index" @click="handleConfirm(item)"> |
| | | <text v-for="(titem,tindex) in item" :key="tindex" :class="titem.key ? 'active' : ''">{{titem.str}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="pop-search__mask" @click="showPop=false"></view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | props:{ |
| | | hotList:{ |
| | | type:Array |
| | | }, |
| | | searchList:{ |
| | | type:Array |
| | | } |
| | | }, |
| | | watch:{ |
| | | searchList:{ |
| | | handler(searchList){ |
| | | uni.hideLoading(); |
| | | console.log('watch',searchList) |
| | | if(searchList.length>0 && this.val){ |
| | | this.formatSearchList = searchList.map(item=>this.hilight_word(this.val, item)) |
| | | } |
| | | }, |
| | | deep:true |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | val:'', |
| | | showPop:false, |
| | | formatSearchList:[] |
| | | } |
| | | }, |
| | | mounted(){ |
| | | }, |
| | | methods: { |
| | | handleConfirm(val){ |
| | | let searchVal = val |
| | | if(Array.isArray((val))){ |
| | | searchVal = val.map(({str})=>str).join('') |
| | | }else if(val instanceof Object){ |
| | | searchVal = this.val |
| | | } |
| | | this.$emit('onSearchConfirm',searchVal) |
| | | }, |
| | | handleClick(){ |
| | | this.showPop = !!this.val |
| | | }, |
| | | handleInput(e){ |
| | | this.showPop = !!this.val |
| | | if(!this.val) { |
| | | return |
| | | } |
| | | uni.showLoading({ |
| | | title: '加载中' |
| | | }); |
| | | setTimeout(()=>uni.hideLoading(),3000) |
| | | this.$emit('onInput',this.val) |
| | | }, |
| | | // 根据搜索字分割字符 |
| | | hilight_word: function (key, word) { |
| | | key=key.trim() |
| | | word=''+word |
| | | let idx = word.indexOf(key), t = []; |
| | | |
| | | if (idx > -1) { |
| | | if (idx == 0) { |
| | | t =this.hilight_word(key, word.substr(key.length)); |
| | | t.unshift({ key: true, str: key }); |
| | | return t; |
| | | } |
| | | |
| | | if (idx > 0) { |
| | | t =this.hilight_word(key, word.substr(idx)); |
| | | t.unshift({ key: false, str: word.substring(0, idx) }); |
| | | return t; |
| | | } |
| | | } |
| | | return [{ key: false, str: word }]; |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @font-face { |
| | | font-family: "iconfont"; /* Project id 3928599 */ |
| | | src: url('@/static/zhangguangsen-search/zhangguangsen-search.woff2?t=1681960188787') format('woff2'), |
| | | url('@/static/zhangguangsen-search/zhangguangsen-search.woff?t=1681960188787') format('woff'), |
| | | url('@/static/zhangguangsen-search/zhangguangsen-search.ttf?t=1681960188787') format('truetype'); |
| | | } |
| | | |
| | | .iconfont { |
| | | font-family: "iconfont" !important; |
| | | font-size: 16px; |
| | | font-style: normal; |
| | | -webkit-font-smoothing: antialiased; |
| | | -moz-osx-font-smoothing: grayscale; |
| | | } |
| | | |
| | | .icon-remensousuo:before { |
| | | content: "\e73d"; |
| | | } |
| | | |
| | | .icon-sousuo1:before { |
| | | content: "\e61c"; |
| | | } |
| | | |
| | | .search{ |
| | | background-color: #fff; |
| | | overflow: hidden; |
| | | &-head{ |
| | | display: flex; |
| | | align-items: center; |
| | | padding:0 10rpx 0 47rpx; |
| | | margin:30rpx 30rpx 0; |
| | | height: 70rpx; |
| | | background: #F5F5F5; |
| | | border-radius: 35rpx; |
| | | .head-icon__search{ |
| | | font-size: 30rpx; |
| | | color: #231815; |
| | | } |
| | | .head-input__search{ |
| | | display: flex; |
| | | align-items: center; |
| | | flex: 1; |
| | | input{ |
| | | margin-left: 15rpx; |
| | | border: none; |
| | | height: 29rpx; |
| | | font-size: 30rpx; |
| | | font-weight: 400; |
| | | color: #AAAAAA; |
| | | line-height: 28rpx; |
| | | flex:1; |
| | | } |
| | | button{ |
| | | width: 128rpx; |
| | | height: 53rpx; |
| | | background: linear-gradient(0deg, #0AA0F5, #00E3F2); |
| | | border-radius: 30rpx; |
| | | font-size: 28rpx; |
| | | font-weight: 500; |
| | | color: #FFFFFF; |
| | | line-height: 42rpx; |
| | | } |
| | | .head-input__placeholder{ |
| | | color: #AAAAAA; |
| | | } |
| | | } |
| | | } |
| | | .hotSearch{ |
| | | margin-top: 30rpx; |
| | | &-head{ |
| | | display: flex; |
| | | align-items: center; |
| | | padding:0 0 0 30rpx; |
| | | } |
| | | &-icon__hot{ |
| | | margin-left: 10rpx; |
| | | font-size: 30rpx; |
| | | color: rgb(255,43,57); |
| | | } |
| | | &-text__hot{ |
| | | margin-left: 10rpx; |
| | | font-size: 30rpx; |
| | | color: #999999; |
| | | } |
| | | &-list{ |
| | | padding: 20rpx 0 50rpx 30rpx; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | } |
| | | &-li{ |
| | | margin: 10rpx 0 0 10rpx; |
| | | padding: 0 20rpx; |
| | | border-radius: 20rpx; |
| | | background: #f2f2f2; |
| | | line-height: 50rpx; |
| | | &:first-child{ |
| | | margin-left: 0; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .pop{ |
| | | &-search{ |
| | | &__mask{ |
| | | position: fixed; |
| | | top: 100rpx; |
| | | bottom: 0; |
| | | left: 0; |
| | | right: 0; |
| | | background-color: rgba(0, 0,0,.3); |
| | | z-index: 1; |
| | | } |
| | | &__list{ |
| | | padding:0 30rpx; |
| | | position: fixed; |
| | | top: 100rpx; |
| | | left: 0; |
| | | right: 0; |
| | | background-color: #fff; |
| | | z-index: 9; |
| | | } |
| | | &__li{ |
| | | font-size: 30rpx; |
| | | color: #231815; |
| | | line-height: 90rpx; |
| | | border-bottom: solid 1px #F5F5F5; |
| | | .active{ |
| | | color: red; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | "navigationBarBackgroundColor": "#fff", |
| | | "navigationBarTextStyle": "black" |
| | | } |
| | | }, |
| | | { |
| | | "path": "views/counterfraudReportDetail", |
| | | "style": { |
| | | "navigationBarTitleText": "无诈上报详情", |
| | | "enablePullDownRefresh": false, |
| | | "navigationBarBackgroundColor": "#fff", |
| | | "navigationBarTextStyle": "black" |
| | | } |
| | | } |
| | | |
| | | ] |
| | | }, |
| | | //报事 |
| | |
| | | "navigationBarTextStyle": "black", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "addReport", |
| | | "style": { |
| | | "navigationBarTitleText": "无诈上报", |
| | | "navigationBarBackgroundColor": "#fff", |
| | | "navigationBarTextStyle": "black", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "reportRecord", |
| | | "style": { |
| | | "navigationBarTitleText": "无诈上报记录", |
| | | "navigationBarBackgroundColor": "#fff", |
| | | "navigationBarTextStyle": "black", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | } |
| | | ] |
| | | }, |
| | |
| | | padding: 0 30rpx; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .search-bar{ |
| | | padding:20rpx 30rpx; |
| | | position: relative; |
| | | width:100%; |
| | | box-sizing: border-box; |
| | | } |
| | | .search-content{ |
| | | position: absolute; |
| | | width: 100%; |
| | | height:500rpx; |
| | | border-radius:16rpx; |
| | | top:88rpx; |
| | | left:0; |
| | | z-index: 15; |
| | | box-shadow: 0rpx 10rpx 10rpx 0rpx rgba(0, 0, 0, 0.02); |
| | | border-bottom:1px solid #f5f5f5; |
| | | padding:0 30rpx; |
| | | box-sizing: border-box; |
| | | } |
| | | .search-scroll{ |
| | | width:100%; |
| | | height:100%; |
| | | } |
| | | .search-content-row{ |
| | | padding:20rpx 0; |
| | | border-bottom: 1px solid #f5f5f5; |
| | | } |
| | | .search-tag{ |
| | | padding:2rpx 10rpx; |
| | | border-radius: 8rpx; |
| | | background-color: rgb(236,244,255); |
| | | border:1px solid currentColor; |
| | | } |
| | | .mask{ |
| | | position: fixed; |
| | | width:100%; |
| | | height:100%; |
| | | top:300rpx; |
| | | left:0; |
| | | z-index: 10; |
| | | background-color:rgba(0, 0, 0, .5); |
| | | } |
| | | |
| | | |
| | | .content { |
| | | padding: 20rpx 30rpx 0; |
| | |
| | | <u-icon name="arrow-right" color="#fff"></u-icon>
|
| | | </view>
|
| | | </u-navbar>
|
| | |
|
| | | <!-- <view class="search-bar" :style="{background:background.top}">
|
| | | <u-search placeholder="请输入关键字" v-model="keyword" :showAction="true" actionText="搜索" :animation="true"
|
| | | :actionStyle="{color:'#fff'}" bgColor="#fff" @change="changeKeyword"></u-search>
|
| | | <view class="mask"></view>
|
| | | <view class="search-content bgc-ff">
|
| | | <scroll-view class="search-scroll" :scroll-y="true">
|
| | | <view class="search-content-row flex j-c-s-b a-i-c" v-for="i in 5">
|
| | | <text class="f-28">万达华府</text>
|
| | | <view class="search-tag f-26 c-main">房屋</view>
|
| | | </view>
|
| | | </scroll-view>
|
| | | </view>
|
| | | </view> -->
|
| | |
|
| | | <view class="swiper" :style="{background:background.banner}">
|
| | | <u-swiper :list="bannerList" height="320rpx" radius="10" @click="navToArticle"></u-swiper>
|
| | | </view>
|
| | |
| | | <text class="nav-item-text f-26 mt-10">消防自查</text>
|
| | | </view>
|
| | | </u-grid-item>
|
| | | <u-grid-item @click="navigatorPage('/subPackage/counterfraud/addReport')"
|
| | | v-if="curSelectSite.noExplosionCategory">
|
| | | <view class="nav-item flex f-d-c a-i-c">
|
| | | <u-icon name="/static/icon/nav-11.png" width="80rpx" height="80rpx"></u-icon>
|
| | | <text class="nav-item-text f-26 mt-10">无诈上报</text>
|
| | | </view>
|
| | | </u-grid-item>
|
| | | </block>
|
| | | <block v-if="tabIndex == 2">
|
| | | <u-grid-item @click="navToSiteList()">
|
| | |
| | | import {
|
| | | getBannerList,
|
| | | getContact,
|
| | | getQrCodeDetail
|
| | | getQrCodeDetail,
|
| | | searchContent
|
| | | } from "@/api/system/index"
|
| | | import {
|
| | | minioBaseUrl
|
| | |
| | | top: "#017BFC",
|
| | | banner: "linear-gradient(180deg, #017BFC 0%, rgba(1, 123, 252, 0) 100%)"
|
| | | },
|
| | | tabList: []
|
| | |
|
| | | tabList: [],
|
| | | keyword: ""
|
| | | }
|
| | | },
|
| | |
|
| | |
| | | // });
|
| | | // },
|
| | |
|
| | | changeKeyword(val) {
|
| | |
|
| | | searchContent({
|
| | | searchKey: val
|
| | | }).then(res => {
|
| | | console.log(res)
|
| | | })
|
| | | },
|
| | |
|
| | |
|
| | | //获取待办事项数量
|
| | | getTaskCount() {
|
| | | if (uni.getStorageSync('activeRole').roleAlias === 'wgy') {
|
| | |
| | | </view>--> |
| | | |
| | | |
| | | <image class="bg" src="/static/img/login-bg.png" :style="{height:screenHeight}" mode="aspectFill"></image> |
| | | <image class="bg" |
| | | src="https://srgdjczzxtpt.com:2080/gminio/jczz/upload/20240410/61f0d307739505790a2a72eb36a9330e.png" |
| | | :style="{height:screenHeight}" mode="aspectFill"></image> |
| | | |
| | | |
| | | <view class="content" v-if="!loginType"> |
| New file |
| | |
| | | <template> |
| | | <view class="wrap"> |
| | | <view class="section mb-20"> |
| | | <u-collapse :value="itemIndex" ref="collapse"> |
| | | <u-collapse-item :title="item.title" :name="index" v-for="(item,index) in questionList"> |
| | | <u-form :model="info" ref="form"> |
| | | <block v-for="(i,k) in item.children"> |
| | | <view class="f-30 c-33"> |
| | | {{i.title}} |
| | | </view> |
| | | <!-- <u-form-item labelWidth="90" label="隐患" prop="gateStatus"> |
| | | <view class="btn-group flex"> |
| | | <view class="value-item" :class="i.state == 0?'active bgc-main c-ff':''" |
| | | @click="changeStatus(0,i,index,k)"> |
| | | 存在 |
| | | </view> |
| | | <view class="value-item" :class="i.state == 1?'active bgc-main c-ff':''" |
| | | @click="changeStatus(1,i,index,k)"> |
| | | 不存在 |
| | | </view> |
| | | </view> |
| | | </u-form-item> --> |
| | | <view class=""> |
| | | <u-form-item labelWidth="100" label="照片" prop="gateStatus"> |
| | | <u-upload :fileList="i.urls" :previewFullImage="uploadConfig.previewFullImage" |
| | | :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple" |
| | | :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" |
| | | @afterRead="afterReadImgs($event,i,index,k)" |
| | | @delete="deleteImages($event,index,k)"> |
| | | <view class="upload-item upload-icon flex_base"> |
| | | <u-icon name="/static/icon/upload.png" width="60rpx" |
| | | height="60rpx"></u-icon> |
| | | </view> |
| | | </u-upload> |
| | | </u-form-item> |
| | | <u-form-item labelWidth="100" label="描述" prop="gateStatus"> |
| | | <u-textarea v-model="i.remark" placeholder="请输入描述" |
| | | placeholderClass="c-99 f-26"></u-textarea> |
| | | </u-form-item> |
| | | </view> |
| | | </block> |
| | | </u-form> |
| | | </u-collapse-item> |
| | | </u-collapse> |
| | | </view> |
| | | |
| | | |
| | | <!-- <footer-btn @click="sumitInfo"></footer-btn> --> |
| | | |
| | | <button class="submit-btn" @click="sumitInfo">提交</button> |
| | | <button class="list-btn mb-20" @click="navTo">我上报的事件</button> |
| | | |
| | | |
| | | |
| | | <view class="blank"></view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import uploadMixin from "@/mixin/uploadMixinPlace"; |
| | | import { |
| | | getPlaceCheckItem |
| | | } from "@/api/place/place.js" |
| | | |
| | | import { |
| | | savePlaceCheck, |
| | | getPlaceCheckDetail, |
| | | updatePlaceCheck, |
| | | auditPlaceCheck |
| | | } from "@/api/reporting/reporting.js" |
| | | |
| | | import { |
| | | addCounterfraudReport |
| | | } from "@/api/counterfraud/counterfraud.js" |
| | | |
| | | |
| | | |
| | | export default { |
| | | mixins: [uploadMixin], |
| | | data() { |
| | | return { |
| | | form: { |
| | | images: [] |
| | | }, |
| | | info: { |
| | | remark: "", |
| | | imageUrls: "", |
| | | signaturePath: "" |
| | | }, |
| | | |
| | | desc: "", |
| | | title: "", |
| | | curSelectSite: {}, |
| | | showSignature: false, |
| | | signatureUrl: "", |
| | | signatureSettings: { //签名设置 |
| | | width: '700', //签名区域的宽 |
| | | height: '800', //签名区域的高 |
| | | lineWidth: 3, //签名时线宽 |
| | | textColor: '#007AFF' //签名文字颜色 |
| | | }, |
| | | statusOption: [{ |
| | | text: "存在", |
| | | value: 0 |
| | | }, |
| | | { |
| | | text: "不存在", |
| | | value: 1 |
| | | }, |
| | | ], |
| | | questionList: [], |
| | | itemIndex: [], |
| | | patrolRecordVOList: [], |
| | | count: 0, |
| | | statusList: [{ |
| | | name: "是", |
| | | id: 2 |
| | | }, |
| | | { |
| | | name: "否", |
| | | id: 1 |
| | | } |
| | | ], |
| | | time: Number(new Date()), |
| | | showSelectDate: false, |
| | | dangerCount: 0, //隐患项数量 |
| | | isEdit: false |
| | | |
| | | } |
| | | }, |
| | | async onLoad(option) { |
| | | await this.getItem(); |
| | | if (option.taskId) { |
| | | this.isEdit = true; |
| | | this.getDetail(option.taskId) |
| | | } else { |
| | | this.info.houseCode = uni.getStorageSync("siteInfo").houseCode; |
| | | this.info.placeName = uni.getStorageSync("siteInfo").name; |
| | | } |
| | | |
| | | |
| | | |
| | | }, |
| | | |
| | | methods: { |
| | | |
| | | getDetail(id) { |
| | | getPlaceCheckDetail({ |
| | | taskId: id |
| | | }).then(res => { |
| | | let data = res.data; |
| | | for (let i = 0, ii = this.questionList.length; i < ii; i++) { |
| | | for (let k = 0, kk = this.questionList[i].children.length; k < kk; k++) { |
| | | for (let j = 0, jj = data.taskPlaceRecordVOList.length; j < jj; j++) { |
| | | if (this.questionList[i].children[k].id == data.taskPlaceRecordVOList[j].itemId) { |
| | | let children = this.questionList[i] |
| | | children.children[k].state = data.taskPlaceRecordVOList[j].state; |
| | | if (data.taskPlaceRecordVOList[j].imageUrls) { |
| | | children.children[k].urls = this.$setImageUrl(data.taskPlaceRecordVOList[j] |
| | | .imageUrls, 2); |
| | | } |
| | | children.children[k].remark = data.taskPlaceRecordVOList[j].remark || ""; |
| | | this.$set(this.questionList, i, children) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | this.info.id = data.id; |
| | | this.info.taskId = data.taskId; |
| | | this.info.remark = data.remark; |
| | | if (data.signaturePath) { |
| | | this.signatureUrl = this.$setFullUrl(data.signaturePath); |
| | | this.info.signaturePath = data.signaturePath; |
| | | } |
| | | this.form.images = this.$setImageUrl(data.imageUrls, 2) |
| | | |
| | | }) |
| | | }, |
| | | |
| | | |
| | | getItem() { |
| | | getPlaceCheckItem({ |
| | | childType: uni.getStorageSync("siteInfo").noExplosionCategory, |
| | | type: 2 |
| | | }).then(res => { |
| | | let data = res.data; |
| | | this.questionList = res.data; |
| | | let arr = [] |
| | | let obj = { |
| | | itemId: "", |
| | | state: "", |
| | | imagesUrl: "", |
| | | remark: "" |
| | | } |
| | | let count = 0; |
| | | for (let i = 0, ii = data.length; i < ii; i++) { |
| | | arr.push(i); |
| | | for (let k = 0, kk = data[i].children.length; k < kk; k++) { |
| | | // this.info.patrolRecordVOList.push(obj); |
| | | data[i].children[k].urls = []; |
| | | data[i].children[k].remark = ""; |
| | | count += 1; |
| | | } |
| | | } |
| | | this.count = count; |
| | | this.itemIndex = arr; |
| | | }) |
| | | }, |
| | | |
| | | changeStatus(value, item, fIndex, cIndex) { |
| | | let children = this.questionList[fIndex]; |
| | | children.children[cIndex].state = value; |
| | | this.$set(this.questionList, fIndex, children) |
| | | if (value == 0 && !item.urls) { |
| | | children.children[cIndex].urls = []; |
| | | this.$set(this.questionList, fIndex, children) |
| | | } |
| | | this.$nextTick(() => { |
| | | this.$refs.collapse.init(); |
| | | }) |
| | | this.getSelected() |
| | | }, |
| | | |
| | | getSelected() { |
| | | let arr = []; |
| | | let count = 0; |
| | | for (let i = 0, ii = this.questionList.length; i < ii; i++) { |
| | | for (let k = 0, kk = this.questionList[i].children.length; k < kk; k++) { |
| | | // if (this.questionList[i].children[k].state != null) { |
| | | arr.push({ |
| | | itemId: this.questionList[i].children[k].id, |
| | | // state: this.questionList[i].children[k].state, |
| | | imageUrls: this.setImages(this.questionList[i].children[k].urls), |
| | | remark: this.questionList[i].children[k].remark || "" |
| | | }) |
| | | // if (this.questionList[i].children[k].state == 0) { |
| | | // count += 1; |
| | | // } |
| | | // } |
| | | } |
| | | } |
| | | this.dangerCount = count; |
| | | return arr; |
| | | }, |
| | | |
| | | setImages(key) { |
| | | if (!key) { |
| | | return "" |
| | | } else { |
| | | let urls = []; |
| | | for (let i of key) { |
| | | urls.push(i.name); |
| | | } |
| | | return urls.join(",") |
| | | } |
| | | }, |
| | | |
| | | async afterReadImgs(event, item, fIndex, cIndex) { |
| | | uni.showLoading({ |
| | | title: "上传中..." |
| | | }) |
| | | let children = this.questionList[fIndex]; |
| | | let lists = [].concat(event.file) |
| | | let fileListLen = item.urls.length; |
| | | lists.map((item) => { |
| | | children.children[cIndex].urls.push({ |
| | | ...item, |
| | | status: 'uploading', |
| | | message: '上传中' |
| | | }) |
| | | this.$set(this.questionList, fIndex, children) |
| | | }) |
| | | for (let i = 0; i < lists.length; i++) { |
| | | const result = await this.uploadFilePromise(lists[i].url) |
| | | children.children[cIndex].urls.splice(fileListLen, 1, Object.assign({}, { |
| | | url: result.data.link, |
| | | name: result.data.name |
| | | })) |
| | | this.$set(this.questionList, fIndex, children) |
| | | fileListLen++ |
| | | } |
| | | this.loadingClose() |
| | | // this.getSelected() |
| | | }, |
| | | |
| | | deleteImages(event, fIndex, cIndex) { |
| | | let children = this.questionList[fIndex]; |
| | | children.children[cIndex].urls.splice(event.index, 1); |
| | | this.$set(this.questionList, fIndex, children); |
| | | // this.getSelected() |
| | | }, |
| | | |
| | | signatureChange(e) { |
| | | // this.signatureUrl = e; |
| | | this.uploadSignImg(e) |
| | | }, |
| | | |
| | | showSignPopup() { |
| | | // if (this.getSelected().length < this.count) { |
| | | // this.$showTips("还有内容还未完善"); |
| | | // return; |
| | | // } |
| | | |
| | | let data = this.getSelected(); |
| | | for (let i of data) { |
| | | if (i.state == 1) { |
| | | if (i.imageUrls || i.remark) { |
| | | i.imageUrls = ""; |
| | | i.remark = ""; |
| | | } |
| | | } else { |
| | | if (!i.imageUrls && !i.remark) { |
| | | this.$showTips("请上传隐患照片或填写隐患描述"); |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | this.showSignature = true; |
| | | }, |
| | | |
| | | uploadSignImg(url) { |
| | | uni.uploadFile({ |
| | | url: this.uploadConfig.url, |
| | | filePath: url, |
| | | name: 'file', |
| | | header: this.uploadConfig.header, |
| | | success: (res) => { |
| | | console.log(res); |
| | | let data = JSON.parse(res.data); |
| | | if (res.statusCode == 200 && data.code == 200) { |
| | | // this.handleSubmit(data.data.name); |
| | | this.showSignature = false; |
| | | this.signatureUrl = data.data.link; |
| | | this.info.signaturePath = data.data.name; |
| | | // this.sumitInfo() |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | sumitInfo() { |
| | | uni.showLoading({ |
| | | title: "加载中..." |
| | | }) |
| | | // if (this.form.images.length > 0) { |
| | | // let urls = [] |
| | | // this.form.images.forEach(e => { |
| | | // urls.push(e.name) |
| | | // }) |
| | | // this.info.imageUrls = urls.join(",") |
| | | // } |
| | | this.info.taskPlaceRecordVOList = this.getSelected() |
| | | // this.info.status = 1; |
| | | console.log("data===>", this.getSelected()); |
| | | if (this.isEdit) { |
| | | auditPlaceCheck(this.info).then(res => { |
| | | uni.hideLoading(); |
| | | uni.showToast({ |
| | | icon: 'success', |
| | | title: '提交成功', |
| | | success() { |
| | | setTimeout(() => { |
| | | uni.navigateBack(); |
| | | }, 300) |
| | | } |
| | | }) |
| | | }) |
| | | } else { |
| | | addCounterfraudReport(this.info).then(res => { |
| | | uni.hideLoading(); |
| | | uni.showToast({ |
| | | icon: 'success', |
| | | title: '提交成功', |
| | | success() { |
| | | setTimeout(() => { |
| | | uni.navigateBack(); |
| | | }, 300) |
| | | } |
| | | }) |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | |
| | | previewImg() { |
| | | uni.previewImage({ |
| | | urls: [this.signatureUrl], |
| | | current: this.signatureUrl |
| | | }) |
| | | }, |
| | | |
| | | navTo() { |
| | | uni.navigateTo({ |
| | | url: 'reportRecord' |
| | | }) |
| | | }, |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less"> |
| | | page { |
| | | background-color: #f5f5f5; |
| | | } |
| | | |
| | | .wrap { |
| | | .section { |
| | | padding: 0 20rpx; |
| | | margin: 20rpx 20rpx 0; |
| | | background-color: #fff; |
| | | } |
| | | } |
| | | |
| | | .top { |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | padding: 20rpx; |
| | | } |
| | | |
| | | .top-btn { |
| | | padding: 16rpx 22rpx; |
| | | border-radius: 6rpx; |
| | | text-align: center; |
| | | } |
| | | |
| | | .content { |
| | | margin: 20rpx; |
| | | padding: 20rpx 30rpx; |
| | | } |
| | | |
| | | .cell { |
| | | margin: 0 20rpx; |
| | | padding: 20rpx 30rpx; |
| | | } |
| | | |
| | | .site-box { |
| | | padding: 30rpx; |
| | | margin: 20rpx 30rpx; |
| | | border-radius: 4rpx; |
| | | |
| | | .c-aa { |
| | | color: #aaa; |
| | | } |
| | | |
| | | .address { |
| | | width: 60%; |
| | | margin-left: 25rpx; |
| | | } |
| | | } |
| | | |
| | | .upload-item { |
| | | width: 140rpx; |
| | | height: 140rpx; |
| | | border: 1px solid #EEEEEE; |
| | | } |
| | | |
| | | .upload { |
| | | // margin: 0 30rpx; |
| | | padding: 30rpx 0; |
| | | } |
| | | |
| | | .submit-btn { |
| | | width: 690rpx; |
| | | height: 78rpx; |
| | | line-height: 78rpx; |
| | | background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%); |
| | | border-radius: 8rpx 8rpx 8rpx 8rpx; |
| | | font-size: 32rpx; |
| | | color: #fff; |
| | | margin-top: 50rpx; |
| | | } |
| | | |
| | | .list-btn { |
| | | width: 690rpx; |
| | | height: 78rpx; |
| | | line-height: 78rpx; |
| | | background: linear-gradient(163deg, #c7d7dc 0%, #c3cdd8 100%); |
| | | border-radius: 8rpx 8rpx 8rpx 8rpx; |
| | | font-size: 32rpx; |
| | | color: #fff; |
| | | margin-top: 50rpx; |
| | | } |
| | | |
| | | .address-row { |
| | | flex: 1; |
| | | justify-content: flex-end; |
| | | align-items: center; |
| | | } |
| | | |
| | | .address-content { |
| | | width: calc(100% - 116rpx - 20rpx); |
| | | margin-right: 20rpx; |
| | | text-align: right; |
| | | } |
| | | |
| | | .location-btn { |
| | | width: 116rpx; |
| | | height: 46rpx; |
| | | line-height: 46rpx; |
| | | border-radius: 4rpx; |
| | | border: 1px solid currentColor; |
| | | padding: 0; |
| | | background-color: #fff; |
| | | text-align: center; |
| | | } |
| | | |
| | | |
| | | .signture-popup { |
| | | padding-bottom: 20rpx; |
| | | } |
| | | |
| | | .sign { |
| | | padding: 30rpx; |
| | | // margin: 0 30rpx; |
| | | } |
| | | |
| | | .value-item { |
| | | flex: 1; |
| | | // background-color: #ffffff; |
| | | // width: 120rpx; |
| | | border: 2rpx solid #f5f5f5; |
| | | height: 70rpx; |
| | | line-height: 70rpx; |
| | | box-sizing: border-box; |
| | | text-align: center; |
| | | } |
| | | |
| | | .active { |
| | | border: 2rpx solid currentColor; |
| | | } |
| | | |
| | | .btn-group { |
| | | flex: 1; |
| | | } |
| | | |
| | | /deep/ .u-cell__title-text { |
| | | font-weight: bold; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | /deep/ .u-form-item__body__left__content { |
| | | font-size: 26rpx; |
| | | } |
| | | |
| | | .blank { |
| | | width: 100%; |
| | | height: 140rpx; |
| | | } |
| | | |
| | | |
| | | .submit-btn { |
| | | width: 690rpx; |
| | | height: 78rpx; |
| | | line-height: 78rpx; |
| | | background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%); |
| | | border-radius: 8rpx 8rpx 8rpx 8rpx; |
| | | font-size: 32rpx; |
| | | color: #fff; |
| | | margin-top: 50rpx; |
| | | } |
| | | |
| | | .list-btn { |
| | | width: 690rpx; |
| | | height: 78rpx; |
| | | line-height: 78rpx; |
| | | background: linear-gradient(163deg, #c7d7dc 0%, #c3cdd8 100%); |
| | | border-radius: 8rpx 8rpx 8rpx 8rpx; |
| | | font-size: 32rpx; |
| | | color: #fff; |
| | | margin-top: 50rpx; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class=""> |
| | | <view class="list"> |
| | | <view class="list-item bgc-ff mb-20" v-for="(i,k) in list" :key="k" @click="navTo(i.id)"> |
| | | <view class="item-title flex a-i-c j-c-s-b mb-20"> |
| | | <text class="f-32 fw">无诈上报</text> |
| | | <!-- <text class="f-32 fw" v-if="i.eventType == 3">二手车交易</text>id |
| | | <text class="f-32 fw" v-if="i.eventType == 2">二手手机维修</text> --> |
| | | <u-tag v-if="i.status == 4" text="待完成" type="warning" plain plainFill></u-tag> |
| | | <u-tag v-if="i.status == 1" text="待审批" type="warning" plain plainFill></u-tag> |
| | | <u-tag v-if="i.status == 2" text="审核通过" type="success" plain plainFill></u-tag> |
| | | <u-tag v-if="i.status == 3" text="审核拒绝" type="error" plain plainFill></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">{{i.createTime}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <u-loadmore :status="loadingStatus" loadmoreText="开始加载" loadingText="数据加载中" nomoreText="没有更多了" line /> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getPlaceCheckList |
| | | } from "@/api/reporting/reporting.js" |
| | | import { |
| | | getCounterfraudReportList |
| | | } from "@/api/counterfraud/counterfraud.js" |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | list: [], |
| | | currentPage: 1, |
| | | loadingStatus: 'nomore', |
| | | } |
| | | }, |
| | | |
| | | onLoad(option) { |
| | | this.getList(option.type) |
| | | }, |
| | | onReachBottom() { |
| | | this.currentPage++ |
| | | this.getList() |
| | | }, |
| | | |
| | | methods: { |
| | | getList() { |
| | | getCounterfraudReportList({ |
| | | userId: uni.getStorageSync("userInfo").user_id, |
| | | current: this.currentPage, |
| | | size: 10, |
| | | // reportType: 2 |
| | | // eventType: type |
| | | }).then(res => { |
| | | if (res.code != 200) { |
| | | uni.showToast({ |
| | | title: '数据请求失败', |
| | | icon: 'error' |
| | | }) |
| | | return |
| | | } |
| | | let records = res.data.records; |
| | | this.list = [...this.list, ...records] |
| | | this.loadingStatus = 'nomore' |
| | | }) |
| | | }, |
| | | navTo(id) { |
| | | uni.navigateTo({ |
| | | url: `/subPackage/workbench/views/counterfraudReportDetail?id=${id}` |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | page { |
| | | background-color: #F5F5F5; |
| | | } |
| | | |
| | | .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> |
| | |
| | | |
| | | |
| | | getItem() { |
| | | getPlaceCheckItem().then(res => { |
| | | getPlaceCheckItem({ |
| | | childType: 1, |
| | | type: 1 |
| | | }).then(res => { |
| | | let data = res.data; |
| | | this.questionList = res.data; |
| | | let arr = [] |
| | |
| | | |
| | | |
| | | getItem() { |
| | | getPlaceCheckItem().then(res => { |
| | | getPlaceCheckItem({ |
| | | childType: 1, |
| | | type: 1 |
| | | }).then(res => { |
| | | let data = res.data; |
| | | this.questionList = res.data; |
| | | let arr = [] |
| | |
| | | |
| | | |
| | | getItem() { |
| | | getPlaceCheckItem().then(res => { |
| | | getPlaceCheckItem({ |
| | | childType: 1, |
| | | type: 1 |
| | | }).then(res => { |
| | | if (res.code == 200) { |
| | | this.itemList = res.data; |
| | | } |
| | |
| | | }, |
| | | |
| | | getItem() { |
| | | getPlaceCheckItem().then(res => { |
| | | getPlaceCheckItem({ |
| | | childType: 1, |
| | | type: 1 |
| | | }).then(res => { |
| | | if (res.code == 200) { |
| | | this.itemList = res.data; |
| | | } |
| | |
| | | |
| | | |
| | | getItem() { |
| | | getPlaceCheckItem().then(res => { |
| | | getPlaceCheckItem({ |
| | | childType: 1, |
| | | type: 1 |
| | | }).then(res => { |
| | | let data = res.data; |
| | | this.questionList = res.data; |
| | | let arr = [] |
| New file |
| | |
| | | <template> |
| | | <view class=""> |
| | | <view class="item-row flex j-c-s-b a-i-c"> |
| | | <text>场所名称</text> |
| | | <text class="item-content">{{info.placeName}}</text> |
| | | </view> |
| | | <!-- <view class="item-row flex j-c-s-b a-i-c"> |
| | | <text>标签</text> |
| | | <text>{{label || "未完善"}}</text> |
| | | </view> --> |
| | | <!-- <view class="item-row flex j-c-s-b a-i-c"> |
| | | <text>场所负责人</text> |
| | | <text>{{info.principal || "未完善"}}</text> |
| | | </view> |
| | | <view class="item-row flex j-c-s-b a-i-c"> |
| | | <text>场所负责人电话</text> |
| | | <text>{{info.principalPhone || "未完善"}}</text> |
| | | </view> |
| | | <view class="item-row flex j-c-s-b a-i-c"> |
| | | <text>检查人</text> |
| | | <text>{{info.name}}</text> |
| | | </view> --> |
| | | <view class="item-row flex j-c-s-b a-i-c"> |
| | | <text>时间</text> |
| | | <text>{{info.createTime}}</text> |
| | | </view> |
| | | <!-- <view class="item-row flex j-c-s-b a-i-c"> |
| | | <text>地址</text> |
| | | <text class="item-content">{{info.location}}</text> |
| | | </view> --> |
| | | |
| | | <view class="item-row flex j-c-s-b a-i-c"> |
| | | <text>状态</text> |
| | | <text v-if="info.status == 1">待审核</text> |
| | | <text v-if="info.status == 2">审核成功</text> |
| | | <text v-if="info.status == 3">审核驳回</text> |
| | | <text v-if="info.status == 4">待完成</text> |
| | | </view> |
| | | <view class="item-row flex j-c-s-b a-i-c" v-if="info.status == 3 && info.reasonFailure"> |
| | | <text>驳回原因</text> |
| | | <text class="item-content">{{info.reasonFailure}}</text> |
| | | </view> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | <view class="mt-20 bgc-ff"> |
| | | <block v-for="(item,index) in itemList"> |
| | | <block v-for="(i,k) in item.children"> |
| | | <block v-for="(n,m) in info.taskPlaceRecordVOList"> |
| | | <!-- <view class="item-row flex j-c-s-b a-i-c" v-if="i.id == n.itemId && n.state == 1"> |
| | | <text class="item-left">{{i.title}}</text> |
| | | <text>不存在</text> |
| | | </view> --> |
| | | <u-collapse :value="ids" v-if="i.id == n.itemId" ref="collapse"> |
| | | <u-collapse-item :name="n.itemId" :title="i.title" :disabled="true" :clickable="false" |
| | | :isLink="false"> |
| | | <view class="mb-20" v-if="n.imageUrls"> |
| | | <view class="f-26 mb-10 c-00">照片</view> |
| | | <view class="flex flex-wrap"> |
| | | <view class="mr-20" v-for="r in ($setImageUrl(n.imageUrls))"> |
| | | <u-image :src="r" width="140rpx" height="140rpx" |
| | | @click="previewImage($setImageUrl(n.imageUrls),i)"></u-image> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="mb-20" v-if="n.remark"> |
| | | <view class="f-26 mb-10 c-00">描述</view> |
| | | <view class="f-28 c-00"> |
| | | {{n.remark}} |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- <view class="mb-20" v-if="roleType == 2 || (roleType == 1 && n.rectificationImageUrls)"> |
| | | <view class="f-26 mb-10 c-00">整改后照片</view> |
| | | <u-upload v-if="roleType == 2 && (info.status == 4 || info.status == 3)" |
| | | :fileList="n.urls" :previewFullImage="uploadConfig.previewFullImage" |
| | | :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple" |
| | | :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" |
| | | @afterRead="afterReadImgs($event,n,m)" @delete="deleteImages($event,m)"> |
| | | <view class="upload-item upload-icon flex_base"> |
| | | <u-icon name="/static/icon/upload.png" width="60rpx" |
| | | height="60rpx"></u-icon> |
| | | </view> |
| | | </u-upload> |
| | | |
| | | |
| | | <view class="flex flex-wrap" v-if="info.status != 4 && n.rectificationImageUrls "> |
| | | <view class="mr-20" v-for="r in ($setImageUrl(n.rectificationImageUrls))"> |
| | | <u-image :src="r" width="140rpx" height="140rpx" |
| | | @click="previewImage($setImageUrl(n.rectificationImageUrls),i)"></u-image> |
| | | </view> |
| | | </view> |
| | | </view> --> |
| | | |
| | | <!-- <view class="" v-if="roleType == 2 || (roleType == 1 && n.rectificationRemark)"> |
| | | <view class="f-26 mb-10 c-00">整改后描述</view> |
| | | <u-textarea v-model="n.rectificationRemark" placeholder="请输入整改后描述" |
| | | placeholderClass="c-99 f-26" |
| | | :disabled="roleType == 2 && (info.status == 4 || info.status == 3)?false:true"></u-textarea> |
| | | </view> --> |
| | | |
| | | |
| | | |
| | | </u-collapse-item> |
| | | </u-collapse> |
| | | </block> |
| | | </block> |
| | | </block> |
| | | </view> |
| | | |
| | | <view class="blank"></view> |
| | | <!-- <footer-btn @click="submitInfo" v-if="roleType == 2 && (info.status == 4 || info.status == 3)" /> --> |
| | | <audit-action v-if="roleType == 1 && info.status == 1" @handle="submitAudit" /> |
| | | <footer-btn v-if="roleType == 2 && info.status == 3" text="重新提交" @click="navTo" /> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import uploadMixin from "@/mixin/uploadMixinPlace"; |
| | | import { |
| | | getPlaceCheckItem, |
| | | getPlaceCheckReformDetail, |
| | | addPlaceCheckReform, |
| | | auditPlaceCheckReform |
| | | } from '@/api/place/place.js' |
| | | |
| | | import { |
| | | getPlaceCheckDetail, |
| | | auditPlaceCheck |
| | | } from '@/api/reporting/reporting.js' |
| | | import { |
| | | getCounterfraudReportDetail |
| | | } from "@/api/counterfraud/counterfraud.js" |
| | | import auditAction from '../components/actionBtn.vue' |
| | | export default { |
| | | mixins: [uploadMixin], |
| | | components: { |
| | | auditAction |
| | | }, |
| | | data() { |
| | | return { |
| | | info: {}, |
| | | images: [], |
| | | signatureUrl: [], |
| | | label: "", |
| | | itemList: [], |
| | | roleType: '', //1.民警/系统管理员 2.场所负责人 |
| | | ids: [], |
| | | taskId: "", |
| | | id: "" |
| | | } |
| | | }, |
| | | async onLoad(option) { |
| | | let { |
| | | roleName |
| | | } = uni.getStorageSync("activeRole") |
| | | if (roleName == "居民") { |
| | | this.roleType = 2; |
| | | } |
| | | if (roleName == "民警" || roleName == "系统管理员") { |
| | | this.roleType = 1; |
| | | } |
| | | |
| | | await this.getItem(); |
| | | this.taskId = option.id; |
| | | this.id = option.id; |
| | | }, |
| | | |
| | | |
| | | onShow() { |
| | | setTimeout(() => { |
| | | this.getDetail(); |
| | | }, 100) |
| | | }, |
| | | |
| | | methods: { |
| | | |
| | | getDetail(id) { |
| | | getCounterfraudReportDetail({ |
| | | id: this.id |
| | | }).then(res => { |
| | | let data = res.data; |
| | | // this.info = res.data; |
| | | // this.images = this.$setImageUrl(res.data.imageUrls); |
| | | // this.signatureUrl = this.$setImageUrl(res.data.signaturePath); |
| | | // if (res.data.placePoiLabelVOList.length) { |
| | | // this.label = res.data.placePoiLabelVOList[res.data.placePoiLabelVOList.length - 1] |
| | | // .labelName; |
| | | // } |
| | | let ids = []; |
| | | for (let i of data.taskPlaceRecordVOList) { |
| | | if ((data.status == 4 || data.status == 3) && this.roleType == 2) { |
| | | if (i.rectificationImageUrls) { |
| | | i.urls = this.$setImageUrl(i.rectificationImageUrls, 2); |
| | | } else { |
| | | i.urls = []; |
| | | } |
| | | } |
| | | if (i.state == 0) { |
| | | ids.push(i.itemId) |
| | | } |
| | | } |
| | | this.ids = ids; |
| | | this.info = data; |
| | | }) |
| | | }, |
| | | |
| | | getItem() { |
| | | getPlaceCheckItem({ |
| | | childType: uni.getStorageSync("siteInfo").noExplosionCategory, |
| | | type: 2 |
| | | }).then(res => { |
| | | if (res.code == 200) { |
| | | this.itemList = res.data; |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | async afterReadImgs(event, item, fIndex) { |
| | | uni.showLoading({ |
| | | title: "上传中..." |
| | | }) |
| | | let children = this.info.taskPlaceRecordVOList; |
| | | let lists = [].concat(event.file) |
| | | let fileListLen = item.urls.length; |
| | | lists.map((item) => { |
| | | children[fIndex].urls.push({ |
| | | ...item, |
| | | status: 'uploading', |
| | | message: '上传中' |
| | | }) |
| | | this.$set(this.info, "taskPlaceRecordVOList", children) |
| | | }) |
| | | for (let i = 0; i < lists.length; i++) { |
| | | const result = await this.uploadFilePromise(lists[i].url) |
| | | children[fIndex].urls.splice(fileListLen, 1, Object.assign({}, { |
| | | url: result.data.link, |
| | | name: result.data.name |
| | | })) |
| | | this.$set(this.info, "taskPlaceRecordVOList", children) |
| | | fileListLen++ |
| | | } |
| | | this.loadingClose() |
| | | }, |
| | | |
| | | deleteImages(event, index) { |
| | | let children = this.info.taskPlaceRecordVOList; |
| | | children[index].urls.splice(event.index, 1); |
| | | this.$set(this.info, "taskPlaceRecordVOList", children) |
| | | }, |
| | | |
| | | setImages(key) { |
| | | if (!key) { |
| | | return "" |
| | | } else { |
| | | let urls = []; |
| | | for (let i of key) { |
| | | urls.push(i.name); |
| | | } |
| | | return urls.join(",") |
| | | } |
| | | }, |
| | | |
| | | previewImage(urls, current) { |
| | | uni.previewImage({ |
| | | urls, |
| | | current |
| | | }) |
| | | }, |
| | | |
| | | //整改提交 |
| | | submitInfo() { |
| | | uni.showLoading({ |
| | | title: "加载中..." |
| | | }) |
| | | let data = this.info; |
| | | for (let i of data.taskPlaceRecordVOList) { |
| | | if (i.urls) { |
| | | i.rectificationImageUrls = this.setImages(i.urls) |
| | | } |
| | | delete i.urls; |
| | | } |
| | | if (data.status == 3) { |
| | | data.status = 1; |
| | | } |
| | | if (data.status == 4) { |
| | | data.status = 1; |
| | | } |
| | | addPlaceCheckReform(data).then(res => { |
| | | uni.hideLoading() |
| | | if (res.code == 200) { |
| | | this.$showTips("操作成功", "success"); |
| | | setTimeout(() => { |
| | | uni.navigateBack() |
| | | }, 300) |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | //审核 |
| | | submitAudit(val) { |
| | | uni.showLoading({ |
| | | title: "加载中..." |
| | | }) |
| | | auditPlaceCheck({ |
| | | id: this.info.id, |
| | | taskId: this.info.taskId, |
| | | status: val.type, |
| | | rectificationFlag: val.type == 3 ? 1 : 2, |
| | | reasonFailure: val.remark |
| | | }).then(res => { |
| | | uni.hideLoading() |
| | | if (res.code == 200) { |
| | | this.$showTips("操作成功", "success"); |
| | | setTimeout(() => { |
| | | uni.navigateBack() |
| | | }, 300) |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | navTo() { |
| | | uni.navigateTo({ |
| | | url: `/subPackage/label/check?taskId=${this.info.taskId}` |
| | | }) |
| | | }, |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | page { |
| | | background-color: #f5f5f5; |
| | | } |
| | | |
| | | .item-row { |
| | | width: 100%; |
| | | padding: 30rpx; |
| | | box-sizing: border-box; |
| | | border-bottom: 1px solid #f5f5f5; |
| | | font-size: 28rpx; |
| | | background-color: #fff; |
| | | |
| | | .item-content { |
| | | width: 70%; |
| | | text-align: right; |
| | | } |
| | | |
| | | .item-left { |
| | | width: 70%; |
| | | } |
| | | } |
| | | |
| | | .image-wrap { |
| | | margin-top: 20rpx; |
| | | padding: 20rpx; |
| | | |
| | | .image-item { |
| | | margin-right: 20rpx; |
| | | } |
| | | } |
| | | |
| | | /deep/.u-cell__title-text { |
| | | color: #000 !important; |
| | | width: 70%; |
| | | font-size: 28rpx !important; |
| | | } |
| | | |
| | | /deep/ .u-cell__value { |
| | | color: #000 !important; |
| | | font-size: 28rpx !important; |
| | | } |
| | | |
| | | .mr-20 { |
| | | margin-right: 20rpx; |
| | | } |
| | | |
| | | .upload-item { |
| | | width: 140rpx; |
| | | height: 140rpx; |
| | | border: 1px solid #EEEEEE; |
| | | } |
| | | |
| | | .blank { |
| | | width: 100%; |
| | | height: 140rpx; |
| | | } |
| | | |
| | | .c-00 { |
| | | color: #000; |
| | | } |
| | | |
| | | /deep/ .u-collapse-item .u-collapse-item__content { |
| | | height: auto !important; |
| | | } |
| | | </style> |
| | |
| | | <view class="f-30" v-if="currentId">
|
| | | {{nineTypeValue}}
|
| | | </view>
|
| | |
|
| | | </u-form-item>
|
| | |
|
| | | <u-form-item label="阵地:" labelWidth="100" prop="isFront" :required="isRequired">
|
| | | <u-radio-group v-model="form.isFront" v-if="!currentId">
|
| | | <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in statusList"
|
| | |
| | | </u-radio-group>
|
| | | <view class="f-30" v-if="currentId">
|
| | | {{form.threeFireProtection == 1?"否":"是"}}
|
| | | </view>
|
| | | </u-form-item>
|
| | |
|
| | | <u-form-item class="form-item" labelWidth="100" label="无诈类别:" :required="isRequired"
|
| | | :disabled="isDisabled" prop="noExplosionCategory">
|
| | | <view class="flex j-c-s-b a-i-c" v-if="!currentId" @click="showNotSwindleTypePicker= true">
|
| | | <u-input border="none" v-model="notSwindleValue" disabled disabledColor="#ffffff"
|
| | | placeholder="请选择">
|
| | | </u-input>
|
| | | <u-icon slot="right" name="arrow-right"></u-icon>
|
| | | </view>
|
| | | <view class="f-30" v-if="currentId">
|
| | | {{notSwindleValue}}
|
| | | </view>
|
| | | </u-form-item>
|
| | |
|
| | |
| | | <view class="box-title" style="width:50%;">
|
| | | <box-title title="负责人信息"></box-title>
|
| | | </view>
|
| | | <ocr-navigator v-if="!currentId" @onSuccess="recognizeSuccess($event,'legal')"
|
| | | <ocr-navigator v-if="!currentId" @onSuccess="recognizeSuccess($event,'principal')"
|
| | | certificateType="idCard" :opposite="false">
|
| | | <view class="recognize-btn flex a-i-c">
|
| | | <u-icon name="scan" color="#fff" size="24"></u-icon>
|
| | |
| | | @close="showGenderPicker = false" @cancel="showGenderPicker = false" keyName="name"
|
| | | @confirm="confirmGender"></u-picker>
|
| | |
|
| | |
|
| | | <u-picker :defaultIndex="notSwindleTypeIndex" :closeOnClickOverlay="true" :show="showNotSwindleTypePicker"
|
| | | :columns="[notSwindleTypeList]" @close="showNotSwindleTypePicker = false"
|
| | | @cancel="showNotSwindleTypePicker = false" keyName="name" @confirm="confirmNotSwindleType"></u-picker>
|
| | |
|
| | |
|
| | | <cate-selector ref="selector" @comfirm="comfirmNineType" />
|
| | | </view>
|
| | | </template>
|
| | |
| | | frontType: "",
|
| | | nineType: "",
|
| | | threeFireProtection: "",
|
| | | noExplosionCategory: "",
|
| | | placeExtEntity: {
|
| | | landlordName: "",
|
| | | landlordIdCard: "",
|
| | |
| | | frontTypeValue: "",
|
| | | isView: false,
|
| | | source: "",
|
| | |
|
| | | nationTypeList: [], //民族
|
| | | nationTypeIndex: [0],
|
| | | nationValue: "",
|
| | |
| | | showGenderPicker: false,
|
| | | personNum: 0,
|
| | | personNumArr: [],
|
| | | isLegalSame: 1 //法人信息是否与负责人一致 1是 2否
|
| | | isLegalSame: 1, //法人信息是否与负责人一致 1是 2否
|
| | | notSwindleTypeList: [],
|
| | | notSwindleIndex: [0],
|
| | | notSwindleValue: "",
|
| | | showNotSwindleTypePicker: false
|
| | | }
|
| | | },
|
| | |
|
| | |
| | | await this.getBizDict('frontType', this.frontTypeList)
|
| | | // 获取民族
|
| | | await this.getBizDict('nationType', this.nationTypeList);
|
| | | //反诈类别
|
| | | await this.getBizDict('noExplosionCategory', this.notSwindleTypeList);
|
| | | },
|
| | |
|
| | | // 获取业务字典
|
| | |
| | | this.nationValue = name;
|
| | | }
|
| | |
|
| | |
|
| | | if (key == "noExplosionCategory" && data.noExplosionCategory) {
|
| | | let {
|
| | | index,
|
| | | name
|
| | | } = this.$getIndex(this.notSwindleTypeList, data.noExplosionCategory, "value",
|
| | | "name")
|
| | | this.notSwindleIndex = [index];
|
| | | this.notSwindleValue = name;
|
| | | }
|
| | | })
|
| | | this.$set(this.form, "jwd", `${Number(data.lng).toFixed(6)},${Number(data.lat).toFixed(6)}`)
|
| | | this.form.building = arr.join("")
|
| | |
| | | this.showGenderPicker = false;
|
| | | },
|
| | |
|
| | | //选择无诈类别
|
| | | confirmNotSwindleType(e) {
|
| | | this.notSwindleIndex = e.indexs;
|
| | | this.notSwindleValue = e.value[0].name;
|
| | | this.form.noExplosionCategory = e.value[0].value;
|
| | | this.showNotSwindleTypePicker = false;
|
| | | },
|
| | |
|
| | |
|
| | | //弹出层打开
|
| | | popup() {
|
| | |
| | | }, |
| | | |
| | | getItem() { |
| | | getPlaceCheckItem().then(res => { |
| | | getPlaceCheckItem({ |
| | | childType: 1, |
| | | type: 1 |
| | | }).then(res => { |
| | | if (res.code == 200) { |
| | | this.itemList = res.data; |
| | | } |