ll
liukangdong
2025-02-07 abfb84c633a2bd1773cf9be27e753f787f1ed641
ll
已修改7个文件
1070 ■■■■ 文件已修改
admin/src/api/store/index.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/stock/components/AssetSel.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/stock/out.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/inventory/detail.vue 1024 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/login.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/polling/empty.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/workOrder/wait.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/store/index.js
@@ -7,7 +7,8 @@
}
export function ywOutinboundEx (data) {
  return request.post('/visitsAdmin/cloudService/business/ywOutinbound/exportExcel', data, {
    trim: true
    trim: true,
    download: true
  })
}
export function ywOutinboundDetail (id) {
admin/src/views/stock/components/AssetSel.vue
@@ -21,14 +21,14 @@
    </el-form>
    <!--  -->
    <el-table @selection-change="handleSelectionChange" :data="list" stripe>
      <el-table-column type="selection"  width="55" />
      <el-table-column type="selection" width="55" />
      <el-table-column prop="code" label="物料编码" min-width="100px"></el-table-column>
      <el-table-column prop="name" label="物料名称" min-width="80px"></el-table-column>
      <el-table-column prop="qrcode" label="条码" min-width="100px"></el-table-column>
      <el-table-column prop="brand" label="品牌" min-width="80px"></el-table-column>
      <el-table-column prop="attr" label="规格型号" min-width="80px"></el-table-column>
      <el-table-column prop="unitName" label="单位" min-width="80px"></el-table-column>
      <el-table-column prop="maxStock" label="库存" min-width="80px"></el-table-column>
      <el-table-column v-if="isOut" prop="maxStock" label="库存" min-width="80px"></el-table-column>
    </el-table>
    <Pagination class="mt10" @size-change="handleSizeChange" @current-change="getList" :pagination="pagination">
    </Pagination>
@@ -82,19 +82,19 @@
    getList(page) {
      const { pagination, searchForm, isOut, warehouseId } = this
      this.listLoading = true
      if(page){pagination.page = page}
      console.log('isOut', isOut);
      if (page) { pagination.page = page }
      console.log('isOut', isOut)
      let fn = isOut ? ywStockPage : fetchList
      fn({
        capacity: pagination.pageSize,
        page: pagination.page,
        model: {...searchForm,status: 0, warehouseId}
        model: { ...searchForm, status: 0, warehouseId }
      }).then((res) => {
        this.listLoading = false
        this.list = res.records
        this.pagination.total = res.total || 0
        if(isOut){
        if (isOut) {
          this.list.forEach(item => {
            item.brand = item.materialBrand
            item.attr = item.materialAttr
@@ -123,7 +123,7 @@
      if (e && e.length == 2) {
        this.$set(this.searchForm, 'cateId', e[1])
        this.$set(this.searchForm, 'parentCateId', '')
      }else if((e && e.length == 1)){
      } else if ((e && e.length == 1)) {
        this.$set(this.searchForm, 'parentCateId', e[0])
        this.$set(this.searchForm, 'cateId', '')
      } else {
admin/src/views/stock/out.vue
@@ -40,7 +40,7 @@
import dayjs from 'dayjs'
import duration from 'dayjs/plugin/duration'
dayjs.extend(duration)
import { ywOutinboundPage } from '@/api'
import { ywOutinboundPage, ywOutinboundEx } from '@/api'
import { fetchList as getStoreList } from '@/api/ywWarehouse'
import { StoreTypeOps, rules } from './components/config'
export default {
h5/pages/inventory/detail.vue
@@ -32,7 +32,7 @@
                        <view class="line">规格型号:{{ item.materialAttr }}</view>
                        <view class="line" v-if="item.status == 0">
                            <view class="">账面数量:{{ item.stock }}{{ item.materialUnitName }}</view>
                            <view @click.stop="openEheck(item)" class="btn">执行盘点</view>
                            <view v-if="info.status == 1" @click.stop="openEheck(item)" class="btn">执行盘点</view>
                        </view>
                        <view class="static" v-if="item.status == 1">
                            <view class="ite">
@@ -81,13 +81,15 @@
                        <view class="line">
                            <view class="la">盘点数量:</view>
                            <view class="val">
                                <view class="wrap">
                                    <template v-if="!modalForm.handleType">
                                        <image v-if="!modalForm.actStock" src="@/static/side/btn_jian_grey@2x.png" mode=""></image>
                                        <image v-else @click="changeAct(-1)" src="@/static/side/btn_jian@3x.png" mode=""></image>
                                <view class="wrap">
                                    <template v-if="!modalForm.handleType">
                                        <image v-if="!modalForm.actStock" src="@/static/side/btn_jian_grey@2x.png" mode=""></image>
                                        <image v-else @click="changeAct(-1)" src="@/static/side/btn_jian@3x.png" mode=""></image>
                                    </template>
                                    <input :disabled="Boolean(modalForm.handleType && modalForm.handleType == 'detail')" type="digit" v-model="modalForm.actStock"></input>
                                    <image v-if="!modalForm.handleType" @click="changeAct(1)" src="@/static/side/btn_jia@3x.png" mode=""></image>
                                    <input :disabled="Boolean(modalForm.handleType && modalForm.handleType == 'detail')" type="digit"
                                        v-model="modalForm.actStock"></input>
                                    <image v-if="!modalForm.handleType" @click="changeAct(1)" src="@/static/side/btn_jia@3x.png" mode="">
                                    </image>
                                </view>
                                <view class="unit">{{ modalForm.materialUnitName }}</view>
                            </view>
@@ -95,8 +97,9 @@
                    </view>
                    <view class="remark">
                        <view class="la">备注:</view>
                        <textarea v-model="modalForm.remark" :disabled="Boolean(modalForm.handleType && modalForm.handleType == 'detail')" placeholder="请填写备注" :maxlength="-1" placeholder-class="placeholder9"
                            cols="30" rows="10"></textarea>
                        <textarea v-model="modalForm.remark"
                            :disabled="Boolean(modalForm.handleType && modalForm.handleType == 'detail')" placeholder="请填写备注"
                            :maxlength="-1" placeholder-class="placeholder9" cols="30" rows="10"></textarea>
                    </view>
                    <view v-if="!modalForm.handleType" class="btns">
                        <view class="btn" @click="showModal = false">取消</view>
@@ -127,557 +130,574 @@
</template>
<script>
import {
    ywStocktakingDetail,
    getYwStocktakingRecord,
    takingDataOpen,
    ywStocktaFinishById
} from '@/api'
import {
    Html5Qrcode
} from 'html5-qrcode'
export default {
    data() {
        return {
            param: {},
            info: {},
            id: '',
            activeTab: 0,
    import {
        ywStocktakingDetail,
        getYwStocktakingRecord,
        takingDataOpen,
        ywStocktaFinishById
    } from '@/api'
    import {
        Html5Qrcode
    } from 'html5-qrcode'
    export default {
        data() {
            return {
                param: {},
                info: {},
                id: '',
                activeTab: 0,
            list: [],
            page: 0,
            total: 0,
                list: [],
                page: 0,
                total: 0,
            showModal: false,
            showTip: false,
            modalForm: {},
                showModal: false,
                showTip: false,
                modalForm: {},
            html5Qrcode: null,
            isScaning: false,
                html5Qrcode: null,
                isScaning: false,
        }
    },
    onLoad(op) {
        this.id = op.id
        this.getDetail()
        this.getList()
    },
    methods: {
        itemClick(item) {
            if(item.status == 1){
                this.showItem(item)
            }
        },
        showItem(item){
            this.showModal = true
            this.modalForm = {
                ...item,
                handleType: this.info.status != 1 ? 'detail' : ''
            }
            console.log('modalForm', this.modalForm);
        },
        getDetail() {
            const {
                id
            } = this
            ywStocktakingDetail(id).then(res => {
                this.info = res.data
            })
        },
        handleQuery(str) {
            this.list = []
            this.page = 1
            this.getList(str)
        },
        getList(str) {
            const {
                page,
                activeTab,
                id,
                param
            } = this
            getYwStocktakingRecord({
                capacity: 20,
                page,
                model: {
                    status: str || activeTab,
                    stocktakingId: id,
                    ...param
                }
            }).then(res => {
                this.list = [...this.list, ...res.data.records]
                this.total = res.data.total
                if (this.param.materialQrcode && this.list.length == 1) {
                    this.openEheck(this.list[0])
                    this.$set(this.param, 'materialQrcode', null)
                }
            })
        },
        scrolltolower() {
            const {
                total,
                list
            } = this
            if (list.length < total) {
                this.page = this.page + 1
                this.getList()
            } else {
                this.showToast('暂无更多数据')
            }
        },
        openEheck(item) {
            this.modalForm = {
                ...item
            }
            this.showModal = true
        },
        onSubmit() {
            const {
                modalForm
            } = this
            if (!modalForm.actStock) return this.showToast('请输入正确的盘点数量')
            takingDataOpen({
                ...modalForm
            }).then(res => {
                if (res.code == 200) {
                    this.showToast('提交成功')
                    this.handleQuery()
                    this.getDetail()
                    this.showModal = false
                }
            })
        },
        changeAct(val) {
            const actStock = this.modalForm.actStock || 0
            this.$set(this.modalForm, 'actStock', actStock + val)
        },
        tabsClick(val) {
            this.activeTab = val
            this.page = 0
            this.list = []
        onLoad(op) {
            this.id = op.id
            this.getDetail()
            this.getList()
        },
        tipSub() {
            const { info } = this
            ywStocktaFinishById(info.id).then(res => {
                this.showTip = false
                uni.navigateBack()
            })
        },
        openQrcode() {
            this.isScaning = true
            Html5Qrcode.getCameras().then((devices) => {
                if (devices && devices.length) {
                    this.html5Qrcode = new Html5Qrcode('reader')
                    this.html5Qrcode.start({
                        facingMode: 'environment'
                    }, {
                        focusMode: 'continuous', //设置连续聚焦模式
                        fps: 5, //设置扫码识别速度
                        qrbox: 280 //设置二维码扫描框大小
                    },
                        (decodeText, decodeResult) => {
                            if (decodeText) { //这里decodeText就是通过扫描二维码得到的内容
                                this.stopScan()
                                this.$set(this.param, 'materialQrcode', decodeText)
                                this.handleQuery('null')
                            }
                        },
                        (err) => {
                            // console.log(err);  //错误信息
                        }
                    )
        methods: {
            itemClick(item) {
                if (item.status == 1) {
                    this.showItem(item)
                }
            })
        },
            },
            showItem(item) {
                this.showModal = true
                this.modalForm = {
                    ...item,
                    handleType: this.info.status != 1 ? 'detail' : ''
                }
                console.log('modalForm', this.modalForm);
            },
            getDetail() {
                const {
                    id
                } = this
                ywStocktakingDetail(id).then(res => {
                    this.info = res.data
        stopScan() {
            console.log('停止扫码')
            this.isScaning = false
            if (this.html5Qrcode) {
                this.html5Qrcode.stop()
                })
            },
            handleQuery() {
                this.list = []
                this.page = 1
                this.getList()
            },
            getList() {
                const {
                    page,
                    activeTab,
                    id,
                    param
                } = this
                getYwStocktakingRecord({
                    capacity: 20,
                    page,
                    model: {
                        status: activeTab,
                        stocktakingId: id,
                        ...param
                    }
                }).then(res => {
                    this.list = [...this.list, ...res.data.records || []]
                    this.total = res.data.total
                    if (this.param.materialQrcode && this.total == 1) {
                        this.openEheck(this.list[0])
                        this.param = {}
                    } else if (this.param.materialQrcode && this.total == 0) {
                        this.param = {}
                        uni.showModal({
                            content: '未匹配到物料,请重新扫码',
                            showCancel: false,
                            success: (res) => {
                                if (res.confirm) {
                                    this.getList()
                                }
                            }
                        });
                    }
                })
            },
            scrolltolower() {
                const {
                    total,
                    list
                } = this
                if (list.length < total) {
                    this.page = this.page + 1
                    this.getList()
                } else {
                    this.showToast('暂无更多数据')
                }
            },
            openEheck(item) {
                this.modalForm = {
                    ...item
                }
                this.showModal = true
            },
            onSubmit() {
                const {
                    modalForm
                } = this
                if (!modalForm.actStock) return this.showToast('请输入正确的盘点数量')
                takingDataOpen({
                    ...modalForm
                }).then(res => {
                    if (res.code == 200) {
                        this.showToast('提交成功')
                        this.handleQuery()
                        this.getDetail()
                        this.showModal = false
                    }
                })
            },
            changeAct(val) {
                const actStock = this.modalForm.actStock || 0
                this.$set(this.modalForm, 'actStock', actStock + val)
            },
            tabsClick(val) {
                this.activeTab = val
                this.page = 0
                this.list = []
                this.getList()
            },
            tipSub() {
                const {
                    info
                } = this
                ywStocktaFinishById(info.id).then(res => {
                    this.showTip = false
                    uni.navigateBack()
                })
            },
            openQrcode() {
                this.isScaning = true
                Html5Qrcode.getCameras().then((devices) => {
                    if (devices && devices.length) {
                        this.html5Qrcode = new Html5Qrcode('reader')
                        this.html5Qrcode.start({
                                facingMode: 'environment'
                            }, {
                                focusMode: 'continuous', //设置连续聚焦模式
                                fps: 5, //设置扫码识别速度
                                qrbox: 280 //设置二维码扫描框大小
                            },
                            (decodeText, decodeResult) => {
                                if (decodeText) { //这里decodeText就是通过扫描二维码得到的内容
                                    this.stopScan()
                                    this.$set(this.param, 'materialQrcode', decodeText)
                                    this.handleQuery()
                                }
                            },
                            (err) => {
                                // console.log(err);  //错误信息
                            }
                        )
                    }
                })
            },
            stopScan() {
                console.log('停止扫码')
                this.isScaning = false
                if (this.html5Qrcode) {
                    this.html5Qrcode.stop()
                }
            }
        }
    }
}
</script>
<style lang="scss">
.main_app {
    padding: 0 30rpx;
    overflow: hidden;
}
    .main_app {
        padding: 0 30rpx;
        overflow: hidden;
    }
.tabs {
    display: flex;
    width: 750rpx;
    margin: 12rpx -30rpx 20rpx;
    border-bottom: 1rpx solid #E5E5E5;
    .tab {
        font-size: 30rpx;
        color: #666666;
        flex: 1;
    .tabs {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-end;
        height: 72rpx;
        width: 750rpx;
        margin: 12rpx -30rpx 20rpx;
        border-bottom: 1rpx solid #E5E5E5;
        .name {
        .tab {
            font-size: 30rpx;
            color: #666666;
            flex: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: flex-end;
            height: 72rpx;
            .name {
                display: flex;
                align-items: center;
            }
            .border {
                width: 54rpx;
                height: 6rpx;
                background-color: #fff;
                border-radius: 3rpx;
                margin-top: 12rpx;
            }
        }
        .active {
            font-weight: 600;
            font-size: 32rpx;
            color: #222222;
            .border {
                background-color: $primaryColor;
            }
        }
    }
    .head_wrap {
        display: flex;
        align-items: center;
        margin-bottom: 36rpx;
        .search_wrap {
            display: flex;
            align-items: center;
            width: 100%;
            height: 76rpx;
            background: #F7F7F7;
            border-radius: 38rpx;
            padding-left: 30rpx;
            input {
                flex: 1;
            }
            .search {
                width: 28rpx;
                height: 28rpx;
            }
        }
        .border {
            width: 54rpx;
            height: 6rpx;
    }
    .scroll_Y {
        height: calc(100vh - 350rpx);
    }
    .list {
        .item {
            border-bottom: 1rpx solid #E5E5E5;
            padding-bottom: 24rpx;
            margin-bottom: 16rpx;
            .title {
                font-weight: 600;
                font-size: 34rpx;
                color: #222222;
                margin-bottom: 10rpx;
                flex: 1;
            }
            .head {
                display: flex;
                // align-items: center;
                justify-content: space-between;
                color: #666666;
                .status {
                    width: 76rpx;
                    text-align: right;
                    padding-top: 3rpx;
                }
            }
            .line {
                height: 60rpx;
                display: flex;
                align-items: center;
                justify-content: space-between;
                color: #666666;
                .btn {
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    height: 60rpx;
                    padding: 0 20rpx;
                    background: #0068FF;
                    box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(0, 104, 255, 0.3);
                    border-radius: 30rpx;
                    font-size: 26rpx;
                    color: #FFFFFF;
                }
            }
            .static {
                display: flex;
                height: 84rpx;
                background: #F7F7F7;
                font-size: 30rpx;
                margin-top: 12rpx;
                padding: 16rpx 0;
                .spi {
                    border: 1rpx solid #E5E5E5;
                }
                .ite {
                    flex: 1;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    .val {
                        font-weight: 500;
                    }
                }
            }
        }
    }
    .footer_btn {
        padding: 20rpx 40rpx 0;
        border-top: 1px solid #e5e5e5;
        width: 750rpx;
        margin: 0 -30rpx;
        .sweep {
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 32rpx;
            font-weight: 500;
            width: 670rpx;
            height: 88rpx;
            background: #0068FF;
            box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0, 104, 255, 0.3);
            border-radius: 44rpx;
            color: #FFFFFF;
        }
        .sub_result {
            background-color: #fff;
            border-radius: 3rpx;
            margin-top: 12rpx;
            color: #FF0000;
            border: 1rpx solid #FF0000;
            box-shadow: none
        }
        image {
            width: 32rpx;
            height: 32rpx;
            margin-right: 6rpx;
        }
    }
    .active {
        font-weight: 600;
        font-size: 32rpx;
        color: #222222;
    .modal_wrap {
        padding: 36rpx 30rpx;
        .border {
            background-color: $primaryColor;
        .modal_title {
            font-weight: 500;
            font-size: 32rpx;
            color: #222222;
            margin-bottom: 40rpx;
            text-align: center;
        }
    }
}
.head_wrap {
    display: flex;
    align-items: center;
    margin-bottom: 36rpx;
    .search_wrap {
        display: flex;
        align-items: center;
        width: 100%;
        height: 76rpx;
        background: #F7F7F7;
        border-radius: 38rpx;
        padding-left: 30rpx;
        input {
            flex: 1;
        }
        .search {
            width: 28rpx;
            height: 28rpx;
        }
    }
}
.scroll_Y {
    height: calc(100vh - 350rpx);
}
.list {
    .item {
        border-bottom: 1rpx solid #E5E5E5;
        padding-bottom: 24rpx;
        margin-bottom: 16rpx;
        .title {
            font-weight: 600;
            font-size: 34rpx;
            color: #222222;
            margin-bottom: 10rpx;
            flex: 1;
        }
        .head{
            display: flex;
            // align-items: center;
            justify-content: space-between;
            color: #666666;
            .status{
                width: 76rpx;
                text-align: right;
                padding-top: 3rpx;
            }
        }
        .line {
            height: 60rpx;
        .item {
            font-size: 28rpx;
            color: #666666;
            height: 56rpx;
            display: flex;
            align-items: center;
            justify-content: space-between;
            color: #666666;
            .btn {
                display: flex;
                align-items: center;
                justify-content: center;
                height: 60rpx;
                padding: 0 20rpx;
                background: #0068FF;
                box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(0, 104, 255, 0.3);
                border-radius: 30rpx;
                font-size: 26rpx;
                color: #FFFFFF;
            }
        }
        .static {
            display: flex;
            height: 84rpx;
            background: #F7F7F7;
            font-size: 30rpx;
            margin-top: 12rpx;
            padding: 16rpx 0;
        .content {
            border-top: 1rpx solid #E5E5E5;
            margin-top: 16rpx;
            .spi {
                border: 1rpx solid #E5E5E5;
            }
            .ite {
                flex: 1;
            .line {
                height: 84rpx;
                display: flex;
                align-items: center;
                justify-content: center;
                justify-content: space-between;
                .la {
                    font-weight: 500;
                    font-size: 32rpx;
                    color: #222222;
                }
                .val {
                    font-weight: 500;
                }
            }
        }
    }
}
.footer_btn {
    padding: 20rpx 40rpx 0;
    border-top: 1px solid #e5e5e5;
    width: 750rpx;
    margin: 0 -30rpx;
    .sweep {
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 32rpx;
        font-weight: 500;
        width: 670rpx;
        height: 88rpx;
        background: #0068FF;
        box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0, 104, 255, 0.3);
        border-radius: 44rpx;
        color: #FFFFFF;
    }
    .sub_result {
        background-color: #fff;
        color: #FF0000;
        border: 1rpx solid #FF0000;
        box-shadow: none
    }
    image {
        width: 32rpx;
        height: 32rpx;
        margin-right: 6rpx;
    }
}
.modal_wrap {
    padding: 36rpx 30rpx;
    .modal_title {
        font-weight: 500;
        font-size: 32rpx;
        color: #222222;
        margin-bottom: 40rpx;
        text-align: center;
    }
    .title {
        font-weight: 600;
        font-size: 34rpx;
        color: #222222;
    }
    .item {
        font-size: 28rpx;
        color: #666666;
        height: 56rpx;
        display: flex;
        align-items: center;
    }
    .content {
        border-top: 1rpx solid #E5E5E5;
        margin-top: 16rpx;
        .line {
            height: 84rpx;
            display: flex;
            align-items: center;
            justify-content: space-between;
            .la {
                font-weight: 500;
                font-size: 32rpx;
                color: #222222;
            }
            .val {
                display: flex;
                justify-content: flex-end;
                align-items: center;
                flex: 1;
                .wrap {
                    display: flex;
                    justify-content: flex-end;
                    align-items: center;
                    flex: 1;
                    input {
                        width: 120rpx;
                        height: 72rpx;
                        border-radius: 8rpx;
                        border: 2rpx solid #0068FF;
                        margin: 0 16rpx;
                        padding: 0 10rpx;
                        text-align: center;
                    .wrap {
                        display: flex;
                        align-items: center;
                        input {
                            width: 120rpx;
                            height: 72rpx;
                            border-radius: 8rpx;
                            border: 2rpx solid #0068FF;
                            margin: 0 16rpx;
                            padding: 0 10rpx;
                            text-align: center;
                        }
                    }
                    .unit {
                        font-size: 30rpx;
                        color: #666666;
                        margin-left: 20rpx;
                    }
                }
                .unit {
                    font-size: 30rpx;
                    color: #666666;
                    margin-left: 20rpx;
                image {
                    width: 72rpx;
                    height: 72rpx;
                }
            }
        }
        .remark {
            margin-top: 16rpx;
            .la {
                font-size: 30rpx;
                color: #222222;
                margin-bottom: 16rpx;
            }
            textarea {
                width: 690rpx;
                height: 240rpx;
                background: #F7F7F7;
                border-radius: 12rpx;
                padding: 10rpx 20rpx;
            }
        }
        .btns {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-top: 80rpx;
            .btn {
                width: 336rpx;
                height: 88rpx;
                border-radius: 44rpx;
                border: 2rpx solid $primaryColor;
                display: flex;
                align-items: center;
                justify-content: center;
                font-size: 32rpx;
                color: $primaryColor;
            }
            .sub {
                background-color: $primaryColor;
                color: #fff;
            }
        }
    }
    .modal_t {
        width: 520rpx;
        text-align: center;
        display: flex;
        flex-direction: column;
        .h1 {
            height: 86rpx;
            font-weight: 500;
            font-size: 32rpx;
            color: #333333;
            display: flex;
            align-items: flex-end;
            justify-content: center;
        }
        .content {
            flex: 1;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            padding: 30rpx 0;
        }
        .btns {
            height: 102rpx;
            display: flex;
            align-items: center;
            border-top: 1rpx solid #E5E5E5;
            .btn {
                height: 102rpx;
                flex: 1;
                display: flex;
                align-items: center;
                justify-content: center;
                border-right: 1rpx solid #E5E5E5;
                font-weight: 400;
                font-size: 32rpx;
                color: #999999;
                &:nth-last-child(1) {
                    border-right: none;
                }
            }
            image {
                width: 72rpx;
                height: 72rpx;
            .sub {
                color: $primaryColor;
            }
        }
    }
    .remark {
        margin-top: 16rpx;
        .la {
            font-size: 30rpx;
            color: #222222;
            margin-bottom: 16rpx;
        }
        textarea {
            width: 690rpx;
            height: 240rpx;
            background: #F7F7F7;
            border-radius: 12rpx;
            padding: 10rpx 20rpx;
        }
    .reader-box {
        position: fixed;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        background-color: rgba(0, 0, 0, 0.5);
    }
    .btns {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-top: 80rpx;
        .btn {
            width: 336rpx;
            height: 88rpx;
            border-radius: 44rpx;
            border: 2rpx solid $primaryColor;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 32rpx;
            color: $primaryColor;
        }
        .sub {
            background-color: $primaryColor;
            color: #fff;
        }
    .reader {
        width: 100%;
        // width: 540rpx;
        // height: 540rpx;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
}
.modal_t {
    width: 520rpx;
    text-align: center;
    display: flex;
    flex-direction: column;
    .h1 {
        height: 86rpx;
        font-weight: 500;
        font-size: 32rpx;
        color: #333333;
        display: flex;
        align-items: flex-end;
        justify-content: center;
    }
    .content {
        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        padding: 30rpx 0;
    }
    .btns {
        height: 102rpx;
        display: flex;
        align-items: center;
        border-top: 1rpx solid #E5E5E5;
        .btn {
            height: 102rpx;
            flex: 1;
            display: flex;
            align-items: center;
            justify-content: center;
            border-right: 1rpx solid #E5E5E5;
            font-weight: 400;
            font-size: 32rpx;
            color: #999999;
            &:nth-last-child(1) {
                border-right: none;
            }
        }
        .sub {
            color: $primaryColor;
        }
    }
}
.reader-box {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: rgba(0, 0, 0, 0.5);
}
.reader {
    width: 100%;
    // width: 540rpx;
    // height: 540rpx;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
</style>
h5/pages/login.vue
@@ -101,7 +101,7 @@
                                        })
                                    } else {
                                        uni.redirectTo({
                                            url: "/pages/polling/empty"
                                            url: "/pages/polling/empty?message=" + res.message
                                        })
                                    }
                                })
@@ -164,7 +164,7 @@
                                        })
                                    } else {
                                        uni.redirectTo({
                                            url: "/pages/polling/empty"
                                            url: "/pages/polling/empty?message=" + res.message
                                        })
                                    }
                                })
h5/pages/polling/empty.vue
@@ -1,6 +1,7 @@
<template>
    <view class="main_app">
        <image class="logo" src="@/static/side/default_empty@2x.png" mode=""></image>
        <view class="message">{{message}}</view>
        <view class="btn" @click="backHome">返回主页</view>
    </view>
</template>
@@ -9,8 +10,11 @@
    export default {
        data() {
            return {
            };
                message: ''
            };
        },
        onLoad(op) {
            this.message = op.message || ''
        },
        methods: {
            backHome(){
@@ -29,6 +33,13 @@
        height: 228rpx;
        margin: 60% auto 0;
    }
    .message{
        font-weight: 500;
        font-size: 30rpx;
        color: #222222;
        margin-top: 20rpx;
        text-align: center;
    }
    .btn{
        position: fixed;
        bottom: 64rpx;
h5/pages/workOrder/wait.vue
@@ -28,7 +28,7 @@
                            <view v-if="item.status == 0 && item.param3 == 0 && (item.type == 0 || item.type == 1)" class="status">未开始
                            </view>
                            <view v-if="item.status == 0 && item.param3 == 1 && (item.type == 0 || item.type == 1)"
                                class="status green">进行中</view>
                                class="status green">{{ item.type == 0 ? '盘点中' : '进行中' }}</view>
                            <view v-if="item.status == 1 && item.type == 2" class="status gray">已处理</view>
                            <view v-if="item.status == 1 && (item.type == 0 || item.type == 1)" class="status gray">已完成</view>
                        </view>
@@ -37,7 +37,7 @@
                            <view class="text">执行时间:{{item.obj.key3}}</view>
                            <view class="text">
                                <view class="">巡检负责人:{{item.obj.key4}}</view>
                                <view class="btn" @click.stop="openSc(item)">
                                <view v-if="queryStatus == 0" class="btn" @click.stop="openSc(item)">
                                    <image src="@/static/side/ic_saoma@2x.png" mode=""></image>
                                    <view v-if="item.status == 0" class="">扫码巡检</view>
                                </view>
@@ -249,7 +249,7 @@
        .tabs {
            display: flex;
            width: 750rpx;
            margin: 12rpx 0rpx 0;
            margin: 0rpx 0rpx 0;
            border-bottom: 1rpx solid #E5E5E5;
            background-color: #fff;