Ver Fonte

updated

xiebaomin há 2 anos atrás
pai
commit
f5912f658f

+ 17 - 35
pages/goods/components/procurement_card.vue

@@ -1,14 +1,14 @@
 <template>
     <view class="card">
         <view @click="$emit('procureDetail', procuretInfo)">
-            <view class="card_title" @click="$emit('procureDetail', procuretInfo)">
+            <view class="card_title">
                 <view class="card_user_icon">发起者</view>
-                <view class="card_user">{{ procuretInfo.userName | subText(12) }}</view>
+                <view class="card_user">{{ procuretInfo.userName | subText(10) }}</view>
             </view>
             <view class="card_time">{{ procuretInfo.saveTime }}</view>
-            <view class="card_content" @click="$emit('procureDetail', procuretInfo)">
+            <view class="card_content">
                 <image class="card_content_img" :src="procuretInfo.productImage" mode="aspectFill"></image>
-                <view class="card_content_title">{{ procuretInfo.productName | subText(22) }}</view>
+                <view class="card_content_title">{{ procuretInfo.productName }}</view>
             </view>
             <view class="card_form">
                 <view class="form">
@@ -34,8 +34,8 @@
             </view>
         </view>
 
-        <view v-if="!procurementStatus('isDelFlag') && !procurementStatus('isAchieve')">
-            <view class="card_foot" v-if="procurementStatus('isSelfParticipationTab')">
+        <view v-if="!procurementStatus('isDelFlag', procuretInfo.delFlag) && !procurementStatus('isAchieve', procuretInfo.isAchieve)">
+            <view class="card_foot" v-if="procurementStatus('isSelfParticipationTab', proTabId)">
                 <view class="foot_continue">
                     <view class="foot_change" @click="procurementChange">修改</view>
                     <view class="foot_delete" @click="procurementDelete" v-if="proTabId === 2">删除</view>
@@ -43,7 +43,7 @@
                 </view>
                 <view class="foot_title" v-if="proTabId === 1">您已参与</view>
             </view>
-            <view v-if="procurementStatus('isAllTab') && !procurementStatus('isInvolved', 2)">
+            <view v-if="procurementStatus('isAllTab', proTabId) && !procurementStatus('isInvolved', procuretInfo.isInvolved)">
                 <view class="card_foot_2" @click="procurementAdd" v-if="procuretInfo.isInvolved === 0">
                     <view class="foot_title">我要参与</view>
                 </view>
@@ -52,13 +52,13 @@
         </view>
         <view class="card_status">
             <image
-                v-if="procurementStatus('isAchieve')"
+                v-if="procurementStatus('isAchieve', procuretInfo.isAchieve)"
                 style="width: 100%;height: 100%;"
                 src="@/static/procurement/success.png"
                 mode="aspectFill"
             ></image>
             <image
-                v-if="procurementStatus('isDelFlag')"
+                v-if="procurementStatus('isDelFlag', procuretInfo.delFlag)"
                 style="width: 100%;height: 100%;"
                 src="@/static/procurement/delete.png"
                 mode="aspectFill"
@@ -66,14 +66,16 @@
         </view>
         <view
             class="card_bg"
-            v-if="procurementStatus('isDelFlag')"
+            v-if="procurementStatus('isDelFlag', procuretInfo.delFlag)"
             @click="$emit('procureDetail', procuretInfo)"
         ></view>
     </view>
 </template>
 
 <script>
