Mr.Shi
2023-08-30 3d563665b5fbb6a93afcff5566dd64ef0566492b
Merge branch 'dev' of ssh://139.186.142.91:29418/productDev/dmMes into dev
已添加7个文件
已修改8个文件
2696 ■■■■■ 文件已修改
h5_standard/.env.development 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5_standard/src/views/workOrder/workOrderReporting.vue 166 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/App.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/common/config.js 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/common/css/common.css 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/common/css/lib.css 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/components/selectMaterial.vue 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/components/workOrderInfo.vue 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages.json 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/index/index.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/OrderDetail/OrderDetail.vue 1002 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/manualFeed/manualFeed.vue 317 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/workOrderReporting/workOrderReporting.vue 996 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/ic_edit@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/util/request/index.js 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5_standard/.env.development
@@ -10,13 +10,13 @@
# VUE_APP_API = 'https://106.14.220.133:10012/'
# èå§æœ¬åœ°
 VUE_APP_API = 'http://192.168.3.219:10021/'
#  VUE_APP_API = 'http://192.168.3.219:10021/'
# ä»»åº·æœ¬åœ°
# VUE_APP_API = 'http://192.168.0.15:10021/'
# VUE_APP_API = 'http://192.168.0.127:10021/'
#VUE_APP_API = 'https://dmtest.ahapp.net/doumeeplant_api/'
VUE_APP_API = 'https://dmtest.ahapp.net/doumeeplant_api/'
# VUE_APP_API = 'http://192.168.0.13:10012/'
h5_standard/src/views/workOrder/workOrderReporting.vue
@@ -15,7 +15,8 @@
            </div>
        </div> -->
        <div class="bg_cate">
            <div @click="clickIten(index)" :class="typeView == index ? 'bg_cate_item active' : 'bg_cate_item'" v-for="(item, index) in cate" :key="index">{{ item.name }}</div>
      <div @click="clickIten(index)" :class="typeView == index ? 'bg_cate_item active' : 'bg_cate_item'"
        v-for="(item, index) in cate" :key="index">{{ item.name }}</div>
        </div>
        <!--  æŠ•料明细/合格产出明细/不良产出明细  -->
        <div class="bg_list" v-if="typeView === 0">
@@ -26,7 +27,8 @@
                            <span>投料明细</span>
                            <!-- <span class="blue left">{{tlTotal()}}</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)">
          <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="" />
                            <span>手动录入</span>
                        </div>
@@ -38,7 +40,8 @@
                                    <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>
                    <span> {{ item.materialName }}{{ item.procedureName ? `&nbsp;|&nbsp;${item.procedureName}` : ''
                    }}</span>
                                            <div class="bg_list_item_num_item_wl_lx">
                                                <span class="green" v-if="item.qualityType == 0">合格&nbsp;/&nbsp;</span>
                                                <span class="yellow" v-if="item.qualityType == 1">不良&nbsp;/&nbsp;</span>
@@ -48,7 +51,8 @@
                                            </div>
                                        </div>
                                        <div class="bg_list_item_num_item_sr">
                                            <input v-model="item.num" :disabled="!proxy.$auth('h5:workorderinput:update')" @blur="change(item.id, item.num, 'T', item.maxNum, item, item.unitAttribute)" type="number" />
                    <input v-model="item.num" :disabled="!proxy.$auth('h5:workorderinput:update')"
                      @blur="change(item.id, item.num, 'T', item.maxNum, item, item.unitAttribute)" type="number" />
                                            <span>{{item.unitName}}</span>
                                        </div>
                                    </div>
@@ -83,7 +87,8 @@
                                        <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="请输入" />
                  <input type="number" v-model="produceFrom.qualified"
                    @blur="changeCC('0', produceFrom.qualified, produceFrom.qualifiedId)" placeholder="请输入" />
                                            <span v-if="info.umodel">{{info.umodel.name}}</span>
                                        </div>
                                    </div>
@@ -99,7 +104,8 @@
                                        <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="请输入" />
                  <input type="number" v-model="produceFrom.undesirable"
                    @blur="changeCC('1', produceFrom.undesirable, produceFrom.undesirableId)" placeholder="请输入" />
                                            <span v-if="info.umodel">{{info.umodel.name}}</span>
                                        </div>
                                    </div>
@@ -112,7 +118,8 @@
                                    <div class="bg_list_item_num_item" @click="show = true">
                                        <span>不良项</span>
                                        <div class="bg_list_item_num_item_sr">
                                            <span class="wulll" :style="{color: from.defectiveName ? '#305ED5' : ''}">{{from.defectiveName ? from.defectiveName : '设置'}}</span>
                  <span class="wulll" :style="{ color: from.defectiveName ? '#305ED5' : '' }">{{ from.defectiveName ?
                    from.defectiveName : '设置' }}</span>
                                            <img src="@/assets/icon/ic_ar@2x.png" alt="" />
                                        </div>
                                    </div>
@@ -147,7 +154,8 @@
                            <div class="bg_list_item_num_item">
                                <span>计件方式</span>
                                <div class="bg_list_item_num_item_list">
                                    <div :class="item.active ? '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(index)">{{ item.name }}</div>
                <div :class="item.active ? '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(index)">{{ item.name }}</div>
                                    <!-- <div class="bg_list_item_num_item_list_item active" v-if="infoBox.type == 0">计件</div>
                                    <div class="bg_list_item_num_item_list_item active" v-if="infoBox.type == 1">计时</div> -->
                                </div>
@@ -157,7 +165,8 @@
                            <div class="bg_list_item_num_item">
                                <span>工资单价</span>
                                <div class="bg_list_item_num_item_sr">
                                    <span class="color1">{{(arrType[from.index].salary / 10 / 10).toFixed(2)}}元/{{arrType[from.index].type == 0 ? 'ä»¶' : '时'}}</span>
                <span class="color1">{{ (arrType[from.index].salary / 10 / 10).toFixed(2) }}元/{{ arrType[from.index].type ==
                  0 ? 'ä»¶' : '时' }}</span>
                                    <!-- <span class="color1">{{infoBox.salary / 100}}元/{{infoBox.type == 0 ? 'ä»¶' : '时'}}</span> -->
                                </div>
                            </div>
@@ -289,11 +298,7 @@
                </div>
            </div> -->
            <div class="details_dj_list">
                <van-list
                    v-model:loading="loading"
                    :finished="finished"
                    finished-text="没有更多了~"
                    @load="pageDJs">
        <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了~" @load="pageDJs">
                    <van-swipe-cell v-for="(item, index) in djData" :key="index">
                        <div class="details_dj_list_item">
                            <span>{{item.attrName}}:{{item.val}}</span>
@@ -306,11 +311,11 @@
                </van-list>
            </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">
                <div class="bg_footer_submit" v-if="typeView == 0 && (info.status === 2 || info.procedureNeedcheck === 1)" @click="submit">确认报工</div>
        <div class="bg_footer_submit" v-if="typeView == 0" @click="submit">确认报工</div>
                <!-- proxy.$auth('h5:workorder:processRecord') &&  -->
                <div class="bg_footer_submit1" @click="jumpdj" v-if="typeView == 1">
                    <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="" />
@@ -319,11 +324,7 @@
            </div>
        </template>
        <!--  æ‰«ç ç»„ä»¶  -->
        <v-ScanCode
            :openCode="openCode"
            :infos="['请扫描工装码']"
            @closePopup="closePopup"
            @onDecode="onDecode" />
    <v-ScanCode :openCode="openCode" :infos="['请扫描工装码']" @closePopup="closePopup" @onDecode="onDecode" />
        <!--  æŠ¥å·¥ç»Ÿè®¡æ•°æ®  -->
        <van-popup v-model:show="statistics" round :closeable="true" position="bottom">
            <div class="tg">
@@ -350,20 +351,15 @@
                    </div>
                </div>
                <div class="tg_footer">
                    <button class="tg_footer_qr" @click="submitBG" v-if="proxy.$auth('h5:workorderoutput:confirm') && isSubmit">确认报工</button>
          <button class="tg_footer_qr" @click="submitBG"
            v-if="proxy.$auth('h5:workorderoutput:confirm') && isSubmit">确认报工</button>
                    <div class="tg_footer_fh" @click="gofh" v-else-if="!isSubmit">返回修改</div>
                </div>
            </div>
        </van-popup>
        <!-- æ—¶é—´ -->
        <van-popup v-model:show="TimeShow" round position="bottom" :style="{ height: '50%' }">
            <van-datetime-picker
                v-model="from.time"
                type="time"
                title="选择时间"
                @confirm="onConfirm2"
                @cancel="onCancel2"
            />
      <van-datetime-picker v-model="from.time" type="time" title="选择时间" @confirm="onConfirm2" @cancel="onCancel2" />
        </van-popup>
        <!-- é€‰æ‹©ä¸è‰¯é¡¹ -->
        <van-popup v-model:show="show" round position="bottom">
