liuyg
2022-02-19 c31fd69572b16f556fb0b843fe900b9d7d2cf63f
冲突
3 files modified
705 ■■■■ changed files
pages/grabOrders/grabOrders.vue 530 ●●●● patch | view | raw | blame | history
pages/home/home.vue 1 ●●●● patch | view | raw | blame | history
pages/registerUser/registerUser.vue 174 ●●●●● patch | view | raw | blame | history
pages/grabOrders/grabOrders.vue
@@ -1,266 +1,304 @@
<template>
    <view class="grabOrders">
        <view>
            <u-tabs-swiper ref="uTabs" :list="list" :current="current" @change="tabsChange" :is-scroll="false"
                swiperWidth="750"></u-tabs-swiper>
        </view>
        <!-- @animationfinish="animationfinish" -->
        <swiper :current="swiperCurrent" @transition="transition" @animationfinish="animationfinish"
            style="height: calc(100% - 40px);width: 100%">
            <swiper-item class="swiper-item" v-for="(item, index) in list" :key="index"
                style="height: 100%; width: 100%">
                <scroll-view scroll-y style="height: 100%; width: 100%" @scrolltolower="onreachBottom">
                    <page0 :listData="leftdata" :swiperCurrent="0" v-if="item.name == '正在进行'" @openOnce="openOnce"
                        @getOrders="getOrders"></page0>
                    <page1 :listData="rightdata" :swiperCurrent="1" v-if="item.name == '可参与'" @openOnce="openOnce"
                        @getOrders="getOrders"></page1>
  <view class="grabOrders">
    <view>
      <u-tabs-swiper
        ref="uTabs"
        :list="list"
        :current="current"
        @change="tabsChange"
        :is-scroll="false"
        swiperWidth="750"
      ></u-tabs-swiper>
    </view>
    <!-- @animationfinish="animationfinish" -->
    <swiper
      :current="swiperCurrent"
      @transition="transition"
      @animationfinish="animationfinish"
      style="height: calc(100% - 40px); width: 100%"
    >
      <swiper-item
        class="swiper-item"
        v-for="(item, index) in list"
        :key="index"
        style="height: 100%; width: 100%"
      >
        <scroll-view
          scroll-y
          style="height: 100%; width: 100%"
          @scrolltolower="onreachBottom"
        >
          <page0
            :listData="leftdata"
            :swiperCurrent="0"
            v-if="item.name == '正在进行'"
            @openOnce="openOnce"
            @getOrders="getOrders"
          ></page0>
          <page1
            :listData="rightdata"
            :swiperCurrent="1"
            v-if="item.name == '可参与'"
            @openOnce="openOnce"
            @getOrders="getOrders"
          ></page1>
                    <!-- <view class="a" v-if="item.name == '正在进行'">
          <!-- <view class="a" v-if="item.name == '正在进行'">
                             {{leftdata}}
                         </view>
                         <view class="b" v-if="item.name == '可参与'">
                             {{rightdata}}
                         </view> -->
                </scroll-view>
            </swiper-item>
        </swiper>
        <view>
            <u-modal v-model="showPopup" :content="appdetitle" :show-cancel-button="true" @confirm="confirms"></u-modal>
            <!-- <u-button @click="open">
        </scroll-view>
      </swiper-item>
    </swiper>
    <view>
      <u-modal
        v-model="showPopup"
        :content="appdetitle"
        :show-cancel-button="true"
        @confirm="confirms"
      ></u-modal>
      <!-- <u-button @click="open">
                打开模态框
            </u-button> -->
        </view>
    </view>
    </view>
  </view>
