15 files modified
3 files added
| | |
| | | return http.request({ |
| | | url: '/blade-gridPatrolRecord/gridPatrolRecord/save', |
| | | method: 'POST', |
| | | data:data |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | //巡查记录 |
| | | export const getPartrolList = (params) => { |
| | | return http.request({ |
| | | url: '/blade-gridPatrolRecord/gridPatrolRecord/page', |
| | | method: 'get', |
| | | params: { |
| | | ...params, |
| | | } |
| | | }) |
| | | } |
| | | |
| | | |
| | | //巡查详情 |
| | | export const getPartrolDetail = (params) => { |
| | | return http.request({ |
| | | url: '/blade-gridPatrolRecord/gridPatrolRecord/detail', |
| | | method: 'get', |
| | | params: { |
| | | ...params, |
| | | } |
| | | }) |
| | | } |
| | | |
| | |
| | | ...params, |
| | | current, |
| | | size, |
| | | } |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 获取组 |
| | | */ |
| | | export const getPatrolGroupDTO = (taskId) => { |
| | | return http.request({ |
| | | url: '/api/blade-sm/patrol/patrolGroup/getPatrolGroupDTO', |
| | | method: 'get', |
| | | params: { |
| | | taskId |
| | | } |
| | | }) |
| | | } |
| | |
| | | }) |
| | | } |
| | | |
| | | export const sendCode = (params) => { |
| | | return http.request({ |
| | | url: '/blade-smsSend/smsSend/send', |
| | | method: 'get', |
| | | params: { |
| | | ...params |
| | | } |
| | | }) |
| | | } |
| | |
| | | version: '2.0.0', |
| | | // 开发环境接口Url |
| | | // devUrl: 'http://z4042833u6.wicp.vip', |
| | | devUrl: 'http://192.168.2.111:9528', |
| | | // devUrl: 'https://srgdjczzxtpt.com:2080/api', |
| | | // devUrl: 'http://192.168.2.111:9528', |
| | | devUrl: 'https://srgdjczzxtpt.com:2080/api', |
| | | // devUrl: 'https://kt39592615.goho.co', |
| | | minioBaseUrl: "https://srgdjczzxtpt.com:2080/gminio/jczz/", |
| | | // minioBaseUrl: "http://192.168.0.101:9528/", |
| | |
| | | // 登录失效code |
| | | invalidCode: 401, |
| | | // 客户端ID |
| | | clientId: 'rider', |
| | | clientId: 'jczz', |
| | | // 客户端密钥 |
| | | clientSecret: 'rider_secret', |
| | | clientSecret: 'jczz_secret_FaXfddsafRsfjlsdf2A12412', |
| | | // token过期时间(秒) |
| | | // 30天 30*24*60*60 |
| | | tokenTime: 2592000, |
| | |
| | | "enablePullDownRefresh": false |
| | | } |
| | | } |
| | | |
| | | ] |
| | | }, |
| | | |
| | | //网格巡查 |
| | | { |
| | | "root": "subPackage/patrol", |
| | | "pages": [{ |
| | | "path": "list", |
| | | "style": { |
| | | "navigationBarTitleText": "巡查记录 ", |
| | | "navigationBarBackgroundColor": "#fff", |
| | | "navigationBarTextStyle": "black", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "detail", |
| | | "style": { |
| | | "navigationBarTitleText": "巡查详情 ", |
| | | "navigationBarBackgroundColor": "#fff", |
| | | "navigationBarTextStyle": "black", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | } |
| | | ] |
| | | }, |
| | | |
| | | //走访日志 |
| | | { |
| | | "root": "subPackage/workLog", |
| | | "pages": [{ |
| | | "path": "list", |
| | | "style": { |
| | | "navigationBarTitleText": "走访记录 ", |
| | | "navigationBarBackgroundColor": "#fff", |
| | | "navigationBarTextStyle": "black", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }] |
| | | } |
| | | |
| | | |
| | | ], |
| | | "globalStyle": { |
| | | "navigationBarTextStyle": "black", |
| | |
| | | // immediate: true
|
| | | },
|
| | |
|
| | | // isBailer(newVal, oldVal) {
|
| | | isBailer(newVal, oldVal) {
|
| | |
|
| | | // if (newVal == true) {
|
| | | // this.tabs.splice(1, 0, {
|
| | | // name: '警务服务',
|
| | | // list: [{
|
| | | // icon: "/static/icon/nav-11.png",
|
| | | // text: "取保候审",
|
| | | // path: '/subPackage/label/bail'
|
| | | // }]
|
| | | // })
|
| | | // }
|
| | | if (newVal == true) {
|
| | | this.tabs.splice(1, 0, {
|
| | | name: '警务服务',
|
| | | list: [{
|
| | | icon: "/static/icon/nav-11.png",
|
| | | text: "取保候审",
|
| | | path: '/subPackage/label/bail'
|
| | | }]
|
| | | })
|
| | | }
|
| | |
|
| | | // immediate: true
|
| | | // }
|
| | | immediate: true
|
| | | }
|
| | |
|
| | |
|
| | | },
|
| | |
| | | let index3 = arr.findIndex(item => item.name.trim() == "取保监居")
|
| | | if (index3 != -1) {
|
| | | console.log(uni.getStorageSync("activeRole").roleName, 11111);
|
| | | // this.isBailer = true;
|
| | | this.isBailer = true;
|
| | |
|
| | | this.tabs.splice(1, 0, {
|
| | | name: '警务服务',
|
| | | list: [{
|
| | | icon: "/static/icon/nav-11.png",
|
| | | text: "取保监居",
|
| | | path: '/subPackage/label/bail'
|
| | | }]
|
| | | })
|
| | | // this.tabs.splice(1, 0, {
|
| | | // name: '警务服务',
|
| | | // list: [{
|
| | | // icon: "/static/icon/nav-11.png",
|
| | | // text: "取保监居",
|
| | | // path: '/subPackage/label/bail'
|
| | | // }]
|
| | | // })
|
| | |
|
| | | } else {
|
| | | this.isBailer = false;
|
| | | let itemIndex = this.tabs.findIndex(item => item.name.trim() == "警务服务")
|
| | | if (itemIndex != -1) {
|
| | | this.tabs.splice(itemIndex, 1);
|
| | | }
|
| | |
|
| | | }
|
| | | // } else {
|
| | | // this.isBailer = false;
|
| | | // }
|
| | | return;
|
| | |
|
| | | let index = this.getLiveMenuItem(arr, 1)
|
| | |
| | | this.currentSite = data; |
| | | for (let i = 0, ii = this.list.length; i < ii; i++) { |
| | | for (let k = 0, kk = this.list[i].children.length; k < kk; k++) { |
| | | if (this.list[i].children[k].name == data.name) { |
| | | if (this.list[i].children[k].id == data.id) { |
| | | this.selectIndex = i; |
| | | this.cateName = this.list[i].name; |
| | | uni.setStorageSync("curStreet", this.list[i].name); |
| | |
| | | </view> |
| | | </view> |
| | | <view class="cell-box" v-if="isLogin"> |
| | | <u-cell-group :border="false" icon="star" :customStyle="{fontSize:'26rpx',color:'#585b61'}"> |
| | | <u-cell-group :border="false" icon="star" :customStyle="{fontSize:'30rpx',color:'#585b61'}"> |
| | | <u-cell v-if="roleType == 1" title="切换角色" isLink url="/subPackage/user/role/index"> |
| | | <image slot="icon" src="/static/icon/menu-center-02.png" class="icon" mode=""></image> |
| | | </u-cell> |
| | |
| | | border: 1px solid currentColor; |
| | | text-align: center; |
| | | position: fixed; |
| | | bottom: 150rpx; |
| | | bottom: 175rpx; |
| | | left: calc((100% - 690rpx)/2); |
| | | } |
| | | </style> |
| | |
| | | } |
| | | if (uni.getStorageSync("siteInfo").addressType == 1 || roleName == "居民") { |
| | | param.labelType = uni.getStorageSync("siteInfo").addressType; |
| | | |
| | | param.houseCode = uni.getStorageSync("siteInfo").houseCode; |
| | | } |
| | | param.roleName = roleName; |
| | | console.log("===>", param); |
| | | dynamicMenu(param).then(res => { |
| | | if (res.code == 200) { |
| | | let data = res.data; |
| | |
| | | <view class='flex a-i-c login-input'> |
| | | <input class='f-30 c-33' type='number' placeholder='请输入验证码' v-model="validationCode" |
| | | placeholder-class='c-aa f-28'></input> |
| | | <button class='login-input-btn f-24 c-33' @click='getValidationCode'>{{text}}</button> |
| | | <button class='login-input-btn f-24 c-33' :disabled="!validationCode?true:false" |
| | | @click='getValidationCode'>{{text}}</button> |
| | | </view> |
| | | <!-- <button class='login-btn c-ff f-30' :class='validationCode?"bgc-main":""' |
| | | :disabled="validationCode?false:true">确定</button> --> |
| | |
| | | import { |
| | | minioBaseUrl |
| | | } from "@/common/setting.js" |
| | | |
| | | import { |
| | | sendCode |
| | | } from "@/api/system/index.js" |
| | | |
| | | export default { |
| | | components: { |
| | | tagCell, |
| | |
| | | // } |
| | | }, |
| | | |
| | | voteRequest(signPath) { |
| | | voteRequest(signPath, code) { |
| | | let data = this.getParams(signPath) |
| | | uni.showLoading({ |
| | | title: "加载中..." |
| | | }); |
| | | communityModel.addVoteOperate(data).then(res => { |
| | | communityModel.addVoteOperate({ |
| | | phone: uni.getStorageSync("userInfo").phone, |
| | | code: code ? code : this.validationCode, |
| | | children: data |
| | | }).then(res => { |
| | | uni.hideLoading() |
| | | if (res.code == 200) { |
| | | uni.showToast({ |
| | |
| | | // } |
| | | // this.sendValidationCode(); |
| | | let second = 60; |
| | | let time = setInterval(() => { |
| | | second-- |
| | | this.text = `${second}秒后获取` |
| | | if (second == 0 || this.data.isLogin) { |
| | | clearInterval(time); |
| | | this.text = "获取验证码"; |
| | | |
| | | sendCode({ |
| | | phone: uni.getStorageSync("userInfo").phone, |
| | | }).then(res => { |
| | | if (res.code == 200) { |
| | | let time = setInterval(() => { |
| | | second-- |
| | | this.text = `${second}秒后获取` |
| | | if (second == 0 || this.data.isLogin) { |
| | | clearInterval(time); |
| | | this.text = "获取验证码"; |
| | | } |
| | | }, 1000) |
| | | } |
| | | }, 1000) |
| | | }) |
| | | }, |
| | | |
| | | sendValidationCode() { |
| | | |
| | | }, |
| | | |
| | | navToDocument(url) { |
| | | |
| | |
| | | <view class='flex a-i-c login-input'> |
| | | <input class='f-30 c-33' type='number' placeholder='请输入验证码' v-model="validationCode" |
| | | placeholder-class='c-aa f-28'></input> |
| | | <button class='login-input-btn f-24 bgc-ff c-33' @click='getValidationCode'>{{text}}</button> |
| | | <button class='login-input-btn f-24 bgc-ff c-33' :disabled="!validationCode?true:false" |
| | | @click='getValidationCode'>{{text}}</button> |
| | | </view> |
| | | <!-- <button class='login-btn c-ff f-30' :class='validationCode?"bgc-main":""' |
| | | :disabled="validationCode?false:true">确定</button> --> |
| | |
| | | clientSecret, |
| | | minioBaseUrl |
| | | } from '@/common/setting' |
| | | |
| | | import { |
| | | sendCode |
| | | } from "@/api/system/index.js" |
| | | export default { |
| | | data() { |
| | | return { |
| | |
| | | confirmValidationCode() { |
| | | let pages = getCurrentPages(); |
| | | let prePage = pages[pages.length - 2]; |
| | | prePage.$vm.voteRequest(this.imgSrc); |
| | | prePage.$vm.voteRequest(this.imgSrc, this.validationCode); |
| | | this.isShowPopup = false; |
| | | uni.navigateBack({ |
| | | delta: 2 |
| | |
| | | // } |
| | | // this.sendValidationCode(); |
| | | let second = 60; |
| | | let time = setInterval(() => { |
| | | second-- |
| | | this.text = `${second}秒后获取` |
| | | if (second == 0 || this.data.isLogin) { |
| | | clearInterval(time); |
| | | this.text = "获取验证码"; |
| | | sendCode({ |
| | | phone: uni.getStorageSync("userInfo").phone, |
| | | }).then(res => { |
| | | if (res.code == 200) { |
| | | let time = setInterval(() => { |
| | | second-- |
| | | this.text = `${second}秒后获取` |
| | | if (second == 0 || this.data.isLogin) { |
| | | clearInterval(time); |
| | | this.text = "获取验证码"; |
| | | } |
| | | }, 1000) |
| | | } |
| | | }, 1000) |
| | | }) |
| | | }, |
| | | |
| | | |
| | |
| | | current: 1, |
| | | size: 10, |
| | | isPerfect: 2, |
| | | placeName: this.placeName |
| | | placeName: this.placeName, |
| | | isNine: 1 |
| | | }).then(res => { |
| | | this.placeList = res.data.records; |
| | | }) |
| | |
| | | reportType: 1 |
| | | }, |
| | | rules: { |
| | | 'info.checkUserName': { |
| | | checkUserName: [{ |
| | | type: 'string', |
| | | required: true, |
| | | message: '请输入姓名', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | 'info.checkTelephone': [{ |
| | | }], |
| | | checkTelephone: [{ |
| | | type: 'number', |
| | | required: true, |
| | | message: '请输入手机', |
| | |
| | | } |
| | | |
| | | ], |
| | | 'info.applyName': { |
| | | applyName: [{ |
| | | type: 'string', |
| | | required: true, |
| | | message: '请输入事由', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | 'info.applyTime': { |
| | | }], |
| | | applyTime: [{ |
| | | type: 'string', |
| | | required: true, |
| | | message: '请输入选择时间', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | 'info.location': { |
| | | }], |
| | | location: [{ |
| | | type: 'string', |
| | | required: true, |
| | | message: '请输入位置', |
| | | trigger: ['blur', 'change'] |
| | | } |
| | | }] |
| | | }, |
| | | showSelectDate: false, |
| | | applyTime: Number(new Date()), |
| | |
| | | this.$set(this.info, "checkUserName", userInfo.real_name); |
| | | this.$set(this.info, "checkTelephone", userInfo.phone); |
| | | this.$set(this.info, "checkUserId", userInfo.user_id); |
| | | this.$set(this.info, "applyTime", uni.$u.timeFormat(Number(new Date()), 'yyyy-mm-dd hh:MM:ss')) |
| | | }, |
| | | |
| | | onReady() { |
| | |
| | | }, |
| | | |
| | | updateRequest() { |
| | | this.info.applyTime = Number(new Date(res.data.applyTime)); |
| | | // this.info.applyTime = Number(new Date(res.data.applyTime)); |
| | | updateBailReporting(this.info).then(res => { |
| | | uni.showToast({ |
| | | icon: 'success', |
| New file |
| | |
| | | <template> |
| | | <view class=""> |
| | | <view class="bgc-ff"> |
| | | <view class="item-row flex j-c-s-b a-i-c"> |
| | | <text>巡查标题</text> |
| | | <text>{{detail.name}}</text> |
| | | </view> |
| | | <view class="item-row flex j-c-s-b a-i-c"> |
| | | <text>巡查位置</text> |
| | | <text class="address">{{detail.location}}</text> |
| | | </view> |
| | | <view class="item-row flex j-c-s-b a-i-c" v-if="detail.context"> |
| | | <text>巡查内容</text> |
| | | <text class="address">{{detail.context}}</text> |
| | | </view> |
| | | |
| | | <view class="item-row flex j-c-s-b a-i-c"> |
| | | <text>巡查时间</text> |
| | | <text>{{detail.patrolTime}}</text> |
| | | </view> |
| | | </view> |
| | | <!-- <view class="box bgc-ff" v-if="detail.context"> |
| | | <view class="caption f-28"> |
| | | 巡查内容 |
| | | </view> |
| | | <view class="f-30"> |
| | | {{detail.context}} |
| | | </view> |
| | | </view> --> |
| | | <view class="box bgc-ff" v-if="images.length"> |
| | | <view class="caption f-28"> |
| | | 巡查照片 |
| | | </view> |
| | | <u-album :urls="images" singleSize="100" multipleSize="100"></u-album> |
| | | </view> |
| | | </view> |
| | | |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getPartrolDetail |
| | | } from "@/api/patrol/patrol.js" |
| | | import { |
| | | minioBaseUrl |
| | | } from "@/common/setting.js" |
| | | export default { |
| | | data() { |
| | | return { |
| | | detail: {}, |
| | | images: [] |
| | | } |
| | | }, |
| | | |
| | | onLoad(option) { |
| | | this.getDetail(option.id) |
| | | }, |
| | | |
| | | methods: { |
| | | getDetail(id) { |
| | | getPartrolDetail({ |
| | | id |
| | | }).then(res => { |
| | | this.detail = res.data; |
| | | if (res.data.url) { |
| | | this.images = this.setImageUrl(res.data.url); |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | setImageUrl(str) { |
| | | let urls = str.split(",") |
| | | let temp = []; |
| | | for (let i of urls) { |
| | | temp.push(`${minioBaseUrl}${i}`) |
| | | } |
| | | return temp |
| | | } |
| | | } |
| | | } |
| | | </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; |
| | | } |
| | | |
| | | .address { |
| | | width: 70%; |
| | | text-align: right; |
| | | } |
| | | |
| | | .box { |
| | | padding: 0 30rpx 30rpx; |
| | | margin-top: 20rpx; |
| | | } |
| | | |
| | | .caption { |
| | | padding: 30rpx 0; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="container"> |
| | | <z-paging ref="paging" v-model="dataList" @query="queryList" :refresher-enabled="false" |
| | | loading-more-no-more-text="没有更多了" :hide-empty-view="true"> |
| | | <view class="list"> |
| | | <view class="list-item bgc-ff mb-20" v-for="item in dataList" :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">{{item.name}}</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.createTime }}</text> |
| | | </view> |
| | | <view class="item-row flex a-i-c j-c-s-b"> |
| | | <text class="f-28">巡查位置</text> |
| | | <text class="address f-28 c-66">{{ item.location}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </z-paging> |
| | | <view v-if="!dataList.length"> |
| | | <u-empty marginTop="50%" mode="list"></u-empty> |
| | | </view> |
| | | |
| | | <!-- <u-loading-page :loading="loadingPage"></u-loading-page> |
| | | <u-loading-icon :show="loadingIcon"></u-loading-icon> --> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getPartrolList |
| | | } from '@/api/patrol/patrol.js' |
| | | export default { |
| | | data() { |
| | | return { |
| | | dataList: [], |
| | | page: { |
| | | current: 1, |
| | | size: 10 |
| | | }, |
| | | loadingPage: false, |
| | | loadingIcon: false, |
| | | query: { |
| | | createUser: uni.getStorageSync("userInfo").user_id, |
| | | type: "", |
| | | } |
| | | } |
| | | }, |
| | | |
| | | onLoad(option) { |
| | | |
| | | // this.query.type = option.type |
| | | |
| | | |
| | | // this.getList() |
| | | }, |
| | | // onReachBottom() { |
| | | // this.page.current += 1 |
| | | // this.getList() |
| | | // }, |
| | | methods: { |
| | | |
| | | |
| | | |
| | | |
| | | queryList(pageNo, pageSize) { |
| | | getPartrolList({ |
| | | current: pageNo, |
| | | size: pageSize, |
| | | }).then(res => { |
| | | this.$refs.paging.complete(res.data.records); |
| | | }) |
| | | }, |
| | | |
| | | |
| | | getList() { |
| | | |
| | | this.page.current == 1 ? this.loadingPage = true : this.loadingIcon = true |
| | | |
| | | console.log(this.userInfo) |
| | | let param = {} |
| | | |
| | | getPage(Object.assign(param, this.query, this.page)).then(res => { |
| | | let data = res.data.records |
| | | this.dataList = this.dataList.concat(data) |
| | | this.page.current == 1 ? this.loadingPage = false : this.loadingIcon = false |
| | | }) |
| | | }, |
| | | |
| | | pushPage(id) { |
| | | |
| | | this.$u.func.globalNavigator(`detail?id=${id}`) |
| | | } |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | page { |
| | | width: 100%; |
| | | height: 100%; |
| | | background-color: #F5F5F5; |
| | | } |
| | | |
| | | .container { |
| | | // position: relative; |
| | | width: 100%; |
| | | height: 100%; |
| | | // display: flex; |
| | | // flex-direction: column; |
| | | // background: #F9F9FA; |
| | | |
| | | |
| | | |
| | | .item { |
| | | background-color: #ffffff; |
| | | padding: 40rpx 20rpx; |
| | | margin-top: 20rpx; |
| | | |
| | | .line { |
| | | display: flex; |
| | | font-size: 28rpx; |
| | | padding: 6rpx; |
| | | |
| | | .label { |
| | | color: #a4a4a4; |
| | | width: 25%; |
| | | } |
| | | |
| | | .value {} |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | .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: 75%; |
| | | text-align: right; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | </view> |
| | | <view class="item-row flex j-c-s-b a-i-c"> |
| | | <text>内容</text> |
| | | <text class="item-content">{{info.context}}</text> |
| | | <text class="item-content">{{info.context || "" }}</text> |
| | | </view> |
| | | <view class="item-row flex j-c-s-b a-i-c"> |
| | | <text>走访时间</text> |
| | | <text>{{info.workTime}}</text> |
| | | <text>{{info.workTime || ""}}</text> |
| | | </view> |
| | | |
| | | <view class="image-wrap bgc-ff"> |
| | | <view class="image-wrap bgc-ff" v-if="Image.length"> |
| | | <view class="mb-20"> |
| | | 走访图片 |
| | | </view> |
| New file |
| | |
| | | <template> |
| | | <view class="container"> |
| | | <z-paging ref="paging" v-model="dataList" @query="queryList" :refresher-enabled="false" |
| | | loading-more-no-more-text="没有更多了" :hide-empty-view="true"> |
| | | <view class="list"> |
| | | <view class="list-item bgc-ff mb-20" v-for="item in dataList" :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">{{item.name}}</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.createTime }}</text> |
| | | </view> |
| | | <view class="item-row flex a-i-c j-c-s-b"> |
| | | <text class="f-28">地址</text> |
| | | <text class="address f-28 c-66">{{ item.address}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </z-paging> |
| | | <view v-if="!dataList.length"> |
| | | <u-empty marginTop="50%" mode="list"></u-empty> |
| | | </view> |
| | | |
| | | <!-- <u-loading-page :loading="loadingPage"></u-loading-page> |
| | | <u-loading-icon :show="loadingIcon"></u-loading-icon> --> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getWorkLogList |
| | | } from "@/api/workLog/workLog.js" |
| | | export default { |
| | | data() { |
| | | return { |
| | | dataList: [], |
| | | page: { |
| | | current: 1, |
| | | size: 10 |
| | | }, |
| | | loadingPage: false, |
| | | loadingIcon: false, |
| | | query: { |
| | | createUser: uni.getStorageSync("userInfo").user_id, |
| | | type: "", |
| | | } |
| | | } |
| | | }, |
| | | |
| | | onLoad(option) { |
| | | |
| | | // this.query.type = option.type |
| | | |
| | | |
| | | // this.getList() |
| | | }, |
| | | // onReachBottom() { |
| | | // this.page.current += 1 |
| | | // this.getList() |
| | | // }, |
| | | methods: { |
| | | |
| | | |
| | | |
| | | |
| | | queryList(pageNo, pageSize) { |
| | | getWorkLogList({ |
| | | current: pageNo, |
| | | size: pageSize, |
| | | }).then(res => { |
| | | this.$refs.paging.complete(res.data.records); |
| | | }) |
| | | }, |
| | | |
| | | |
| | | getList() { |
| | | |
| | | this.page.current == 1 ? this.loadingPage = true : this.loadingIcon = true |
| | | |
| | | console.log(this.userInfo) |
| | | let param = {} |
| | | |
| | | getPage(Object.assign(param, this.query, this.page)).then(res => { |
| | | let data = res.data.records |
| | | this.dataList = this.dataList.concat(data) |
| | | this.page.current == 1 ? this.loadingPage = false : this.loadingIcon = false |
| | | }) |
| | | }, |
| | | |
| | | pushPage(id) { |
| | | this.$u.func.globalNavigator(`/subPackage/task/workLogDetail?id=${id}`) |
| | | } |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | page { |
| | | width: 100%; |
| | | height: 100%; |
| | | background-color: #F5F5F5; |
| | | } |
| | | |
| | | .container { |
| | | // position: relative; |
| | | width: 100%; |
| | | height: 100%; |
| | | // display: flex; |
| | | // flex-direction: column; |
| | | // background: #F9F9FA; |
| | | |
| | | |
| | | |
| | | .item { |
| | | background-color: #ffffff; |
| | | padding: 40rpx 20rpx; |
| | | margin-top: 20rpx; |
| | | |
| | | .line { |
| | | display: flex; |
| | | font-size: 28rpx; |
| | | padding: 6rpx; |
| | | |
| | | .label { |
| | | color: #a4a4a4; |
| | | width: 25%; |
| | | } |
| | | |
| | | .value {} |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | .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: 75%; |
| | | text-align: right; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <button class="footer-btn" @click="submitInfo">提交</button> |
| | | </view> --> |
| | | |
| | | <footer-btn @click="submitInfo"></footer-btn> |
| | | <!-- <footer-btn @click="submitInfo"></footer-btn> --> |
| | | |
| | | <button class="submit-btn" @click="sumitInfo">提交</button> |
| | | <button class="list-btn" @click="navToRecord">巡查记录</button> |
| | | |
| | | |
| | | |
| | | </view> |
| | |
| | | }) |
| | | }) |
| | | }) |
| | | }, |
| | | navToRecord() { |
| | | uni.navigateTo({ |
| | | url: '/subPackage/patrol/list' |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | background-color: #fff; |
| | | text-align: center; |
| | | } |
| | | |
| | | |
| | | .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> |
| | |
| | | @cancel="isShowTypePicker = false" @confirm="confirmType()" keyName="dictValue"></u-picker> |
| | | <u-picker :show="isShowLabelPicker" :columns="labelList" :defaultIndex="labelIndex" |
| | | @cancel="isShowLabelPicker = false" @confirm="confirmLabelType()" keyName="name"></u-picker> |
| | | <footer-btn @click="submitInfo" :text="isEdit?'保存':'提交'" /> |
| | | |
| | | <!-- <footer-btn @click="submitInfo" :text="isEdit?'保存':'提交'" /> --> |
| | | |
| | | <button class="submit-btn" @click="sumitInfo">{{isEdit?"保存":"提交"}}</button> |
| | | <button class="list-btn" @click="navToRecord">走访记录</button> |
| | | |
| | | |
| | | <u-popup :show="isShowPopup" mode="bottom" :round="10" closeable="true" @close="isShowPopup = false"> |
| | | <view class="popup-content"> |
| | |
| | | uni.navigateBack(); |
| | | }, |
| | | |
| | | |
| | | navToRecord() { |
| | | uni.navigateTo({ |
| | | url: "/subPackage/workLog/list" |
| | | }) |
| | | } |
| | | |
| | | } |
| | | } |
| | | </script> |
| | |
| | | font-size: 28rpx; |
| | | padding: 2rpx 10rpx; |
| | | } |
| | | |
| | | .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> |