Sfoglia il codice sorgente

Merge branch 'master' of http://62.234.61.92:3000/wjm/mec-cloud_IntelligentManufacturing_CRM

ZYZ 1 anno fa
parent
commit
715d6ef33f

+ 2 - 1
zkqy-system/src/main/java/com/zkqy/system/mapper/SysBpmNodeScriptMapper.java

@@ -2,6 +2,7 @@ package com.zkqy.system.mapper;
 
 import java.util.List;
 import com.zkqy.system.domain.SysBpmNodeScript;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 流程节点脚本Mapper接口
@@ -71,5 +72,5 @@ public interface SysBpmNodeScriptMapper
      * @param scriptKeys 唯一标识
      * @return
      */
-    List<SysBpmNodeScript> selectSysBpmNodeScriptByScriptKeys(List<String> scriptKeys);
+    List<SysBpmNodeScript> selectSysBpmNodeScriptByScriptKeys(@Param("scriptKeys") List<String> scriptKeys);
 }

+ 1 - 0
zkqy-system/src/main/java/com/zkqy/system/service/impl/SysBpmNodeScriptServiceImpl.java

@@ -1,5 +1,6 @@
 package com.zkqy.system.service.impl;
 
+import java.util.ArrayList;
 import java.util.List;
 import com.zkqy.common.utils.DateUtils;
 import com.zkqy.common.utils.SecurityUtils;

+ 2 - 2
zkqy-system/src/main/resources/mapper/system/SysBpmNodeScriptMapper.xml

@@ -35,7 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="scriptType != null "> and script_type = #{scriptType}</if>
             <if test="scriptDescription != null  and scriptDescription != ''"> and script_description = #{scriptDescription}</if>
             <if test="industryType != null"> and industry_type = #{industryType}</if>
