基础数据模块优化

This commit is contained in:
hdm 2021-11-17 16:20:00 +08:00
parent 33baa7726a
commit 963b0de0b7
24 changed files with 2378 additions and 482 deletions

View File

@ -0,0 +1,83 @@
<?php
/**
* @copyright Copyright (c) 2021 勾股工作室
* @license https://opensource.org/licenses/GPL-2.0
* @link https://www.gougucms.com
*/
declare (strict_types = 1);
namespace app\home\controller;
use app\home\BaseController;
use think\facade\Db;
use think\facade\View;
class Check extends BaseController
{
public function index()
{
if (request()->isAjax()) {
$param = get_params();
$where = array();
$where[] = ['a.status', '>=', 0];
$rows = empty($param['limit']) ? get_config(app . page_size) : $param['limit'];
$content = Db::name('Check')
->field('a.*,u.username as username,u.name as name')
->alias('a')
->join('Admin u', 'a.uid = u.id', 'LEFT')
->where($where)
->paginate($rows, false, ['query' => $param]);
return table_assign(0, '', $content);
} else {
return view();
}
}
//添加/编辑
public function add()
{
$param = get_params();
if (request()->isAjax()) {
if (!empty($param['id']) && $param['id'] > 0) {
$param['update_time'] = time();
$res = Db::name('Check')->strict(false)->field(true)->update($param);
if ($res) {
add_log('edit', $param['id'], $param);
}
return to_assign();
} else {
$param['create_time'] = time();
$insertId = Db::name('Check')->strict(false)->field(true)->insertGetId($param);
if ($insertId) {
add_log('add', $insertId, $param);
}
return to_assign();
}
} else {
$id = isset($param['id']) ? $param['id'] : 0;
if ($id > 0) {
$detail = Db::name('Check')->where(['id' => $id])->find();
$detail['name'] = Db::name('Admin')->where(['id' => $detail['uid']])->value('name');
View::assign('detail', $detail);
}
View::assign('id', $id);
return view();
}
}
//删除
public function delete()
{
$id = get_params("id");
$data['status'] = '-1';
$data['id'] = $id;
$data['update_time'] = time();
if (Db::name('Config')->update($data) !== false) {
add_log('delete', $id, $data);
return to_assign(0, "删除成功");
} else {
return to_assign(1, "删除失败");
}
}
}

View File

@ -0,0 +1,344 @@
<?php
/**
* @copyright Copyright (c) 2021 勾股工作室
* @license https://opensource.org/licenses/GPL-2.0
* @link https://www.gougucms.com
*/
declare (strict_types = 1);
namespace app\home\controller;
use app\home\BaseController;
use app\home\model\Invoice as InvoiceList;
use app\home\model\InvoiceSubject;
use app\home\validate\InvoiceSubjectCheck;
use app\home\validate\InvoiceCheck;
use think\exception\ValidateException;
use think\facade\Db;
use think\facade\View;
class Invoice extends BaseController
{
public function subject()
{
if (request()->isAjax()) {
$subject = Db::name('InvoiceSubject')->order('create_time asc')->select();
return to_assign(0, '', $subject);
} else {
return view();
}
}
//提交保存分类
public function subject_add()
{
if (request()->isAjax()) {
$param = get_params();
if (!empty($param['id']) && $param['id'] > 0) {
try {
validate(InvoiceSubjectCheck::class)->scene('edit')->check($param);
} catch (ValidateException $e) {
// 验证失败 输出错误信息
return to_assign(1, $e->getError());
}
$data['update_time'] = time();
$res = InvoiceSubject::strict(false)->field(true)->update($param);
if ($res) {
add_log('edit', $param['id'], $param);
}
return to_assign();
} else {
try {
validate(InvoiceSubjectCheck::class)->scene('add')->check($param);
} catch (ValidateException $e) {
// 验证失败 输出错误信息
return to_assign(1, $e->getError());
}
$param['create_time'] = time();
$insertId = InvoiceSubject::strict(false)->field(true)->insertGetId($param);
if ($insertId) {
add_log('add', $insertId, $param);
}
return to_assign();
}
}
}
public function get_list($param = [], $where = [])
{
$rows = empty($param['limit']) ? get_config('app . page_size') : $param['limit'];
$expense = ExpenseList::where($where)
->order('create_time asc')
->paginate($rows, false, ['query' => $param])
->each(function ($item, $key) {
$item->income_month = empty($item->income_month) ? '-' : date('Y-m', $item->income_month);
$item->expense_time = empty($item->expense_time) ? '-' : date('Y-m-d', $item->expense_time);
$item->user_name = Db::name('Admin')->where(['id' => $item->uid])->value('name');
$item->admin_name = Db::name('Admin')->where(['id' => $item->admin_id])->value('name');
$item->department = Db::name('Department')->where(['id' => $item->did])->value('title');
$item->check_name = Db::name('Admin')->where(['id' => $item->check_admin_id])->value('name');
$item->check_time = empty($item->check_time) ? '-' : date('Y-m-d H:i', $item->check_time);
$item->pay_name = Db::name('Admin')->where(['id' => $item->pay_admin_id])->value('name');
$item->pay_time = empty($item->pay_time) ? '-' : date('Y-m-d H:i', $item->pay_time);
$item->amount = Db::name('ExpenseInterfix')->where(['exid' => $item->id])->sum('amount');
});
return $expense;
}
public function detail($id = 0)
{
$expense = Db::name('Expense')->where(['id' => $id])->find();
if ($expense) {
$expense['income_month'] = empty($expense['income_month']) ? '-' : date('Y-m', $expense['income_month']);
$expense['expense_time'] = empty($expense['expense_time']) ? '-' : date('Y-m-d', $expense['expense_time']);
$expense['user_name'] = Db::name('Admin')->where(['id' => $expense['uid']])->value('name');
$expense['department'] = Db::name('Department')->where(['id' => $expense['did']])->value('title');
$expense['amount'] = Db::name('ExpenseInterfix')->where(['exid' => $expense['id']])->sum('amount');
if ($expense['check_admin_id'] > 0) {
$expense['check_admin'] = Db::name('Admin')->where(['id' => $expense['check_admin_id']])->value('name');
$expense['check_time'] = date('Y-m-d H:i:s', $expense['check_time']);
}
if ($expense['pay_admin_id'] > 0) {
$expense['pay_admin'] = Db::name('Admin')->where(['id' => $expense['pay_admin_id']])->value('name');
$expense['pay_time'] = date('Y-m-d H:i:s', $expense['pay_time']);
}
$expense['list'] = Db::name('ExpenseInterfix')
->field('a.*,c.title as cate_title')
->alias('a')
->join('ExpenseCate c', 'a.cate_id = c.id')
->where(['a.exid' => $expense['id']])
->select();
}
return $expense;
}
public function index()
{
if (request()->isAjax()) {
$param = get_params();
$where = [];
$where[] = ['status', '=', 1];
//按时间检索
$start_time = isset($param['start_time']) ? strtotime(urldecode($param['start_time'])) : 0;
$end_time = isset($param['end_time']) ? strtotime(urldecode($param['end_time'])) : 0;
if ($start_time > 0 && $end_time > 0) {
$where[] = ['expense_time', 'between', [$start_time, $end_time]];
}
$expense = $this->get_list($param, $where);
return table_assign(0, '', $expense);
} else {
return view();
}
}
function list() {
if (request()->isAjax()) {
$param = get_params();
$where = [];
$where[] = ['admin_id', '=', $this->uid];
$where[] = ['status', '=', 1];
//按时间检索
$start_time = isset($param['start_time']) ? strtotime(urldecode($param['start_time'])) : 0;
$end_time = isset($param['end_time']) ? strtotime(urldecode($param['end_time'])) : 0;
if ($start_time > 0 && $end_time > 0) {
$where[] = ['expense_time', 'between', [$start_time, $end_time]];
}
$expense = $this->get_list($param, $where);
return table_assign(0, '', $expense);
} else {
return view();
}
}
//添加
public function add()
{
$id = empty(get_params('id')) ? 0 : get_params('id');
if ($id > 0) {
$expense = $this->detail($id);
View::assign('expense', $expense);
}
$expense_cate = Db::name('ExpenseCate')->where(['status' => 1])->select()->toArray();
View::assign('user', get_admin($this->uid));
View::assign('expense_cate', $expense_cate);
View::assign('id', $id);
return view();
}
//提交添加
public function post_submit()
{
$admin_id = $this->uid;
$dbRes = false;
$param = get_params();
$param['admin_id'] = $admin_id;
$param['income_month'] = isset($param['income_month']) ? strtotime(urldecode($param['income_month'])) : 0;
$param['expense_time'] = isset($param['expense_time']) ? strtotime(urldecode($param['expense_time'])) : 0;
$param['check_status'] = 1;
if (!empty($param['id']) && $param['id'] > 0) {
try {
validate(ExpenseCheck::class)->scene('edit')->check($param);
} catch (ValidateException $e) {
// 验证失败 输出错误信息
return to_assign(1, $e->getError());
}
$param['update_time'] = time();
Db::startTrans();
try {
$res = ExpenseList::where('id', $param['id'])->strict(false)->field(true)->update($param);
if ($res !== false) {
$exid = $param['id'];
//相关内容多个数组;
$amountData = isset($param['amount']) ? $param['amount'] : '';
$remarksData = isset($param['remarks']) ? $param['remarks'] : '';
$cateData = isset($param['cate_id']) ? $param['cate_id'] : '';
$idData = isset($param['expense_id']) ? $param['expense_id'] : 0;
if ($amountData) {
foreach ($amountData as $key => $value) {
if (!$value) {
continue;
}
$data = [];
$data['id'] = $idData[$key];
$data['exid'] = $exid;
$data['admin_id'] = $admin_id;
$data['amount'] = $amountData[$key];
$data['cate_id'] = $cateData[$key];
$data['remarks'] = $remarksData[$key];
if ($data['amount'] == 0) {
Db::rollback();
return to_assign(1, '第' . ($key + 1) . '条报销金额不能为零');
}
if ($data['id'] > 0) {
$data['update_time'] = time();
$resa = Db::name('ExpenseInterfix')->strict(false)->field(true)->update($data);
} else {
$data['create_time'] = time();
$eid = Db::name('ExpenseInterfix')->strict(false)->field(true)->insertGetId($data);
}
}
}
add_log('edit', $exid, $param);
Db::commit();
$dbRes = true;
} else {
Db::rollback();
}
} catch (\Exception $e) { ##这里参数不能删除($e错误信息)
Db::rollback();
return to_assign(1, $e->getMessage());
}
} else {
try {
validate(ExpenseCheck::class)->scene('add')->check($param);
} catch (ValidateException $e) {
// 验证失败 输出错误信息
return to_assign(1, $e->getError());
}
$param['create_time'] = time();
Db::startTrans();
try {
$exid = ExpenseList::strict(false)->field(true)->insertGetId($param);
if ($exid) {
//相关内容多个数组;
$amountData = isset($param['amount']) ? $param['amount'] : '';
$remarksData = isset($param['remarks']) ? $param['remarks'] : '';
$cateData = isset($param['cate_id']) ? $param['cate_id'] : '';
if ($amountData) {
foreach ($amountData as $key => $value) {
if (!$value) {
continue;
}
$data = [];
$data['exid'] = $exid;
$data['admin_id'] = $admin_id;
$data['amount'] = $amountData[$key];
$data['cate_id'] = $cateData[$key];
$data['remarks'] = $remarksData[$key];
$data['create_time'] = time();
if ($data['amount'] == 0) {
Db::rollback();
return to_assign(1, '第' . ($key + 1) . '条报销金额不能为零');
}
$eid = Db::name('ExpenseInterfix')->strict(false)->field(true)->insertGetId($data);
}
}
add_log('add', $exid, $param);
Db::commit();
$dbRes = true;
} else {
Db::rollback();
}
} catch (\Exception $e) { ##这里参数不能删除($e错误信息)
Db::rollback();
return to_assign(1, $e->getMessage());
}
}
if ($dbRes == true) {
return to_assign();
} else {
return to_assign(1, '保存失败');
}
}
//查看
public function view()
{
$id = empty(get_params('id')) ? 0 : get_params('id');
$expense = $this->detail($id);
View::assign('uid', $this->uid);
View::assign('expense', $expense);
return view();
}
//删除
public function delete()
{
$id = get_params("id");
$expense = $this->detail($id);
if ($expense['check_status'] == 2) {
return to_assign(1, "已审核的报销记录不能删除");
}
if ($expense['check_status'] == 3) {
return to_assign(1, "已打款的报销记录不能删除");
}
$data['status'] = '-1';
$data['id'] = $id;
$data['update_time'] = time();
if (Db::name('expense')->update($data) !== false) {
add_log('delete', $id);
return to_assign(0, "删除成功");
} else {
return to_assign(1, "删除失败");
}
}
//设置
public function check()
{
$param = get_params();
if (request()->isAjax()) {
if ($param['check_status'] == 2 || $param['check_status'] == 0) {
$param['check_admin_id'] = $this->uid;
$param['check_time'] = time();
}
if ($param['check_status'] == 3) {
$param['pay_admin_id'] = $this->uid;
$param['pay_time'] = time();
}
$res = ExpenseList::where('id', $param['id'])->strict(false)->field(true)->update($param);
if ($res !== false) {
return to_assign();
} else {
return to_assign(1, "操作失败");
}
} else {
$expense = $this->detail($param['id']);
View::assign('expense', $expense);
View::assign('uid', $this->uid);
return view();
}
}
}

