#
whycq
2023-12-02 178d0ee433ecee57bbd57804cc29c593f3de7829
pages/business/cstmrInfo/cstmrInfo.vue
@@ -3,8 +3,9 @@
      <view class="status_bar">
         <!-- 这里是状态栏 -->
      </view>
      <uni-nav-bar left-icon="left" title="客户信息" @clickLeft="back" @clickRight="scan"
         :border="false" rightWidth="160rpx" leftWidth="160rpx">
      <uni-nav-bar left-icon="left" title="客户信息" @clickLeft="back" @clickRight="scan" :fixed="true"
         :border="false" rightWidth="160rpx" leftWidth="160rpx"
         >
         <block slot="right">
            <view class="city">
               <view>
@@ -16,13 +17,13 @@
       </uni-nav-bar>
      <!-- 搜索框 -->
      <view class="search-bg">
         <uni-search-bar placeholder="客户代号/名称" bgColor="#f4f4f4"  @confirm="search" />
         <u-search placeholder="客户代号/名称" v-model="keyword" :clearabled="true" @custom="search()" @search="search()"></u-search>
      </view>
      <view>
         <!-- 客户列表 -->
         <view class="c-list" @click="getDetails(item.id)" v-for="(item,index) in csmtrList" :key="index">
            <view class="titles">
               <y-title :title="item.name"></y-title>
               <y-title :title="item.name"></y-title><view></view>
            </view>
            <view style="display: grid;grid-template-columns: 1fr 3fr;">
               <view class="list-item1">客户代号</view><view class="list-item2">{{item.uuid}}</view>
@@ -36,8 +37,54 @@
         </view>
      </view>
      <!-- <uni-load-more :status="status" :icon-size="16" :content-text="contentText" /> -->
      <u-empty v-if="true" icon="../../../static/image/emptyList.png"  v-show="!csmtrList"/>
      <u-empty v-if="true" icon="../../../static/image/emptyList.png" v-show="csmtrList.length <= 0" />
      
      <view class="fxbtn" :style="style">
         <uni-icons :type="iconType" color="#fff" @click="menu()" ></uni-icons>
      </view>
      <view class="fxbtn1" v-show="iconType == 'closeempty'">
         <uni-icons type="plusempty" color="#fff" @click="add()" ></uni-icons>
      </view>
      <view class="fxbtn2"  v-show="iconType == 'closeempty'">
         <uni-icons type="download" color="#fff" @click="download()" ></uni-icons>
      </view>
      <!-- 接取窗口 -->
      <view>
         <uni-popup ref="inputDialog" type="dialog">
            <view class="popup">
               <!-- 标题 -->
               <view class="desc">接取</view>
               <scroll-view scroll-y="true" style="height: 23vh;touch-action: none;">
                  <!-- <view style="display: flex;justify-content: center;margin: 8px;align-items: center;" v-for="item in csmtrs">
                     <checkbox style="flex: 1;display: flex;justify-content: flex-end;"></checkbox>
                     <view style="flex: 4;">{{item.name}}</view>
                  </view> -->
                  <view class="u-demo-block__content" style="margin-left: 12rpx;">
                     <view class="u-page__radio-item">
                        <u-radio-group v-model="radiovalue2" placement="column" shape="square" >
                           <u-radio
                              :customStyle="{marginBottom: '8px'}"
                              v-for="(item, index) in csmtrs"
                              :key="index"
                              :label="item.name"
                              :name="item.name"
                           >
                           </u-radio>
                        </u-radio-group>
                     </view>
                  </view>
               </scroll-view>
               <view class="btn">
                  <view class="btn-left" @click="close">取消</view>
                  <view class="btn-right" @click="confirm">确认</view>
               </view>
            </view>
         </uni-popup>
      </view>
      <view style="height: 10rpx;"></view>
   </view>
</template>
@@ -46,12 +93,16 @@
   export default { 
      data() {
         return {
            csmtrList: [],
            last_id: '',
            keyword: '',
            user: {
               username: '',
               id: 0
               id: 0,
               type: ''
            },
            falg: true,
            csmtrList: [],
            csmtrs: [],
            last_id: '',
            userid: 0,
            reload: false,
            status: 'more',
@@ -61,6 +112,9 @@
               contentrefresh: '加载中',
               contentnomore: '没有更多'
            },
            radiovalue2: '',
            iconType: 'plusempty',
            style: 'background-color: #46a7ff;'
         }
      },
      // 新建按钮事件
