中扬CRM客户关系管理系统
#
Junjie
2023-08-31 2f4b656c91d9410d3b0ba46d45ae6f5b900a9e76
#
5个文件已修改
102 ■■■■ 已修改文件
src/main/java/com/zy/crm/manager/controller/ContractController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/crm/manager/entity/Contract.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ContractMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/contract/contract.js 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/contract/contract.html 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/crm/manager/controller/ContractController.java
@@ -83,7 +83,9 @@
    @RequestMapping(value = "/contract/add/auth")
    @ManagerAuth
    public R add(Contract contract) {
        contract.setCreateBy(getUserId());
        contract.setUserId(getUserId());
        //创建人员部门
        contract.setDeptId(getDeptId());
        contract.setCreateTime(new Date());
        contractService.insert(contract);
        return R.ok();
src/main/java/com/zy/crm/manager/entity/Contract.java
@@ -93,8 +93,8 @@
     * 创建人员
     */
    @ApiModelProperty(value= "创建人员")
    @TableField("create_by")
    private Long createBy;
    @TableField("user_id")
    private Long userId;
    /**
     * 更新人员
@@ -178,9 +178,16 @@
    @ApiModelProperty(value= "合同编号")
    private String serial;
    /**
     * 部门ID
     */
    @ApiModelProperty(value= "创建人员")
    @TableField("dept_id")
    private Long deptId;
    public Contract() {}
    public Contract(Long id, String customer, String address, String company, String companyAddress, String taxNum, String bank, String bankNum, Date createTime, Date updateTime, Long createBy, Long updateBy, String filepath, String city, String shippingAddress, String shippingName, String shippingPhone, Double price, String email, String name, Integer status, String memo, String boss, String serial) {
    public Contract(Long id, String customer, String address, String company, String companyAddress, String taxNum, String bank, String bankNum, Date createTime, Date updateTime, Long userId, Long updateBy, String filepath, String city, String shippingAddress, String shippingName, String shippingPhone, Double price, String email, String name, Integer status, String memo, String boss, String serial, Long deptId) {
        this.id = id;
        this.customer = customer;
        this.address = address;
@@ -191,7 +198,7 @@
        this.bankNum = bankNum;
        this.createTime = createTime;
        this.updateTime = updateTime;
        this.createBy = createBy;
        this.userId = userId;
        this.updateBy = updateBy;
        this.filepath = filepath;
        this.city = city;
@@ -205,6 +212,7 @@
        this.memo = memo;
        this.boss = boss;
        this.serial = serial;
        this.deptId = deptId;
    }
    //    Contract contract = new Contract(
@@ -243,9 +251,9 @@
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
    }
    public String getCreateBy$() {
    public String getUserId$() {
        UserService userService = SpringUtils.getBean(UserService.class);
        User user = userService.selectById(this.createBy);
        User user = userService.selectById(this.userId);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getNickname());
        }
src/main/resources/mapper/ContractMapper.xml
@@ -14,7 +14,7 @@
        <result column="bank_num" property="bankNum" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="create_by" property="createBy" />
        <result column="user_id" property="userId" />
        <result column="update_by" property="updateBy" />
        <result column="filepath" property="filepath" />
        <result column="city" property="city" />
@@ -28,6 +28,7 @@
        <result column="memo" property="memo" />
        <result column="boss" property="boss" />
        <result column="serial" property="serial" />
        <result column="dept_id" property="deptId" />
    </resultMap>
src/main/webapp/static/js/contract/contract.js
@@ -1,13 +1,71 @@
var pageCurr;
layui.config({
    base: baseUrl + "/static/layui/lay/modules/"
}).use(['table','laydate', 'form', 'admin'], function(){
}).use(['table', 'laydate', 'form', 'admin', 'tree', 'dropdown'], function () {
    var table = layui.table;
    var $ = layui.jquery;
    var layer = layui.layer;
    var layDate = layui.laydate;
    var form = layui.form;
    var admin = layui.admin;
    var dropdown = layui.dropdown;
    var tree = layui.tree;
    $('#organization').html(localStorage.getItem('nickname') + ' <i class="layui-icon">&#xe61a;</i>');
    // 部门人员 筛选
    dropdown.render({
        elem: '#organization'
        , content: ['<div id="organizationTree" style="height: calc(100vh - 525px);border: none"></div>'].join('')
        , style: 'width: 370px; height: 350px; padding: 0 15px; box-shadow: 1px 1px 30px rgb(0 0 0 / 12%);overflow: scroll;'
        , ready: function () {
            loadTree();
        }
    });
    // 树形图
    var organizationTree;
    window.loadTree = function (condition) {
        var loadIndex = layer.load(2);
        $.ajax({
            url: baseUrl + "/dept/user/tree/auth",
            headers: {'token': localStorage.getItem('token')},
            data: {
                'condition': condition
            },
            method: 'POST',
            success: function (res) {
                layer.close(loadIndex);
                if (res.code === 200) {
                    organizationTree = tree.render({
                        elem: '#organizationTree',
                        id: 'organizationTree',
                        onlyIconControl: true,
                        data: res.data,
                        click: function (obj) {
                            treeCond = {
                                key: obj.data.key,
                                val: obj.data.id
                            }
                            $('#organization').html(obj.data.title + ' <i class="layui-icon">&#xe61a;</i>');
                            $('#organizationTree').find('.ew-tree-click').removeClass('ew-tree-click');
                            $(obj.elem).children('.layui-tree-entry').addClass('ew-tree-click');
                            clearFormVal($('#search-box'));
                            tableIns.reload({
                                where: {[obj.data.key]: obj.data.id},
                                page: {curr: 1}
                            });
                        }
                    });
                    treeData = res.data;
                } else if (res.code === 403) {
                    top.location.href = baseUrl + "/";
                } else {
                    layer.msg(res.msg)
                }
            }
        })
    }
    // 数据渲染
    tableIns = table.render({
@@ -28,7 +86,7 @@
            ,{field: 'customer', align: 'center',title: '甲方'}
            ,{field: 'company', align: 'center',title: '公司名称'}
            ,{field: 'status$', align: 'center',title: '状态'}
            ,{field: 'createBy$', align: 'center',title: '添加人员'}
            , {field: 'userId$', align: 'center', title: '添加人员'}
            ,{field: 'createTime$', align: 'center',title: '添加时间'}
            ,{field: 'updateBy$', align: 'center',title: '修改人员'}
            ,{field: 'updateTime$', align: 'center',title: '修改时间'}
@@ -411,6 +469,7 @@
        }, 300);
    }
    layDateRender();
});
src/main/webapp/views/contract/contract.html
@@ -15,7 +15,17 @@
<div class="layui-fluid">
    <div class="layui-card">
        <div class="layui-card-body">
            <div class="layui-form toolbar" id="search-box">
            <div id="search-box" class="layui-form toolbar" style="display: flex;justify-content: space-between;align-items: center;">
                <div class="nav-box" style="display: flex;align-items: center;">
                    <div class="nav-box-item">
                        <i class="layui-icon" style="color: #1890ff;font-weight: bold">&#xe613;</i>
                    </div>
                    <div class="nav-box-item">
                        <button id="organization" style="border: none;padding-right: 35px;" class="layui-btn layui-btn-primary icon-btn">
                            未知
                        </button>
                    </div>
                </div>
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <div class="layui-input-inline">