api/globalApi.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/customer-page/customer-my/faYunstatistics/faYunstatistics.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/public-page/faYunstatisticsDetails/faYunstatisticsDetails.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/public-page/selectSpecifications/selectSpecifications.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
store/index.js | ●●●●● 补丁 | 查看 | 原始文档 | 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: {