Merge branch 'chenbo_dev' into dev

This commit is contained in:
chenbo 2023-09-07 09:47:38 +08:00
commit 6e8408a490
389 changed files with 4998 additions and 985 deletions

View File

@ -0,0 +1,108 @@
<?php
// +----------------------------------------------------------------------
// | likeadmin快速开发前后端分离管理后台PHP版
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | 开源版本可自由商用可去除界面版权logo
// | gitee下载https://gitee.com/likeshop_gitee/likeadmin
// | github下载https://github.com/likeshop-github/likeadmin
// | 访问官网https://www.likeadmin.cn
// | likeadmin团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\adminapi\controller;
use app\adminapi\controller\BaseAdminController;
use app\adminapi\lists\AppUpdateLists;
use app\adminapi\logic\AppUpdateLogic;
use app\adminapi\validate\AppUpdateValidate;
/**
* app更新控制器
* Class AppUpdateController
* @package app\adminapi\controller
*/
class AppUpdateController extends BaseAdminController
{
/**
* @notes 获取app更新列表
* @return \think\response\Json
* @author likeadmin
* @date 2023/08/31 11:08
*/
public function lists()
{
return $this->dataLists(new AppUpdateLists());
}
/**
* @notes 添加app更新
* @return \think\response\Json
* @author likeadmin
* @date 2023/08/31 11:08
*/
public function add()
{
$params = (new AppUpdateValidate())->post()->goCheck('add');
$result = AppUpdateLogic::add($params);
if (true === $result) {
return $this->success('添加成功', [], 1, 1);
}
return $this->fail(AppUpdateLogic::getError());
}
/**
* @notes 编辑app更新
* @return \think\response\Json
* @author likeadmin
* @date 2023/08/31 11:08
*/
public function edit()
{
$params = (new AppUpdateValidate())->post()->goCheck('edit');
$result = AppUpdateLogic::edit($params);
if (true === $result) {
return $this->success('编辑成功', [], 1, 1);
}
return $this->fail(AppUpdateLogic::getError());
}
/**
* @notes 删除app更新
* @return \think\response\Json
* @author likeadmin
* @date 2023/08/31 11:08
*/
public function delete()
{
$params = (new AppUpdateValidate())->post()->goCheck('delete');
AppUpdateLogic::delete($params);
return $this->success('删除成功', [], 1, 1);
}
/**
* @notes 获取app更新详情
* @return \think\response\Json
* @author likeadmin
* @date 2023/08/31 11:08
*/
public function detail()
{
$params = (new AppUpdateValidate())->goCheck('detail');
$result = AppUpdateLogic::detail($params);
return $this->data($result);
}
}

View File