-            <if test="tableName != null and tableName != ''"> and table_name = #{tableName}</if>
+            <if test="tableName != null and tableName != ''"> and table_name like concat('%', #{tableName}, '%')</if>
              order by create_time desc
     </select>
     
@@ -110,7 +110,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectSysBpmNodeScriptByScriptKeys"  resultMap="SysBpmNodeScriptResult">
         <include refid="selectSysBpmNodeScriptVo"/>
         where del_flag = '0' and script_key in
-        <foreach collection="list" item="scriptKey" open="(" close=")" separator=",">
+        <foreach collection="scriptKeys" item="scriptKey" open="(" close=")" separator=",">
             #{scriptKey}
         </foreach>
     </select>

+ 1 - 1
zkqy-system/src/main/resources/sql/initialize_sys_tenant_menu.json

@@ -1081,7 +1081,7 @@
         "updateTime": null,
         "remark": null,
         "menuId": 4218,
-        "menuName": "管道流程",
+        "menuName": "管道执行",
         "parentName": null,
         "parentId": 4216,
         "orderNum": 1,

+ 0 - 301
zkqy-ui/src/assets/styles/zkqy.css

@@ -1,301 +0,0 @@
-@charset "UTF-8";
-/**
- * 通用css样式布局处理
- * Copyright (c) 2019 zkqy
- */
-/** 基础通用 **/
-.pt5 {
-  padding-top: 5px;
-}
-
-.pr5 {
-  padding-right: 5px;
-}
-
-.pb5 {
-  padding-bottom: 5px;
-}
-
-.mt5 {
-  margin-top: 5px;
-}
-
-.mr5 {
-  margin-right: 5px;
-}
-
-.mb5 {
-  margin-bottom: 5px;
-}
-
-.mb8 {
-  margin-bottom: 8px;
-}
-
-.ml5 {
-  margin-left: 5px;
-}
-
-.mt10 {
-  margin-top: 10px;
-}
-
-.mr10 {
-  margin-right: 10px;
-}
-
-.mb10 {
-  margin-bottom: 10px;
-}
-
-.ml10 {
-  margin-left: 10px;
-}
-
-.mt20 {
-  margin-top: 20px;
-}
-
-.mr20 {
-  margin-right: 20px;
-}
-
-.mb20 {
-  margin-bottom: 20px;
-}
-
-.ml20 {
-  margin-left: 20px;
-}
-
-.h1,
-.h2,
-.h3,
-.h4,
-.h5,
-.h6,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-  font-family: inherit;
-  font-weight: 500;
-  line-height: 1.1;
-  color: inherit;
-}
-
-.el-message-box__status + .el-message-box__message {
-  word-break: break-word;
-}
-
-.el-dialog:not(.is-fullscreen) {
-  margin-top: 6vh !important;
-}
-
-.el-dialog__wrapper.scrollbar .el-dialog .el-dialog__body {
-  overflow: auto;
-  overflow-x: hidden;
-  max-height: 70vh;
-  padding: 10px 20px 0;
-}
-
-.el-table .el-table__header-wrapper th,
-.el-table .el-table__fixed-header-wrapper th {
-  word-break: break-word;
-  background-color: #f8f8f9;
-  color: #515a6e;
-  height: 40px;
-  font-size: 13px;
-}
-
-.el-table .el-table__body-wrapper .el-button [class*="el-icon-"] + span {
-  margin-left: 1px;
-}
-
-/** 表单布局 **/
-.form-header {
-  font-size: 15px;
-  color: #6379bb;
-  border-bottom: 1px solid #ddd;
-  margin: 8px 10px 25px 10px;
-  padding-bottom: 5px;
-}
-
-/** 表格布局 **/
-.pagination-container {
-  position: relative;
-  height: 25px;
-  margin-bottom: 10px;
-  margin-top: 15px;
-  padding: 10px 20px !important;
-}
-
-/* tree border */
-.tree-border {
-  margin-top: 5px;
-  border: 1px solid #e5e6e7;
-  background: #ffffff none;
-  border-radius: 4px;
-}
-
-.pagination-container .el-pagination {
-  right: 0;
-  position: absolute;
-}
-
-@media (max-width: 768px) {
-  .pagination-container .el-pagination > .el-pagination__jump {
-    display: none !important;
-  }
-  .pagination-container .el-pagination > .el-pagination__sizes {
-    display: none !important;
-  }
-}
-
-.el-table .fixed-width .el-button--mini {
-  padding-left: 0;
-  padding-right: 0;
-  width: inherit;
-}
-
-/** 表格更多操作下拉样式 */
-.el-table .el-dropdown-link,
-.el-table .el-dropdown-selfdefine {
-  cursor: pointer;
-  margin-left: 5px;
-}
-
-.el-table .el-dropdown,
-.el-icon-arrow-down {
-  font-size: 12px;
-}
-
-.el-tree-node__content > .el-checkbox {
-  margin-right: 8px;
-}
-
-.list-group-striped > .list-group-item {
-  border-left: 0;
-  border-right: 0;
-  border-radius: 0;
-  padding-left: 0;
-  padding-right: 0;
-}
-
-.list-group {
-  padding-left: 0px;
-  list-style: none;
-}
-
-.list-group-item {
-  border-bottom: 1px solid #e7eaec;
-  border-top: 1px solid #e7eaec;
-  margin-bottom: -1px;
-  padding: 11px 0px;
-  font-size: 13px;
-}
-
-.pull-right {
-  float: right !important;
-}
-
-.el-card__header {
-  padding: 14px 15px 7px;
-  min-height: 40px;
-}
-
-.el-card__body {
-  padding: 15px 20px 20px 20px;
-}
-
-.card-box {
-  padding-right: 15px;
-  padding-left: 15px;
-  margin-bottom: 10px;
-}
-
-/* button color */
-.el-button--cyan.is-active,
-.el-button--cyan:active {
-  background: #20b2aa;
-  border-color: #20b2aa;
-  color: #ffffff;
-}
-
-.el-button--cyan:focus,
-.el-button--cyan:hover {
-  background: #48d1cc;
-  border-color: #48d1cc;
-  color: #ffffff;
-}
-
-.el-button--cyan {
-  background-color: #20b2aa;
-  border-color: #20b2aa;
-  color: #ffffff;
-}
-
-/* text color */
-.text-navy {
-  color: #1ab394;
-}
-
-.text-primary {
-  color: inherit;
-}
-
-.text-success {
-  color: #1c84c6;
-}
-
-.text-info {
-  color: #23c6c8;
-}
-
-.text-warning {
-  color: #f8ac59;
-}
-
-.text-danger {
-  color: #ed5565;
-}
-
-.text-muted {
-  color: #888888;
-}
-
-/* image */
-.img-circle {
-  border-radius: 50%;
-}
-
-.img-lg {
-  width: 120px;
-  height: 120px;
-}
-
-.avatar-upload-preview {
-  position: relative;
-  top: 50%;
-  left: 50%;
-  transform: translate(-50%, -50%);
-  width: 200px;
-  height: 200px;
-  border-radius: 50%;
-  box-shadow: 0 0 4px #ccc;
-  overflow: hidden;
-}
-
-/* 拖拽列样式 */
-.sortable-ghost {
-  opacity: 0.8;
-  color: #fff !important;
-  background: #42b983 !important;
-}
-
-.top-right-btn {
-  position: relative;
-  float: right;
-}

