Переглянути джерело

Wesmiler 拾光销售 初始化

APPLE 3 роки тому
батько
коміт
26a563b884
17 змінених файлів з 23214 додано та 0 видалено
  1. 48 0
      .env.example
  2. 53 0
      artisan
  3. 68 0
      composer.json
  4. 8062 0
      composer.lock
  5. 9906 0
      package-lock.json
  6. 19 0
      package.json
  7. 31 0
      phpunit.xml
  8. 16 0
      public/install/evl8.pro.conf
  9. 4757 0
      public/install/laravel.vue.pro.sql
  10. 2 0
      public/uploads/.gitignore
  11. 27 0
      routes/api.php
  12. 18 0
      routes/channels.php
  13. 19 0
      routes/console.php
  14. 143 0
      routes/web.php
  15. 21 0
      server.php
  16. 7 0
      vendor/autoload.php
  17. 17 0
      webpack.mix.js

+ 48 - 0
.env.example

@@ -0,0 +1,48 @@
+APP_NAME=Laravel
+APP_ENV=local
+APP_KEY=
+APP_DEBUG=true
+APP_URL=http://localhost
+
+LOG_CHANNEL=stack
+LOG_LEVEL=debug
+
+DB_CONNECTION=mysql
+DB_HOST=127.0.0.1
+DB_PORT=3306
+DB_DATABASE=blog
+DB_USERNAME=root
+DB_PASSWORD=
+DB_PREFIX=
+
+BROADCAST_DRIVER=log
+CACHE_DRIVER=file
+QUEUE_CONNECTION=sync
+SESSION_DRIVER=file
+SESSION_LIFETIME=120
+
+REDIS_HOST=127.0.0.1
+REDIS_PASSWORD=null
+REDIS_PORT=6379
+
+MAIL_MAILER=smtp
+MAIL_HOST=smtp.mailtrap.io
+MAIL_PORT=2525
+MAIL_USERNAME=null
+MAIL_PASSWORD=null
+MAIL_ENCRYPTION=null
+MAIL_FROM_ADDRESS=null
+MAIL_FROM_NAME="${APP_NAME}"
+
+AWS_ACCESS_KEY_ID=
+AWS_SECRET_ACCESS_KEY=
+AWS_DEFAULT_REGION=us-east-1
+AWS_BUCKET=
+
+PUSHER_APP_ID=
+PUSHER_APP_KEY=
+PUSHER_APP_SECRET=
+PUSHER_APP_CLUSTER=mt1
+
+MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
+MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

+ 53 - 0
artisan

@@ -0,0 +1,53 @@
+#!/usr/bin/env php
+<?php
+
+define('LARAVEL_START', microtime(true));
+
+/*
+|--------------------------------------------------------------------------
+| Register The Auto Loader
+|--------------------------------------------------------------------------
+|
+| Composer provides a convenient, automatically generated class loader
+| for our application. We just need to utilize it! We'll require it
+| into the script here so that we do not have to worry about the
+| loading of any our classes "manually". Feels great to relax.
+|
+*/
+
+require __DIR__.'/vendor/autoload.php';
+
+$app = require_once __DIR__.'/bootstrap/app.php';
+
+/*
+|--------------------------------------------------------------------------
+| Run The Artisan Application
+|--------------------------------------------------------------------------
+|
+| When we run the console application, the current CLI command will be
+| executed in this console and the response sent back to a terminal
+| or another output device for the developers. Here goes nothing!
+|
+*/
+
+$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
+
+$status = $kernel->handle(
+    $input = new Symfony\Component\Console\Input\ArgvInput,
+    new Symfony\Component\Console\Output\ConsoleOutput
+);
+
+/*
+|--------------------------------------------------------------------------
+| Shutdown The Application
+|--------------------------------------------------------------------------
+|
+| Once Artisan has finished running, we will fire off the shutdown events
+| so that any final work may be done by the application before we shut
+| down the process. This is the last thing to happen to the request.
+|
+*/
+
+$kernel->terminate($input, $status);
+
+exit($status);

+ 68 - 0
composer.json