+import procurementMixins from '../mixins/procurementMixins.js'
 export default {
+    mixins: [procurementMixins],
     props: {
         procuretInfo: {
             type: Object,
@@ -90,17 +92,6 @@ export default {
             card: {}
         }
     },
-    filters: {
-        subText(str, index) {
-            if(str) {
-                if (str.length <= index) {
-                    return str
-                }
-                return str.substring(0, index) + '...'
-            }
-            return str
-        }
-    },
     computed: {},
     watch: {},
     mounted() {},
@@ -123,19 +114,6 @@ export default {
         procurementExit() {
             this.$emit('modelData', this.procuretInfo)
         },
-        // 各部分状态
-        procurementStatus(string, res) {
-            const procuretInfo = this.procuretInfo
-            const status = {
-                isDelFlag: () => procuretInfo.delFlag == 1, // 是否删除
-                isAchieve: () => procuretInfo.isAchieve == 1, // 是否实现
-                isAllTab: () => this.proTabId === 0, // 是否在全部的tab栏下
-                isInvolved: res => procuretInfo.isInvolved === res, // 是否参与 0 未参与 1已参与 2 我创建的
-                isAdd: () => procuretInfo.isInvolved === 2, // 是否是自身创建的
-                isSelfParticipationTab: () => this.proTabId > 0 // 是否在已参与tab栏 是否在自已发布的tab中
-            }
-            return status[string](res)
-        }
     }
 }
 </script>
@@ -204,10 +182,14 @@ export default {
     width: 442rpx;
     height: 85rpx;
     font-size: 26rpx;
-    font-family: PingFangSC-Regular, PingFang SC;
     font-weight: 400;
     color: #333333;
     line-height: 48rpx;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    display: -webkit-box; // 弹性盒模型
+    -webkit-box-orient: vertical; // 上下垂直
+    -webkit-line-clamp: 2; // 行数
 }
 .card .card_form {
     margin-bottom: 32rpx;

+ 0 - 3
pages/goods/components/upload.vue

@@ -29,9 +29,7 @@
         },
         watch: {
             imageData(val) {
-                console.log(val)
                 if (val) {
-                    console.log(val)
                     this.imageUrl = val
                 }
             }
@@ -42,7 +40,6 @@
                     const {data} = await uploadFileImage()
                     this.imageUrl = JSON.parse(data).data
                     this.$emit('uploadImg', JSON.parse(data).data)
-                    console.log(this.imageUrl)
                 }catch(error){
                     console.log(error)
                 }

+ 32 - 0
pages/goods/mixins/procurementMixins.js

@@ -1,4 +1,15 @@
 export default {
+    filters: {
+        subText(str, index) {
+            if(str) {
+                if (str.length <= index) {
+                    return str
+                }
+                return str.substring(0, index) + '...'
+            }
+            return str
+        }
+    },
     methods: {
         // 校验 只能输入数字和小数点
         fpNumInput(e, str) {
@@ -6,6 +17,12 @@ export default {
             const inputRule = /[^\d.]/g //修改inputRule 的值
             this.$nextTick(() => {
                 this[str].price = o.value.replace(inputRule, '')
+                if (o.value[0] == '.') {
+                    this[str].price = ''
+                } else if (o.value[0] == '0' && o.value[1] == '0') {
+                    this[str].price = '0'
+                }
+                this[str].price = this[str].price.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.') // 只能输入一个小数点
             })
         },
         // 校验 只能输入数字
@@ -14,7 +31,22 @@ export default {
             const inputRule = /[^\d]/g //修改inputRule 的值
             this.$nextTick(() => {
                 this[str].number = o.value.replace(inputRule, '')
+                if (o.value[0] == '0') {
+                    this[str].number = ''
+                }
             })
         },
+        // 状态
+        procurementStatus(str, res) {
+            const form = {
+                isDelFlag: () => res == 1, // 是否删除
+                isAchieve: () => res == 1, // 是否实现
+                isAllTab: () => res === 0, // 是否在全部的tab栏下
+                isSelfParticipationTab: () => res > 0, // 是否在已参与tab栏 是否在自已发布的tab中
+                isInvolved: () => res === 2, // 是否我创建的
+                isAdd: () => res === 1, // 是否参与
+            }
+            return form[str]()
+        },
     }
 }

+ 3 - 3
pages/goods/procurement.vue

@@ -335,7 +335,7 @@ export default {
                 id: this.joinData.id
             }
             if (this.joinData.isInvolved === 1) {
-                form.id = this.joinData.sid
+                form.id = this.joinData.id
                 form.status = 1 // 0参与 1 修改
             }
             try {
@@ -344,7 +344,7 @@ export default {
                 this.popupShow = false
                 this.isEditDetail = false
                 uni.showToast({
-                    title: `${this.joinData.procurePo.isInvolved === 0 ? '参与' : '修改'}成功`,
+                    title: `${this.joinData.isInvolved === 0 ? '参与' : '修改'}成功`,
                     icon: 'success'
                 })
             } catch (error) {
@@ -354,7 +354,7 @@ export default {
         // 删除 退出
         async procurementUpdate(type, id) {
             const form = {
-                id: `${this.proDataInfo.id}`,
+                id: `${this.proDataInfo.sid}`,
                 userId: this.userInfo.userId,
                 procurementType: type
             }

+ 9 - 19
pages/goods/procurementAdd.vue

@@ -36,6 +36,7 @@
                         placeholder="请输入您对商品的期望单价"
                         v-model="formData.price"
                         @input="fpNumInput($event, 'formData')"
+                        maxlength="10"
                     />
                 </view>
             </view>
@@ -52,6 +53,7 @@
                         placeholder="请输入您的采购数量"
                         v-model="formData.number"
                         @input="NumberInput($event, 'formData')"
+                        maxlength="10"
                     />
                 </view>
             </view>
@@ -142,28 +144,16 @@ export default {
         this.formData.userName = this.userInfo.userName
     },
     methods: {
-        // 校验 只能输入数字和小数点
-        fpNumInput(e, str) {
-            const o = e.target
-            const inputRule = /[^\d.]/g //修改inputRule 的值
-            this.$nextTick(() => {
-                this[str].price = o.value.replace(inputRule, '')
-            })
-        },
-        // 校验 只能输入数字
-        NumberInput(e, str) {
-            const o = e.target
-            const inputRule = /[^\d]/g //修改inputRule 的值
-            this.$nextTick(() => {
-                this[str].number = o.value.replace(inputRule, '')
-            })
-        },
         // 发布按钮
         activeBtn() {
             if (this.formData.productName === '' || this.formData.price === '' || this.formData.number === '') {
-                this.isActive = false
+                setTimeout(() => {
+                    this.isActive = false
+                }, 300)
             } else {
-                this.isActive = true
+                setTimeout(() => {
+                    this.isActive = true
+                }, 200)
             }
         },
         // 图片上传
@@ -199,7 +189,7 @@ export default {
                     uni.navigateBack({
                         data: 1
                     })
-                }, 1000)
+                }, 800)
                 uni.$emit('refreshAddData', this.detailData.id) // 刷新修改的数据
             } catch (error) {
                 console.log(error)

+ 59 - 58
pages/goods/procurement_info.vue

@@ -13,9 +13,9 @@
                 <view class="card_line"></view>
                 <view class="card_store">
                     <image class="img" :src="procurement.productImage" mode="aspectFill"></image>
-                    <view class="store_title">{{procurement.productName | subText(22)}}</view>
+                    <view class="store_title">{{ procurement.productName }}</view>
                 </view>
-                <view class="back-filter" v-if="procurementStatus('isDelFlag')"></view>
+                <view class="back-filter" v-if="procurementStatus('isDelFlag', procurement.delFlag)"></view>
             </view>
             <view class="info_Initiator">
                 <view class="card_title">发起者需求</view>
@@ -23,16 +23,16 @@
                 <view class="Initiator_contant">
                     <view class="Initiator_name">
                         <view class="Initiator_icon">发起者</view>
-                        <view class="user">{{procurement.userName | subText(12)}}</view>
+                        <view class="user">{{ procurement.userName | subText(10) }}</view>
                     </view>
                     <view class="Initiator_price">
                         <view class="unit_price">
                             <view class="title">期望单价:</view>
-                            <view class="price">¥{{procurement.price}}</view>
+                            <view class="price">¥{{ procurement.price }}</view>
                         </view>
                         <view class="unit_sum">
                             <view class="title">采购数量:</view>
-                            <view class="price">{{procurement.number}}</view>
+                            <view class="price">{{ procurement.number }}</view>
                         </view>
                     </view>
                 </view>
@@ -41,16 +41,16 @@
                         style="width: 100%;height: 100%;"
                         src="@/static/procurement/success.png"
                         mode="aspectFill"
-                        v-if="procurementStatus('isAchieve')"
+                        v-if="procurementStatus('isAchieve', procurement.isAchieve)"
                     ></image>
                     <image
                         style="width: 100%;height: 100%;"
                         src="@/static/procurement/delete.png"
                         mode="aspectFill"
-                        v-if="procurementStatus('isDelFlag')"
+                        v-if="procurementStatus('isDelFlag', procurement.delFlag)"
                     ></image>
                 </view>
-                <view class="back-filter" v-if="procurementStatus('isDelFlag')"></view>
+                <view class="back-filter" v-if="procurementStatus('isDelFlag', procurement.delFlag)"></view>
             </view>
             <view class="info_Participant">
                 <view class="card_title">参与者需求({{ procurementList.length }})</view>
@@ -64,32 +64,51 @@
                     >
                         <view class="Initiator_name">
                             <view class="Initiator_icon">参与者</view>
-                            <view class="user">{{item.userName | subText(12)}}</view>
+                            <view class="user">{{ item.userName | subText(12) }}</view>
                         </view>
                         <view class="Initiator_price">
                             <view class="unit_price">
                                 <view class="title">期望单价:</view>
-                                <view class="price">¥{{procurement.price}}</view>
+                                <view class="price">¥{{ procurement.price }}</view>
                             </view>
                             <view class="unit_sum">
                                 <view class="title">采购数量:</view>
-                                <view class="price">{{procurement.number}}</view>
+                                <view class="price">{{ procurement.number }}</view>
                             </view>
                         </view>
                     </view>
                 </view>
                 <view class="empty" v-else>暂无参与者~</view>
-                <view class="back-filter" v-if="procurementStatus('isDelFlag')"></view>
+                <view class="back-filter" v-if="procurementStatus('isDelFlag', procurement.delFlag)"></view>
             </view>
         </view>
-        <view v-if="!procurementStatus('isDelFlag') && !procurementStatus('isAchieve')">
-            <view class="info_btn" v-if="!procurementStatus('isInvolved') && !procurementStatus('isAdd')">
+        <view
+            v-if="
+                !procurementStatus('isDelFlag', procurement.delFlag) &&
+                    !procurementStatus('isAchieve', procurement.isAchieve)
+            "
+        >
+            <view
+                class="info_btn"
+                v-if="
+                    !procurementStatus('isInvolved', procurement.isInvolved) &&
+                        !procurementStatus('isAdd', procurement.isInvolved)
+                "
+            >
                 <proBtn color="#FFFFFF" background="#F3B574" width="640rpx" @click="popupAdd">我要参与</proBtn>
             </view>
             <view class="info_btn" v-else>
-                <proBtn @click="procurementDelete" v-if="procurementStatus('isInvolved')">删除</proBtn>
+                <proBtn @click="procurementDelete" v-if="procurementStatus('isInvolved', procurement.isInvolved)">
+                    删除
+                </proBtn>
                 <proBtn @click="modelData" v-else>退出</proBtn>
-                <proBtn color="#FFFFFF" background="#F3B574" @click="procurementChange(procurementStatus('isInvolved'))">修改</proBtn>
+                <proBtn
+                    color="#FFFFFF"
+                    background="#F3B574"
+                    @click="procurementChange(procurementStatus('isInvolved', procurement.isInvolved))"
+                >
+                    修改
+                </proBtn>
             </view>
         </view>
         <tui-bottom-popup :zIndex="1002" :maskZIndex="1001" :show="popupShow" @close="handlerPopupClose">
@@ -149,7 +168,9 @@
 
 <script>
 import proBtn from './components/procurement-btn.vue'
+import procurementMixins from './mixins/procurementMixins.js'
 export default {
+    mixins: [procurementMixins],
     components: {
         proBtn
     },
@@ -180,18 +201,7 @@ export default {
             userInfo: {},
             popupShow: false, // 底部上移栏
             proTabId: '', // tab id
-            detailId: '', // 详情id
-        }
-    },
-    filters: {
-        subText(str, index) {
-            if(str) {
-                if (str.length <= index) {
-                    return str
-                }
-                return str.substring(0, index) + '...'
-            }
-            return str
+            detailId: '' // 详情id
         }
     },
     onLoad(options) {
@@ -199,26 +209,13 @@ export default {
         this.procurementDetail(options.id)
         this.detailId = options.id
         this.proTabId = options.proTabId
-        uni.$on('refreshAddData',(id) => {
+        uni.$on('refreshAddData', id => {
             if (id) {
                 this.procurementDetail(id)
             }
         })
     },
     methods: {
-        // 状态
-        procurementStatus(str) {
-            const userIdList = this.procurementList.map(i => i.userId)
-            const form = {
-                isDelFlag: () => this.procurement.delFlag == 1, // 是否删除
-                isAchieve: () => this.procurement.isAchieve == 1, // 是否实现
-                isAllTab: () => this.proTabId === 0, // 是否在全部的tab栏下
-                isSelfParticipationTab: () => this.proTabId > 0, // 是否在已参与tab栏 是否在自已发布的tab中
-                'isInvolved': () => this.procurement.isInvolved === 2, // 是否我创建的
-                'isAdd': () => this.procurement.isInvolved === 1, // 是否参与
-            }
-            return form[str]()
-        },
         // 删除
         procurementDelete() {
             this.contentModalText = '确定删除该需求吗?'
@@ -227,10 +224,10 @@ export default {
         },
         handleClick($event) {
             if ($event.index === 1) {
-                if(this.joinData.isInvolved === 1) {
+                if (this.joinData.isInvolved === 1) {
                     // 退出参与
                     this.procurementUpdate(1)
-                } else{
+                } else {
                     // 删除
                     this.procurementUpdate(0)
                 }
@@ -244,7 +241,7 @@ export default {
         },
         // 我要参与
         popupAdd() {
-            this.joinData = Object.assign(this.procurement, {number: '', price: '', userId: this.userInfo.userId})
+            this.joinData = this.procurement
             this.popupShow = true
         },
         // 组件传递商品详情 退出
@@ -256,7 +253,7 @@ export default {
         procurementChange(status) {
             if (status) {
                 uni.navigateTo({
-                    url: '/pages/goods/procurementAdd?id='+this.procurement.id
+                    url: '/pages/goods/procurementAdd?id=' + this.procurement.id
                 })
             } else {
                 this.procurementEditData()
@@ -280,7 +277,7 @@ export default {
                 userId: this.userInfo.userId,
                 procurementType: type
             }
-            try{
+            try {
                 await this.ProcurementService.procurementUpdate(form)
                 this.procurementDetail(this.detailId)
                 uni.$emit('refreshAddData') // 刷新修改的数据
@@ -288,16 +285,16 @@ export default {
                     title: `${type === 0 ? '删除' : '退出'}成功`,
                     icon: 'success'
                 })
-            }catch(error){
+            } catch (error) {
                 console.log(error)
             }
         },
         // 我要参与
         async procurementParticipate() {
-            if(this.joinData.price === '') {
+            if (this.joinData.price === '') {
                 return this.$util.msg('请输入期望单价', 2000)
             }
-            if(this.joinData.number === '') {
+            if (this.joinData.number === '') {
                 return this.$util.msg('请输入采购数量', 2000)
             }
             const form = {
@@ -313,15 +310,15 @@ export default {
                 form.id = this.joinData.sid
                 form.status = 1 // 0参与 1 修改
             }
-            try{
+            try {
                 await this.ProcurementService.procurementParticipate(form)
                 this.procurementDetail(this.detailId)
                 uni.$emit('refreshAddData') // 刷新修改的数据
                 uni.showToast({
-                    title:`${this.procurement.isInvolved === 0 ? '参与' : '修改'}成功`,
+                    title: `${this.procurement.isInvolved === 0 ? '参与' : '修改'}成功`,
                     icon: 'success'
                 })
-            }catch(error){
+            } catch (error) {
                 console.log(error)
             }
         },
@@ -332,11 +329,11 @@ export default {
                 userId: this.userInfo.userId,
                 procurementType: 0
             }
-            try{
+            try {
                 const data = await this.ProcurementService.procurementEditData(form)
                 this.joinData = data.data
                 this.popupShow = true
-            }catch(error){
+            } catch (error) {
                 console.log(error)
             }
         }
@@ -385,6 +382,11 @@ export default {
     font-size: 26rpx;
     color: #333333;
     line-height: 48rpx;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    display: -webkit-box; // 弹性盒模型
+    -webkit-box-orient: vertical; // 上下垂直
+    -webkit-line-clamp: 2; // 行数
 }
 .procure_info .info_Initiator {
     background-color: #fff;
@@ -426,14 +428,13 @@ export default {
     margin-top: 48rpx;
     display: flex;
     align-items: center;
+    justify-content: space-between;
 }
 .Initiator_price .unit_price,
 .Initiator_price .unit_sum {
     display: flex;
     align-items: center;
-}
-.Initiator_price .unit_sum {
-    margin-left: 120rpx;
+    white-space: nowrap;
 }
 .title {
     color: #999999;