完善发票管理
This commit is contained in:
parent
82006fe5e2
commit
0f93cda537
@ -132,155 +132,133 @@ class Expense extends BaseController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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()
|
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 = get_params();
|
||||||
$param['admin_id'] = $admin_id;
|
if (request()->isAjax()) {
|
||||||
$param['income_month'] = isset($param['income_month']) ? strtotime(urldecode($param['income_month'])) : 0;
|
$dbRes = false;
|
||||||
$param['expense_time'] = isset($param['expense_time']) ? strtotime(urldecode($param['expense_time'])) : 0;
|
$admin_id = $this->uid;
|
||||||
$param['check_status'] = 1;
|
$param['admin_id'] = $admin_id;
|
||||||
if (!empty($param['id']) && $param['id'] > 0) {
|
$param['income_month'] = isset($param['income_month']) ? strtotime(urldecode($param['income_month'])) : 0;
|
||||||
try {
|
$param['expense_time'] = isset($param['expense_time']) ? strtotime(urldecode($param['expense_time'])) : 0;
|
||||||
validate(ExpenseCheck::class)->scene('edit')->check($param);
|
$param['check_status'] = 1;
|
||||||
} catch (ValidateException $e) {
|
if (!empty($param['id']) && $param['id'] > 0) {
|
||||||
// 验证失败 输出错误信息
|
try {
|
||||||
return to_assign(1, $e->getError());
|
validate(ExpenseCheck::class)->scene('edit')->check($param);
|
||||||
}
|
} catch (ValidateException $e) {
|
||||||
$param['update_time'] = time();
|
// 验证失败 输出错误信息
|
||||||
Db::startTrans();
|
return to_assign(1, $e->getError());
|
||||||
try {
|
}
|
||||||
$res = ExpenseList::where('id', $param['id'])->strict(false)->field(true)->update($param);
|
$param['update_time'] = time();
|
||||||
if ($res !== false) {
|
Db::startTrans();
|
||||||
$exid = $param['id'];
|
try {
|
||||||
//相关内容多个数组;
|
$res = ExpenseList::where('id', $param['id'])->strict(false)->field(true)->update($param);
|
||||||
$amountData = isset($param['amount']) ? $param['amount'] : '';
|
if ($res !== false) {
|
||||||
$remarksData = isset($param['remarks']) ? $param['remarks'] : '';
|
$exid = $param['id'];
|
||||||
$cateData = isset($param['cate_id']) ? $param['cate_id'] : '';
|
//相关内容多个数组;
|
||||||
$idData = isset($param['expense_id']) ? $param['expense_id'] : 0;
|
$amountData = isset($param['amount']) ? $param['amount'] : '';
|
||||||
if ($amountData) {
|
$remarksData = isset($param['remarks']) ? $param['remarks'] : '';
|
||||||
foreach ($amountData as $key => $value) {
|
$cateData = isset($param['cate_id']) ? $param['cate_id'] : '';
|
||||||
if (!$value) {
|
$idData = isset($param['expense_id']) ? $param['expense_id'] : 0;
|
||||||
continue;
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
$data = [];
|
add_log('edit', $exid, $param);
|
||||||
$data['id'] = $idData[$key];
|
Db::commit();
|
||||||
$data['exid'] = $exid;
|
$dbRes = true;
|
||||||
$data['admin_id'] = $admin_id;
|
} else {
|
||||||
$data['amount'] = $amountData[$key];
|
Db::rollback();
|
||||||
$data['cate_id'] = $cateData[$key];
|
}
|
||||||
$data['remarks'] = $remarksData[$key];
|
} catch (\Exception $e) { ##这里参数不能删除($e:错误信息)
|
||||||
if ($data['amount'] == 0) {
|
Db::rollback();
|
||||||
Db::rollback();
|
return to_assign(1, $e->getMessage());
|
||||||
return to_assign(1, '第' . ($key + 1) . '条报销金额不能为零');
|
}
|
||||||
}
|
} else {
|
||||||
if ($data['id'] > 0) {
|
try {
|
||||||
$data['update_time'] = time();
|
validate(ExpenseCheck::class)->scene('add')->check($param);
|
||||||
$resa = Db::name('ExpenseInterfix')->strict(false)->field(true)->update($data);
|
} catch (ValidateException $e) {
|
||||||
} else {
|
// 验证失败 输出错误信息
|
||||||
|
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();
|
$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);
|
$eid = Db::name('ExpenseInterfix')->strict(false)->field(true)->insertGetId($data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
add_log('add', $exid, $param);
|
||||||
|
Db::commit();
|
||||||
|
$dbRes = true;
|
||||||
|
} else {
|
||||||
|
Db::rollback();
|
||||||
}
|
}
|
||||||
add_log('edit', $exid, $param);
|
} catch (\Exception $e) { ##这里参数不能删除($e:错误信息)
|
||||||
Db::commit();
|
Db::rollback();
|
||||||
$dbRes = true;
|
return to_assign(1, $e->getMessage());
|
||||||
} else {
|
|
||||||
Db::rollback();
|
|
||||||
}
|
}
|
||||||
} catch (\Exception $e) { ##这里参数不能删除($e:错误信息)
|
|
||||||
Db::rollback();
|
|
||||||
return to_assign(1, $e->getMessage());
|
|
||||||
}
|
}
|
||||||
} else {
|
if ($dbRes == true) {
|
||||||
try {
|
return to_assign();
|
||||||
validate(ExpenseCheck::class)->scene('add')->check($param);
|
} else {
|
||||||
} catch (ValidateException $e) {
|
return to_assign(1, '保存失败');
|
||||||
// 验证失败 输出错误信息
|
|
||||||
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) {
|
else{
|
||||||
return to_assign();
|
$id = isset($param['id']) ? $param['id'] : 0;
|
||||||
} else {
|
if ($id > 0) {
|
||||||
return to_assign(1, '保存失败');
|
$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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,10 +10,9 @@ declare (strict_types = 1);
|
|||||||
namespace app\home\controller;
|
namespace app\home\controller;
|
||||||
|
|
||||||
use app\home\BaseController;
|
use app\home\BaseController;
|
||||||
use app\home\model\Invoice as InvoiceList;
|
|
||||||
use app\home\model\InvoiceSubject;
|
use app\home\model\InvoiceSubject;
|
||||||
|
use app\home\model\Invoice as InvoiceList;
|
||||||
use app\home\validate\InvoiceSubjectCheck;
|
use app\home\validate\InvoiceSubjectCheck;
|
||||||
use app\home\validate\InvoiceCheck;
|
|
||||||
use think\exception\ValidateException;
|
use think\exception\ValidateException;
|
||||||
use think\facade\Db;
|
use think\facade\Db;
|
||||||
use think\facade\View;
|
use think\facade\View;
|
||||||
@ -67,7 +66,7 @@ class Invoice extends BaseController
|
|||||||
public function get_list($param = [], $where = [])
|
public function get_list($param = [], $where = [])
|
||||||
{
|
{
|
||||||
$rows = empty($param['limit']) ? get_config('app . page_size') : $param['limit'];
|
$rows = empty($param['limit']) ? get_config('app . page_size') : $param['limit'];
|
||||||
$expense = ExpenseList::where($where)
|
$expense = InvoiceList::where($where)
|
||||||
->order('create_time asc')
|
->order('create_time asc')
|
||||||
->paginate($rows, false, ['query' => $param])
|
->paginate($rows, false, ['query' => $param])
|
||||||
->each(function ($item, $key) {
|
->each(function ($item, $key) {
|
||||||
@ -80,37 +79,28 @@ class Invoice extends BaseController
|
|||||||
$item->check_time = empty($item->check_time) ? '-' : date('Y-m-d H:i', $item->check_time);
|
$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_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->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;
|
return $expense;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function detail($id = 0)
|
public function detail($id = 0)
|
||||||
{
|
{
|
||||||
$expense = Db::name('Expense')->where(['id' => $id])->find();
|
$invoice = Db::name('Invoice')->where(['id' => $id])->find();
|
||||||
if ($expense) {
|
if ($invoice) {
|
||||||
$expense['income_month'] = empty($expense['income_month']) ? '-' : date('Y-m', $expense['income_month']);
|
$invoice['income_month'] = empty($invoice['income_month']) ? '-' : date('Y-m', $invoice['income_month']);
|
||||||
$expense['expense_time'] = empty($expense['expense_time']) ? '-' : date('Y-m-d', $expense['expense_time']);
|
$invoice['expense_time'] = empty($invoice['expense_time']) ? '-' : date('Y-m-d', $invoice['expense_time']);
|
||||||
$expense['user_name'] = Db::name('Admin')->where(['id' => $expense['uid']])->value('name');
|
$invoice['user_name'] = Db::name('Admin')->where(['id' => $invoice['uid']])->value('name');
|
||||||
$expense['department'] = Db::name('Department')->where(['id' => $expense['did']])->value('title');
|
$invoice['department'] = Db::name('Department')->where(['id' => $invoice['did']])->value('title');
|
||||||
$expense['amount'] = Db::name('ExpenseInterfix')->where(['exid' => $expense['id']])->sum('amount');
|
if ($invoice['check_admin_id'] > 0) {
|
||||||
|
$invoice['check_admin'] = Db::name('Admin')->where(['id' => $invoice['check_admin_id']])->value('name');
|
||||||
if ($expense['check_admin_id'] > 0) {
|
$invoice['check_time'] = date('Y-m-d H:i:s', $invoice['check_time']);
|
||||||
$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) {
|
if ($invoice['pay_admin_id'] > 0) {
|
||||||
$expense['pay_admin'] = Db::name('Admin')->where(['id' => $expense['pay_admin_id']])->value('name');
|
$invoice['pay_admin'] = Db::name('Admin')->where(['id' => $invoice['pay_admin_id']])->value('name');
|
||||||
$expense['pay_time'] = date('Y-m-d H:i:s', $expense['pay_time']);
|
$invoice['pay_time'] = date('Y-m-d H:i:s', $invoice['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;
|
return $invoice;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
@ -125,27 +115,8 @@ class Invoice extends BaseController
|
|||||||
if ($start_time > 0 && $end_time > 0) {
|
if ($start_time > 0 && $end_time > 0) {
|
||||||
$where[] = ['expense_time', 'between', [$start_time, $end_time]];
|
$where[] = ['expense_time', 'between', [$start_time, $end_time]];
|
||||||
}
|
}
|
||||||
$expense = $this->get_list($param, $where);
|
$invoice = $this->get_list($param, $where);
|
||||||
return table_assign(0, '', $expense);
|
return table_assign(0, '', $invoice);
|
||||||
} 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 {
|
} else {
|
||||||
return view();
|
return view();
|
||||||
}
|
}
|
||||||
@ -156,12 +127,10 @@ class Invoice extends BaseController
|
|||||||
{
|
{
|
||||||
$id = empty(get_params('id')) ? 0 : get_params('id');
|
$id = empty(get_params('id')) ? 0 : get_params('id');
|
||||||
if ($id > 0) {
|
if ($id > 0) {
|
||||||
$expense = $this->detail($id);
|
$detail = $this->detail($id);
|
||||||
View::assign('expense', $expense);
|
View::assign('detail', $detail);
|
||||||
}
|
}
|
||||||
$expense_cate = Db::name('ExpenseCate')->where(['status' => 1])->select()->toArray();
|
|
||||||
View::assign('user', get_admin($this->uid));
|
View::assign('user', get_admin($this->uid));
|
||||||
View::assign('expense_cate', $expense_cate);
|
|
||||||
View::assign('id', $id);
|
View::assign('id', $id);
|
||||||
return view();
|
return view();
|
||||||
}
|
}
|
||||||
@ -288,9 +257,9 @@ class Invoice extends BaseController
|
|||||||
public function view()
|
public function view()
|
||||||
{
|
{
|
||||||
$id = empty(get_params('id')) ? 0 : get_params('id');
|
$id = empty(get_params('id')) ? 0 : get_params('id');
|
||||||
$expense = $this->detail($id);
|
$detail = $this->detail($id);
|
||||||
View::assign('uid', $this->uid);
|
View::assign('uid', $this->uid);
|
||||||
View::assign('expense', $expense);
|
View::assign('detail', $detail);
|
||||||
return view();
|
return view();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -308,7 +277,7 @@ class Invoice extends BaseController
|
|||||||
$data['status'] = '-1';
|
$data['status'] = '-1';
|
||||||
$data['id'] = $id;
|
$data['id'] = $id;
|
||||||
$data['update_time'] = time();
|
$data['update_time'] = time();
|
||||||
if (Db::name('expense')->update($data) !== false) {
|
if (Db::name('Invoice')->update($data) !== false) {
|
||||||
add_log('delete', $id);
|
add_log('delete', $id);
|
||||||
return to_assign(0, "删除成功");
|
return to_assign(0, "删除成功");
|
||||||
} else {
|
} else {
|
||||||
@ -328,17 +297,12 @@ class Invoice extends BaseController
|
|||||||
$param['pay_admin_id'] = $this->uid;
|
$param['pay_admin_id'] = $this->uid;
|
||||||
$param['pay_time'] = time();
|
$param['pay_time'] = time();
|
||||||
}
|
}
|
||||||
$res = ExpenseList::where('id', $param['id'])->strict(false)->field(true)->update($param);
|
$res = InvoiceList::where('id', $param['id'])->strict(false)->field(true)->update($param);
|
||||||
if ($res !== false) {
|
if ($res !== false) {
|
||||||
return to_assign();
|
return to_assign();
|
||||||
} else {
|
} else {
|
||||||
return to_assign(1, "操作失败");
|
return to_assign(1, "操作失败");
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
$expense = $this->detail($param['id']);
|
|
||||||
View::assign('expense', $expense);
|
|
||||||
View::assign('uid', $this->uid);
|
|
||||||
return view();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<!-- 主体 -->
|
<!-- 主体 -->
|
||||||
{block name="body"}
|
{block name="body"}
|
||||||
<form class="layui-form body-content">
|
<form class="layui-form body-content">
|
||||||
<h3>报销信息</h3>
|
<h3 class="h3-title">报销信息</h3>
|
||||||
{if condition="($id == 0)"}
|
{if condition="($id == 0)"}
|
||||||
<table class="layui-table">
|
<table class="layui-table">
|
||||||
<tr>
|
<tr>
|
||||||
@ -40,7 +40,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<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 class="layui-td-gray2">报销选项<span style="color: red">*</span></td>
|
||||||
<td colspan="5">
|
<td colspan="5">
|
||||||
<div>
|
<div>
|
||||||
<table id="interfix" class="layui-table layui-table-min">
|
<table id="interfix" class="layui-table layui-table-min">
|
||||||
@ -65,6 +65,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
<button class="layui-btn layui-btn-normal layui-btn-sm" type="button" id="addInterfix">+报销选项</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
@ -97,7 +98,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<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 class="layui-td-gray2">报销选项<span style="color: red">*</span></td>
|
||||||
<td colspan="5">
|
<td colspan="5">
|
||||||
<div>
|
<div>
|
||||||
<table id="interfix" class="layui-table layui-table-min">
|
<table id="interfix" class="layui-table layui-table-min">
|
||||||
@ -124,6 +125,7 @@
|
|||||||
{/volist}
|
{/volist}
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
<button class="layui-btn layui-btn-normal layui-btn-sm" type="button" id="addInterfix">+报销选项</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
@ -195,7 +197,7 @@
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url:"{:url('/home/expense/post_submit')}",
|
url:"{:url('/home/expense/add')}",
|
||||||
type:'post',
|
type:'post',
|
||||||
data:data.field,
|
data:data.field,
|
||||||
success:function(e){
|
success:function(e){
|
||||||
|
@ -1,175 +0,0 @@
|
|||||||
{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}
|
|
||||||
<!-- /脚本 -->
|
|
@ -4,8 +4,10 @@
|
|||||||
<div class="body-content">
|
<div class="body-content">
|
||||||
<table class="layui-hide" id="test" lay-filter="test"></table>
|
<table class="layui-hide" id="test" lay-filter="test"></table>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/html" id="barDemo">
|
<script type="text/html" id="toolbarDemo">
|
||||||
<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>
|
<div class="layui-btn-container">
|
||||||
|
<span class="layui-btn layui-btn-normal layui-btn-sm" lay-event="add">+ 添加报销登记</span>
|
||||||
|
</div>
|
||||||
</script>
|
</script>
|
||||||
{/block}
|
{/block}
|
||||||
<!-- /主体 -->
|
<!-- /主体 -->
|
||||||
@ -60,7 +62,7 @@
|
|||||||
field: 'income_month',
|
field: 'income_month',
|
||||||
title: '入账月份',
|
title: '入账月份',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 100
|
width: 90
|
||||||
},{
|
},{
|
||||||
field: 'admin_name',
|
field: 'admin_name',
|
||||||
title: '登记人',
|
title: '登记人',
|
||||||
@ -113,14 +115,34 @@
|
|||||||
field: 'right',
|
field: 'right',
|
||||||
fixed: 'right',
|
fixed: 'right',
|
||||||
title: '操作',
|
title: '操作',
|
||||||
toolbar: '#barDemo',
|
width: 130,
|
||||||
width: 100,
|
align: 'right',
|
||||||
align: 'center'
|
templet:function(d){
|
||||||
|
var html='<div class="layui-btn-group">';
|
||||||
|
var btn1='<span class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详情</span>';
|
||||||
|
var btn2='<span class="layui-btn layui-btn-xs" lay-event="edit">编辑</span>';
|
||||||
|
var btn3='<span class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</span>';
|
||||||
|
if(d.admin_id==login_user){
|
||||||
|
html+=btn1+btn2+btn3;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
html+=btn1+btn3;
|
||||||
|
}
|
||||||
|
html+='</div>';
|
||||||
|
return html;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//表头工具栏事件
|
||||||
|
table.on('toolbar(test)', function(obj){
|
||||||
|
if (obj.event === 'add') {
|
||||||
|
rightpage.open("{:url('home/expense/add')}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
//监听行工具事件
|
//监听行工具事件
|
||||||
table.on('tool(test)', function(obj) {
|
table.on('tool(test)', function(obj) {
|
||||||
var data = obj.data;
|
var data = obj.data;
|
||||||
@ -128,6 +150,10 @@
|
|||||||
rightpage.open("/home/expense/check?id="+data.id);
|
rightpage.open("/home/expense/check?id="+data.id);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (obj.event === 'edit') {
|
||||||
|
rightpage.open("/home/expense/add?id="+data.id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (obj.event === 'del') {
|
if (obj.event === 'del') {
|
||||||
layer.confirm('确定删除该报销记录吗?', {
|
layer.confirm('确定删除该报销记录吗?', {
|
||||||
icon: 3,
|
icon: 3,
|
||||||
|
@ -1,161 +0,0 @@
|
|||||||
{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}
|
|
||||||
<!-- /脚本 -->
|
|
@ -8,7 +8,7 @@
|
|||||||
<!-- 主体 -->
|
<!-- 主体 -->
|
||||||
{block name="body"}
|
{block name="body"}
|
||||||
<div class="body-content">
|
<div class="body-content">
|
||||||
<h3>报销详情</h3>
|
<h3 class="h3-title">报销详情</h3>
|
||||||
<table class="layui-table">
|
<table class="layui-table">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="layui-td-gray2">报销凭证编号</td>
|
<td class="layui-td-gray2">报销凭证编号</td>
|
||||||
@ -78,11 +78,19 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
{if condition="($expense.check_status == 0) AND ($uid == $expense.admin_id)"}
|
|
||||||
<div class="layui-form-item" style="padding-top:10px;">
|
<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>
|
<a class="layui-btn" href="/home/expense/add?id={$expense.id}">编辑</a>
|
||||||
|
{/if}
|
||||||
|
{if condition="($expense.check_status == 1) AND ($uid == $expense.check_admin_id)"}
|
||||||
|
<button class="layui-btn layui-btn-danger" lay-event="checkno">审核不通过</button>
|
||||||
|
<button class="layui-btn" lay-event="checkok">审核通过</button>
|
||||||
|
{/if}
|
||||||
|
{if condition="($expense.check_status == 2) AND ($uid == $expense.pay_admin_id)"}
|
||||||
|
<button class="layui-btn" lay-event="payed">打款确认</button>
|
||||||
|
{/eq}
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
|
||||||
</div>
|
</div>
|
||||||
{/block}
|
{/block}
|
||||||
<!-- /主体 -->
|
<!-- /主体 -->
|
||||||
@ -90,10 +98,69 @@
|
|||||||
<!-- 脚本 -->
|
<!-- 脚本 -->
|
||||||
{block name="script"}
|
{block name="script"}
|
||||||
<script>
|
<script>
|
||||||
function init(layui) {
|
function init(layui) {
|
||||||
|
$('.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>
|
</script>
|
||||||
{include file="common/layui" base='base' extend="[]" callback="init" /}
|
{include file="common/layui" base='base' extend="[]" callback="init" /}
|
||||||
{/block}
|
{/block}
|
||||||
|
@ -10,123 +10,114 @@
|
|||||||
<!-- 主体 -->
|
<!-- 主体 -->
|
||||||
{block name="body"}
|
{block name="body"}
|
||||||
<form class="layui-form body-content">
|
<form class="layui-form body-content">
|
||||||
<h3>报销信息</h3>
|
<h3 class="h3-title">开票信息</h3>
|
||||||
{if condition="($id == 0)"}
|
{if condition="($id == 0)"}
|
||||||
<table class="layui-table">
|
<table class="layui-table">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="layui-td-gray2">报销凭证编号<span style="color: red">*</span></td>
|
<td class="layui-td-gray">开票金额<span style="color: red">*</span></td>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" name="code" autocomplete="off" lay-verify="required" placeholder="报销凭证编号" lay-reqText="请填写报销凭证编号" class="layui-input" value="">
|
<input type="text" class="layui-input" name="amount" lay-verify="required" placeholder="请输入开票金额" lay-reqText="请输入开票金额" value="">
|
||||||
</td>
|
</td>
|
||||||
<td class="layui-td-gray">入账月份<span style="color: red">*</span></td>
|
<td class="layui-td-gray2">开票类型<span style="color: red">*</span></td>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" class="layui-input" id="income_month" name="income_month" lay-verify="required" placeholder="请选择入账月份" lay-reqText="请选择入账月份" readonly value="">
|
<select name="invoice_type" lay-verify="required" lay-reqText="请选择开票类型">
|
||||||
|
<option value="">请选择开票类型</option>
|
||||||
|
<option value="1">增值税专用发票</option>
|
||||||
|
<option value="2">增值税普通发票</option>
|
||||||
|
</select>
|
||||||
</td>
|
</td>
|
||||||
<td class="layui-td-gray2">原始单据日期<span style="color: red">*</span></td>
|
<td class="layui-td-gray2">发票审核人<span style="color: red">*</span></td>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" class="layui-input" id="expense_time" name="expense_time" lay-verify="required" placeholder="请选择原始单据日期" lay-reqText="请选择原始单据日期" readonly value="">
|
<select name="invoice_type" lay-verify="required" lay-reqText="请选择开票类型">
|
||||||
|
<option value="">请选择开票类型</option>
|
||||||
|
<option value="1">增值税专用发票</option>
|
||||||
|
<option value="2">增值税普通发票</option>
|
||||||
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="layui-td-gray2">报销人<span style="color: red">*</span></td>
|
<td class="layui-td-gray2">抬头类型<span style="color: red">*</span></td>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" name="name" placeholder="请选择报销人" readonly class="layui-input" lay-verify="required" lay-reqText="请选择报销人" value="{$user.name}" readonly>
|
<input type="radio" name="status" value="1" title="企业" checked>
|
||||||
<input type="hidden" name="uid" autocomplete="off" class="layui-input" value="{$user.id}">
|
<input type="radio" name="status" value="2" title="个人">
|
||||||
</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>
|
</td>
|
||||||
|
<td class="layui-td-gray">开票抬头<span style="color: red">*</span></td>
|
||||||
|
<td><input type="text" name="invoice_title" class="layui-input" value=""></td>
|
||||||
|
<td class="layui-td-gray">电话号码<span style="color: red">*</span></td>
|
||||||
|
<td><input type="text" name="invoice_phone" class="layui-input" value=""></td>
|
||||||
</tr>
|
</tr>
|
||||||
<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 class="layui-td-gray2">纳税人识别号<span style="color: red">*</span></td>
|
||||||
<td colspan="5">
|
<td><input type="text" name="invoice_tax" class="layui-input" value=""></td>
|
||||||
<div>
|
<td class="layui-td-gray2">开户行<span style="color: red">*</span></td>
|
||||||
<table id="interfix" class="layui-table layui-table-min">
|
<td><input type="text" name="invoice_bank" class="layui-input" value=""></td>
|
||||||
<tr>
|
<td class="layui-td-gray2">银行账号<span style="color: red">*</span></td>
|
||||||
<th width="200">报销金额</th>
|
<td><input type="text" name="invoice_banking" class="layui-input" value=""></td>
|
||||||
<th width="300">报销项目</th>
|
</tr>
|
||||||
<th>备注信息</th>
|
<tr>
|
||||||
<th width="100">操作</th>
|
<td class="layui-td-gray2">银行营业网点<span style="color: red">*</span></td>
|
||||||
</tr>
|
<td><input type="text" name="invoice_banking" class="layui-input" value=""></td>
|
||||||
<tr class="more_interfix">
|
<td class="layui-td-gray2">地址<span style="color: red">*</span></td>
|
||||||
<td><input type="text" name="amount[]" value="" class="layui-input" lay-verify="required|number" lay-reqText="请完善报销金额"></td>
|
<td colspan="3"><input type="text" name="invoice_address" class="layui-input" value=""></td>
|
||||||
<td style="text-align:left">
|
</tr>
|
||||||
<select name="cate_id[]" lay-verify="required" lay-reqText="请选择报销项目">
|
<tr>
|
||||||
<option value="">请选择</option>
|
<td class="layui-td-gray2">备注信息</td>
|
||||||
{volist name="$expense_cate" id="vo"}
|
<td colspan="5"><textarea name="remark" placeholder="请输入备注信息" class="layui-textarea"></textarea></td>
|
||||||
<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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
{else/}
|
{else/}
|
||||||
<table class="layui-table">
|
<table class="layui-table">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="layui-td-gray2">报销凭证编号<span style="color: red">*</span></td>
|
<td class="layui-td-gray">开票金额<span style="color: red">*</span></td>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" name="code" autocomplete="off" lay-verify="required" placeholder="报销凭证编号" lay-reqText="请填写报销凭证编号" class="layui-input" value="{$expense.code}">
|
<input type="text" class="layui-input" name="amount" lay-verify="required" placeholder="请输入开票金额" lay-reqText="请输入开票金额" value="">
|
||||||
</td>
|
</td>
|
||||||
<td class="layui-td-gray">入账月份<span style="color: red">*</span></td>
|
<td class="layui-td-gray2">开票类型<span style="color: red">*</span></td>
|
||||||
<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}">
|
<select name="invoice_type" lay-verify="required" lay-reqText="请选择开票类型">
|
||||||
|
<option value="">请选择开票类型</option>
|
||||||
|
<option value="1">增值税专用发票</option>
|
||||||
|
<option value="2">增值税普通发票</option>
|
||||||
|
</select>
|
||||||
</td>
|
</td>
|
||||||
<td class="layui-td-gray2">原始单据日期<span style="color: red">*</span></td>
|
<td class="layui-td-gray2">发票审核人<span style="color: red">*</span></td>
|
||||||
<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}">
|
<select name="invoice_type" lay-verify="required" lay-reqText="请选择开票类型">
|
||||||
|
<option value="">请选择开票类型</option>
|
||||||
|
<option value="1">增值税专用发票</option>
|
||||||
|
<option value="2">增值税普通发票</option>
|
||||||
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="layui-td-gray2">报销人<span style="color: red">*</span></td>
|
<td class="layui-td-gray2">抬头类型<span style="color: red">*</span></td>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" name="name" placeholder="请选择报销人" readonly class="layui-input" lay-verify="required" lay-reqText="请选择报销人" value="{$expense.user_name}" readonly>
|
<input type="radio" name="status" value="1" title="企业" checked>
|
||||||
<input type="hidden" name="uid" autocomplete="off" class="layui-input" value="{$expense.uid}">
|
<input type="radio" name="status" value="2" title="个人">
|
||||||
</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>
|
</td>
|
||||||
|
<td class="layui-td-gray">开票抬头<span style="color: red">*</span></td>
|
||||||
|
<td><input type="text" name="invoice_title" class="layui-input" value=""></td>
|
||||||
|
<td class="layui-td-gray">电话号码<span style="color: red">*</span></td>
|
||||||
|
<td><input type="text" name="invoice_phone" class="layui-input" value=""></td>
|
||||||
</tr>
|
</tr>
|
||||||
<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 class="layui-td-gray2">纳税人识别号<span style="color: red">*</span></td>
|
||||||
<td colspan="5">
|
<td><input type="text" name="invoice_tax" class="layui-input" value=""></td>
|
||||||
<div>
|
<td class="layui-td-gray2">开户行<span style="color: red">*</span></td>
|
||||||
<table id="interfix" class="layui-table layui-table-min">
|
<td><input type="text" name="invoice_bank" class="layui-input" value=""></td>
|
||||||
<tr>
|
<td class="layui-td-gray2">银行账号<span style="color: red">*</span></td>
|
||||||
<th width="200">报销金额</th>
|
<td><input type="text" name="invoice_banking" class="layui-input" value=""></td>
|
||||||
<th width="300">报销类别</th>
|
</tr>
|
||||||
<th>备注信息</th>
|
<tr>
|
||||||
<th width="100">操作</th>
|
<td class="layui-td-gray2">银行营业网点<span style="color: red">*</span></td>
|
||||||
</tr>
|
<td><input type="text" name="invoice_banking" class="layui-input" value=""></td>
|
||||||
{volist name="$expense.list" id="val"}
|
<td class="layui-td-gray2">地址<span style="color: red">*</span></td>
|
||||||
<tr class="more_interfix">
|
<td colspan="3"><input type="text" name="invoice_address" class="layui-input" value=""></td>
|
||||||
<td><input type="text" name="amount[]" value="{$val.amount}" class="layui-input" lay-verify="required|number" lay-reqText="请完善报销金额"></td>
|
</tr>
|
||||||
<td style="text-align:left">
|
<tr>
|
||||||
<select name="cate_id[]" lay-verify="required" lay-reqText="请选择报销项目">
|
<td class="layui-td-gray2">备注信息</td>
|
||||||
<option value="">请选择</option>
|
<td colspan="5"><textarea name="remark" placeholder="请输入备注信息" class="layui-textarea"></textarea></td>
|
||||||
{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>
|
</tr>
|
||||||
</table>
|
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<div class="layui-form-item" style="padding-top:10px;">
|
<div class="layui-form-item" style="padding-top:10px;">
|
||||||
@ -135,14 +126,6 @@
|
|||||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</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}
|
||||||
<!-- /主体 -->
|
<!-- /主体 -->
|
||||||
|
|
||||||
@ -152,41 +135,8 @@
|
|||||||
function init(layui){
|
function init(layui){
|
||||||
var form = layui.form
|
var form = layui.form
|
||||||
,layer = layui.layer
|
,layer = layui.layer
|
||||||
,table = layui.table
|
|
||||||
,employeepicker = layui.employeepicker//很重要
|
|
||||||
,laydate = layui.laydate;
|
,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){
|
form.on('submit(webform)', function(data){
|
||||||
var interfix = $('.more_interfix');
|
var interfix = $('.more_interfix');
|
||||||
@ -195,7 +145,7 @@
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url:"{:url('/home/expense/post_submit')}",
|
url:"{:url('/home/expense/add')}",
|
||||||
type:'post',
|
type:'post',
|
||||||
data:data.field,
|
data:data.field,
|
||||||
success:function(e){
|
success:function(e){
|
||||||
@ -207,73 +157,9 @@
|
|||||||
})
|
})
|
||||||
return false;
|
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>
|
</script>
|
||||||
{include file="common/layui" base='base' extend="['employeepicker']" callback="init" /}
|
{include file="common/layui" base='base' extend="[]" callback="init" /}
|
||||||
{/block}
|
{/block}
|
||||||
<!-- /脚本 -->
|
<!-- /脚本 -->
|
@ -1,175 +0,0 @@
|
|||||||
{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}
|
|
||||||
<!-- /脚本 -->
|
|
@ -4,8 +4,10 @@
|
|||||||
<div class="body-content">
|
<div class="body-content">
|
||||||
<table class="layui-hide" id="test" lay-filter="test"></table>
|
<table class="layui-hide" id="test" lay-filter="test"></table>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/html" id="barDemo">
|
<script type="text/html" id="toolbarDemo">
|
||||||
<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>
|
<div class="layui-btn-container">
|
||||||
|
<span class="layui-btn layui-btn-normal layui-btn-sm" lay-event="add">+ 申请开票</span>
|
||||||
|
</div>
|
||||||
</script>
|
</script>
|
||||||
{/block}
|
{/block}
|
||||||
<!-- /主体 -->
|
<!-- /主体 -->
|
||||||
@ -20,9 +22,9 @@
|
|||||||
|
|
||||||
var tableIns = table.render({
|
var tableIns = table.render({
|
||||||
elem: '#test',
|
elem: '#test',
|
||||||
title: '报销管理列表',
|
title: '发票列表',
|
||||||
toolbar: '#toolbarDemo',
|
toolbar: '#toolbarDemo',
|
||||||
url: "{:url('home/expense/index')}", //数据接口
|
url: "{:url('home/invoice/index')}", //数据接口
|
||||||
page: true, //开启分页
|
page: true, //开启分页
|
||||||
limit: 20,
|
limit: 20,
|
||||||
cols: [
|
cols: [
|
||||||
@ -34,46 +36,36 @@
|
|||||||
width: 80
|
width: 80
|
||||||
}, {
|
}, {
|
||||||
field: 'amount',
|
field: 'amount',
|
||||||
title: '报销总金额(元)',
|
title: '客户名称',
|
||||||
|
width: 240,
|
||||||
|
},{
|
||||||
|
field: 'amount',
|
||||||
|
title: '开票金额(元)',
|
||||||
align: 'right',
|
align: 'right',
|
||||||
width: 120,
|
width: 120,
|
||||||
|
},{
|
||||||
|
field: 'invoice_type',
|
||||||
|
title: '开票类型',
|
||||||
|
align: 'right',
|
||||||
|
width: 90,
|
||||||
},{
|
},{
|
||||||
field: 'user_name',
|
field: 'user_name',
|
||||||
title: '报销人',
|
title: '申请人',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 90
|
width: 100
|
||||||
},{
|
},{
|
||||||
field: 'department',
|
field: 'department',
|
||||||
title: '报销部门',
|
title: '所属部门',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 120
|
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',
|
field: 'create_time',
|
||||||
title: '录入时间',
|
title: '申请时间',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 150
|
width: 150
|
||||||
},{
|
},{
|
||||||
field: 'status',
|
field: 'status',
|
||||||
title: '状态',
|
title: '审核状态',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 120,
|
width: 120,
|
||||||
templet:function(d){
|
templet:function(d){
|
||||||
@ -101,31 +93,60 @@
|
|||||||
width: 136
|
width: 136
|
||||||
},{
|
},{
|
||||||
field: 'pay_name',
|
field: 'pay_name',
|
||||||
title: '打款确认人',
|
title: '开票人',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 90
|
width: 90
|
||||||
},{
|
},{
|
||||||
field: 'pay_time',
|
field: 'pay_time',
|
||||||
title: '打款确认时间',
|
title: '开票时间',
|
||||||
|
align: 'center',
|
||||||
|
width: 136
|
||||||
|
},{
|
||||||
|
field: 'pay_time',
|
||||||
|
title: '发票号码',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 136
|
width: 136
|
||||||
}, {
|
}, {
|
||||||
field: 'right',
|
field: 'right',
|
||||||
fixed: 'right',
|
fixed: 'right',
|
||||||
title: '操作',
|
title: '操作',
|
||||||
toolbar: '#barDemo',
|
width: 130,
|
||||||
width: 100,
|
align: 'right',
|
||||||
align: 'center'
|
templet:function(d){
|
||||||
|
var html='<div class="layui-btn-group">';
|
||||||
|
var btn1='<span class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详情</span>';
|
||||||
|
var btn2='<span class="layui-btn layui-btn-xs" lay-event="edit">编辑</span>';
|
||||||
|
var btn3='<span class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</span>';
|
||||||
|
if(d.admin_id==login_user){
|
||||||
|
html+=btn1+btn2+btn3;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
html+=btn1+btn3;
|
||||||
|
}
|
||||||
|
html+='</div>';
|
||||||
|
return html;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//表头工具栏事件
|
||||||
|
table.on('toolbar(test)', function(obj){
|
||||||
|
if (obj.event === 'add') {
|
||||||
|
rightpage.open("{:url('home/invoice/add')}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
//监听行工具事件
|
//监听行工具事件
|
||||||
table.on('tool(test)', function(obj) {
|
table.on('tool(test)', function(obj) {
|
||||||
var data = obj.data;
|
var data = obj.data;
|
||||||
if (obj.event === 'view') {
|
if (obj.event === 'view') {
|
||||||
rightpage.open("/home/expense/check?id="+data.id);
|
rightpage.open("/home/invoice/check?id="+data.id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (obj.event === 'edit') {
|
||||||
|
rightpage.open("/home/invoice/add?id="+data.id);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (obj.event === 'del') {
|
if (obj.event === 'del') {
|
||||||
@ -134,7 +155,7 @@
|
|||||||
title: '提示'
|
title: '提示'
|
||||||
}, function(index) {
|
}, function(index) {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "{:url('home/expense/delete')}",
|
url: "{:url('home/invoice/delete')}",
|
||||||
data: {
|
data: {
|
||||||
id: data.id
|
id: data.id
|
||||||
},
|
},
|
||||||
|
@ -1,161 +0,0 @@
|
|||||||
{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}
|
|
||||||
<!-- /脚本 -->
|
|
@ -8,7 +8,7 @@
|
|||||||
<!-- 主体 -->
|
<!-- 主体 -->
|
||||||
{block name="body"}
|
{block name="body"}
|
||||||
<div class="body-content">
|
<div class="body-content">
|
||||||
<h3>报销详情</h3>
|
<h3 class="h3-title">报销详情</h3>
|
||||||
<table class="layui-table">
|
<table class="layui-table">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="layui-td-gray2">报销凭证编号</td>
|
<td class="layui-td-gray2">报销凭证编号</td>
|
||||||
@ -78,11 +78,19 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
{if condition="($expense.check_status == 0) AND ($uid == $expense.admin_id)"}
|
|
||||||
<div class="layui-form-item" style="padding-top:10px;">
|
<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>
|
<a class="layui-btn" href="/home/expense/add?id={$expense.id}">编辑</a>
|
||||||
|
{/if}
|
||||||
|
{if condition="($expense.check_status == 1) AND ($uid == $expense.check_admin_id)"}
|
||||||
|
<button class="layui-btn layui-btn-danger" lay-event="checkno">审核不通过</button>
|
||||||
|
<button class="layui-btn" lay-event="checkok">审核通过</button>
|
||||||
|
{/if}
|
||||||
|
{if condition="($expense.check_status == 2) AND ($uid == $expense.pay_admin_id)"}
|
||||||
|
<button class="layui-btn" lay-event="payed">打款确认</button>
|
||||||
|
{/eq}
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
|
||||||
</div>
|
</div>
|
||||||
{/block}
|
{/block}
|
||||||
<!-- /主体 -->
|
<!-- /主体 -->
|
||||||
@ -90,10 +98,69 @@
|
|||||||
<!-- 脚本 -->
|
<!-- 脚本 -->
|
||||||
{block name="script"}
|
{block name="script"}
|
||||||
<script>
|
<script>
|
||||||
function init(layui) {
|
function init(layui) {
|
||||||
|
$('.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>
|
</script>
|
||||||
{include file="common/layui" base='base' extend="[]" callback="init" /}
|
{include file="common/layui" base='base' extend="[]" callback="init" /}
|
||||||
{/block}
|
{/block}
|
||||||
|
@ -310,10 +310,10 @@
|
|||||||
eventLimit: false, // 当事件过多时是否显示更多按钮
|
eventLimit: false, // 当事件过多时是否显示更多按钮
|
||||||
selectable: true,
|
selectable: true,
|
||||||
select: function(arg) {
|
select: function(arg) {
|
||||||
detail=default_detail;
|
console.log(arg);
|
||||||
|
detail={};
|
||||||
var startTime=arg.start.getFullYear()+'-'+toNumer(arg.start.getMonth()+1)+'-'+toNumer(arg.start.getDate())+' '+toNumer(arg.start.getHours())+':'+toNumer(arg.start.getMinutes());
|
var startTime=arg.start.getFullYear()+'-'+(arg.start.getMonth()+1)+'-'+(arg.start.getDate())+' '+(arg.start.getHours())+':'+(arg.start.getMinutes());
|
||||||
var endTime=arg.end.getFullYear()+'-'+toNumer(arg.end.getMonth()+1)+'-'+toNumer(arg.end.getDate())+' '+toNumer(arg.end.getHours())+':'+toNumer(arg.end.getMinutes());
|
var endTime=arg.end.getFullYear()+'-'+(arg.end.getMonth()+1)+'-'+(arg.end.getDate())+' '+(arg.end.getHours())+':'+(arg.end.getMinutes());
|
||||||
|
|
||||||
detail['start_time']=startTime;
|
detail['start_time']=startTime;
|
||||||
detail['end_time']= endTime;
|
detail['end_time']= endTime;
|
||||||
@ -328,7 +328,7 @@
|
|||||||
events: function(fetchInfo, successCallback, failureCallback ){
|
events: function(fetchInfo, successCallback, failureCallback ){
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type:"POST",
|
type:"POST",
|
||||||
url:"/home/schedule/index",
|
url:"/home/schedule/calendar",
|
||||||
dataType:"json",
|
dataType:"json",
|
||||||
data:{start:fetchInfo.startStr,end:fetchInfo.endStr,uid:uid},
|
data:{start:fetchInfo.startStr,end:fetchInfo.endStr,uid:uid},
|
||||||
success:function(result){
|
success:function(result){
|
||||||
|
@ -1,734 +0,0 @@
|
|||||||
{extend name="common/base"/}
|
|
||||||
{block name="style"}
|
|
||||||
<style>
|
|
||||||
body{background-color: #eff0f4;}
|
|
||||||
.layui-row h2{font-size: 18px; height:36px}
|
|
||||||
.layui-card-body {padding:10px 15px 0; overflow: hidden;}
|
|
||||||
.layui-card-header{padding-top: 5px;}
|
|
||||||
.layui-card-header h2{font-size: 18px; float: left;}
|
|
||||||
.layui-card-header h3{font-size: 16px;}
|
|
||||||
.layuiadmin-btn-group{float: right;}
|
|
||||||
.layui-card-body dl{width: 33.3%; float:left; display: block;}
|
|
||||||
.layui-card-tips{font-size: 12px; color:#999;}
|
|
||||||
.layui-card-value{padding:5px 0 15px; font-size: 18px; color:#1E9FFF;}
|
|
||||||
.creat-table{float: right; font-size: 14px; color:#0088FF; cursor: pointer;}
|
|
||||||
.show-item{padding-bottom: 20px;}
|
|
||||||
.show-item li{padding: 1px 6px; cursor: pointer; display: inline-block; border: 1px solid #0088FF; color:#0088FF; font-size: 12px; margin: 6px; border-radius: 3px;}
|
|
||||||
.show-item li.on{border: 1px solid #999; color:#999;}
|
|
||||||
.creat-table{float: right; font-size: 14px; color:#0088FF; cursor: pointer;}
|
|
||||||
</style>
|
|
||||||
<script src="__ADMIN__/echarts.min.js"></script>
|
|
||||||
{/block}
|
|
||||||
<!-- 主体 -->
|
|
||||||
{block name="body"}
|
|
||||||
<div class="vae-content" style="background-color: #f1f2f7;padding:20px 10px;">
|
|
||||||
<div class="layui-row layui-col-space15">
|
|
||||||
|
|
||||||
<div id="section1" class="layui-row layui-col-space15">
|
|
||||||
<div class="layui-col-md3">
|
|
||||||
<div class="layui-card">
|
|
||||||
<div class="layui-card-header">
|
|
||||||
<h3>项目统计</h3>
|
|
||||||
</div>
|
|
||||||
<div class="layui-card-body">
|
|
||||||
<dl>
|
|
||||||
<dt class="layui-card-tips">项目总数</dt>
|
|
||||||
<dd class="layui-card-value" id="project_total">-</dd>
|
|
||||||
</dl>
|
|
||||||
<dl>
|
|
||||||
<dt class="layui-card-tips">已完成的</dt>
|
|
||||||
<dd class="layui-card-value" id="project_finish">-</dd>
|
|
||||||
</dl>
|
|
||||||
<dl>
|
|
||||||
<dt class="layui-card-tips">正在进行的</dt>
|
|
||||||
<dd class="layui-card-value" id="project_doing">-</dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="layui-col-md3">
|
|
||||||
<div class="layui-card">
|
|
||||||
<div class="layui-card-header">
|
|
||||||
<h3>工作任务</h3>
|
|
||||||
</div>
|
|
||||||
<div class="layui-card-body">
|
|
||||||
<dl>
|
|
||||||
<dt class="layui-card-tips">任务总数</dt>
|
|
||||||
<dd class="layui-card-value" id="task_total">-</dd>
|
|
||||||
</dl>
|
|
||||||
<dl>
|
|
||||||
<dt class="layui-card-tips">已完成的</dt>
|
|
||||||
<dd class="layui-card-value" id="task_finish">-</dd>
|
|
||||||
</dl>
|
|
||||||
<dl>
|
|
||||||
<dt class="layui-card-tips">未完成的</dt>
|
|
||||||
<dd class="layui-card-value" id="task_doing">-</dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="layui-col-md3">
|
|
||||||
<div class="layui-card">
|
|
||||||
<div class="layui-card-header">
|
|
||||||
<h3>工时统计</h3>
|
|
||||||
</div>
|
|
||||||
<div class="layui-card-body">
|
|
||||||
<dl>
|
|
||||||
<dt class="layui-card-tips">总工时</dt>
|
|
||||||
<dd class="layui-card-value" id="work_total">-</dd>
|
|
||||||
</dl>
|
|
||||||
<dl>
|
|
||||||
<dt class="layui-card-tips">外勤工时</dt>
|
|
||||||
<dd class="layui-card-value" id="work_out">-</dd>
|
|
||||||
</dl>
|
|
||||||
<dl>
|
|
||||||
<dt class="layui-card-tips">案头工时</dt>
|
|
||||||
<dd class="layui-card-value" id="work_in">-</dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="layui-col-md3">
|
|
||||||
<div class="layui-card">
|
|
||||||
<div class="layui-card-header">
|
|
||||||
<h3>工作记录</h3>
|
|
||||||
</div>
|
|
||||||
<div class="layui-card-body">
|
|
||||||
<dl>
|
|
||||||
<dt class="layui-card-tips">总记录</dt>
|
|
||||||
<dd class="layui-card-value" id="record_total">-</dd>
|
|
||||||
</dl>
|
|
||||||
<dl>
|
|
||||||
<dt class="layui-card-tips">项目记录</dt>
|
|
||||||
<dd class="layui-card-value" id="record_project">-</dd>
|
|
||||||
</dl>
|
|
||||||
<dl>
|
|
||||||
<dt class="layui-card-tips">日常记录</dt>
|
|
||||||
<dd class="layui-card-value" id="record_daily">-</dd>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="layui-col-md12">
|
|
||||||
<div class="layui-row layui-col-space15">
|
|
||||||
<div class="layui-col-md6 layui-anim layui-anim-scale">
|
|
||||||
<div class="layui-card">
|
|
||||||
<div id="plan" style="width: 100%; height:268px"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="layui-col-md6 layui-anim layui-anim-scale">
|
|
||||||
<div class="layui-card">
|
|
||||||
<div id="schedule" style="width: 100%; height:268px"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="layui-col-md12 layui-anim layui-anim-scale">
|
|
||||||
<div class="layui-card">
|
|
||||||
<div class="layui-card-body">
|
|
||||||
<div id="chartYearProject" style="width: 100%;height:320px;"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="layui-col-md12 layui-anim layui-anim-scale">
|
|
||||||
<div class="layui-card">
|
|
||||||
<div class="layui-card-body">
|
|
||||||
<div id="chartServiceAllProject" style="width: 100%;height:500px;"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="layui-col-md12 layui-anim layui-anim-scale">
|
|
||||||
<div class="layui-card">
|
|
||||||
<div class="layui-card-body">
|
|
||||||
<div id="chartIndustryAllProject" style="width: 100%;height:500px;"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="layui-col-md12 layui-anim layui-anim-scale">
|
|
||||||
<div class="layui-card">
|
|
||||||
<div class="layui-card-body">
|
|
||||||
<div id="chartIndustryYear" style="width: 100%;height:500px;"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{/block}
|
|
||||||
<!-- /主体 -->
|
|
||||||
|
|
||||||
<!-- 脚本 -->
|
|
||||||
{block name="script"}
|
|
||||||
<script src="__ADMIN__/echarts.tool.js?v1"></script>
|
|
||||||
<script>
|
|
||||||
var currentYear = '{$this_year}',uid="{$this_uid}";
|
|
||||||
|
|
||||||
function getVirtulData(year,works) {
|
|
||||||
var date = +echarts.number.parseDate(year + '-01-01');
|
|
||||||
var end = +echarts.number.parseDate((+year + 1) + '-01-01');
|
|
||||||
var dayTime = 3600 * 24 * 1000;
|
|
||||||
var data = [];
|
|
||||||
for (var time = date; time < end; time += dayTime) {
|
|
||||||
var this_date = echarts.format.formatTime('yyyy-MM-dd', time);
|
|
||||||
if(works[this_date]){
|
|
||||||
data.push([this_date,works[this_date]]);
|
|
||||||
}else{
|
|
||||||
data.push([this_date,0]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//console.log(data);
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
//按业务类型统计
|
|
||||||
var serviceAllProject = echarts.init(document.getElementById('chartServiceAllProject'),echartsTheme);
|
|
||||||
function chartServiceAllProject(project,data1,data2){
|
|
||||||
var optionD = {
|
|
||||||
color: ['#2D9AFF', '#FF5722'],
|
|
||||||
grid: {
|
|
||||||
left: '5px',
|
|
||||||
right: '5px',
|
|
||||||
bottom: '20px',
|
|
||||||
top: '72px',
|
|
||||||
containLabel: true
|
|
||||||
},
|
|
||||||
tooltip: {
|
|
||||||
trigger: 'axis',
|
|
||||||
axisPointer: {
|
|
||||||
type: 'cross',
|
|
||||||
crossStyle: {
|
|
||||||
color: '#999'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
title: {
|
|
||||||
text: currentYear + '年度各业务类型项目数量及项目工时情况',
|
|
||||||
top: 5,
|
|
||||||
left: 0,
|
|
||||||
textStyle: {
|
|
||||||
fontSize: 20,
|
|
||||||
color:'#333333',
|
|
||||||
fontWeight:800
|
|
||||||
}
|
|
||||||
},
|
|
||||||
legend: {
|
|
||||||
data: ['项目数量','项目工时'],
|
|
||||||
top: 10
|
|
||||||
},
|
|
||||||
xAxis: [{
|
|
||||||
type: 'category',
|
|
||||||
boundaryGap: true,
|
|
||||||
axisPointer: {
|
|
||||||
type: 'shadow'
|
|
||||||
},
|
|
||||||
axisLabel: {
|
|
||||||
rotate: 30,
|
|
||||||
interval: 0
|
|
||||||
},
|
|
||||||
data: project
|
|
||||||
}],
|
|
||||||
yAxis: [
|
|
||||||
{
|
|
||||||
type: 'value',
|
|
||||||
scale: true,
|
|
||||||
name: '数量',
|
|
||||||
min: 0,
|
|
||||||
boundaryGap: [0.2, 0.2]
|
|
||||||
},{
|
|
||||||
type: 'value',
|
|
||||||
scale: true,
|
|
||||||
name: '工时',
|
|
||||||
min: 0,
|
|
||||||
boundaryGap: [0.2, 0.2]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
series: [{
|
|
||||||
name: '项目数量',
|
|
||||||
type: 'bar',
|
|
||||||
barWidth: 30, // 柱图宽度
|
|
||||||
barMaxWidth: 50, // 最大宽度
|
|
||||||
data: data1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '项目工时',
|
|
||||||
type: 'line',
|
|
||||||
yAxisIndex: 1,
|
|
||||||
data: data2
|
|
||||||
}
|
|
||||||
]
|
|
||||||
};
|
|
||||||
serviceAllProject.setOption(optionD);
|
|
||||||
}
|
|
||||||
|
|
||||||
//按行业类型统计
|
|
||||||
var industryAllProject = echarts.init(document.getElementById('chartIndustryAllProject'),echartsTheme);
|
|
||||||
function chartIndustryAllProject(project,data1,data2){
|
|
||||||
var optionC = {
|
|
||||||
color: ['#2D9AFF', '#FF5722'],
|
|
||||||
grid: {
|
|
||||||
left: '5px',
|
|
||||||
right: '5px',
|
|
||||||
bottom: '20px',
|
|
||||||
top: '72px',
|
|
||||||
containLabel: true
|
|
||||||
},
|
|
||||||
tooltip: {
|
|
||||||
trigger: 'axis',
|
|
||||||
axisPointer: {
|
|
||||||
type: 'cross',
|
|
||||||
crossStyle: {
|
|
||||||
color: '#999'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
title: {
|
|
||||||
text: currentYear + '年度各行业项目数量及项目工时情况',
|
|
||||||
top: 5,
|
|
||||||
left: 0,
|
|
||||||
textStyle: {
|
|
||||||
fontSize: 20,
|
|
||||||
color:'#333333',
|
|
||||||
fontWeight:800
|
|
||||||
}
|
|
||||||
},
|
|
||||||
legend: {
|
|
||||||
data: ['项目数量','项目工时'],
|
|
||||||
top: 10
|
|
||||||
},
|
|
||||||
xAxis: [{
|
|
||||||
type: 'category',
|
|
||||||
boundaryGap: true,
|
|
||||||
axisPointer: {
|
|
||||||
type: 'shadow'
|
|
||||||
},
|
|
||||||
axisLabel: {
|
|
||||||
rotate: 30,
|
|
||||||
interval: 0
|
|
||||||
},
|
|
||||||
data: project
|
|
||||||
}],
|
|
||||||
yAxis: [
|
|
||||||
{
|
|
||||||
type: 'value',
|
|
||||||
scale: true,
|
|
||||||
name: '数量',
|
|
||||||
min: 0,
|
|
||||||
boundaryGap: [0.2, 0.2]
|
|
||||||
},{
|
|
||||||
type: 'value',
|
|
||||||
scale: true,
|
|
||||||
name: '工时',
|
|
||||||
min: 0,
|
|
||||||
boundaryGap: [0.2, 0.2]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
series: [{
|
|
||||||
name: '项目数量',
|
|
||||||
type: 'bar',
|
|
||||||
barWidth: 30, // 柱图宽度
|
|
||||||
barMaxWidth: 50, // 最大宽度
|
|
||||||
data: data1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '项目工时',
|
|
||||||
type: 'line',
|
|
||||||
yAxisIndex: 1,
|
|
||||||
data: data2
|
|
||||||
}
|
|
||||||
]
|
|
||||||
};
|
|
||||||
industryAllProject.setOption(optionC);
|
|
||||||
}
|
|
||||||
|
|
||||||
//按行业类型统计
|
|
||||||
var industryYear = echarts.init(document.getElementById('chartIndustryYear'),echartsTheme);
|
|
||||||
function chartIndustryYear(project,data1,data2){
|
|
||||||
var last_year = (currentYear-1)+'';
|
|
||||||
var optionB = {
|
|
||||||
color: ['#2D9AFF', '#FF5722'],
|
|
||||||
grid: {
|
|
||||||
left: '5px',
|
|
||||||
right: '5px',
|
|
||||||
bottom: '20px',
|
|
||||||
top: '72px',
|
|
||||||
containLabel: true
|
|
||||||
},
|
|
||||||
tooltip: {
|
|
||||||
trigger: 'axis',
|
|
||||||
axisPointer: {
|
|
||||||
type: 'cross',
|
|
||||||
crossStyle: {
|
|
||||||
color: '#999'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
title: {
|
|
||||||
text: currentYear + '年与'+last_year+'年各行业项目项目工时对比',
|
|
||||||
top: 5,
|
|
||||||
left: 0,
|
|
||||||
textStyle: {
|
|
||||||
fontSize: 20,
|
|
||||||
color:'#333333',
|
|
||||||
fontWeight:800
|
|
||||||
}
|
|
||||||
},
|
|
||||||
legend: {
|
|
||||||
data: [currentYear,last_year],
|
|
||||||
top: 10
|
|
||||||
},
|
|
||||||
xAxis: [{
|
|
||||||
type: 'category',
|
|
||||||
boundaryGap: true,
|
|
||||||
axisPointer: {
|
|
||||||
type: 'shadow'
|
|
||||||
},
|
|
||||||
axisLabel: {
|
|
||||||
rotate: 30,
|
|
||||||
interval: 0
|
|
||||||
},
|
|
||||||
data: project
|
|
||||||
}],
|
|
||||||
yAxis: [{
|
|
||||||
type: 'value',
|
|
||||||
scale: true,
|
|
||||||
name: '工时',
|
|
||||||
min: 0,
|
|
||||||
boundaryGap: [0.2, 0.2]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
series: [{
|
|
||||||
name: currentYear,
|
|
||||||
type: 'bar',
|
|
||||||
barWidth: 20, // 柱图宽度
|
|
||||||
barMaxWidth: 30, // 最大宽度
|
|
||||||
data: data1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: last_year,
|
|
||||||
type: 'bar',
|
|
||||||
type: 'bar',
|
|
||||||
barWidth: 20, // 柱图宽度
|
|
||||||
barMaxWidth: 30, // 最大宽度
|
|
||||||
data: data2
|
|
||||||
}
|
|
||||||
]
|
|
||||||
};
|
|
||||||
industryYear.setOption(optionB);
|
|
||||||
}
|
|
||||||
|
|
||||||
//按月份统计
|
|
||||||
var yearProject = echarts.init(document.getElementById('chartYearProject'),echartsTheme);
|
|
||||||
function chartYearProject(project,data1,data2) {
|
|
||||||
var optionE = {
|
|
||||||
color: ['#2D9AFF', '#FF5722'],
|
|
||||||
grid: {
|
|
||||||
left: '5px',
|
|
||||||
right: '5px',
|
|
||||||
bottom: '20px',
|
|
||||||
top: '72px',
|
|
||||||
containLabel: true
|
|
||||||
},
|
|
||||||
tooltip: {
|
|
||||||
trigger: 'axis',
|
|
||||||
axisPointer: {
|
|
||||||
type: 'cross',
|
|
||||||
crossStyle: {
|
|
||||||
color: '#999'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
title: {
|
|
||||||
text: currentYear + '年度各个月项目数量及项目工时情况',
|
|
||||||
top: 5,
|
|
||||||
left: 0,
|
|
||||||
textStyle: {
|
|
||||||
fontSize: 20,
|
|
||||||
color:'#333333',
|
|
||||||
fontWeight:800
|
|
||||||
}
|
|
||||||
},
|
|
||||||
legend: {
|
|
||||||
data: ['项目数量','项目工时'],
|
|
||||||
top: 10
|
|
||||||
},
|
|
||||||
xAxis: [{
|
|
||||||
type: 'category',
|
|
||||||
boundaryGap: true,
|
|
||||||
axisPointer: {
|
|
||||||
type: 'shadow'
|
|
||||||
},
|
|
||||||
axisLabel: {
|
|
||||||
rotate: 0,
|
|
||||||
interval: 0
|
|
||||||
},
|
|
||||||
data: project
|
|
||||||
}],
|
|
||||||
yAxis: [
|
|
||||||
{
|
|
||||||
type: 'value',
|
|
||||||
scale: true,
|
|
||||||
name: '数量',
|
|
||||||
min: 0,
|
|
||||||
boundaryGap: [0.2, 0.2]
|
|
||||||
},{
|
|
||||||
type: 'value',
|
|
||||||
scale: true,
|
|
||||||
name: '工时',
|
|
||||||
min: 0,
|
|
||||||
boundaryGap: [0.2, 0.2]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
series: [{
|
|
||||||
name: '项目数量',
|
|
||||||
type: 'bar',
|
|
||||||
barWidth: 30, // 柱图宽度
|
|
||||||
barMaxWidth: 50, // 最大宽度
|
|
||||||
data: data1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '项目工时',
|
|
||||||
type: 'line',
|
|
||||||
yAxisIndex: 1,
|
|
||||||
data: data2
|
|
||||||
}
|
|
||||||
]
|
|
||||||
};
|
|
||||||
yearProject.setOption(optionE);
|
|
||||||
}
|
|
||||||
|
|
||||||
//任务情况
|
|
||||||
var planChart = echarts.init(document.getElementById('plan'));
|
|
||||||
function planChartProject(plan) {
|
|
||||||
let today = new Date();
|
|
||||||
let tYear = today.getFullYear();
|
|
||||||
var planOps = {
|
|
||||||
title: {
|
|
||||||
top: 15,
|
|
||||||
left: 10,
|
|
||||||
text: currentYear+'年度工作任务情况'
|
|
||||||
},
|
|
||||||
tooltip: {
|
|
||||||
padding: 6,
|
|
||||||
formatter: function (obj) {
|
|
||||||
var value = obj.value;
|
|
||||||
var tips='<div style="font-size: 12px;">' + value[0] + '<br>';
|
|
||||||
tips+='共 '+value[1] + ' 个工作任务';
|
|
||||||
tips+='</div>';
|
|
||||||
return tips;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
visualMap: {
|
|
||||||
min: 0,
|
|
||||||
max: 10,
|
|
||||||
show: false,
|
|
||||||
inRange: {
|
|
||||||
color: ['#fafafa','#32AA66']
|
|
||||||
}
|
|
||||||
},
|
|
||||||
calendar: {
|
|
||||||
top: 75,
|
|
||||||
left: 50,
|
|
||||||
right: 30,
|
|
||||||
range: tYear,
|
|
||||||
cellSize: ['auto', 24],
|
|
||||||
splitLine: {
|
|
||||||
lineStyle: {
|
|
||||||
color: '#aaa',
|
|
||||||
type: 'dashed',
|
|
||||||
}
|
|
||||||
},
|
|
||||||
itemStyle: {
|
|
||||||
borderWidth: 0.5
|
|
||||||
},
|
|
||||||
yearLabel: {show: false},
|
|
||||||
monthLabel: {
|
|
||||||
nameMap: 'cn',
|
|
||||||
fontSize: 12
|
|
||||||
},
|
|
||||||
dayLabel: {
|
|
||||||
show: true,
|
|
||||||
formatter: '{start} 1st',
|
|
||||||
fontWeight: 'lighter',
|
|
||||||
nameMap: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
|
|
||||||
fontSize: 12
|
|
||||||
}
|
|
||||||
},
|
|
||||||
series: {
|
|
||||||
type: 'heatmap',
|
|
||||||
coordinateSystem: 'calendar',
|
|
||||||
data: getVirtulData(tYear,plan)
|
|
||||||
}
|
|
||||||
};
|
|
||||||
planChart.setOption(planOps);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//工时记录
|
|
||||||
var scheduleChart = echarts.init(document.getElementById('schedule'));
|
|
||||||
function scheduleChartProject(works) {
|
|
||||||
let today = new Date();
|
|
||||||
let tYear = today.getFullYear();
|
|
||||||
let scheduleOps = {
|
|
||||||
title: {
|
|
||||||
top: 15,
|
|
||||||
left: 10,
|
|
||||||
text: currentYear+'年度工时记录情况'
|
|
||||||
},
|
|
||||||
tooltip: {
|
|
||||||
padding: 6,
|
|
||||||
formatter: function (obj) {
|
|
||||||
var value = obj.value;
|
|
||||||
var tips='<div style="font-size: 12px;">' + value[0] + '<br>';
|
|
||||||
tips+='共 '+value[1] + ' 个工时';
|
|
||||||
tips+='</div>';
|
|
||||||
return tips;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
visualMap: {
|
|
||||||
min: 0,
|
|
||||||
max: 10,
|
|
||||||
show: false,
|
|
||||||
inRange: {
|
|
||||||
color: ['#fafafa','#009CDB']
|
|
||||||
}
|
|
||||||
},
|
|
||||||
calendar: {
|
|
||||||
top: 75,
|
|
||||||
left: 50,
|
|
||||||
right: 30,
|
|
||||||
range: tYear,
|
|
||||||
cellSize: ['auto', 24],
|
|
||||||
splitLine: {
|
|
||||||
lineStyle: {
|
|
||||||
color: '#aaa',
|
|
||||||
type: 'dashed',
|
|
||||||
}
|
|
||||||
},
|
|
||||||
itemStyle: {
|
|
||||||
borderWidth: 0.5
|
|
||||||
},
|
|
||||||
yearLabel: {show: false},
|
|
||||||
monthLabel: {
|
|
||||||
nameMap: 'cn',
|
|
||||||
fontSize: 12
|
|
||||||
},
|
|
||||||
dayLabel: {
|
|
||||||
show: true,
|
|
||||||
formatter: '{start} 1st',
|
|
||||||
fontWeight: 'lighter',
|
|
||||||
nameMap: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
|
|
||||||
fontSize: 12
|
|
||||||
}
|
|
||||||
},
|
|
||||||
series: {
|
|
||||||
type: 'heatmap',
|
|
||||||
coordinateSystem: 'calendar',
|
|
||||||
data: getVirtulData(tYear,works)
|
|
||||||
}
|
|
||||||
};
|
|
||||||
scheduleChart.setOption(scheduleOps);
|
|
||||||
}
|
|
||||||
|
|
||||||
setTimeout(function() {
|
|
||||||
window.onresize = function() {
|
|
||||||
planChart.resize();
|
|
||||||
scheduleChart.resize();
|
|
||||||
yearProject.resize();
|
|
||||||
serviceAllProject.resize();
|
|
||||||
industryYear.resize();
|
|
||||||
industryAllProject.resize();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
function getProject() {
|
|
||||||
$.ajax({
|
|
||||||
url: "/admin/personal/detail",
|
|
||||||
type: 'post',
|
|
||||||
data: {
|
|
||||||
uid: uid,
|
|
||||||
year: currentYear
|
|
||||||
},
|
|
||||||
success: function(res) {
|
|
||||||
if (res.code == 1) {
|
|
||||||
$('#project_finish').html(res.data.count.project_finish);
|
|
||||||
$('#project_doing').html(numFormat(res.data.count.project_doing));
|
|
||||||
$('#project_total').html(numFormat(res.data.count.project_total));
|
|
||||||
$('#record_daily').html(numFormat(res.data.count.record_daily));
|
|
||||||
$('#record_project').html(res.data.count.record_project);
|
|
||||||
$('#record_total').html((res.data.count.record_total));
|
|
||||||
$('#task_doing').html((res.data.count.task_doing));
|
|
||||||
$('#task_finish').html((res.data.count.task_finish));
|
|
||||||
$('#task_total').html((res.data.count.task_total));
|
|
||||||
$('#work_in').html((res.data.count.work_in));
|
|
||||||
$('#work_out').html((res.data.count.work_out));
|
|
||||||
$('#work_total').html((res.data.count.work_total));
|
|
||||||
planChartProject(res.data.plan);
|
|
||||||
scheduleChartProject(res.data.schedule);
|
|
||||||
|
|
||||||
//按月份统计
|
|
||||||
var year_arr = res.data.year_arr,
|
|
||||||
year_arr_array = [],
|
|
||||||
year_arr_num_array = [],
|
|
||||||
year_arr_labor_array = [];
|
|
||||||
|
|
||||||
for (var e = 0; e < year_arr.length; e++) {
|
|
||||||
year_arr_array.push(year_arr[e].month + '月份');
|
|
||||||
year_arr_num_array.push(year_arr[e].num);
|
|
||||||
year_arr_labor_array.push( year_arr[e].labor);
|
|
||||||
}
|
|
||||||
chartYearProject(year_arr_array,year_arr_num_array,year_arr_labor_array);
|
|
||||||
|
|
||||||
//业务类型统计
|
|
||||||
var service_all_cate = res.data.service,
|
|
||||||
service_all_array = [],
|
|
||||||
service_arr_num_array = [],
|
|
||||||
service_arr_labor_array = [];
|
|
||||||
|
|
||||||
for (var d = 0; d < service_all_cate.length; d++) {
|
|
||||||
service_all_array.push(service_all_cate[d].title);
|
|
||||||
service_arr_num_array.push(service_all_cate[d].num);
|
|
||||||
service_arr_labor_array.push(service_all_cate[d].labor);
|
|
||||||
}
|
|
||||||
chartServiceAllProject(service_all_array, service_arr_num_array,service_arr_labor_array);
|
|
||||||
|
|
||||||
//行业统计
|
|
||||||
var industry_all_cate = res.data.industry,
|
|
||||||
industry_all_array = [],
|
|
||||||
industry_arr_num_array = [],
|
|
||||||
industry_arr_labor_array = [];
|
|
||||||
industry_arr_last_labor_array = [];
|
|
||||||
|
|
||||||
for (var c = 0; c < industry_all_cate.length; c++) {
|
|
||||||
industry_all_array.push(industry_all_cate[c].title);
|
|
||||||
industry_arr_num_array.push(industry_all_cate[c].num);
|
|
||||||
industry_arr_labor_array.push(industry_all_cate[c].labor);
|
|
||||||
industry_arr_last_labor_array.push(industry_all_cate[c].last_labor);
|
|
||||||
}
|
|
||||||
chartIndustryAllProject(industry_all_array, industry_arr_num_array,industry_arr_labor_array);
|
|
||||||
|
|
||||||
//年度对比行业统计
|
|
||||||
chartIndustryYear(industry_all_array, industry_arr_labor_array,industry_arr_last_labor_array);
|
|
||||||
} else {
|
|
||||||
layer.msg(res.msg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
//初始化
|
|
||||||
function init(layui) {
|
|
||||||
var form = layui.form,
|
|
||||||
layer = layui.layer;
|
|
||||||
|
|
||||||
getProject();
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
{include file="common/layui" base='base' extend="[]" use="['form']" callback="init" /}
|
|
||||||
{/block}
|
|
||||||
<!-- /脚本 -->
|
|
@ -578,14 +578,14 @@ CREATE TABLE `oa_invoice` (
|
|||||||
`sid` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '关联发票主体ID',
|
`sid` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '关联发票主体ID',
|
||||||
`cash_type` tinyint(1) UNSIGNED NULL DEFAULT 1 COMMENT '付款方式:1现金 2转账 3微信支付 4支付宝 5信用卡 6支票 7其他',
|
`cash_type` tinyint(1) UNSIGNED NULL DEFAULT 1 COMMENT '付款方式:1现金 2转账 3微信支付 4支付宝 5信用卡 6支票 7其他',
|
||||||
`is_cash` tinyint(1) UNSIGNED NULL DEFAULT 0 COMMENT '是否直接到账:0否 1是',
|
`is_cash` tinyint(1) UNSIGNED NULL DEFAULT 0 COMMENT '是否直接到账:0否 1是',
|
||||||
`remark_desc` text NULL COMMENT '备注',
|
`remark` text NULL COMMENT '备注',
|
||||||
`amount` decimal(15, 2) NULL DEFAULT 0.00 COMMENT '发票金额',
|
`amount` decimal(15, 2) NULL DEFAULT 0.00 COMMENT '发票金额',
|
||||||
`enter_amount` decimal(15, 2) NULL DEFAULT 0.00 COMMENT '到账金额',
|
`enter_amount` decimal(15, 2) NULL DEFAULT 0.00 COMMENT '到账金额',
|
||||||
`did` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '开发票部门',
|
`did` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '开发票部门',
|
||||||
`admin_id` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '发票申请人',
|
`admin_id` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '发票申请人',
|
||||||
`check_admin_id` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '发票审核人',
|
`check_admin_id` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '发票审核人',
|
||||||
`open_admin_id` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '发票开具人',
|
`open_admin_id` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '发票开具人',
|
||||||
`invoice_type` tinyint(1) UNSIGNED NULL DEFAULT 0 COMMENT '发票类型:0普票 1专票',
|
`invoice_type` tinyint(1) UNSIGNED NULL DEFAULT 0 COMMENT '发票类型:1增值税专用发票2增值税普通发票',
|
||||||
`invoice_tax` varchar(100) NOT NULL DEFAULT '' COMMENT '纳税人识别号',
|
`invoice_tax` varchar(100) NOT NULL DEFAULT '' COMMENT '纳税人识别号',
|
||||||
`invoice_title` varchar(100) NOT NULL DEFAULT '' COMMENT '纳税人名称',
|
`invoice_title` varchar(100) NOT NULL DEFAULT '' COMMENT '纳税人名称',
|
||||||
`invoice_bank` varchar(100) NOT NULL DEFAULT '' COMMENT '开户银行',
|
`invoice_bank` varchar(100) NOT NULL DEFAULT '' COMMENT '开户银行',
|
||||||
|
@ -172,7 +172,7 @@ layui.define(['element'], function(exports){
|
|||||||
layer.tips('正在清理系统缓存...',this);
|
layer.tips('正在清理系统缓存...',this);
|
||||||
that.attr('class','clearThis');
|
that.attr('class','clearThis');
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url:"/admin/api/cache_clear",
|
url:"/home/api/cache_clear",
|
||||||
success:function(res){
|
success:function(res){
|
||||||
if(res.code == 1){
|
if(res.code == 1){
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user