@@ -0,0 +1,68 @@
+{
+    "name": "laravel/laravel",
+    "type": "project",
+    "description": "The Laravel Framework.",
+    "keywords": [
+        "framework",
+        "laravel"
+    ],
+    "license": "MIT",
+    "require": {
+        "php": "^7.3|^8.0",
+        "fideloper/proxy": "^4.4",
+        "fruitcake/laravel-cors": "^2.0",
+        "gregwar/captcha": "^1.1",
+        "guzzlehttp/guzzle": "^7.0.1",
+        "laravel/framework": "^8.12",
+        "laravel/tinker": "^2.5",
+        "maatwebsite/excel": "^3.1"
+    },
+    "require-dev": {
+        "facade/ignition": "^2.5",
+        "fakerphp/faker": "^1.9.1",
+        "mockery/mockery": "^1.4.2",
+        "nunomaduro/collision": "^5.0",
+        "phpunit/phpunit": "^9.3.3"
+    },
+    "config": {
+        "optimize-autoloader": true,
+        "preferred-install": "dist",
+        "sort-packages": true
+    },
+    "extra": {
+        "laravel": {
+            "dont-discover": []
+        }
+    },
+    "autoload": {
+        "psr-4": {
+            "App\\": "app/",
+            "Database\\Factories\\": "database/factories/",
+            "Database\\Seeders\\": "database/seeders/"
+        },
+        "files": [
+            "app/Helpers/common.php",
+            "app/Helpers/function.php",
+            "app/Helpers/constants.php"
+        ]
+    },
+    "autoload-dev": {
+        "psr-4": {
+            "Tests\\": "tests/"
+        }
+    },
+    "minimum-stability": "dev",
+    "prefer-stable": true,
+    "scripts": {
+        "post-autoload-dump": [
+            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
+            "@php artisan package:discover --ansi"
+        ],
+        "post-root-package-install": [
+            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
+        ],
+        "post-create-project-cmd": [
+            "@php artisan key:generate --ansi"
+        ]
+    }
+}

Різницю між файлами не показано, бо вона завелика
+ 8062 - 0
composer.lock


Різницю між файлами не показано, бо вона завелика
+ 9906 - 0
package-lock.json


+ 19 - 0
package.json

@@ -0,0 +1,19 @@
+{
+    "private": true,
+    "scripts": {
+        "dev": "npm run development",
+        "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --config=node_modules/laravel-mix/setup/webpack.config.js",
+        "watch": "npm run development -- --watch",
+        "watch-poll": "npm run watch -- --watch-poll",
+        "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --disable-host-check --config=node_modules/laravel-mix/setup/webpack.config.js",
+        "prod": "npm run production",
+        "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --config=node_modules/laravel-mix/setup/webpack.config.js"
+    },
+    "devDependencies": {
+        "axios": "^0.19",
+        "cross-env": "^7.0",
+        "laravel-mix": "^5.0.1",
+        "lodash": "^4.17.19",
+        "resolve-url-loader": "^3.1.0"
+    }
+}

+ 31 - 0
phpunit.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:noNamespaceSchemaLocation="./vendor/phpunit/phpunit/phpunit.xsd"
+         bootstrap="vendor/autoload.php"
+         colors="true"
+>
+    <testsuites>
+        <testsuite name="Unit">
+            <directory suffix="Test.php">./tests/Unit</directory>
+        </testsuite>
+        <testsuite name="Feature">
+            <directory suffix="Test.php">./tests/Feature</directory>
+        </testsuite>
+    </testsuites>
+    <coverage processUncoveredFiles="true">
+        <include>
+            <directory suffix=".php">./app</directory>
+        </include>
+    </coverage>
+    <php>
+        <server name="APP_ENV" value="testing"/>
+        <server name="BCRYPT_ROUNDS" value="4"/>
+        <server name="CACHE_DRIVER" value="array"/>
+        <!-- <server name="DB_CONNECTION" value="sqlite"/> -->
+        <!-- <server name="DB_DATABASE" value=":memory:"/> -->
+        <server name="MAIL_MAILER" value="array"/>
+        <server name="QUEUE_CONNECTION" value="sync"/>
+        <server name="SESSION_DRIVER" value="array"/>
+        <server name="TELESCOPE_ENABLED" value="false"/>
+    </php>
+</phpunit>