</template>
<script>
    import page0 from "./inPage/page0.vue";
    import page1 from "./inPage/page1.vue";
    export default {
        components: {
            page0,
            page1,
        },
        data() {
            return {
                list: [{
                        name: "正在进行",
                    },
                    {
                        name: "可参与",
                    },
                ],
                // 因为内部的滑动机制限制,请将tabs组件和swiper组件的current用不同变量赋值
                current: 0, // tabs组件的current值,表示当前活动的tab选项
                swiperCurrent: 0, // swiper组件的current值,表示当前那个swiper-item是活动的
                leftdata: [],
                rightdata: [],
                showPopup: false,
                appdetitle: "",
                popupData: {},
            };
        },
        watch: {
            current() {
                // console.log(this.current)
                this.getGrabOrders(this.current);
            },
            change() {
                this.getGrabOrders(this.current);
            },
        },
        mounted() {
            this.getGrabOrders(this.current);
        },
        computed: {
            change() {
                return this.$store.state.gotuGrabOrders;
            },
        },
        methods: {
            // tabs通知swiper切换
            tabsChange(index) {
                this.swiperCurrent = index;
                // console.log(index);
            },
            // swiper-item左右移动,通知tabs的滑块跟随移动
            transition(e) {
                let dx = e.detail.dx;
                this.$refs.uTabs.setDx(dx);
            },
            // 由于swiper的内部机制问题,快速切换swiper不会触发dx的连续变化,需要在结束时重置状态
            // swiper滑动结束,分别设置tabs和swiper的状态
            animationfinish(e) {
                let current = e.detail.current;
                this.$refs.uTabs.setFinishCurrent(current);
                this.swiperCurrent = current;
                this.current = current;
            },
            // scroll-view到底部加载更多
            onreachBottom() {},
            openOnce(val) {
                //打开地图
                // console.log(this.swiperCurrent)
                val["buttype"] = this.swiperCurrent; //tab标识,0正在进行,1可参与
                val["serid"] = uni.getStorageSync("ids") + ",";
                val["appenUrl"] = this.$store.state.piAPI ;
                //打开地图
import page0 from "./inPage/page0.vue";
import page1 from "./inPage/page1.vue";
export default {
  components: {
    page0,
    page1,
  },
  data() {
    return {
      list: [
        {
          name: "正在进行",
        },
        {
          name: "可参与",
        },
      ],
      // 因为内部的滑动机制限制,请将tabs组件和swiper组件的current用不同变量赋值
      current: 0, // tabs组件的current值,表示当前活动的tab选项
      swiperCurrent: 0, // swiper组件的current值,表示当前那个swiper-item是活动的
      leftdata: [],
      rightdata: [],
      showPopup: false,
      appdetitle: "",
      popupData: {},
    };
  },
  watch: {
    current() {
      // console.log(this.current)
      this.getGrabOrders(this.current);
    },
    change() {
      this.getGrabOrders(this.current);
    },
  },
  mounted() {
    this.getGrabOrders(this.current);
  },
  computed: {
    change() {
      return this.$store.state.gotuGrabOrders;
    },
  },
  methods: {
    // tabs通知swiper切换
    tabsChange(index) {
      this.swiperCurrent = index;
      // console.log(index);
    },
    // swiper-item左右移动,通知tabs的滑块跟随移动
    transition(e) {
      let dx = e.detail.dx;
      this.$refs.uTabs.setDx(dx);
    },
    // 由于swiper的内部机制问题,快速切换swiper不会触发dx的连续变化,需要在结束时重置状态
    // swiper滑动结束,分别设置tabs和swiper的状态
    animationfinish(e) {
      let current = e.detail.current;
      this.$refs.uTabs.setFinishCurrent(current);
      this.swiperCurrent = current;
      this.current = current;
    },
    // scroll-view到底部加载更多
    onreachBottom() {},
    openOnce(val) {
      //打开地图
      // console.log(this.swiperCurrent)
      val["buttype"] = this.swiperCurrent; //tab标识,0正在进行,1可参与
      val["serid"] = uni.getStorageSync("ids") + ",";
      val["appenUrl"] = this.$store.state.piAPI;
      //打开地图
                if (val.iscation == 1) {
                    if (val.type == 0) {
                        //是队长-上传反馈
                        val["butCT"] = "beginUp";
                    } else if (val.type == 2) {
                        //是队长-开始任务
                        val["butCT"] = "begin";
                    } else {
                        //是队长-完成任务任务
                        val["butCT"] = "over";
                    }
                } else {
                    if (val.type == 0) {
                        //不是队长-上传反馈
                        val["butCT"] = "over";
                    } else if (val.type == 2) {
                        //不是队长-开始任务
                        val["butCT"] = "over";
                    } else {
                        //不是队长-完成任务任务
                        val["butCT"] = "over";
                    }
                }
                console.log(val);
                // return
                uni.navigateTo({
                    url: "./map?data=" + JSON.stringify(val),
                });
            },
            getGrabOrders(val = 0) {
                //获取全部的数据
                let that = this,
                    d = {
                        serid: uni.getStorageSync("ids"),
                        type: val + "",
                    };
      if (val.iscation == 1) {
        if (val.type == 0) {
          //是队长-上传反馈
          val["butCT"] = "beginUp";
        } else if (val.type == 2) {
          //是队长-开始任务
          val["butCT"] = "begin";
        } else {
          //是队长-完成任务任务
          val["butCT"] = "over";
        }
      } else {
        if (val.type == 0) {
          //不是队长-上传反馈
          val["butCT"] = "over";
        } else if (val.type == 2) {
          //不是队长-开始任务
          val["butCT"] = "over";
        } else {
          //不是队长-完成任务任务
          val["butCT"] = "over";
        }
      }
      console.log(val);
      // return
      uni.navigateTo({
        url: "./map?data=" + JSON.stringify(val),
      });
    },
    getGrabOrders(val = 0) {
      //获取全部的数据
      let that = this,
        d = {
          serid: uni.getStorageSync("ids"),
          type: val + "",
        };
                uni.request({
                    url: this.$store.state.piAPI + "taskqd/selectLi",
                    method: "POST",
                    data: d,
                    header: {
                        "content-type": "application/x-www-form-urlencoded",
                    },
                    success(res) {
                        const data = res.data.data;
                        // console.log(data);
                        if (val == 1) {
                            that.rightdata = data;
                        } else {
                            let no = [],
                                ok = [],
                                bigin = [],
                                no1 = [],
                                ok1 = [],
                                bigin1 = [];
                            for (var k in data) {
                                if (data[k].iscation == 1) {
                                    if (data[k].type == 0) {
                                        //是队长-上传反馈
                                        no1.push(data[k]);
                                    } else if (data[k].type == 2) {
                                        //是队长-开始任务
                                        bigin1.push(data[k]); //是队长-上传反馈
                                    } else {
                                        //是队长-完成任务任务
                                        ok1.push(data[k])
                                    }
                                } else {
                                    if (data[k].type == 0) {
                                        //不是队长-上传反馈
                                        no.push(data[k]);
                                    } else if (data[k].type == 2) {
                                        //不是队长-开始任务
                                        bigin.push(data[k]);
                                    } else {
                                        //不是队长-完成任务任务
                                        ok.push(data[k])
                                    }
                                }
                            }
      if (val == 1) {
        d.jurisdiction = this.$store.state.UserData.jurisdiction;
      }
                            that.leftdata = [...bigin1, ...bigin, ...no1, ...no, ...ok1, ...ok];
                        }
                    },
                });
            },
            getOrders(b) {
                let val = b.val,
                    item = b.item;
                // console.log(val, item)
                let that = this;
                if (val != 0) {
                    //接单
                    this.appdetitle = "是否参与任务:" + item.rname;
                    this.showPopup = true;
                    this.popupData = item;
                    // return;
                } else {
                    //反馈
                    //
                    uni.navigateTo({
                        url: "./feedback?data=" + JSON.stringify(item),
                        // url: "./feedback"
                    });
                }
            },
            confirms() {
                let that = this;
                this.popupData["serid"] = uni.getStorageSync("ids") + ",";
                this.popupData["captain"] = uni.getStorageSync("name");
                // console.log(item)
                // return;
                uni.request({
                    url: this.$store.state.piAPI + "taskqd/Graborder",
                    method: "POST",
                    // data: {
                    //     securityId: this.$store.state.puserID,
                    //     status: tab
                    // },
                    header: {
                        "content-type": "application/json",
                    },
                    data: this.popupData,
                    success(res) {
                        const data = res.data.msg;
                        // console.log(data);
                        if (data == "抢单成功") {
                            uni.showToast({
                                title: data,
                                duration: 2000,
                            });
                        }
                        // that.listData = data;
                        // that.getGrabOrders(this.);
                        that.$store.commit("changegotuGrabOrders");
                    },
                });
            },
        },
    };
      uni.request({
        url: this.$store.state.piAPI + "taskqd/selectLi",
        method: "POST",
        data: d,
        header: {
          "content-type": "application/x-www-form-urlencoded",
        },
        success(res) {
          const data = res.data.data;
          // console.log(data);
          if (val == 1) {
            that.rightdata = data;
          } else {
            let no = [],
              ok = [],
              bigin = [],
              no1 = [],
              ok1 = [],
              bigin1 = [];
            for (var k in data) {
              if (data[k].iscation == 1) {
                if (data[k].type == 0) {
                  //是队长-上传反馈
                  no1.push(data[k]);
                } else if (data[k].type == 2) {
                  //是队长-开始任务
                  bigin1.push(data[k]); //是队长-上传反馈
                } else {
                  //是队长-完成任务任务
                  ok1.push(data[k]);
                }
              } else {
                if (data[k].type == 0) {
                  //不是队长-上传反馈
                  no.push(data[k]);
                } else if (data[k].type == 2) {
                  //不是队长-开始任务
                  bigin.push(data[k]);
                } else {
                  //不是队长-完成任务任务
                  ok.push(data[k]);
                }
              }
            }
            that.leftdata = [...bigin1, ...bigin, ...no1, ...no, ...ok1, ...ok];
          }
        },
      });
    },
    getOrders(b) {
      let val = b.val,
        item = b.item;
      // console.log(val, item)
      let that = this;
      if (val != 0) {
        //接单
        this.appdetitle = "是否参与任务:" + item.rname;
        this.showPopup = true;
        this.popupData = item;
        // return;
      } else {
        //反馈
        //
        uni.navigateTo({
          url: "./feedback?data=" + JSON.stringify(item),
          // url: "./feedback"
        });
      }
    },
    confirms() {
      let that = this;
      this.popupData["serid"] = uni.getStorageSync("ids") + ",";
      this.popupData["captain"] = uni.getStorageSync("name");
      // console.log(item)
      // return;
      uni.request({
        url: this.$store.state.piAPI + "taskqd/Graborder",
        method: "POST",
        // data: {
        //     securityId: this.$store.state.puserID,
        //     status: tab
        // },
        header: {
          "content-type": "application/json",
        },
        data: this.popupData,
        success(res) {
          const data = res.data.msg;
          // console.log(data);
          if (data == "抢单成功") {
            uni.showToast({
              title: data,
              duration: 2000,
            });
          }
          // that.listData = data;
          // that.getGrabOrders(this.);
          that.$store.commit("changegotuGrabOrders");
        },
      });
    },
  },
};
</script>
<style scoped lang="scss">
    page,
    .grabOrders {
        height: 100% !important;
        width: 100% !important;
    }
