Przeglądaj źródła

1.0.1 修改任务管理页面样式

liuyanpeng 1 rok temu
rodzic
commit
c81508b35e
3 zmienionych plików z 230 dodań i 41 usunięć
  1. 1 1
      package.json
  2. 11 1
      src/App.vue
  3. 218 39
      src/workflow/TaskProcessManagement.vue

+ 1 - 1
package.json

@@ -1,7 +1,7 @@
 {
   "name": "client-base-v5",
   "description": "Leanwo Prodog Client",
-  "version": "1.0.0",
+  "version": "1.0.1",
   "author": "yangzhijie1488 <yangzhijie1488@163.com>",
   "scripts": {
     "ins": "npm install --registry http://wuzhixin.vip:4873",

+ 11 - 1
src/App.vue

@@ -37,7 +37,7 @@
           <keep-alive>
             <TopNavigation @menu-visible-changed="clickIsShowMenu" />
           </keep-alive>
-          <WorkTab v-if="isShowTopNavigation" :menu-width="width" />
+          <WorkTab v-if="!isPopupWindow" :menu-width="width" />
         </div>
       </div>
 
@@ -89,6 +89,7 @@ export default {
       startWidth: 0,
       width: 230,
       isMouseDown: true,
+      isPopupWindow: false,
     };
   },
 
@@ -100,6 +101,9 @@ export default {
 
   mounted: function () {
     var _self = this;
+    // 检查当前窗口是否是通过window.open打开的
+    this.isPopupWindow = window.opener != null;
+
     var languageSelected = localStorage.getItem('#languageSelected');
     if (languageSelected == null || languageSelected == '') {
       this.$i18n.locale = 'zh-CN';
@@ -285,6 +289,12 @@ export default {
         if (path.indexOf('/eam/copy-property/') >= 0) {
           count = 1;
         }
+        if (path.indexOf('/wms/checkLoss/') >= 0) {
+          count = 1;
+        }
+        if (path.indexOf('/wms/checkProfit/') >= 0) {
+          count = 1;
+        }
 
         if (window.top !== window.self) {
           count = 1;

+ 218 - 39
src/workflow/TaskProcessManagement.vue

@@ -6,6 +6,194 @@
       加载任务模板
     </a-button>
     <a-drawer
+      v-model:open="visible" class="custom-class" :title="taskDefineDto.id == null ? '创建任务' : '编辑任务'"
+      placement="right" width="650"
+    >
+      <div>
+        <div v-if="step == 1">
+          <a-card title="1.基本配置" :bordered="false">
+            <a-form layout="horizontal" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }">
+              <a-form-item label="名称" required>
+                <a-input v-model:value="taskDefineDto.taskName" autocomplete="off" placeholder="请输入任务名称" />
+              </a-form-item>
+
+              <a-form-item label="描述" required>
+                <a-input v-model:value="taskDefineDto.taskDescription" autocomplete="off" placeholder="请填写任务描述" />
+              </a-form-item>
+
+              <a-form-item label="任务类型" required>
+                <v-select
+                  v-model="taskDefineDto.selectedTaskType" :options="taskTypes" :label="'value'"
+                  placeholder="请选择任务类型"
+                />
+              </a-form-item>
+
+              <template v-if="taskDefineDto.selectedTaskType && taskDefineDto.selectedTaskType.value == '流程'">
+                <a-form-item label="流程编号" required>
+                  <a-select
+                    v-model:value="taskDefineDto.processNo" show-search style="width: 100%"
+                    :options="processNos" :filter-option="filterOption" @change="processNoChang"
+                  />
+                </a-form-item>
+
+                <a-form-item label="流程参数" required>
+                  <a-button type="link" @click="processNoChang(taskDefineDto.processNo)">重新加载参数</a-button>
+
+                  <a-table :columns="processColumns" :data-source="processDatas" :pagination="false" size="small">
+                    <template #bodyCell="{ column, record }">
+                      <template v-if="column.dataIndex === 'value'">
+                        <EditTableCell
+                          :record="record" :param-name="'value'" :control-type="'input'"
+                          @change-all="tableDataChange"
+                        />
+                      </template>
+                    </template>
+                  </a-table>
+                </a-form-item>
+              </template>
+
+              <template v-if="taskDefineDto.selectedTaskType != null && taskDefineDto.selectedTaskType.value == '流程报表'">
+                <a-form-item label="流程报表文件编码" required>
+                  <a-input v-model:value="taskDefineDto.processReportNo" autocomplete="off" placeholder="请填写流程报表文件编码" />
+                </a-form-item>
+
+                <a-form-item label="流程报表名称" required>
+                  <a-input v-model:value="taskDefineDto.processReportName" autocomplete="off" placeholder="请填写流程报表名称" />
+                </a-form-item>
+              </template>
+
+              <template
+                v-if="taskDefineDto.selectedTaskType != null && taskDefineDto.selectedTaskType.value == 'HTTP任务'"
+              >
+                <a-form-item label="HTTP请求类型" required>
+                  <v-select
+                    v-model="taskDefineDto.selectedRequestType" :options="requestTypes" :label="'value'"
+                    placeholder="请选择HTTP请求类型"
+                  />
+                </a-form-item>
+
+                <a-form-item label="HTTP请求地址" required>
+                  <a-input v-model:value="taskDefineDto.httpRequestUrl" autocomplete="off" placeholder="请填写HTTP请求地址" />
+                </a-form-item>
+
+                <a-form-item label="HTTP参数(json)">
+                  <a-input v-model:value="taskDefineDto.httpRequestParam" autocomplete="off" placeholder="请填写HTTP参数" />
+                </a-form-item>
+              </template>
+
+              <template v-if="taskDefineDto.selectedTaskType && taskDefineDto.selectedTaskType.value !== '流程'">
+                <a-form-item label="接收人">
+                  <v-select
+                    v-model="taskDefineDto.selectedUser" :options="users" multiple :label="'value'"
+                    placeholder="请选择接收人"
+                  />
+                </a-form-item>
+
+                <a-form-item label="接收用户组">
+                  <v-select
+                    v-model="taskDefineDto.selectedGroup" :options="groups" multiple :label="'value'"
+                    placeholder="请选择接收用户组"
+                  />
+                </a-form-item>
+              </template>
+            </a-form>
+
+            <div style="text-align: right; margin-top: 16px;">
+              <a-button type="primary" @click="saveCheck">下一步</a-button>
+            </div>
+          </a-card>
+        </div>
+
+        <div v-if="step == 2">
+          <a-card title="2.定时配置" :bordered="false">
+            <a-form layout="horizontal" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }">
+              <a-form-item label="时间类型" required>
+                <v-select
+                  v-model="taskDefineDto.selectedTimeType" :options="timeTypes" :label="'value'"
+                  placeholder="请选择时间类型"
+                />
+              </a-form-item>
+
+              <template v-if="taskDefineDto.selectedTimeType != null && taskDefineDto.selectedTimeType.value == 'cron'">
+                <a-form-item label="cron表达式" required>
+                  <a-input v-model:value="taskDefineDto.cron" autocomplete="off" placeholder="请填写cron表达式" />
+                </a-form-item>
+
+                <a-form-item :wrapper-col="{ offset: 6 }">
+                  <a-button size="small" type="link" @click="isShowCorn = true">
+                    cron表达式示例
+                  </a-button>
+                </a-form-item>
+              </template>
+            </a-form>
+
+            <div style="display: flex; justify-content: space-between; margin-top: 16px;">
+              <a-button @click="step = step - 1">上一步</a-button>
+              <a-button type="primary" @click="saveCheck">下一步</a-button>
+            </div>
+          </a-card>
+        </div>
+
+        <div v-if="step == 3">
+          <a-card title="3.报警配置" :bordered="false">
+            <a-form layout="horizontal" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }">
+              <a-form-item label="超时报警" required>
+                <a-switch v-model:checked="taskDefineDto.timeoutAlarm" :checked="taskDefineDto.timeoutAlarm" />
+              </a-form-item>
+
+              <a-form-item label="超时时间">
+                <a-input-number
+                  v-model:value="taskDefineDto.timeout" autocomplete="off" placeholder="超时时间(s),默认2小时"
+                  style="width: 100%"
+                />
+              </a-form-item>
+
+              <a-form-item label="超时终止" required>
+                <a-switch
+                  v-model:checked="taskDefineDto.timeoutTermination"
+                  :checked="taskDefineDto.timeoutTermination"
+                />
+              </a-form-item>
+
+              <a-form-item label="失败报警" required>
+                <a-switch v-model:checked="taskDefineDto.failureAlarm" :checked="taskDefineDto.failureAlarm" />
+              </a-form-item>
+
+              <a-form-item label="报警联系人">
+                <v-select
+                  v-model="taskDefineDto.selectedAlarmUser" :options="users" multiple :label="'value'"
+                  placeholder="请选择报警联系人"
+                />
+              </a-form-item>
+            </a-form>
+
+            <div style="display: flex; justify-content: space-between; margin-top: 16px;">
+              <a-button @click="step = step - 1">上一步</a-button>
+              <a-button type="primary" @click="saveCheck">下一步</a-button>
+            </div>
+          </a-card>
+        </div>
+
+        <div v-if="step == 4">
+          <a-card title="4.其他配置" :bordered="false">
+            <a-form layout="horizontal" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }">
+              <a-form-item label="状态">
+                <v-select
+                  v-model="taskDefineDto.selectedStatus" :options="status" :label="'value'"
+                  placeholder="请设置任务状态"
+                />
+              </a-form-item>
+            </a-form>
+
+            <div style="display: flex; justify-content: space-between; margin-top: 16px;">
+              <a-button @click="step = step - 1">上一步</a-button>
+              <a-button type="primary" @click="saveCheck">保存</a-button>
+            </div>
+          </a-card>
+        </div>
+      </div>
+    </a-drawer>
+    <!-- <a-drawer
       v-model:open="visible"
       class="custom-class"
       :title="taskDefineDto.id == null ? '创建任务' : '编辑任务'"
@@ -471,13 +659,8 @@
           </div>
         </div>
       </div>
-    </a-drawer>
-    <CommonTable
-      :total="pagination.total"
-      :columns="columns"
-      :data-source="taskDefineDtos"
-      @get-pager="getPageParams"
-    >
+    </a-drawer> -->
+    <CommonTable :total="pagination.total" :columns="columns" :data-source="taskDefineDtos" @get-pager="getPageParams">
       <template #bodyCell="{ column, record }">
         <template v-if="column.key == 'taskType'">
           {{
@@ -510,34 +693,20 @@
           {{ record.taskStatus == "ENABLE" ? "启用" : "禁用" }}
         </template>
         <template v-if="column.key == 'operation'">
-          <a-button
-            v-if="record.taskStatus == 'DISABLE'"
-            :size="size"
-            @click="updateStatus(record, 'ENABLE')"
-          >
+          <a-button v-if="record.taskStatus == 'DISABLE'" :size="size" @click="updateStatus(record, 'ENABLE')">
             启用
           </a-button>
-          <a-button
-            v-if="record.taskStatus == 'ENABLE'"
-            :size="size"
-            @click="updateStatus(record, 'DISABLE')"
-          >
+          <a-button v-if="record.taskStatus == 'ENABLE'" :size="size" @click="updateStatus(record, 'DISABLE')">
             禁用
           </a-button>
           <a-button type="primary" :size="size" @click="edit(record)">
             编辑
           </a-button>
-          <a-button
-            danger
-            :size="size"
-            @click="deleteTaskBefore(record)"
-          >
+          <a-button danger :size="size" @click="deleteTaskBefore(record)">
             删除
           </a-button>
           <a-button
-            v-if="record.taskType != 'HTTP'"
-            type="dashed"
-            :size="size"
+            v-if="record.taskType != 'HTTP'" type="dashed" :size="size"
             @click="manualExecutionProcess(record.id)"
           >
             执行
@@ -554,12 +723,7 @@
     <Loading v-if="loading" />
   </div>
 
-  <a-drawer
-    v-model:open="isShowCorn"
-    title="常用corn表达式"
-    width="460px"
-    placement="right"
-  >
+  <a-drawer v-model:open="isShowCorn" title="常用corn表达式" width="460px" placement="right">
     <p>常用corn表达式:</p>
     <p>每隔 5 秒执行一次:*/5 * * * * ? </p>
     <p>每隔 1 分钟执行一次:0 */1 * * * ? </p>
@@ -833,7 +997,7 @@ export default {
 
     // 流程编号改变获取流程参数
     processNoChang: function (value) {
-      if(value == null){
+      if (value == null) {
         return;
       }
       const _self = this;
@@ -852,11 +1016,11 @@ export default {
             if (data.data && data.data.globalProperty) {
               let jsonStr = JSON.stringify(data.data);
               let datas = JSON.parse(jsonStr);
-              let globalProperty  = JSON.parse(datas.globalProperty);
+              let globalProperty = JSON.parse(datas.globalProperty);
               _self.processDatas = [];
-              if(globalProperty.variables && globalProperty.variables.length>0){
-                for(let i = 0, size = globalProperty.variables.length; i < size; i ++){
-                  if(globalProperty.variables[i].inOutType === 'param'){
+              if (globalProperty.variables && globalProperty.variables.length > 0) {
+                for (let i = 0, size = globalProperty.variables.length; i < size; i++) {
+                  if (globalProperty.variables[i].inOutType === 'param') {
                     _self.processDatas.push(globalProperty.variables[i]);
                   }
                 }
@@ -1330,8 +1494,8 @@ export default {
             response.errorMessage = '请填写流程报表名称';
             return response;
           }
-        } else if (_self.taskDefineDto.selectedTaskType.value == '流程'){
-          if (!_self.taskDefineDto.processNo){
+        } else if (_self.taskDefineDto.selectedTaskType.value == '流程') {
+          if (!_self.taskDefineDto.processNo) {
             response.errorCode = 8;
             response.errorMessage = '请选择流程编号';
             return response;
@@ -1484,7 +1648,7 @@ export default {
         },
       );
     },
-    filterOption:function (input, option) {
+    filterOption: function (input, option) {
       return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
     },
     // 深拷贝
@@ -1511,7 +1675,22 @@ export default {
   width: 1150px !important;
   min-width: 1150px !important;
 }
+
 #create {
   width: 65%;
 }
+:deep(.ant-drawer-body) {
+  padding: 0px !important;
+}
+:deep(.ant-card-body) {
+  padding: 10px 20px 10px 10px !important;
+}
+:deep(.ant-form-item) {
+  margin-bottom: 10px !important;
+}
+
+:deep(.ant-form-item-label > label) {
+  font-size: 14px !important;
+  font-weight: 500 !important;
+}
 </style>