Yue 2 lat temu
rodzic
commit
a01af5b36e

+ 14 - 1
src/components/Forms/VbFormItem.vue

@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import { withDefaults, onMounted, computed, type WritableComputedRef } from "vue"
-import { ElSelect, ElRadioGroup, ElCheckboxGroup } from "element-plus"
+import { ElSelect, ElRadioGroup, ElCheckboxGroup, ElDatePicker } from "element-plus"
 import type { FormItemRule } from "element-plus/es/components/form/src/types"
 import type { VbFormItem } from "@/components/Forms/models"
 import getConfigRule, { RULE_KEYS } from "@/core/config/rules"
@@ -92,6 +92,19 @@ onMounted(() => {
       <div v-else-if="item.component === 'innerText'" :class="item.class" :style="item.style">
         {{ item.innerText || data[item.field] }}
       </div>
+      <template v-else-if="item.component == ElDatePicker">
+        <el-date-picker
+          v-model="data[item.field]"
+          v-model:value="data[item.field]"
+          :required="item.required"
+          :class="item.class"
+          :style="item.style"
+          :size="item.size"
+          :placeholder="item.placeholder ?? item.props?.placeholder ?? item.label"
+          v-bind="item.props"
+          v-on="item.listeners"
+        ></el-date-picker>
+      </template>
       <template v-else>
         <component
           :is="item.component"

+ 1 - 1
src/components/Forms/models.ts

@@ -21,7 +21,7 @@ export type VbFormItem = {
   ruleFormat?: Array<Array<string | number> | undefined> //数组索引对应rules顺序,对应的rule是自定义的(或者没有format数据)要填undefined  eg: [[0,1],undfiend,["名称"]]
   data?: Array<{ label: string; value: string | number; class?: string; style?: string; disabled?: boolean }>
   itemProps?: object // 注入到 el-form-item 的属性
-  props?: object // 当 component 为渲染组件时,注入到渲染组件当中的属性
+  props?: any // 当 component 为渲染组件时,注入到渲染组件当中的属性
   listeners?: object // 当 component 为渲染组件时,注入到渲染组件当中的事件
 }
 

+ 2 - 1
src/views/dashboard/Screen/Alarm.vue

@@ -87,7 +87,8 @@ function scroll() {
 }
 function init() {
   Rs.post("sys/pushEvent/getList", {
-    data: { pageIndex: 1, pageSize: props.max, params: {}, successAlert: false },
+    data: { pageIndex: 1, pageSize: props.max, params: {} },
+    successAlert: false,
   }).then((res) => {
     alarmData.value = res.data
     if (alarmData.value.length > props.scrollLength) {

+ 34 - 35
src/views/dashboard/Screen/Clean.vue

@@ -1,6 +1,6 @@
 <!-- eslint-disable prettier/prettier -->
 <script setup lang="ts">
-import { ref,  withDefaults, onBeforeUnmount, onMounted,nextTick } from "vue"
+import { ref, withDefaults, onBeforeUnmount, onMounted, nextTick } from "vue"
 import { useRouter } from "vue-router"
 import Rs from "@/core/services/RequestService"
 
@@ -8,8 +8,8 @@ const props = withDefaults(defineProps<{ polling?: number }>(), { polling: () =>
 const list1 = ref<Array<any>>([])
 const list2 = ref<Array<any>>([])
 let scrollTimer1: any, scrollTimer2: any
-const  animate1 = ref(false)
-const  animate2 = ref(false)
+const animate1 = ref(false)
+const animate2 = ref(false)
 
 const router = useRouter()
 function beforeDestroy() {
@@ -18,24 +18,24 @@ function beforeDestroy() {
 }
 function jump(type: number) {
   switch (type) {
-  case 0:
-    router.push({
-      path: "/AnalysisInfo/clean",
-      query: { current: 0, needBack: 1 },
-    })
-    break
-  case 1:
-    router.push({
-      path: "/AnalysisInfo/clean",
-      query: { current: 1, needBack: 1 },
-    })
-    break
+    case 0:
+      router.push({
+        path: "/AnalysisInfo/clean",
+        query: { current: 0, needBack: 1 },
+      })
+      break
+    case 1:
+      router.push({
+        path: "/AnalysisInfo/clean",
+        query: { current: 1, needBack: 1 },
+      })
+      break
   }
 }
 
 function init() {
-  Rs.get('sys/dataBoard/selectCleanCompany').then((res:any) => {
-    list1.value=res.data.data.overdue_companyList
+  Rs.get("sys/dataBoard/selectCleanCompany").then((res: any) => {
+    list1.value = res.data.data.overdue_companyList
     list2.value = res.data.data.week_clean_companyList
     setTimeout(() => {
       if (
@@ -43,37 +43,36 @@ function init() {
         Number((document.querySelector(".clean-box.over .box-body") as HTMLElement).offsetHeight)
       ) {
         nextTick(() => {
-          scrollTimer1 = setInterval(() => scroll(1), 5000);
-        });
+          scrollTimer1 = setInterval(() => scroll(1), 5000)
+        })
       }
       if (
         Number((document.querySelector(".clean-box.week .list") as HTMLElement).offsetHeight) >
-        Number((document.querySelector(".clean-box.week .box-body") as HTMLElement).offsetHeight
-        ))
-      {
+        Number((document.querySelector(".clean-box.week .box-body") as HTMLElement).offsetHeight)
+      ) {
         nextTick(() => {
-          scrollTimer2 = setInterval(() => scroll(2), 5000);
-        });
+          scrollTimer2 = setInterval(() => scroll(2), 5000)
+        })
       }
     }, props.polling)
   })
 }
 
-function scroll(type:number) {
+function scroll(type: number) {
   if (type == 1) {
-    animate1.value = true;
+    animate1.value = true
     setTimeout(() => {
-      list1.value.push(list1.value[0]);
-      list1.value.shift();
-      animate1.value = false;
-    }, 2000);
+      list1.value.push(list1.value[0])
+      list1.value.shift()
+      animate1.value = false
+    }, 2000)
   } else {
-    animate2.value = true;
+    animate2.value = true
     setTimeout(() => {
-      list2.value.push(list1.value[0]);
-      list2.value.shift();
-      animate2.value = false;
-    }, 2000);
+      list2.value.push(list1.value[0])
+      list2.value.shift()
+      animate2.value = false
+    }, 2000)
   }
 }
 onMounted(() => {

+ 9 - 0
src/views/goLineData/_ViewCompany_Alarm.vue

@@ -95,5 +95,14 @@ onMounted(() => {
         </el-form-item>
       </el-form>
     </template>
+    <template #warn_starttime="{ row }">
+      {{ moment(row.warn_starttime, "YYYYMMDDHHmmss").format("YYYY-MM-DD HH:mm:ss") }}
+    </template>
+    <template #warn_endtime="{ row }">
+      {{ moment(row.warn_endtime, "YYYYMMDDHHmmss").format("YYYY-MM-DD HH:mm:ss") }}
+    </template>
+    <template #stay_time="{ row }">
+      {{ moment(row.warn_endtime, "YYYYMMDDHHmmss").diff(moment(row.warn_starttime, "YYYYMMDDHHmmss"), "m") }} 分钟
+    </template>
   </VbDataTable>
 </template>

+ 3 - 0
src/views/goLineData/_ViewCompany_General.vue

@@ -14,6 +14,9 @@ const titles = ref(["", "", "", ""])
 const chartData = ref<any>([{}, {}, {}, {}])
 const lineOptions = {
   titleText: " ",
+  legend: {
+    width: 450,
+  },
 }
 function onOverDateChange(type: number) {
   queryChart(type)