Przeglądaj źródła

提交一下啊

1
mo 4 lat temu
rodzic
commit
f34cf0593e

+ 8 - 0
src/views/indexErrDataRecord/api.js

@@ -0,0 +1,8 @@
+import request2 from '@/utils/request2'
+
+
+export const getErrInspectionData = data => request2({
+  url: '/api-web/indexErrDataRecord/queryErrInspectionData',
+  params: data,
+  method: 'get',
+})

+ 457 - 0
src/views/indexErrDataRecord/components/patrol.vue

@@ -0,0 +1,457 @@
+ <!--  -->
+<template>
+  <div >
+    <!-- <h2> class="m-container"
+      <div class="squrt"></div>
+      乐团巡查
+      <filter-search
+        :keys="['searchType']"
+        :moreKeys="['organId', 'start', 'end']"
+        @reload="reloadSearch"
+      />
+    </h2> -->
+    <div class="m-core">
+      <save-form
+        :inline="true"
+        ref="searchForm"
+        @submit="search"
+        @reset="onReSet"
+        :model="searchForm"
+      >
+        <el-form-item prop="search">
+          <el-input
+            type="text"
+            placeholder="请输入乐团名称"
+            clearable
+            v-model="searchForm.search"
+          />
+        </el-form-item>
+        <el-form-item prop="organId">
+          <el-select
+            class="multiple"
+            v-model.trim="searchForm.organId"
+            filterable
+            clearable
+            @change="onBranchChange"
+            placeholder="请选择分部"
+          >
+            <el-option
+              v-for="(item, index) in selects.branchs"
+              :key="index"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item prop="cooperationOrganId">
+          <el-select
+            class="multiple"
+            :disabled='!searchForm.organId'
+            v-model.trim="searchForm.cooperationOrganId"
+            filterable
+            clearable
+            placeholder="请选择合作单位"
+          >
+            <el-option
+              v-for="(item, index) in cooperationList"
+              :key="index"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item prop="userId">
+          <el-select
+            class="multiple"
+            v-model.trim="searchForm.userId"
+            filterable
+            clearable
+            placeholder="请选择乐团主管"
+          >
+            <el-option
+              v-for="(item, index) in educationList"
+              :key="index"
+              :label="item.userName"
+              :value="item.userId"
+            >
+              <span style="float: left">{{ item.userName }}</span>
+              <span style="float: right; color: #8492a6; font-size: 13px">{{
+                item.userId
+              }}</span>
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item prop="createTimer">
+          <el-date-picker
+            v-model.trim="searchForm.createTimer"
+            type="daterange"
+            value-format="yyyy-MM-dd"
+            range-separator="至"
+            start-placeholder="巡查开始日期"
+            end-placeholder="巡查结束日期"
+            :picker-options="{ firstDayOfWeek: 1 }"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="danger" native-type="submit">搜索</el-button>
+          <el-button native-type="reset" type="primary">重置</el-button>
+        </el-form-item>
+      </save-form>
+      <div class="tableWrap">
+        <el-table
+          style="width: 100%"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+          :data="tableList"
+        >
+          <el-table-column
+            align="center"
+            prop="id"
+            width="120px"
+            label="巡查编号"
+          >
+          </el-table-column>
+          <el-table-column align="center" label="所属分部">
+            <template slot-scope="scope">
+              {{ scope.row.organName }}(<copy-text>{{
+                scope.row.organId
+              }}</copy-text
+              >)
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="cooperationName"
+            label="合作单位"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="musicGroupName"
+            label="巡查乐团"
+          >
+            <template slot-scope="scope">
+              {{ scope.row.musicGroupName }}(<copy-text>{{
+                scope.row.musicGroupId
+              }}</copy-text
+              >)
+            </template>
+          </el-table-column>
+          <el-table-column align="center" label="乐团主管">
+            <template slot-scope="scope">
+              {{ scope.row.realName }}(<copy-text>{{
+                scope.row.userId
+              }}</copy-text
+              >)
+            </template>
+          </el-table-column>
+          <el-table-column align="center" label="巡查项目异常">
+            <template slot-scope="scope">
+              {{ scope.row.conclusionStatus ? "异常" : "正常" }}
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="subject" label="巡查时间">
+            <template slot-scope="scope">
+              {{ dayjs(scope.row.planStart).format("YYYY-MM-DD HH:mm") }}~
+              {{ dayjs(scope.row.planEnd).format("HH:mm") }}
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="submitedTime"
+            label="提交时间"
+          ></el-table-column>
+          <el-table-column align="center" prop="status" label="提交状态">
+            <template slot-scope="scope">
+              {{ scope.row.status | statusFormat }}
+            </template>
+          </el-table-column>
+          <el-table-column align="center" label="处理方式">
+            <template slot-scope="scope">
+              <overflow-text
+                width="100%"
+                :text="scope.row.memo"
+              ></overflow-text>
+            </template>
+          </el-table-column>
+                <el-table-column align="center" label="产生时间">
+            <template slot-scope="scope">
+              <overflow-text
+                width="100%"
+                :text="scope.row.memo"
+              ></overflow-text>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" width="250px" label="操作">
+            <template slot-scope="scope">
+              <auth
+                auths="inspectionItemPlanConclusion/getPlanConclusion"
+                v-if="scope.row.status != 0"
+              >
+                <el-button type="text" @click="onLook(scope.row)"
+                  >查看</el-button
+                >
+              </auth>
+              <auth
+                auths="inspectionItemPlanConclusion/GPS-INFO"
+                v-if="scope.row.status != 0"
+              >
+                <el-button type="text" @click="onGPS(scope.row)"
+                  >GPS定位</el-button
+                >
+              </auth>
+              <auth
+                auths="inspectionItemPlanConclusion/exportPlanConclusion"
+                v-if="scope.row.status != 0"
+              >
+                <el-button type="text" @click="onExport(scope.row)"
+                  >下载</el-button
+                >
+              </auth>
+              <!-- <auth
+                auths="inspectionItemPlan/updateMemo"
+                v-if="scope.row.conclusionStatus == 1 || scope.row.status == 0"
+              >
+                <el-button type="text" @click="handleClick(scope.row)"
+                  >立即处理</el-button
+                >
+              </auth> -->
+            </template>
+          </el-table-column>
+        </el-table>
+        <pagination
+          :total.sync="pageInfo.total"
+          sync
+          :page.sync="pageInfo.page"
+          :limit.sync="pageInfo.limit"
+          :page-sizes="pageInfo.page_size"
+          @pagination="getList"
+        />
+      </div>
+    </div>
+
+    <el-dialog title="乐团巡查表" :visible.sync="tableStatus" width="1200px">
+      <look-detail v-if="tableStatus" :detail="planDetail" />
+    </el-dialog>
+
+    <el-dialog
+      title="GPS定位"
+      :visible.sync="gpsVisible"
+      width="1000px"
+      append-to-body
+    >
+      <gpsLoction v-if="gpsVisible" :activeRow="activeRow" />
+    </el-dialog>
+
+    <el-dialog
+      title="处理方式"
+      :visible.sync="handleStatus"
+      @close="handleClose('ruleForm')"
+      width="500px"
+    >
+      <el-form :model="handleForm" label-position="top" ref="ruleForm">
+        <el-form-item
+          label="处理方式"
+          prop="memo"
+          :rules="[
+            { required: true, message: '请输入处理方式', trigger: 'blur' },
+          ]"
+        >
+          <el-input type="textarea" v-model.trim="handleForm.memo"></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="handleStatus = false">取 消</el-button>
+        <el-button @click="onHandleSubmit('ruleForm')" type="primary"
+          >确 定</el-button
+        >
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import pagination from "@/components/Pagination/index";
+import LookDetail from "@/views/musicInspection/modals/lookDetail";
+import dayjs from "dayjs";
+import { inspectionItemPlan, updateMemo } from "@/views/musicInspection/api";
+import { findEducationUsers } from "@/api/buildTeam";
+import { queryByOrganId } from "@/api/systemManage";
+import { getTeamList } from "@/api/teamServer";
+import { getTimes } from "@/utils";
+import { Export } from "@/utils/downLoadFile";
+import gpsLoction from "@/views/teamDetail/componentCourse/gpsLocation";
+import { getErrInspectionData } from '../api'
+export default {
+  components: { pagination, LookDetail, gpsLoction },
+  data() {
+    return {
+      educationList: [],
+      cooperationList: [],
+      musicGroupList: [],
+      activeRow: null,
+      planDetail: null,
+      searchForm: {
+        search: null,
+        organId: null,
+        userId: null,
+        // musicGroupId: null,
+        conclusionStatus: null,
+        cooperationOrganId: null,
+        createTimer: [],
+      },
+      tableList: [],
+      pageInfo: {
+        // 分页规则
+        limit: 10, // 限制显示条数
+        page: 1, // 当前页
+        total: 0, // 总条数
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
+      },
+      handleStatus: false,
+      handleForm: {
+        id: null,
+        memo: null,
+      },
+      tableStatus: false,
+      gpsVisible: false,
+    };
+  },
+  async mounted() {
+    const { query } = this.$route;
+    if (query.organId) {
+      this.searchForm.organId = query.organId;
+    }
+    if (query.conclusionStatus) {
+      this.searchForm.conclusionStatus = Number(query.conclusionStatus);
+    }
+    if (query.start && query.end) {
+      this.searchForm.createTimer = [query.start, query.end];
+    }
+    this.getList();
+    // 分部
+    await this.$store.dispatch("setBranchs");
+
+    //  获取乐团主管
+    await findEducationUsers().then((res) => {
+      if (res.code == 200) {
+        this.educationList = res.data;
+      }
+    });
+
+    // 乐团列表 {只查询进行中的乐团}
+    // await getTeamList({ musicGroupStatus: 'PROGRESS', rows: 9999 }).then(res => {
+    //     if(res.code == 200) {
+    //         this.musicGroupList = res.data.rows
+    //     }
+    // })
+  },
+  methods: {
+    dayjs,
+    reloadSearch() {
+      this.rules.page = 1;
+      this.getList();
+    },
+    async getList() {
+      try {
+        let { createTimer, ...rest } = this.searchForm;
+        let params = {
+          ...rest,
+          page: this.pageInfo.page,
+          rows: this.pageInfo.limit,
+          searchType: 'MUSIC_PATROL_ITEM',
+          ...getTimes(createTimer, ["startTime", "endTime"]),
+        };
+        const res = await getErrInspectionData(params);
+        this.tableList = res.data.rows;
+        this.pageInfo.total = res.data.total;
+      } catch (err) {}
+    },
+    reloadSearch() {
+      this.rules.page = 1;
+      this.getList();
+    },
+    onLook(row) {
+      this.planDetail = row;
+      this.tableStatus = true;
+    },
+    onGPS(row) {
+      this.activeRow = {
+        schoolLongitudeLatitude: row.schoolGps,
+        signOutLongitudeLatitude: row.submitedGps,
+      };
+      this.gpsVisible = true;
+    },
+    async onExport(row) {
+      await Export(
+        this,
+        {
+          url: "/api-web/inspectionItemPlanConclusion/exportPlanConclusion",
+          fileName: "巡查结果.xls",
+          method: "get",
+          params: {
+            planId: row.id,
+          },
+        },
+        "您确定导出巡查结果?"
+      );
+    },
+    async onBranchChange(value) {
+      if (!value) {
+        this.cooperationList = [];
+        this.searchForm.cooperationOrganId = null;
+        return;
+      }
+      // 合作单位
+      await queryByOrganId({ organId: value }).then((res) => {
+        if (res.code == 200) {
+          this.cooperationList = res.data;
+        }
+      });
+    },
+    search() {
+      this.pageInfo.page = 1;
+      this.getList();
+    },
+    onReSet() {
+      this.$refs["searchForm"].resetFields();
+      this.pageInfo.page = 1;
+      this.getList();
+    },
+    handleClick(row) {
+      this.handleForm.id = row.id;
+      this.handleForm.memo = row.memo;
+      this.handleStatus = true;
+    },
+    onHandleSubmit(formName) {
+      this.$refs[formName].validate(async (valid) => {
+        if (valid) {
+          console.log(this.handleForm);
+          try {
+            await updateMemo(this.handleForm);
+            this.$message.success("处理成功");
+            this.getList();
+            this.handleStatus = false;
+          } catch (err) {}
+        }
+      });
+    },
+    handleClose(formName) {
+      this.$refs[formName].resetFields();
+    },
+  },
+  filters: {
+    statusFormat(value) {
+      let template = ["未提交", "正常", "异常"];
+      return template[value];
+    },
+  },
+};
+</script>
+<style lang='scss' scoped>
+/deep/.el-dialog__body {
+  // padding: 10px 20px;
+}
+/deep/.description-title {
+  margin: 0 !important;
+}
+</style>

+ 4 - 2
src/views/indexErrDataRecord/index.vue

@@ -18,7 +18,7 @@
           label="乐团巡查事项异常"
           name="patrol"
         >
-          <baseinfo v-if="activeKey === 'patrol'" />
+          <patrol v-if="activeKey === 'patrol'"  key='MUSIC_PATROL_ITEM'/>
         </el-tab-pane>
         <el-tab-pane
           v-if="permission('/main/main/allData/826')"
@@ -26,7 +26,7 @@
           label="乐团巡查任务未提交"
           name="inspection"
         >
-          <baseinfo v-if="activeKey === 'inspection'" />
+        <patrol v-if="activeKey === 'inspection'"  key='INSPECTION_ITEM_PLAN'/>
         </el-tab-pane>
         <el-tab-pane
           v-if="permission('/main/main/allData/826')"
@@ -58,8 +58,10 @@
 </template>
 <script>
 import { permission } from "@/utils/directivePage";
+import patrol from './components/patrol'
 export default {
   name: "indexErrDataRecord",
+  components:{patrol,},
   data() {
     return {
       activeKey: "",