@ -151,7 +151,7 @@ class CompanyController extends BaseAdminController
$params['party_b'] = $params['id'];
unset($params['id']);
$result = ContractLogic::initiate_contract($params);
if ($result['code'] == 1) {
if (!empty($result) && $result['code'] == 1) {
return $this->success($result['msg'], $result['data']);
}
return $this->fail(ContractLogic::getError());
@ -197,11 +197,14 @@ class CompanyController extends BaseAdminController
];
$res = app(JunziqianController::class)->EnterpriseCertification($data);
if ($res->success == true) {
Db::name('company')->where('id', $params['id'])->update(['master_email' => $res->data]);
return $this->success('系统认证中,请稍后刷新页面查看', ['email' => $res->data], 1, 1);
Db::name('company')->where('id', $params['id'])->update(['master_email' => $res->data,'is_authentication'=>1]);
return $this->success('认证成功',[],1, 1);
// return $this->success('系统认证中,请稍后刷新页面查看', ['email' => $res->data], 1, 1);
} else {
return $this->fail($res->msg);
}
} else {
return $this->fail("公司不存在");
}
}
//重新认证
@ -228,6 +231,47 @@ class CompanyController extends BaseAdminController
}
}
// 企业人脸校验上传
public function organizationFaceCreate()
{
$params = (new CompanyValidate())->goCheck('detail');
$company = Db::name('company')->where('id', $params['id'])->find();
// 公司数据合法性校验
$this->companyCheck($company);
$data = [
'company_name' => $company['company_name'],
'organization_code' => $company['organization_code'],
'master_name' => $company['master_name'],
'master_id_card' => $company['master_id_card'],
'master_email' => $company['master_email'],
'master_phone' => $company['master_phone'],
'id' => $company['id'],
];
$res = app(JunziqianController::class)->organizationFaceCreate($data);
if ($res->success == true && !empty($res->data)) {
return $this->success('成功',["faceCreateUrl"=>$res->data],1, 1);
} else {
return $this->fail($res->msg);
}
}
private function companyCheck($company) {
if (empty($company)) {
return $this->fail("公司不存在");
}
if (empty($company['master_face'])) {
return $this->fail("未上传主联系人头像信息,无法上传企业人脸");
}
if(empty($company['master_id_card'])) {
return $this->fail("主联系人证件号为空,无法上传企业人脸");
}
if(empty($company['master_email'])) {
return $this->fail("主联系人邮箱为空,无法上传企业人脸");
}
}
public function userList()
{
$existUsers = Company::where('status', '<>', -1)->column('admin_id');

View File

@ -0,0 +1,234 @@
<?php
namespace app\adminapi\controller\contract;
use app\adminapi\controller\BaseAdminController;
use app\api\controller\JunziqianController;
use app\common\enum\notice\NoticeEnum;
use app\common\model\contract\VehicleContract;
class VehicleContractController extends BaseAdminController
{
//风控中心上传合同
public function uploadContract() {
//获取参数
$params = $this->request->post(['id','file']);
if(empty($params['id']) || empty($params['file'])){
return $this->fail('缺少必要参数');
}
//获取合同信息
$vehicle_contract = VehicleContract::where('id',$params['id'])->find();
if(empty($vehicle_contract)){
return $this->fail('合同信息错误');
}
if($vehicle_contract['status'] != 0){
return $this->fail('合同状态错误');
}
//更新本地
try {
//判断合同类型
if(!empty($vehicle_contract['contract_logistic_id'])){
//更新物流系统
curl_post(env('project.logistic_domain').'/api/updateContract',[],[
'id' => $vehicle_contract['contract_logistic_id'],
'file' => $params['file'],
'status' => 1
]);
}
VehicleContract::where('id', $params['id'])->update(['file' => $params['file'],'status'=>1]);
}catch (\Exception $e){
return $this->fail($e->getMessage());
}
//发送短信
$sms = [
'mobile' => $vehicle_contract['company_a_phone'],
'name' => $vehicle_contract['company_user'],
'scene' => 'WQTZ'
];
$this->rentNoticeSms($sms);
return $this->success('上传成功', [], 1, 1);
}
//发送通知短信
public function rentNoticeSms($params) {
try {
$scene = NoticeEnum::getSceneByTag($params['scene']);
if (empty($scene)) {
throw new \Exception('场景值异常');
}
$result = event('Notice', [
'scene_id' => $scene,
'params' => $params
]);
return $result[0];
} catch (\Exception $e) {
return false;
}
}
public function lists() {
$param = $this->request->get();
$where = [];
if(isset($param['company_name'])){
$where[] = ['company_b_name','like','%'.$param['company_name'].'%'];
}
if(isset($param['contract_no'])){
$where[] = ['contract_no','like','%'.$param['contract_no'].'%'];
}
if(isset($param['status']) && in_array($param['status'],[0,1])){
if($param['status'] == 1){
$where[] = ['status','in', '1,2,3'];
}else{
$where[] = ['status','=', $param['status']];
}
}else{
$where[] = ['status','in', '0,1,2,3'];
}
$pageNo = !empty($param['page_no']) ? $param['page_no'] : 1;
$pageSize = !empty($param['page_size']) ? $param['page_size'] : 15;
$data = VehicleContract::where($where)
->page($pageNo, $pageSize)
->order('create_time desc')
->select()->each(function($item){
$item['cars_info'] = json_decode($item['cars_info'],true);
});
return $this->success('success',['lists'=>$data->toArray(),'page_no'=>$pageNo,'page_size'=>$pageSize,'count'=>$data->count()]);
}
public function townRentList() {
$param = $this->request->get();
$where = [];
if(isset($param['company_name'])){
$where[] = ['company_b_name','like','%'.$param['company_name'].'%'];
}
if(isset($param['contract_no'])){
$where[] = ['contract_no','like','%'.$param['contract_no'].'%'];
}
if(isset($param['status']) && in_array($param['status'],[0,1])){
if($param['status'] == 1){
$where[] = ['status','in', '1,2,3'];
}else{
$where[] = ['status','=', $param['status']];
}
}else{
$where[] = ['status','in', '0,1,2,3'];
}
$pageNo = !empty($param['page_no']) ? $param['page_no'] : 1;
$pageSize = !empty($param['page_size']) ? $param['page_size'] : 15;
$data = VehicleContract::where($where)->where('contract_logistic_id','<>',0)
->page($pageNo, $pageSize)
->order('create_time desc')
->select()->each(function($item){
$item['cars_info'] = json_decode($item['cars_info'],true);
});
return $this->success('success',['lists'=>$data->toArray(),'page_no'=>$pageNo,'page_size'=>$pageSize,'count'=>$data->count()]);
}
public function initiatingRentCarContract() {
//获取参数
$params = $this->request->post(['id']);
if(empty($params['id'])){
return $this->fail('缺少必要参数');
}
//获取数据
$contract = VehicleContract::where('id',$params['id'])->find();
if(empty($contract)){
return $this->fail('数据不存在');
}
if($contract['status'] != 1){
return $this->fail('合同状态错误');
}
$signData = [
'name' => $contract['company_a_name'] . '的合同',
'signatories' => [
['fullName' => $contract['company_a_name'], 'identityType' => 12, 'identityCard' => $contract['company_a_code'], 'email' => $contract['company_a_email'], 'noNeedVerify' => 1, 'signLevel' => 1],
['fullName' => $contract['company_b_name'], 'identityType' => 12, 'identityCard' => $contract['company_b_code'], 'email' => $contract['company_b_email'], 'noNeedVerify' => 1, 'signLevel' => 1]
],
'url' => $contract['file']
];
$signRes = app(JunziqianController::class)->VehicleRentSigning($signData, $params['id'],env('project.website_domain').'/api/index/townCarRent');
if ($signRes->success) {
$contract->save([
'id' => $contract['id'],
'contract_no' => $signRes->data,
'status' => 2
]);
$this->sendSms($params['id'],'《租赁合同》');
return $this->success('合同发送成功');
} else {
return $this->fail($signRes->msg);
}
}
public function sendSms($id,$title) {
//获取合同数据
$contract = VehicleContract::where('id',$id)->find();
if ($contract && !$contract->isEmpty() && $contract['file'] != '') {
//发送短信
$data = [
//甲方
[
"applyNo" => $contract['contract_no'],
"fullName" => $contract['company_a_name'],
"identityCard" => $contract['company_a_code'],
"identityType" => 12,
"master_phone" => $contract['company_a_phone'],
"type"=>"party_a"
],
//乙方
[
"applyNo" => $contract['contract_no'],
"fullName" => $contract['company_b_name'],
"identityCard" => $contract['company_b_code'],
"identityType" => 12,
"master_phone" => $contract['company_b_phone'],
"type"=>"party_b"
],
];
$url = [];
foreach ($data as $v) {
$res = app(JunziqianController::class)->SigningLink($v);
if (!$res->success) {
return false;
}
if ($v['type'] == 'party_a') {
$url['party_a'] =$res->data;
} else {
$url['party_b'] =$res->data;
}
//发送短信
$sms = [
'mobile' => $v['master_phone'],
'name' => $v['fullName'],
'type' => $title,
'code' => 'api/Hetong/info?id='.$id.'&type='.$v['type'],
'scene' => 'WQ'
];
$scene = NoticeEnum::getSceneByTag($sms['scene']);
if (empty($scene)) {
throw new \Exception('场景值异常');
}
event('Notice', [
'scene_id' => $scene,
'params' => $sms
]);
}
VehicleContract::where('id', $id)->update(['url' => json_encode($url)]);
return true;
}else{
return false;
}
}
public function detail() {
$id = $this->request->get('id');
if(empty($id)){
$this->fail('参数错误');
}
$data = VehicleContract::where('id',$id)->find();
$data['cars_info'] = json_decode($data['cars_info'],true);
return $this->success('success',$data->toArray());
}
}

View File

@ -0,0 +1,77 @@
<?php
// +----------------------------------------------------------------------
// | likeadmin快速开发前后端分离管理后台PHP版
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | 开源版本可自由商用可去除界面版权logo
// | gitee下载https://gitee.com/likeshop_gitee/likeadmin
// | github下载https://github.com/likeshop-github/likeadmin
// | 访问官网https://www.likeadmin.cn
// | likeadmin团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\adminapi\lists;
use app\adminapi\lists\BaseAdminDataLists;
use app\common\model\AppUpdate;
use app\common\lists\ListsSearchInterface;
/**
* app更新列表
* Class AppUpdateLists
* @package app\adminapi\lists
*/
class AppUpdateLists extends BaseAdminDataLists implements ListsSearchInterface
{
/**
* @notes 设置搜索条件
* @return \string[][]
* @author likeadmin
* @date 2023/08/31 11:08
*/
public function setSearch(): array
{
return [
'=' => ['title', 'content', 'type', 'version', 'dow_url', 'force', 'quiet'],
];
}
/**
* @notes 获取app更新列表
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @author likeadmin
* @date 2023/08/31 11:08
*/
public function lists(): array
{
return AppUpdate::where($this->searchWhere)
->field(['id', 'title', 'content', 'type', 'version', 'dow_url', 'force', 'quiet'])
->limit($this->limitOffset, $this->limitLength)
->order(['id' => 'desc'])
->select()
->toArray();
}
/**
* @notes 获取app更新数量
* @return int
* @author likeadmin
* @date 2023/08/31 11:08
*/
public function count(): int
{
return AppUpdate::where($this->searchWhere)->count();
}
}

View File

@ -73,12 +73,9 @@ class ArticleLists extends BaseAdminDataLists implements ListsSearchInterface, L
*/
public function lists(): array
{
$query = Article::where($this->searchWhere);
$query = Article::where($this->searchWhere);
if($this->adminInfo['root']!=1){
$companyIds = CompanyLogic::getAllCompanyIds();
if (!empty($companyIds)) {
$query->whereIn('company_id', $companyIds);
}
$query->where('company_id', $this->adminInfo['company_id']);
}
$ArticleLists = $query->with(['company'])
@ -99,7 +96,11 @@ class ArticleLists extends BaseAdminDataLists implements ListsSearchInterface, L
*/
public function count(): int
{
return Article::where($this->searchWhere)->count();
$query = Article::where($this->searchWhere);
if($this->adminInfo['root']!=1){
$query->where('company_id', $this->adminInfo['company_id']);
}
return $query->count();
}
public function extend()

View File

@ -59,14 +59,14 @@ class ContractLists extends BaseAdminDataLists implements ListsSearchInterface
$params=$this->request->param();
$where=[];
if ($this->adminInfo['root'] != 1) {
if($this->adminInfo['role_id'][0]==10){
if(isset($params['type']) && $params['type']==1){
$where[] = ['check_status', '=',1];
}else{
$where[] = ['status', '=',0];
$where[] = ['check_status', 'in',[2,3]];
}
}
// if($this->adminInfo['role_id'][0]==10){
// if(isset($params['type']) && $params['type']==1){
// $where[] = ['check_status', '=',1];
// }else{
// $where[] = ['status', '=',0];
// $where[] = ['check_status', 'in',[2,3]];
// }
// }
}
if(isset($params['company_id']) && $params['company_id']!=''){
$arr= Company::where('company_name','like','%'.$params['company_id'].'%')->column('id');

View File

@ -18,6 +18,7 @@ use app\adminapi\lists\BaseAdminDataLists;
use app\common\enum\user\AccountLogEnum;
use app\common\lists\ListsSearchInterface;
use app\common\model\user\UserAccountLog;
use app\common\model\user\UserRole;
use app\common\service\FileService;
@ -38,7 +39,7 @@ class AccountLogLists extends BaseAdminDataLists implements ListsSearchInterface
public function setSearch(): array
{
return [
'=' => ['al.change_type'],
'=' => ['change_type','company_id'],
];
}
@ -56,18 +57,13 @@ class AccountLogLists extends BaseAdminDataLists implements ListsSearchInterface
$where[] = ['change_type', 'in', AccountLogEnum::getUserMoneyChangeType()];
}
if (!empty($this->params['user_info'])) {
$where[] = ['u.sn|u.nickname|u.mobile', 'like', '%' . $this->params['user_info'] . '%'];
}
if (!empty($this->params['start_time'])) {
$where[] = ['al.create_time', '>=', strtotime($this->params['start_time'])];
$where[] = ['create_time', '>=', strtotime($this->params['start_time'])];
}
if (!empty($this->params['end_time'])) {
$where[] = ['al.create_time', '<=', strtotime($this->params['end_time'])];
$where[] = ['create_time', '<=', strtotime($this->params['end_time'])];
}
return $where;
}
@ -80,19 +76,16 @@ class AccountLogLists extends BaseAdminDataLists implements ListsSearchInterface
*/
public function lists(): array
{
$field = 'u.nickname,u.sn,u.avatar,u.mobile,al.action,al.change_amount,al.left_amount,al.change_type,al.source_sn,al.create_time';
$lists = UserAccountLog::alias('al')
->join('user u', 'u.id = al.user_id')
->field($field)
->where($this->searchWhere)
$lists = UserAccountLog::where($this->searchWhere)
->with(['company_info','user_info'])
->where($this->queryWhere())
->order('al.id', 'desc')
->order('id', 'desc')
->limit($this->limitOffset, $this->limitLength)
->select()
->toArray();
foreach ($lists as &$item) {
$item['avatar'] = FileService::getFileUrl($item['avatar']);
$item['user_info']['avatar'] = FileService::getFileUrl($item['user_info']['avatar']);
$item['user_info']['group_name']=UserRole::where('id',$item['user_info']['group_id'])->value('name');
$item['change_type_desc'] = AccountLogEnum::getChangeTypeDesc($item['change_type']);
$symbol = $item['action'] == AccountLogEnum::INC ? '+' : '-';
$item['change_amount'] = $symbol . $item['change_amount'];
@ -110,9 +103,7 @@ class AccountLogLists extends BaseAdminDataLists implements ListsSearchInterface
*/
public function count(): int
{
return UserAccountLog::alias('al')
->join('user u', 'u.id = al.user_id')
->where($this->queryWhere())
return UserAccountLog::where($this->queryWhere())
->where($this->searchWhere)
->count();
}

View File

@ -104,7 +104,6 @@ class RechargeLists extends BaseAdminDataLists implements ListsSearchInterface,
*/
public function lists(): array
{
// $companyIds = CompanyLogic::getAllCompanyIds();
$field = 'ro.id,ro.sn,ro.order_amount,ro.pay_way,ro.pay_time,ro.pay_status,ro.create_time,ro.refund_status';
$field .= ',u.avatar,u.nickname,u.company_id';
$lists = RechargeOrder::alias('ro')

View File

@ -0,0 +1,118 @@
<?php
// +----------------------------------------------------------------------
// | likeadmin快速开发前后端分离管理后台PHP版
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | 开源版本可自由商用可去除界面版权logo
// | gitee下载https://gitee.com/likeshop_gitee/likeadmin
// | github下载https://github.com/likeshop-github/likeadmin
// | 访问官网https://www.likeadmin.cn
// | likeadmin团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\adminapi\logic;
use app\common\model\AppUpdate;
use app\common\logic\BaseLogic;
use think\facade\Db;
/**
* app更新逻辑
* Class AppUpdateLogic
* @package app\adminapi\logic
*/
class AppUpdateLogic extends BaseLogic
{
/**
* @notes 添加app更新
* @param array $params
* @return bool
* @author likeadmin
* @date 2023/08/31 11:08
*/
public static function add(array $params): bool
{
Db::startTrans();
try {
AppUpdate::create([
'title' => $params['title'],
'content' => $params['content'],
'type' => $params['type'],
'version' => $params['version'],
'dow_url' => $params['dow_url'],
'force' => $params['force'],
'quiet' => $params['quiet']
]);
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
}
}
/**
* @notes 编辑app更新
* @param array $params
* @return bool
* @author likeadmin
* @date 2023/08/31 11:08
*/
public static function edit(array $params): bool
{
Db::startTrans();
try {
AppUpdate::where('id', $params['id'])->update([
'title' => $params['title'],
'content' => $params['content'],
'type' => $params['type'],
'version' => $params['version'],
'dow_url' => $params['dow_url'],
'force' => $params['force'],
'quiet' => $params['quiet']
]);
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
}
}
/**
* @notes 删除app更新
* @param array $params
* @return bool
* @author likeadmin
* @date 2023/08/31 11:08
*/
public static function delete(array $params): bool
{
return AppUpdate::destroy($params['id']);
}
/**
* @notes 获取app更新详情
* @param $params
* @return array
* @author likeadmin
* @date 2023/08/31 11:08
*/
public static function detail($params): array
{
return AppUpdate::findOrEmpty($params['id'])->toArray();
}
}

View File

@ -0,0 +1,104 @@
<?php
// +----------------------------------------------------------------------
// | likeadmin快速开发前后端分离管理后台PHP版
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | 开源版本可自由商用可去除界面版权logo
// | gitee下载https://gitee.com/likeshop_gitee/likeadmin
// | github下载https://github.com/likeshop-github/likeadmin
// | 访问官网https://www.likeadmin.cn
// | likeadmin团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\adminapi\validate;
use app\common\validate\BaseValidate;
/**
* app更新验证器
* Class AppUpdateValidate
* @package app\adminapi\validate
*/
class AppUpdateValidate extends BaseValidate
{
/**
* 设置校验规则
* @var string[]
*/
protected $rule = [
'id' => 'require',
'title' => 'require',
'content' => 'require',
'type' => 'require',
'version' => 'require',
'dow_url' => 'require',
];
/**
* 参数描述
* @var string[]
*/
protected $field = [
'id' => 'id',
'title' => '标题',
'content' => '内容',
'type' => '1ios 2安卓',
'version' => '版本',
'dow_url' => 'app链接',
];
/**
* @notes 添加场景
* @return AppUpdateValidate
* @author likeadmin
* @date 2023/08/31 11:08
*/
public function sceneAdd()
{
return $this->only(['title','content','type','version','dow_url']);
}
/**
* @notes 编辑场景
* @return AppUpdateValidate
* @author likeadmin
* @date 2023/08/31 11:08
*/
public function sceneEdit()
{
return $this->only(['id','title','content','type','version','dow_url']);
}
/**
* @notes 删除场景
* @return AppUpdateValidate
* @author likeadmin
* @date 2023/08/31 11:08
*/
public function sceneDelete()
{
return $this->only(['id']);
}
/**
* @notes 详情场景
* @return AppUpdateValidate
* @author likeadmin
* @date 2023/08/31 11:08
*/
public function sceneDetail()
{
return $this->only(['id']);
}
}

View File

@ -35,6 +35,7 @@ class CompanyValidate extends BaseValidate
'company_name' => 'require|unique:Company',
'organization_code' => 'require',
'master_name' => 'require',
'id_card' => 'require',
'master_position' => 'require',
'master_phone' => 'require',
'master_email' => 'require',
@ -52,6 +53,7 @@ class CompanyValidate extends BaseValidate
'company_name' => '公司名称',
'organization_code' => '组织机构代码',
'master_name' => '主联系人姓名',
'id_card' => '主联系人身份证',
'master_position' => '主联系人职务',
'master_phone' => '主联系人手机',
'master_email' => '主联系人邮箱',
@ -68,7 +70,7 @@ class CompanyValidate extends BaseValidate
*/
public function sceneAdd()
{
return $this->only(['company_name','organization_code','master_name','master_position','master_phone']);
return $this->only(['company_name','organization_code','master_name','id_card','master_position','master_phone']);
}
@ -80,7 +82,7 @@ class CompanyValidate extends BaseValidate
*/
public function sceneEdit()
{
return $this->only(['id','company_name','organization_code','master_name','master_position','master_phone']);
return $this->only(['id','company_name','organization_code','master_name','id_card','master_position','master_phone']);
}

View File

@ -1,16 +1,18 @@
<?php
namespace app\api\controller;
use app\common\logic\finance\ShareProfit;
use app\common\logic\task\TaskLogic;
use app\common\model\Company;
use app\common\model\company\CompanyAccountLog;
use app\common\model\task\Task;
use app\common\model\task_scheduling\TaskScheduling;
use app\common\model\task_scheduling_plan\TaskSchedulingPlan;
use app\common\model\task_template\TaskTemplate;
use app\common\model\user\User as UserModel;
use app\common\model\user\UserAccountLog;
use think\facade\Log;
use app\job\TaskAdd;
use app\job\TaskInformationJob;
use Symfony\Component\HttpClient\HttpClient;
class CeshiController extends BaseApiController
{
@ -21,24 +23,60 @@ class CeshiController extends BaseApiController
*/
public function index()
{
// $all=TaskSchedulingPlan::whereDay('end_time','yesterday')->where('is_pay',0)->with(['template_info','scheduling'])->select()->toArray();
// halt($all);
$all=TaskSchedulingPlan::whereDay('end_time')->where('is_pay',0)->with(['template_info','scheduling'])->select()->toArray();
// $transaction_pool=780;
// $shang_date_total_price=[
// 'arr'=>['total_price'=>305,'day_money'=>580]
// ];
// if(bcadd($shang_date_total_price['arr']['total_price'],$transaction_pool,2)>$shang_date_total_price['arr']['day_money']){
// if($shang_date_total_price['arr']['total_price']<$shang_date_total_price['arr']['day_money']){
// $shang_date_total_price['arr']['supplement']=bcsub($shang_date_total_price['arr']['day_money'],$shang_date_total_price['arr']['total_price'],2);
// }else{
// $shang_date_total_price['arr']['supplement']=0;
// $shang_date_total_price['arr']['after_transaction_pool']=0;
// }
// $shang_date_total_price['arr']['before_transaction_pool']=$transaction_pool;
// Task::where('id', 839)->update(['status' => 3,'extend'=>json_encode($shang_date_total_price)]);
// $day_money=bcsub($shang_date_total_price['arr']['total_price'],$shang_date_total_price['arr']['day_money'],2);//当天还剩多少
// TaskTemplate::where('id',109)->update(['transaction_pool'=>bcadd($transaction_pool,$day_money,2)]);
// }
$all=TaskSchedulingPlan::where('id',928)->with(['template_info','scheduling'])->select()->toArray();
foreach($all as $k=>$v){
queue(TaskInformationJob::class,$v);
}
halt(1);
return true;
$plan_all = TaskScheduling::where('id',119)->with('company_info')->select()->toArray();
$plan_ids = [];
foreach ($plan_all as $k => $v) {
$all = TaskTemplate::where('id', 118)->where('task_scheduling', $v['id'])->limit(30)->select()->toArray();
$plan_ids[] = $v['id'];
if ($all) {
$plan_all[$k]['template'] = $all;
} else {
unset($plan_all[$k]);
}
}
$company_id = [];
foreach ($plan_all as $k => $v) {
foreach ($v['template'] as $kk => $vv) {
queue(TaskAdd::class,['data'=>$vv,'data_two'=>$v]);
}
$company_id[] = $v['company_id'];
}
}
/**
* 任务刷新
*/
public function ceshi(){
return false;
$time=strtotime(date('Y-m-d'));
// $time=strtotime(date('Y-m-d'));
// $tiem_end=$time+86399;where('cron_time','<',$time)->
$plan_all=TaskScheduling::where('status',1)->with('company_info')->select()->toArray();
$plan_all=TaskScheduling::where('id',99)->with('company_info')->select()->toArray();
foreach($plan_all as $k=>$v){
$all=TaskTemplate::where('status',1)->where('task_scheduling',$v['id'])->limit(30)->select()->toArray();
if($all){
@ -49,53 +87,7 @@ class CeshiController extends BaseApiController
}
$company_id=[];
foreach($plan_all as $k=>$v){
foreach($v['template'] as $kkk=>$vvv){
if ($v['types'] == 1 ||$vvv['types'] == 3) {
if ($v['company_info'] && $v['company_info']['day_count'] <=$vvv['stage_day_one']) {
$res=$this->stage_inspection($v['template'],'moeny','一');
if($res==false){
return false;
}
} else {
$res=$this->stage_inspection($v['template'],'money_two','二');
if($res==false){
return false;
}
}
} elseif ($v['types'] == 2) {
if ($v['company_info']['day_count'] <=$vvv['stage_day_one']) {
$res=$this->stage_inspection($v['template'],'moeny','一');
if($res==false){
return false;
}
} elseif ($v['company_info']['day_count'] <=$vvv['stage_day_two']) {
$res=$this->stage_inspection($v['template'],'money_two','二');
if($res==false){
return false;
}
} else {
$res=$this->stage_inspection($v['template'],'money_three','三');
if($res==false){
return false;
}
}
} else {
if ( $v['company_info']['day_count'] <=$vvv['stage_day_one']) {
$res=$this->stage_inspection($v['template'],'money_three','三');
if($res==false){
return false;
}
} else {
$res=$this->stage_inspection($v['template'],'money_two','二');
if($res==false){
return false;
}
}
}
}
foreach($v['template'] as $kk=>$vv){
halt($v);
TaskLogic::CronAdd($vv,$v);
}
$company_id[]=$v['company_id'];

View File

@ -0,0 +1,19 @@
<?php
namespace app\api\controller;
use app\common\model\company\CompanyAccountLog;
class CompanyAccountLogController extends BaseApiController{
public function lists(){
[$page,$limit]=$this->getPage();
$where=[];
$where['company_id']=$this->userInfo['company_id'];
$where['change_object']=CompanyAccountLog::SHAREHOLDER;
$where['change_type']=CompanyAccountLog::TASK_INC_SHAREHOLDER_MONEY;
$count=CompanyAccountLog::where($where)->count();
$lists=CompanyAccountLog::where($where)->page($page,$limit)->order('id','desc')->select();
return $this->success('ok',['count'=>$count,'list'=>$lists]);
}
}

View File

@ -25,7 +25,7 @@ class CompanyController extends BaseApiController
[$page, $limit] = $this->getPage();
$myCompany = Company::findOrEmpty($this->userInfo['company_id'])->toArray();
$companyIds = Contract::where('party_a', $myCompany['id'])->column('party_b');
$query = Company::whereIn('id', $companyIds)->where('status', 1)->append(['province_name', 'city_name', 'area_name', 'street_name', 'village_name','brigade_name','area_manager_name']);
$query = Company::whereIn('id', $companyIds)->where('status', 1)->append(['province_name', 'city_name', 'area_name', 'street_name', 'village_name', 'brigade_name', 'area_manager_name']);
$count = $query->count();
$companies = $query->page($page)->limit($limit)->select()->each(function ($company) {
$company['other_contacts'] = json_decode($company['other_contacts'], true);
@ -41,7 +41,7 @@ class CompanyController extends BaseApiController
public function unsigned()
{
$myCompany = Company::findOrEmpty($this->userInfo['company_id'])->toArray();
$query = Company::where(['street' => $myCompany['street'], 'company_type' => [17, 18], 'is_contract' => 0])->where('id','<>',$this->userInfo['company_id']);
$query = Company::where(['street' => $myCompany['street'], 'company_type' => [17, 18], 'is_contract' => 0])->where('id', '<>', $this->userInfo['company_id']);
$count = $query->count();
$companies = $query->field('*,street street_name,area area_name,city city_name,province province_name,village village_name,brigade brigade_name')->select()->toArray();
return $this->success('', ['count' => $count, 'data' => $companies]);
@ -58,13 +58,13 @@ class CompanyController extends BaseApiController
if (!$query) {
return $this->fail('公司不存在');
}
$company = $query->append(['province_name', 'city_name', 'area_name', 'street_name', 'area_manager_name','village_name','brigade_name'])->toArray();
$company = $query->append(['province_name', 'city_name', 'area_name', 'street_name', 'area_manager_name', 'village_name', 'brigade_name'])->toArray();
$company['other_contacts'] = json_decode($company['other_contacts'], true);
$company['qualification'] = $company['qualification'] != null ? json_decode($company['qualification'], true) : '';
if($company['qualification'] && isset($company['qualification']['other_qualifications'])){
$company['qualification']['other_qualifications']=json_decode($company['qualification']['other_qualifications'],true);
if ($company['qualification'] && isset($company['qualification']['other_qualifications'])) {
$company['qualification']['other_qualifications'] = json_decode($company['qualification']['other_qualifications'], true);
}
$contract = Contract::where('party_b',$id)->find();
$contract = Contract::where('party_b', $id)->find();
if (!empty($contract)) {
if ($contract['type'] == 2) {
$contract['party_b_name'] = User::where('id', $contract['party_b'])->value('nickname');
@ -114,7 +114,7 @@ class CompanyController extends BaseApiController
$count = $query->count();
$users = $query->order('id', 'desc')->page($page)->limit($limit)->with(['company' => function ($query) {
$query->field('id,company_name');
}])->append(['province_name', 'city_name', 'area_name', 'street_name','village_name','brigade_name'])
}])->append(['province_name', 'city_name', 'area_name', 'street_name', 'village_name', 'brigade_name'])
->field('id,avatar,real_name,account,mobile as phone,province,city,area,street,village,brigade,company_id,create_time,qualification,nickname,is_contract,is_captain')
->select()->each(function ($item, $key) {
if ($item['qualification'] != '') {
@ -122,12 +122,12 @@ class CompanyController extends BaseApiController
}
if ($item['is_captain'] == 1) {
$item['informationg_count'] = UserInformationg::where(['create_user_id' => $item['id'], 'status' => 1])->count();
$item['informationg_update_count'] = UserInformationg::where(['create_user_id' => $item['id'], 'status' => 1,'is_update'=>1])->count();
$time=UserInformationgDemand::order('update_time','desc')->value('update_time');
if($time){
$item['informationg_update_time']=date('Y-m-d H:i:s', $time);
}else{
$item['informationg_update_time']='';
$item['informationg_update_count'] = UserInformationg::where(['create_user_id' => $item['id'], 'status' => 1, 'is_update' => 1])->count();
$time = UserInformationgDemand::order('update_time', 'desc')->value('update_time');
if ($time) {
$item['informationg_update_time'] = date('Y-m-d H:i:s', $time);
} else {
$item['informationg_update_time'] = '';
}
}
});
@ -140,8 +140,8 @@ class CompanyController extends BaseApiController
$user = $query->with(['company' => function ($query) {
$query->field('id,company_name');
}])->field('id,sex,avatar,nickname name,account,mobile phone,id_card,qualification,province,province province_name,city,city city_name,area,area area_name,street,street street_name,village,village village_name,brigade,brigade brigade_name, is_contract,company_id,is_captain')->find()->toArray();
$contract = Contract::where("type",2)->where('party_b',$id)->append(['contract_type_name'])->find();
$contract = Contract::where("type", 2)->where('party_b', $id)->append(['contract_type_name'])->find();
$user['contract'] = $contract;
// $roleIds = AdminRole::where('admin_id', $user['id'])->column('role_id');
// $user['roles'] = SystemRole::whereIn('id', $roleIds)->column('name');
@ -168,7 +168,7 @@ class CompanyController extends BaseApiController
public function Draftingcontracts()
{
$params = $this->request->param();
$result = ContractLogic::Draftingcontracts($params,1);
$result = ContractLogic::Draftingcontracts($params, 1);
if ($result == true) {
return $this->success('生成合同成功');
}
@ -179,12 +179,84 @@ class CompanyController extends BaseApiController
public function postsms()
{
$params = $this->request->param();
$id=Contract::where('party_b', $params['id'])->value('id');
$res = ContractLogic::postsms(['id'=>$id]);
$id = Contract::where('party_b', $params['id'])->value('id');
$res = ContractLogic::postsms(['id' => $id]);
if ($res == true) {
return $this->success('发送成功', [], 1, 1);
} else {
return $this->fail(ContractLogic::getError());
}
}
/**
* 股金管理
*/
public function shareholder_info()
{
// $params = $this->request->param();
$find = Company::where('id', $this->userInfo['company_id'])->field('shareholder_money,village')->find()->toArray();
$find['is_contract'] = 0;
$find['check_status'] = 0;
if ($find) {
$contract = Contract::where('party_b', $this->userInfo['company_id'])->where('contract_type', 40)->field('id,contract_no,contract_url,create_time,check_status,status')->find();
if ($contract) {
if($contract['contract_url']=='' &&$contract['status']==1){
app(JunziqianController::class)->download_file($contract['contract_no']);
$contract_url = Contract::where('id', $contract['id'])->value('contract_url');
$find['contract_url'] = env('url.url_prefix'). $contract_url;
}else{
$find['contract_url'] = env('url.url_prefix') . $contract['contract_url'];
}
$find['contract_time'] = $contract['create_time'];
$find['check_status'] = $contract['check_status'];
if ($contract['status'] == 1) {
$find['is_contract'] = 1;
}
}
$village_info = Company::where('village', $find['village'])->where('company_type', 17)->find();
if ($village_info) {
$find['is_village'] = 1;
} else {
$find['is_village'] = 0;
}
} else {
$find['contract_url'] = '';
$find['contract_time'] = '';
$find['is_village'] = 0;
}
return $this->success('ok', $find);
}
//**发起股金合同 */
public function initiate_shareholder_contract()
{
$params = $this->request->param();
$params['party_b'] = $this->userInfo['company_id'];
if(!$params['party_b']){
return $this->fail('请先绑定公司');
}
$Company = Company::where('id', $this->userInfo['company_id'])->where('company_type',18)->field('shareholder_money,village')->find();
if($Company){
$params['party_a'] = Company::where('village', $Company['village'])->where('company_type', 17)->value('id');
}else{
return $this->fail('您不是小组公司');
}
if(!isset($params['party_a'])||$params['party_a']==0){
return $this->fail('甲方公司不存在');
}
$area_manager = Company::where('id', $params['party_b'])->value('area_manager');
$params['area_manager'] = $area_manager;
$params['type'] = 1;
$result = ContractLogic::initiate_contract($params);
if ($result == true) {
return $this->success('发起成功,等待平台风控部上传合同');
}
return $this->fail(ContractLogic::getError());
}
public function pay_share_capital()
{
// return
}
}

View File

@ -22,26 +22,11 @@ class ContractController extends BaseApiController
if($this->userInfo['admin_id']==0){
$query = Contract::where("type",2)->where('party_b',$this->userId);
} else {
$query = Contract::where("type",1)->where('party_b',$this->userInfo['company_id']);
$query = Contract::where("type",1)->where('party_a|party_b',$this->userInfo['company_id']);
}
$query->where('status',1);
$count = $query->count();
$contract = $query->with(['party_a_info','party_b_info','contract_type'])->page($page)->limit($limit)->select();
// ->each(function ($item, $key) {
// $company_name= Db::name('company')->where('id', $item['party_a'])->value('company_name');
// $contract_type_name= Db::name('dict_data')->where('id', $item['contract_type'])->value('name');
// $datas=[
// 'id'=>$item['id'],
// 'company_name'=>$company_name,
// 'contract_type_name'=>$contract_type_name,
// ];
// $item->company=$datas;
// if ($item->type == 2) {
// $item['party_b_name'] = User::where('id', $item['party_b'])->value('name');
// } else {
// $item['party_b_name'] = Db::name('company')->where('id', $item['party_b'])->value('company_name');
// }
// });
return $this->success('success', ['count' => $count, 'data' => $contract]);
}

View File

@ -0,0 +1,63 @@
<?php
namespace app\api\controller;
use app\common\model\task_scheduling_plan\TaskSchedulingPlan;
use app\job\TaskInformationJob;
use think\facade\Log;
use app\common\model\Company;
use app\common\model\task_template\TaskTemplate;
use app\common\model\task_scheduling\TaskScheduling;
use app\job\TaskAdd;
/**
* index
* Class IndexController
* @package app\api\controller
*/
class CronController extends BaseApiController
{
public array $notNeedLogin = ['settlement','task_add'];
/**
* 结算
*/
public function settlement(){
$all=TaskSchedulingPlan::where('is_pay',0)->with(['template_info','scheduling'])->select()->toArray();
foreach($all as $k=>$v){
queue(TaskInformationJob::class,$v);
}
Log::info('定时任务结算执行成功'.date('Y-m-d H:i:s'));
return $this->success('定时任务结算执行成功');
}
public function task_add(){
//任务下发
// $time=strtotime(date('Y-m-d',strtotime('-1 day')));
$time = strtotime(date('Y-m-d'));
// $tiem_end=$time+86399;
$plan_all = TaskScheduling::where('cron_time', '<', $time)->where('status', 1)->with('company_info')->select()->toArray();
$plan_ids = [];
foreach ($plan_all as $k => $v) {
$all = TaskTemplate::where('status', 1)->where('task_scheduling', $v['id'])->limit(30)->select()->toArray();
$plan_ids[] = $v['id'];
if ($all) {
$plan_all[$k]['template'] = $all;
} else {
unset($plan_all[$k]);
}
}
$company_id = [];
foreach ($plan_all as $k => $v) {
foreach ($v['template'] as $kk => $vv) {
queue(TaskAdd::class,['data'=>$vv,'data_two'=>$v]);
}
$company_id[] = $v['company_id'];
}
Company::where('id', 'in', $company_id)->inc('day_count')->update();
TaskScheduling::where('id', 'in', $plan_ids)->update(['cron_time' => time()]);
Log::info('定时任务下发执行成功' . date('Y-m-d H:i:s'));
return $this->success('定时任务下发执行成功');
}
}

View File

@ -4,6 +4,7 @@ namespace app\api\controller;
use app\api\logic\IndexLogic;
use app\common\model\contract\VehicleContract;
use app\Request;
use think\facade\Db;
use think\response\Json;
@ -18,14 +19,14 @@ class HetongController extends BaseApiController
{
public array $notNeedLogin = ['url'];
public array $notNeedLogin = ['url','info'];
public function url()
{
$id = Request()->get('id');
$type = Request()->get('type');
$msg='合同不存在';
if(!empty($type)){
if(empty($type)){
$msg='参数错误';
}
if ($id && $type) {
@ -39,4 +40,19 @@ class HetongController extends BaseApiController
}
return '<style type="text/css"> * { padding: 0; margin: 0; } div { padding: 4px 48px; } a { color: #2E5CD5; cursor: pointer; text-decoration: none } a:hover { text-decoration: underline; } body { background: #fff; font-family: "Century Gothic", "Microsoft yahei"; color: #333; font-size: 18px; } h1 { font-size: 100px; font-weight: normal; margin-bottom: 12px; } p { line-height: 1.6em; font-size: 42px } </style> <div style="padding: 24px 48px;"> <h1>:) </h1> <p>'.$msg.'</p> </div>';
}
public function info(){
$params = $this->request->get(['id','type']);
if(empty($params['id']) || empty($params['type'])){
return $this->fail('缺少必要参数');
}
$find = VehicleContract::where('id', $params['id'])->find();
if (!empty($find) && $find['url']) {
$url = json_decode($find['url'], true);
if(isset($url[$params['type']])){
return redirect($url[$params['type']]);
}
}
return '<style type="text/css"> * { padding: 0; margin: 0; } div { padding: 4px 48px; } a { color: #2E5CD5; cursor: pointer; text-decoration: none } a:hover { text-decoration: underline; } body { background: #fff; font-family: "Century Gothic", "Microsoft yahei"; color: #333; font-size: 18px; } h1 { font-size: 100px; font-weight: normal; margin-bottom: 12px; } p { line-height: 1.6em; font-size: 42px } </style> <div style="padding: 24px 48px;"> <h1>:) </h1> <p></p> </div>';
}
}

View File

@ -11,13 +11,13 @@
// +----------------------------------------------------------------------
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\api\controller;
use app\api\logic\IndexLogic;
use app\common\model\Company;
use app\common\model\company\CompanyProperty;
use app\common\model\contract\VehicleContract;
use app\common\model\vehicle\VehicleRent;
use think\facade\Db;
use think\facade\Log;
use think\response\Json;
@ -30,11 +30,7 @@ use think\response\Json;
*/
class IndexController extends BaseApiController
{
public array $notNeedLogin = ['index', 'config', 'policy', 'decorate', 'notifyUrl','notifyProperty','notifyAuthentication'];
public array $notNeedLogin = ['index', 'config', 'policy', 'decorate', 'notifyUrl', 'notifyProperty', 'notifyAuthentication', 'notifyVehicleContractUpdate', 'systemCarRent', 'selfCarRent', 'cancelRent'];
/**
* @notes 首页数据
@ -63,8 +59,9 @@ class IndexController extends BaseApiController
*/
public function config()
{
$group_id=$this->userInfo?$this->userInfo['group_id']:1;
$result = IndexLogic::getConfigData($group_id);
$parmas = $this->request->param();
$group_id = $this->userInfo ? $this->userInfo['group_id'] : 1;
$result = IndexLogic::getConfigData($group_id, $parmas);
return $this->data($result);
}
@ -116,45 +113,276 @@ class IndexController extends BaseApiController
Db::name('user')->where('id', $find['party_b'])->update(['is_contract' => 1]);
}
}
try {
//获取租赁信息
$vehicleRent = Db::name('vehicle_rent')->where('contract_id',$a['id'])->find();
//获取公司信息
$company = Db::name('company')->where('id',$vehicleRent['party_b'])->find();
//通知物流系统
if($vehicleRent && $company){
$result = curl_post('http://logistics.lihaink.cn/api/vehicleRent', [], [
'contract_id' => $a['id'],
'car_id' => $vehicleRent['car_ids'],
'company_id' => $company['id'],
'company_name' => $company['company_name'],
'company_user_id' => $company['user_id'],
'company_user_name' => $company['master_name'],
'company_user_phone' => $company['master_phone'],
'rent_type' => $vehicleRent['rent_type']
]);
if($result['code'] == 1){
$carids = explode(',',$vehicleRent['car_ids']);
$pro_data = [];
foreach($carids as $k => $v){
$pro_data[$k]['company_id']=$company['id'];
$pro_data[$k]['object_id']=$v;
$pro_data[$k]['type']=1;
$pro_data[$k]['create_time']=time();
}
Db::name('company_property')->insertAll($pro_data);
Db::name('vehicle_rent')->update(['status'=>2,'update_time'=>time(),'id'=>$vehicleRent['id']]);
}
}
}catch (\Exception $e){
return false;
}
}
}
return json(['success' => true, 'msg' => '成功']);
}
//镇街车辆租赁回调
public function townCarRent() {
$id = Request()->get('id');
if(empty($id)){
return json(['success' => false, 'msg' => '缺少参数']);
}
//获取合同数据
$contract = VehicleContract::where('id', $id)->find();
if (empty($contract)) {
return json(['success' => false, 'msg' => '获取数据失败']);
}
if($contract['status'] != 2){
return json(['success' => false, 'msg' => '合同状态错误']);
}
if ($contract['signing_timer'] == 0) {
//更新本地合同状态
$updateLocalRes = VehicleContract::where('id',$contract['id'])->update(['signing_timer'=>1]);
//更新远程
$updateSverRes =curl_post(env('project.logistic_domain').'/api/index/notifyContractUpdate',[],[
'id' => $contract['contract_logistic_id'],
'signing_timer' => 1,
]);
if(!$updateLocalRes || $updateSverRes['code']==0){
return json(['success' => false, 'msg' => '更新失败']);
}
}else if($contract['signing_timer'] == 1){
//更新本地合同状态
$updateLocalRes = VehicleContract::where('id',$contract['id'])->update(['signing_timer'=>2,'status' => 3]);
//更新远程
$updateSverRes =curl_post(env('project.logistic_domain').'/api/index/notifyContractUpdate',[],[
'id' => $contract['contract_logistic_id'],
'signing_timer' => 2,
'status' => 3
]);
if(!$updateLocalRes || $updateSverRes['code']==0){
return json(['success' => false, 'msg' => '更新失败']);
}
}
}
//系统车辆租赁回来
public function systemCarRent()
{
//获取参数
$id = $this->request->get('id');
if (empty($id)) {
return json(['success' => false, 'msg' => '失败1.1']);
}
//获取合同数据
$contract = VehicleContract::where('id', $id)->find();
if (empty($contract)) {
return json(['success' => false, 'msg' => '失败1.2']);
}
if ($contract['type'] != 0) {
return json(['success' => false, 'msg' => '失败1.3']);
}
if ($contract['status'] != 2) {
return json(['success' => false, 'msg' => '失败1.4']);
}
//判断签约方
if ($contract['signing_timer'] == 0) {
//更新合同的签约次数
$res = VehicleContract::where('id', $id)->update(['signing_timer' => 1]);
if (!$res) {
return json(['success' => false, 'msg' => '失败1.5']);
}
return json(['success' => true, 'msg' => '成功']);
} else if ($contract['signing_timer'] == 1) {
//获取签约后的合同
$signContractFile = app(JunziqianController::class)->downloadVehicleContractFile($contract['contract_no']);
$signContractFile = $signContractFile ?? '';
//更改合同状态
VehicleContract::where('id', $id)->update(['signing_timer' => 2, 'status' => 3,'contract_url'=>$signContractFile]);
//添加车辆到租赁列表
$vehicle = json_decode($contract['cars_info'], true);
VehicleRent::where('car_id', $vehicle['id'])->update([
'status' => 2,
'rent_time' => time(),
'rent_company_id' => $contract['company_b_id'],
]);
$party_b = Company::where('id', $contract['company_b_id'])->find();
//通知物流系统跟新
curl_post(env('project.logistic_domain').'/api/updateVehicleRent', [], [
'car_id' => $vehicle['id'],
'use_user_id' => $party_b['user_id'],
'use_user_name' => $party_b['master_name'],
'use_user_phone' => $party_b['master_phone']
]);
CompanyProperty::create([
'company_id' => $contract['company_b_id'],
'object_id' => $vehicle['id'],
'type' => 1,
'create_time' => time(),
'update_time' => time(),
]);
return json(['success' => true, 'msg' => '成功']);
} else {
return json(['success' => true, 'msg' => '成功']);
}
}
//自有车辆租赁回答
public function selfCarRent()
{
//获取参数
$id = $this->request->get('id');
if (empty($id)) {
return json(['success' => false, 'msg' => '失败2.1']);
}
//获取合同数据
$contract = VehicleContract::where('id', $id)->find();
if (empty($contract)) {
return json(['success' => false, 'msg' => '失败2.2']);
}
if ($contract['type'] != 1) {
return json(['success' => false, 'msg' => '失败2.3']);
}
if ($contract['status'] != 2) {
return json(['success' => false, 'msg' => '失败2.4']);
}
//判断签约方
if ($contract['signing_timer'] == 0) {
$res = VehicleContract::where('id', $id)->update(['signing_timer' => 1]);
if (!$res) {
return json(['success' => false, 'msg' => '失败2.5']);
}
return json(['success' => true, 'msg' => '成功']);
} else if ($contract['signing_timer'] == 1) {
//添加车辆到物流系统
$vehicle = json_decode($contract['cars_info'], true);
$curl_res = curl_post(env('project.logistic_domain').'/api/addSelfCar', [], [
'license' => $vehicle['license'],
'company_id' => $contract['company_a_id'],
'company_name' => $contract['company_a_name'],
'company_user' => $contract['company_a_user'],
'company_phone' => $contract['company_a_phone'],
]);
if (!$curl_res || $curl_res['code'] == 0) {
return json(['success' => false, 'msg' => '失败2.6']);
}
$cars_info = json_encode(['id' => $curl_res['data']['car_id'], 'license' => $vehicle['license']]);
//获取签约后的合同
$signContractFile = app(JunziqianController::class)->downloadVehicleContractFile($contract['contract_no']);
$signContractFile = $signContractFile ?? '';
VehicleContract::where('id', $id)->update(['cars_info'=>$cars_info,'update_time'=>time(),'signing_timer'=>2,'status'=>3,'contract_url'=>$signContractFile]);
VehicleRent::create([
'car_id' => $curl_res['data']['car_id'],
'contract_id' => $contract['id'],
'company_id' => $contract['company_a_id'],
'car_license' => $vehicle['license'],
'status' => 2,
'rent_time' => time(),
'rent_company_id' => $contract['company_b_id'],
'create_time' => time(),
'type' => 1
]);
$car_id = $curl_res['data']['car_id'];
$party_b = Company::where('id', $contract['company_b_id'])->find();
//通知物流系统跟新
curl_post(env('project.logistic_domain').'/api/updateVehicleRent', [], [
'car_id' => $car_id,
'use_user_id' => $party_b['user_id'],
'use_user_name' => $party_b['master_name'],
'use_user_phone' => $party_b['master_phone']
]);
CompanyProperty::create([
'company_id' => $contract['company_b_id'],
'object_id' => $car_id,
'type' => 1,
'create_time' => time(),
'update_time' => time(),
]);
return json(['success' => true, 'msg' => '成功']);
} else {
return json(['success' => true, 'msg' => '成功']);
}
}
//解除合同回调
public function cancelRent()
{
//获取参数
$id = $this->request->get('id');
if (empty($id)) {
return json(['success' => false, 'msg' => '失败3.1']);
}
//获取合同数据
$contract = VehicleContract::where('id', $id)->find();
if (empty($contract)) {
return json(['success' => false, 'msg' => '失败3.2']);
}
if ($contract['type'] != 2) {
return json(['success' => false, 'msg' => '失败3.3']);
}
if ($contract['status'] != 2) {
return json(['success' => false, 'msg' => '失败3.4']);
}
if ($contract['signing_timer'] == 0) {
$res = VehicleContract::where('id', $id)->update(['signing_timer' => 1]);
if (!$res) {
return json(['success' => false, 'msg' => '失败3.5']);
}
return json(['success' => true, 'msg' => '成功']);
} else if ($contract['signing_timer'] == 1) {
//获取签约后的合同
$signContractFile = app(JunziqianController::class)->downloadVehicleContractFile($contract['contract_no']);
$signContractFile = $signContractFile ?? '';
//更改合同状态
VehicleContract::where('id', $id)->update(['signing_timer'=>2,'status'=>3,'contract_url'=>$signContractFile]);
//更改租赁列表车辆状态
$vehicle = json_decode($contract['cars_info'], true);
//获取租赁车辆信息
$vehicleRentInfo = VehicleRent::where('car_id', $vehicle['id'])->find();
//更新原始合同类型
VehicleContract::where('id', $vehicleRentInfo['contract_id'])->update(['type' => 2]);
VehicleRent::where('car_id', $vehicle['id'])->update([
'status' => 3,
]);
//通知物流系统跟新
curl_post(env('project.logistic_domain').'/api/cancelRent', [], [
'car_id' => $vehicle['id'],
'status' => 1
]);
return json(['success' => true, 'msg' => '成功']);
} else {
return json(['success' => true, 'msg' => '成功']);
}
}
//车辆租赁签约合同状态更改
public function notifyVehicleContractUpdate()
{
if (!$this->request->isPost()) {
return $this->fail('请求方式错误');
}
$param = $this->request->post();
if (empty($param['contract_logistic_id'])) {
return $this->fail('缺少必要参数');
}
$model = VehicleContract::where('contract_logistic_id', $param['contract_logistic_id'])->find();
if (empty($model)) {
return $this->fail('数据不存在');
}
$cars = json_decode($model['cars_info'], true);
$result = $model->where('id', $model['id'])->save($param);
if ($result && isset($param['status']) && $param['status'] == 3) {
$data = [];
foreach ($cars as $k => $v) {
$data[$k]['car_id'] = $v['id'];
$data[$k]['car_license'] = $v['license'];
$data[$k]['type'] = 0;
$data[$k]['status'] = 0;
$data[$k]['company_id'] = $model['company_b_id'];
$data[$k]['rent_time'] = 0;
$data[$k]['rent_company_id'] = 0;
$data[$k]['contract_id'] = $model['id'];
$data[$k]['create_time'] = strtotime($model['create_time']);
}
$vehicleRent = new VehicleRent();
$vehicleRent->saveAll($data);
}
//返回
return $result ? $this->success('更新成功') : $this->fail('更新失败');
}
/**
* 资产回调
*/
@ -168,18 +396,19 @@ class IndexController extends BaseApiController
if (!isset($parmas['object_id'])) {
return json(['success' => false, 'msg' => '对象id不能为空']);
}
$data=[];
$object_id = explode(',',$parmas['object_id']);
foreach($object_id as $k=>$v){
if($v>0){
$data[$k]['company_id']=$parmas['company_id'];
$data[$k]['object_id']=$v;
$data[$k]['type']=1;
$data = [];
$object_id = explode(',', $parmas['object_id']);
foreach ($object_id as $k => $v) {
if ($v > 0) {
$data[$k]['company_id'] = $parmas['company_id'];
$data[$k]['object_id'] = $v;
$data[$k]['type'] = 1;
}
}
if (count($data)>0){
$res = CompanyProperty::insertAll($data);
if (count($data) <= 0) {
return json(['success' => false, 'msg' => '失败']);
}
$res = CompanyProperty::insertAll($data);
if ($res) {
return json(['success' => true, 'msg' => '成功']);
} else {
@ -189,18 +418,25 @@ class IndexController extends BaseApiController
return json(['success' => false, 'msg' => '失败,没有参数']);
}
/**
/**
* 认证回调
*/
public function notifyAuthentication()
{
$parmas = Request()->param();
Log::error('notifyAuthentication', $parmas);
if ($parmas) {
Company::where('id',$parmas['id'])->update(['is_authentication'=>1]);
return json(['success' => true, 'msg' => '成功']);
Log::info('认证回调:'.$parmas);
try {
if ($parmas) {
$data=json_decode($parmas['data'],true);
if($data['status']==2){
Company::where('id', $parmas['id'])->update(['is_authentication' => 2]);
}
return json(['success' => true, 'msg' => '成功']);
}
} catch (\Exception $e) {
Log::error('认证回调错误:'.$e->getMessage());
}
return json(['success' => false, 'msg' => '失败,没有参数']);
}
}

View File

@ -2,6 +2,7 @@
namespace app\api\controller;
use app\common\model\contract\VehicleContract;
use app\Request;
use junziqian\sdk\bean\req\sign\ApplySignReq;
use junziqian\sdk\bean\req\user\OrganizationCreateReq;
@ -21,7 +22,12 @@ class JunziqianController extends BaseApiController
private $appkey = '3121e0d911b7943d';
/**secret*/
private $appSecret = '1e66d8b73121e0d911b7943d82bba174';
/**请求地址*/
// private $serviceUrl = 'https://api.junziqian.com';
// /**appkey*/
// private $appkey = '62dc4ab579153712';
// /**secret*/
// private $appSecret = 'b7f65acc62dc4ab579153712fc9ebfc5';
/**默认加密方式:不输入使用sha256,其它可选择项md5,sha1,sha3-256*/
private $encryMethod;
/**默认ts单位:1毫秒,2秒*/
@ -74,7 +80,9 @@ class JunziqianController extends BaseApiController
if (isset($data['master_email'])) {
$request->emailOrMobile = $data['master_email']; //邮箱
}
$request->notifyUrl = 'https://worker-task.lihaink.cn/notify_authentication?id=' . $data['id'];
// $request->notifyUrl = env('url.url_prefix').'/notifyAuthentication?ids=22222';
$request->notifyUrl = env('url.url_prefix').'/notifyAuthentication?id='.$data['id'];
// halt($request);
//发起创建企业请求
$response = $requestUtils->doPost("/v2/user/organizationCreate", $request);
return $response;
@ -126,7 +134,48 @@ class JunziqianController extends BaseApiController
return $this->success('', (array)$response);
}
//签约
public function Signing($data, $id)
public function Signing($data, $id, $notify = '')
{
if($notify==''){
$notify=env('url.url_prefix').'/notify_url';
}
$requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret);
$request = new ApplySignReq();
$request->contractName = $data['name'];
$request->signatories = $data['signatories']; //签约方
$request->faceThreshold = 79; // 人脸识别阀值:默认等级(1-100之间整数),建议范围(60-79)
$request->serverCa = 1; //是否需要服务端云证书
$request->fileType = 1; //合同上传方式 url
$request->url = $data['url'];
$request->notifyUrl = $notify.'?id='.$id;
$request->needQifengSign = 1;
//发起PING请求
// halt($request);
$response = $requestUtils->doPost("/v2/sign/applySign", $request);
return $response;
}
// 企业人脸校验上传
public function OrganizationFaceCreate($data)
{
$requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret);
$request=new OrganizationCreateReq();
$request-> orderNo = uniqid();
$request-> email = $data['master_email'];
$request-> enterpriseName = $data['company_name'];
$request-> identityNo = $data['organization_code'];
$request-> legalPersonName = $data['master_name'];
$request-> legalIdentityCard = $data['master_id_card'];//法人证件号
$request-> legalMobile = $data['master_phone'];
$request-> facePerType = 1; // 1代理人
$request-> faceAgantIdenName = $data['master_name'];
$request-> faceAgantIdenCard = $data['master_id_card'];
$request-> backUrl = env('url.url_prefix').'/mobile'; // 做完人脸识别后指定跳转到供销系统mobile首页
$response = $requestUtils->doPost("/v2/user/organizationFaceCreate",$request);
return $response;
}
public function VehicleRentSigning($data, $id, $notify)
{
$requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret);
$request = new ApplySignReq();
@ -135,7 +184,8 @@ class JunziqianController extends BaseApiController
$request->serverCa = 1; //是否需要服务端云证书
$request->fileType = 1; //合同上传方式 url
$request->url = $data['url'];
$request->notifyUrl = 'https://worker-task.lihaink.cn/notify_url?id=' . $id;
$request->notifyUrl = $notify.'?id='.$id;
$request->needQifengSign = 1;
//发起PING请求
// halt($request);
@ -143,6 +193,25 @@ class JunziqianController extends BaseApiController
return $response;
}
public function downloadVehicleContractFile($applyNo) {
$requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret);
$contract_url = VehicleContract::where('contract_no', $applyNo)->value('contract_url');
if ($contract_url && !empty($contract_url)) {
return $contract_url;
}
//初始化请求参数
$request = array(
"applyNo" => $applyNo, //TODO +
);
$response = $requestUtils->doPost("/v2/sign/linkFile", $request);
if ($response->success) {
$this->getDownload($response->data, root_path() . 'public/uploads/vehicle_contract/' . $applyNo . '.pdf');
return env('project.website_domain').'/uploads/vehicle_contract/' . $applyNo . '.pdf';
} else {
return false;
}
}
public function SigningLink($data)
{
//构建请求工具
@ -180,7 +249,7 @@ class JunziqianController extends BaseApiController
$request->serverCa = 1; //是否需要服务端云证书
$request->fileType = 3;
$request->htmlContent = $data['content'];
$request->notifyUrl = 'https://worker-task.lihaink.cn/notify_url?id=' . $id;
$request->notifyUrl = env('url.url_prefix').'/notify_url?id=' . $id;
$request->needQifengSign = 1;
//发起PING请求
@ -193,7 +262,7 @@ class JunziqianController extends BaseApiController
$requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret);
$find = Db::name('contract')->where('contract_no', $applyNo)->value('contract_url');
if ($find) {
return $this->success('获取成功', ['url' => 'https://worker-task.lihaink.cn' . $find]);
return $this->success('获取成功', ['url' => env('url.url_prefix') . $find]);
}
//初始化请求参数
$request = array(
@ -203,7 +272,7 @@ class JunziqianController extends BaseApiController
if ($response->success == true) {
$this->getDownload($response->data, root_path() . 'public/uploads/contract/' . $applyNo . '.pdf');
Db::name('contract')->where('contract_no', $applyNo)->update(['contract_url' => '/uploads/contract/' . $applyNo . '.pdf']);
return $this->success('获取成功', ['url' => 'https://worker-task.lihaink.cn/uploads/contract/' . $applyNo . '.pdf']);
return $this->success('获取成功', ['url' => env('url.url_prefix').'/uploads/contract/' . $applyNo . '.pdf']);
} else {
return $this->fail('获取失败');
}

View File

@ -16,9 +16,13 @@ namespace app\api\controller;
use app\api\validate\{LoginAccountValidate, RegisterValidate, WebScanLoginValidate, WechatLoginValidate};
use app\api\logic\LoginLogic;
use app\Request;
use app\api\logic\UserLogic;
use app\common\model\Company;
use app\api\service\UserTokenService;
use app\common\model\user\User;
use Firebase\JWT\JWT;
use Firebase\JWT\Key;
use think\facade\{Db, Config};
use app\common\service\FileService;
/**
* 登录注册
@ -28,7 +32,7 @@ use app\common\model\Company;
class LoginController extends BaseApiController
{
public array $notNeedLogin = ['register', 'account', 'logout', 'codeUrl', 'oaLogin', 'mnpLogin', 'getScanCode', 'scanLogin'];
public array $notNeedLogin = ['register', 'account', 'logout', 'codeUrl', 'oaLogin', 'mnpLogin', 'getScanCode', 'scanLogin', 'shop_account'];
/**
@ -48,9 +52,10 @@ class LoginController extends BaseApiController
return $this->fail(LoginLogic::getError());
}
public function add(){
$params=Request()->param();
$params['company_id']=$this->userInfo['company_id'];
public function add()
{
$params = Request()->param();
$params['company_id'] = $this->userInfo['company_id'];
$result = LoginLogic::register($params);
if (true === $result) {
return $this->success('添加成功', [], 1, 1);
@ -60,8 +65,8 @@ class LoginController extends BaseApiController
public function setInfo()
{
$params=Request()->param();
$result = UserLogic::setInfo($params['user_id'], ['field'=>'is_captain','value'=>$params['is_captain']]);
$params = Request()->param();
$result = UserLogic::setInfo($params['user_id'], ['field' => 'is_captain', 'value' => $params['is_captain']]);
if (false === $result) {
return $this->fail(UserLogic::getError());
}
@ -72,7 +77,7 @@ class LoginController extends BaseApiController
* @notes 账号密码/手机号密码/手机号验证码登录
* @return \think\response\Json
* @author 段誉
* @date 2022/9/16 10:42
* @date 2022/9/16 10:42la_other_user
*/
public function account()
{
@ -84,6 +89,22 @@ class LoginController extends BaseApiController
return $this->data($result);
}
/**
* 商城登录
*/
public function shop_account()
{
$params = $this->request->param();
if (isset($params['shop_token']) && $params['shop_token'] != '') {
$result = LoginLogic::shop($params['shop_token']);
if (false === $result) {
return $this->fail(LoginLogic::getError());
}
return $this->data($result);
}
return $this->fail('无登录信息');
}
/**
* @notes 退出登录
@ -234,6 +255,4 @@ class LoginController extends BaseApiController
LoginLogic::updateUser($params, $this->userId);
return $this->success('操作成功', [], 1, 1);
}
}
}

View File

@ -5,13 +5,14 @@ namespace app\api\controller;
use Symfony\Component\HttpClient\HttpClient;
use think\facade\Log;
use app\common\model\informationg\UserInformationg;
use app\common\model\task_template\TaskTemplate;
class RemoteController extends BaseApiController
{
public array $notNeedLogin = ['index'];
public function shang_date_total_price($company,$isDay=1,$arr=[])
public function shang_date_total_price($company,$isDay=1,$arr=[],$template_id=0)
{
if($isDay==1){
$start_time = date('Y-m-d');
@ -33,20 +34,20 @@ class RemoteController extends BaseApiController
];
switch ($company['company_type']) {
case 18:
$parmas['brigade_id'] = $company['brigade'];
$parmas['brigade_id'] = $company['responsible_area'];
$parmas['village_code'] = $company['village'];
$parmas['street_code'] = $company['street'];
$parmas['district_code'] = $company['area'];
$parmas['city_code'] = $company['city'];
break;
case 17:
$parmas['village_code'] = $company['village'];
$parmas['village_code'] = $company['responsible_area'];
$parmas['street_code'] = $company['street'];
$parmas['district_code'] = $company['area'];
$parmas['city_code'] = $company['city'];
break;
case 16:
$parmas['street_code'] = $company['street'];
$parmas['street_code'] = $company['responsible_area'];
$parmas['district_code'] = $company['area'];
$parmas['city_code'] = $company['city'];
break;
@ -63,7 +64,7 @@ class RemoteController extends BaseApiController
return false;
}
try {
$res = HttpClient::create()->request('GET', 'https://crmeb-test.shop.lihaink.cn/api/order/statistics', [
$res = HttpClient::create()->request('GET', env('url.shop_prefix').'/api/order/statistics', [
'query' => $parmas,
]);
$json = json_decode($res->getContent(), true);
@ -75,11 +76,12 @@ class RemoteController extends BaseApiController
$arr['total_price'] = $json['data']['total_price'];
//基础金额*(每日基户数*天数)//且户数小于公司总户数
$user_count = UserInformationg::where('company_id', $company['id'])->count();
$day_count=TaskTemplate::where('id',$template_id)->value('day_count');
//
if($company['day_count']==0){
if($day_count==0){
$user_count_two = 5 * 1;
}else{
$user_count_two = 5 * $company['day_count'];
$user_count_two = 5 * $day_count;
}
if ($user_count_two > $user_count) {
$user_count_money = 58 * $user_count;
@ -122,20 +124,20 @@ class RemoteController extends BaseApiController
];
switch ($company['company_type']) {
case 18:
$parmas['brigade_id'] = $company['brigade'];
$parmas['brigade_id'] = $company['responsible_area'];
$parmas['village_code'] = $company['village'];
$parmas['street_code'] = $company['street'];
$parmas['district_code'] = $company['area'];
$parmas['city_code'] = $company['city'];
break;
case 17:
$parmas['village_code'] = $company['village'];
$parmas['village_code'] = $company['responsible_area'];
$parmas['street_code'] = $company['street'];
$parmas['district_code'] = $company['area'];
$parmas['city_code'] = $company['city'];
break;
case 16:
$parmas['street_code'] = $company['street'];
$parmas['street_code'] = $company['responsible_area'];
$parmas['district_code'] = $company['area'];
$parmas['city_code'] = $company['city'];
break;
@ -153,12 +155,13 @@ class RemoteController extends BaseApiController
if(isset($querys['page'])){
$parmas['page']=$querys['page'];
}
try{
$list = HttpClient::create()->request('GET', 'https://crmeb-test.shop.lihaink.cn/api/region/order', [
$list = HttpClient::create()->request('GET', env('url.shop_prefix').'/api/region/order', [
'query' => $parmas,
]);
$json_list = json_decode($list->getContent(), true);
$data=[];
if($json_list['status'] == 200){
$data=$json_list['data']['list'];
@ -175,17 +178,18 @@ class RemoteController extends BaseApiController
* 获取坐标的距离
*/
public function coordinate($parmas,$longitude1,$latitude1){
$res = HttpClient::create()->request('GET', 'http://logistics.lihaink.cn/api/getCarHistory', [
$res = HttpClient::create()->request('GET', env('project.logistic_domain').'/api/getCarHistory', [
'query' => $parmas,
]);
$json=json_decode($res->getContent(),true);
$points=$json['data'];
if(empty($points)){
return false;
}
$target =[
"lat"=> $latitude1,
"lon"=> $longitude1
];
$closestPoint = $this->getClosestPoint($points, $target);
return $this->calculateDistance($target['lon'], $target['lat'], $closestPoint[0]['lon'], $closestPoint[0]['lat']);
@ -204,6 +208,8 @@ class RemoteController extends BaseApiController
if ($distance < $minDistance) {
$minDistance = $distance;
$closestPoint = $point;
}else{
$distance=0;
}
}
@ -225,6 +231,6 @@ class RemoteController extends BaseApiController
sin($dLon/2) * sin($dLon/2);
$c = 2 * asin(sqrt($a));
return $earthRadius * $c*1000;
return $earthRadius * $c*100;
}
}

View File

@ -7,7 +7,9 @@ use app\common\model\Company;
use app\common\model\company\CompanyProperty;
use app\common\model\informationg\UserInformationg;
use app\common\model\task\Task;
use app\common\model\task_template\TaskTemplate;
use app\common\model\user\User;
use think\facade\Log;
class TaskController extends BaseApiController
{
@ -55,9 +57,15 @@ class TaskController extends BaseApiController
->select()->toArray();
foreach ($res as $k => $item) {
if ($item['type'] == 33) {
$company = Company::where('id', $item['company_id'])->field('id,deposit,company_money,user_id,day_count,company_type,province,city,area,street,village,brigade')->find(); // 可能要判断预存金是否满足
$find = App(RemoteController::class)->shang_date_total_price($company,1,$param);
$company = Company::where('id', $item['company_id'])->field('id,deposit,company_money,user_id,day_count,company_type,province,city,area,street,village,brigade,responsible_area')->find(); // 可能要判断预存金是否满足
$find = App(RemoteController::class)->shang_date_total_price($company,1,$param,$item['template_id']);
if ($find != false) {
$transaction_pool=TaskTemplate::where('id',$item['template_id'])->value('transaction_pool');
if($transaction_pool==0){
$find['transaction_pool']=0;
}else{
$find['transaction_pool']=$transaction_pool;
}
$res[$k]['extend']['transaction'] = $find;
Task::where('id',$item['id'])->update(['extend'=>json_encode(['transaction'=>$find],true)]);
} else {
@ -72,23 +80,38 @@ class TaskController extends BaseApiController
public function order_detail()
{
$parmas = $this->request->param();
$task=Task::where('id',$parmas['id'])->field('company_id,start_time,end_time,extend,type')->find();
$task=Task::where('id',$parmas['id'])->field('company_id,start_time,end_time,extend,type,template_id')->find();
if(!$task){
return $this->fail('任务不存在');
}
$company = Company::where('id', $task['company_id'])->field('id,deposit,company_money,user_id,day_count,company_type,province,city,area,street,village,brigade')->find(); // 可能要判断预存金是否满足
// $find = App(RemoteController::class)->shang_date_total_price($company);
$transaction_pool=TaskTemplate::where('id',$task['template_id'])->value('transaction_pool');
$company = Company::where('id', $task['company_id'])->field('id,deposit,company_money,user_id,day_count,company_type,province,city,area,street,village,brigade,responsible_area')->find(); // 可能要判断预存金是否满足
// $list = App(RemoteController::class)->shang_date_list($company, 1, $parmas);
$parmas['start_time']=date('Y-m-d',$task['start_time']);
$parmas['end_time']=$task['end_time'].' 23:59:59';
$list = App(RemoteController::class)->shang_date_list($company, 1, $parmas);
if ($task != false) {
$find['list'] = $list;
$find['extend']=$task['extend'];
if($transaction_pool==0){
$find['transaction_pool']=0;
}else{
$find['transaction_pool']=$transaction_pool;
}
return $this->success('ok', $find);
}
return $this->success('ok');
}
/**
* 入股
*/
public function shareholder(){
$parmas = $this->request->param();
$task = TaskLogic::detail($parmas);
return $this->success('ok', $task);
}
/**
* 三轮车详情
*/

View File

@ -2,149 +2,591 @@
namespace app\api\controller;
use app\common\logic\vehicle\VehicleLogic;
use app\common\enum\notice\NoticeEnum;
use app\common\model\Company;
use think\response\Json;
use app\common\model\contract\Contract;
use app\common\model\contract\VehicleContract;
use app\common\model\vehicle\VehicleRent;
use think\facade\Db;
class VehicleController extends BaseApiController
{
public function setContractByTownCompany():Json
//镇街公司想物流平台申请租赁车辆
public function setContractByTownCompany()
{
//获取参数
$params = $this->request->post(['party_a','num','car_ids']);
$params = $this->request->post(['num']);
//验证参数
if(empty($params['party_a']) || empty($params['num']) || empty($params['car_ids'])){
if(empty($params['num'])){
return $this->fail('缺少必要参数');
}
if(empty($this->userInfo['company_id'])){
return $this->fail('签约公司不存在');
//获取该公司已签约的小组服务公司数量
$villageCompany = Contract::field('id')->where('party_a',$this->userInfo['company_id'])->where('signing_timer',2)->count();
//系统车辆数量
$rentCar = VehicleRent::field('id')->where('company_id',$this->userInfo['company_id'])->where('status','<>',3)->where('type',0)->count();
//申请中的车辆
$applyCar = VehicleContract::field('num')->where('company_b_id',$this->userInfo['company_id'])->where('status','in','-1,0,1,2')->sum('num');
//自有车辆数量
$selfCar = VehicleRent::field('id')->where('company_id',$this->userInfo['company_id'])->where('status','<>',3)->where('type',1)->count();
//可在租车辆
$doubleRentCar = $villageCompany - $rentCar - $applyCar - $selfCar;
if($params['num'] > $doubleRentCar ){
return $this->fail('数量超过可再租车辆数');
}
$params['party_b'] = $this->userInfo['company_id'];
if($params['party_b'] == $params['party_a']){
return $this->fail('甲方和乙方不能是同一个公司');
//查找乙方公司信息
$party_b = Company::field('id,company_name,organization_code,master_name,master_phone,master_email,company_type')->where('id',$this->userInfo['company_id'])->find();
if(empty($party_b)) {
return $this->fail('数据不存在');
}
$params['rent_type'] = 1;//镇街公司批量租赁
$result = VehicleLogic::initiate_contract($params);
//返回数据
if($result['code'] == 1){
return $this->success($result['msg'],$result['data']);
}else{
return $this->fail($result['msg']);
//判断是否是镇街公司
if($party_b['company_type'] != 16){
return ['code'=>0,'msg'=>'非镇街公司不能签约'];
}
//发送生成合同给物流信息
$curl_result = curl_post(env('project.logistic_domain').'/api/signContract',[],[
'num' => $params['num'],
'company_id' => $party_b['id'],
'company_name' => $party_b['company_name'],
'company_code' => $party_b['organization_code'],
'company_user' => $party_b['master_name'],
'company_phone' => $party_b['master_phone'],
'company_email' => $party_b['master_email'],
]);
if(empty($curl_result)){
return $this->fail('null return from logistic');
}
if($curl_result['code'] == 0){
return $this->fail($curl_result['msg'].' from logistic');
}
Db::startTrans();
try {
$create_result = VehicleContract::create($curl_result['data']);
if($create_result->id){
Db::commit();
return $this->success('合同发起成功,等待审核 from task');
}else{
Db::rollback();
return $this->success('合同发起失败,请稍后重试 from task');
}
} catch (\Exception $e) {
Db::rollback();
return $this->fail($e->getMessage().' from task');
}
}
public function setContractByVillageCompany():Json
{
//镇街公司生成小组服务公司租赁合同
public function setContractByVillageCompany(){
//获取参数
$params = $this->request->post(['party_b','car_ids']);
//验证参数
if(empty($params['party_b']) || empty($params['car_ids'])){
$params = $this->request->post(['id','car_id']);
if(empty($params['id'])){
return $this->fail('缺少必要参数');
}
if(empty($this->userInfo['company_id'])){
return $this->fail('签约公司不存在');
//获取数据
$vehicleContract = VehicleContract::where('id',$params['id'])->find();
if(empty($vehicleContract)){
return $this->fail('未找到数据');
}
$params['party_a'] = $this->userInfo['company_id'];
if($params['party_b'] == $params['party_a']){
return $this->fail('甲方和乙方不能是同一个公司');
}
$params['rent_type'] = 2;//小组服务公司单辆租赁
$params['num'] = 1;
$result = VehicleLogic::initiate_contract($params);
//返回数据
if($result['code'] == 1){
return $this->success($result['msg'],$result['data']);
}else{
return $this->fail($result['msg']);
}
}
public function townCompanyCarList():Json {
//获取参数
$params = $this->request->get(['is_rent','license','company_name','page_no','page_size']);
if(empty($params['is_rent'])){
return $this->fail('缺少必要参数');
}
if(!in_array($params['is_rent'],[1,2])){
return $this->fail('参数错误');
}
//获取公司id
$params['company_id'] = $this->userInfo['company_id'];
//获取车辆
$result = VehicleLogic::townCompanyCarList($params);
//返回数据
if($result['code'] == 1){
return $this->success($result['msg'],$result['data']);
}else{
return $this->fail($result['msg']);
}
}
public function villageCompanyCar():Json {
//获取公司id
$company_id = $this->userInfo['company_id'];
if(empty($company_id)){
if($this->userInfo['company_id'] != $vehicleContract['company_a_id']){
return $this->fail('数据错误');
}
$result = VehicleLogic::villageCompanyCar($company_id);
//返回数据
if($result['code'] == 1){
return $this->success($result['msg'],$result['data']);
if($vehicleContract['status'] != -1) {
return $this->fail('数据状态错误');
}
if($vehicleContract['type'] == 0){
if(empty($params['car_id'])){
return $this->fail('缺少参数car_id');
}
}
if($vehicleContract['type'] == 0){
$car = VehicleRent::field('car_id as id,car_license as license')->where('car_id',$params['car_id'])->find();
if(empty($car)){
return $this->fail('车辆数据有误');
}
$json = json_encode($car->toArray());
//更改车辆状态
VehicleRent::where('car_id',$params['car_id'])->update(['status'=>1]);
//更改状态
$result = VehicleContract::where('id',$params['id'])->update(['status'=>0,'cars_info'=>$json,'update_time'=>time()]);
}else{
return $this->fail($result['msg']);
//更改状态
$result = VehicleContract::where('id',$params['id'])->update(['status'=>0,'update_time'=>time()]);
}
//返回数据
if($result){
return $this->success('合同生成成功,等待风控部审核');
}else{
return $this->fail('合同生成失败,请稍后重试');
}
}
public function addCar():Json {
//镇街公司发起合同
public function initiatingRentCarContract() {
//获取参数
$params = $this->request->post(['license']);
//验证参数
if(empty($params['license'])){
return $this->fail('缺啥破必要参数');
}
//获取公司id
$params['company_id'] = $this->userInfo['company_id'];
$result = VehicleLogic::addCar($params);
//返回数据
if($result['code'] == 1){
return $this->success($result['msg']);
}else{
return $this->fail($result['msg']);
}
}
public function getCarInfo():Json {
//获取参数
$params = $this->request->get(['car_id','car_type']);
if(empty($params['car_id']) || empty($params['car_type'])){
$params = $this->request->post(['id']);
if(empty($params['id'])){
return $this->fail('缺少必要参数');
}
if(!in_array($params['car_type'],[1,2])){
return $this->fail('车辆类型错误');
//获取数据
$contract = VehicleContract::where('id',$params['id'])->find();
if(empty($contract)){
return $this->fail('数据不存在');
}
//获取车辆详情
$result = curl_post('http://logistics.lihaink.cn/api/carInfo',[],$params);
//返回数据
if($result && $result['code'] == 1){
if($result['data']['type'] == 1 && $result['data']['lessee_two_flag'] == 1){
$lessee_two_company = Company::where('id','lessee_two_company_id')->find();
$result['data']['lessee_two_company_address'] = $lessee_two_company['address'];
if($contract['status'] != 1){
return $this->fail('合同状态错误');
}
$signData = [
'name' => $contract['company_a_name'] . '的合同',
'signatories' => [
['fullName' => $contract['company_a_name'], 'identityType' => 12, 'identityCard' => $contract['company_a_code'], 'email' => $contract['company_a_email'], 'noNeedVerify' => 1, 'signLevel' => 1],
['fullName' => $contract['company_b_name'], 'identityType' => 12, 'identityCard' => $contract['company_b_code'], 'email' => $contract['company_b_email'], 'noNeedVerify' => 1, 'signLevel' => 1]
],
'url' => $contract['file']
];
$notify_url = '';
if($contract['type'] == 0){
$notify_url = env('project.website_domain').'/api/index/systemCarRent';
}elseif($contract['type'] == 1){
$notify_url = env('project.website_domain').'/api/index/selfCarRent';
}elseif($contract['type'] == 2){
$notify_url = env('project.website_domain').'/api/index/cancelRent';
}
$signRes = app(JunziqianController::class)->VehicleRentSigning($signData, $params['id'],$notify_url);
if ($signRes->success) {
$contract->save([
'id' => $contract['id'],
'contract_no' => $signRes->data,
'status' => 2
]);
if($contract['type'] == 2){
$smsTitle = '《解约合同》';
}else{
$smsTitle = '《租赁合同》';
}
return $this->success($result['msg'],$result['data']);
}else{
return $this->fail($result['msg']);
$this->sendSms($params['id'],$smsTitle);
return $this->success('合同发送成功');
} else {
return $this->fail($signRes->msg);
}
}
public function checkNum():Json {
public function sendSmsAgain() {
//获取参数
$num = $this->request->get('num');
$result = curl_post('http://logistics.lihaink.cn/api/checkNum',[],['num'=>$num]);
//返回数据
if($result && $result['code'] == 1){
return $this->success($result['msg'],$result['data']);
$id = $this->request->post('id');
if(empty($id)){
return $this->fail('参数错误');
}
//获取数据
$contract = VehicleContract::where('id',$id)->find();
if(empty($contract)){
return $this->fail('数据错误');
}
if($contract['type'] == 2){
$smsTitle = '《解约合同》';
}else{
return $this->fail($result['msg']);
$smsTitle = '《租赁合同》';
}
$this->sendSms($id,$smsTitle);
return $this->success('发送成功');
}
//小组服务公司租赁申请
public function rentApply() {
//验证请求类型
if(!$this->request->isPost()){
return $this->fail('请求类型错误');
}
//获取参数
$license = $this->request->post('license');
//获取当前公司信息
$party_b = Company::field('id,company_name,master_name,master_phone,master_email,is_contract,organization_code,company_type')->where('id',$this->userInfo['company_id'])->find();
if(empty($party_b)){
return $this->fail('账号异常');
}
if($party_b['company_type'] != 18){
return $this->fail('非小组服务公司不能申请');
}
if($party_b['is_contract'] != 1){
return $this->fail('当前小组服务公司未签约');
}
//获取签约信息
$contract = Contract::where('party_b',$this->userInfo['company_id'])->where('signing_timer',2)->find();
$party_a = Company::field('id,company_name,master_name,master_phone,master_email,is_contract,organization_code,company_type')->where('id',$contract['party_a'])->find();
if(empty($contract) || empty($party_a)){
return $this->fail('未找到签约镇街公司');
}
if($party_a['company_type'] != 16){
return $this->fail('不能与非镇街公司签约');
}
if($party_a['is_contract'] != 1){
return $this->fail('当前镇街公司未签约');
}
//判断是否申请过
$vehicleContract = VehicleContract::where('company_b_id',$this->userInfo['company_id'])->where('type','<>',2)->where('status','<>',4)->find();
if(!empty($vehicleContract)){
return $this->fail('请勿重复申请');
}
//设置数据
$data = [
'contract_logistic_id' => 0,
'contract_no' => time(),
'company_a_id' => $party_a['id'],
'company_a_name' => $party_a['company_name'],
'company_a_code' => $party_a['organization_code'],
'company_a_user' => $party_a['master_name'],
'company_a_phone' => $party_a['master_phone'],
'company_a_email' => $party_a['master_email'],
'company_b_id' => $party_b['id'],
'company_b_name' => $party_b['company_name'],
'company_b_code' => $party_b['organization_code'],
'company_b_user' => $party_b['master_name'],
'company_b_phone' => $party_b['master_phone'],
'company_b_email' => $party_b['master_email'],
'cars_info' => isset($license) ? json_encode(['license'=>$license]) : null,
'num' => 1,
'type' => isset($license) ? 1 : 0,
'status' => -1,
'create_time' => time(),
'update_time' => time()
];
//写入数据
$result = VehicleContract::create($data);
if($result){
return $this->success('申请成功,待镇街公司审核');
}else{
return $this->fail('申请失败,请稍后重试');
}
}
//镇街公司驳回小组服务公司的租赁申请
public function rejectRentApply() {
//验证请求类型
if(!$this->request->isPost()){
return $this->fail('请求类型错误');
}
//获取参数
$params = $this->request->post(['id','content']);
if(empty($params['id']) || empty($params['content'])){
return $this->fail('缺少必要参数');
}
//获取数据
$vehicleContract = VehicleContract::where('id',$params['id'])->find();
if(empty($vehicleContract)){
return $this->fail('未查找到数据');
}
if($vehicleContract['company_a_id'] != $this->userInfo['company_id']){
return $this->fail('数据不匹配');
}
//更新
$result = VehicleContract::where('id',$params['id'])->update([
'status' => 4,
'reject_message' => $params['content']
]);
if($result){
return $this->success('驳回成功');
}else{
return $this->fail('驳回失败');
}
}
//镇街公司收到的小组服务公司租赁申请列表
public function rentApplyList() {
$data = VehicleContract::where('company_a_id',$this->userInfo['company_id'])->where('status','<>',4)->select();
return $this->success('请求成功',$data->toArray());
}
//小组服务公司租赁申请详情
public function rentApplyInfo() {
//获取参数
$id = $this->request->get('id');
if(empty($id)){
return $this->fail('缺少必要参数');
}
//获取数据
$vehicleContract = VehicleContract::where('id',$id)->find();
if(empty($vehicleContract)){
return $this->fail('获取数据失败');
}
if($vehicleContract['company_a_id'] != $this->userInfo['company_id']){
return $this->fail('数据不匹配');
}
$vehicleRentCars = VehicleRent::where('company_id',$vehicleContract['company_a_id'])->where('status',0)->select()->toArray();
$data = [
'vehicleContract' => $vehicleContract->toArray(),
'vehicleRentCars' => $vehicleRentCars
];
return $this->success('请求成功',$data);
}
//镇街公司车辆管理首页
public function townCompanyVehicleIndex() {
//获取公司信息
$company = Company::where('id',$this->userInfo['company_id'])->find();
if(empty($company)){
return $this->fail('数据错误');
}
if($company['company_type'] != 16){
return $this->fail('非镇街公司不能访问');
}
//获取小组服务公司申请信息
$vehicleContract = VehicleContract::where('company_a_id',$company['id'])->where('status','in','-1,0,1,2')->limit(4)->order('create_time desc')->select()->toArray();
//获取车辆列表
$vehicleRentCars = VehicleRent::where('company_id',$company['id'])->where('status','in','0,1,2')->select()->each(function($item){
if($item['status'] == 2){
$item['rent_user'] = Company::field('company_name,master_name as user_name,master_phone as user_phone,province,city,area,street,village,brigade')->where('id',$item['rent_company_id'])->find()->append(['province_name', 'city_name', 'area_name', 'street_name', 'village_name','brigade_name']);
}
})->toArray();
//获取该公司已签约的小组服务公司数量
$villageCompany = Contract::field('id')->where('party_a',$company['id'])->where('signing_timer',2)->count();
//系统车辆数量
$rentCar = VehicleRent::field('id')->where('company_id',$company['id'])->where('status','<>', 3)->where('type',0)->count();
//申请中的车辆
$applyCar = VehicleContract::field('num')->where('company_b_id',$company['id'])->where('status','in','-1,0,1,2')->sum('num');
//自有车辆数量
$selfCar = VehicleRent::field('id')->where('company_id',$company['id'])->where('status','<>',3)->where('type',1)->count();
//可在租车辆
$doubleRentCar = $villageCompany - $rentCar - $applyCar - $selfCar;
//设置数据
$data = [
'apply' => $vehicleContract,
'car_list' => $vehicleRentCars,
'monitor_num' => $villageCompany,
'rent_num' => $rentCar,
'can_rent_num' => intval($doubleRentCar),
'self_num' => $selfCar,
'apply_num' => $applyCar
];
//返回
return $this->success('请求成功',$data);
}
public function villageCompanyIndex() {
//获取公司信息
$company = Company::field('id,company_type,province,city,area,street,village,brigade')->where('id',$this->userInfo['company_id'])->find()->append(['province_name', 'city_name', 'area_name', 'street_name', 'village_name','brigade_name']);
if(empty($company)){
return $this->fail('数据错误');
}
if($company['company_type'] != 18 ){
return $this->fail('非小组公司不能访问');
}
//获取申请信息
$vehicleContract = VehicleContract::where('company_b_id',$company['id'])->order('id desc')->find();
if(empty($vehicleContract)){
return $this->success('没有数据,请申请',['status'=>-2]);
}
if($vehicleContract['type'] == 2){
return $this->success('合同已解除',['status'=>-3]);
}
if($vehicleContract['status'] == 3){
if(!empty($vehicleContract['cars_info'])){
$vehicleContract['cars_info'] = json_decode($vehicleContract['cars_info'],true);
if(!empty($vehicleContract['cars_info'])){
$arr = $vehicleContract['cars_info'];
$arr['mileage'] = 0;
$position = curl_get(env('project.logistic_domain').'/api/getCarLocal?car_id='.$arr['id']);
if($position && $position['code'] == 1){
$arr['lon'] = $position['data']['lon'];
$arr['lat'] = $position['data']['lat'];
}
$vehicleContract['cars_info'] = $arr;
}
}
$vehicleContract['province'] = $company['province_name'];
$vehicleContract['city'] = $company['city_name'];
$vehicleContract['area'] = $company['area_name'];
$vehicleContract['street'] = $company['street_name'];
$vehicleContract['village'] = $company['village_name'];
$vehicleContract['brigade'] = $company['brigade_name'];
}
//返回数据
return $this->success('请求成功',$vehicleContract->toArray());
}
//车辆详情
public function vehicleInfo() {
//获取参数
$carId = $this->request->get('car_id');
if(empty($carId)){
return $this->fail('缺少必要参数');
}
//获取数据
$data = VehicleRent::where('car_id',$carId)->find();
if(empty($data)){
return $this->fail('数据错误');
}
$data['mileage'] = 0;
if($data['status'] == 2){
$data['company'] = Company::field('company_name,master_name as user_name,master_phone as user_phone,province,city,area,street,village,brigade')->where('id',$data['rent_company_id'])->find()->append(['province_name', 'city_name', 'area_name', 'street_name', 'village_name','brigade_name']);
//获取合同
$data['contract'] = VehicleContract::field('id,contract_no,contract_url,file,status,create_time,update_time')->where('id',$data['contract_id'])->findOrEmpty();
}
//当前坐标位置
$position = curl_get(env('project.logistic_domain').'/api/getCarLocal?car_id='.$carId);
if($position && $position['code'] == 1){
$data['position'] = $position['data'];
}else{
$data['position'] = [];
}
return $this->success('请求成功',$data->toArray());
}
public function vehicleTrack() {
//获取参数
$params = $this->request->post(['car_id','start_time','end_time']);
if(empty($params['car_id']) || empty($params['start_time']) || empty($params['end_time'])){
return $this->fail('缺少必要参数');
}
//获取轨迹
$url = env('project.logistic_domain').'/api/getCarHistory?car_id='.$params['car_id'].'&start_time='.$params['start_time'].'&end_time='.$params['end_time'];
$result = curl_get($url);
$data = [];
foreach($result['data'] as $k => $v){
$data[$k]['latitude'] = $v['lat'];
$data[$k]['longitude'] = $v['lon'];
}
return $this->success('success',$data);
}
public function cancelContract() {
//获取参数
$params = $this->request->post(['car_id']);
if(empty($params['car_id'])){
return $this->fail('参数错误');
}
//获取车辆信息
$carInfo = VehicleRent::where('car_id',$params['car_id'])->where('type',1)->find();
if(empty($carInfo)){
return $this->fail('车辆信息错误');
}
if($carInfo['rent_company_id'] != $this->userInfo['company_id']){
return $this->fail('当前公司与车辆信息不匹配');
}
//获取原签约信息
$contract = VehicleContract::where('id',$carInfo['contract_id'])->where('status',3)->find();
if(empty($contract)){
return $this->fail('原签约信息错误');
}
//获取甲方公司信息
$party_a = Company::where('id',$carInfo['company_id'])->find();
if(empty($party_a)){
return $this->fail('甲方公司信息错误');
}
//获取乙方公司信息
$party_b = Company::where('id',$this->userInfo['company_id'])->find();
if(empty($party_b)){
return $this->fail('乙方公司信息错误');
}
//判断是否申请过
$vehicleContract = VehicleContract::where('company_b_id',$this->userInfo['company_id'])->where('type',3)->where('status','<>',4)->find();
if(!empty($vehicleContract)){
return $this->fail('请勿重复申请');
}
//设置数据
$data = [
'contract_logistic_id' => 0,
'contract_no' => time(),
'company_a_id' => $party_a['id'],
'company_a_name' => $party_a['company_name'],
'company_a_code' => $party_a['organization_code'],
'company_a_user' => $party_a['master_name'],
'company_a_phone' => $party_a['master_phone'],
'company_a_email' => $party_a['master_email'],
'company_b_id' => $party_b['id'],
'company_b_name' => $party_b['company_name'],
'company_b_code' => $party_b['organization_code'],
'company_b_user' => $party_b['master_name'],
'company_b_phone' => $party_b['master_phone'],
'company_b_email' => $party_b['master_email'],
'cars_info' => json_encode(['id'=>$carInfo['car_id'],'license'=>$carInfo['car_license']]),
'num' => 1,
'type' => 2,
'status' => -1,
'create_time' => time(),
'update_time' => time(),
'old_file' => $contract['contract_url'],
];
//写入数据
$result = VehicleContract::create($data);
if($result){
return $this->success('申请成功,待镇街公司审核');
}else{
return $this->fail('申请失败,请稍后重试');
}
}
public function townCompanyContractList() {
//获取公司信息
$company = Company::where('id',$this->userInfo['company_id'])->find();
if(empty($company)){
return $this->fail('请求错误');
}
if($company['company_type'] != 16){
return $this->fail('非镇街公司不能访问');
}
$data = VehicleContract::field('id,contract_no,contract_url,status,create_time,update_time')->where('contract_logistic_id','<>',0)->where('company_b_id',$company['id'])->select();
return $this->success('请求成功',$data->toArray());
}
public function sendSms($id,$title) {
//获取合同数据
$contract = VehicleContract::where('id',$id)->find();
if ($contract && !$contract->isEmpty() && $contract['file'] != '') {
//发送短信
$data = [
//甲方
[
"applyNo" => $contract['contract_no'],
"fullName" => $contract['company_a_name'],
"identityCard" => $contract['company_a_code'],
"identityType" => 12,
"master_phone" => $contract['company_a_phone'],
"type"=>"party_a"
],
//乙方
[
"applyNo" => $contract['contract_no'],
"fullName" => $contract['company_b_name'],
"identityCard" => $contract['company_b_code'],
"identityType" => 12,
"master_phone" => $contract['company_b_phone'],
"type"=>"party_b"
],
];
$url = [];
foreach ($data as $v) {
$res = app(JunziqianController::class)->SigningLink($v);
if (!$res->success) {
return false;
}
if ($v['type'] == 'party_a') {
$url['party_a'] =$res->data;
} else {
$url['party_b'] =$res->data;
}
//发送短信
$sms = [
'mobile' => $v['master_phone'],
'name' => $v['fullName'],
'type' => $title,
'code' => 'api/Hetong/info?id='.$id.'&type='.$v['type'],
'scene' => 'WQ'
];
$scene = NoticeEnum::getSceneByTag($sms['scene']);
if (empty($scene)) {
throw new \Exception('场景值异常');
}
event('Notice', [
'scene_id' => $scene,
'params' => $sms
]);
}
VehicleContract::where('id', $id)->update(['url' => json_encode($url)]);
return true;
}else{
return false;
}
}
}

View File

@ -115,8 +115,9 @@ class AccountLogLists extends BaseApiDataLists
$endTime = $date + 86399; // 获取该日期24小时后的时间戳
$where[] = ['create_time', 'between', [$startTime, $endTime]];
}else{
$where[] = ['create_time', 'between', [strtotime(date('Y-m-d')), strtotime(date('Y-m-d'))+86366]];
// $where[] = ['create_time', 'between', [strtotime(date('Y-m-d')), strtotime(date('Y-m-d'))+86366]];
}
$lists = UserAccountLog::field($field)
->where($where)
->with(['userInfo'])

View File

@ -16,6 +16,7 @@ namespace app\api\logic;
use app\common\logic\BaseLogic;
use app\common\model\AppUpdate;
use app\common\model\article\Article;
use app\common\model\decorate\DecoratePage;
use app\common\model\decorate\DecorateTabbar;
@ -24,7 +25,6 @@ use app\common\model\user\UserRole;
use app\common\service\ConfigService;
use app\common\service\FileService;
/**
* index
* Class IndexLogic
@ -106,66 +106,89 @@ class IndexLogic extends BaseLogic
* @author 段誉
* @date 2022/9/21 19:38
*/
public static function getConfigData($group_id=1)
public static function getConfigData($group_id = 1,$parmas=[])
{
if($group_id==null){
$group_id=1;
if ($group_id == null) {
$group_id = 1;
}
$group_find=UserRole::where('id',$group_id)->find();
$menu=[];
if($group_find){
$select=UserMenu::where('id','in',$group_find['menu_arr'])->field('id,pid,name,icon,sort,paths')->limit(100)->select()->toArray();
$arr=[];
foreach($select as $k=>$v){
if($v['pid']==0){
$arr[]=$v;
$group_find = UserRole::where('id', $group_id)->find();
$menu = [];
if ($group_find) {
$select = UserMenu::where('id', 'in', $group_find['menu_arr'])->field('id,pid,name,icon,sort,paths')->order('sort', 'desc')->limit(100)->select()->toArray();
$arr = [];
foreach ($select as $k => $v) {
if ($v['pid'] == 0) {
$arr[] = $v;
}
}
foreach($arr as $k=>$v){
foreach($select as $kk=>$vv){
if($v['id']==$vv['pid']){
$arr[$k]['children'][]=$vv;
foreach ($arr as $k => $v) {
foreach ($select as $kk => $vv) {
if ($v['id'] == $vv['pid']) {
$arr[$k]['children'][] = $vv;
}
}
}
$menu=$arr;
$menu = $arr;
}
// 底部导航
$tabbar = DecorateTabbar::getTabbarLists();
// $tabbar = DecorateTabbar::getTabbarLists();
// 导航颜色
$style = ConfigService::get('tabbar', 'style', config('project.decorate.tabbar_style'));
// $style = ConfigService::get('tabbar', 'style', config('project.decorate.tabbar_style'));
// 登录配置
$loginConfig = [
// 登录方式
'login_way' => ConfigService::get('login', 'login_way', config('project.login.login_way')),
// 注册强制绑定手机
'coerce_mobile' => ConfigService::get('login', 'coerce_mobile', config('project.login.coerce_mobile')),
// 政策协议
'login_agreement' => ConfigService::get('login', 'login_agreement', config('project.login.login_agreement')),
// 第三方登录 开关
// 'third_auth' => ConfigService::get('login', 'third_auth', config('project.login.third_auth')),
// 微信授权登录
'wechat_auth' => ConfigService::get('login', 'wechat_auth', config('project.login.wechat_auth')),
// qq授权登录
// 'qq_auth' => ConfigService::get('login', 'qq_auth', config('project.login.qq_auth')),
];
// $loginConfig = [
// // 登录方式
// 'login_way' => ConfigService::get('login', 'login_way', config('project.login.login_way')),
// // 注册强制绑定手机
// 'coerce_mobile' => ConfigService::get('login', 'coerce_mobile', config('project.login.coerce_mobile')),
// // 政策协议
// 'login_agreement' => ConfigService::get('login', 'login_agreement', config('project.login.login_agreement')),
// // 第三方登录 开关
// // 'third_auth' => ConfigService::get('login', 'third_auth', config('project.login.third_auth')),
// // 微信授权登录
// 'wechat_auth' => ConfigService::get('login', 'wechat_auth', config('project.login.wechat_auth')),
// // qq授权登录
// // 'qq_auth' => ConfigService::get('login', 'qq_auth', config('project.login.qq_auth')),
// ];
// 网址信息
$website = [
'shop_name' => ConfigService::get('website', 'shop_name'),
'shop_logo' => FileService::getFileUrl(ConfigService::get('website', 'shop_logo')),
];
// H5配置
// $website = [
// 'shop_name' => ConfigService::get('website', 'shop_name'),
// 'shop_logo' => FileService::getFileUrl(ConfigService::get('website', 'shop_logo')),
// ];
$versionInfo = [];
$version='1.0.0';
if((isset($parmas['os'])&&$parmas['os']=='android')){
$versionInfo=AppUpdate::where('type',2)->order('id','desc')->find();
}elseif((isset($parmas['os'])&&$parmas['os']=='ios')){
$versionInfo=AppUpdate::where('type',1)->order('id','desc')->find();
}elseif(self::isAndroid()){
$versionInfo=AppUpdate::where('type',2)->order('id','desc')->find();
}elseif(self::isIOS()){
$versionInfo=AppUpdate::where('type',1)->order('id','desc')->find();
}
if($versionInfo){
$version=$versionInfo['version'];
}
return [
'domain' => FileService::getFileUrl(),
'style' => $style,
'tabbar' => $tabbar,
// 'style' => $style,
// 'tabbar' => $tabbar,
'menu' => $menu,
'login' => $loginConfig,
'website' => $website,
'version'=> config('project.version')
// 'login' => $loginConfig,
// 'website' => $website,
'version' => $version,
'version_info' => $versionInfo,
];
}
}
public static function isAndroid()
{
$userAgent = $_SERVER['HTTP_USER_AGENT'];
return strpos($userAgent, 'Android') !== false;
}
public static function isIOS()
{
$userAgent = $_SERVER['HTTP_USER_AGENT'];
return strpos($userAgent, 'iPhone') !== false;
}
}

View File

@ -29,7 +29,8 @@ use app\common\service\{
};
use app\common\model\user\{User, UserAuth};
use think\facade\{Db, Config};
use Firebase\JWT\JWT;
use Firebase\JWT\Key;
/**
* 登录逻辑
* Class LoginLogic
@ -135,7 +136,13 @@ class LoginLogic extends BaseLogic
//返回登录信息
$avatar = $user->avatar ?: Config::get('project.default_image.user_avatar');
$avatar = FileService::getFileUrl($avatar);
if(isset($params['shop_token'])&&$params['shop_token']!=''){
$jwt = JWT::decode($params['shop_token'], new Key('ae47e94a7dcd1fdfacb499b60e361a8d', 'HS256'));
if ($jwt) {
$user_id = $jwt->jti[0];
Db::name('user_other')->insert(['user_id'=>$user->id,'other_user_id'=>$user_id,'type'=>'shop_user']);
}
}
return [
'nickname' => $userInfo['nickname'],
'sn' => $userInfo['sn'],
@ -149,7 +156,33 @@ class LoginLogic extends BaseLogic
}
}
public static function shop($payload,$type=1){
$jwt = JWT::decode($payload, new Key('ae47e94a7dcd1fdfacb499b60e361a8d', 'HS256'));
if ($jwt) {
$user_id = $jwt->jti[0];
$find = Db::name('user_other')->where('other_user_id', $user_id)->where('type', 'shop_user')->find();
if ($find) {
$user = User::where('id', $find['user_id'])->findOrEmpty();
if ($user->isEmpty()) {
self::setError('无登录信息');
return false;
}
$userInfo = UserTokenService::setToken($user->id, 3);
//返回登录信息
$avatar = $user->avatar ?: Config::get('project.default_image.user_avatar');
$avatar = FileService::getFileUrl($avatar);
return [
'nickname' => $userInfo['nickname'],
'sn' => $userInfo['sn'],
'mobile' => $userInfo['mobile'],
'avatar' => $avatar,
'token' => $userInfo['token'],
];
}
}
self::setError('无登录信息');
return false;
}
/**
* @notes 退出登录
* @param $userInfo

View File

@ -19,7 +19,7 @@ use app\common\logic\BaseLogic;
use app\common\model\recharge\RechargeOrder;
use app\common\model\user\User;
use app\common\service\ConfigService;
use think\facade\Log;
/**
* 充值逻辑层
@ -46,6 +46,9 @@ class RechargeLogic extends BaseLogic
'pay_status' => PayEnum::UNPAID,
'order_amount' => $params['money'],
];
if(isset($params['task_id']) &&$params['task_id']>0){
$data['extend']=json_encode(['task_id'=>$params['task_id'],'type'=>1]);
}
$order = RechargeOrder::create($data);
return [

View File

@ -78,13 +78,16 @@ class UserTokenService
public static function overtimeToken($token)
{
$time = time();
$adminSession = UserSession::where('token', '=', $token)->find();
$userSession = UserSession::where('token', '=', $token)->find();
if ($userSession->isEmpty()) {
return false;
}
//延长token过期时间
$adminSession->expire_time = $time + Config::get('project.user_token.expire_duration');
$adminSession->update_time = $time;
$adminSession->save();
$userSession->expire_time = $time + Config::get('project.user_token.expire_duration');
$userSession->update_time = $time;
$userSession->save();
return (new UserTokenCache())->setUserInfo($adminSession->token);
return (new UserTokenCache())->setUserInfo($userSession->token);
}

View File

@ -20,6 +20,7 @@ use app\common\logic\BaseLogic;
use app\common\model\auth\Admin;
use app\common\model\contract\Contract;
use app\common\model\user\User;
use think\Exception;
use think\exception\ValidateException;
use think\facade\Db;
use app\adminapi\validate\CompanyValidate;
@ -54,6 +55,13 @@ class CompanyLogic extends BaseLogic
// if (!empty($exist)) {
// throw new ValidateException('该账号已经注册过企业');
// }
// 手机号不能重复
$companyInfo = Company::where(['master_phone'=>$params['master_phone']])->find();
if (!empty($companyInfo)) {
Db::rollback();
throw new Exception('手机号已存在');
}
$arr=[
'company_name' => $params['company_name'],
'organization_code' => $params['organization_code'],
@ -66,6 +74,7 @@ class CompanyLogic extends BaseLogic
'address' => $params['address'],
'company_type' => $params['company_type'],
'master_name' => $params['master_name'],
'master_id_card' => $params['id_card'], // 主联系人证件号
'master_position' => $params['master_position'],
'master_phone' => $params['master_phone'],
'master_email' => $params['master_email'],
@ -114,7 +123,7 @@ class CompanyLogic extends BaseLogic
$admin['phone']=$params['master_phone'];
$admin['create_time']=time();
$admin['update_time']=time();
$user_id=User::strict(false)->insertGetId($admin);
$user_id = User::strict(false)->insertGetId($admin);
Company::where('id',$data['id'])->update(['admin_id'=>$admin_id,'user_id'=>$user_id]);
$scheduling=[
@ -123,9 +132,6 @@ class CompanyLogic extends BaseLogic
'company_type'=>$params['company_type'],
];
TaskScheduling::create($scheduling);
// if ($level_one > 0) {
// $contractId = self::contract($data['id'], $params);
// }
Db::commit();
return true;
} catch (\Exception $e) {
@ -147,6 +153,12 @@ class CompanyLogic extends BaseLogic
{
Db::startTrans();
try {
// 手机号不能重复
$companyInfo = Company::where(['master_phone'=>$params['master_phone']])->find();
if (!empty($companyInfo)) {
Db::rollback();
throw new Exception('手机号已存在');
}
$arr=[
'company_name' => $params['company_name'],
'organization_code' => $params['organization_code'],
@ -159,6 +171,7 @@ class CompanyLogic extends BaseLogic
'address' => $params['address'],
'company_type' => $params['company_type'],
'master_name' => $params['master_name'],
'master_id_card' => $params['id_card'], // 主联系人证件号
'master_position' => $params['master_position'],
'master_phone' => $params['master_phone'],
'master_email' => $params['master_email'],
@ -247,7 +260,11 @@ class CompanyLogic extends BaseLogic
}
$data['area_manager_name'] = Db::name('admin')->where('id', $data['area_manager'])->value('name');
$data['responsible_area'] = explode(',', $data['responsible_area']);
$data['contract'] = Contract::where(['party_b' => $data['id']])->with(['party_a_info', 'contractType'])->find();
$where[]=['party_b','=', $data['id']];
if(isset($params['contract_type'])){
$where[]=['contract_type','=',$params['contract_type']];
}
$data['contract'] = Contract::where($where)->with(['party_a_info', 'contractType'])->find();
}
return $data;
@ -270,15 +287,4 @@ class CompanyLogic extends BaseLogic
$model->save();
return $model->id;
}
public static function getAllCompanyIds()
{
$companyId = request()->adminInfo['company_id'] ?? 0;
$companyIds[] = $companyId;
$companies = loopGetChild(Company::class, $companyId, 'level_one', 'id,level_one');
if (!empty($companies)) {
$companyIds = array_merge(array_column($companies, 'id'), $companyIds);
}
return array_filter($companyIds);
}
}

View File

@ -16,7 +16,10 @@ namespace app\common\logic;
use app\common\enum\PayEnum;
use app\common\enum\user\AccountLogEnum;
use app\common\model\company\CompanyAccountLog;
use app\common\model\recharge\RechargeOrder;
use app\common\model\task\Task;
use app\common\model\task_template\TaskTemplate;
use app\common\model\user\User;
use think\facade\Db;
use think\facade\Log;
@ -61,21 +64,30 @@ class PayNotifyLogic extends BaseLogic
public static function recharge($orderSn, $extra = [])
{
$order = RechargeOrder::where('sn', $orderSn)->findOrEmpty();
// 增加用户累计充值金额及用户余额
$user = User::findOrEmpty($order->user_id);
$user->total_recharge_amount += $order->order_amount;
$user->user_money += $order->order_amount;
$user->save();
// 记录账户流水
AccountLogLogic::add(
$order->user_id,
AccountLogEnum::UM_INC_RECHARGE,
AccountLogEnum::INC,
$order->order_amount,
$order->sn,
'用户充值'
);
if ($order && isset($order['extend']['type']) && $order['extend']['type'] == 1) {
$find = Task::where('id', $order['extend']['task_id'])->find();
$extend=$find['extend'];
$extend['shareholder']['order_sn']=$order->sn;
Task::where('id', $order['extend']['task_id'])->update(['status' => 3,'extend'=>json_encode($extend)]);
TaskTemplate::where('id', $find['template_id'])->update(['over_decimal' => $order->order_amount]);
} else {
// 增加用户累计充值金额及用户余额
$user = User::findOrEmpty($order->user_id);
$user->total_recharge_amount += $order->order_amount;
$user->user_money += $order->order_amount;
$user->save();
// 记录账户流水
AccountLogLogic::add(
$order->user_id,
AccountLogEnum::UM_INC_RECHARGE,
AccountLogEnum::INC,
$order->order_amount,
$order->sn,
'用户充值'
);
}
// 更新充值订单状态
$order->transaction_id = $extra['transaction_id'];
@ -83,6 +95,4 @@ class PayNotifyLogic extends BaseLogic
$order->pay_time = time();
$order->save();
}
}

View File

@ -177,13 +177,41 @@ class ContractLogic extends BaseLogic
return $data['status'] == 1 ? '已签约' : '未签约';
})
->find();
$data['signed_contract_url'] = self::getSignedContract($data);
return $data;
}
/**
* 获取已签约盖章的合同
*/
public static function getSignedContract($contract)
{
$signedContractUrl = '';
if($contract['status'] == 1){
if ($contract['contract_url'] == '') {
$res = app(JunziqianController::class)->download_file($contract['contract_no']);
if ($res['code'] == 1) {
$signedContractUrl = $res['data']['url'];
}
}else {
$signedContractUrl = env('url.url_prefix').$contract['contract_url'];
}
}
return $signedContractUrl;
}
//生成合同
public static function Initiate_contract($data)
{
$model = Contract::where(['party_b' => $data['party_b']])->find();
// 平台公司可以直接签合同,其他类型的公司需要做过合同乙方才能签合同
$partyACompamyInfo = Company::where(['id'=>$data['party_a']])->find();
if ($partyACompamyInfo['company_type'] != 30) {
$partyAModel = Contract::where(['party_b' => $data['party_a']])->find();
if (empty($partyAModel)) {
return self::setError('当前甲方暂无和平台或上级公司签约,请先进行签约');
}
}
$model = Contract::where(['party_b' => $data['party_b'],'contract_type'=>$data['contract_type']])->find();
if (empty($model)) {
$model = new Contract();
$model->contract_no = time();
@ -205,15 +233,6 @@ class ContractLogic extends BaseLogic
$model->update_time = time();
$model->setAttrs($data);
$res = $model->save($data);
//如果是租赁合同,调用接口通知物流系统
// if($data['contract_type'] == 29){
// curl_post('http://logistics.lihaink.cn/api/setContract',[],[
// 'party_a' => $data['party_a'],
// 'party_b' => $data['party_b'],
// 'num' => $data['num'],
// 'rent_type' => 1
// ]);
// }
if($res){
return ['code'=>1,'msg'=>'发起成功,等待平台风控部上传合同','data'=>['id'=>$model->id]];
}else{
@ -235,17 +254,17 @@ class ContractLogic extends BaseLogic
}
if ($result && isset($result['contract']) && isset($result['contract']['file']) && $result['contract']['file'] != '') {
if ($result['contract']['check_status'] == 3) {
return self::setError('你已经生成过合同,请重复生成');
return self::setError('你已经生成过合同,请重复生成');
}
if($type==1){
$name=$result['company_name'];
$data = [
'name' => $name . '的合同',
'signatories' => [
['fullName' => $name, 'identityType' => 12, 'identityCard' => $result['organization_code'], 'email' => $result['master_email'], 'noNeedVerify' => 1, 'signLevel' => 1],
['fullName' => $result['contract']['party_a_info']['company_name'], 'identityType' => 12, 'identityCard' => $result['contract']['party_a_info']['organization_code'], 'email' => $result['contract']['party_a_info']['master_email'], 'noNeedVerify' => 1, 'signLevel' => 1]
['fullName' => $name, 'identityType' => 12, 'identityCard' => $result['organization_code'], 'email' => $result['master_email'], 'noNeedVerify' => 1, 'authLevel'=>[11],'signLevel' => 1],
['fullName' => $result['contract']['party_a_info']['company_name'], 'identityType' => 12, 'identityCard' => $result['contract']['party_a_info']['organization_code'], 'email' => $result['contract']['party_a_info']['master_email'], 'noNeedVerify' => 1, 'authLevel'=>[11],'signLevel' => 1]
],
'url' => $result['contract']['file']
'url' => $result['contract']['file'],
];
}else{
$name=$result['nickname'];

View File

@ -5,34 +5,38 @@ namespace app\common\logic\finance;
use app\common\enum\user\AccountLogEnum;
use app\common\logic\AccountLogLogic;
use app\common\model\Company;
use app\common\model\task_scheduling_plan\TaskSchedulingPlan;
use app\common\model\company\CompanyAccountLog;
use app\common\model\task\Task;
use app\common\model\user\UserAccountLog;
use app\common\model\user\User;
use think\facade\Db;
use think\facade\Log;
class ShareProfit
{
public function first($data, $company)
public function first($data, $company, $datas = [])
{
if ($company['day_count'] <= $data['proportion_one']) {
$proportion = $data['proportion_one'];
} else {
$proportion = $data['proportion_two'];
}
//总金额除以2等于不可提现账号金额和收益
$master_maoney = bcdiv($data['money'], 2, 2);
//收益的百分之25为负责人的收益其余为成员的平分收益
$master_maoney_user = bcdiv($master_maoney, 2, 2);
//公司账户预存金
// $company_money = $master_maoney;
//成员数量
$userAll = User::where('company_id', $data['company_id'])->where('admin_id', 0)->field('id,user_money')->select();
$yser_all_count = count($userAll);
$member_maoney_user = bcdiv($master_maoney_user, $yser_all_count, 2);
//负责人
// if ($company['day_count'] <= $data['proportion_one']) {
// $proportion = $data['proportion_one'];
// } else {
// $proportion = $data['proportion_two'];
// }
Db::startTrans();
try {
$proportion = 0;
//总金额除以2等于不可提现账号金额和收益
$master_maoney = bcdiv($data['money'], 2, 2);
//收益的百分之25为负责人的收益其余为成员的平分收益
$master_maoney_user = bcdiv($master_maoney, 2, 2);
//公司账户预存金
// $company_money = $master_maoney;
//成员数量
$userAll = User::where('company_id', $data['company_id'])->where('admin_id', 0)->field('id,user_money')->select();
$yser_all_count = count($userAll);
$member_maoney_user = bcdiv($master_maoney_user, $yser_all_count, 2);
//负责人
$arr = [$company['user_id'], AccountLogEnum::UM_INC_TASK, AccountLogEnum::INC, $master_maoney_user, $data['sn'], $data['msg'] . '获得收益' . $master_maoney_user . '元', ['company_id' => $data['company_id'], 'proportion' => $proportion], $data['status']];
$this->master($arr);
$arr_two = [$company['user_id'], AccountLogEnum::UM_INC_TASKUSER, AccountLogEnum::INC, $master_maoney_user, $data['sn'], $data['msg'] . '获得账户余额' . $master_maoney_user . '元', ['company_id' => $data['company_id'], 'proportion' => $proportion], $data['status']];
@ -46,7 +50,52 @@ class ShareProfit
$this->Account($arr_two);
}
//公司
Company::where('id', $data['company_id'])->update(['deposit'=>Db::raw('deposit+' . $master_maoney), 'company_money'=>Db::raw('company_money+' .$master_maoney)]);
if ($data['company_account_type'] == 1) {
$deposit_count = bcadd($company['deposit'], $master_maoney, 2);
$this->AccountLog($data['company_id'], $deposit_count, $master_maoney);
$company_money_count = bcadd($company['company_money'], $master_maoney, 2);
$this->AccountLog($data['company_id'], $company_money_count, $master_maoney);
Company::where('id', $data['company_id'])->update(['deposit' => Db::raw('deposit+' . $master_maoney), 'company_money' => Db::raw('company_money+' . $master_maoney)]);
} elseif ($data['company_account_type'] == 2) {
$company_money_count = bcadd($company['shareholder_money'], $data['money'], 2);
$this->AccountLog($data['company_id'], $company_money_count, $data['money'], 1, 2);
Company::where('id', $data['company_id'])->update([
'deposit' => Db::raw('deposit+' . $master_maoney),
'company_money' => Db::raw('company_money+' . $master_maoney),
'shareholder_money' => Db::raw('shareholder_money+' . $datas['template_info']['over_decimal'])
]);
}
if (isset($datas['template_info']['type']) && $datas['template_info']['type'] == 35) {
if ($company['responsible_area']) {
$responsible_area = explode(',', $company['responsible_area']);
} else {
Log::error('结算失败:没有区域' . json_encode($data));
return false;
}
$director_uid = Task::where('id', $datas['task_id'])->value('director_uid');
$shareholder_user = User::where('id', $director_uid)->field('id,nickname,brigade')->find();
$money = bcdiv($datas['template_info']['over_decimal'], count($responsible_area), 2);
$left_amount = 0;
foreach ($responsible_area as $kkk => $vvv) {
$left_amount += bcadd(1000, $money, 2);
$company_log = [
'sn' => generate_sn(UserAccountLog::class, 'sn', 20),
'company_id' => $datas['company_id'],
'change_object' => CompanyAccountLog::SHAREHOLDER, //变动对象
'change_type' => CompanyAccountLog::TASK_INC_SHAREHOLDER_MONEY, //变动类型
'action' => CompanyAccountLog::INC, //1-增加 2-减少
'left_amount' => $left_amount, //变动后数量
'change_amount' => $money, //变动数量
'remark' => $shareholder_user['nickname'] . '完成了' . $vvv . '队的股金:' . $money . '元',
'status' => 1,
];
CompanyAccountLog::create($company_log);
}
}
Db::commit();
return true;
} catch (\Exception $e) {
@ -56,6 +105,20 @@ class ShareProfit
}
}
public function AccountLog($companyId, $left_amount, $changeAmount, $change_object = 1, $change_type = 1, $action = 1)
{
$company_log = [
'sn' => generate_sn(UserAccountLog::class, 'sn', 20),
'company_id' => $companyId,
'change_object' => $change_object, //变动对象
'change_type' => $change_type, //变动类型
'action' => $action, //1-增加 2-减少
'left_amount' => $left_amount, //变动后数量
'change_amount' => $changeAmount, //变动数量
'status' => 1,
];
CompanyAccountLog::create($company_log);
}
/**负责人的分润
* @param $data
*/

View File

@ -17,6 +17,7 @@ namespace app\common\logic\task;
use app\common\model\task\Task;
use app\common\logic\BaseLogic;
use app\common\model\Company;
use app\common\model\informationg\UserInformationg;
use app\common\model\task_scheduling_plan\TaskSchedulingPlan;
use app\common\model\task_template\TaskTemplate;
@ -70,20 +71,29 @@ class TaskLogic extends BaseLogic
/**
* 定时添加任务
*/
public static function CronAdd(array $v,$datas): bool
public static function CronAdd(array $v, $datas): bool
{
try {
$time=strtotime(date('Y-m-d'));
$TaskSchedulingPlan=TaskSchedulingPlan::create([
if ($v['types'] == 3) {
$task = Task::where('template_id', $v['id'])->find();
if ($task) {
Task::where('template_id', $v['id'])->update(['start_time' => $task['start_time'] + 86400, 'end_time' => $task['end_time'] + 86400]);
TaskTemplate::where('id', $v['id'])->inc('day_count')->update();
return true;
}
}
$time = strtotime(date('Y-m-d'));
$TaskSchedulingPlan_data = [
'create_user_id' => 0,
'company_id' => $v['company_id'],
'template_id' => $v['id'],
'scheduling_id' => $v['task_scheduling'],
'start_time' => $time,
'end_time' => $time+86399,
'sn' =>User::createUserSn(),
'end_time' => $time + 86399,
'sn' => User::createUserSn(),
'status' => 1
]);
];
$TaskSchedulingPlan = TaskSchedulingPlan::create($TaskSchedulingPlan_data);
$arr = [
'template_id' => $v['id'],
'scheduling_plan_id' => $TaskSchedulingPlan['id'],
@ -93,23 +103,23 @@ class TaskLogic extends BaseLogic
'type' => $v['type'],
'content' => $v['content'],
'start_time' => $time,
'end_time' => $time+86399,
'end_time' => $time + 86399,
'create_time' => time(),
'update_time' => time(),
];
$data = $arr;
$data['money'] = self::task_money($v,$datas);
$data['money'] = self::task_money($v, $datas);
$data['extend'] = json_encode($v['extend']);
//信息更新
if ($v['type'] == 31) {
$finds=TaskTemplate::where('id', $v['id'])->field('information_count,information_day_count')->find();
$update=0;
if($finds['information_count']>$finds['information_day_count']){
$day_count=$finds['information_count']-$finds['information_day_count'];
if($day_count>=5){
$update=5;
}else{
$update=$day_count;
$finds = TaskTemplate::where('id', $v['id'])->field('information_count,information_day_count')->find();
$update = 0;
if ($finds['information_count'] > $finds['information_day_count']) {
$day_count = $finds['information_count'] - $finds['information_day_count'];
if ($day_count >= 5) {
$update = 5;
} else {
$update = $day_count;
}
}
$data["extend"] = json_encode(['informationg' => ['count' => 5, 'update' => $update]]);
@ -118,39 +128,83 @@ class TaskLogic extends BaseLogic
if ($v['type'] == 32) {
$data['director_uid'] = $datas['company_info']['user_id'];
}
//入股任务
if ($v['type'] == 35) {
$responsible_area = Company::where('id', $v['company_id'])->value('responsible_area');
if ($responsible_area) {
$responsible_area = explode(',', $responsible_area);
} else {
Log::error('定时任务添加失败:没有区域' . json_encode($v));
return false;
}
if (isset($v['extend']['shareholder'])) {
$shareholder_user = User::where('id', $v['extend']['shareholder']['user_id'])->field('id,nickname,brigade')->find();
$v['extend']['shareholder']['money'] = $v['recharge'];
$v['extend']['shareholder']['over_decimal'] = $v['over_decimal'];
foreach ($responsible_area as $kkk => $vvv) {
$v['extend']['shareholder']['user_list'][$kkk] = ['info' => $shareholder_user['nickname'] . '需缴纳' . $vvv . '队,股金:' . bcdiv($v['recharge'], count($responsible_area), 2), 'time' => $v['create_time']];
}
$data['director_uid'] = $v['extend']['shareholder']['user_id'];
}
$data['extend'] = json_encode($v['extend']);
$money_one = bcmul($v['stage_day_one'], $v['money'], 2);
$money_two = bcmul($v['stage_day_two'], $v['money_two'], 2);
$data['money'] = bcadd($money_one, $money_two);
}
//片区交易
if ($v['type'] == 33) {
//基础金额*(每日基户数*天数)//且户数小于公司总户数
$user_count = UserInformationg::where('company_id', $v['company_id'])->count();
//
if ($v['day_count'] == 0) {
$user_count_two = 5 * 1;
} else {
$user_count_two = 5 * $v['day_count'];
}
if ($user_count_two > $user_count) {
$user_count_money = 58 * $user_count;
} else {
$user_count_money = 58 * $user_count_two;
}
$extend = [
'transaction' => ['arr' => ['day_money' => $user_count_money, 'total_price' => 0]]
];
$data['extend'] = json_encode($extend);
}
$task_id = (new Task())->insertGetId($data);
TaskSchedulingPlan::where('id', $TaskSchedulingPlan['id'])->update(['task_id' => $task_id, 'is_execute' => 1]);
// TaskTemplate::where('id', $v['id'])->update(['cron_time' => time()]);
TaskTemplate::where('id', $v['id'])->inc('day_count')->update();
return true;
} catch (\Exception $e) {
Log::error('定时任务添加失败', [$e->getMessage()]);
Log::error('定时任务添加失败'.$e->getMessage().'line'.$e->getLine());
return false;
}
}
//任务金额
private static function task_money($v,$datas)
private static function task_money($v, $datas)
{
if ($v['types'] == 1 || $v['types'] == 3) {
if ($datas['company_info'] && $datas['company_info']['day_count'] <= $v['stage_day_one']) {
if ($v['day_count'] <= $v['stage_day_one']) {
return $v['money'];
} else {
return $v['money_two'];
}
} elseif ($v['types'] == 2) {
if ($datas['company_info']['day_count'] <= $v['stage_day_one']) {
if ($v['day_count'] <= $v['stage_day_one']) {
return $v['money'];
} elseif ($datas['company_info']['day_count'] <= $v['stage_day_two']) {
} elseif ($v['day_count'] <= $v['stage_day_two']) {
return $v['money_two'];
} else {
return $v['money_three'];
}
} else {
if ( $datas['company_info']['day_count'] <= $v['stage_day_one']) {
if ($v['day_count'] <= $v['stage_day_one']) {
$a = $v['money'];
} else {
$a = $v['money_two'];
}
if ($datas['company_info'] && $datas['company_info']['day_count'] >= $v['stage_day_two']) {
if ($v['day_count'] >= $v['stage_day_two']) {
TaskTemplate::where('id', $v['id'])->update(['status' => 0]);
}
return $a;

View File

@ -62,12 +62,12 @@ class TaskTemplateLogic extends BaseLogic
return false;
}
$money_two=TaskTemplate::where('company_id', $params['company_id'])->sum('money_two');
if($money_two+$params['money']>200){
if($money_two+$params['money_two']>200){
self::setError('任务模板二阶段合计金额不能大于任务调度金额');
return false;
}
$money_three=TaskTemplate::where('company_id', $params['company_id'])->sum('money_three');
if($money_three+$params['money']>200){
if($money_three+$params['money_three']>200){
self::setError('任务模板长期合计金额不能大于任务调度金额');
return false;
}
@ -81,6 +81,9 @@ class TaskTemplateLogic extends BaseLogic
if($params['types']!=33){
$params['money_three']=0;
}
if($params['type']==35){
$params['extend']=['shareholder'=>['user_id'=>$params['task_admin']]];
}
TaskTemplate::create([
'title' => $params['title'],
'admin_id' => $params['admin_id'],
@ -98,6 +101,7 @@ class TaskTemplateLogic extends BaseLogic
'proportion_one' => $params['proportion_one']??0,
'stage_day_two' => $params['stage_day_two']??0,
'proportion_two' => $params['proportion_two']??0,
'recharge' => $params['recharge']??0,
]);
Db::commit();
@ -121,7 +125,7 @@ class TaskTemplateLogic extends BaseLogic
{
Db::startTrans();
try {
$find=TaskTemplate::where('task_scheduling', $params['task_scheduling'])->where('company_id',$params['company_id'])->where('type',$params['type'])->field('id,types,type')->find();
$find=TaskTemplate::where('task_scheduling', $params['task_scheduling'])->where('company_id',$params['company_id'])->where('type',$params['type'])->field('id,types,type,money,money_two,money_three')->find();
if($find && $find['id']!=$params['id']&&$params['type']==$find['type']){
self::setError('已经有同一种任务类型了');
return false;
@ -134,17 +138,17 @@ class TaskTemplateLogic extends BaseLogic
}
}
$moeny=TaskTemplate::where('company_id', $params['company_id'])->sum('money');
if($moeny+$params['money']>200){
if($moeny+$params['money']-$find['money']>200){
self::setError('任务模板一阶段合计金额不能大于任务调度金额');
return false;
}
$money_two=TaskTemplate::where('company_id', $params['company_id'])->sum('money_two');
if($money_two+$params['money']>200){
if($money_two+$params['money_two']-$find['money_two']>200){
self::setError('任务模板二阶段合计金额不能大于任务调度金额');
return false;
}
$money_three=TaskTemplate::where('company_id', $params['company_id'])->sum('money_three');
if($money_three+$params['money']>200){
if($money_three+$params['money_three']-$find['money_three']>200){
self::setError('任务模板长期合计金额不能大于任务调度金额');
return false;
}
@ -158,6 +162,9 @@ class TaskTemplateLogic extends BaseLogic
if($params['types']!=33){
$params['money_three']=0;
}
if($params['type']==35){
$params['extend']=['shareholder'=>['user_id'=>$params['task_admin']]];
}
TaskTemplate::where('id', $params['id'])->update([
'title' => $params['title'],
'admin_id' => $params['admin_id'],
@ -173,6 +180,7 @@ class TaskTemplateLogic extends BaseLogic
'proportion_one' => $params['proportion_one']??0,
'stage_day_two' => $params['stage_day_two']??0,
'proportion_two' => $params['proportion_two']??0,
'recharge' => $params['recharge']??0,
]);
Db::commit();

View File

@ -1,123 +0,0 @@
<?php
namespace app\common\logic\vehicle;
use app\common\logic\BaseLogic;
use app\common\model\Company;
use app\common\model\contract\Contract;
use Exception;
use think\facade\Db;
class VehicleLogic extends BaseLogic
{
public static string $url = 'http://logistics.lihaink.cn';
// public static string $url = 'http://www.lst.local';
public static function initiate_contract($data):array {
$party_b = Company::field('company_type')->where('id',$data['party_b'])->find();
if($data['rent_type'] == 1){
//镇街公司
if($party_b['company_type'] != 16){
return ['code'=>0,'msg'=>'非镇街公司不能签约'];
}
}elseif($data['rent_type'] == 2){
//小组服务公司
if($party_b['company_type'] != 18){
return ['code'=>0,'msg'=>'非小组服务公司不能签约'];
}
//判断小组服务公司是否添加了自有车辆
$selfCar = curl_post(self::$url.'/api/getSelfCar',[],['company_id'=>$data['party_b']]);
if($selfCar && $selfCar['data']['has_car']){
return ['code'=>0,'msg'=>'已上传自有车辆不能签约'];
}
}else{
return ['code'=>0,'msg'=>'参数错误'];
}
Db::startTrans();
try {
$contract = Contract::create([
'admin_id' => 0,
'company_id' =>0,
'contract_type' => 29,
'file' => '',
'contract_no' => time(),
'create_time' => time(),
'update_time' => time(),
'check_status' => 1,
'party_a' => $data['party_a'],
'party_b' => $data['party_b'],
'area_manager' => 0,
'type' => 1,
]);
$vehicleRent = Db::name('vehicle_rent')->insert([
'car_ids' => $data['car_ids'],
'contract_id' => $contract->id,
'party_a' => $data['party_a'],
'party_b' => $data['party_b'],
'num' => $data['num'],
'rent_type' => $data['rent_type'],
'status' => 1,
'create_time' => time(),
'update_time' => time(),
]);
if($contract->id && $vehicleRent) {
Db::commit();
return ['code'=>1,'msg'=>'发起成功,等待平台风控部上传合同','data'=>['id'=>$contract->id]];
}else{
Db::rollback();
return ['code'=>0,'msg'=>'发起失败,请稍后重试'];
}
}catch (Exception $e) {
Db::rollback();
return ['code'=>0,'msg'=>$e->getMessage()];
}
}
public static function townCompanyCarList($params):array {
//请求物流系统获取车辆详情
$result = curl_post(self::$url.'/api/companyCarList',[],$params);
if($result && $result['code'] == 1){
foreach ($result['data'] as $k=>$v){
if($v['lessee_two_flag'] == 1){
$lessee_two_company = Company::where('id','lessee_two_company_id')->find();
$result['data'][$k]['lessee_two_company_address'] = $lessee_two_company['address'];
}else{
$result['data'][$k]['lessee_two_company_address'] = '';
}
}
return ['code'=>1,'msg'=>'请求成功','data'=>$result['data']];
}else{
return ['code'=>0,'msg'=>'请求失败'];
}
}
public static function villageCompanyCar($company_id):array {
$result = curl_post(self::$url.'/api/companyCar',[],['company_id'=>$company_id]);
//返回数据
if($result && $result['code'] == 1){
if($result['data']['type'] == 1 && $result['data']['lessee_two_flag'] == 1){
$lessee_two_company = Company::where('id','lessee_two_company_id')->find();
$result['data']['lessee_two_company_address'] = $lessee_two_company['address'];
}
if($result['data']['type'] == 2){
$lessee_two_company = Company::where('id',$result['data']['company_id'])->find();
$result['data']['lessee_two_company_address'] = $lessee_two_company['address'];
}
return ['code'=>1,'msg'=>'请求成功','data'=>$result['data']];
}else{
return ['code'=>0,'msg'=>'请求失败'];
}
}
public static function addCar($params):array {
$company = Company::field('company_type')->where('id',$params['company_id'])->find();
if($company['company_type'] != 18){
return ['code'=>0,'msg'=>'非小组服务公司不能添加车辆'];
}
$result = curl_post(self::$url.'/api/addVehicle',[],$params);
if($result && $result['code'] == 1){
return ['code'=>1,'msg'=>$result['msg']];
}else{
return ['code'=>0,'msg'=>$result['msg']];
}
}
}

View File

@ -0,0 +1,34 @@
<?php
// +----------------------------------------------------------------------
// | likeadmin快速开发前后端分离管理后台PHP版
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | 开源版本可自由商用可去除界面版权logo
// | gitee下载https://gitee.com/likeshop_gitee/likeadmin
// | github下载https://github.com/likeshop-github/likeadmin
// | 访问官网https://www.likeadmin.cn
// | likeadmin团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\common\model;
use app\common\model\BaseModel;
use think\model\concern\SoftDelete;
/**
* app更新模型
* Class AppUpdate
* @package app\common\model
*/
class AppUpdate extends BaseModel
{
use SoftDelete;
protected $name = 'app_update';
protected $deleteTime = 'delete_time';
}

View File

@ -0,0 +1,86 @@
<?php
// +----------------------------------------------------------------------
// | likeadmin快速开发前后端分离管理后台PHP版
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | 开源版本可自由商用可去除界面版权logo
// | gitee下载https://gitee.com/likeshop_gitee/likeadmin
// | github下载https://github.com/likeshop-github/likeadmin
// | 访问官网https://www.likeadmin.cn
// | likeadmin团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\common\model\company;
use think\model\concern\SoftDelete;
use app\common\model\BaseModel;
/**
* 公司流水模型
* Class CompanyProperty
* @package app\common\model
*/
class CompanyAccountLog extends BaseModel
{
use SoftDelete;
protected $deleteTime = 'delete_time';
/**
* 变动类型命名规则对象_动作_简洁描述
* 动作 DEC-减少 INC-增加
* 对象 TASK 任务金额
*/
/**
* 变动对象
*/
/**
* 金额
*/
const TASK = 1;
/**
* 股金
*/
const SHAREHOLDER = 2;
/**
* 动作
* INC 增加
* DEC 减少
*/
const INC = 1;
const DEC = 2;
/**
* 用户余额减少类型
*/
/**
* 任务
*/
const TASK_DEC_DEPOSIT = 100;
/**
* 股金
*/
const SHAREHOLDER_DEC_DEPOSIT = 101;
/**
* 用户余额增加类型
*/
/**
* 保证金
*/
const TASK_INC_DEPOSIT = 200;
/**
* 收益
*/
const TASK_INC_COMPANY_MONEY = 201;
/**
* 股金
*/
const TASK_INC_SHAREHOLDER_MONEY = 202;
}

View File

@ -0,0 +1,10 @@
<?php
namespace app\common\model\contract;
use app\common\model\BaseModel;
class VehicleContract extends BaseModel
{
}

View File

@ -29,7 +29,13 @@ class RechargeOrder extends BaseModel
protected $deleteTime = 'delete_time';
public function getExtendAttr($value){
if($value){
return json_decode($value, true);
}else{
return [];
}
}
/**
* @notes 支付方式
* @param $value

View File

@ -15,6 +15,7 @@
namespace app\common\model\user;
use app\common\model\BaseModel;
use app\common\model\Company;
use think\model\concern\SoftDelete;
/**
@ -30,6 +31,10 @@ class UserAccountLog extends BaseModel
public function userInfo()
{
return $this->hasOne(User::class, 'id', 'user_id')->field('id,nickname');
return $this->hasOne(User::class, 'id', 'user_id')->field('id,nickname,avatar,sn,mobile,group_id');
}
public function companyInfo(){
return $this->hasOne(Company::class, 'id', 'company_id')->field('id,company_name');
}
}

View File

@ -0,0 +1,15 @@
<?php
namespace app\common\model\vehicle;
use app\common\model\BaseModel;
class VehicleRent extends BaseModel
{
protected $name = 'vehicle_rent';
public function getRentTimeAttr($value): string
{
return !empty($value) ? date('Y-m-d H:i:s',$value) : '';
}
}

View File

@ -0,0 +1,11 @@
<?php
namespace app\common\model\vehicle;
use app\common\model\BaseModel;
class VehicleVillageApply extends BaseModel
{
protected $name = 'vehicle_village_apply';
}

View File

@ -5,13 +5,12 @@ namespace app\job;
use app\api\controller\RemoteController;
use app\common\logic\finance\ShareProfit;
use app\common\model\task\Task;
use Symfony\Component\HttpClient\HttpClient;
use think\queue\Job;
use think\facade\Log;
use app\common\model\Company;
use app\common\model\informationg\UserInformationg;
use think\facade\App;
use app\common\model\task_scheduling_plan\TaskSchedulingPlan;
use app\common\model\task_template\TaskTemplate;
use think\facade\Db;
/**
* 任务结算执行的具体逻辑
@ -26,8 +25,9 @@ class TaskInformationJob
// }
try {
TaskSchedulingPlan::where('id', $data['id'])->update(['is_pay' => 1]);
$company = Company::where('id', $data['company_id'])->field('id,deposit,company_money,user_id,day_count,company_type,province,city,area,street,village,brigade')->find(); // 可能要判断预存金是否满足
$company = Company::where('id', $data['company_id'])->field('id,deposit,responsible_area,company_money,shareholder_money,user_id,day_count,company_type,province,city,area,street,village,brigade')->find(); // 可能要判断预存金是否满足
$arr['status'] = 0;
$arr['company_account_type'] = 1;
//信息更新
if ($data['template_info']['type'] == 31) {
if ($data['template_info']['information_count'] < $data['template_info']['information_day_count']) {
@ -49,8 +49,20 @@ class TaskInformationJob
Task::where('id', $data['task_id'])->update(['status' => 5]);
return false;
}
if($shang_date_total_price['arr']['total_price']>$shang_date_total_price['arr']['day_money']){
$transaction_pool=$data['template_info']['transaction_pool'];//交易金额剩余池
if(bcadd($shang_date_total_price['arr']['total_price'],$transaction_pool,2)>$shang_date_total_price['arr']['day_money']){
if($shang_date_total_price['arr']['total_price']>$shang_date_total_price['arr']['day_money']){
$day_money=bcsub($shang_date_total_price['arr']['total_price'],$shang_date_total_price['arr']['day_money'],2);//当天还剩多少
$shang_date_total_price['arr']['supplement']=$day_money;
}else{
$shang_date_total_price['arr']['supplement']=0;
$shang_date_total_price['arr']['after_transaction_pool']=0;
$day_money=0;
}
$shang_date_total_price['arr']['before_transaction_pool']=$day_money;
Task::where('id', $data['task_id'])->update(['status' => 3,'extend'=>json_encode($shang_date_total_price)]);
TaskTemplate::where('id',$data['template_info']['id'])->update(['transaction_pool'=>bcadd($transaction_pool,$day_money,2)]);
$shang_date_total_price['arr']['status']=1;
}
$name = $shang_date_total_price['name'];
$arr['status'] = $shang_date_total_price['arr']['status'];
@ -68,6 +80,33 @@ class TaskInformationJob
$name=$task['director_info']['nickname'];
$arr['status'] = 1;
$arr['money'] = $task['money'];
}elseif
//入股任务
($data['template_info']['type'] == 35){
$task_35 = Task::where('id', $data['task_id'])->field('director_uid,status,money')->with('director_info')->find();
if($task_35){
$day= $data['template_info']['stage_day_one'] + $data['template_info']['stage_day_two'];
if($task_35['status']==3 && $data['template_info']['day_count']<=$day){
$name = $task_35['director_info']['nickname'];
$arr['status'] = 1;
$arr['money'] = $task_35['money'];
$arr['company_account_type'] = 2;
}else{
if($data['template_info']['day_count']<=$day){
$time = strtotime(date('Y-m-d'));
Task::where('id', $data['task_id'])->update(['create_time' => $time,'end_time' => $time + 86399,'start_time'=>$time,'end_time'=> $time + 86399]);
return false;
}
if($data['template_info']['day_count']>$day){
Task::where('id', $data['task_id'])->update(['status' =>5]);
Log::info('入股任务 ' . $data['template_info']['title'] . '结算失败,任务为超时:' . json_encode($data));
return false;
}
}
}else{
Log::info('入股任务 ' . $data['template_info']['title'] . '结算失败,任务为空:' . json_encode($data));
return false;
}
}
else {
//其他类型任务
@ -81,21 +120,20 @@ class TaskInformationJob
$arr['status'] = 1;
$arr['money'] = $task_count['money'];
}
$arr['company_id'] = $data['scheduling']['company_id'];
$arr['msg'] = '来自任务【' . $data['template_info']['title'] . '】,完成方:' . $name . ',任务结算';
$arr['proportion_one'] = $data['template_info']['proportion_one'];
$arr['proportion_two'] = $data['template_info']['proportion_two'];
$arr['sn'] = $data['sn'];
$arr['id'] = $data['id'];
} catch (\Exception $e) {
Log::error('异常报错:任务结算失败:' . $data['template_info']['title'] . $e->getMessage() . json_encode($data));
Log::error('line:'.$e->getLine().'异常报错:任务结算失败:' . $data['template_info']['title'] . $e->getMessage() . json_encode($data));
return false;
}
if ($arr['status'] == 1) {
(new ShareProfit())->first($arr, $company);
$arr['company_id'] = $data['scheduling']['company_id'];
$arr['msg'] = '来自任务【' . $data['template_info']['title'] . '】,完成方:' . $name . ',任务结算';
// $arr['proportion_one'] = $data['template_info']['proportion_one'];
// $arr['proportion_two'] = $data['template_info']['proportion_two'];
$arr['sn'] = $data['sn'];
$arr['id'] = $data['id'];
(new ShareProfit())->first($arr, $company,$data);
} else {
Task::where('id', $data['task_id'])->update(['status' => 5,'extend'=>json_encode($shang_date_total_price)]);
Task::where('id', $data['task_id'])->update(['status' => 5]);
Log::info('任务status=0结算失败' . $data['template_info']['title'] . '未完成' . json_encode($data));
}
//如果任务执行成功后 记得删除任务不然这个任务会重复执行直到达到最大重试次数后失败后执行failed方法

View File

@ -16,8 +16,8 @@ class TaskCron extends Task
public function configure()
{
// $this->daily(); //设置任务的周期,每天执行一次,更多的方法可以查看源代码,都有注释
$this->everyMinute();//每分钟
$this->daily(); //设置任务的周期,每天执行一次,更多的方法可以查看源代码,都有注释
// $this->everyMinute();//每分钟
}
/**
* 执行任务
@ -49,7 +49,7 @@ class TaskCron extends Task
}
Company::where('id', 'in', $company_id)->inc('day_count')->update();
TaskScheduling::where('id', 'in', $plan_ids)->update(['cron_time' => time()]);
Log::error('定时任务下发执行成功' . date('Y-m-d H:i:s'));
Log::info('定时任务下发执行成功' . date('Y-m-d H:i:s'));
//...具体的任务执行
}

View File

@ -35,7 +35,8 @@
"rmccue/requests": "^2.0",
"w7corp/easywechat": "^6.8",
"yunwuxin/think-cron": "^3.0",
"topthink/think-queue": "^3.0"
"topthink/think-queue": "^3.0",
"firebase/php-jwt": "^6.8"
},
"require-dev": {
"symfony/var-dumper": "^4.2",

86
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "90f60bd55476b5210a9bd6fa3ad453eb",
"content-hash": "fdd9d31f9958a1263e4623ab634b9cc9",
"packages": [
{
"name": "adbario/php-dot-notation",
@ -331,37 +331,6 @@
],
"time": "2022-01-18T15:43:28+00:00"
},
{
"name": "ebaoquan/junziqian_sdk",
"version": "2.0.3",
"source": {
"type": "git",
"url": "https://gitee.com/ebaoquan/jzq_sdk_php.git",
"reference": "1294ea49ff9ecc4532821f8798304816cbf8dd74"
},
"require": {
"ext-curl": "*",
"ext-iconv": "*",
"ext-json": "*",
"php": ">=5.6"
},
"type": "library",
"autoload": {
"psr-4": {
"com\\junziqian\\sdk\\": "src/com/junziqian/sdk"
}
},
"notification-url": "https://packagist.org/downloads/",
"authors": [
{
"name": "huhu",
"email": "3811970@qq.com"
}
],
"description": "php ebaoquan/junziqian_sdk",
"homepage": "https://gitee.com/ebaoquan/jzq_sdk_php.git",
"time": "2021-08-18T07:45:10+00:00"
},
{
"name": "ezyang/htmlpurifier",
"version": "v4.16.0",
@ -429,6 +398,59 @@
},
"time": "2022-09-18T07:06:19+00:00"
},
{
"name": "firebase/php-jwt",
"version": "v6.8.1",
"dist": {
"type": "zip",
"url": "https://mirrors.tencent.com/repository/composer/firebase/php-jwt/v6.8.1/firebase-php-jwt-v6.8.1.zip",
"reference": "5dbc8959427416b8ee09a100d7a8588c00fb2e26",
"shasum": ""
},
"require": {
"php": "^7.4||^8.0"
},
"require-dev": {
"guzzlehttp/guzzle": "^6.5||^7.4",
"phpspec/prophecy-phpunit": "^2.0",
"phpunit/phpunit": "^9.5",
"psr/cache": "^1.0||^2.0",
"psr/http-client": "^1.0",
"psr/http-factory": "^1.0"
},
"suggest": {
"ext-sodium": "Support EdDSA (Ed25519) signatures",
"paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present"
},
"type": "library",
"autoload": {
"psr-4": {
"Firebase\\JWT\\": "src"
}
},
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Neuman Vong",
"email": "neuman+pear@twilio.com",
"role": "Developer"
},
{
"name": "Anant Narayanan",
"email": "anant@php.net",
"role": "Developer"
}
],
"description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.",
"homepage": "https://github.com/firebase/php-jwt",
"keywords": [
"jwt",
"php"
],
"time": "2023-07-14T18:33:00+00:00"
},
{
"name": "guzzlehttp/command",
"version": "1.3.0",

View File

@ -76,7 +76,7 @@ return [
// 文件上传限制 (文件)
'file_file' => [
'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'pdf', 'txt'
'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'pdf', 'txt','apk','ipa','wgt'
],
// 登录设置

View File

@ -5,6 +5,8 @@ namespace junziqian\sdk\util;
use junziqian\sdk\util\exception\ResultInfoException;
use junziqian\sdk\util\http\HttpClientUtils;
use think\facade\Log;
/**
* Class RequestUtils http请求
* @package com\junziqian\sdk\bean
@ -54,13 +56,15 @@ class RequestUtils{
$req=Array();
}else if(is_array($req)){
//
}else if(is_a($req,"com\junziqian\sdk\bean\Req2MapInterface")){
}else if(is_a($req,"junziqian\sdk\bean\Req2MapInterface")){
$req=$req->build();
}else{
throw new ResultInfoException("不支持的请求req");
}
$req=$this->fillSign($req);
// Log::error([$url,json_encode($req)]);
//请求服务端sass
// halt($url,$req);
//print_r(CommonUtil::json_encode($req));
$response= HttpClientUtils::getPost($url,$req);
$res=json_decode($response);

View File

@ -1 +1 @@
import o from"./error.867f649f.js";import{d as r,o as i,c as p,U as m,L as e,a as t}from"./@vue.51d7f2d8.js";import"./element-plus.cdda5c3e.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./vue-router.9f65afb1.js";import"./index.36ebd16e.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";const s="/admin/assets/no_perms.a56e95a5.png",a={class:"error404"},u=t("div",{class:"flex justify-center"},[t("img",{class:"w-[150px] h-[150px]",src:s,alt:""})],-1),T=r({__name:"403",setup(c){return(n,_)=>(i(),p("div",a,[m(o,{code:"403",title:"\u60A8\u7684\u8D26\u53F7\u6743\u9650\u4E0D\u8DB3\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u6DFB\u52A0\u6743\u9650\uFF01","show-btn":!1},{content:e(()=>[u]),_:1})]))}});export{T as default};
import o from"./error.21e04f2c.js";import{d as r,o as i,c as p,U as m,L as e,a as t}from"./@vue.51d7f2d8.js";import"./element-plus.b771dc38.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./vue-router.9f65afb1.js";import"./index.6b8fec87.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";const s="/admin/assets/no_perms.a56e95a5.png",a={class:"error404"},u=t("div",{class:"flex justify-center"},[t("img",{class:"w-[150px] h-[150px]",src:s,alt:""})],-1),T=r({__name:"403",setup(c){return(n,_)=>(i(),p("div",a,[m(o,{code:"403",title:"\u60A8\u7684\u8D26\u53F7\u6743\u9650\u4E0D\u8DB3\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u6DFB\u52A0\u6743\u9650\uFF01","show-btn":!1},{content:e(()=>[u]),_:1})]))}});export{T as default};

View File

@ -1 +1 @@
import o from"./error.867f649f.js";import{d as r,o as t,c as m,U as p}from"./@vue.51d7f2d8.js";import"./element-plus.cdda5c3e.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./vue-router.9f65afb1.js";import"./index.36ebd16e.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";const i={class:"error404"},P=r({__name:"404",setup(e){return(u,c)=>(t(),m("div",i,[p(o,{code:"404",title:"\u54CE\u5440\uFF0C\u51FA\u9519\u4E86\uFF01\u60A8\u8BBF\u95EE\u7684\u9875\u9762\u4E0D\u5B58\u5728\u2026"})]))}});export{P as default};
import o from"./error.21e04f2c.js";import{d as r,o as t,c as m,U as p}from"./@vue.51d7f2d8.js";import"./element-plus.b771dc38.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./vue-router.9f65afb1.js";import"./index.6b8fec87.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";const i={class:"error404"},P=r({__name:"404",setup(e){return(u,c)=>(t(),m("div",i,[p(o,{code:"404",title:"\u54CE\u5440\uFF0C\u51FA\u9519\u4E86\uFF01\u60A8\u8BBF\u95EE\u7684\u9875\u9762\u4E0D\u5B58\u5728\u2026"})]))}});export{P as default};

View File

@ -1 +1 @@
import"./account-adjust.vue_vue_type_script_setup_true_lang.6569c452.js";import{_ as N}from"./account-adjust.vue_vue_type_script_setup_true_lang.6569c452.js";import"./element-plus.cdda5c3e.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.e209d8e5.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./index.36ebd16e.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";export{N as default};
import"./account-adjust.vue_vue_type_script_setup_true_lang.7af6cb84.js";import{_ as N}from"./account-adjust.vue_vue_type_script_setup_true_lang.7af6cb84.js";import"./element-plus.b771dc38.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.3c7aa4ba.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./index.6b8fec87.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";export{N as default};

View File

@ -1 +1 @@
import{C as x,G as B,H as R,B as g,D as N}from"./element-plus.cdda5c3e.js";import{P as q}from"./index.e209d8e5.js";import{f as C}from"./index.36ebd16e.js";import{d as A,s as D,$ as I,e as S,w as b,o as U,K as j,L as a,a as G,U as o,u as r,R as n,S as E}from"./@vue.51d7f2d8.js";const P={class:"pr-8"},T=A({__name:"account-adjust",props:{show:{type:Boolean,required:!0},value:{type:[Number,String],required:!0}},emits:["update:show","confirm"],setup(d,{emit:i}){const c=d,s=D(),u=I({action:1,num:"",remark:""}),m=D(),f=S(()=>Number(c.value)+Number(u.num)*(u.action==1?1:-1)),w={num:[{required:!0,message:"\u8BF7\u8F93\u5165\u8C03\u6574\u7684\u91D1\u989D"}]},v=e=>{if(e.includes("-"))return C.msgError("\u8BF7\u8F93\u5165\u6B63\u6574\u6570");u.num=e},y=async()=>{var e;await((e=s.value)==null?void 0:e.validate()),i("confirm",u)},V=()=>{var e;i("update:show",!1),(e=s.value)==null||e.resetFields()};return b(()=>c.show,e=>{var l,t;e?(l=m.value)==null||l.open():(t=m.value)==null||t.close()}),b(f,e=>{e<0&&(C.msgError("\u8C03\u6574\u540E\u4F59\u989D\u9700\u5927\u4E8E0"),u.num="")}),(e,l)=>{const t=x,_=B,h=R,F=g,k=N;return U(),j(q,{ref_key:"popupRef",ref:m,title:"\u4F59\u989D\u8C03\u6574",width:"500px",onConfirm:y,async:!0,onClose:V},{default:a(()=>[G("div",P,[o(k,{ref_key:"formRef",ref:s,model:r(u),"label-width":"120px",rules:w},{default:a(()=>[o(t,{label:"\u5F53\u524D\u4F59\u989D"},{default:a(()=>[n("\xA5 "+E(d.value),1)]),_:1}),o(t,{label:"\u4F59\u989D\u589E\u51CF",required:"",prop:"action"},{default:a(()=>[o(h,{modelValue:r(u).action,"onUpdate:modelValue":l[0]||(l[0]=p=>r(u).action=p)},{default:a(()=>[o(_,{label:1},{default:a(()=>[n("\u589E\u52A0\u4F59\u989D")]),_:1}),o(_,{label:2},{default:a(()=>[n("\u6263\u51CF\u4F59\u989D")]),_:1})]),_:1},8,["modelValue"])]),_:1}),o(t,{label:"\u8C03\u6574\u4F59\u989D",prop:"num"},{default:a(()=>[o(F,{"model-value":r(u).num,placeholder:"\u8BF7\u8F93\u5165\u8C03\u6574\u7684\u91D1\u989D",type:"number",onInput:v},null,8,["model-value"])]),_:1}),o(t,{label:"\u8C03\u6574\u540E\u4F59\u989D"},{default:a(()=>[n(" \xA5 "+E(r(f)),1)]),_:1}),o(t,{label:"\u5907\u6CE8",prop:"remark"},{default:a(()=>[o(F,{modelValue:r(u).remark,"onUpdate:modelValue":l[1]||(l[1]=p=>r(u).remark=p),type:"textarea",rows:4},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},512)}}});export{T as _};
import{C as x,G as B,H as R,B as g,D as N}from"./element-plus.b771dc38.js";import{P as q}from"./index.3c7aa4ba.js";import{f as C}from"./index.6b8fec87.js";import{d as A,s as D,$ as I,e as S,w as b,o as U,K as j,L as a,a as G,U as o,u as r,R as n,S as E}from"./@vue.51d7f2d8.js";const P={class:"pr-8"},T=A({__name:"account-adjust",props:{show:{type:Boolean,required:!0},value:{type:[Number,String],required:!0}},emits:["update:show","confirm"],setup(d,{emit:i}){const c=d,s=D(),u=I({action:1,num:"",remark:""}),m=D(),f=S(()=>Number(c.value)+Number(u.num)*(u.action==1?1:-1)),w={num:[{required:!0,message:"\u8BF7\u8F93\u5165\u8C03\u6574\u7684\u91D1\u989D"}]},v=e=>{if(e.includes("-"))return C.msgError("\u8BF7\u8F93\u5165\u6B63\u6574\u6570");u.num=e},y=async()=>{var e;await((e=s.value)==null?void 0:e.validate()),i("confirm",u)},V=()=>{var e;i("update:show",!1),(e=s.value)==null||e.resetFields()};return b(()=>c.show,e=>{var l,t;e?(l=m.value)==null||l.open():(t=m.value)==null||t.close()}),b(f,e=>{e<0&&(C.msgError("\u8C03\u6574\u540E\u4F59\u989D\u9700\u5927\u4E8E0"),u.num="")}),(e,l)=>{const t=x,_=B,h=R,F=g,k=N;return U(),j(q,{ref_key:"popupRef",ref:m,title:"\u4F59\u989D\u8C03\u6574",width:"500px",onConfirm:y,async:!0,onClose:V},{default:a(()=>[G("div",P,[o(k,{ref_key:"formRef",ref:s,model:r(u),"label-width":"120px",rules:w},{default:a(()=>[o(t,{label:"\u5F53\u524D\u4F59\u989D"},{default:a(()=>[n("\xA5 "+E(d.value),1)]),_:1}),o(t,{label:"\u4F59\u989D\u589E\u51CF",required:"",prop:"action"},{default:a(()=>[o(h,{modelValue:r(u).action,"onUpdate:modelValue":l[0]||(l[0]=p=>r(u).action=p)},{default:a(()=>[o(_,{label:1},{default:a(()=>[n("\u589E\u52A0\u4F59\u989D")]),_:1}),o(_,{label:2},{default:a(()=>[n("\u6263\u51CF\u4F59\u989D")]),_:1})]),_:1},8,["modelValue"])]),_:1}),o(t,{label:"\u8C03\u6574\u4F59\u989D",prop:"num"},{default:a(()=>[o(F,{"model-value":r(u).num,placeholder:"\u8BF7\u8F93\u5165\u8C03\u6574\u7684\u91D1\u989D",type:"number",onInput:v},null,8,["model-value"])]),_:1}),o(t,{label:"\u8C03\u6574\u540E\u4F59\u989D"},{default:a(()=>[n(" \xA5 "+E(r(f)),1)]),_:1}),o(t,{label:"\u5907\u6CE8",prop:"remark"},{default:a(()=>[o(F,{modelValue:r(u).remark,"onUpdate:modelValue":l[1]||(l[1]=p=>r(u).remark=p),type:"textarea",rows:4},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},512)}}});export{T as _};

View File

@ -1 +1 @@
import"./add-nav.vue_vue_type_script_setup_true_lang.83dbe35f.js";import{_ as Z}from"./add-nav.vue_vue_type_script_setup_true_lang.83dbe35f.js";import"./element-plus.cdda5c3e.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.ca37cd92.js";import"./index.36ebd16e.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";import"./picker.19fee0e6.js";import"./index.e209d8e5.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.d2e10a77.js";import"./index.35174697.js";import"./index.vue_vue_type_script_setup_true_lang.6c37bae0.js";import"./index.23117a16.js";import"./index.vue_vue_type_script_setup_true_lang.767d5b76.js";import"./usePaging.4ce91869.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.cbc8d603.js";import"./vue.e7f41fea.js";import"./sortablejs.24719fd4.js";export{Z as default};
import"./add-nav.vue_vue_type_script_setup_true_lang.29a2a6c1.js";import{_ as Z}from"./add-nav.vue_vue_type_script_setup_true_lang.29a2a6c1.js";import"./element-plus.b771dc38.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.746b02c3.js";import"./index.6b8fec87.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";import"./picker.1a358636.js";import"./index.3c7aa4ba.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.38c17f14.js";import"./index.e69540e3.js";import"./index.vue_vue_type_script_setup_true_lang.5d4d280e.js";import"./index.8615e578.js";import"./index.vue_vue_type_script_setup_true_lang.49284deb.js";import"./usePaging.2ad8e1e6.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.cbc8d603.js";import"./vue.e7f41fea.js";import"./sortablejs.24719fd4.js";export{Z as default};

View File

@ -1 +1 @@
import{B,w as D}from"./element-plus.cdda5c3e.js";import{_ as F}from"./index.ca37cd92.js";import{_ as A}from"./picker.19fee0e6.js";import{_ as y}from"./picker.d2e10a77.js";import{f as p,b as E}from"./index.36ebd16e.js";import{D as U}from"./vuedraggable.cbc8d603.js";import{d as C,e as w,o as c,c as N,a as e,U as t,L as m,K as $,u as r,k as z,R as L}from"./@vue.51d7f2d8.js";const R={class:"bg-fill-light flex items-center w-full p-4 mb-4 cursor-move"},I={class:"upload-btn w-[60px] h-[60px]"},K={class:"ml-3 flex-1"},P={class:"flex"},T=e("span",{class:"text-tx-regular flex-none mr-3"},"\u540D\u79F0",-1),j={class:"flex mt-[18px]"},q=e("span",{class:"text-tx-regular flex-none mr-3"},"\u94FE\u63A5",-1),W=C({__name:"add-nav",props:{modelValue:{type:Array,default:()=>[]},max:{type:Number,default:10},min:{type:Number,default:1}},emits:["update:modelValue"],setup(_,{emit:i}){const o=_,s=w({get(){return o.modelValue},set(a){i("update:modelValue",a)}}),f=()=>{var a;((a=o.modelValue)==null?void 0:a.length)<o.max?s.value.push({image:"",name:"\u5BFC\u822A\u540D\u79F0",link:{}}):p.msgError(`\u6700\u591A\u6DFB\u52A0${o.max}\u4E2A`)},V=a=>{var u;if(((u=o.modelValue)==null?void 0:u.length)<=o.min)return p.msgError(`\u6700\u5C11\u4FDD\u7559${o.min}\u4E2A`);s.value.splice(a,1)};return(a,u)=>{const x=E,g=y,h=B,v=A,k=F,b=D;return c(),N("div",null,[e("div",null,[t(r(U),{class:"draggable",modelValue:r(s),"onUpdate:modelValue":u[0]||(u[0]=l=>z(s)?s.value=l:null),animation:"300"},{item:m(({element:l,index:d})=>[(c(),$(k,{class:"max-w-[400px]",key:d,onClose:n=>V(d)},{default:m(()=>[e("div",R,[t(g,{modelValue:l.image,"onUpdate:modelValue":n=>l.image=n,"upload-class":"bg-body",size:"60px","exclude-domain":""},{upload:m(()=>[e("div",I,[t(x,{name:"el-icon-Plus",size:20})])]),_:2},1032,["modelValue","onUpdate:modelValue"]),e("div",K,[e("div",P,[T,t(h,{modelValue:l.name,"onUpdate:modelValue":n=>l.name=n,placeholder:"\u8BF7\u8F93\u5165\u540D\u79F0"},null,8,["modelValue","onUpdate:modelValue"])]),e("div",j,[q,t(v,{modelValue:l.link,"onUpdate:modelValue":n=>l.link=n},null,8,["modelValue","onUpdate:modelValue"])])])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])]),e("div",null,[t(b,{type:"primary",onClick:f},{default:m(()=>[L("\u6DFB\u52A0")]),_:1})])])}}});export{W as _};
import{B,w as D}from"./element-plus.b771dc38.js";import{_ as F}from"./index.746b02c3.js";import{_ as A}from"./picker.1a358636.js";import{_ as y}from"./picker.38c17f14.js";import{f as p,b as E}from"./index.6b8fec87.js";import{D as U}from"./vuedraggable.cbc8d603.js";import{d as C,e as w,o as c,c as N,a as e,U as t,L as m,K as $,u as r,k as z,R as L}from"./@vue.51d7f2d8.js";const R={class:"bg-fill-light flex items-center w-full p-4 mb-4 cursor-move"},I={class:"upload-btn w-[60px] h-[60px]"},K={class:"ml-3 flex-1"},P={class:"flex"},T=e("span",{class:"text-tx-regular flex-none mr-3"},"\u540D\u79F0",-1),j={class:"flex mt-[18px]"},q=e("span",{class:"text-tx-regular flex-none mr-3"},"\u94FE\u63A5",-1),W=C({__name:"add-nav",props:{modelValue:{type:Array,default:()=>[]},max:{type:Number,default:10},min:{type:Number,default:1}},emits:["update:modelValue"],setup(_,{emit:i}){const o=_,s=w({get(){return o.modelValue},set(a){i("update:modelValue",a)}}),f=()=>{var a;((a=o.modelValue)==null?void 0:a.length)<o.max?s.value.push({image:"",name:"\u5BFC\u822A\u540D\u79F0",link:{}}):p.msgError(`\u6700\u591A\u6DFB\u52A0${o.max}\u4E2A`)},V=a=>{var u;if(((u=o.modelValue)==null?void 0:u.length)<=o.min)return p.msgError(`\u6700\u5C11\u4FDD\u7559${o.min}\u4E2A`);s.value.splice(a,1)};return(a,u)=>{const x=E,g=y,h=B,v=A,k=F,b=D;return c(),N("div",null,[e("div",null,[t(r(U),{class:"draggable",modelValue:r(s),"onUpdate:modelValue":u[0]||(u[0]=l=>z(s)?s.value=l:null),animation:"300"},{item:m(({element:l,index:d})=>[(c(),$(k,{class:"max-w-[400px]",key:d,onClose:n=>V(d)},{default:m(()=>[e("div",R,[t(g,{modelValue:l.image,"onUpdate:modelValue":n=>l.image=n,"upload-class":"bg-body",size:"60px","exclude-domain":""},{upload:m(()=>[e("div",I,[t(x,{name:"el-icon-Plus",size:20})])]),_:2},1032,["modelValue","onUpdate:modelValue"]),e("div",K,[e("div",P,[T,t(h,{modelValue:l.name,"onUpdate:modelValue":n=>l.name=n,placeholder:"\u8BF7\u8F93\u5165\u540D\u79F0"},null,8,["modelValue","onUpdate:modelValue"])]),e("div",j,[q,t(v,{modelValue:l.link,"onUpdate:modelValue":n=>l.link=n},null,8,["modelValue","onUpdate:modelValue"])])])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])]),e("div",null,[t(b,{type:"primary",onClick:f},{default:m(()=>[L("\u6DFB\u52A0")]),_:1})])])}}});export{W as _};

View File

@ -1 +1 @@
import{r as n}from"./index.36ebd16e.js";function e(t){return n.get({url:"/auth.admin/lists",params:t},{ignoreCancelToken:!0})}function r(t){return n.post({url:"/auth.admin/add",params:t})}function u(t){return n.post({url:"/auth.admin/edit",params:t})}function i(t){return n.post({url:"/auth.admin/delete",params:t})}function s(t){return n.get({url:"/auth.admin/detail",params:t})}function d(t){return n.get({url:"/auth.admin/Draftingcontracts",params:t})}function o(t){return n.get({url:"/auth.admin/postsms",params:t})}export{e as a,u as b,r as c,s as d,i as e,d as g,o as s};
import{r as n}from"./index.6b8fec87.js";function e(t){return n.get({url:"/auth.admin/lists",params:t},{ignoreCancelToken:!0})}function r(t){return n.post({url:"/auth.admin/add",params:t})}function u(t){return n.post({url:"/auth.admin/edit",params:t})}function i(t){return n.post({url:"/auth.admin/delete",params:t})}function s(t){return n.get({url:"/auth.admin/detail",params:t})}function d(t){return n.get({url:"/auth.admin/Draftingcontracts",params:t})}function o(t){return n.get({url:"/auth.admin/postsms",params:t})}export{e as a,u as b,r as c,s as d,i as e,d as g,o as s};

View File

@ -1 +1 @@
import{r as e}from"./index.36ebd16e.js";function a(t){return e.get({url:"/article.articleCate/lists",params:t})}function l(t){return e.get({url:"/article.articleCate/all",params:t})}function i(t){return e.post({url:"/article.articleCate/add",params:t})}function c(t){return e.post({url:"/article.articleCate/edit",params:t})}function u(t){return e.post({url:"/article.articleCate/delete",params:t})}function n(t){return e.get({url:"/article.articleCate/detail",params:t})}function s(t){return e.post({url:"/article.articleCate/updateStatus",params:t})}function o(t){return e.get({url:"/article.article/lists",params:t})}function d(t){return e.post({url:"/article.article/add",params:t})}function f(t){return e.post({url:"/article.article/edit",params:t})}function C(t){return e.post({url:"/article.article/delete",params:t})}function p(t){return e.get({url:"/article.article/detail",params:t})}function g(t){return e.post({url:"/article.article/updateStatus",params:t})}export{c as a,i as b,n as c,u as d,s as e,a as f,p as g,l as h,f as i,d as j,g as k,C as l,o as m};
import{r as e}from"./index.6b8fec87.js";function a(t){return e.get({url:"/article.articleCate/lists",params:t})}function l(t){return e.get({url:"/article.articleCate/all",params:t})}function i(t){return e.post({url:"/article.articleCate/add",params:t})}function c(t){return e.post({url:"/article.articleCate/edit",params:t})}function u(t){return e.post({url:"/article.articleCate/delete",params:t})}function n(t){return e.get({url:"/article.articleCate/detail",params:t})}function s(t){return e.post({url:"/article.articleCate/updateStatus",params:t})}function o(t){return e.get({url:"/article.article/lists",params:t})}function d(t){return e.post({url:"/article.article/add",params:t})}function f(t){return e.post({url:"/article.article/edit",params:t})}function C(t){return e.post({url:"/article.article/delete",params:t})}function p(t){return e.get({url:"/article.article/detail",params:t})}function g(t){return e.post({url:"/article.article/updateStatus",params:t})}export{c as a,i as b,n as c,u as d,s as e,a as f,p as g,l as h,f as i,d as j,g as k,C as l,o as m};

View File

@ -0,0 +1 @@
import"./attr-setting.vue_vue_type_script_setup_true_lang.c0708207.js";import{_ as gm}from"./attr-setting.vue_vue_type_script_setup_true_lang.c0708207.js";import"./index.3d6a58f1.js";import"./attr.vue_vue_type_script_setup_true_lang.732aa5b3.js";import"./element-plus.b771dc38.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.746b02c3.js";import"./index.6b8fec87.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";import"./picker.1a358636.js";import"./index.3c7aa4ba.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.38c17f14.js";import"./index.e69540e3.js";import"./index.vue_vue_type_script_setup_true_lang.5d4d280e.js";import"./index.8615e578.js";import"./index.vue_vue_type_script_setup_true_lang.49284deb.js";import"./usePaging.2ad8e1e6.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.cbc8d603.js";import"./vue.e7f41fea.js";import"./sortablejs.24719fd4.js";import"./content.vue_vue_type_script_setup_true_lang.958512a2.js";import"./decoration-img.67a82d3e.js";import"./attr.vue_vue_type_script_setup_true_lang.93f8983b.js";import"./content.d8c57820.js";import"./attr.vue_vue_type_script_setup_true_lang.b1eeafd5.js";import"./add-nav.vue_vue_type_script_setup_true_lang.29a2a6c1.js";import"./content.5dc7e6c9.js";import"./attr.vue_vue_type_script_setup_true_lang.c91602b9.js";import"./content.vue_vue_type_script_setup_true_lang.9306fa2b.js";import"./attr.vue_vue_type_script_setup_true_lang.d01577b5.js";import"./content.92497bd5.js";import"./decoration.4d9fb009.js";import"./attr.vue_vue_type_script_setup_true_lang.0fc534ba.js";import"./content.8abddb77.js";import"./attr.vue_vue_type_script_setup_true_lang.526c7546.js";import"./content.vue_vue_type_script_setup_true_lang.40c10e8b.js";import"./attr.vue_vue_type_script_setup_true_lang.00e826d0.js";import"./content.830b8c62.js";export{gm as default};

View File

@ -1 +0,0 @@
import"./attr-setting.vue_vue_type_script_setup_true_lang.3923e606.js";import{_ as gm}from"./attr-setting.vue_vue_type_script_setup_true_lang.3923e606.js";import"./index.b7259093.js";import"./attr.vue_vue_type_script_setup_true_lang.33c578eb.js";import"./element-plus.cdda5c3e.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.ca37cd92.js";import"./index.36ebd16e.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";import"./picker.19fee0e6.js";import"./index.e209d8e5.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.d2e10a77.js";import"./index.35174697.js";import"./index.vue_vue_type_script_setup_true_lang.6c37bae0.js";import"./index.23117a16.js";import"./index.vue_vue_type_script_setup_true_lang.767d5b76.js";import"./usePaging.4ce91869.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.cbc8d603.js";import"./vue.e7f41fea.js";import"./sortablejs.24719fd4.js";import"./content.vue_vue_type_script_setup_true_lang.e1178cb9.js";import"./decoration-img.96adb25b.js";import"./attr.vue_vue_type_script_setup_true_lang.4576b24f.js";import"./content.fadc9154.js";import"./attr.vue_vue_type_script_setup_true_lang.9e236257.js";import"./add-nav.vue_vue_type_script_setup_true_lang.83dbe35f.js";import"./content.481d298a.js";import"./attr.vue_vue_type_script_setup_true_lang.0dc98949.js";import"./content.vue_vue_type_script_setup_true_lang.3232b144.js";import"./attr.vue_vue_type_script_setup_true_lang.d01577b5.js";import"./content.b880d321.js";import"./decoration.b18acc76.js";import"./attr.vue_vue_type_script_setup_true_lang.0fc534ba.js";import"./content.553d5899.js";import"./attr.vue_vue_type_script_setup_true_lang.469e7d9a.js";import"./content.vue_vue_type_script_setup_true_lang.c9d981e6.js";import"./attr.vue_vue_type_script_setup_true_lang.00e826d0.js";import"./content.31792b01.js";export{gm as default};

View File

@ -1 +1 @@
import{w as c}from"./index.b7259093.js";import{d as l,o as t,c as d,a as m,S as p,K as r,P as f,u as g,aK as y}from"./@vue.51d7f2d8.js";const b={class:"pages-setting"},u={class:"title flex items-center before:w-[3px] before:h-[14px] before:block before:bg-primary before:mr-2"},v=l({__name:"attr-setting",props:{widget:{type:Object,default:()=>({})},type:{type:String,default:"mobile"}},setup(e){return(w,x)=>{var s,a,n,o,i;return t(),d("div",b,[m("div",u,p((s=e.widget)==null?void 0:s.title),1),(t(),r(y,null,[(t(),r(f((n=g(c)[(a=e.widget)==null?void 0:a.name])==null?void 0:n.attr),{class:"pt-5 pr-4",content:(o=e.widget)==null?void 0:o.content,styles:(i=e.widget)==null?void 0:i.styles,type:e.type},null,8,["content","styles","type"]))],1024))])}}});export{v as _};
import{w as c}from"./index.3d6a58f1.js";import{d as l,o as t,c as d,a as m,S as p,K as r,P as f,u as g,aK as y}from"./@vue.51d7f2d8.js";const b={class:"pages-setting"},u={class:"title flex items-center before:w-[3px] before:h-[14px] before:block before:bg-primary before:mr-2"},v=l({__name:"attr-setting",props:{widget:{type:Object,default:()=>({})},type:{type:String,default:"mobile"}},setup(e){return(w,x)=>{var s,a,n,o,i;return t(),d("div",b,[m("div",u,p((s=e.widget)==null?void 0:s.title),1),(t(),r(y,null,[(t(),r(f((n=g(c)[(a=e.widget)==null?void 0:a.name])==null?void 0:n.attr),{class:"pt-5 pr-4",content:(o=e.widget)==null?void 0:o.content,styles:(i=e.widget)==null?void 0:i.styles,type:e.type},null,8,["content","styles","type"]))],1024))])}}});export{v as _};

View File

@ -1 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.4576b24f.js";import{_ as Y}from"./attr.vue_vue_type_script_setup_true_lang.4576b24f.js";import"./element-plus.cdda5c3e.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./picker.d2e10a77.js";import"./index.e209d8e5.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./index.36ebd16e.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";import"./index.35174697.js";import"./index.vue_vue_type_script_setup_true_lang.6c37bae0.js";import"./index.ca37cd92.js";import"./index.23117a16.js";import"./index.vue_vue_type_script_setup_true_lang.767d5b76.js";import"./usePaging.4ce91869.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.cbc8d603.js";import"./vue.e7f41fea.js";import"./sortablejs.24719fd4.js";export{Y as default};
import"./attr.vue_vue_type_script_setup_true_lang.93f8983b.js";import{_ as Y}from"./attr.vue_vue_type_script_setup_true_lang.93f8983b.js";import"./element-plus.b771dc38.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./picker.38c17f14.js";import"./index.3c7aa4ba.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./index.6b8fec87.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";import"./index.e69540e3.js";import"./index.vue_vue_type_script_setup_true_lang.5d4d280e.js";import"./index.746b02c3.js";import"./index.8615e578.js";import"./index.vue_vue_type_script_setup_true_lang.49284deb.js";import"./usePaging.2ad8e1e6.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.cbc8d603.js";import"./vue.e7f41fea.js";import"./sortablejs.24719fd4.js";export{Y as default};

View File

@ -1 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.9e236257.js";import{_ as $}from"./attr.vue_vue_type_script_setup_true_lang.9e236257.js";import"./element-plus.cdda5c3e.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./add-nav.vue_vue_type_script_setup_true_lang.83dbe35f.js";import"./index.ca37cd92.js";import"./index.36ebd16e.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";import"./picker.19fee0e6.js";import"./index.e209d8e5.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.d2e10a77.js";import"./index.35174697.js";import"./index.vue_vue_type_script_setup_true_lang.6c37bae0.js";import"./index.23117a16.js";import"./index.vue_vue_type_script_setup_true_lang.767d5b76.js";import"./usePaging.4ce91869.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.cbc8d603.js";import"./vue.e7f41fea.js";import"./sortablejs.24719fd4.js";export{$ as default};
import"./attr.vue_vue_type_script_setup_true_lang.c91602b9.js";import{_ as $}from"./attr.vue_vue_type_script_setup_true_lang.c91602b9.js";import"./element-plus.b771dc38.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./add-nav.vue_vue_type_script_setup_true_lang.29a2a6c1.js";import"./index.746b02c3.js";import"./index.6b8fec87.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";import"./picker.1a358636.js";import"./index.3c7aa4ba.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.38c17f14.js";import"./index.e69540e3.js";import"./index.vue_vue_type_script_setup_true_lang.5d4d280e.js";import"./index.8615e578.js";import"./index.vue_vue_type_script_setup_true_lang.49284deb.js";import"./usePaging.2ad8e1e6.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.cbc8d603.js";import"./vue.e7f41fea.js";import"./sortablejs.24719fd4.js";export{$ as default};

View File

@ -1 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.469e7d9a.js";import{_ as Z}from"./attr.vue_vue_type_script_setup_true_lang.469e7d9a.js";import"./element-plus.cdda5c3e.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.ca37cd92.js";import"./index.36ebd16e.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";import"./picker.19fee0e6.js";import"./index.e209d8e5.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.d2e10a77.js";import"./index.35174697.js";import"./index.vue_vue_type_script_setup_true_lang.6c37bae0.js";import"./index.23117a16.js";import"./index.vue_vue_type_script_setup_true_lang.767d5b76.js";import"./usePaging.4ce91869.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.cbc8d603.js";import"./vue.e7f41fea.js";import"./sortablejs.24719fd4.js";export{Z as default};
import"./attr.vue_vue_type_script_setup_true_lang.526c7546.js";import{_ as Z}from"./attr.vue_vue_type_script_setup_true_lang.526c7546.js";import"./element-plus.b771dc38.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.746b02c3.js";import"./index.6b8fec87.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";import"./picker.1a358636.js";import"./index.3c7aa4ba.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.38c17f14.js";import"./index.e69540e3.js";import"./index.vue_vue_type_script_setup_true_lang.5d4d280e.js";import"./index.8615e578.js";import"./index.vue_vue_type_script_setup_true_lang.49284deb.js";import"./usePaging.2ad8e1e6.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.cbc8d603.js";import"./vue.e7f41fea.js";import"./sortablejs.24719fd4.js";export{Z as default};

View File

@ -1 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.33c578eb.js";import{_ as Z}from"./attr.vue_vue_type_script_setup_true_lang.33c578eb.js";import"./element-plus.cdda5c3e.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.ca37cd92.js";import"./index.36ebd16e.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";import"./picker.19fee0e6.js";import"./index.e209d8e5.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.d2e10a77.js";import"./index.35174697.js";import"./index.vue_vue_type_script_setup_true_lang.6c37bae0.js";import"./index.23117a16.js";import"./index.vue_vue_type_script_setup_true_lang.767d5b76.js";import"./usePaging.4ce91869.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.cbc8d603.js";import"./vue.e7f41fea.js";import"./sortablejs.24719fd4.js";export{Z as default};
import"./attr.vue_vue_type_script_setup_true_lang.732aa5b3.js";import{_ as Z}from"./attr.vue_vue_type_script_setup_true_lang.732aa5b3.js";import"./element-plus.b771dc38.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.746b02c3.js";import"./index.6b8fec87.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";import"./picker.1a358636.js";import"./index.3c7aa4ba.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.38c17f14.js";import"./index.e69540e3.js";import"./index.vue_vue_type_script_setup_true_lang.5d4d280e.js";import"./index.8615e578.js";import"./index.vue_vue_type_script_setup_true_lang.49284deb.js";import"./usePaging.2ad8e1e6.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.cbc8d603.js";import"./vue.e7f41fea.js";import"./sortablejs.24719fd4.js";export{Z as default};

View File

@ -1 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.0dc98949.js";import{_ as $}from"./attr.vue_vue_type_script_setup_true_lang.0dc98949.js";import"./element-plus.cdda5c3e.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./add-nav.vue_vue_type_script_setup_true_lang.83dbe35f.js";import"./index.ca37cd92.js";import"./index.36ebd16e.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";import"./picker.19fee0e6.js";import"./index.e209d8e5.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.d2e10a77.js";import"./index.35174697.js";import"./index.vue_vue_type_script_setup_true_lang.6c37bae0.js";import"./index.23117a16.js";import"./index.vue_vue_type_script_setup_true_lang.767d5b76.js";import"./usePaging.4ce91869.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.cbc8d603.js";import"./vue.e7f41fea.js";import"./sortablejs.24719fd4.js";export{$ as default};
import"./attr.vue_vue_type_script_setup_true_lang.b1eeafd5.js";import{_ as $}from"./attr.vue_vue_type_script_setup_true_lang.b1eeafd5.js";import"./element-plus.b771dc38.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./add-nav.vue_vue_type_script_setup_true_lang.29a2a6c1.js";import"./index.746b02c3.js";import"./index.6b8fec87.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";import"./picker.1a358636.js";import"./index.3c7aa4ba.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.38c17f14.js";import"./index.e69540e3.js";import"./index.vue_vue_type_script_setup_true_lang.5d4d280e.js";import"./index.8615e578.js";import"./index.vue_vue_type_script_setup_true_lang.49284deb.js";import"./usePaging.2ad8e1e6.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.cbc8d603.js";import"./vue.e7f41fea.js";import"./sortablejs.24719fd4.js";export{$ as default};

View File

@ -1 +1 @@
import{G as D,H as U,C as y,B as v,w,D as N}from"./element-plus.cdda5c3e.js";import{_ as R}from"./index.ca37cd92.js";import{_ as $}from"./picker.19fee0e6.js";import{_ as j}from"./picker.d2e10a77.js";import{f as F}from"./index.36ebd16e.js";import{D as G}from"./vuedraggable.cbc8d603.js";import{d as I,o as c,c as O,U as e,L as t,R as _,a as m,u as H,K as E,Q as K}from"./@vue.51d7f2d8.js";const L={class:"flex-1"},Q=m("div",{class:"form-tips"},"\u6700\u591A\u6DFB\u52A05\u5F20\uFF0C\u5EFA\u8BAE\u56FE\u7247\u5C3A\u5BF8\uFF1A750px*200px",-1),T={class:"bg-fill-light flex items-center w-full p-4 mt-4 cursor-move"},q={class:"ml-3 flex-1"},r=5,Y=I({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(a){const s=a,V=()=>{var u;((u=s.content.data)==null?void 0:u.length)<r?s.content.data.push({image:"",name:"",link:{}}):F.msgError(`\u6700\u591A\u6DFB\u52A0${r}\u5F20\u56FE\u7247`)},g=u=>{var o;if(((o=s.content.data)==null?void 0:o.length)<=1)return F.msgError("\u6700\u5C11\u4FDD\u7559\u4E00\u5F20\u56FE\u7247");s.content.data.splice(u,1)};return(u,o)=>{const p=D,b=U,d=y,B=j,k=v,x=$,h=R,A=w,C=N;return c(),O("div",null,[e(C,{"label-width":"70px"},{default:t(()=>{var i;return[e(d,{label:"\u662F\u5426\u542F\u7528"},{default:t(()=>[e(b,{modelValue:a.content.enabled,"onUpdate:modelValue":o[0]||(o[0]=l=>a.content.enabled=l)},{default:t(()=>[e(p,{label:1},{default:t(()=>[_("\u5F00\u542F")]),_:1}),e(p,{label:0},{default:t(()=>[_("\u505C\u7528")]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(d,{label:"\u56FE\u7247\u8BBE\u7F6E"},{default:t(()=>[m("div",L,[Q,e(H(G),{class:"draggable",modelValue:a.content.data,"onUpdate:modelValue":o[1]||(o[1]=l=>a.content.data=l),animation:"300"},{item:t(({element:l,index:f})=>[(c(),E(h,{key:f,onClose:n=>g(f),class:"max-w-[400px]"},{default:t(()=>[m("div",T,[e(B,{modelValue:l.image,"onUpdate:modelValue":n=>l.image=n,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]),m("div",q,[e(d,{label:"\u56FE\u7247\u540D\u79F0"},{default:t(()=>[e(k,{modelValue:l.name,"onUpdate:modelValue":n=>l.name=n,placeholder:"\u8BF7\u8F93\u5165\u540D\u79F0"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(d,{class:"mt-[18px]",label:"\u56FE\u7247\u94FE\u63A5"},{default:t(()=>[e(x,{modelValue:l.link,"onUpdate:modelValue":n=>l.link=n},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])])]),_:1}),((i=a.content.data)==null?void 0:i.length)<r?(c(),E(d,{key:0},{default:t(()=>[e(A,{type:"primary",onClick:V},{default:t(()=>[_("\u6DFB\u52A0\u56FE\u7247")]),_:1})]),_:1})):K("",!0)]}),_:1})])}}});export{Y as _};
import{G as D,H as U,C as y,B as v,w,D as N}from"./element-plus.b771dc38.js";import{_ as R}from"./index.746b02c3.js";import{_ as $}from"./picker.1a358636.js";import{_ as j}from"./picker.38c17f14.js";import{f as F}from"./index.6b8fec87.js";import{D as G}from"./vuedraggable.cbc8d603.js";import{d as I,o as c,c as O,U as e,L as t,R as _,a as m,u as H,K as E,Q as K}from"./@vue.51d7f2d8.js";const L={class:"flex-1"},Q=m("div",{class:"form-tips"},"\u6700\u591A\u6DFB\u52A05\u5F20\uFF0C\u5EFA\u8BAE\u56FE\u7247\u5C3A\u5BF8\uFF1A750px*200px",-1),T={class:"bg-fill-light flex items-center w-full p-4 mt-4 cursor-move"},q={class:"ml-3 flex-1"},r=5,Y=I({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(a){const s=a,V=()=>{var u;((u=s.content.data)==null?void 0:u.length)<r?s.content.data.push({image:"",name:"",link:{}}):F.msgError(`\u6700\u591A\u6DFB\u52A0${r}\u5F20\u56FE\u7247`)},g=u=>{var o;if(((o=s.content.data)==null?void 0:o.length)<=1)return F.msgError("\u6700\u5C11\u4FDD\u7559\u4E00\u5F20\u56FE\u7247");s.content.data.splice(u,1)};return(u,o)=>{const p=D,b=U,d=y,B=j,k=v,x=$,h=R,A=w,C=N;return c(),O("div",null,[e(C,{"label-width":"70px"},{default:t(()=>{var i;return[e(d,{label:"\u662F\u5426\u542F\u7528"},{default:t(()=>[e(b,{modelValue:a.content.enabled,"onUpdate:modelValue":o[0]||(o[0]=l=>a.content.enabled=l)},{default:t(()=>[e(p,{label:1},{default:t(()=>[_("\u5F00\u542F")]),_:1}),e(p,{label:0},{default:t(()=>[_("\u505C\u7528")]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(d,{label:"\u56FE\u7247\u8BBE\u7F6E"},{default:t(()=>[m("div",L,[Q,e(H(G),{class:"draggable",modelValue:a.content.data,"onUpdate:modelValue":o[1]||(o[1]=l=>a.content.data=l),animation:"300"},{item:t(({element:l,index:f})=>[(c(),E(h,{key:f,onClose:n=>g(f),class:"max-w-[400px]"},{default:t(()=>[m("div",T,[e(B,{modelValue:l.image,"onUpdate:modelValue":n=>l.image=n,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]),m("div",q,[e(d,{label:"\u56FE\u7247\u540D\u79F0"},{default:t(()=>[e(k,{modelValue:l.name,"onUpdate:modelValue":n=>l.name=n,placeholder:"\u8BF7\u8F93\u5165\u540D\u79F0"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(d,{class:"mt-[18px]",label:"\u56FE\u7247\u94FE\u63A5"},{default:t(()=>[e(x,{modelValue:l.link,"onUpdate:modelValue":n=>l.link=n},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])])]),_:1}),((i=a.content.data)==null?void 0:i.length)<r?(c(),E(d,{key:0},{default:t(()=>[e(A,{type:"primary",onClick:V},{default:t(()=>[_("\u6DFB\u52A0\u56FE\u7247")]),_:1})]),_:1})):K("",!0)]}),_:1})])}}});export{Y as _};

View File

@ -1 +1 @@
import{G as D,H as U,C as v,B as w,w as N,D as R}from"./element-plus.cdda5c3e.js";import{_ as $}from"./index.ca37cd92.js";import{_ as j}from"./picker.19fee0e6.js";import{_ as G}from"./picker.d2e10a77.js";import{f as b}from"./index.36ebd16e.js";import{D as I}from"./vuedraggable.cbc8d603.js";import{d as O,o as n,c as H,U as t,L as l,K as s,R as i,Q as r,a as p,u as K}from"./@vue.51d7f2d8.js";const L={class:"flex-1"},Q=p("div",{class:"form-tips"},"\u6700\u591A\u6DFB\u52A05\u5F20\uFF0C\u5EFA\u8BAE\u56FE\u7247\u5C3A\u5BF8\uFF1A750px*340px",-1),S={class:"bg-fill-light flex items-center w-full p-4 mt-4 cursor-move"},T={class:"ml-3 flex-1"},_=5,Y=O({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},type:{type:String,default:"mobile"}},setup(o){const c=o,g=()=>{var d;((d=c.content.data)==null?void 0:d.length)<_?c.content.data.push({image:"",name:"",link:{}}):b.msgError(`\u6700\u591A\u6DFB\u52A0${_}\u5F20\u56FE\u7247`)},k=d=>{var u;if(((u=c.content.data)==null?void 0:u.length)<=1)return b.msgError("\u6700\u5C11\u4FDD\u7559\u4E00\u5F20\u56FE\u7247");c.content.data.splice(d,1)};return(d,u)=>{const f=D,y=U,m=v,B=G,F=w,h=j,x=$,A=N,C=R;return n(),H("div",null,[t(C,{"label-width":"70px"},{default:l(()=>{var V;return[o.type=="mobile"?(n(),s(m,{key:0,label:"\u662F\u5426\u542F\u7528"},{default:l(()=>[t(y,{modelValue:o.content.enabled,"onUpdate:modelValue":u[0]||(u[0]=e=>o.content.enabled=e)},{default:l(()=>[t(f,{label:1},{default:l(()=>[i("\u5F00\u542F")]),_:1}),t(f,{label:0},{default:l(()=>[i("\u505C\u7528")]),_:1})]),_:1},8,["modelValue"])]),_:1})):r("",!0),t(m,{label:"\u56FE\u7247\u8BBE\u7F6E"},{default:l(()=>[p("div",L,[Q,t(K(I),{class:"draggable",modelValue:o.content.data,"onUpdate:modelValue":u[1]||(u[1]=e=>o.content.data=e),animation:"300"},{item:l(({element:e,index:E})=>[(n(),s(x,{key:E,onClose:a=>k(E),class:"max-w-[400px]"},{default:l(()=>[p("div",S,[t(B,{modelValue:e.image,"onUpdate:modelValue":a=>e.image=a,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]),p("div",T,[t(m,{label:"\u56FE\u7247\u540D\u79F0"},{default:l(()=>[t(F,{modelValue:e.name,"onUpdate:modelValue":a=>e.name=a,placeholder:"\u8BF7\u8F93\u5165\u540D\u79F0"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),t(m,{class:"mt-[18px]",label:"\u56FE\u7247\u94FE\u63A5"},{default:l(()=>[o.type=="mobile"?(n(),s(h,{key:0,modelValue:e.link,"onUpdate:modelValue":a=>e.link=a},null,8,["modelValue","onUpdate:modelValue"])):r("",!0),o.type=="pc"?(n(),s(F,{key:1,placeholder:"\u8BF7\u8F93\u5165\u94FE\u63A5",modelValue:e.link.path,"onUpdate:modelValue":a=>e.link.path=a},null,8,["modelValue","onUpdate:modelValue"])):r("",!0)]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])])]),_:1}),((V=o.content.data)==null?void 0:V.length)<_?(n(),s(m,{key:1},{default:l(()=>[t(A,{type:"primary",onClick:g},{default:l(()=>[i("\u6DFB\u52A0\u56FE\u7247")]),_:1})]),_:1})):r("",!0)]}),_:1})])}}});export{Y as _};
import{G as D,H as U,C as v,B as w,w as N,D as R}from"./element-plus.b771dc38.js";import{_ as $}from"./index.746b02c3.js";import{_ as j}from"./picker.1a358636.js";import{_ as G}from"./picker.38c17f14.js";import{f as b}from"./index.6b8fec87.js";import{D as I}from"./vuedraggable.cbc8d603.js";import{d as O,o as n,c as H,U as t,L as l,K as s,R as i,Q as r,a as p,u as K}from"./@vue.51d7f2d8.js";const L={class:"flex-1"},Q=p("div",{class:"form-tips"},"\u6700\u591A\u6DFB\u52A05\u5F20\uFF0C\u5EFA\u8BAE\u56FE\u7247\u5C3A\u5BF8\uFF1A750px*340px",-1),S={class:"bg-fill-light flex items-center w-full p-4 mt-4 cursor-move"},T={class:"ml-3 flex-1"},_=5,Y=O({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},type:{type:String,default:"mobile"}},setup(o){const c=o,g=()=>{var d;((d=c.content.data)==null?void 0:d.length)<_?c.content.data.push({image:"",name:"",link:{}}):b.msgError(`\u6700\u591A\u6DFB\u52A0${_}\u5F20\u56FE\u7247`)},k=d=>{var u;if(((u=c.content.data)==null?void 0:u.length)<=1)return b.msgError("\u6700\u5C11\u4FDD\u7559\u4E00\u5F20\u56FE\u7247");c.content.data.splice(d,1)};return(d,u)=>{const f=D,y=U,m=v,B=G,F=w,h=j,x=$,A=N,C=R;return n(),H("div",null,[t(C,{"label-width":"70px"},{default:l(()=>{var V;return[o.type=="mobile"?(n(),s(m,{key:0,label:"\u662F\u5426\u542F\u7528"},{default:l(()=>[t(y,{modelValue:o.content.enabled,"onUpdate:modelValue":u[0]||(u[0]=e=>o.content.enabled=e)},{default:l(()=>[t(f,{label:1},{default:l(()=>[i("\u5F00\u542F")]),_:1}),t(f,{label:0},{default:l(()=>[i("\u505C\u7528")]),_:1})]),_:1},8,["modelValue"])]),_:1})):r("",!0),t(m,{label:"\u56FE\u7247\u8BBE\u7F6E"},{default:l(()=>[p("div",L,[Q,t(K(I),{class:"draggable",modelValue:o.content.data,"onUpdate:modelValue":u[1]||(u[1]=e=>o.content.data=e),animation:"300"},{item:l(({element:e,index:E})=>[(n(),s(x,{key:E,onClose:a=>k(E),class:"max-w-[400px]"},{default:l(()=>[p("div",S,[t(B,{modelValue:e.image,"onUpdate:modelValue":a=>e.image=a,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]),p("div",T,[t(m,{label:"\u56FE\u7247\u540D\u79F0"},{default:l(()=>[t(F,{modelValue:e.name,"onUpdate:modelValue":a=>e.name=a,placeholder:"\u8BF7\u8F93\u5165\u540D\u79F0"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),t(m,{class:"mt-[18px]",label:"\u56FE\u7247\u94FE\u63A5"},{default:l(()=>[o.type=="mobile"?(n(),s(h,{key:0,modelValue:e.link,"onUpdate:modelValue":a=>e.link=a},null,8,["modelValue","onUpdate:modelValue"])):r("",!0),o.type=="pc"?(n(),s(F,{key:1,placeholder:"\u8BF7\u8F93\u5165\u94FE\u63A5",modelValue:e.link.path,"onUpdate:modelValue":a=>e.link.path=a},null,8,["modelValue","onUpdate:modelValue"])):r("",!0)]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])])]),_:1}),((V=o.content.data)==null?void 0:V.length)<_?(n(),s(m,{key:1},{default:l(()=>[t(A,{type:"primary",onClick:g},{default:l(()=>[i("\u6DFB\u52A0\u56FE\u7247")]),_:1})]),_:1})):r("",!0)]}),_:1})])}}});export{Y as _};

View File

@ -1 +1 @@
import{B as c,C as i,D as F}from"./element-plus.cdda5c3e.js";import{_ as p}from"./picker.d2e10a77.js";import{d as r,o as f,c as V,U as e,L as o,a as m}from"./@vue.51d7f2d8.js";const B=m("div",{class:"form-tips"},"\u5EFA\u8BAE\u56FE\u7247\u5C3A\u5BF8\uFF1A200*200\u50CF\u7D20\uFF1B\u56FE\u7247\u683C\u5F0F\uFF1Ajpg\u3001png\u3001jpeg",-1),A=r({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(t){return(E,l)=>{const a=c,n=i,d=p,s=F;return f(),V("div",null,[e(s,{"label-width":"90px"},{default:o(()=>[e(n,{label:"\u5BA2\u670D\u6807\u9898"},{default:o(()=>[e(a,{class:"w-[400px]",modelValue:t.content.title,"onUpdate:modelValue":l[0]||(l[0]=u=>t.content.title=u)},null,8,["modelValue"])]),_:1}),e(n,{label:"\u670D\u52A1\u65F6\u95F4"},{default:o(()=>[e(a,{class:"w-[400px]",modelValue:t.content.time,"onUpdate:modelValue":l[1]||(l[1]=u=>t.content.time=u)},null,8,["modelValue"])]),_:1}),e(n,{label:"\u8054\u7CFB\u7535\u8BDD"},{default:o(()=>[e(a,{class:"w-[400px]",modelValue:t.content.mobile,"onUpdate:modelValue":l[2]||(l[2]=u=>t.content.mobile=u)},null,8,["modelValue"])]),_:1}),e(n,{label:"\u5BA2\u670D\u4E8C\u7EF4\u7801"},{default:o(()=>[m("div",null,[e(d,{modelValue:t.content.qrcode,"onUpdate:modelValue":l[3]||(l[3]=u=>t.content.qrcode=u),"exclude-domain":""},null,8,["modelValue"]),B])]),_:1})]),_:1})])}}});export{A as _};
import{B as c,C as i,D as F}from"./element-plus.b771dc38.js";import{_ as p}from"./picker.38c17f14.js";import{d as r,o as f,c as V,U as e,L as o,a as m}from"./@vue.51d7f2d8.js";const B=m("div",{class:"form-tips"},"\u5EFA\u8BAE\u56FE\u7247\u5C3A\u5BF8\uFF1A200*200\u50CF\u7D20\uFF1B\u56FE\u7247\u683C\u5F0F\uFF1Ajpg\u3001png\u3001jpeg",-1),A=r({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(t){return(E,l)=>{const a=c,n=i,d=p,s=F;return f(),V("div",null,[e(s,{"label-width":"90px"},{default:o(()=>[e(n,{label:"\u5BA2\u670D\u6807\u9898"},{default:o(()=>[e(a,{class:"w-[400px]",modelValue:t.content.title,"onUpdate:modelValue":l[0]||(l[0]=u=>t.content.title=u)},null,8,["modelValue"])]),_:1}),e(n,{label:"\u670D\u52A1\u65F6\u95F4"},{default:o(()=>[e(a,{class:"w-[400px]",modelValue:t.content.time,"onUpdate:modelValue":l[1]||(l[1]=u=>t.content.time=u)},null,8,["modelValue"])]),_:1}),e(n,{label:"\u8054\u7CFB\u7535\u8BDD"},{default:o(()=>[e(a,{class:"w-[400px]",modelValue:t.content.mobile,"onUpdate:modelValue":l[2]||(l[2]=u=>t.content.mobile=u)},null,8,["modelValue"])]),_:1}),e(n,{label:"\u5BA2\u670D\u4E8C\u7EF4\u7801"},{default:o(()=>[m("div",null,[e(d,{modelValue:t.content.qrcode,"onUpdate:modelValue":l[3]||(l[3]=u=>t.content.qrcode=u),"exclude-domain":""},null,8,["modelValue"]),B])]),_:1})]),_:1})])}}});export{A as _};

View File

@ -1 +1 @@
import{G as r,H as _,C as i,B as f,D as p}from"./element-plus.cdda5c3e.js";import{_ as V}from"./add-nav.vue_vue_type_script_setup_true_lang.83dbe35f.js";import{d as b,o as E,c as x,U as e,L as t,R as d,a as B}from"./@vue.51d7f2d8.js";const F={class:"flex-1"},w=b({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(l){return(y,o)=>{const u=r,m=_,n=i,s=f,c=p;return E(),x("div",null,[e(c,{"label-width":"70px"},{default:t(()=>[e(n,{label:"\u6392\u7248\u6837\u5F0F"},{default:t(()=>[e(m,{modelValue:l.content.style,"onUpdate:modelValue":o[0]||(o[0]=a=>l.content.style=a)},{default:t(()=>[e(u,{label:1},{default:t(()=>[d("\u6A2A\u6392")]),_:1}),e(u,{label:2},{default:t(()=>[d("\u7AD6\u6392")]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(n,{label:"\u6807\u9898\u540D\u79F0"},{default:t(()=>[e(s,{class:"w-[400px]",modelValue:l.content.title,"onUpdate:modelValue":o[1]||(o[1]=a=>l.content.title=a)},null,8,["modelValue"])]),_:1}),e(n,{label:"\u83DC\u5355\u8BBE\u7F6E"},{default:t(()=>[B("div",F,[e(V,{modelValue:l.content.data,"onUpdate:modelValue":o[2]||(o[2]=a=>l.content.data=a)},null,8,["modelValue"])])]),_:1})]),_:1})])}}});export{w as _};
import{G as r,H as _,C as i,B as f,D as p}from"./element-plus.b771dc38.js";import{_ as V}from"./add-nav.vue_vue_type_script_setup_true_lang.29a2a6c1.js";import{d as b,o as E,c as x,U as e,L as t,R as d,a as B}from"./@vue.51d7f2d8.js";const F={class:"flex-1"},w=b({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(l){return(y,o)=>{const u=r,m=_,n=i,s=f,c=p;return E(),x("div",null,[e(c,{"label-width":"70px"},{default:t(()=>[e(n,{label:"\u6392\u7248\u6837\u5F0F"},{default:t(()=>[e(m,{modelValue:l.content.style,"onUpdate:modelValue":o[0]||(o[0]=a=>l.content.style=a)},{default:t(()=>[e(u,{label:1},{default:t(()=>[d("\u6A2A\u6392")]),_:1}),e(u,{label:2},{default:t(()=>[d("\u7AD6\u6392")]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(n,{label:"\u6807\u9898\u540D\u79F0"},{default:t(()=>[e(s,{class:"w-[400px]",modelValue:l.content.title,"onUpdate:modelValue":o[1]||(o[1]=a=>l.content.title=a)},null,8,["modelValue"])]),_:1}),e(n,{label:"\u83DC\u5355\u8BBE\u7F6E"},{default:t(()=>[B("div",F,[e(V,{modelValue:l.content.data,"onUpdate:modelValue":o[2]||(o[2]=a=>l.content.data=a)},null,8,["modelValue"])])]),_:1})]),_:1})])}}});export{w as _};

View File

@ -1 +1 @@
import{G as _,H as r,C as i,D as f}from"./element-plus.cdda5c3e.js";import{_ as p}from"./add-nav.vue_vue_type_script_setup_true_lang.83dbe35f.js";import{d as F,o as E,c as b,U as e,L as t,R as d,a as s}from"./@vue.51d7f2d8.js";const V={class:"flex-1"},x=s("div",{class:"form-tips mb-4"},"\u6700\u591A\u53EF\u6DFB\u52A010\u4E2A\uFF0C\u5EFA\u8BAE\u56FE\u7247\u5C3A\u5BF8\uFF1A100px*100px",-1),y=F({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(o){return(B,a)=>{const u=_,m=r,n=i,c=f;return E(),b("div",null,[e(c,{"label-width":"70px"},{default:t(()=>[e(n,{label:"\u662F\u5426\u542F\u7528"},{default:t(()=>[e(m,{modelValue:o.content.enabled,"onUpdate:modelValue":a[0]||(a[0]=l=>o.content.enabled=l)},{default:t(()=>[e(u,{label:1},{default:t(()=>[d("\u5F00\u542F")]),_:1}),e(u,{label:0},{default:t(()=>[d("\u505C\u7528")]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(n,{label:"\u83DC\u5355\u8BBE\u7F6E"},{default:t(()=>[s("div",V,[x,e(p,{modelValue:o.content.data,"onUpdate:modelValue":a[1]||(a[1]=l=>o.content.data=l)},null,8,["modelValue"])])]),_:1})]),_:1})])}}});export{y as _};
import{G as _,H as r,C as i,D as f}from"./element-plus.b771dc38.js";import{_ as p}from"./add-nav.vue_vue_type_script_setup_true_lang.29a2a6c1.js";import{d as F,o as E,c as b,U as e,L as t,R as d,a as s}from"./@vue.51d7f2d8.js";const V={class:"flex-1"},x=s("div",{class:"form-tips mb-4"},"\u6700\u591A\u53EF\u6DFB\u52A010\u4E2A\uFF0C\u5EFA\u8BAE\u56FE\u7247\u5C3A\u5BF8\uFF1A100px*100px",-1),y=F({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(o){return(B,a)=>{const u=_,m=r,n=i,c=f;return E(),b("div",null,[e(c,{"label-width":"70px"},{default:t(()=>[e(n,{label:"\u662F\u5426\u542F\u7528"},{default:t(()=>[e(m,{modelValue:o.content.enabled,"onUpdate:modelValue":a[0]||(a[0]=l=>o.content.enabled=l)},{default:t(()=>[e(u,{label:1},{default:t(()=>[d("\u5F00\u542F")]),_:1}),e(u,{label:0},{default:t(()=>[d("\u505C\u7528")]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(n,{label:"\u83DC\u5355\u8BBE\u7F6E"},{default:t(()=>[s("div",V,[x,e(p,{modelValue:o.content.data,"onUpdate:modelValue":a[1]||(a[1]=l=>o.content.data=l)},null,8,["modelValue"])])]),_:1})]),_:1})])}}});export{y as _};

View File

@ -1 +0,0 @@
import"./auth.vue_vue_type_script_setup_true_lang.3fd27600.js";import{_ as P}from"./auth.vue_vue_type_script_setup_true_lang.3fd27600.js";import"./element-plus.cdda5c3e.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./role.7b7d4e7a.js";import"./index.36ebd16e.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";import"./index.e209d8e5.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./menu.11f41b5c.js";export{P as default};

View File

@ -0,0 +1 @@
import"./auth.vue_vue_type_script_setup_true_lang.31d556e8.js";import{_ as P}from"./auth.vue_vue_type_script_setup_true_lang.31d556e8.js";import"./element-plus.b771dc38.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.6b8fec87.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";import"./index.3c7aa4ba.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./user_menu.dd4b73e2.js";import"./user_role.4aa3c381.js";export{P as default};

View File

@ -1 +1 @@
import"./auth.vue_vue_type_script_setup_true_lang.234ff6ee.js";import{_ as P}from"./auth.vue_vue_type_script_setup_true_lang.234ff6ee.js";import"./element-plus.cdda5c3e.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./role.7b7d4e7a.js";import"./index.36ebd16e.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";import"./index.e209d8e5.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./menu.11f41b5c.js";export{P as default};
import"./auth.vue_vue_type_script_setup_true_lang.cbdbd6e4.js";import{_ as P}from"./auth.vue_vue_type_script_setup_true_lang.cbdbd6e4.js";import"./element-plus.b771dc38.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./role.12af286a.js";import"./index.6b8fec87.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";import"./index.3c7aa4ba.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./menu.9a490e1a.js";export{P as default};

View File

@ -0,0 +1 @@
import{F as T,V as P,C as q,E as H,D as I,Q as O}from"./element-plus.b771dc38.js";import"./index.6b8fec87.js";import{P as Q}from"./index.3c7aa4ba.js";import"./lodash.d89407d4.js";import{e as $}from"./user_menu.dd4b73e2.js";import{a as j}from"./user_role.4aa3c381.js";import{d as z,s as f,r as c,$ as G,o as v,c as J,U as a,L as i,M as W,K as X,u as r,a as k,k as Y,n as y}from"./@vue.51d7f2d8.js";const Z={class:"edit-popup"},ce=z({__name:"auth",emits:["success","close"],setup(ee,{expose:C,emit:_}){const o=f(),h=f(),d=f(),x=c(!1),u=c(!0),m=c(!1),b=c([]),p=c([]),l=G({id:"",name:"",desc:"",sort:0,menu_arr:[]}),g={name:[{required:!0,message:"\u8BF7\u8F93\u5165\u540D\u79F0",trigger:["blur"]}]},E=()=>{m.value=!0,$().then(s=>{for(let e of s.lists)if(e.notes?e.nameAndNotes=e.name+" ("+e.notes+")":e.nameAndNotes=e.name,e.children)for(let t of e.children)t.notes?t.nameAndNotes=t.name+" ("+t.notes+")":t.nameAndNotes=t.name;p.value=s.lists,y(()=>{D()}),m.value=!1})},A=()=>{var t,n;const s=(t=o.value)==null?void 0:t.getCheckedKeys(),e=(n=o.value)==null?void 0:n.getHalfCheckedKeys();return s==null||s.unshift.apply(s,e),s},D=()=>{l.menu_arr.forEach(s=>{y(()=>{var e;(e=o.value)==null||e.setChecked(s,!0,!1)})})},R=s=>{const e=p.value;for(let t=0;t<e.length;t++)o.value.store.nodesMap[e[t].id].expanded=s},w=s=>{var e,t;s?(e=o.value)==null||e.setCheckedKeys(b.value.map(n=>n.id)):(t=o.value)==null||t.setCheckedKeys([])},F=async()=>{var s,e;await((s=h.value)==null?void 0:s.validate()),l.menu_arr=A(),await j(l),(e=d.value)==null||e.close(),_("success")},K=()=>{_("close")},N=()=>{var s;(s=d.value)==null||s.open()},B=async s=>{for(const e in l)s[e]!=null&&s[e]!=null&&(l[e]=s[e])};return E(),C({open:N,setFormData:B}),(s,e)=>{const t=T,n=P,V=q,L=H,S=I,U=O;return v(),J("div",Z,[a(Q,{ref_key:"popupRef",ref:d,title:"\u5206\u914D\u6743\u9650",async:!0,width:"550px",onConfirm:F,onClose:K},{default:i(()=>[W((v(),X(S,{class:"ls-form",ref_key:"formRef",ref:h,rules:g,model:r(l),"label-width":"60px"},{default:i(()=>[a(L,{class:"h-[400px] sm:h-[600px]"},{default:i(()=>[a(V,{label:"\u6743\u9650",prop:"menu_arr"},{default:i(()=>[k("div",null,[a(t,{label:"\u5C55\u5F00/\u6298\u53E0",onChange:R}),a(t,{label:"\u5168\u9009/\u4E0D\u5168\u9009",onChange:w}),a(t,{modelValue:r(u),"onUpdate:modelValue":e[0]||(e[0]=M=>Y(u)?u.value=M:null),label:"\u7236\u5B50\u8054\u52A8"},null,8,["modelValue"]),k("div",null,[a(n,{ref_key:"treeRef",ref:o,data:r(p),props:{label:"nameAndNotes",children:"children"},"check-strictly":!r(u),"node-key":"id","default-expand-all":r(x),"show-checkbox":""},null,8,["data","check-strictly","default-expand-all"])])])]),_:1})]),_:1})]),_:1},8,["model"])),[[U,r(m)]])]),_:1},512)])}}});export{ce as _};

View File

@ -1 +0,0 @@
import{F as P,T as U,C as q,E as H,D as I,N as O}from"./element-plus.cdda5c3e.js";import{a as $}from"./role.7b7d4e7a.js";import{P as j}from"./index.e209d8e5.js";import{t as z}from"./index.36ebd16e.js";import{m as G}from"./menu.11f41b5c.js";import{d as J,s as f,r as u,$ as Q,o as k,c as W,U as s,L as d,M as X,K as Y,u as c,a as y,k as Z,n as C}from"./@vue.51d7f2d8.js";const ee={class:"edit-popup"},ue=J({__name:"auth",emits:["success","close"],setup(le,{expose:x,emit:_}){const o=f(),h=f(),i=f(),b=u(!1),r=u(!0),m=u(!1),v=u([]),p=u([]),a=Q({id:"",name:"",desc:"",sort:0,menu_id:[]}),g={name:[{required:!0,message:"\u8BF7\u8F93\u5165\u540D\u79F0",trigger:["blur"]}]},E=()=>{m.value=!0,G().then(e=>{p.value=e,v.value=z(e),C(()=>{w()}),m.value=!1})},D=()=>{var t,n;const e=(t=o.value)==null?void 0:t.getCheckedKeys(),l=(n=o.value)==null?void 0:n.getHalfCheckedKeys();return e==null||e.unshift.apply(e,l),e},w=()=>{a.menu_id.forEach(e=>{C(()=>{var l;(l=o.value)==null||l.setChecked(e,!0,!1)})})},F=e=>{const l=p.value;for(let t=0;t<l.length;t++)o.value.store.nodesMap[l[t].id].expanded=e},R=e=>{var l,t;e?(l=o.value)==null||l.setCheckedKeys(v.value.map(n=>n.id)):(t=o.value)==null||t.setCheckedKeys([])},A=async()=>{var e,l;await((e=h.value)==null?void 0:e.validate()),a.menu_id=D(),await $(a),(l=i.value)==null||l.close(),_("success")},K=()=>{_("close")},B=()=>{var e;(e=i.value)==null||e.open()},T=async e=>{for(const l in a)e[l]!=null&&e[l]!=null&&(a[l]=e[l])};return E(),x({open:B,setFormData:T}),(e,l)=>{const t=P,n=U,V=q,S=H,L=I,N=O;return k(),W("div",ee,[s(j,{ref_key:"popupRef",ref:i,title:"\u5206\u914D\u6743\u9650",async:!0,width:"550px",onConfirm:A,onClose:K},{default:d(()=>[X((k(),Y(L,{class:"ls-form",ref_key:"formRef",ref:h,rules:g,model:c(a),"label-width":"60px"},{default:d(()=>[s(S,{class:"h-[400px] sm:h-[600px]"},{default:d(()=>[s(V,{label:"\u6743\u9650",prop:"menu_id"},{default:d(()=>[y("div",null,[s(t,{label:"\u5C55\u5F00/\u6298\u53E0",onChange:F}),s(t,{label:"\u5168\u9009/\u4E0D\u5168\u9009",onChange:R}),s(t,{modelValue:c(r),"onUpdate:modelValue":l[0]||(l[0]=M=>Z(r)?r.value=M:null),label:"\u7236\u5B50\u8054\u52A8"},null,8,["modelValue"]),y("div",null,[s(n,{ref_key:"treeRef",ref:o,data:c(p),props:{label:"name",children:"children"},"check-strictly":!c(r),"node-key":"id","default-expand-all":c(b),"show-checkbox":""},null,8,["data","check-strictly","default-expand-all"])])])]),_:1})]),_:1})]),_:1},8,["model"])),[[N,c(m)]])]),_:1},512)])}}});export{ue as _};

View File

@ -1 +1 @@
import{F as P,T as U,C as q,E as H,D as I,N as O}from"./element-plus.cdda5c3e.js";import{a as $}from"./role.7b7d4e7a.js";import{P as j}from"./index.e209d8e5.js";import{t as z}from"./index.36ebd16e.js";import{m as G}from"./menu.11f41b5c.js";import{d as J,s as f,r as u,$ as Q,o as k,c as W,U as s,L as d,M as X,K as Y,u as c,a as y,k as Z,n as C}from"./@vue.51d7f2d8.js";const ee={class:"edit-popup"},ue=J({__name:"auth",emits:["success","close"],setup(le,{expose:x,emit:_}){const o=f(),h=f(),i=f(),b=u(!1),r=u(!0),m=u(!1),v=u([]),p=u([]),a=Q({id:"",name:"",desc:"",sort:0,menu_id:[]}),g={name:[{required:!0,message:"\u8BF7\u8F93\u5165\u540D\u79F0",trigger:["blur"]}]},E=()=>{m.value=!0,G().then(e=>{p.value=e,v.value=z(e),C(()=>{w()}),m.value=!1})},D=()=>{var t,n;const e=(t=o.value)==null?void 0:t.getCheckedKeys(),l=(n=o.value)==null?void 0:n.getHalfCheckedKeys();return e==null||e.unshift.apply(e,l),e},w=()=>{a.menu_id.forEach(e=>{C(()=>{var l;(l=o.value)==null||l.setChecked(e,!0,!1)})})},F=e=>{const l=p.value;for(let t=0;t<l.length;t++)o.value.store.nodesMap[l[t].id].expanded=e},R=e=>{var l,t;e?(l=o.value)==null||l.setCheckedKeys(v.value.map(n=>n.id)):(t=o.value)==null||t.setCheckedKeys([])},A=async()=>{var e,l;await((e=h.value)==null?void 0:e.validate()),a.menu_id=D(),await $(a),(l=i.value)==null||l.close(),_("success")},K=()=>{_("close")},B=()=>{var e;(e=i.value)==null||e.open()},T=async e=>{for(const l in a)e[l]!=null&&e[l]!=null&&(a[l]=e[l])};return E(),x({open:B,setFormData:T}),(e,l)=>{const t=P,n=U,V=q,S=H,L=I,N=O;return k(),W("div",ee,[s(j,{ref_key:"popupRef",ref:i,title:"\u5206\u914D\u6743\u9650",async:!0,width:"550px",onConfirm:A,onClose:K},{default:d(()=>[X((k(),Y(L,{class:"ls-form",ref_key:"formRef",ref:h,rules:g,model:c(a),"label-width":"60px"},{default:d(()=>[s(S,{class:"h-[400px] sm:h-[600px]"},{default:d(()=>[s(V,{label:"\u6743\u9650",prop:"menu_id"},{default:d(()=>[y("div",null,[s(t,{label:"\u5C55\u5F00/\u6298\u53E0",onChange:F}),s(t,{label:"\u5168\u9009/\u4E0D\u5168\u9009",onChange:R}),s(t,{modelValue:c(r),"onUpdate:modelValue":l[0]||(l[0]=M=>Z(r)?r.value=M:null),label:"\u7236\u5B50\u8054\u52A8"},null,8,["modelValue"]),y("div",null,[s(n,{ref_key:"treeRef",ref:o,data:c(p),props:{label:"name",children:"children"},"check-strictly":!c(r),"node-key":"id","default-expand-all":c(b),"show-checkbox":""},null,8,["data","check-strictly","default-expand-all"])])])]),_:1})]),_:1})]),_:1},8,["model"])),[[N,c(m)]])]),_:1},512)])}}});export{ue as _};
import{F as P,V as U,C as q,E as H,D as I,Q as O}from"./element-plus.b771dc38.js";import{a as Q}from"./role.12af286a.js";import{P as $}from"./index.3c7aa4ba.js";import{t as j}from"./index.6b8fec87.js";import{m as z}from"./menu.9a490e1a.js";import{d as G,s as f,r as u,$ as J,o as k,c as W,U as s,L as d,M as X,K as Y,u as c,a as y,k as Z,n as C}from"./@vue.51d7f2d8.js";const ee={class:"edit-popup"},ue=G({__name:"auth",emits:["success","close"],setup(le,{expose:x,emit:_}){const o=f(),h=f(),i=f(),b=u(!1),r=u(!0),m=u(!1),v=u([]),p=u([]),a=J({id:"",name:"",desc:"",sort:0,menu_id:[]}),g={name:[{required:!0,message:"\u8BF7\u8F93\u5165\u540D\u79F0",trigger:["blur"]}]},E=()=>{m.value=!0,z().then(e=>{p.value=e,v.value=j(e),C(()=>{w()}),m.value=!1})},D=()=>{var t,n;const e=(t=o.value)==null?void 0:t.getCheckedKeys(),l=(n=o.value)==null?void 0:n.getHalfCheckedKeys();return e==null||e.unshift.apply(e,l),e},w=()=>{a.menu_id.forEach(e=>{C(()=>{var l;(l=o.value)==null||l.setChecked(e,!0,!1)})})},F=e=>{const l=p.value;for(let t=0;t<l.length;t++)o.value.store.nodesMap[l[t].id].expanded=e},R=e=>{var l,t;e?(l=o.value)==null||l.setCheckedKeys(v.value.map(n=>n.id)):(t=o.value)==null||t.setCheckedKeys([])},A=async()=>{var e,l;await((e=h.value)==null?void 0:e.validate()),a.menu_id=D(),await Q(a),(l=i.value)==null||l.close(),_("success")},K=()=>{_("close")},B=()=>{var e;(e=i.value)==null||e.open()},V=async e=>{for(const l in a)e[l]!=null&&e[l]!=null&&(a[l]=e[l])};return E(),x({open:B,setFormData:V}),(e,l)=>{const t=P,n=U,S=q,T=H,L=I,M=O;return k(),W("div",ee,[s($,{ref_key:"popupRef",ref:i,title:"\u5206\u914D\u6743\u9650",async:!0,width:"550px",onConfirm:A,onClose:K},{default:d(()=>[X((k(),Y(L,{class:"ls-form",ref_key:"formRef",ref:h,rules:g,model:c(a),"label-width":"60px"},{default:d(()=>[s(T,{class:"h-[400px] sm:h-[600px]"},{default:d(()=>[s(S,{label:"\u6743\u9650",prop:"menu_id"},{default:d(()=>[y("div",null,[s(t,{label:"\u5C55\u5F00/\u6298\u53E0",onChange:F}),s(t,{label:"\u5168\u9009/\u4E0D\u5168\u9009",onChange:R}),s(t,{modelValue:c(r),"onUpdate:modelValue":l[0]||(l[0]=N=>Z(r)?r.value=N:null),label:"\u7236\u5B50\u8054\u52A8"},null,8,["modelValue"]),y("div",null,[s(n,{ref_key:"treeRef",ref:o,data:c(p),props:{label:"name",children:"children"},"check-strictly":!c(r),"node-key":"id","default-expand-all":c(b),"show-checkbox":""},null,8,["data","check-strictly","default-expand-all"])])])]),_:1})]),_:1})]),_:1},8,["model"])),[[M,c(m)]])]),_:1},512)])}}});export{ue as _};

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{K as U,B as K,C as N,Q as P,R,w as I,D as O,I as S,L as $,M as z,N as M}from"./element-plus.cdda5c3e.js";import{_ as j}from"./index.vue_vue_type_script_setup_true_lang.6c37bae0.js";import{_ as q}from"./index.36ebd16e.js";import{_ as Q}from"./index.vue_vue_type_script_setup_true_lang.76142360.js";import{d as w,$ as G,o as r,c as b,U as e,L as a,u as o,a8 as H,T as J,a7 as W,K as h,R as m,M as X,a as p,S as B,O as Y,k as Z}from"./@vue.51d7f2d8.js";import{g as ee,a as te}from"./finance.05603d8a.js";import{u as oe}from"./useDictOptions.f9e70309.js";import{u as ae}from"./usePaging.4ce91869.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";const ne={class:"flex items-center"},le={class:"flex justify-end mt-4"},ue=w({name:"articleLists"}),He=w({...ue,setup(ie){const n=G({user_info:"",change_type:"",start_time:"",end_time:""}),{pager:i,getLists:_,resetPage:c,resetParams:E}=ae({fetchFun:te,params:n}),{optionsData:C}=oe({change_type:{api:ee}});return _(),(se,l)=>{const D=U,v=K,s=N,d=P,y=R,x=Q,f=I,V=O,g=S,u=$,T=q,A=z,k=j,L=M;return r(),b("div",null,[e(g,{class:"!border-none",shadow:"never"},{default:a(()=>[e(D,{type:"warning",title:"\u6E29\u99A8\u63D0\u793A\uFF1A\u7528\u6237\u8D26\u6237\u53D8\u52A8\u8BB0\u5F55",closable:!1,"show-icon":""}),e(V,{ref:"formRef",class:"mb-[-16px] mt-[16px]",model:o(n),inline:!0},{default:a(()=>[e(s,{label:"\u7528\u6237\u4FE1\u606F"},{default:a(()=>[e(v,{class:"w-[280px]",modelValue:o(n).user_info,"onUpdate:modelValue":l[0]||(l[0]=t=>o(n).user_info=t),placeholder:"\u8BF7\u8F93\u5165\u7528\u6237\u7F16\u53F7/\u6635\u79F0/\u624B\u673A\u53F7",clearable:"",onKeyup:H(o(c),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(s,{label:"\u53D8\u52A8\u7C7B\u578B"},{default:a(()=>[e(y,{class:"w-[280px]",modelValue:o(n).change_type,"onUpdate:modelValue":l[1]||(l[1]=t=>o(n).change_type=t)},{default:a(()=>[e(d,{label:"\u5168\u90E8",value:""}),(r(!0),b(J,null,W(o(C).change_type,(t,F)=>(r(),h(d,{key:F,label:t,value:F},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(s,{label:"\u8BB0\u5F55\u65F6\u95F4"},{default:a(()=>[e(x,{startTime:o(n).start_time,"onUpdate:startTime":l[2]||(l[2]=t=>o(n).start_time=t),endTime:o(n).end_time,"onUpdate:endTime":l[3]||(l[3]=t=>o(n).end_time=t)},null,8,["startTime","endTime"])]),_:1}),e(s,null,{default:a(()=>[e(f,{type:"primary",onClick:o(c)},{default:a(()=>[m("\u67E5\u8BE2")]),_:1},8,["onClick"]),e(f,{onClick:o(E)},{default:a(()=>[m("\u91CD\u7F6E")]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),e(g,{class:"!border-none mt-4",shadow:"never"},{default:a(()=>[X((r(),h(A,{size:"large",data:o(i).lists},{default:a(()=>[e(u,{label:"\u7528\u6237\u7F16\u53F7",prop:"sn","min-width":"100"}),e(u,{label:"\u7528\u6237\u6635\u79F0","min-width":"160"},{default:a(({row:t})=>[p("div",ne,[e(T,{class:"flex-none mr-2",src:t.avatar,width:40,height:40,"preview-teleported":"",fit:"contain"},null,8,["src"]),m(" "+B(t.nickname),1)])]),_:1}),e(u,{label:"\u624B\u673A\u53F7\u7801",prop:"mobile","min-width":"100"}),e(u,{label:"\u53D8\u52A8\u91D1\u989D",prop:"change_amount","min-width":"100"},{default:a(({row:t})=>[p("span",{class:Y({"text-error":t.action==2})},B(t.change_amount),3)]),_:1}),e(u,{label:"\u5269\u4F59\u91D1\u989D",prop:"left_amount","min-width":"100"}),e(u,{label:"\u53D8\u52A8\u7C7B\u578B",prop:"change_type_desc","min-width":"120"}),e(u,{label:"\u6765\u6E90\u5355\u53F7",prop:"source_sn","min-width":"100"}),e(u,{label:"\u8BB0\u5F55\u65F6\u95F4",prop:"create_time","min-width":"120"})]),_:1},8,["data"])),[[L,o(i).loading]]),p("div",le,[e(k,{modelValue:o(i),"onUpdate:modelValue":l[4]||(l[4]=t=>Z(i)?i.value=t:null),onChange:o(_)},null,8,["modelValue","onChange"])])]),_:1})])}}});export{He as default};

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
.tit[data-v-b354e75b]{font-size:1.2rem;translate:1vw -1vw;background-color:#fff;margin:2vh 0 0}.tit .time[data-v-b354e75b]{display:inline-block;font-size:.8rem;margin-left:1vw;color:#999}

View File

@ -1 +0,0 @@
.tit[data-v-d8b50ca5]{font-size:1.2rem;translate:1vw -1vw;background-color:#fff;margin:2vh 0 0}.tit .time[data-v-d8b50ca5]{display:inline-block;font-size:.8rem;margin-left:1vw;color:#999}

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{K as s,I as c,L as l,w as _,M as d}from"./element-plus.cdda5c3e.js";import{s as F}from"./system.ea336da6.js";import{f as B}from"./index.36ebd16e.js";import{d as r,r as E,o as f,c as C,U as t,L as o,u as h,R as b}from"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";const D={class:"cache"},w=r({name:"cache"}),nt=r({...w,setup(A){const a=E([{content:"\u7CFB\u7EDF\u7F13\u5B58",desc:"\u7CFB\u7EDF\u8FD0\u884C\u8FC7\u7A0B\u4E2D\u4EA7\u751F\u7684\u5404\u7C7B\u7F13\u5B58\u6570\u636E"}]),i=async()=>{await B.confirm("\u786E\u8BA4\u6E05\u9664\u7CFB\u7EDF\u7F13\u5B58\uFF1F"),await F()};return(k,x)=>{const m=s,u=c,e=l,n=_,p=d;return f(),C("div",D,[t(u,{class:"!border-none",shadow:"never"},{default:o(()=>[t(m,{type:"warning",title:"\u6E29\u99A8\u63D0\u793A\uFF1A\u7BA1\u7406\u7CFB\u7EDF\u8FD0\u884C\u8FC7\u7A0B\u4E2D\u4EA7\u751F\u7684\u7F13\u5B58",closable:!1,"show-icon":""})]),_:1}),t(u,{class:"!border-none mt-4",shadow:"never"},{default:o(()=>[t(p,{data:h(a),size:"large"},{default:o(()=>[t(e,{label:"\u7BA1\u7406\u5185\u5BB9",prop:"content","min-width":"130"}),t(e,{label:"\u5185\u5BB9\u8BF4\u660E",prop:"desc","min-width":"180"}),t(e,{label:"\u64CD\u4F5C",width:"130",fixed:"right"},{default:o(()=>[t(n,{type:"primary",link:"",onClick:i},{default:o(()=>[b("\u6E05\u9664\u7CFB\u7EDF\u7F13\u5B58")]),_:1})]),_:1})]),_:1},8,["data"])]),_:1})])}}});export{nt as default};
import{S as s,I as c,O as l,w as _,P as d}from"./element-plus.b771dc38.js";import{s as F}from"./system.ccc16733.js";import{f as B}from"./index.6b8fec87.js";import{d as r,r as E,o as f,c as C,U as t,L as o,u as h,R as b}from"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";const D={class:"cache"},w=r({name:"cache"}),nt=r({...w,setup(A){const a=E([{content:"\u7CFB\u7EDF\u7F13\u5B58",desc:"\u7CFB\u7EDF\u8FD0\u884C\u8FC7\u7A0B\u4E2D\u4EA7\u751F\u7684\u5404\u7C7B\u7F13\u5B58\u6570\u636E"}]),i=async()=>{await B.confirm("\u786E\u8BA4\u6E05\u9664\u7CFB\u7EDF\u7F13\u5B58\uFF1F"),await F()};return(k,x)=>{const m=s,u=c,e=l,n=_,p=d;return f(),C("div",D,[t(u,{class:"!border-none",shadow:"never"},{default:o(()=>[t(m,{type:"warning",title:"\u6E29\u99A8\u63D0\u793A\uFF1A\u7BA1\u7406\u7CFB\u7EDF\u8FD0\u884C\u8FC7\u7A0B\u4E2D\u4EA7\u751F\u7684\u7F13\u5B58",closable:!1,"show-icon":""})]),_:1}),t(u,{class:"!border-none mt-4",shadow:"never"},{default:o(()=>[t(p,{data:h(a),size:"large"},{default:o(()=>[t(e,{label:"\u7BA1\u7406\u5185\u5BB9",prop:"content","min-width":"130"}),t(e,{label:"\u5185\u5BB9\u8BF4\u660E",prop:"desc","min-width":"180"}),t(e,{label:"\u64CD\u4F5C",width:"130",fixed:"right"},{default:o(()=>[t(n,{type:"primary",link:"",onClick:i},{default:o(()=>[b("\u6E05\u9664\u7CFB\u7EDF\u7F13\u5B58")]),_:1})]),_:1})]),_:1},8,["data"])]),_:1})])}}});export{nt as default};

View File

@ -1 +1 @@
import"./code-preview.vue_vue_type_script_setup_true_lang.122e749d.js";import{_ as L}from"./code-preview.vue_vue_type_script_setup_true_lang.122e749d.js";import"./element-plus.cdda5c3e.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.36ebd16e.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";export{L as default};
import"./code-preview.vue_vue_type_script_setup_true_lang.f2725b00.js";import{_ as L}from"./code-preview.vue_vue_type_script_setup_true_lang.f2725b00.js";import"./element-plus.b771dc38.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.6b8fec87.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";export{L as default};

View File

@ -1 +0,0 @@
import{x as w,y as B,E as D,w as T,J as N}from"./element-plus.cdda5c3e.js";import{f as r,b as U}from"./index.36ebd16e.js";import{u as $}from"./vue-clipboard3.dca5bca3.js";import{d as j,r as F,e as L,a4 as R,o as c,c as d,U as o,L as t,u as m,k as i,T as S,a7 as J,K,a as p,R as P}from"./@vue.51d7f2d8.js";const q={class:"code-preview"},z={class:"flex",style:{height:"50vh"}},O=j({__name:"code-preview",props:{modelValue:{type:Boolean},code:{}},emits:["update:modelValue"],setup(_,{emit:f}){const b=_,{toClipboard:h}=$(),n=F("index0"),V=async a=>{try{await h(a),r.msgSuccess("\u590D\u5236\u6210\u529F")}catch{r.msgError("\u590D\u5236\u5931\u8D25")}},s=L({get(){return b.modelValue},set(a){f("update:modelValue",a)}});return(a,l)=>{const g=R("highlightjs"),v=D,y=U,C=T,E=w,k=B,x=N;return c(),d("div",q,[o(x,{modelValue:m(s),"onUpdate:modelValue":l[1]||(l[1]=e=>i(s)?s.value=e:null),width:"900px",title:"\u4EE3\u7801\u9884\u89C8"},{default:t(()=>[o(k,{modelValue:m(n),"onUpdate:modelValue":l[0]||(l[0]=e=>i(n)?n.value=e:null)},{default:t(()=>[(c(!0),d(S,null,J(a.code,(e,u)=>(c(),K(E,{label:e.name,name:`index${u}`,key:u},{default:t(()=>[p("div",z,[o(v,{class:"flex-1"},{default:t(()=>[o(g,{autodetect:"",code:e.content},null,8,["code"])]),_:2},1024),p("div",null,[o(C,{onClick:A=>V(e.content),type:"primary",link:""},{icon:t(()=>[o(y,{name:"el-icon-CopyDocument"})]),default:t(()=>[P(" \u590D\u5236 ")]),_:2},1032,["onClick"])])])]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])])}}});export{O as _};

View File

@ -0,0 +1 @@
import{x as w,y as B,E as D,w as T,L}from"./element-plus.b771dc38.js";import{f as r,b as N}from"./index.6b8fec87.js";import{u as U}from"./vue-clipboard3.dca5bca3.js";import{d as $,r as j,e as F,a4 as R,o as c,c as d,U as o,L as t,u as m,k as i,T as S,a7 as K,K as P,a as p,R as q}from"./@vue.51d7f2d8.js";const z={class:"code-preview"},A={class:"flex",style:{height:"50vh"}},O=$({__name:"code-preview",props:{modelValue:{type:Boolean},code:{}},emits:["update:modelValue"],setup(_,{emit:f}){const b=_,{toClipboard:h}=U(),n=j("index0"),V=async a=>{try{await h(a),r.msgSuccess("\u590D\u5236\u6210\u529F")}catch{r.msgError("\u590D\u5236\u5931\u8D25")}},s=F({get(){return b.modelValue},set(a){f("update:modelValue",a)}});return(a,l)=>{const g=R("highlightjs"),v=D,y=N,C=T,E=w,k=B,x=L;return c(),d("div",z,[o(x,{modelValue:m(s),"onUpdate:modelValue":l[1]||(l[1]=e=>i(s)?s.value=e:null),width:"900px",title:"\u4EE3\u7801\u9884\u89C8"},{default:t(()=>[o(k,{modelValue:m(n),"onUpdate:modelValue":l[0]||(l[0]=e=>i(n)?n.value=e:null)},{default:t(()=>[(c(!0),d(S,null,K(a.code,(e,u)=>(c(),P(E,{label:e.name,name:`index${u}`,key:u},{default:t(()=>[p("div",A,[o(v,{class:"flex-1"},{default:t(()=>[o(g,{autodetect:"",code:e.content},null,8,["code"])]),_:2},1024),p("div",null,[o(C,{onClick:G=>V(e.content),type:"primary",link:""},{icon:t(()=>[o(y,{name:"el-icon-CopyDocument"})]),default:t(()=>[q(" \u590D\u5236 ")]),_:2},1032,["onClick"])])])]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])])}}});export{O as _};

View File

@ -1 +1 @@
import{r as t}from"./index.36ebd16e.js";function o(e){return t.get({url:"/tools.generator/generateTable",params:e})}function n(e){return t.get({url:"/tools.generator/dataTable",params:e})}function a(e){return t.post({url:"/tools.generator/selectTable",params:e})}function l(e){return t.get({url:"/tools.generator/detail",params:e})}function s(e){return t.post({url:"/tools.generator/syncColumn",params:e})}function u(e){return t.post({url:"/tools.generator/delete",params:e})}function g(e){return t.post({url:"/tools.generator/edit",params:e})}function i(e){return t.post({url:"/tools.generator/preview",params:e})}function c(e){return t.post({url:"/tools.generator/generate",params:e})}function f(){return t.get({url:"/tools.generator/getModels"})}export{f as a,u as b,i as c,c as d,o as e,a as f,g,n as h,s,l as t};
import{r as t}from"./index.6b8fec87.js";function o(e){return t.get({url:"/tools.generator/generateTable",params:e})}function n(e){return t.get({url:"/tools.generator/dataTable",params:e})}function a(e){return t.post({url:"/tools.generator/selectTable",params:e})}function l(e){return t.get({url:"/tools.generator/detail",params:e})}function s(e){return t.post({url:"/tools.generator/syncColumn",params:e})}function u(e){return t.post({url:"/tools.generator/delete",params:e})}function g(e){return t.post({url:"/tools.generator/edit",params:e})}function i(e){return t.post({url:"/tools.generator/preview",params:e})}function c(e){return t.post({url:"/tools.generator/generate",params:e})}function f(){return t.get({url:"/tools.generator/getModels"})}export{f as a,u as b,i as c,c as d,o as e,a as f,g,n as h,s,l as t};

View File

@ -1 +1 @@
import{r}from"./index.36ebd16e.js";function i(t){return r.get({url:"/common/province",params:t})}function n(t){return r.get({url:"/common/city",params:t})}function o(t){return r.get({url:"/common/area",params:t})}function a(t){return r.get({url:"/common/street",params:t})}function u(t){return r.get({url:"/common/village",params:t})}function c(){return r.get({url:"/common/brigade"})}export{i as a,n as b,o as c,a as d,u as e,c as f};
import{r}from"./index.6b8fec87.js";function i(t){return r.get({url:"/common/province",params:t})}function n(t){return r.get({url:"/common/city",params:t})}function o(t){return r.get({url:"/common/area",params:t})}function a(t){return r.get({url:"/common/street",params:t})}function u(t){return r.get({url:"/common/village",params:t})}function c(){return r.get({url:"/common/brigade"})}export{i as a,n as b,o as c,a as d,u as e,c as f};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{r as n}from"./index.36ebd16e.js";function r(t){return n.get({url:"/company/lists",params:t})}function e(t){return n.post({url:"/company/add",params:t})}function o(t){return n.post({url:"/company/edit",params:t})}function i(t){return n.post({url:"/company/delete",params:t})}function u(t){return n.get({url:"/company/detail",params:t})}function c(t){return n.get({url:"/company/subordinate",params:t})}function s(t){return n.get({url:"/company/postsms",params:t})}function p(t){return n.get({url:"/company/initiate_contract",params:t})}function m(t){return n.get({url:"/company/Draftingcontracts",params:t})}function l(t){return n.get({url:"/company/authentication",params:t})}function y(t){return n.get({url:"/company/list_two",params:t})}function f(t){return n.get({url:"/company/responsible_area",params:t})}export{r as a,u as b,f as c,o as d,e,i as f,m as g,l as h,p as i,y as j,c as k,s};
import{r as n}from"./index.6b8fec87.js";function r(t){return n.get({url:"/company/lists",params:t})}function e(t){return n.post({url:"/company/add",params:t})}function o(t){return n.post({url:"/company/edit",params:t})}function i(t){return n.post({url:"/company/delete",params:t})}function u(t){return n.get({url:"/company/detail",params:t})}function c(t){return n.get({url:"/company/subordinate",params:t})}function s(t){return n.get({url:"/company/postsms",params:t})}function p(t){return n.get({url:"/company/initiate_contract",params:t})}function m(t){return n.get({url:"/company/Draftingcontracts",params:t})}function l(t){return n.get({url:"/company/authentication",params:t})}function y(t){return n.get({url:"/company/list_two",params:t})}function f(t){return n.get({url:"/company/responsible_area",params:t})}export{u as a,f as b,y as c,o as d,e,i as f,m as g,l as h,p as i,r as j,c as k,s};

View File

@ -0,0 +1 @@
.btn{position:absolute}h1{text-align:center;font-weight:700;font-size:30px;color:red;margin-bottom:10px}.content{font-size:20px}.info{color:red;font-weight:700;font-size:18px;display:inline-block;margin:0 5px}.btn_menu{margin-top:10vh;display:flex;justify-content:space-around}.formdata .el-form-item{width:20%}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{r}from"./index.36ebd16e.js";function n(t){return r.get({url:"/user.user/lists",params:t},{ignoreCancelToken:!0})}function u(t){return r.get({url:"/user.user/detail",params:t})}function s(t){return r.post({url:"/user.user/edit",params:t})}function o(t){return r.post({url:"/user.user/adjustMoney",params:t})}function a(t){return r.post({url:"/user.user/initiate_contract",params:t})}function c(t){return r.post({url:"/contract.contract/wind_control",params:t})}function i(t){return r.post({url:"/user.user/Draftingcontracts",params:t})}function l(t){return r.get({url:"/contract.contract/postsms",params:t})}export{o as a,c as b,n as c,i as d,u as g,a as i,l as s,s as u};
import{r}from"./index.6b8fec87.js";function n(t){return r.get({url:"/user.user/lists",params:t},{ignoreCancelToken:!0})}function u(t){return r.get({url:"/user.user/detail",params:t})}function s(t){return r.post({url:"/user.user/edit",params:t})}function o(t){return r.post({url:"/user.user/adjustMoney",params:t})}function a(t){return r.post({url:"/user.user/initiate_contract",params:t})}function c(t){return r.post({url:"/contract.contract/wind_control",params:t})}function i(t){return r.post({url:"/user.user/Draftingcontracts",params:t})}function l(t){return r.get({url:"/contract.contract/postsms",params:t})}export{o as a,c as b,n as c,i as d,u as g,a as i,l as s,s as u};

View File

@ -1 +1 @@
import"./content.vue_vue_type_script_setup_true_lang.e1178cb9.js";import{_ as M}from"./content.vue_vue_type_script_setup_true_lang.e1178cb9.js";import"./decoration-img.96adb25b.js";import"./element-plus.cdda5c3e.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.36ebd16e.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";export{M as default};
import"./content.vue_vue_type_script_setup_true_lang.40c10e8b.js";import{_ as M}from"./content.vue_vue_type_script_setup_true_lang.40c10e8b.js";import"./decoration-img.67a82d3e.js";import"./element-plus.b771dc38.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.6b8fec87.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";export{M as default};

View File

@ -1 +1 @@
import{b as x,d as _}from"./index.36ebd16e.js";import c from"./decoration-img.96adb25b.js";import{d as u,o as t,c as e,a as r,S as s,Q as p,T as a,a7 as l,U as m}from"./@vue.51d7f2d8.js";import"./element-plus.cdda5c3e.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";const f={class:"my-service"},h={key:0,class:"title px-[15px] py-[10px]"},y={key:1,class:"flex flex-wrap pt-[20px] pb-[10px]"},v={class:"mt-[7px]"},b={key:2},g={class:"ml-[10px] flex-1"},k=u({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(o){return(w,B)=>{const d=x;return t(),e("div",f,[o.content.title?(t(),e("div",h,[r("div",null,s(o.content.title),1)])):p("",!0),o.content.style==1?(t(),e("div",y,[(t(!0),e(a,null,l(o.content.data,(i,n)=>(t(),e("div",{key:n,class:"flex flex-col items-center w-1/4 mb-[15px]"},[m(c,{width:"26px",height:"26px",src:i.image,alt:""},null,8,["src"]),r("div",v,s(i.name),1)]))),128))])):p("",!0),o.content.style==2?(t(),e("div",b,[(t(!0),e(a,null,l(o.content.data,(i,n)=>(t(),e("div",{key:n,class:"flex items-center border-b border-[#e5e5e5] h-[50px] px-[12px]"},[m(c,{width:"24px",height:"24px",src:i.image,alt:""},null,8,["src"]),r("div",g,s(i.name),1),r("div",null,[m(d,{name:"el-icon-ArrowRight"})])]))),128))])):p("",!0)])}}});const st=_(k,[["__scopeId","data-v-26886ebe"]]);export{st as default};
import{b as x,d as _}from"./index.6b8fec87.js";import c from"./decoration-img.67a82d3e.js";import{d as u,o as t,c as e,a as r,S as s,Q as p,T as a,a7 as l,U as m}from"./@vue.51d7f2d8.js";import"./element-plus.b771dc38.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";const f={class:"my-service"},h={key:0,class:"title px-[15px] py-[10px]"},y={key:1,class:"flex flex-wrap pt-[20px] pb-[10px]"},v={class:"mt-[7px]"},b={key:2},g={class:"ml-[10px] flex-1"},k=u({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(o){return(w,B)=>{const d=x;return t(),e("div",f,[o.content.title?(t(),e("div",h,[r("div",null,s(o.content.title),1)])):p("",!0),o.content.style==1?(t(),e("div",y,[(t(!0),e(a,null,l(o.content.data,(i,n)=>(t(),e("div",{key:n,class:"flex flex-col items-center w-1/4 mb-[15px]"},[m(c,{width:"26px",height:"26px",src:i.image,alt:""},null,8,["src"]),r("div",v,s(i.name),1)]))),128))])):p("",!0),o.content.style==2?(t(),e("div",b,[(t(!0),e(a,null,l(o.content.data,(i,n)=>(t(),e("div",{key:n,class:"flex items-center border-b border-[#e5e5e5] h-[50px] px-[12px]"},[m(c,{width:"24px",height:"24px",src:i.image,alt:""},null,8,["src"]),r("div",g,s(i.name),1),r("div",null,[m(d,{name:"el-icon-ArrowRight"})])]))),128))])):p("",!0)])}}});const st=_(k,[["__scopeId","data-v-26886ebe"]]);export{st as default};

View File

@ -1 +1 @@
import{d as r}from"./index.36ebd16e.js";import{o as i,c as e,bf as m,be as s,a as o}from"./@vue.51d7f2d8.js";import"./element-plus.cdda5c3e.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";const c="/admin/assets/default_avatar.fa19527b.png";const _={},p=t=>(m("data-v-4b1b613f"),t=t(),s(),t),a={class:"user-info flex items-center px-[25px]"},n=p(()=>o("img",{src:c,class:"w-[60px] h-[60px]",alt:""},null,-1)),d=p(()=>o("div",{class:"text-white text-[18px] ml-[10px]"},"\u672A\u767B\u5F55",-1)),f=[n,d];function l(t,x){return i(),e("div",a,f)}const X=r(_,[["render",l],["__scopeId","data-v-4b1b613f"]]);export{X as default};
import{d as r}from"./index.6b8fec87.js";import{o as i,c as e,bf as m,be as s,a as o}from"./@vue.51d7f2d8.js";import"./element-plus.b771dc38.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";const c="/admin/assets/default_avatar.fa19527b.png";const _={},p=t=>(m("data-v-4b1b613f"),t=t(),s(),t),a={class:"user-info flex items-center px-[25px]"},n=p(()=>o("img",{src:c,class:"w-[60px] h-[60px]",alt:""},null,-1)),d=p(()=>o("div",{class:"text-white text-[18px] ml-[10px]"},"\u672A\u767B\u5F55",-1)),f=[n,d];function l(t,x){return i(),e("div",a,f)}const X=r(_,[["render",l],["__scopeId","data-v-4b1b613f"]]);export{X as default};

View File

@ -1 +1 @@
import{d as r,b as e}from"./index.36ebd16e.js";import{o as i,c as m,a as t,U as c,bf as s,be as a}from"./@vue.51d7f2d8.js";import"./element-plus.cdda5c3e.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";const _={},n=o=>(s("data-v-3514bdd8"),o=o(),a(),o),d={class:"search"},l={class:"search-con flex items-center px-[15px]"},f=n(()=>t("span",{class:"ml-[5px]"},"\u8BF7\u8F93\u5165\u5173\u952E\u8BCD\u641C\u7D22",-1));function h(o,x){const p=e;return i(),m("div",d,[t("div",l,[c(p,{name:"el-icon-Search",size:17}),f])])}const X=r(_,[["render",h],["__scopeId","data-v-3514bdd8"]]);export{X as default};
import{d as r,b as e}from"./index.6b8fec87.js";import{o as i,c as m,a as t,U as c,bf as s,be as a}from"./@vue.51d7f2d8.js";import"./element-plus.b771dc38.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";const _={},n=o=>(s("data-v-3514bdd8"),o=o(),a(),o),d={class:"search"},l={class:"search-con flex items-center px-[15px]"},f=n(()=>t("span",{class:"ml-[5px]"},"\u8BF7\u8F93\u5165\u5173\u952E\u8BCD\u641C\u7D22",-1));function h(o,x){const p=e;return i(),m("div",d,[t("div",l,[c(p,{name:"el-icon-Search",size:17}),f])])}const X=r(_,[["render",h],["__scopeId","data-v-3514bdd8"]]);export{X as default};

View File

@ -1 +1 @@
import{b as n,d as m}from"./index.36ebd16e.js";import{g as d}from"./decoration.b18acc76.js";import{d as l,r as _,o as s,c as i,T as x,a7 as f,a as t,Q as u,S as r,U as v,u as b,bf as h,be as y}from"./@vue.51d7f2d8.js";import"./element-plus.cdda5c3e.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";const w=o=>(h("data-v-18ea8db2"),o=o(),y(),o),g={class:"news"},j=w(()=>t("div",{class:"flex items-center news-title mx-[10px] my-[15px] text-[17px] font-medium"}," \u6700\u65B0\u8D44\u8BAF ",-1)),k={key:0,class:"mr-[10px]"},B=["src"],D={class:"flex flex-col justify-between flex-1"},S={class:"text-[15px] font-medium line-clamp-2"},I={class:"line-clamp-1 text-sm mt-[8px]"},V={class:"text-[#999] text-xs w-full flex justify-between mt-[8px]"},N={class:"flex items-center"},A={class:"ml-[5px]"},C=l({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(o){const c=_([]);return(async()=>{const p=await d({limit:10});c.value=p})(),(p,L)=>{const a=n;return s(),i("div",g,[j,(s(!0),i(x,null,f(b(c),e=>(s(),i("div",{key:e.id,class:"news-card flex bg-white px-[10px] py-[16px] text-[#333] border-[#f2f2f2] border-b"},[e.image?(s(),i("div",k,[t("img",{src:e.image,class:"w-[120px] h-[90px] object-contain"},null,8,B)])):u("",!0),t("div",D,[t("div",S,r(e.title),1),t("div",I,r(e.desc),1),t("div",V,[t("div",null,r(e.create_time),1),t("div",N,[v(a,{name:"el-icon-View"}),t("div",A,r(e.click),1)])])])]))),128))])}}});const ut=m(C,[["__scopeId","data-v-18ea8db2"]]);export{ut as default};
import{b as n,d as m}from"./index.6b8fec87.js";import{g as d}from"./decoration.4d9fb009.js";import{d as l,r as _,o as s,c as i,T as x,a7 as f,a as t,Q as u,S as r,U as v,u as b,bf as h,be as y}from"./@vue.51d7f2d8.js";import"./element-plus.b771dc38.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.d89407d4.js";import"./axios.dc5a985d.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.6a1c18cc.js";import"./color.3dc06ff1.js";import"./clone.eade3c99.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.f423cd8a.js";import"./ms.a9ae1d6d.js";import"./nprogress.f73355d0.js";import"./vue-clipboard3.dca5bca3.js";import"./clipboard.16e4491b.js";import"./echarts.ac57a99a.js";import"./zrender.d54ce080.js";import"./tslib.60310f1a.js";import"./highlight.js.dba6fa1b.js";import"./@highlightjs.40d5feba.js";const w=o=>(h("data-v-18ea8db2"),o=o(),y(),o),g={class:"news"},j=w(()=>t("div",{class:"flex items-center news-title mx-[10px] my-[15px] text-[17px] font-medium"}," \u6700\u65B0\u8D44\u8BAF ",-1)),k={key:0,class:"mr-[10px]"},B=["src"],D={class:"flex flex-col justify-between flex-1"},S={class:"text-[15px] font-medium line-clamp-2"},I={class:"line-clamp-1 text-sm mt-[8px]"},V={class:"text-[#999] text-xs w-full flex justify-between mt-[8px]"},N={class:"flex items-center"},A={class:"ml-[5px]"},C=l({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(o){const c=_([]);return(async()=>{const p=await d({limit:10});c.value=p})(),(p,L)=>{const a=n;return s(),i("div",g,[j,(s(!0),i(x,null,f(b(c),e=>(s(),i("div",{key:e.id,class:"news-card flex bg-white px-[10px] py-[16px] text-[#333] border-[#f2f2f2] border-b"},[e.image?(s(),i("div",k,[t("img",{src:e.image,class:"w-[120px] h-[90px] object-contain"},null,8,B)])):u("",!0),t("div",D,[t("div",S,r(e.title),1),t("div",I,r(e.desc),1),t("div",V,[t("div",null,r(e.create_time),1),t("div",N,[v(a,{name:"el-icon-View"}),t("div",A,r(e.click),1)])])])]))),128))])}}});const ut=m(C,[["__scopeId","data-v-18ea8db2"]]);export{ut as default};

Some files were not shown because too many files have changed in this diff Show More