+ 16 - 0
public/install/evl8.pro.conf

@@ -0,0 +1,16 @@
+<VirtualHost *:80>
+    ServerAdmin zongjinlong@yunhengwang.com
+	ServerName evl8.pro
+	ServerAlias admin.evl8.pro
+    DocumentRoot "D:\sites\RXThinkCMF\RXThinkCMF_EVL8_PRO\public"
+    ErrorLog "logs/evl8.pro-error.log"
+    CustomLog "logs/evl8.pro-access.log" common
+</VirtualHost>
+
+<VirtualHost *:80>
+    ServerAdmin zongjinlong@yunhengwang.com
+	ServerName images.evl8.pro
+    DocumentRoot "D:\sites\RXThinkCMF\RXThinkCMF_EVL8_PRO\public\uploads"
+    ErrorLog "logs/evl8.pro-error.log"
+    CustomLog "logs/evl8.pro-access.log" common
+</VirtualHost>

Різницю між файлами не показано, бо вона завелика
+ 4757 - 0
public/install/laravel.vue.pro.sql


+ 2 - 0
public/uploads/.gitignore

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

+ 27 - 0
routes/api.php

@@ -0,0 +1,27 @@
+<?php
+
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Route;
+
+/*
+|--------------------------------------------------------------------------
+| API Routes
+|--------------------------------------------------------------------------
+|
+| Here is where you can register API routes for your application. These
+| routes are loaded by the RouteServiceProvider within a group which
+| is assigned the "api" middleware group. Enjoy building your API!
+|
+*/
+
+Route::middleware('auth:api')->get('/user', function (Request $request) {
+    return $request->user();
+});
+
+// 授权登陆
+Route::post('/login', [\App\Http\Controllers\Api\LoginController::class, 'login']);
+Route::post('/register', [\App\Http\Controllers\Api\LoginController::class, 'register']);
+Route::post('/sendmsm', [\App\Http\Controllers\Api\LoginController::class, 'sendmsm']);
+
+// 测试
+Route::match(['get','post'],'/test', [\App\Http\Controllers\Api\TestController::class, 'changeLang']);

+ 18 - 0
routes/channels.php

@@ -0,0 +1,18 @@
+<?php
+
+use Illuminate\Support\Facades\Broadcast;
+
+/*
+|--------------------------------------------------------------------------
+| Broadcast Channels
+|--------------------------------------------------------------------------
+|
+| Here you may register all of the event broadcasting channels that your
+| application supports. The given channel authorization callbacks are
+| used to check if an authenticated user can listen to the channel.
+|
+*/
+
+Broadcast::channel('App.Models.User.{id}', function ($user, $id) {
+    return (int) $user->id === (int) $id;
+});

+ 19 - 0
routes/console.php

@@ -0,0 +1,19 @@
+<?php
+
+use Illuminate\Foundation\Inspiring;
+use Illuminate\Support\Facades\Artisan;
+
+/*
+|--------------------------------------------------------------------------
+| Console Routes
+|--------------------------------------------------------------------------
+|
+| This file is where you may define all of your Closure based console
+| commands. Each Closure is bound to a command instance allowing a
+| simple approach to interacting with each command's IO methods.
+|
+*/
+
+Artisan::command('inspire', function () {
+    $this->comment(Inspiring::quote());
+})->purpose('Display an inspiring quote');

+ 143 - 0
routes/web.php