@@ -1319,6 +1315,7 @@
        /*height: 100%;*/
        position: absolute;
        background: #F7F7F7;
        .bg_plan {
            width: 100%;
            // height: 98px;
@@ -1329,24 +1326,29 @@
            display: flex;
            align-items: center;
            justify-content: space-between;
            span {
                font-size: 30px;
                font-family: PingFangSC-Regular, PingFang SC;
                font-weight: 400;
                color: #222222;
                b {
                    color: red;
                }
            }
            .bg_plan_nr {
                display: flex;
                flex-direction: column;
                span {
                    font-size: 24px;
                    font-family: PingFangSC-Regular, PingFang SC;
                    font-weight: 400;
                    color: #666666;
                    margin-top: 20px;
                    &:first-child {
                        font-size: 32px;
                        font-family: PingFangSC-Medium, PingFang SC;
@@ -1356,15 +1358,18 @@
                    }
                }
            }
            .bg_plan_label_val {
                display: flex;
                align-items: center;
                span {
                    font-size: 28px;
                    font-family: PingFangSC-Regular, PingFang SC;
                    font-weight: 400;
                    color: #999999;
                }
                img {
                    width: 12px;
                    height: 24px;
@@ -1372,6 +1377,7 @@
                }
            }
        }
        .details_cz {
            width: 100%;
            padding: 30px;
@@ -1379,6 +1385,7 @@
            display: flex;
            align-items: center;
            justify-content: space-between;
            .details_cz_sdtl {
                width: 330px;
                height: 76px;
@@ -1387,17 +1394,20 @@
                display: flex;
                align-items: center;
                justify-content: center;
                img {
                    width: 28px;
                    height: 28px;
                    margin-right: 14px;
                }
                span {
                    font-size: 26px;
                    font-weight: 400;
                    color: #222222;
                }
            }
            .details_cz_smtl {
                /*width: 330px;*/
                flex: 1;
@@ -1407,11 +1417,13 @@
                display: flex;
                align-items: center;
                justify-content: center;
                img {
                    width: 28px;
                    height: 28px;
                    margin-right: 14px;
                }
                span {
                    font-size: 26px;
                    font-weight: 400;
@@ -1419,6 +1431,7 @@
                }
            }
        }
        .bg_cate {
            width: 100%;
            height: 88px;
@@ -1426,11 +1439,13 @@
            margin-top: 20px;
            display: flex;
            align-items: center;
            .active {
                box-sizing: border-box;
                color: #305ED5 !important;
                border-bottom: 2PX solid #305ED5;
            }
            .bg_cate_item {
                flex: 1;
                height: 100%;
@@ -1443,24 +1458,29 @@
                color: #555555;
            }
        }
        .bg_list {
            width: 100%;
            display: flex;
            flex-direction: column;
            margin-top: 30px;
            .bg_list_item {
                display: flex;
                flex-direction: column;
                margin-bottom: 40px;
                .kong {
                    text-align: center;
                    padding: 30px 0;
                    background: #ffffff;
                    font-size: 25px;
                    span {
                        color: #474747;
                    }
                }
                .bg_list_item_top {
                    display: flex;
                    align-items: center;
@@ -1468,13 +1488,16 @@
                    padding-left: 30px;
                    padding-right: 30px;
                    margin-bottom: 30px;
                    .bg_list_item_top_left {
                        display: flex;
                        align-items: center;
                        .left {
                            margin-left: 12px;
                            font-size: 28px;
                        }
                        .warning {
                            width: 8px;
                            height: 30px;
@@ -1482,6 +1505,7 @@
                            margin-right: 12px;
                            background: $nav-stateColor5 !important;
                        }
                        .error {
                            width: 8px;
                            height: 30px;
@@ -1489,6 +1513,7 @@
                            margin-right: 12px;
                            background: $nav-stateColor4 !important;
                        }
                        .bg_list_item_top_left_x {
                            width: 8px;
                            height: 30px;
@@ -1496,6 +1521,7 @@
                            border-radius: 2px;
                            margin-right: 12px;
                        }
                        span {
                            font-size: 32px;
                            font-weight: 500;
@@ -1504,14 +1530,17 @@
                            align-items: center;
                        }
                    }
                    .bg_list_item_top_right {
                        display: flex;
                        align-items: center;
                        img {
                            width: 28px;
                            height: 28px;
                            margin-right: 12px;
                        }
                        span {
                            font-size: 28px;
                            font-weight: 400;
@@ -1519,11 +1548,13 @@
                        }
                    }
                }
                .bg_list_item_h {
                    width: 100%;
                    padding: 0 30px;
                    box-sizing: border-box;
                    background: white;
                    .bg_list_item_num {
                        width: 100%;
                        min-height: 98px;
@@ -1532,15 +1563,18 @@
                        justify-content: center;
                        align-items: center;
                        border-bottom: 1PX solid #E5E5E5;
                        &:last-child {
                            border: none !important;
                        }
                        .kong {
                            text-align: center;
                            font-size: 25px;
                            padding: 30px 0;
                            background: #ffffff;
                        }
                        .bg_list_item_num_item {
                            width: 100%;
                            height: 100%;
@@ -1551,16 +1585,20 @@
                            box-sizing: border-box;
                            justify-content: space-between;
                            border-bottom: 1px solid #E5E5E5;
                            &:last-child {
                                border: none;
                            }
                            .bg_list_item_num_item_list {
                                display: flex;
                                align-items: center;
                                .active {
                                    background: #305ED5 !important;
                                    color: #FFFFFF !important;
                                }
                                .bg_list_item_num_item_list_item {
                                    width: 116px;
                                    height: 62px;
@@ -1573,61 +1611,75 @@
                                    font-weight: 400;
                                    color: #333333;
                                    margin-right: 20px;
                                    &:last-child {
                                        margin: 0 !important;
                                    }
                                }
                            }
                            .bg_list_item_num_item_wl {
                                flex-shrink: 0;
                                display: flex;
                                flex-direction: column;
                                span {
                                    font-size: 34px;
                                    color: #222222;
                                }
                                .bg_list_item_num_item_wl_lx {
                                    margin-top: 10px;
                                    span {
                                        color: #222222;
                                        font-size: 28px;
                                    }
                                }
                            }
                            .warning {
                                color: $nav-stateColor5 !important;
                            }
                            .err {
                                color: $nav-stateColor4 !important;
                            }
                            img {
                                width: 12px;
                                height: 24px;
                                margin-left: 20px;
                            }
                            span {
                                flex-shrink: 0;
                                overflow: hidden;
                                text-overflow: ellipsis;
                                white-space: nowrap;
                                b {
                                    font-size: 30px;
                                    color: red;
                                    margin-right: 5px;
                                }
                                .warning {
                                    color: $nav-stateColor5 !important;
                                    margin-right: 5px;
                                }
                                .err {
                                    color: $nav-stateColor4 !important;
                                    margin-right: 5px;
                                }
                                &:nth-child(1) {
                                    font-size: 30px;
                                    font-weight: 400;
                                    color: #222222;
                                }
                                &:nth-child(2) {
                                    font-size: 28px;
                                    font-weight: 400;
@@ -1635,20 +1687,24 @@
                                    flex-shrink: 0;
                                }
                            }
                            .bg_list_item_num_item_sr {
                                flex: 1;
                                display: flex;
                                align-items: center;
                                justify-content: flex-end;
                                .color1 {
                                    font-size: 28px;
                                    font-family: PingFangSC-Regular, PingFang SC;
                                    font-weight: 400;
                                    color: #333333;
                                }
                                input::-webkit-input-placeholder {
                                    font-size: 28px;
                                }
                                input {
                                    text-align: right;
                                    width: 180px;
@@ -1661,6 +1717,7 @@
                                    color: #333333;
                                    padding: 0 30px
                                }
                                .wulll {
                                    width: 400px;
                                    text-align: right;
@@ -1668,6 +1725,7 @@
                                    white-space: nowrap;
                                    text-overflow: ellipsis;
                                }
                                span {
                                    font-size: 28px;
                                    font-family: PingFangSC-Regular, PingFang SC;
@@ -1680,9 +1738,11 @@
                }
            }
        }
        .details_dj {
            display: flex;
            flex-direction: column;
            .details_dj_title {
                width: 100%;
                display: flex;
@@ -1690,9 +1750,11 @@
                justify-content: space-between;
                padding: 0 30px 30px 30px;
                box-sizing: border-box;
                .details_dj_title_left {
                    display: flex;
                    align-items: center;
                    .details_x {
                        width: 8px;
                        height: 30px;
@@ -1700,20 +1762,24 @@
                        border-radius: 2px;
                        margin-right: 12px;
                    }
                    span {
                        font-size: 32px;
                        font-weight: 500;
                        color: #222222;
                    }
                }
                .details_dj_title_right {
                    display: flex;
                    align-items: center;
                    img {
                        width: 28px;
                        height: 28px;
                        margin-right: 12px;
                    }
                    span {
                        font-size: 28px;
                        font-weight: 400;
@@ -1721,6 +1787,7 @@
                    }
                }
            }
            .details_dj_list {
                width: 100%;
                /*padding: 30px;*/
@@ -1728,11 +1795,13 @@
                background: #ffffff;
                display: flex;
                flex-direction: column;
                .details_dj_list_item {
                    display: flex;
                    flex-direction: column;
                    border-bottom: 1px solid #E5E5E5;
                    padding: 30px;
                    /*margin: 30px;*/
                    /*padding-bottom: 30px;*/
                    /*margin-bottom: 30px !important;*/
@@ -1742,6 +1811,7 @@
                            font-weight: 400;
                            color: #222222;
                        }
                        &:nth-child(2) {
                            font-size: 24px;
                            font-weight: 400;
@@ -1752,9 +1822,11 @@
                }
            }
        }
        .bh_zw {
            height: 160px;
        }
        .bg_footer {
            position: fixed;
            bottom: 0;
@@ -1762,6 +1834,7 @@
            width: 100%;
            padding: 0 30px 60px 30px;
            box-sizing: border-box;
            .bg_footer_submit1 {
                width: 690px;
                height: 76px;
@@ -1771,11 +1844,13 @@
                display: flex;
                align-items: center;
                justify-content: center;
                img {
                    width: 28px;
                    height: 28px;
                    margin-right: 12px;
                }
                span {
                    font-size: 26px;
                    font-family: PingFangSC-Regular, PingFang SC;
@@ -1783,6 +1858,7 @@
                    color: #305ED5;
                }
            }
            .bg_footer_submit {
                width: 690px;
                height: 88px;
@@ -1797,11 +1873,13 @@
                justify-content: center;
            }
        }
        .tg {
            width: 100%;
            height: 800px;
            padding: 30px;
            box-sizing: border-box;
            .tg_header {
                width: 100%;
                height: 45px;
@@ -1811,15 +1889,18 @@
                font-weight: 500;
                color: #222222;
            }
            .tg_table {
                width: 100%;
                margin-top: 40px;
                .tg_table_header {
                    width: 100%;
                    height: 72px;
                    background: #EFF2FC;
                    display: flex;
                    align-items: center;
                    .tg_table_header_item {
                        flex: 1;
                        font-size: 26px;
@@ -1831,10 +1912,12 @@
                    }
                }
            }
            .nr {
                width: 100%;
                max-height: calc(100% - 133px);
                overflow-x: scroll;
                .tg_table_nr {
                    width: 100%;
                    padding: 24px 10px;
@@ -1843,6 +1926,7 @@
                    align-items: center;
                    background: white;
                    box-shadow: inset 0px -2px 0px 0px #E5E5E5;
                    .tg_table_nr_item {
                        flex: 1;
                        font-size: 26px;
@@ -1852,6 +1936,7 @@
                        align-items: center;
                        justify-content: center;
                    }
                    .tg_table_nr_item1 {
                        flex: 1;
                        font-size: 26px;
@@ -1864,6 +1949,7 @@
                }
            }
        }
        .tg_footer {
            width: calc(100% - 60px);
            position: fixed;
@@ -1873,6 +1959,7 @@
            align-items: center;
            box-sizing: border-box;
            padding-bottom: 40px;
            .tg_footer_fh {
                width: 100%;
                height: 88px;
@@ -1886,6 +1973,7 @@
                font-weight: 500;
                color: $nav-color;
            }
            .tg_footer_qr {
                width: 100%;
                height: 88px;
@@ -1900,6 +1988,7 @@
                color: #FFFFFF;
            }
        }
        .bl {
            width: 100%;
            height: 800px;
@@ -1907,24 +1996,29 @@
            box-sizing: border-box;
            display: flex;
            flex-direction: column;
            .bl_head {
                width: 100%;
                height: 50px;
                display: flex;
                align-items: center;
                justify-content: space-between;
                span {
                    font-size: 28px;
                    color: #222222;
                    &:nth-child(2) {
                        font-size: 32px !important;
                    }
                }
                img {
                    width: 28px;
                    height: 28px;
                }
            }
            .bl_footer {
                width: 100%;
                height: 88px;
@@ -1938,11 +2032,13 @@
                color: #FFFFFF;
                margin-top: 30px;
            }
            .bl_list {
                width: 100%;
                height: calc(100% - 168px);
                overflow-y: scroll;
                margin-top: 30px;
                .bl_list_item {
                    width: 100%;
                    height: 96px;
@@ -1950,29 +2046,35 @@
                    align-items: center;
                    justify-content: space-between;
                    border-bottom: 1PX solid #E5E5E5;
                    &:last-child {
                        border: none !important;
                    }
                    .bl_list_item_left {
                        flex: 1;
                        display: flex;
                        align-items: center;
                        input {
                            width: 30px;
                            height: 30px;
                            border: 1PX solid #CCCCCC;
                            margin: 0 !important;
                        }
                        span {
                            font-size: 30px;
                            color: #222222;
                            margin-left: 10px;
                        }
                    }
                    .bl_list_item_right {
                        flex: 1;
                        height: 50px;
                        text-align: right;
                        input {
                            padding-left: 5px;
                            width: 160px;
@@ -1984,6 +2086,7 @@
                            color: #333333;
                            border-radius: 10px;
                            border: 1PX solid #CCCCCC;
                            &::-webkit-input-placeholder {
                                font-size: 28px;
                                font-family: PingFangSC-Regular, PingFang SC;
@@ -1995,5 +2098,4 @@
                }
            }
        }
    }
</style>
}</style>
minipro_standard/App.vue
@@ -15,6 +15,7 @@
    /*每个页面公共css */
    @import "@/uni_modules/uview-ui/index.scss";
    @import "common/css/lib.css";
    @import "common/css/common.css";
    // page {
    //     background-color: #F3F6F9 !important;
    // }
minipro_standard/common/config.js
@@ -1,5 +1,11 @@
module.exports = {
    // baseUrl: 'http://106.14.20.42/test_hfznzz/',
    // baseUrl: 'https://hefei.dtkey.cn/test_hfznzz/',
    baseUrl: 'https://dmtest.ahapp.net/doumeeplant_api/'
    baseUrl: 'https://dmtest.ahapp.net/doumeeplant_api/',
        phoneRegular: /^1[3456789]\d{9}$/,
        mailboxRegular: /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
        positiveInteger: /^[0-9]*[1-9][0-9]*$/,
        decimal: /^0$|^[1-9]\d{0,15}$|^[1-9]\d{0,15}\.{1}\d{1,4}$|^0\.{1}\d{1,4}$/g,
        positiveIntegerDecimal: /^([1-9][0-9]*|0)(\.[0-9]?[1-9][1-9][1-9])?$/,
        number: /^\d+(?:\.\d{1,4})?$/
}
minipro_standard/common/css/common.css
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
.tips-label {
    background: rgba(220,26,26,0.06);
    padding: 18rpx 30rpx;
    font-size: 26rpx;
    font-weight: 400;
    color: #DC1A1A;
    line-height: 36rpx;
}
minipro_standard/common/css/lib.css
@@ -13,7 +13,7 @@
.wp{ width: 94%; margin: 0 auto;}
.w30{ width: 30%;}.w40{ width: 40%;}.w47{ width: 47%;}.w48{ width: 48%;}.w49{ width: 49%;}.w50{ width: 50%;}.w60{ width: 60%;}.w80{ width: 80%;}.w90{ width: 90%;}
.bg_m{background-color: #F3F6F9;}.bg_fa{ background-color: #fafafa;}.bg_f2{ background-color: #f2f2f2;}.bg_f1{ background-color: #f1f1f1;}.bg_f5{ background-color: #f5f5f5;}.bg_f6{ background-color: #f6f6f6;}.bg_f7{ background-color: #f7f7f7;}.bg_f8{ background-color: #f8f8f8;}.bg_e{ background-color: #eee;}.bg_d{ background-color: #ddd;}.bg_w{ background-color: #fff;}.bg_3{ background-color: #333;}
.bg_m{background-color: #305ED5;}.bg_fa{ background-color: #fafafa;}.bg_f2{ background-color: #f2f2f2;}.bg_f1{ background-color: #f1f1f1;}.bg_f5{ background-color: #f5f5f5;}.bg_f6{ background-color: #f6f6f6;}.bg_f7{ background-color: #f7f7f7;}.bg_f8{ background-color: #f8f8f8;}.bg_e{ background-color: #eee;}.bg_d{ background-color: #ddd;}.bg_w{ background-color: #fff;}.bg_3{ background-color: #333;}
.rd4{border-radius: 4rpx;}.rd5{border-radius: 5rpx;}.rd6{border-radius: 6rpx;}.rd8{border-radius: 8rpx;}.rd10{border-radius: 10rpx;}.rd15{border-radius: 15rpx;}.rd20{border-radius: 20rpx;}.rd30{border-radius: 30rpx;}.rd40{border-radius: 40rpx;}.rd50{border-radius: 50rpx;}.rd60{border-radius: 60rpx;}.rd70{border-radius: 70rpx;}.rd80{border-radius: 80rpx;}.rd90{border-radius: 90rpx;}.rd100{border-radius: 100rpx;}.rd120{border-radius: 120rpx;}.rdhalf{  border-radius:50%}
@@ -45,6 +45,7 @@
.img20{ width: 20rpx; height: 20rpx;}
.img24{ width: 24rpx; height: 24rpx;}
.img26{ width: 26rpx; height: 26rpx;}
.img28{ width: 28rpx; height: 28rpx;}
.img30{ width: 30rpx; height: 30rpx;}
.img32{ width: 32rpx; height: 32rpx;}
.img36{ width: 36rpx; height: 36rpx;}
@@ -72,6 +73,7 @@
.bfull{ background-size: 100% 100%; background-position: center center; background-repeat:  no-repeat;}
.b{ font-weight: bold;}
.n{ font-weight: 400;}
.ibm{ display: inline-block; vertical-align: middle;}
.bbox{ box-sizing: border-box;}
.rauto{ margin-left:auto; margin-right:auto}
@@ -116,15 +118,16 @@
.rp { position: relative; }
.ap { position: absolute; }
.orange{ color: #EA531B;}
.green{ color: #65C35D;}
.blue{ color: #3C77DA;}
.red{ color: #f00;}
.white{ color: #fff;}
.orange{ color: #EA531B !important;}
.green{ color: #65C35D !important;}
.blue{ color: #3C77DA !important;}
.red{ color: #f00 !important;}
.white{ color: #fff !important;}
.mc{color:#216EEE}
.wc{color:#F98107}
.mc{color:#216EEE !important;}
.wc{color:#F98107 !important;}
.cm {color: #305ED5}
.c1{color: #111}.c2{color: #222}.c3{ color: #333;}.c6{ color: #666;}.cc{ color: #ccc;}.cf{ color: #fff;}
/* /deep/ .uicon-close .u-icon--right{ position: absolute; right: 30rpx; top: 30rpx; z-index: 999;} */
.popCloseBtn{ position: absolute; width:50rpx; height:50rpx; right: 20rpx; top: 20rpx;}
minipro_standard/components/selectMaterial.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
<template>
    <u-popup :show="show" :round="10" closeable @close="show=false">
        <view class="material-content">
            <u-list @scrolltoupper="scrolltoupper" @scrolltolower="scrolltolower">
                <u-list-item v-for="(item, index) in list" :key="index">
                    <view class="" style="height: 20px;">{{item}}</view>
                </u-list-item>
            </u-list>
        </view>
    </u-popup>
</template>
<script>
    export default {
        name: "selectMaterial",
        data() {
            return {
                show: false,
                pages: {
                    size: 10,
                    index: 1,
                    total: 0
                },
                list: [
                    1,2,3,4,5,6,7,8
                ]
            };
        },
        methods: {
            open(target) {
                this.show = true
                this.workorderId = target.workorderId
                this.deviceId = target.deviceId
                this.list = []
                this.pages = {
                    size: 10,
                    index: 1,
                    total: 0
                }
                this.loadData()
            },
            loadData() {
                this.list = [1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6]
            },
            scrolltoupper() {
                console.log('scrolltoupper');
                this.loadData()
            },
            scrolltolower() {
                console.log('scrolltolower');
                this.loadData()
            },
        }
    }
</script>
<style lang="scss" scoped>
    .material-content {
        height: 800rpx;
    }
</style>
minipro_standard/components/workOrderInfo.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
<template>
    <view class="p30 bg_w order-info">
        <view class="bX">
            <view class="cY">
                <view class="mr10 b">墙体砖|码垛</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>
        <view class="f24 c6 mt20">工单编号:{{ orederMessage.code || 'GD202111240001' }}</view>
        <view class="mt20 bg_f7 ptb20 plr30 n">
            <view class="c2 mb20">
                <span class="c6">物料编码:</span>
                {{ orederMessage.mmodel ? orederMessage.mmodel.code : '03K-0K-0-1' }}
            </view>
            <view class="c2 mb20">
                <span class="c6">计划开工:</span>
                {{ orederMessage.planDate || '2022/01/11' }}
            </view>
            <view class="c2 mb20">
                <span class="c6">生产批次:</span>
                {{ orederMessage.batch || 'PH20221023001' }}
            </view>
            <view class="c2 mb20">
                <span class="c6">计划数量:</span>
                {{ orederMessage.planNum || '1000' }}{{ orederMessage.umodel ? orederMessage.umodel.name : 'A1' }}
            </view>
            <view class="c2 mb20">
                <span class="c6">生产设备:</span>
                {{ orederMessage.pgmodel ? `${orederMessage.pgmodel.code} - ${orederMessage.pgmodel.name}` : 'A1' }}
            </view>
            <view class="c2 flex">
                <view class="c6" style="flex-shrink: 0;">生产人员:</view>
                <view class="flex1">
                    {{ orederMessage.proUserList ? orederMessage.proUserList.map(item => item.proUserDepartName).join(' / ') : '侯泽慧-和县飞骏新型建材' }}
                </view>
            </view>
        </view>
    </view>
</template>
<script>
    export default {
        name: "workOrderInfo",
        props: {
            orederMessage: {}
        },
        data() {
            return {
                status: [
                    { status: 0, label: '已创建' },
                    { status: 1, label: '已备料' },
                    { status: 2, label: '已完工检' },
                    { status: 3, label: '已检验' },
                    { status: 4, label: '已报工' },
                    { status: 5, label: '已入库' },
                    { status: 6, label: '已取消' },
                    { status: 7, label: '进行中' }
                ]
            };
        },
        methods: {
            stausToStr(status) {
                let temp = this.status.find(item => item.status == status)
                return temp ? temp.label : '-'
            }
        }
    }
</script>
<style lang="scss">
.status {
    height: 26rpx;
    font-size: 26rpx;
    font-weight: 400;
    color: #666666;
    line-height: 26rpx;
}
.order-info {
    border-bottom: 20rpx #f7f7f7 solid;
}
</style>
minipro_standard/pages.json
@@ -101,6 +101,27 @@
                        "navigationBarTitleText": "新增入库",
                        "enablePullDownRefresh": false
                    }
                },
                {
                    "path": "pages/manualFeed/manualFeed",
                    "style": {
                        "navigationBarTitleText": "手动投料",
                        "enablePullDownRefresh": false
                    }
                },
                {
                    "path": "pages/OrderDetail/OrderDetail",
                    "style": {
                        "navigationBarTitleText": "工单详情",
                        "enablePullDownRefresh": false
                    }
                },
                {
                    "path": "pages/workOrderReporting/workOrderReporting",
                    "style": {
                        "navigationBarTitleText": "工单报工",
                        "enablePullDownRefresh": false
                    }
                }
            ]
        }
minipro_standard/pages/index/index.vue
@@ -164,9 +164,6 @@
            });
        },
        methods: {
            onMessage(e) {
                console.log('12345654321')
            },
            scrolltolower() {},
            scrolltoupper() {},
            selectType(status) {
minipro_standard/pages_adjust/pages/OrderDetail/OrderDetail.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,1002 @@
<template>
    <view>
        <workOrderInfo :orederMessage="{proUserList:[]}" />
        <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">
            <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')">
                            <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>
                                            <div class="bg_list_item_num_item_wl_lx">
                                                <span class="green" v-if="item.qualityType == 0">合格&nbsp;/&nbsp;</span>
                                                <span class="orange" v-if="item.qualityType == 1">不良&nbsp;/&nbsp;</span>
                                                <span class="red" v-if="item.qualityType == 2">报废&nbsp;/&nbsp;</span>
                                                <span>{{ item.locationName }}</span>
                                                <span>{{ item.batch ? `&nbsp;/&nbsp;${item.batch}` : '' }}</span>
                                            </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>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </u-swipe-action-item>
                    </u-swipe-action>
                </template>
                <template v-else>
                    <div class="kong">
                        <span>暂无数据</span>
                    </div>
                </template>
            </div>
            <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>
                <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="请输入" />
                                <span v-if="info.umodel">{{ info.umodel.name }}</span>
                            </div>
                        </div>
                    </div>
                </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="请输入" />
                                <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_top">
                    <div class="bg_list_item_top_left">
                        <div class="bg_list_item_top_left_x bg_m"></div>
                        <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">
            <div class="details_dj_list">
                <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  :key="index" :checked="item.active" :label="item.name"
                                    :name="item.name">
                                </u-checkbox>
                            </u-checkbox-group>
                        </div>
                        <div class="bl_list_item_right">
                            <input type="number" @click.stop v-model="item.num" placeholder="0" />
                        </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>
<script>
    import workOrderInfo from '@/components/workOrderInfo.vue'
    export default {
        components: {
            workOrderInfo
        },
        data() {
            return {
                cate: [{
                        name: '生产'
                    },
                    {
                        name: '点检'
                    }
                ],
                form: {
                    time: '',
                    efective: [],
                    defectiveName: '',
                    durationName: '0小时0分钟',
                    duration: 0,
                    type: 0,
                    index: 0
                },
                TimeShow: false,
                badShow: false,
                typeView: 0,
                feedingData: [{
                    id: 0,
                    materialName: '墙体砖',
                    procedureName: '压制',
                    qualityType: 1,
                    locationName: 'CP-01',
                    batch: '20230713',
                    num: 2,
                    maxNum: 10,
                    unitAttribute: 1,
                    unitName: '块'
                }],
                options: [{
                    text: '删除',
                    style: {
                        backgroundColor: 'red',
                    }
                }],
                arrType: [{
                        name: '计时',
                        type: 1,
                        salary: 1000,
                    },
                    {
                        name: '计件',
                        type: 0,
                        salary: 100
                    },
                ],
                // äº§å‡ºåˆæ ¼/不良
                produceFrom: {
                    qualifiedId: '',
                    qualified: '', // åˆæ ¼
                    undesirableId: '',
                    undesirable: 5 // ä¸è‰¯
                },
                djData: [{
                    attrName: '出水时间',
                    val: '2022-05-28 16:3',
                    userName: '张三 ',
                    createTime: '2022-05-28 16:32:'
                }],
                cateList: [{
                    active: false,
                    name: '毛刺',
                    num: 0
                }]
            };
        },
        computed: {
            expectedSalary() {
                if (this.arrType.length === 0) return 0;
                // æŒ‰ä»¶è®¡ç®—
                if (this.arrType[this.form.index].type == 0) {
                    if (!this.produceFrom.qualified) return 0
                    if (this.arrType[this.form.index].unqualified == 1) { // æ˜¯å¦è®¡å…¥ä¸è‰¯å“
                        let total = Number(this.produceFrom.qualified) + Number(this.produceFrom.undesirable)
                        return (total * (this.arrType[this.form.index].salary / 100)).toFixed(2) || 0
                    } else {
                        return (Number(this.produceFrom.qualified) * (this.arrType[this.form.index].salary / 100)).toFixed(
                            2) || 0
                    }
                } else {
                    if (!this.form.duration) return 0;
                    let h = (this.form.duration / 60 / 60).toFixed(2)
                    return (Number(h) * (this.arrType[this.form.index].salary / 10 / 10)).toFixed(2) || 0
                }
            },
            complianceRate() {
                if (this.arrType.length === 0) return 0;
                if (!this.produceFrom.qualified && !this.produceFrom.undesirable) return 0;
                if (!this.form.duration) return 0;
                if (!this.arrType[this.form.index].num) return 0;
                // æŒ‰ä»¶è®¡ç®—
                // if (infoBox.value.type == 0) {
                if (this.arrType[this.form.index].unqualified == 1) { // æ˜¯å¦è®¡å…¥ä¸è‰¯å“
                    let a = ((Number(this.produceFrom.qualified) + Number(this.produceFrom.undesirable)) / (this.form
                        .duration / 3600)).toFixed(2)
                    let b = (this.arrType[this.form.index].num / (this.arrType[form.index].times / 3600)).toFixed(2)
                    return ((Number(a) / Number(b)) * 100).toFixed(2)
                    // let total = (Number(from.qualified) + Number(from.undesirable)) / ((from.duration * 60 * 60) * infoBox.value.num / )
                    // return total * infoBox.value.salary;
                } else {
                    let a = (this.produceFrom.qualified / (this.form.duration / 3600)).toFixed(2)
                    let b = (this.arrType[this.form.index].num / (this.arrType[this.form.index].times / 3600)).toFixed(2)
                    return ((Number(a) / Number(b)) * 100).toFixed(2)
                    // return Number(from.qualified) * infoBox.value.salary;
                }
            }
        },
        methods: {
            click() {
            },
            clickIten(index) {
                this.typeView = index
            },
            timeConfirm({
                value
            }) {
                console.log(value)
                let h = Number(value.substring(0, 2))
                let m = Number(value.substring(3, 5))
                let s = 0
                if (h > 0) {
                    s += h * 60 * 60
                }
                if (m > 0) {
                    s += m * 60
                }
                this.form.duration = s
                this.form.durationName = `${h}小时${m}分钟`
                this.TimeShow = false
            },
            // ç¼–辑投料/产出
            change(id, num, type, maxNum, item, unitAttribute) {
                let obj = item
                if (type === 'T') {
                    if (unitAttribute == 0 && num != '') {
                        if (!REGULAR.positiveInteger.test(num)) {
                            obj.num = obj.ynum
                            Toast({
                                message: '只能输入正整数'
                            })
                            return
                        }
                    }
                    if (unitAttribute == 1 && num != '') {
                        if (!REGULAR.number.test(num)) {
                            Toast({
                                message: '只能输入正整数或小数(最多四位)'
                            })
                            obj.num = obj.ynum
                            return
                        }
                    }
                    if (num > maxNum) {
                        obj.num = obj.ynum
                        Toast.fail({
                            message: '超出工装总数'
                        })
                        return
                    }
                } else if (type === 'C' && num > info.value.planNum) {
                    obj.num = obj.ynum
                    Toast.fail({
                        message: '产出数量不能超过计划数量'
                    })
                    return
                }
                // updateById({ id, num }).then(res => {
                //   if (res.code === 200 && type === 'T') {
                //     getOrocessRecords()
                //   } else if (res.code === 200 && type === 'C') {
                //     // getOrocessRecordCC()
                //   }
                // })
            },
            clickPerformanceType(item, index) {
                this.form.index = index
                this.form.type = item.type
            },
            submit() {},
            jumpdj() {},
            pageDJs() {},
            dele(id) {
                // deletedj(id)
                //     .then(res => {
                //       if (res.code === 200) {
                //         djData.value = []
                //         finished.value = false
                //         page.page = 1
                //         djData.value = []
                //         pageDJs()
                //       }
                //     })
            },
            confirm() {
                // console.log('confirm');
                this.badShow = false
            },
            changeChecked(i) {
                this.cateList[i].active = !this.cateList[i].active
            }
        }
    }
</script>
<style lang="scss" scoped>
    .bg_cate {
        width: 100%;
        height: 88rpx;
        background: #FFFFFF;
        display: flex;
        align-items: center;
        .active {
            box-sizing: border-box;
            color: #305ED5 !important;
            font-weight: 500;
            border-bottom: 3rpx solid #305ED5;
        }
        .bg_cate_item {
            flex: 1;
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 30rpx;
            font-weight: 400;
            color: #555555;
        }
    }
    .bg_list {
        width: 100%;
        display: flex;
        flex-direction: column;
        margin-top: 30rpx;
        .bg_list_item {
            display: flex;
            flex-direction: column;
            // margin-bottom: 40rpx;
            border-bottom: 40rpx #f7f7f7 solid;
            .kong {
                text-align: center;
                padding: 30rpx 0;
                background: #ffffff;
                font-size: 25rpx;
                span {
                    color: #474747;
                }
            }
            .bg_list_item_top {
                display: flex;
                align-items: center;
                justify-content: space-between;
                padding-left: 30rpx;
                padding-right: 30rpx;
                margin-bottom: 30rpx;
                .bg_list_item_top_left {
                    display: flex;
                    align-items: center;
                    .left {
                        margin-left: 12rpx;
                        font-size: 28rpx;
                    }
                    .warning {
                        width: 8rpx;
                        height: 30rpx;
                        border-radius: 2rpx;
                        margin-right: 12rpx;
                        // background: $nav-stateColor5 !important;
                    }
                    .error {
                        width: 8rpx;
                        height: 30rpx;
                        border-radius: 2rpx;
                        margin-right: 12rpx;
                        // background: $nav-stateColor4 !important;
                    }
                    .bg_list_item_top_left_x {
                        width: 8rpx;
                        height: 30rpx;
                        // background: $nav-color;
                        border-radius: 2rpx;
                        margin-right: 12rpx;
                    }
                    span {
                        font-size: 32rpx;
                        font-weight: 500;
                        color: #222222;
                        display: flex;
                        align-items: center;
                    }
                }
                .bg_list_item_top_right {
                    display: flex;
                    align-items: center;
                    image {
                        width: 28rpx;
                        height: 28rpx;
                        margin-right: 12rpx;
                    }
                    span {
                        font-size: 28rpx;
                        font-weight: 400;
                    }
                }
            }
            .bg_list_item_h {
                width: 100%;
                padding: 0 30rpx;
                box-sizing: border-box;
                background: white;
                .bg_list_item_num {
                    width: 100%;
                    min-height: 98rpx;
                    background: white;
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    border-bottom: 1rpx solid #E5E5E5;
                    &:last-child {
                        border: none !important;
                    }
                    .kong {
                        text-align: center;
                        font-size: 25rpx;
                        padding: 30rpx 0;
                        background: #ffffff;
                    }
                    .bg_list_item_num_item {
                        width: 100%;
                        height: 100%;
                        display: flex;
                        align-items: center;
                        // height: 118rpx;
                        padding: 15rpx 0;
                        box-sizing: border-box;
                        justify-content: space-between;
                        border-bottom: 1rpx solid #E5E5E5;
                        &:last-child {
                            border: none;
                        }
                        .bg_list_item_num_item_list {
                            display: flex;
                            align-items: center;
                            .active {
                                background: #305ED5 !important;
                                color: #FFFFFF !important;
                            }
                            .bg_list_item_num_item_list_item {
                                width: 116rpx;
                                height: 62rpx;
                                line-height: 62rpx;
                                text-align: center;
                                background: #F2F2F2;
                                border-radius: 8rpx;
                                font-size: 26rpx;
                                font-family: PingFangSC-Regular, PingFang SC;
                                font-weight: 400;
                                color: #333333;
                                margin-right: 20rpx;
                                &:last-child {
                                    margin: 0 !important;
                                }
                            }
                        }
                        .bg_list_item_num_item_wl {
                            flex-shrink: 0;
                            display: flex;
                            flex-direction: column;
                            font-size: 34rpx;
                            color: #222222;
                            .bg_list_item_num_item_wl_lx {
                                margin-top: 10rpx;
                                color: #222222;
                                font-size: 28rpx;
                            }
                        }
                        // .warning {
                        //     color: $nav-stateColor5 !important;
                        // }
                        // .err {
                        //     color: $nav-stateColor4 !important;
                        // }
                        img {
                            width: 12rpx;
                            height: 24rpx;
                            margin-left: 20rpx;
                        }
                        span {
                            flex-shrink: 0;
                            overflow: hidden;
                            text-overflow: ellipsis;
                            white-space: nowrap;
                            b {
                                font-size: 30rpx;
                                color: red;
                                margin-right: 5rpx;
                            }
                            // .warning {
                            //     color: $nav-stateColor5 !important;
                            //     margin-right: 5rpx;
                            // }
                            // .err {
                            //     color: $nav-stateColor4 !important;
                            //     margin-right: 5rpx;
                            // }
                            &:nth-child(1) {
                                font-size: 30rpx;
                                font-weight: 400;
                                color: #222222;
                            }
                            &:nth-child(2) {
                                font-size: 28rpx;
                                font-weight: 400;
                                color: #333333;
                                flex-shrink: 0;
                            }
                        }
                        .bg_list_item_num_item_sr {
                            flex: 1;
                            display: flex;
                            align-items: center;
                            justify-content: flex-end;
                            .color1 {
                                font-size: 28rpx;
                                font-family: PingFangSC-Regular, PingFang SC;
                                font-weight: 400;
                                color: #333333;
                            }
                            input::-webkit-input-placeholder {
                                font-size: 28rpx;
                            }
                            input {
                                text-align: right;
                                width: 180rpx;
                                height: 60rpx;
                                border-radius: 8rpx;
                                border: 1rpx solid #E5E5E5;
                                margin-right: 20rpx;
                                font-size: 28rpx;
                                font-weight: 400;
                                color: #333333;
                                padding: 0 30rpx
                            }
                            .wulll {
                                width: 400rpx;
                                text-align: right;
                                overflow: hidden;
                                white-space: nowrap;
                                text-overflow: ellipsis;
                            }
                            span {
                                font-size: 28rpx;
                                font-weight: 400;
                                color: #999999;
                            }
                        }
                    }
                }
            }
        }
    }
    .bg_plan {
        width: 100%;
        // height: 98px;
        padding: 30rpx;
        box-sizing: border-box;
        background: #FFFFFF;
        margin-bottom: 40rpx;
        display: flex;
        align-items: center;
        justify-content: space-between;
        span {
            font-size: 30rpx;
            font-family: PingFangSC-Regular, PingFang SC;
            font-weight: 400;
            color: #222222;
            b {
                color: red;
            }
        }
        .bg_plan_nr {
            display: flex;
            flex-direction: column;
            span {
                font-size: 24rpx;
                font-family: PingFangSC-Regular, PingFang SC;
                font-weight: 400;
                color: #666666;
                margin-top: 20rpx;
                &:first-child {
                    font-size: 32rpx;
                    font-family: PingFangSC-Medium, PingFang SC;
                    font-weight: 500;
                    color: #333333;
                    margin-top: 0 !important;
                }
            }
        }
        .bg_plan_label_val {
            display: flex;
            align-items: center;
            span {
                font-size: 28rpx;
                font-family: PingFangSC-Regular, PingFang SC;
                font-weight: 400;
                color: #999999;
            }
        }
    }
    .img_ar {
        width: 12rpx;
        height: 24rpx;
        margin-left: 20rpx;
    }
    .bh_zw {
        height: 160rpx;
    }
    .bg_footer {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        padding: 30rpx 30rpx 60rpx 30rpx;
        box-sizing: border-box;
        .bg_footer_submit1 {
            width: 690rpx;
            height: 76rpx;
            background: #FFFFFF;
            border-radius: 36rpx;
            border: 1rpx solid #E5E5E5;
            display: flex;
            align-items: center;
            justify-content: center;
            .fornt-img {
                width: 28rpx;
                height: 28rpx;
                margin-right: 12rpx;
            }
            span {
                font-size: 26rpx;
                font-family: PingFangSC-Regular, PingFang SC;
                font-weight: 400;
                color: #305ED5;
            }
        }
        .bg_footer_submit {
            width: 690rpx;
            height: 88rpx;
            box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08);
            border-radius: 8rpx;
            font-size: 30rpx;
            font-weight: 500;
            color: #FFFFFF;
            display: flex;
            align-items: center;
            justify-content: center;
        }
    }
    .details_dj {
        display: flex;
        flex-direction: column;
        .details_dj_list {
            width: 100%;
            box-sizing: border-box;
            background: #ffffff;
            display: flex;
            flex-direction: column;
            .details_dj_list_item {
                display: flex;
                flex-direction: column;
                border-bottom: 1rpx solid #E5E5E5;
                padding: 30rpx;
                line-height: 42rpx;
                span {
                    &:nth-child(1) {
                        font-size: 28rpx;
                        font-weight: 400;
                        color: #222222;
                    }
                    &:nth-child(2) {
                        font-size: 24rpx;
                        font-weight: 400;
                        color: #999999;
                    }
                }
            }
        }
        .details_dj_title {
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0 30rpx 30rpx;
            box-sizing: border-box;
            .details_dj_title_left {
                display: flex;
                align-items: center;
                span {
                    font-size: 32rpx;
                    font-weight: 500;
                    color: #222222;
                }
            }
        }
    }
    .contanir {
        height: calc(env(safe-area-inset-bottom) + 720rpx);
        .content {
            margin-top: 20rpx;
            .type-style {
                width: 325rpx;
                margin-bottom: 20rpx;
            }
        }
    }
    .bottom-view {
        left: 40rpx;
        right: 40rpx;
        bottom: 0
    }
    .bl_list {
        width: 100%;
        height: calc(100% - 168rpx);
        overflow-y: scroll;
        margin-top: 30rpx;
        .bl_list_item {
            width: 100%;
            height: 96rpx;
            display: flex;
            align-items: center;
            justify-content: space-between;
            border-bottom: 1rPX solid #E5E5E5;
            &:last-child {
                border: none !important;
            }
            .bl_list_item_left {
                flex: 1;
                display: flex;
                align-items: center;
                input {
                    width: 30rpx;
                    height: 30rpx;
                    border: 1rpX solid #CCCCCC;
                    margin: 0 !important;
                }
                span {
                    font-size: 30rpx;
                    color: #222222;
                    margin-left: 10rpx;
                }
            }
            .bl_list_item_right {
                flex: 1;
                height: 50rpx;
                text-align: right;
                input {
                    padding-left: 5rpx;
                    width: 160rpx;
                    height: 100%;
                    padding: 0 30rpx;
                    box-sizing: border-box;
                    text-align: right;
                    font-size: 28rpx;
                    color: #333333;
                    border-radius: 10rpx;
                    border: 1rPX solid #CCCCCC;
                    &::-webkit-input-placeholder {
                        font-size: 28rpx;
                        font-family: PingFangSC-Regular, PingFang SC;
                        font-weight: 400;
                        color: #999999;
                    }
                }
            }
        }
    }
</style>
minipro_standard/pages_adjust/pages/manualFeed/manualFeed.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,317 @@
<template>
    <view class="tl">
        <workOrderInfo :orederMessage="{proUserList:[]}" />
        <div class="tl_title">
            <div class="tl_title_left">
                <div class="tl_title_left_x"></div>
                <span>投料信息</span>
                <!-- <span>{{total == 0 ? '' : total}}{{formList[formList.length - 1].dw ? formList[formList.length - 1].dw : ''}}</span> -->
                <!-- <span>{{total == 0 ? '' : total}}{{formList[formList.length - 1].dw ? formList[formList.length - 1].dw : ''}}</span> -->
            </div>
            <div class="tl_title_right" @click="add">
                <image src="../../static/gongdan_ic_shoudong@2x.png" class="add-img" mode=""></image>
                <span>增加投料</span>
            </div>
        </div>
        <u-swipe-action>
            <u-swipe-action-item v-for="(item, index) in materialList" :key="index" :options="options"
                @click="deleItem(index)">
                <div class="tl_list">
                    <div class="tl_list_item" @click="open1(index)">
                        <div class="tl_list_item_label">选择物料</div>
                        <div class="tl_list_item_go" v-if="!item.materialName">
                            <span>点击跳转到物料列表</span>
                            <u-icon name="arrow-right"></u-icon>
                        </div>
                        <div class="tl_list_item_wl" v-else>
                            <div class="tl_list_item_wl_top">
                                <span>{{ item.materialName }}</span>
                                <span>&nbsp;|&nbsp;{{ item.materialCode }}</span>
                            </div>
                            <div class="tl_list_item_wl_bottom">
                                <span class="green" v-if="item.qualityType == 0">合格</span>
                                <span class="yellow" v-else-if="item.qualityType == 1">不良</span>
                                <span class="red" v-else-if="item.qualityType == 2">报废</span>
                                <span>{{ item.procedureName ? `&nbsp;/&nbsp;${item.procedureName}` : '&nbsp;/&nbsp;-' }}</span>
                                <span>{{ item.locationName ? `&nbsp;/&nbsp;${item.locationName}` : '&nbsp;/&nbsp;-' }}</span>
                                <span>{{ item.batch ? `&nbsp;/&nbsp;${item.batch}` : '&nbsp;/&nbsp;-' }}</span>
                            </div>
                        </div>
                    </div>
                    <div class="tl_list_item">
                        <div class="tl_list_item_label">投料数量{{ item.unitAttribute }}</div>
                        <div class="tl_list_item_go">
                            <input type="text" @blur="changeNumber(item.num, index, item.unitAttribute)"
                                v-model="item.num" />
                        </div>
                    </div>
                </div>
            </u-swipe-action-item>
        </u-swipe-action>
        <SelectMaterial ref="selectMaterial" />
    </view>
</template>
<script>
    import workOrderInfo from '@/components/workOrderInfo.vue'
    import SelectMaterial from '@/components/selectMaterial.vue'
    import {
        positiveInteger,
        number
    } from '@/common/config'
    export default {
        components: {
            workOrderInfo,
            SelectMaterial
        },
        data() {
            return {
                // formList: [{
                //     id: Date.now(),
                //     toolingTypeId: '', // å·¥è£…类型
                //     toolingTypeName: '', // å·¥è£…类型名称
                //     workClothesId: '', // å·¥è£…
                //     workClothesName: '', // å·¥è£…名称
                //     num: '', // æ•°é‡
                //     attribute: '', // å·¥è£…属性
                //     attributeType: '', // å·¥è£…属性类型
                //     dw: '', // ç‰©æ–™å•位
                //     unitAttribute: ''
                // }],
                materialList: [{
                    id: '',
                    materialName: '',
                    materialCode: '',
                    qualityType: '',
                    procedureName: '',
                    locationName: '',
                    batch: '',
                    num: '',
                    unitAttribute: ''
                }],
                options: [{
                    text: '删除',
                    style: {
                        backgroundColor: 'red',
                    }
                }],
            };
        },
        methods: {
            open1(index) {
                this.$refs.selectMaterial.open({})
            },
            deleItem(index) {
                if (this.materialList.length === 1) {
                    uni.$u.toast('至少保留一条投料信息')
                    return
                }
                this.materialList.splice(index, 1)
            },
            add() {
                this.total += 1
                this.materialList.unshift({
                    id: '',
                    materialName: '',
                    materialCode: '',
                    qualityType: '',
                    procedureName: '',
                    locationName: '',
                    batch: '',
                    num: '',
                    unitAttribute: ''
                })
            },
            changeNumber(num, index, unitAttribute) {
                if (unitAttribute === 0 && num !== '') {
                    if (!positiveInteger.test(num)) {
                        uni.$u.toast({
                            message: '只能输入正整数'
                        })
                        this.materialList[index].num = ''
                    }
                } else if (unitAttribute === 1 && num !== '') {
                    if (!number.test(num)) {
                        uni.$u.toast({
                            message: '只能输入正整数或小数(最多四位)'
                        })
                        this.materialList[index].num = ''
                    }
                }
                if (num <= 0) {
                    uni.$u.toast({
                        message: '投料数量不能小于等于0'
                    })
                    this.materialList[index].num = ''
                }
            }
        }
    }
</script>
<style lang="scss">
    .tl {
        width: 100%;
        height: 100%;
        position: absolute;
        background: #F7F7F7;
        .tl_title {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 30rpx;
            .tl_title_left {
                display: flex;
                align-items: center;
                .tl_title_left_x {
                    width: 8rpx;
                    height: 30rpx;
                    background: $nav-color;
                    border-radius: 2rpx;
                    margin-right: 12rpx;
                }
                span {
                    font-size: 32rpx;
                    font-weight: 500;
                    color: #222222;
                    &:nth-child(3) {
                        font-size: 28rpx;
                        font-weight: 500;
                        color: $nav-color;
                        margin-left: 10rpx;
                    }
                }
            }
            .tl_title_right {
                display: flex;
                align-items: center;
                .add-img {
                    width: 28rpx;
                    height: 28rpx;
                    margin-right: 12rpx;
                }
                span {
                    font-size: 28rpx;
                    font-weight: 400;
                    // color: $nav-color;
                }
            }
        }
        .tl_list {
            display: flex;
            flex-direction: column;
            background: white;
            padding: 0 30rpx;
            margin-bottom: 20rpx;
            .tl_list_item {
                min-height: 98rpx;
                // padding: 20rpx 0;
                box-sizing: border-box;
                display: flex;
                align-items: center;
                justify-content: space-between;
                border-bottom: 1rpx solid #E5E5E5;
                &:last-child {
                    border: none !important;
                }
                .tl_list_item_label {
                    font-size: 30rpx;
                    font-weight: 400;
                    color: #222222;
                }
                .tl_list_item_wl {
                    display: flex;
                    flex-direction: column;
                    align-items: end;
                    .tl_list_item_wl_top {
                        display: flex;
                        align-items: center;
                        span {
                            font-size: 28rpx;
                            color: #222222;
                        }
                    }
                    .tl_list_item_wl_bottom {
                        display: flex;
                        align-items: center;
                        span {
                            font-size: 28rpx;
                            color: #222222;
                        }
                    }
                }
                .tl_list_item_go {
                    display: flex;
                    align-items: center;
                    input {
                        text-align: right;
                        width: 180rpx;
                        height: 60rpx;
                        border-radius: 8rpx;
                        border: 1rpx solid #E5E5E5;
                        padding: 0 30rpx;
                        box-sizing: border-box;
                        font-size: 28rpx;
                        font-weight: 400;
                        color: #333333;
                    }
                    span {
                        font-size: 28rpx;
                        font-weight: 400;
                        color: #999999;
                        margin-right: 10rpx;
                    }
                }
            }
        }
        .tl_zw {
            height: 160rpx;
        }
        .tl_footer {
            width: 100%;
            position: fixed;
            bottom: 0;
            left: 0;
            padding: 0 30rpx 68rpx 30rpx;
            box-sizing: border-box;
            .tl_footer_submit {
                width: 690rpx;
                height: 88rpx;
                border: none;
                background: #4275FC;
                box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08);
                border-radius: 8rpx;
                font-size: 30rpx;
                font-weight: 500;
                color: #FFFFFF;
                display: flex;
                align-items: center;
                justify-content: center;
            }
        }
    }
</style>
minipro_standard/pages_adjust/pages/workOrderReporting/workOrderReporting.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,996 @@
<template>
    <view>
        <view class="tips-label">当前任务需要质检;产出后,请耐心等待质检员检验,并根据检验结果调整产出数据后再报工。</view>
        <workOrderInfo :orederMessage="{proUserList:[]}" />
        <!-- <u-tabs :list="tab" lineColor="#305ED5" :activeStyle="{color:'#305ED5'}" lineWidth="50%" :itemStyle="{width: '50%', boxSizing: 'border-box', height: '88rpx'}" @click="click"></u-tabs> -->
        <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">
            <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')">
                            <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>
                                            <div class="bg_list_item_num_item_wl_lx">
                                                <span class="green" v-if="item.qualityType == 0">合格&nbsp;/&nbsp;</span>
                                                <span class="orange" v-if="item.qualityType == 1">不良&nbsp;/&nbsp;</span>
                                                <span class="red" v-if="item.qualityType == 2">报废&nbsp;/&nbsp;</span>
                                                <span>{{ item.locationName }}</span>
                                                <span>{{ item.batch ? `&nbsp;/&nbsp;${item.batch}` : '' }}</span>
                                            </div>
                                        </div>
                                        <div class="bg_list_item_num_item_sr">
                                            <!-- :disabled="!proxy.$auth('h5:workorderinput:update')" -->
                                            <input v-model="item.num"
                                                @blur="change(item.id, item.num, 'T', item.maxNum, item, item.unitAttribute)"
                                                type="number" />
                                            <span>{{ item.unitName }}</span>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </u-swipe-action-item>
                    </u-swipe-action>
                </template>
                <template v-else>
                    <div class="kong">
                        <span>暂无数据</span>
                    </div>
                </template>
            </div>
            <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>
                <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="请输入" />
                                <span v-if="info.umodel">{{ info.umodel.name }}</span>
                            </div>
                        </div>
                    </div>
                </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="请输入" />
                                <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_top">
                    <div class="bg_list_item_top_left">
                        <div class="bg_list_item_top_left_x bg_m"></div>
                        <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">
            <div class="details_dj_list">
                <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  :key="index" :checked="item.active" :label="item.name"
                                    :name="item.name">
                                </u-checkbox>
                            </u-checkbox-group>
                        </div>
                        <div class="bl_list_item_right">
                            <input type="number" @click.stop v-model="item.num" placeholder="0" />
                        </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>
<script>
    import workOrderInfo from '@/components/workOrderInfo.vue'
    export default {
        components: {
            workOrderInfo
        },
        data() {
            return {
                cate: [{
                        name: '生产'
                    },
                    {
                        name: '点检'
                    }
                ],
                form: {
                    time: '',
                    efective: [],
                    defectiveName: '',
                    durationName: '0小时0分钟',
                    duration: 0,
                    type: 0,
                    index: 0
                },
                TimeShow: false,
                badShow: false,
                typeView: 0,
                feedingData: [{
                    id: 0,
                    materialName: '墙体砖',
                    procedureName: '压制',
                    qualityType: 1,
                    locationName: 'CP-01',
                    batch: '20230713',
                    num: 2,
                    maxNum: 10,
                    unitAttribute: 1,
                    unitName: '块'
                }],
                options: [{
                    text: '删除',
                    style: {
                        backgroundColor: 'red',
                    }
                }],
                arrType: [{
                        name: '计时',
                        type: 1,
                        salary: 1000,
                    },
                    {
                        name: '计件',
                        type: 0,
                        salary: 100
                    },
                ],
                // äº§å‡ºåˆæ ¼/不良
                produceFrom: {
                    qualifiedId: '',
                    qualified: '', // åˆæ ¼
                    undesirableId: '',
                    undesirable: 5 // ä¸è‰¯
                },
                djData: [{
                    attrName: '出水时间',
                    val: '2022-05-28 16:3',
                    userName: '张三 ',
                    createTime: '2022-05-28 16:32:'
                }],
                cateList: [{
                    active: false,
                    name: '毛刺',
                    num: 0
                }]
            };
        },
        computed: {
            expectedSalary() {
                if (this.arrType.length === 0) return 0;
                // æŒ‰ä»¶è®¡ç®—
                if (this.arrType[this.form.index].type == 0) {
                    if (!this.produceFrom.qualified) return 0
                    if (this.arrType[this.form.index].unqualified == 1) { // æ˜¯å¦è®¡å…¥ä¸è‰¯å“
                        let total = Number(this.produceFrom.qualified) + Number(this.produceFrom.undesirable)
                        return (total * (this.arrType[this.form.index].salary / 100)).toFixed(2) || 0
                    } else {
                        return (Number(this.produceFrom.qualified) * (this.arrType[this.form.index].salary / 100)).toFixed(
                            2) || 0
                    }
                } else {
                    if (!this.form.duration) return 0;
                    let h = (this.form.duration / 60 / 60).toFixed(2)
                    return (Number(h) * (this.arrType[this.form.index].salary / 10 / 10)).toFixed(2) || 0
                }
            },
            complianceRate() {
                if (this.arrType.length === 0) return 0;
                if (!this.produceFrom.qualified && !this.produceFrom.undesirable) return 0;
                if (!this.form.duration) return 0;
                if (!this.arrType[this.form.index].num) return 0;
                // æŒ‰ä»¶è®¡ç®—
                // if (infoBox.value.type == 0) {
                if (this.arrType[this.form.index].unqualified == 1) { // æ˜¯å¦è®¡å…¥ä¸è‰¯å“
                    let a = ((Number(this.produceFrom.qualified) + Number(this.produceFrom.undesirable)) / (this.form
                        .duration / 3600)).toFixed(2)
                    let b = (this.arrType[this.form.index].num / (this.arrType[form.index].times / 3600)).toFixed(2)
                    return ((Number(a) / Number(b)) * 100).toFixed(2)
                    // let total = (Number(from.qualified) + Number(from.undesirable)) / ((from.duration * 60 * 60) * infoBox.value.num / )
                    // return total * infoBox.value.salary;
                } else {
                    let a = (this.produceFrom.qualified / (this.form.duration / 3600)).toFixed(2)
                    let b = (this.arrType[this.form.index].num / (this.arrType[this.form.index].times / 3600)).toFixed(2)
                    return ((Number(a) / Number(b)) * 100).toFixed(2)
                    // return Number(from.qualified) * infoBox.value.salary;
                }
            }
        },
        methods: {
            click() {
            },
            clickIten(index) {
                this.typeView = index
            },
            timeConfirm({
                value
            }) {
                console.log(value)
                let h = Number(value.substring(0, 2))
                let m = Number(value.substring(3, 5))
                let s = 0
                if (h > 0) {
                    s += h * 60 * 60
                }
                if (m > 0) {
                    s += m * 60
                }
                this.form.duration = s
                this.form.durationName = `${h}小时${m}分钟`
                this.TimeShow = false
            },
            // ç¼–辑投料/产出
            change(id, num, type, maxNum, item, unitAttribute) {
                let obj = item
                if (type === 'T') {
                    if (unitAttribute == 0 && num != '') {
                        if (!REGULAR.positiveInteger.test(num)) {
                            obj.num = obj.ynum
                            Toast({
                                message: '只能输入正整数'
                            })
                            return
                        }
                    }
                    if (unitAttribute == 1 && num != '') {
                        if (!REGULAR.number.test(num)) {
                            Toast({
                                message: '只能输入正整数或小数(最多四位)'
                            })
                            obj.num = obj.ynum
                            return
                        }
                    }
                    if (num > maxNum) {
                        obj.num = obj.ynum
                        Toast.fail({
                            message: '超出工装总数'
                        })
                        return
                    }
                } else if (type === 'C' && num > info.value.planNum) {
                    obj.num = obj.ynum
                    Toast.fail({
                        message: '产出数量不能超过计划数量'
                    })
                    return
                }
                // updateById({ id, num }).then(res => {
                //   if (res.code === 200 && type === 'T') {
                //     getOrocessRecords()
                //   } else if (res.code === 200 && type === 'C') {
                //     // getOrocessRecordCC()
                //   }
                // })
            },
            clickPerformanceType(item, index) {
                this.form.index = index
                this.form.type = item.type
            },
            submit() {},
            jumpdj() {},
            pageDJs() {},
            dele(id) {
                // deletedj(id)
                //     .then(res => {
                //       if (res.code === 200) {
                //         djData.value = []
                //         finished.value = false
                //         page.page = 1
                //         djData.value = []
                //         pageDJs()
                //       }
                //     })
            },
            confirm() {
                // console.log('confirm');
                this.badShow = false
            },
            changeChecked(i) {
                this.cateList[i].active = !this.cateList[i].active
            }
        }
    }
</script>
<style lang="scss" scoped>
    .bg_cate {
        width: 100%;
        height: 88rpx;
        background: #FFFFFF;
        display: flex;
        align-items: center;
        .active {
            box-sizing: border-box;
            color: #305ED5 !important;
            font-weight: 500;
            border-bottom: 3rpx solid #305ED5;
        }
        .bg_cate_item {
            flex: 1;
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 30rpx;
            font-weight: 400;
            color: #555555;
        }
    }
    .bg_list {
        width: 100%;
        display: flex;
        flex-direction: column;
        margin-top: 30rpx;
        .bg_list_item {
            display: flex;
            flex-direction: column;
            // margin-bottom: 40rpx;
            border-bottom: 40rpx #f7f7f7 solid;
            .kong {
                text-align: center;
                padding: 30rpx 0;
                background: #ffffff;
                font-size: 25rpx;
                span {
                    color: #474747;
                }
            }
            .bg_list_item_top {
                display: flex;
                align-items: center;
                justify-content: space-between;
                padding-left: 30rpx;
                padding-right: 30rpx;
                margin-bottom: 30rpx;
                .bg_list_item_top_left {
                    display: flex;
                    align-items: center;
                    .left {
                        margin-left: 12rpx;
                        font-size: 28rpx;
                    }
                    .warning {
                        width: 8rpx;
                        height: 30rpx;
                        border-radius: 2rpx;
                        margin-right: 12rpx;
                        // background: $nav-stateColor5 !important;
                    }
                    .error {
                        width: 8rpx;
                        height: 30rpx;
                        border-radius: 2rpx;
                        margin-right: 12rpx;
                        // background: $nav-stateColor4 !important;
                    }
                    .bg_list_item_top_left_x {
                        width: 8rpx;
                        height: 30rpx;
                        // background: $nav-color;
                        border-radius: 2rpx;
                        margin-right: 12rpx;
                    }
                    span {
                        font-size: 32rpx;
                        font-weight: 500;
                        color: #222222;
                        display: flex;
                        align-items: center;
                    }
                }
                .bg_list_item_top_right {
                    display: flex;
                    align-items: center;
                    image {
                        width: 28rpx;
                        height: 28rpx;
                        margin-right: 12rpx;
                    }
                    span {
                        font-size: 28rpx;
                        font-weight: 400;
                    }
                }
            }
            .bg_list_item_h {
                width: 100%;
                padding: 0 30rpx;
                box-sizing: border-box;
                background: white;
                .bg_list_item_num {
                    width: 100%;
                    min-height: 98rpx;
                    background: white;
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    border-bottom: 1rpx solid #E5E5E5;
                    &:last-child {
                        border: none !important;
                    }
                    .kong {
                        text-align: center;
                        font-size: 25rpx;
                        padding: 30rpx 0;
                        background: #ffffff;
                    }
                    .bg_list_item_num_item {
                        width: 100%;
                        height: 100%;
                        display: flex;
                        align-items: center;
                        // height: 118rpx;
                        padding: 15rpx 0;
                        box-sizing: border-box;
                        justify-content: space-between;
                        border-bottom: 1rpx solid #E5E5E5;
                        &:last-child {
                            border: none;
                        }
                        .bg_list_item_num_item_list {
                            display: flex;
                            align-items: center;
                            .active {
                                background: #305ED5 !important;
                                color: #FFFFFF !important;
                            }
                            .bg_list_item_num_item_list_item {
                                width: 116rpx;
                                height: 62rpx;
                                line-height: 62rpx;
                                text-align: center;
                                background: #F2F2F2;
                                border-radius: 8rpx;
                                font-size: 26rpx;
                                font-family: PingFangSC-Regular, PingFang SC;
                                font-weight: 400;
                                color: #333333;
                                margin-right: 20rpx;
                                &:last-child {
                                    margin: 0 !important;
                                }
                            }
                        }
                        .bg_list_item_num_item_wl {
                            flex-shrink: 0;
                            display: flex;
                            flex-direction: column;
                            font-size: 34rpx;
                            color: #222222;
                            .bg_list_item_num_item_wl_lx {
                                margin-top: 10rpx;
                                color: #222222;
                                font-size: 28rpx;
                            }
                        }
                        // .warning {
                        //     color: $nav-stateColor5 !important;
                        // }
                        // .err {
                        //     color: $nav-stateColor4 !important;
                        // }
                        img {
                            width: 12rpx;
                            height: 24rpx;
                            margin-left: 20rpx;
                        }
                        span {
                            flex-shrink: 0;
                            overflow: hidden;
                            text-overflow: ellipsis;
                            white-space: nowrap;
                            b {
                                font-size: 30rpx;
                                color: red;
                                margin-right: 5rpx;
                            }
                            // .warning {
                            //     color: $nav-stateColor5 !important;
                            //     margin-right: 5rpx;
                            // }
                            // .err {
                            //     color: $nav-stateColor4 !important;
                            //     margin-right: 5rpx;
                            // }
                            &:nth-child(1) {
                                font-size: 30rpx;
                                font-weight: 400;
                                color: #222222;
                            }
                            &:nth-child(2) {
                                font-size: 28rpx;
                                font-weight: 400;
                                color: #333333;
                                flex-shrink: 0;
                            }
                        }
                        .bg_list_item_num_item_sr {
                            flex: 1;
                            display: flex;
                            align-items: center;
                            justify-content: flex-end;
                            .color1 {
                                font-size: 28rpx;
                                font-family: PingFangSC-Regular, PingFang SC;
                                font-weight: 400;
                                color: #333333;
                            }
                            input::-webkit-input-placeholder {
                                font-size: 28rpx;
                            }
                            input {
                                text-align: right;
                                width: 180rpx;
                                height: 60rpx;
                                border-radius: 8rpx;
                                border: 1rpx solid #E5E5E5;
                                margin-right: 20rpx;
                                font-size: 28rpx;
                                font-weight: 400;
                                color: #333333;
                                padding: 0 30rpx
                            }
                            .wulll {
                                width: 400rpx;
                                text-align: right;
                                overflow: hidden;
                                white-space: nowrap;
                                text-overflow: ellipsis;
                            }
                            span {
                                font-size: 28rpx;
                                font-weight: 400;
                                color: #999999;
                            }
                        }
                    }
                }
            }
        }
    }
    .bg_plan {
        width: 100%;
        // height: 98px;
        padding: 30rpx;
        box-sizing: border-box;
        background: #FFFFFF;
        margin-bottom: 40rpx;
        display: flex;
        align-items: center;
        justify-content: space-between;
        span {
            font-size: 30rpx;
            font-family: PingFangSC-Regular, PingFang SC;
            font-weight: 400;
            color: #222222;
            b {
                color: red;
            }
        }
        .bg_plan_nr {
            display: flex;
            flex-direction: column;
            span {
                font-size: 24rpx;
                font-family: PingFangSC-Regular, PingFang SC;
                font-weight: 400;
                color: #666666;
                margin-top: 20rpx;
                &:first-child {
                    font-size: 32rpx;
                    font-family: PingFangSC-Medium, PingFang SC;
                    font-weight: 500;
                    color: #333333;
                    margin-top: 0 !important;
                }
            }
        }
        .bg_plan_label_val {
            display: flex;
            align-items: center;
            span {
                font-size: 28rpx;
                font-family: PingFangSC-Regular, PingFang SC;
                font-weight: 400;
                color: #999999;
            }
        }
    }
    .img_ar {
        width: 12rpx;
        height: 24rpx;
        margin-left: 20rpx;
    }
    .bh_zw {
        height: 160rpx;
    }
    .bg_footer {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        padding: 30rpx 30rpx 60rpx 30rpx;
        box-sizing: border-box;
        .bg_footer_submit1 {
            width: 690rpx;
            height: 76rpx;
            background: #FFFFFF;
            border-radius: 36rpx;
            border: 1rpx solid #E5E5E5;
            display: flex;
            align-items: center;
            justify-content: center;
            .fornt-img {
                width: 28rpx;
                height: 28rpx;
                margin-right: 12rpx;
            }
            span {
                font-size: 26rpx;
                font-family: PingFangSC-Regular, PingFang SC;
                font-weight: 400;
                color: #305ED5;
            }
        }
        .bg_footer_submit {
            width: 690rpx;
            height: 88rpx;
            box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08);
            border-radius: 8rpx;
            font-size: 30rpx;
            font-weight: 500;
            color: #FFFFFF;
            display: flex;
            align-items: center;
            justify-content: center;
        }
    }
    .details_dj {
        display: flex;
        flex-direction: column;
        .details_dj_list {
            width: 100%;
            box-sizing: border-box;
            background: #ffffff;
            display: flex;
            flex-direction: column;
            .details_dj_list_item {
                display: flex;
                flex-direction: column;
                border-bottom: 1rpx solid #E5E5E5;
                padding: 30rpx;
                line-height: 42rpx;
                span {
                    &:nth-child(1) {
                        font-size: 28rpx;
                        font-weight: 400;
                        color: #222222;
                    }
                    &:nth-child(2) {
                        font-size: 24rpx;
                        font-weight: 400;
                        color: #999999;
                    }
                }
            }
        }
        .details_dj_title {
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0 30rpx 30rpx;
            box-sizing: border-box;
            .details_dj_title_left {
                display: flex;
                align-items: center;
                span {
                    font-size: 32rpx;
                    font-weight: 500;
                    color: #222222;
                }
            }
        }
    }
    .contanir {
        height: calc(env(safe-area-inset-bottom) + 720rpx);
        .content {
            margin-top: 20rpx;
            .type-style {
                width: 325rpx;
                margin-bottom: 20rpx;
            }
        }
    }
    .bottom-view {
        left: 40rpx;
        right: 40rpx;
        bottom: 0
    }
    .bl_list {
        width: 100%;
        height: calc(100% - 168rpx);
        overflow-y: scroll;
        margin-top: 30rpx;
        .bl_list_item {
            width: 100%;
            height: 96rpx;
            display: flex;
            align-items: center;
            justify-content: space-between;
            border-bottom: 1rPX solid #E5E5E5;
            &:last-child {
                border: none !important;
            }
            .bl_list_item_left {
                flex: 1;
                display: flex;
                align-items: center;
                input {
                    width: 30rpx;
                    height: 30rpx;
                    border: 1rpX solid #CCCCCC;
                    margin: 0 !important;
                }
                span {
                    font-size: 30rpx;
                    color: #222222;
                    margin-left: 10rpx;
                }
            }
            .bl_list_item_right {
                flex: 1;
                height: 50rpx;
                text-align: right;
                input {
                    padding-left: 5rpx;
                    width: 160rpx;
                    height: 100%;
                    padding: 0 30rpx;
                    box-sizing: border-box;
                    text-align: right;
                    font-size: 28rpx;
                    color: #333333;
                    border-radius: 10rpx;
                    border: 1rPX solid #CCCCCC;
                    &::-webkit-input-placeholder {
                        font-size: 28rpx;
                        font-family: PingFangSC-Regular, PingFang SC;
                        font-weight: 400;
                        color: #999999;
                    }
                }
            }
        }
    }
</style>
minipro_standard/static/ic_edit@2x.png
minipro_standard/util/request/index.js
@@ -1,13 +1,13 @@
// å¼•入配置
import config from '@/common/config'
import { baseUrl } from '@/common/config'
// åˆå§‹åŒ–请求配置
uni.$u.http.setConfig((defaultConfig) => {
    /* defaultConfig ä¸ºé»˜è®¤å…¨å±€é…ç½® */
    defaultConfig.baseURL = config.baseUrl /* æ ¹åŸŸå */
        config.header = {
    defaultConfig.baseURL = baseUrl /* æ ¹åŸŸå */
        defaultConfig.header = {
            'content-type': 'application/x-www-form-urlencoded;charset=utf-8',
        }
        config.dataType = 'json'
        defaultConfig.dataType = 'json'
    return defaultConfig
})