Explorar o código

Merge branch 'Inspection' of http://git.dayaedu.com/molingzhide/dy-admin-manager into Inspection

mo %!s(int64=4) %!d(string=hai) anos
pai
achega
c02326b142

BIN=BIN
public/music-change-speed/SJE40W8.mp3


+ 55 - 0
public/music-change-speed/index.html

@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=0,viewport-fit=cover">
+  </head>
+  <style>
+    .item{
+      padding: 10px;
+      width: 100%;
+      box-sizing: content-box;
+    }
+  </style>
+<body>
+
+<div class="item" id="num">当前倍速: 1</div>
+<form class="item" id="form">
+  <input id="inp" step="0.01" type="number" placeholder="请输入倍速" value="1" />
+  <button type="submit">设置</button><br>
+</form>
+
+<input class="item" id="file" type="file" accept=".mp3"/>
+
+<audio class="item" id="myVideo" height="176" controls src="./SJE40W8.mp3">
+  Your browser does not support HTML5 video.
+</audio>
+
+<script>
+var vid = document.getElementById("myVideo")
+
+document.getElementById('form').addEventListener('submit', function (evt) {
+  evt.stopPropagation();
+  evt.preventDefault();
+  setPlaySpeed(document.getElementById("inp").value)
+}, false)
+
+document.getElementById('file').addEventListener('change', function(evt) {
+  var urlObject = window.URL || window.webkitURL || window
+  if (evt.target.files.length) {
+    var url = urlObject.createObjectURL(evt.target.files[0])
+    vid.src = url
+  }
+}, false)
+
+function getPlaySpeed() {
+  alert(vid.playbackRate);
+}
+
+function setPlaySpeed(num) {
+  document.getElementById("num").innerText = '当前倍速: ' + num
+  vid.playbackRate = num;
+}
+</script>
+
+</body>
+</html>

+ 1 - 0
src/components/remote-search/index.vue

@@ -1,6 +1,7 @@
 <template>
   <div>
     <el-select
+      v-bind="{...$attrs}"
       :value="value"
       filterable
       remote

+ 5 - 0
src/components/tab-router/index.vue

@@ -33,6 +33,11 @@ export default {
       panelsByName: {},
     };
   },
+  watch: {
+    active() {
+      this.$emit('change', this.active)
+    }
+  },
   methods: {
     getAllPanel() {
       const data = {};

+ 38 - 4
src/views/main/abnormal/index.vue

@@ -1,6 +1,6 @@
 <template>
-  <div>
-    <save-form inline :model="search" @submit="FetchList" @reset="FetchList">
+  <div class="container">
+    <save-form inline :model="search" @submit="FetchList" @reset="FetchList" saveKey="/main/main/abnormal">
       <el-form-item prop="organIds">
         <el-select
           multiple
@@ -32,7 +32,32 @@
       </el-badge>
     </div>
     <empty desc="暂无需要处理异常" v-if="!activeList.length"/>
-    <title-item
+    <el-button @click="$router.push({
+        path: item[0].url,
+        query: {
+          ...item[0].query,
+          tag: $route.query.tag,
+          filter_type: item[0].errorType,
+          [item[0].resultKey]: item[0].resultKey ? (item[0].result || []).join(',') : undefined
+        }
+      })"
+      style="width: 100%;color: #303133;margin-left: 0;"
+      v-else
+      v-for="(item, index) in activeList"
+      :key="index"
+      :disabled="!item[0].result.length && !item[0].always" type="text"
+    >
+      <title-item
+        :type="item[0].isError ? 'error' : 'warning'"
+        :data="item.map(title => ({name: title.desc, num: title.num}))"
+      >
+        <span
+          v-if="item[0].url && item[0].result || item[0].always"
+          style="color: #14928A;"
+        >立即处理<i class="el-icon-d-arrow-right"/></span>
+      </title-item>
+    </el-button>
+    <!-- <title-item
       v-else
       :type="item[0].isError ? 'error' : 'warning'"
       v-for="(item, index) in activeList"
@@ -52,7 +77,7 @@
           }
         })" :disabled="!item[0].result.length && !item[0].always"
       >立即处理<i class="el-icon-d-arrow-right"/></el-button>
-    </title-item>
+    </title-item> -->
   </div>
 </template>
 <script>
@@ -157,4 +182,13 @@ export default {
       cursor: pointer;
     }
   }
+  .container{
+    /deep/ .is-disabled {
+      .title{
+        >span{
+          color: #C0C4CC!important;
+        }
+      }
+    }
+  }
 </style>

+ 1 - 1
src/views/main/abnormal/title.vue

