first commit

This commit is contained in:
2026-01-25 18:18:09 +08:00
commit 509312e604
8136 changed files with 2349298 additions and 0 deletions

18
views/site/about.php Normal file
View File

@ -0,0 +1,18 @@
<?php
/** @var yii\web\View $this */
use yii\helpers\Html;
$this->title = 'About';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="site-about">
<h1><?= Html::encode($this->title) ?></h1>
<p>
This is the About page. You may modify the following file to customize its content:
</p>
<code><?= __FILE__ ?></code>
</div>

2
views/site/console.php Normal file
View File

@ -0,0 +1,2 @@
<?php
echo 'Hello ^_^';

68
views/site/contact.php Normal file
View File

@ -0,0 +1,68 @@
<?php
/** @var yii\web\View $this */
/** @var yii\bootstrap5\ActiveForm $form */
/** @var app\models\ContactForm $model */
use yii\bootstrap5\ActiveForm;
use yii\bootstrap5\Html;
use yii\captcha\Captcha;
$this->title = 'Contact';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="site-contact">
<h1><?= Html::encode($this->title) ?></h1>
<?php if (Yii::$app->session->hasFlash('contactFormSubmitted')): ?>
<div class="alert alert-success">
Thank you for contacting us. We will respond to you as soon as possible.
</div>
<p>
Note that if you turn on the Yii debugger, you should be able
to view the mail message on the mail panel of the debugger.
<?php if (Yii::$app->mailer->useFileTransport): ?>
Because the application is in development mode, the email is not sent but saved as
a file under <code><?= Yii::getAlias(Yii::$app->mailer->fileTransportPath) ?></code>.
Please configure the <code>useFileTransport</code> property of the <code>mail</code>
application component to be false to enable email sending.
<?php endif; ?>
</p>
<?php else: ?>
<p>
If you have business inquiries or other questions, please fill out the following form to contact us.
Thank you.
</p>
<div class="row">
<div class="col-lg-5">
<?php $form = ActiveForm::begin(['id' => 'contact-form']); ?>
<?= $form->field($model, 'name')->textInput(['autofocus' => true]) ?>
<?= $form->field($model, 'email') ?>
<?= $form->field($model, 'subject') ?>
<?= $form->field($model, 'body')->textarea(['rows' => 6]) ?>
<?= $form->field($model, 'verifyCode')->widget(Captcha::class, [
'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>',
]) ?>
<div class="form-group">
<?= Html::submitButton('Submit', ['class' => 'btn btn-primary', 'name' => 'contact-button']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
</div>
<?php endif; ?>
</div>

27
views/site/error.php Normal file
View File

@ -0,0 +1,27 @@
<?php
/** @var yii\web\View $this */
/** @var string $name */
/** @var string $message */
/** @var Exception$exception */
use yii\helpers\Html;
$this->title = $name;
?>
<div class="site-error">
<h1><?= Html::encode($this->title) ?></h1>
<div class="alert alert-danger">
<?= nl2br(Html::encode($message)) ?>
</div>
<p>
The above error occurred while the Web server was processing your request.
</p>
<p>
Please contact us if you think this is a server error. Thank you.
</p>
</div>

71
views/site/genjin.php Normal file
View File

@ -0,0 +1,71 @@
<form class="layui-form admin-form" lay-filter="testForm">
<input type="hidden" name="clue_id" value="<?= $clueId ?>">
<?php if (Yii::$app->user->identity->role === 'ADMIN'): ?>
<div class="layui-form-item">
<label class="layui-form-label">转化状态</label>
<div class="layui-input-inline">
<select name="convert_status" lay-filter="aihao">
<option value="1" <?= $covert_status == 1 ? 'selected' : '' ?>>合法转化</option>
<option value="2" <?= $covert_status == 2 ? 'selected' : '' ?>>待确认</option>
<option value="3" <?= $covert_status == 3 ? 'selected' : '' ?>>营销预览</option>
<option value="4" <?= $covert_status == 4 ? 'selected' : '' ?>>其他转化</option>
</select>
</div>
</div>
<?php endif; ?>
<div class="layui-form-item">
<label class="layui-form-label">姓名</label>
<div class="layui-input-inline layui-input-wrap">
<input type="text" value="<?= $name ?>" name="name" lay-verify="required" autocomplete="off" lay-affix="clear" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label ">备注</label>
<div class="layui-input-block">
<textarea name="note" placeholder="备注" class="layui-textarea" lay-verType="tips"><?= htmlspecialchars($note ?? '', ENT_QUOTES) ?></textarea>
</div>
</div>
<div class="layui-form-item text-right">
<button type="submit"
class="layui-btn"
lay-submit
lay-filter="save">
提交
</button>
</div>
</form>
<script>
layui.use(['form'], function () {
var form = layui.form;
console.log('form init ok');
form.on('submit(save)', function (data) {
console.log(data)
$.ajax({
url: '/api/update-clue',
method: 'POST',
data: {
clue_id: data.field.clue_id,
note: data.field.note,
name: data.field.name,
<?php if (Yii::$app->user->identity->role === 'ADMIN'): ?>
<?= 'convert_status: data.field.convert_status' ?>
<?php endif; ?>
}
})
// ✅ 刷新父页面表格
parent.layui.table.reload('clueTable');
// ✅ 关闭当前弹窗
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
// 修复焦点 & 滚动锁
parent.document.body.style.overflow = 'auto';
parent.window.focus();
return false;
});
});
</script>

100
views/site/index.php Normal file
View File

@ -0,0 +1,100 @@
<div class="layui-layout layui-layout-admin">
<!-- 头部 -->
<div class="layui-header">
<div class="layui-logo">
<img src="/images/logo.png"/>
<cite>线索管理</cite>
</div>
<ul class="layui-nav layui-layout-left">
<li class="layui-nav-item" lay-unselect>
<a ew-event="flexible" title="侧边伸缩"><i class="layui-icon layui-icon-shrink-right"></i></a>
</li>
<li class="layui-nav-item" lay-unselect>
<a ew-event="refresh" title="刷新"><i class="layui-icon layui-icon-refresh-3"></i></a>
</li>
</ul>
<ul class="layui-nav layui-layout-right">
<li class="layui-nav-item layui-hide-xs" lay-unselect>
<a ew-event="fullScreen" title="全屏"><i class="layui-icon layui-icon-screen-full"></i></a>
</li>
<li class="layui-nav-item" lay-unselect>
<a>
<img src="/images/head.png" class="layui-nav-img">
<cite><?= Yii::$app->user->identity->username ?></cite>
</a>
<dl class="layui-nav-child">
<!-- <dd lay-unselect><a id="index_psw">修改密码</a></dd>-->
<!-- <hr>-->
<dd lay-unselect><a id="logout">退出</a></dd>
</dl>
</li>
</ul>
</div>
<!-- 侧边栏 -->
<div class="layui-side">
<div class="layui-side-scroll">
<ul class="layui-nav layui-nav-tree arrow2" lay-filter="admin-side-nav" lay-shrink="all">
<?php if (Yii::$app->user->identity->role === 'USER'): ?>
<li class="layui-nav-item" >
<a lay-href="private">
<i class="layui-icon layui-icon-auz"></i>&emsp;
<cite>我的线索</cite>
</a>
</li>
<?php endif; ?>
<?php if (Yii::$app->user->identity->role === 'ADMIN'): ?>
<li class="layui-nav-item" >
<a lay-href="xiansuo">
<i class="layui-icon layui-icon-auz"></i>&emsp;
<cite>线索管理</cite>
</a>
</li>
<li class="layui-nav-item" >
<a lay-href="users">
<i class="layui-icon layui-icon-auz"></i>&emsp;
<cite>后台账户管理</cite>
</a>
</li>
<li class="layui-nav-item" >
<a lay-href="oauthmanage">
<i class="layui-icon layui-icon-auz"></i>&emsp;
<cite>授权账户管理</cite>
</a>
</li>
<?php endif; ?>
</ul>
</div>
</div>
<!-- 主体部分 -->
<div class="layui-body" style="bottom:0;"></div>
</div>
<!-- 加载动画 -->
<div class="page-loading">
<div class="ball-loader">
<span></span><span></span><span></span><span></span>
</div>
</div>
<script>
layui.use(['layer','index','admin'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var index = layui.index;
var admin = layui.admin;
var form = layui.form;
var notice = layui.notice;
// 默认加载主页
index.loadHome({
menuPath: 'console',
menuName: '<i class="layui-icon layui-icon-home"></i>',
// loadSetting: false,
});
$('#logout').click(function () {
location.replace("logout")
})
});
</script>

53
views/site/index_bak.php Normal file
View File

@ -0,0 +1,53 @@
<?php
/** @var yii\web\View $this */
$this->title = 'My Yii Application';
?>
<div class="site-index">
<div class="jumbotron text-center bg-transparent mt-5 mb-5">
<h1 class="display-4">Congratulations!</h1>
<p class="lead">You have successfully created your Yii-powered application.</p>
<p><a class="btn btn-lg btn-success" href="https://www.yiiframework.com">Get started with Yii</a></p>
</div>
<div class="body-content">
<div class="row">
<div class="col-lg-4 mb-3">
<h2>Heading</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur.</p>
<p><a class="btn btn-outline-secondary" href="https://www.yiiframework.com/doc/">Yii Documentation &raquo;</a></p>
</div>
<div class="col-lg-4 mb-3">
<h2>Heading</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur.</p>
<p><a class="btn btn-outline-secondary" href="https://www.yiiframework.com/forum/">Yii Forum &raquo;</a></p>
</div>
<div class="col-lg-4">
<h2>Heading</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur.</p>
<p><a class="btn btn-outline-secondary" href="https://www.yiiframework.com/extensions/">Yii Extensions &raquo;</a></p>
</div>
</div>
</div>
</div>

94
views/site/login.php Normal file
View File

@ -0,0 +1,94 @@
<?php
/** @var yii\web\View $this */
/** @var yii\bootstrap5\ActiveForm $form */
/** @var app\models\LoginForm $model */
use yii\bootstrap5\ActiveForm;
use yii\bootstrap5\Html;
$this->title = 'Login';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="login-wrapper">
<?php $form = ActiveForm::begin([
'id' => 'login-form',
'options' => [
'class' => 'layui-form',
],
'fieldConfig' => [
'template' => "{label}\n{input}\n{error}",
'labelOptions' => ['class' => 'col-lg-1 col-form-label mr-lg-3'],
'inputOptions' => ['class' => 'col-lg-3 form-control'],
'errorOptions' => ['class' => 'col-lg-7 invalid-feedback'],
],
]); ?>
<h2 class="h2">线索管理</h2>
<?= $form->field($model, 'username', [
'options' => ['class' => 'layui-form-item layui-input-icon-group'],
'template' => '
<i class="layui-icon layui-icon-username"></i>
{input}
{error}
',
])->textInput([
'autofocus' => true,
'class' => 'layui-input',
'placeholder' => '用户名',
])->label(false) ?>
<?= $form->field($model, 'password', [
'options' => ['class' => 'layui-form-item layui-input-icon-group'],
'template' => '
<i class="layui-icon layui-icon-username"></i>
{input}
{error}
',
])->passwordInput([
'autofocus' => true,
'class' => 'layui-input',
'placeholder' => '密码',
])->label(false) ?>
<div class="layui-form-item">
<?= Html::submitButton('登陆', ['id' => 'loginBtn','class' => 'layui-btn layui-btn-fluid', 'name' => 'login-button']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
<script>
let submitting = false;
document.addEventListener('DOMContentLoaded', function () {
const form = document.getElementById('login-form');
const btn = document.getElementById('loginBtn');
const inputs = form.querySelectorAll('input[name="LoginForm[username]"], input[name="LoginForm[password]"]');
if (!form || !btn) return;
// 提交时锁定
form.addEventListener('submit', function (e) {
if (submitting) {
e.preventDefault();
return;
}
submitting = true;
btn.disabled = true;
btn.classList.add('layui-btn-disabled');
btn.innerText = '登录中...';
});
// 输入变化时解锁
inputs.forEach(function (input) {
input.addEventListener('input', function () {
submitting = false;
btn.disabled = false;
btn.classList.remove('layui-btn-disabled');
btn.innerText = '登录';
});
});
});
</script>

55
views/site/login_bak.php Normal file
View File

@ -0,0 +1,55 @@
<?php
/** @var yii\web\View $this */
/** @var yii\bootstrap5\ActiveForm $form */
/** @var app\models\LoginForm $model */
use yii\bootstrap5\ActiveForm;
use yii\bootstrap5\Html;
$this->title = 'Login';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="site-login">
<h1><?= Html::encode($this->title) ?></h1>
<p>Please fill out the following fields to login:</p>
<div class="row">
<div class="col-lg-5">
<?php $form = ActiveForm::begin([
'id' => 'login-form',
'fieldConfig' => [
'template' => "{label}\n{input}\n{error}",
'labelOptions' => ['class' => 'col-lg-1 col-form-label mr-lg-3'],
'inputOptions' => ['class' => 'col-lg-3 form-control'],
'errorOptions' => ['class' => 'col-lg-7 invalid-feedback'],
],
]); ?>
<?= $form->field($model, 'username')->textInput(['autofocus' => true]) ?>
<?= $form->field($model, 'password')->passwordInput() ?>
<?= $form->field($model, 'rememberMe')->checkbox([
'template' => "<div class=\"custom-control custom-checkbox\">{input} {label}</div>\n<div class=\"col-lg-8\">{error}</div>",
]) ?>
<div class="form-group">
<div>
<?= Html::submitButton('Login', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
</div>
</div>
<?php ActiveForm::end(); ?>
<div style="color:#999;">
You may login with <strong>admin/admin</strong> or <strong>demo/demo</strong>.<br>
To modify the username/password, please check out the code <code>app\models\User::$users</code>.
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,61 @@
<form class="layui-form admin-form" lay-filter="testForm">
<?php foreach ($arr as $accountName => $item): ?>
<h3 class="ws-bold"><?= $accountName ?></h3>
<div class="layui-form">
<div class="layui-form-item">
<?php foreach ($item['items'] as $childItem): ?>
<input type="checkbox"
name="advertiser_ids[]"
value="<?= $childItem['id'] . '|' . $item['id'] ?>"
title="<?= $childItem['advertiser_name'] ?>"
<?= $childItem['is_active'] == 1 ? 'checked' : '' ?>
lay-filter="demo-checkbox-filter">
<?php endforeach; ?>
</div>
</div>
<?php endforeach; ?>
<div class="layui-form-item text-right">
<button type="submit"
class="layui-btn"
lay-submit
lay-filter="save">
提交
</button>
</div>
</form>
<script>
layui.use(['form', 'layer'], function () {
var form = layui.form;
var layer = layui.layer;
console.log('form init ok');
form.on('submit(save)', function (data) {
var loadIndex = layer.load();
// console.log(data.field);
$.ajax({
url: '/api/oauth-account-local-update',
method: 'POST',
data: data.field,
success: function (res) {
if (res.code != 0) {
layer.msg(res.message)
return
}
layer.close(loadIndex)
// ✅ 刷新父页面表格
parent.layui.table.reload('clueTable');
// ✅ 关闭当前弹窗
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
}
})
layer.closeAll()
return false;
});
});
</script>

192
views/site/oauth-manage.php Normal file
View File

@ -0,0 +1,192 @@
<style>
.layui-table-cell{
height:auto !important;
}
</style>
<!-- 页面加载loading -->
<div class="page-loading">
<div class="ball-loader">
<span></span><span></span><span></span><span></span>
</div>
</div>
<!-- 正文开始 -->
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body">
<table id="tableUser" lay-filter="tableUser"></table>
</div>
</div>
</div>
<script type="text/html" id="toolDemo">
<div class="layui-clear-space">
<a class="layui-btn layui-btn-xs" lay-event="init">同步授权数据</a>
<a class="layui-btn layui-btn-xs" lay-event="edit">配置</a>
</div>
</script>
<script>
layui.use(['layer', 'form', 'table', 'util', 'admin', 'formX'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var form = layui.form;
var table = layui.table;
var util = layui.util;
var admin = layui.admin;
var formX = layui.formX;
var notice = layui.notice;
var dropdown = layui.dropdown;//下拉菜单的
var laydate = layui.laydate
var xmSelect = layui.xmSelect
// 渲染表格
var insTb = table.render({
elem: '#tableUser',
url: 'api/oauth-manage',
page: true,
limit:50,
limits:[50,100,200,500,1000,10000],
toolbar: true,
defaultToolbar:['exports','print'],
cellMinWidth: 100,
cols: [[
{field: 'uid', title: '账户主体ID', align: 'center'},
{field: 'updated_at', title: '授权时间', align: 'center'},
{fixed: 'right', title:'操作', width: 240, minWidth: 155, templet: '#toolDemo'}
]]
});
/* 表格搜索 */
form.on('submit(tbAdvTbSearch)', function (data) {
insTb.reload({where: data.field, page: {curr: 1}});
return false;
});
// /* 添加时间 */
// laydate.render({
// elem: '#formAdvDateSel1',
// range: true,
// trigger: 'click'
// });
// 添加
$('#btnAddUser123').click(function () {
showEditModel();
return false;
});
/* 表格工具条点击事件 */
table.on('tool(tableUser)', function (obj) {
var data = obj.data;
console.log(data)
if (obj.event === 'edit') { // 修改
edit(data);
} else if (obj.event === 'init') { // 删除
initOauthAdmin(data);
}
// dropdown.hideAll();
});
// 显示表单弹窗
function showEditModel(mUser) {
var url_get = 'oauthmanageconfig';
var layIndex = admin.open({
title: (mUser ? '修改' : '添加') + '用户',
url: url_get,
data: {user: mUser}, // 传递数据到表单页面
end: function () {
//
},
success: function (layero, dIndex) {
// 弹窗超出范围不出现滚动条
var mUser = admin.getLayerData('#modelUserForm').user; // 列表页面传递的数据,#modelUserForm这个只要写弹窗内任意一个元素的id即可
console.log(mUser);
form.val('modelUserForm', mUser);
// 回显数据
if (mUser) {
$('.hide').remove()
}
// 表单提交事件
var id = mUser ? mUser.id : 0;
form.on('submit(modelSubmitUser)', function (data) {
admin.showLoading( 'body',1, '.7');
var url = mUser ? 'users/' + mUser.id : 'users';
if (mUser) {
data.field._method = 'PUT'
}
$.post(url, data.field, function (res) {
layer.closeAll('loading');
if (res.code == 666) {
msg('消息通知',res.msg,1)
insTb.reload({}, 'data');
admin.closeDialog('#modelUserForm'); // 关闭页面层弹窗
} else {
msg('消息通知',res.msg,2)
}
admin.removeLoading( 'body',true, true);
}, 'json');
return false;
});
$(layero).children('.layui-layer-content').css('overflow', 'visible');
}
});
}
function edit(data) {
console.log(data)
layer.open({
type: 2,
title: '授权账户管理',
shadeClose: true,
shade: 0.8,
area: ['380px', '80%'],
content: 'oauthmanageconfig?uid=' + data.uid // iframe 的 url
});
}
function tuisong(mUser, _this){
var data = {'xs_id':mUser.id}
layer.confirm('确定推送?', {
skin: 'layui-layer-admin',
shade: .1
}, function(i){
layer.close(i);
admin.showLoading('body', 1, '.7');
$.post('xiansuo/tuisong', {
_token: 'lY9I6mn5ij6xKtr0iil9xVXbyaHaowdYC3IWSovG',
data: data
}, function (res) {
if (res.code == 666) {
msg('提示',res.msg,1)
insTb.reload({}, 'data');
} else {
msg('提示',res.msg,2)
}
admin.removeLoading('body', true, true);
}, 'json');
})
}
function initOauthAdmin(obj){
admin.showLoading('body', 1, '.7');
$.ajax({
url: 'api/init-oauth-admin',
data: {
uid: obj.uid
},
dataType: "json",
type: "post",
success: function (res) {
admin.removeLoading('body', true, true);
// layer.close(loading);
// if (res.code) {
// return layui.popup.failure(res.msg);
// }
// return layui.popup.success("操作成功", refreshTable);
}
})
}
});
</script>
<script>
window.clearTimeout(localStorage.getItem("in_user"))
localStorage.removeItem("in_user")
localStorage.removeItem("in_user_box")
</script>

View File

@ -0,0 +1,60 @@
<form class="layui-form admin-form" action="">
<div class="layui-form-item">
<label class="layui-form-label">用户名</label>
<div class="layui-input-inline layui-input-wrap">
<input type="text" name="username" lay-verify="required" autocomplete="off" lay-affix="clear" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">密码</label>
<div class="layui-input-inline layui-input-wrap">
<input type="text" name="password" lay-verify="required" autocomplete="off" lay-affix="clear" class="layui-input">
</div>
</div>
<div class="layui-form-item text-right">
<button type="submit"
class="layui-btn"
lay-submit
lay-filter="save">
提交
</button>
</div>
</form>
<script>
layui.use(['form', 'layer'], function () {
var form = layui.form;
var layer = layui.layer;
console.log('form init ok');
form.on('submit(save)', function (data) {
var loadIndex = layer.load();
// console.log(data.field);
$.ajax({
url: '/api/user/create',
method: 'POST',
data: data.field,
success: function (res) {
console.log(res)
if (res.code != 0) {
layer.msg(res.msg);
return;
}
// ✅ 刷新父页面表格
parent.layui.table.reload('clueTable');
// ✅ 关闭当前弹窗
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
},
complete: function () {
layer.close(loadIndex)
}
})
return false;
});
});
</script>

View File

@ -0,0 +1,60 @@
<form class="layui-form admin-form" action="">
<div class="layui-form-item">
<label class="layui-form-label">用户名</label>
<div class="layui-input-inline layui-input-wrap">
<input type="text" value="<?= $query['username'] ?>" name="username" lay-verify="required" autocomplete="off" lay-affix="clear" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">新密码</label>
<div class="layui-input-inline layui-input-wrap">
<input type="text" name="password" lay-verify="required" autocomplete="off" lay-affix="clear" class="layui-input">
</div>
</div>
<div class="layui-form-item text-right">
<button type="submit"
class="layui-btn"
lay-submit
lay-filter="save">
提交
</button>
</div>
</form>
<script>
layui.use(['form', 'layer'], function () {
var form = layui.form;
var layer = layui.layer;
console.log('form init ok');
form.on('submit(save)', function (data) {
var loadIndex = layer.load();
// console.log(data.field);
$.ajax({
url: '/api/user/create',
method: 'POST',
data: data.field,
success: function (res) {
console.log(res)
if (res.code != 0) {
layer.msg(res.msg);
return;
}
// ✅ 刷新父页面表格
parent.layui.table.reload('clueTable');
// ✅ 关闭当前弹窗
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
},
complete: function () {
layer.close(loadIndex)
}
})
return false;
});
});
</script>

71
views/site/user/edit.php Normal file
View File

@ -0,0 +1,71 @@
<form class="layui-form admin-form" action="">
<input type="hidden" name="user_id" value="<?= $user_id ?>">
<div class="layui-inline">
<div class="layui-input-inline">
<div id="demo1" style="width: 300px; margin: 20px;"></div>
</div>
</div>
<div class="layui-form-item text-right">
<button type="submit"
class="layui-btn"
lay-submit
lay-filter="save">
提交
</button>
</div>
</form>
<script>
layui.use(['form', 'layer', 'xmSelect'], function () {
var form = layui.form;
var layer = layui.layer;
console.log('form init ok');
var xmSelect = layui.xmSelect;
//渲染多选
var demo1 = xmSelect.render({
el: '#demo1',
filterable: true,
data: <?= json_encode($advertiser) ?>
// [
// {name: '张三', value: 1},
// {name: '李四', value: 2},
// {name: '王五', value: 3},
// ],
})
form.on('submit(save)', function (data) {
var loadIndex = layer.load();
// console.log(data.field);
$.ajax({
url: '/api/user/update-user',
method: 'POST',
data: data.field,
success: function (res) {
console.log(res)
if (res.code != 0) {
layer.msg(res.msg);
return;
}
layer.msg(res.msg);
// ✅ 刷新父页面表格
parent.layui.table.reload('clueTable');
// ✅ 关闭当前弹窗
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
},
complete: function () {
layer.close(loadIndex)
}
})
return false;
});
});
</script>

179
views/site/users.php Normal file
View File

@ -0,0 +1,179 @@
<!--<link href="//unpkg.com/layui@2.13.3/dist/css/layui.css" rel="stylesheet">-->
<table class="layui-hide" id="ID-treeTable-demo"></table>
<script type="text/html" id="TPL-treeTable-demo">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-sm" lay-event="create">新增用户</button>
</div>
</script>
<script type="text/html" id="TPL-treeTable-demo-tools">
<div class="layui-btn-container">
<!-- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="editPassword">修改密码</a>-->
<a class="layui-btn layui-btn-xs" lay-event="more">更多 <i class="layui-icon layui-icon-down"></i></a>
</div>
</script>
<script>
layui.use(function(){
var treeTable = layui.treeTable;
var layer = layui.layer;
var dropdown = layui.dropdown;
// 渲染
var inst = treeTable.render({
elem: '#ID-treeTable-demo',
url: '/api/user/index', // 此处为静态模拟数据,实际使用时需换成真实接口
tree: {
/*
// 异步加载子节点
async: {
enable: true,
url: '/static/json/2/treeTable/demo-async.json', // 此处为静态模拟数据,实际使用时需换成真实接口
autoParam: ["parentId=id"]
}
*/
},
maxHeight: '501px',
toolbar: '#TPL-treeTable-demo',
cols: [[
{type: 'checkbox', fixed: 'left'},
{field: 'username', title: '用户名', fixed: 'left'},
{field: 'role', title: '权限', fixed: 'left', templet: function(d) {
if(d.role === 'ADMIN'){
return '管理员';
} else {
return '子账户';
}
}},
{field: 'advertiser_status', title: '绑定账户', fixed: 'left'},
{field: 'status', title: '状态', fixed: 'left', templet: function(d) {
if(d.status == '10'){
return '正常';
} else {
return '已关闭';
}
}},
{field: 'created_at', title: '创建时间', fixed: 'left'},
{fixed: "right", title: "操作", width: 190, align: "center", toolbar: "#TPL-treeTable-demo-tools"}
]],
page: true
});
// 表头工具栏工具事件
treeTable.on("toolbar(ID-treeTable-demo)", function (obj) {
var config = obj.config;
var tableId = config.id;
var status = treeTable.checkStatus(tableId);
// 获取选中行
if (obj.event === "getChecked") {
if(!status.data.length) return layer.msg('无选中数据');
console.log(status);
layer.alert("当前数据选中已经输出到控制台,<br>您可按 F12 从控制台中查看结果。");
}
if (obj.event === 'create') {
layer.open({
type: 2,
title: '新增后台账户',
shadeClose: true,
shade: 0.8,
area: ['380px', '80%'],
content: 'usercreate'
});
}
});
// 单元格工具事件
treeTable.on('tool('+ inst.config.id +')', function (obj) {
var layEvent = obj.event; // 获得 lay-event 对应的值
var trElem = obj.tr;
var trData = obj.data;
var tableId = obj.config.id;
if (layEvent === 'editPassword') {
layer.open({
type: 2,
title: '修改密码',
shadeClose: true,
shade: 0.8,
area: ['380px', '80%'],
content: 'usereditpasswprd?id=' + obj.data.id
});
}
if (layEvent === "detail") {
layer.msg("查看操作:" + trData.name);
} else if (layEvent === "addChild") {
var data = { id: Date.now(), name: "新节点" };
var newNode2 = treeTable.addNodes(tableId, {
parentIndex: trData["LAY_DATA_INDEX"],
index: -1,
data: data
});
} else if (layEvent === "more") {
// 下拉菜单
dropdown.render({
elem: this, // 触发事件的 DOM 对象
show: true, // 外部事件触发即显示
align: "right", // 右对齐弹出
data: [
{
title: "编辑",
id: "edit"
},
{
title: "修改密码",
id: "editPassword"
}
],
click: function (menudata) {
if (menudata.id === 'edit') {
layer.open({
type: 2,
title: '编辑',
shadeClose: true,
shade: 0.8,
area: ['380px', '80%'],
content: 'useredit?id=' + obj.data.id
});
}
if (menudata.id === "del") {
layer.confirm("真的删除行么", function (index) {
obj.del(); // 等效如下
// treeTable.removeNode(tableId, trElem.attr('data-index'))
layer.close(index);
});
} else if (menudata.id === "editPassword") {
console.log(obj)
layer.prompt({
value: trData.experience,
title: "输入新的密码"
}, function (value, index) {
obj.update({ experience: value }); // 等效如下
var loadIndex = layer.load();
$.ajax({
url: '/api/user/reset-password',
data: {
password: value,
id: obj.data.id
},
dataType: "json",
type: "post",
success: function (res) {
layer.msg(res.message);
// layer.close(loading);
// if (res.code) {
// return layui.popup.failure(res.msg);
// }
// return layui.popup.success("操作成功", refreshTable);
layer.closeAll();
}
})
// treeTable.updateNode(tableId, trElem.attr('data-index'), {experience: value});
});
}
}
});
}
});
});
</script>

323
views/site/xiansuo.php Normal file
View File

@ -0,0 +1,323 @@
<style>
.layui-table-cell{
height:auto !important;
}
</style>
<!-- 页面加载loading -->
<div class="page-loading">
<div class="ball-loader">
<span></span><span></span><span></span><span></span>
</div>
</div>
<!-- 正文开始 -->
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body">
<form class="layui-form toolbar">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">姓名:</label>
<div class="layui-input-inline">
<input name="name" class="layui-input" placeholder="输入姓名"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">电话:</label>
<div class="layui-input-inline">
<input name="phone" class="layui-input" placeholder="输入电话"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">备注:</label>
<div class="layui-input-inline">
<input name="note" class="layui-input" placeholder="输入备注"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">城市</label>
<div class="layui-input-inline">
<input name="city" class="layui-input" placeholder="输入城市"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">日期范围</label>
<div class="layui-inline" id="ID-laydate-range">
<div class="layui-input-inline">
<input name="date_start" type="text" autocomplete="off" id="ID-laydate-start-date" class="layui-input" placeholder="开始日期" value="<?= date('Y-m-d', strtotime('-1 day')) ?>">
</div>
<div class="layui-form-mid">-</div>
<div class="layui-input-inline">
<input name="date_end" type="text" autocomplete="off" id="ID-laydate-end-date" class="layui-input" placeholder="结束日期" value="<?= date('Y-m-d') ?>">
</div>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">转化状态:</label>
<div class="layui-input-block">
<select name="convert_status" lay-filter="aihao">
<option value=""></option>
<option value="1">合法转化</option>
<option value="2">待确认</option>
<option value="3">营销预览</option>
<option value="4">其他转化</option>
</select>
</div>
</div>
<div class="layui-inline">&emsp;
<button class="layui-btn icon-btn" lay-filter="tbAdvTbSearch" lay-submit>
<i class="layui-icon">&#xe615;</i>搜索
</button>
<a class="layui-btn" search-expand>展开 <i class="layui-icon layui-icon-down"></i></a>
</div>
</div>
</form>
<table id="tableUser" lay-filter="tableUser"></table>
</div>
</div>
</div>
<script type="text/html" id="tableBarUser1221">
<!-- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a> -->
<a class="layui-btn layui-btn-xs" data-dropdown="#userTbDrop{{d.id}}" no-shade="true">
更多<i class="layui-icon layui-icon-drop" style="font-size: 12px;margin-right: 0;"></i></a>
<!-- 下拉菜单 -->
<ul class="dropdown-menu-nav dropdown-bottom-right layui-hide" id="userTbDrop{{d.id}}">
<div class="dropdown-anchor"></div>
<li><a lay-event="genjin"><i class="layui-icon layui-icon-edit"></i>跟进</a></li>
<!-- <li><a lay-event="genjin"><i class="layui-icon layui-icon-edit"></i>客户跟进</a></li>-->
<!-- <li><a lay-event="gjlist"><i class="layui-icon layui-icon-edit"></i>跟进列表</a></li>-->
<!--<li><a lay-event="tuisong"><i class="layui-icon layui-icon-file"></i>推送</a></li>-->
</ul>
</script>
<script type="text/html" id="tableBarUser">
<div class="layui-clear-space">
<!-- <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>-->
<a class="layui-btn layui-btn-xs" lay-event="genjin">
跟进
<i class="layui-icon layui-icon-down"></i>
</a>
</div>
</script>
<script>
layui.use(function () {
var $ = layui.jquery;
var layer = layui.layer;
var form = layui.form;
var table = layui.table;
var util = layui.util;
var admin = layui.admin;
var formX = layui.formX;
var notice = layui.notice;
var laydate = layui.laydate
var xmSelect = layui.xmSelect
var dropdown = layui.dropdown;
// 日期
laydate.render({
elem: '#ID-laydate-range',
range: ['#ID-laydate-start-date', '#ID-laydate-end-date']
});
// 渲染表格
var insTb = table.render({
elem: '#tableUser',
id: 'clueTable',
url: 'api/xiansuo',
page: true,
limit:10,
limits:[10, 50],
toolbar: true,
defaultToolbar:['exports','print'],
cellMinWidth: 100,
cols: [[
{field: 'clue_id', title: '线索ID',width: 90, align: 'center'},
{field: 'promotion_name', title: '推广计划名称',align: 'center'},
{field: 'name', title: '姓名',align: 'center'},
{field: 'telephone', title: '电话',align: 'center'},
{field: 'convert_status', title: '转化状态',align: 'center'},
{field: 'auto_province_name', title: '系统识别省',align: 'center'},
{field: 'auto_city_name', title: '系统识别市',align: 'center'},
{field: 'note', title: '备注',align: 'center'},
{field: 'create_time_detail', title: '线索创建时间',align: 'center'},
{fixed: 'right', title: '操作', toolbar: '#tableBarUser', align: 'center', width: 80},
]],
});
/* 表格搜索 */
form.on('submit(tbAdvTbSearch)', function (data) {
insTb.reload({where: data.field, page: {curr: 1}});
return false;
});
// /* 添加时间 */
// laydate.render({
// elem: '#formAdvDateSel1',
// range: true,
// trigger: 'click'
// });
// 添加
$('#btnAddUser123').click(function () {
showEditModel();
return false;
});
/* 表格工具条点击事件 */
table.on('tool(tableUser)', function (obj) {
console.log(obj)
var data = obj.data;
if (obj.event === 'edit') { // 修改
showEditModel(data);
} else if (obj.event === 'zhengzhuang') { // 删除
zhengzhuang(data);
} else if (obj.event === 'gjlist') { // 跟进列表
gjlist(data);
}else if (obj.event === 'genjin') { // 跟进
genjin(data);
}else if(obj.event === 'tuisong'){ // 推送
tuisong(data);
} else if (obj.event === 'more') {
// 更多 - 下拉菜单
dropdown.render({
elem: this, // 触发事件的 DOM 对象
show: true, // 外部事件触发即显示
data: [{
title: '查看',
id: 'detail'
},{
title: '删除',
id: 'del'
}],
click: function(menudata){
if(menudata.id === 'detail'){
layer.msg('查看操作,当前行 ID:'+ data.id);
} else if(menudata.id === 'del'){
layer.confirm('真的删除行 [id: '+ data.id +'] 么', function(index){
obj.del(); // 删除对应行tr的DOM结构
layer.close(index);
// 向服务端发送删除指令
});
}
},
id: 'dropdown-table-tool',
align: 'right', // 右对齐弹出
style: 'box-shadow: 1px 1px 10px rgb(0 0 0 / 12%);' // 设置额外样式
});
}
// dropdown.hideAll();
});
// 显示表单弹窗
function showEditModel(mUser) {
var url_get = mUser ? 'users/' + mUser.id + '/edit' : 'users/create';
var layIndex = admin.open({
title: (mUser ? '修改' : '添加') + '用户',
url: url_get,
data: {user: mUser}, // 传递数据到表单页面
end: function () {
//
},
success: function (layero, dIndex) {
// 弹窗超出范围不出现滚动条
var mUser = admin.getLayerData('#modelUserForm').user; // 列表页面传递的数据,#modelUserForm这个只要写弹窗内任意一个元素的id即可
console.log(mUser);
form.val('modelUserForm', mUser);
// 回显数据
if (mUser) {
$('.hide').remove()
}
// 表单提交事件
var id = mUser ? mUser.id : 0;
form.on('submit(modelSubmitUser)', function (data) {
admin.showLoading( 'body',1, '.7');
var url = mUser ? 'users/' + mUser.id : 'users';
if (mUser) {
data.field._method = 'PUT'
}
$.post(url, data.field, function (res) {
layer.closeAll('loading');
if (res.code == 666) {
msg('消息通知',res.msg,1)
insTb.reload({}, 'data');
admin.closeDialog('#modelUserForm'); // 关闭页面层弹窗
} else {
msg('消息通知',res.msg,2)
}
admin.removeLoading( 'body',true, true);
}, 'json');
return false;
});
$(layero).children('.layui-layer-content').css('overflow', 'visible');
}
});
}
function tuisong(mUser, _this){
var data = {'xs_id':mUser.id}
layer.confirm('确定推送?', {
skin: 'layui-layer-admin',
shade: .1
}, function(i){
layer.close(i);
admin.showLoading('body', 1, '.7');
$.post('xiansuo/tuisong', {
_token: 'lY9I6mn5ij6xKtr0iil9xVXbyaHaowdYC3IWSovG',
data: data
}, function (res) {
if (res.code == 666) {
msg('提示',res.msg,1)
insTb.reload({}, 'data');
} else {
msg('提示',res.msg,2)
}
admin.removeLoading('body', true, true);
}, 'json');
})
}
function zhengzhuang(mUser){
var layIndex = admin.open({
title:'查看:'+mUser.name+' 症状',
url: 'xiansuo/zhengzhuang/'+mUser.id,
end: function () {
//
},
success: function (layero, dIndex) {
form.val('addmoneyForm', mUser);
}
});
}
// 跟进状态
function genjin(data) {
console.log(data.clue_id)
layer.open({
type: 2,
area: ['800px', '300px'], // 宽高
title: "跟进",
shade: 0.1,
content: 'genjin?clue_id='+ data.clue_id
});
}
function gjlist(mUser){
var layIndex = admin.open({
area:'90%',
title:mUser.name+' 跟进列表',
url: 'xiansuo/gjlist/'+mUser.id,
end: function () {
//
},
success: function (layero, dIndex) {
}
});
}
});
</script>
<script>
window.clearTimeout(localStorage.getItem("in_user"))
localStorage.removeItem("in_user")
localStorage.removeItem("in_user_box")
</script>

View File

@ -0,0 +1,309 @@
<style>
.layui-table-cell{
height:auto !important;
}
</style>
<!-- 页面加载loading -->
<div class="page-loading">
<div class="ball-loader">
<span></span><span></span><span></span><span></span>
</div>
</div>
<!-- 正文开始 -->
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body">
<form class="layui-form toolbar">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">姓名:</label>
<div class="layui-input-inline">
<input name="name" class="layui-input" placeholder="输入姓名"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">电话:</label>
<div class="layui-input-inline">
<input name="phone" class="layui-input" placeholder="输入电话"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">备注:</label>
<div class="layui-input-inline">
<input name="note" class="layui-input" placeholder="输入备注"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">城市</label>
<div class="layui-input-inline">
<input name="city" class="layui-input" placeholder="输入城市"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">日期范围</label>
<div class="layui-inline" id="ID-laydate-range">
<div class="layui-input-inline">
<input name="date_start" type="text" autocomplete="off" id="ID-laydate-start-date" class="layui-input" placeholder="开始日期" value="<?= date('Y-m-d', strtotime('-1 day')) ?>">
</div>
<div class="layui-form-mid">-</div>
<div class="layui-input-inline">
<input name="date_end" type="text" autocomplete="off" id="ID-laydate-end-date" class="layui-input" placeholder="结束日期" value="<?= date('Y-m-d') ?>">
</div>
</div>
</div>
<div class="layui-inline">&emsp;
<button class="layui-btn icon-btn" lay-filter="tbAdvTbSearch" lay-submit>
<i class="layui-icon">&#xe615;</i>搜索
</button>
<a class="layui-btn" search-expand>展开 <i class="layui-icon layui-icon-down"></i></a>
</div>
</div>
</form>
<table id="tableUser" lay-filter="tableUser"></table>
</div>
</div>
</div>
<script type="text/html" id="tableBarUser1221">
<!-- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a> -->
<a class="layui-btn layui-btn-xs" data-dropdown="#userTbDrop{{d.id}}" no-shade="true">
更多<i class="layui-icon layui-icon-drop" style="font-size: 12px;margin-right: 0;"></i></a>
<!-- 下拉菜单 -->
<ul class="dropdown-menu-nav dropdown-bottom-right layui-hide" id="userTbDrop{{d.id}}">
<div class="dropdown-anchor"></div>
<li><a lay-event="genjin"><i class="layui-icon layui-icon-edit"></i>跟进</a></li>
<!-- <li><a lay-event="genjin"><i class="layui-icon layui-icon-edit"></i>客户跟进</a></li>-->
<!-- <li><a lay-event="gjlist"><i class="layui-icon layui-icon-edit"></i>跟进列表</a></li>-->
<!--<li><a lay-event="tuisong"><i class="layui-icon layui-icon-file"></i>推送</a></li>-->
</ul>
</script>
<script type="text/html" id="tableBarUser">
<div class="layui-clear-space">
<!-- <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>-->
<a class="layui-btn layui-btn-xs" lay-event="genjin">
跟进
<i class="layui-icon layui-icon-down"></i>
</a>
</div>
</script>
<script>
layui.use(function () {
var $ = layui.jquery;
var layer = layui.layer;
var form = layui.form;
var table = layui.table;
var util = layui.util;
var admin = layui.admin;
var formX = layui.formX;
var notice = layui.notice;
var laydate = layui.laydate
var xmSelect = layui.xmSelect
var dropdown = layui.dropdown;
// 日期
laydate.render({
elem: '#ID-laydate-range',
range: ['#ID-laydate-start-date', '#ID-laydate-end-date']
});
// 渲染表格
var insTb = table.render({
elem: '#tableUser',
id: 'clueTable',
url: 'api/xiansuo-private',
page: true,
limit:10,
limits:[10, 50],
toolbar: true,
defaultToolbar:['exports','print'],
cellMinWidth: 100,
cols: [[
{field: 'clue_id', title: '线索ID',width: 90, align: 'center'},
{field: 'promotion_name', title: '推广计划名称',align: 'center'},
{field: 'name', title: '姓名',align: 'center'},
{field: 'telephone', title: '电话',align: 'center'},
{field: 'convert_status', title: '转化状态',align: 'center'},
{field: 'auto_province_name', title: '系统识别省',align: 'center'},
{field: 'auto_city_name', title: '系统识别市',align: 'center'},
{field: 'note', title: '备注',align: 'center'},
{field: 'create_time_detail', title: '线索创建时间',align: 'center'},
{fixed: 'right', title: '操作', toolbar: '#tableBarUser', align: 'center', width: 80},
]],
});
/* 表格搜索 */
form.on('submit(tbAdvTbSearch)', function (data) {
insTb.reload({where: data.field, page: {curr: 1}});
return false;
});
// /* 添加时间 */
// laydate.render({
// elem: '#formAdvDateSel1',
// range: true,
// trigger: 'click'
// });
// 添加
$('#btnAddUser123').click(function () {
showEditModel();
return false;
});
/* 表格工具条点击事件 */
table.on('tool(tableUser)', function (obj) {
console.log(obj)
var data = obj.data;
if (obj.event === 'edit') { // 修改
showEditModel(data);
} else if (obj.event === 'zhengzhuang') { // 删除
zhengzhuang(data);
} else if (obj.event === 'gjlist') { // 跟进列表
gjlist(data);
}else if (obj.event === 'genjin') { // 跟进
genjin(data);
}else if(obj.event === 'tuisong'){ // 推送
tuisong(data);
} else if (obj.event === 'more') {
// 更多 - 下拉菜单
dropdown.render({
elem: this, // 触发事件的 DOM 对象
show: true, // 外部事件触发即显示
data: [{
title: '查看',
id: 'detail'
},{
title: '删除',
id: 'del'
}],
click: function(menudata){
if(menudata.id === 'detail'){
layer.msg('查看操作,当前行 ID:'+ data.id);
} else if(menudata.id === 'del'){
layer.confirm('真的删除行 [id: '+ data.id +'] 么', function(index){
obj.del(); // 删除对应行tr的DOM结构
layer.close(index);
// 向服务端发送删除指令
});
}
},
id: 'dropdown-table-tool',
align: 'right', // 右对齐弹出
style: 'box-shadow: 1px 1px 10px rgb(0 0 0 / 12%);' // 设置额外样式
});
}
// dropdown.hideAll();
});
// 显示表单弹窗
function showEditModel(mUser) {
var url_get = mUser ? 'users/' + mUser.id + '/edit' : 'users/create';
var layIndex = admin.open({
title: (mUser ? '修改' : '添加') + '用户',
url: url_get,
data: {user: mUser}, // 传递数据到表单页面
end: function () {
//
},
success: function (layero, dIndex) {
// 弹窗超出范围不出现滚动条
var mUser = admin.getLayerData('#modelUserForm').user; // 列表页面传递的数据,#modelUserForm这个只要写弹窗内任意一个元素的id即可
console.log(mUser);
form.val('modelUserForm', mUser);
// 回显数据
if (mUser) {
$('.hide').remove()
}
// 表单提交事件
var id = mUser ? mUser.id : 0;
form.on('submit(modelSubmitUser)', function (data) {
admin.showLoading( 'body',1, '.7');
var url = mUser ? 'users/' + mUser.id : 'users';
if (mUser) {
data.field._method = 'PUT'
}
$.post(url, data.field, function (res) {
layer.closeAll('loading');
if (res.code == 666) {
msg('消息通知',res.msg,1)
insTb.reload({}, 'data');
admin.closeDialog('#modelUserForm'); // 关闭页面层弹窗
} else {
msg('消息通知',res.msg,2)
}
admin.removeLoading( 'body',true, true);
}, 'json');
return false;
});
$(layero).children('.layui-layer-content').css('overflow', 'visible');
}
});
}
function tuisong(mUser, _this){
var data = {'xs_id':mUser.id}
layer.confirm('确定推送?', {
skin: 'layui-layer-admin',
shade: .1
}, function(i){
layer.close(i);
admin.showLoading('body', 1, '.7');
$.post('xiansuo/tuisong', {
_token: 'lY9I6mn5ij6xKtr0iil9xVXbyaHaowdYC3IWSovG',
data: data
}, function (res) {
if (res.code == 666) {
msg('提示',res.msg,1)
insTb.reload({}, 'data');
} else {
msg('提示',res.msg,2)
}
admin.removeLoading('body', true, true);
}, 'json');
})
}
function zhengzhuang(mUser){
var layIndex = admin.open({
title:'查看:'+mUser.name+' 症状',
url: 'xiansuo/zhengzhuang/'+mUser.id,
end: function () {
//
},
success: function (layero, dIndex) {
form.val('addmoneyForm', mUser);
}
});
}
// 跟进状态
function genjin(data) {
console.log(data.clue_id)
layer.open({
type: 2,
area: ['800px', '300px'], // 宽高
title: "跟进",
shade: 0.1,
content: 'genjin?clue_id='+ data.clue_id
});
}
function gjlist(mUser){
var layIndex = admin.open({
area:'90%',
title:mUser.name+' 跟进列表',
url: 'xiansuo/gjlist/'+mUser.id,
end: function () {
//
},
success: function (layero, dIndex) {
}
});
}
});
</script>
<script>
window.clearTimeout(localStorage.getItem("in_user"))
localStorage.removeItem("in_user")
localStorage.removeItem("in_user_box")
</script>