first commit
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<form class="layui-form p-page">
|
||||
<h3 class="pb-3">新增销售机会</h3>
|
||||
<table class="layui-table layui-table-form">
|
||||
<tr>
|
||||
<td class="layui-td-gray">客户名称</td>
|
||||
<td colspan="3">{$customer_name}</td>
|
||||
<td class="layui-td-gray-2">客户联系人<font>*</font></td>
|
||||
<td>
|
||||
<select name="contact_id" lay-verify="required" lay-reqText="请选择联系人">
|
||||
<option value="">请选择</option>
|
||||
{volist name=":customer_contact($customer_id)" id="v"}
|
||||
<option value="{$v.id}">{$v.name}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">机会标题<font>*</font></td>
|
||||
<td colspan="3"><input type="text" name="title" autocomplete="off" lay-verify="required" lay-reqText="请输入机会标题" placeholder="请输入机会标题" class="layui-input"></td>
|
||||
<td class="layui-td-gray">发现时间<font>*</font></td>
|
||||
<td><input type="text" name="discovery_time" readonly lay-verify="required" lay-reqText="请选择发现时间" placeholder="请选择发现时间" class="layui-input tool-time"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">销售阶段<font>*</font></td>
|
||||
<td>
|
||||
<select name="stage" lay-verify="required" lay-reqText="请选择">
|
||||
<option value="">请选择</option>
|
||||
{volist name=":get_base_type_data('basic_customer',4)" id="v"}
|
||||
<option value="{$v.id}">{$v.title}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</td>
|
||||
<td class="layui-td-gray">预计金额<font>*</font></td>
|
||||
<td><input type="text" name="expected_amount" autocomplete="off" lay-verify="required|number" lay-reqText="请输入预计金额" placeholder="请输入预计金额" class="layui-input"></td>
|
||||
<td class="layui-td-gray-2">预计签单时间<font>*</font></td>
|
||||
<td><input type="text" name="expected_time" readonly lay-verify="required" lay-reqText="请选择预计签单时间" placeholder="请选择预计签单时间" class="layui-input tool-time"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray" style="vertical-align:top">需求描述<font>*</font></td>
|
||||
<td colspan="5"><textarea name="content" placeholder="请输入需求描述" lay-verify="required" lay-reqText="请输入需求描述" class="layui-textarea"></textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">归属人员<font>*</font></td>
|
||||
<td>
|
||||
<input type="text" name="belong_name" readonly placeholder="请选择归属人员" class="layui-input picker-admin">
|
||||
<input type="hidden" name="belong_uid" lay-verify="required" lay-reqText="请选择归属人员">
|
||||
</td>
|
||||
<td class="layui-td-gray">协助人员</td>
|
||||
<td colspan="3">
|
||||
<input type="text" name="assist_names" placeholder="请选择协助人员" class="layui-input picker-admin" data-type="2">
|
||||
<input type="hidden" name="assist_ids">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="pt-4">
|
||||
<input type="hidden" name="cid" value="{$customer_id}">
|
||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
</form>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool','oaPicker'];
|
||||
function gouguInit() {
|
||||
var form = layui.form,tool=layui.tool,oaPicker = layui.oaPicker;
|
||||
//监听提交
|
||||
form.on('submit(webform)', function (data) {
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code == 0) {
|
||||
tool.sideClose(1000,'chanceTable');
|
||||
}
|
||||
}
|
||||
let clickbtn = $(this);
|
||||
tool.post("/customer/chance/add", data.field, callback,clickbtn);
|
||||
return false;
|
||||
});
|
||||
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
@@ -0,0 +1,127 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<div class="p-page">
|
||||
<form class="layui-form gg-form-bar border-x border-t" lay-filter="barsearchform">
|
||||
{gt name="$is_auth" value="0"}
|
||||
<div class="layui-input-inline user-name" style="width:100px;">
|
||||
<input type="text" name="username" placeholder="选择归属人" class="layui-input picker-admin" readonly />
|
||||
<input type="text" name="uid" value="" style="display:none" />
|
||||
</div>
|
||||
{/gt}
|
||||
<div class="layui-input-inline" style="width:120px;">
|
||||
<select name="stage">
|
||||
<option value="">销售阶段</option>
|
||||
{volist name=":get_base_type_data('basic_customer',4)" id="v"}
|
||||
<option value="{$v.id}">{$v.title}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:300px;">
|
||||
<input type="text" name="keywords" placeholder="输入关键字,机会主题/沟通内容/客户名称" class="layui-input" autocomplete="off" />
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:150px;">
|
||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="table-search"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
|
||||
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="table-reset">清空</button>
|
||||
</div>
|
||||
</form>
|
||||
<table class="layui-hide" id="test" lay-filter="test"></table>
|
||||
</div>
|
||||
<script type="text/html" id="toolbarDemo">
|
||||
<div>
|
||||
<h3>线索机会</h3>
|
||||
</div>
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool','oaPicker','tablePlus'];
|
||||
function gouguInit() {
|
||||
var table = layui.tablePlus, tool = layui.tool, form = layui.form;
|
||||
layui.chanceTable = table.render({
|
||||
elem: '#test'
|
||||
,toolbar: '#toolbarDemo'
|
||||
,title:'线索机会列表'
|
||||
,url: "/customer/chance/datalist"
|
||||
,cellMinWidth: 80
|
||||
,page: true //开启分页
|
||||
,is_excel: true
|
||||
,height: 'full-114'
|
||||
,limit: 20
|
||||
,cols: [[
|
||||
{field: 'id', title: '编号', width: 80, align: 'center'}
|
||||
,{field:'belong_name',title: '归属人',align:'center',width: 80}
|
||||
,{field:'title',title: '机会主题'}
|
||||
,{field:'customer',title: '关联客户',width: 300}
|
||||
,{field:'discovery_time',title: '发现时间',align:'center',width: 100}
|
||||
,{ field: 'expected_time', title: '预计签单时间', width: 110, align: 'center'}
|
||||
,{ field: 'expected_amount', title: '预计签单金额', width: 110, align: 'center'}
|
||||
,{field:'stage_name',title: '当前阶段',width: 80, align: 'center'}
|
||||
,{field:'is_contract',title: '是否签单', align:'center',width: 80,templet: function(d){
|
||||
if(d.is_contract>0){
|
||||
return '<span class="green">已签单</span>';
|
||||
}
|
||||
else{
|
||||
return '<span class="red">未签单</span>';
|
||||
}
|
||||
}}
|
||||
,{fixed:'right',width:130,title: '操作', align:'center',templet: function(d){
|
||||
var html = '<div class="layui-btn-group">';
|
||||
var btn1='<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>';
|
||||
var btn2='<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详情</a>';
|
||||
var btn3='<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>';
|
||||
if(d.is_contract>0){
|
||||
btn1='';
|
||||
btn3='';
|
||||
}
|
||||
if(d.admin_id == login_admin){
|
||||
return '<div class="layui-btn-group">'+btn1+btn2+btn3+'</div>';
|
||||
}
|
||||
else{
|
||||
return '<div class="layui-btn-group">'+btn2+'</div>';
|
||||
}
|
||||
}}
|
||||
]]
|
||||
});
|
||||
|
||||
table.on('tool(test)', function(obj){
|
||||
var data = obj.data; //获得当前行数据
|
||||
var layEvent = obj.event;
|
||||
if(layEvent === 'edit'){ //编辑
|
||||
let url = '/customer/chance/add/id/'+data.id;
|
||||
tool.side(url);
|
||||
}
|
||||
if(layEvent === 'view'){ //查看
|
||||
let url = '/customer/chance/view/id/'+data.id;
|
||||
tool.side(url);
|
||||
}
|
||||
if(layEvent === 'del'){ //删除
|
||||
layer.confirm('确定要删除该销售机会吗?', {icon: 3, title:'提示'}, function(index){
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code == 0) {
|
||||
layui.pageTable.reload();
|
||||
}
|
||||
}
|
||||
tool.delete('/customer/chance/chance_del',{'id':data.id},callback);
|
||||
layer.close(index);
|
||||
});
|
||||
}
|
||||
return false;
|
||||
})
|
||||
|
||||
//监听搜索提交
|
||||
form.on('submit(webform)', function(data) {
|
||||
layui.pageTable.reload({
|
||||
where: data.field,
|
||||
page: {curr: 1}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
@@ -0,0 +1,90 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<form class="layui-form p-4">
|
||||
<h3 class="pb-3">编辑销售机会</h3>
|
||||
<table class="layui-table layui-table-form">
|
||||
<tr>
|
||||
<td class="layui-td-gray">客户名称</td>
|
||||
<td colspan="3">{$detail.customer}</td>
|
||||
<td class="layui-td-gray-2">客户联系人<font>*</font></td>
|
||||
<td>
|
||||
<select name="contact_id" lay-verify="required" lay-reqText="请选择联系人">
|
||||
<option value="">请选择</option>
|
||||
{volist name=":customer_contact($detail.cid)" id="v"}
|
||||
<option value="{$v.id}" {eq name="$v.id" value="$detail.contact_id"} selected{/eq}>{$v.name}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">机会标题<font>*</font></td>
|
||||
<td colspan="3"><input type="text" name="title" value="{$detail.title}" autocomplete="off" lay-verify="required" lay-reqText="请输入机会标题" placeholder="请输入机会标题" class="layui-input"></td>
|
||||
<td class="layui-td-gray">发现时间<font>*</font></td>
|
||||
<td>
|
||||
<input type="text" name="discovery_time" value="{$detail.discovery_time|date='Y-m-d'}" readonly lay-verify="required" lay-reqText="请选择发现时间" placeholder="请选择发现时间" class="layui-input tool-time">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">销售阶段<font>*</font></td>
|
||||
<td>
|
||||
<select name="stage" lay-verify="required" lay-reqText="请选择">
|
||||
<option value="">请选择</option>
|
||||
{volist name=":get_base_type_data('basic_customer',4)" id="v"}
|
||||
<option value="{$v.id}" {eq name="$v.id" value="$detail.stage"} selected{/eq}>{$v.title}</option>
|
||||
{/volist}
|
||||
</td>
|
||||
<td class="layui-td-gray">预计金额<font>*</font></td>
|
||||
<td> <input type="text" name="expected_amount" autocomplete="off" value="{$detail.expected_amount}" lay-verify="required|number" lay-reqText="请输入预计金额" placeholder="请输入预计金额" class="layui-input"></td>
|
||||
<td class="layui-td-gray-2">预计签单时间<font>*</font></td>
|
||||
<td><input type="text" name="expected_time" value="{$detail.expected_time|date='Y-m-d'}" readonly lay-verify="required" lay-reqText="请选择预计签单时间" placeholder="请选择预计签单时间" class="layui-input tool-time"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray" style="vertical-align:top">需求描述<font>*</font></td>
|
||||
<td colspan="5"><textarea name="content" placeholder="请输入需求描述" lay-verify="required" lay-reqText="请输入需求描述" class="layui-textarea">{$detail.content}</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">归属人员<font>*</font></td>
|
||||
<td>
|
||||
<input type="text" name="belong_name" value="{$detail.belong_name}" readonly placeholder="请选择归属人员" class="layui-input picker-admin">
|
||||
<input type="hidden" name="belong_uid" value="{$detail.belong_uid}" lay-verify="required" lay-reqText="请选择归属人员">
|
||||
</td>
|
||||
<td class="layui-td-gray">协助人员</td>
|
||||
<td colspan="3">
|
||||
<input type="text" name="assist_names" value="{$detail.assist_names}" placeholder="请选择协助人员" class="layui-input picker-admin" data-type="2">
|
||||
<input type="hidden" name="assist_ids" value="{$detail.assist_ids}">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="pt-4">
|
||||
<input type="hidden" name="id" value="{$detail.id}">
|
||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
</form>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool','oaPicker'];
|
||||
function gouguInit() {
|
||||
var form = layui.form,tool=layui.tool,oaPicker = layui.oaPicker;
|
||||
//监听提交
|
||||
form.on('submit(webform)', function (data) {
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code==0){
|
||||
tool.sideClose(1000,'chanceTable');
|
||||
}
|
||||
}
|
||||
let clickbtn = $(this);
|
||||
tool.post("/customer/chance/add", data.field, callback,clickbtn);
|
||||
return false;
|
||||
});
|
||||
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
@@ -0,0 +1,57 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<form class="layui-form p-4">
|
||||
<h3 class="pb-3">销售机会</h3>
|
||||
<table class="layui-table layui-table-form">
|
||||
<tr>
|
||||
<td class="layui-td-gray">客户名称</td>
|
||||
<td colspan="3">{$detail.customer}</td>
|
||||
<td class="layui-td-gray-2">客户联系人</td>
|
||||
<td>{$detail.contact}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">机会标题</td>
|
||||
<td colspan="3">{$detail.title}</td>
|
||||
<td class="layui-td-gray">发现时间</td>
|
||||
<td>{$detail.discovery_time|date="Y-m-d"}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">销售阶段</td>
|
||||
<td>{$detail.stage_name}</td>
|
||||
<td class="layui-td-gray">预计金额</td>
|
||||
<td>{$detail.expected_amount}</td>
|
||||
<td class="layui-td-gray-2">预计签单时间</td>
|
||||
<td>{$detail.expected_time|date="Y-m-d"}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray" style="vertical-align:top">需求描述</td>
|
||||
<td colspan="5">{$detail.content}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">归属人员</td>
|
||||
<td>{$detail.belong_name}</td>
|
||||
<td class="layui-td-gray">协助人员</td>
|
||||
<td colspan="3">{$detail.assist_names}</td>
|
||||
</tr>
|
||||
{notempty name="$detail.contract"}
|
||||
<tr>
|
||||
<td class="layui-td-gray">签单合同</td>
|
||||
<td colspan="5">{$detail.contract} <span class="layui-btn layui-btn-normal layui-btn-xs side-a" data-href="/contract/contract/view?id={$detail.contract_id}">详情</span></td>
|
||||
</tr>
|
||||
{/notempty}
|
||||
</table>
|
||||
</form>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
var moduleInit = ['tool'];
|
||||
function gouguInit() {
|
||||
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
||||
Reference in New Issue
Block a user