page,
.grabOrders {
  height: 100% !important;
  width: 100% !important;
}
    page {
        overflow: hidden !important;
    }
page {
  overflow: hidden !important;
}
    // .uni-scroll-view{
    //     height: 100% !important;
    //     border: 1px solid red
    // }
// .uni-scroll-view{
//     height: 100% !important;
//     border: 1px solid red
// }
</style>
pages/home/home.vue
@@ -42,6 +42,7 @@
                <u-grid-item bg-color="transparent" v-for="(item, index) in serviceButton" :key="index">
                    <navigator hover-class="none" class="service-item" @click="goBusinessPage(item.url,index)">
                        <image :src="item.img" mode="widthFix" class="img"></image>
                        <u-badge v-if="item.name == '我参与'" count="1" :offset="[20, 20]"></u-badge>
                        <view class="name">{{ item.name }}</view>
                    </navigator>
                </u-grid-item>
pages/registerUser/registerUser.vue
@@ -6,16 +6,12 @@
                <u-input v-model="form[item.froms]" :placeholder="item.placeholder" />
            </u-form-item>
            <u-form-item label="角色" prop="role" left-icon="account-fill" label-width="200" :required="true">
                <u-radio-group v-model="form.role" @change="radioGroupChange">
                    <u-radio v-for="(item, index) in role" :key="index" :name="item.name" :disabled="item.disabled">
                        {{ item.name }}
                    </u-radio>
                </u-radio-group>
                <u-input v-model="form.role" type="select" placeholder="请选择角色" :border="true" @click="depl" />
                <u-select v-model="show" mode="mutil-column-auto" :list="roleList" @confirm="radioGroupChange"></u-select>
            </u-form-item>
            <u-form-item label="组织机构" prop="obj" left-icon="account-fill" label-width="200" :required="true"
            <u-form-item label="工作单位" prop="obj" left-icon="account-fill" label-width="200" :required="true"
                v-if="xqShow">
                <u-input v-model="form.obj" type="select" placeholder="请选择组织机构" :border="true" @click="depl" />
                <u-select v-model="show" mode="mutil-column-auto" :list="listbm" @confirm="confirm"></u-select>
                <u-input v-model="form.obj" placeholder="请输入工作单位" />
            </u-form-item>
            <u-form-item label="辖区" prop="xq" left-icon="account-fill" label-width="200" :required="true">
                <u-input v-model="form.xq" type="select" placeholder="请选择辖区" :border="true" @click="deplxq" />
