瀏覽代碼

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

zyz 1 年之前
父節點
當前提交
557d508f51
共有 26 個文件被更改,包括 517 次插入48 次删除
  1. 13 0
      zkqy-admin/src/main/java/com/zkqy/web/controller/system/SysTenantController.java
  2. 11 0
      zkqy-common/src/main/java/com/zkqy/common/core/domain/entity/SysUser.java
  3. 8 0
      zkqy-system/src/main/java/com/zkqy/system/mapper/SysTenantMapper.java
  4. 7 0
      zkqy-system/src/main/java/com/zkqy/system/service/ISysTenantService.java
  5. 2 0
      zkqy-system/src/main/java/com/zkqy/system/service/impl/SysMenuServiceImpl.java
  6. 69 2
      zkqy-system/src/main/java/com/zkqy/system/service/impl/SysTenantServiceImpl.java
  7. 4 0
      zkqy-system/src/main/resources/mapper/system/SysTenantMapper.xml
  8. 9 0
      zkqy-ui/src/api/system/tenant.js
  9. 31 0
      zkqy-ui/src/assets/js/kFormDesign.js
  10. 5 5
      zkqy-ui/src/components/kFormDesign/OptionsEdit.vue
  11. 1 0
      zkqy-ui/src/components/updateModule/k-form-design/packages/components/KBatch/batch.vue
  12. 38 2
      zkqy-ui/src/components/updateModule/k-form-design/packages/components/KChangeOption/index.vue
  13. 2 0
      zkqy-ui/src/components/updateModule/k-form-design/packages/components/KFormBuild/index.vue
  14. 6 1
      zkqy-ui/src/components/updateModule/k-form-design/packages/components/KFormDesign/index.vue
  15. 104 6
      zkqy-ui/src/components/updateModule/k-form-design/packages/components/KFormDesign/module/formItemProperties.vue
  16. 52 0
      zkqy-ui/src/components/updateModule/k-form-design/packages/components/KFormDesign/module/layoutItem.vue
  17. 8 1
      zkqy-ui/src/components/updateModule/k-form-design/packages/components/KFormItem/index.vue
  18. 5 0
      zkqy-ui/src/components/updateModule/k-form-design/packages/components/KFormPreview/index.vue
  19. 1 0
      zkqy-ui/src/components/updateModule/k-form-design/packages/components/KSlider/KSlider.vue
  20. 2 0
      zkqy-ui/src/components/updateModule/k-form-design/packages/components/KTableShow/index.js
  21. 68 0
      zkqy-ui/src/components/updateModule/k-form-design/packages/components/KTableShow/index.vue
  22. 5 5
      zkqy-ui/src/views/asEditor/components/rightslider/investigatestyle/index.vue
  23. 6 4
      zkqy-ui/src/views/asEditor/layout/home/index.vue
  24. 1 0
      zkqy-ui/src/views/system/excuteBtnMange/index.vue
  25. 32 14
      zkqy-ui/src/views/system/tenant/code/index.vue
  26. 27 8
      zkqy-ui/src/views/system/tenant/tenantIndex.vue

+ 13 - 0
zkqy-admin/src/main/java/com/zkqy/web/controller/system/SysTenantController.java

@@ -1,6 +1,7 @@
 package com.zkqy.web.controller.system;
 
 import java.util.List;
+import java.util.Map;
 import javax.servlet.http.HttpServletResponse;
 
 import com.zkqy.common.annotation.Anonymous;
@@ -56,6 +57,18 @@ public class SysTenantController extends BaseController {
         return getDataTable(list);
     }
 
+    /**
+     * 激活码页面查询租户信息列表
+     * @return
+     */
+    @GetMapping("/getCodeTenantAllList")
+    public TableDataInfo getCodeTenantAllList() {
+        List<Map<String, Object>> list = sysTenantService.selectCodeTenantAllList();
+        return getDataTable(list);
+    }
+
+
+
     /**
      * 导出租户信息列表
      */

+ 11 - 0
zkqy-common/src/main/java/com/zkqy/common/core/domain/entity/SysUser.java

@@ -71,6 +71,17 @@ public class SysUser extends BaseEntity
     @Excel(name = "最后登录IP", type = Type.EXPORT)
     private String loginIp;
 
+    @Excel(name = "最后登录IP", type = Type.EXPORT)
+    private String isCanTools;
+
+    public String getIsCanTools() {
+        return isCanTools;
+    }
+
+    public void setIsCanTools(String isCanTools) {
+        this.isCanTools = isCanTools;
+    }
+
     /** 最后登录时间 */
     @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
     private Date loginDate;

+ 8 - 0
zkqy-system/src/main/java/com/zkqy/system/mapper/SysTenantMapper.java

