| | |
| | | <!-- 查看皮毛净明细 --> |
| | | <template> |
| | | |
| | | <view class="main"> |
| | | <u-empty mode="data" |
| | | <u-subsection class="tabs" :fontSize = '30' :list="list" :current="current" @change="tabChange"></u-subsection> |
| | | <view v-if="current"> |
| | | <u-empty mode="data" |
| | | icon="http://cdn.uviewui.com/uview/empty/data.png" |
| | | textSize="30" |
| | | iconSize="1000" |
| | |
| | | <view class="num">{{ item.clean }}</view> |
| | | </view> |
| | | </view> |
| | | <view v-if="isShow(item) && isYanz()"> |
| | | <view class="discount"> |
| | | <view class="rate"> |
| | | <view class="label-text"> |
| | |
| | | class="count-input"> |
| | | <u--input placeholder="请输入扣渣" |
| | | border="bottom" |
| | | type="number" |
| | | clearable |
| | | v-model="item.cinderWeight" |
| | | @input='v=>discountInputHandle(v,i,item.clean)'></u--input> |
| | |
| | | <view class="label-text"> |
| | | 扣渣后净重 |
| | | </view> |
| | | <view class="count">{{ item.weight }}</view> |
| | | <view class="count">{{ item.weight || item.clean}}</view> |
| | | </view> |
| | | </view> |
| | | <view class="level"> |
| | | <view style="width: 140rpx;"> |
| | | </view> |
| | | <!-- 判断是否检验质量 --> |
| | | <view v-if="isShow(item) && isYanz()"> |
| | | <view class="level"> |
| | | <view style="width: 180rpx;"> |
| | | <u--text text="物资明细" |
| | | size='32'></u--text> |
| | | </view> |
| | | |
| | | <view class="tag-select" |
| | | @click="goodsPopoverShow(i)" |
| | | v-if='roleType===4'> |
| | |
| | | <u--text text="通知数量" |
| | | size='32'></u--text> |
| | | </view> |
| | | <view class="num-input" |
| | | <view class="num-input " |
| | | v-if='roleType===4&&!flag'> |
| | | <u--input placeholder="请输入通知数量" |
| | | <u-input placeholder="请输入通知数量" |
| | | border="bottom" |
| | | clearable |
| | | v-model="item.num"></u--input> |
| | | style="width: 70%;" |
| | | v-model="item.num"> |
| | | <template slot="suffix"> |
| | | <text class="inp-unit">{{ item.numUnit}}</text> |
| | | </template> |
| | | </u-input> |
| | | </view> |
| | | <view class="num-show" |
| | | v-else-if="flag"> |
| | | {{item.num}} |
| | | {{item.num + item.numUnit}} |
| | | </view> |
| | | </view> |
| | | <view class="notice-num"> |
| | | <view class="num-text" |
| | | style="margin-left: 10rpx;"> |
| | | <u--text text="通知重量" |
| | | size='32'></u--text> |
| | | </view> |
| | | <view class="num-input" |
| | | v-if='roleType===4&&!flag' |
| | | > |
| | | <u-input placeholder="请输入通知重量" |
| | | border="bottom" |
| | | clearable |
| | | style="width: 70%;" |
| | | v-model="item.weight1"> |
| | | <template slot="suffix"> |
| | | <text class="inp-unit">{{ item.weightUnit }}</text> |
| | | </template> |
| | | </u-input> |
| | | </view> |
| | | <view class="num-show" |
| | | v-else-if="flag"> |
| | | {{item.weight1 + item.weightUnit }} |
| | | </view> |
| | | </view> |
| | | <!-- 新增扣罚种类、 扣罚金额,不合格判定种类--> |
| | | <view class="notice-num"> |
| | | <view class="num-text" |
| | | style="margin-left: 10rpx;"> |
| | | <u--text text="扣罚种类" |
| | | size='32'></u--text> |
| | | </view> |
| | | <view class="num-radio" |
| | | v-if='roleType===4&&!flag' |
| | | > |
| | | <u-radio-group size='34' v-model="item.penaltyType"> |
| | | <u-radio :label-size="32" :name="'0'" :label="'无扣罚'" :disabled="disabled">无扣罚</u-radio> |
| | | <u-radio :label-size="32" :name="'其他扣罚'" :label="'其他扣罚'" :disabled="disabled">其他扣罚</u-radio> |
| | | </u-radio-group> |
| | | </view> |
| | | <view class="num-show" |
| | | v-else-if="flag"> |
| | | {{item.penaltyType}} |
| | | </view> |
| | | </view> |
| | | <!-- 扣罚金额 --> |
| | | <view class="notice-num" v-if="item.penaltyType == '其他扣罚'"> |
| | | <view class="num-text" |
| | | style="margin-left: 10rpx;"> |
| | | <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.penaltyAmount"></u--input> |
| | | </view> |
| | | <view class="num-show" |
| | | v-else-if="flag"> |
| | | {{item.penaltyAmount}} |
| | | </view> |
| | | </view> |
| | | <!--不合格判定种类 --> |
| | | <view class="notice-num" v-if="item.penaltyType == '其他扣罚'" > |
| | | <view class="num-text" |
| | | style="margin-left: 10rpx;"> |
| | | <u--text text="不合格判定" |
| | | size='32'></u--text> |
| | | </view> |
| | | <view class="num-radio" |
| | | v-if='roleType===4&&!flag' |
| | | @click.stop="onFoucus" |
| | | style="height: 50rpx;" |
| | | > |
| | | <u-radio-group size='32' v-model="item.unqualifiedType"> |
| | | <u-radio :label-size="25" :name="1" :label="'长度扣罚'" :disabled="disabled">长度扣罚</u-radio> |
| | | <u-radio :label-size="25" :name="'2'" :label="'厚度扣罚'" :disabled="disabled">厚度扣罚</u-radio> |
| | | <u-radio :label-size="25" :name="'3'" :label="'密闭器'" :disabled="disabled">密闭器</u-radio> |
| | | </u-radio-group> |
| | | </view> |
| | | <view class="num-show" |
| | | v-else-if="flag"> |
| | | <text> {{item.unqualifiedType == 1 ? '长度扣罚' : item.unqualifiedType == 2 ? '厚度扣罚' :item.unqualifiedType == 3 ? '密闭器' : null }} </text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <u-empty v-if=" isYanz() && !isShow(item) " icon-size="200" text="''" > |
| | | <text>暂未验质</text> |
| | | </u-empty> |
| | | <u-empty v-if="!isYanz()" icon-size="200" text="''" > |
| | | <text>暂无数据</text> |
| | | </u-empty> |
| | | <view style="display: flex;margin-top: 20rpx;margin-left: 20rpx;" |
| | | v-if="item.isImage"> |
| | | <view style="width: 100px;" |
| | |
| | | @select="selectUnqualifiedClick"></u-action-sheet> |
| | | </view> |
| | | </view> |
| | | <!-- 新增 验质备注。验质说明 --> |
| | | <view v-if=" isYanz()"> |
| | | <view v-if="coalDetailsData.orderType == '外购'"> |
| | | <view style="padding: 10rpx;"> |
| | | <u-row > |
| | | <u-col span="24" > |
| | | <view class="demo-layout bg-purple-light" style="display: flex;"> |
| | | <text style="font-size: 32rpx;">验质说明:</text> |
| | | <view style="display: inline-block;" |
| | | v-if='roleType===4&&!flag' |
| | | > |
| | | <u--input placeholder="请输入验质说明" |
| | | border="bottom" |
| | | clearable |
| | | v-model="qualityInstructions"></u--input> |
| | | </view> |
| | | <view class="num-show" |
| | | v-else-if="flag"> |
| | | {{ qualityInstructions }} |
| | | </view> |
| | | </view> |
| | | </u-col> |
| | | </u-row> |
| | | </view> |
| | | <view style="padding: 10rpx;"> |
| | | <u-row > |
| | | <u-col span="24"> |
| | | <view class="demo-layout bg-purple-light" > |
| | | <text style="font-size: 32rpx;">验质备注:</text> |
| | | <view style="width: 50%;" |
| | | v-if='roleType===4&&!flag' |
| | | > |
| | | <u-textarea border="surround" v-model="remarks" ref="textarea" placeholder="请输入验质备注"></u-textarea> |
| | | </view> |
| | | <view class="num-show" |
| | | v-else-if="flag"> |
| | | {{ remarks }} |
| | | </view> |
| | | </view> |
| | | </u-col> |
| | | </u-row> |
| | | </view> |
| | | </view> |
| | | <view class="confirm-button" |
| | | v-if='roleType===4&&!flag'> |
| | | <u-button type="primary" |
| | |
| | | @click="confirmInput" |
| | | :loading="loading" |
| | | loading-text="确认"></u-button> |
| | | </view></view> |
| | | </view> |
| | | |
| | | <!-- 物料明细 --> |
| | | <view v-if="!current"> |
| | | <view class="main-block" |
| | | v-for="(item,i) in goodsList" |
| | | :key="item.id"> |
| | | <view class="level"> |
| | | <view style="width: 180rpx;"> |
| | | <u--text text="物资名称" |
| | | size='32'></u--text> |
| | | </view> |
| | | <view class="tag-select" |
| | | > |
| | | <text class="num-text"> |
| | | {{item.breed}} |
| | | </text> |
| | | </view> |
| | | </view> |
| | | <view class="level"> |
| | | <view style="width: 180rpx;"> |
| | | <u--text text="明细编号" |
| | | size='32'></u--text> |
| | | </view> |
| | | <view class="tag-select"> |
| | | <text> |
| | | {{item.itemId}} |
| | | </text> |
| | | </view> |
| | | </view> |
| | | <view class="level"> |
| | | <view style="width: 180rpx;"> |
| | | <u--text text="通知数量" |
| | | size='32'></u--text> |
| | | </view> |
| | | <view class="tag-select"> |
| | | <text> |
| | | {{item.num}} |
| | | </text> |
| | | </view> |
| | | </view> |
| | | <view class="level"> |
| | | <view style="width: 180rpx;"> |
| | | <u--text text="规格" |
| | | size='32'></u--text> |
| | | </view> |
| | | <view class="tag-select"> |
| | | <text> |
| | | {{item.spec}} |
| | | </text> |
| | | </view> |
| | | </view> |
| | | <view class="level"> |
| | | <view style="width: 180rpx;"> |
| | | <u--text text="通知重量" |
| | | size='32'></u--text> |
| | | </view> |
| | | <view class="tag-select"> |
| | | <text> |
| | | {{item.weight}} |
| | | </text> |
| | | </view> |
| | | </view> |
| | | <!-- 物资明细 --> |
| | | <u-action-sheet :actions="goodsList" |
| | | :show="goodsShow" |
| | | cancelText='取消' |
| | | :closeOnClickOverlay='true' |
| | | @close='goodsNameClose' |
| | | @select="goodsselectClick"></u-action-sheet> |
| | | <!-- 品名与规格 --> |
| | | <view class=""> |
| | | <u-action-sheet :actions="actionsList" |
| | | :show="actionShow" |
| | | cancelText='取消' |
| | | :closeOnClickOverlay='true' |
| | | @close='productNameClose' |
| | | @select="selectClick"></u-action-sheet> |
| | | </view> |
| | | <!-- 不合格品名 --> |
| | | <view class=""> |
| | | <u-action-sheet :actions="actionsList" |
| | | :show="unqualifiedShow" |
| | | cancelText='取消' |
| | | :closeOnClickOverlay='true' |
| | | @close='unqualifiedClose' |
| | | @select="selectUnqualifiedClick"></u-action-sheet> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import BigNumber from "bignumber.js" |
| | | import { BaseUrl } from '@/api/publicInterface.js'; |
| | | import { onlineurl } from '@/api/request.js' |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | qualityInstructions:"", |
| | | remarks:'', |
| | | selectlist:[ |
| | | { |
| | | value: '1', |
| | | name:'长度扣罚', |
| | | fontSize:'40' |
| | | }, |
| | | { |
| | | value: '2', |
| | | name:'厚度扣罚', |
| | | fontSize:'40' |
| | | |
| | | }, |
| | | { |
| | | value: '3', |
| | | name:'密闭器', |
| | | fontSize:'40' |
| | | } |
| | | ], |
| | | orderPlanId: "", |
| | | title: '素胚勾勒出青花,笔锋浓转淡', |
| | | isWeighingType:'', |
| | | subTitle: '2020-05-15', |
| | | thumb: 'http://pic2.sc.chinaz.com/Files/pic/pic9/202002/hpic2119_s.jpg', |
| | | coalDetailsData: {}, |
| | | list: [ |
| | | { |
| | | name: '物资明细' |
| | | }, |
| | | { |
| | | name: '称重明细' |
| | | }, |
| | | ], |
| | | current: 1, |
| | | showWeigh: [], |
| | | |
| | | cityPickerValueDefault: [0, 0, 1], |
| | | form:{}, |
| | | showWeighCopy: [], |
| | | discountrate: "", |
| | | loading: false, |
| | |
| | | }, |
| | | showWeighCopyStorgeOther() { |
| | | return uni.getStorageSync('showWeighCopyStorgeOther') |
| | | }, |
| | | isShow(){ |
| | | //是否显示 是否已验质 |
| | | return function(item){ |
| | | return uni.getStorageSync('roleType')!== 4 && item.iszj == 1 ? true : uni.getStorageSync('roleType')== 4 ? true : false; |
| | | // 已经验质 |
| | | } |
| | | }, |
| | | //判断需不需要验质 |
| | | isYanz(){ |
| | | return function(item){ |
| | | // return ( this.coalDetailsData.orderType !=='外购' || this.coalDetailsData.weighingType !=='回磅') ? false : true; |
| | | if(this.coalDetailsData.orderType =='外购'){ |
| | | if(this.coalDetailsData.weighingType == '回磅'){ |
| | | return true |
| | | }else{ |
| | | return false |
| | | } |
| | | }else if(this.coalDetailsData.orderType =='外销'){ |
| | | return false; |
| | | |
| | | } |
| | | // 已经验质 |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.roleType === 1 ? this.GetOrderPlan() : this.getTakeCoal() |
| | | }, |
| | | onLoad(params) { |
| | | console.log(params,this.showWeighCopyStorge,'params路由') |
| | | this.orderPlanId = params.orderPlanId ? params.orderPlanId : ''; |
| | | this.flag = params.flag ? params.flag : false; |
| | | this.roleType === 1 ? this.GetOrderPlan() : this.getTakeCoal() |
| | | this.ModifiedOrderIndex = params.index |
| | | this.alterProductName = params.productName === "true" || false |
| | | this.alterUnqualified = params.unqualified === "true" || false |
| | | this.havedSubmit = params.havedSubmit === "true" || false |
| | | this.havedSubmit = params.havedSubmit === "true" || false; |
| | | console.log(this.havedSubmit,'this.havedSubmit') |
| | | }, |
| | | methods: { |
| | | ...mapMutations(['changeglobalShowWeigh']), |
| | |
| | | if (res.code == 0) { |
| | | uni.hideLoading() |
| | | this.coalDetailsData = res.data; |
| | | this.remarks = res.data.remarks; |
| | | this.qualityInstructions = res.data.qualityInstructions |
| | | this.orderCode = res.data.orderCode |
| | | this.showWeigh = this.coalDetailsData.tmTaskCoalItems ? this.coalDetailsData |
| | | .tmTaskCoalItems : []; |
| | | this.showWeigh = this.showWeigh.map(v => { |
| | | if(!v.penaltyType) v.penaltyType = '0' |
| | | return { |
| | | ...v, |
| | | modifyProductName: '', |
| | |
| | | } else { |
| | | this.changeglobalShowWeigh(uni.getStorageSync('showWeighCopyStorge')) |
| | | } |
| | | //称重明细无数据时显示物资明细 |
| | | if(!this.coalDetailsData.tmTaskCoalItems.length){ |
| | | this.current = 0; |
| | | } |
| | | this.isWeighingType = res.data.weighingType //当前磅单是否回磅 |
| | | } else { |
| | | this.$u.toast('加载失败') |
| | | uni.hideLoading() |
| | |
| | | }, |
| | | // 点击确认 |
| | | confirmInput() { |
| | | this.loading = true |
| | | this.loading = true; |
| | | let params = {}; |
| | | params.qualityInstructions = this.qualityInstructions; |
| | | params.remarks = this.remarks; |
| | | this.showWeigh = this.showWeigh.map((v, i) => { |
| | | if(!v.penaltyType) { |
| | | v.penaltyAmount = ''; |
| | | v.unqualifiedType = ''; |
| | | } |
| | | return { |
| | | ...v, |
| | | unqualifiedBreed: this.globalShowWeigh[i].unqualifiedBreed ? this.globalShowWeigh[i] |
| | |
| | | |
| | | } |
| | | }) |
| | | this.$reqPost('updateTmTaskCoalItem', this.showWeigh, 'json').then( |
| | | params.tmTaskCoalItems = this.showWeigh; |
| | | this.$reqPost('updateTmTaskCoalItem', params, 'json').then( |
| | | res => { |
| | | if (res.code == 0) { |
| | | this.loading = false |
| | |
| | | this.$u.toast(res.msg ? res.msg : '操作失败') |
| | | } |
| | | }) |
| | | }, |
| | | // 校验数据是否合格 |
| | | checkValue(data,target){ |
| | | if(!data.length){ |
| | | return |
| | | } |
| | | let flag = data.find(item=>item[target] <=0); |
| | | console.log(flag,'flag'); |
| | | if(flag){ |
| | | return false |
| | | }else{ |
| | | return true; |
| | | } |
| | | |
| | | }, |
| | | // 物资明细 |
| | | goodsPopoverShow(index) { |
| | |
| | | this.showWeigh[this.goodsIndex].breed = val.breed |
| | | this.showWeigh[this.goodsIndex].spec = val.spec |
| | | this.showWeigh[this.goodsIndex].weightUnit = val.weightUnit |
| | | this.showWeigh[this.goodsIndex].weight1 = val.weight; |
| | | }, |
| | | // 品名与规格 |
| | | productNamePopoverShow(index) { |
| | |
| | | }, |
| | | // 折扣率输入 |
| | | discountInputHandle(value, index, clean) { |
| | | this.showWeigh[index].cinderWeight = Number(value) |
| | | if (clean) { |
| | | let x = new BigNumber(clean) |
| | | let y = new BigNumber(value) |
| | | this.showWeigh[index].weight = x.minus(y).toFixed(2) |
| | | } |
| | | console.log('计算净重',value, index, clean) |
| | | this.showWeigh[index].cinderWeight = (value - 0) |
| | | let x = new BigNumber(clean - 0) |
| | | let y = new BigNumber(value - 0) |
| | | let z = new BigNumber(this.showWeigh[index].unqualifiedWeight - 0) |
| | | console.log(clean,value,this.showWeigh[index].unqualifiedWeight - 0,'扣渣'); |
| | | if(x.minus(y).minus(z).toFixed(2) <= 0){ |
| | | this.showWeigh[index].weight = '0'; |
| | | this.$u.toast('当前净重不合格,请检查皮重,毛重是否准确') |
| | | }else{ |
| | | this.showWeigh[index].weight = x.minus(y).minus(z).toFixed(2) |
| | | } |
| | | |
| | | |
| | | }, |
| | | // 选择不合格品名 |
| | | selectunqualifiedBreed(index) { |
| | |
| | | }, |
| | | // 不合格重量输入 |
| | | 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) || '' |
| | | // 判断是不是有净重才进行计算 |
| | | let x = new BigNumber(clean - 0) |
| | | let y = new BigNumber(value - 0) |
| | | let z = new BigNumber(this.showWeigh[index].cinderWeight - 0); |
| | | if(x.minus(y).minus(z).toFixed(2) <= 0){ |
| | | this.showWeigh[index].weight = '0'; |
| | | this.$u.toast('当前净重不合格,请检查皮重,毛重是否准确') |
| | | }else{ |
| | | this.showWeigh[index].weight = x.minus(y).minus(z).toFixed(2) ; |
| | | } |
| | | |
| | | |
| | | }, |
| | | // 删除图片 |
| | | deletePic(event) { |
| | |
| | | }); |
| | | }); |
| | | }, |
| | | //点击tab 切换展示明细 |
| | | tabChange(val){ |
| | | this.current = val; |
| | | }, |
| | | //下拉框聚焦时间 |
| | | onFoucus(val){ |
| | | this.focusSelect = true; |
| | | |
| | | }, |
| | | closeEvent(){ |
| | | this.focusSelect = false; |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | |
| | | .num-input { |
| | | width: 60%; |
| | | border-bottom: 1px solid rgb(218, 219, 222); |
| | | position: relative; |
| | | } |
| | | .num-radio{ |
| | | width: 60%; |
| | | font-size: 100rpx; |
| | | } |
| | | |
| | | .num-show { |
| | |
| | | margin-bottom: 40rpx; |
| | | } |
| | | } |
| | | .tabs{ |
| | | font-size: 20rpx!important; |
| | | } |
| | | .u-card-wrap { |
| | | background-color: $u-bg-color; |
| | | padding: 1px; |
| | | } |
| | | |
| | | .u-body-item { |
| | | font-size: 32rpx; |
| | | color: #333; |
| | | padding: 20rpx 10rpx; |
| | | } |
| | | |
| | | .u-body-item image { |
| | | width: 120rpx; |
| | | flex: 0 0 120rpx; |
| | | height: 120rpx; |
| | | border-radius: 8rpx; |
| | | margin-left: 12rpx; |
| | | } |
| | | </style> |