jiangping
2023-09-11 4fa0cbae96cde47e4878e16c87da294903a457ae
同步素材库商品
已添加1个文件
已修改46个文件
1300 ■■■■ 文件已修改
h5_standard/src/views/LogInAgain.vue 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/common/config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/components/Search.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/components/SelectMultipleMaterial.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/components/selectMaterial.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/components/workOrderInfo.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages.json 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/InOperation/InOperation.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/OutOperation/OutOperation.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/allocation/allocation.vue 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/index/index.vue 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/inspectComplete/inspectComplete.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/inspectPatrol/inspectPatrol.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/linePatrol/linePatrol.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/login/login.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/mine/mine.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/plannedDistribution/plannedDistribution.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/plannedProgress/plannedProgress.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/workbench/workbench.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/components/multipleMaterial.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/InventoryQuery/InventoryQuery.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/OrderDetail/OrderDetail.vue 206 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/manualFeed/manualFeed.vue 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/outboundDetails/outboundDetails.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/outboundList/outboundList.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/reportingForWork/reportingForWork.vue 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/transferList/transferList.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/warehousingDetails/warehousingDetails.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/warehousingList/warehousingList.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/workOrder/workOrder.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/workOrderReporting/workOrderReporting.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_inspect/pages/InspectionRecords/InspectionRecords.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_inspect/pages/equipmentInspection/equipmentInspection.vue 563 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/uni.scss 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/uni_modules/l-calendar/components/l-calendar/l-calendar.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/util/api/QualityAPI.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/util/api/index.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/util/request/index.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/util/request/requestInterceptors.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/util/utils.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform_web/.env.development 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform_web/src/components/system/menu/OperaMenuH5Window.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform_web/src/views/system/menuH5.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/biz/system/impl/SystemMenuBizImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/system/model/SystemMenu.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/dao/system/vo/SystemMenuNodeVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/resources/mappers/SystemMenuMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5_standard/src/views/LogInAgain.vue
@@ -91,20 +91,20 @@
      //   uuid: '0000',
      //   code: '0000'
      // })
      // let res = await testLogin({ // æ–‡æ­¦
      //   username: '18656077929',
      //   password: '123456',
      //   companyId: '111',
      //   uuid: '0000',
      //   code: '0000'
      // })
      let res = await testLogin({ // å¼ ç£Šé«˜
        username: '15256913207',
      let res = await testLogin({ // æ–‡æ­¦
        username: '18656077929',
        password: '123456',
        companyId: '8',
        companyId: '111',
        uuid: '0000',
        code: '0000'
      })
      // let res = await testLogin({ // å¼ ç£Šé«˜
      //   username: '15256913207',
      //   password: '123456',
      //   companyId: '8',
      //   uuid: '0000',
      //   code: '0000'
      // })
      // let res = await testLogin({
      //     username: '15056231084',
minipro_standard/common/config.js
@@ -1,7 +1,7 @@
module.exports = {
    // baseUrl: 'http://106.14.20.42/test_hfznzz/',
    // baseUrl: 'https://hefei.dtkey.cn/test_hfznzz/',
    // baseUrl: 'http://192.168.0.15:10021',
    // baseUrl: 'http://192.168.0.18:10021',
    baseUrl: 'https://dmtest.ahapp.net/doumeeplant_api',
    phoneRegular: /^1[3456789]\d{9}$/,
    mailboxRegular: /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
minipro_standard/components/Search.vue
@@ -10,7 +10,7 @@
                <image @click="openCate()" src="@/static/filter@2x.png" mode="widthFix">
            </view>
        </view>
        <u-popup :show="open" :round="10" mode="bottom">
        <u-popup closeOnClickOverlay :show="open" @close="open=false" :round="10" mode="bottom">
            <scroll-view scroll-y class="content">
                <slot name="content"></slot>
            </scroll-view>
minipro_standard/components/SelectMultipleMaterial.vue
@@ -1,8 +1,8 @@
<template>
    <u-popup :show="show" :round="10" closeable @close="show=false">
        <view class="material-content bbox p30 rp">
            <view class="tc b f24 c2 mb20">选择物料</view>
            <v-Search ref="V" @searchInput="searchInput" @submit="submit" :isShow="false" placeholder="搜索物料名称/编码">
            <view class="tc b f30 c2 mb20">选择物料a1</view>
            <v-Search ref="V" @searchInput="searchInput" @submit="search" :isShow="false" placeholder="搜索物料名称/编码">
            </v-Search>
            <div class="content_total">共{{pages.total}}条数据</div>
            <view class="scroll-content">
@@ -87,6 +87,7 @@
                splite: '&nbsp;|&nbsp;',
                isAll: false,
                refreshing: false,
                mixName: '',
                pages: {
                    capacity: 10,
                    page: 1,
@@ -100,7 +101,7 @@
            open(target) {
                this.show = true
                this.refreshing = false
                this.workorderId = target.workorderId
                this.warehouseId = target.warehouseId
                this.deviceId = target.deviceId
                this.list = []
                this.selectIndex = []
@@ -113,12 +114,21 @@
                }
                this.loadData()
            },
            // æœç´¢æ¡†
            searchInput(data) {
                this.form.page = 0
                this.finished = false
                this.list = []
                this.mixName = data
                this.loadData()
            },
            loadData() {
                choiceStockPageForStandard({
                    ...this.pages,
                    model: {
                        workorderId: this.workorderId,
                        deviceId: this.deviceId
                        deviceId: this.deviceId,
                        materialName: this.mixName
                    }
                }).then(res => {
                    let {data} = res
@@ -145,6 +155,10 @@
                this.pages.page = 1
                this.loadData()
            },
            search() {
                this.pages.page = 1
                this.loadData()
            },
            selectMaterialAction(index) {
                let i = this.selectIndex.findIndex(item => item==index)
                if (i == -1 ) {
minipro_standard/components/selectMaterial.vue
@@ -1,10 +1,10 @@
<template>
    <u-popup :show="show" :round="10" closeable @close="show=false">
        <view class="material-content bbox p30">
            <view class="tc b f24 c2">选择物料</view>
            <view class="tc b f30 c2">选择物料</view>
            <scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="refreshing"
                @scrolltolower="loadMore" @refresherrefresh="onRefresh">
                <view v-for="(item1, index) in list" :key="index" class="" style="height: 20px;" @click="jump(item1)">
                <view v-for="(item1, index) in list" :key="index" class="mb20" @click="jump(item1)">
                    <div class="page_content_title_top">
                        <span>{{ item1.materialName + ' | ' + item1.materialCode }}</span>
                    </div>
@@ -118,7 +118,6 @@
        display: flex;
        align-items: center;
        justify-content: space-between;
        span {
            &:nth-child(1) {
                font-size: 30rpx;
minipro_standard/components/workOrderInfo.vue
@@ -5,10 +5,10 @@
                <view class="mr10 b">{{ `${orederMessage.mmodel.name} |${orederMessage.procedureName}`}}</view>
                <u-tag size="mini" bgColor="#03AF76" text="正常"></u-tag>
            </view>
            <view class="status" :class="orederMessage.status==0?'wc':orederMessage.status==1?'green':orederMessage.status==3?'blue':orederMessage.status==7?'green':'c6'">{{ stausToStr(1) }}</view>
            <view class="status" :class="orederMessage.status==0?'wc':orederMessage.status==1?'green':orederMessage.status==3?'blue':orederMessage.status==7?'green':'c6'">{{ stausToStr(orederMessage.status) }}</view>
        </view>
        <view class="f24 c6 mt20">工单编号:{{ orederMessage.code || 'GD202111240001' }}</view>
        <view class="mt20 bg_f7 ptb20 plr30 n">
        <view class="f24 c6 mt20">工单编号:{{ orederMessage.code || '-' }}</view>
        <view class="f24 mt20 bg_f7 ptb20 plr30 n">
            <view class="c2 mb20">
                <span class="c6">物料编码:</span>
                {{ orederMessage.mmodel ? orederMessage.mmodel.code : '-' }}
minipro_standard/pages.json
@@ -263,6 +263,13 @@
                        "navigationBarTitleText": "检验详情",
                        "enablePullDownRefresh": false
                    }
                },
                {
                    "path": "pages/equipmentInspection/equipmentInspection",
                    "style": {
                        "navigationBarTitleText": "设备巡检",
                        "enablePullDownRefresh": false
                    }
                }
            ]
        }
minipro_standard/pages/InOperation/InOperation.vue
@@ -383,11 +383,24 @@
                        if (res.code === 200) {
                            this.$store.dispatch('getUpcomingNum')
                            uni.$u.toast('操作成功')
                            // Toast.success({
                            //     message: '操作成功',
                            //     forbidClick: true,
                            //     duration: 2000
                            if (this.type == '4') { // è·³è½¬å®Œå·¥å…¥åº“详情
                                // uni.navigateTo({
                                //     url:
                            // })
                                // router.push({
                                //     name: 'completionDetails',
                                //     query: {
                                //         id: route.query.id,
                                //         dbid: route.query.dbid,
                                //         type: 7,
                                //         isShow: 2
                                //     }
                                // })
                                return
                            }
                            uni.redirectTo({
                                url: `/pages_adjust/pages/outboundDetails/outboundDetails?id=${this.id}`
                            })
                            
                            // setTimeout(() => {
                            //     if (route.query.Type == '4') { // è·³è½¬å®Œå·¥å…¥åº“详情
@@ -420,6 +433,9 @@
                        if (res.code === 200) {
                            this.$store.dispatch('getUpcomingNum')
                            uni.$u.toast('操作成功')
                            uni.redirectTo({
                                url: `/pages_adjust/pages/warehousingDetails1/warehousingDetails1?id=${this.id}`
                            })
                            // Toast.success({
                            //     message: '操作成功',
                            //     forbidClick: true,
minipro_standard/pages/OutOperation/OutOperation.vue
@@ -209,6 +209,7 @@
            this.type = option.type
            this.id = option.id
            this.isZKD = this.type == QRCodeType.ZKD
            this.dbid = option.dbid
            if (option.dbid) {
                this.getDBs(option.dbid)
            } else {
@@ -243,15 +244,16 @@
                    infoAction = wTransferForInOut
                    data.wTransferType = '0'
                }
                console.log('------');
                infoAction(data).then(res => {
                    // this.warehouseId = this.info.wtransferWarehouseList[0].warehouseId
                    console.log(this.type == QRCodeType.ZKD);
                    if (this.isZKD) {
                        this.info = res.data.wtransfer
                        this.warehouseList = res.data.wtransferWarehouseList
                        this.warehouseId = this.warehouseList[0].warehouseId
                    } else {
                        this.info = res.data.woutbound
                        this.woutboundDetailsWait = res.data.woutboundDetailsWait
                        this.warehouseId = this.woutboundDetailsWait[0].warehouseId
                    }
                }).catch(err => {
                    uni.$u.toast(err)
@@ -346,6 +348,9 @@
                            if (res.code === 200) {
                                this.$store.dispatch.dispatch('getUpcomingNum')
                                uni.$u.toast('操作成功')
                                uni.redirectTo({
                                    url: `/pages_adjust/pages/outboundDetails/outboundDetails?id=${this.info.id}&dbid=${this.dbid}`
                                })
                                // setTimeout(() => {
                                //   router.replace({ name: 'wTransferDetail', query: { id: info.value.wtransfer.id, dbid: route.query.dbid } })
                                // }, 2000)
@@ -362,6 +367,9 @@
                        if (res.code === 200) {
                            this.$store.dispatch.dispatch('getUpcomingNum')
                            uni.$u.toast('操作成功')
                            uni.redirectTo({
                                url: `/pages_adjust/pages/outboundDetails/outboundDetails?id=${this.info.id}`
                            })
                            // setTimeout(() => {
                            //   // router.go(-1)
                            //   router.replace({ name: 'wOutboundDetail', query: { id: info.value.wtransfer.id } })
@@ -733,7 +741,7 @@
        bottom: 0;
        left: 30rpx;
        padding-bottom: 68rpx;
        z-index: 9999;
        .page_footer_qr {
            flex: 1;
            height: 88rpx;
minipro_standard/pages/allocation/allocation.vue
@@ -137,6 +137,7 @@
                    if (res.code === 200) {
                        uni.showToast({ title: '分配成功', icon: 'success', duration: 2000, mask: true });
                        setTimeout(() => {
                            uni.$emit('update', { msg:'刷新列表' })
                            uni.navigateBack({ delta: 1 });
                        }, 2000)
                    }
@@ -195,6 +196,9 @@
                    display: flex;
                    flex-direction: column;
                }
                .u-icon__icon {
                    margin-right: 0 !important;
                }
                .fp_list_item_right_dis {
                    display: flex;
                    align-items: center;
@@ -217,15 +221,15 @@
                .black {
                    color: black !important;
                }
                input {
                    width: 180rpx;
                    height: 60rpx;
                    border-radius: 8rpx;
                    border: 2rpx solid #E5E5E5;
                    padding: 0 30rpx;
                    text-align: right;
                    font-size: 25rpx;
                }
                // input {
                //     width: 180rpx;
                //     height: 60rpx;
                //     border-radius: 8rpx;
                //     border: 2rpx solid #E5E5E5;
                //     padding: 0 30rpx;
                //     text-align: right;
                //     font-size: 25rpx;
                // }
                text {
                    font-size: 28rpx;
                    font-weight: 400;
@@ -256,9 +260,12 @@
                    font-weight: 400;
                }
            }
            .fp_list_item_right {
            .fp_list_item_right::v-deep {
                display: flex;
                align-items: center;
                .u-icon__icon {
                    margin-right: 0 !important;
                }
                .wu {
                    text-align: center;
                    text {
@@ -269,15 +276,15 @@
                .black {
                    color: black !important;
                }
                input {
                    width: 180rpx;
                    height: 60rpx;
                    border-radius: 8rpx;
                    border: 1rpx solid #E5E5E5;
                    padding: 0 30rpx;
                    text-align: right;
                    font-size: 25rpx;
                }
                // input {
                //     width: 180rpx;
                //     height: 60rpx;
                //     border-radius: 8rpx;
                //     border: 1rpx solid #E5E5E5;
                //     padding: 0 30rpx;
                //     text-align: right;
                //     font-size: 25rpx;
                // }
                text {
                    font-size: 28rpx;
                    font-weight: 400;
minipro_standard/pages/index/index.vue
@@ -4,9 +4,9 @@
        <!-- {{$store.state.statusbarHeight}} -->
        <u-sticky>
            <view class="plr50 pb30 nav-style">
            <view class="plr30 pb30 nav-style">
                <view
                    :style="{paddingTop: `${statusbarHeight}px`, height: `${navHeight}px`, lineHeight:`${navHeight}px`, textAlign: 'center'}">
                    :style="{background: '#fff', zIndex: '999', paddingTop: `${statusbarHeight}px`, height: `${navHeight}px`, lineHeight:`${navHeight}px`, textAlign: 'center'}">
                    å¾…办</view>
                <view class="cY">
                    <u-search placeholder="搜索关键字" bgColor="#f7f7f7" :showAction="false" @search="search"
@@ -14,7 +14,7 @@
                    <image src="../../static/filter@2x.png" class="img48 ml20" @click="filterAction" mode=""></image>
                </view>
                <view class="cY mt30">
                    <view v-for="item in tagList" :key="item.id" class="sbtn rd8 mr10"
                    <view v-for="item in tagList" :key="item.id" class="tag_item mr10"
                        :class="searchForm.status==item.id?'sbtn_green':'sbtn_black_rim'" @click="selectType(item.id)">
                        {{`${item.name}(${item.num})`}}
                    </view>
@@ -50,7 +50,7 @@
                <view class="content">
                    <u-grid col="2" :border="false">
                        <u-grid-item v-for="item in types" :key="item.id">
                            <view class="ptb20 c9 type-style tc rd10" :class="type===item.id?'sbtn_green':'sbtn_gray'"
                            <view class="ptb20 f26 c9 type-style tc rd10" :class="type===item.id?'sbtn_green':'sbtn_gray'"
                                @click="type=item.id">{{ item.name }}</view>
                        </u-grid-item>
                    </u-grid>
@@ -159,7 +159,6 @@
            uni.getSystemInfo({
                success: res => {
                    this.windowHeight = res.windowHeight
                }
            })
            this.loadData()
@@ -233,14 +232,7 @@
                    uni.navigateTo({
                        url: `/pages/InOperation/InOperation?id=${item.objId}&dbid=${item.id}&type=7`
                    })
                    // router.push({
                    //     name: 'warehousing',
                    //     query: {
                    //         id: item.objId,
                    //         dbid: item.id,
                    //         type: 7
                    //     }
                    // })
                } else if ((item.type === 1 || item.type === 4 || item.type === 6) && item.status === 1) {
                    if (item.type === 4) { // è·³è››å®Œå·¥å…¥åº“详情
                        // router.push({
@@ -434,6 +426,19 @@
    .bottom-view {
        left: 40rpx;
        right: 40rpx;
        bottom: 0
        bottom: 40rpx
    }
    .tag_item {
        min-width: 120rpx;
        // padding: 0 24rpx;
        border-radius: 26rpx;
        text-align: center;
        flex-shrink: 0;
        margin-right: 20rpx;
        border: 1rpx solid #CCCCCC;
        font-size: 26rpx;
        font-weight: 400;
        height: 52rpx;
        line-height: 52rpx;
    }
</style>
minipro_standard/pages/inspectComplete/inspectComplete.vue
@@ -42,7 +42,7 @@
                    <span class="dw" v-if="info.umodel">{{info.umodel.name}}</span>
                </div>
            </div>
            <div class="inspection_list_item" @click="selectBad" v-show="form.blsl > 0">
            <div class="inspection_list_item" @click="selectBad" v-if="form.blsl > 0">
                <span>不良说明</span>
                <div class="right1">
                    <span :style="form.blsm ? 'color: #000;' : ''">{{ form.blsm ? form.blsm : '点击选择不良原因'}}</span>
minipro_standard/pages/inspectPatrol/inspectPatrol.vue
@@ -43,7 +43,7 @@
                    <span class="dw" v-if="info.umodel">{{info.umodel.name}}</span>
                </div>
            </div>
            <div class="inspection_list_item" @click="selectBad" v-show="form.blsl > 0">
            <div class="inspection_list_item" @click="selectBad" v-if="Number(form.blsl) > 0">
                <span>不良说明</span>
                <div class="right1">
                    <span :style="form.blsm ? 'color: #000;' : ''">{{ form.blsm ? form.blsm : '点击选择不良原因'}}</span>
@@ -54,7 +54,7 @@
        <div class="inspection_footer">
            <button class="inspection_footer_sub" @click="submit" v-preventReClick>提交</button>
        </div>
        <u-picker :show="show1" title="请选择不良说明" :columns="columns" @cancel="show1=false" @confirm="badConfirm"></u-picker>
        <u-picker :show="show1" title="请选择不良说明" :columns="columns" keyName="name" @cancel="show1=false" @confirm="badConfirm"></u-picker>
    </view>
</template>
@@ -98,6 +98,7 @@
                            id: item.id
                        }
                    })
                    console.log(bad);
                    this.columns = [bad]
                })
            uni.$on('workOrder', (data) => {
minipro_standard/pages/linePatrol/linePatrol.vue
@@ -41,7 +41,7 @@
                    <span class="dw" v-if="info.umodel">{{info.umodel.name}}</span>
                </div>
            </div>
            <div class="inspection_list_item" @click="selectBad" v-show="form.blsl > 0">
            <div class="inspection_list_item" @click="selectBad" v-if="form.blsl > 0">
                <span>不良说明</span>
                <div class="right1">
                    <span :style="form.blsm ? 'color: #000;' : ''">{{ form.blsm ? form.blsm : '点击选择不良原因'}}</span>
@@ -52,7 +52,7 @@
        <div class="inspection_footer">
            <button class="inspection_footer_sub" @click="submit" v-preventReClick>提交</button>
        </div>
        <u-picker :show="show1" title="请选择不良说明" :columns="columns" @cancel="show1=false" @confirm="badConfirm"></u-picker>
        <u-picker :show="show1" title="请选择不良说明" :columns="columns" keyName="name" @cancel="show1=false" @confirm="badConfirm"></u-picker>
    </view>
</template>
minipro_standard/pages/login/login.vue
@@ -7,15 +7,15 @@
        </view>
        <view class="bg_w rd8 ptb30 pl40 bbox com-input flex input-height">
            <image src="@/static/login_ic_code@2x.png" mode="" class="img40 mr25"></image>
            <u--input placeholder="企业代码" border="none" v-model="from.companyId"></u--input>
            <u--input placeholder="企业代码" border="none" v-model="form.companyId"></u--input>
        </view>
        <view class="bg_w rd8 ptb30 pl40 bbox mt40 flex input-height">
            <image src="@/static/login_ic_phone@2x.png" mode="" class="img40 mr25"></image>
            <u--input placeholder="手机号" border="none" v-model="from.username"></u--input>
            <u--input placeholder="手机号" border="none" v-model="form.username"></u--input>
        </view>
        <view class="bg_w rd8 ptb30 pl40 bbox mt40 flex input-height">
            <image src="@/static/login_ic_password@2x.png" mode="" class="img40 mr25"></image>
            <u--input placeholder="密码" border="none" v-model="from.password"></u--input>
            <u--input placeholder="密码" border="none" password v-model="form.password"></u--input>
        </view>
        <view class="login-btn mt80" @click="loginAction">立即登录</view>
    </view>
@@ -26,7 +26,7 @@
    export default {
        data() {
            return {
                from: {
                form: {
                    openid: '',
                    unionid: '',
                    companyId: '',
@@ -56,8 +56,8 @@
                                        });
                                    }
                                } else {
                                    that.from.openid = res.data.openid
                                    that.from.unionid = res.data.unionid
                                    that.form.openid = res.data.openid
                                    that.form.unionid = res.data.unionid
                                }
                            }
                        })
@@ -66,10 +66,10 @@
        },
        methods: {
            async loginAction() {
                if (!this.from.companyId) return uni.showToast({ title: '企业代码不能为空', icon:"error", duration: 2000 });
                if (!this.from.username) return uni.showToast({ title: '手机号不能为空', icon:"error", duration: 2000 });
                if (!this.from.password) return uni.showToast({ title: '密码不能为空', icon:"error", duration: 2000 });
                let res = await wxAccountLogin(this.from)
                if (!this.form.companyId) return uni.showToast({ title: '企业代码不能为空', icon:"error", duration: 2000 });
                if (!this.form.username) return uni.showToast({ title: '手机号不能为空', icon:"error", duration: 2000 });
                if (!this.form.password) return uni.showToast({ title: '密码不能为空', icon:"error", duration: 2000 });
                let res = await wxAccountLogin(this.form)
                if (res.code === 200) {
                    await this.$store.commit('SETSESSION', res.data)
                    let user = await getUserInfo({})
@@ -122,6 +122,8 @@
    }
    .com-input {
        margin-top: -60px;
        position: relative;
        z-index: 2;
    }
    .login-btn {
        height: 98rpx;
minipro_standard/pages/mine/mine.vue
@@ -2,7 +2,7 @@
<view>
    <div class="box">
        <div class="box_info" :style="{background: 'url(' + img + ')'}">
            <image :src="userInfo.avatar ? userInfo.avatar : avatar" mode="widthFix" />
            <image :src="avatar" mode="widthFix" />
            <div class="box_info_box">
                <text>{{userInfo.realname}}</text>
                <div class="box_info_box_x" @click="switchOrganization">
@@ -192,7 +192,7 @@
            width: 350rpx;
            height: 88rpx;
            background: #F7F7F7;
            border-radius: 8rpx;
            border-radius: 44rpx;
            display: flex;
            align-items: center;
            justify-content: center;
minipro_standard/pages/plannedDistribution/plannedDistribution.vue
@@ -93,6 +93,13 @@
        },
        onLoad() {
            this.getLists()
            uni.$on('update', (data) => {
                this.isLoading = true
                this.search.page = 0
                this.list = []
                this.finished = false
                this.getLists()
            })
        },
        methods: {
            // ä¸‹æ‹‰åˆ·æ–°
@@ -107,7 +114,9 @@
            // ç‚¹å‡»å½“前项
            clickItem(i) {
                this.list.forEach((item, index) => {
                    item.isActive = i === index;
                    if (i === index) {
                        item.isActive = !item.isActive
                    }
                })
            },
            // æœç´¢
@@ -139,7 +148,7 @@
                    return
                }
                uni.navigateTo({
                    url: `/pages/allocation/allocation?gxid=${data.procedureId}&jhid=${data.id}&num=${data.workorderDistributNum ? data.num - data.workorderDistributNum : data.num}`
                    url: `/pages/allocation/allocation?gxid=${data.procedureId}&jhid=${data.id}&num=${data.num - data.workorderDistributNum - data.distributNoDoneNum}`
                });
            },
            // èŽ·å–å½“å‰ç”¨æˆ·æ‰€åˆ†é…çš„å·¥åº
minipro_standard/pages/plannedProgress/plannedProgress.vue
@@ -102,7 +102,9 @@
            </scroll-view>
        </view>
        <!-- é€‰æ‹©æ—¥æœŸ -->
        <u-calendar :show="timeShow" mode="range" @confirm="timeConfirm"></u-calendar>
        <!-- <u-calendar :show="timeShow" mode="range" @confirm="timeConfirm" @close="timeShow = false"></u-calendar> -->
        <l-calendar :lunar="false" v-model="timeShow" @change="timeConfirm" :isRange="true" activeBgColor="#305ED5"
            rangeColor="#305ED5" rangeBgColor="rgba(48, 80, 213, 0.1)"></l-calendar>
    </view>
</template>
@@ -217,8 +219,8 @@
            },
            // æ—¥æœŸç¡®å®š
            timeConfirm(val) {
                this.listData.startDate = val[0]
                this.listData.endDate = val[val.length - 1]
                this.listData.startDate = val.startDate
                this.listData.endDate = val.endDate
                this.timeShow = false
            },
            // åˆ‡æ¢å·¥åŽ‚
@@ -247,7 +249,8 @@
            },
            // ç‚¹å‡»æ ‡ç­¾æœç´¢
            clickTag(ids) {
                this.listData.cateIds = ids
                // ids ? ids.split(',') : []
                this.listData.cateIds = ids ? ids.split(',') : []
                this.listData.page = 0
                this.finished = false
                this.lists = []
@@ -332,7 +335,8 @@
                            endDate: this.listData.endDate,
                            procedureIdList: this.listData.procedureIds ? this.listData.procedureIds : [],
                            factoryId: this.listData.departIds,
                            statusList: this.listData.cateIds ? this.listData.cateIds.split(',') : []
                            statusList: this.listData.cateIds
                            // this.listData.cateIds ? this.listData.cateIds.split(',') : []
                        },
                        page: this.listData.page,
                        sorts: [
minipro_standard/pages/workbench/workbench.vue
@@ -6,7 +6,7 @@
                    <span>{{row.label}}</span>
                </view>
                <div class="menu_list_list">
                    <view class="menu_list_item" v-for="item in row.children" :key="item.id" @click="jump(item.url)">
                    <view class="menu_list_item" v-for="item in row.children" :key="item.id" @click="jump(item.urlSec)">
                        <image :src="item.icon" mode="widthFix" />
                        <span>{{item.label}}</span>
                    </view>
@@ -37,6 +37,7 @@
            };
        },
        onLoad() {
            this.$store.dispatch('getUpcomingNum')
            uni.hideTabBar()
        },
        methods: {
minipro_standard/pages_adjust/components/multipleMaterial.vue
@@ -3,7 +3,7 @@
        <view class="material-content bbox p30 rp">
            <view class="tc b f24 c2 mb20">选择物料</view>
            <v-Search @searchInput="searchInput" @submit="submit" :isShow="false" placeholder="搜索物料名称/编码" />
            <div class="content_total">共{{form.total}}条数据</div>
            <div class="content_total">共{{form.total}}条数据12</div>
            <view class="scroll-content">
                <!-- refresher-enabled="true"
                :refresher-triggered="refreshing"
@@ -63,8 +63,8 @@
            </view> -->
            <view class="fixedBottom bottom cY">
                <view class="fx1 bbox plr30">
                    <u-checkbox-group style="display: block;" name="" @change="selectAll()">
                        <u-checkbox :checked="isAll" label="全选"></u-checkbox>
                    <u-checkbox-group v-model="isAll" style="display: block;" @change="selectAll()">
                        <u-checkbox label="全选" name="all"></u-checkbox>
                    </u-checkbox-group>
                </view>
                <view class="submit sbtn_green bbox tc" @click="submitAction">{{ `提交(${totalNum})`}}</view>
@@ -97,6 +97,7 @@
                loading: false,
                finished: false,
                refreshing: false,
                isAll: false,
                total: 0
            };
        },
@@ -135,6 +136,7 @@
        },
        methods: {
            open() {
                this.isAll = false
                this.show = true
                this.refreshing = false
                this.finished = false
@@ -155,7 +157,7 @@
                this.form.page = 0
                this.finished = false
                this.list = []
                this.onLoad()
                this.loadData()
            },
            // æœç´¢æ¡†
            searchInput(data) {
@@ -163,7 +165,7 @@
                this.finished = false
                this.list = []
                this.form.smodelLabel = data
                this.onLoad()
                this.loadData()
            },
            loadData() {
                if (!this.finished) {
@@ -175,7 +177,8 @@
                        model: {
                            warehouseId: this.warehouseId,
                            warehouseQualityType: this.warehouseQualityType,
                            ids: this.selected.length > 0 ? this.selected.join(',') : ''
                            ids: this.selected.length > 0 ? this.selected.join(',') : '',
                            materialName: this.form.smodelLabel
                        }
                    }).then(res => {
                        if (this.refreshing) {
@@ -212,9 +215,11 @@
                this.pages.page = 1
                this.loadData()
            },
            selectAll() {
            selectAll(e) {
                console.log(e)
                console.log(this.isAll)
                this.list.forEach(element => {
                    element.isActive = this.all
                    element.isActive = e.length > 0 ? true : false
                })
            },
            submitAction () {
minipro_standard/pages_adjust/pages/InventoryQuery/InventoryQuery.vue
@@ -2,7 +2,7 @@
    <view class="content">
        <view class="content_search">
            <Search @searchInput="searchInput" @submit="submit" @reset="reset" :isShow="true"
                placeholder="搜索仓库名称/物料名称">
                placeholder="搜索仓库名称/物料编码">
                <template v-slot:content>
                    <view class="Search_item">
                        <view class="Search_item_label">汇总依据</view>
minipro_standard/pages_adjust/pages/OrderDetail/OrderDetail.vue
@@ -1,34 +1,25 @@
<template>
    <view>
        <workOrderInfo :orederMessage="info" />
        <view class="bg_cate">
        <!-- <view class="bg_cate">
            <view @click="clickIten(index)" :class="typeView == index ? 'bg_cate_item active' : 'bg_cate_item'"
                v-for="(item, index) in cate" :key="index">{{ item.name }}</view>
        </view>
        <div class="bg_list" v-if="typeView === 0">
        </view> -->
        <div class="bg_list">
            <div class="bg_list_item">
                <div class="bg_list_item_top">
                    <div class="bg_list_item_top_left">
                        <div class="bg_list_item_top_left_x bg_m"></div>
                        <span>投料明细</span>
                    </div>
                    <div class="bg_list_item_top_right" @click="jumpTL">
                        <!-- v-if="proxy.$auth('h5:workorderinput:create') && (info.bomType !== 1 || info.bomType == 0 || !info.bomType)" -->
                        <!-- <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="" /> -->
                        <!-- <img src="@/static/gongdan_ic_shoudong@2x.ong" alt="" /> -->
                        <image src="../../static/gongdan_ic_shoudong@2x.png" class="img28" mode=""></image>
                        <span class="cm">新增投料</span>
                    </div>
                </div>
                <template v-if="feedingData && feedingData.length > 0">
                    <u-swipe-action>
                        <u-swipe-action-item v-for="(item, index) in feedingData" :key="index" :options="options"
                            @click="deleItem(item.id, 'T')">
                    <view>
                        <view v-for="(item, index) in feedingData" :key="index">
                            <div class="bg_list_item_h">
                                <div class="bg_list_item_num">
                                    <div class="bg_list_item_num_item">
                                        <!-- <span>{{item.code}}</span> -->
                                        <div class="bg_list_item_num_item_wl">
                                            <span> {{ item.materialName || '墙体砖' }}{{ item.procedureName ? `&nbsp;|&nbsp;${item.procedureName}` : ''
                                        }}</span>
@@ -41,25 +32,17 @@
                                            </div>
                                        </div>
                                        <div class="bg_list_item_num_item_sr">
                                            <!-- :disabled="!proxy.$auth('h5:workorderinput:update')" -->
                                            <!-- <view class="cY">
                                                <span>{{item.num}}{{ item.unitName }}</span>
                                                <image src="../../../static/ic_edit@2x.png" class="img48" mode=""></image>
                                                <span class="red">删除</span>
                                            </view> -->
                                            <view class="cY">
                                                <input v-model="item.num"
                                                    @blur="change(item.id, item.num, 'T', item.maxNum, item, item.unitAttribute)"
                                                    type="number" />
                                                <span class="cm">保存</span>
                                                <view class="mr10">{{ item.num }}</view>
                                                <span v-if="info.umodel">{{ info.umodel.name }}</span>
                                            </view>
                                            
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </u-swipe-action-item>
                    </u-swipe-action>
                        </view>
                    </view>
                </template>
                <template v-else>
@@ -74,17 +57,17 @@
                        <div class="bg_list_item_top_left_x bg_m"></div>
                        <span>产出明细</span>
                    </div>
                    <div class="bg_list_item_top_right" @click="proRecord">
                        <span style="color: #4275FC;">查看检验记录</span>
                        <u-icon name="arrow-right" color="#4275FC" />
                    </div>
                </div>
                <div class="bg_list_item_h">
                    <div class="bg_list_item_num">
                        <div class="bg_list_item_num_item">
                            <span>良品数{{ info.umodel ? `(${info.umodel.name})` : '' }}</span>
                            <div class="bg_list_item_num_item_sr">
                                <!-- :disabled="!proxy.$auth('h5:workorderoutput:update')" -->
                                <!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
                                <input type="number" v-model="produceFrom.qualified"
                                    @blur="changeCC('0', produceFrom.qualified, produceFrom.qualifiedId)"
                                    placeholder="请输入" />
                                <view class="mr10">{{ produceFrom.qualified }}</view>
                                <span v-if="info.umodel">{{ info.umodel.name }}</span>
                            </div>
                        </div>
@@ -92,152 +75,46 @@
                </div>
                <div class="bg_list_item_h">
                    <div class="bg_list_item_num">
                        <!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
                        <div class="bg_list_item_num_item">
                            <span>不良数{{ info.umodel ? `(${info.umodel.name})` : '' }}</span>
                            <div class="bg_list_item_num_item_sr">
                                <!-- :disabled="!proxy.$auth('h5:workorderoutput:update')" -->
                                <!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
                                <input type="number" v-model="produceFrom.undesirable"
                                    @blur="changeCC('1', produceFrom.undesirable, produceFrom.undesirableId)"
                                    placeholder="请输入" />
                                <view class="mr10">{{ produceFrom.undesirable }}</view>
                                <span v-if="info.umodel">{{ info.umodel.name }}</span>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="bg_list_item_h" v-if="produceFrom.undesirable > 0">
                    <div class="bg_list_item_num">
                        <div class="bg_list_item_num_item" @click="badShow = true">
                            <span>不良项</span>
                            <div class="bg_list_item_num_item_sr">
                                <span class="wulll" :style="{ color: form.defectiveName ? '#305ED5' : '' }">{{ form.defectiveName ?
                              form.defectiveName : '设置' }}</span>
                                <image src="../../../static/ic_ar@2x.png" class="img_ar" mode=""></image>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="bg_plan" @click="TimeShow = true">
                <div class="bg_plan_label">
                    <span>报工时长</span>
                </div>
                <div class="bg_plan_label_val">
                    <span
                        :style="{ color: form.durationName ? '#333' : '' }">{{ form.durationName ? form.durationName : '请选择' }}</span>
                    <image src="../../../static/ic_ar@2x.png" class="img_ar" mode=""></image>
                </div>
            </div>
            <div class="bg_list_item" v-if="arrType && arrType.length > 0">
            <div class="bg_list_item">
                <div class="bg_list_item_top">
                    <div class="bg_list_item_top_left">
                        <div class="bg_list_item_top_left_x bg_m"></div>
                        <span>工资绩效</span>
                        <span>生产点检</span>
                    </div>
                </div>
                <div class="bg_list_item_h">
                    <div class="bg_list_item_num">
                        <div class="bg_list_item_num_item">
                            <span>计件方式</span>
                            <div class="bg_list_item_num_item_list">
                                <div :class="form.index == index ? 'bg_list_item_num_item_list_item active' : 'bg_list_item_num_item_list_item'"
                                    v-for="(item, index) in arrType" :key="index"
                                    @click="clickPerformanceType(item, index)">
                                    {{ item.name }}
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="bg_list_item_num">
                        <div class="bg_list_item_num_item">
                            <span>工资单价</span>
                            <div class="bg_list_item_num_item_sr">
                                <span class="color1">{{ (arrType[form.index].salary / 10 / 10).toFixed(2) }}元/{{ arrType[form.index].type ==
                          0 ? 'ä»¶' : '时' }}</span>
                            </div>
                        </div>
                    </div>
                    <div class="bg_list_item_num">
                        <div class="bg_list_item_num_item">
                            <span>预计工资</span>
                            <div class="bg_list_item_num_item_sr">
                                <span class="color1">{{ expectedSalary }}元</span>
                            </div>
                        </div>
                    </div>
                    <div class="bg_list_item_num">
                        <div class="bg_list_item_num_item">
                            <span>达标率</span>
                            <div class="bg_list_item_num_item_sr">
                                <span class="color1">{{ complianceRate }}%</span>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="details_dj" v-if="typeView === 1">
                <template v-if="djData && djData.length > 0">
                    <div class="details_dj">
            <div class="details_dj_list">
                <scroll-view scroll-y="true" refresher-enabled="true" @scrolltolower="getLists">
                    <u-swipe-action v-for="(item, index) in djData" :key="index">
                        <u-swipe-action-item :options="options" @click="dele(item.id)">
                                <view v-for="(item, index) in djData" :key="index">
                            <div class="details_dj_list_item">
                                <span>{{ item.attrName }}:{{ item.val }}</span>
                                <span>{{ item.userName }} {{ item.createTime }}</span>
                            </div>
                        </u-swipe-action-item>
                    </u-swipe-action>
                                </view>
                </scroll-view>
                <!-- <u-swipe-action>
                    <u-swipe-action-item v-for="(item, index) in djData" :key="index" :options="options"
                        @click="dele(item.id)">
                        <div class="details_dj_list_item">
                            <span>{{ item.attrName }}:{{ item.val }}</span>
                            <span>{{ item.userName }} {{ item.createTime }}</span>
                        </div>
                    </u-swipe-action-item>
                </u-swipe-action> -->
            </div>
        </div>
        <!-- v-if="info.status === 2 || info.procedureNeedcheck === 1" -->
        <template>
            <div class="bh_zw"></div>
            <div class="bg_footer bg_f7">
                <div class="bg_footer_submit bg_m" v-if="typeView == 0" @click="submit">确认报工</div>
                <!-- proxy.$auth('h5:workorder:processRecord') &&  -->
                <div class="bg_footer_submit1" @click="jumpdj" v-if="typeView == 1">
                    <image src="../../../static/gongdan_ic_shoudong@2x.png" class="fornt-img" mode=""></image>
                    <span>新增点检</span>
                </div>
            </div>
        </template>
        <u-datetime-picker :show="TimeShow" @cancel="TimeShow=false" @confirm="timeConfirm" v-model="form.time"
            mode="time"></u-datetime-picker>
        <u-popup :show="badShow" @close="badShow=false" :round="8" closeable zIndex="20000">
            <view class="rp p40 contanir">
                <view class="c2 b tc">不良项</view>
                <view class="content bl_list">
                    <div class="bl_list_item" v-for="(item, i) in cateList" :key="i" @click="changeChecked(i)">
                        <div class="bl_list_item_left">
                            <u-checkbox-group>
                                <u-checkbox :checked="item.active" :label="item.name"
                                    :name="item.name">
                                </u-checkbox>
                            </u-checkbox-group>
                <template v-else>
                    <div class="kong">
                        <span>暂无数据</span>
                        </div>
                        <div class="bl_list_item_right">
                            <input type="number" @click.stop v-model="item.num" placeholder="0" />
                </template>
                        </div>
                    </div>
                </view>
                <view class="flex ap tc bottom-view">
                    <view class="fx1 ml20 ptb20 sbtn_green" @click="confirm">确定</view>
                </view>
            </view>
        </u-popup>
    </view>
</template>
@@ -265,7 +142,9 @@
        queryOne,
        queryList
    } from '@/util/api/PlanningAPI'
    import { REGULAR } from '@/util/utils'
    import {
        REGULAR
    } from '@/util/utils'
    export default {
        components: {
            workOrderInfo
@@ -278,7 +157,8 @@
                    },
                    {
                        name: '点检'
                    }],
                    }
                ],
                form: {
                    time: '',
                    efective: [],
@@ -317,6 +197,7 @@
            this.queryByIds()
            this.getOrocessRecords()
            this.getData()
            this.getOrocessRecordCC()
            uni.$on('spotAdd', () => {
                if (this.typeView == 1) {
                    this.pages.page = 1
@@ -457,6 +338,11 @@
                    url: `/pages_adjust/pages/spotCheck/spotCheck?id=${this.workorderId}`
                })
            },
            proRecord() {
                uni.navigateTo({
                    url: `/pages_inspect/pages/InspectionRecords/InspectionRecords?id=${this.workorderId}`
                })
            },
            pageDJs() {
                pageDJ({
                    capacity: this.pages.capacity,
@@ -465,7 +351,9 @@
                        workorderId: this.workorderId
                    }
                }).then(res => {
                    let {data} = res
                        let {
                            data
                        } = res
                    if (data.page == 1) {
                        this.djData = []
                    }
@@ -570,6 +458,16 @@
                }).then(res => {
                    if (res.code === 200) {
                        this.feedingData = res.data
                    }
                })
            },
            getOrocessRecordCC() {
                getWorkorderRecordListStandard({
                    workorderId: this.workorderId
                }).then(res => {
                    if (res.data.length > 0) {
                        this.produceFrom.qualified = res.data[0].qualifiedNum
                        this.produceFrom.undesirable = res.data[0].unqualifiedNum
                    }
                })
            },
@@ -838,9 +736,9 @@
                            display: flex;
                            align-items: center;
                            justify-content: flex-end;
                            .color1 {
                                font-size: 28rpx;
                            .color1 {
                                font-family: PingFangSC-Regular, PingFang SC;
                                font-weight: 400;
                                color: #333333;
minipro_standard/pages_adjust/pages/manualFeed/manualFeed.vue
@@ -48,6 +48,11 @@
                </div>
            </u-swipe-action-item>
        </u-swipe-action>
        <view class="" style="height: 88rpx;"></view>
        <u-safe-bottom></u-safe-bottom>
        <div class="tl_footer">
            <button class="tl_footer_submit" v-preventReClick @click="submit">提交</button>
        </div>
        <SelectMaterial ref="selectMaterial" @selectAction="getValue" />
        <!-- <SelectMultipleMaterial ref="selectMultipleMaterial" @selected="getMaterails"/> -->
    </view>
@@ -171,7 +176,7 @@
                    this.materialList[index].num = ''
                }
            },
            getValue(v) {
            getValue(item) {
                for (let i = 0; i < this.materialList.length; i++) {
                    if (item.id === this.materialList[i].id) {
                        uni.$u.toast({
@@ -190,9 +195,42 @@
                this.materialList[this.index].qualityType = item.qualityType
                this.materialList[this.index].unitAttribute = item.unitAttribute
            },
            // getMaterails({materials}) {
            //     console.log(item);
            // }
            submit() {
                let temp = this.materialList.findIndex(item => !item.id || !item.num)
                if (temp != -1) {
                    uni.$u.toast(`请先完善第${temp + 1}条投料信息`)
                    return
                }
                let total = this.materialList.reduce((accumulator, currentValue) => accumulator + Number(currentValue.num),
                    0)
                console.log(total);
                if (this.info.bomType != 1 && this.info.hasBom != 1) {
                    if (total > this.info.planNum) {
                        uni.$u.toast(`投料数量不能大于计划数量`)
                        return
                    }
                }
                let recordList = this.materialList.map(item => {
                    return {
                        wstockId: item.id,
                        num: item.num
                    }
                })
                createMaterialStandard({
                    id: this.workorderId,
                    recordList
                }).then(res => {
                    if (res.code === 200) {
                        // Toast.success({ message: '投料成功', duration: 2000, forbidClick: true })
                        // setTimeout(() => {
                        //   router.go(-1)
                        // }, 2000)
                        uni.$u.toast(`投料成功`)
                        uni.$emit('addMaterial')
                        uni.navigateBack()
                    }
                })
            }
        }
    }
</script>
@@ -341,9 +379,10 @@
            width: 100%;
            position: fixed;
            bottom: 0;
            left: 0;
            padding: 0 30rpx 68rpx 30rpx;
            padding: 0 30rpx calc(env(safe-area-inset-bottom) + 20rpx);
            box-sizing: border-box;
            z-index: 999;
            background-color: #fff;
            .tl_footer_submit {
                width: 690rpx;
minipro_standard/pages_adjust/pages/outboundDetails/outboundDetails.vue
@@ -71,7 +71,7 @@
                    <view class="content_list_item_content_item">
                        <view class="content_list_item_content_item_label">批次号:</view>
                        <view class="content_list_item_content_item_nr">
                            {{ item.batch }}
                            {{ item.batch ? item.batch : '-' }}
                        </view>
                    </view>
                    <view class="content_list_item_content_item">
minipro_standard/pages_adjust/pages/outboundList/outboundList.vue
@@ -90,8 +90,10 @@
            </scroll-view>
        </view>
        <!-- é€‰æ‹©æ—¥æœŸ -->
        <u-calendar mode="range" :show="timeShow" :minDate="minDate" :maxDate="maxDate" @close="timeShow = false"
            @confirm="timeConfirm"></u-calendar>
        <!-- <u-calendar mode="range" :show="timeShow" :minDate="minDate" :maxDate="maxDate" @close="timeShow = false"
            @confirm="timeConfirm"></u-calendar> -->
        <l-calendar :lunar="false" v-model="timeShow" @change="timeConfirm" :isRange="true" activeBgColor="#305ED5"
            rangeColor="#305ED5" rangeBgColor="rgba(48, 80, 213, 0.1)"></l-calendar>
    </view>
</template>
@@ -360,8 +362,8 @@
            },
            // æ—¥æœŸç¡®å®š
            timeConfirm(val) {
                this.listData.planDateEnd = val[val.length - 1]
                this.listData.planDateStart = val[0]
                this.listData.planDateEnd = val.endDate
                this.listData.planDateStart = val.startDate
                this.timeShow = false
            },
            // åˆ‡æ¢å·¥åº
minipro_standard/pages_adjust/pages/reportingForWork/reportingForWork.vue
@@ -2,7 +2,7 @@
    <view class="bg">
        <view class="bg_plan" @click="selectPlan">
            <view class="bg_plan_label" v-if="!from.processPlan">
                <text><b>*</b>工序生产计划</text>
                <text><text>*</text>工序生产计划</text>
            </view>
            <view class="bg_plan_nr" v-else>
                <text>{{ from.processPlan.materialName }} | {{ from.processPlan.materialCode }} | {{ from.processPlan.produceName }}</text>
@@ -109,7 +109,7 @@
                <view class="bg_list_item_h">
                    <view class="bg_list_item_num">
                        <view class="bg_list_item_num_item">
                            <text><b>*</b>良品数</text>
                            <text><text>*</text>良品数</text>
                            <view class="bg_list_item_num_item_sr">
                                <u--input
                                    placeholder="请输入"
@@ -143,7 +143,8 @@
                    </view>
                    <view class="bg_list_item_num" v-if="from.undesirable > 0">
                        <view class="bg_list_item_num_item" @click="openBL">
                            <text><b>*</b>不良项</text>
                            <!-- <text>*</text> -->
                            <text>不良项</text>
                            <view class="bg_list_item_num_item_sr">
                                <text class="wulll" :style="{color: from.defectiveName ? '#305ED5' : ''}">{{from.defectiveName ? from.defectiveName : '设置'}}</text>
                                <image src="@/static/ic_ar@2x.png" alt="" />
@@ -161,7 +162,7 @@
                    <image src="@/static/ic_ar@2x.png" alt="" />
                </view>
            </view>
            <view class="bg_list_item" v-if="arrType && arrType.length > 0">
            <view class="bg_list_item" v-if="arrType && arrType.length > 0 && from.duration > 0">
                <view class="bg_list_item_top">
                    <view class="bg_list_item_top_left">
                        <view class="bg_list_item_top_left_x"></view>
@@ -258,9 +259,9 @@
                    processPlan: null,
                    deviceId: '',
                    deviceName: '',
                    // userId: store.state.userInfo.id,
                    // userId: userInfo.id,
                    userId: '',
                    // userName: store.state.userInfo.companyUser.name,
                    // userName: userInfo.companyUser.name,
                    userName: '',
                    qualified: '',  // è‰¯å“æ•°
                    undesirable: '', // ä¸è‰¯æ•°
@@ -333,8 +334,13 @@
            }
        },
        onReady() {
            let timer = setInterval(() => {
                if (this.userInfo) {
            this.from.userId = this.userInfo.id
            this.form.userName = this.userInfo.realname
                    this.from.userName = this.userInfo.realname
                    clearInterval(timer)
                }
            }, 500)
        },
        onLoad() {
            let arr = []
@@ -722,7 +728,7 @@
                font-family: PingFangSC-Regular, PingFang SC;
                font-weight: 400;
                color: #222222;
                b {
                text {
                    color: red;
                }
            }
@@ -932,9 +938,9 @@
                                overflow: hidden;
                                text-overflow: ellipsis;
                                white-space: nowrap;
                                b {
                                text {
                                    font-size: 30rpx;
                                    color: red;
                                    color: red !important;
                                    margin-right: 5rpx;
                                }
                                .warning {
minipro_standard/pages_adjust/pages/transferList/transferList.vue
@@ -103,13 +103,15 @@
            </scroll-view>
        </view>
        <!-- é€‰æ‹©æ—¥æœŸ -->
        <u-calendar
        <!-- <u-calendar
        :show="timeShow"
        mode="range"
        @close="timeShow = false"
        :minDate="minDate"
        :maxDate="maxDate"
        @confirm="timeConfirm"></u-calendar>
        @confirm="timeConfirm"></u-calendar> -->
        <l-calendar :lunar="false" v-model="timeShow" @change="timeConfirm" :isRange="true" activeBgColor="#305ED5"
            rangeColor="#305ED5" rangeBgColor="rgba(48, 80, 213, 0.1)"></l-calendar>
    </view>
</template>
@@ -416,8 +418,8 @@
            // æ—¥æœŸç¡®å®š
            timeConfirm(val) {
                this.listData.outPlanDateStart = val[0]
                this.listData.outPlanDateEnd = val[val.length - 1]
                this.listData.outPlanDateStart = val.startDate
                this.listData.outPlanDateEnd = val.endDate
                this.timeShow = false
            },
            // åˆ‡æ¢å·¥åŽ‚
minipro_standard/pages_adjust/pages/warehousingDetails/warehousingDetails.vue
@@ -86,7 +86,7 @@
                        <view class="content_list_item_content_item">
                            <view class="content_list_item_content_item_label">批次号:</view>
                            <view class="content_list_item_content_item_nr">
                                {{ item.batch }}
                                {{ item.batch ? item.batch : '-' }}
                            </view>
                        </view>
                        <view class="content_list_item_content_item">
@@ -140,6 +140,7 @@
    export default {
        data() {
            return {
                id: null,
                types: [{
                        name: '全部',
                        id: '',
@@ -255,6 +256,7 @@
            };
        },
        onLoad(option) {
            this.id = option.id
            wTransferExtDetail(option.id)
                .then(res => {
                    this.data = res.data
@@ -269,6 +271,9 @@
                if (this.data.status === 0) { // å‡ºåº“
                    console.log('出库')
                    // router.push({ name: 'issueOperation', query: { id: route.query.id, type: 7 } })
                    uni.navigateTo({
                        url: `/pages/OutOperation/OutOperation?id=${this.id}&type=7`
                    });
                } else if (this.data.status === 1) { // å…¥åº“
                    if (this.data.type === 3) { // å¤‡æ–™ç¡®è®¤
                        console.log('备料确认')
@@ -276,6 +281,9 @@
                        return
                    }
                    console.log('入库')
                    uni.navigateTo({
                        url: `/pages/InOperation/InOperation?id=${this.id}&type=7`
                    });
                    // router.push({ name: 'warehousing', query: { id: route.query.id, type: 7 } })
                }
            },
minipro_standard/pages_adjust/pages/warehousingList/warehousingList.vue
@@ -89,8 +89,10 @@
            </scroll-view>
        </view>
        <!-- é€‰æ‹©æ—¥æœŸ -->
        <u-calendar :show="timeShow" mode="range" :minDate="minDate" :maxDate="maxDate" @close="timeShow = false"
            @confirm="timeConfirm"></u-calendar>
        <!-- <u-calendar :show="timeShow" mode="range" :minDate="minDate" :maxDate="maxDate" @close="timeShow = false"
            @confirm="timeConfirm"></u-calendar> -->
        <l-calendar :lunar="false" v-model="timeShow" @change="timeConfirm" :isRange="true" activeBgColor="#305ED5"
            rangeColor="#305ED5" rangeBgColor="rgba(48, 80, 213, 0.1)"></l-calendar>
    </view>
</template>
@@ -385,8 +387,8 @@
            },
            // æ—¥æœŸç¡®å®š
            timeConfirm(val) {
                this.listData.planDateStart = val[0]
                this.listData.planDateEnd = val[val.length - 1]
                this.listData.planDateStart = val.startDate
                this.listData.planDateEnd = val.endDate
                this.timeShow = false
            },
            // åˆ‡æ¢å•据类型
minipro_standard/pages_adjust/pages/workOrder/workOrder.vue
@@ -1,7 +1,7 @@
<template>
    <view class="content p30">
        <div class="content_search">
            <v-Search @searchInput="searchInput" @submit="submit" @reset="reset" :isShow="true"
            <v-Search @searchInput="searchForm.mixParam" @submit="search" @reset="reset" :isShow="true"
                placeholder="搜索工单编码/工序名称">
                <template v-slot:content>
                    <div class="Search_item">
@@ -28,7 +28,7 @@
                <div class="content_list_item" v-for="(item, i) in list" :key="i" @click="jump(item)">
                    <div class="content_list_item_top">
                        <div class="content_list_item_top_left">
                            <span v-if="item.mmodel">{{item.mmodel.name}} | {{item.procedureName}}</span>
                            <span class="f32" v-if="item.mmodel">{{item.mmodel.name}} | {{item.procedureName}}</span>
                            <div class="content_list_item_top_left_tag" v-if="item.urgent">优先{{item.urgent}}</div>
                            <div class="content_list_item_top_left_tag backgreen" v-if="item.type === 0">正常</div>
                            <div class="content_list_item_top_left_tag backyellow" v-if="item.type === 2">返工返修</div>
@@ -45,7 +45,7 @@
                            <span class="green" v-if="item.status === 7">进行中</span>
                        </div>
                    </div>
                    <span>工单编号: {{item.code}}</span>
                    <span class="f24">工单编号: {{item.code}}</span>
                    <div class="content_list_item_content">
                        <div class="content_list_item_content_item">
                            <div class="content_list_item_content_item_label">物料编码:</div>
@@ -79,7 +79,9 @@
                </div>
            </div>
        </scroll-view>
        <u-calendar :show="isOpenDate" mode="range" @confirm="dateConfirm"></u-calendar>
        <!-- <u-calendar :show="isOpenDate" mode="range" @confirm="dateConfirm"></u-calendar> -->
        <l-calendar :lunar="false" v-model="isOpenDate" @change="onConfirm" :isRange="true" activeBgColor="#305ED5"
            rangeColor="#305ED5" rangeBgColor="rgba(48, 80, 213, 0.1)"></l-calendar>
    </view>
</template>
@@ -90,6 +92,7 @@
        getList,
        pageCount
    } from '@/util/api/WorkOrderAPI.js'
    import { gsdate } from '@/util/utils.js'
    export default {
        components: {
            vSearch,
@@ -119,7 +122,7 @@
                searchForm: {
                    mixParam: '',
                    startDate: '',
                    endDate: '',
                    endDate: gsdate(new Date()),
                    statusList: []
                },
                page: {
@@ -135,6 +138,17 @@
            this.loadData()
        },
        methods: {
            reset() {
                this.searchForm = {
                    mixParam: '',
                    startDate: '',
                    endDate: gsdate(new Date()),
                    statusList: []
                }
                this.page.page = 1
                this.pageCounts()
                this.loadData()
            },
            loadData() {
                getList({
@@ -163,7 +177,7 @@
            pageCounts() {
                pageCount({
                    ...this.searchForm,
                    endDate: this.searchForm.endDate ? (this.searchForm.endDate + ' 23:59:59') : '',
                    endDate: this.searchForm.endDate || '',
                    statusList: this.searchForm.statusList.length === 0 ? this.tagList[0].id : this.searchForm
                        .statusList
                }).then(res => {
@@ -195,6 +209,10 @@
                this.page.page = 1
                this.loadData()
            },
            search() {
                this.page.page = 1
                this.loadData()
            },
            jump(item) {
                // uni.navigateTo({
                //     url: `/pages_adjust/pages/OrderDetail/OrderDetail?id=${item.id}`
minipro_standard/pages_adjust/pages/workOrderReporting/workOrderReporting.vue
@@ -189,7 +189,7 @@
            </div>
        </div>
        <!-- v-if="info.status === 2 || info.procedureNeedcheck === 1" -->
        <template>
        <template v-if="info.status === 2 || info.procedureNeedcheck === 1">
            <div class="bh_zw"></div>
            <div class="bg_footer bg_f7">
                <div class="bg_footer_submit bg_m" v-if="typeView == 0" @click="submit">确认报工</div>
@@ -248,7 +248,9 @@
        queryOne,
        queryList
    } from '@/util/api/PlanningAPI'
    import { REGULAR } from '@/util/utils'
    import {
        REGULAR
    } from '@/util/utils'
    export default {
        components: {
            workOrderInfo
@@ -312,6 +314,9 @@
                    this.pages.page = 1
                    this.pageDJs()
                }
            })
            uni.$on('addMaterial', () => {
                this.getOrocessRecords()
            })
        },
        computed: {
@@ -535,7 +540,9 @@
                    if (res.code === 200) {
                            uni.$u.toast('报工成功')
                      setTimeout(() => {
                        uni.navigateBack({ data: 2})
                            uni.navigateBack({
                                data: 2
                            })
                      }, 2000)
                    }
                  })
@@ -562,7 +569,9 @@
                        workorderId: this.workorderId
                    }
                }).then(res => {
                    let {data} = res
                        let {
                            data
                        } = res
                    if (data.page == 1) {
                        this.djData = []
                    }
@@ -639,6 +648,27 @@
                    // url: ''
                    url: `/pages_adjust/pages/manualFeed/manualFeed?id=${this.workorderId}`
                })
            },
            deleItem(id, type) {
                uni.showModal({
                    title: '提示',
                    content: '确定删除此条记录吗?',
                    success: (res) => {
                        if (res.confirm) {
                            console.log('用户点击确定');
                            deleteCT(id)
                                .then(res => {
                                    this.getOrocessRecords()
                                    // if (type === 'C') {
                                    //     this.getOrocessRecordCC()
                                    // } else if (type === 'T') {
                                    //     this.getOrocessRecords()
                                    // }
                                })
                                .catch(err => {})
                        }
                    }
                })
            }
        }
    }
minipro_standard/pages_inspect/pages/InspectionRecords/InspectionRecords.vue
@@ -99,7 +99,9 @@
            </scroll-view>
        </view>
        <!-- é€‰æ‹©æ—¥æœŸ -->
        <u-calendar :show="timeShow" mode="range" @confirm="timeConfirm" @close="timeShow = false"></u-calendar>
        <!-- <u-calendar :show="timeShow" mode="range" @confirm="timeConfirm" @close="timeShow = false"></u-calendar> -->
        <l-calendar :lunar="false" v-model="timeShow" @change="timeConfirm" :isRange="true" activeBgColor="#305ED5"
            rangeColor="#305ED5" rangeBgColor="rgba(48, 80, 213, 0.1)"></l-calendar>
    </view>
</template>
@@ -197,8 +199,8 @@
            },
            // æ—¥æœŸç¡®å®š
            timeConfirm(val) {
                this.pageData.checkStartDate = val[0]
                this.pageData.checkEndDate = val[val.length - 1]
                this.pageData.checkStartDate = val.startDate
                this.pageData.checkEndDate = val.endDate
                this.timeShow = false
            },
            // åˆ‡æ¢æ£€ç±»åž‹
minipro_standard/pages_inspect/pages/equipmentInspection/equipmentInspection.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,563 @@
<template>
    <view class="box1">
        <!--    è®¾å¤‡+日期   -->
        <view class="box_list">
            <view class="box_list_item" @click="open">
                <view class="box_list_item_left">
                    <text>检验设备</text><text>*</text>
                </view>
                <view class="box_list_item_right">
                    <text :style="form.equipmentName ? 'color: #000' : ''">{{ form.equipmentName ? form.equipmentName : '点击选择巡检设备' }}</text>
                    <u-icon name="arrow-right" color="#999999" size="18"></u-icon>
                </view>
            </view>
            <view class="box_list_code" @click.stop="openCode">
                <view class="boxs">
                    <image src="@/static/jianyan_ic_saoma@2x.png" alt="" />
                    <text>扫描设备</text>
                </view>
            </view>
            <view class="box_list_item" @click="showTime = true">
                <view class="box_list_item_left">
                    <text>巡检时间</text><text>*</text>
                </view>
                <view class="box_list_item_right">
                    <text class="black">{{form.time}}</text>
                    <u-icon name="arrow-right" color="#999999" size="18"></u-icon>
                </view>
            </view>
        </view>
        <!--    çŠ¶æ€+图片/视频   -->
        <view class="box_list1">
            <view class="box_list1_item">
                <view class="box_list1_item_left">
                    <text>设备状态</text><text>*</text>
                </view>
                <view class="box_list1_item_right">
                    <view class="box_list1_item_right_item" :class="{'active': item.active}"
                        v-for="(item, index) in status" :key="index" @click="changeItem(index, item.id)">{{item.name}}
                    </view>
                </view>
            </view>
            <view class="box_list1_club">
                <view class="box_list1_club_label">巡检现场照片<text v-show="form.status == '1'">*</text></view>
                <view class="box_list1_club_list">
                    <view class="box_list1_club_list_item" @click="uploadFile">
                        <view class="type">
                            <image class="type_img" src="@/static/btn_upload@2x.png" alt="" />
                        </view>
                    </view>
                    <view class="box_list1_club_list_item" v-for="(item, index) in form.files" :key="index"
                        @click="seeBigFile(index)">
                        <image class="close" src="@/static/ic_delete@2x.png" @click.stop="dele(index)" />
                        <image class="play" src="@/static/ic_play@2x.png" v-if="item.type === 1" />
                        <view class="type">
                            <video :src="item.url" v-if="item.type === 1"></video>
                            <image v-else class="type_img" :src="item.url" mode="widthFix" />
                        </view>
                    </view>
                    <view class="box_list1_club_list_item1"></view>
                    <view class="box_list1_club_list_item1"></view>
                </view>
            </view>
        </view>
        <view class="box_list2">
            <view class="box_list2_label">备注</view>
            <textarea name="" id="" v-model="form.remarks" cols="20" rows="5" maxlength="300"
                placeholder="请详细描述巡检情况"></textarea>
        </view>
        <view class="box_footer">
            <button class="box_footer_submit" v-preventReClick @click="submit">提交</button>
        </view>
        <!-- é€‰æ‹©æ—¶é—´ -->
        <u-datetime-picker :show="showTime" v-model="currentDate" @cancel="showTime = false" @confirm="queding" mode="datetime"></u-datetime-picker>
    </view>
</template>
<script>
    import { getBarcodeContent } from '@/util/api/WorkOrderAPI'
    import { saveBean, getDeviceByCondition, getsbInfo } from '@/util/api/QualityAPI'
    import { queryListByCode, uploadFiles } from '@/util/api/index'
    import { QRCodeType, baseUrl } from '@/common/config.js'
    import { setTime, judgmentType } from '@/util/utils.js'
    import { mapState } from 'vuex'
    export default {
        data() {
            return {
                status: [{
                        name: '正常',
                        active: true,
                        id: '0'
                    },
                    {
                        name: '异常',
                        active: false,
                        id: '1'
                    }
                ],
                columns: [],
                path: '',
                showTime: false,
                currentDate: new Date(),
                form: {
                    equipmentId: '', // è®¾å¤‡id
                    equipmentName: '', //设备名称
                    time: '', // å·¡æ£€æ—¶é—´
                    status: '0', // è®¾å¤‡çŠ¶æ€
                    files: [], // å·¡æ£€å›¾ç‰‡/视频
                    remarks: '' // å¤‡æ³¨
                }
            };
        },
        onLoad() {
            this.form.time = setTime(new Date(), '-')
            this.getqueryListByCode()
        },
        computed: {
            ...mapState(['session'])
        },
        methods: {
            // ç¡®è®¤é€‰æ‹©æ—¥æœŸ
            queding(val) {
                this.form.time = uni.$u.timeFormat(val.value, 'yyyy-mm-dd hh:MM:ss')
                this.showTime = false
            },
            // æ‰«ç 
            openCode() {
                uni.scanCode({
                    onlyFromCamera: true,
                    success: function (result) {
                        getBarcodeContent({
                            barcode: result.result
                        }).then(res => {
                            if (res.code === 200) {
                                if (res.data.barcodeType === QRCodeType.SB) {
                                    getsbInfo(res.data.id)
                                        .then(res1 => {
                                            if (res1.code === 200) {
                                                this.form.equipmentId = res1.data.id
                                                this.form.equipmentName = res1.data.name
                                            }
                                        })
                                } else {
                                    uni.showToast({
                                        title: '请扫描正确的设备码',
                                        icon: 'none',
                                        duration: 2000
                                    });
                                }
                            }
                        })
                    }
                });
            },
            // æ”¹å˜çŠ¶æ€
            changeItem(i, id) {
                this.status.forEach((item, index) => {
                    item.active = index === i;
                })
                this.form.status = id
            },
            submit() {
                if (!this.form.equipmentId) return uni.showToast({
                    title: '设备不能为空',
                    icon: 'none',
                    duration: 2000
                });
                if (!this.form.time) return uni.showToast({
                    title: '时间不能为空',
                    icon: 'none',
                    duration: 2000
                });
                if (!this.form.status) return uni.showToast({
                    title: '状态不能为空',
                    icon: 'none',
                    duration: 2000
                });
                if (this.form.status == '1') {
                    if (this.form.files.length === 0) return uni.showToast({
                        title: '现场照片不能为空',
                        icon: 'none',
                        duration: 2000
                    });
                }
                saveBean({
                    checkDate: this.form.time,
                    content: this.form.remarks,
                    deviceId: this.form.equipmentId,
                    status: this.form.status,
                    multiFilesSaveBeans: this.form.files
                }).then(res => {
                    if (res.code === 200) {
                        uni.showToast({
                            title: '提交成功',
                            icon: 'success',
                            duration: 2000,
                            mask: true
                        });
                        setTimeout(() => {
                            uni.navigateBack({
                                delta: 1
                            });
                        }, 2000)
                    }
                })
            },
            // èŽ·å–å½“å‰ç”¨æˆ·ä¸‹æ‰€æœ‰è®¾å¤‡
            getSB() {
                getDeviceByCondition({})
                    .then(res => {
                        if (res.code === 200 && res.data && res.data.length > 0) {
                            this.columns = []
                            res.data.forEach(item => {
                                this.columns.push({ text: item.name, id: item.id })
                            })
                        }
                    })
            },
            // èŽ·å–æ–‡ä»¶
            async upFile(e) {
                if (this.form.files.length + e.target.files.length > 9) {
                    uni.showToast({
                        title: '最多只能上传9个图片/视频',
                        icon: 'none',
                        duration: 2000
                    });
                    return
                }
                for (let i = 0; i < e.target.files.length; i++) {
                    let type = e.target.files[i].type
                    let index = type.indexOf('/')
                    let data = type.substring(index + 1, type.length)
                    const format = new FormData()
                    format.append('file', e.target.files[i])
                    format.append('folder', this.path)
                    let res = await uploadFiles(format)
                    if (res.code === 200) {
                        form.files.push({
                            fileUrl: res.data.imgaddr,
                            filename: res.data.imgname,
                            filesize: e.target.files[i].size,
                            type: judgmentType(data.toLowerCase()) ? 0 : 1,
                            url: res.data.url
                        })
                    }
                }
                // upload.value.value = ''
            },
            // ç‚¹å‡»ä¸Šä¼ 
            uploadFile() {
                uni.chooseImage({
                    success: (chooseImageRes) => {
                        const tempFilePaths = chooseImageRes.tempFilePaths;
                        console.log(tempFilePaths)
                        uni.uploadFile({
                            url: baseUrl + '/ext/routeCardExt/upload',
                            filePath: tempFilePaths[0],
                            name: 'file',
                            header: {
                                'Cookie': 'eva-auth-token=' + this.session
                            },
                            formData: {
                                'folder': this.path
                            },
                            success: (uploadFileRes) => {
                                console.log(JSON.parse(uploadFileRes.data));
                                let res = JSON.parse(uploadFileRes.data)
                                this.form.files.push({
                                    fileUrl: res.data.imgaddr,
                                    filename: res.data.imgname,
                                    // filesize: e.target.files[i].size,
                                    type: judgmentType(tempFilePaths[0]) ? 0 : 1,
                                    url: res.data.url
                                })
                            }
                        });
                    }
                });
            },
            // èŽ·å–å­—å…¸çº¸
            getqueryListByCode() {
                queryListByCode({
                    dicCode: 'FOLDER',
                    label: 'DEVICE_CHECK'
                }).then(res => {
                    if (res.code === 200) {
                        this.path = res.data[0].code
                    }
                })
            }
        }
    }
</script>
<style lang="scss" scoped>
    .box1 {
        width: 100%;
        height: 100%;
        position: absolute;
        background: #F7F7F7;
        .box_list {
            padding: 0 30rpx 0 30rpx;
            background: white;
            display: flex;
            flex-direction: column;
            .box_list_code {
                margin: 20rpx 0;
                .boxs {
                    display: flex;
                    align-items: center;
                    justify-content: flex-end;
                    image {
                        width: 28rpx;
                        height: 28rpx;
                        margin-right: 12rpx;
                    }
                    text {
                        font-size: 28rpx;
                        font-weight: 400;
                        color: $nav-color;
                    }
                }
            }
            .box_list_item {
                height: 98rpx;
                display: flex;
                align-items: center;
                justify-content: space-between;
                border-bottom: 1rpx solid #E5E5E5;
                &:last-child {
                    border: none;
                }
                .box_list_item_left {
                    text {
                        font-size: 30rpx;
                        font-weight: 400;
                        &:first-child {
                            color: #222222;
                        }
                        &:last-child {
                            color: #DE5243;
                            margin-left: 8rpx;
                        }
                    }
                }
                .box_list_item_right {
                    display: flex;
                    align-items: center;
                    .black {
                        color: black;
                    }
                    text {
                        font-size: 28rpx;
                        font-weight: 400;
                        color: #999999;
                        margin-right: 10rpx;
                    }
                }
            }
        }
        .box_list1 {
            padding: 30rpx;
            background: white;
            margin-top: 20rpx;
            .box_list1_item {
                height: 98rpx;
                display: flex;
                align-items: center;
                justify-content: space-between;
                border-bottom: 1rpx solid #E5E5E5;
                &:last-child {
                    border: none;
                }
                .box_list1_item_left {
                    text {
                        font-size: 30rpx;
                        font-weight: 400;
                        color: #222222;
                        &:last-child {
                            font-size: 30rpx;
                            font-weight: 400;
                            color: #DE5243;
                            margin-left: 4rpx;
                        }
                    }
                }
                .box_list1_item_right {
                    display: flex;
                    align-items: center;
                    .active {
                        color: white !important;
                        background: $nav-color !important;
                    }
                    .box_list1_item_right_item {
                        padding: 18rpx 32rpx;
                        background: #F2F2F2;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        font-size: 26rpx;
                        font-weight: 400;
                        color: #333333;
                        margin-left: 20rpx;
                        border-radius: 8rpx;
                    }
                }
            }
            .box_list1_club {
                display: flex;
                flex-direction: column;
                margin-top: 36rpx;
                .box_list1_club_label {
                    font-size: 30rpx;
                    font-weight: 400;
                    color: #222222;
                    margin-bottom: 32rpx;
                    text {
                        font-size: 30rpx;
                        font-weight: 400;
                        color: #DE5243;
                        margin-left: 4rpx;
                    }
                }
                .box_list1_club_list {
                    display: flex;
                    align-items: center;
                    justify-content: space-between;
                    flex-wrap: wrap;
                    .box_list1_club_list_item1 {
                        width: 170rpx;
                        height: 0;
                    }
                    .box_list1_club_list_item {
                        width: 150rpx;
                        height: 150rpx;
                        border-radius: 8rpx;
                        position: relative;
                        margin-right: 22rpx;
                        margin-bottom: 22rpx;
                        .type {
                            width: 100%;
                            height: 100%;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                            overflow: hidden;
                            position: absolute;
                            top: 0;
                            left: 0;
                            .type_img {
                                width: 100%;
                                height: 100%;
                            }
                            video {
                                height: 100%;
                                z-index: 1;
                            }
                        }
                        .play {
                            position: absolute;
                            left: 50%;
                            top: 50%;
                            width: 56rpx;
                            height: 56rpx;
                            z-index: 9;
                            transform: translate(-50%, -50%);
                        }
                        .close {
                            position: absolute;
                            right: -16rpx;
                            top: -16rpx;
                            width: 32rpx;
                            height: 32rpx;
                            z-index: 9;
                        }
                    }
                }
            }
        }
        .box_list2 {
            padding: 30rpx;
            background: white;
            margin-top: 20rpx;
            display: flex;
            flex-direction: column;
            .box_list2_label {
                font-size: 30rpx;
                font-weight: 400;
                color: #222222;
                margin-bottom: 32rpx;
            }
            textarea {
                border: none;
                font-size: 28rpx;
            }
            textarea::-webkit-input-placeholder {
                font-size: 28rpx;
                font-weight: 400;
                color: #B2B2B2;
            }
        }
        .box_footer {
            width: 100%;
            padding: 0 30rpx 68rpx 30rpx;
            box-sizing: border-box;
            position: fixed;
            bottom: 0;
            left: 0;
            background: #F7F7F7;
            .box_footer_submit {
                width: 100%;
                height: 88rpx;
                background: #4275FC;
                box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.0800);
                border-radius: 8rpx;
                display: flex;
                align-items: center;
                justify-content: center;
                font-size: 30rpx;
                font-weight: 500;
                color: #FFFFFF;
                border: none;
            }
        }
    }
</style>
minipro_standard/uni.scss
@@ -86,3 +86,15 @@
$uni-font-size-subtitle:26px;
$uni-color-paragraph: #3F536E; // æ–‡ç« æ®µè½é¢œè‰²
$uni-font-size-paragraph:15px;
.backgreen {
  background: $nav-stateColor2 !important;
}
.backyellow {
  background: $nav-stateColor5 !important;
}
.backred {
  background: $nav-stateColor4 !important;
}
minipro_standard/uni_modules/l-calendar/components/l-calendar/l-calendar.vue
@@ -528,7 +528,7 @@
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 9999;
        z-index: 99999;
        visibility: hidden;
        transform: translate3d(0, 100%, 0);
        transform-origin: center;
minipro_standard/util/api/QualityAPI.js
@@ -38,7 +38,7 @@
// æ ¹æ®ID查询
export function getBYid (id) {
  return request.post(`/ext/workorderCheckExt/${id}`)
  return request.get(`/ext/workorderCheckExt/${id}`)
}
// export function getBYid(id: any): Promise<any> {
//     return httpRequest({
minipro_standard/util/api/index.js
@@ -58,3 +58,8 @@
export function getOrganization(data) {
    return http.post('/ext/departmentExt/getDepartmentListByConditon', data)
}
// èŽ·å–ä¸Šä¼ å­—å…¸å€¼
export function queryListByCode(params) {
    return http.get('/system/dictData/queryListByCode', {params})
}
minipro_standard/util/request/index.js
@@ -1,5 +1,6 @@
// å¼•入配置
import { baseUrl } from '@/common/config'
console.log(baseUrl);
// åˆå§‹åŒ–请求配置
uni.$u.http.setConfig((defaultConfig) => {
    /* defaultConfig ä¸ºé»˜è®¤å…¨å±€é…ç½® */
minipro_standard/util/request/requestInterceptors.js
@@ -4,6 +4,7 @@
 */
module.exports = (vm) => {
    uni.$u.http.interceptors.request.use((config) => { // å¯ä½¿ç”¨async await åšå¼‚步操作
        console.log(config);
        if (vm.$store.state.session) {
            config.header['Cookie'] = 'eva-auth-token=' + vm.$store.state.session
        }
minipro_standard/util/utils.js
@@ -59,4 +59,20 @@
    number: /^\d+(?:\.\d{1,4})?$/
}
export { gsdate, setTime, setTimeO, REGULAR }
/***
 *
 * @param type æ–‡ä»¶ç±»åž‹
 */
function judgmentType (type) {
    let arr = ['jpg', 'jpeg', 'png']
    // arr.includes(type)
    let open = false
    arr.forEach(item => {
        if (type === item) {
            open = true
        }
    })
    return open;
}
export { gsdate, setTime, setTimeO, REGULAR, judgmentType }
platform_web/.env.development
@@ -22,5 +22,5 @@
#VUE_APP_BASE_URL = 'http://192.168.0.36:10021/'
#刘磊磊本地
# VUE_APP_BASE_URL = 'http://192.168.0.18:10021/'
VUE_APP_BASE_URL = 'http://192.168.0.18:10021/'
# VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/'
platform_web/src/components/system/menu/OperaMenuH5Window.vue
@@ -14,8 +14,11 @@
      <el-form-item label="菜单名称" prop="name" required>
        <el-input v-model="form.name" placeholder="请输入菜单名称" v-trim maxlength="50"/>
      </el-form-item>
      <el-form-item label="访问路径" prop="path">
      <el-form-item label="h5访问路径" prop="path">
        <el-input v-model="form.path" placeholder="请输入访问路径" v-trim maxlength="200"/>
      </el-form-item>
      <el-form-item label="小程序访问路径" prop="pathSec">
        <el-input v-model="form.pathSec" placeholder="请输入访问路径" v-trim maxlength="200"/>
      </el-form-item>
      <el-form-item label="图标" prop="icon" class="form-item-icon">
        <div style="display: flex;">
@@ -69,6 +72,7 @@
        parentId: null,
        name: '',
        path: '',
        pathSec: '',
        icon: '',
        fullIcon: '',
        remark: '',
platform_web/src/views/system/menuH5.vue
@@ -27,7 +27,8 @@
            <template v-else>未设置</template>
          </template>
        </el-table-column>
        <el-table-column prop="path" label="访问路径" align="center" min-width="140px"></el-table-column>
        <el-table-column prop="path" label="h5访问路径" align="center" min-width="140px"></el-table-column>
        <el-table-column prop="pathSec" label="小程序访问路径" align="center" min-width="140px"></el-table-column>
        <el-table-column prop="remark" label="备注" align="center" min-width="120px"></el-table-column>
        <el-table-column prop="createUser" label="创建人" align="center" min-width="100px">
          <template slot-scope="{row}">{{row.createUserInfo == null ? '' : row.createUserInfo.username}}</template>
server/src/main/java/doumeemes/biz/system/impl/SystemMenuBizImpl.java
@@ -158,6 +158,7 @@
                nodeVO.setIndex("menu_" + menu.getId());
                nodeVO.setLabel(menu.getName());
                nodeVO.setUrl(menu.getPath());
                nodeVO.setUrlSec(menu.getPathSec());
                nodeVO.setIcon(menu.getIcon());
                nodeVO.setChildren(new ArrayList<>());
                rootNodes.add(nodeVO);
@@ -245,6 +246,7 @@
                child.setId(menu.getId());
                child.setLabel(menu.getName());
                child.setUrl(menu.getPath());
                child.setUrlSec(menu.getPathSec());
                child.setIcon(menu.getIcon());
                child.setIndex("menu_" + menu.getId());
                child.setChildren(new ArrayList<>());
server/src/main/java/doumeemes/dao/system/model/SystemMenu.java
@@ -39,9 +39,10 @@
    @ApiModelProperty(value = "菜单访问路径")
    private String path;
    @ApiModelProperty(value = "菜单访问路径2")
    @ApiModelProperty(value = "小程序菜单访问路径")
    private String pathSec;
    @ApiModelProperty(value = "备注")
    private String remark;
server/src/main/java/doumeemes/dao/system/vo/SystemMenuNodeVO.java
@@ -30,6 +30,9 @@
    @ApiModelProperty(value = "菜单地址")
    private String url;
    @ApiModelProperty(value = "小程序菜单地址")
    private String urlSec;
    @ApiModelProperty(value = "类型 0平台 1企业PC端 2企业手机端", example = "1")
    private Integer type;
    @ApiModelProperty(value = "子菜单")
server/src/main/resources/mappers/SystemMenuMapper.xml
@@ -16,7 +16,7 @@
  </resultMap>
  <select id="selectManageList" parameterType="doumeemes.dao.system.dto.QuerySystemMenuDTO" resultMap="SystemMenuListVO">
    SELECT
    menu.`TYPE`,menu.`MODULE_ID`,  menu.`ID`, menu.`PARENT_ID`, menu.`NAME`, menu.`PATH`, menu.`FIXED`, menu.`REMARK`, menu.`DISABLED`, menu.SORT, menu.`ICON`, menu.`CREATE_TIME`, menu.`UPDATE_TIME`, menu.`CREATE_USER`, menu.`UPDATE_USER`, menu.`DELETED`,
    menu.`TYPE`,menu.`MODULE_ID`,  menu.`ID`, menu.`PARENT_ID`, menu.`NAME`, menu.`PATH`, menu.`FIXED`, menu.`REMARK`, menu.`DISABLED`, menu.SORT, menu.`ICON`, menu.`CREATE_TIME`, menu.`UPDATE_TIME`, menu.`CREATE_USER`, menu.`UPDATE_USER`, menu.`DELETED`,menu.PATH_SEC,
    create_user.ID CREATE_USER_ID, create_user.`USERNAME` CREATE_USER_NAME,
    update_user.ID UPDETE_USER_ID, update_user.`USERNAME` UPDATE_USER_NAME
    FROM SYSTEM_MENU menu
@@ -37,7 +37,7 @@
  <!-- æŸ¥è¯¢èœå•æ ‘ -->
  <select id="selectByUserId"   resultType="doumeemes.dao.system.model.SystemMenu">
    SELECT
    DISTINCT menu.`ID`, menu.`TYPE`,menu.`MODULE_ID`,  menu.`PARENT_ID`, menu.`NAME`, menu.`PATH`, menu.`REMARK`, menu.`DISABLED`, menu.SORT, menu.`ICON`, menu.`CREATE_TIME`, menu.`UPDATE_TIME`, menu.`CREATE_USER`, menu.`UPDATE_USER`, menu.`DELETED`
    DISTINCT menu.`ID`, menu.`TYPE`,menu.`MODULE_ID`,  menu.`PARENT_ID`, menu.`NAME`, menu.`PATH`, menu.`REMARK`, menu.`DISABLED`, menu.SORT, menu.`ICON`, menu.`CREATE_TIME`, menu.`UPDATE_TIME`, menu.`CREATE_USER`, menu.`UPDATE_USER`, menu.`DELETED`,menu.PATH_SEC
    FROM `SYSTEM_MENU` menu
    INNER JOIN SYSTEM_ROLE_MENU role_menu ON role_menu.MENU_ID = menu.ID AND role_menu.DELETED = 0
    INNER JOIN SYSTEM_USER_ROLE user_role ON user_role.ROLE_ID = role_menu.ROLE_ID AND user_role.DELETED = 0
@@ -59,7 +59,7 @@
  <!-- æ ¹æ®è§’色ID查询菜单列表 -->
  <select id="selectByRoleId" parameterType="java.lang.Integer" resultType="doumeemes.dao.system.model.SystemMenu">
    SELECT
    menu.`TYPE`,menu.`MODULE_ID`,  menu.`ID`, menu.`PARENT_ID`, menu.`NAME`, menu.`PATH`, menu.`REMARK`, menu.`DISABLED`, menu.SORT, menu.`ICON`, menu.`CREATE_TIME`, menu.`UPDATE_TIME`, menu.`CREATE_USER`, menu.`UPDATE_USER`, menu.`DELETED`
    menu.`TYPE`,menu.`MODULE_ID`,  menu.`ID`, menu.`PARENT_ID`, menu.`NAME`, menu.`PATH`, menu.`REMARK`, menu.`DISABLED`, menu.SORT, menu.`ICON`, menu.`CREATE_TIME`, menu.`UPDATE_TIME`, menu.`CREATE_USER`, menu.`UPDATE_USER`, menu.`DELETED`,menu.PATH_SEC
    FROM `SYSTEM_MENU` menu
    INNER JOIN `SYSTEM_ROLE_MENU` role_menu ON role_menu.MENU_ID = menu.ID AND role_menu.DELETED = 0
    <where>