@@ -51,6 +51,14 @@ public interface SysTenantMapper {
      */
     public List<SysTenant> selectSysTenantList(SysTenant sysTenant);
 
+    /**
+     * 查询租户信息列表
+     * 不分页,查询激活码租户列表
+     * @return 租户信息集合
+     */
+    public List<SysTenant> selectCodeSysTenantList();
+
+
     /**
      * 新增租户信息
      *

+ 7 - 0
zkqy-system/src/main/java/com/zkqy/system/service/ISysTenantService.java

@@ -1,6 +1,7 @@
 package com.zkqy.system.service;
 
 import java.util.List;
+import java.util.Map;
 
 import com.zkqy.common.core.domain.AjaxResult;
 import com.zkqy.common.core.domain.entity.SysTenant;
@@ -106,4 +107,10 @@ public interface ISysTenantService {
      * @return
      */
     List<SysTenant> selectTenantTree(Long tenantId);
+
+    /**
+     * 激活码页面查询所有的租户信息
+     * @return
+     */
+    List<Map<String, Object>> selectCodeTenantAllList();
 }

+ 2 - 0
zkqy-system/src/main/java/com/zkqy/system/service/impl/SysMenuServiceImpl.java

@@ -138,6 +138,8 @@ public class SysMenuServiceImpl implements ISysMenuService {
             menus = menuMapper.selectMenuTreeAll();
         } else if (user.isTenantAdmin()) {
             menus = menuMapper.selectTenantMenuTreeAll(user.getTenantId());
+        } else if(user.getIsCanTools().equals("0")){
+            menus = menuMapper.selectTenantMenuTreeAll(user.getTenantId());
         } else {
             menus = menuMapper.selectMenuTreeByUserId(userId);
         }

+ 69 - 2
zkqy-system/src/main/java/com/zkqy/system/service/impl/SysTenantServiceImpl.java

@@ -7,6 +7,7 @@ import java.time.ZoneOffset;
 import java.time.temporal.ChronoUnit;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 import cn.hutool.core.date.LocalDateTimeUtil;
@@ -28,6 +29,7 @@ import com.zkqy.system.domain.SysTenantMenu;
 import com.zkqy.system.mapper.*;
 import com.zkqy.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ClassPathResource;
 import org.springframework.core.io.Resource;
 import org.springframework.core.io.ResourceLoader;
 import org.springframework.data.redis.core.StringRedisTemplate;
