parent
1595b738fa
commit
6ed285e231
@ -0,0 +1,25 @@ |
|||||||
|
<?php |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ] |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved. |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Author: CRMEB Team <admin@crmeb.com> |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
namespace app\common\dao\store; |
||||||
|
|
||||||
|
use app\common\dao\BaseDao; |
||||||
|
use app\common\model\store\Deposit; |
||||||
|
|
||||||
|
class DepositDao extends BaseDao |
||||||
|
{ |
||||||
|
|
||||||
|
|
||||||
|
protected function getModel(): string |
||||||
|
{ |
||||||
|
return Deposit::class; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
<?php |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ] |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved. |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Author: CRMEB Team <admin@crmeb.com> |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
namespace app\common\dao\store; |
||||||
|
|
||||||
|
use app\common\dao\BaseDao; |
||||||
|
use app\common\model\store\Lottery; |
||||||
|
|
||||||
|
class LotteryDao extends BaseDao |
||||||
|
{ |
||||||
|
|
||||||
|
|
||||||
|
protected function getModel(): string |
||||||
|
{ |
||||||
|
return Lottery::class; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,30 @@ |
|||||||
|
<?php |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ] |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved. |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Author: CRMEB Team <admin@crmeb.com> |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
namespace app\common\model\store; |
||||||
|
|
||||||
|
use app\common\model\BaseModel; |
||||||
|
|
||||||
|
|
||||||
|
class Deposit extends BaseModel |
||||||
|
{ |
||||||
|
|
||||||
|
public static function tablePk(): string |
||||||
|
{ |
||||||
|
return 'id'; |
||||||
|
} |
||||||
|
|
||||||
|
public static function tableName(): string |
||||||
|
{ |
||||||
|
return 'deposit'; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,30 @@ |
|||||||
|
<?php |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ] |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved. |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Author: CRMEB Team <admin@crmeb.com> |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
namespace app\common\model\store; |
||||||
|
|
||||||
|
use app\common\model\BaseModel; |
||||||
|
|
||||||
|
|
||||||
|
class Lottery extends BaseModel |
||||||
|
{ |
||||||
|
|
||||||
|
public static function tablePk(): string |
||||||
|
{ |
||||||
|
return 'id'; |
||||||
|
} |
||||||
|
|
||||||
|
public static function tableName(): string |
||||||
|
{ |
||||||
|
return 'lottery'; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,109 @@ |
|||||||
|
<?php |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ] |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved. |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Author: CRMEB Team <admin@crmeb.com> |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
namespace app\common\repositories\store; |
||||||
|
|
||||||
|
use app\common\dao\store\DepositDao; |
||||||
|
use app\common\dao\store\GuaranteeDao; |
||||||
|
use app\common\repositories\BaseRepository; |
||||||
|
use app\common\repositories\store\product\ProductRepository; |
||||||
|
use FormBuilder\Factory\Elm; |
||||||
|
use think\facade\Route; |
||||||
|
|
||||||
|
class DepositRepository extends BaseRepository |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @var GuaranteeDao |
||||||
|
*/ |
||||||
|
protected $dao; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* GuaranteeRepository constructor. |
||||||
|
* @param DepositDao $dao |
||||||
|
*/ |
||||||
|
public function __construct(DepositDao $dao) |
||||||
|
{ |
||||||
|
$this->dao = $dao; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* TODO 平台列表 |
||||||
|
* @param $where |
||||||
|
* @param $page |
||||||
|
* @param $limit |
||||||
|
* @return array |
||||||
|
* @author Qinii |
||||||
|
* @day 5/17/21 |
||||||
|
*/ |
||||||
|
public function getList($where,$page, $limit) |
||||||
|
{ |
||||||
|
$query = $this->dao->getSearch($where)->order('id DESC'); |
||||||
|
$count = $query->count(); |
||||||
|
$list = $query->page($page,$limit)->select(); |
||||||
|
return compact('count','list'); |
||||||
|
} |
||||||
|
|
||||||
|
public function select(array $where) |
||||||
|
{ |
||||||
|
$list = $this->dao->getSearch($where)->field('guarantee_id,guarantee_name,guarantee_info,image')->order('sort DESC')->select(); |
||||||
|
return $list; |
||||||
|
} |
||||||
|
/** |
||||||
|
* TODO 添加form |
||||||
|
* @param int|null $id |
||||||
|
* @param array $formData |
||||||
|
* @return \FormBuilder\Form |
||||||
|
* @author Qinii |
||||||
|
* @day 5/17/21 |
||||||
|
*/ |
||||||
|
public function form($id = null,array $formData = []) |
||||||
|
{ |
||||||
|
$isCreate = is_null($id); |
||||||
|
$action = Route::buildUrl($isCreate ? 'systemDepositCreate' : 'systemDepositUpdate', $isCreate ? [] : compact('id'))->build(); |
||||||
|
return Elm::createForm($action, [ |
||||||
|
Elm::number('money', '预存金额:')->placeholder('请输入等级名称')->min(0)->required(), |
||||||
|
Elm::number('cycle', '周期:')->placeholder('请输入周期')->min(0)->required(), |
||||||
|
Elm::number('diamond', '赠送钻石/天:')->placeholder('请输入赠送钻石数')->min(0)->required(), |
||||||
|
Elm::number('diamond_max', '赠送最大钻石:')->placeholder('请输入赠送最大钻石数')->min(0)->required(), |
||||||
|
Elm::number('count', '名额:')->placeholder('请输入名额')->min(0)->required(), |
||||||
|
])->setTitle($isCreate ? '添加预存' : '编辑预存')->formData($formData); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* TODO 编辑form |
||||||
|
* @param $id |
||||||
|
* @return \FormBuilder\Form |
||||||
|
* @author Qinii |
||||||
|
* @day 5/17/21 |
||||||
|
*/ |
||||||
|
public function updateForm($id) |
||||||
|
{ |
||||||
|
$ret = $this->dao->get($id); |
||||||
|
return $this->form($id,$ret->toArray()); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* TODO 获取详情 |
||||||
|
* @param $id |
||||||
|
* @return array|\think\Model|null |
||||||
|
* @author Qinii |
||||||
|
* @day 5/17/21 |
||||||
|
*/ |
||||||
|
public function get($id) |
||||||
|
{ |
||||||
|
$where = [ |
||||||
|
$this->dao->getPk() => $id, |
||||||
|
'is_del' => 0, |
||||||
|
]; |
||||||
|
$ret = $this->dao->getWhere($where); |
||||||
|
return $ret; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,74 @@ |
|||||||
|
<?php |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ] |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved. |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Author: CRMEB Team <admin@crmeb.com> |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
namespace app\common\repositories\store; |
||||||
|
|
||||||
|
use app\common\dao\store\GuaranteeDao; |
||||||
|
use app\common\dao\store\LotteryDao; |
||||||
|
use app\common\repositories\BaseRepository; |
||||||
|
|
||||||
|
class LotteryRepository extends BaseRepository |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @var GuaranteeDao |
||||||
|
*/ |
||||||
|
protected $dao; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* GuaranteeRepository constructor. |
||||||
|
* @param LotteryDao $dao |
||||||
|
*/ |
||||||
|
public function __construct(LotteryDao $dao) |
||||||
|
{ |
||||||
|
$this->dao = $dao; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* TODO 平台列表 |
||||||
|
* @param $where |
||||||
|
* @param $page |
||||||
|
* @param $limit |
||||||
|
* @return array |
||||||
|
* @author Qinii |
||||||
|
* @day 5/17/21 |
||||||
|
*/ |
||||||
|
public function getList($where,$page, $limit) |
||||||
|
{ |
||||||
|
$query = $this->dao->getSearch($where)->order('sort DESC'); |
||||||
|
$count = $query->count(); |
||||||
|
$list = $query->page($page,$limit)->select(); |
||||||
|
return compact('count','list'); |
||||||
|
} |
||||||
|
|
||||||
|
public function select(array $where) |
||||||
|
{ |
||||||
|
$list = $this->dao->getSearch($where)->field('guarantee_id,guarantee_name,guarantee_info,image')->order('sort DESC')->select(); |
||||||
|
return $list; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* TODO 获取详情 |
||||||
|
* @param $id |
||||||
|
* @return array|\think\Model|null |
||||||
|
* @author Qinii |
||||||
|
* @day 5/17/21 |
||||||
|
*/ |
||||||
|
public function get($id) |
||||||
|
{ |
||||||
|
$where = [ |
||||||
|
$this->dao->getPk() => $id, |
||||||
|
'is_del' => 0, |
||||||
|
]; |
||||||
|
$ret = $this->dao->getWhere($where); |
||||||
|
return $ret; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,152 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ] |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved. |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Author: CRMEB Team <admin@crmeb.com> |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
|
||||||
|
|
||||||
|
namespace app\controller\admin\system; |
||||||
|
|
||||||
|
|
||||||
|
use app\common\repositories\store\DepositRepository; |
||||||
|
use app\validate\admin\DepositValidate; |
||||||
|
use crmeb\basic\BaseController; |
||||||
|
use FormBuilder\Exception\FormBuilderException; |
||||||
|
use think\App; |
||||||
|
use think\db\exception\DataNotFoundException; |
||||||
|
use think\db\exception\DbException; |
||||||
|
use think\db\exception\ModelNotFoundException; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class UserGroup |
||||||
|
* @package app\controller\admin\user |
||||||
|
* @author xaboy |
||||||
|
* @day 2020-05-07 |
||||||
|
*/ |
||||||
|
class Deposit extends BaseController |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @var DepositRepository |
||||||
|
*/ |
||||||
|
protected $repository; |
||||||
|
|
||||||
|
/** |
||||||
|
* UserGroup constructor. |
||||||
|
* @param App $app |
||||||
|
* @param DepositRepository $repository |
||||||
|
*/ |
||||||
|
public function __construct(App $app, DepositRepository $repository) |
||||||
|
{ |
||||||
|
parent::__construct($app); |
||||||
|
$this->repository = $repository; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @return mixed |
||||||
|
* @throws DataNotFoundException |
||||||
|
* @throws DbException |
||||||
|
* @throws ModelNotFoundException |
||||||
|
* @author xaboy |
||||||
|
* @day 2020-05-07 |
||||||
|
*/ |
||||||
|
public function lst() |
||||||
|
{ |
||||||
|
[$page, $limit] = $this->getPage(); |
||||||
|
return app('json')->success($this->repository->getList(['status' => 1], $page, $limit)); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @return mixed |
||||||
|
* @throws FormBuilderException |
||||||
|
* @author xaboy |
||||||
|
* @day 2020-05-07 |
||||||
|
*/ |
||||||
|
public function createForm() |
||||||
|
{ |
||||||
|
return app('json')->success(formToData($this->repository->form())); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @param DepositValidate $validate |
||||||
|
* @return mixed |
||||||
|
* @author xaboy |
||||||
|
* @day 2020-05-07 |
||||||
|
*/ |
||||||
|
public function create(DepositValidate $validate) |
||||||
|
{ |
||||||
|
$data = $this->checkParams($validate); |
||||||
|
$this->repository->create($data); |
||||||
|
|
||||||
|
return app('json')->success('添加成功'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @param $id |
||||||
|
* @return mixed |
||||||
|
* @throws DbException |
||||||
|
* @throws FormBuilderException |
||||||
|
* @throws DataNotFoundException |
||||||
|
* @throws ModelNotFoundException |
||||||
|
* @author xaboy |
||||||
|
* @day 2020-05-07 |
||||||
|
*/ |
||||||
|
public function updateForm($id) |
||||||
|
{ |
||||||
|
if (!$this->repository->exists($id)) |
||||||
|
return app('json')->fail('数据不存在'); |
||||||
|
return app('json')->success(formToData($this->repository->updateForm($id))); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @param $id |
||||||
|
* @param DepositValidate $validate |
||||||
|
* @return mixed |
||||||
|
* @throws DbException |
||||||
|
* @author xaboy |
||||||
|
* @day 2020-05-07 |
||||||
|
*/ |
||||||
|
public function update($id, DepositValidate $validate) |
||||||
|
{ |
||||||
|
$data = $this->checkParams($validate); |
||||||
|
if (!$this->repository->exists($id)) |
||||||
|
return app('json')->fail('数据不存在'); |
||||||
|
$this->repository->update($id, $data); |
||||||
|
|
||||||
|
return app('json')->success('编辑成功'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @param $id |
||||||
|
* @return mixed |
||||||
|
* @throws DbException |
||||||
|
* @author xaboy |
||||||
|
* @day 2020-05-07 |
||||||
|
*/ |
||||||
|
public function delete($id) |
||||||
|
{ |
||||||
|
if (!$this->repository->exists($id)) |
||||||
|
return app('json')->fail('数据不存在'); |
||||||
|
$this->repository->update($id, array('status' => 0)); |
||||||
|
|
||||||
|
return app('json')->success('删除成功'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @param DepositValidate $validate |
||||||
|
* @return array |
||||||
|
* @author xaboy |
||||||
|
* @day 2020-05-07 |
||||||
|
*/ |
||||||
|
protected function checkParams(DepositValidate $validate) |
||||||
|
{ |
||||||
|
$data = $this->request->params(['count','cycle', 'diamond', 'diamond_max', 'money']); |
||||||
|
$validate->check($data); |
||||||
|
return $data; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,106 @@ |
|||||||
|
<?php |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ] |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved. |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Author: CRMEB Team <admin@crmeb.com> |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
namespace app\controller\admin\system; |
||||||
|
|
||||||
|
use app\common\repositories\system\CacheRepository; |
||||||
|
use app\common\repositories\system\config\ConfigValueRepository; |
||||||
|
use crmeb\basic\BaseController; |
||||||
|
use crmeb\services\RedisCacheService; |
||||||
|
use think\App; |
||||||
|
use think\facade\Cache as BaseCache; |
||||||
|
|
||||||
|
class Lottery extends BaseController |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @var CacheRepository |
||||||
|
*/ |
||||||
|
protected $repository; |
||||||
|
|
||||||
|
/** |
||||||
|
* CacheRepository constructor. |
||||||
|
* @param App $app |
||||||
|
*/ |
||||||
|
public function __construct(App $app, CacheRepository $repository) |
||||||
|
{ |
||||||
|
parent::__construct($app); |
||||||
|
$this->repository = $repository; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public function getKeyLst() |
||||||
|
{ |
||||||
|
$type = $this->request->param('type', 0); |
||||||
|
$data = $this->repository->getAgreeList($type); |
||||||
|
return app('json')->success($data); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* @Author:Qinii |
||||||
|
* @Date: 2020/9/15 |
||||||
|
* @return mixed |
||||||
|
*/ |
||||||
|
public function getAgree($key) |
||||||
|
{ |
||||||
|
$allow = $this->repository->getAgreeKey(); |
||||||
|
if (!in_array($key, $allow)) return app('json')->fail('数据不存在'); |
||||||
|
$data = $this->repository->getResult($key); |
||||||
|
return app('json')->success($data); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* @Author:Qinii |
||||||
|
* @Date: 2020/9/15 |
||||||
|
* @return mixed |
||||||
|
*/ |
||||||
|
public function saveAgree($key) |
||||||
|
{ |
||||||
|
$allow = $this->repository->getAgreeKey(); |
||||||
|
if (!in_array($key, $allow)) return app('json')->fail('KEY不存在'); |
||||||
|
|
||||||
|
$value = $this->request->param('agree'); |
||||||
|
$this->repository->save($key, $value); |
||||||
|
|
||||||
|
if ($key == CacheRepository::USER_PRIVACY) |
||||||
|
$this->repository->setUserAgreement($value); |
||||||
|
if ($key == CacheRepository::USER_AGREE) |
||||||
|
$this->repository->setUserRegister($value); |
||||||
|
|
||||||
|
return app('json')->success('保存成功'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* TODO 清除缓存 |
||||||
|
* @return \think\response\Json |
||||||
|
* @author Qinii |
||||||
|
* @day 12/9/21 |
||||||
|
*/ |
||||||
|
public function clearCache() |
||||||
|
{ |
||||||
|
$type = $this->request->param('type', 1); |
||||||
|
switch ($type) { |
||||||
|
case 2: |
||||||
|
BaseCache::tag('get_product')->clear(); |
||||||
|
break; |
||||||
|
case 3: |
||||||
|
BaseCache::delete('get_api_config'); |
||||||
|
break; |
||||||
|
default: |
||||||
|
BaseCache::clear(); |
||||||
|
break; |
||||||
|
} |
||||||
|
$configValueRepository = app()->make(ConfigValueRepository::class); |
||||||
|
$configValueRepository->syncConfig(); |
||||||
|
$configValueRepository->special(); |
||||||
|
return app('json')->success('清除缓存成功'); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,30 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ] |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved. |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Author: CRMEB Team <admin@crmeb.com> |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
|
||||||
|
|
||||||
|
namespace app\validate\admin; |
||||||
|
|
||||||
|
|
||||||
|
use think\Validate; |
||||||
|
|
||||||
|
class DepositValidate extends Validate |
||||||
|
{ |
||||||
|
protected $failException = true; |
||||||
|
|
||||||
|
protected $rule = [ |
||||||
|
'money|金额' => 'require', |
||||||
|
'cycle|周期' => 'require', |
||||||
|
'diamond|分组名称' => 'require', |
||||||
|
'diamond_max|分组名称' => 'require', |
||||||
|
'count|名额' => 'require', |
||||||
|
]; |
||||||
|
} |
@ -0,0 +1,323 @@ |
|||||||
|
<template> |
||||||
|
<div class="divBox"> |
||||||
|
<el-card class="box-card"> |
||||||
|
<div slot="header" class="clearfix"> |
||||||
|
<div class="container"> |
||||||
|
<el-form size="small" inline label-width="100px"> |
||||||
|
<el-form-item label="昵称:"> |
||||||
|
<el-input |
||||||
|
style="width: 200px" |
||||||
|
placeholder="请输入昵称" |
||||||
|
v-model="tableFrom.nickname" |
||||||
|
/> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="手机号:"> |
||||||
|
<el-input |
||||||
|
style="width: 200px" |
||||||
|
placeholder="请输入手机号" |
||||||
|
v-model="tableFrom.phone" |
||||||
|
/> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="货币类型:" clearable> |
||||||
|
<el-select |
||||||
|
v-model="tableFrom.asset_type" |
||||||
|
placeholder="请选择货币类型" |
||||||
|
clearable |
||||||
|
> |
||||||
|
<el-option value="1" label="消费积分">消费积分</el-option> |
||||||
|
<el-option value="2" label="分红点">分红点</el-option> |
||||||
|
<el-option value="3" label="福利积分">福利积分</el-option> |
||||||
|
<el-option value="4" label="惠通宝">惠通宝</el-option> |
||||||
|
<el-option value="5" label="贡献值">贡献值</el-option> |
||||||
|
</el-select> |
||||||
|
</el-form-item> |
||||||
|
|
||||||
|
<el-form-item label="分值来源:"> |
||||||
|
<el-select |
||||||
|
placeholder="请选择" |
||||||
|
v-model="tableFrom.type" |
||||||
|
clearable |
||||||
|
> |
||||||
|
<el-option value="1" label="个人下单">个人下单</el-option> |
||||||
|
<el-option value="2" label="签到">签到</el-option> |
||||||
|
<el-option value="3" label="消费积分兑换分红点">消费积分兑换分红点</el-option> |
||||||
|
<el-option value="4" label="分红点返佣">分红点返佣</el-option> |
||||||
|
<el-option value="5" label="推广返佣">推广返佣</el-option> |
||||||
|
<el-option value="6" label="培育奖">培育奖</el-option> |
||||||
|
<el-option value="7" label="区域代理奖">区域代理奖</el-option> |
||||||
|
<el-option value="8" label="惠通宝兑换消费积分">惠通宝兑换消费积分</el-option> |
||||||
|
<el-option value="9" label="转让他人">转让他人</el-option> |
||||||
|
<el-option value="10" label="他人转让">他人转让</el-option> |
||||||
|
</el-select> |
||||||
|
</el-form-item> |
||||||
|
|
||||||
|
<el-form-item label="时间选择:" class="width100"> |
||||||
|
<el-date-picker |
||||||
|
v-model="timeVal" |
||||||
|
value-format="yyyy/MM/dd" |
||||||
|
format="yyyy/MM/dd" |
||||||
|
size="small" |
||||||
|
type="daterange" |
||||||
|
placement="bottom-end" |
||||||
|
placeholder="自定义时间" |
||||||
|
style="width: 250px;" |
||||||
|
@change="onchangeTime" |
||||||
|
/> |
||||||
|
</el-form-item> |
||||||
|
<el-button size="small" type="primary" icon="el-icon-search" @click="getList()">搜索</el-button> |
||||||
|
<el-button size="small" type="primary" @click="exportTableToExcel('table', 'exported-data')">导出</el-button> |
||||||
|
</el-form> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<el-table v-loading="loading" :data="tableData.data" style="width: 100%" size="small" id="table"> |
||||||
|
<el-table-column label="ID" prop="id" min-width="80"/> |
||||||
|
<el-table-column label="用户昵称" prop="user_nickname" min-width="120"/> |
||||||
|
<el-table-column label="手机" prop="user_phone" min-width="120"/> |
||||||
|
<el-table-column label="货币类型" prop="asset_type" min-width="120"/> |
||||||
|
<el-table-column label="分值来源" prop="type" min-width="120"/> |
||||||
|
<el-table-column label="变动情况" prop="count" min-width="120"/> |
||||||
|
<el-table-column label="变动时间" prop="create_time" min-width="120" /> |
||||||
|
|
||||||
|
</el-table> |
||||||
|
<div class="block"> |
||||||
|
<el-pagination |
||||||
|
:page-sizes="[20, 40, 60, 80]" |
||||||
|
:page-size="tableFrom.limit" |
||||||
|
:current-page="tableFrom.page" |
||||||
|
layout="total, sizes, prev, pager, next, jumper" |
||||||
|
:total="tableData.total" |
||||||
|
@size-change="handleSizeChange" |
||||||
|
@current-change="pageChange" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
</el-card> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
import { mapState } from "vuex"; |
||||||
|
import {discountsList, discountsChangeStatus, discountsGetDetails, assetsLogList} from "@/api/marketing"; |
||||||
|
import { formatDate } from "@/utils/validate"; |
||||||
|
import { roterPre } from '@/settings' |
||||||
|
|
||||||
|
import { saveAs } from 'file-saver'; |
||||||
|
import * as XLSX from 'xlsx'; |
||||||
|
export default { |
||||||
|
name: "Discounts", |
||||||
|
filters: { |
||||||
|
formatDate(time) { |
||||||
|
if (time !== 0) { |
||||||
|
let date = new Date(time * 1000); |
||||||
|
return formatDate(date, "yyyy-MM-dd hh:mm"); |
||||||
|
} |
||||||
|
}, |
||||||
|
}, |
||||||
|
data() { |
||||||
|
return { |
||||||
|
loading: false, |
||||||
|
dialogLoading: false, |
||||||
|
roterPre: roterPre, |
||||||
|
dialogVisible: false, |
||||||
|
tableData: { |
||||||
|
data: [], |
||||||
|
total: 0, |
||||||
|
}, |
||||||
|
tableFrom: { |
||||||
|
type: "", |
||||||
|
nickname: "", |
||||||
|
phone: "", |
||||||
|
page: 1, |
||||||
|
asset_type: "", |
||||||
|
limit: 20, |
||||||
|
}, |
||||||
|
specsMainData: [], |
||||||
|
specsData: [], |
||||||
|
timeVal: [], |
||||||
|
formValidate: { |
||||||
|
title: "", //套餐名称 |
||||||
|
type: 0, //套餐类型 |
||||||
|
image: "", //套餐主图 |
||||||
|
is_time: 0, //是否限时 |
||||||
|
is_limit: 0, //限量1/不限量0 |
||||||
|
limit_num: 0, //限量 |
||||||
|
link_ids: [], //参与用户标签 |
||||||
|
time: [], //套餐时间 |
||||||
|
sort: 0, //排序 |
||||||
|
free_shipping: 1, //是否包邮 |
||||||
|
status: 1, |
||||||
|
products: [], |
||||||
|
}, |
||||||
|
}; |
||||||
|
}, |
||||||
|
computed: { |
||||||
|
}, |
||||||
|
created() { |
||||||
|
this.getList(''); |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
exportTableToExcel(tableId, fileName) { |
||||||
|
/* 获取表格数据 */ |
||||||
|
const ws = XLSX.utils.table_to_sheet(document.getElementById(tableId)); |
||||||
|
|
||||||
|
/* 新建工作簿并添加工作表 */ |
||||||
|
const wb = XLSX.utils.book_new(); |
||||||
|
XLSX.utils.book_append_sheet(wb, ws, "Sheet1"); |
||||||
|
|
||||||
|
/* 生成Excel文件 */ |
||||||
|
const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' }); |
||||||
|
|
||||||
|
/* 字符串转ArrayBuffer */ |
||||||
|
function s2ab(s) { |
||||||
|
const buf = new ArrayBuffer(s.length); |
||||||
|
const view = new Uint8Array(buf); |
||||||
|
for (let i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF; |
||||||
|
return buf; |
||||||
|
} |
||||||
|
|
||||||
|
/* 保存文件 */ |
||||||
|
saveAs(new Blob([s2ab(wbout)], { type: 'application/octet-stream' }), fileName + '.xlsx'); |
||||||
|
}, |
||||||
|
// 查看 |
||||||
|
handleDetail(id) { |
||||||
|
this.dialogVisible = true; |
||||||
|
this.dialogLoading = true; |
||||||
|
discountsGetDetails(id).then((res) => { |
||||||
|
this.formValidate = res.data; |
||||||
|
this.formValidate.time = res.data.time || []; |
||||||
|
this.dialogLoading = false; |
||||||
|
for (let i = 0; i < res.data.discountsProduct.length; i++) { |
||||||
|
const element = res.data.discountsProduct[i]; |
||||||
|
element.attr= []; |
||||||
|
const attrArr = element['product'] && element['product']['attrValue'] || []; |
||||||
|
for (let j = 0; j < attrArr.length; j++) { |
||||||
|
const attr = attrArr[j]; |
||||||
|
if (attr.productSku) { |
||||||
|
element.attr.push(attr) |
||||||
|
} |
||||||
|
} |
||||||
|
if (element.type == 1) { |
||||||
|
this.specsMainData.push(element); |
||||||
|
} else { |
||||||
|
this.specsData.push(element); |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
}, |
||||||
|
|
||||||
|
// 列表 |
||||||
|
getList(num) { |
||||||
|
this.loading = true; |
||||||
|
this.tableFrom.page = num ? num : this.tableFrom.page; |
||||||
|
assetsLogList(this.tableFrom) |
||||||
|
.then(async (res) => { |
||||||
|
this.tableData.data = res.data.list; |
||||||
|
this.tableData.total = res.data.count; |
||||||
|
this.loading = false; |
||||||
|
}) |
||||||
|
.catch((res) => { |
||||||
|
this.loading = false; |
||||||
|
this.$message.error(res.message); |
||||||
|
}); |
||||||
|
}, |
||||||
|
pageChange(page) { |
||||||
|
this.tableFrom.page = page; |
||||||
|
this.getList(''); |
||||||
|
}, |
||||||
|
handleSizeChange(val) { |
||||||
|
this.tableFrom.limit = val; |
||||||
|
this.getList(''); |
||||||
|
}, |
||||||
|
|
||||||
|
// 具体日期 |
||||||
|
onchangeTime(e) { |
||||||
|
this.timeVal = e; |
||||||
|
this.tableFrom.date = this.timeVal ? this.timeVal.join("-") : ""; |
||||||
|
}, |
||||||
|
|
||||||
|
// 修改是否显示 |
||||||
|
onchangeIsShow(row) { |
||||||
|
discountsChangeStatus(row.discount_id,row.status) |
||||||
|
.then(async (res) => { |
||||||
|
this.$message.success(res.message); |
||||||
|
this.getList(''); |
||||||
|
}) |
||||||
|
.catch((res) => { |
||||||
|
this.$message.error(res.message); |
||||||
|
this.getList(''); |
||||||
|
}); |
||||||
|
}, |
||||||
|
}, |
||||||
|
}; |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped lang="scss"> |
||||||
|
.tabBox_img { |
||||||
|
width: 36px; |
||||||
|
height: 36px; |
||||||
|
border-radius: 4px; |
||||||
|
cursor: pointer; |
||||||
|
|
||||||
|
img { |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
} |
||||||
|
} |
||||||
|
.box-container { |
||||||
|
overflow: hidden; |
||||||
|
} |
||||||
|
.box-container .list { |
||||||
|
float: left; |
||||||
|
line-height: 40px; |
||||||
|
|
||||||
|
} |
||||||
|
.box-container .sp { |
||||||
|
width: 50%; |
||||||
|
//white-space: nowrap; |
||||||
|
//overflow: hidden; |
||||||
|
//text-overflow: ellipsis; |
||||||
|
} |
||||||
|
.box-container .sp3 { |
||||||
|
width: 33.3333%; |
||||||
|
} |
||||||
|
.box-container .sp100 { |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
.box-container .list .name { |
||||||
|
display: inline-block; |
||||||
|
color: #606266; |
||||||
|
} |
||||||
|
.box-container .list .blue { |
||||||
|
color: #1890ff; |
||||||
|
} |
||||||
|
.box-container .list.image { |
||||||
|
margin: 20px 0; |
||||||
|
position: relative; |
||||||
|
} |
||||||
|
.box-container .list.image img { |
||||||
|
position: absolute; |
||||||
|
top: -20px; |
||||||
|
} |
||||||
|
.labeltop{ |
||||||
|
max-height: 280px; |
||||||
|
min-height: 120px; |
||||||
|
overflow-y: auto; |
||||||
|
} |
||||||
|
.title{ |
||||||
|
margin-bottom: 16px; |
||||||
|
color: #17233d; |
||||||
|
font-size: 14px; |
||||||
|
font-weight: bold; |
||||||
|
padding-bottom: 2px; |
||||||
|
border-bottom: 1px solid #dfe6ec; |
||||||
|
} |
||||||
|
.product-data { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
|
||||||
|
.image { |
||||||
|
width: 50px !important; |
||||||
|
height: 50px !important; |
||||||
|
margin-right: 10px; |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,166 @@ |
|||||||
|
<template> |
||||||
|
<div class="divBox"> |
||||||
|
<el-card> |
||||||
|
<div class="mb20"> |
||||||
|
<el-button size="small" type="primary" @click="onAdd">{{ '添加预存'}}</el-button> |
||||||
|
</div> |
||||||
|
<el-table |
||||||
|
v-loading="listLoading" |
||||||
|
:data="tableData.data" |
||||||
|
size="small" |
||||||
|
highlight-current-row |
||||||
|
> |
||||||
|
<el-table-column |
||||||
|
label="ID" |
||||||
|
min-width="60" |
||||||
|
> |
||||||
|
<template slot-scope="{row}"> |
||||||
|
<span v-text="row.id" /> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
<el-table-column |
||||||
|
:label="'预存金额'" |
||||||
|
min-width="180" |
||||||
|
> |
||||||
|
<template slot-scope="{row}"> |
||||||
|
<span v-text="row.money" /> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
<el-table-column |
||||||
|
prop="cycle" |
||||||
|
label="提现周期" |
||||||
|
min-width="150" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
prop="count" |
||||||
|
label="名额" |
||||||
|
min-width="150" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
prop="diamond" |
||||||
|
label="赠送钻石/天" |
||||||
|
min-width="150" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
prop="diamond_max" |
||||||
|
label="钻石最大值" |
||||||
|
min-width="150" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
prop="create_time" |
||||||
|
label="创建时间" |
||||||
|
min-width="150" |
||||||
|
/> |
||||||
|
<el-table-column label="操作" min-width="90" fixed="right"> |
||||||
|
<template slot-scope="scope"> |
||||||
|
<el-button type="text" size="small" @click="onEdit(scope.row.id)">编辑</el-button> |
||||||
|
<el-button type="text" size="small" @click="handleDelete(scope.row.id, scope.$index)">删除</el-button> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
</el-table> |
||||||
|
<div class="block"> |
||||||
|
<el-pagination |
||||||
|
background |
||||||
|
:page-size="tableFrom.limit" |
||||||
|
:current-page="tableFrom.page" |
||||||
|
layout="total, prev, pager, next, jumper" |
||||||
|
:total="tableData.total" |
||||||
|
@size-change="handleSizeChange" |
||||||
|
@current-change="pageChange" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
</el-card> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ] |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved. |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Author: CRMEB Team <admin@crmeb.com> |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
import { |
||||||
|
depositLstApi, |
||||||
|
depositFormApi, |
||||||
|
depositEditApi, |
||||||
|
depositDeleteApi, |
||||||
|
} from '@/api/user' |
||||||
|
export default { |
||||||
|
name: 'UserGroup', |
||||||
|
data() { |
||||||
|
return { |
||||||
|
tableFrom: { |
||||||
|
page: 1, |
||||||
|
limit: 20 |
||||||
|
}, |
||||||
|
tableData: { |
||||||
|
data: [], |
||||||
|
total: 0 |
||||||
|
}, |
||||||
|
listLoading: true |
||||||
|
} |
||||||
|
}, |
||||||
|
mounted() { |
||||||
|
this.getList() |
||||||
|
}, |
||||||
|
watch:{ |
||||||
|
'$route.path': { |
||||||
|
handler: function() { |
||||||
|
this.getList() |
||||||
|
}, |
||||||
|
immediate: false, |
||||||
|
deep: true |
||||||
|
}, |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
// 列表 |
||||||
|
getList() { |
||||||
|
this.listLoading = true |
||||||
|
depositLstApi(this.tableFrom).then(res => { |
||||||
|
this.tableData.data = res.data.list |
||||||
|
this.tableData.total = res.data.count |
||||||
|
this.listLoading = false |
||||||
|
}).catch(res => { |
||||||
|
this.listLoading = false |
||||||
|
this.$message.error(res.message) |
||||||
|
}) |
||||||
|
}, |
||||||
|
pageChange(page) { |
||||||
|
this.tableFrom.page = page |
||||||
|
this.getList() |
||||||
|
}, |
||||||
|
handleSizeChange(val) { |
||||||
|
this.tableFrom.limit = val |
||||||
|
this.getList() |
||||||
|
}, |
||||||
|
// 添加 |
||||||
|
onAdd() { |
||||||
|
this.$modalForm(depositFormApi()).then(() => this.getList()) |
||||||
|
}, |
||||||
|
// 编辑 |
||||||
|
onEdit(id) { |
||||||
|
this.$modalForm(depositEditApi(id)).then(() => this.getList()) |
||||||
|
}, |
||||||
|
// 删除 |
||||||
|
handleDelete(id, idx) { |
||||||
|
this.$modalSure('删除').then(() => { |
||||||
|
depositDeleteApi(id).then(({ message }) => { |
||||||
|
this.$message.success(message) |
||||||
|
this.tableData.data.splice(idx, 1) |
||||||
|
this.getList() |
||||||
|
}).catch(({ message }) => { |
||||||
|
this.$message.error(message) |
||||||
|
}) |
||||||
|
}) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped lang="scss"> |
||||||
|
|
||||||
|
</style> |
@ -0,0 +1,112 @@ |
|||||||
|
<template> |
||||||
|
<div class="divBox"> |
||||||
|
<el-card class="box-card"> |
||||||
|
<div class="search"> |
||||||
|
<div class="input"> |
||||||
|
<span>赠送方手机号</span> |
||||||
|
<el-input v-model="account"></el-input> |
||||||
|
</div> |
||||||
|
<el-button size="small" style="margin-left:20px;" type="primary">查询</el-button> |
||||||
|
<el-button size="small" type="info">重置</el-button> |
||||||
|
</div> |
||||||
|
<div class="info">惠通宝当前市值:{{huitong}}</div> |
||||||
|
<el-table :data="tableData" style="width: 100%;"> |
||||||
|
<el-table-column prop="user_phone" label="转让账户"></el-table-column> |
||||||
|
<el-table-column prop="to_phone" label="收款账户"></el-table-column> |
||||||
|
<el-table-column prop="count" label="转让数量"></el-table-column> |
||||||
|
<el-table-column prop="create_time" label="转让时间"></el-table-column> |
||||||
|
|
||||||
|
</el-table> |
||||||
|
<div style="text-align: right;"> |
||||||
|
<el-pagination |
||||||
|
@size-change="handleSizeChange" |
||||||
|
@current-change="handleCurrentChange" |
||||||
|
:current-page="pageIndex" |
||||||
|
:page-sizes="[10, 20, 50, 100]" |
||||||
|
:page-size="pageSize" |
||||||
|
layout="total, sizes, prev, pager, next, jumper" |
||||||
|
:total="total"> |
||||||
|
</el-pagination> |
||||||
|
</div> |
||||||
|
</el-card> |
||||||
|
|
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
import {getHuitongbao} from '@/api/user' |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ] |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved. |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
// | Author: CRMEB Team <admin@crmeb.com> |
||||||
|
// +---------------------------------------------------------------------- |
||||||
|
import { |
||||||
|
|
||||||
|
} from '@/api/user' |
||||||
|
|
||||||
|
|
||||||
|
export default { |
||||||
|
|
||||||
|
data() { |
||||||
|
return { |
||||||
|
account:'', |
||||||
|
tableData:[], |
||||||
|
pageIndex:1, |
||||||
|
pageSize:10, |
||||||
|
total:0, |
||||||
|
huitong:0, |
||||||
|
} |
||||||
|
}, |
||||||
|
mounted() { |
||||||
|
this.getHuitongbaoHandle() |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
handleCurrentChange(val){ |
||||||
|
this.pageIndex = val; |
||||||
|
this.getHuitongbaoHandle() |
||||||
|
}, |
||||||
|
handleSizeChange(val){ |
||||||
|
this.pageSize = val; |
||||||
|
this.getHuitongbaoHandle() |
||||||
|
}, |
||||||
|
getHuitongbaoHandle(){ |
||||||
|
let params = { |
||||||
|
page:this.pageIndex, |
||||||
|
limit:this.pageSize, |
||||||
|
phone:this.account |
||||||
|
} |
||||||
|
getHuitongbao(params).then(res=>{ |
||||||
|
console.log(res,"99") |
||||||
|
this.tableData = res.data.list; |
||||||
|
this.total = res.data.count; |
||||||
|
this.huitong = res.data.huitong |
||||||
|
}) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss" scoped> |
||||||
|
.search{ |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
.input{ |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
span{ |
||||||
|
display:inline-block; |
||||||
|
width:200px; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.info{ |
||||||
|
font-size: 18px; |
||||||
|
font-weight: bold; |
||||||
|
margin:10px 0; |
||||||
|
|
||||||
|
} |
||||||
|
</style> |
Loading…
Reference in new issue