View File

@ -40,20 +40,8 @@ class Keywords extends BaseController
//添加 //添加
public function add() public function add()
{ {
$id = empty(get_params('id')) ? 0 : get_params('id');
if ($id > 0) {
$keywords = Db::name('Keywords')->where(['id' => $id])->find();
View::assign('keywords', $keywords);
}
View::assign('id', $id);
return view();
}
//提交添加
public function post_submit()
{
if (request()->isAjax()) {
$param = get_params(); $param = get_params();
if (request()->isAjax()) {
if (!empty($param['id']) && $param['id'] > 0) { if (!empty($param['id']) && $param['id'] > 0) {
try { try {
validate(KeywordsCheck::class)->scene('edit')->check($param); validate(KeywordsCheck::class)->scene('edit')->check($param);
@ -66,7 +54,6 @@ class Keywords extends BaseController
if ($res) { if ($res) {
add_log('edit', $param['id'], $param); add_log('edit', $param['id'], $param);
} }
return to_assign(); return to_assign();
} else { } else {
try { try {
@ -80,11 +67,20 @@ class Keywords extends BaseController
if ($insertId) { if ($insertId) {
add_log('add', $insertId, $param); add_log('add', $insertId, $param);
} }
return to_assign(); return to_assign();
} }
} else {
$id = isset($param['id']) ? $param['id'] : 0;
if ($id > 0) {
$keywords = Db::name('Keywords')->where(['id' => $id])->find();
View::assign('keywords', $keywords);
} }
View::assign('id', $id);
return view();
} }
}
//删除 //删除
public function delete() public function delete()
{ {

View File

@ -11,14 +11,80 @@ namespace app\home\controller;
use app\home\BaseController; use app\home\BaseController;
use app\home\model\Schedule as ScheduleList; use app\home\model\Schedule as ScheduleList;
use app\home\validate\ScheduleCheck;
use think\exception\ValidateException;
use schedule\Schedule as ScheduleIndex; use schedule\Schedule as ScheduleIndex;
use think\facade\Db; use think\facade\Db;
use think\facade\View; use think\facade\View;
class Schedule extends BaseController class Schedule extends BaseController
{ {
public function cate()
{
if (request()->isAjax()) {
$param = get_params();
$where = array();
$where[] = ['s.status', '>=', 0];
$rows = empty($param['limit']) ? get_config(app . page_size) : $param['limit'];
$content = Db::name('ScheduleCate')
->field('s.*,d.title as department')
->alias('s')
->join('Department d', 's.did = d.id', 'LEFT')
->where($where)
->paginate($rows, false, ['query' => $param]);
return table_assign(0, '', $content);
} else {
return view();
}
}
//添加/编辑工作类别
public function cate_add()
{
$param = get_params();
if (request()->isAjax()) {
if (!empty($param['id']) && $param['id'] > 0) {
$param['update_time'] = time();
$res = Db::name('ScheduleCate')->strict(false)->field(true)->update($param);
if ($res) {
add_log('edit', $param['id'], $param);
}
return to_assign();
} else {
$param['create_time'] = time();
$insertId = Db::name('ScheduleCate')->strict(false)->field(true)->insertGetId($param);
if ($insertId) {
add_log('add', $insertId, $param);
}
return to_assign();
}
} else {
$id = isset($param['id']) ? $param['id'] : 0;
$department = set_recursion(get_department());
if ($id > 0) {
$detail = Db::name('ScheduleCate')->where(['id' => $id])->find();
View::assign('detail', $detail);
}
View::assign('department', $department);
View::assign('id', $id);
return view();
}
}
//删除
public function cate_delete()
{
$id = get_params("id");
$data['status'] = '-1';
$data['id'] = $id;
$data['update_time'] = time();
if (Db::name('ScheduleCate')->update($data) !== false) {
add_log('delete', $id, $data);
return to_assign(0, "删除成功");
} else {
return to_assign(1, "删除失败");
}
}
//工作记录
public function index() public function index()
{ {
if (request()->isAjax()) { if (request()->isAjax()) {
@ -44,8 +110,7 @@ class Schedule extends BaseController
$temData = date('Y-m-d', $v['start_time']); $temData = date('Y-m-d', $v['start_time']);
if (array_key_exists($temData, $countEvents)) { if (array_key_exists($temData, $countEvents)) {
$countEvents[$temData]['times'] += $v['labor_time']; $countEvents[$temData]['times'] += $v['labor_time'];
} } else {
else{
$countEvents[$temData]['times'] = $v['labor_time']; $countEvents[$temData]['times'] = $v['labor_time'];
$countEvents[$temData]['start'] = date('Y-m-d', $v['start_time']); $countEvents[$temData]['start'] = date('Y-m-d', $v['start_time']);
} }
@ -87,8 +152,7 @@ class Schedule extends BaseController
} }
} }
public function list() function list() {
{
if (request()->isAjax()) { if (request()->isAjax()) {
$param = get_params(); $param = get_params();
//按时间检索 //按时间检索
@ -103,8 +167,7 @@ class Schedule extends BaseController
} }
if (!empty($param['uid'])) { if (!empty($param['uid'])) {
$where[] = ['a.admin_id', '=', $param['uid']]; $where[] = ['a.admin_id', '=', $param['uid']];
} } else {
else{
$where[] = ['a.admin_id', '=', $this->uid]; $where[] = ['a.admin_id', '=', $this->uid];
} }
$where[] = ['a.status', '=', 1]; $where[] = ['a.status', '=', 1];
@ -273,8 +336,7 @@ class Schedule extends BaseController
} }
if (request()->isAjax()) { if (request()->isAjax()) {
return to_assign(0, "", $schedule); return to_assign(0, "", $schedule);
} } else {
else{
return $schedule; return $schedule;
} }
} }
@ -287,8 +349,7 @@ class Schedule extends BaseController
if ($schedule) { if ($schedule) {
View::assign('schedule', $schedule); View::assign('schedule', $schedule);
return view(); return view();
} } else {
else{
echo '该工作记录不存在'; echo '该工作记录不存在';
} }
} }

View File

@ -30,7 +30,7 @@ class Expense extends BaseController
} }
} }
//提交保存分类 //提交保存分类
public function cate_post_submit() public function cate_add()
{ {
if (request()->isAjax()) { if (request()->isAjax()) {
$param = get_params(); $param = get_params();
@ -132,8 +132,7 @@ class Expense extends BaseController
} }
} }
public function list() function list() {
{
if (request()->isAjax()) { if (request()->isAjax()) {
$param = get_params(); $param = get_params();
$where = []; $where = [];
@ -197,7 +196,10 @@ class Expense extends BaseController
$idData = isset($param['expense_id']) ? $param['expense_id'] : 0; $idData = isset($param['expense_id']) ? $param['expense_id'] : 0;
if ($amountData) { if ($amountData) {
foreach ($amountData as $key => $value) { foreach ($amountData as $key => $value) {
if (!$value ) continue; if (!$value) {
continue;
}
$data = []; $data = [];
$data['id'] = $idData[$key]; $data['id'] = $idData[$key];
$data['exid'] = $exid; $data['exid'] = $exid;
@ -212,8 +214,7 @@ class Expense extends BaseController
if ($data['id'] > 0) { if ($data['id'] > 0) {
$data['update_time'] = time(); $data['update_time'] = time();
$resa = Db::name('ExpenseInterfix')->strict(false)->field(true)->update($data); $resa = Db::name('ExpenseInterfix')->strict(false)->field(true)->update($data);
} } else {
else{
$data['create_time'] = time(); $data['create_time'] = time();
$eid = Db::name('ExpenseInterfix')->strict(false)->field(true)->insertGetId($data); $eid = Db::name('ExpenseInterfix')->strict(false)->field(true)->insertGetId($data);
} }
@ -225,8 +226,7 @@ class Expense extends BaseController
} else { } else {
Db::rollback(); Db::rollback();
} }
} } catch (\Exception $e) { ##这里参数不能删除($e错误信息)
catch (\Exception $e) { ##这里参数不能删除($e错误信息)
Db::rollback(); Db::rollback();
return to_assign(1, $e->getMessage()); return to_assign(1, $e->getMessage());
} }
@ -248,7 +248,10 @@ class Expense extends BaseController
$cateData = isset($param['cate_id']) ? $param['cate_id'] : ''; $cateData = isset($param['cate_id']) ? $param['cate_id'] : '';
if ($amountData) { if ($amountData) {
foreach ($amountData as $key => $value) { foreach ($amountData as $key => $value) {
if (!$value ) continue; if (!$value) {
continue;
}
$data = []; $data = [];
$data['exid'] = $exid; $data['exid'] = $exid;
$data['admin_id'] = $admin_id; $data['admin_id'] = $admin_id;
@ -269,16 +272,14 @@ class Expense extends BaseController
} else { } else {
Db::rollback(); Db::rollback();
} }
} } catch (\Exception $e) { ##这里参数不能删除($e错误信息)
catch (\Exception $e) { ##这里参数不能删除($e错误信息)
Db::rollback(); Db::rollback();
return to_assign(1, $e->getMessage()); return to_assign(1, $e->getMessage());
} }
} }
if ($dbRes == true) { if ($dbRes == true) {
return to_assign(); return to_assign();
} } else {
else{
return to_assign(1, '保存失败'); return to_assign(1, '保存失败');
} }
} }

