| | |
| | | }, |
| | | logoutCancel() { |
| | | this.logoutShow = false; |
| | | this.$store.commit('changeisLogin', false) |
| | | this.$store.dispatch('websocketOnClose') |
| | | }, |
| | | // 跳转用户管理页面 |
| | | userManage() { |
| | |
| | | }, []); |
| | | return arrays; |
| | | }, |
| | | // 验质选择 |
| | | validateClick(item) { |
| | | uni.navigateTo({ |
| | | url: `/pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail?orderPlanId=${item.id}` |
| | | }) |
| | | }, |
| | | // 历史 |
| | | faYundetail(item) { |
| | | uni.navigateTo({ |
| | | url: `/pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail?orderPlanId=${item.id}&flag=${true}` |
| | |
| | | <u--input placeholder="请输入扣渣" |
| | | border="bottom" |
| | | clearable |
| | | v-model="item.discount" |
| | | v-model="item.cinderWeight" |
| | | @input='v=>discountInputHandle(v,i,item.clean)'></u--input> |
| | | </view> |
| | | <view v-else-if='flag' |
| | | class="count">{{ item.discount }}% |
| | | class="count">{{ item.cinderWeight }} |
| | | </view> |
| | | </view> |
| | | <view class="weigh"> |
| | | <view class="label-text"> |
| | | 扣渣后净重 |
| | | </view> |
| | | <view class="count">{{ item.discountWeight }}</view> |
| | | <view class="count">{{ item.weight }}</view> |
| | | </view> |
| | | </view> |
| | | <view class="level"> |
| | | <view class="" |
| | | style="width: 70rpx;"> |
| | | <u--text text="蓝本" |
| | | size='32'></u--text> |
| | | </view> |
| | | <u-tag :text="MaterialList[i].breed+MaterialList[i].spec||'暂无'" |
| | | plain |
| | | @click="productNamePopoverShow(i)" |
| | | v-if='MaterialList[i].breed&&MaterialList[i].spec||roleType===4'></u-tag> |
| | | </view> |
| | | <view class="level" |
| | | v-if='modifyMaterialList[i].modifyProductName'> |
| | | <view style="width: 70rpx;"> |
| | | <u--text text="修正" |
| | | v-if='!flag'> |
| | | <view class="" |
| | | style="width: 140rpx;"> |
| | | <u--text text="物资明细" |
| | | size='32'></u--text> |
| | | </view> |
| | | <view> |
| | | <u-tag :text="modifyMaterialList[i].modifyProductName" |
| | | plain></u-tag> |
| | | <u-tag :text="item.breed+item.spec||item.modifygoodsName||'暂无'" |
| | | plain |
| | | @click="goodsPopoverShow(i)" |
| | | v-if='item.breed&&item.spec||roleType===4'></u-tag> |
| | | </view> |
| | | <view class="level" |
| | | v-if='item.modifygoodsName||flag'> |
| | | <view style="width: 140rpx;"> |
| | | <u--text text="产品名称" |
| | | size='32'></u--text> |
| | | </view> |
| | | <view v-if="showWeighCopy[i].modifyProductName||item.breed&&item.spec"> |
| | | <u-tag :text="!flag?showWeighCopy[i].modifyProductName:item.breed+item.spec" |
| | | plain |
| | | @click="productNamePopoverShow(i)"></u-tag> |
| | | </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" |
| | |
| | | orderPlanId: "", |
| | | coalDetailsData: {}, |
| | | showWeigh: [], |
| | | showWeighCopy: [], |
| | | discountrate: "", |
| | | loading: false, |
| | | show: false, |
| | | selectIndex: null, |
| | | // 物资明细 |
| | | goodsList: [], |
| | | goodsShow: false, |
| | | goodsIndex: null, |
| | | // 产品列表 |
| | | actionsList: [], |
| | | actionShow: false, |
| | |
| | | havedInput: false, |
| | | flag: false, |
| | | orderCode: null, |
| | | // 物资明细list |
| | | MaterialList: [], |
| | | // 修改之后的物资明细list |
| | | modifyMaterialList: [], |
| | | // 修改之后的产品名称 |
| | | |
| | | modifyProductName: null, |
| | | // 是否修改 |
| | | isModify: false |
| | |
| | | this.orderCode = res.data.orderCode |
| | | this.showWeigh = this.coalDetailsData.tmTaskCoalItems ? this.coalDetailsData |
| | | .tmTaskCoalItems : []; |
| | | this.showWeigh = this.showWeigh.map(v => { |
| | | return { |
| | | ...v, |
| | | modifyProductName: '', |
| | | modifygoodsName: '' |
| | | |
| | | } |
| | | }) |
| | | this.showWeighCopy = JSON.parse(JSON.stringify(this.showWeigh)) |
| | | uni.hideLoading() |
| | | } else { |
| | | this.$u.toast('加载失败') |
| | |
| | | } |
| | | }).then(() => { |
| | | this.$reqGet('getMaterialDetailByOrderCode', { orderCode: this.orderCode }).then(r => { |
| | | this.MaterialList = r.data |
| | | this.modifyMaterialList = JSON.parse(JSON.stringify(this.MaterialList)) |
| | | this.goodsList = r.data.map(v => { |
| | | return { |
| | | ...v, |
| | | name: v.breed + v.spec |
| | | } |
| | | }) |
| | | uni.hideLoading() |
| | | }) |
| | | }) |
| | |
| | | this.showWeigh = this.showWeigh.map((v, i) => { |
| | | return { |
| | | ...v, |
| | | itemId: this.MaterialList[i].itemId, |
| | | Num: this.MaterialList[i].Num, |
| | | NumUnit: this.MaterialList[i].NumUnit, |
| | | Remark: this.MaterialList[i].Remark, |
| | | spec: this.modifyMaterialList[i].modifyProductName ? this.actionsList[i].spec : this |
| | | .MaterialList[i].spec, |
| | | breed: this.modifyMaterialList[i].modifyProductName ? this.actionsList[i] |
| | | .secondCategoryName : this.MaterialList[i].breed |
| | | breed: this.showWeighCopy[i].modifyProductName ? this.showWeighCopy[i].breed : v.breed, |
| | | spec: this.showWeighCopy[i].modifyProductName ? this.showWeighCopy[i].spec : v.spec |
| | | } |
| | | }) |
| | | this.$reqPost('updateTmTaskCoalItem', this.showWeigh, 'json').then( |
| | |
| | | } |
| | | }) |
| | | }, |
| | | // 物资明细 |
| | | goodsPopoverShow(index) { |
| | | this.goodsShow = true |
| | | this.goodsIndex = index |
| | | }, |
| | | goodsNameClose() { |
| | | this.goodsShow = false |
| | | }, |
| | | goodsselectClick(val) { |
| | | this.showWeigh[this.goodsIndex].modifygoodsName = val.name |
| | | this.showWeigh[this.goodsIndex].itemId = val.itemId |
| | | this.showWeigh[this.goodsIndex].num = val.num |
| | | this.showWeigh[this.goodsIndex].numUnit = val.numUnit |
| | | this.showWeigh[this.goodsIndex].remark = val.remark |
| | | this.showWeigh[this.goodsIndex].breed = val.breed |
| | | this.showWeigh[this.goodsIndex].spec = val.spec |
| | | }, |
| | | // 产品列表 |
| | | productNamePopoverShow(index) { |
| | | if (this.roleType === 4 && !this.flag) { |
| | | this.actionShow = true |
| | | this.actionIndex = index |
| | | } |
| | | }, |
| | | productNameClose() { |
| | | this.actionShow = false |
| | | }, |
| | | selectClick(val) { |
| | | this.modifyMaterialList[this.actionIndex].modifyProductName = val.name |
| | | this.showWeighCopy[this.actionIndex].modifyProductName = val.name |
| | | this.showWeighCopy[this.actionIndex].breed = val.secondCategoryName |
| | | this.showWeighCopy[this.actionIndex].spec = val.spec |
| | | }, |
| | | // 折扣率输入 |
| | | discountInputHandle(value, index, clean) { |
| | | this.showWeigh[index].cinderWeight = Number(value) |
| | | this.showWeigh[index].discountWeight = (clean - (Number(value)).toFixed(2)); |
| | | this.showWeigh[index].weight = (clean - (Number(value)).toFixed(2)); |
| | | } |
| | | }, |
| | | } |
| | |
| | | }, |
| | | onShow() { |
| | | this.init(); |
| | | this.changeisLogin(true) |
| | | // this.realTimeWeigh = 0 |
| | | }, |
| | | computed: { |
| | |
| | | this.$refs.editRef.setRules(this.rules); |
| | | }, |
| | | methods: { |
| | | ...mapMutations(['changeisUploadimg']), |
| | | ...mapMutations(['changeisUploadimg', 'changeisLogin']), |
| | | init() { |
| | | this.getUserEntity(); |
| | | }, |
| | |
| | | }, |
| | | logoutConfirm() { |
| | | redirectLogin(); |
| | | this.changeisLogin(false) |
| | | this.$store.dispatch('websocketOnClose') |
| | | }, |
| | | logoutCancel() { |
| | | this.logoutShow = false; |
| | |
| | | <template> |
| | | <view class="freightForwarder-my"> |
| | | <view class="driver-banner"><view class="navgation">我的</view></view> |
| | | <view class="driver-banner"> |
| | | <view class="navgation">我的</view> |
| | | </view> |
| | | <view class="personal-information"> |
| | | <view class="personal-information-block"> |
| | | <view class="block-main"> |
| | | <view class="fleet-container"> |
| | | <combined-title title="我的车队" @rightText="addFleet"> |
| | | <combined-title title="我的车队" |
| | | @rightText="addFleet"> |
| | | <template v-slot:rightText> |
| | | <text>添加</text> |
| | | </template> |
| | |
| | | <view class="fleet-list"> |
| | | <u-swipe-action> |
| | | <u-cell-group :border="false"> |
| | | <u-swipe-action-item |
| | | :options="options1" |
| | | <u-swipe-action-item :options="options1" |
| | | v-for="(item, index) in fleetData" |
| | | :index="index" |
| | | :name="item.id" |
| | | :key="index" |
| | | @click="deleteFleetClick" |
| | | > |
| | | <u-cell :title="item.name" :value="item.userSijisum + '辆'" @click="tofleetDetails(item.id)"> |
| | | <u-icon name="arrow-right" color="#999999" size="30" slot="right-icon"></u-icon> |
| | | @click="deleteFleetClick"> |
| | | <u-cell :title="item.name" |
| | | :value="item.userSijisum + '辆'" |
| | | @click="tofleetDetails(item.id)"> |
| | | <u-icon name="arrow-right" |
| | | color="#999999" |
| | | size="30" |
| | | slot="right-icon"></u-icon> |
| | | </u-cell> |
| | | </u-swipe-action-item> |
| | | </u-cell-group> |
| | |
| | | |
| | | <!-- 新建车队弹出框 --> |
| | | <view class="addNewGroup"> |
| | | <u-popup :show="updateGroupShow" @close="addNewFleetPopupClose" @open="addNewFleetPopupOpen" mode="center"> |
| | | <view class="title"><u--text text="新建车队" size="30" lineHeight="80" align="center"></u--text></view> |
| | | <u-popup :show="updateGroupShow" |
| | | @close="addNewFleetPopupClose" |
| | | @open="addNewFleetPopupOpen" |
| | | mode="center"> |
| | | <view class="title"><u--text text="新建车队" |
| | | size="30" |
| | | lineHeight="80" |
| | | align="center"></u--text></view> |
| | | <view class="addCarForm"> |
| | | <u--form labelPosition="left" :model="addGroupForm" ref="form1" labelAlign="center"> |
| | | <u-form-item label="组名" borderBottom ref="groupName" labelWidth="100"> |
| | | <u--input v-model="addGroupForm.name" border="none" placeholder="请输入车队名称"></u--input> |
| | | <u--form labelPosition="left" |
| | | :model="addGroupForm" |
| | | ref="form1" |
| | | labelAlign="center"> |
| | | <u-form-item label="组名" |
| | | borderBottom |
| | | ref="groupName" |
| | | labelWidth="100"> |
| | | <u--input v-model="addGroupForm.name" |
| | | border="none" |
| | | placeholder="请输入车队名称"></u--input> |
| | | </u-form-item> |
| | | <!-- <u-form-item label="车牌" borderBottom ref="cars" labelWidth="80"> |
| | | <u--textarea maxlength="2000" v-model="addGroupForm.carNums" placeholder="请输入车牌" height="150"></u--textarea> |
| | | </u-form-item> --> |
| | | </u--form> |
| | | </view> |
| | | <view class="addCarButton"><u-button text="添加" type="primary" @click="addNewGroupClick"></u-button></view> |
| | | <view class="addCarButton"><u-button text="添加" |
| | | type="primary" |
| | | @click="addNewGroupClick"></u-button></view> |
| | | </u-popup> |
| | | </view> |
| | | |
| | | <!-- <view class="statistics"><u-button text="发运统计" type="primary" @click="statistics"></u-button></view> --> |
| | | <view class="utils-button"> |
| | | <view class="utils"><u-button text="退出登录" type="primary" @click="logout"></u-button></view> |
| | | <view class="utils"><u-button text="退出登录" |
| | | type="primary" |
| | | @click="logout"></u-button></view> |
| | | </view> |
| | | |
| | | <!-- 删除车队模态框 --> |
| | | <view class="deleteFleetModal"> |
| | | <u-modal |
| | | :show="deleteFleetShow" |
| | | <u-modal :show="deleteFleetShow" |
| | | :title="deleteFleetTitle" |
| | | @close="deleteFleetClose" |
| | | @cancel="deleteFleetCancel" |
| | | @confirm="deleteFleetConfirm" |
| | | :closeOnClickOverlay="true" |
| | | :showCancelButton="true" |
| | | > |
| | | :showCancelButton="true"> |
| | | <view class="slot-content"><rich-text :nodes="deleteFleetContent"></rich-text></view> |
| | | </u-modal> |
| | | </view> |
| | | <view class="logoutModel"> |
| | | <u-modal :show="logoutShow" :title="logoutTitle" showCancelButton :content="logoutContent" @confirm="logoutConfirm" @cancel="logoutCancel"></u-modal> |
| | | <u-modal :show="logoutShow" |
| | | :title="logoutTitle" |
| | | showCancelButton |
| | | :content="logoutContent" |
| | | @confirm="logoutConfirm" |
| | | @cancel="logoutCancel"></u-modal> |
| | | </view> |
| | | </view> |
| | | </template> |
| | |
| | | // wxUserId: uni.getStorageSync('userInfo').id |
| | | }, |
| | | updateGroupShow: false, |
| | | options1: [ |
| | | { |
| | | options1: [{ |
| | | text: '删除' |
| | | } |
| | | ], |
| | | }], |
| | | // 删除车队模态框 |
| | | deleteFleetId: null, // 删除车队id |
| | | deleteFleetShow: false, |
| | |
| | | }, |
| | | logoutCancel() { |
| | | this.logoutShow = false; |
| | | this.$store.commit('changeisLogin', false) |
| | | this.$store.dispatch('websocketOnClose') |
| | | }, |
| | | // 跳转发运统计页面 |
| | | statistics() { |
| | |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | <style lang="scss" |
| | | scoped> |
| | | .statistics { |
| | | margin-top: vww(10); |
| | | margin-bottom: vww(10); |
| | | } |
| | | |
| | | .utils-button { |
| | | margin-top: vww(35); |
| | | |
| | | .utils { |
| | | margin-top: vww(10); |
| | | margin-bottom: vww(10); |
| | | |
| | | /deep/ .u-button { |
| | | width: 631rpx; |
| | | height: 74rpx; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | ::v-deep.freightForwarder-my { |
| | | width: 100%; |
| | | margin: vww(90) auto; |
| | | |
| | | .driver-banner { |
| | | width: 100%; |
| | | height: 430rpx; |
| | |
| | | background-size: contain; |
| | | position: fixed; |
| | | top: 0; |
| | | |
| | | .navgation { |
| | | width: 80rpx; |
| | | height: 37rpx; |
| | |
| | | margin: vww(60) auto; |
| | | } |
| | | } |
| | | |
| | | .personal-information { |
| | | width: 100%; |
| | | display: flex; |
| | |
| | | flex-direction: column; |
| | | position: relative; |
| | | top: vww(20); |
| | | |
| | | &-block { |
| | | width: 690rpx; |
| | | min-height: 478rpx; |
| | |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | margin-top: vww(8); |
| | | |
| | | .block-main { |
| | | width: 636rpx; |
| | | margin: vww(10) vww(14); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 新建车队 |
| | | .addNewGroup { |
| | | .u-popup { |
| | |
| | | width: 94%; |
| | | height: vww(160); |
| | | border-radius: 1%; |
| | | |
| | | .title { |
| | | width: 100%; |
| | | text-align: center; |
| | | font-size: 20; |
| | | |
| | | .u-text { |
| | | .u-text__value { |
| | | .u-text__value {} |
| | | } |
| | | } |
| | | } |
| | | |
| | | .addCarForm { |
| | | width: 80%; |
| | | margin: 0 auto vww(30); |
| | | } |
| | | |
| | | .addCarButton { |
| | | width: 40%; |
| | | margin: 0 auto; |
| | |
| | | apiLoginWx({ code: code }).then(res => { |
| | | if (res.code != 1) { |
| | | this.$u.toast('登录成功'); |
| | | this.changeisLogin(true); |
| | | // 登陆成功,存储相关信息 |
| | | setToken(res.access_token); |
| | | setRefreshToken(res.refresh_token); |
| | |
| | | this.$nextTick(() => { |
| | | redirectHome(); |
| | | }); |
| | | }); |
| | | }) |
| | | } else { |
| | | this.$u.toast(res.msg); |
| | | this.bindWxModelShow = true; |
| | |
| | | }, |
| | | onShow() { |
| | | this.init(); |
| | | console.log(this.globalisconnect); |
| | | if (this.globalisconnect) { |
| | | this.$store.dispatch('websocketInit') |
| | | this.changeisconnect(false) |
| | | this.changeisLogin(true) |
| | | console.log(this.globalisconnect, 'index的ws数据’'); |
| | | } |
| | | this.userAuthorization(); |
| | |
| | | this.changeisconnect(true) |
| | | }, |
| | | methods: { |
| | | ...mapMutations(['pushMessage', 'changeWeigh', 'changeinfraredStatus', 'changeisconnect', 'websocketInit']), |
| | | ...mapMutations(['pushMessage', 'changeWeigh', 'changeinfraredStatus', 'changeisconnect', 'websocketInit', |
| | | 'changeisLogin' |
| | | ]), |
| | | messagePage() { |
| | | uni.navigateTo({ |
| | | url: '/pages/public-page/message/message' |
| | |
| | | clearInterval(state.reconnectTimeOut) |
| | | state.socketTast = null |
| | | commit('changereconnectState', false) |
| | | if (state.connectNum < 6) { |
| | | dispatch('reconnect') |
| | | } else { |
| | | if (state.connectNum < 6 && state.globalisLogin) { |
| | | uni.showToast({ |
| | | title: `连接失败,正在尝试第${state.connectNum}次连接`, |
| | | icon: 'none' |
| | | }) |
| | | commit('changereconnectNum', 1) |
| | | dispatch('reconnect') |
| | | } else if (state.connectNum > 6 && state.globalisLogin) { |
| | | commit('changereconnectNum', 1) |
| | | uni.showToast({ |
| | | title: '网络异常,请稍后重试', |
| | | icon: 'none' |
| | | }) |
| | | } else { |
| | | return |
| | | } |
| | | |
| | | }, |
| | | websocketOnError({ state, commit, dispatch }, e) { |
| | | // 如果重连状态为false则不进行重连,为true才会 |
| | |
| | | clearInterval(state.reconnectTimeOut) |
| | | state.socketTast = null |
| | | commit('changereconnectState', false) |
| | | if (state.connectNum < 6) { |
| | | if (state.connectNum < 6 && state.globalisLogin) { |
| | | uni.showToast({ |
| | | title: `连接失败,正在尝试第${state.connectNum}次连接`, |
| | | icon: 'none' |
| | | }) |
| | | commit('changereconnectNum', 1) |
| | | dispatch('reconnect') |
| | | } else { |
| | | } else if (state.connectNum > 6 && state.globalisLogin) { |
| | | commit('changereconnectNum', 1) |
| | | uni.showToast({ |
| | | title: '网络异常,请稍后重试', |
| | | icon: 'none' |
| | | }) |
| | | } else { |
| | | return |
| | | } |
| | | }, |
| | | // 接收数据 |
| | |
| | | reconnect({ state, commit, dispatch }) { |
| | | console.log(state.is_open_socket, '重新连接socket状态'); |
| | | clearInterval(state.globalIntervalId) |
| | | if (!state.is_open_socket) { |
| | | if (!state.is_open_socket && state.globalisLogin) { |
| | | state.reconnectTimeOut = setInterval(() => { |
| | | dispatch('websocketInit') |
| | | }, 5000) |