@@ -200,9 +202,11 @@ public class SysTenantServiceImpl implements ISysTenantService {
 //        module.addDeserializer(Date.class, new CustomDateDeserializer());
 //        objectMapper.registerModule(module);
         try {
-            Resource resource = resourceLoader.getResource("classpath:sql/initialize_sys_tenant_menu.json");
+            //这个东西在部署环境下会出现问题
+//            Resource resource = resourceLoader.getResource("classpath:sql/initialize_sys_tenant_menu.json");
+            Resource resource = new ClassPathResource("sql/initialize_sys_tenant_menu.json");
             //获取租户默认菜单信息
-            List<SysMenu> menus = objectMapper.readValue(resource.getFile(), objectMapper.getTypeFactory().constructCollectionType(List.class, SysMenu.class));
+            List<SysMenu> menus = objectMapper.readValue(resource.getInputStream(), objectMapper.getTypeFactory().constructCollectionType(List.class, SysMenu.class));
             //字符串备用方案
             //List<SysMenu> menus = JSON.parseObject(ass, new TypeReference<List<SysMenu>>() {});
 //            int a=10/0;
@@ -360,6 +364,69 @@ public class SysTenantServiceImpl implements ISysTenantService {
         return sysTenantMapper.selectTenantTree(tenantId);
     }
 
+    @Override
+    public List<Map<String, Object>> selectCodeTenantAllList() {
+/*        {
+            id: 1,
+                    label: 'a',
+                children: [
+            {
+                id: 4,
+                        label: 'aa',
+                    children: [
+                {
+                    id: 6,
+                            label: 'aaa',
+                }
+              ],
+            }
+          ],
+        },*/
+        List<SysTenant> sysTenants = sysTenantMapper.selectCodeSysTenantList();
+        List<Map<String, Object>> maps = this.buildTree(sysTenants);
+        return maps;
+    }
+
+    public List<Map<String, Object>> buildTree(List<SysTenant> sysTenants) {
+        // 构造一个Map,方便根据tenantId查找SysTenant
+        Map<Long, SysTenant> tenantMap = sysTenants.stream()
+                .collect(Collectors.toMap(SysTenant::getTenantId, Function.identity()));
+        // 获取所有父节点
+        List<Map<String, Object>> parentNodes = sysTenants.stream()
+                .filter(m -> m.getTenantParentId().equals("0"))
+                .map(sysTenant -> {
+                    Map<String, Object> node = new HashMap<>();
+                    node.put("id", sysTenant.getTenantId());
+                    node.put("label", sysTenant.getTenantName());
+                    // 递归查找子节点
+                    List<Map<String, Object>> children = findChildren(sysTenant.getTenantId(), tenantMap);
+                    if (!children.isEmpty()) {
+                        node.put("children", children);
+                    }
+                    return node;
+                })
+                .collect(Collectors.toList());
+
+        return parentNodes;
+    }
+
+    private List<Map<String, Object>> findChildren(Long parentId, Map<Long, SysTenant> tenantMap) {
+        return tenantMap.values().stream()
+                .filter(child -> child.getTenantParentId().equals(parentId.toString()))
+                .map(child -> {
+                    Map<String, Object> childNode = new HashMap<>();
+                    childNode.put("id", child.getTenantId());
+                    childNode.put("label", child.getTenantName());
+                    // 递归查找孙子节点
+                    List<Map<String, Object>> grandchildren = findChildren(child.getTenantId(), tenantMap);
+                    if (!grandchildren.isEmpty()) {
+                        childNode.put("children", grandchildren);
+                    }
+                    return childNode;
+                })
+                .collect(Collectors.toList());
+    }
+
     /**
      * 从当前时间往后续期租户时间
      *

+ 4 - 0
zkqy-system/src/main/resources/mapper/system/SysTenantMapper.xml

@@ -156,4 +156,8 @@
         and tenant_parent_id = #{tenantId} or tenant_id = #{tenantId}
     </select>
 
+    <select id="selectCodeSysTenantList"  resultMap="SysTenantResult">
+        <include refid="selectSysTenantVo"/>
+    </select>
+
 </mapper>

+ 9 - 0
zkqy-ui/src/api/system/tenant.js

@@ -116,3 +116,12 @@ export function activationOperation(data) {
     method: 'get',
   })
 }
+
+
+
+export function getCodeTenantAllList() {
+  return request({
+    url: `/system/tenant/getCodeTenantAllList`,
+    method: 'get',
+  })
+}

+ 31 - 0
zkqy-ui/src/assets/js/kFormDesign.js

@@ -444,6 +444,37 @@ let tempData = [
         "key": "",
         "help": ""
       },
+      {
+        "type": "tableShow",
+        "label": "表格",
+        tableName: '',
+        "icon": "icon-table",
+        "list": [],
+        "options": {
+          // noFormItem: true,
+          showLabel: false,
+        },
+        "columns": [
+          // {
+          //   prop: "name",
+          //   label: "姓名",
+          //   width: 120,
+          // }
+        ],
+        "tableData": [
+          // {
+          //   name: "张三",
+          // }
+        ],
+        "model": "",
+        "key": "",
+        "rules": [
+          {
+            "required": false,
+            "message": "必填项"
+          }
+        ]
+      },
       {
         "type": "selectInputList",
         "label": "选择输入列",

+ 5 - 5
zkqy-ui/src/components/kFormDesign/OptionsEdit.vue

@@ -447,7 +447,7 @@ export default {
     myDynamicKey: {
       handler(nval) {
         this.formData.dynamicName = nval;
-        console.log(this.formData.dynamicName);
+        // console.log(this.formData.dynamicName);
       },
       deep: true,
     },
@@ -470,7 +470,7 @@ export default {
     },
     myOptions: {
       handler(nval) {
-        console.log("options", nval);
+        // console.log("options", nval);
         this.btnList = [];
         this.reset();
         if (nval.sqlData && nval.sqlData.dynamicName == nval.dynamicKey) {
@@ -481,7 +481,7 @@ export default {
             };
           });
         }
-        console.log(this.btnList);
+        // console.log(this.btnList);
       },
       deep: true,
       immediate: true,
@@ -562,7 +562,7 @@ export default {
       // }
       this.editIndex = editIndex;
       let currentItem = this.btnList[editIndex];
-      console.log(currentItem, "currentItem");
+      // console.log(currentItem, "currentItem");
       if (currentItem?.echoData) {
         let { formData, filterTableData, flagFormData } = JSON.parse(
           currentItem.echoData
@@ -679,7 +679,7 @@ export default {
     },
   },
   async mounted() {
-    console.log(this.options, this.selectItem);
+    // console.log(this.options, this.selectItem);
     // if (this.selectItem.options.sqlData) {
     //   this.btnList = this.selectItem.options.sqlData.echoDatas.map((item) => {
     //     return {

+ 1 - 0
zkqy-ui/src/components/updateModule/k-form-design/packages/components/KBatch/batch.vue

@@ -104,6 +104,7 @@ export default {
       return this.record.list.filter(item => !item.options.hidden).length;
     },
     columns() {
+      console.log(this.record);
       const columns = [];
       if (!this.record.options.hideSequence) {
         columns.push({

+ 38 - 2
zkqy-ui/src/components/updateModule/k-form-design/packages/components/KChangeOption/index.vue

@@ -3,7 +3,19 @@
     <a-row v-if="type === 'option' || type === 'tab'" :gutter="8">
       <div class="option-change-box" v-for="(val, index) in value" :key="index">
         <a-col :span="9"><Input v-model="val.label" placeholder="名称"/></a-col>
-        <a-col :span="9"><Input v-model="val.value" placeholder="值"/></a-col>
+        <a-col :span="9">
+          <!-- <Input v-model="val.value" placeholder="值"/> -->
+          <el-select v-model="val.value" placeholder="请选择" filterable>
+            <el-option
+              v-for="item in tableList"
+              :key="item.tableName"
+              :label="item.tableComment"
+              :value="item.tableName">
+              <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>
+          </a-col>
         <a-col :span="6"
           ><div @click="handleDelete(index)" class="option-delete-box">
             <a-icon type="delete" /></div
@@ -48,19 +60,23 @@
   </div>
 </template>
 <script>
+import { mounted } from 'vue2-ace-editor'
 /*
  * author kcz
  * date 2019-11-20
  * description 修改多选、下拉、单选等控件options的组件,添加移除校验规制的组件
  */
+import { getUncommonTable } from '@/utils/other';
 import { pluginManager } from "../../utils/index";
 const Input = pluginManager.getComponent("input").component;
 const InputNumber = pluginManager.getComponent("number").component;
+const Select = pluginManager.getComponent("select").component;
 export default {
   name: "KChangeOption",
   components: {
     Input,
-    InputNumber
+    InputNumber,
+    Select
   },
   props: {
     value: {
@@ -70,9 +86,29 @@ export default {
     type: {
       type: String,
       default: "option"
+    },
+    tableList:{
+      type: Array,
+      default:()=>[],
+    }
+  },
+  data() {
+    return {
+      // tableOptions: [],
     }
   },
+  mounted() {
+    // this.getTableList();
+  },
   methods: {
+    // 获取表格list
+    async getTableList() {
+      let par = {
+        ... this.$store.state.user.dataSource
+      }
+      let res = await getUncommonTable()
+      this.tableOptions=res||[]
+    },
     handleAdd() {
       // 添加
       const addData = [

+ 2 - 0
zkqy-ui/src/components/updateModule/k-form-design/packages/components/KFormBuild/index.vue

@@ -101,6 +101,7 @@ export default {
       this.form.resetFields();
     },
     getData() {
+      console.log('this.form',this.form);
       // 提交函数,提供父级组件调用
       return new Promise((resolve, reject) => {
         try {
@@ -145,6 +146,7 @@ export default {
         }
       });
     },
+    getselectData(){},
     setData(json) {
       return new Promise((resolve, reject) => {
         lazyLoadTick.nextTick(() => {

+ 6 - 1
zkqy-ui/src/components/updateModule/k-form-design/packages/components/KFormDesign/index.vue

@@ -83,7 +83,8 @@
               <slot name="right-action"></slot>
             </template>
           </operatingArea>
-          <!-- 操作区域 end -->
+          <!-- 操作区域 end --> 
+          <!-- 中间控件渲染区域 start -->
           <k-form-component-panel
             :class="{ 'no-toolbars-top': !toolbarsTop }"
             :data="data"
@@ -94,6 +95,8 @@
             ref="KFCP"
             @handleSetSelectItem="handleSetSelectItem"
           />
+          <!-- 中间控件渲染区域 end -->
+
           <!-- 操作区域 start -->
           <k-json-modal ref="jsonModal" />
           <k-code-modal ref="codeModal" />
@@ -302,6 +305,8 @@ export default {
     },
     handleListPush(item) {
       // 双击控件按钮push到list
+      console.log(this.selectItem);
+      console.log(item);
       // 生成key值
       if (!this.selectItem.key) {
         // 在没有选择表单时,将数据push到this.data.list

+ 104 - 6
zkqy-ui/src/components/updateModule/k-form-design/packages/components/KFormDesign/module/formItemProperties.vue

@@ -9,7 +9,7 @@
 
       <a-form v-show="selectItem.key !== ''">
         <a-form-item v-if="isDefined(selectItem.label)" label="标签">
-          <Input v-model="selectItem.label" placeholder="请输入" />
+          <Input v-model="selectItem.label" @input="seeSelectItem" placeholder="请输入" />
         </a-form-item>
 
         <!-- +++ -->
@@ -51,6 +51,22 @@
             </el-option>
           </el-select>
         </a-form-item>
+        <a-form-item
+          v-if="!hideModel && isDefined(selectItem.columns)"
+          label="编辑列"
+        >
+        <el-button type="primary" icon="el-icon-edit" @click="editTableColumns(selectItem)">编辑</el-button>
+          <!-- <el-select v-model="selectItem.model" @change="changeModel" filterable placeholder="请选择">
+            <el-option
+              v-for="item in formList.listName"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
+              <span style="float: left">{{ item.label }}</span>
+      <span style="float: right; color: #8492a6; font-size: 13px">{{ item.fieldDescription }}</span>
+            </el-option>
+          </el-select> -->
+        </a-form-item>
        
         <!-- input type start -->
         <a-form-item v-if="selectItem.type === 'input'" label="输入框type">
@@ -161,7 +177,7 @@
           v-if="['tabs', 'selectInputList'].includes(selectItem.type)"
           :label="selectItem.type === 'tabs' ? '页签配置' : '列选项配置'"
         >
-          <KChangeOption v-model="selectItem.columns" type="tab" />
+          <KChangeOption v-model="selectItem.columns" :tableList="formList.formName" type="tab" />
         </a-form-item>
         <!-- tabs配置 end -->
         <a-form-item v-if="selectItem.type === 'grid'" label="栅格间距">
@@ -562,10 +578,57 @@
         </a-form-item>
       </a-form>
     </div>
+    <!-- 表格展示数据弹窗 -->
+    <el-dialog
+      :visible.sync="tableShowData.isShow"
+      :modal-append-to-body="false"
+      :append-to-body="true"
+      title="表格展示数据"
+      width="500px"
+    >
+    <div class="ben-list mb5" >
+      <el-button type="primary" size="small" icon="el-icon-plus" @click="addOneColumn">添加一列</el-button>
+      <el-button size="small" icon="el-icon-close" @click="tableShowData.isShow=false">关闭</el-button>
+    </div>
+    
+    <div class="table-wrap">
+    <el-table v-if="selectItem" :data="selectItem.columns||[]" border stripe>
+    <el-table-column type="index" width="50" />
+    <el-table-column prop="prop" label="字段">
+      <template slot-scope="scope">
+        <el-select v-model="scope.row.prop" filterable size="mini">
+      <el-option
+              v-for="item in formList.listName"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
+              <span style="float: left">{{ item.label }}</span>
+      <span style="float: right; color: #8492a6; font-size: 13px">{{ item.fieldDescription }}</span>
+            </el-option>
+      </el-select>
+      </template>
+      
+    </el-table-column>
+    <el-table-column prop="label" label="描述">
+      <template slot-scope="scope">
+        <el-input v-model="scope.row.label"  size="mini" clearable ></el-input>
+        
+      </template>
+    </el-table-column>
+    <el-table-column label="操作">
+      <template slot-scope="scope">
+        <el-button type="text" size="mini" icon="el-icon-delete" @click="handleDelete(scope.$index)">删除</el-button>
+      </template>
+    </el-table-column>
+    
+    </el-table>
+    </div>
+    </el-dialog>
   </div>
 </template>
 
 <script>
+import { message } from 'ant-design-vue'
 /*
  * author kcz
  * date 2019-11-20
@@ -688,6 +751,10 @@ export default {
         listName:[],
         tableName:""
       },
+      tableShowData: {
+        isShow: false,
+        columns:[]
+      }
     };
   },
   computed: {
@@ -707,9 +774,34 @@ export default {
     hideModel: {
       type: Boolean,
       default: false
-    }
+    },
+    
   },
   methods: {
+    // 删除一列
+    handleDelete(index){
+      this.selectItem.columns.splice(index,1)
+    },
+    // 添加一列
+    addOneColumn(){
+      this.selectItem.columns.push({
+        label:'',
+        prop:'',
+      })
+    },
+    // 编辑tableShow的列
+    editTableColumns() {
+      if(!this.selectItem.tableName){
+        this.$message.warning('请先选择表名')
+        return
+      }
+      console.log(this.selectItem)
+      this.tableShowData.isShow = true;
+      
+    },
+    seeSelectItem() {
+      console.log('selectItem',this.selectItem);
+    },
     // 列名变化回调
     changeModel() {
       console.log('列',this.selectItem);
@@ -725,12 +817,13 @@ export default {
      * @param {*} value
      */
     isDefined(value) {
+
       return typeof value !== "undefined";
     },
     // 判断是否需要列名
     isNeedColumn(value) {
       console.log(value.type);
-      let notNeedColumnList = ['batch', 'selectInputList'];
+      let notNeedColumnList = ['batch', 'selectInputList','tableShow'];
       if (notNeedColumnList.includes(value.type)) {
         return false;
       } else {
@@ -753,7 +846,9 @@ export default {
       let flag=notNeedColumnList.includes(item.type)
       if (flag) {
       item.model='batch.'+item.tableName
-      } else {
+      } else if(item.type){
+        item.model=item.tableName
+      }else {
       item.model=''
     }
       let par2 = {
@@ -796,5 +891,8 @@ export default {
   overflow:hidden;
   text-overflow:ellipsis;
 }
-
+.table-wrap{
+  max-height: 500px;
+  overflow-y: scroll
+}
 </style>

+ 52 - 0
zkqy-ui/src/components/updateModule/k-form-design/packages/components/KFormDesign/module/layoutItem.vue

@@ -476,6 +476,58 @@
       </div>
     </template>
     <!-- 表格布局 end -->
+    <!-- 表格展示  start -->
+    <template v-else-if="record.type === 'tableShow'">
+      <div
+        class="table-box"
+        :class="{ active: record.key === selectItem.key }"
+        @click.stop="handleSelectItem(record)"
+        style="overflow: scroll;"
+
+      >
+        <table
+          class="table-layout kk-table-9136076486841527"
+          :class="{
+            bright: record.options.bright,
+            small: record.options.small,
+            bordered: record.options.bordered
+          }"
+          
+        >
+          <tr>
+            <td>
+              <input type="checkbox"></input>
+            </td>
+            <td
+              class="table-td"
+              v-for="(item, idnex) in record.columns"
+              :key="idnex"
+              style="padding: 0 10px;overflow:hidden;"
+              @contextmenu.prevent="
+                $emit('handleShowRightMenu', $event, record, trIndex, tdIndex)
+              "
+            >
+            <span style="display:block;white-space: nowrap;line-height:45px;">{{ item.label }}</span>
+            </td>
+          </tr>
+        </table>
+        <div
+          class="copy"
+          :class="record.key === selectItem.key ? 'active' : 'unactivated'"
+          @click.stop="$emit('handleCopy')"
+        >
+          <a-icon type="copy" />
+        </div>
+        <div
+          class="delete"
+          :class="record.key === selectItem.key ? 'active' : 'unactivated'"
+          @click.stop="$emit('handleDelete')"
+        >
+          <a-icon type="delete" />
+        </div>
+      </div>
+    </template>
+    <!-- 表格展示  end -->
     <template v-else>
       <formNode
         :key="record.key"

+ 8 - 1
zkqy-ui/src/components/updateModule/k-form-design/packages/components/KFormItem/index.vue

@@ -11,6 +11,7 @@
     v-bind="getComponentProps"
     @hook:mounted="childMounted"
     :is="componentItem"
+    @change="handleChange"
   ></component>
   <!-- 可隐藏label -->
   <a-form-item
@@ -74,6 +75,7 @@
  */
 import { pluginManager, lazyLoadTick } from "../../utils/index";
 import textShow from '../KTextShow/index.js'
+import tableShow from '../KTableShow/index.js'
 const _ = require("lodash/object");
 let ComponentArray = pluginManager.getComponents();
 
@@ -193,11 +195,15 @@ export default {
      */
 
     componentItem() {
-      
+      // console.log(ComponentArray);
       ComponentArray.textShow = {
         component: textShow,
         bindModel:'value'
       }
+      ComponentArray.tableShow={
+        component: tableShow,
+        bindModel:'value'
+      }
       return ComponentArray[this.record.type].component;
     },
     componentOption() {
@@ -226,6 +232,7 @@ export default {
         value = e.target.value;
       }
       console.log(this.record);
+      console.log(e,this.record.model);
       // 传递change事件
       this.$emit("change", value, this.record.model);
     },

+ 5 - 0
zkqy-ui/src/components/updateModule/k-form-design/packages/components/KFormPreview/index.vue

@@ -64,15 +64,20 @@ export default {
      * 手动验证获取表单数据
      */
     async handleGetData() {
+      // 获取表单数据
       this.$refs.KFormBuild.getData()
         .then(res => {
           console.log(res, "获取数据成功");
+          // 获取自定义  表格  勾选数据
+          let selectData= this.$refs.KFormBuild.getselectData()
           this.$refs.jsonModel.jsonData = res;
           this.$refs.jsonModel.visible = true;
         })
         .catch(err => {
           console.log(err, "获取数据失败");
         });
+      
+      
     },
     /**
      * 监听表单change 事件

+ 1 - 0
zkqy-ui/src/components/updateModule/k-form-design/packages/components/KSlider/KSlider.vue

@@ -26,6 +26,7 @@ export default {
         return this.value;
       },
       set(e) {
+        console.log(e);
         this.$emit("change", e);
       }
     }

+ 2 - 0
zkqy-ui/src/components/updateModule/k-form-design/packages/components/KTableShow/index.js

@@ -0,0 +1,2 @@
+import KTableShow from "./index.vue";
+export default KTableShow;

+ 68 - 0
zkqy-ui/src/components/updateModule/k-form-design/packages/components/KTableShow/index.vue

@@ -0,0 +1,68 @@
+<!--
+ * @Description: 动态表格 用于批量填入数据
+ * @Author: kcz
+ * @Date: 2020-03-27 18:36:56
+ * @LastEditors: kcz
+ * @LastEditTime: 2022-10-31 20:40:41
+ -->
+<template>
+  <div class="table-wrap" >
+    <el-table :data="tempData" border stripe @selection-change="handleSelectionChange">
+    <el-table-column type="selection" width="55" />
+    <el-table-column type="index" width="50" label="序号"/>
+    <el-table-column align="center" v-for="col in record.columns"
+    :prop="col.prop"
+    :key="col.prop"
+    :label="col.label">
+    </el-table-column>
+    </el-table>
+    
+  </div>
+</template>
+
+<script>
+import KFormModelItem from "../KFormModelItem/KFormModelItem";
+import { pluginManager, getUUID } from "../../utils/index";
+const Button = pluginManager.getComponent("aButton").component;
+
+export default {
+  name: "KTableShow",
+
+  props: ["record", "value", "dynamicData", "config", "parentDisabled"],
+
+  components: {
+    KFormModelItem,
+    Button
+  },
+  watch: {
+    
+  },
+  data() {
+    return {
+      tempData:[
+        {
+          id:'1',
+          user_name:'张三',
+        }
+      ],
+    };
+  },
+  computed: {
+    
+  },
+  methods: {
+    handleSelectionChange(selection){
+      console.log('selection',selection);
+      this.$emit('change',selection.map(item=>item.id))
+    },
+    
+  },
+  created() {
+    console.log('record',this.record);
+    console.log('value',this.value);
+    console.log('dynamicData',this.dynamicData);
+    console.log('parentDisabled',this.parentDisabled);
+    console.log('config',this.config);
+  }
+};
+</script>

+ 5 - 5
zkqy-ui/src/views/asEditor/components/rightslider/investigatestyle/index.vue

@@ -10,7 +10,7 @@
       </p>
     </div>
     <!-- <el-from ref="form" :model="datas" label-width="80px">
-      
+
     </el-from>-->
     <el-form ref="form" :model="datas" label-width="80px">
       <el-form-item label="表单名称">
@@ -199,7 +199,7 @@
           @input="item.value1 = item.value.split('#')"
           placeholder="多项之间用‘#’逗号隔开"
           v-if="
-            item.type !== 0 && item.optionType === '' 
+            item.type !== 0 && item.optionType === ''
           "
         ></el-input>
       </el-form-item>
@@ -543,9 +543,9 @@ export default {
         margin-bottom: 10px;
       }
       /* &:nth-child(3) {
-         width: 90%; 
-        
-        / flex: 1; 
+         width: 90%;
+
+        / flex: 1;
       } */
       &:nth-child(4) {
         width: 100%;

+ 6 - 4
zkqy-ui/src/views/asEditor/layout/home/index.vue

@@ -30,7 +30,7 @@
         >
       </el-form-item>
     </el-form>
-
+<!--    v-hasPermi="['system:data:add']"-->
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
         <el-button
@@ -39,7 +39,7 @@
           icon="el-icon-plus"
           size="mini"
           @click="handleAdd"
-          v-hasPermi="['system:data:add']"
+
           >新增</el-button
         >
       </el-col>
@@ -55,6 +55,7 @@
           >修改</el-button
         >
       </el-col>
+<!--                v-hasPermi="['system:data:remove']"-->
       <el-col :span="1.5">
         <el-button
           type="danger"
@@ -63,10 +64,11 @@
           size="mini"
           :disabled="multiple"
           @click="handleDelete"
-          v-hasPermi="['system:data:remove']"
+
           >删除</el-button
         >
       </el-col>
+<!--      v-hasPermi="['system:data:export']"-->
       <el-col :span="1.5">
         <el-button
           type="warning"
@@ -74,7 +76,7 @@
           icon="el-icon-download"
           size="mini"
           @click="handleExport"
-          v-hasPermi="['system:data:export']"
+
           >导出</el-button
         >
       </el-col>

+ 1 - 0
zkqy-ui/src/views/system/excuteBtnMange/index.vue

@@ -1509,6 +1509,7 @@ export default {
         btnSort: 0, //按钮顺序
         btnKey: "",
       };
+      this.conditionData = [];
       this.commonFieldData = [];
       this.btnHidenCondtionData = [];
       this.resetForm("btnGroupFormRef");

+ 32 - 14
zkqy-ui/src/views/system/tenant/code/index.vue

@@ -8,20 +8,25 @@
         label-width="80px"
       >
         <el-form-item label="租户信息" prop="tenantCode">
-          <el-select
-            v-model="activationCode.tenantCode"
-            placeholder="请选择"
-            filterable
-          >
-            <el-option
-              v-for="item in tenantList"
-              :key="item.tenantId"
-              :label="item.tenantName"
-              :value="item.tenantId"
-            >
-            </el-option>
-          </el-select>
+              <treeselect v-model="activationCode.tenantCode" :options="tenantRows" :multiple="false" :disable-branch-nodes="false"
+                      :clear-on-select="true" :flat="true" :show-count="true" placeholder="请选择租户" style="width: 217px" />
         </el-form-item>
+
+<!--        <el-form-item label="租户信息" prop="tenantCode">-->
+<!--          <el-select-->
+<!--            v-model="activationCode.tenantCode"-->
+<!--            placeholder="请选择"-->
+<!--            filterable-->
+<!--          >-->
+<!--            <el-option-->
+<!--              v-for="item in tenantList"-->
+<!--              :key="item.tenantId"-->
+<!--              :label="item.tenantName"-->
+<!--              :value="item.tenantId"-->
+<!--            >-->
+<!--            </el-option>-->
+<!--          </el-select>-->
+<!--        </el-form-item>-->
         <el-form-item
           label="充值时间"
           prop="tenantExpirationDate"
@@ -154,7 +159,7 @@
 </template>
 
 <script>
-import { listTenant, createTenantCode } from "@/api/system/tenant";
+import { listTenant,getCodeTenantAllList, createTenantCode } from "@/api/system/tenant";
 import {
   list,
   delActivationLog,
@@ -163,11 +168,16 @@ import {
 
 import Clipboard from "clipboard";
 
+import Treeselect from '@riophae/vue-treeselect'
+import '@riophae/vue-treeselect/dist/vue-treeselect.css'
+
 export default {
   name: "TenantCode",
+  components: { Treeselect },
   data() {
     return {
       options: [],
+      tenantRows: [],
       //表单校验
       rulesActivationCode: {
         tenantCode: [
@@ -217,8 +227,16 @@ export default {
   created() {
     this.getList();
     this.getCodeLogList();
+    this.getCodeTenantAllList();
   },
   methods: {
+    //查询租户信息列表
+    getCodeTenantAllList(){
+      getCodeTenantAllList().then((response) => {
+        // console.log(response)
+        this.tenantRows = response.rows;
+      });
+    },
     //查询租户信息列表
     getList() {
       listTenant({ isEnablePaging: false }).then((response) => {

+ 27 - 8
zkqy-ui/src/views/system/tenant/tenantIndex.vue

@@ -653,7 +653,8 @@ export default {
   },
   data() {
     return {
-      tenantProfession:[],
+
+      tenantProfessionList:[],
       tenantAllList: [],
       // 登录页面数据
       isEdit: false,
@@ -825,7 +826,7 @@ export default {
   },
   created() {
     this.getList();
-    this.selectAllUser();
+    // this.selectAllUser();
     this.getTenantTypeList();
   },
   methods: {
@@ -1120,20 +1121,38 @@ export default {
     },
     /** 新增按钮操作 */
     handleAdd() {
+      this.reset();
       this.getTenantAllList();
-      // this.reset();
       this.open = true;
       this.title = "添加租户信息";
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const tenantId = row.tenantId || this.ids;
-      getTenant(tenantId).then((response) => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改租户信息";
+      this.getTenantAllList();
+      tenantTree().then((response) => {
+        let tenantAllListOne = this.handleTree(
+          response.data,
+          "tenantId",
+          "tenantParentId"
+        );
+        console.log("1h")
+        this.tenantAllList = [
+          // { tenantId: 0, tenantName: "顶级租户" },
+          ...tenantAllListOne,
+        ];
+        //先拿到当前租户的
+        const tenantId = row.tenantId || this.ids;
+        getTenant(tenantId).then((response) => {
+          console.log("5h")
+          response.data.tenantParentId=parseInt(response.data.tenantParentId)
+          this.form = response.data;
+          this.open = true;
+          this.title = "修改租户信息";
+        });
       });
+
+
     },
     /** 绑定数据源按钮操作 */
     bindDatasource(row) {