Lou
2024-03-29 bd87e01aefaeb972f8d980a563773249f9e9e639
更新
15 files modified
3 files added
759 ■■■■ changed files
api/patrol/patrol.js 38 ●●●●● patch | view | raw | blame | history
api/system/index.js 9 ●●●●● patch | view | raw | blame | history
common/setting.js 8 ●●●● patch | view | raw | blame | history
pages.json 41 ●●●●● patch | view | raw | blame | history
pages/home/index.vue 55 ●●●● patch | view | raw | blame | history
pages/home/selectSite.vue 2 ●●● patch | view | raw | blame | history
pages/user/center.vue 4 ●●●● patch | view | raw | blame | history
store/index.js 3 ●●●● patch | view | raw | blame | history
subPackage/article/detail.vue 40 ●●●●● patch | view | raw | blame | history
subPackage/article/signature.vue 29 ●●●●● patch | view | raw | blame | history
subPackage/house/houseNumber/siteInspect.vue 3 ●●●● patch | view | raw | blame | history
subPackage/label/bail.vue 21 ●●●● patch | view | raw | blame | history
subPackage/patrol/detail.vue 109 ●●●●● patch | view | raw | blame | history
subPackage/patrol/list.vue 161 ●●●●● patch | view | raw | blame | history
subPackage/task/workLogDetail.vue 6 ●●●● patch | view | raw | blame | history
subPackage/workLog/list.vue 160 ●●●●● patch | view | raw | blame | history
subPackage/workbench/views/patrol.vue 34 ●●●●● patch | view | raw | blame | history
subPackage/workbench/views/workLog.vue 36 ●●●●● patch | view | raw | blame | history
api/patrol/patrol.js
@@ -5,7 +5,30 @@
    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,
        }
    })
}
@@ -131,19 +154,6 @@
            ...params,
            current,
            size,
        }
    })
}
/**
 * 获取组
 */
export const getPatrolGroupDTO = (taskId) => {
    return http.request({
        url: '/api/blade-sm/patrol/patrolGroup/getPatrolGroupDTO',
        method: 'get',
        params: {
            taskId
        }
    })
}
api/system/index.js
@@ -34,3 +34,12 @@
    })
}
export const sendCode = (params) => {
    return http.request({
        url: '/blade-smsSend/smsSend/send',
        method: 'get',
        params: {
            ...params
        }
    })
}
common/setting.js
@@ -10,8 +10,8 @@
    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/",
@@ -33,9 +33,9 @@
    // 登录失效code
    invalidCode: 401,
    // 客户端ID
    clientId: 'rider',
    clientId: 'jczz',
    // 客户端密钥
    clientSecret: 'rider_secret',
    clientSecret: 'jczz_secret_FaXfddsafRsfjlsdf2A12412',
    // token过期时间(秒)
    // 30天 30*24*60*60
    tokenTime: 2592000,
pages.json
@@ -1074,9 +1074,48 @@
                        "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",
pages/home/index.vue
@@ -721,21 +721,21 @@
                // 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
            }
        },
@@ -1074,20 +1074,25 @@
                    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)
pages/home/selectSite.vue
@@ -153,7 +153,7 @@
                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);
pages/user/center.vue
@@ -38,7 +38,7 @@
            </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>
@@ -392,7 +392,7 @@
        border: 1px solid currentColor;
        text-align: center;
        position: fixed;
        bottom: 150rpx;
        bottom: 175rpx;
        left: calc((100% - 690rpx)/2);
    }
</style>
store/index.js
@@ -149,10 +149,9 @@
                }
                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;
subPackage/article/detail.vue
@@ -187,7 +187,8 @@
                <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> -->
@@ -210,6 +211,11 @@
    import {
        minioBaseUrl
    } from "@/common/setting.js"
    import {
        sendCode
    } from "@/api/system/index.js"
    export default {
        components: {
            tagCell,
@@ -583,12 +589,16 @@
                // }
            },
            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({
@@ -619,19 +629,23 @@
                // }
                // 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) {
subPackage/article/signature.vue
@@ -22,7 +22,8 @@
                <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> -->
@@ -45,6 +46,10 @@
        clientSecret,
        minioBaseUrl
    } from '@/common/setting'
    import {
        sendCode
    } from "@/api/system/index.js"
    export default {
        data() {
            return {
@@ -132,7 +137,7 @@
            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
@@ -149,14 +154,20 @@
                // }
                // 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)
                })
            },
subPackage/house/houseNumber/siteInspect.vue
@@ -304,7 +304,8 @@
                    current: 1,
                    size: 10,
                    isPerfect: 2,
                    placeName: this.placeName
                    placeName: this.placeName,
                    isNine: 1
                }).then(res => {
                    this.placeList = res.data.records;
                })
subPackage/label/bail.vue
@@ -90,13 +90,13 @@
                    reportType: 1
                },
                rules: {
                    'info.checkUserName': {
                    checkUserName: [{
                        type: 'string',
                        required: true,
                        message: '请输入姓名',
                        trigger: ['blur', 'change']
                    },
                    'info.checkTelephone': [{
                    }],
                    checkTelephone: [{
                            type: 'number',
                            required: true,
                            message: '请输入手机',
@@ -113,24 +113,24 @@
                        }
                    ],
                    '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()),
@@ -152,6 +152,7 @@
            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() {
@@ -251,7 +252,7 @@
            },
            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',
subPackage/patrol/detail.vue
New file
@@ -0,0 +1,109 @@
<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>
subPackage/patrol/list.vue
New file
@@ -0,0 +1,161 @@
<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>
subPackage/task/workLogDetail.vue
@@ -22,14 +22,14 @@
        </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>
subPackage/workLog/list.vue
New file
@@ -0,0 +1,160 @@
<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>
subPackage/workbench/views/patrol.vue
@@ -56,7 +56,11 @@
            <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>
@@ -167,6 +171,11 @@
                        })
                    })
                })
            },
            navToRecord() {
                uni.navigateTo({
                    url: '/subPackage/patrol/list'
                })
            }
        }
    }
@@ -250,4 +259,27 @@
        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>
subPackage/workbench/views/workLog.vue
@@ -77,7 +77,12 @@
            @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">
@@ -419,6 +424,13 @@
                uni.navigateBack();
            },
            navToRecord() {
                uni.navigateTo({
                    url: "/subPackage/workLog/list"
                })
            }
        }
    }
</script>
@@ -513,4 +525,26 @@
        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>