<template>
|
<view class="main">
|
<u--form labelPosition="top"
|
labelWidth="30%"
|
:borderBottom="false"
|
:rules="rules"
|
:errorType="'border-bottom'"
|
:model="dataForm"
|
ref="uForm">
|
<u-form-item
|
borderBottom=true
|
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
|
borderBottom=true
|
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-item label="不合格罚款"
|
prop="unqualifiedWeight"
|
borderBottom>
|
<u-input v-model="dataForm.unqualifiedWeight"
|
placeholder="请输罚款"
|
type="digit"
|
border="bottom"
|
@change="v=>checkNum(v)"
|
@input="$u.debounce(specInputHandle, 500)"></u-input>
|
</u-form-item>
|
<u-form-item label="不合格判定" prop="unqualifiedType">
|
<u-radio-group size='32' v-model="dataForm.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>
|
</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: "",
|
unqualifiedWeight:'',
|
unqualifiedType:''
|
},
|
index: '',
|
takeCoalId: "",
|
params:{},
|
// 一级品类操作菜单
|
firstClassActionsList: [],
|
firstClassShow: false,
|
// 二级品类操作菜单
|
secondClassActionsList: [],
|
secondClassShow: false,
|
// 规格选择
|
specList: [],
|
haveSelectd: true,
|
// 判断是修改品名与规格还是不合格品名
|
productName: false,
|
unqualified: false,
|
rules: {
|
'firstClass': {
|
type: 'string',
|
required: true,
|
message: '请选择值',
|
trigger: ['blur', 'change']
|
},
|
'secondClass': {
|
type: 'string',
|
required: true,
|
message: '请选择值',
|
trigger: ['blur', 'change']
|
},
|
'specifications': {
|
type: 'string',
|
required: true,
|
message: '请选择值',
|
trigger: ['blur', 'change']
|
},
|
'unqualifiedWeight': {
|
required: true,
|
message: '请选择值',
|
trigger: ['blur', 'change']
|
},
|
'unqualifiedType':{
|
required: true,
|
message: '请选择值',
|
trigger: ['blur', 'change']
|
}
|
},
|
//
|
showWeighCopyStorge: []
|
}
|
},
|
computed: {
|
...mapState(["globalShowWeigh"]),
|
},
|
onReady() {
|
//如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
|
this.$refs.uForm.setRules(this.rules)
|
},
|
onLoad(params) {
|
this.index = params.index || ""
|
this.takeCoalId = params.takeCoalId || ''
|
this.getFirstCategoryName(params)
|
this.params = params;
|
this.productName = params.productName === "true" || false
|
this.unqualified = params.unqualified === "true" || false
|
this.showWeighCopyStorge = JSON.parse(JSON.stringify(uni.getStorageSync('showWeighCopyStorgeOther')))
|
console.log(params,'paramsparamsparams');
|
if(params.type == 'edit'){
|
this.init(params)
|
}
|
},
|
methods: {
|
...mapMutations(['changeglobalShowWeigh']),
|
getFirstCategoryName(params) {
|
uni.showLoading({
|
title: "加载中"
|
})
|
this.$reqGet("getFirstCategoryName").then(res => {
|
if (res.code === 0) {
|
uni.hideLoading()
|
this.firstClassActionsList = res.data.filter(Boolean).map(v => {
|
return {
|
...v,
|
name: v && v.firstCategoryName
|
}
|
})
|
if(params.type !== 'edit') this.dataForm.firstClass = this.firstClassActionsList[0].firstCategoryName
|
} else {
|
uni.hideLoading()
|
this.$u.toast('加载失败')
|
}
|
})
|
},
|
init(params){
|
let arr = this.showWeighCopyStorge[params.index];
|
console.log(this.showWeighCopyStorge,'arr')
|
let {firstClass,secondClass,specifications} = arr.tempArr[params.indexTo];
|
Object.assign(this.dataForm,{firstClass,secondClass,specifications});
|
this.dataForm.unqualifiedWeight = this.showWeighCopyStorge[params.index].unqualifiedWeights.split(',')[params.indexTo];
|
//不合格类判定
|
this.dataForm.unqualifiedType = this.showWeighCopyStorge[params.index].unqualifiedType.split(',')[params.indexTo];
|
},
|
//一级品类菜单
|
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() {
|
console.log(this.globalShowWeigh, this.$refs.uForm,'this.globalShowWeigh');
|
this.$refs.uForm.validate().then(res => {
|
// uni.$u.toast('校验通过')
|
|
this.showWeighCopyStorge = this.globalShowWeigh;
|
console.log(this.showWeighCopyStorge,this.index,'this.showWeighCopyStorge[this.index]');
|
if(this.params.type == 'edit'){
|
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) {
|
let str = this.dataForm.secondClass + '/' + this.dataForm
|
.specifications;
|
let tempArr = this.showWeighCopyStorge[this.index].unqualifiedBreed.split(",")
|
let tempWeightArr = this.showWeighCopyStorge[this.index].unqualifiedWeights.split(",")
|
let noPinArr =this.showWeighCopyStorge[this.index].unqualifiedType.split(",")
|
tempArr[this.params.indexTo] = str;
|
tempWeightArr[this.params.indexTo] = this.dataForm.unqualifiedWeight;
|
noPinArr[this.params.indexTo] = this.dataForm.unqualifiedType;
|
this.showWeighCopyStorge[this.index].unqualifiedBreed = tempArr.join(',');
|
this.showWeighCopyStorge[this.index].unqualifiedWeights = tempWeightArr.join(',');
|
this.showWeighCopyStorge[this.index].unqualifiedType = noPinArr.join(',');
|
this.showWeighCopyStorge[this.index].breed = this.dataForm.secondClass
|
this.showWeighCopyStorge[this.index].spec = this.dataForm.specifications
|
//如果这个 tempArr不为 空
|
if(this.showWeighCopyStorge[this.index].tempArr){
|
this.showWeighCopyStorge[this.index].tempArr[this.params.indexTo].firstClass = this.dataForm.firstClass;
|
this.showWeighCopyStorge[this.index].tempArr[this.params.indexTo].secondClass = this.dataForm.secondClass;
|
this.showWeighCopyStorge[this.index].tempArr[this.params.indexTo].specifications = this.dataForm.specifications;
|
}else{
|
|
|
}
|
|
}
|
}else{
|
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) {
|
let str = this.dataForm.secondClass + '/' + this.dataForm
|
.specifications;
|
let tempArr;
|
if( this.showWeighCopyStorge[this.index].unqualifiedBreed){
|
tempArr = this.showWeighCopyStorge[this.index].unqualifiedBreed.split(",").filter(Boolean);
|
}else{
|
tempArr = []
|
}
|
|
let tempWeightArr;
|
if(this.showWeighCopyStorge[this.index].unqualifiedWeights){
|
tempWeightArr = this.showWeighCopyStorge[this.index].unqualifiedWeights.split(",").filter(Boolean)
|
}else{
|
tempWeightArr = [];
|
}
|
// 添加不合格品类判定
|
let noPin;
|
if(this.showWeighCopyStorge[this.index].unqualifiedType){
|
noPin = this.showWeighCopyStorge[this.index].unqualifiedType.split(",").filter(Boolean)
|
}else{
|
noPin = []
|
}
|
|
tempWeightArr.push(this.dataForm.unqualifiedWeight);
|
tempArr.push(str);
|
noPin.push(this.dataForm.unqualifiedType)
|
this.showWeighCopyStorge[this.index].unqualifiedBreed = tempArr.join(',')
|
this.showWeighCopyStorge[this.index].unqualifiedWeights = tempWeightArr.join(',')
|
this.showWeighCopyStorge[this.index].unqualifiedType = noPin.join(',')
|
this.showWeighCopyStorge[this.index].breed = this.dataForm.secondClass
|
this.showWeighCopyStorge[this.index].spec = this.dataForm.specifications
|
|
|
this.showWeighCopyStorge[this.index].firstClass = this.dataForm.firstClass;
|
this.showWeighCopyStorge[this.index].secondClass = this.dataForm.secondClass;
|
this.showWeighCopyStorge[this.index].specifications = this.dataForm.specifications;
|
|
if(!this.showWeighCopyStorge[this.index].tempArr){
|
this.showWeighCopyStorge[this.index].tempArr = [];
|
}
|
this.showWeighCopyStorge[this.index].tempArr.push({
|
firstClass: this.dataForm.firstClass,
|
secondClass:this.dataForm.secondClass,
|
specifications:this.dataForm.specifications
|
})
|
|
|
}
|
|
}
|
|
|
|
this.changeglobalShowWeigh(this.showWeighCopyStorge)
|
uni.setStorageSync('showWeighCopyStorgeOther', this.globalShowWeigh)
|
uni.navigateBack({
|
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}`
|
})
|
uni.$emit("handClick",{data:this.dataForm,tempArr:this.showWeighCopyStorge[this.index].tempArr,index:this.index});
|
}).catch(errors => {
|
console.log(errors,'errors')
|
uni.$u.toast('校验失败')
|
})
|
|
},
|
checkNum(value){
|
if (
|
value &&
|
value.indexOf(".") < 0 &&
|
value != ""
|
) {
|
value = parseFloat(value);
|
value = value + ""; // 变回为字符串
|
}else{
|
value = value.replace(/^(-)*(\d+)\.(\d\d).*$/,"$1$2.$3");
|
|
} // 如果没有小数点,首位不能为类似于 01、02的值
|
this.$nextTick(()=>{
|
this.dataForm.unqualifiedWeight = value.replace(/[^\d.]/g, "");
|
});
|
|
}
|
}
|
}
|
</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>
|