|
@@ -41,65 +41,19 @@
|
|
<view class="add_btn" @click="procurementAdd">
|
|
<view class="add_btn" @click="procurementAdd">
|
|
<image style="width: 100%;height: 100%;" src="@/static/procurement/add_pro.png"></image>
|
|
<image style="width: 100%;height: 100%;" src="@/static/procurement/add_pro.png"></image>
|
|
</view>
|
|
</view>
|
|
- <tui-bottom-popup :zIndex="1002" :maskZIndex="1001" :show="popupShow" @close="handlerPopupClose">
|
|
|
|
- <view class="popup_content">
|
|
|
|
- <view class="pro_popup_title">参与需求</view>
|
|
|
|
- <view class="popup_form">
|
|
|
|
- <view class="popup_form_item">商品图片:</view>
|
|
|
|
- <view class="popup_img">
|
|
|
|
- <image style="width: 100%;height: 100%;" :src="isImageUrl(joinData.productImage) ? imageUrl : joinData.productImage" mode="aspectFill"></image>
|
|
|
|
- </view>
|
|
|
|
- </view>
|
|
|
|
- <view class="popup_form">
|
|
|
|
- <view class="popup_form_item">商品名称:</view>
|
|
|
|
- <view class="popup_form_name">{{ joinData.productName }}</view>
|
|
|
|
- </view>
|
|
|
|
- <form>
|
|
|
|
- <view class="uni-form-item uni-column">
|
|
|
|
- <view class="title">
|
|
|
|
- <text style="font-size: 26rpx;color: #F85050;">*</text>
|
|
|
|
- 期望单价:
|
|
|
|
- </view>
|
|
|
|
- <view style="position: relative;">
|
|
|
|
- <view class="input_icon">¥</view>
|
|
|
|
- <input
|
|
|
|
- class="uni-input"
|
|
|
|
- type="number"
|
|
|
|
- focus
|
|
|
|
- v-model="joinData.price"
|
|
|
|
- @input="fpNumInput($event, 'joinData')"
|
|
|
|
- />
|
|
|
|
- </view>
|
|
|
|
- </view>
|
|
|
|
- <view class="uni-form-item uni-column">
|
|
|
|
- <view class="title">
|
|
|
|
- <text style="font-size: 26rpx;color: #F85050;">*</text>
|
|
|
|
- 采购数量:
|
|
|
|
- </view>
|
|
|
|
- <view style="position: relative;">
|
|
|
|
- <input
|
|
|
|
- class="uni-input"
|
|
|
|
- type="number"
|
|
|
|
- focus
|
|
|
|
- v-model="joinData.number"
|
|
|
|
- @input="NumberInput($event, 'joinData')"
|
|
|
|
- />
|
|
|
|
- </view>
|
|
|
|
- </view>
|
|
|
|
- <view class="submit_btn">
|
|
|
|
- <button class="popup_btn cancel" @click="handlerPopupClose">取消</button>
|
|
|
|
- <button class="popup_btn submit" @click="procurementParticipate">确定</button>
|
|
|
|
- </view>
|
|
|
|
- </form>
|
|
|
|
- </view>
|
|
|
|
- </tui-bottom-popup>
|
|
|
|
|
|
+ <pro-pupop
|
|
|
|
+ :dataObj="joinData"
|
|
|
|
+ :isShow="popupShow"
|
|
|
|
+ @handlerPopupClose="handlerPopupClose"
|
|
|
|
+ @procurementParticipate="procurementParticipate($event, proListCallback)"
|
|
|
|
+ />
|
|
<view v-if="procurementList.length > 2" :style="{ marginTop: procurementList.length > 0 ? '0' : '88rpx' }">
|
|
<view v-if="procurementList.length > 2" :style="{ marginTop: procurementList.length > 0 ? '0' : '88rpx' }">
|
|
<!--加载loadding-->
|
|
<!--加载loadding-->
|
|
<tui-loadmore :visible="loadding" :index="3" type="black"></tui-loadmore>
|
|
<tui-loadmore :visible="loadding" :index="3" type="black"></tui-loadmore>
|
|
<tui-nomore :visible="!pullUpOn" :backgroundColor="'#F7F7F7'" :text="nomoreText"></tui-nomore>
|
|
<tui-nomore :visible="!pullUpOn" :backgroundColor="'#F7F7F7'" :text="nomoreText"></tui-nomore>
|
|
<!--加载loadding-->
|
|
<!--加载loadding-->
|
|
</view>
|
|
</view>
|
|
- <proEmpty v-if="procurementList.length === 0"/>
|
|
|
|
|
|
+ <proEmpty v-if="procurementList.length === 0" />
|
|
</view>
|
|
</view>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -108,10 +62,12 @@ import proCard from './components/procurement_card.vue'
|
|
import { mapState } from 'vuex'
|
|
import { mapState } from 'vuex'
|
|
import procurementMixins from './mixins/procurementMixins.js'
|
|
import procurementMixins from './mixins/procurementMixins.js'
|
|
import proEmpty from './components/procurement-empty.vue'
|
|
import proEmpty from './components/procurement-empty.vue'
|
|
|
|
+import proPupop from './components/procurement-popup.vue'
|
|
export default {
|
|
export default {
|
|
components: {
|
|
components: {
|
|
proCard,
|
|
proCard,
|
|
- proEmpty
|
|
|
|
|
|
+ proEmpty,
|
|
|
|
+ proPupop
|
|
},
|
|
},
|
|
mixins: [procurementMixins],
|
|
mixins: [procurementMixins],
|
|
data() {
|
|
data() {
|
|
@@ -170,6 +126,7 @@ export default {
|
|
nomoreText: '已经没有了~',
|
|
nomoreText: '已经没有了~',
|
|
isLastPage: false, // 是否是最后一页
|
|
isLastPage: false, // 是否是最后一页
|
|
joinData: {}, // 我要参与
|
|
joinData: {}, // 我要参与
|
|
|
|
+ procurement: {}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
@@ -177,13 +134,13 @@ export default {
|
|
...mapState(['hasLogin'])
|
|
...mapState(['hasLogin'])
|
|
},
|
|
},
|
|
onShow() {
|
|
onShow() {
|
|
- if(this.hasLogin){
|
|
|
|
- this.userInfo = uni.getStorageSync('userInfo')
|
|
|
|
- this.pageInfo.userId = this.userInfo.userId
|
|
|
|
- this.participate.userId = this.userInfo.userId
|
|
|
|
- this.procurementAllList()
|
|
|
|
- }else{
|
|
|
|
- this.$api.redirectTo('/pages/login/login')
|
|
|
|
|
|
+ if (this.hasLogin) {
|
|
|
|
+ this.userInfo = uni.getStorageSync('userInfo')
|
|
|
|
+ this.pageInfo.userId = this.userInfo.userId
|
|
|
|
+ this.participate.userId = this.userInfo.userId
|
|
|
|
+ this.procurementAllList()
|
|
|
|
+ } else {
|
|
|
|
+ this.$api.redirectTo('/pages/login/login')
|
|
}
|
|
}
|
|
},
|
|
},
|
|
onLoad() {
|
|
onLoad() {
|
|
@@ -220,12 +177,12 @@ export default {
|
|
// 弹窗确认或取消
|
|
// 弹窗确认或取消
|
|
handleClick($event) {
|
|
handleClick($event) {
|
|
if ($event.index === 1) {
|
|
if ($event.index === 1) {
|
|
- if (this.proDataInfo.isInvolved === 1) {
|
|
|
|
|
|
+ if (this.procurement.isInvolved === 1) {
|
|
// 退出参与
|
|
// 退出参与
|
|
- this.procurementUpdate(1, this.proDataInfo.sid)
|
|
|
|
|
|
+ this.procurementUpdate(1, () => this.procurementAllAddList())
|
|
} else {
|
|
} else {
|
|
// 删除
|
|
// 删除
|
|
- this.procurementUpdate(0, this.proDataInfo.id)
|
|
|
|
|
|
+ this.procurementUpdate(0, () => this.procurementAllAddList())
|
|
}
|
|
}
|
|
}
|
|
}
|
|
this.modal = false
|
|
this.modal = false
|
|
@@ -238,18 +195,18 @@ export default {
|
|
this.proDataInfo = proData
|
|
this.proDataInfo = proData
|
|
},
|
|
},
|
|
// 关闭底部
|
|
// 关闭底部
|
|
- handlerPopupClose() {
|
|
|
|
- this.popupShow = false
|
|
|
|
|
|
+ handlerPopupClose($event) {
|
|
|
|
+ this.popupShow = $event
|
|
},
|
|
},
|
|
// 我要参与
|
|
// 我要参与
|
|
popupAdd($event) {
|
|
popupAdd($event) {
|
|
- this.joinData = Object.assign($event, { userId: this.userInfo.userId })
|
|
|
|
|
|
+ this.joinData = $event
|
|
this.popupShow = true
|
|
this.popupShow = true
|
|
},
|
|
},
|
|
// 修改
|
|
// 修改
|
|
popupChange($event) {
|
|
popupChange($event) {
|
|
- this.joinData = $event
|
|
|
|
- if (this.joinData.isInvolved === 1) {
|
|
|
|
|
|
+ this.procurement = $event
|
|
|
|
+ if (this.procurement.isInvolved === 1) {
|
|
this.procurementEditData()
|
|
this.procurementEditData()
|
|
} else {
|
|
} else {
|
|
uni.navigateTo({
|
|
uni.navigateTo({
|
|
@@ -267,7 +224,7 @@ export default {
|
|
proDelete($event) {
|
|
proDelete($event) {
|
|
this.contentModalText = '确定删除该需求吗?'
|
|
this.contentModalText = '确定删除该需求吗?'
|
|
this.modal = true
|
|
this.modal = true
|
|
- this.proDataInfo = $event
|
|
|
|
|
|
+ this.procurement = $event
|
|
},
|
|
},
|
|
// 详情
|
|
// 详情
|
|
procureDetail($event) {
|
|
procureDetail($event) {
|
|
@@ -275,6 +232,9 @@ export default {
|
|
url: `/pages/goods/procurement_info?id=${$event.id}&proTabId=${this.currentTab}`
|
|
url: `/pages/goods/procurement_info?id=${$event.id}&proTabId=${this.currentTab}`
|
|
})
|
|
})
|
|
},
|
|
},
|
|
|
|
+ proListCallback() {
|
|
|
|
+ this.procurementAllAddList()
|
|
|
|
+ },
|
|
/**
|
|
/**
|
|
* 网络请求
|
|
* 网络请求
|
|
*/
|
|
*/
|
|
@@ -293,87 +253,6 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
- // 全部集采
|
|
|
|
- async procurementAllAddList() {
|
|
|
|
- const form = {
|
|
|
|
- pageNo: 1,
|
|
|
|
- userId: this.userInfo.userId,
|
|
|
|
- pageSize: this.pageInfo.pageNo * this.pageInfo.pageSize,
|
|
|
|
- status: this.currentTab
|
|
|
|
- }
|
|
|
|
- try {
|
|
|
|
- const { data } = await this.ProcurementService.procurementAllList(form)
|
|
|
|
- this.procurementList = data.list
|
|
|
|
- this.isLastPage = data.total === this.procurementList.length
|
|
|
|
- this.loadding = !this.isLastPage
|
|
|
|
- this.pullUpOn = !this.isLastPage
|
|
|
|
- } catch (error) {
|
|
|
|
- console.log(error)
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- // 我要参与
|
|
|
|
- async procurementParticipate() {
|
|
|
|
- if (this.joinData.price === '') return this.$util.msg('请输入期望单价', 2000)
|
|
|
|
- if (this.joinData.number === '') return this.$util.msg('请输入期望数量', 2000)
|
|
|
|
- const form = {
|
|
|
|
- userId: this.userInfo.userId,
|
|
|
|
- productImage: this.joinData.productImage,
|
|
|
|
- productName: this.joinData.productName,
|
|
|
|
- price: this.joinData.price,
|
|
|
|
- number: this.joinData.number,
|
|
|
|
- status: 0,
|
|
|
|
- id: this.joinData.id,
|
|
|
|
- userName: this.userInfo.name
|
|
|
|
- }
|
|
|
|
- if (this.joinData.isInvolved === 1) {
|
|
|
|
- form.id = this.joinData.id
|
|
|
|
- form.status = 1 // 0参与 1 修改
|
|
|
|
- }
|
|
|
|
- try {
|
|
|
|
- const data = await this.ProcurementService.procurementParticipate(form)
|
|
|
|
- this.procurementAllAddList()
|
|
|
|
- this.popupShow = false
|
|
|
|
- uni.showToast({
|
|
|
|
- title: `${this.joinData.isInvolved === 0 ? '参与' : '修改'}成功`,
|
|
|
|
- icon: 'success'
|
|
|
|
- })
|
|
|
|
- } catch (error) {
|
|
|
|
- console.log(error)
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- // 删除 退出
|
|
|
|
- async procurementUpdate(type, id) {
|
|
|
|
- const form = {
|
|
|
|
- id: `${type === 0 ? this.proDataInfo.id : this.proDataInfo.sid}`,
|
|
|
|
- userId: this.userInfo.userId,
|
|
|
|
- procurementType: type
|
|
|
|
- }
|
|
|
|
- try {
|
|
|
|
- await this.ProcurementService.procurementUpdate(form)
|
|
|
|
- this.procurementAllAddList()
|
|
|
|
- uni.showToast({
|
|
|
|
- title: `${type === 0 ? '删除' : '退出'}成功`,
|
|
|
|
- icon: 'success'
|
|
|
|
- })
|
|
|
|
- } catch (error) {
|
|
|
|
- console.log(error)
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- // 参与详情
|
|
|
|
- async procurementEditData() {
|
|
|
|
- const form = {
|
|
|
|
- id: `${this.joinData.sid}`,
|
|
|
|
- userId: this.userInfo.userId,
|
|
|
|
- procurementType: 0
|
|
|
|
- }
|
|
|
|
- try {
|
|
|
|
- const {data} = await this.ProcurementService.procurementEditData(form)
|
|
|
|
- this.joinData = data
|
|
|
|
- this.popupShow = true
|
|
|
|
- } catch (error) {
|
|
|
|
- console.log(error)
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
@@ -411,77 +290,4 @@ page {
|
|
bottom: 129rpx;
|
|
bottom: 129rpx;
|
|
right: 34rpx;
|
|
right: 34rpx;
|
|
}
|
|
}
|
|
-.popup_content {
|
|
|
|
- padding: 0 64rpx;
|
|
|
|
-}
|
|
|
|
-.pro_popup_title {
|
|
|
|
- font-size: 32rpx;
|
|
|
|
- font-weight: bold;
|
|
|
|
- color: #333333;
|
|
|
|
- margin: 40rpx auto;
|
|
|
|
- text-align: center;
|
|
|
|
-}
|
|
|
|
-.popup_form {
|
|
|
|
- margin-bottom: 32rpx;
|
|
|
|
-}
|
|
|
|
-.popup_form .popup_form_item {
|
|
|
|
- color: #999999;
|
|
|
|
- font-size: 26rpx;
|
|
|
|
- margin-bottom: 16rpx;
|
|
|
|
-}
|
|
|
|
-.popup_form .popup_img {
|
|
|
|
- width: 136rpx;
|
|
|
|
- height: 136rpx;
|
|
|
|
-}
|
|
|
|
-.popup_form .popup_form_name {
|
|
|
|
- color: #333333;
|
|
|
|
- font-size: 26rpx;
|
|
|
|
- font-weight: 400;
|
|
|
|
- line-height: 44rpx;
|
|
|
|
-}
|
|
|
|
-.uni-form-item .title {
|
|
|
|
- color: #999999;
|
|
|
|
- font-size: 26rpx;
|
|
|
|
- margin-bottom: 16rpx;
|
|
|
|
-}
|
|
|
|
-.input_icon {
|
|
|
|
- position: absolute;
|
|
|
|
- left: 15rpx;
|
|
|
|
- top: 24rpx;
|
|
|
|
- color: #b2b2b2;
|
|
|
|
- font-size: 26rpx;
|
|
|
|
-}
|
|
|
|
-.uni-form-item .uni-input {
|
|
|
|
- height: 80rpx;
|
|
|
|
- border: 1px solid #b2b2b2;
|
|
|
|
- border-radius: 6rpx 6rpx 6rpx 6rpx;
|
|
|
|
- font-size: 26rpx;
|
|
|
|
- padding-left: 47rpx;
|
|
|
|
- margin-bottom: 32rpx;
|
|
|
|
-}
|
|
|
|
-.submit_btn {
|
|
|
|
- margin-top: 56rpx;
|
|
|
|
- height: 84rpx;
|
|
|
|
- display: flex;
|
|
|
|
- justify-content: space-between;
|
|
|
|
- align-items: center;
|
|
|
|
- margin-bottom: 50rpx;
|
|
|
|
-}
|
|
|
|
-.submit_btn .popup_btn {
|
|
|
|
- width: 280rpx;
|
|
|
|
- height: 100%;
|
|
|
|
- border-radius: 45rpx 45rpx 45rpx 45rpx;
|
|
|
|
- text-align: center;
|
|
|
|
- line-height: 84rpx;
|
|
|
|
-}
|
|
|
|
-::v-deep .submit_btn .cancel {
|
|
|
|
- background-color: #fff4e6;
|
|
|
|
- color: #f3b574;
|
|
|
|
- font-size: 32rpx;
|
|
|
|
-}
|
|
|
|
-::v-deep .submit_btn .submit {
|
|
|
|
- background-color: #f3b574;
|
|
|
|
- color: #ffffff;
|
|
|
|
- font-size: 32rpx;
|
|
|
|
-}
|
|
|
|
</style>
|
|
</style>
|