@@ -52,14 +48,14 @@
                        img: 'man-add-fill',
                        froms: 'user',
                        requireds: true,
                        placeholder: '请输入帐号'
                        placeholder: '请输入身份证号'
                    },
                    {
                        title: '密码',
                        img: 'lock-fill',
                        froms: 'pass',
                        requireds: true,
                        placeholder: '请输入密码'
                        placeholder: '请输入6~16位密码'
                    },
                    {
                        title: '确认密码',
@@ -106,30 +102,6 @@
                        disabled: false
                    },
                ],
                role: [{
                        name: '民警',
                        disabled: false
                    },
                    {
                        name: '群众',
                        disabled: false
                    },
                    {
                        name: '群防队伍',
                        disabled: false
                    },
                    // {
                    //     name: '保安',
                    //     disabled: false
                    // },
                ],
                objList: [{
                        text: '赣州'
                    },
                    {
                        text: '南昌'
                    }
                ],
                form: {
                    user: '',
                    pass: '',
@@ -147,18 +119,27 @@
                rules: {
                    user: [{
                        required: true,
                        message: '请输入账号',
                        message: '请输入身份证号',
                        // 可以单个或者同时写两个触发验证方式 
                        trigger: ['change', 'blur'],
                    }, {
                        pattern: /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/,
                        message: '证件号码格式有误!',
                        trigger: 'blur'
                    }],
                    pass: [{
                        required: true,
                        message: '请输入密码',
                        message: '请输入6~16位密码',
                        // 可以单个或者同时写两个触发验证方式 
                        trigger: ['change', 'blur'],
                    }, {
                        min: 6,
                        message: '密码不能少于6个字',
                        message: '密码不能少于6位',
                        trigger: ['change', 'blur']
                    }, {
                        min: 16,
                        message: '密码不能超出16位',
                        trigger: ['change', 'blur']
                    }],
                    passTwo: [{
@@ -187,7 +168,7 @@
                    }],
                    obj: [{
                        required: true,
                        message: '请选择组织机构',
                        message: '请输入工作单位',
                        // 可以单个或者同时写两个触发验证方式 
                        trigger: ['change', 'blur'],
                    }],
@@ -240,7 +221,17 @@
                faceState: -2,
                facebc: '#fff',
                faceco: '#000',
                faceMsg: ''
                faceMsg: '',
                roleList: [
                    {label: '民警', value: 1417092295132561409},
                    {label: '治保会队伍', value: 1424615693403414529},
                    {label: '内保干部队伍', value: 1424615773594312705},
                    {label: '治安巡防队伍', value: 1424615835435130881},
                    {label: '信息员队伍', value: 1424615909959524354},
                    {label: '保安员队伍', value: 1424615972718895106},
                    {label: '警务辅助队伍', value: 1424616047083905026},
                    {label: '平安志愿者', value: 1494565079268491266}
                ]
            };
        },
        methods: {
@@ -258,40 +249,44 @@
            },
            depl() {
                var that = this;
                uni.request({
                    url: that.$store.state.piAPI + "/blade-system/dept/trees",
                    method: 'get',
                    success: (res) => {
                        var routerArr = res.data.data;
                        var arr = that.formatRoutes(routerArr);
                        var list = [];
                        if (that.deptXb != "") {
                            list.push(arr[that.deptXb]);
                            for (var i = 0; i < list.length; i++) {
                                list[i].children.unshift({
                                    label: '--请选择--',
                                    value: 0,
                                    children: []
                                })
                                for (var j = 0; j < list[i].children.length; j++) {
                                    list[i].children[j].children.unshift({
                                        label: '--请选择--',
                                        value: 0,
                                    })
                                }
                            }
                            that.listbm = list;
                            that.show = true;
                        } else {
                            uni.showToast({
                                title: '请选择角色',
                                icon: "none",
                                duration: 1000
                            });
                        }
                    }
                })
                that.show = true;
            },
            // depl() {
            //     var that = this;
            //     uni.request({
            //         url: that.$store.state.piAPI + "/blade-system/dept/trees",
            //         method: 'get',
            //         success: (res) => {
            //             var routerArr = res.data.data;
            //             var arr = that.formatRoutes(routerArr);
            //             var list = [];
            //             if (that.deptXb != "") {
            //                 list.push(arr[that.deptXb]);
            //                 for (var i = 0; i < list.length; i++) {
            //                     list[i].children.unshift({
            //                         label: '--请选择--',
            //                         value: 0,
            //                         children: []
            //                     })
            //                     for (var j = 0; j < list[i].children.length; j++) {
            //                         list[i].children[j].children.unshift({
            //                             label: '--请选择--',
            //                             value: 0,
            //                         })
            //                     }
            //                 }
            //                 that.listbm = list;
            //                 that.show = true;
            //             } else {
            //                 uni.showToast({
            //                     title: '请选择角色',
            //                     icon: "none",
            //                     duration: 1000
            //                 });
            //             }
            //         }
            //     })
            // },
            deplxq() {
                var that = this;
                uni.request({
@@ -319,19 +314,6 @@
                        that.showxq = true;
                    }
                })
            },
            confirm(e) {
                var arr = "";
                var data = [];
                for (var i = 0; i < e.length; i++) {
                    if (e[i].value != "0") {
                        arr += e[i].value + ",";
                        data.push(e[i]);
                    }
                }
                var obj = arr.substr(0, arr.length - 1);
                this.form.obj = data[data.length - 1].label;
                this.form.objId = obj;
            },
            confirmxq(e) {
                var arr = "";
@@ -392,25 +374,13 @@
            dataChange(data) {
                console.log(data);
            },
            objCallback(index) {
                this.form.obj = this.objList[index].text;
            },
            // 选中任一radio时,由radio-group触发
            radioGroupChange(e) {
                this.xqShow = true;
                if (e == "群众") {
                    this.xqShow = false;
                    this.form.jsid = '1416225849858883585';
                    this.form.objId = '1424616967934959617,1424617046523633666';
                } else if (e == "民警") {
                    this.form.jsid = '1417092295132561409';
                    this.deptXb = "0";
                } else if (e == "群防队伍") {
                    this.deptXb = "1";
                    this.form.jsid = '1372092102682521602';
                } else if (e == "保安") {
                    this.form.jsid = '';
                }
                this.form.role = e[0].label
                this.form.jsid = e[0].value
                this.show = false;
            }
        },
        onReady() {