File diff suppressed because it is too large
+ 0 - 0
zkqy-ui/src/assets/styles/zkqy.min.css


+ 1 - 8
zkqy-ui/src/layout/components/Sidebar/index.vue

@@ -81,14 +81,7 @@ export default {
       // return false;
     },
     openList() {
-      console.log(this.sidebarRouters);
-      let len = this.sidebarRouters.length;
-      let res = this.sidebarRouters.map((item) => item.path);
-      // for (let i = 0; i < len; i++) {
-      //   res.push(i);
-      // }
-      console.log(res);
-      return res;
+      return this.sidebarRouters.map((item) => item.path);
     },
   },
   methods: {

+ 44 - 3
zkqy-ui/src/views/bpmprocess/scriptManage.vue

@@ -6,7 +6,7 @@
       size="small"
       :inline="true"
       v-show="showSearch"
-      label-width="68px"
+      label-width="88px"
     >
       <el-form-item label="脚本编码" prop="scriptKey">
         <el-input
@@ -16,14 +16,14 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="脚本方法名称" prop="scriptFunctionName">
+      <!-- <el-form-item label="脚本方法名称" prop="scriptFunctionName">
         <el-input
           v-model="queryParams.scriptFunctionName"
           placeholder="请输入脚本方法名称"
           clearable
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item label="脚本名称" prop="scriptName">
         <el-input
           v-model="queryParams.scriptName"
@@ -32,6 +32,46 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
+      <el-form-item label="脚本类型" prop="scriptType">
+        <el-select
+            v-model="queryParams.scriptType"
+            placeholder="请选择脚本类型"
+            filterable
+            clearable 
+          >
+            <el-option
+              v-for="item in dict.type.bpm_script_type"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+      </el-form-item>
+      <el-form-item label="行业类型:" prop="industryType">
+          <el-select
+            v-model="queryParams.industryType"
+            placeholder="请选择行业类型"
+            filterable
+            clearable 
+          >
+            <el-option
+              v-for="item in dict.type.industry_type"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="数据表" prop="tableName">
+        <el-input
+          v-model="queryParams.tableName"
+          placeholder="请输入数据表"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
       <el-form-item>
         <el-button
           type="primary"
@@ -331,6 +371,7 @@ export default {
         scriptFunctionCode: null,
         scriptType: null,
         industryType: null,
+        tableName:null,
         scriptDescription: null,
       },
       // 表单参数

+ 71 - 34
zkqy-ui/src/views/system/user/profile/userAvatar.vue

@@ -1,9 +1,22 @@
 <template>
   <div>
-    <div class="user-info-head" @click="editCropper()"><img v-bind:src="options.img" title="点击上传头像" class="img-circle img-lg" /></div>
-    <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body @opened="modalOpened"  @close="closeDialog">
+    <div class="user-info-head" @click="editCropper()">
+      <img
+        v-bind:src="options.img"
+        title="点击上传头像"
+        class="img-circle img-lg"
+      />
+    </div>
+    <el-dialog
+      :title="title"
+      :visible.sync="open"
+      width="800px"
+      append-to-body
+      @opened="modalOpened"
+      @close="closeDialog"
+    >
       <el-row>
-        <el-col :xs="24" :md="12" :style="{height: '350px'}">
+        <el-col :xs="24" :md="12" :style="{ height: '350px' }">
           <vue-cropper
             ref="cropper"
             :img="options.img"
@@ -17,7 +30,7 @@
             v-if="visible"
           />
         </el-col>
-        <el-col :xs="24" :md="12" :style="{height: '350px'}">
+        <el-col :xs="24" :md="12" :style="{ height: '350px' }">
           <div class="avatar-upload-preview">
             <img :src="previews.url" :style="previews.img" />
           </div>
@@ -26,27 +39,50 @@
       <br />
       <el-row>
         <el-col :lg="2" :sm="3" :xs="3">
-          <el-upload action="#" :http-request="requestUpload" :show-file-list="false" :before-upload="beforeUpload">
+          <el-upload
+            action="#"
+            :http-request="requestUpload"
+            :show-file-list="false"
+            :before-upload="beforeUpload"
+          >
             <el-button size="small">
               选择
               <i class="el-icon-upload el-icon--right"></i>
             </el-button>
           </el-upload>
         </el-col>
-        <el-col :lg="{span: 1, offset: 2}" :sm="2" :xs="2">
-          <el-button icon="el-icon-plus" size="small" @click="changeScale(1)"></el-button>
+        <el-col :lg="{ span: 1, offset: 2 }" :sm="2" :xs="2">
+          <el-button
+            icon="el-icon-plus"
+            size="small"
+            @click="changeScale(1)"
+          ></el-button>
         </el-col>
-        <el-col :lg="{span: 1, offset: 1}" :sm="2" :xs="2">
-          <el-button icon="el-icon-minus" size="small" @click="changeScale(-1)"></el-button>
+        <el-col :lg="{ span: 1, offset: 1 }" :sm="2" :xs="2">
+          <el-button
+            icon="el-icon-minus"
+            size="small"
+            @click="changeScale(-1)"
+          ></el-button>
         </el-col>
-        <el-col :lg="{span: 1, offset: 1}" :sm="2" :xs="2">
-          <el-button icon="el-icon-refresh-left" size="small" @click="rotateLeft()"></el-button>
+        <el-col :lg="{ span: 1, offset: 1 }" :sm="2" :xs="2">
+          <el-button
+            icon="el-icon-refresh-left"
+            size="small"
+            @click="rotateLeft()"
+          ></el-button>
         </el-col>
-        <el-col :lg="{span: 1, offset: 1}" :sm="2" :xs="2">
-          <el-button icon="el-icon-refresh-right" size="small" @click="rotateRight()"></el-button>
+        <el-col :lg="{ span: 1, offset: 1 }" :sm="2" :xs="2">
+          <el-button
+            icon="el-icon-refresh-right"
+            size="small"
+            @click="rotateRight()"
+          ></el-button>
         </el-col>
-        <el-col :lg="{span: 2, offset: 6}" :sm="2" :xs="2">
-          <el-button type="primary" size="small" @click="uploadImg()">提 交</el-button>
+        <el-col :lg="{ span: 2, offset: 6 }" :sm="2" :xs="2">
+          <el-button type="primary" size="small" @click="uploadImg()"
+            >提 交</el-button
+          >
         </el-col>
       </el-row>
     </el-dialog>
@@ -57,14 +93,14 @@
 import store from "@/store";
 import { VueCropper } from "vue-cropper";
 import { uploadAvatar } from "@/api/system/user";
-import { debounce } from '@/utils'
+import { debounce } from "@/utils";
 
 export default {
   components: { VueCropper },
   props: {
     user: {
-      type: Object
-    }
+      type: Object,
+    },
   },
   data() {
     return {
@@ -80,10 +116,10 @@ export default {
         autoCropWidth: 200, // 默认生成截图框宽度
         autoCropHeight: 200, // 默认生成截图框高度
         fixedBox: true, // 固定截图框大小 不允许改变
-        outputType:"png" // 默认生成截图为PNG格式
+        outputType: "png", // 默认生成截图为PNG格式
       },
       previews: {},
-      resizeHandler: null
+      resizeHandler: null,
     };
   },
   methods: {
@@ -96,18 +132,17 @@ export default {
       this.visible = true;
       if (!this.resizeHandler) {
         this.resizeHandler = debounce(() => {
-          this.refresh()
-        }, 100)
+          this.refresh();
+        }, 100);
       }
-      window.addEventListener("resize", this.resizeHandler)
+      window.addEventListener("resize", this.resizeHandler);
     },
     // 刷新组件
     refresh() {
       this.$refs.cropper.refresh();
     },
     // 覆盖默认的上传行为
