qingyiay
2023-07-28 fa9d6d873f252894b668aae8525a3d83b7175ca5
修改验质
6个文件已修改
1个文件已添加
475 ■■■■ 已修改文件
api/globalApi.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/customer-page/customer-my/faYunstatistics/faYunstatistics.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/public-page/faYunstatisticsDetails/faYunstatisticsDetails.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/public-page/selectSpecifications/selectSpecifications.vue 261 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
store/index.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/globalApi.js
@@ -411,4 +411,22 @@
        url: '/wrzs/tmtaskcoalitem/updateTmTaskCoalItem',
        method: 'POST'
    },
    /**
     *@description 查询一级品类 */
    getFirstCategoryName: {
        url: '/wrzs/jcproduct/getFirstCategoryName',
        method: 'GET'
    },
    /**
     *@description 查询二级品类 */
    getSecondCategoryName: {
        url: '/wrzs/jcproduct/getSecondCategoryName',
        method: 'GET'
    },
    /**
     *@description 根据一级品类 二级品类查询规格*/
    getSpec: {
        url: '/wrzs/jcproduct/getSpec',
        method: 'GET'
    },
}
pages.json
@@ -279,7 +279,16 @@
                    "enablePullDownRefresh": false
                }
            }]
            }    ,{
                    "path" : "selectSpecifications/selectSpecifications",
                    "style" :
                {
                    "navigationBarTitleText": "",
                    "enablePullDownRefresh": false
                }
                }
            ]
        }, {
            "root": "pages/driver-page/appointment",
            "pages": [{
pages/customer-page/customer-my/faYunstatistics/faYunstatistics.vue
@@ -206,7 +206,7 @@
                            </view>
                        </view>
                        <view class="filter-body"
                            v-if="roleType != 3">
                            v-if="roleType !== 3&&roleType !== 4">
                            <view class="condition-name">车队</view>
                            <view class="filter-name">
                                <view class="filter-button"
@@ -222,7 +222,8 @@
                            </view> -->
                            </view>
                        </view>
                        <view class="filter-body">
                        <view class="filter-body"
                            v-if="roleType != 4">
                            <view class="condition-name">仓库</view>
                            <view class="filter-name">
                                <view class="filter-button"
@@ -239,7 +240,7 @@
                            </view>
                        </view>
                        <view class="filter-body"
                            v-if="roleType == 2">
                            v-if="roleType == 2||roleType == 4">
                            <view class="condition-name">车牌号</view>
                            <view class="filter-name">
                                <view class="filter-button"
@@ -634,7 +635,7 @@
            // 跳转发运详情
            faYunDetail(takeCoalId) {
                uni.navigateTo({
                    url: `/pages/public-page/faYunstatisticsDetails/faYunstatisticsDetails?id=${takeCoalId}`
                    url: `/pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail?orderPlanId=${takeCoalId}`
                });
            },
            // 打开筛选条件弹窗
pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue
@@ -56,22 +56,30 @@
                    <view class="count">{{ item.weight }}</view>
                </view>
            </view>
            <view class="notice-num">
                <view class="num-text"
                    style="margin-left: 10rpx;">
                    <u--text text="通知数量"
            <view class="level">
                <view style="width: 140rpx;">
                    <u--text text="物资明细"
                        size='32'></u--text>
                </view>
                <view class="num-input"
                    v-if='roleType===4&&!flag'>
                    <u--input placeholder="请输入通知数量"
                        border="bottom"
                        clearable
                        v-model="item.num"></u--input>
                <view class="tag-select"
                    @click="goodsPopoverShow(i)"
                    v-if='roleType===4'>
                    <text>
                        {{item.breed+"/"+item.spec||item.modifygoodsName||'暂无'}}
                    </text>
                </view>
                <view class="num-show"
                    v-else-if="flag">
                    {{item.num}}
            </view>
            <view class="level"
                v-if='item.modifygoodsName||globalShowWeigh[i].modifyProductName'>
                <view style="width: 180rpx;">
                    <u--text text="品名与规格"
                        size='32'></u--text>
                </view>
                <view class="tag-select"
                    @click="productNamePopoverShow(i)">
                    <text>
                        {{!flag?(globalShowWeigh[i].modifyProductName?globalShowWeigh[i].modifyProductName:item.modifygoodsName):(item.breed+'/'+item.spec)}}
                    </text>
                </view>
            </view>
            <view class="unqualifiedBreed">
@@ -82,14 +90,9 @@
                <view class="tag-select"
                    @click="selectunqualifiedBreed(i)">
                    <text>
                        {{item.unqualifiedBreed||'请选择'}}
                        {{!flag?(globalShowWeigh[i].unqualifiedBreed?globalShowWeigh[i].unqualifiedBreed:item.unqualifiedBreed):(item.unqualifiedBreed||"请选择")}}
                    </text>
                </view>
                <!-- <view class="tag-select">
                    <u-tag :text="item.unqualifiedBreed||'请选择'"
                        plain
                        @click='selectunqualifiedBreed(i)'></u-tag>
                </view> -->
            </view>
            <view class="notice-num">
                <view class="num-text">
@@ -109,38 +112,23 @@
                    {{item.unqualifiedWeight}}
                </view>
            </view>
            <view class="level"
                v-if='!flag'>
                <view style="width: 140rpx;">
                    <u--text text="物资明细"
            <view class="notice-num">
                <view class="num-text"
                    style="margin-left: 10rpx;">
                    <u--text text="通知数量"
                        size='32'></u--text>
                </view>
                <view class="tag-select"
                    @click="goodsPopoverShow(i)"
                    v-if='roleType===4'>
                    <text>
                        {{item.breed+item.spec||item.modifygoodsName||'暂无'}}
                    </text>
                <view class="num-input"
                    v-if='roleType===4&&!flag'>
                    <u--input placeholder="请输入通知数量"
                        border="bottom"
                        clearable
                        v-model="item.num"></u--input>
                </view>
                <view class="num-show"
                    v-else-if="flag">
                    {{item.num}}
            </view>
            <view class="level"
                v-if='item.modifygoodsName||flag'>
                <view style="width: 180rpx;">
                    <u--text text="品名与规格"
                        size='32'></u--text>
                </view>
                <view class="tag-select"
                    @click="productNamePopoverShow(i)"
                    v-if="showWeighCopy[i].modifyProductName||item.breed&&item.spec">
                    <text>
                        {{!flag?showWeighCopy[i].modifyProductName:item.breed+item.spec}}
                    </text>
                </view>
                <!-- <view v-if="showWeighCopy[i].modifyProductName||item.breed&&item.spec">
                    <u-tag :text="!flag?showWeighCopy[i].modifyProductName:(item.breed?item.breed+item.spec:'请选择')"
                        plain
                        @click="productNamePopoverShow(i)"></u-tag>
                </view> -->
            </view>
            <view style="display: flex;margin-top: 20rpx;margin-left: 20rpx;"
                v-if="item.isImage">
@@ -212,7 +200,7 @@
    import BigNumber from "bignumber.js"
    import { BaseUrl } from '@/api/publicInterface.js';
    import { onlineurl } from '@/api/request.js'
    import backtop from '../../../../../uni_modules/uview-ui/libs/config/props/backtop';
    import { mapState, mapMutations } from "vuex"
    export default {
        data() {
            return {
@@ -244,28 +232,46 @@
                BaseUrl,
                // 不合格品名
                unqualifiedShow: false,
                unqualifiedIndex: null
                unqualifiedIndex: null,
                dataForm: {},
                // // 判断是修改品名与规格还是不合格品名
                ModifiedOrderIndex: null,
                willProductName: true,
                willUnqualified: true,
                alterProductName: false,
                alterUnqualified: false,
                // 存储中间态
                showWeighCopyStorge: [],
                havedSubmit: false
            };
        },
        computed: {
            ...mapState(["globalShowWeigh"]),
            roleType() {
                return uni.getStorageSync('roleType')
            },
            showWeighCopyStorgeOther() {
                return uni.getStorageSync('showWeighCopyStorgeOther')
            }
        },
        onLoad(params) {
            this.orderPlanId = params.orderPlanId ? params.orderPlanId : '';
            this.flag = params.flag ? params.flag : false;
            this.roleType === 1 ? this.GetOrderPlan() : this.getTakeCoal()
            this.getJcProductList()
            this.ModifiedOrderIndex = params.index
            this.alterProductName = params.productName === "true" || false
            this.alterUnqualified = params.unqualified === "true" || false
            this.havedSubmit = params.havedSubmit === "true" || false
        },
        methods: {
            ...mapMutations(['changeglobalShowWeigh']),
            getTakeCoal() {
                uni.showLoading({
                    title: '加载中'
                });
                this.$reqGet('getTakeCoal', { takeCoalId: this.orderPlanId }).then(res => {
                    if (res.code == 0) {
                        uni.hideLoading()
                        this.coalDetailsData = res.data;
                        this.orderCode = res.data.orderCode
                        this.showWeigh = this.coalDetailsData.tmTaskCoalItems ? this.coalDetailsData
@@ -281,7 +287,12 @@
                            }
                        })
                        this.showWeighCopy = JSON.parse(JSON.stringify(this.showWeigh))
                        uni.hideLoading()
                        uni.setStorageSync("showWeighCopyStorge", this.showWeighCopy)
                        if (this.havedSubmit) {
                            this.changeglobalShowWeigh(uni.getStorageSync('showWeighCopyStorgeOther'))
                        } else {
                            this.changeglobalShowWeigh(uni.getStorageSync('showWeighCopyStorge'))
                        }
                    } else {
                        this.$u.toast('加载失败')
                        uni.hideLoading()
@@ -291,7 +302,7 @@
                        this.goodsList = r.data.map(v => {
                            return {
                                ...v,
                                name: v.breed + v.spec
                                name: v.breed + '/' + v.spec
                            }
                        })
                        uni.hideLoading()
@@ -325,14 +336,16 @@
                    }
                })
            },
            // 输入折扣率后点击确认
            // 点击确认
            confirmInput() {
                this.loading = true
                this.showWeigh = this.showWeigh.map((v, i) => {
                    return {
                        ...v,
                        breed: this.showWeighCopy[i].modifyProductName ? this.showWeighCopy[i].breed : v.breed,
                        spec: this.showWeighCopy[i].modifyProductName ? this.showWeighCopy[i].spec : v.spec,
                        unqualifiedBreed: this.globalShowWeigh[i].unqualifiedBreed ? this.globalShowWeigh[i]
                            .unqualifiedBreed : v.unqualifiedBreed,
                        breed: this.globalShowWeigh[i].modifyProductName ? this.globalShowWeigh[i].breed : v.breed,
                        spec: this.globalShowWeigh[i].modifyProductName ? this.globalShowWeigh[i].spec : v.spec,
                        inspectionJpg: v.fileList.map(v => v.url.replace(BaseUrl, '')).join(',')
                    }
@@ -359,6 +372,7 @@
                    this.goodsShow = true
                    this.goodsIndex = index
                }
            },
            goodsNameClose() {
                this.goodsShow = false
@@ -376,8 +390,11 @@
            // 品名与规格
            productNamePopoverShow(index) {
                if (this.roleType === 4 && !this.flag) {
                    this.actionShow = true
                    this.actionIndex = index
                    // this.actionShow = true
                    // this.actionIndex = index
                    uni.navigateTo({
                        url: `/pages/public-page/selectSpecifications/selectSpecifications?index=${index}&takeCoalId=${this.orderPlanId}&productName=${this.willProductName}`
                    })
                }
            },
            productNameClose() {
@@ -400,17 +417,12 @@
            // 选择不合格品名
            selectunqualifiedBreed(index) {
                if (this.roleType === 4 && !this.flag) {
                    this.unqualifiedShow = true
                    this.unqualifiedIndex = index
                    // this.unqualifiedShow = true
                    // this.unqualifiedIndex = index
                    uni.navigateTo({
                        url: `/pages/public-page/selectSpecifications/selectSpecifications?index=${index}&takeCoalId=${this.orderPlanId}&unqualified=${this.willUnqualified}`
                    })
                }
            },
            // 不合格重量输入
            unqualifiedWeightInputHandle(value, index, clean) {
                // this.showWeigh[index].weight = (clean - (Number(value)) - this.showWeigh[index].cinderWeight).toFixed(2)
                let x = new BigNumber(clean)
                let y = new BigNumber(value)
                let z = new BigNumber(this.showWeigh[index].cinderWeight)
                this.showWeigh[index].weight = x.minus(y).minus(z).toFixed(2) || ''
            },
            unqualifiedClose() {
                this.unqualifiedShow = false
@@ -418,6 +430,13 @@
            selectUnqualifiedClick(val) {
                this.showWeigh[this.unqualifiedIndex].unqualifiedBreed = val.secondCategoryName + val.spec
            },
            // 不合格重量输入
            unqualifiedWeightInputHandle(value, index, clean) {
                let x = new BigNumber(clean)
                let y = new BigNumber(value)
                let z = new BigNumber(this.showWeigh[index].cinderWeight)
                this.showWeigh[index].weight = x.minus(y).minus(z).toFixed(2) || ''
            },
            // 删除图片
            deletePic(event) {
                this.showWeigh[event.name].fileList.splice(event.index, 1);
pages/public-page/faYunstatisticsDetails/faYunstatisticsDetails.vue
@@ -46,8 +46,8 @@
                </view>
                <view class="body-container">
                    <view class="container-block">
                        <view class="">通知单编号</view>
                        <view class="">{{ faYunDetailobj.code || '' }}</view>
                        <view class="container-block_prefix">通知单编号</view>
                        <view class="container-block_suffix">{{ faYunDetailobj.code || '' }}</view>
                    </view>
                </view>
                <view class="body-container last">
@@ -59,7 +59,7 @@
            </view>
            <view class="origin-info"
                v-if="faYunDetailobj.orderType == '外购' || faYunDetailobj.orderType == '内购' || faYunDetailobj.orderType == '转出'">
                <combined-title title="原发信息"></combined-title>
                <combined-title title="验质信息"></combined-title>
                <view class="body-container">
                    <view class="container-block">
                        <view class="">皮重</view>
@@ -147,6 +147,15 @@
                    width: 96%;
                    height: vww(56);
                    @include flex;
                    &_prefix {
                        width: 25%;
                    }
                    &_suffix {
                        flex: 0.8;
                        word-break: break-all;
                    }
                }
            }
pages/public-page/selectSpecifications/selectSpecifications.vue
New file
@@ -0,0 +1,261 @@
<template>
    <view class="main">
        <u--form labelPosition="top"
            labelWidth="20%"
            :borderBottom="false"
            :model="dataForm"
            ref="uForm">
            <u-form-item label="一级品类"
                prop="firstClass"
                :borderBottom="false">
                <u-cell-group>
                    <u-cell :title="dataForm.firstClass"
                        value="请选择"
                        @click="firstClassSelect">
                        <u-icon name="arrow-right"
                            slot="right-icon"
                            size="30"></u-icon></u-cell>
                </u-cell-group>
            </u-form-item>
            <u-form-item label="二级品名"
                prop="secondClass"
                :borderBottom="false">
                <u-cell-group>
                    <u-cell :title="dataForm.secondClass"
                        value="请选择"
                        @click="secondClassSelect">
                        <u-icon name="arrow-right"
                            slot="right-icon"
                            size="30"></u-icon></u-cell>
                </u-cell-group>
            </u-form-item>
            <u-form-item label="规格"
                prop="specifications"
                borderBottom>
                <u-input v-model="dataForm.specifications"
                    placeholder="请输入规格"
                    border="bottom"
                    @input="$u.debounce(specInputHandle, 500)"></u-input>
            </u-form-item>
        </u--form>
        <Transition name="slide-fade">
            <view class="spec-main"
                v-show="specList.length!==0&&haveSelectd">
                <view class="spec-main_content"
                    v-for="item in specList"
                    :key="item.id">
                    <view class="spec-main_item"
                        @click.stop="specSelectHandle(item.spec)">
                        {{item.spec}}
                    </view>
                </view>
            </view>
        </Transition>
        <view style="margin-top: 20rpx;">
            <u-button type="primary"
                shape="circle"
                text="提交"
                @click.stop="formHandle"></u-button>
        </view>
        <!-- 一级 -->
        <u-action-sheet :actions="firstClassActionsList"
            :show="firstClassShow"
            cancelText='取消'
            :closeOnClickOverlay='true'
            @close='firstClassClose'
            @select="firstClassSelectClick"></u-action-sheet>
        <!-- 二级 -->
        <u-action-sheet :actions="secondClassActionsList"
            :show="secondClassShow"
            cancelText='取消'
            :closeOnClickOverlay='true'
            @close='secondClassClose'
            @select="secondClassSelectClick"></u-action-sheet>
    </view>
</template>
<script>
    import { mapState, mapMutations } from "vuex"
    export default {
        data() {
            return {
                dataForm: {
                    firstClass: "",
                    secondClass: "",
                    specifications: ""
                },
                index: '',
                takeCoalId: "",
                // 一级品类操作菜单
                firstClassActionsList: [],
                firstClassShow: false,
                // 二级品类操作菜单
                secondClassActionsList: [],
                secondClassShow: false,
                // 规格选择
                specList: [],
                haveSelectd: true,
                // 判断是修改品名与规格还是不合格品名
                productName: false,
                unqualified: false,
                //
                showWeighCopyStorge: []
            }
        },
        computed: {
            ...mapState(["globalShowWeigh"]),
        },
        onLoad(params) {
            this.index = params.index || ""
            this.takeCoalId = params.takeCoalId || ''
            this.getFirstCategoryName()
            this.productName = params.productName === "true" || false
            this.unqualified = params.unqualified === "true" || false
            this.showWeighCopyStorge = JSON.parse(JSON.stringify(uni.getStorageSync('showWeighCopyStorge')))
        },
        methods: {
            ...mapMutations(['changeglobalShowWeigh']),
            getFirstCategoryName() {
                uni.showLoading({
                    title: "加载中"
                })
                this.$reqGet("getFirstCategoryName").then(res => {
                    if (res.code === 0) {
                        uni.hideLoading()
                        this.firstClassActionsList = res.data.map(v => {
                            return {
                                ...v,
                                name: v.firstCategoryName
                            }
                        })
                        this.dataForm.firstClass = this.firstClassActionsList[0].firstCategoryName
                    } else {
                        uni.hideLoading()
                        this.$u.toast('加载失败')
                    }
                })
            },
            //一级品类菜单
            firstClassSelect() {
                this.firstClassShow = true
            },
            firstClassClose() {
                this.firstClassShow = false
            },
            firstClassSelectClick(val) {
                this.dataForm.firstClass = val.name
            },
            // 二级品类选择
            getSecondCategoryName() {
                uni.showLoading({
                    title: "加载中"
                })
                this.$reqGet('getSecondCategoryName', { firstCategoryName: this.dataForm.firstClass }).then(
                    res => {
                        if (res.code === 0) {
                            uni.hideLoading()
                            this.secondClassActionsList = res.data.map(v => {
                                return {
                                    ...v,
                                    name: v.secondCategoryName
                                }
                            })
                        } else {
                            uni.hideLoading()
                            this.$u.toast('加载失败')
                        }
                    })
            },
            //二级品类菜单
            async secondClassSelect() {
                await this.getSecondCategoryName()
                this.secondClassShow = true
            },
            secondClassClose() {
                this.secondClassShow = false
            },
            secondClassSelectClick(val) {
                this.dataForm.secondClass = val.name
            },
            // 选择规格
            specInputHandle() {
                if (!this.dataForm.secondClass) return this.$u.toast('请先选择上方品名')
                this.$reqGet('getSpec', {
                    firstCategoryName: this.dataForm.firstClass,
                    secondCategoryName: this.dataForm
                        .secondClass,
                    specText: this.dataForm.specifications
                }).then(res => {
                    if (res.code === 0) {
                        this.specList = res.data
                    } else {
                        uni.hideLoading()
                        this.$u.toast('加载失败')
                    }
                })
            },
            specSelectHandle(val) {
                this.dataForm.specifications = val
                this.haveSelectd = false
            },
            formHandle() {
                this.showWeighCopyStorge = this.globalShowWeigh
                if (this.productName) {
                    this.showWeighCopyStorge[this.index].modifyProductName = this.dataForm.secondClass + '/' + this
                        .dataForm.specifications
                    this.showWeighCopyStorge[this.index].breed = this.dataForm.secondClass
                    this.showWeighCopyStorge[this.index].spec = this.dataForm.specifications
                }
                if (this.unqualified) {
                    this.showWeighCopyStorge[this.index].unqualifiedBreed = this.dataForm.secondClass + '/' + this.dataForm
                        .specifications
                    this.showWeighCopyStorge[this.index].breed = this.dataForm.secondClass
                    this.showWeighCopyStorge[this.index].spec = this.dataForm.specifications
                }
                this.changeglobalShowWeigh(this.showWeighCopyStorge)
                uni.setStorageSync('showWeighCopyStorgeOther', this.globalShowWeigh)
                uni.redirectTo({
                    url: `/pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail?dataForm=${JSON.stringify(this.dataForm)}&orderPlanId=${this.takeCoalId}&index=${this.index}&havedSubmit=${true}`
                })
            }
        }
    }
</script>
<style lang="scss"
    scoped>
    .main {
        width: 94%;
        margin: 10px;
        position: relative;
    }
    .slide-fade-enter-active {
        transition: all 0.3s ease-out;
    }
    .spec-main {
        width: 96%;
        margin: auto;
        height: 600rpx;
        overflow: scroll;
        background: #f0f0f0;
        box-shadow: 4rpx 6rpx 51rpx 0rpx rgba(73, 120, 240, 0.11);
        border-radius: 20rpx;
        position: relative;
        top: vww(5);
        &_content {
            width: 90%;
            margin: auto;
            padding-top: vww(10);
            .spec-main_item {
                padding: vww(5);
                color: #515151;
                border-bottom: 1px solid #e3e3e3;
                font-size: 40rpx;
            }
        }
    }
</style>
store/index.js
@@ -107,7 +107,8 @@
        connectNum: 1, //重连次数,
        reconnectTimeOut: null,
        // 称重稳定态  0/稳定 1/非稳定  非稳定态不能点称重
        globalWarning: false
        globalWarning: false,
        globalShowWeigh: []
    },
    mutations: {
        lengthchange(state, payload) {
@@ -180,6 +181,9 @@
        // 改变稳定态
        changeWarning(state, payload) {
            state.globalWarning = payload
        },
        changeglobalShowWeigh(state, payload) {
            state.globalShowWeigh = payload
        }
    },
    actions: {