@@ -0,0 +1,143 @@
+<?php
+// +----------------------------------------------------------------------
+// | LARAVEL8.0 框架 [ LARAVEL ][ RXThinkCMF ]
+// +----------------------------------------------------------------------
+// | 版权所有 2017~2021 LARAVEL研发中心
+// +----------------------------------------------------------------------
+// | 官方网站: http://www.laravel.cn
+// +----------------------------------------------------------------------
+// | Author: laravel开发员 <laravel.qq.com>
+// +----------------------------------------------------------------------
+
+use App\Http\Controllers\Admin\ActionLogController;
+use App\Http\Controllers\Admin\AdController;
+use App\Http\Controllers\Admin\AdSortController;
+use App\Http\Controllers\Admin\CityController;
+use App\Http\Controllers\Admin\ConfigController;
+use App\Http\Controllers\Admin\ConfigGroupController;
+use App\Http\Controllers\Admin\IndexController;
+use App\Http\Controllers\Admin\LayoutController;
+use App\Http\Controllers\Admin\LoginLogController;
+use App\Http\Controllers\Admin\MemberController;
+use App\Http\Controllers\Admin\MemberLevelController;
+use App\Http\Controllers\Admin\MenuController;
+use App\Http\Controllers\Admin\NoticeController;
+use App\Http\Controllers\Admin\PositionController;
+use App\Http\Controllers\Admin\RoleController;
+use App\Http\Controllers\Admin\UploadController;
+use App\Http\Controllers\Admin\UserController;
+use Illuminate\Support\Facades\Route;
+use App\Http\Controllers\Admin\LoginController;
+
+/*
+|--------------------------------------------------------------------------
+| Web Routes
+|--------------------------------------------------------------------------
+|
+| Here is where you can register web routes for your application. These
+| routes are loaded by the RouteServiceProvider within a group which
+| contains the "web" middleware group. Now create something great!
+|
+*/
+
+Route::get('/', function () {
+    return message('1005','403');
+});
+
+// 上传文件
+Route::post('/upload/uploadImage', [UploadController::class, 'uploadImage']);
+
+// 系统登录
+Route::get('/captcha', [LoginController::class, 'captcha'])->name('captcha');
+Route::post('/login', [LoginController::class, 'login']);
+Route::get('/logout', [LoginController::class, 'logout']);
+
+// 系统主页
+Route::get('/index/getMenuList', [IndexController::class, 'getMenuList']);
+Route::get('/index/getUserInfo', [IndexController::class, 'getUserInfo']);
+Route::post('/index/updateUserInfo', [IndexController::class, 'updateUserInfo']);
+Route::post('/index/updatePwd', [IndexController::class, 'updatePwd']);
+
+// 用户管理
+Route::get('/user/index', [UserController::class, 'index']);
+Route::get('/user/info', [UserController::class, 'info']);
+Route::post('/user/edit', [UserController::class, 'edit']);
+Route::post('/user/delete', [UserController::class, 'delete']);
+Route::post('/user/status', [UserController::class, 'status']);
+Route::post('/user/resetPwd', [UserController::class, 'resetPwd']);
+
+// 角色管理
+Route::get('/role/index', [RoleController::class, 'index']);
+Route::get('/role/info', [RoleController::class, 'info']);
+Route::post('/role/edit', [RoleController::class, 'edit']);
+Route::post('/role/delete', [RoleController::class, 'delete']);
+Route::get('/role/getRoleList', [RoleController::class, 'getRoleList']);
+Route::get('/role/getPermissionList', [RoleController::class, 'getPermissionList']);
+Route::post('/role/savePermission', [RoleController::class, 'savePermission']);
+
+// 菜单管理
+Route::get('/menu/index', [MenuController::class, 'index']);
+Route::get('/menu/info', [MenuController::class, 'info']);
+Route::post('/menu/edit', [MenuController::class, 'edit']);
+Route::post('/menu/delete', [MenuController::class, 'delete']);
+
+// 部门管理
+Route::get('/city/index', [CityController::class, 'index']);
+Route::get('/city/info', [CityController::class, 'info']);
+Route::post('/city/edit', [CityController::class, 'edit']);
+Route::post('/city/delete', [CityController::class, 'delete']);
+
+// 配置分组管理
+Route::get('/configgroup/index', [ConfigGroupController::class, 'index']);
+Route::get('/configgroup/info', [ConfigGroupController::class, 'info']);
+Route::post('/configgroup/edit', [ConfigGroupController::class, 'edit']);
+Route::post('/configgroup/delete', [ConfigGroupController::class, 'delete']);
+
+// 配置管理
+Route::get('/config/index', [ConfigController::class, 'index']);
+Route::get('/config/info', [ConfigController::class, 'info']);
+Route::post('/config/edit', [ConfigController::class, 'edit']);
+Route::post('/config/delete', [ConfigController::class, 'delete']);
+
+// 通知公告管理
+Route::get('/notice/index', [NoticeController::class, 'index']);
+Route::get('/notice/info', [NoticeController::class, 'info']);
+Route::post('/notice/edit', [NoticeController::class, 'edit']);
+Route::post('/notice/delete', [NoticeController::class, 'delete']);
+Route::post('/notice/status', [NoticeController::class, 'status']);
+Route::post('/notice/setIsTop', [NoticeController::class, 'setIsTop']);
+
+// 广告位管理
+Route::get('/adsort/index', [AdSortController::class, 'index']);
+Route::get('/adsort/info', [AdSortController::class, 'info']);
+Route::post('/adsort/edit', [AdSortController::class, 'edit']);
+Route::post('/adsort/delete', [AdSortController::class, 'delete']);
+Route::get('/adsort/getAdSortList', [AdSortController::class, 'getAdSortList']);
+
+// 广告管理
+Route::get('/ad/index', [AdController::class, 'index']);
+Route::get('/ad/info', [AdController::class, 'info']);
+Route::post('/ad/edit', [AdController::class, 'edit']);
+Route::post('/ad/delete', [AdController::class, 'delete']);
+
+// 会员等级
+Route::get('/memberlevel/index', [MemberLevelController::class, 'index']);
+Route::get('/memberlevel/info', [MemberLevelController::class, 'info']);
+Route::post('/memberlevel/edit', [MemberLevelController::class, 'edit']);
+Route::post('/memberlevel/delete', [MemberLevelController::class, 'delete']);
+Route::get('/memberlevel/getMemberLevelList', [MemberLevelController::class, 'getMemberLevelList']);
+
+// 会员管理
+Route::get('/member/index', [MemberController::class, 'index']);
+Route::get('/member/info', [MemberController::class, 'info']);
+Route::post('/member/edit', [MemberController::class, 'edit']);
+Route::post('/member/delete', [MemberController::class, 'delete']);
+Route::post('/member/status', [MemberController::class, 'status']);
+
+// 登录日志
+Route::get('/loginlog/index', [LoginLogController::class, 'index']);
+Route::post('/loginlog/delete', [LoginLogController::class, 'delete']);
+
+// 操作日志
+Route::get('/actionlog/index', [ActionLogController::class, 'index']);
+Route::post('/actionlog/delete', [ActionLogController::class, 'delete']);

