中扬CRM客户关系管理系统
#
luxiaotao1123
2022-11-14 e399048a22f9ff2037f075beedd1f5832a07af02
#
6个文件已修改
180 ■■■■ 已修改文件
src/main/java/com/zy/crm/manager/controller/CompanyController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/crm/manager/controller/CstmrController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/crm/manager/entity/Order.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/crm/manager/entity/result/KeyValueVo.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/order/order.js 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/order/order.html 67 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/crm/manager/controller/CompanyController.java
@@ -11,6 +11,7 @@
import com.core.common.R;
import com.zy.crm.common.web.BaseController;
import com.zy.crm.manager.entity.Company;
import com.zy.crm.manager.entity.result.KeyValueVo;
import com.zy.crm.manager.service.CompanyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -129,4 +130,19 @@
        return R.ok();
    }
    // xm-select
    @RequestMapping("/company/all/get/kv")
    @ManagerAuth
    public R getDataKV(@RequestParam(required = false) String condition) {
        Wrapper<Company> wrapper = new EntityWrapper<Company>()
                .andNew().like("name", condition).or().like("uuid", condition)
                .orderBy("create_time", false);
        List<Company> items = companyService.selectPage(new Page<>(1, 30), wrapper).getRecords();
        List<KeyValueVo> valueVos = new ArrayList<>();
        for (Company item : items) {
            valueVos.add(new KeyValueVo(item.getName(), item.getId()));
        }
        return R.ok().add(valueVos);
    }
}
src/main/java/com/zy/crm/manager/controller/CstmrController.java
@@ -14,6 +14,7 @@
import com.zy.crm.manager.entity.Cstmr;
import com.zy.crm.manager.entity.CstmrFoll;
import com.zy.crm.manager.entity.CstmrType;
import com.zy.crm.manager.entity.result.KeyValueVo;
import com.zy.crm.manager.service.CstmrFollService;
import com.zy.crm.manager.service.CstmrService;
import com.zy.crm.manager.service.CstmrTypeService;
@@ -311,4 +312,22 @@
        return R.ok("删除成功");
    }
    // xm-select
    @RequestMapping("/cstmr/all/get/kv")
    @ManagerAuth
    public R getCstmrDataKV(@RequestParam(required = false) String condition) {
        Wrapper<Cstmr> wrapper = new EntityWrapper<Cstmr>()
                .andNew().like("name", condition).or().like("uuid", condition)
                .orderBy("create_time", false);
        List<Cstmr> cstmrs = cstmrService.selectPage(new Page<>(1, 30), wrapper).getRecords();
        List<KeyValueVo> valueVos = new ArrayList<>();
        for (Cstmr cstmr : cstmrs) {
            KeyValueVo vo = new KeyValueVo();
            vo.setName(cstmr.getName() + "(" + cstmr.getUuid() + ")");
            vo.setValue(cstmr.getId());
            valueVos.add(vo);
        }
        return R.ok().add(valueVos);
    }
}
src/main/java/com/zy/crm/manager/entity/Order.java
@@ -66,9 +66,9 @@
    private Long cstmrId;
    /**
     * 客户代号
     * 项目代号
     */
    @ApiModelProperty(value= "客户代号")
    @ApiModelProperty(value= "项目代号")
    private String uuid;
    /**
@@ -78,9 +78,9 @@
    private String name;
    /**
     * 总金额
     * 项目总金额
     */
    @ApiModelProperty(value= "总金额")
    @ApiModelProperty(value= "项目总金额")
    private Double money;
    /**
src/main/java/com/zy/crm/manager/entity/result/KeyValueVo.java
@@ -12,4 +12,11 @@
    private Long value;
    public KeyValueVo() {
    }
    public KeyValueVo(String name, Long value) {
        this.name = name;
        this.value = value;
    }
}
src/main/webapp/static/js/order/order.js
@@ -247,11 +247,15 @@
        admin.open({
            type: 1,
            area: '1500px',
            title: (mData ? '修改' : '添加') + '订单状态',
            title: (mData ? '修改' : '添加') + '跟踪项目',
            content: $('#editDialog').html(),
            success: function (layero, dIndex) {
                let cstmrSel = loadCstmrSel();
                let companySel = loadCompanySel();
                if (mData) {
                    $('#cascaderVal').val(mData.pcd);
                    cstmrSel.setValue({name: cstmrId$, value: cstmrId});
                    companySel.setValue({name: company$, value: company});
                }
                layDateRender(mData);
                cascaderRender();
@@ -278,6 +282,7 @@
                    })
                    return false;
                });
                $(layero).children('.layui-layer-content').css('overflow', 'visible');
                layui.form.render('select');
            }
@@ -356,6 +361,62 @@
        });
    }
    window.loadCstmrSel = function () {
        return xmSelect.render({
            el: '#cstmrXmlSel',
            autoRow: true,
            filterable: true,
            remoteSearch: true,
            radio: true,
            remoteMethod: function (val, cb, show) {
                $.ajax({
                    url: baseUrl + "/cstmr/all/get/kv",
                    headers: {'token': localStorage.getItem('token')},
                    data: {
                        condition: val
                    },
                    method: 'POST',
                    success: function (res) {
                        if (res.code === 200) {
                            cb(res.data)
                        } else {
                            cb([]);
                            layer.msg(res.msg, {icon: 2});
                        }
                    }
                });
            }
        });
    }
    window.loadCompanySel = function () {
        return xmSelect.render({
            el: '#companyXmlSel',
            autoRow: true,
            filterable: true,
            remoteSearch: true,
            radio: true,
            remoteMethod: function (val, cb, show) {
                $.ajax({
                    url: baseUrl + "/company/all/get/kv",
                    headers: {'token': localStorage.getItem('token')},
                    data: {
                        condition: val
                    },
                    method: 'POST',
                    success: function (res) {
                        if (res.code === 200) {
                            cb(res.data)
                        } else {
                            cb([]);
                            layer.msg(res.msg, {icon: 2});
                        }
                    }
                });
            }
        });
    }
});
// 关闭动作
src/main/webapp/views/order/order.html
@@ -45,6 +45,13 @@
            position: relative;
            margin-right: 5px;
        }
        #detail .layui-form-label {
            width: 120px;
        }
        #detail .layui-input-block {
            margin-left: 150px;
        }
    </style>
</head>
<body>
@@ -90,7 +97,7 @@
    </div>
    <div class="layui-card" style="margin-bottom: 0">
        <div class="layui-card-body">
            甲方资料:数据关联订单,
            项目列表,
            <span class="text-danger">请勿随意删除。</span>
        </div>
    </div>
@@ -121,14 +128,9 @@
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">客户类别: </label>
                    <div class="layui-input-block cool-auto-complete">
                        <input class="layui-input" name="cstmrType" placeholder="请输入客户类别" lay-vertype="tips" lay-verify="required" style="display: none">
                        <input id="cstmrType$" name="cstmrType$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="请输入客户类别" onfocus=this.blur()>
                        <div class="cool-auto-complete-window">
                            <input class="cool-auto-complete-window-input" data-key="cstmrTypeQueryBycstmrType" onkeyup="autoLoad(this.getAttribute('data-key'))">
                            <select class="cool-auto-complete-window-select" data-key="cstmrTypeQueryBycstmrTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
                            </select>
                    <label class="layui-form-label">所属公司: </label>
                    <div class="layui-input-block">
                        <div id="companyXmlSel" name="companyXmlSel">
                        </div>
                    </div>
                </div>
@@ -136,32 +138,6 @@
                    <label class="layui-form-label layui-form-required">省市区 : </label>
                    <div class="layui-input-block">
                        <input id="cascaderVal" name="pcd" placeholder="请选择" class="layui-hide" lay-verify="required"/>
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">项目地址: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="addr" placeholder="请输入详细地址" autocomplete="off" lay-verify="required">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">项目总金额: </label>
                    <div class="layui-input-block">
                        <input type="number" class="layui-input" name="contacts" placeholder="请输入项目总金额" autocomplete="off" lay-verify="required">
                    </div>
                </div>
            </div>
            <div class="layui-col-md6">
                <div class="layui-form-item">
                    <label class="layui-form-label">客户关系: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="rela" placeholder="请输入客户关系" autocomplete="off">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">电话: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="tel" placeholder="请输入电话" autocomplete="off" lay-verify="required">
                    </div>
                </div>
                <div class="layui-form-item">
@@ -176,6 +152,27 @@
                        </div>
                    </div>
                </div>
            </div>
            <div class="layui-col-md6">
                <div class="layui-form-item">
                    <label class="layui-form-label">甲方单位: </label>
                    <div class="layui-input-block">
                        <div id="cstmrXmlSel" name="cstmrXmlSel">
                        </div>
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">项目总金额: </label>
                    <div class="layui-input-block">
                        <input type="number" class="layui-input" name="contacts" placeholder="请输入项目总金额" autocomplete="off" lay-verify="required">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">项目地址: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="addr" placeholder="请输入详细地址" autocomplete="off" lay-verify="required">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">备注: </label>
                    <div class="layui-input-block">