lvkun 2 năm trước cách đây
mục cha
commit
8f901398ba
2 tập tin đã thay đổi với 81 bổ sung28 xóa
  1. 59 15
      src/pages/Iot/sys/logo.vue
  2. 22 13
      src/pages/Iot/task/manage.vue

+ 59 - 15
src/pages/Iot/sys/logo.vue

@@ -1,18 +1,46 @@
 <template>
-  <a-card style="padding: 40px;">
-    <a-row>
-      <a-col :span="4" >
+  <a-row :gutter="[16, 16]">
+    <a-col span="6" >
+      <a-card>
         <a-row>
-          <a-col span="24" class="center" >
+          <a-col span="24" class="logo-box" >
             <img class="logo" :src="logoPng" />
+            <div class="label center" >{{ state.sys.sysLabel}}</div>
           </a-col>
-          <a-col span="24" class="center">
-            <div class="label" >{{ state.sys.sysLabel}}</div>
+          <a-col span="24" style="margin-top: 20px;" >
+            <a-row justify="center" >
+              <a-space>
+                <a-tag color="pink" >蛟龙</a-tag>
+                <a-tag color="red" >云联</a-tag>
+                <a-tag color="orange" >快速</a-tag>
+                <a-tag color="green" >简洁</a-tag>
+                <a-tag color="cyan" >智慧</a-tag>
+              </a-space>
+            </a-row>
+          </a-col>
+          <a-col  span="24" class="email" >
+           <a-form>
+            <a-form-item label="邮件地址📧" >
+              {{ state.sys.mailConf?.host }}
+            </a-form-item>
+            <a-form-item label="邮件协议🔗" >
+              {{ state.sys.mailConf?.protocol }}
+            </a-form-item>
+            <a-form-item label="邮件账号🔢" >
+              {{ state.sys.mailConf?.username }}
+            </a-form-item>
+            <a-form-item label="邮件密码🫥" >
+              {{ state.sys.mailConf?.password }}
+            </a-form-item>
+           </a-form>
           </a-col>
         </a-row>
-      </a-col>
-    </a-row>
-  </a-card>
+      </a-card>
+    </a-col>
+    <a-col span="18" >
+    </a-col>
+  </a-row>
+
 </template>
 
 <script lang="ts" setup >
@@ -22,7 +50,7 @@ import { onMounted, reactive } from 'vue'
 const logoPng = require('@/assets/logo.png')
 
 const state = reactive<{
-  sys: IOT.API.SYS.Sys
+  sys: Partial<IOT.API.SYS.Sys>
 }>({
   sys: {}
 })
@@ -35,14 +63,30 @@ const getLogo = async () => {
 onMounted(() => {
   getLogo()
 })
+
 </script>
 
 <style lang="less" scoped >
-.logo {
-  width: 200px;
-  height: 200px;
-  border-radius: 50%;
-  border: 1px solid #ccc;
+.logo-box {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+  .logo {
+    width: 200px;
+    height: 200px;
+    border-radius: 50%;
+    border: 1px solid #ccc;
+  }
+
+}
+
+.email {
+  display: flex;
+  // justify-content: center;
+  margin-left: 70px;
+  margin-top: 20px;
+  font-size: 22px;
 }
 
 .label {

+ 22 - 13
src/pages/Iot/task/manage.vue

@@ -70,20 +70,28 @@
   </a-table>
 
   <modal-pro
+    style="width: 1000px"
     :label="modalTitle"
     :visible="state.visible"
     destroyOnClose
     @cancel="state.visible = false"
     @ok="ok"
   >
-    <a-form :label-col="{span: 4}" :wrapper-col="{span: 14}">
+    <a-form :label-col="{span: 4}" :wrapper-col="{span: 16}">
       <a-form-item label="任务名称" v-bind="validateInfos.taskLabel">
         <a-input v-model:value="modalRef.taskLabel"  />
       </a-form-item>
-      <a-form-item label="任务描述" >
+      <a-form-item label="任务描述"  v-bind="validateInfos.taskDescription">
         <a-input v-model:value="modalRef.taskDescription" />
       </a-form-item>
-      <a-form-item label="选择产品" >
+      <a-form-item label="cron表达式" v-bind="validateInfos.cornDescr">
+        <cron-ant
+          locale="zh"
+          v-model="modalRef.cornDescr"
+          :button-props="{ type: 'primary', shape: 'round'}"
+        />
+      </a-form-item>
+      <a-form-item label="选择产品"  v-bind="validateInfos.modelId">
         <a-select
           placeholder="请选择产品"
           v-model:value="modalRef.taskConfig.modelId"
@@ -97,7 +105,7 @@
           </a-select-option>
         </a-select>
       </a-form-item>
-      <a-form-item label="选择设备" >
+      <a-form-item label="选择设备" v-bind="validateInfos.deviceId">
         <a-select
           placeholder="请选择产品"
           v-model:value="modalRef.taskConfig.deviceId"
@@ -161,10 +169,7 @@
           <a-textarea :auto-size="{ minRows: 2, maxRows: 5 }" v-model:value="modalRef.taskConfig.msgPayload"  />
         </a-form-item>
       </span>
-      <cron-ant
-        v-model="modalRef.taskConfig.cornDescr"
-        :button-props="{ type: 'primary', shape: 'round'}"
-      />
+
       <!-- @error="error=$event" -->
     </a-form>
   </modal-pro>
@@ -256,7 +261,7 @@ const state = reactive({
 const modalRef = reactive({
   taskLabel: '',
   taskDescription: '',
-  cornDescr: '0 0 23 L * ?',
+  cornDescr: '',
   taskConfig: {
     taskType: '',
     deviceId: '',
@@ -297,6 +302,7 @@ watch(
 
 const { resetFields, validate, validateInfos } = useForm(modalRef, reactive({
   taskLabel: [{ required: true, message: '请填写任务名称' }],
+  taskDescription: [{ required: true, message: '请填写任务描述' }],
   cornDescr: [{ required: true, message: '请填写corn表达式' }],
   taskType: [{ required: true, message: '请选择任务类型' }],
   modelId: [{ required: true, message: '请选择产品' }],
@@ -316,11 +322,14 @@ const selectDevice = () => {
 const ok = () => {
   validate().then(async () => {
     const obj = {}
-    modalRef.taskConfig.cmdParameters.forEach(item => {
-      obj[item.paramLabel] = item.dataUnit
-    })
+    if (modalRef.taskConfig.taskType === 'DEVICE_CMD') {
+      modalRef.taskConfig.cmdParameters.forEach(item => {
+        obj[item.paramLabel] = item.dataUnit
+      })
 
-    modalRef.taskConfig.cmdParameters = obj
+      modalRef.taskConfig.cmdParameters = obj
+    }
+    console.log(modalRef)
 
     if (state.opraState === 'add') {
       await TaskController.add(modalRef)