# 级联控件展示效果

# 配置过程

# 准备基础数据

请在数据库执行以下初始化脚本

/*
 Navicat Premium Data Transfer

 Source Server         : shanxijizhong_115
 Source Server Type    : MySQL
 Source Server Version : 50729
 Source Host           : 10.113.4.115:3306
 Source Schema         : eip722

 Target Server Type    : MySQL
 Target Server Version : 50729
 File Encoding         : 65001

 Date: 26/08/2020 15:02:50
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for contracttype
-- ----------------------------
DROP TABLE IF EXISTS `contracttype`;
CREATE TABLE `contracttype`  (
  `ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `PID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `TYPE` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '合同种类'
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of contracttype
-- ----------------------------
INSERT INTO `contracttype` VALUES ('1', '0', '收入类合同');
INSERT INTO `contracttype` VALUES ('2', '0', '物资类合同');
INSERT INTO `contracttype` VALUES ('3', '0', '服务类合同');
INSERT INTO `contracttype` VALUES ('4', '0', '租赁类合同');
INSERT INTO `contracttype` VALUES ('5', '0', '承揽类合同');
INSERT INTO `contracttype` VALUES ('6', '0', '劳动合同');
INSERT INTO `contracttype` VALUES ('7', '0', '投融资合同');
INSERT INTO `contracttype` VALUES ('8', '0', '其他合同');
INSERT INTO `contracttype` VALUES ('9', '1', '销售类');
INSERT INTO `contracttype` VALUES ('10', '1', '对外服务类');
INSERT INTO `contracttype` VALUES ('11', '2', '采购类');
INSERT INTO `contracttype` VALUES ('12', '3', '咨询类');
INSERT INTO `contracttype` VALUES ('13', '3', '法律类');
INSERT INTO `contracttype` VALUES ('14', '3', '评估类');
INSERT INTO `contracttype` VALUES ('15', '3', '培训类');
INSERT INTO `contracttype` VALUES ('16', '4', '设备类');
INSERT INTO `contracttype` VALUES ('17', '5', '装修');
INSERT INTO `contracttype` VALUES ('18', '5', '工程施工');
INSERT INTO `contracttype` VALUES ('19', '6', '劳动合同(制式)');
INSERT INTO `contracttype` VALUES ('20', '6', '新签类劳动合同');
INSERT INTO `contracttype` VALUES ('21', '6', '续签类劳动合同');
INSERT INTO `contracttype` VALUES ('22', '7', '融资');
INSERT INTO `contracttype` VALUES ('23', '7', '担保');
INSERT INTO `contracttype` VALUES ('24', '7', '合资合作类');
INSERT INTO `contracttype` VALUES ('25', '9', '煤炭');
INSERT INTO `contracttype` VALUES ('26', '10', '技术服务');
INSERT INTO `contracttype` VALUES ('27', '10', '管理服务');
INSERT INTO `contracttype` VALUES ('28', '11', '办公设备');
INSERT INTO `contracttype` VALUES ('29', '11', 'IT设备');
INSERT INTO `contracttype` VALUES ('30', '12', '信息咨询');
INSERT INTO `contracttype` VALUES ('31', '12', '技术咨询');
INSERT INTO `contracttype` VALUES ('32', '12', '财务顾问');
INSERT INTO `contracttype` VALUES ('33', '12', '审计业务');
INSERT INTO `contracttype` VALUES ('34', '12', '风险管理咨询');
INSERT INTO `contracttype` VALUES ('35', '13', '常年法律顾问协议');
INSERT INTO `contracttype` VALUES ('36', '13', '诉讼或专项委托代理');
INSERT INTO `contracttype` VALUES ('37', '14', '矿业权评估');
INSERT INTO `contracttype` VALUES ('38', '14', '土地评估');
INSERT INTO `contracttype` VALUES ('39', '14', '资产评估');
INSERT INTO `contracttype` VALUES ('40', '14', '资源评估');
INSERT INTO `contracttype` VALUES ('41', '15', '外部培训');
INSERT INTO `contracttype` VALUES ('42', '16', '办公设备租赁');
INSERT INTO `contracttype` VALUES ('43', '16', '写字楼');
INSERT INTO `contracttype` VALUES ('44', '16', '房屋');
INSERT INTO `contracttype` VALUES ('45', '16', '食堂');
INSERT INTO `contracttype` VALUES ('46', '16', '车库或车位');
INSERT INTO `contracttype` VALUES ('47', '16', '广告位');
INSERT INTO `contracttype` VALUES ('48', '16', '住宿');
INSERT INTO `contracttype` VALUES ('49', '17', '办公楼装修');
INSERT INTO `contracttype` VALUES ('50', '18', '信息工程');
INSERT INTO `contracttype` VALUES ('51', '22', '银行借款合同(制式)');
INSERT INTO `contracttype` VALUES ('52', '22', '银行承兑协议(制式)');
INSERT INTO `contracttype` VALUES ('53', '22', '融资租赁合同(制式)');
INSERT INTO `contracttype` VALUES ('54', '22', '信托、债权投资类(制式)');
INSERT INTO `contracttype` VALUES ('55', '23', '银行担保合同(制式)');
INSERT INTO `contracttype` VALUES ('56', '23', '对外担保合同(制式)金晖煤焦化');
INSERT INTO `contracttype` VALUES ('57', '24', '合作意向书');
INSERT INTO `contracttype` VALUES ('58', '24', '合资合作框架协议');
INSERT INTO `contracttype` VALUES ('59', '24', '合资合作合同书');
INSERT INTO `contracttype` VALUES ('60', '24', '转让合同(资产/股权)');

SET FOREIGN_KEY_CHECKS = 1;

# 功能配置

第一步:添加关联查询

【元件管理】-【关联查询】-点击【添加】-输入关联查询名称及数据来源配置-点击【设置列】

第二步:配置列

配置返回字段及条件字段,如下图:

第三步:配置自定义SQL

勾选自定义SQL,输入以下SQL,点击右上角保存,关联查询配置完毕

if(!"".equals(PID_)  ){
return "SELECT a.ID_,a.TYPE,a.PID_, CASE (select count(*) from contracttype b where b.PID_=a.ID_ )"+
"WHEN 0 THEN  " +  
"true " + 
"ELSE " + 
  " false  " + 
"END as \"leaf\"   FROM contracttype  a WHERE a.PID_="+PID_;
}else{
return "SELECT a.ID_,a.TYPE,a.PID_, CASE (select count(*) from contracttype  b where b.PID_=a.ID_ )"+
"WHEN 0 THEN  " +  
"true " +
"ELSE " +
  " false " +
"END as \"leaf\"  FROM contracttype  a WHERE a.PID_=0";
}

第四步:表单设计

拖拽控件进行树形配置,保存表单,预览即可查看效果