riku
2024-10-15 e38ea524ec4107ed7f8b1d7491a4177632dd3402
部分代码修正
已修改9个文件
已添加1个文件
173 ■■■■ 文件已修改
.prettierrc.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/fysp/taskApi.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/fytz/userApi.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components.d.ts 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/core/BaseContentLayout.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fysp/check/ProCheck.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fysp/check/components/CompProRecent.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fysp/check/components/CompProblemAddOrUpd.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fysp/task/TaskManage.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fysp/task/components/CompDayTask.vue 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.prettierrc.json
@@ -3,6 +3,6 @@
  "semi": true,
  "tabWidth": 2,
  "singleQuote": true,
  "printWidth": 100,
  "printWidth": 80,
  "trailingComma": "none"
}
src/api/fysp/taskApi.js
@@ -89,8 +89,8 @@
  /**
   * èŽ·å–å­ä»»åŠ¡é—®é¢˜è¯¦æƒ…
   */
  async getProBySubtask(id) {
    return await $fysp
  getProBySubtask(id) {
    return $fysp
      .get('problemlist/subtask', {
        params: {
          stGuid: id
src/api/fytz/userApi.js
@@ -45,7 +45,7 @@
   * é‡ç½®ç”¨æˆ·å¯†ç 
   */
  resetPassword(id) {
    return $fytz.post(`userInfo/resetPw?userId=${id}`).then((res) => res);
    return $fytz.post(`userInfo/resetPw?userId=${id}`).then((res) => res.data);
  },
src/components.d.ts
@@ -11,12 +11,14 @@
    BasePanelLayout: typeof import('./components/core/BasePanelLayout.vue')['default']
    CompQuickSet: typeof import('./components/search-option/CompQuickSet.vue')['default']
    Content: typeof import('./components/core/Content.vue')['default']
    ElAffix: typeof import('element-plus/es')['ElAffix']
    ElAside: typeof import('element-plus/es')['ElAside']
    ElAvatar: typeof import('element-plus/es')['ElAvatar']
    ElBadge: typeof import('element-plus/es')['ElBadge']
    ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
    ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
    ElButton: typeof import('element-plus/es')['ElButton']
    ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup']
    ElCalendar: typeof import('element-plus/es')['ElCalendar']
    ElCard: typeof import('element-plus/es')['ElCard']
    ElCascader: typeof import('element-plus/es')['ElCascader']
@@ -42,6 +44,7 @@
    ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
    ElMenuItemGroup: typeof import('element-plus/es')['ElMenuItemGroup']
    ElOption: typeof import('element-plus/es')['ElOption']
    ElPageHeader: typeof import('element-plus/es')['ElPageHeader']
    ElPagination: typeof import('element-plus/es')['ElPagination']
    ElPopover: typeof import('element-plus/es')['ElPopover']
    ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
src/components/core/BaseContentLayout.vue
@@ -1,15 +1,15 @@
<template>
  <el-container>
    <el-header class="el-header">
    <el-header ref="headerRef" class="el-header">
      <slot name="header"></slot>
    </el-header>
    <el-container>
      <el-aside class="el-aside">
      <el-aside class="el-aside" :style="'height: ' + mainHeight">
        <el-scrollbar>
          <slot name="aside"></slot>
        </el-scrollbar>
      </el-aside>
      <el-main class="el-main">
      <el-main class="el-main" :style="'height: ' + mainHeight">
        <slot name="main"></slot>
      </el-main>
    </el-container>
@@ -19,6 +19,26 @@
<script>
export default {
  // å³ä¾§æ“ä½œç•Œé¢åŸºç¡€å¸ƒå±€
  data() {
    return {
      mainHeight: 'calc(100vh - 60px * 2 - var(--el-main-padding) * 2)'
    };
  },
  methods: {
    // å†…容高度
    calHeight() {
      if (this.$refs.headerRef) {
        const h1 = this.$refs.headerRef.$el.offsetHeight;
        const h = h1;
        return `calc(100vh - ${h}px - 60px - var(--el-main-padding) * 2)`;
      } else {
        return `calc(100vh - 60px * 2 - var(--el-main-padding) * 2)`;
      }
    }
  },
  mounted() {
    this.mainHeight = this.calHeight();
  }
};
</script>
@@ -26,7 +46,7 @@
.el-aside {
  /* width: initial; */
  position: relative;
  height: calc(100vh - 60px * 2 - 20px * 2);
  /* height: calc(100vh - 60px * 2 - 20px * 2); */
  /* background-color: aqua; */
  /* overflow-y: auto; */
  border-right: 1px solid var(--el-color-info-light-7);
@@ -43,7 +63,7 @@
.el-main {
  position: relative;
  /* background-color: whitesmoke; */
  height: calc(100vh - 60px * 2 - 20px * 2);
  /* height: calc(100vh - 60px * 2 - 20px * 2); */
  padding: initial;
  padding-left: 20px;
  /* overflow: hidden; */
src/views/fysp/check/ProCheck.vue
@@ -237,8 +237,9 @@
      });
    },
    // å…³é—­è®¾å¤‡å›¾å¼¹çª—
    beforeDeviceShowDialogclose() {
      this.deviceShowDialog = false;
    beforeDeviceShowDialogclose(done) {
      // this.deviceShowDialog = false;
      done()
    },
    // å…³é—­ä»»æ„å›¾ç‰‡å¼¹çª—
    beforeAnyPhotoDialogclose() {
src/views/fysp/check/components/CompProRecent.vue
@@ -155,11 +155,11 @@
    /**
     * èŽ·å–è¿‘æœŸæƒ…å†µ
     * */
    async getRecentPros() {
    getRecentPros() {
      this.loading = true;
      this.subtaskCount = 0
      // èŽ·å–å­ä»»åŠ¡åˆ—è¡¨
      await taskApi.getSubtaskByScene(this.generateQueryParam()).then((subtasks) => {
      taskApi.getSubtaskByScene(this.generateQueryParam()).then((subtasks) => {
        this.curProList = [];
        if (subtasks) {
          subtasks.forEach((subtask) => {
@@ -175,7 +175,7 @@
      this.loading = false;
    },
    // æ ¹æ®å­ä»»åŠ¡èŽ·å–é‡Œé¢çš„é—®é¢˜åˆ—è¡¨
    async getProBySubtask(subtask) {
    getProBySubtask(subtask) {
      taskApi.getProBySubtask(subtask.stGuid).then((pros) => {
        if (pros) {
          pros.forEach((pro) => {
src/views/fysp/check/components/CompProblemAddOrUpd.vue
@@ -311,11 +311,12 @@
        return new Date(x.dlCreateTime) - new Date(y.dlCreateTime); //    é™åºï¼Œå‡åºåˆ™åä¹‹
      });
    },
    async getDeviceImgList() {
    getDeviceImgList() {
      this.deviceImgObjList = [];
      for (const deviceTopTypeElement of this.deviceTopTypes) {
        const topTypeId = deviceTopTypeElement.id;
        await deviceApi.fetchDevices(this.subtask.sceneId, topTypeId).then((result) => {
      this.deviceTopTypes.forEach(e => {
        const topTypeId = e.id;
        deviceApi.fetchDevices(this.subtask.sceneId, topTypeId).then((result) => {
          // æ ‡å‡†åŒ–属性名
          for (let i = 0; i < result.data.length; i++) {
            var element = this.convertKeys(result.data[i]);
@@ -355,7 +356,7 @@
              .catch((err) => {});
          }
        });
      }
      });
    },
    initOptions() {
      if (this.problem == undefined || this.problem == null) {
src/views/fysp/task/TaskManage.vue
@@ -3,7 +3,6 @@
    <template #header>
      <FYSearchBar @search="search">
        <template #options>
          <!-- åŒºåŽ¿ -->
          <FYOptionLocation
            :allOption="true"
            :level="3"
@@ -11,13 +10,14 @@
            v-model:value="formSearch.locations"
          ></FYOptionLocation>
        </template>
        <!-- <template #buttons>
          <slot name="buttons"></slot>
        </template> -->
      </FYSearchBar>
    </template>
    <template #aside>
      <SideList :items="tasks" :loading="sideLoading" @item-click="chooseTask"></SideList>
      <SideList
        :items="tasks"
        :loading="sideLoading"
        @item-click="chooseTask"
      ></SideList>
    </template>
    <template #main>
      <ToolBar
@@ -33,35 +33,42 @@
      >
        <el-row justify="space-between">
          <div><el-text>监管计划</el-text></div>
          <el-button type="warning" size="small" @click="editPlan">计划调整</el-button>
          <CompMonitorPlan :task="curTask.data"></CompMonitorPlan>
          <el-button type="warning" size="small" @click="editPlan"
            >计划调整</el-button
          >
          <CompMonitorPlan
            :task="curTask.data"
            @date-change="onDateChange"
          ></CompMonitorPlan>
        </el-row>
        <el-divider></el-divider>
        <el-row justify="space-between">
          <div><el-text>监管场景</el-text></div>
          <el-button type="warning" size="small" @click="editTask">场景调整</el-button>
          <el-button type="warning" size="small" @click="editTask"
            >场景调整</el-button
          >
        </el-row>
        <CompMonitorObj :data="curMonitorObjList"></CompMonitorObj>
        <!-- <div><el-text>监管场景</el-text></div>
        <div>
          <el-space wrap>
            <ItemMonitorObj
              v-for="item in curMonitorObjList"
              :key="item.movid"
              :item="item"
            ></ItemMonitorObj>
          </el-space>
        </div> -->
      </el-scrollbar>
      <el-empty v-else description="暂无记录" v-loading="mainLoading" />
    </template>
  </BaseContentLayout>
  <el-drawer
    v-model="subTaskDrawer"
    title="单日计划"
    direction="btt"
    size="80%"
    destroy-on-close
  >
    <CompDayTask :day-task="curDayTask"></CompDayTask>
  </el-drawer>
</template>
<script>
import taskApi from '@/api/fysp/taskApi';
import CompMonitorObj from './components/CompMonitorObj.vue';
import CompMonitorPlan from './components/CompMonitorPlan.vue';
import CompDayTask from './components/CompDayTask.vue';
export default {
  beforeRouteEnter(to, from, next) {
    // åœ¨æ¸²æŸ“该组件的对应路由被验证前调用
@@ -73,7 +80,7 @@
      }
    });
  },
  components: { CompMonitorObj, CompMonitorPlan },
  components: { CompMonitorObj, CompMonitorPlan, CompDayTask },
  data() {
    return {
      formSearch: {
@@ -104,7 +111,11 @@
        //   name: '场景调整',
        //   color: 'warning'
        // }
      ]
      ],
      // å­ä»»åŠ¡ç¼–è¾‘å¼¹å‡ºæ¡†
      subTaskDrawer: false,
      // å½“前选择的日任务
      curDayTask: {}
    };
  },
  computed: {
@@ -187,9 +198,13 @@
        name: 'monitorPlanEdit',
        query: {
          data: encodeURIComponent(JSON.stringify(this.curMonitorObjList)),
          task: encodeURIComponent(JSON.stringify(this.curTask.data)),
          task: encodeURIComponent(JSON.stringify(this.curTask.data))
        }
      });
    },
    onDateChange(dayTask) {
      this.subTaskDrawer = true;
      this.curDayTask = dayTask;
    }
  },
  mounted() {
src/views/fysp/task/components/CompDayTask.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,53 @@
<template>
  <el-row justify="space-between">
    <el-text>单日计划</el-text>
    <el-button type="success" size="small" @click="editTask">新增</el-button>
  </el-row>
  <el-divider />
  <ItemSubTask v-for="stask in curSubTaskList" :key="stask.guid" :item="stask">
    <template #default="{ item }">
      <el-button type="danger" size="small" @click="editTask">移除</el-button>
    </template>
  </ItemSubTask>
</template>
<script setup>
import { ref, watch, onMounted } from 'vue';
import taskApi from '@/api/fysp/taskApi';
const props = defineProps({
  // æ—¥ä»»åŠ¡
  dayTask: Object
});
// å·¡æŸ¥å­ä»»åŠ¡é›†åˆ
const curSubTaskList = ref([]);
// ç›‘听日任务变化
watch(
  () => props.dayTask,
  (nV, oV) => {
    // if (nV != oV) {
    //   onDayTaskChange(nV)
    // }
    onDayTaskChange(nV)
  },
  { immediate: true }
);
// æ ¹æ®æ—¥ä»»åŠ¡èŽ·å–å¯¹åº”å­ä»»åŠ¡
function onDayTaskChange(dayTask) {
  if (dayTask) {
    fetchSubTask(dayTask.guid);
  } else {
    curSubTaskList.value = [];
  }
}
// èŽ·å–å·¡æŸ¥å­ä»»åŠ¡
function fetchSubTask(dayTaskId) {
  taskApi.fetchSubtaskByDayTask(dayTaskId).then((res) => {
    curSubTaskList.value = res;
  });
}
</script>
<style scoped></style>