瀏覽代碼

oa流程设计节点后操作处理

lph 1 年之前
父節點
當前提交
5553438579

+ 7 - 0
zkqy-ui/src/assets/styles/index.scss

@@ -13,6 +13,13 @@ body {
   font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB,
     Microsoft YaHei, Arial, sans-serif;
 }
+.discribe {
+  display: block;
+  max-width: 200px;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
 
 label {
   font-weight: 700;

+ 9 - 3
zkqy-ui/src/components/kFormDesign/OptionsEdit.vue

@@ -78,7 +78,9 @@
                   :label="item.tableComment"
                   :value="item.tableName"
                 >
-                  <span style="float: left">{{ item.tableComment }}</span>
+                  <span class="discribe" style="float: left">{{
+                    item.tableComment
+                  }}</span>
                   <span style="float: right; color: #8492a6; font-size: 13px">{{
                     item.tableName
                   }}</span>
@@ -100,7 +102,9 @@
                   :label="item.fieldDescription"
                   :value="item.fieldName"
                 >
-                  <span style="float: left">{{ item.fieldDescription }}</span>
+                  <span class="discribe" style="float: left">{{
+                    item.fieldDescription
+                  }}</span>
                   <span style="float: right; color: #8492a6; font-size: 13px">{{
                     item.fieldName
                   }}</span>
@@ -122,7 +126,9 @@
                   :label="item.fieldDescription"
                   :value="item.fieldName"
                 >
-                  <span style="float: left">{{ item.fieldDescription }}</span>
+                  <span class="discribe" style="float: left">{{
+                    item.fieldDescription
+                  }}</span>
                   <span style="float: right; color: #8492a6; font-size: 13px">{{
                     item.fieldName
                   }}</span>

+ 2 - 0
zkqy-ui/src/layout/index.vue

@@ -93,6 +93,8 @@ export default {
   data() {
     return {
       userName: "默认用户",
+      logo: "",
+      title: "",
     };
   },
   mixins: [ResizeMixin],

+ 5 - 5
zkqy-ui/src/permission.js

@@ -8,7 +8,7 @@ import { isRelogin } from '@/utils/request'
 
 NProgress.configure({ showSpinner: false })
 
-const whiteList = ['/login', '/register']
+const whiteList = ['/login', '/register', '/404']
 
 router.beforeEach((to, from, next) => {
   NProgress.start()
@@ -30,11 +30,11 @@ router.beforeEach((to, from, next) => {
             next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
           })
         }).catch(err => {
-            store.dispatch('LogOut').then(() => {
-              Message.error(err)
-              next({ path: '/' })
-            })
+          store.dispatch('LogOut').then(() => {
+            Message.error(err)
+            next({ path: '/' })
           })
+        })
       } else {
         next()
       }

+ 8 - 3
zkqy-ui/src/views/login.vue

@@ -287,13 +287,18 @@ export default {
       try {
         let res = await getLoginPageConfigurationInfo(query);
         if (res.code === 200) {
-          this.config = res.data;
-          this.setConfig();
+          if (res.data) {
+            this.config = res.data;
+            this.setConfig();
+          } else {
+            // this.$router.push("/404");
+            this.$message.error("获取页面信息失败,请检查url中的tenantId");
+          }
         } else {
           this.$message.error("获取页面信息失败,请检查tenantId");
         }
       } catch (error) {
-        this.$message.error("获取页面信息失败,请检查tenantId");
+        this.$message.error("获取页面信息失败,请检查网络");
       }
     },
     forgetEvent() {},

+ 145 - 14
zkqy-ui/src/views/system/bpmnPro/components/Panel/components/ElementAfterNode.vue

@@ -24,7 +24,29 @@
     </div>
     <el-dialog title="" :visible.sync="show" width="1200px">
       <div class="main-wrap">
-        <div class="header"></div>
+        <div class="header">
+          <el-select
+            v-model="tableName"
+            placeholder="请选择同步表格"
+            clearable
+            filterable
+            @change="tableChange"
+          >
+            <el-option
+              v-for="item in tableList"
+              :key="item.tableName"
+              :label="item.tableComment"
+              :value="item.tableName + '.' + item.tableComment"
+            >
+              <span class="discribe" style="float: left">{{
+                item.tableComment
+              }}</span>
+              <span style="float: right; color: #8492a6; font-size: 13px">{{
+                item.tableName
+              }}</span>
+            </el-option>
+          </el-select>
+        </div>
         <div class="list-wrap">
           <div class="left-wrap">
             <el-descriptions title="表单字段信息" :column="1">
@@ -55,8 +77,8 @@
             </el-form> -->
             <el-descriptions title="同步表格字段" :column="1" :colon="false">
               <el-descriptions-item
-                v-for="item in formItemsList"
-                :key="item.model"
+                v-for="(item, index) in listData"
+                :key="index"
               >
                 <div class="item-wrap">
                   <div class="switch-wrap">
@@ -69,12 +91,17 @@
                     >
                     </el-switch>
                   </div>
-                  <el-select clearable filterable @change="() => {}">
+                  <el-select
+                    v-model="item.fieldName"
+                    clearable
+                    filterable
+                    @change="() => {}"
+                  >
                     <el-option
-                      v-for="item in []"
-                      :key="item.value"
-                      :label="item.label"
-                      :value="item.value"
+                      v-for="field in tableItemList"
+                      :key="field.fieldName"
+                      :label="field.fieldDescription"
+                      :value="field.fieldName"
                     >
                     </el-option>
                   </el-select>
@@ -90,10 +117,10 @@
             </el-form> -->
             <el-descriptions title="默认值" :column="1" :colon="false">
               <el-descriptions-item
-                v-for="item in formItemsList"
-                :key="item.model"
+                v-for="(item, index) in listData"
+                :key="index"
               >
-                <el-input> </el-input>
+                <el-input v-model="item.defaultValue"> </el-input>
               </el-descriptions-item>
             </el-descriptions>
           </div>
@@ -102,7 +129,7 @@
       <template #footer>
         <span>
           <el-button @click="show = false">取消</el-button>
-          <el-button type="primary" @click="() => {}">确认</el-button>
+          <el-button type="primary" @click="confirmHandler">确认</el-button>
         </span>
       </template>
     </el-dialog>
@@ -120,6 +147,13 @@ import {
 import { getActive } from "@packages/bpmn-utils/BpmnDesignerUtils";
 import { getForm } from "@/api/dragform/form";
 import { getFormItems } from "@packages/bo-utils/getFormItems";
+import {
+  getFormName,
+  getListName,
+  dragTablePreview,
+} from "@/api/dragform/form.js";
+import { getDicts } from "@/api/system/dict/data";
+import { mapState } from "vuex";
 
 export default {
   name: "ElementAfterNode",
@@ -127,7 +161,11 @@ export default {
     return {
       afterNodeValue: "",
       show: false,
+      tableName: "",
       formItemsList: [],
+      tableList: [], //表格列表
+      tableItemList: [], //表格字段列表
+      listData: [],
     };
   },
 
@@ -137,7 +175,98 @@ export default {
       this.initFormData();
     });
   },
+  computed: {
+    ...mapState({
+      databaseName: (state) => state.user.dataSource.databaseName,
+      databaseType: (state) => state.user.dataSource.databaseType,
+      username: (state) => state.user.dataSource.username,
+      tenantId: (state) => state.user.tenant.tenantId,
+    }),
+  },
   methods: {
+    // 同步表格变换回调
+    async tableChange(val) {
+      console.log(val);
+      if (!val) {
+        this.tableItemList = [];
+        return;
+      }
+      let tableName = val.split(".")[0];
+      let tableComment = val.split(".")[1];
+      let data = {
+        databaseName: this.databaseName,
+        databaseType: this.databaseType,
+        tableName: tableName,
+      };
+      try {
+        let res = await getListName(data);
+        this.tableItemList = res.map((item) => {
+          let { fieldName, fieldDescription } = item;
+          return {
+            fieldName,
+            tableName,
+            tableComment,
+            fieldDescription,
+          };
+        });
+        this.initListData(this.tableItemList); //初始化列表数据
+      } catch (error) {
+        console.error(error);
+        this.$message.error("网络异常,请稍后再试");
+      }
+    },
+    // 初始化列表数据
+    initListData(tableItemList) {
+      let tableItemListLength = tableItemList.length;
+      let formItemsListLength = this.formItemsList.length;
+      let len =
+        tableItemListLength >= formItemsListLength
+          ? tableItemListLength
+          : formItemsListLength;
+      this.listData = Array.from(new Array(len), () => {
+        return {
+          fieldName: "",
+          isRelated: false,
+          defaultValue: "",
+        };
+      });
+    },
+    // 确认回调
+    confirmHandler() {
+      console.log(this.listData);
+      let temp = this.filterListData(this.listData);
+      console.log("temp", temp);
+    },
+    // 过滤数据返回有效数据
+    filterListData(data) {
+      let formItemsListLength = this.formItemsList.length;
+      let res = data.filter((item, index) => {
+        if (index < formItemsListLength) {
+          return item.fieldName && (item.isRelated || item.defaultValue);
+        } else {
+          return item.fieldName && item.defaultValue;
+        }
+      });
+      return res;
+    },
+    // 获取所有表格
+    async getAllTable() {
+      let data = {
+        databaseName: this.databaseName,
+        databaseType: this.databaseType,
+      };
+      let res = await getFormName(data);
+
+      const baseTable = await this.getDicts("base_table");
+
+      this.tableList = res.data.filter((item) => {
+        return !baseTable.data.some(
+          (value) =>
+            value.dictValue.toLowerCase() == item.tableName.toLowerCase()
+        );
+      });
+      console.log(this.tableList);
+    },
     initFormData() {
       this.afterNodeValue = getAfterNdoe(getActive()) || "";
     },
@@ -151,16 +280,18 @@ export default {
         this.$message.warning(`请在'常规信息'中绑定表单`);
         return;
       }
+      //获取表单数据
       try {
         let res = await getForm(fId);
         if (res.code == 200) {
           this.formItemsList = getFormItems(res.data.dfVueTemplate);
-          console.log(res);
+          this.getAllTable(); //获取所有表格数据
         } else {
           this.$message.error("网络异常请稍后再试");
         }
       } catch (e) {
-        this.$message.error(e.message);
+        console.log(e);
+        this.$message.error("网络异常请稍后再试");
       }
       this.show = true;
     },