Преглед изворни кода

Merge branch 'dev' of http://10.87.10.227:4000/jzyd_yyds/soc_app into dev

coys пре 2 година
родитељ
комит
eefda096c0

+ 8 - 2
src/assets/css/index.scss

@@ -3,12 +3,18 @@
 
 html,
 body .app {
+  height: 100vh;
   color: #333333;
   font-family: Arial, Helvetica, 'STHeiti STXihei', 'Microsoft YaHei', Tohoma, sans-serif;
-  background-color: $background-color;
+  background-color: rgb(245, 245, 249);
+
 }
 
 .app-container {
   padding-bottom: 100px;
-  -background-color: rgb(245, 245, 249);
+  background-color: rgb(245, 245, 249);
+}
+
+.layout-content{
+
 }

+ 1 - 1
src/components/DatePicker/index.vue

@@ -82,7 +82,7 @@ export default {
       console.log(day,'day')
       let dayLine = day.classes[7].substring(5);
       this.num = dayLine -1;
-      this.$emit('day',day.id)
+      this.$emit('change',day.id)
     },
   }
 }

+ 91 - 0
src/components/dateCell/index.vue

@@ -0,0 +1,91 @@
+<template>
+  <div class="date-cell">
+    <van-cell :title="title" is-link :label="selected" @click="clickItem"/>
+    <van-popup v-model="showPicker" round  position="bottom" :close-on-popstate="true" get-container="#app">
+      <van-datetime-picker
+        v-bind="$attrs"
+        show-toolbar
+        :type="dateType"
+        :columns="columns"
+        @cancel="cancelPicker"
+        @confirm="pickerConfirm"
+      />
+    </van-popup>
+  </div>
+</template>
+
+<script>
+
+import dayjs from "dayjs";
+
+export default {
+  props:{
+    //默认值
+    value:{
+      type: String,
+      default: null,
+    },
+    //标题
+    title:{
+      type: String,
+      default: null,
+    },
+    //时间类型,见van-datetime-picker
+    dateType:{
+      type: String,
+      default: 'time',
+    },
+    //时间格式 个别模式下不启用
+    format:{
+      type: String,
+      default: 'YYYY-MM-DD',
+    }
+  },
+  data(){
+    return{
+      showPicker:false,
+      selected:null,
+      columns: [],
+    }
+  },
+  watch:{
+    value:{
+      handler (val) {
+        console.log(val,'val111')
+        if(!val){
+          this.selected = null
+        }else{
+          this.selected = val;
+        }
+      },
+      immediate: true
+    }
+  },
+  methods:{
+    cancelPicker(){
+      this.showPicker = false;
+    },
+    pickerConfirm(val){
+      console.log(val,'val')
+      if(this.dateType === 'time' || this.dateType === 'year-month' || this.dateType === 'month-day') {
+        this.selected = val;
+      }else {
+        this.selected = dayjs(val).format(this.format) ;
+      }
+      this.showPicker = false;
+      this.$emit('change',this.selected)
+    },
+    clickItem(){
+      this.showPicker = true;
+    },
+  },
+  model:{
+    prop: 'value',
+    event: 'change',
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 9 - 3
src/components/layouts/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div :class="{'app-container': !$route.meta.hideTabBar} ">
+  <div ref="layouts" :class="{'app-container': !$route.meta.hideTabBar} ">
     <div class="layout-content">
       <keep-alive v-if="$route.meta.keepAlive">
         <router-view></router-view>
@@ -7,7 +7,9 @@
       <router-view v-else></router-view>
     </div>
     <div v-if="!$route.meta.hideTabBar" class="layout-footer">
-      <TabBar :data="tabbars" @change="handleChange" />
+      <van-sticky :container="container">
+        <TabBar :data="tabTars" @change="handleChange" />
+      </van-sticky>
     </div>
   </div>
 </template>
@@ -18,7 +20,8 @@ import {userInfo} from "@/api/public";
 export default {
   data() {
     return {
-      tabbars: [
+      container: null,
+      tabTars: [
         {
           title: '工作台',
           to: {
@@ -49,6 +52,9 @@ export default {
   created() {
     this.getUserInfo();
   },
+  mounted() {
+    this.container = this.$refs.layouts;
+  },
   methods: {
     getUserInfo(){
       userInfo().then(info=>{

+ 91 - 0
src/components/selectCell/index.vue

@@ -0,0 +1,91 @@
+<template>
+  <div class="date-cell">
+    <van-cell  :title="title" :label="label" is-link @click="clickItem"/>
+    <van-popup v-model="showPicker" round lazy-render position="bottom" :close-on-popstate="true" get-container="#app">
+      <van-picker
+        v-bind="$attrs"
+        show-toolbar
+        value-key="dictLabel"
+        v-model="selected"
+        :columns="columns"
+        @confirm="pickerConfirm"
+        @cancel="cancelPicker"
+      />
+    </van-popup>
+  </div>
+</template>
+
+<script>
+import {getDict} from "@/api/toConsult";
+export default {
+  props:{
+    value:{
+      type: Object,
+      default: null,
+    },
+    dict:{
+      type: String,
+      default: null,
+    },
+    title:{
+      type: String,
+      default: null,
+    },
+  },
+  data(){
+    return{
+      showPicker:false,
+      selected:null,
+      label:'',
+      columns: [],
+    }
+  },
+  created() {
+    this.queryDict();
+  },
+  watch:{
+    value:{
+      handler (val) {
+        if(!val){
+          this.selected = null;
+          this.label = null;
+        }else{
+          this.selected = val;
+          this.label = val.dictLabel;
+        }
+      },
+      immediate: true
+    }
+  },
+  methods:{
+    queryDict(){
+      getDict( this.dict ).then(res => {
+        let { code, data, msg } = res
+        if (code == 200) {
+         this.columns = data;
+        }
+      })
+    },
+    cancelPicker(){
+      this.showPicker = false;
+    },
+    pickerConfirm(val){
+      this.selected = val;
+      this.label = val.dictLabel;
+      this.showPicker = false;
+      this.$emit('change',this.selected)
+    },
+    clickItem(){
+      this.showPicker = true;
+    },
+  },
+  model:{
+    prop: 'value',
+    event: 'change',
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 6 - 6
src/utils/globalMixins.js

@@ -9,7 +9,7 @@ export default {
   },
   created() {
     /** 组件中设置dictType,即可获取相应的value*/
-    if(this.dicts.length > 0){
+    if(this.dicts && this.dicts.length > 0){
       this.dicts.forEach(item=>{
         this.getDictHandler(item,(res)=>{
           this[item] = res
@@ -26,11 +26,11 @@ export default {
             callBack(data)
         }
       })
-    }
-    //组件使用方法参考下边注释
-    // this.getDictHandler('core_check_type',res=>{
-    //     console.log(res);
-    // })
+    },
+    //根据字典类型获取字典值,返回字典label
+    getState(s,dict){
+      return  this[dict].find(v=> s == v.dictValue).dictLabel;
+    },
   }
 
 }

+ 0 - 46
src/views/home/isMy.vue

@@ -25,52 +25,6 @@ export default {
 <style lang="scss">
 .about-container {
   /* 你的命名空间 */
-  background: #fff;
-  height: 100vh;
-  box-sizing: border-box;
-  .warpper {
-    padding: 50px 12px 12px 12px;
-    .list {
-      display: flex;
-      flex-direction: column;
-      align-items: center;
-      color: #666;
-      font-size: 14px;
-      .demo-home__title {
-        margin: 0 0 6px;
-        font-size: 32px;
-        .demo-home__title img,
-        .demo-home__title span {
-          display: inline-block;
-          vertical-align: middle;
-        }
-      }
-      .item {
-        font-size: 14px;
-        line-height: 34px;
-        a {
-          text-decoration: underline;
-        }
-        .van-button {
-          /* vant-ui 元素*/
-          background: #ff5500;
-        }
-      }
 
-      .logo {
-        width: 120px;
-        height: 120px;
-        background: url($cdn + '/weapp/logo.png') center / contain no-repeat;
-      }
-      .wechat {
-        width: 200px;
-        height: 200px;
-        img {
-          width: 100%;
-          height: auto;
-        }
-      }
-    }
-  }
 }
 </style>

+ 1 - 1
src/views/home/menu.vue

@@ -145,7 +145,7 @@ export default {
 }
 </script>
 
-<style lang="scss" >
+<style lang="scss" scoped >
   .menu-container{
     background-color: rgba(237, 252, 255, 1)
   }

+ 1 - 29
src/views/home/works.vue

@@ -15,34 +15,6 @@ export default {
 
 <style lang="scss" scoped>
 .index-container {
-  .warpper {
-    padding: 24px;
-    background: #fff;
-    .demo-home__title {
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      margin: 0 0 6px;
-      font-size: 56px;
-      .demo-home__title img,
-      .demo-home__title span {
-        display: inline-block;
-        vertical-align: middle;
-      }
-      img {
-        width: 64px;
-      }
-      span {
-        margin-left: 16px;
-        font-weight: 500;
-      }
-    }
-    .demo-home__desc {
-      text-align: center;
-      margin: 0 0 20px;
-      color: rgba(69, 90, 100, 0.6);
-      font-size: 28px;
-    }
-  }
+
 }
 </style>

+ 1 - 1
src/views/menu/LZRegister/api.js

@@ -1,7 +1,7 @@
 import request from "@/utils/request";
 export function dataList(data) {
   return request({
-    url: "/core/api/resumption/taskList",
+    url: "/core/api/resumption/newTaskList",
     method: "post",
     data,
   });

+ 42 - 19
src/views/menu/LZRegister/edit.vue

@@ -28,21 +28,21 @@
         <van-panel title="巡检区域">
           <div style="padding: 10px;">
             <van-row >
-              <van-col span="12">
-                <div class="child check-item" >
+              <van-col span="12" >
+                <div class="check-area" @click="clickArea()">
                   营业网点-设备间
                   <van-icon name="success" color="primary"/>
                   <van-icon name="fail" color="red"/>
                 </div>
               </van-col>
               <van-col span="12">
-                <div class="check-item">营业网点-钞车间</div>
+                <div class="check-area">营业网点-钞车间</div>
               </van-col>
               <van-col span="12">
-                <div class="check-item">营业网点-消防设施</div>
+                <div class="check-area">营业网点-消防设施</div>
               </van-col>
               <van-col span="12">
-                <div class="check-item">营业网点-客户区</div>
+                <div class="check-area">营业网点-客户区</div>
               </van-col>
             </van-row>
             <van-cell title="检查内容:" value="内容" />
@@ -58,22 +58,25 @@
       <div class="card">
         <van-collapse v-model="activeNames">
           <van-collapse-item title="布撤防检查" name="1">
-            <van-cell title="入侵报警撤防时间:">
+            <van-cell :border="false" title="入侵报警撤防时间:">
               <template #right-icon>
                 <van-switch
                   v-model="checked"
-                  active-color="#4fc08d"
-                  inactive-color="orange"
+                  inactive-color="#4fc08d"
+                  active-color="orange"
                   size="20" />
               </template>
             </van-cell>
-            <van-cell title="现金区" is-link/>
-            <van-cell title="客户区" is-link/>
-            <van-cell title="整改期限" is-link/>
+            <van-cell-group v-show="checked">
+              <date-cell title="现金区"  v-model="date2"/>
+              <date-cell title="客户区" date-type="date" v-model="date1"/>
+              <date-cell title="整改期限" dateType="date" />
+              <select-cell title="测试" v-model="sss" :dict="'sys_business_type'" is-link/>
+            </van-cell-group>
           </van-collapse-item>
           <van-collapse-item title="技防设备检查" name="2">
             <van-cell title="报警及通信设备状态是否良好:">
-              <template #right-icon>`
+              <template #right-icon>
                 <van-switch
                   v-model="checked"
                   active-color="#4fc08d"
@@ -96,7 +99,7 @@
           </van-collapse-item>
           <van-collapse-item title="技防设备检查" name="2">
             <van-cell title="报警及通信设备状态是否良好:">
-              <template #right-icon>`
+              <template #right-icon>
                 <van-switch
                   v-model="checked"
                   active-color="#4fc08d"
@@ -123,33 +126,49 @@
       <p class="warning-msg">需要完成所有区域的履职内容才能提交内容</p>
       <div class=""></div>
     </div>
+
   </div>
 </template>
 
 <script>
+import SelectCell from '@/components/selectCell';
+import DateCell from '@/components/dateCell';
 import NavBar from '@/components/NavBar';
 export default {
-  components:{NavBar},
+  components:{SelectCell,NavBar,DateCell},
   data(){
     return {
+      date2:'01:00',
+      date1:'07:00',
+      sss:{
+        dictLabel: "歇业",
+        dictValue: "0",
+      },
       checked:false,
       info:'',
       activeNames: ['1'],
       fileList:[],
       dicts:['sys_business_type','asdagg']
     }
+  },
+  methods:{
+    clickArea(){
+      document.getElementsByClassName('check-area')[0].classList.add('active')
+      console.log('eeeeeee')
+    },
+    openTime(){
+
+    },
   }
 }
 </script>
 
 <style lang="scss" scoped>
-
   .lz-edit{
-
+    height: 100%;
+    overflow: hidden;
   }
   .page-container{
-    height: calc(100% - 100px);
-    background-color: #f1f1f1;
     overflow: auto;
     padding: 20px;
   }
@@ -157,7 +176,7 @@ export default {
     margin-bottom: 20px;
     box-shadow: 0 10px 10px #eaeaea;
   }
-  .check-item{
+  .check-area{
     background-color: #f1f1f1;
     margin: 10px;
     padding:10px;
@@ -187,4 +206,8 @@ export default {
     height: 40px;
     line-height: 40px;
   }
+  .active{
+    color: #fff;
+    background-color: #1989fa;
+  }
 </style>

+ 105 - 65
src/views/menu/LZRegister/index.vue

@@ -1,91 +1,101 @@
 <template>
-  <div class="lvzhi" ref="container">
+  <div class="lvzhi" >
     <nav-bar></nav-bar>
-    <div class="lz-container"  >
-      <van-sticky :container="container" style="padding: 0 20px;">
-        <DatePicker></DatePicker>
+    <div class="lz-container" ref="container">
+      <van-sticky :container="container">
+        <DatePicker @change="changeDate"></DatePicker>
       </van-sticky>
       <div class="lz-list">
         <div class="list-item">
           <p>今日履职</p>
           <van-tabs >
             <van-tab title="待完成">
-                <template #title>待完成 {{1}} </template>
+                <template #title>待完成 {{dayList.unfinished.length}} </template>
               <van-cell-group>
-                <van-cell title="单元格" is-link to="lz-edit" value="内容" :value-class="`title-orange`"/>
-                <van-cell title="单元格" is-link to="index" value="内容" :value-class="`title-orange`"/>
-                <van-cell title="单元格" is-link to="index" value="内容" :value-class="`title-orange`"/>
+                <van-cell
+                  v-for="v in dayList.unfinished"
+                  :key="v.id"
+                  :title="v.planName"
+                  :label="formatTime(v.planStartTime,v.planEndTime)"
+                  is-link
+                  to="lz-edit"
+                  :value="getState(v.status,'resumption_status')"
+                  :value-class="`title-orange`"/>
               </van-cell-group>
             </van-tab>
             <van-tab title="未完成">
-              <template #title>未完成 {{1}} </template>
+              <template #title>未完成 {{dayList.proceed.length}} </template>
               <van-cell-group>
-                <van-cell title="单元格" value="内容" />
-                <van-cell title="单元格" value="内容" label="描述信息" :value-class="`title-red`" />
+                <van-cell
+                  v-for="v in dayList.proceed"
+                  :key="v.id"
+                  :title="v.planName"
+                  :label="formatTime(v.planStartTime,v.planEndTime)"
+                  is-link
+                  to="lz-edit"
+                  :value="getState(v.status,'resumption_status')"
+                  :value-class="`title-orange`"/>
               </van-cell-group>
             </van-tab>
             <van-tab title="已完成">
-              <template #title>已完成 {{1}} </template>
+              <template #title>已完成 {{dayList.finished.length}} </template>
               <van-cell-group>
-                <van-cell title="单元格" value="内容" />
-                <van-cell title="单元格" value="内容" label="描述信息" :value-class="`title-green`"/>
+                <van-cell
+                  v-for="v in dayList.finished"
+                  :key="v.id"
+                  :title="v.planName"
+                  :label="formatTime(v.planStartTime,v.planEndTime)"
+                  is-link
+                  to="lz-edit"
+                  :value="getState(v.status,'resumption_status')"
+                  :value-class="`title-orange`"/>
               </van-cell-group>
             </van-tab>
           </van-tabs>
         </div>
         <div class="list-item">
-          <p>今日履职</p>
-          <van-tabs >
-            <van-tab title="待完成">
-              <template #title>待完成 {{1}} </template>
-              <van-cell-group>
-                <van-cell title="单元格" is-link to="index" value="内容" :value-class="`title-orange`"/>
-                <van-cell title="单元格" is-link to="index" value="内容" :value-class="`title-orange`"/>
-                <van-cell title="单元格" is-link to="index" value="内容" :value-class="`title-orange`"/>
-                <van-cell title="单元格" is-link to="index" value="内容" :value-class="`title-orange`"/>
-                <van-cell title="单元格" is-link to="index" value="内容" :value-class="`title-orange`"/>
-              </van-cell-group>
-            </van-tab>
-            <van-tab title="未完成">
-              <template #title>未完成 {{1}} </template>
-              <van-cell-group>
-                <van-cell title="单元格" value="内容" />
-                <van-cell title="单元格" value="内容" label="描述信息" :value-class="`title-red`" />
-              </van-cell-group>
-            </van-tab>
-            <van-tab title="已完成">
-              <template #title>已完成 {{1}} </template>
-              <van-cell-group>
-                <van-cell title="单元格" value="内容" />
-                <van-cell title="单元格" value="内容" label="描述信息" :value-class="`title-green`"/>
-              </van-cell-group>
-            </van-tab>
-          </van-tabs>
-        </div>
-        <div class="list-item">
-          <p>今日履职</p>
+          <p>周期履职</p>
           <van-tabs >
             <van-tab title="待完成">
-              <template #title>待完成 {{1}} </template>
+              <template #title>待完成 {{otherList.finished.length}} </template>
               <van-cell-group>
-                <van-cell title="单元格" is-link to="index" value="内容" :value-class="`title-orange`"/>
-                <van-cell title="单元格" is-link to="index" value="内容" :value-class="`title-orange`"/>
-                <van-cell title="单元格" is-link to="index" value="内容" :value-class="`title-orange`"/>
-                <van-cell title="单元格" is-link to="index" value="内容" :value-class="`title-orange`"/>
+                <van-cell
+                  v-for="v in otherList.unfinished"
+                  :key="v.id"
+                  :title="v.planName"
+                  :label="formatTime(v.planStartTime,v.planEndTime)"
+                  is-link
+                  to="lz-edit"
+                  :value="getState(v.status,'resumption_status')"
+                  :value-class="`title-orange`"/>
               </van-cell-group>
             </van-tab>
             <van-tab title="未完成">
-              <template #title>未完成 {{1}} </template>
+              <template #title>未完成 {{otherList.finished.length}} </template>
               <van-cell-group>
-                <van-cell title="单元格" value="内容" />
-                <van-cell title="单元格" value="内容" label="描述信息" :value-class="`title-red`" />
+                <van-cell
+                  v-for="v in otherList.proceed"
+                  :key="v.id"
+                  :title="v.planName"
+                  :label="formatTime(v.planStartTime,v.planEndTime)"
+                  is-link
+                  to="lz-edit"
+                  :value="getState(v.status,'resumption_status')"
+                  :value-class="`title-orange`"/>
               </van-cell-group>
             </van-tab>
             <van-tab title="已完成">
-              <template #title>已完成 {{1}} </template>
+              <template #title>已完成 {{otherList.finished.length}} </template>
               <van-cell-group>
-                <van-cell title="单元格" value="内容" />
-                <van-cell title="单元格" value="内容" label="描述信息" :value-class="`title-green`"/>
+                <van-cell
+                  v-for="v in otherList.finished"
+                  :key="v.id"
+                  :title="v.planName"
+                  :label="formatTime(v.planStartTime,v.planEndTime)"
+                  is-link
+                  to="lz-edit"
+                  :value="getState(v.status,'resumption_status')"
+                  :value-class="`title-orange`"/>
               </van-cell-group>
             </van-tab>
           </van-tabs>
@@ -99,40 +109,72 @@
 import NavBar from '@/components/NavBar';
 import DatePicker from '@/components/DatePicker';
 import {mapGetters} from "vuex";
-import {dataList} from "./api"
+import {dataList} from "./api";
+import dayjs from "dayjs";
+
 export default {
   components:{NavBar,DatePicker},
   data(){
     return{
       date:new Date(),
       container: null,
-      typeCode:['day','mouth','year'],
+      dayList: {
+        unfinished:[],
+        proceed:[],
+        finished:[],
+      },
+      otherList:{
+        unfinished:[],
+        proceed:[],
+        finished:[],
+      },
+      dicts: ['resumption_status'],
     }
   },
   mounted() {
     this.container = this.$refs.container;
-    this.getDatalist();
+    this.initDatalist();
   },
   computed:{
     ...mapGetters(['orgName','orgId']),
   },
   methods:{
-    getDatalist(){
+    formatTime(start,end){
+      return `${dayjs(start).format('HH:mm')}-${dayjs(end).format('HH:mm')}`
+    },
+    initDatalist(){
       let data = {
-        dateTime: this.date,
+        dateTime: dayjs(new Date()).format('YYYY-MM-DD'),
         orgId: this.orgId,
         roleId:this.roleId,
-        typeCode:null,
       }
       dataList(data).then(res=>{
         console.log(res,'ressss')
       })
     },
+    getDatalist(){
+      let data = {
+       // dateTime: this.date,
+        orgid: 4358025846341633,
+        roleId:2,
+      }
+      dataList(data).then(res=>{
+        //今日
+        this.dayList.unfinished = res.data.day['1'];
+        this.dayList.proceed = res.data.day['3']
+        this.dayList.finished = res.data.day['2'];
+        //周期
+        this.otherList.unfinished = res.data.noDay['1'];
+        this.otherList.proceed = res.data.noDay['3']
+        this.otherList.finished = res.data.noDay['2'];
+      })
+    },
     queryMoth(){
 
     },
-    onDayClick(){
-
+    changeDate(val){
+      console.log(val,'val')
+      this.getDatalist();
     },
   }
 }
@@ -144,7 +186,6 @@ export default {
     overflow: hidden;
   }
   .lz-container{
-    height: calc(100vh - 90px);
     overflow: auto;
   }
   .top-date-box{
@@ -152,7 +193,6 @@ export default {
   }
   .lz-list{
     box-sizing: border-box;
-    background-color: #f1f1f1;
     overflow: auto;
   }
   .list-item{