发布测试版2.3.3

This commit is contained in:
乐风 2021-06-08 18:23:48 +08:00
parent 45ec21fdc1
commit f92fc8dce1
27 changed files with 96 additions and 2399 deletions

View File

@ -4,4 +4,13 @@
3.修改去掉打印插件调用全部改成html打印方式后续还将继续优化打印功能
4.修改dialog前端逻辑封装更多的代码为通用代码
5.修改引入gdoo自定义事件出现的子表编辑时无法判断字段权限bug
本版本更新了个别sql需要重新导入
2021-06-08 开源测试版 2.3.3发布
1.修改项目管理管理员查看所有项目,其他用户只能查看自己的项目和参与的项目
2.修复模型绑定数据无法解除
3.修复首页部件客户生日报sql错误
4.修复首页待办事项不显示
5.修复菜单badge不显示
6.删除废弃的工作流程模块
本版本更新了个别sql需要重新导入

View File

@ -16,7 +16,7 @@ class WidgetController extends DefaultController
*/
public function index()
{
if (Request::isJson()) {
if (Request::method() == 'POST') {
$model = DB::table('article')
->permission('receive_id')
->orderBy('created_at', 'desc');

View File

@ -1,32 +1,34 @@
<table id="widget-article-index">
<thead>
<tr>
<th data-field="title" data-formatter="titleFormatter" data-align="left">标题</th>
<th data-field="created_at" data-width="200" data-formatter="datetimeFormatter" data-sortable="true" data-align="center">发布时间</th>
</tr>
</thead>
</table>
<div class="wrapper-sm p-t-none">
<div class="gdoo-list-grid">
<div id="widget-article-index" class="ag-theme-balham" style="width:100%;height:200px;"></div>
</div>
</div>
<script>
function datetimeFormatter(value, row) {
return format_datetime(value);
}
function titleFormatter(value, row) {
return '<a href="'+app.url('article/article/view', {id: row.id})+'">' + value + '</a>';
}
(function($) {
var $table = $('#widget-article-index');
$table.bootstrapTable({
sidePagination: 'server',
showColumns: false,
showHeader: false,
height: 200,
pagination: false,
url: '{{url("article/widget/index")}}',
});
(function ($) {
var gridDiv = document.querySelector("#widget-article-index");
var options = new agGridOptions();
options.remoteDataUrl = '{{url()}}';
options.remoteParams = {};
options.defaultColDef.suppressMenu = true;
var columnDefs = [
{type:'sn', cellClass:'text-center', headerName: '序号', width: 60},
{field: "name", cellClass:'text-center', headerName: '标题', width: 240},
{field: "created_at", cellClass:'text-center', type:'datetime', headerName: '发布时间', width: 140},
];
options.columnDefs = columnDefs;
options.onRowDoubleClicked = function (params) {
if (params.node.rowPinned) {
return;
}
if (params.data == undefined) {
return;
}
if (params.data.id > 0) {
top.addTab('article/article/show?id=' + params.data.id, 'article_article_show', '新闻公告');
}
};
new agGrid.Grid(gridDiv, options);
options.remoteData({page: 1});
gdoo.widgets['article_widget_index'] = options;
})(jQuery);
</script>

View File

@ -29,20 +29,13 @@ class WidgetController extends DefaultController
(datediff(dd, getdate(), dateadd(year, datediff(year, head_birthday, getdate())+1, head_birthday)) between 0 and 7)')
->selectRaw('id, code, name, head_name, head_phone, head_birthday')
->get();
} else if($this->dbType == 'pgsql') {
$model->whereRaw("
(concat(date_part('year', current_date), '-', date_part('month', head_birthday), '-', date_part('day', head_birthday))::date - current_date between 0 and 7)
OR
(concat(date_part('year', current_date) + 1, '-', date_part('month', head_birthday), '-', date_part('day', head_birthday))::date - current_date between 0 and 7)")
->selectRaw("id, code, name, head_name, head_phone, concat(date_part('year', current_date), '-', date_part('month', head_birthday), '-', date_part('day', head_birthday))::date as head_birthday");
}
else if($this->dbType == 'mysql') {
$model->whereRaw("
(concat(year(now()), DATE_FORMAT(birthday,'-%m-%d')) BETWEEN DATE_FORMAT(now(),'%Y-%m-%d') AND DATE_FORMAT(DATE_ADD(now(), interval 10 day),'%Y-%m-%d'))
(concat(year(now()), DATE_FORMAT(head_birthday,'-%m-%d')) BETWEEN DATE_FORMAT(now(),'%Y-%m-%d') AND DATE_FORMAT(DATE_ADD(now(), interval 10 day),'%Y-%m-%d'))
OR
(concat(year(now()) + 1, DATE_FORMAT(birthday,'-%m-%d')) BETWEEN DATE_FORMAT(now(),'%Y-%m-%d') AND DATE_FORMAT(DATE_ADD(now(), interval 10 day),'%Y-%m-%d'))")
->selectRaw("id, code, name, head_name, head_phone, concat(year(now()), DATE_FORMAT(birthday,'-%m-%d')) as head_birthday");
(concat(year(now()) + 1, DATE_FORMAT(head_birthday,'-%m-%d')) BETWEEN DATE_FORMAT(now(),'%Y-%m-%d') AND DATE_FORMAT(DATE_ADD(now(), interval 10 day),'%Y-%m-%d'))")
->selectRaw("id, code, name, head_name, head_phone, concat(year(now()), DATE_FORMAT(head_birthday,'-%m-%d')) as head_birthday");
}
$rows = $model->get();

View File

@ -8,12 +8,12 @@
grid.remoteDataUrl = '{{url()}}';
grid.remoteParams = {};
var columnDefs = [
{suppressMenu: true, field: "code", headerName: '客户编码', width: 120},
{suppressMenu: true, field: "name", headerName: '客户名称', minWidth: 160},
{suppressMenu: true, field: "head_name", headerName: '法人', width: 120},
{suppressMenu: true, field: "head_phone", headerName: '法人手机', width: 120},
{suppressMenu: true, field: "head_birthday", headerName: '法人生日', width: 120},
{suppressMenu: true, field: "id", headerName: 'ID', width: 80}
{suppressMenu: true, cellClass:'text-center', field: "code", headerName: '客户编码', width: 120},
{suppressMenu: true, cellClass:'text-center', field: "name", headerName: '客户名称', minWidth: 160},
{suppressMenu: true, cellClass:'text-center', field: "head_name", headerName: '法人', width: 120},
{suppressMenu: true, cellClass:'text-center', field: "head_phone", headerName: '法人手机', width: 120},
{suppressMenu: true, cellClass:'text-center', field: "head_birthday", headerName: '法人生日', width: 120},
{suppressMenu: true, cellClass:'text-center', field: "id", headerName: 'ID', width: 80}
];
grid.onRowDoubleClicked = function(row) {

View File

@ -15,7 +15,7 @@ class Controller extends BaseController
/**
* @var 程序版本
*/
public $version = '2.3.2';
public $version = '2.3.3';
/**
* @var 配置参数

View File

@ -14,7 +14,7 @@ class BadgeService
->leftJoin('model_run', 'model_run.id', '=', 'model_run_log.run_id')
->leftJoin($table, $table.'.id', '=', 'model_run.data_id')
->leftJoin('user as run_log_user', 'run_log_user.id', '=', 'model_run_log.user_id')
->where('model_run_log.updated_id', 0)
->where('model_run_log.status', 0)
->where('model_run_log.user_id', auth()->id())
->where('model_run_log.bill_id', $master['id'])
->where($table.'.id', '>', 0)

View File

@ -318,6 +318,13 @@ class FieldController extends DefaultController
// 写入模型数据
$gets['setting'] = json_encode($gets['setting'], JSON_UNESCAPED_UNICODE);
// 去掉关联字段
if (empty($gets['data_type'])) {
$gets['data_type'] = '';
$gets['data_field'] = '';
$gets['data_link'] = '';
}
$model = Field::findOrNew((int)$gets['id']);
$model->fill($gets);
$model->save();

View File

@ -23,7 +23,7 @@ class TodoController extends DefaultController
->leftJoin('user as run_log_user', 'run_log_user.id', '=', 'model_run_log.created_id')
->leftJoin('customer', 'customer.id', '=', DB::raw("model_run.partner_id and model_run.partner_type = 'customer'"))
->leftJoin('supplier', 'supplier.id', '=', DB::raw("model_run.partner_id and model_run.partner_type = 'supplier'"))
->where('model_run_log.updated_id', 0)
->where('model_run_log.status', 0)
->where('model_run_log.user_id', auth()->id())
->orderBy('model_run.id', 'desc')
->selectRaw("

View File

@ -47,8 +47,8 @@ class ProjectController extends DefaultController
$auth_id = auth()->id();
// 不是全部权限
if ($this->access['index'] < 4) {
// 临时修改(管理员显示所有项目)
if ($auth_id > 1) {
$sql = "(permission = 0
or (permission = 1
and (

View File

@ -1,2 +0,0 @@
*
!.gitignore

View File

@ -1,248 +0,0 @@
<?php namespace Gdoo\Workflow\Controllers;
use DB;
use Auth;
use Request;
use Validator;
use Gdoo\Model\Grid;
use Gdoo\Model\Models\Bill;
use Gdoo\Model\Models\Model;
use Gdoo\Index\Controllers\DefaultController;
use Gdoo\Model\Models\Run;
use Gdoo\Model\Models\RunLog;
use Gdoo\Model\Models\RunStep;
use Gdoo\Model\Models\Step;
use Gdoo\Model\Models\Template;
use Gdoo\Workflow\Models\BillCategory;
class BillController extends DefaultController
{
public function index()
{
$header = [
'master_name' => '流程',
'simple_search_form' => 1,
'table' => 'model_bill',
'master_table' => 'model_bill',
'create_btn' => 1,
];
$search = search_form([
'advanced' => '',
], [
['form_type' => 'text', 'name' => '名称', 'field' => 'model_bill.name', 'value' => '', 'options' => []],
], 'model');
$header['cols'] = [
'checkbox' => [
'width' => 40,
'suppressSizeToFit' => true,
'cellClass' => 'text-center',
'suppressMenu' => true,
'sortable' => false,
'editable' => false,
'resizable' => false,
'filter' => false,
'checkboxSelection' => true,
'headerCheckboxSelection' => true,
],
'seq_sn' => [
'width' => 60,
'headerName' => '序号',
'suppressSizeToFit' => true,
'cellClass' => 'text-center',
'suppressMenu' => true,
'sortable' => false,
'resizable' => false,
'editable' => false,
'type' => 'sn',
'filter' => false,
],
'name' => [
'field' => 'name',
'headerName' => '名称',
'sortable' => true,
'suppressMenu' => true,
'cellClass' => 'text-left',
'form_type' => 'text',
'width' => 100,
],
'category_name' => [
'field' => 'category_name',
'headerName' => '类别',
'sortable' => true,
'suppressMenu' => true,
'cellClass' => 'text-center',
'form_type' => 'text',
'width' => 120,
],
'code' => [
'field' => 'code',
'headerName' => '编码',
'sortable' => true,
'suppressMenu' => true,
'cellClass' => 'text-center',
'form_type' => 'text',
'width' => 100,
],
'sn_rule' => [
'field' => 'sn_rule',
'headerName' => '编号规则',
'sortable' => true,
'suppressMenu' => true,
'cellClass' => 'text-center',
'form_type' => 'text',
'width' => 80,
],
'updated_dt' => [
'field' => 'updated_dt',
'headerName' => '操作时间',
'sortable' => true,
'suppressMenu' => true,
'cellClass' => 'text-center',
'form_type' => 'text',
'width' => 80,
],
'id' => [
'field' => 'id',
'headerName' => 'ID',
'sortable' => true,
'suppressMenu' => true,
'cellClass' => 'text-center',
'form_type' => 'text',
'width' => 40,
],
'actions' => [
'headerName' => '',
'cellRenderer' => 'actionCellRenderer',
'options' => [[
'name' => '视图',
'action' => 'view',
'display' => 1,
],[
'name' => '流程',
'action' => 'flow',
'display' => 1,
],[
'name' => '权限',
'action' => 'permission',
'display' => 1,
],[
'name' => '编辑',
'action' => 'edit',
'display' => $this->access['edit'],
]],
'width' => 160,
'cellClass' => 'text-center',
'suppressSizeToFit' => true,
'suppressMenu' => true,
'sortable' => false,
'editable' => false,
'resizable' => false,
'filter' => false,
],
];
$header['buttons'] = [
['name' => '删除', 'icon' => 'fa-remove', 'action' => 'delete', 'display' => $this->access['delete']],
['name' => '导出', 'icon' => 'fa-share', 'action' => 'export', 'display' => 1],
];
$header['search_form'] = $search;
$query = $search['query'];
if (Request::method() == 'POST') {
$model = Bill::leftJoin('model_bill_category', 'model_bill_category.id', '=', 'model_bill.category_id')
->selectRaw('
model_bill.*,
model_bill.id as master_id,
model_bill_category.name as category_name
')
->where('model_bill.type', 1)
->orderBy('model_bill.id', 'desc')
->setBy($header);
foreach ($search['where'] as $where) {
if ($where['active']) {
$model->search($where);
}
}
$rows = $model->paginate($query['limit'])->appends($query);
$rows->transform(function($row) {
$row['updated_dt'] = format_datetime($row['updated_at']);
$row['sn_rule'] = $row['sn_prefix'].$row['sn_rule'].($row['sn_length'] > 0 ? $row['sn_length'] : '');
return $row;
});
$ret = $rows->toArray();
$ret['header'] = Grid::getColumns($header);
return $ret;
}
return $this->display([
'header' => $header,
]);
}
public function create()
{
if (Request::method() == 'POST') {
$gets = Request::all();
$rules = [
'name' => 'required',
'code' => 'required|unique:model_bill,code,'.$gets['id'],
];
$v = Validator::make($gets, $rules);
if ($v->fails()) {
return $this->json($v->errors()->first());
}
// 流程设置为1
$gets['audit_type'] = 1;
$gets['type'] = 1;
$bill = Bill::findOrNew($gets['id']);
$bill->fill($gets);
$bill->save();
return $this->json('恭喜你,操作成功。', true);
}
$bill_id = Request::get('id');
$bill = Bill::find($bill_id);
$categorys = BillCategory::get();
return $this->render([
'bill' => $bill,
'categorys' => $categorys,
'bill_id' => $bill_id,
], 'create');
}
public function edit()
{
return $this->create();
}
public function store()
{
return $this->edit();
}
public function delete()
{
$ids = (array)Request::get('id');
if (count($ids) > 0) {
Bill::whereIn('id', $ids)->delete();
Step::whereIn('bill_id', $ids)->delete();
Run::whereIn('bill_id', $ids)->delete();
RunLog::whereIn('bill_id', $ids)->delete();
RunStep::whereIn('bill_id', $ids)->delete();
Template::whereIn('bill_id', $ids)->delete();
return $this->json('恭喜你,操作成功。', true);
}
}
}

View File

@ -1,207 +0,0 @@
<?php namespace Gdoo\Workflow\Controllers;
use Request;
use DB;
use Validator;
use Gdoo\Workflow\Models\BillCategory;
use Gdoo\Model\Grid;
use Gdoo\Index\Controllers\DefaultController;
use Gdoo\Model\Models\Bill;
class CategoryController extends DefaultController
{
public function index()
{
$header = [
'master_name' => '流程类别',
'simple_search_form' => 1,
'table' => 'model_bill_category',
'master_table' => 'model_bill_category',
'create_btn' => 1,
];
$search = search_form([
'advanced' => '',
], [
['form_type' => 'text', 'name' => '名称', 'field' => 'model_bill_category.name', 'value' => '', 'options' => []],
], 'model');
$header['cols'] = [
'checkbox' => [
'width' => 40,
'suppressSizeToFit' => true,
'cellClass' => 'text-center',
'suppressMenu' => true,
'sortable' => false,
'editable' => false,
'resizable' => false,
'filter' => false,
'checkboxSelection' => true,
'headerCheckboxSelection' => true,
],
'seq_sn' => [
'width' => 60,
'headerName' => '序号',
'suppressSizeToFit' => true,
'cellClass' => 'text-center',
'suppressMenu' => true,
'sortable' => false,
'resizable' => false,
'editable' => false,
'type' => 'sn',
'filter' => false,
],
'name' => [
'field' => 'name',
'headerName' => '名称',
'sortable' => true,
'suppressMenu' => true,
'cellClass' => 'text-left',
'form_type' => 'text',
'width' => 100,
],
'remark' => [
'field' => 'remark',
'headerName' => '备注',
'sortable' => true,
'suppressMenu' => true,
'cellClass' => 'text-left',
'form_type' => 'text',
'width' => 0,
],
'sort' => [
'field' => 'sort',
'headerName' => '排序',
'sortable' => true,
'suppressMenu' => true,
'cellClass' => 'text-center',
'form_type' => 'text',
'width' => 60,
],
'updated_dt' => [
'field' => 'updated_dt',
'headerName' => '操作时间',
'sortable' => true,
'suppressMenu' => true,
'cellClass' => 'text-center',
'form_type' => 'text',
'width' => 60,
],
'id' => [
'field' => 'id',
'headerName' => 'ID',
'sortable' => true,
'suppressMenu' => true,
'cellClass' => 'text-center',
'form_type' => 'text',
'width' => 40,
],
'actions' => [
'headerName' => '',
'cellRenderer' => 'actionCellRenderer',
'options' => [[
'name' => '编辑',
'action' => 'edit',
'display' => $this->access['edit'],
]],
'width' => 80,
'cellClass' => 'text-center',
'suppressSizeToFit' => true,
'suppressMenu' => true,
'sortable' => false,
'editable' => false,
'resizable' => false,
'filter' => false,
],
];
$header['buttons'] = [
['name' => '删除', 'icon' => 'fa-remove', 'action' => 'delete', 'display' => $this->access['delete']],
['name' => '导出', 'icon' => 'fa-share', 'action' => 'export', 'display' => 1],
];
$header['search_form'] = $search;
$query = $search['query'];
if (Request::method() == 'POST') {
$model = BillCategory::orderBy('sort', 'desc')
->selectRaw("*, id as master_id")
->setBy($header);
foreach ($search['where'] as $where) {
if ($where['active']) {
$model->search($where);
}
}
$rows = $model->paginate($query['limit'])->appends($query);
$rows->transform(function($row) {
$row['updated_dt'] = format_datetime($row['updated_at']);
return $row;
});
$ret = $rows->toArray();
$ret['header'] = Grid::getColumns($header);
return $ret;
}
return $this->display([
'header' => $header,
]);
}
public function create()
{
if (Request::method() == 'POST') {
$gets = Request::all();
$rules = [
'name' => 'required',
];
$v = Validator::make($gets, $rules);
if ($v->fails()) {
return $this->json($v->errors()->first());
}
$category = BillCategory::findOrNew($gets['id']);
$category->fill($gets);
$category->save();
return $this->json('恭喜你,操作成功。', true);
}
$category_id = Request::get('id');
$category = BillCategory::find($category_id);
return $this->render([
'category' => $category,
], 'create');
}
public function edit()
{
return $this->create();
}
public function store()
{
return $this->edit();
}
public function delete()
{
if (Request::method() == 'POST') {
$id = Request::get('id');
if (empty($id)) {
return $this->json('最少选择一行记录。');
}
$count = Bill::whereIn('category_id', $id)->count();
if ($count > 0) {
return $this->json('此类别存在工作数据,无法删除。');
}
BillCategory::whereIn('id', $id)->delete();
return $this->json('恭喜你,操作成功。', true);
}
}
}

View File

@ -1,262 +0,0 @@
<?php namespace Gdoo\Workflow\Controllers;
use DB;
use Auth;
use Request;
use Validator;
use Gdoo\Model\Models\Model;
use Gdoo\Model\Models\Field;
use Gdoo\Model\Models\Template;
use Gdoo\Index\Controllers\DefaultController;
use Gdoo\Model\Services\ModelService;
class TemplateController extends DefaultController
{
public $permission = ['create', 'create2'];
public function index()
{
if (Request::method() == 'POST') {
$sorts = Request::get('sort');
$i = 0;
foreach ($sorts as $sort) {
Template::where('id', $sort)->update(['sort' => $i]);
$i ++;
}
return $this->json('恭喜你,操作成功。', true);
}
$bill_id = Request::get('bill_id');
$rows = Template::where('bill_id', $bill_id)
->orderBy('sort', 'asc')
->get();
$models = DB::table('model')->where('parent_id', 0)->orderBy('lft', 'asc')->get();
$model = Model::find($bill_id);
return $this->display([
'rows' => $rows,
'bill_id' => $bill_id,
'models' => $models,
'model' => $model,
]);
}
public function create()
{
$gets = Request::all();
if (Request::method() == 'POST') {
$rules = [
'name' => 'required',
];
$v = Validator::make($gets, $rules);
if ($v->fails()) {
return $this->back()->withErrors($v)->withInput();
}
$gets['type'] = join(',', (array)$gets['type']);
$gets['client'] = join(',', (array)$gets['client']);
$gets['tpl'] = json_encode($gets['columns'], JSON_UNESCAPED_UNICODE);
unset($gets['columns']);
$model = Template::findOrNew($gets['id']);
$model->fill($gets);
$model->save();
return $this->json('恭喜你,操作成功。', url('create', ['bill_id' => $gets['bill_id'], 'id' => $gets['id']]));
}
$bill_id = Request::get('bill_id');
$bill = DB::table('model_bill')->find($bill_id);
// 主模型
$master_model = null;
// 获取全部模型
$models = ModelService::getModelAllFields($bill['model_id']);
$lists = [];
foreach ($models as $model) {
if ($model['parent_id'] == 0) {
$master_model = $model;
}
foreach ($model['fields'] as $field) {
$field['table'] = $model['table'];
$lists[$field['id']] = $field;
}
}
$template = DB::table('model_template')->find($gets['id']);
$tpl = $template['tpl'];
$views = json_decode($tpl, true);
foreach ((array)$views as $i => $view) {
$v1 = $view['fields'];
foreach ($v1 as $j => $sublist) {
$_fields = $sublist['fields'];
if ($_fields) {
foreach ($_fields as $k => $_field) {
if (empty($_field['table'])) {
$list = $lists[$_field['id']];
$_field['table'] = $list['table'];
unset($_field['id']);
} else {
$list = $models[$_field['table']]['fields'][$_field['field']];
}
if ($list) {
$_field['name'] = $list['name'];
}
$_fields[$k] = $_field;
unset($models[$_field['table']]['fields'][$_field['field']]);
}
$v1[$j]['fields'] = $_fields;
} else {
if (empty($sublist['table'])) {
$list = $lists[$sublist['id']];
$sublist['table'] = $list['table'];
unset($sublist['id']);
} else {
$sublist['table'] = $master_model['table'];
$list = $models[$master_model['table']]['fields'][$sublist['field']];
}
if ($list) {
$sublist['name'] = $list['name'];
$sublist['field'] = $list['field'];
}
$v1[$j] = $sublist;
unset($models[$sublist['table']]['fields'][$sublist['field']]);
}
}
$views[$i]['fields'] = $v1;
}
$_types = DB::table('model')->orderBy('lft')->get()->keyBy('id');
$types = [];
foreach ($_types as $type) {
if ($type['parent_id']) {
$name = $_types[$type['parent_id']]['name'].'->'.$type['name'];
} else {
$name = $type['name'];
}
$types[] = ['table' => $type['table'], 'name' => $name];
}
$template['tpl'] = json_encode($views, JSON_UNESCAPED_UNICODE);
$template['type'] = explode(',', $template['type']);
$template['client'] = explode(',', $template['client']);
return $this->display([
'template' => $template,
'model' => $model,
'bill_id' => $bill_id,
'models' => $models,
'types' => $types,
]);
}
public function create2()
{
$gets = Request::all();
if (Request::method() == 'POST') {
$rules = [
'name' => 'required',
];
$v = Validator::make($gets, $rules);
if ($v->fails()) {
return $this->back()->withErrors($v)->withInput();
}
$gets['type'] = join(',', (array)$gets['type']);
$gets['client'] = join(',', (array)$gets['client']);
$gets['tpl'] = json_encode($gets['columns'], JSON_UNESCAPED_UNICODE);
unset($gets['columns']);
$model = Template::findOrNew($gets['id']);
$model->fill($gets);
$model->save();
return $this->json('恭喜你,操作成功。', true);
}
$bill_id = Request::get('bill_id');
$bill = DB::table('model_bill')->find($bill_id);
$template = DB::table('model_template')->find($gets['id']);
$leftFields = [];
$rightFields = [];
$views = (array)json_decode($template['tpl'], true);
// 获取所有模型
$models = array_by(ModelService::getModels($bill['model_id']), 'id');
foreach ($views as $view) {
if (empty($view['table'])) {
$view['table'] = $models[$view['model_id']]['table'];
}
unset($view['model_id']);
unset($view['id']);
$rightFields[$view['table'].'.'.$view['field']] = $view;
}
$model = DB::table('model')->find($bill['model_id']);
$_fields = DB::table('model_field')->where('model_id', $model['id'])->orderBy('sort', 'asc')->get();
foreach ($_fields as $field) {
$field_key = $model['table'].'.'.$field['field'];
$rightField = $rightFields[$field_key];
if ($rightField) {
$rightField['name'] = $field['name'];
$rightField['table'] = $model['table'];
$rightField['field'] = $field['field'];
$rightFields[$field_key] = $rightField;
continue;
}
$leftFields[] = ['table' => $model['table'], 'field' => $field['field'], 'name' => $field['name']];
}
// 子模型
$childrens = DB::table('model')->where('parent_id', $model['id'])->get();
foreach ($childrens as $children) {
$_fields = DB::table('model_field')->where('model_id', $children['id'])->orderBy('sort', 'asc')->get();
foreach ($_fields as $field) {
$field_key = $children['table'].'.'.$field['field'];
$rightField = $rightFields[$field_key];
if ($rightField) {
$rightField['table'] = $children['table'];
$rightField['field'] = $field['field'];
$rightField['name'] = '['.$children['name'].']'.$field['name'];
$rightFields[$field_key] = $rightField;
continue;
}
$leftFields[] = ['table' => $children['table'], 'field' => $field['field'], 'name' => '['.$children['name'].']'.$field['name']];
}
}
$rightFields = array_values($rightFields);
$models = DB::table('model')->where('parent_id', 0)->orderBy('lft', 'asc')->get();
$template['leftFields'] = $leftFields;
$template['rightFields'] = $rightFields;
unset($template['tpl']);
$template['type'] = explode(',', $template['type']);
$template['client'] = explode(',', $template['client']);
return $this->display([
'template' => $template,
'model' => $model,
'bill_id' => $bill_id,
'models' => $models,
]);
}
public function delete()
{
$id = Request::get('id');
if ($id > 0) {
DB::table('model_template')->where('id', $id)->delete();
return $this->success('index', '恭喜你,操作成功。');
}
}
}

View File

@ -1,25 +0,0 @@
<?php namespace Gdoo\Workflow\Controllers;
use DB;
use Auth;
use Request;
use Gdoo\Index\Controllers\DefaultController;
use Gdoo\User\Models\User;
class WidgetController extends DefaultController
{
public $permission = ['index'];
public function index()
{
if (Request::method() == 'POST') {
$rows = [];
$json['total'] = sizeof($rows);
$json['data'] = $rows;
return $json;
}
return $this->render();
}
}

View File

@ -1,8 +0,0 @@
<?php namespace Gdoo\Workflow\Models;
use Gdoo\Index\Models\BaseModel;
class BillCategory extends BaseModel
{
protected $table = 'model_bill_category';
}

View File

@ -1,18 +0,0 @@
<?php namespace Gdoo\Workflow\Services;
use DB;
use Auth;
class WorkflowService
{
/**
* 获取待办工作流程
*/
public static function getBadge()
{
$rows = [];
$ret['total'] = sizeof($rows);
$ret['data'] = $rows;
return $ret;
}
}

View File

@ -1,108 +0,0 @@
<?php
return [
"name" => "工作流程",
"version" => "1.0",
"description" => "流程管理。",
'widgets' => [
'widget_workflow_todo' => [
'name' => '待办流程',
'type' => 1,
'url' => 'workflow/widget/index',
'more_url' => 'workflow/workflow/index',
],
],
'badges' => [
'workflow_workflow_index' => 'Gdoo\Workflow\Services\WorkflowService::getBadge',
],
"controllers" => [
"workflow" => [
"name" => "流程列表",
"actions" => [
"index" => [
"name" => "列表"
],
"view" => [
"name" => "查看"
],
"list" => [
"name" => "发起"
],
"monitor" => [
"name" => "监控"
],
"trash" => [
"name" => "回收站",
],
"query" => [
"name" => "统计",
],
"add" => [
"name" => "新建"
],
"edit" => [
"name" => "办理"
],
"delete" => [
"name" => "删除"
],
"destroy" => [
"name" => "销毁"
]
]
],
"bill" => [
"name" => "流程管理",
"actions" => [
"index" => [
"name" => "列表"
],
"show" => [
"name" => "查看"
],
"create" => [
"name" => "新建"
],
"edit" => [
"name" => "办理"
],
"delete" => [
"name" => "删除"
],
]
],
"category" => [
"name" => "流程类别",
"actions" => [
"index" => [
"name" => "列表"
],
"create" => [
"name" => "新建"
],
"edit" => [
"name" => "办理"
],
"delete" => [
"name" => "删除"
]
]
],
"template" => [
"name" => "视图",
"actions" => [
"index" => [
"name" => "列表"
],
"create" => [
"name" => "新建"
],
"edit" => [
"name" => "编辑"
],
"delete" => [
"name" => "删除"
]
]
],
]
];

View File

@ -1,49 +0,0 @@
<form method="post" id="model_bill" name="model_bill">
<table class="table table-form m-b-none">
<tr>
<td align="right" width="10%">流程名称</th>
<td><input type="text" id="name" name="name" value="{{$bill->name}}" class="form-control input-sm"></td>
</tr>
<tr>
<td align="right">流程编码</th>
<td><input type="text" id="code" name="code" value="{{$bill->code}}" class="form-control input-sm"></td>
</tr>
<tr>
<td align="right">流程类别</td>
<td>
<select class="form-control input-sm" name="category_id" id="category_id">
@foreach($categorys as $category)
<option value="{{$category->id}}" @if($category->id == $bill->category_id) selected @endif>{{$category->name}}</option>
@endforeach
</select>
</td>
</tr>
<tr>
<td align="right">编号前缀</th>
<td><input type="text" id="sn_prefix" name="sn_prefix" value="{{$bill->sn_prefix}}" class="form-control input-sm"></td>
</tr>
<tr>
<td align="right">编号规则</th>
<td><input type="text" id="sn_rule" name="sn_rule" value="{{$bill->sn_rule}}" class="form-control input-sm"></td>
</tr>
<tr>
<td align="right">编号长度</th>
<td><input type="text" id="sn_length" name="sn_length" value="{{$bill->sn_length}}" class="form-control input-sm"></td>
</tr>
<tr>
<td align="right">支持回收站</td>
<td>
<label class="radio-inline"><input type="radio" @if($bill['is_trash'] == 0) checked @endif value="0" name="is_trash"> </label>
<label class="radio-inline"><input type="radio" @if($bill['is_trash'] == 1) checked @endif value="1" name="is_trash"> </label>
</td>
</tr>
</table>
<input type="hidden" name="id" value="{{$bill->id}}">
</form>

View File

@ -1,81 +0,0 @@
<div class="gdoo-list-page" id="{{$header['master_table']}}-page">
<div class="gdoo-list panel">
<div class="gdoo-list-header">
<gdoo-grid-header :header="header" :grid="grid" :action="action" />
</div>
<div class='gdoo-list-grid'>
<div id="{{$header['master_table']}}-grid" class="ag-theme-balham"></div>
</div>
</div>
</div>
<script>
Vue.createApp({
components: {
gdooGridHeader,
},
setup(props, ctx) {
var table = '{{$header["master_table"]}}';
var config = new gdoo.grid(table);
var grid = config.grid;
grid.autoColumnsToFit = true;
grid.remoteDataUrl = '{{url()}}';
var action = config.action;
// 双击行执行的方法
action.rowDoubleClick = action.edit;
action.view = function(data) {
var me = this;
var grid = config.grid;
var url = app.url('workflow/template/index', {bill_id: data.master_id});
var index = layer.open({
skin: 'layui-layer-frame',
scrollbar: false,
closeBtn: 2,
title: data.master_name + '[视图]',
type: 2,
move: false,
area: ['100%', '100%'],
content: url,
});
}
action.flow = function(data) {
var me = this;
var grid = config.grid;
top.addTab('model/step/index2?bill_id=' + data.master_id, 'flow_step_index2', '单据流程');
}
action.permission = function(data) {
var me = this;
var grid = config.grid;
var url = app.url('model/permission/index', {bill_id: data.master_id});
var index = layer.open({
skin: 'layui-layer-frame',
scrollbar: false,
closeBtn: 2,
title: data.master_name + '[权限]',
type: 2,
move: false,
area: ['100%', '100%'],
content: url,
});
}
var setup = config.setup;
Vue.onMounted(function() {
var gridDiv = config.div(136);
// 初始化数据
grid.remoteData({page: 1}, function(res) {
config.init(res);
});
});
return setup;
}
}).mount("#{{$header['master_table']}}-page");
</script>

View File

@ -1,20 +0,0 @@
<form method="post" id="model_bill_category" name="model_bill_category">
<table class="table table-form m-b-none">
<tr>
<td align="right" width="10%">名称</th>
<td><input type="text" id="name" name="name" value="{{$category->name}}" class="form-control input-sm"></td>
</tr>
<tr>
<td align="right">备注</th>
<td><textarea id="remark" name="remark" class="form-control input-sm">{{$category->remark}}</textarea></td>
</tr>
<tr>
<td align="right">排序</th>
<td><input type="text" id="sort" name="sort" value="{{$category->sort}}" class="form-control input-sm"></td>
</tr>
</table>
<input type="hidden" name="id" value="{{$category->id}}">
</form>

View File

@ -1,45 +0,0 @@
<div class="gdoo-list-page" id="{{$header['master_table']}}-page">
<div class="gdoo-list panel">
<div class="gdoo-list-header">
<gdoo-grid-header :header="header" :grid="grid" :action="action" />
</div>
<div class='gdoo-list-grid'>
<div id="{{$header['master_table']}}-grid" class="ag-theme-balham"></div>
</div>
</div>
</div>
<script>
Vue.createApp({
components: {
gdooGridHeader,
},
setup(props, ctx) {
var table = '{{$header["master_table"]}}';
var config = new gdoo.grid(table);
var grid = config.grid;
grid.autoColumnsToFit = true;
grid.remoteDataUrl = '{{url()}}';
var action = config.action;
// 双击行执行的方法
action.rowDoubleClick = action.edit;
var setup = config.setup;
Vue.onMounted(function() {
var gridDiv = config.div(136);
// 初始化数据
grid.remoteData({page: 1}, function(res) {
config.init(res);
});
});
return setup;
}
}).mount("#{{$header['master_table']}}-page");
</script>

File diff suppressed because it is too large Load Diff

View File

@ -1,48 +0,0 @@
<div class="panel">
<div class="wrapper-sm">
<a class="btn btn-info btn-sm" href="{{url('create',['bill_id'=>$bill_id])}}"><i class="icon icon-plus"></i> 新建表单</a>
<a class="btn btn-info btn-sm" href="{{url('create2',['bill_id'=>$bill_id])}}"><i class="icon icon-plus"></i> 新建列表</a>
</div>
<form method="post" action="{{url()}}" id="myform" name="myform">
<div class="wrapper-sm b-t">
<table class="table table-bordered table-hover m-b-none b-t" id="table-sortable" url="{{url()}}">
<thead>
<tr>
<th align="left">视图名称</th>
<th align="center">视图类型</th>
<th align="center">客户端</th>
<th align="center">权限范围</th>
<th align="center">ID</th>
<th align="center"></th>
</tr>
</thead>
<tbody>
@if($rows)
@foreach($rows as $row)
<tr id="{{$row['id']}}">
<td align="left" class="move">{{$row['name']}}</td>
<td align="center">{{$row['type']}}</td>
<td align="center">{{$row['client']}}</td>
<td align="center">{{$row['receive_name']}}</td>
<td align="center">{{$row['id']}}</td>
<td align="center">
@if($row['type'] == 'list')
<a class="option" href="{{url('create2',['bill_id'=>$bill_id,'id'=>$row['id']])}}">编辑</a>
@else
<a class="option" href="{{url('create',['bill_id'=>$bill_id,'id'=>$row['id']])}}">编辑</a>
@endif
@if($row['system'] == 0)
<a class="option" onclick="app.confirm('{{url('delete',['bill_id'=>$bill_id,'id'=>$row['id']])}}','确定要删除吗?');" href="javascript:;">删除</a>
@endif
</td>
</tr>
@endforeach
@endif
</tbody>
</table>
</form>
</div>
</div>

View File

@ -1,50 +0,0 @@
<div class="wrapper-sm p-t-none">
<div class="gdoo-list-grid">
<div id="workflow-widget" class="ag-theme-balham" style="width:100%;height:200px;"></div>
</div>
</div>
<script>
(function ($) {
function datetimeFormatter(params) {
return format_datetime(params.value);
}
function tabFormatter(params) {
return '<a href="javascript:;" data-toggle="addtab" data-url="'+app.url('workflow/workflow/edit', {process_id: params.data.id})+'" data-id="workflow_workflow_edit" data-name="待办流程">' + params.value + '</a>';
}
var gridDiv = document.querySelector("#workflow-widget");
var options = new agGridOptions();
options.remoteDataUrl = '{{url()}}';
options.remoteParams = {};
var columnDefs = [
{suppressMenu: true, type:'sn', cellClass:'text-center', headerName: '序号', width: 60},
{suppressMenu: true, field: "title", headerName: '流程主题', width: 260},
{suppressMenu: true, sortable: false, cellClass:'text-center', field: "step_title", headerName: '当前步骤', width: 160},
{suppressMenu: true, valueFormatter: datetimeFormatter, sortable: false, field: "turn_time", headerName: '交办时间', width: 160},
//{suppressMenu: true,field: "id", cellClass:'text-center', headerName: 'ID', width: 80}
];
options.onGridReady = function(params) {
};
options.columnDefs = columnDefs;
options.onRowDoubleClicked = function (params) {
if (params.node.rowPinned) {
return;
}
if (params.data == undefined) {
return;
}
if (params.data.id > 0) {
top.addTab('workflow/workflow/edit?process_id=' + params.data.id, 'workflow_workflow_edit', '待办流程');
}
};
new agGrid.Grid(gridDiv, options);
options.remoteData({page: 1});
gdoo.widgets['workflow_widget_index'] = options;
})(jQuery);
</script>

View File

@ -1 +0,0 @@
ALTER TABLE `media` ADD COLUMN `thumb` varchar(255) DEFAULT NULL COMMENT '缩略图路径' AFTER `path`;

View File

@ -11,26 +11,12 @@
Target Server Version : 100508
File Encoding : 65001
Date: 08/05/2021 19:49:30
Date: 08/06/2021 18:22:09
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for aaa
-- ----------------------------
DROP TABLE IF EXISTS `aaa`;
CREATE TABLE `aaa` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name2` int(11) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of aaa
-- ----------------------------
-- ----------------------------
-- Table structure for approach
-- ----------------------------
@ -949,6 +935,7 @@ CREATE TABLE `customer` (
`tax_max_id` tinyint(4) NULL DEFAULT NULL COMMENT '开票单位最大ID',
`class2_id` tinyint(4) NULL DEFAULT NULL COMMENT '客户种类',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `idx_code`(`code`) USING BTREE,
INDEX `idx_customer_city_id`(`city_id`) USING BTREE,
INDEX `idx_customer_contact_id`(`contact_id`) USING BTREE,
INDEX `idx_customer_county_id`(`county_id`) USING BTREE,
@ -960,14 +947,13 @@ CREATE TABLE `customer` (
INDEX `idx_customer_user_id`(`user_id`) USING BTREE,
INDEX `idx_customer_status`(`status`) USING BTREE,
INDEX `idx_customer_class_id`(`class_id`) USING BTREE,
INDEX `idx_customer_class2_id`(`class2_id`) USING BTREE,
UNIQUE INDEX `idx_code`(`code`) USING BTREE
INDEX `idx_customer_class2_id`(`class2_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '客户' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of customer
-- ----------------------------
INSERT INTO `customer` VALUES (1, '11', '111', NULL, '111', '01001', '王二小食品有限公司', 1, 42, NULL, NULL, NULL, NULL, NULL, NULL, 1594147787, '系统管理员', '系统管理员', 1620469234, NULL, 1, 1, 1, 2249, 2271, 2272, '0', '11', '12', '213', 0, 0, '33', NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, 1, '2020-09-18', 0, 149, 1, 1);
INSERT INTO `customer` VALUES (1, '11', '111', NULL, '111', '01001', '王二小食品有限公司', 1, 42, NULL, NULL, NULL, NULL, NULL, NULL, 1594147787, '系统管理员', '系统管理员', 1623146856, NULL, 1, 1, 1, 2249, 2271, 2272, '0', '11', '12', '213', 0, 0, '33', NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, 1, '2020-06-13', 0, 149, 1, 1);
INSERT INTO `customer` VALUES (2, NULL, NULL, NULL, NULL, '100002', '四川幺麻子食品公司', 1, 43, NULL, NULL, NULL, NULL, NULL, '111', 1620468708, '系统管理员', '系统管理员', 1620470171, NULL, 1, 1, 1, NULL, NULL, NULL, '0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6, '$2y$10$Gb4n4ea3nlMGxJsPKSWBUug8hZFLj4xI831Gru.s78ZX314UwyEOm', 17, 1, NULL, NULL, 149, NULL, 1);
INSERT INTO `customer` VALUES (3, NULL, NULL, NULL, NULL, '100003', '百家食品有限公司', 2, 44, NULL, NULL, NULL, NULL, NULL, NULL, 1620469893, '系统管理员', '系统管理员', 1620470124, NULL, 1, 1, 2, NULL, NULL, NULL, '0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, 17, 1, NULL, NULL, 149, NULL, 2);
INSERT INTO `customer` VALUES (4, NULL, NULL, NULL, NULL, '100004', '麻辣江湖食品有限公司', 2, 42, NULL, NULL, NULL, NULL, NULL, NULL, 1620470030, '系统管理员', '系统管理员', 1620470157, NULL, 1, 1, 2, NULL, NULL, NULL, '0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, 8, 1, NULL, NULL, 147, NULL, 1);
@ -2379,6 +2365,7 @@ CREATE TABLE `media` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`folder_id` int(11) NOT NULL DEFAULT 0 COMMENT '文件夹ID',
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '文件路径',
`thumb` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '缩略图路径',
`folder` tinyint(4) NULL DEFAULT NULL COMMENT '是文件夹',
`public` tinyint(4) NULL DEFAULT NULL COMMENT '公共文档',
`use_count` tinyint(4) NULL DEFAULT NULL COMMENT '文件使用次数',
@ -2392,12 +2379,12 @@ CREATE TABLE `media` (
`created_id` int(11) NULL DEFAULT NULL COMMENT '创建者ID',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_media_folder_id`(`folder_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of media
-- ----------------------------
INSERT INTO `media` VALUES (15, 0, 'media/2021/03/20090156_srhu.png', NULL, NULL, NULL, 'png', 'a味聚特标志.png', '145234', NULL, NULL, '系统管理员', 1616202116, 1);
INSERT INTO `media` VALUES (15, 0, 'media/2021/03/20090156_srhu.png', NULL, NULL, NULL, NULL, 'png', 'a味聚特标志.png', '145234', NULL, NULL, '系统管理员', 1616202116, 1);
-- ----------------------------
-- Table structure for menu
@ -2441,12 +2428,7 @@ INSERT INTO `menu` VALUES (25, 62, 38, 39, '订单列表', 'order/order/index',
INSERT INTO `menu` VALUES (36, 284, 183, 184, '库存类型', 'stock/type/index', 1, 0, NULL, 0, 15, 1, 0, NULL, NULL, NULL);
INSERT INTO `menu` VALUES (39, 284, 185, 186, '仓库列表', 'stock/warehouse/index', 1, 0, NULL, 0, 16, 1, 0, NULL, NULL, NULL);
INSERT INTO `menu` VALUES (41, 0, 11, 36, '工作', 'work', 1, 0, NULL, 0, 3, 1, 0, 'fa-share-alt', '#1890ff', NULL);
INSERT INTO `menu` VALUES (42, 41, 14, 25, '工作流程', 'workflow', 1, 0, NULL, 0, 2, 1, 0, NULL, NULL, NULL);
INSERT INTO `menu` VALUES (43, 42, 15, 16, '我的流程', 'workflow/workflow/index', 1, 0, '', 0, 1, 1, 0, '', '', NULL);
INSERT INTO `menu` VALUES (44, 42, 19, 20, '流程查询', 'workflow/workflow/monitor', 1, 0, '', 0, 3, 1, 0, '', '', NULL);
INSERT INTO `menu` VALUES (45, 42, 21, 22, '工作效率', 'workflow/monitor/summary', 1, 0, '', 0, 4, 1, 0, '', '', NULL);
INSERT INTO `menu` VALUES (48, 1324, 223, 224, '流程类别', 'workflow/category/index', 1, 0, NULL, 0, 6, 1, 0, NULL, NULL, NULL);
INSERT INTO `menu` VALUES (50, 42, 23, 24, '流程设计', 'workflow/design/index', 1, 0, '', 0, 5, 1, 0, '', '', NULL);
INSERT INTO `menu` VALUES (57, 41, 12, 13, '日程管理', 'calendar/calendar/index', 1, 0, NULL, 0, 0, 1, 0, NULL, NULL, NULL);
INSERT INTO `menu` VALUES (60, 41, 32, 33, '工作文件', 'file/file/index', 1, 0, NULL, 0, 8, 1, 0, NULL, NULL, NULL);
INSERT INTO `menu` VALUES (61, 5, 6, 7, '证照列表', 'file/certificate/index', 1, 0, NULL, 0, 3, 1, 0, NULL, NULL, NULL);
@ -2484,7 +2466,6 @@ INSERT INTO `menu` VALUES (185, 169, 234, 235, '枚举管理', 'system/option/in
INSERT INTO `menu` VALUES (189, 233, 158, 159, '其他入库列表', 'stock/record08/index', 1, 0, '', 0, 6, 1, 0, '', '', NULL);
INSERT INTO `menu` VALUES (194, 285, 103, 104, '销售组', 'customer/region/index', 1, 0, NULL, 0, 5, 1, 0, NULL, NULL, NULL);
INSERT INTO `menu` VALUES (197, 0, 85, 106, '客户', 'customer', 1, 0, NULL, 0, 8, 1, 0, 'fa-users', '#DDAA00', NULL);
INSERT INTO `menu` VALUES (199, 42, 17, 18, '工作统计', 'workflow/workflow/query', 1, 0, '', 0, 2, 1, 0, '', '', NULL);
INSERT INTO `menu` VALUES (206, 130, 120, 121, '进店列表', 'approach/approach/index', 1, 0, NULL, 0, 1, 1, 0, NULL, NULL, NULL);
INSERT INTO `menu` VALUES (224, 41, 34, 35, '项目管理', 'project/project/index', 1, 0, '', 0, 255, 1, 0, '', '', NULL);
INSERT INTO `menu` VALUES (233, 0, 145, 190, '库存', 'stock', 1, 0, NULL, 0, 10, 1, 0, 'fa-database', '#CC00FF', NULL);
@ -4176,7 +4157,7 @@ CREATE TABLE `model_run` (
INDEX `idx_flow_run_app_id`(`bill_id`) USING BTREE,
INDEX `idx_flow_run_partner_id`(`partner_id`) USING BTREE,
INDEX `idx_flow_run_partner_type`(`partner_type`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of model_run
@ -4219,7 +4200,7 @@ CREATE TABLE `model_run_log` (
INDEX `idx_flow_run_log_run_id`(`run_id`) USING BTREE,
INDEX `idx_flow_run_log_updated_id`(`updated_id`) USING BTREE,
INDEX `idx_flow_run_log_run_index`(`run_index`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 50 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 54 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of model_run_log
@ -4280,7 +4261,7 @@ CREATE TABLE `model_run_step` (
INDEX `idx_flow_run_step_step_id`(`step_id`) USING BTREE,
INDEX `idx_flow_run_step_permission_id`(`permission_id`) USING BTREE,
INDEX `idx_flow_run_step_run_id`(`run_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 191 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 197 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of model_run_step
@ -4365,6 +4346,7 @@ INSERT INTO `model_seq_no` VALUES (23, '20210315', 1);
INSERT INTO `model_seq_no` VALUES (23, '20210412', 1);
INSERT INTO `model_seq_no` VALUES (43, '20201023', 1);
INSERT INTO `model_seq_no` VALUES (43, '20210301', 1);
INSERT INTO `model_seq_no` VALUES (43, '20210526', 3);
INSERT INTO `model_seq_no` VALUES (46, '20201023', 1);
INSERT INTO `model_seq_no` VALUES (52, '2020', 1);
INSERT INTO `model_seq_no` VALUES (52, '2021', 1);
@ -4372,6 +4354,7 @@ INSERT INTO `model_seq_no` VALUES (55, '2020', 1);
INSERT INTO `model_seq_no` VALUES (55, '2021', 1);
INSERT INTO `model_seq_no` VALUES (57, '2021', 1);
INSERT INTO `model_seq_no` VALUES (59, '2020102310', 2);
INSERT INTO `model_seq_no` VALUES (59, '2021060710', 1);
INSERT INTO `model_seq_no` VALUES (61, '20201023', 2);
INSERT INTO `model_seq_no` VALUES (63, '20210228', 1);
INSERT INTO `model_seq_no` VALUES (65, '20210224', 1);
@ -4853,8 +4836,8 @@ CREATE TABLE `produce_data` (
DROP TABLE IF EXISTS `produce_plan`;
CREATE TABLE `produce_plan` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
`status` smallint(6) NOT NULL COMMENT '状态',
`sn` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '单据编号',
`status` smallint(6) NOT NULL DEFAULT 0 COMMENT '状态',
`created_at` int(11) NULL DEFAULT NULL COMMENT '创建时间',
`created_by` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人编号',
`updated_at` int(11) NULL DEFAULT NULL COMMENT '更新时间',
@ -4862,8 +4845,8 @@ CREATE TABLE `produce_plan` (
`created_id` int(11) NULL DEFAULT NULL COMMENT '创建人编号',
`updated_id` int(11) NULL DEFAULT NULL COMMENT '编辑人ID',
`date` date NULL DEFAULT NULL COMMENT '业务日期',
`sn` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '单据编号',
`type` tinyint(4) NULL DEFAULT NULL COMMENT '计划类型',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_produce_plan_date`(`date`) USING BTREE,
INDEX `idx_produce_plan_sn`(`sn`) USING BTREE,
@ -4980,7 +4963,7 @@ CREATE TABLE `product` (
-- ----------------------------
-- Records of product
-- ----------------------------
INSERT INTO `product` VALUES (1445, 20034, '爽口下饭菜', '270g*12瓶', 66.0000, 0.0000, 0.0000, 0.0000, NULL, 6.1200, '6937082282014', '105001', 0, 1, '', '', '系统管理员', 1614445824, NULL, 0, 0.0000, 103, 0, 0.00, NULL, 1, NULL, 0, 1, 1, 25, 0.0000, 0.0000, 0, '10', '10', 1, NULL, NULL, 0.0000, NULL, NULL);
INSERT INTO `product` VALUES (1445, 20034, '爽口下饭菜', '270g*12瓶', 66.0000, 0.0000, 0.0000, 0.0000, NULL, 6.1200, '6937082282014', '105001', 0, 1, '', '', '系统管理员', 1620951294, NULL, 0, 0.0000, 103, 0, 0.00, 'media/2021/03/20090156_srhu.png', 1, NULL, 0, 1, 1, 25, 0.0000, 0.0000, 0, '10', '10', 1, NULL, NULL, 0.0000, NULL, NULL);
INSERT INTO `product` VALUES (1446, 232, '学生下饭菜', '270g*12瓶', 66.0000, 0.0000, 0.0000, 0.0000, NULL, 6.1200, '6937082282021', '105002', 0, 1, '', '', '赖春萍', 1592270271, NULL, 0, 0.0000, 103, 0, 0.00, 'media/2020/06/16091647_nxne.png', 1, NULL, 0, 1, 1, 25, 0.0000, 0.0000, 0, '10', '10', 1, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `product` VALUES (1447, 232, '香辣萝卜', '270g*12瓶', 62.4000, 0.0000, 0.0000, 0.0000, NULL, 6.1200, '6937082282038', '105003', 255, 0, NULL, NULL, '甘小艳', 1586140853, NULL, 0, 6.1200, 103, 0, 0.00, NULL, 1, NULL, 0, 1, 1, 25, 0.0000, 0.0000, 0, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `product` VALUES (1448, 232, '黄花什锦', '270g*12瓶', 66.0000, 0.0000, 0.0000, 0.0000, NULL, 6.1200, '6937082282045', '105004', 0, 1, '', '', '赖春萍', 1592270342, NULL, 0, 0.0000, 103, 0, 0.00, 'media/2020/06/16091836_ewte.png', 1, NULL, 0, 1, 1, 25, 0.0000, 0.0000, 0, '10', '10', 1, NULL, NULL, NULL, NULL, NULL);
@ -10432,13 +10415,13 @@ CREATE TABLE `stock_delivery` (
INDEX `idx_stock_delivery_tax_type`(`tax_type`) USING BTREE,
INDEX `idx_stock_delivery_type_id`(`type_id`) USING BTREE,
INDEX `idx_stock_delivery_print_master_id`(`print_master_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of stock_delivery
-- ----------------------------
INSERT INTO `stock_delivery` VALUES (1, 1, 1, '系统管理员', 1615309945, 'FHDJ202010230001', 1603464188, '系统管理员', NULL, 42, '2021-02-25', 1, 1, '111', '11', '11', '111', '回单付,送货', 1, 1, 2.00, 0.00, 0.0, 0.0, 29, NULL, 0.00, 0.00, '02861791099', 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL, '系统管理员', '2021-03-10 01:12:25', 1, 1, NULL);
INSERT INTO `stock_delivery` VALUES (2, 1, 0, '系统管理员', 1615759533, 'FHDJ202103010001', 1614539765, '系统管理员', NULL, NULL, '2021-03-01', 1, 4, '111222', '11', '11', '111', '回单付,送货', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, NULL);
INSERT INTO `stock_delivery` VALUES (2, 1, 0, '系统管理员', 1623072215, 'FHDJ202103010001', 1614539765, '系统管理员', NULL, NULL, '2021-03-01', 1, 4, '111222', '11', '11', '111', '回单付,送货', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, NULL);
-- ----------------------------
-- Table structure for stock_delivery_data
@ -10496,14 +10479,14 @@ CREATE TABLE `stock_delivery_data` (
INDEX `idx_stock_delivery_data_sample_data_id`(`sample_data_id`) USING BTREE,
INDEX `idx_stock_delivery_data_fee_src_type_id`(`fee_src_type_id`) USING BTREE,
INDEX `idx_stock_delivery_data_promotion_data_id`(`promotion_data_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of stock_delivery_data
-- ----------------------------
INSERT INTO `stock_delivery_data` VALUES (1, 1, 20409, 92.00, NULL, NULL, '系统管理员', 1614192380, 1603464188, '系统管理员', 2.00, 184.00, 1, 7.20, NULL, NULL, NULL, NULL, '210225123', '2021-02-25', 0.00, 14.40, 139, NULL, NULL, NULL, 1, 1, '99', '小菜', NULL, NULL, NULL, NULL, NULL);
INSERT INTO `stock_delivery_data` VALUES (2, 1, 20410, 50.00, NULL, NULL, '系统管理员', 1614192380, 1614192227, '系统管理员', 10.00, 500.00, 1, 7.20, NULL, NULL, NULL, NULL, '210225123', '2021-02-25', 0.00, 72.00, 139, NULL, NULL, NULL, 1, 1, '99', '小菜', NULL, NULL, NULL, NULL, NULL);
INSERT INTO `stock_delivery_data` VALUES (3, 2, 20410, 92.00, NULL, NULL, '系统管理员', 1615759533, 1614539765, '系统管理员', 0.00, 0.00, 1, 7.20, NULL, NULL, NULL, NULL, '210225123', '2021-02-25', 0.00, 0.00, 139, NULL, NULL, NULL, 1, 1, '99', '小菜', NULL, NULL, NULL, NULL, NULL);
INSERT INTO `stock_delivery_data` VALUES (3, 2, 20410, 92.00, NULL, NULL, '系统管理员', 1623072215, 1614539765, '系统管理员', 5.00, 460.00, 1, 7.20, NULL, NULL, NULL, NULL, '210225123', '2021-02-25', 0.00, 36.00, 139, NULL, NULL, NULL, 1, 1, '99', '小菜', NULL, NULL, NULL, NULL, NULL);
-- ----------------------------
-- Table structure for stock_direct
@ -10851,13 +10834,14 @@ CREATE TABLE `stock_record10` (
INDEX `idx_stock_record10_status`(`status`) USING BTREE,
INDEX `idx_stock_record10_type_id`(`type_id`) USING BTREE,
INDEX `idx_stock_record10_warehouse_id`(`warehouse_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '库存主表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '库存主表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of stock_record10
-- ----------------------------
INSERT INTO `stock_record10` VALUES (1, '20201023100001', 0, 139, NULL, NULL, 1603462920, '系统管理员', 1, 1614191943, '系统管理员', 1, '一车间', 33, '2021-02-25');
INSERT INTO `stock_record10` VALUES (2, '20201023100002', 0, 139, NULL, NULL, 1603463280, '系统管理员', 1, 1614508667, '系统管理员', 1, '一车间', 33, '2021-02-25');
INSERT INTO `stock_record10` VALUES (2, '20201023100002', 0, 139, NULL, NULL, 1603463280, '系统管理员', 1, 1622042017, '系统管理员', 1, '一车间', 33, '2021-02-25');
INSERT INTO `stock_record10` VALUES (3, '20210607100001', 0, 139, NULL, NULL, 1623072420, '系统管理员', 1, NULL, NULL, NULL, '一车间', 33, '2021-06-07');
-- ----------------------------
-- Table structure for stock_record10_data
@ -10884,13 +10868,14 @@ CREATE TABLE `stock_record10_data` (
INDEX `idx_stock_record10_data_record10_id`(`record10_id`) USING BTREE,
INDEX `idx_stock_record10_data_poscode`(`poscode`) USING BTREE,
INDEX `idx_stock_record10_data_posname`(`posname`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '库存主表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '库存主表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of stock_record10_data
-- ----------------------------
INSERT INTO `stock_record10_data` VALUES (1, 1, '210225123', 20410, '2021-02-25', 30.00, 1603462972, '系统管理员', 1, 1614191943, '系统管理员', 1, '99', '小菜');
INSERT INTO `stock_record10_data` VALUES (2, 2, '210225123', 20409, '2021-02-25', 100.00, 1603463323, '系统管理员', 1, 1614508667, '系统管理员', 1, '99', '小菜');
INSERT INTO `stock_record10_data` VALUES (2, 2, '210225123', 20409, '2021-02-25', 200.00, 1603463323, '系统管理员', 1, 1622042017, '系统管理员', 1, '99', '小菜');
INSERT INTO `stock_record10_data` VALUES (3, 3, '202112345', 20409, '2021-09-12', 15.00, 1623072438, '系统管理员', 1, NULL, NULL, NULL, '99', '小菜');
-- ----------------------------
-- Table structure for stock_record11
@ -11068,7 +11053,7 @@ CREATE TABLE `system_log` (
`type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '日志类型',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_action_log_created_id`(`created_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 33 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 36 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of system_log
@ -11140,7 +11125,7 @@ CREATE TABLE `user` (
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, 'admin', '系统管理员', 20, 1, 3, 0, 0, 1, 0, '', 0, NULL, '2SJd2T4h34v7MIO9lEDedEboMkDr1D3Tog2K5OYr7MvtFLi8YnX8gNr5iqRD', 1, 1, '2020-10-05', 0, '', '', 3, '028-12345678', '', '', '24', '', 1, '$2y$10$DFN0jlZa0x3IGcZAkolJTuYMnJpOnX78L9XG2Q5N2Y32FuAST8UwO', '123456', 'fvzone@qq.com', 0, '0', 0, 'blue2', '系统管理员', 1620470034, 0, '', 0, NULL, '', '15182223008', 24);
INSERT INTO `user` VALUES (1, 'admin', '系统管理员', 20, 1, 3, 0, 0, 1, 0, '', 0, NULL, 't6qmROtfrFLzlpJ5xu3OPPVhcvHq5o666KYQysVQXLj3XejBVjBJtGkKKEsx', 1, 1, '2020-10-05', 0, '', '', 3, '028-12345678', '', '', '24', '', 1, '$2y$10$DFN0jlZa0x3IGcZAkolJTuYMnJpOnX78L9XG2Q5N2Y32FuAST8UwO', '123456', 'fvzone@qq.com', 0, '0', 0, 'blue2', '系统管理员', 1620589699, 0, '', 0, NULL, '', '15182223008', 24);
INSERT INTO `user` VALUES (2, '01001', '王二小食品有限公司', 1, 2, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1594147787, '系统管理员', NULL, NULL, '系统管理员', 1615757797, NULL, NULL, 1, NULL, NULL, '213', NULL);
INSERT INTO `user` VALUES (3, 'zhaoyun', '赵云', 3, 1, 0, NULL, NULL, 1, NULL, NULL, NULL, NULL, 'jzzOIclqiE5180Lj27Ir8fEkP7THFHhHKDuzj8IlYWd8025ROeDJRCflDZAs', 0, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, '$2y$10$qkonB.DXNaXvAzNQinz9UeXLAmIybudyYCN4FWiTf6JyeQk4BXT8W', '123456', NULL, 1601234908, '系统管理员', NULL, 'blue2', '系统管理员', 1613464164, NULL, NULL, 1, NULL, NULL, '15182223008', 0);
INSERT INTO `user` VALUES (4, '关羽', '关羽', 19, 83, 0, NULL, NULL, 1, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, '$2y$10$a/sqD3GeTkC5UkB4BDyOvu67uQIoGm1sRLVS5TFyQsePC0qm0cT8m', '123456', NULL, 1601369401, '系统管理员', NULL, NULL, '系统管理员', 1614397204, NULL, NULL, 1, NULL, NULL, '15182223008', 0);
@ -11385,7 +11370,7 @@ CREATE TABLE `user_widget` (
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_user_id`(`user_id`) USING BTREE,
INDEX `idx_node_id`(`node_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 34 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 36 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of user_widget
@ -11393,7 +11378,7 @@ CREATE TABLE `user_widget` (
INSERT INTO `user_widget` VALUES (1, 1, '待办事项', 1, 'default', NULL, NULL, 'fa-ambulance', '8', 1, NULL, 1, 34, NULL);
INSERT INTO `user_widget` VALUES (2, 1, '待办流程', 2, 'info', NULL, NULL, 'fa-pencil', '8', 1, NULL, 1, 2, NULL);
INSERT INTO `user_widget` VALUES (3, 1, '订单统计', 3, 'info', NULL, NULL, 'fa-file-text', '4', 1, NULL, 1, 1, NULL);
INSERT INTO `user_widget` VALUES (4, 1, '明日预计到货', 4, 'info', NULL, NULL, 'fa-lightbulb', '4', 1, NULL, 1, 4, NULL);
INSERT INTO `user_widget` VALUES (4, 1, '明日预计到货', 5, 'info', NULL, NULL, 'fa-lightbulb', '4', 1, NULL, 1, 4, NULL);
INSERT INTO `user_widget` VALUES (5, 1, '项目任务', 1, '#23b7e5', NULL, NULL, 'fa-cubes', '', 2, NULL, 1, 3, '{\"permission\":\"department\",\"date\":\"year\"}');
INSERT INTO `user_widget` VALUES (18, 1, '未读公告', 2, '#7266ba', NULL, NULL, 'fa-bell-o', NULL, 2, NULL, 1, 44, '{\"permission\":\"department\",\"date\":\"month\"}');
INSERT INTO `user_widget` VALUES (21, 1, '新闻公告', 1, '#0066FF', 'article/article/index', NULL, 'fa-bell-o', NULL, 3, NULL, NULL, 6, NULL);
@ -11409,6 +11394,8 @@ INSERT INTO `user_widget` VALUES (30, 8, '待办事项', 1, 'default', NULL, NUL
INSERT INTO `user_widget` VALUES (31, 8, '待办流程', 2, 'info', NULL, NULL, 'fa-pencil', '4', 1, NULL, 1, 2, NULL);
INSERT INTO `user_widget` VALUES (32, 8, '项目任务', 1, 'info', NULL, NULL, 'fa-cubes', NULL, 2, NULL, 1, 3, NULL);
INSERT INTO `user_widget` VALUES (33, 8, '新增公告', 2, 'primary', NULL, NULL, 'fa-bell-o', NULL, 2, NULL, 1, 44, NULL);
INSERT INTO `user_widget` VALUES (34, 1, '客户生日', 2, 'info', NULL, NULL, 'fa-email', '8', 1, NULL, 1, 25, NULL);
INSERT INTO `user_widget` VALUES (35, 1, '最新公告', 4, 'info', NULL, NULL, 'fa-sound_none', '4', 1, NULL, 1, 5, NULL);
-- ----------------------------
-- Table structure for warehouse
@ -11718,11 +11705,10 @@ CREATE TABLE `widget` (
-- Records of widget
-- ----------------------------
INSERT INTO `widget` VALUES (1, '订单统计', 'info', 1, 2, 'order/widget/index', 'order/order/index', 'd27,d28,d3,d6,d9,d1,d17,d20,d18,d21,d2,d16,d11,d4,d7,d19,d10', '运营采购部,原辅料采购部,采购部,公共关系部,技术中心,董事办,营销中心,销售部,客服部,市场部,财务部,生产部,品管部,仓储物流部,国际贸易部,网络营销部,研发部', 1, 1, 'fa-file-text', '系统管理员', 1613203955, NULL, NULL, 1, NULL, 'widget_order_index', 4);
INSERT INTO `widget` VALUES (2, '待办流程', 'info', 1, 3, 'workflow/widget/index', 'workflow/workflow/index', 'all', '全体人员', 1, 1, 'fa-pencil', '系统管理员', 1613204874, NULL, NULL, 1, NULL, 'widget_workflow_todo', 8);
INSERT INTO `widget` VALUES (3, '项目任务', 'info', 2, 10, 'project/widget/info', 'project/project/index', 'all', '全体人员', 1, 1, 'fa-cubes', '系统管理员', 1613209678, NULL, NULL, 1, NULL, 'info_project_task', NULL);
INSERT INTO `widget` VALUES (4, '明日预计到货', 'info', 1, 4, 'order/widget/goods', 'order/order/delivery', 'd27,d28,d3,d9,d1,d20,d18,d21,d2,d16,d11,d4,d7,d19,d10', '运营采购部,原辅料采购部,采购部,技术中心,董事办,销售部,客服部,市场部,财务部,生产部,品管部,仓储物流部,国际贸易部,网络营销部,研发部', 1, 1, 'fa-lightbulb', '系统管理员', 1613203955, NULL, NULL, 1, NULL, 'widget_order_goods', 4);
INSERT INTO `widget` VALUES (5, '最新公告', 'info', 1, 5, 'article/widget/index', 'article/article/index', 'all', '全体人员', 0, 0, 'fa-sound_none', '系统管理员', 1613204874, NULL, NULL, 1, NULL, 'widget_article_index', 8);
INSERT INTO `widget` VALUES (25, '客户生日', 'info', 1, 9, 'customer/widget/birthday', 'customer/customer/birthday', 'all', '全体人员', 0, 1, 'fa-email', '系统管理员', 1613204874, NULL, NULL, 1, NULL, 'widget_customer_birthday', 8);
INSERT INTO `widget` VALUES (5, '最新公告', 'info', 1, 5, 'article/widget/index', 'article/article/index', 'all', '全体人员', 1, 1, 'fa-sound_none', '系统管理员', 1623146465, NULL, NULL, 1, NULL, 'widget_article_index', 8);
INSERT INTO `widget` VALUES (25, '客户生日', 'info', 1, 9, 'customer/widget/birthday', 'customer/customer/birthday', 'all', '全体人员', 1, 1, 'fa-email', '系统管理员', 1623146458, NULL, NULL, 1, NULL, 'widget_customer_birthday', 8);
INSERT INTO `widget` VALUES (34, '待办事项', 'default', 1, 0, 'model/todo/widget', 'model/todo/index', 'all', '全体人员', 1, 1, NULL, '系统管理员', 1613203955, NULL, NULL, 1, NULL, 'widget_model_todo', 8);
INSERT INTO `widget` VALUES (44, '新增公告', 'primary', 2, 10, 'article/widget/info', 'article/article/index', 'all', '全体人员', 1, 1, 'fa-bell-o', '系统管理员', 1613209050, NULL, NULL, 1, NULL, 'info_article_index', NULL);