View File

@ -0,0 +1,7 @@
<?php
namespace app\home\model;
use think\Model;
class Invoice extends Model
{
}

View File

@ -0,0 +1,15 @@
<?php
/**
* @copyright Copyright (c) 2021 勾股工作室
* @license https://opensource.org/licenses/GPL-2.0
* @link https://www.gougucms.com
*/
namespace app\home\model;
use think\Model;
class InvoiceSubject extends Model
{
}

View File

@ -0,0 +1,23 @@
<?php
namespace app\home\validate;
use think\Validate;
class InvoiceCheck extends Validate
{
protected $rule = [
'code' => 'require',
'id' => 'require',
'status' => 'require'
];
protected $message = [
'code.require' => '报销凭证编号不能为空',
'id.require' => '缺少更新条件',
'status.require' => '状态为必选',
];
protected $scene = [
'add' => ['code'],
'edit' => ['id', 'code']
];
}

View File

@ -0,0 +1,29 @@
<?php
/**
* @copyright Copyright (c) 2021 勾股工作室
* @license https://opensource.org/licenses/GPL-2.0
* @link https://www.gougucms.com
*/
namespace app\home\validate;
use think\Validate;
class InvoiceSubjectCheck extends Validate
{
protected $rule = [
'title' => 'require|unique:expense_cate',
'id' => 'require',
];
protected $message = [
'title.require' => '名称不能为空',
'title.unique' => '同样的名称已经存在',
'id.require' => '缺少更新条件',
];
protected $scene = [
'add' => ['title'],
'edit' => ['id', 'title'],
];
}

View File

@ -0,0 +1,131 @@
{extend name="common/base"/}
{block name="style"}
<link rel="stylesheet" href="{__JS__}/module/dtree/dtree.css">
<link rel="stylesheet" href="{__JS__}/module/dtree/font/dtreefont.css">
{/block}
<!-- 主体 -->
{block name="body"}
<form class="layui-form body-content">
{if condition="$id eq 0"}
<table class="layui-table layui-table-form">
<tr>
<td class="layui-td-gray2">审核类型<font>*</font></td>
<td>
<select name="type" lay-verify="required" lay-reqText="请审核类型">
<option value=""></option>
<option value="1">报销审核</option>
<option value="2">报销打款确认</option>
<option value="3">发票审核</option>
<option value="4">发票开票</option>
</select>
</td>
<td class="layui-td-gray2">审核人<font>*</font></td>
<td>
<input type="hidden" name="uid" value=""/>
<input type="text" name="name" readonly autocomplete="off" placeholder="请选择审核人" lay-verify="required" lay-reqText="请选择审核人" class="layui-input" value="">
</td>
</tr>
<tr>
<td class="layui-td-gray2" style="vertical-align: top;">备注信息</td>
<td colspan="3">
<textarea name="remark" placeholder="请输入备注" class="layui-textarea"></textarea>
</td>
</tr>
</table>
{else/}
<table class="layui-table layui-table-form">
<tr>
<td class="layui-td-gray2">审核类型<font>*</font></td>
<td>
<select name="type" lay-verify="required" lay-reqText="请审核类型">
<option value=""></option>
<option value="1" {eq name="$detail.type" value="1"}selected{/eq}>报销审核</option>
<option value="2" {eq name="$detail.type" value="2"}selected{/eq}>报销打款确认</option>
<option value="3" {eq name="$detail.type" value="3"}selected{/eq}>发票审核</option>
<option value="4" {eq name="$detail.type" value="4"}selected{/eq}>发票开票</option>
</select>
</td>
<td class="layui-td-gray2">审核人<font>*</font></td>
<td>
<input type="hidden" name="uid" value="{$detail.uid}"/>
<input type="text" name="name" readonly autocomplete="off" placeholder="请选择审核人" lay-verify="required" lay-reqText="请选择审核人" class="layui-input" value="{$detail.name}">
</td>
</tr>
<tr>
<td class="layui-td-gray2" style="vertical-align: top;">备注信息</td>
<td colspan="3">
<textarea name="remark" placeholder="请输入备注" class="layui-textarea">{$detail.remark}</textarea>
</td>
</tr>
</table>
{/if}
<div style="padding: 10px 0">
<input type="hidden" name="id" value="{$id}" />
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
<button lay-event="back" class="layui-btn layui-btn-primary">返回</button>
</div>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
function init(layui) {
var form = layui.form
, employeepicker = layui.employeepicker
, layer = layui.layer;
//添加人员
function addEmployee(){
var ids=$('[name="uid"]').val(),names=$('[name="name"]').val(),idsArray=[],namesArray=[];
if(ids!=''){
idsArray=ids.split(',');
namesArray=names.split(',');
}
employeepicker.init({
department_url:"{:url('/home/api/get_department_tree')}",
employee_url:"{:url('/home/api/get_employee')}",
ids:idsArray,
names:namesArray,
callback:function(ids,names){
$('[name="uids"]').val(ids.join(',')),
$('[name="person_name"]').val(names.join(','));
}
});
}
//选择对应人
$('[name="name"]').on('click',function(){
addEmployee();
});
//监听提交
form.on('submit(webform)', function (data) {
$.ajax({
url: "{:url('home/conf/add')}",
type: 'post',
data: data.field,
success: function (e) {
if (e.code == 0) {
layer.confirm('保存成功,返回列表页吗?', { icon: 3, title: '提示' }, function (index) {
window.location.href="{:url('home/conf/index')}";
});
} else {
layer.msg(e.msg);
}
}
})
return false;
});
//监听返回
$('.body-content').on('click', '[lay-event="back"]', function () {
history.back(-1);
return false;
});
}
</script>
{include file="common/layui" base="base" extend="['employeepicker']" callback="init" /}
{/block}
<!-- /脚本 -->

