Bläddra i källkod

激活码交互逻辑优化

lph 1 år sedan
förälder
incheckning
559a2a4fa4

+ 52 - 8
ruoyi-ui/src/views/bussiness/processMange.vue

@@ -71,10 +71,10 @@
               <span v-if="col.prop == 'benCreateTime'">{{
                 scope.row.benCreateTime.replace("T", " ")
               }}</span>
-              <span v-if="col.prop == 'bepTaskProcessType'">{{
+              <span v-else-if="col.prop == 'bepTaskProcessType'">{{
                 getDictLabel(scope.row.bepTaskProcessType, dict.type.bpm_type)
               }}</span>
-              <span v-if="col.prop == 'benTaskNodeState'">{{
+              <span v-else-if="col.prop == 'benTaskNodeState'">{{
                 scope.row.benTaskNodeState == "0" ? "已执行" : "未执行"
               }}</span>
               <span v-else>{{ scope.row[col.prop] }}</span>
@@ -82,6 +82,15 @@
           </el-table-column>
           <el-table-column label="操作" align="center">
             <template slot-scope="scope">
+              <el-button
+                type="warning"
+                plain
+                size="small"
+                class="mr10"
+                @click="runHandler(scope.row)"
+              >
+                运行
+              </el-button>
               <el-dropdown>
                 <el-button type="warning" plain size="small">
                   处理<i class="el-icon-arrow-down el-icon--right"></i>
@@ -97,7 +106,7 @@
                       >处理</el-button
                     ></el-dropdown-item
                   >
-                  <el-dropdown-item>
+                  <!-- <el-dropdown-item>
                     <el-button
                       size="mini"
                       type="text"
@@ -106,7 +115,7 @@
                       v-hasPermi="['system:user:remove']"
                       >运行管道</el-button
                     >
-                  </el-dropdown-item>
+                  </el-dropdown-item> -->
                   <el-dropdown-item>
                     <el-dropdown
                       size="mini"
@@ -153,6 +162,8 @@
 
 <script>
 import { processList } from "@/api/bpmprocess/process";
+import { btnCommonApi } from "@/api/tablelist/commonTable";
+import getNodeSequence from "@/utils/bpmn/getNodeSequence";
 export default {
   name: "processMange",
   props: [],
@@ -191,14 +202,14 @@ export default {
           prop: "benTaskNodeName",
           label: "节点名称",
         },
-        {
-          prop: "benTaskNodeState",
-          label: "节点状态",
-        },
         {
           prop: "benTaskNodeType",
           label: "节点类型",
         },
+        {
+          prop: "benTaskNodeState",
+          label: "节点状态",
+        },
         {
           prop: "benCreateBy",
           label: "创建人",
@@ -235,8 +246,41 @@ export default {
     },
     // 处理回调
     runHandler(row) {
+      let { benTaskNodeKey, bepTaskProcessXmlContent } = row;
+      let { nodeId, nextNodeId } = this.getNextNodeKey(
+        benTaskNodeKey,
+        bepTaskProcessXmlContent
+      );
+      let payLoad = {
+        basicMap: {
+          nodeKey: nodeId,
+          nextNodeKey: nextNodeId,
+          tableName: "",
+        },
+        commMap: {
+          //formData
+        },
+      };
       console.log("运行", row);
     },
+    // 获取下一个节点的nodekey
+    getNextNodeKey(nodeKey, xmlStr) {
+      let xmlObj = this.xmlStr2XmlObj(xmlStr);
+      let nodeSequence = getNodeSequence(xmlObj);
+      return nodeSequence.find((item) => item.nodeId == nodeKey) || {};
+    },
+    // xml字符串转xml对象
+    xmlStr2XmlObj(xmlStr) {
+      var xmlObj = {};
+      if (document.all) {
+        var xmlDom = new ActiveXObject("Microsoft.XMLDOM");
+        xmlDom.loadXML(xmlStr);
+        xmlObj = xmlDom;
+      } else {
+        xmlObj = new DOMParser().parseFromString(xmlStr, "text/xml");
+      }
+      return xmlObj;
+    },
     // 触发异常回调
     handleCommand(command, row) {
       console.log("触发异常");

+ 4 - 2
ruoyi-ui/src/views/system/excuteBtnMange/index.vue

@@ -861,6 +861,7 @@ export default {
         btnSort: 0, //按钮顺序
         btnKey: "",
       };
+      this.commonFieldData = [];
       this.resetForm("btnGroupFormRef");
     },
     /** 搜索按钮操作 */
@@ -898,6 +899,7 @@ export default {
     },
     /** 修改按钮操作 */
     async handleUpdate(row) {
+      console.log(row);
       this.reset();
       this.getTreeselect();
       this.editType = false;
@@ -905,13 +907,13 @@ export default {
       await this.getRootFieldInfo(row.rootKey);
       getBtn(row.id).then((response) => {
         let { btnType, btnParams } = response.data;
-        if (btnType == 3 || btnType == 7) {
+        if ((btnType == 3 || btnType == 7) && btnParams) {
           //内链或外链
           let tempObj = JSON.parse(btnParams);
           response.data.btnParams = tempObj.url;
           this.commonFieldData = JSON.parse(tempObj.commonFieldData) || [];
         } else {
-          this.commonFieldData = JSON.parse(btnParams) || [];
+          btnParams && (this.commonFieldData = JSON.parse(btnParams) || []);
         }
         this.btnGroupFormData = response.data;
         this.open = true;

+ 104 - 76
ruoyi-ui/src/views/system/tenant/code/index.vue

@@ -1,19 +1,32 @@
 <template>
   <div class="app-container">
     <div>
-      <el-form ref="form" :model="activationCode" :rules="rulesActivationCode" label-width="80px">
+      <el-form
+        ref="form"
+        :model="activationCode"
+        :rules="rulesActivationCode"
+        label-width="80px"
+      >
         <el-form-item label="租户信息" prop="tenantCode">
           <el-select v-model="activationCode.tenantCode" placeholder="请选择">
             <el-option
               v-for="item in tenantList"
               :key="item.tenantId"
               :label="item.tenantName"
-              :value="item.tenantId">
+              :value="item.tenantId"
+            >
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="充值时间" prop="tenantExpirationDate" style="width: 300px">
-          <el-input v-model="activationCode.tenantExpirationDate" placeholder="请输入充值天数"></el-input>
+        <el-form-item
+          label="充值时间"
+          prop="tenantExpirationDate"
+          style="width: 300px"
+        >
+          <el-input
+            v-model="activationCode.tenantExpirationDate"
+            placeholder="请输入充值天数"
+          ></el-input>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -21,16 +34,22 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
       <!-- 激活码生成成功-->
-      <el-dialog :title="title" :visible.sync="activationCodeForm" width="500px" append-to-body>
+      <el-dialog
+        :title="title"
+        :visible.sync="activationCodeForm"
+        width="500px"
+        append-to-body
+      >
         <span v-html="actCode"></span>
         <div slot="footer" class="dialog-footer">
-          <el-button type="primary" @click="copyToClipboard">一键复制</el-button>
-          <el-button @click="cancel">取 消</el-button>
+          <el-button type="primary" @click="copyToClipboard"
+            >一键复制</el-button
+          >
+          <el-button @click="activationCodeForm = false">取 消</el-button>
         </div>
       </el-dialog>
     </div>
     <div style="margin-top: 30px">
-
       <!--搜索条件表单-->
       <el-form
         :model="queryParams"
@@ -45,7 +64,7 @@
             v-model="queryParams.ipAddress"
             placeholder="请输入登录地址"
             clearable
-            style="width: 240px;"
+            style="width: 240px"
             @keyup.enter.native="handleQuery"
           />
         </el-form-item>
@@ -77,10 +96,10 @@
             icon="el-icon-search"
             size="mini"
             @click="handleQuery"
-          >搜索</el-button
+            >搜索</el-button
           >
           <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
-          >重置</el-button
+            >重置</el-button
           >
         </el-form-item>
       </el-form>
@@ -95,7 +114,6 @@
         @sort-change="handleSortChange"
         style="margin-top: 20px"
       >
-
         <el-table-column type="selection" width="50" align="center" />
         <el-table-column label="日志编号" align="center" prop="logId" />
         <el-table-column label="操作人员" align="center" prop="operator" />
@@ -132,66 +150,65 @@
 </template>
 
 <script>
+import { listTenant, createTenantCode } from "@/api/system/tenant";
 import {
-  listTenant,
-  createTenantCode
-} from "@/api/system/tenant";
-import {list, delActivationLog, cleanActivationLog} from "@/api/monitor/activationcode";
+  list,
+  delActivationLog,
+  cleanActivationLog,
+} from "@/api/monitor/activationcode";
 
-import Clipboard from 'clipboard';
+import Clipboard from "clipboard";
 
 export default {
   name: "TenantCode",
   data() {
     return {
-        options: [],
-        //表单校验
-        rulesActivationCode: {
-          tenantCode: [
-            { required: true, message: "未选择租户信息", trigger: "blur" },
-          ],
-          tenantExpirationDate: [
-            { required: true, message: "租户到期时间为设置", trigger: "blur" },
-          ],
-        },
-        activationCode: {},
-        //租户信息表格数据
-        tenantList: [],
-        activationCodeForm: false,
-        actCode:"",
-        title:"激活码生成成功",
-        // 遮罩层
-        loading: true,
-        // 选中数组
-        ids: [],
-        // 非多个禁用
-        multiple: true,
-        // 显示搜索条件
-        showSearch: true,
-        // 总条数
-        total: 0,
-        // 表格数据
-        list: [],
-        // 是否显示弹出层
-        open: false,
-        // 日期范围
-        dateRange: [],
-        // 默认排序
-        defaultSort: { prop: "operTime", order: "descending" },
-        // 表单参数
-        form: {},
-        // 查询参数
-        queryParams: {
-          pageNum: 1,
-          pageSize: 10,
-          operator: undefined,
-          ipAddress: undefined
-        },
-    }
-  },
-  computed: {
-
+      options: [],
+      //表单校验
+      rulesActivationCode: {
+        tenantCode: [
+          { required: true, message: "未选择租户信息", trigger: "blur" },
+        ],
+        tenantExpirationDate: [
+          { required: true, message: "租户到期时间未设置", trigger: "blur" },
+        ],
+      },
+      activationCode: {},
+      //租户信息表格数据
+      tenantList: [],
+      activationCodeForm: false,
+      actCode: "",
+      title: "激活码生成成功",
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 表格数据
+      list: [],
+      // 是否显示弹出层
+      open: false,
+      // 日期范围
+      dateRange: [],
+      // 默认排序
+      defaultSort: { prop: "operTime", order: "descending" },
+      // 表单参数
+      form: {},
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        operator: undefined,
+        ipAddress: undefined,
+      },
+    };
   },
+  computed: {},
   created() {
     this.getList();
     this.getCodeLogList();
@@ -204,30 +221,40 @@ export default {
       });
     },
     //创建激活码
-    crateCode(){
-      createTenantCode(this.activationCode).then((response) => {
-         this.activationCodeForm=true;
-         this.actCode=response.msg;
+    crateCode() {
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          createTenantCode(this.activationCode).then((response) => {
+            this.activationCodeForm = true;
+            this.actCode = response.msg;
+          });
+        } else {
+          return false;
+        }
       });
     },
     //激活码复制操作
     copyToClipboard() {
       //创建一个新 Clipboard 实例,将目标元素和复制成功时的回调传递给它
-      const clipboard = new Clipboard('button', {
+      const clipboard = new Clipboard("button", {
         text: () => this.actCode, //在这里替换为你要复制的文本
       });
-      clipboard.on('success', () => {
-        this.activationCodeForm=false;
-        this.$message({showClose: true, message: '文本已成功复制到剪贴板', type: 'success'});
+      clipboard.on("success", () => {
+        this.activationCodeForm = false;
+        this.$message({
+          showClose: true,
+          message: "文本已成功复制到剪贴板",
+          type: "success",
+        });
         clipboard.destroy(); //清除 Clipboard 实例
       });
-      clipboard.on('error', () => {
-        console.error('复制失败');
+      clipboard.on("error", () => {
+        console.error("复制失败");
         clipboard.destroy(); //清除 Clipboard 实例
       });
       //触发按钮点击事件,开始复制操作
       clipboard.onClick({
-        action: 'copy',
+        action: "copy",
       });
     },
     //取消按钮
@@ -238,7 +265,8 @@ export default {
     //激活码日志信息
     getCodeLogList() {
       this.loading = true;
-      list(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
+      list(this.addDateRange(this.queryParams, this.dateRange)).then(
+        (response) => {
           this.list = response.rows;
           this.total = response.total;
           this.loading = false;

+ 2 - 2
ruoyi-ui/src/views/tableMange/index.vue

@@ -999,7 +999,7 @@ export default {
             disableRelaType: false,
             isShow: true,
             isSearch: false,
-            isExport: true,
+            isExport: false,
             relationTableList: this.relationTableList,
             tableName: this.tableName,
             tableComment,
@@ -1060,7 +1060,7 @@ export default {
           disableRelaType: false,
           isShow: true,
           isSearch: false,
-          isExport: true,
+          isExport: false,
           relationTableList,
           tableName: row.relationTable,
           tableComment,