@@ -29,12 +29,12 @@ export default {
   line-height: 48px;
   background-color: rgba(0, 0, 0, .02);
   overflow: hidden;
-  margin-bottom: 20px;
   display: flex;
   justify-content: space-between;
   padding-right: 10px;
   font-weight: bold;
   transition: all .3s;
+  width: 100%;
   b{
     font-size: 18px;
   }

+ 9 - 1
src/views/main/api.js

@@ -85,7 +85,7 @@ export const inspectionGetInfo = data => request2({
 // 巡查任务列表
 export const inspectionQueryPage = data => request2({
   url: '/api-web/inspection/queryPage',
-  data: data,
+  params: data,
   method: 'get',
 })
 
@@ -95,3 +95,11 @@ export const inspectionUpdate = data => request2({
   data: data,
   method: 'post',
 })
+
+// 获取乐团主管
+
+export const getMusicGroupEduTeacher = data => request2({
+  url: '/api-web/inspection/getMusicGroupEduTeacher',
+  params: data,
+  method: 'get'
+})

+ 2 - 1
src/views/main/baseinfo/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="container">
-    <save-form inline :model="search" @submit="FetchDetail" @reset="reset">
+    <save-form inline :model="search" @submit="FetchDetail" @reset="reset" saveKey="/main/main/baseInfo">
       <el-form-item prop="year">
         <el-date-picker
           v-model="search.year"
@@ -20,6 +20,7 @@
           clearable
           filterable
           collapse-tags
+          placeholder="请选择分部"
           v-model="search.organIds"
         >
           <el-option v-for="(item,index) in selects.branchs"

+ 14 - 6
src/views/main/index.vue

@@ -4,21 +4,21 @@
       <div class="squrt"></div>控制台 <filter-search v-if="$route.query.tabrouter === 'teamSchedule'" searchKey="ids" @reload="reloadItem"/>
     </h2>
     <div class="m-core">
-      <tab-router>
+      <tab-router @change="changeKey">
         <el-tab-pane v-permission="'newIndex'" lazy label="基本信息" name="baseinfo">
-          <baseinfo/>
+          <baseinfo v-if="activeKey === 'baseinfo'"/>
         </el-tab-pane>
         <el-tab-pane v-permission="'getIndexErrData'" lazy label="异常处理" name="abnormal">
-          <abnormal/>
+          <abnormal v-if="activeKey === 'abnormal'"/>
         </el-tab-pane>
         <el-tab-pane v-permission="'getRemindMatterData'" label="事项提醒" name="reminders">
-          <reminders/>
+          <reminders v-if="activeKey === 'reminders'"/>
         </el-tab-pane>
         <el-tab-pane v-permission="'inspectionItemPlan/queryPage'" lazy label="【乐团主管】日程安排" name="teamSchedule">
-          <teamSchedule ref="teamSchedule" />
+          <teamSchedule v-if="activeKey === 'teamSchedule'" ref="teamSchedule" />
         </el-tab-pane>
         <el-tab-pane v-permission="'inspection/queryPage'" lazy label="【分部经理】日程安排" name="ScheduleBranch">
-          <ScheduleBranch/>
+          <ScheduleBranch v-if="activeKey === 'ScheduleBranch'"/>
         </el-tab-pane>
       </tab-router>
     </div>
@@ -39,6 +39,11 @@ export default {
     ScheduleBranch,
     reminders,
   },
+  data() {
+    return {
+      activeKey: ''
+    }
+  },
   watch: {
     '$route.query'(newValue, oldValue) {
       if (newValue.tabrouter !== oldValue.tabrouter) {
@@ -47,6 +52,9 @@ export default {
     }
   },
   methods: {
+    changeKey(val) {
+      this.activeKey = val
+    },
     __init () {
       getIndex().then(res => {
         if (res.code == 200) {

+ 29 - 12
src/views/main/reminders/index.vue

@@ -1,6 +1,6 @@
 <template>
-  <div>
-    <save-form inline :model="search" @submit="FetchList" @reset="FetchList">
+  <div class="container">
+    <save-form inline :model="search" @submit="FetchList" @reset="FetchList" saveKey="/main/main/reminders">
       <el-form-item prop="organIds">
         <el-select
           multiple
@@ -19,20 +19,26 @@
       <el-button native-type="reset" type="danger">重置</el-button>
     </save-form>
     <empty desc="暂无需要处理异常" v-if="!list.length"/>
-    <title-item
-      v-else
-      type="warning"
-      v-for="(item, index) in list"
-      :key="index"
-      :data="[{name: item.desc, num: item.num}]"
-    >
-      <el-button @click="$router.push({
+    <el-button @click="$router.push({
         path: '/business/teamDetail',
         query: {
+          filter_type: item.errorType,
           search: (item.result || []).join(',')
         }
-      })" :disabled="item.result ?  !item.result.length : !item.result" type="text">立即处理<i class="el-icon-d-arrow-right"/></el-button>
-    </title-item>
+      })"
+      style="width: 100%;color: #303133;"
+      v-else
+      v-for="(item, index) in list"
+      :key="index"
+      :disabled="item.result ?  !item.result.length : !item.result" type="text"
+    >
+      <title-item
+        type="warning"
+        :data="[{name: item.desc, num: item.num}]"
+      >
+        <span style="color: #14928A;">立即处理<i class="el-icon-d-arrow-right"/></span>
+      </title-item>
+    </el-button>
   </div>
 </template>
 <script>
@@ -63,3 +69,14 @@ export default {
   }
 }
 </script>
+<style lang="less" scoped>
+  .container{
+    /deep/ .is-disabled {
+      .title{
+        >span{
+          color: #C0C4CC!important;
+        }
+      }
+    }
+  }
+</style>

+ 8 - 19
src/views/main/schedule-branch/index.vue

@@ -1,13 +1,11 @@
 <template>
   <div>
-    <save-form inline :model="search" @submit="submit" @reset="reset">
+    <save-form inline :model="search" @submit="submit" @reset="reset" saveKey="/main/main/schedule-branch">
       <el-form-item prop="organIds">
         <el-select
-          multiple
           clearable
           filterable
-          collapse-tags
-          v-model="search.organIds"
+          v-model="search.organId"
           placeholder="请选择分部"
         >
           <el-option v-for="(item,index) in selects.branchs"
@@ -16,19 +14,8 @@
             :value="item.id"></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item prop="organIds">
-        <el-select
-          v-model.trim="search.teacherIdList"
-          clearable
-          filterable
-          placeholder="请选择老师"
-        >
-          <el-option v-for="(item, index) in selects.teachers"
-            :key="index"
-            :value="item.id"
-            :label="item.realName"
-          ></el-option>
-        </el-select>
+      <el-form-item prop="userId">
+        <remote-search :commit='"setEducations"'  v-model='search.userId' />
       </el-form-item>
       <el-form-item prop="month">
         <el-date-picker
@@ -81,6 +68,7 @@
     </el-table>
     <pagination :total.sync="rules.total"
       :page.sync="rules.page"
+      save-key="/main/main/schedule-branch"
       :limit.sync="rules.limit"
       :page-sizes="rules.page_size"
       @pagination="FetchList"
@@ -127,9 +115,9 @@ import pagination from "@/components/Pagination/index";
 import { inspectionQueryPage, inspectionDelete } from '@/views/main/api'
 import create from './modals/create'
 import view from './modals/view'
-import View from './modals/view.vue';
 const initSearch = {
-  organIds: [],
+  organId: null,
+  userId: null,
   month: '',
 }
 export default {
@@ -193,6 +181,7 @@ export default {
       try {
         const res = await inspectionQueryPage({
           ...this.search,
+          month: this.search.month ? this.$helpers.dayjs(this.search.month).format('YYYY-MM') : undefined,
           page: this.rules.page,
           rows: this.rules.limit,
         })

+ 7 - 6
src/views/main/schedule-branch/modals/create.vue

@@ -69,6 +69,7 @@
                 clearable
                 filterable
                 v-model="matterItem.item"
+                :disabled="!isCreate && !!matterItem.item"
                 placeholder="请选择任务事项"
               >
                 <el-option v-for="(item,index) in matterTypesOptions"
@@ -132,11 +133,10 @@
   </div>
 </template>
 <script>
-import { queryEmployByOrganId } from '@/api/systemManage'
 import { matterTypes } from '@/views/main/constant'
 import { objectToOptions } from '@/utils'
 import { createRandom } from '@/helpers/uuidv4'
-import { inspectionAdd, inspectionGetInfo, inspectionUpdate } from '@/views/main/api'
+import { inspectionAdd, inspectionGetInfo, inspectionUpdate, getMusicGroupEduTeacher } from '@/views/main/api'
 const emptyMatter = {
   item: '',
   times: ''
@@ -168,13 +168,14 @@ export default {
     async 'form.organId'() {
       if (this.form.organId) {
         try {
-          const res = await queryEmployByOrganId({
+          const res = await getMusicGroupEduTeacher({
             organId: this.form.organId,
             rows: 999
           })
-          this.technicians = res.data.rows
-          console.log(this.form.group.map(item => ({...item, userId: ''})))
-          this.$set(this.form, 'group', this.form.group.map(item => ({...item, userId: ''})))
+          this.technicians = res.data
+          if (this.isCreate) {
+            this.$set(this.form, 'group', this.form.group.map(item => ({...item, userId: ''})))
+          }
         } catch (error) {}
       }
     }

+ 1 - 1
src/views/main/teamSchedule/index.vue

@@ -6,7 +6,7 @@
       ref="searchForm"
       @submit="search"
       @reset="onReSet"
-      save-key="teamSchedule"
+       saveKey="/main/main/teamSchedule"
     >
       <el-form-item prop="organId">
         <el-select

+ 1 - 1
src/views/operationalEarly/operationalList.vue

@@ -207,7 +207,7 @@ export default {
     //   }
     // })
     const { lowSalary } = this.$route.query
-    let string = String(lowSalary)
+    let string = lowSalary == 1 || lowSalary == 0 ? String(lowSalary) : ''
     if (string) {
       this.$set(this.searchForm, 'lowSalary', string)
     }