View File

@ -0,0 +1,88 @@
{extend name="common/base"/}
<!-- 主体 -->
{block name="body"}
<div class="body-content">
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<a class="layui-btn layui-btn-normal layui-btn-sm" href="{:url('home/check/add')}">+ 添加审核人配置</a>
</div>
</script>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
function init(layui) {
var table = layui.table,
form = layui.form;
var tableIns = table.render({
elem: '#test',
title: '配置列表',
toolbar: '#toolbarDemo',
url: "{:url('home/check/index')}",
page: true, //开启分页
limit: 20,
cols: [
[{field: 'id',width: 80,title: 'ID编号',align: 'center'}
, { field: 'name', width: 180, title: '审核人姓名'}
, { field: 'type',width: 300,title: '审核类型', templet: function (d) {
var html = '';
if(d.type==1){
html='报销审核';
}
else if(d.type==2){
html='报销打款确认';
}
else if(d.type==3){
html='发票审核';
}
else if(d.type==4){
html='发票开票';
}
return html;
}}
, { field: 'remark', title: '备注'}
, {width: 100, title: '操作', align: 'center'
, templet: function (d) {
var html = '<div class="layui-btn-group">';
html+='<a class="layui-btn layui-btn-xs" href="/home/check/add?id='+d.id+'">编辑</a>';
html+= '<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>';
html+= '</div>';
return html;
}
}]
]
});
//删除
table.on('tool(test)', function (obj) {
if (obj.event === 'del') {
layer.confirm('确定要删除吗?', {
icon: 3,
title: '提示'
}, function (index) {
$.ajax({
url: "{:url('home/check/delete')}",
type: 'post',
data: {
id: obj.data.id
},
success: function (res) {
layer.msg(res.msg);
if (res.code == 0) {
obj.del();
}
}
})
layer.close(index);
});
}
});
}
</script>
{include file="common/layui" base="base" extend="[]" callback="init" /}
{/block}
<!-- /脚本 -->

View File

@ -12,9 +12,9 @@
<td class="layui-td-gray2">上级部门<font>*</font></td> <td class="layui-td-gray2">上级部门<font>*</font></td>
<td> <td>
<select name="pid" lay-verify="required" lay-reqText="请选择上级部门"> <select name="pid" lay-verify="required" lay-reqText="请选择上级部门">
<option value="0">作为顶级部门</option> <option value="">作为顶级部门</option>
{volist name="department" id="v"} {volist name="department" id="v"}
<option value="{$v.id}" {eq name="pid" value="$v.id" }selected {/eq}>{$v.title}</option> <option value="{$v.id}">{$v.title}</option>
{/volist} {/volist}
</select> </select>
</td> </td>
@ -34,7 +34,7 @@
<td class="layui-td-gray2">上级部门<font>*</font></td> <td class="layui-td-gray2">上级部门<font>*</font></td>
<td> <td>
<select name="pid" lay-verify="required" lay-reqText="请选择上级部门"> <select name="pid" lay-verify="required" lay-reqText="请选择上级部门">
<option value="0">作为顶级部门</option> <option value="">作为顶级部门</option>
{volist name="department" id="v"} {volist name="department" id="v"}
<option value="{$v.id}" {eq name="detail.pid" value="$v.id"} selected{/eq}>{$v.title}</option> <option value="{$v.id}" {eq name="detail.pid" value="$v.id"} selected{/eq}>{$v.title}</option>
{/volist} {/volist}

View File