+ 21 - 0
server.php

@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * Laravel - A PHP Framework For Web Artisans
+ *
+ * @package  Laravel
+ * @author   Taylor Otwell <taylor@laravel.com>
+ */
+
+$uri = urldecode(
+    parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
+);
+
+// This file allows us to emulate Apache's "mod_rewrite" functionality from the
+// built-in PHP web server. This provides a convenient way to test a Laravel
+// application without having installed a "real" web server software here.
+if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
+    return false;
+}
+
+require_once __DIR__.'/public/index.php';

+ 7 - 0
vendor/autoload.php

@@ -0,0 +1,7 @@
+<?php
+
+// autoload.php @generated by Composer
+
+require_once __DIR__ . '/composer/autoload_real.php';
+
+return ComposerAutoloaderInit1a9b1e9644d804e0a8b273eb5675a9b4::getLoader();

+ 17 - 0
webpack.mix.js

@@ -0,0 +1,17 @@
+const mix = require('laravel-mix');
+
+/*
+ |--------------------------------------------------------------------------
+ | Mix Asset Management
+ |--------------------------------------------------------------------------
+ |
+ | Mix provides a clean, fluent API for defining some Webpack build steps
+ | for your Laravel applications. By default, we are compiling the CSS
+ | file for the application as well as bundling up all the JS files.
+ |
+ */
+
+mix.js('resources/js/app.js', 'public/js')
+    .postCss('resources/css/app.css', 'public/css', [
+        //
+    ]);