@@ -71,16 +125,19 @@
         
      },
      onShow() {
         setTimeout(()=> {
            this.getCsmtr1()
         },500)
         let that = this
         uni.$on('isRefresh',function(data){
            console.log('监听到事件来自返回的参数:' + data);
            // TODO 下面执行刷新的方法
            that.user.username = data.title
            that.user.id = data.id
            that.user.type = data.key
            that.falg = false
         })
         this.getDetail()
         if (this.falg) {
            this.getDetail()
         }
         setTimeout(()=> {
            this.getCsmtr1()
         },50)
         
      },
      onReachBottom() {
@@ -88,6 +145,16 @@
         this.getCsmtr()
      },
      methods: {
         menu() {
            if (this.iconType == 'plusempty') {
               this.iconType ='closeempty'
               this.style ='background-color: #c3c3c3;'
            } else {
               this.iconType ='plusempty'
               this.style ='background-color: #46a7ff;'
            }
            // this.iconType = this.iconType ? 'plusempty' : 'closeempty'
         },
         async getDetail() {
            let res = await user.getDetail()
            if (res.code === 200) {
@@ -99,16 +166,61 @@
         },
         open() {
            this.show = true 
            console.log(this.columns);
         },
         download() {
            let _this = this
            uni.request({
               url: `${_this.baseUrl}/cstmr2/all/get/kv`,
               header: {'token' : uni.getStorageSync('token')},
               method: 'POST',
               success(res) {
                  res = res.data
                  if (res.data) {
                     _this.csmtrs = res.data
                  }
               }
            })
            this.$refs.inputDialog.open()
            this.menu()
         },
         add() {
            uni.navigateTo({
               url:'/pages/business/cstmr/addCsmtr?type=' + 1,
            })
            this.menu()
         },
         close() {
            this.$refs.inputDialog.close()
         },
         confirm() {
            let _this = this
            uni.request({
               url: `${_this.baseUrl}/cstmr2/add/auth`,
               header: {
                  'token' : uni.getStorageSync('token'),
                  'content-type':'application/x-www-form-urlencoded',
                  },
               method: 'POST',
               data: {name: _this.radiovalue2},
               success(res) {
                  res = res.data
                  if (res.code === 200) {
                     _this.csmtrList = []
                     setTimeout(()=> {
                        _this.getCsmtr1()
                     },100)
                  }
               }
            })
            this.$refs.inputDialog.close()
         },
         getUserTree() {
            let _this = this
            uni.request({
               url: 'http://192.168.4.188:9528/dept/user/tree/auth',
               url: `${that.baseUrl}/dept/user/tree/auth`,
               method: 'POST',
               header: {'token' : uni.getStorageSync('token'),},
            }).then((res)=>{
               console.log(res);
            })
         },
         back() {
@@ -123,10 +235,16 @@
         getCsmtr1(e) {
            let that = this
            that.csmtrList = []
            let param = {curr:1,limit:4,dept_id: 0,user_id: 67}
            if (this.user.type == 'user_id') {
               param = {curr:1,limit:4,user_id: that.user.id}
            } else {
               param = {curr:1,limit:4,dept_id: that.user.id}
            }
            uni.request({
               url: that.baseUrl + '/cstmr2/page/auth',
               header: {'token' : uni.getStorageSync('token'),},
               data: {curr:1,limit:4},
               data: param,
               method:'GET',
               success(result) {
                  if (result.statusCode ===  404) {
@@ -163,10 +281,16 @@
         },
         getCsmtr() {
            let that = this
            let param = {curr:that.curr,limit:4,dept_id: 0,user_id: 67}
            if (this.user.type == 'user_id') {
               param = {curr:that.curr,limit:4,user_id: that.user.id}
            } else {
               param = {curr:that.curr,limit:4,dept_id: that.user.id}
            }
            uni.request({
               url: that.baseUrl + '/cstmr/page/auth',
               url: that.baseUrl + '/cstmr2/page/auth',
               header: {'token' : uni.getStorageSync('token'),},
               data: {curr:that.curr,limit:4},
               data: param,
               method:'GET',
               success(result) {
                  if (result.statusCode ===  404) {
@@ -204,7 +328,7 @@
         },
         getDetails(id) {
            uni.navigateTo({
               url: '/pages/business/cstmr/cstmrDetails?id=' + id
               url: `/pages/business/cstmr/cstmrDetails?id=${id}&type=info`
            })
         },
         // ---
@@ -242,8 +366,8 @@
      background-color: #fff;
      border-radius: 10rpx;
      margin: 20rpx 2% 0 2%;
      display: flex;
      flex-direction: column;
      /* display: flex;
      flex-direction: column; */
      font-size: 24rpx;
   }
   /* 父view 换 scroll-view */
@@ -264,7 +388,7 @@
   }
   .titles {
      padding-left: 10rpx;
      text-indent: 5rpx;
      /* text-indent: 5rpx; */
      margin-top: 10rpx;
   }
   /* .title {
@@ -274,4 +398,88 @@
      font-weight: 900;
      color: #303133;
   } */
   .fxbtn {
      position: fixed;
      bottom: 50px;
      right: 10px;
      width: 40px;
      height: 40px;
      /* background-color: #46a7ff; */
      color: #FFF;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 50%;
   }
   .fxbtn1 {
      position: fixed;
      bottom: 50px;
      right: 60px;
      width: 40px;
      height: 40px;
      background-color: #46a7ff;
      color: #FFF;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 50%;
   }
   .fxbtn2 {
      position: fixed;
      bottom: 50px;
      right: 110px;
      width: 40px;
      height: 40px;
      background-color: #46a7ff;
      color: #FFF;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 50%;
   }
   .popup {
      width: 80vw;
      min-height: 100rpx;
      background-color: #FFF;
      border-radius: 25rpx;
   }
   .desc {
      height: 100rpx;
      line-height: 100rpx;
      width: 100%;
      color: #606266;
      text-align: center;
      font-size: 16px;
   }
   .btn {
      display: flex;
      height: 90rpx;
      margin-top: 20rpx;
      border-top: 1px solid #DCDFE6;
      justify-content: center;
      align-items: center;
   }
   .btn-left {
      display: flex;
      flex: 1;
      height: 100%;
      justify-content: center;
      align-items: center;
      color: #606266;
      border-right: 1px solid #DCDFE6;
   }
   .btn-right {
      display: flex;
      flex: 1;
      justify-content: center;
      align-items: center;
      color: #409EFF;
   }
</style>