Browse Source

下拉选择

fuwei 5 years ago
parent
commit
d2308bb943

+ 42 - 2
ghs/src/admin/home/order.vue

@@ -1,8 +1,21 @@
 <template>
   <div class="app-main app-content">
+    <view class="input-wrap_box">
+      <view>
+        <AppSearchModule placeholder="请输入关键词搜索" @search="searchFn" />
+      </view>
+			
+      <view class="select-dn_bx">
+        <DorpdownSelect 
+          :typeSelect="1"
+          top="50px"
+          @selectSussess="selectSussess" />
+      </view>
+		</view>
     <app-tabs
       :tabs="tabs"
       :isFixed="true"
+      :top="50"
       :currentTab="tabIndex"
       :height="100"
       @change="change"
@@ -139,13 +152,17 @@ import { list } from "@/mixins";
 import { mapGetters } from 'vuex';
 import { orderClass } from '@/api/order'
 import { getListB, freeShipping } from "@/api/order";
+import AppSearchModule from '@/components/module/app-search'
+import DorpdownSelect from '@/components/module/dorpdownSelect'
 export default {
   name: "order-list",
   components: {
     ListModule,
     AppTabs,
     AppWrapperEmpty,
-    ModalModule
+    ModalModule,
+    AppSearchModule,
+    DorpdownSelect
   },
   mixins: [list],
   data() {
@@ -216,6 +233,12 @@ export default {
     }
   },
   methods: {
+    selectSussess(val){
+      console.log(val)
+    },
+    searchFn(){
+
+    },
     init() {
       this._list();
     },
@@ -311,8 +334,25 @@ export default {
 
 <style lang="scss" scoped>
 .app-content {
-  padding-top: 120px;
+  padding-top: 220px;
   padding-bottom: 1px;
+  .select-dn_bx {
+    padding-left: 48px;
+  }
+  .input-wrap_box {
+    background-color: #fff;
+    position: fixed;
+    top: 0;
+    z-index: 10;
+    width: 100%;
+    height: 100px;
+    display: flex;
+    align-items: center;
+    padding:0 30px;
+    & > view:nth-child(1) {
+      flex: 1;
+    }
+  }
   .list-wrap {
     .list {
       padding: 0 30px;

+ 177 - 0
ghs/src/components/module/dorpdownSelect.vue

@@ -0,0 +1,177 @@
+<template>
+    <view class="select-bg_bx">
+        <view
+            :id="titId"
+            @click="switchCut"
+            :class="['select-title',dropdownShow?'select_corlor':'']">
+            {{menuObj.title}}
+            <i class="iconfont iconsanjiao_xia"></i>
+        </view>
+         <view 
+            :style="{
+               top
+            }"
+            class="select-mark-view" v-show="dropdownShow" @click="switchCut"></view>
+        <view 
+            v-if="dropdownShow"
+            :style="{
+                top
+            }"
+            class="select-fixed_bx">
+            <slot>
+                <view class="select-item-box">
+                    <view class="title">{{menuObj.titleChild}}</view>
+                    <view class="item-child_box">
+                        <button 
+                            v-for="(item,index) in menuObj.list"
+                            :key="index"
+                            @click="changeItem(item)"
+                            :class="['admin-button-com','mini-btn',selectItem.name === item.name?'blue':'default']">
+                            {{item.name}}
+                        </button>
+                    </view>
+                </view>
+                <view 
+                    v-if="typeSelect === 1"
+                    class="select-item-box">
+                    <view class="title">其他时间选择</view>
+                    <view class="item-child_box">
+                        <picker
+                            class="admin-button-com mini-btn default custom"
+                                mode="date" :value="selectItem" @change="endTimeFn">
+                            <div v-if="selectItem&&$util.isString(selectItem)">{{ selectItem }}</div>
+                            <div class="tui-placeholder" v-else>自定义时间</div>
+                        </picker>
+                    </view>
+                </view>
+            </slot>
+        </view>
+    </view>
+</template>
+
+<script>
+    import DropdownList from "@/components/plugin/dropdown-list";
+    import AppDatePicker from "@/components/app-date-picker";
+    
+    export default {
+        name:'DorpdownSelect',
+        components:{
+            DropdownList,
+            AppDatePicker
+        },
+        props:{
+            menuObj:{
+                type: Object,
+                default: ()=>({
+                    title:'时间',
+                    titleChild:'选择时间',
+                    list: [{name:'昨天'},{name:'今天'},{name:'本月'},{name:'上月'},{name:'今年'}]  
+                })
+            },
+            // 1 是时间  2是其他
+            typeSelect:{
+                type:Number,
+                default: 2
+            },
+            top:{
+               type: String,
+               default: 'auto'
+            }
+        },
+        data(){
+            return {
+                dropdownShow: false,
+                selectItem:'',
+                titId:'cesshi123'
+            }
+        },
+        mounted(){
+
+        },
+        methods:{
+            switchCut(){
+                this.dropdownShow = !this.dropdownShow
+            },
+            changeItem(val){
+                this.selectItem = val
+            },
+            endTimeFn(e){
+                this.selectItem = e.detail.value;
+            }
+        },
+        watch:{
+           selectItem(val){
+               this.$emit('selectSussess',{
+                   select: this.$util.isString(val)?val:val.name,
+                   selectItem: val
+               })
+           } 
+        }
+    }
+</script>
+
+<style lang="scss" scoped>
+    .select-bg_bx {
+        .select-title {
+            color: #666666;
+            font-size: 26px;
+            & .iconsanjiao_xia {
+                margin-left: 30px;
+            }
+            &.select_corlor {
+                color: #3385FF;
+                & .iconsanjiao_xia {
+                    transform: rotate(180deg);
+                }
+            }
+        }
+        .select-mark-view {
+            /*  #ifndef  H5  */
+            height: 100vh;
+            /*  #endif  */
+            /*  #ifdef  H5  */
+            height: 100%;
+            /*  #endif  */
+            position: absolute;
+            width: 100%;
+            background-color: rgba(0, 0, 0, 0.5);
+            left: 0;
+            // top: 100px;
+        }
+        & .select-fixed_bx {
+            position: fixed;
+            width: 100%;
+            background-color: #FFFFFF;
+            left: 0;
+            z-index: 999;
+            // box-shadow: 0 6px 10px #cccccc;
+            padding:40px 30px 40px;
+            border-radius: 0px 0px 20px 20px;
+            transition: all 0.5s ease-in-out;
+            // top: 100px;
+            & .select-item-box {
+                & .title {
+                    font-size: 24px;
+                    color: #333333;
+                    font-weight: 600;
+                }
+                & .item-child_box {
+                    display: flex;
+                    padding: 20px 0 20px;
+                    align-items: center;
+                    flex-flow: wrap;
+                    justify-content: space-between;
+                    & .admin-button-com {
+                        
+                        margin-bottom: 20px;
+                        padding: 18px 50px;
+                        &.custom {
+                            width: 100%;
+                        }
+                    }
+                }
+            }
+        }
+    }
+    
+</style>

+ 1 - 1
ghs/src/components/plugin/dropdown-list.vue

@@ -56,7 +56,7 @@ export default {
 		width: 100%;
 		overflow: hidden;
 		position: absolute;
-		z-index: 9999;
+		z-index: 99999;
 		left: 0;
 		/* opacity: 0; */
 		visibility: hidden;

+ 1 - 1
ghs/src/components/plugin/tabs.vue

@@ -264,7 +264,7 @@ export default {
 	display: flex;
 	align-items: center;
 	justify-content: space-between;
-	z-index: 99;
+	z-index: 9;
 	.tui-tabs-item {
 		&.border-left {
 			border-left: 2px solid #ddd;

+ 2 - 1
ghs/src/utils/util.js

@@ -292,5 +292,6 @@ export default {
 	pageTo,
 	isLogin,
 	getCheckLogin,
-	numberFormat
+	numberFormat,
+	isString
 };