@ -64,7 +64,7 @@
if(obj.event === 'disable'){ if(obj.event === 'disable'){
layer.confirm('确定要禁用该类别吗?', {icon: 3, title:'提示'}, function(index){ layer.confirm('确定要禁用该类别吗?', {icon: 3, title:'提示'}, function(index){
$.ajax({ $.ajax({
url: "{:url('home/expense/cate_post_submit')}", url: "{:url('home/expense/cate_add')}",
type: 'post', type: 'post',
data: { data: {
id: obj.data.id, id: obj.data.id,
@ -84,7 +84,7 @@
if(obj.event === 'open'){ if(obj.event === 'open'){
layer.confirm('确定要启用该类别吗?', {icon: 3, title:'提示'}, function(index){ layer.confirm('确定要启用该类别吗?', {icon: 3, title:'提示'}, function(index){
$.ajax({ $.ajax({
url: "{:url('home/expense/cate_post_submit')}", url: "{:url('home/expense/cate_add')}",
type: 'post', type: 'post',
data: { data: {
id: obj.data.id, id: obj.data.id,
@ -120,7 +120,7 @@
var value = layero.find(".layui-layer-input").val(); var value = layero.find(".layui-layer-input").val();
if (value) { if (value) {
$.ajax({ $.ajax({
url: "{:url('home/expense/cate_post_submit')}", url: "{:url('home/expense/cate_add')}",
type: 'post', type: 'post',
data: { data: {
id: id, id: id,

View File

@ -0,0 +1,279 @@
{extend name="common/base"/}
{block name="style"}
<style>
.layui-table-min th{font-size:13px; text-align:center; background-color:#f8f8f8;}
.layui-table-min td{font-size:13px; padding:6px;text-align:center;}
</style>
<link rel="stylesheet" href="{__JS__}/module/dtree/dtree.css">
<link rel="stylesheet" href="{__JS__}/module/dtree/font/dtreefont.css">
{/block}
<!-- 主体 -->
{block name="body"}
<form class="layui-form body-content">
<h3>报销信息</h3>
{if condition="($id == 0)"}
<table class="layui-table">
<tr>
<td class="layui-td-gray2">报销凭证编号<span style="color: red">*</span></td>
<td>
<input type="text" name="code" autocomplete="off" lay-verify="required" placeholder="报销凭证编号" lay-reqText="请填写报销凭证编号" class="layui-input" value="">
</td>
<td class="layui-td-gray">入账月份<span style="color: red">*</span></td>
<td>
<input type="text" class="layui-input" id="income_month" name="income_month" lay-verify="required" placeholder="请选择入账月份" lay-reqText="请选择入账月份" readonly value="">
</td>
<td class="layui-td-gray2">原始单据日期<span style="color: red">*</span></td>
<td>
<input type="text" class="layui-input" id="expense_time" name="expense_time" lay-verify="required" placeholder="请选择原始单据日期" lay-reqText="请选择原始单据日期" readonly value="">
</td>
</tr>
<tr>
<td class="layui-td-gray2">报销人<span style="color: red">*</span></td>
<td>
<input type="text" name="name" placeholder="请选择报销人" readonly class="layui-input" lay-verify="required" lay-reqText="请选择报销人" value="{$user.name}" readonly>
<input type="hidden" name="uid" autocomplete="off" class="layui-input" value="{$user.id}">
</td>
<td class="layui-td-gray">报销部门</td>
<td>
<input type="text" name="department" readonly class="layui-input" value="{$user.department}" readonly>
<input type="hidden" name="did" autocomplete="off" class="layui-input" value="{$user.did}">
</td>
</tr>
<tr>
<td class="layui-td-gray2">费用金额<span style="color: red">*</span><button class="layui-btn layui-btn-normal layui-btn-sm" type="button" id="addInterfix">+报销选项</button></td>
<td colspan="5">
<div>
<table id="interfix" class="layui-table layui-table-min">
<tr>
<th width="200">报销金额</th>
<th width="300">报销项目</th>
<th>备注信息</th>
<th width="100">操作</th>
</tr>
<tr class="more_interfix">
<td><input type="text" name="amount[]" value="" class="layui-input" lay-verify="required|number" lay-reqText="请完善报销金额"></td>
<td style="text-align:left">
<select name="cate_id[]" lay-verify="required" lay-reqText="请选择报销项目">
<option value="">请选择</option>
{volist name="$expense_cate" id="vo"}
<option value="{$vo.id}">{$vo.title}</option>
{/volist}
</select>
</td>
<td><input type="text" name="remarks[]" class="layui-input" value=""><input type="hidden" name="expense_id[]" class="layui-input" value="0"></td>
<td><a class="layui-btn layui-btn-danger layui-btn-xs" data-id="0" lay-event="del">删除</a></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
{else/}
<table class="layui-table">
<tr>
<td class="layui-td-gray2">报销凭证编号<span style="color: red">*</span></td>
<td>
<input type="text" name="code" autocomplete="off" lay-verify="required" placeholder="报销凭证编号" lay-reqText="请填写报销凭证编号" class="layui-input" value="{$expense.code}">
</td>
<td class="layui-td-gray">入账月份<span style="color: red">*</span></td>
<td>
<input type="text" class="layui-input" id="income_month" name="income_month" lay-verify="required" placeholder="请选择入账月份" lay-reqText="请选择入账月份" readonly value="{$expense.income_month}">
</td>
<td class="layui-td-gray2">原始单据日期<span style="color: red">*</span></td>
<td>
<input type="text" class="layui-input" id="expense_time" name="expense_time" lay-verify="required" placeholder="请选择原始单据日期" lay-reqText="请选择原始单据日期" readonly value="{$expense.expense_time}">
</td>
</tr>
<tr>
<td class="layui-td-gray2">报销人<span style="color: red">*</span></td>
<td>
<input type="text" name="name" placeholder="请选择报销人" readonly class="layui-input" lay-verify="required" lay-reqText="请选择报销人" value="{$expense.user_name}" readonly>
<input type="hidden" name="uid" autocomplete="off" class="layui-input" value="{$expense.uid}">
</td>
<td class="layui-td-gray">报销部门</td>
<td>
<input type="text" name="department" readonly class="layui-input" value="{$expense.department}" readonly>
<input type="hidden" name="did" autocomplete="off" class="layui-input" value="{$expense.did}">
</td>
</tr>
<tr>
<td class="layui-td-gray2">费用金额<span style="color: red">*</span><button class="layui-btn layui-btn-normal layui-btn-sm" type="button" id="addInterfix">+报销选项</button></td>
<td colspan="5">
<div>
<table id="interfix" class="layui-table layui-table-min">
<tr>
<th width="200">报销金额</th>
<th width="300">报销类别</th>
<th>备注信息</th>
<th width="100">操作</th>
</tr>
{volist name="$expense.list" id="val"}
<tr class="more_interfix">
<td><input type="text" name="amount[]" value="{$val.amount}" class="layui-input" lay-verify="required|number" lay-reqText="请完善报销金额"></td>
<td style="text-align:left">
<select name="cate_id[]" lay-verify="required" lay-reqText="请选择报销项目">
<option value="">请选择</option>
{volist name="$expense_cate" id="vo"}
<option value="{$vo.id}" {eq name="$vo.id" value="$val.cate_id"} selected{/eq}>{$vo.title}</option>
{/volist}
</select>
</td>
<td><input type="text" name="remarks[]" class="layui-input" value="{$val.remarks}"><input type="hidden" name="expense_id[]" class="layui-input" value="{$val.id}"></td>
<td><a class="layui-btn layui-btn-danger layui-btn-xs" data-id="{$val.id}" lay-event="del">删除</a></td>
</tr>
{/volist}
</table>
</div>
</td>
</tr>
</table>
{/if}
<div class="layui-form-item" style="padding-top:10px;">
<input name="id" id="id" type="hidden" value="{$id}">
<button class="layui-btn" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
<div id="selectTem" style="display:none;">
<select name="cate_id[]" lay-verify="required" lay-reqText="请选择报销项目">
<option value="">请选择</option>
{volist name="$expense_cate" id="vo"}
<option value="{$vo.id}">{$vo.title}</option>
{/volist}
</select>
</div>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
function init(layui){
var form = layui.form
,layer = layui.layer
,table = layui.table
,employeepicker = layui.employeepicker//很重要
,laydate = layui.laydate;
laydate.render({
elem: '#income_month',
type:'month',
showBottom: false
});
laydate.render({
elem: '#expense_time',
max:0,
showBottom: false
});
// 选择员工
$('.body-content').on('click','[name="name"]',function(){
var that = $(this);
var names = that.val(), ids = $('[name="uid"]').val();
employeepicker.init({
ids: ids,
names: names,
type: 0,
department_url:"{:url('/home/api/get_department_tree')}",
employee_url:"{:url('/home/api/get_employee')}",
callback: function (ids, names, dids, departments) {
$('[name="uid"]').val(ids);
$('[name="did"]').val(dids);
$('[name="department"]').val(departments);
that.val(names);
}
})
});
//监听提交
form.on('submit(webform)', function(data){
var interfix = $('.more_interfix');
if(interfix.length <1 ){
layer.msg('至少要保留一个报销选项');
return false;
}
$.ajax({
url:"{:url('/home/expense/post_submit')}",
type:'post',
data:data.field,
success:function(e){
layer.msg(e.msg);
if(e.code==0){
parent.location.reload();
}
}
})
return false;
});
//添加报销信息表格
$('#addInterfix').on('click',function(){
var html = '';
var selectTem=$('#selectTem').html();
html += '<tr class="more_interfix">\
<td><input type="text" name="amount[]" class="layui-input" lay-verify="required|number" lay-reqText="请完善报销金额"></td>\
<td style="text-align:left">'+selectTem+'</td>\
<td><input type="text" name="remarks[]" class="layui-input"><input type="hidden" name="expense_id[]" class="layui-input" value="0"></td>\
<td><a class="layui-btn layui-btn-danger layui-btn-xs" data-id="0" lay-event="del">删除</a></td>\
</tr>';
$("#interfix").append(html).find('.tr-none').remove();
form.render();
});
$('#interfix').on('click', '[lay-event="del"]', function() {
if($('.more_interfix').length<2){
layer.msg('至少保留一个报销选项');
return false;
}
var that=$(this);
var _id = that.data('id');
if(_id>0){
layer.confirm('确定删除该报销数据项?', {
icon: 3,
title: '提示'
}, function(index) {
$.ajax({
url: "{:url('home/api/del_expense_interfix')}",
data: {
id: _id
},
success: function(res) {
layer.msg(res.msg);
if (res.code == 0) {
that.parents(".more_interfix").remove();
}
}
})
layer.close(index);
});
}
else{
that.parents(".more_interfix").remove();
}
});
//报销成员修改
$('[name="nickname"]').on('click',function() {
var that=$(this);
var ids=that.next().val(),names=that.val();
employeepicker.init({
ids:ids,
names:names,
type:0,
callback:function(ids,names,dids,departments){
that.val(names);
that.next().val(ids);
$('[name="department"]').val(departments);
$('[name="did"]').val(dids);
}
});
});
}
</script>
{include file="common/layui" base='base' extend="['employeepicker']" callback="init" /}
{/block}
<!-- /脚本 -->

View File

@ -0,0 +1,175 @@
{extend name="common/base"/}
{block name="style"}
<style>
.layui-table-min th{font-size:13px; text-align:center; background-color:#f8f8f8;}
.layui-table-min td{font-size:13px; padding:6px;text-align:center;}
</style>
{/block}
<!-- 主体 -->
{block name="body"}
<div class="body-content">
<h3>报销详情</h3>
<table class="layui-table">
<tr>
<td class="layui-td-gray2">报销凭证编号</td>
<td>{$expense.code}</td>
<td class="layui-td-gray2">入账月份</td>
<td>{$expense.income_month}</td>
<td class="layui-td-gray2">原始单据日期</td>
<td>{$expense.expense_time}</td>
</tr>
<tr>
<td class="layui-td-gray2">报销人</td>
<td>{$expense.user_name}</td>
<td class="layui-td-gray2">报销部门</td>
<td>{$expense.department}</td>
<td class="layui-td-gray">报销总费用(元)</td>
<td><span style="color:#1E9FFF">{$expense.amount}</span></td>
</tr>
<tr>
<td class="layui-td-gray2">报销状态</td>
<td colspan="5">
{if condition="$expense.check_status == 0"}
<span style="color:#FF5722">审核不通过 【原因:{$expense.check_remark}】</span>
{elseif condition="$expense.check_status == 1"}
<span style="color:#393D49">报销审核中</span>
{elseif condition="$expense.check_status == 2"}
<span style="color:#5FB878">审核通过</span>
{elseif condition="$expense.check_status == 3"}
<span style="color:#009688">已打款</span>
{/if}
</td>
</tr>
{if condition="$expense.check_admin_id > 0"}
<tr>
<td class="layui-td-gray2">审核人</td>
<td>{$expense.check_admin}</td>
<td class="layui-td-gray2">审核时间</td>
<td colspan="3">{$expense.check_time}</td>
</tr>
{/if}
{if condition="$expense.pay_admin_id > 0"}
<tr>
<td class="layui-td-gray2">打款确认人</td>
<td>{$expense.pay_admin}</td>
<td class="layui-td-gray2">打款确认时间</td>
<td colspan="3">{$expense.pay_time}</td>
</tr>
{/if}
<tr>
<td class="layui-td-gray2">费用金额</td>
<td colspan="5">
<div>
<table class="layui-table layui-table-min">
<tr>
<th width="200">报销金额(元)</th>
<th width="300">报销类别</th>
<th>备注信息</th>
</tr>
{volist name="$expense.list" id="vo"}
<tr>
<td>{$vo.amount}</td>
<td>{$vo.cate_title}</td>
<td style="text-align:left">{$vo.remarks}</td>
</tr>
{/volist}
</table>
</div>
</td>
</tr>
</table>
<div class="layui-form-item" style="padding-top:10px;">
<input name="id" id="id" type="hidden" value="{$expense.id}">
{if condition="($expense.check_status == 0) AND ($uid == $expense.admin_id)"}
<a class="layui-btn" href="/home/expense/add?id={$expense.id}">编辑</a>
{/if}
{eq name="$expense.check_status" value="1"}
<button class="layui-btn layui-btn-danger" lay-event="checkno">审核不通过</button>
<button class="layui-btn" lay-event="checkok">审核通过</button>
{/eq}
{eq name="$expense.check_status" value="2"}
<button class="layui-btn" lay-event="payed">已打款确认</button>
{/eq}
</div>
</div>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
function init(layui) {
//监听返回
$('.body-content').on('click', '[lay-event="back"]', function () {
window.location.href="{:url('home/expense/index')}";
return false;
});
$('.body-content').on('click', '[lay-event="checkok"]', function () {
var id=$('#id').val();
layer.confirm('确定审核通过该报销申请?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url:"{:url('home/expense/check')}",
data:{id:id,check_status:2},
success:function(res){
layer.msg(res.msg);
if(res.code==0){
window.setTimeout(function(){
window.location.reload();
},1200)
}
}
})
})
return false;
});
$('.body-content').on('click', '[lay-event="checkno"]', function () {
var id=$('#id').val();
layer.confirm('确定拒绝该提现申请?', {icon: 3, title:'提示'}, function(index){
layer.prompt({title: '拒绝的理由', formType: 3,value :''}, function(text, index){
if(text ==''){
layer.msg('请输入拒绝的理由');
return false;
}
$.ajax({
url:"{:url('home/expense/check')}",
data:{id:id,check_status:0,check_remark:text},
success:function(res){
layer.msg(res.msg);
if(res.code==0){
window.setTimeout(function(){
parent.location.reload();
},1200)
}
}
})
layer.closeAll();
})
})
})
$('.body-content').on('click', '[lay-event="payed"]', function () {
var id=$('#id').val();
layer.confirm('确定已经打款?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url:"{:url('home/expense/check')}",
data:{id:id,check_status:3},
success:function(res){
layer.msg(res.msg);
if(res.code==0){
window.setTimeout(function(){
parent.location.reload();
},1200)
}
}
})
})
})
}
</script>
{include file="common/layui" base='base' extend="[]" callback="init" /}
{/block}
<!-- /脚本 -->

View File

@ -0,0 +1,156 @@
{extend name="common/base"/}
<!-- 主体 -->
{block name="body"}
<div class="body-content">
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
<script type="text/html" id="barDemo">
<div class="layui-btn-group"><span class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详情</span><span class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</span></div>
</script>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
function init(layui) {
var table = layui.table,
rightpage = layui.rightpage,
form = layui.form;
var tableIns = table.render({
elem: '#test',
title: '报销管理列表',
toolbar: '#toolbarDemo',
url: "{:url('home/expense/index')}", //数据接口
page: true, //开启分页
limit: 20,
cols: [
[
{
field: 'id',
title: 'ID号',
align: 'center',
width: 80
}, {
field: 'amount',
title: '报销总金额(元)',
align: 'right',
width: 120,
},{
field: 'user_name',
title: '报销人',
align: 'center',
width: 90
},{
field: 'department',
title: '报销部门',
align: 'center',
width: 120
},{
field: 'code',
title: '报销凭证编号',
width: 150,
},{
field: 'expense_time',
title: '原始单据日期',
align: 'center',
width: 110
},{
field: 'income_month',
title: '入账月份',
align: 'center',
width: 100
},{
field: 'admin_name',
title: '登记人',
align: 'center',
width: 100
},{
field: 'create_time',
title: '录入时间',
align: 'center',
width: 150
},{
field: 'status',
title: '状态',
align: 'center',
width: 120,
templet:function(d){
var html='<span style="color:#FF5722">审核不通过</span>';
if(d.check_status==1){
html='<span style="color:#393D49">报销审核中</span>';
}
else if(d.check_status==2){
html='<span style="color:#5FB878">审核通过</span>';
}
else if(d.check_status==3){
html='<span style="color:#009688">已打款</span>';
}
return html;
}
},{
field: 'check_name',
title: '审核人',
align: 'center',
width: 90
},{
field: 'check_time',
title: '审核时间',
align: 'center',
width: 136
},{
field: 'pay_name',
title: '打款确认人',
align: 'center',
width: 90
},{
field: 'pay_time',
title: '打款确认时间',
align: 'center',
width: 136
}, {
field: 'right',
fixed: 'right',
title: '操作',
toolbar: '#barDemo',
width: 100,
align: 'center'
}
]
]
});
//监听行工具事件
table.on('tool(test)', function(obj) {
var data = obj.data;
if (obj.event === 'view') {
rightpage.open("/home/expense/check?id="+data.id);
return;
}
if (obj.event === 'del') {
layer.confirm('确定删除该报销记录吗?', {
icon: 3,
title: '提示'
}, function(index) {
$.ajax({
url: "{:url('home/expense/delete')}",
data: {
id: data.id
},
success: function(res) {
layer.msg(res.msg);
if (res.code == 0) {
obj.del();
}
}
})
layer.close(index);
});
}
});
}
</script>
{include file="common/layui" base='base' extend="['rightpage']" use="['table','form']" callback="init" /}
{/block}
<!-- /脚本 -->

View File

@ -0,0 +1,161 @@
{extend name="common/base"/}
<!-- 主体 -->
{block name="body"}
<div class="body-content">
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<a class="layui-btn layui-btn-normal layui-btn-sm" href="{:url('home/expense/add')}">添加报销登记</a>
</div>
</script>
<script type="text/html" id="barDemo">
<div class="layui-btn-group"><span class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详情</span><span class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</span></div>
</script>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
function init(layui) {
var table = layui.table,
rightpage = layui.rightpage,
form = layui.form;
var tableIns = table.render({
elem: '#test',
title: '报销管理列表',
toolbar: '#toolbarDemo',
url: "{:url('home/expense/index')}", //数据接口
page: true, //开启分页
limit: 20,
cols: [
[
{
field: 'id',
title: 'ID号',
align: 'center',
width: 80
}, {
field: 'amount',
title: '报销总金额(元)',
align: 'right',
width: 120,
},{
field: 'user_name',
title: '报销人',
align: 'center',
width: 90
},{
field: 'department',
title: '报销部门',
align: 'center',
width: 120
},{
field: 'code',
title: '报销凭证编号',
width: 150,
},{
field: 'expense_time',
title: '原始单据日期',
align: 'center',
width: 110
},{
field: 'income_month',
title: '入账月份',
align: 'center',
width: 100
},{
field: 'admin_name',
title: '登记人',
align: 'center',
width: 100
},{
field: 'create_time',
title: '录入时间',
align: 'center',
width: 150
},{
field: 'status',
title: '状态',
align: 'center',
width: 120,
templet:function(d){
var html='<span style="color:#FF5722">审核不通过</span>';
if(d.check_status==1){
html='<span style="color:#393D49">报销审核中</span>';
}
else if(d.check_status==2){
html='<span style="color:#5FB878">审核通过</span>';
}
else if(d.check_status==3){
html='<span style="color:#009688">已打款</span>';
}
return html;
}
},{
field: 'check_name',
title: '审核人',
align: 'center',
width: 90
},{
field: 'check_time',
title: '审核时间',
align: 'center',
width: 136
},{
field: 'pay_name',
title: '打款确认人',
align: 'center',
width: 90
},{
field: 'pay_time',
title: '打款确认时间',
align: 'center',
width: 136
}, {
field: 'right',
fixed: 'right',
title: '操作',
toolbar: '#barDemo',
width: 100,
align: 'center'
}
]
]
});
//监听行工具事件
table.on('tool(test)', function(obj) {
var data = obj.data;
if (obj.event === 'view') {
rightpage.open("/home/expense/check?id="+data.id);
return;
}
if (obj.event === 'del') {
layer.confirm('确定删除该报销记录吗?', {
icon: 3,
title: '提示'
}, function(index) {
$.ajax({
url: "{:url('home/expense/delete')}",
data: {
id: data.id
},
success: function(res) {
layer.msg(res.msg);
if (res.code == 0) {
obj.del();
}
}
})
layer.close(index);
});
}
});
}
</script>
{include file="common/layui" base='base' extend="['rightpage']" use="['table','form']" callback="init" /}
{/block}
<!-- /脚本 -->

View File

@ -0,0 +1,146 @@
{extend name="common/base"/}
<!-- 主体 -->
{block name="body"}
<div class="body-content">
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm addNew" type="button">+ 添加发票主体</button>
</div>
</script>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
function init(layui){
var table=layui.table,
form = layui.form,
layer=layui.layer;
var tableIns = table.render({
elem: '#test'
,toolbar: '#toolbarDemo'
,title:'报销类别列表'
,url:"{:url('home/invoice/subject')}"
,page: true //开启分页
,limit: 20
,cellMinWidth: 80
,cols: [[
{field:'id',width:80, title: 'ID号', align:'center'}
,{field:'title',title: '发票主体名称'}
,{field:'status', title: '状态',width:80,align:'center',templet: function(d){
var html1='<span>正常</span>';
var html2='<span style="color:#FF5722">禁用</span>';
if(d.status==1){
return html1;
}
else{
return html2;
}
}}
,{width:100,title: '操作', align:'center',templet: function(d){
var html='';
var btn='<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>';
var btn1='<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="disable">禁用</a>';
var btn2='<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="open">启用</a>';
if(d.status==1){
html = '<div class="layui-btn-group">'+btn+btn1+'</div>';
}
else{
html = '<div class="layui-btn-group">'+btn+btn2+'</div>';
}
return html;
}}
]]
});
table.on('tool(test)',function (obj) {
if(obj.event === 'edit'){
addExpense(obj.data.id,obj.data.title);
}
if(obj.event === 'disable'){
layer.confirm('确定要禁用该发票主体吗?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:url('home/invoice/subject_add')}",
type: 'post',
data: {
id: obj.data.id,
status: 0,
title: obj.data.title,
},
success: function(e) {
layer.msg(e.msg);
if (e.code == 0) {
setTimeout('location.reload()', 1000);
}
}
})
layer.close(index);
});
}
if(obj.event === 'open'){
layer.confirm('确定要启用该发票主体吗?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:url('home/invoice/subject_add')}",
type: 'post',
data: {
id: obj.data.id,
status: 1,
title: obj.data.title,
},
success: function(e) {
layer.msg(e.msg);
if (e.code == 0) {
setTimeout('location.reload()', 1000);
}
}
})
layer.close(index);
});
}
});
$('.body-content').on('click','.addNew',function(){
addExpense(0,'');
});
function addExpense(id,val){
var title = '新增发票主体';
if(id>0){
title = '编辑发票主体';
}
layer.prompt({
title: title,
value: val,
yes: function(index, layero) {
// 获取文本框输入的值
var value = layero.find(".layui-layer-input").val();
if (value) {
$.ajax({
url: "{:url('home/invoice/subject_add')}",
type: 'post',
data: {
id: id,
title: value,
},
success: function(e) {
layer.msg(e.msg);
if (e.code == 0) {
setTimeout('location.reload()', 1000);
}
}
})
} else {
layer.msg('请填写发票主体名称');
}
}
})
}
}
</script>
{include file="common/layui" base='base' extend="[]" callback="init" /}
{/block}
<!-- /脚本 -->

View File

@ -0,0 +1,100 @@
{extend name="common/base"/}
{block name="style"}
<style>
.layui-table-min th{font-size:13px; text-align:center; background-color:#f8f8f8;}
.layui-table-min td{font-size:13px; padding:6px;text-align:center;}
</style>
{/block}
<!-- 主体 -->
{block name="body"}
<div class="body-content">
<h3>报销详情</h3>
<table class="layui-table">
<tr>
<td class="layui-td-gray2">报销凭证编号</td>
<td>{$expense.code}</td>
<td class="layui-td-gray2">入账月份</td>
<td>{$expense.income_month}</td>
<td class="layui-td-gray2">原始单据日期</td>
<td>{$expense.expense_time}</td>
</tr>
<tr>
<td class="layui-td-gray2">报销人</td>
<td>{$expense.user_name}</td>
<td class="layui-td-gray2">报销部门</td>
<td>{$expense.department}</td>
<td class="layui-td-gray">报销总费用(元)</td>
<td><span style="color:#1E9FFF">{$expense.amount}</span></td>
</tr>
<tr>
<td class="layui-td-gray2">报销状态</td>
<td colspan="5">
{if condition="$expense.check_status == 0"}
<span style="color:#FF5722">审核不通过 【原因:{$expense.check_remark}】</span>
{elseif condition="$expense.check_status == 1"}
<span style="color:#393D49">报销审核中</span>
{elseif condition="$expense.check_status == 2"}
<span style="color:#5FB878">审核通过</span>
{elseif condition="$expense.check_status == 3"}
<span style="color:#009688">已打款</span>
{/if}
</td>
</tr>
{if condition="$expense.check_admin_id > 0"}
<tr>
<td class="layui-td-gray2">审核人</td>
<td>{$expense.check_admin}</td>
<td class="layui-td-gray2">审核时间</td>
<td colspan="3">{$expense.check_time}</td>
</tr>
{/if}
{if condition="$expense.pay_admin_id > 0"}
<tr>
<td class="layui-td-gray2">打款确认人</td>
<td>{$expense.pay_admin}</td>
<td class="layui-td-gray2">打款确认时间</td>
<td colspan="3">{$expense.pay_time}</td>
</tr>
{/if}
<tr>
<td class="layui-td-gray2">费用金额</td>
<td colspan="5">
<div>
<table class="layui-table layui-table-min">
<tr>
<th width="200">报销金额(元)</th>
<th width="300">报销类别</th>
<th>备注信息</th>
</tr>
{volist name="$expense.list" id="vo"}
<tr>
<td>{$vo.amount}</td>
<td>{$vo.cate_title}</td>
<td style="text-align:left">{$vo.remarks}</td>
</tr>
{/volist}
</table>
</div>
</td>
</tr>
</table>
{if condition="($expense.check_status == 0) AND ($uid == $expense.admin_id)"}
<div class="layui-form-item" style="padding-top:10px;">
<a class="layui-btn" href="/home/expense/add?id={$expense.id}">编辑</a>
</div>
{/if}
</div>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
function init(layui) {
}
</script>
{include file="common/layui" base='base' extend="[]" callback="init" /}
{/block}
<!-- /脚本 -->

View File

@ -4,23 +4,15 @@
<form class="layui-form body-content"> <form class="layui-form body-content">
<table class="layui-table layui-table-form"> <table class="layui-table layui-table-form">
<tr> <tr>
<td class="layui-td-gray2">关键字名称<font>*</font> <td class="layui-td-gray">关键字名称<font>*</font></td>
</td>
<td> <td>
<input type="hidden" name="id" value="{$id}" /> <input type="text" name="title" lay-verify="required" lay-reqText="请输入关键字名称" autocomplete="off" placeholder="请输入关键字名称" class="layui-input" {notempty name="$keywords.title"} value="{$keywords.title}" {/notempty}>
<input type="text" name="title" lay-verify="required" lay-reqText="请输入关键字名称" autocomplete="off" placeholder="请输入关键字名称"
class="layui-input" style="max-width: 360px;" {notempty name="$keywords.title"}
value="{$keywords.title}" {/notempty}>
</td> </td>
<td class="layui-td-gray2">排序</td> <td class="layui-td-gray">排序</td>
<td><input type="text" name="sort" placeholder="请输入排序,数字" autocomplete="off" class="layui-input" <td><input type="text" name="sort" placeholder="请输入排序,数字" autocomplete="off" class="layui-input" {notempty name="$keywords.sort" }value="{$keywords.sort}" {/notempty}>
style="max-width: 360px;" {notempty name="$keywords.sort" }value="{$keywords.sort}" {/notempty}>
</td> </td>
</tr> <td class="layui-td-gray">状态<font>*</font></td>
<tr> <td>
<td class="layui-td-gray2">状态<font>*</font>
</td>
<td colspan="3">
{if condition="$id eq 0"} {if condition="$id eq 0"}
<input type="radio" name="status" value="1" title="正常" checked> <input type="radio" name="status" value="1" title="正常" checked>
<input type="radio" name="status" value="0" title="禁用"> <input type="radio" name="status" value="0" title="禁用">
@ -34,6 +26,7 @@
</tr> </tr>
</table> </table>
<div style="padding: 10px 0"> <div style="padding: 10px 0">
<input type="hidden" name="id" value="{$id}" />
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button> <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button>
<button lay-event="back" class="layui-btn layui-btn-primary">返回</button> <button lay-event="back" class="layui-btn layui-btn-primary">返回</button>
@ -52,7 +45,7 @@
//监听提交 //监听提交
form.on('submit(webform)', function (data) { form.on('submit(webform)', function (data) {
$.ajax({ $.ajax({
url: "{:url('home/keywords/post_submit')}", url: "{:url('home/keywords/add')}",
type: 'post', type: 'post',
data: data.field, data: data.field,
success: function (e) { success: function (e) {

View File

@ -0,0 +1,85 @@
{extend name="common/base"/}
<!-- 主体 -->
{block name="body"}
<div class="body-content">
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
<script type="text/html" id="status">
<i class="layui-icon {{# if(d.status == 1){ }}layui-icon-ok{{# } else { }}layui-icon-close{{# } }}"></i>
</script>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<a class="layui-btn layui-btn-normal layui-btn-sm" href="{:url('home/schedule/cate_add')}">+ 添加工作类型</a>
</div>
</script>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
function init(layui) {
var table = layui.table,
form = layui.form;
var tableIns = table.render({
elem: '#test',
title: '工作类型列表',
toolbar: '#toolbarDemo',
url: "{:url('home/schedule/cate')}",
page: true, //开启分页
limit: 20,
cols: [
[{field: 'id',width: 80,title: 'ID编号',align: 'center'}
, { field: 'name', width: 180, title: '工作类型名称'}
, { field: 'department',width: 300,title: '关联部门'}
, { field: 'remark', title: '备注'}
, {
field: 'status',
width: 80,
title: '状态',
templet: '#status',
align: 'center'
},
, {width: 100, title: '操作', align: 'center'
, templet: function (d) {
var html = '<div class="layui-btn-group">';
html+='<a class="layui-btn layui-btn-xs" href="/home/schedule/cate_add?id='+d.id+'">编辑</a>';
html+= '<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>';
html+= '</div>';
return html;
}
}]
]
});
//删除
table.on('tool(test)', function (obj) {
if (obj.event === 'del') {
layer.confirm('确定要删除吗?', {
icon: 3,
title: '提示'
}, function (index) {
$.ajax({
url: "{:url('home/schedule/cate_delete')}",
type: 'post',
data: {
id: obj.data.id
},
success: function (res) {
layer.msg(res.msg);
if (res.code == 0) {
obj.del();
}
}
})
layer.close(index);
});
}
});
}
</script>
{include file="common/layui" base="base" extend="[]" callback="init" /}
{/block}
<!-- /脚本 -->

View File

@ -0,0 +1,107 @@
{extend name="common/base"/}
<!-- 主体 -->
{block name="body"}
<form class="layui-form body-content">
{if condition="$id eq 0"}
<table class="layui-table layui-table-form">
<tr>
<td class="layui-td-gray2">工作类型名称<font>*</font></td>
<td>
<input type="text" name="title" autocomplete="off" placeholder="请输入工作类型名称" lay-verify="required" lay-reqText="请输入工作类型名称" class="layui-input" value="">
</td>
<td class="layui-td-gray2">关联部门<font>*</font></td>
<td>
<select name="pid" lay-verify="required" lay-reqText="请选择部门">
<option value="">请选择</option>
{volist name="department" id="v"}
<option value="{$v.id}" {eq name="pid" value="$v.id" }selected {/eq}>{$v.title}</option>
{/volist}
</select>
</td>
<td class="layui-td-gray2">状态<font>*</font></td>
<td>
<input type="radio" name="status" value="1" title="正常" checked>
<input type="radio" name="status" value="0" title="禁用">
</td>
</tr>
<tr>
<td class="layui-td-gray2" style="vertical-align: top;">备注信息</td>
<td colspan="5">
<textarea name="remark" placeholder="请输入备注" class="layui-textarea"></textarea>
</td>
</tr>
</table>
{else/}
<table class="layui-table layui-table-form">
<tr>
<td class="layui-td-gray2">工作类型名称<font>*</font></td>
<td>
<input type="text" name="title" autocomplete="off" placeholder="请输入工作类型名称" lay-verify="required" lay-reqText="请输入工作类型名称" class="layui-input" value="{$detail.title}">
</td>
<td class="layui-td-gray2">关联部门<font>*</font></td>
<td>
<select name="type" lay-verify="required" lay-reqText="请选择部门">
<option value="">请选择</option>
<option value="{$v.id}" {eq name="detail.did" value="$v.id"} selected{/eq}>{$v.title}</option>
</select>
</td>
<td class="layui-td-gray2">状态<font>*</font></td>
<td>
<input type="radio" name="status" value="1" title="正常" {eq name="$detail.status" value="1"}checked{/eq}>
<input type="radio" name="status" value="0" title="禁用" {eq name="$detail.status" value="0"}checked{/eq}>
</td>
</tr>
<tr>
<td class="layui-td-gray2" style="vertical-align: top;">备注信息</td>
<td colspan="5">
<textarea name="remark" placeholder="请输入备注" class="layui-textarea">{$detail.remark}</textarea>
</td>
</tr>
</table>
{/if}
<div style="padding: 10px 0">
<input type="hidden" name="id" value="{$id}" />
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
<button lay-event="back" class="layui-btn layui-btn-primary">返回</button>
</div>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
function init(layui) {
var form = layui.form
, layer = layui.layer;
//监听提交
form.on('submit(webform)', function (data) {
$.ajax({
url: "{:url('home/schedule/cate_add')}",
type: 'post',
data: data.field,
success: function (e) {
if (e.code == 0) {
layer.confirm('保存成功,返回列表页吗?', { icon: 3, title: '提示' }, function (index) {
window.location.href="{:url('home/conf/index')}";
});
} else {
layer.msg(e.msg);
}
}
})
return false;
});
//监听返回
$('.body-content').on('click', '[lay-event="back"]', function () {
history.back(-1);
return false;
});
}
</script>
{include file="common/layui" base="base" extend="[]" callback="init" /}
{/block}
<!-- /脚本 -->

View File

@ -1,100 +0,0 @@
{extend name="common/base"/}
<!-- 主体 -->
{block name="body"}
<div class="body-content">
<form class="layui-form">
<div class="layui-input-inline" style="width:300px;">
<input type="text" name="keywords" placeholder="关键字名称" class="layui-input" autocomplete="off" />
</div>
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
function init(layui) {
var table = layui.table,
form = layui.form;
var tableIns = table.render({
elem: '#test',
title: '关键字搜索列表',
toolbar: '#toolbarDemo',
url: "{:url('home/search/index')}",
page: true, //开启分页
limit: 20,
cols: [
[{
field: 'id',
width: 90,
title: 'ID号',
align: 'center'
}, {
field: 'title',
title: '关键字名称'
}, {
field: 'times',
width: 100,
title: '搜索次数',
align: 'center'
}, {
width: 80,
title: '操作',
align: 'center',
templet: function (d) {
var html = '';
var delBtn = '<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>';
return delBtn;
}
}]
]
});
//监听搜索提交
form.on('submit(webform)', function (data) {
tableIns.reload({
where: {
keywords: data.field.keywords
},
page: {
curr: 1
}
});
return false;
});
//删除
table.on('tool(test)', function (obj) {
if (obj.event === 'del') {
layer.confirm('确定要删除吗?', {
icon: 3,
title: '提示'
}, function (index) {
$.ajax({
url: "{:url('home/search/delete')}",
type: 'post',
data: {
id: obj.data.id
},
success: function (e) {
layer.msg(e.msg);
if (e.code == 0) {
obj.del();
}
}
})
layer.close(index);
});
}
});
}
</script>
{include file="common/layui" base="base" extend="[]" callback="init" /}
{/block}
<!-- /脚本 -->

View File

@ -134,7 +134,7 @@ INSERT INTO `oa_admin_menu` VALUES (17, 2, '审核人相关配置', 'home/check/
INSERT INTO `oa_admin_menu` VALUES (18, 2, '工作类型设置', 'home/schedule/cate', '', 1, 0, 0); INSERT INTO `oa_admin_menu` VALUES (18, 2, '工作类型设置', 'home/schedule/cate', '', 1, 0, 0);
INSERT INTO `oa_admin_menu` VALUES (19, 2, '知识关键字设置', 'home/keywords/index', '', 1, 0, 0); INSERT INTO `oa_admin_menu` VALUES (19, 2, '知识关键字设置', 'home/keywords/index', '', 1, 0, 0);
INSERT INTO `oa_admin_menu` VALUES (20, 2, '报销类型设置', 'home/expense/cate', '', 1, 0, 0); INSERT INTO `oa_admin_menu` VALUES (20, 2, '报销类型设置', 'home/expense/cate', '', 1, 0, 0);
INSERT INTO `oa_admin_menu` VALUES (21, 2, '发票主体设置', 'home/invoice/server', '', 1, 0, 0); INSERT INTO `oa_admin_menu` VALUES (21, 2, '发票主体设置', 'home/invoice/subject', '', 1, 0, 0);
INSERT INTO `oa_admin_menu` VALUES (22, 3, '部门架构', 'home/department/index', '', 1, 0, 0); INSERT INTO `oa_admin_menu` VALUES (22, 3, '部门架构', 'home/department/index', '', 1, 0, 0);
INSERT INTO `oa_admin_menu` VALUES (23, 3, '岗位职称', 'home/position/index', '', 1, 0, 0); INSERT INTO `oa_admin_menu` VALUES (23, 3, '岗位职称', 'home/position/index', '', 1, 0, 0);
@ -241,10 +241,10 @@ INSERT INTO `oa_admin_rule` VALUES (43, 42, 'home/expense/cate_add', '新增/编
INSERT INTO `oa_admin_rule` VALUES (44, 42, 'home/expense/cate_disable', '禁用报销类型','报销类型', 0, 0); INSERT INTO `oa_admin_rule` VALUES (44, 42, 'home/expense/cate_disable', '禁用报销类型','报销类型', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (45, 42, 'home/expense/cate_delete', '删除报销类型','报销类型', 0, 0); INSERT INTO `oa_admin_rule` VALUES (45, 42, 'home/expense/cate_delete', '删除报销类型','报销类型', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (46, 2, 'home/invoice/server', '发票主体设置','发票主体', 0, 0); INSERT INTO `oa_admin_rule` VALUES (46, 2, 'home/invoice/subject', '发票主体设置','发票主体', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (47, 46, 'home/invoice/server_add', '新增/编辑发票主体','发票主体', 0, 0); INSERT INTO `oa_admin_rule` VALUES (47, 46, 'home/invoice/subject_add', '新增/编辑发票主体','发票主体', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (48, 46, 'home/invoice/server_disable', '禁用发票主体','发票主体', 0, 0); INSERT INTO `oa_admin_rule` VALUES (48, 46, 'home/invoice/subject_disable', '禁用发票主体','发票主体', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (49, 46, 'home/invoice/server_delete', '删除发票主体','发票主体', 0, 0); INSERT INTO `oa_admin_rule` VALUES (49, 46, 'home/invoice/subject_delete', '删除发票主体','发票主体', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (50, 3, 'home/department/index', '部门架构','部门', 0, 0); INSERT INTO `oa_admin_rule` VALUES (50, 3, 'home/department/index', '部门架构','部门', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (51, 50, 'home/department/add', '添加/编辑部门信息','部门', 0, 0); INSERT INTO `oa_admin_rule` VALUES (51, 50, 'home/department/add', '添加/编辑部门信息','部门', 0, 0);
@ -421,7 +421,7 @@ CREATE TABLE `oa_check` (
`create_time` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '创建时间', `create_time` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '创建时间',
`update_time` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '更新时间', `update_time` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COMMENT = '审核人配置'; ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COMMENT = '审核人配置';
-- ---------------------------- -- ----------------------------
-- Records of oa_check -- Records of oa_check
@ -766,6 +766,22 @@ CREATE TABLE `oa_schedule` (
PRIMARY KEY (`id`) USING BTREE PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COMMENT = '工作记录'; ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COMMENT = '工作记录';
-- ----------------------------
-- Table structure for oa_schedule_cate
-- ----------------------------
DROP TABLE IF EXISTS `oa_schedule_cate`;
CREATE TABLE `oa_schedule_cate` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL DEFAULT '' COMMENT '工作类型名称',
`did` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '关联部门id',
`service_cate_id` int(11) NOT NULL DEFAULT 0 COMMENT '预留字段关联业务类型id',
`remark` varchar(1000) NULL DEFAULT '' COMMENT '备注',
`status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态:-1删除 0禁用 1启用',
`create_time` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '创建时间',
`update_time` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COMMENT = '工作类型表';
-- ---------------------------- -- ----------------------------
-- Table structure for oa_schedule_interfix -- Table structure for oa_schedule_interfix
-- ---------------------------- -- ----------------------------