-    requestUpload() {
-    },
+    requestUpload() {},
     // 向左旋转
     rotateLeft() {
       this.$refs.cropper.rotateLeft();
@@ -124,7 +159,9 @@ export default {
     // 上传预处理
     beforeUpload(file) {
       if (file.type.indexOf("image/") == -1) {
-        this.$modal.msgError("文件格式错误,请上传图片类型,如:JPG,PNG后缀的文件。");
+        this.$modal.msgError(
+          "文件格式错误,请上传图片类型,如:JPG,PNG后缀的文件。"
+        );
       } else {
         const reader = new FileReader();
         reader.readAsDataURL(file);
@@ -135,13 +172,13 @@ export default {
     },
     // 上传图片
     uploadImg() {
-      this.$refs.cropper.getCropBlob(data => {
+      this.$refs.cropper.getCropBlob((data) => {
         let formData = new FormData();
         formData.append("avatarfile", data);
-        uploadAvatar(formData).then(response => {
+        uploadAvatar(formData).then((response) => {
           this.open = false;
           this.options.img = process.env.VUE_APP_BASE_API + response.imgUrl;
-          store.commit('SET_AVATAR', this.options.img);
+          store.commit("SET_AVATAR", this.options.img);
           this.$modal.msgSuccess("修改成功");
           this.visible = false;
         });
@@ -153,11 +190,11 @@ export default {
     },
     // 关闭窗口
     closeDialog() {
-      this.options.img = store.getters.avatar
+      this.options.img = store.getters.avatar;
       this.visible = false;
-      window.removeEventListener("resize", this.resizeHandler)
-    }
-  }
+      window.removeEventListener("resize", this.resizeHandler);
+    },
+  },
 };
 </script>
 <style scoped lang="scss">
@@ -168,7 +205,7 @@ export default {
 }
 
 .user-info-head:hover:after {
-  content: '+';
+  content: "+";
   position: absolute;
   left: 0;
   right: 0;

+ 8 - 2
zkqy-ui/src/views/tableMange/index.vue

@@ -1302,7 +1302,14 @@ export default {
       );
       if (isNotInclude) {
         fieldArr.push(
-          prefix + isNotInclude.tableName + "." + isNotInclude.fieldName
+          prefix +
+            isNotInclude.tableName +
+            "." +
+            isNotInclude.fieldName +
+            asOrSpace +
+            isNotInclude.tableName +
+            "_" +
+            isNotInclude.fieldName
         );
       }
     },
@@ -1630,7 +1637,6 @@ export default {
             // 更新路由
             this.reloadRouter();
             let conditions = this.$refs.dataFilterRef?.getConditions();
-            console.log(conditions);
             let conditionDefaultValueMap = {};
             conditions.map((item) => {
               conditionDefaultValueMap[item.fieldName] = encodeURIComponent(

+ 41 - 4
zkqy-ui/src/views/tool/datasheet/index.vue

@@ -22,7 +22,19 @@
         <span>数据表字段</span>
       </div>
       <el-form ref="tableform" :rules="tableform" :model="experienceDataForm">
-        <el-table :data="experienceData" stripe style="width: 100%">
+        <el-table
+          ref="dragTable"
+          :data="experienceData"
+          stripe
+          row-key="sort"
+          style="width: 100%"
+        >
+          <el-table-column
+            type="index"
+            label="序号"
+            width="50"
+            class-name="allowDrag"
+          />
           <el-table-column prop="fieldName" label="字段名称" width="200">
             <template slot-scope="scope">
               <el-form-item
@@ -178,6 +190,7 @@ import { createDatabase } from "@/api/datasheet/index";
 import { tableInfo, editTable } from "@/api/dataEngine/index";
 import { mapState } from "vuex";
 import { getDicts } from "@/api/system/dict/data";
+import Sortable from "sortablejs";
 export default {
   name: "Datasheet",
   // dicts: [
@@ -249,7 +262,9 @@ export default {
       this.experienceData = [];
     }
   },
-  mounted() {},
+  mounted() {
+    this.initDragTable();
+  },
   computed: {
     ...mapState({
       databaseName: (state) => state.user.dataSource.databaseName,
@@ -569,8 +584,9 @@ export default {
         databaseName: this.databaseName,
       };
       tableInfo(data).then((response) => {
-        response.data.forEach((item) => {
+        response.data.forEach((item, index) => {
           item.oldVal = JSON.parse(JSON.stringify(item)); // 保留原始数据
+          // item.sort = index;
           this.experienceData.push(item);
           this.handleRules("add");
         });
@@ -730,6 +746,8 @@ export default {
         this.experienceData = new Array();
       }
       let obj = {
+        sort: this.experienceData.length + 1,
+        tag: this.experienceData.length + 1,
         fieldName: "",
         fieldType: "",
         fieldLength: undefined,
@@ -878,7 +896,26 @@ export default {
         this.$tab.closePage();
       });
     },
+    //处理表格行拖拽
+    initDragTable() {
+      const el = this.$refs.dragTable.$el.querySelectorAll(
+        ".el-table__body-wrapper > table > tbody"
+      )[0];
+      const sortable = Sortable.create(el, {
+        handle: ".allowDrag",
+        onEnd: (evt) => {
+          const targetRow = this.experienceData.splice(evt.oldIndex, 1)[0];
+          this.experienceData.splice(evt.newIndex, 0, targetRow);
+          // for (let index in this.experienceData) {
+          //   this.experienceData[index].sort = parseInt(index) + 1;
+          // }
+          // this.$nextTick(() => {
+          //   this.$refs.dragTable.doLayout();
+          // });
+        },
+      });
+    },
   },
 };
 </script>
-<style scoped></style>
+<style scoped lang="scss"></style>

Some files were not shown because too many files changed in this diff