销售机会页面
This commit is contained in:
parent
0507478f6a
commit
1aee22e77c
179
app/customer/controller/Chance.php
Normal file
179
app/customer/controller/Chance.php
Normal file
@ -0,0 +1,179 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2021 勾股工作室
|
||||
* @license https://opensource.org/licenses/GPL-3.0
|
||||
* @link https://www.gougucms.com
|
||||
*/
|
||||
|
||||
declare (strict_types = 1);
|
||||
|
||||
namespace app\customer\controller;
|
||||
|
||||
use app\base\BaseController;
|
||||
use app\customer\model\CustomerChance;
|
||||
use app\customer\validate\CustomerChanceCheck;
|
||||
use app\customer\model\CustomerTrace;
|
||||
use think\exception\ValidateException;
|
||||
use think\facade\Db;
|
||||
use think\facade\View;
|
||||
|
||||
class Chance extends BaseController
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
if (request()->isAjax()) {
|
||||
$param = get_params();
|
||||
$where = array();
|
||||
$whereOr = array();
|
||||
if (!empty($param['keywords'])) {
|
||||
$where[] = ['a.id|a.title|c.name', 'like', '%' . $param['keywords'] . '%'];
|
||||
}
|
||||
if (!empty($param['stage'])) {
|
||||
$where[] = ['a.stage', '=', $param['stage']];
|
||||
}
|
||||
if (!empty($param['start_date']) && !empty($param['end_date'])) {
|
||||
$where[] = ['a.expected_time', 'BETWEEN', [strtotime($param['start_date']),strtotime($param['end_date'])]];
|
||||
}
|
||||
$where[] = ['a.delete_time', '=', 0];
|
||||
|
||||
$uid = $this->uid;
|
||||
$auth = isAuth($uid,'customer_admin');
|
||||
if($auth==0){
|
||||
$dids = get_department_role($this->uid);
|
||||
if(!empty($dids)){
|
||||
$whereOr[] =['c.belong_did', 'in', $dids];
|
||||
if (!empty($param['uid'])) {
|
||||
$where[] = ['c.belong_uid', '=', $param['uid']];
|
||||
}
|
||||
}
|
||||
$whereOr[] =['c.belong_uid', '=', $uid];
|
||||
$whereOr[] = ['', 'exp', Db::raw("FIND_IN_SET('{$uid}',c.share_ids)")];
|
||||
}
|
||||
else{
|
||||
if (!empty($param['uid'])) {
|
||||
$where[] = ['c.belong_uid', '=', $param['uid']];
|
||||
}
|
||||
}
|
||||
|
||||
$rows = empty($param['limit']) ? get_config('app.page_size') : $param['limit'];
|
||||
$content = CustomerChance::where($where)
|
||||
->where(function ($query) use($whereOr) {
|
||||
$query->whereOr($whereOr);
|
||||
})
|
||||
->field('a.*,c.name as customer')
|
||||
->alias('a')
|
||||
->join('customer c', 'a.cid = c.id')
|
||||
->order('a.create_time desc')
|
||||
->paginate($rows, false, ['query' => $param])
|
||||
->each(function ($item, $key) {
|
||||
$item->belong_name = Db::name('Admin')->where(['id' => $item->belong_uid])->value('name');
|
||||
$item->create_time = date('Y-m-d H:i:s', (int) $item->create_time);
|
||||
$item->discovery_time = date('Y-m-d', (int) $item->discovery_time);
|
||||
$item->expected_time = date('Y-m-d', (int) $item->expected_time);
|
||||
$item->stage_name = CustomerTrace::$Stage[(int) $item->stage];
|
||||
$item->services_name = Db::name('Services')->where(['id' => $item->services_id])->value('title');
|
||||
});
|
||||
return table_assign(0, '', $content);
|
||||
} else {
|
||||
return view();
|
||||
}
|
||||
}
|
||||
|
||||
//添加销售机会
|
||||
public function chance_add()
|
||||
{
|
||||
$param = get_params();
|
||||
if (request()->isAjax()) {
|
||||
if(isset($param['discovery_time'])){
|
||||
$param['discovery_time'] = strtotime($param['discovery_time']);
|
||||
}
|
||||
if(isset($param['expected_time'])){
|
||||
$param['expected_time'] = strtotime($param['expected_time']);
|
||||
}
|
||||
if (!empty($param['id']) && $param['id'] > 0) {
|
||||
$param['update_time'] = time();
|
||||
$old = CustomerChance::where(['id' => $param['id']])->find();
|
||||
if($this->uid!=$old['admin_id'] && get_user_role($this->uid,$old['admin_id'])==0){
|
||||
return to_assign(1, "只有所属员工或者部门负责人才有权限操作");
|
||||
}
|
||||
$res = CustomerChance::strict(false)->field(true)->update($param);
|
||||
if ($res) {
|
||||
add_log('edit', $param['id'], $param);
|
||||
to_log($this->uid,3,$param,$old);
|
||||
return to_assign();
|
||||
} else {
|
||||
return to_assign(1, '操作失败');
|
||||
}
|
||||
} else {
|
||||
$param['create_time'] = time();
|
||||
$param['admin_id'] = $this->uid;
|
||||
$tid = CustomerChance::strict(false)->field(true)->insertGetId($param);
|
||||
if ($tid) {
|
||||
add_log('add', $tid, $param,'客户销售机会');
|
||||
$log_data = array(
|
||||
'field' => 'new',
|
||||
'action' => 'add',
|
||||
'type' => 3,
|
||||
'customer_id' => $param['cid'],
|
||||
'admin_id' => $param['admin_id'],
|
||||
'create_time' => time(),
|
||||
);
|
||||
Db::name('CustomerLog')->strict(false)->field(true)->insert($log_data);
|
||||
return to_assign();
|
||||
} else {
|
||||
return to_assign(1, '操作失败');
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$customer_id = isset($param['cid']) ? $param['cid'] : 0;
|
||||
$id = isset($param['id']) ? $param['id'] : 0;
|
||||
if ($id > 0) {
|
||||
View::assign('detail', (new CustomerChance())->detail($id));
|
||||
return view('chance_edit');
|
||||
}
|
||||
$customer_name = Db::name('Customer')->where('id',$customer_id)->value('name');
|
||||
View::assign('customer_id', $customer_id);
|
||||
View::assign('customer_name', $customer_name);
|
||||
return view();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//查看销售机会
|
||||
public function chance_view()
|
||||
{
|
||||
$param = get_params();
|
||||
$id = isset($param['id']) ? $param['id'] : 0;
|
||||
$detail = (new CustomerChance())->detail($id);
|
||||
if(empty($detail)){
|
||||
echo '<div style="text-align:center;color:red;margin-top:20%;">找不到该销售机会</div>';exit;
|
||||
}
|
||||
View::assign('detail',$detail);
|
||||
return view();
|
||||
}
|
||||
|
||||
//删除销售机会
|
||||
public function chance_del()
|
||||
{
|
||||
if (request()->isDelete()) {
|
||||
$param = get_params();
|
||||
$admin_id = Db::name('CustomerChance')->where(['id' => $param['id']])->value('admin_id');
|
||||
if($admin_id != $this->uid){
|
||||
return to_assign(1, '你不是该跟销售机会的创建人,无权限删除');
|
||||
}
|
||||
$param['delete_time'] = time();
|
||||
$res = CustomerChance::strict(false)->field(true)->update($param);
|
||||
if ($res) {
|
||||
add_log('delete', $param['id'], $param,'客户销售机会');
|
||||
to_log($this->uid,3,$param,['delete_time'=>0]);
|
||||
return to_assign();
|
||||
} else {
|
||||
return to_assign(1, '操作失败');
|
||||
}
|
||||
} else {
|
||||
return to_assign(1, '参数错误');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
106
app/customer/view/chance/chance_add.html
Normal file
106
app/customer/view/chance/chance_add.html
Normal file
@ -0,0 +1,106 @@
|
||||
{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">{$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" id="discovery_time" name="discovery_time" readonly autocomplete="off" lay-verify="required" lay-reqText="请选择发现时间" placeholder="请选择发现时间" class="layui-input">
|
||||
</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=":trace_stage()" id="v"}
|
||||
<option value="{$key}">{$v}</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" id="expected_time" name="expected_time" readonly autocomplete="off" lay-verify="required" lay-reqText="请选择预计签单时间" placeholder="请选择预计签单时间" class="layui-input">
|
||||
</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 autocomplete="off" placeholder="请选择归属人员" class="layui-input picker-one">
|
||||
<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" autocomplete="off" placeholder="请选择协助人员" class="layui-input picker-more">
|
||||
<input type="hidden" name="assist_ids">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="py-3">
|
||||
<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','employeepicker'];
|
||||
function gouguInit() {
|
||||
var form = layui.form,tool=layui.tool,laydate = layui.laydate,employeepicker=layui.employeepicker;
|
||||
laydate.render({
|
||||
elem: '#discovery_time'
|
||||
});
|
||||
laydate.render({
|
||||
elem: '#expected_time'
|
||||
,min: 0
|
||||
});
|
||||
|
||||
//监听提交
|
||||
form.on('submit(webform)', function (data) {
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code == 0) {
|
||||
tool.sideClose(1000);
|
||||
}
|
||||
}
|
||||
tool.post("/customer/chance/chance_add", data.field, callback);
|
||||
return false;
|
||||
});
|
||||
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
106
app/customer/view/chance/chance_edit.html
Normal file
106
app/customer/view/chance/chance_edit.html
Normal file
@ -0,0 +1,106 @@
|
||||
{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" id="discovery_time" name="discovery_time" value="{$detail.discovery_time}" readonly autocomplete="off" lay-verify="required" lay-reqText="请选择发现时间" placeholder="请选择发现时间" class="layui-input">
|
||||
</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=":trace_stage()" id="v"}
|
||||
<option value="{$key}" {eq name="$key" value="$detail.stage"} selected{/eq}>{$v}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</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" id="expected_time" name="expected_time" value="{$detail.expected_time}" readonly autocomplete="off" lay-verify="required" lay-reqText="请选择预计签单时间" placeholder="请选择预计签单时间" class="layui-input">
|
||||
</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 autocomplete="off" placeholder="请选择归属人员" class="layui-input picker-one">
|
||||
<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}" autocomplete="off" placeholder="请选择协助人员" class="layui-input picker-more">
|
||||
<input type="hidden" name="assist_ids" value="{$detail.assist_ids}">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="py-3">
|
||||
<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','employeepicker'];
|
||||
function gouguInit() {
|
||||
var form = layui.form,tool=layui.tool,laydate = layui.laydate,employeepicker=layui.employeepicker;
|
||||
laydate.render({
|
||||
elem: '#discovery_time'
|
||||
});
|
||||
laydate.render({
|
||||
elem: '#expected_time'
|
||||
,min: 0
|
||||
});
|
||||
|
||||
//监听提交
|
||||
form.on('submit(webform)', function (data) {
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code == 0) {
|
||||
tool.sideClose(1000);
|
||||
}
|
||||
}
|
||||
tool.post("/customer/chance/chance_add", data.field, callback);
|
||||
return false;
|
||||
});
|
||||
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
52
app/customer/view/chance/chance_view.html
Normal file
52
app/customer/view/chance/chance_view.html
Normal file
@ -0,0 +1,52 @@
|
||||
{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>
|
||||
{volist name=":customer_contact($detail.cid)" id="v"}
|
||||
{eq name="$v.id" value="$detail.contact_id"}{$v.name}{/eq}
|
||||
{/volist}
|
||||
</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}</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}</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>
|
||||
</table>
|
||||
</form>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
123
app/customer/view/chance/index.html
Normal file
123
app/customer/view/chance/index.html
Normal file
@ -0,0 +1,123 @@
|
||||
{extend name="../../base/view/common/base" /}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<div class="p-3">
|
||||
<form class="layui-form gg-form-bar border-x border-t">
|
||||
<div class="layui-input-inline" style="width:200px;">
|
||||
<input type="text" name="keywords" placeholder="输入关键字" class="layui-input" autocomplete="off" />
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:120px;">
|
||||
<select name="stage">
|
||||
<option value="">当前阶段</option>
|
||||
{volist name=":trace_stage()" id="v"}
|
||||
<option value="{$key}">{$v}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-input-inline" id="selectDate">
|
||||
<div class="layui-input-inline" style="width:110px;">
|
||||
<input type="text" autocomplete="off" name="start_date" id="startDate" class="layui-input" placeholder="预计签单时间">
|
||||
</div>
|
||||
<div class="layui-input-inline">-</div>
|
||||
<div class="layui-input-inline" style="width:110px;">
|
||||
<input type="text" autocomplete="off" name="end_date" id="endDate" class="layui-input" placeholder="预计签单时间">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:120px;">
|
||||
<input type="text" name="username" placeholder="请选择归属人" class="layui-input picker-one" autocomplete="off" />
|
||||
<input type="text" name="uid" style="display:none" />
|
||||
</div>
|
||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button>
|
||||
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="clear">清空</button>
|
||||
</form>
|
||||
<table class="layui-hide" id="test" lay-filter="test"></table>
|
||||
</div>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool','employeepicker'];
|
||||
function gouguInit() {
|
||||
var table = layui.table, tool = layui.tool, form = layui.form,laydate=layui.laydate;
|
||||
|
||||
//日期范围
|
||||
laydate.render({
|
||||
elem: '#selectDate'
|
||||
,range: ['#startDate', '#endDate']
|
||||
});
|
||||
|
||||
layui.pageTable = table.render({
|
||||
elem: '#test'
|
||||
,toolbar: '#toolbarDemo'
|
||||
,title:'销售机会列表'
|
||||
,url: "/customer/chance/index"
|
||||
,cellMinWidth: 240
|
||||
,page: true //开启分页
|
||||
,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'}
|
||||
,{fixed:'right',width:132,title: '操作', align:'center',templet: function(d){
|
||||
var html = '<div class="layui-btn-group">';
|
||||
var btn='<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>';
|
||||
var btn1='<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详情</a>';
|
||||
var btn2='<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>';
|
||||
return html+btn+btn1+btn2+'</div>';
|
||||
}}
|
||||
]]
|
||||
});
|
||||
|
||||
table.on('tool(test)', function(obj){
|
||||
var data = obj.data; //获得当前行数据
|
||||
var layEvent = obj.event;
|
||||
if(layEvent === 'edit'){ //编辑
|
||||
let url = '/customer/chance/chance_add/id/'+data.id;
|
||||
tool.side(url);
|
||||
}
|
||||
if(layEvent === 'view'){ //查看
|
||||
let url = '/customer/chance/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: {
|
||||
keywords: data.field.keywords,
|
||||
stage: data.field.stage,
|
||||
uid: data.field.uid,
|
||||
start_date: data.field.start_date,
|
||||
end_date: data.field.end_date
|
||||
},
|
||||
page: {
|
||||
curr: 1
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -325,50 +325,54 @@ INSERT INTO `oa_admin_rule` VALUES (154, 152, 'customer/index/revert', '还原',
|
||||
INSERT INTO `oa_admin_rule` VALUES (155, 135, 'customer/contact/index', '客户联系人', '联系人', 'customer', '', 1, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (156, 155, 'customer/contact/contact_add', '新建/编辑', '联系人', 'customer', '', 2, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (157, 155, 'customer/contact/contact_del', '删除', '联系人', 'customer', '', 2, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (158, 135, 'customer/chance/index', '销售机会', '联系人', 'customer', '', 1, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (159, 158, 'customer/chance/chance_add', '新建/编辑', '联系人', 'customer', '', 2, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (160, 158, 'customer/chance/chance_view', '删除', '联系人', 'customer', '', 2, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (161, 158, 'customer/chance/chance_del', '删除', '联系人', 'customer', '', 2, 0, 1, 1656143065, 0);
|
||||
|
||||
INSERT INTO `oa_admin_rule` VALUES (158, 0, '', '合同协议', '合同协议', 'contract', 'icon-hetongyidong', 1, 10, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (159, 158, 'contract/cate/conf', '权限配置', '合同权限配置', 'contract', '', 1, 0, 1, 0, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (160, 158, 'contract/cate/cate', '合同类别', '合同类别', 'contract', '', 1, 0, 1, 0, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (161, 160, 'contract/cate/cate_add', '新建/编辑', '合同类别', 'contract', '', 2, 0, 1, 0, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (162, 160, 'contract/cate/cate_check', '设置', '合同类别', 'contract', '', 2,0, 1, 0, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (162, 0, '', '合同协议', '合同协议', 'contract', 'icon-hetongyidong', 1, 10, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (163, 162, 'contract/cate/conf', '权限配置', '合同权限配置', 'contract', '', 1, 0, 1, 0, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (164, 162, 'contract/cate/cate', '合同类别', '合同类别', 'contract', '', 1, 0, 1, 0, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (165, 164, 'contract/cate/cate_add', '新建/编辑', '合同类别', 'contract', '', 2, 0, 1, 0, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (166, 164, 'contract/cate/cate_check', '设置', '合同类别', 'contract', '', 2,0, 1, 0, 0);
|
||||
|
||||
INSERT INTO `oa_admin_rule` VALUES (163, 158, 'contract/index/index', '合同列表', '合同列表', 'contract', '', 1, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (164, 163, 'contract/index/add', '新建/编辑', '合同', 'contract', '', 2, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (165, 163, 'contract/index/view', '查看', '合同', 'contract', '', 2, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (166, 163, 'contract/index/delete', '删除', '合同', 'contract', '', 2, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (167, 158, 'contract/index/archive', '合同归档', '合同归档', 'contract', '', 1, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (167, 162, 'contract/index/index', '合同列表', '合同列表', 'contract', '', 1, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (168, 167, 'contract/index/add', '新建/编辑', '合同', 'contract', '', 2, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (169, 167, 'contract/index/view', '查看', '合同', 'contract', '', 2, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (170, 167, 'contract/index/delete', '删除', '合同', 'contract', '', 2, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (171, 162, 'contract/index/archive', '合同归档', '合同归档', 'contract', '', 1, 0, 1, 1656143065, 0);
|
||||
|
||||
INSERT INTO `oa_admin_rule` VALUES (168, 0, '', '项目管理', '项目管理', 'project', 'icon-xiangmuguanli', 1, 11, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (169, 168, 'project/index/conf', '权限配置', '项目权限配置', 'project', '', 1, 0, 1, 0, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (170, 168, 'project/index/index', '项目列表', '项目', 'project', '', 1, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (171, 170, 'project/index/add', '新建', '项目', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (172, 170, 'project/index/edit', '编辑', '项目', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (173, 170, 'project/index/view', '查看', '项目', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (174, 170, 'project/index/delete', '删除', '项目', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (172, 0, '', '项目管理', '项目管理', 'project', 'icon-xiangmuguanli', 1, 11, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (173, 172, 'project/index/conf', '权限配置', '项目权限配置', 'project', '', 1, 0, 1, 0, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (174, 172, 'project/index/index', '项目列表', '项目', 'project', '', 1, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (175, 174, 'project/index/add', '新建', '项目', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (176, 174, 'project/index/edit', '编辑', '项目', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (177, 174, 'project/index/view', '查看', '项目', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (178, 174, 'project/index/delete', '删除', '项目', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
|
||||
INSERT INTO `oa_admin_rule` VALUES (175, 168, 'project/task/index', '任务列表', '任务', 'project', '', 1, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (176, 175, 'project/task/add', '新建', '任务', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (177, 175, 'project/task/edit', '编辑', '任务', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (178, 175, 'project/task/view', '查看', '任务', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (179, 175, 'project/task/delete', '删除', '任务', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (179, 172, 'project/task/index', '任务列表', '任务', 'project', '', 1, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (180, 179, 'project/task/add', '新建', '任务', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (181, 179, 'project/task/edit', '编辑', '任务', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (182, 179, 'project/task/view', '查看', '任务', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (183, 179, 'project/task/delete', '删除', '任务', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
|
||||
INSERT INTO `oa_admin_rule` VALUES (180, 168, 'project/task/task_time', '任务工时', '工时', 'project', '', 1, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (184, 172, 'project/task/task_time', '任务工时', '工时', 'project', '', 1, 0, 1, 1656142368, 0);
|
||||
|
||||
INSERT INTO `oa_admin_rule` VALUES (181, 168, 'project/document/index', '文档列表', '文档', 'project', '', 1, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (182, 181, 'project/document/add', '新建/编辑', '文档', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (183, 181, 'project/document/view', '查看', '文档', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (184, 181, 'project/document/delete', '删除', '文档', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (185, 172, 'project/document/index', '文档列表', '文档', 'project', '', 1, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (186, 185, 'project/document/add', '新建/编辑', '文档', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (187, 185, 'project/document/view', '查看', '文档', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (188, 185, 'project/document/delete', '删除', '文档', 'project', '', 2, 0, 1, 1656142368, 0);
|
||||
|
||||
INSERT INTO `oa_admin_rule` VALUES (185, 0, '', '知识文章', '知识文章', 'article', 'icon-kecheng', 1, 12, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (186, 185, 'article/cate/cate', '知识类型', '知识类型', 'article', '', 1, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (187, 186, 'article/cate/cate_add', '新建/编辑', '知识类型', 'article', '', 2, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (188, 186, 'article/cate/cate_delete', '删除', '知识类型', 'article', '', 2, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (189, 0, '', '知识文章', '知识文章', 'article', 'icon-kecheng', 1, 12, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (190, 189, 'article/cate/cate', '知识类型', '知识类型', 'article', '', 1, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (191, 190, 'article/cate/cate_add', '新建/编辑', '知识类型', 'article', '', 2, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (192, 190, 'article/cate/cate_delete', '删除', '知识类型', 'article', '', 2, 0, 1, 1656143065, 0);
|
||||
|
||||
INSERT INTO `oa_admin_rule` VALUES (189, 185, 'article/index/index', '共享知识', '知识文章', 'article', '', 1, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (190, 185, 'article/index/list', '个人知识', '知识文章', 'article', '', 1, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (191, 190, 'article/index/add', '新建/编辑', '知识文章', 'article', '', 2, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (192, 190, 'article/index/view', '查看', '知识文章', 'article', '', 2, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (193, 190, 'article/index/delete', '删除', '知识文章', 'article', '', 2, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (193, 189, 'article/index/index', '共享知识', '知识文章', 'article', '', 1, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (194, 189, 'article/index/list', '个人知识', '知识文章', 'article', '', 1, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (195, 194, 'article/index/add', '新建/编辑', '知识文章', 'article', '', 2, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (196, 194, 'article/index/view', '查看', '知识文章', 'article', '', 2, 0, 1, 1656143065, 0);
|
||||
INSERT INTO `oa_admin_rule` VALUES (197, 194, 'article/index/delete', '删除', '知识文章', 'article', '', 2, 0, 1, 1656143065, 0);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for oa_admin_group
|
||||
@ -389,9 +393,9 @@ CREATE TABLE `oa_admin_group` (
|
||||
-- ----------------------------
|
||||
-- Records of cms_admin_group
|
||||
-- ----------------------------
|
||||
INSERT INTO `oa_admin_group` VALUES (1, '超级员工权限', 1, '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193', '超级员工权限,拥有系统的最高权限,不可修改。', 0, 0);
|
||||
INSERT INTO `oa_admin_group` VALUES (2, '总经理权限', 1, '2,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,3,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,4,77,78,79,80,81,82,83,84,85,5,86,87,88,89,90,91,92,6,93,96,97,7,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,8,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193', '总经理的管理权限,可根据公司的具体需求调整。', 0, 0);
|
||||
INSERT INTO `oa_admin_group` VALUES (3, '普通员工权限', 1, '5,89,90,91,92,6,93,96,97,7,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,8,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,144,145,146,147,149,150,151,152,153,154,155,156,157,158,160,161,162,163,164,165,166,167,168,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,189,190,191,192,193', '普通员工管理权限,可根据公司的具体需求调整。', 0, 0);
|
||||
INSERT INTO `oa_admin_group` VALUES (1, '超级员工权限', 1, '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197', '超级员工权限,拥有系统的最高权限,不可修改。', 0, 0);
|
||||
INSERT INTO `oa_admin_group` VALUES (2, '总经理权限', 1, '2,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,3,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,4,77,78,79,80,81,82,83,84,85,5,86,87,88,89,90,91,92,6,93,96,97,7,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,8,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197', '总经理的管理权限,可根据公司的具体需求调整。', 0, 0);
|
||||
INSERT INTO `oa_admin_group` VALUES (3, '普通员工权限', 1, '5,89,90,91,92,6,93,96,97,7,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,8,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,137,138,139,140,141,142,143,144,145,146,147,149,150,151,152,153,154,155,156,157,158,160,161,162,163,164,165,166,167,168,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,189,190,191,192,193,194,195,196,197', '普通员工管理权限,可根据公司的具体需求调整。', 0, 0);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for oa_data_auth
|
||||
|
Loading…
x
Reference in New Issue
Block a user