Merge branch 'dev' into preview

This commit is contained in:
chenbo 2023-11-16 11:47:53 +08:00
commit a3dd939548
917 changed files with 3986 additions and 127 deletions

View File

@ -390,10 +390,15 @@ class CompanyController extends BaseAdminController
// 根据street码查询所属镇农科公司
$company_select=Db::query("select * from la_company where company_type=:company_type and FIND_IN_SET(:street,responsible_area)", ['company_type' => 41,'street'=>$params['street']], true);
if(empty($company_select)) {
$company=$company_select[0];
// 市级供应链直接和海之农签约
if (isset($params['type_id']) && $params['type_id'] == 12) {
$company = Company::where(['company_name' => '泸州市海之农科技有限公司'])->find();
}
if(empty($company)) {
throw new Exception('当前区域无镇农科公司');
}
$company=$company_select[0];
$data = [
'mer_intention_id' => $params['mer_intention_id']??'', // 商城商户入驻申请id签约完成后回调使用
'company_name' => $params['company_name']??'',

View File

@ -4,11 +4,17 @@ namespace app\adminapi\controller\approve;
use app\adminapi\controller\BaseAdminController;
use app\adminapi\lists\approve\ApproveLists;
use app\common\enum\user\AccountLogEnum;
use app\common\logic\AccountLogLogic;
use app\common\logic\task\TaskLogic;
use app\common\model\Approve;
use app\common\model\Company;
use app\common\model\company\CompanyAccountLog;
use app\common\model\task\Task;
use app\common\model\task_scheduling_plan\TaskSchedulingPlan;
use app\common\model\task_template\TaskTemplate;
use app\common\model\user\User;
use app\common\model\user\UserAccountLog;
use think\facade\Db;
class ApproveController extends BaseAdminController
@ -22,6 +28,11 @@ class ApproveController extends BaseAdminController
{
return $this->success('成功',(new ApproveLists())->lists2());
}
public function lists3()
{
return $this->success('成功',(new ApproveLists())->lists3());
}
public function audit()
{
try {
@ -161,4 +172,205 @@ class ApproveController extends BaseAdminController
]);
}
/**
* 股金任务审批
*/
public function shareholderMoneyTaskAudit()
{
// try {
$params = $this->request->param(); // id check_status remark
$approve = Approve::find($params['id']);
if (!empty($approve)) {
$this->fail('数据不存在');
}
// 拒绝通过 要让用户今天可以继续做任务
if ($params['check_status'] == 3) {
$this->refuse1($params, $approve);
}
if ($params['check_status'] == 2) {
$this->pass1($approve, $params);
}
// } catch (\Exception $e) {
// return $this->fail($e->getMessage());
// }
}
private function refuse1($params, $approve)
{
$approve->check_status = $params['check_status'];
$approve->remark = $params['remark'];
$approve->update_time = time();
$approve->save();
}
private function pass1($approve, $params)
{
Db::startTrans();
// 任务
$task = Task::find($approve['task_id']);
if ($task['status'] == 2) {
$task->status = 3;
$task->save();
}
// 小组服务公司股金上交
if ($approve->type == Approve::APPROVE_TYPE_10) {
// 上交股金的公司
$subordinateCompany = Company::where(['id'=>$approve->department_id])->find();
// 接收股金的公司
$parentCompany = Company::where(['village'=>$subordinateCompany['village'], 'company_type'=>17])->find();
}
$amount = $approve->amount; // 上交股金金额
$subordinateCompany->shareholder_money = $amount;
$subordinateCompany->save();
// 添加股金入股记录
$sharecapitalChangeLogInsertId = $this->addConpanyAccountLog($subordinateCompany, $parentCompany, $amount);
$approve->check_status = 2;
$approve->update_time = time();
$approve->business_id = $sharecapitalChangeLogInsertId; // 灵活运用业务主键id
$approve->remark = $params['remark'];
$approve->save();
// 任务结算
if ($approve->type == Approve::APPROVE_TYPE_10) {
$taskSchedulingPaln = TaskSchedulingPlan::where(['task_id' => $task->id])
->withJoin(['scheduling'], 'left')
->where('scheduling.company_type', 18)
->where('is_pay',0)
->with(['template_info'])
->select()
->toArray()[0];
$taskInfo = $task->toArray();
$this->taskSettlement($taskInfo, $subordinateCompany, $taskSchedulingPaln);
}
Db::commit();
return $this->success('成功');
}
private function addConpanyAccountLog($subordinateCompany, $parentCompany, $amount)
{
$sharecapitalChangeLogData = [
'subordinate_company_id' => $subordinateCompany['id'],
'parent_company_id' => $parentCompany['id'],
'amount' => $amount,
'create_time' => time(),
'update_time' => time(),
];
$sharecapitalChangeLogInsertId = Db::name('company_sharecapital_change_log')->insertGetId($sharecapitalChangeLogData);
// 上交股金公司股金变更 + 公司股金减少记录
$leftAmount = bcsub($subordinateCompany['shareholder_money'], $amount, 2);
Company::where('id', $subordinateCompany['company_id'])->save(['shareholder_money'=> $leftAmount]);
$company_log1 = [
'sn' => generate_sn(UserAccountLog::class, 'sn', 20),
'company_id' => $subordinateCompany['id'],
'change_object' => CompanyAccountLog::SHAREHOLDER, // 变动对象 1余额 2股金
'change_type' => CompanyAccountLog::SHAREHOLDER_DEC_DEPOSIT, //变动类型
'action' => CompanyAccountLog::DEC, //1-增加 2-减少
'left_amount' => $leftAmount, //变动后数量
'change_amount' => $amount, //变动数量
'extend' => json_encode(['company_sharecapital_change_log_id' => $sharecapitalChangeLogInsertId]),
'status' => 1,
];
CompanyAccountLog::create($company_log1);
// 接收股金公司股金变更 + 公司股金增加记录
$addAmount = bcadd($parentCompany['shareholder_money'], $amount, 2);
Company::where('id', $parentCompany['id'])->save(['shareholder_money'=>$addAmount]);
// 公司账户变动记录
$company_log2 = [
'sn' => generate_sn(UserAccountLog::class, 'sn', 20),
'company_id' => $parentCompany['id'],
'change_object' => CompanyAccountLog::SHAREHOLDER, // 变动对象 1余额 2股金
'change_type' => CompanyAccountLog::TASK_INC_SHAREHOLDER_MONEY, //变动类型
'action' => CompanyAccountLog::INC, //1-增加 2-减少
'left_amount' => $addAmount, //变动后数量
'change_amount' => $amount, //变动数量
'extend' => json_encode(['company_sharecapital_change_log_id' => $sharecapitalChangeLogInsertId]),
'status' => 1,
];
CompanyAccountLog::create($company_log2);
return $sharecapitalChangeLogInsertId;
}
public function taskSettlement($data, $company, $datas = [])
{
$proportion = 0;
$remark = '来自任务【' . $datas['template_info']['title'] . '】,';
//总金额除以2等于不可提现账号金额和收益
$master_money = bcdiv($data['money'], 2, 2);
//收益的百分之25为负责人的收益其余为成员的平分收益
$master_money_user = bcdiv($master_money, 2, 2);
//成员数量
$userAll = User::where('company_id', $data['company_id'])->where('admin_id', 0)->field('id,user_money')->select();
$yser_all_count = count($userAll);
$member_money_user = bcdiv($master_money_user, $yser_all_count, 2);
//负责人
$arr = [$company['user_id'], AccountLogEnum::UM_INC_TASK, AccountLogEnum::INC, $master_money_user, $datas['sn'], $remark . '获得收益' . $master_money_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_money_user, $datas['sn'], $remark. '获得账户余额' . $master_money_user . '元', ['company_id' => $data['company_id'], 'proportion' => $proportion], $data['status']];
$this->Account($arr_two);
//成员
foreach ($userAll as $value) {
$arr = [$value['id'], AccountLogEnum::UM_INC_TASK, AccountLogEnum::INC, $member_money_user, $datas['sn'], $remark . '获得收益' . $member_money_user . '元', ['company_id' => $data['company_id'], 'proportion' => $proportion], $data['status']];
$this->member($arr);
$arr_two = [$value['id'], AccountLogEnum::UM_INC_TASKUSER, AccountLogEnum::INC, $member_money_user, $datas['sn'], $remark. '获得账户余额' . $member_money_user . '元', ['company_id' => $data['company_id'], 'proportion' => $proportion], $data['status']];
$this->Account($arr_two);
}
//公司
$deposit_count = bcadd($company['deposit'], $master_money, 2);
$this->AccountLog($data['company_id'], $deposit_count, $master_money);
$company_money_count = bcadd($company['company_money'], $master_money, 2);
$this->AccountLog($data['company_id'], $company_money_count, $master_money);
Company::where('id', $data['company_id'])->update(['deposit' => Db::raw('deposit+' . $master_money), 'company_money' => Db::raw('company_money+' . $master_money)]);
}
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
*/
private function master($data)
{
User::where('id', $data[0])->update(['deposit'=>Db::raw('deposit+' . $data[3]),'user_money'=>Db::raw('user_money+' . $data[3])]);
return AccountLogLogic::add($data[0], $data[1], $data[2], $data[3], $data[4], $data[5], $data[6], $data[7]);
}
/**成员分润
* @param $data
*/
private function member($data)
{
User::where('id', $data[0])->update(['deposit'=>Db::raw('deposit+' . $data[3]),'user_money'=>Db::raw('user_money+' . $data[3])]);
return AccountLogLogic::add($data[0], $data[1], $data[2], $data[3], $data[4], $data[5], $data[6], $data[7]);
}
private function Account($data)
{
return AccountLogLogic::add($data[0], $data[1], $data[2], $data[3], $data[4], $data[5], $data[6], $data[7]);
}
}

View File

@ -40,6 +40,7 @@ class VehicleContractController extends BaseAdminController
'id' => $vehicle_contract['contract_logistic_id'],
'file' => $params['file'],
'status' => 1,
'update_time' => time()
];
//判断合同类型
if($vehicle_contract['type'] == 0 && $vehicle_contract['contract_logistic_id'] != 0){
@ -186,7 +187,8 @@ class VehicleContractController extends BaseAdminController
'id' => $contract['contract_logistic_id'],
'contract_no' => $signRes->data,
'status' => 2,
'signing_timer' => 0
'signing_timer' => 0,
'update_time' => time()
]);
}
$this->sendSms($params['id'],$smsTitle);

View File

@ -124,9 +124,9 @@ class TaskTemplateController extends BaseAdminController
{
$param = $this->request->param(); // page keyword
$p['page'] = $param['page_no'] ?? 1;
$p['keyword'] = $param['page_no'] ??'';
$p['keyword'] = $param['keyword'] ??'';
$result = ShopRequestLogic::getProductList($p);;
$result['data']['count'] = 1000;
// $result['data']['count'] = 1000;
$data = [
'lists' => $result['data']['data'],
'count' => $result['data']['count'],

View File

@ -114,7 +114,7 @@ class UserController extends BaseAdminController
public function Draftingcontracts()
{
$params = Request::param();
$result = ContractLogic::Draftingcontracts($params);
$result = ContractLogic::Draftingcontracts($params, 2);
if ($result === true) {
return $this->success('发送合同成功', [], 1, 1);
} else {

View File

@ -48,7 +48,6 @@ class ApproveLists extends BaseAdminDataLists implements ListsSearchInterface
return Admin::where(['id' => $data['check_admin_ids']])->value('name');
})
->withAttr('company_name',function($value,$data){
$task = Task::where('id', $data['task_id'])->find();
return Company::where(['id' => $task['company_id']])->value('company_name');
})
@ -85,6 +84,40 @@ class ApproveLists extends BaseAdminDataLists implements ListsSearchInterface
];
}
public function lists3(): array
{
$list = Approve::where($this->searchWhere)
->where($this->queryWhere())
->with('task')
->field('*')
->append(['area_manager', 'company_a_name', 'company_b_name'], true)
->limit($this->limitOffset, $this->limitLength)
->order(['id' => 'desc'])
->select()
->withAttr('area_manager',function($value,$data){
return Admin::where(['id' => $data['check_admin_ids']])->value('name');
})
->withAttr('company_b_name',function($value,$data){
$task = Task::where('id', $data['task_id'])->find();
return Company::where(['id' => $task['company_id']])->value('company_name');
})
->withAttr('company_a_name',function($value,$data){
$task = Task::where('id', $data['task_id'])->find();
$companyB = Company::where(['id' => $task['company_id']])->find();
return Company::where(['village' => $companyB['village'], 'company_type'=>17])->value('company_name');
})
->toArray();
$count = Approve::where($this->searchWhere)
->where($this->queryWhere())->count();
return [
'lists' => $list,
'count' => $count,
'page_no' => $this->pageNo,
'page_size' => $this->pageSize,
];
}
public function count(): int
{
return Approve::where($this->searchWhere)->count();

View File

@ -17,6 +17,7 @@ namespace app\adminapi\lists\informationg;
use app\adminapi\lists\BaseAdminDataLists;
use app\common\model\informationg\UserInformationg;
use app\common\model\informationg\UserInformationgDemand;
use app\common\lists\ListsSearchInterface;
@ -61,6 +62,23 @@ class UserInformationgLists extends BaseAdminDataLists implements ListsSearchInt
->limit($this->limitOffset, $this->limitLength)
->select()
->toArray();
$informationIdArray = [];
foreach($lists as $k=>$v) {
$informationIdArray[] = $v['id'];
}
$data = UserInformationgDemand::whereIn('information_id', $informationIdArray)->order('id', 'desc')->select();
$aianalyseArray = [];
foreach($data as $kk=>$vv) {
if (!empty($vv['ai_aianalyse'])) {
$aianalyseArray[$vv['information_id']][] = $vv['id'];
}
}
foreach($lists as $k=>$v) {
$lists[$k]['aianalyse_status'] = 0;
if (!empty($aianalyseArray[$v['id']])) {
$lists[$k]['aianalyse_status'] = 1;
}
}
return $lists;
}

View File

@ -36,8 +36,8 @@ class RechargeRefundValidate extends BaseValidate
];
protected $message = [
'recharge_id.require' => '参数缺失',
'record_id.require' => '参数缺失',
'recharge_id.require' => '参数缺失recharge_id',
'record_id.require' => '参数缺失record_id',
];

View File

@ -290,7 +290,9 @@ class CompanyController extends BaseApiController
Db::startTrans();
// 上交股金金额
$amount = $serviceGroupCompany['shareholder_money'];
if ($amount == 0) {
return $this->fail('股金金额不能为0');
}
$sharecapitalChangeLogData = [
'subordinate_company_id' => $serviceGroupCompany['id'],
'parent_company_id' => $villageCompany['id'],
@ -334,7 +336,7 @@ class CompanyController extends BaseApiController
];
CompanyAccountLog::create($company_log2);
Db::commit();
return $this->success('上交成功');
return $this->success('上交成功', [], 1, 1);
} catch (Exception $e) {
Db::rollback();
return $this->fail($e->getMessage());

View File

@ -185,7 +185,20 @@ class CronController extends BaseApiController
->select()
->toArray();
foreach($taskSchedulingPlanList as $taskSchedulingPlan){
queue(TownTaskSettlementJob::class, $taskSchedulingPlan);
// 解耦 三个角色分开结算,避免某个角色的结算逻辑出现异常,导致整个镇农科公司的任务结算都终止
$taskTemplateInfo = $taskSchedulingPlan['template_info'];
// 负责人任务结算
if ($taskTemplateInfo['extend']['task_role'] == 1) {
queue(TownTaskSettlementJob::class, $taskSchedulingPlan);
}
// 市场部长任务结算
if ($taskTemplateInfo['extend']['task_role'] == 2) {
queue(TownTaskSettlementJob::class, $taskSchedulingPlan);
}
// 服务部长任务结算
if ($taskTemplateInfo['extend']['task_role'] == 3) {
queue(TownTaskSettlementJob::class, $taskSchedulingPlan);
}
}
Log::info('镇农科公司定时任务结算执行-结束'.date('Y-m-d H:i:s'));
return $this->success('镇农科公司定时任务结算执行成功');

View File

@ -178,6 +178,7 @@ class IndexController extends BaseApiController
$updateSverRes =curl_post(env('project.logistic_domain').'/api/contractUpdate',[],[
'id' => $contract['contract_logistic_id'],
'signing_timer' => 1,
'update_time' => time()
]);
if(!$updateLocalRes || $updateSverRes['code']==0){
return json(['success' => false, 'msg' => '更新失败']);
@ -224,7 +225,8 @@ class IndexController extends BaseApiController
'signing_timer' => 2,
'status' => 3,
'contract_url'=>$signContractFile,
'contract_evidence'=>$contractEvidence
'contract_evidence'=>$contractEvidence,
'update_time' => time()
]);
if(!$updateLocalRes || $updateSverRes['code']==0){
return json(['success' => false, 'msg' => '更新失败']);
@ -429,6 +431,7 @@ class IndexController extends BaseApiController
'status' => 3,
'contract_url'=>$signContractFile,
'contract_evidence'=>$contractEvidence,
'update_time' => time()
]);
}
//判断合同是否存在购买记录表中
@ -644,6 +647,7 @@ class IndexController extends BaseApiController
'use_user_id' =>$compay['user_id'],
'use_user_name' =>$compay['master_name'],
'use_user_phone' =>$compay['master_phone'],
'update_time' => time()
]);
if(!$updateLocalRes || $updateSverRes['code']==0){
return json(['success' => false, 'msg' => '更新失败']);

View File

@ -14,6 +14,8 @@
namespace app\api\controller;
use app\common\cache\UserTokenCache;
use app\common\model\Company;
use app\api\validate\{LoginAccountValidate, RegisterValidate, WebScanLoginValidate, WechatLoginValidate};
use app\api\logic\LoginLogic;
use app\api\logic\UserLogic;
@ -32,7 +34,7 @@ use app\common\service\FileService;
class LoginController extends BaseApiController
{
public array $notNeedLogin = ['register', 'account', 'logout', 'codeUrl', 'oaLogin', 'mnpLogin', 'getScanCode', 'scanLogin', 'shop_account'];
public array $notNeedLogin = ['register', 'account', 'logout', 'codeUrl', 'oaLogin', 'mnpLogin', 'getScanCode', 'scanLogin', 'shop_account','checkToken'];
/**
@ -255,4 +257,23 @@ class LoginController extends BaseApiController
LoginLogic::updateUser($params, $this->userId);
return $this->success('操作成功', [], 1, 1);
}
public function checkToken(): \think\response\Json
{
$token = $this->request->post('token');
if(empty($token)){
return $this->fail('token参数错误');
}
$userInfo = (new UserTokenCache())->getUserInfo($token);
if(!$userInfo){
return $this->fail('token无效');
}
//获取公司信息
$company = Company::field('company_name,company_type')->where('id',$userInfo['company_id'])->findOrEmpty();
if(!$company->isEmpty()){
$userInfo['company_name'] = $company['company_name'];
$userInfo['company_type'] = $company['company_type'];
}
return $this->success('请求成功',$userInfo);
}
}

View File

@ -44,7 +44,7 @@ class RechargeController extends BaseApiController
foreach($list as $k=>$v){
$datas[$k]['create_time']=$v['create_time'];
$datas[$k]['order_amount']=$v['change_amount'];
$datas[$k]['tips']='充值保证金'.$v['change_amount'];
$datas[$k]['tips']='押金充值'.$v['change_amount'];
}
return $this->success('ok',['count'=>0,'extend'=>[],'lists'=>$datas,'page_no'=>$params['page_no'],'page_size'=>$params['page_size']]);
}

View File

@ -13,6 +13,7 @@ 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 app\common\model\vehicle\VehicleRent;
use think\Exception;
use think\facade\Db;
@ -39,7 +40,7 @@ class TaskController extends BaseApiController
// $where[] = ['type', '=', 33];
// $where[] = ['director_uid', '=', $this->userId];
// }
// $where[] = ['company_id', '=', $this->userInfo['company_id']];
$where[] = ['company_id', '=', $this->userInfo['company_id']];
}
if ($userCompanyInfo['company_type'] == 41) {
@ -76,7 +77,6 @@ class TaskController extends BaseApiController
->page($page, 25)
->order(['id' => 'desc', 'status' => 'asc'])
->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,responsible_area')->find(); // 可能要判断预存金是否满足
@ -224,15 +224,20 @@ class TaskController extends BaseApiController
{
$parmas = $this->request->param();
$task = Task::where('id', $parmas['id'])->find()->toArray();
$object_id=CompanyProperty::where('company_id',$this->userInfo['company_id'])->value('object_id');
if(!$object_id){
return $this->fail('该公司没有三轮车,请先租赁三轮车');
$VehicleRent = VehicleRent::where('rent_company_id', $this->userInfo['company_id'])->find();
if(empty($VehicleRent)){
self::setError('该公司没有三轮车,请先租赁三轮车');
return false;
}
// $object_id=CompanyProperty::where('company_id',$this->userInfo['company_id'])->value('object_id');
// if(!$object_id){
// return $this->fail('该公司没有三轮车,请先租赁三轮车');
// }
$start_time = date('Y-m-d');
$time=strtotime($start_time)+86399;
$end_time=date('Y-m-d H:i:s',$time);
$datas=[
'car_id'=>$object_id,
'car_id'=>$VehicleRent['car_id'],
'start_time'=>$start_time.' 00:00:00',
'end_time'=>$end_time
];
@ -415,51 +420,44 @@ class TaskController extends BaseApiController
$extend = [];
$stage = $parmas['stage']; // 当前做的是任务第几阶段
if ($stage == 1) {
$parmas['stage1']['is_commit'] = 1;
$extend['stage1'] = $parmas['stage1'];
$parmas['stage1']['is_commit'] = 1;
}
if ($stage == 2) {
$extend['stage2']['is_commit'] = 1;
$extend['stage2'] = $parmas['stage2'];
$extend['stage2']['is_commit'] = 1;
}
if ($stage == 3) {
$extend['stage3']['is_commit'] = 1;
$extend['stage3'] = $parmas['stage3'];
$extend['stage3']['is_commit'] = 1;
}
if ($stage == 4) {
$extend['stage4']['is_commit'] = 1;
$extend['stage4'] = $parmas['stage4'];
$extend['stage4']['is_commit'] = 1;
}
$extend['stage'] = $stage;
Task::where(['id' => $parmas['id']])->update(['extend' => json_encode($extend), 'update_time'=>time(), 'director_uid'=>$this->userId]); // director_uid 指派人
// 片区经理
$areaManagerId = User::where(['id' => $this->userId])->with('company')->value('area_manager');
// 没有则创建审批任务
$approveModel = Approve::where(['task_id' => $task['id']])->findOrEmpty();
if ($approveModel->isEmpty()) {
$approveModel->type = Approve::APPROVE_TYPE_4;
$approveModel->flow_id = 1;
$approveModel->name = $task['title'];
$approveModel->admin_id = 0; // 后台发起人id 暂时为0
$approveModel->user_id = $this->userId; // 前台发起人用户id
$approveModel->task_id = $task['id']; // 任务id
$approveModel->department_id = '0';
$approveModel->check_admin_ids = $areaManagerId; // 当前审批人ID 片区经理的admin_id
$approveModel->check_status = 1; // 状态 0待审核,1审核中,2审核通过,3审核不通过,4撤销审核
$approveModel->other_type = 6;
$approveModel->extend = json_encode($extend);
$approveModel->create_time = time();
$approveModel->update_time = time();
$re = $approveModel->save();
} else {
// 有则更新状态
$approveModel->check_status = 1; // 状态 0待审核,1审核中,2审核通过,3审核不通过,4撤销审核
$approveModel->save();
}
// 创建审批任务
$approveModel = new Approve();
$approveModel->type = Approve::APPROVE_TYPE_4;
$approveModel->flow_id = 1;
$approveModel->name = $task['title'];
$approveModel->admin_id = 0; // 后台发起人id 暂时为0
$approveModel->user_id = $this->userId; // 前台发起人用户id
$approveModel->task_id = $task['id']; // 任务id
$approveModel->department_id = '0';
$approveModel->check_admin_ids = $areaManagerId; // 当前审批人ID 片区经理的admin_id
$approveModel->check_status = 1; // 状态 0待审核,1审核中,2审核通过,3审核不通过,4撤销审核
$approveModel->other_type = 6;
$approveModel->extend = json_encode($extend);
$approveModel->create_time = time();
$approveModel->update_time = time();
$re = $approveModel->save();
return $this->success('ok', []);
} catch (Exception $e) {
return $this->fail($e->getMessage());
@ -470,7 +468,7 @@ class TaskController extends BaseApiController
{
$parmas = $this->request->param();
$task = TaskLogic::detail($parmas);
$approve = Approve::where(['task_id' =>$task['id']])->find();
$approve = Approve::where(['task_id' =>$task['id']])->order('id', 'desc')->find();
if ($approve) {
$task['approve_status'] = $approve['check_status']; //审核状态
$task['deny_notes'] = $approve['remark']; // 拒绝原因
@ -652,6 +650,10 @@ class TaskController extends BaseApiController
$param = $this->request->param();
$task = Task::where(['id'=>$param['id']])->find();
$taskTemplate = TaskTemplate::where(['id'=>$task['template_id']])->find();
$extend = $taskTemplate['extend'];
$extend['purchase_sales_info'][] = $param['purchase_sales_info'];
$taskTemplate->save(['extend'=>json_encode($extend)]);
return $this->success('成功', []);
}
/**
@ -711,4 +713,42 @@ class TaskController extends BaseApiController
return $this->fail($e->getMessage());
}
}
public function commit_service_group_task()
{
try {
$parmas = $this->request->param(); // id annex amount
$task = TaskLogic::detail($parmas);
if (empty($task)) {
$this->fail('任务不存在');
}
$extend = json_decode($task->extend, true);
$extend['is_commit'] = 1;
$extend['annex'] = $parmas['annex'];
$extend['file_type'] = $parmas['file_type'];
$extend['amount'] = $parmas['amount'];
Task::where(['id' => $parmas['id']])->update(['extend' => json_encode($extend), 'update_time' => time(), 'director_uid' => $this->userId]); // director_uid 指派人
// 创建审批任务
$approveModel = new Approve();
$approveModel->type = Approve::APPROVE_TYPE_10;
$approveModel->flow_id = 1;
$approveModel->name = $task['title'];
$approveModel->admin_id = 0; // 后台发起人id 暂时为0
$approveModel->user_id = $this->userId; // 前台发起人用户id
$approveModel->task_id = $task['id']; // 任务id
$approveModel->department_id = $this->userInfo['company_id']; // 公司id
$approveModel->check_status = 1; // 状态 0待审核,1审核中,2审核通过,3审核不通过,4撤销审核
$approveModel->other_type = 6;
$approveModel->amount = $parmas['amount']; // 入股金额
$approveModel->extend = json_encode($extend);
$approveModel->create_time = time();
$approveModel->update_time = time();
$re = $approveModel->save();
return $this->success('ok', []);
} catch (Exception $e) {
return $this->fail($e->getMessage());
}
}
}

View File

@ -387,7 +387,7 @@ class ImController extends BaseLikeAdminController
return $this->fail('用户信息错误');
}
if($params['user_id'] == $companyInfo['area_manager']){
return $this->fail('用户身份错误错误');
return $this->fail('用户身份错误');
}
//获取用户信息
$adminInfo = Admin::field('id,name,avatar')->where('id',$companyInfo['area_manager'])->findOrEmpty();

View File

@ -81,8 +81,8 @@ class PayNotifyLogic extends BaseLogic
'sn' => $order->sn,
'user_id' => $order->user_id,
'company_id' => $company['id']??0,
'change_type' => 300,
'change_object' => 2,
'change_type' => CompanyAccountLog::COMPANY_DEPOSIT,
'change_object' => CompanyAccountLog::DEPOSIT,
'action' => 1,
'change_amount' => $order->order_amount,
'left_amount' =>$left_amount,

View File

@ -201,12 +201,28 @@ class ShopRequestLogic extends BaseLogic
}
/**
* 查询镇农科公司负责片区内的种养殖商户和供应链商户交易额
* 查询镇农科公司负责片区内的种养殖商户和供应链商户交易额 todo 商城还需确认种养殖商户是何种类型
*/
public static function getTownTradeAmount($param)
{
try {
$requestResponse = HttpClient::create()->request('GET', env('url.shop_prefix'). '', [
$requestResponse = HttpClient::create()->request('GET', env('url.shop_prefix'). '/api/statistics/supply_chain_breeding_street_product_count', [
'query' => $param
]);
return json_decode($requestResponse->getContent(), true);
} catch (Exception $e) {
self::setError($e->getMessage());
return false;
}
}
/**
* 查询手机号用户的交易金额
*/
public static function getUserTradeAmount($param)
{
try {
$requestResponse = HttpClient::create()->request('GET', env('url.shop_prefix'). '/api/statistics/store_order_user_trade_amount', [
'query' => $param
]);
return json_decode($requestResponse->getContent(), true);

View File

@ -81,11 +81,11 @@ class ShareProfit
$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);
$left_amount += bcadd($company['shareholder_money'], $money, 2);
$company_log = [
'sn' => generate_sn(UserAccountLog::class, 'sn', 20),
'company_id' => $datas['company_id'],
'change_object' => CompanyAccountLog::COMPANY_MONEY, //变动对象
'change_object' => CompanyAccountLog::SHAREHOLDER, //变动对象
'change_type' => CompanyAccountLog::TASK_INC_SHAREHOLDER_MONEY, //变动类型
'action' => CompanyAccountLog::INC, //1-增加 2-减少
'left_amount' => $left_amount, //变动后数量

View File

@ -430,6 +430,26 @@ class TownShareProfit
}
}
public function dealTaskSettlementMaster3(Task $taskInfo, Company $townCompany, $taskSchedulePlan, $leftTransactionPool)
{
try {
Db::startTrans();
$this->shareProfit($taskInfo, $townCompany, $taskSchedulePlan);
// 更改结算状态
(new TaskSchedulingPlan())->settlement($taskSchedulePlan['id']);
// 更改任务状态
Task::where(['id' => $taskSchedulePlan['task_id']])->update(['status' => 3,'money' => $taskInfo['money']]);
// 更新交易池
(new TaskTemplate())->updateTransactionPool($taskSchedulePlan['template_info']['id'], $leftTransactionPool);
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
Log::error($taskSchedulePlan['template_info']['title'].'-任务结算失败:' . $e->getMessage());
return false;
}
}
public function dealTaskSettlementMaster4(Task $taskInfo, Company $townCompany, $taskSchedulePlan, $leftTransactionPool)
{
try {
@ -439,7 +459,7 @@ class TownShareProfit
(new TaskSchedulingPlan())->settlement($taskSchedulePlan['id']);
// 更改任务状态
Task::where(['id' => $taskSchedulePlan['task_id']])->update(['status' => 3,'money' => $taskInfo['money']]);
// 更新交易池
// 更新交易池
(new TaskTemplate())->updateTransactionPool($taskSchedulePlan['template_info']['id'], $leftTransactionPool);
Db::commit();
return true;

View File

@ -121,7 +121,7 @@ class VillageShareProfit
}
}
public function dealVillageTaskSettlement3($taskInfo, $townCompany, $taskSchedulePlan, $leftTransactionPool)
public function dealVillageTaskSettlement3($taskInfo, $townCompany, $taskSchedulePlan)
{
try {
Db::startTrans();
@ -130,8 +130,6 @@ class VillageShareProfit
(new TaskSchedulingPlan())->settlement($taskSchedulePlan['id']);
// 更改任务状态
Task::where(['id' => $taskSchedulePlan['task_id']])->update(['status' => 3,'money' => $taskInfo['money']]);
// 更新镇交易池
(new TaskTemplate())->updateTransactionPool($taskSchedulePlan['template_info']['id'], $leftTransactionPool);
Db::commit();
return true;
} catch (\Exception $e) {
@ -195,7 +193,7 @@ class VillageShareProfit
}
}
public function dealVillageTaskSettlement7(Task $taskInfo, Company $townCompany, $taskSchedulePlan)
public function dealVillageTaskSettlement7(Task $taskInfo, Company $townCompany, $taskSchedulePlan, $leftTransactionPool)
{
try {
Db::startTrans();
@ -204,6 +202,8 @@ class VillageShareProfit
(new TaskSchedulingPlan())->settlement($taskSchedulePlan['id']);
// 更改任务状态
Task::where(['id' => $taskSchedulePlan['task_id']])->update(['status' => 3,'money' => $taskInfo['money']]);
// 更新交易池
(new TaskTemplate())->updateTransactionPool($taskSchedulePlan['template_info']['id'], $leftTransactionPool);
Db::commit();
return true;
} catch (\Exception $e) {

View File

@ -44,7 +44,7 @@ class WithdrawLogic extends BaseLogic
// 拒绝通过审核,记录备注原因
if ($params['status'] == 2) {
Withdraw::where(['id'=>$withDrawInfo['id']])->update(['status'=>2, 'deny_desc'=>$params['deny_desc']]);
Withdraw::where(['id'=>$withDrawInfo['id']])->update(['status'=>2, 'deny_desc'=>$params['deny_desc'] ?? '']);
return true;
}

View File

@ -806,14 +806,28 @@ class TaskLogic extends BaseLogic
}
// todo
/**
* @param $taskSchedulePlan
* 信息收集与促销
* 任务累计天数 小于 第一阶段 关闭任务
* 任务累计天数 = 第一阶段 判断信息收集任务是否完成,完成则结算
* 任务累计天数 大于 第一阶段 小于第一+第二阶段 判断交易任务是否完成,完成则结算
* 任务累计天数 = 第一+第二阶段 判断信息收集和交易任务是否完成,完成则结算
* 任务累计天数 大于 第一+第二阶段 小于第一+第二+第三阶段 判断交易任务是否完成,完成则结算,否则关闭任务
*/
private static function masterTask3Settlement($taskSchedulePlan)
{
Log::info(['镇农科公司定时任务结算执行-'.$taskSchedulePlan['template_info']['title']]);
$taskTemplateInfo = $taskSchedulePlan['template_info'];
$dayCount = $taskTemplateInfo['day_count'];
$stageDayTwoCount = bcadd($taskTemplateInfo['stage_day_one'],$taskTemplateInfo['stage_day_two']);
$target = $taskTemplateInfo['extend']['target'];
$taskInfo = Task::where(['id' => $taskSchedulePlan['task_id']])->find();
$townCompany = Company::where(['id' => $taskTemplateInfo['company_id']])->find();
// 任务交易池,用于叠加交易额
$townTransactionPool = $taskTemplateInfo['transaction_pool'];
// 任务累计天数 小于 第一阶段 关闭任务
if ($dayCount < $taskTemplateInfo['stage_day_one']) {
(new Task())->closeTask($taskSchedulePlan['task_id']);
@ -822,7 +836,70 @@ class TaskLogic extends BaseLogic
// 任务累计天数 = 第一阶段 收集信息 >= 1家
if ($dayCount == $taskTemplateInfo['stage_day_one']) {
$purchaseSalesInfo = $taskTemplateInfo['extend']['purchase_sales_info'];
$purchaseSalesCount = count($purchaseSalesInfo['planting']) + count($purchaseSalesInfo['supply']);
if ($purchaseSalesCount >= 1) {
$taskInfo['money'] = bcmul($taskTemplateInfo['money'], $taskTemplateInfo['stage_day_one'], 2);
(new TownShareProfit())->dealTaskSettlementMaster3($taskInfo, $townCompany, $taskSchedulePlan, $townTransactionPool);
}
}
// 任务累计天数 大于 第一阶段 小于第一+第二阶段 判断交易任务是否完成,完成则结算,否则关闭任务
if ($dayCount > $taskTemplateInfo['stage_day_one'] && $dayCount < $stageDayTwoCount) {
$purchaseSalesInfo = $taskTemplateInfo['extend']['purchase_sales_info'];
$purchaseSalesCount = bcadd(count($purchaseSalesInfo['planting']), count($purchaseSalesInfo['supply']));
// 判断交易任务是否完成
self::judgeMasterTask3Trade($taskTemplateInfo, $townCompany, $taskSchedulePlan, $purchaseSalesInfo, $townTransactionPool, $purchaseSalesCount);
}
// 任务累计天数 = 第一+第二阶段 判断信息收集和交易任务是否完成,完成则结算,否则关闭任务
if ($dayCount == $stageDayTwoCount) {
$purchaseSalesInfo = $taskTemplateInfo['extend']['purchase_sales_info'];
$purchaseSalesCount = count($purchaseSalesInfo['planting']) + count($purchaseSalesInfo['supply']);
if ($purchaseSalesCount >= $target) {
$taskInfo['money'] = bcmul(bcdiv($taskTemplateInfo['money_two'], 2, 2), $taskTemplateInfo['stage_day_two'], 2);
(new TownShareProfit())->dealTaskSettlementMaster3($taskInfo, $townCompany, $taskSchedulePlan, $townTransactionPool);
}
}
// 任务累计天数 大于 第一+第二阶段 每日结算 判断交易任务是否完成,完成则结算,否则关闭任务
if ($dayCount >= $stageDayTwoCount) {
// 判断交易任务是否完成
self::judgeMasterTask3Trade($taskTemplateInfo, $townCompany, $taskSchedulePlan, $purchaseSalesInfo, $townTransactionPool, $target);
}
}
private static function judgeMasterTask3Trade($taskTemplateInfo, $townCompany, $taskSchedulePlan, $purchaseSalesInfo, $townTransactionPool, $target)
{
// 查询收集到的用户在商城的交易金额(前置条件:信息收集中的手机号注册商城并交易)
$phoneList = [];
foreach ($purchaseSalesInfo['planting'] as $item) {
$phoneList[] = $item['phone'];
}
foreach ($purchaseSalesInfo['supply'] as $item) {
$phoneList[] = $item['shopkeeperPhone'];
}
$param = [
'start_time' => strtotime(date('Y-m-d', time())),
'end_time' => strtotime(date('Y-m-d', time())) + 86399,
'phone' => implode(',', $phoneList)
];
$result = ShopRequestLogic::getUserTradeAmount($param); // todo 对接接口
$tradeAmount = $result['data']['procure_amount'];
$totalAmount = bcadd($tradeAmount, $townTransactionPool, 2); // 总的交易金额 = 当日交易额 + 累计交易池
// 目标金额 = 274 * 收集用户数
$targetTradeAmount = bcmul($target, 274, 2);
// 完成条件: 交易金额 >= 目标金额
if (bccomp($totalAmount, $targetTradeAmount, 2) ==0 || bccomp($totalAmount, $targetTradeAmount, 2) ==1) {
$taskInfo['money'] = bcdiv($taskTemplateInfo['money_two'], 2, 2);
$leftTransactionPool = bcsub($totalAmount, $targetTradeAmount, 2);
(new TownShareProfit())->dealTaskSettlementMaster3($taskInfo, $townCompany, $taskSchedulePlan, $leftTransactionPool);
} else {
(new Task())->closeTask($taskSchedulePlan['task_id']);
}
}
@ -851,7 +928,7 @@ class TaskLogic extends BaseLogic
'type' => 'street',
];
$result = ShopRequestLogic::getTownTradeAmount($param); // todo 对接接口
$tradeAmount = $result['data']['trade_amount'];
$tradeAmount = $result['data']['procure_amount'];
// 总交易额 交易池金额+商城交易额
$totalAmount = bcadd($townTransactionPool, $tradeAmount, 2);
@ -875,8 +952,11 @@ class TaskLogic extends BaseLogic
$townCompany = Company::where(['id' => $taskTemplateInfo['company_id']])->find();
// 行政村数量
$villageCount = Db::name('geo_village')->where(['street_code' => $townCompany['street']])->count();
if ($villageCount == 0) {
throw new Exception('没有找到对应的行政村'.__FILE__.__LINE__);
}
// 村公司
$villageCompanyList = Db::query("select id from la_company where company_type=:company_type and FIND_IN_SET(:street,responsible_area)", ['company_type' => 17,'street'=>$townCompany['street']], true);
$villageCompanyList = Db::query("select id from la_company where company_type=:company_type and FIND_IN_SET(street,:responsible_area)", ['company_type' => 17,'responsible_area'=>$townCompany['responsible_area']], true);
$ids = array_column($villageCompanyList, 'id');
// 村联络员数量
$liaisonManCount = User::where(['group_id'=>17])->whereIn('company_id', $ids)->count();
@ -941,14 +1021,16 @@ class TaskLogic extends BaseLogic
if ($dayCount == $taskTemplateInfo['stage_day_one']) {
// 目标任务金额 行政村数量*6000 + 小组服务团队数量*3000
$targetShareholderedMoney = bcadd(bcmul($villageCount, 6000, 2), bcmul($groupServiceCompanyCount, 3000, 2), 2);
if ($targetShareholderedMoney == 0) {
throw new Exception('目标任务金额为0异常'.__FILE__.__LINE__);
}
$companyIds = [];
foreach ($groupServiceCompanyList as $groupServiceCompany) {
$companyIds[] = $groupServiceCompany['id'];
}
// 村公司
$villageCompanyList = Db::query("select id from la_company where company_type=:company_type and FIND_IN_SET(:street,responsible_area)", ['company_type' => 17,'street'=>$townCompany['street']], true);
$villageCompanyList = Db::query("select id from la_company where company_type=:company_type and FIND_IN_SET(street,:responsible_area)", ['company_type' => 17,'responsible_area'=>$townCompany['responsible_area']], true);
foreach ($villageCompanyList as $villageCompany) {
$companyIds[] = $villageCompany['id'];
}
@ -1090,7 +1172,7 @@ class TaskLogic extends BaseLogic
$taskTemplateInfo = $taskSchedulePlan['template_info'];
$taskInfo = Task::where(['id' => $taskSchedulePlan['task_id']])->find();
$townCompany = Company::where(['id' => $taskTemplateInfo['company_id']])->find();
$groupServiceCompanyList = Db::query("select * from la_company where company_type=:company_type and FIND_IN_SET(:street,responsible_area)", ['company_type' => 18,'street'=>$townCompany['street']], true);
$groupServiceCompanyList = Db::query("select * from la_company where company_type=:company_type and FIND_IN_SET(street,:responsible_area)", ['company_type' => 18,'responsible_area'=>$townCompany['responsible_area']], true);
// $groupServiceCompanyList = Company::where(['street' => $townCompany['street'], 'company_type' => 18])->select()->toArray();
$isDone = 1; // 任务是否完成标记
$isTaskSchedule = 0; // 下属小组服务公司是否有每日任务安排标记
@ -1318,7 +1400,7 @@ class TaskLogic extends BaseLogic
{
// 只在截止日当天才结算
$merIntentionId = $item['mer_intention_id'];
$directorGoodsId = $item['extend']['goods_id'];
$directorGoodsId = $templateInfo['extend']['goods_id'];
$param = [
'start_time' => $startTime,
'end_time' => $endTime,
@ -2143,7 +2225,7 @@ class TaskLogic extends BaseLogic
$taskTemplateInfo = $taskSchedulePlan['template_info'];
$taskInfo = Task::where(['id' => $taskSchedulePlan['task_id']])->find();
$townCompany = Company::where(['id' => $taskTemplateInfo['company_id']])->find();
$groupServiceCompanyList = Db::query("select * from la_company where company_type=:company_type and FIND_IN_SET(:street,responsible_area)", ['company_type' => 18,'street'=>$townCompany['street']], true);
$groupServiceCompanyList = Db::query("select * from la_company where company_type=:company_type and FIND_IN_SET(street,:responsible_area)", ['company_type' => 18,'responsible_area'=>$townCompany['responsible_area']], true);
// $groupServiceCompanyList = Company::where(['street' => $townCompany['street'], 'company_type' => 18])->select()->toArray();
$isDone = 1; // 任务是否完成标记
$isTaskSchedule = 0; // 下属小组服务公司是否有每日任务安排标记
@ -2286,11 +2368,14 @@ class TaskLogic extends BaseLogic
Log::info(['镇农科公司定时任务结算执行-'.$taskSchedulePlan['template_info']['title']]);
$taskTemplateInfo = $taskSchedulePlan['template_info'];
$townCompany = Company::where(['id' => $taskTemplateInfo['company_id']])->find();
$groupServiceCompanyList = Db::query("select * from la_company where company_type=:company_type and FIND_IN_SET(:street,responsible_area)", ['company_type' => 18,'street'=>$townCompany['street']], true);
$groupServiceCompanyList = Db::query("select * from la_company where company_type=:company_type and FIND_IN_SET(street,:responsible_area)", ['company_type' => 18,'responsible_area'=>$townCompany['responsible_area']], true);
// $groupServiceCompanyList = Company::where(['street' => $townCompany['street'], 'company_type' => 18])->select()->toArray();
$task = Task::where('id', $taskSchedulePlan['task_id'])->with('director_info')->find();
// 完成任务情况
list($groupServiceCompanyCount, $doneTaskGroupServiceCompanyCount) = self::taskType3DoneInfo($groupServiceCompanyList);
if ($groupServiceCompanyCount == 0) {
throw new Exception('小组服务公司数量为0异常'.__FILE__.__LINE__);
}
$doneRate = bcdiv($doneTaskGroupServiceCompanyCount, $groupServiceCompanyCount,2);
// <80% 未完成任务 关闭本次任务
if (bccomp($doneRate, 0.8, 2) == -1) {
@ -2435,7 +2520,7 @@ class TaskLogic extends BaseLogic
$townCompany = Company::where(['id' => $taskTemplateInfo['company_id']])->find();
$townTask = Task::where('id', $taskSchedulePlan['task_id'])->find();
// $groupServiceCompanyList = Company::where(['street' => $townCompany['street'], 'company_type'=> 18])->select()->toArray();
$groupServiceCompanyList = Db::query("select * from la_company where company_type=:company_type and FIND_IN_SET(:street,responsible_area)", ['company_type' => 18,'street'=>$townCompany['street']], true);
$groupServiceCompanyList = Db::query("select * from la_company where company_type=:company_type and FIND_IN_SET(street,:responsible_area)", ['company_type' => 18,'responsible_area'=>$townCompany['responsible_area']], true);
$townTransactionPool = $taskTemplateInfo['transaction_pool']; // 镇交易池
$townTotalTradeAmount = 0; // 镇下属小组服务公司 每日实际总交易额
@ -2491,7 +2576,9 @@ class TaskLogic extends BaseLogic
if($taskDayCount == $stageDayTwoAccumulative) {
// 小组服务公司总数
$groupServiceCompanyCount = Company::where(['street' => $townCompany['street'], 'company_type'=> 18])->count();
if ($groupServiceCompanyCount == 0) {
throw new Exception('小组服务公司数量为0异常'.__FILE__.__LINE__);
}
// 小组服务完成股金上交数
$sharecapitalPaidCount = 0;
foreach ($villageCompanyList as $villageCompany) {
@ -2639,15 +2726,13 @@ class TaskLogic extends BaseLogic
$stageDayCount = bcadd($taskTemplateInfo['stage_day_one'], $taskTemplateInfo['stage_day_two']);
$villageCompany = Company::where(['id' => $taskTemplateInfo['company_id']])->find();
$task = Task::where('id', $taskSchedulePlan['task_id'])->find();
// 村地区码与村管理公司一样且在村管理公司负责小队中
$groupServiceCompanyList = Company::where(['village' => $villageCompany['village'], 'company_type'=> 18])->whereIn('brigade', $villageCompany['responsible_area'])->select()->toArray();
// 村地区码与村管理公司一样
$groupServiceCompanyList = Company::where(['village' => $villageCompany['village'], 'company_type'=> 18, 'is_contract'=>1])->select()->toArray();
// 任务累计天数 < 第一阶段+第二阶段 刷新任务
if ($dayCount < $stageDayCount) {
self::flushTaskTime($taskSchedulePlan);
return true;
}
// 任务累计天数 = 第一阶段+第二阶段 任务判定,计算金额,结算分润
if ($dayCount == $stageDayCount) {
$totalMoney = bcadd(bcmul($taskTemplateInfo['stage_day_one'], $taskTemplateInfo['money'], 2), bcmul($taskTemplateInfo['stage_day_two'], $taskTemplateInfo['money_two'], 2), 2) ;
@ -2655,13 +2740,14 @@ class TaskLogic extends BaseLogic
$groupServiceCompanyCount = count($groupServiceCompanyList);
$rate = bcdiv($groupServiceCompanyCount, $target, 2);
if (bccomp($rate, 0.5, 2) == -1) {
self::flushTaskTime($taskSchedulePlan);
(new Task())->closeTask($taskSchedulePlan['task_id']);
return true;
}
if (bccomp($rate, 0.5, 2) == 0 || bccomp($rate, 0.5, 2) == 1 || bccomp(0.8, $rate, 2) == 1) {
$taskMoney = bcmul($totalMoney, bcmul($rate, 0.6, 2), 2);
}
if (bccomp($rate, 0.8, 2) == 0 || bccomp($rate, 0.8, 2)) {
if (bccomp($rate, 0.8, 2) == 0 || bccomp($rate, 0.8, 2) == 1) {
$taskMoney = bcmul($totalMoney, bcmul($rate, 1, 2), 2);
}
$task['money'] = $taskMoney;
@ -2680,7 +2766,8 @@ class TaskLogic extends BaseLogic
$taskTemplateInfo = $taskSchedulePlan['template_info'];
$villageCompany = Company::where(['id' => $taskTemplateInfo['company_id']])->find();
$task = Task::where('id', $taskSchedulePlan['task_id'])->find();
$groupServiceCompanyList = Company::where(['village' => $villageCompany['village'], 'company_type'=> 18])->whereIn('brigade', $villageCompany['responsible_area'])->select()->toArray();
$groupServiceCompanyList = Company::where(['village' => $villageCompany['village'], 'company_type'=> 18, 'is_contract'=>1])->select()->toArray();
$villageTransactionPool = $taskTemplateInfo['transaction_pool']; // 村交易池
$villageTotalTradeAmount = 0; // 村下属小组服务公司 每日实际总交易额
$targetAmount = 0; // 村下属小组服务公司每日 目标总交易额
@ -2692,12 +2779,13 @@ class TaskLogic extends BaseLogic
if ($tempTask) {
$plan = TaskSchedulingPlan::where(['id'=>$tempTask['scheduling_plan_id']])->find();
if ($plan['is_pay'] == 1) {
$extend = json_decode($tempTask['extend'], true);
$extend = $tempTask['extend'];
$targetAmount += $extend['transaction']['arr']['day_money'];
$villageTotalTradeAmount += $extend['transaction']['arr']['total_price'];
}
}
}
// 完成条件: 查村所属小组服务公司当日实际完成金额总和+村管理公司的资金池 > 查镇所属小组服务公司当日任务目标金额总和
if($targetAmount != 0 && bcadd($villageTransactionPool, $villageTotalTradeAmount, 2) >= bcmul($targetAmount, 0.8, 2)) {
// 将余下金额放入镇交易池
@ -2757,25 +2845,29 @@ class TaskLogic extends BaseLogic
$target = $taskTemplateInfo['extend']['target'];
$stageDayCount = bcadd($taskTemplateInfo['stage_day_one'], $taskTemplateInfo['stage_day_two']);
$villageCompany = Company::where(['id' => $taskTemplateInfo['company_id']])->find();
$townCompany = Db::query("select * from la_company where company_type=:company_type and FIND_IN_SET(:street,responsible_area)", ['company_type' => 41,'street'=>$villageCompany['street']], true)[0];
$task = Task::where('id', $taskSchedulePlan['task_id'])->find();
// 村地区码与村管理公司一样且在村管理公司负责小队中
$groupServiceCompanyList = Company::where(['village' => $villageCompany['village'], 'company_type'=> 18])->whereIn('brigade', $villageCompany['responsible_area'])->select()->toArray();
// 任务累计天数 < 第一阶段+第二阶段 刷新任务
if ($dayCount < $stageDayCount) {
self::flushTaskTime($taskSchedulePlan);
return true;
}
// 任务累计天数 = 第一阶段+第二阶段 任务判定,计算金额,结算分润
if ($dayCount == $stageDayCount) {
$totalMoney = bcadd(bcmul($taskTemplateInfo['stage_day_one'], $taskTemplateInfo['money'], 2), bcmul($taskTemplateInfo['stage_day_two'], $taskTemplateInfo['money_two'], 2), 2) ;
$groupServiceCompanyCount = count($groupServiceCompanyList);
$rate = bcdiv($groupServiceCompanyCount, $target, 2);
// 目标入股金额
$targetShareholderedMoney = bcmul($target, 3000, 2);
// 小组服务股金上交金额
$shareholderedMoney = Db::name('company_sharecapital_change_log')->where(['parent_company_id'=>$townCompany['id']])->sum('amount');
$rate = bcdiv($shareholderedMoney, $targetShareholderedMoney, 2);
if (bccomp($rate, 0.5, 2) == -1) {
(new Task())->closeTask($task['id']);
return true;
}
$totalMoney = bcadd(bcmul($taskTemplateInfo['stage_day_one'], $taskTemplateInfo['money'], 2), bcmul($taskTemplateInfo['stage_day_two'], $taskTemplateInfo['money_two'], 2), 2) ;
$task['money'] = self::countSettelmentMoney($rate, $totalMoney);
(new VillageShareProfit())->dealVillageTaskSettlement4($task, $villageCompany, $taskSchedulePlan);
}
@ -2787,21 +2879,21 @@ class TaskLogic extends BaseLogic
// =50% - %59.9 x40%
if (bccomp($rate, 0.5, 2) == 0 || (bccomp($rate, 0.5, 2) == 1 && bccomp($rate, 0.599, 2) == -1)) {
$settlementMoney= bcmul($totalMoney, 0.4, 2);
$settlementMoney= bcmul($rate, bcmul($totalMoney, 0.4, 2), 2);
}
// =60% - %69.9 x50%
if (bccomp($rate, 0.6, 2) == 0 || (bccomp($rate, 0.6, 2) == 1 && bccomp($rate, 0.699, 2) == -1)) {
$settlementMoney = bcmul($totalMoney, 0.5, 2);
$settlementMoney = bcmul($rate, bcmul($totalMoney, 0.5, 2), 2);;
}
// =70% - %79.9 x60%
if (bccomp($rate, 0.7, 2) == 0 || (bccomp($rate, 0.7, 2) == 1 && bccomp($rate, 0.799, 2) == -1)) {
$settlementMoney = bcmul($totalMoney, 0.6, 2);
$settlementMoney = bcmul($rate, bcmul($totalMoney, 0.6, 2), 2);
}
// =80% - %89.9 x70%
if (bccomp($rate, 0.8, 2) == 0 || (bccomp($rate, 0.8, 2) == 1 && bccomp($rate, 0.899, 2) == -1)) {
$settlementMoney = bcmul($totalMoney, 0.7, 2);
$settlementMoney = bcmul($rate, bcmul($totalMoney, 0.7, 2), 2);
}
// >=90% x100%
if (bccomp($rate, 0.9, 2) == 0 || bccomp($rate, 0.9, 2) == 1) {
@ -2835,19 +2927,17 @@ class TaskLogic extends BaseLogic
$villageCompany = Company::where(['id' => $taskTemplateInfo['company_id']])->find();
$task = Task::where('id', $taskSchedulePlan['task_id'])->find();
// 小组公司列表 村地区码与村管理公司一样且在村管理公司负责小队
$groupServiceCompanyList = Company::where(['village' => $villageCompany['village'], 'company_type'=> 18])->whereIn('brigade', $villageCompany['responsible_area'])->select()->toArray();
$groupServiceCompanyList = Company::where(['village' => $villageCompany['village'], 'company_type'=> 18, 'is_contract'=>1])->select()->toArray();
$shareholderedMoney = 0; // 已入股股金总额
// 查询公司股金变动流水记录
$companyIds[] = $villageCompany['id'];
foreach ($groupServiceCompanyList as $company) {
$companyIds[] = $company['id'];
}
// 已入股股金总额
$shareholderedMoney = CompanyAccountLog::where(['change_object'=>CompanyAccountLog::SHAREHOLDER, 'change_type'=>CompanyAccountLog::TASK_INC_SHAREHOLDER_MONEY])
->whereIn('company_id', $companyIds)
->sum('change_amount');
$targetShareholderedMoney = bcadd(bcmul($target, 3000), 6000); // 小组应组建团队数量*3000 + 村 6000
// 小组服务和村公司股金上交金额
$shareholderedMoney = Db::name('company_sharecapital_change_log')->whereIn('subordinate_company_id', $companyIds)->where(['parent_company_id'=>$villageCompany['id']])->sum('amount');
// 目标上交股金金额 小组应组建团队数量*3000 + 村 6000
$targetShareholderedMoney = bcadd(bcmul($target, 3000), 6000);
$rate = bcdiv($shareholderedMoney, $targetShareholderedMoney, 2);
$totalMoney = bcadd(bcmul($taskTemplateInfo['stage_day_one'], $taskTemplateInfo['money'], 2), bcmul($taskTemplateInfo['stage_day_two'], $taskTemplateInfo['money_two'], 2), 2) ;
$task['money'] = self::countSettelmentMoney($rate, $totalMoney);
@ -2903,7 +2993,7 @@ class TaskLogic extends BaseLogic
// 任务累计天数 = stage1 从商城查询种养殖商户的交易额,判定是否完成任务,完成则结算
if ($dayCount == $stageDayOne) {
$startTime = strtotime(date('Y-m-d',strtotime($taskTemplateInfo['create_time'])))+86400;
$startTime = strtotime(date('Y-m-d',strtotime($taskTemplateInfo['create_time'])))+86400; // 创建任务的第二天00:00:00开始
$endTime = strtotime('+30 day', $startTime);
self::finishVillageTask7($startTime, $endTime, 13000, $taskTemplateInfo['stage_day_one'], $taskTemplateInfo['money'], $villageCompany, $taskSchedulePlan);
}
@ -2964,10 +3054,13 @@ class TaskLogic extends BaseLogic
];
$result = ShopRequestLogic::getPlantingAndBreedingMerchantTradeAmount($param); // todo 商城接口那边需要确定种养殖基地是何种类型的商户
$tradeAmount = $result['data']['procure_amount'];
if ($tradeAmount >= $targetAmount) {
// 交易池
$transactionPool = $taskSchedulePlan['template_info']['transaction_pool'];
$totalTradeAmount = bcadd($transactionPool, $tradeAmount, 2);
if ($totalTradeAmount >= $targetAmount) {
$task['money'] = bcmul($dayNum, $perMoney, 2);
(new VillageShareProfit())->dealVillageTaskSettlement7($task, $villageCompany, $taskSchedulePlan);
$leftTransactionPool = bcsub($totalTradeAmount, $targetAmount, 2);
(new VillageShareProfit())->dealVillageTaskSettlement7($task, $villageCompany, $taskSchedulePlan, $leftTransactionPool);
}
}

View File

@ -23,6 +23,7 @@ use app\common\model\company\CompanyProperty;
use app\common\model\informationg\UserInformationg;
use app\common\model\task_scheduling\TaskScheduling;
use app\common\model\user\User;
use app\common\model\vehicle\VehicleRent;
use think\facade\Db;
@ -80,8 +81,8 @@ class TaskTemplateLogic extends BaseLogic
return false;
}
if($params['type']==32){
$object_id=CompanyProperty::where('company_id',$params['company_id'])->value('object_id');
if(!$object_id){
$VehicleRent = VehicleRent::where('rent_company_id',$params['company_id'])->find();
if(empty($VehicleRent)){
self::setError('该公司没有三轮车,请先租赁三轮车');
return false;
}
@ -134,6 +135,13 @@ class TaskTemplateLogic extends BaseLogic
{
Db::startTrans();
try {
$company = Company::find($params['company_id']);
if ($company->company_type == 41) {
// 创建 镇农科公司 任务模板
$taskScheduleAmount = 700;
} else {
$taskScheduleAmount = 200;
}
$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('已经有同一种任务类型了');
@ -147,23 +155,23 @@ class TaskTemplateLogic extends BaseLogic
}
}
$moeny=TaskTemplate::where('company_id', $params['company_id'])->sum('money');
if($moeny+$params['money']-$find['money']>200){
if($moeny+$params['money']-$find['money']>$taskScheduleAmount){
self::setError('任务模板一阶段合计金额不能大于任务调度金额');
return false;
}
$money_two=TaskTemplate::where('company_id', $params['company_id'])->sum('money_two');
if($money_two+$params['money_two']-$find['money_two']>200){
if($money_two+$params['money_two']-$find['money_two']>$taskScheduleAmount){
self::setError('任务模板二阶段合计金额不能大于任务调度金额');
return false;
}
$money_three=TaskTemplate::where('company_id', $params['company_id'])->sum('money_three');
if($money_three+$params['money_three']-$find['money_three']>200){
if($money_three+$params['money_three']-$find['money_three']>$taskScheduleAmount){
self::setError('任务模板长期合计金额不能大于任务调度金额');
return false;
}
if($params['type']==32){
$object_id=CompanyProperty::where('company_id',$params['company_id'])->value('object_id');
if(!$object_id){
$VehicleRent = VehicleRent::where('rent_company_id',$params['company_id'])->find();
if(empty($VehicleRent)){
self::setError('该公司没有三轮车,请先租赁三轮车');
return false;
}

View File

@ -23,6 +23,7 @@ class Approve extends BaseModel
const APPROVE_TYPE_8 = 8; // 镇农科负责人任务-政策补贴申请
const APPROVE_TYPE_9 = 9; // 镇农科负责人任务-日常管理及其他临时任务
const APPROVE_TYPE_10 = 10; // 小组团队任务-入股任务
public function task()
{

View File

@ -87,12 +87,15 @@ class TaskInformationJob
$task_35 = Task::where('id', $data['task_id'])->field('director_uid,status,money,start_time,end_time')->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($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 ($task_35['status'] == 3) {
return true;
}
/**
* 判断入股任务 单次类型 是否超时
* 未超时时刷新开始结束时间
@ -114,7 +117,7 @@ class TaskInformationJob
Log::info('入股任务 ' . $data['template_info']['title'] . '结算失败,任务为超时:' . json_encode($data));
return false;
}
}
// }
}else{
Log::info('入股任务 ' . $data['template_info']['title'] . '结算失败,任务为空:' . json_encode($data));
return false;
@ -133,7 +136,7 @@ class TaskInformationJob
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));
Log::info( $data['template_info']['title'] . '结算失败,任务为超时:' . json_encode($data));
return false;
}

View File

@ -0,0 +1,20 @@
<?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
// +----------------------------------------------------------------------
return [
'middleware' => [
// 权限认证
// app\middleapi\http\middleware\AuthMiddleware::class,
],
];

View File

@ -0,0 +1,97 @@
<?php
namespace app\middleapi\controller;
use app\common\enum\user\AccountLogEnum;
use app\common\model\user\User;
use app\common\model\user\UserAccountLog;
use app\common\model\user\UserRole;
use app\common\service\FileService;
use app\common\controller\BaseLikeAdminController;
/***
* 账户流水控制器
* Class AccountLogController
* @package app\adminapi\controller
*/
class AccountLogController extends BaseLikeAdminController
{
/**
* @notes 账户流水明细
* @return \think\response\Json
* @author 段誉
* @date 2023/2/24 15:25
*/
public function lists()
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['page_no','page_size', 'start_time', 'end_time', 'type','company_id']);
$where = [];
if (isset($params['type']) && $params['type'] == 'um') {
$where[] = ['change_type', 'in', AccountLogEnum::getUserMoneyChangeType()];
}
if (!empty($params['company_id'])) {
$where[] = ['company_id', '=', $params['company_id']];
}
if (!empty($params['start_time'])) {
$where[] = ['create_time', '>=', strtotime($params['start_time'])];
}
if (!empty($params['end_time'])) {
$where[] = ['create_time', '<=', strtotime($params['end_time'])];
}
$pageNo = !empty($params['page_no']) ? $params['page_no'] : 1;
$pageSize = !empty($params['page_size']) ? $params['page_size'] : 20;
$lists = UserAccountLog::where($where)
->with(['company_info','user_info'])
->order('id', 'desc')
->page($pageNo, $pageSize)
->select()
->toArray();
foreach ($lists as &$item) {
$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'];
// 用于导出
$item['user_info_sn'] = $item['user_info']['sn'];
$item['company_info_company_name'] = $item['company_info']['company_name'];
$item['user_info_nickname'] = $item['user_info']['nickname'];
$item['user_info_group_name'] = $item['user_info']['group_name'];
$item['user_info_mobile'] = $item['user_info']['mobile'];
}
$count = UserAccountLog::where($where)->count();
$result = [
'lists' => $lists,
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('请求成功',$result);
}
/**
* @notes 用户余额变动类型
* @return \think\response\Json
* @author 段誉
* @date 2023/2/24 15:25
*/
public function getUmChangeType()
{
return $this->data(AccountLogEnum::getUserMoneyChangeTypeDesc());
}
public function getCompanyUserList()
{
$param = $this->request->param();
$companyId = $param['company_id'] ?? 0;
$userList = User::where(['company_id' => $companyId])->field('id,nickname,avatar,sn,mobile,group_id,deposit,income')->select()->toArray();
return $this->success('成功', $userList);
}
}

View File

@ -0,0 +1,200 @@
<?php
namespace app\middleapi\controller;
use app\adminapi\lists\approve\ApproveLists;
use app\common\logic\task\TaskLogic;
use app\common\model\Approve;
use app\common\model\task\Task;
use app\common\model\auth\Admin;
use app\common\model\Company;
use app\common\model\task_scheduling_plan\TaskSchedulingPlan;
use app\common\model\task_template\TaskTemplate;
use think\facade\Db;
use app\common\controller\BaseLikeAdminController;
class ApproveController extends BaseLikeAdminController
{
public function lists()
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params=$this->request->post(['page_no','page_size','type','check_status']);
$where = [];
if (isset($params['check_status']) && $params['check_status'] != '') {
$where[] = ['check_status', '=', $params['check_status']];
}
if (isset($params['type']) && $params['type'] != '') {
$where[] = ['type', 'in', $params['type']];
}
$pageNo = !empty($params['page_no']) ? $params['page_no'] : 1;
$pageSize = !empty($params['page_size']) ? $params['page_size'] : 20;
$data = Approve::where($where)
->with('task')
->field('*')
->append(['area_manager', 'company_name'], true)
->page($pageNo, $pageSize)
->order(['id' => 'desc'])
->select()
->withAttr('area_manager',function($value,$data){
return Admin::where(['id' => $data['check_admin_ids']])->value('name');
})
->withAttr('company_name',function($value,$data){
$task = Task::where('id', $data['task_id'])->find();
return Company::where(['id' => $task['company_id'] ?? 0])->value('company_name');
})
->toArray();
$count = Approve::where($where)->count();
$result = [
'lists' => $data,
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('请求成功',$result);
}
public function audit()
{
try {
$params = $this->request->param();
if(empty($params['id'])){
return $this->fail('缺少必要参数id');
}
if(empty($params['check_status'])){
return $this->fail('缺少必要参数审核状态');
}
$approve = Approve::find($params['id']);
if (!$approve) {
$this->fail('数据不存在');
}
Db::startTrans();
// 拒绝通过 要让用户今天可以继续做任务
if ($params['check_status'] == 3) {
$this->refuse($params, $approve);
}
// 修改任务完成状态
if ($params['check_status'] == 2) {
if ($approve->type == Approve::APPROVE_TYPE_7) {
$taskTemplate = TaskTemplate::where(['id'=>$approve->business_id])->find();
// 提前完成
if ($taskTemplate['day_count'] < $taskTemplate['stage_day_one']) {
if (bccomp($params['amount'], 300000, 2) == -1) {
$this->fail('该任务提前完成条件销售总额必须达到30万元及以上');
} else {
// 提前完成标识
$extend = json_decode($taskTemplate['extend'], true);
$extend['early_finish'] = 1;
$taskTemplate->extend = json_encode($extend);
$taskTemplate->save();
$this->pass($approve, $params);
}
} else {
$this->pass($approve, $params);
}
} else {
$this->pass($approve);
}
}
Db::commit();
return $this->success('审核成功');
} catch (\Exception $e) {
Db::rollback();
return $this->fail($e->getFile().$e->getLine().$e->getMessage());
}
}
// 通过
private function pass($approve, $params=[])
{
$approve->check_status = 2;
$approve->update_time = time();
$approve->save();
// 任务
$task = Task::find($approve['task_id']);
if ($task['status'] == 2) {
$task->status = 3;
$task->save();
}
// 镇农科公司任务-数字农贸宣传业务、加工业务的建设和招商工作任务 结算
if ($approve->type == Approve::APPROVE_TYPE_4) {
$taskSchedulePlan = TaskSchedulingPlan::where('la_task_scheduling_plan.id', $task['scheduling_plan_id'])
->where('is_pay',0)
->with(['template_info'])
->withJoin(['scheduling'], 'left')
->where('scheduling.company_type', 41)
->find()
->toArray();
TaskLogic::dealTaskMarketingDirector10($taskSchedulePlan, $approve);
}
if ($approve->type == Approve::APPROVE_TYPE_5) {
$taskSchedulePlan = TaskSchedulingPlan::where('la_task_scheduling_plan.id', $task['scheduling_plan_id'])
->where('is_pay',0)
->with(['template_info'])
->withJoin(['scheduling'], 'left')
->where('scheduling.company_type', 17)
->find()
->toArray();
TaskLogic::dealVillageTask6($taskSchedulePlan);
}
if ($approve->type == Approve::APPROVE_TYPE_6) {
$taskSchedulePlan = TaskSchedulingPlan::where('la_task_scheduling_plan.id', $task['scheduling_plan_id'])
->where('is_pay',0)
->with(['template_info'])
->withJoin(['scheduling'], 'left')
->where('scheduling.company_type', 17)
->find()
->toArray();
TaskLogic::dealVillageTask8($taskSchedulePlan);
}
if ($approve->type == Approve::APPROVE_TYPE_7) {
// 需要手动输入销售总额
$approve->amount = $params['amount'];
$approve->save();
}
if ($approve->type == Approve::APPROVE_TYPE_8) {
// 需要手动输入申请的政策补贴金额
$approve->amount = $params['amount'];
$approve->save();
}
if ($approve->type == Approve::APPROVE_TYPE_9) {
$taskSchedulePlan = TaskSchedulingPlan::where('la_task_scheduling_plan.id', $task['scheduling_plan_id'])
->where('is_pay',0)
->with(['template_info'])
->withJoin(['scheduling'], 'left')
->where('scheduling.company_type', 17)
->find()
->toArray();
TaskLogic::masterTask8Settlement($taskSchedulePlan);
}
}
// 拒绝
private function refuse($params, $approve)
{
$approve->check_status = $params['check_status'];
$approve->remark = $params['remark'];
$approve->update_time = time();
$approve->save();
// 更新schedule_plan时间和task的时间为今天依旧可提交
$schedulePlan = TaskSchedulingPlan::find(['tast_id' => $approve['task_id']]);
if (empty($schedule_plan)) {
return $this->fail('数据异常,任务计划不存在');
}
$time = strtotime(date('Y-m-d'));
TaskSchedulingPlan::where(['id' => $schedulePlan['id']])->update([
'start_time'=>$time,
'end_time'=>$time + 86399
]);
Task::where('id', $approve['task_id'])->update([
'start_time'=>$time,
'end_time'=>$time + 86399
]);
}
}

View File

@ -0,0 +1,68 @@
<?php
namespace app\middleapi\controller;
use app\adminapi\logic\informationg\UserInformationgLogic;
use app\adminapi\validate\informationg\UserInformationgValidate;
use app\common\controller\BaseLikeAdminController;
use app\common\model\informationg\UserInformationg;
use app\common\model\informationg\UserInformationgDemand;
use think\response\Json;
class ArchivesController extends BaseLikeAdminController
{
//档案列表
public function lists(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['page_no','page_size','name']);
$pageNo = !empty($params['page_no']) ? $params['page_no'] : 1;
$pageSize = !empty($params['page_size']) ? $params['page_size'] : 20;
$where = [];
if(!empty($params['name'])){
$where[] = ['name','like','%'.$params['name'].'%'];
}
$lists = UserInformationg::where($where)
->field(['id','create_user_id','company_id','area_id','area_id area_name','street_id','street_id street_name','village_id','village_id village_name', 'brigade_id','brigade_id brigade_name', 'address', 'name', 'phone', 'sex', 'age','update_time','create_time','status'])
->append(['extend'])
->order(['id' => 'desc'])
->page($pageNo, $pageSize)
->select()
->toArray();
$informationIdArray = [];
foreach($lists as $k=>$v) {
$informationIdArray[] = $v['id'];
}
$data = UserInformationgDemand::whereIn('information_id', $informationIdArray)->order('id', 'desc')->select();
$aianalyseArray = [];
foreach($data as $kk=>$vv) {
if (!empty($vv['ai_aianalyse'])) {
$aianalyseArray[$vv['information_id']][] = $vv['id'];
}
}
foreach($lists as $k=>$v) {
$lists[$k]['aianalyse_status'] = 0;
if (!empty($aianalyseArray[$v['id']])) {
$lists[$k]['aianalyse_status'] = 1;
}
}
$count = UserInformationg::where($where)->count();
$result = [
'lists' => $lists,
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('请求成功',$result);
}
//档案详情
public function detail(): Json
{
$params = (new UserInformationgValidate())->post()->goCheck('detail');
$result = UserInformationgLogic::detail($params);
return $this->data($result);
}
}

View File

@ -0,0 +1,83 @@
<?php
namespace app\middleapi\controller;
use app\adminapi\validate\category_business\CategoryBusinessValidate;
use app\common\controller\BaseLikeAdminController;
use app\common\logic\category_business\CategoryBusinessLogic;
use app\common\model\category_business\CategoryBusiness;
use think\response\Json;
class BusinessController extends BaseLikeAdminController
{
//商机分类列表
public function lists(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['page_no','page_size','name','status']);
$pageNo = !empty($params['page_no']) ? $params['page_no'] : 1;
$pageSize = !empty($params['page_size']) ? $params['page_size'] : 20;
$where = [];
if(!empty($params['name'])){
$where[] = ['name','like','%'.$params['name'].'%'];
}
if(!empty($params['status'])){
$where[] = ['status','=',$params['status']];
}
$data = CategoryBusiness::where($where)->field(['id', 'name', 'pid', 'sort', 'status'])->order(['id' => 'desc'])->select()->toArray();
$count = CategoryBusiness::where($where)->count();
$result = [
'lists' => linear_to_tree($data, 'children'),
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('请求成功',$result);
}
//商机分类详情
public function detail(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['id']);
if(empty($params['id'])){
return $this->fail('参数错误');
}
$data = CategoryBusiness::where('id',$params['id'])->findOrEmpty();
return $this->success('请求成功',$data->toArray());
}
//新增商机分类
public function create(): Json
{
$params = (new CategoryBusinessValidate())->post()->goCheck('add');
$result = CategoryBusinessLogic::add($params);
if (true === $result) {
return $this->success('添加成功', [], 1, 1);
}
return $this->fail(CategoryBusinessLogic::getError());
}
//编辑商机分类
public function edit(): Json
{
$params = (new CategoryBusinessValidate())->post()->goCheck('edit');
$result = CategoryBusinessLogic::edit($params);
if (true === $result) {
return $this->success('编辑成功', [], 1, 1);
}
return $this->fail(CategoryBusinessLogic::getError());
}
//删除商机分类
public function delete(): Json
{
$params = (new CategoryBusinessValidate())->post()->goCheck('delete');
CategoryBusinessLogic::delete($params);
return $this->success('删除成功', [], 1, 1);
}
}

View File

@ -0,0 +1,359 @@
<?php
namespace app\middleapi\controller;
use app\adminapi\logic\auth\AdminLogic;
use app\adminapi\validate\CompanyValidate;
use app\api\controller\JunziqianController;
use app\common\controller\BaseLikeAdminController;
use app\common\logic\CompanyLogic;
use app\common\logic\contract\ContractLogic;
use app\common\logic\RedisLogic;
use app\common\model\auth\Admin;
use app\common\model\Company;
use app\common\model\contract\Contract;
use app\common\model\dict\DictData;
use app\common\model\task_scheduling\TaskScheduling;
use app\common\model\user\User;
use app\common\model\CompanyDepositVoucher;
use think\facade\Db;
use think\facade\Log;
use think\response\Json;
class CompanyController extends BaseLikeAdminController
{
//公司列表
public function lists(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params=$this->request->post(['page_no','page_size','company_name','area_name','street_name','area_manager','company_type','is_contract']);
$where = [];
if(!empty($params['company_name'])){
$where[] = ['company','like','%'.$params['company_name'].'%'];
}
if(!empty($params['area_name'])){
$arr= Db::name('geo_area')->where('area_name','like','%'.$params['area_name'].'%')->column('area_code');
if($arr){
$where[]=['area','in',$arr];
}
}
if(!empty($params['street_name'])){
$arr= Db::name('geo_street')->where('street_name','like','%'.$params['street_name'].'%')->column('street_code');
if($arr){
$where[]=['street','in',$arr];
}
}
if(!empty($params['area_manager'])){
$arr= Admin::where('name','like','%'.$params['area_manager'].'%')->column('id');
if($arr){
$where[]=['area_manager','in',$arr];
}
}
if(!empty($params['company_type'])){
$where[] = ['company_type','=',$params['company_type']];
}
if(!empty($params['is_contract'])){
$where[] = ['is_contract','=',$params['is_contract']];
}
$pageNo = !empty($params['page_no']) ? $params['page_no'] : 1;
$pageSize = !empty($params['page_size']) ? $params['page_size'] : 20;
$data = Company::where($where)
->field(['is_authentication','id', 'id contract', 'company_name', 'organization_code', 'city', 'area', 'street', 'company_type', 'master_name', 'master_position', 'master_phone', 'master_email', 'area_manager', 'is_contract', 'deposit', 'company_money', 'shareholder_money', 'deposit_time', 'status', 'face_create_status'])
->page($pageNo, $pageSize)
->order(['id' => 'desc'])
->append(['notes'], true)
->withAttr('company_type',function($value,$data){
return Db::name('dict_data')->where('id',$value)->value('name');
})
->withAttr('area',function($value,$data){
return Db::name('geo_area')->where('area_code',$value)->value('area_name');
})
->withAttr('street',function($value,$data){
return Db::name('geo_street')->where('street_code',$value)->value('street_name');
})
->withAttr('area_manager',function($value,$data){
return Db::name('admin')->where('id',$value)->value('name');
})
->withAttr('notes',function($value,$data){
if ($data['is_authentication'] == 1) {
return Db::name('company_authentication_fail_log')->where('company_id',$data['id'])->where('log_type', 2)->order(['id'=>'desc'])->limit(1)->value('fail_reason');
} else {
return Db::name('company_authentication_fail_log')->where('company_id',$data['id'])->where('log_type', 1)->order(['id'=>'desc'])->limit(1)->value('fail_reason');
}
})->select()->toArray();
$count = Company::where($where)->count();
$result = [
'lists' => $data,
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('请求成功',$result);
}
//公司详情
public function detail(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params=$this->request->post(['id']);
if(empty($params['id'])){
return $this->fail('缺少必要参数');
}
$result = CompanyLogic::detail($params);
return $this->data($result);
}
//公司删除
public function delete(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params=$this->request->post(['id']);
if(empty($params['id'])){
return $this->fail('缺少必要参数');
}
$admin_id = Company::where('id', $params['id'])->value('admin_id');
User::where('company_id', $params['id'])->update(['delete_time' => time()]);
TaskScheduling::where('company_id', $params['id'])->update(['delete_time' => time()]);
AdminLogic::delete(['id' => $admin_id]);
CompanyLogic::delete($params);
return $this->success('删除成功', [], 1, 1);
}
//添加公司
public function create(): Json
{
$params = (new CompanyValidate())->post()->goCheck('add');
$params['other_contacts'] = json_encode($params['other_contacts']);
$params['qualification'] = json_encode($params['qualification']);
if (isset($params['responsible_area'])) {
$params['responsible_area'] = implode(',', $params['responsible_area']);
}
$result = CompanyLogic::add($params);
if (true === $result) {
return $this->success('添加成功', [], 1, 1);
}
return $this->fail(CompanyLogic::getError());
}
//修改公司
public function edit(): Json
{
$params = (new CompanyValidate())->post()->goCheck('edit');
$params['other_contacts'] = json_encode($params['other_contacts']);
$params['qualification'] = json_encode($params['qualification']);
if (isset($params['responsible_area'])) {
$params['responsible_area'] = implode(',', $params['responsible_area']);
}
$result = CompanyLogic::edit($params);
if (true === $result) {
return $this->success('编辑成功', [], 1, 1);
}
return $this->fail(CompanyLogic::getError());
}
//公司认证
public function enterpriseCertification(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params=$this->request->post(['id']);
if(empty($params['id'])){
return $this->fail('缺少必要参数');
}
$company = Db::name('company')->where('id', $params['id'])->find();
$qualification = json_decode($company['qualification'], true);
if ($company && $qualification['business_license']) {
$data = [
'name' => $company['company_name'],
'organization_code' => $company['organization_code'],
'business_license' => 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/561f8202305171526091317.png', //$qualification['business_license'],
'master_name' => $company['master_name'],
'master_email' => $company['master_email'],
'master_phone' => $company['master_phone'],
'master_id_card' => $company['master_id_card'],
'id' => $company['id'],
];
$res = app(JunziqianController::class)->EnterpriseCertification($data);
Log::info(['企业认证同步结果',$res]);
if ($res->success) {
if ($company['company_type'] == 30) {
// 平台公司不用初始化生成合同 合同签约暂不用人脸识别,预留人脸采集状态为已采集
Db::name('company')->where('id', $params['id'])->update([ 'is_contract'=>1,'face_create_status'=>1]);
} else {
Db::name('company')->where('id', $params['id'])->update([ 'face_create_status'=>1]);
}
// 加入缓存中is_callback用于判断是否获取到异步通知
RedisLogic::getInstance()->set('authentication_company_id_'.$company['id'], json_encode(['company_id'=>$company['id'],'is_callback'=>0, 'timing'=>time()]));
return $this->success('系统认证中,请稍后刷新页面查看', ['email' => $res->data], 1, 1);
} else {
return $this->fail($res->msg);
}
} else {
return $this->fail("公司不存在");
}
}
//生成合同
public function generateContract(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params=$this->request->post(['id','party_a','contract_type']);
if(empty($params['id']) || empty($params['party_a']) || empty($params['contract_type'])){
return $this->fail('缺少必要参数');
}
$area_manager = Company::where('id', $params['party_a'])->value('area_manager');
$params['area_manager'] = $area_manager;
$params['type'] = 1;
$params['party_b'] = $params['id'];
unset($params['id']);
$result = ContractLogic::initiate_contract($params);
if (!empty($result) && $result['code'] == 1) {
return $this->success($result['msg'], $result['data'], 1, 1);
}
return $this->fail(ContractLogic::getError());
}
//下属公司
public function subsidiaryCompany(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params=$this->request->post(['id','page_no','page_size']);
if(empty($params['id'])){
return $this->fail('缺少必要参数');
}
$pageNo = !empty($params['page_no']) ? $params['page_no'] : 1;
$pageSize = !empty($params['page_size']) ? $params['page_size'] : 20;
$ids = Contract::where('party_a', $params['id'])->where('status', 1)->where('type', 1)->column('party_b');
if ($ids) {
$result = Company::where('id', 'in', $ids)->field('company_name,id,company_type,company_type company_type_name,area,area area_name,street,street street_name,is_contract,area_manager,area_manager area_manager_name,master_name,master_phone,is_authentication')->page($pageNo,$pageSize)->select();
$count = Company::where('id', 'in', $ids)->count();
} else {
$result = [];
$count = 0;
}
$data = [
'lists' => $result,
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('success', $data);
}
//公司类型
public function companyType(): Json
{
$data = DictData::where('type_id',6)
->append(['status_desc'])
->order(['sort' => 'desc', 'id' => 'desc'])
->select()
->toArray();
return $this->success('请求成功',$data);
}
//合同类型
public function contractType(): Json
{
$data = DictData::where('type_id',7)
->append(['status_desc'])
->order(['sort' => 'desc', 'id' => 'desc'])
->select()
->toArray();
return $this->success('请求成功',$data);
}
public function responsibleArea(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['key','value','company_type']);
if (empty($params['key']) || empty($params['value']) || empty($params['company_type'])) {
return $this->fail('参数错误');
}
if ($params['key'] == 'city') {
$where[] = ['area', '=', 0];
}
if ($params['value'] == '') {
return $this->fail('参数不能为空');
}
$where[] = [$params['key'], '=', $params['value']];
$where[] = ['company_type', '=', $params['company_type']];
switch ($params['key']) {
case 'city':
// $geo_area=Db::name('geo_area')->where('city_code', '=', $parmas['value'])->column('area_code');
// $where[] = ['area', 'in', $geo_area];
break;
case 'area':
$street_code = Db::name('geo_street')->where('area_code', '=', $params['value'])->column('street_code');
$where[] = ['street', 'in', $street_code];
$where[] = ['village', '=', 0];
break;
case 'street':
$street_code = Db::name('geo_village')->where('street_code', '=', $params['value'])->column('village_code');
$where[] = ['village', 'in', $street_code];
$where[] = ['brigade', '=', 0];
break;
case 'village':
// $street_code = Db::name('geo_brigade')->where('street_code', '=', $parmas['value'])->column('village_code');
$where[] = ['village', '=', $params['value']];
// $where[] = ['brigade', '=', 0];
break;
}
$res = Company::where($where)->column('responsible_area');
foreach ($res as $k => $v) {
$res[$k] = explode(',', $v);
}
$data = [];
foreach ($res as $k => $v) {
foreach ($v as $kk => $vv) {
if ($vv != '') {
$data[] = $vv;
}
}
}
return $this->success('success', array_unique($data));
}
public function getDepositRechargeTransferVoucherList()
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['page_no','page_size', 'account', 'mobile', 'company_id']);
$where = [];
if(isset($params['company_id']) && $params['company_id'] > 0){
$where[] = ['company_id', '=', $params['company_id']];
}
$pageNo = !empty($params['page_no']) ? $params['page_no'] : 1;
$pageSize = !empty($params['page_size']) ? $params['page_size'] : 20;
$lists = CompanyDepositVoucher::where($where)
->page($pageNo, $pageSize)
->order(['id' => 'desc'])
->select()
->toArray();
$count=CompanyDepositVoucher::where($where)->count();
$result = [
'lists' => $lists,
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('请求成功',$result);
}
}

View File

@ -0,0 +1,181 @@
<?php
namespace app\middleapi\controller;
use app\adminapi\validate\contract\ContractValidate;
use app\api\controller\JunziqianController;
use app\api\logic\SmsLogic;
use app\common\controller\BaseLikeAdminController;
use app\common\logic\contract\ContractLogic;
use app\common\model\auth\Admin;
use app\common\model\Company;
use app\common\model\contract\Contract;
use app\common\model\user\User;
use think\facade\Db;
use think\response\Json;
class ContractController extends BaseLikeAdminController
{
//合同列表
public function lists(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['page_no','page_size','contract_no','contract_type','contract_status','company_name','area_manager']);
$where = [];
if(isset($params['contract_no'])){
$where[] = ['contract_no','like','%'.$params['contract_no'].'%'];
}
if(isset($params['contract_type'])){
$where[] = ['contract_type','=',$params['contract_type']];
}
if(isset($params['contract_status']) && in_array($params['contract_status'],[0,1])){
$where[] = ['status','=', $params['contract_status']];
}
if(isset($params['company_name']) && $params['company_name']!=''){
$arr= Company::where('company_name','like','%'.$params['company_name'].'%')->column('id');
if($arr){
$where[]=['party_a|party_b','in',$arr];
}
}
if(isset($params['area_manager']) && $params['area_manager']!=''){
$arr= Admin::where('name','like','%'.$params['area_manager'].'%')->column('id');
if($arr){
$where[]=['area_manager','in',$arr];
}
}
$pageNo = !empty($param['page_no']) ? $param['page_no'] : 1;
$pageSize = !empty($param['page_size']) ? $param['page_size'] : 20;
$data = Contract::where($where)->with(['companyName','party_a_info','contractType'])
->page($pageNo, $pageSize)
->order(['id' => 'desc'])
->select()->each(function ($item) {
if($item->type==1){
$item->party_b_name=Db::name('company')->where('id',$item->party_b)->value('company_name');
}else{
$item->party_b_name=Db::name('user')->where('id',$item->party_b)->value('nickname');
}
if(!empty($item->party_a_info)){
$area_manager_name=Db::name('admin')->where('id',$item->party_a_info->area_manager)->value('name');
if($area_manager_name){
$item->area_manager_name=$area_manager_name;
}else{
$item->area_manager_name='暂无片区经理';
}
}else{
$item->area_manager_name='暂无片区经理';
}
$item->contract_type_name=Db::name('dict_data')->where('id',$item->contract_type)->value('name');
$item->status_name=$item->status==1?'已签约':'未签约';
})->toArray();
$count = Contract::where($where)->count();
$result = [
'lists' => $data,
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('请求成功',$result);
}
//合同详情
public function detail(): Json
{
$params = (new ContractValidate())->post()->goCheck('detail');
$result = ContractLogic::detail($params);
return $this->data($result);
}
//上传合同
public function uploadContract(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['id','file']);
if(empty($params['id']) || empty($params['file'])){
return $this->fail('参数错误');
}
$res = Contract::where('id', $params['id'])->update(['file' => $params['file'], 'check_status' => 2]);
if ($res) {
$find = Contract::where('id', $params['id'])->with(['party_a_info'])->field('type,party_b,party_a')->find()->toArray();
if ($find['type'] == 1) {
$find['party_b_info'] = Company::where('id', $find['party_b'])->field('company_name name,master_phone phone')->find()->toArray();
} else {
$find['party_b_info'] = User::where('id', $find['party_b'])->field('nickname name,mobile phone')->find()->toArray();
}
$a = [
'mobile' => $find['party_a_info']['master_phone'],
'name' => $find['party_a_info']['company_name'],
'scene' => 'WQTZ'
];
SmsLogic::contractUrl($a);
$b = [
'mobile' => $find['party_b_info']['phone'],
'name' => $find['party_b_info']['name'],
'scene' => 'WQTZ'
];
SmsLogic::contractUrl($b);
return $this->success('上传成功', [], 1, 1);
} else {
if ($res == 0) {
return $this->success('没有更新', [], 1, 1);
}
return $this->fail('上传失败');
}
}
//发起合同
public function DraftingContract(): Json
{
$params = $this->request->post(['id','part_b','type']);
if(empty($params['id']) || empty($params['part_b']) || empty($params['type'])){
return $this->fail('参数错误');
}
$data = [
'id' => $params['part_b'],
'contract_id' => $params['id']
];
$result = ContractLogic::Draftingcontracts($data,$params['type']);
if ($result) {
return $this->success('发送合同成功', [], 1, 1);
}
return $this->fail(ContractLogic::getError());
}
//发送短信
public function sendSms(): Json
{
$params = $this->request->post(['id']);
if(empty($params['id'])){
return $this->fail('参数错误');
}
$res = ContractLogic::postsms($params);
if ($res) {
return $this->success('发送成功', [], 1, 1);
} else {
return $this->fail(ContractLogic::getError());
}
}
//下载证据包
public function evidence() {
$params = $this->request->post(['id']);
if(empty($params['id'])){
$this->fail('参数错误');
}
$detail=Contract::where('id',$params['id'])->find();
if(!empty($detail['evidence_url'])){
return $this->success('获取成功', ['url' => env('url.url_prefix').$detail['evidence_url']]);
}
$company=Company::where('id',$detail['party_a'])->find();
$request = array(
"applyNo" => $detail['contract_no'],
"fullName" => $company['company_name'],
"identityCard" => $company['organization_code'],
"identityType" => 12,
);
return app(JunziqianController::class)->EvidenceDownload($request);
}
}

View File

@ -0,0 +1,77 @@
<?php
namespace app\middleapi\controller;
use app\common\model\dict\DictData;
use app\adminapi\logic\setting\dict\DictDataLogic;
use app\common\controller\BaseLikeAdminController;
/**
* 字典数据
* Class DictDataController
* @package app\adminapi\controller\dictionary
*/
class DictDataController extends BaseLikeAdminController
{
/**
* @notes 获取字典数据列表
* @return \think\response\Json
* @author 段誉
* @date 2022/6/20 16:35
*/
public function lists()
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params=$this->request->post(['page_no','page_size','name','type_id','type_value']);
$where = [];
if(!empty($params['name'])){
$where[] = ['name','like','%' . $params['name'] . '%'];
}
if(!empty($params['type_id'])){
$where[] = ['type_id', '=', $params['type_id']];
}
if(!empty($params['type_value'])){
$where[] = ['type_value', '=', $params['type_value']];
}
$pageNo = !empty($params['page_no']) ? $params['page_no'] : 1;
$pageSize = !empty($params['page_size']) ? $params['page_size'] : 20;
$data = DictData::where($where)
->append(['status_desc'])
->page($pageNo, $pageSize)
->order(['sort' => 'desc', 'id' => 'desc'])
->select()
->toArray();
$count = DictData::where($where)->count();
$result = [
'lists' => $data,
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('请求成功',$result);
}
/**
* @notes 获取字典详情
* @return \think\response\Json
* @author 段誉
* @date 2022/6/20 17:14
*/
public function detail()
{
$params = (new DictDataValidate())->goCheck('id');
$result = DictDataLogic::detail($params);
return $this->data($result);
}
public function getTaskApproveTypeList()
{
$result = DictDataLogic::getTaskApproveTypeList();
return $this->data($result);
}
}

View File

@ -0,0 +1,44 @@
<?php
namespace app\middleapi\controller;
use app\common\controller\BaseLikeAdminController;
use think\facade\Db;
class GeoController extends BaseLikeAdminController
{
public function province()
{
$data = Db::name('geo_province')->where(['switch' => 1])->select();
return $this->data($data->toArray());
} //**市列表 */
public function city($city)
{
$data = Db::name('geo_city')->where(['province_code' => $city])->select();
return $this->data($data->toArray());
}
//**区域列表 */
public function area($area)
{
$data = Db::name('geo_area')->where(['city_code' => $area])->select();
return $this->data($data->toArray());
}
//**街道列表 */
public function street($street)
{
$data = Db::name('geo_street')->where(['area_code' => $street])->select();
return $this->data($data->toArray());
}
//**村列表 */
public function village($village)
{
$data = Db::name('geo_village')->where(['street_code' => $village])->select();
return $this->data($data->toArray());
}
//**小队列表 */
public function brigade()
{
$data = Db::name('geo_brigade')->select();
return $this->data($data->toArray());
}
}

View File

@ -0,0 +1,124 @@
<?php
namespace app\middleapi\controller;
use app\common\controller\BaseLikeAdminController;
use app\common\model\Approve;
use app\common\model\auth\Admin;
use app\common\model\Company;
use app\common\model\CompanyForm;
use app\common\model\ShopMerchant;
use app\common\model\task\Task;
use think\facade\Db;
use think\response\Json;
class MerchantController extends BaseLikeAdminController
{
//商户档案列表
public function merchantRecordLists(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['page_no','page_size','merchant_name','master_name','master_phone']);
$pageNo = !empty($params['page_no']) ? $params['page_no'] : 1;
$pageSize = !empty($params['page_size']) ? $params['page_size'] : 20;
$where = [];
if(!empty($params['merchant_name'])){
$where[] = ['company_name','like','%'.$params['merchant_name'].'%'];
}
if(!empty($params['master_name'])){
$where[] = ['master_name','like','%'.$params['master_name'].'%'];
}
if(!empty($params['master_phone'])){
$where[] = ['master_phone','like','%'.$params['master_phone'].'%'];
}
$data = ShopMerchant::where($where)
->field(['id', 'company_name', 'organization_code', 'master_name', 'master_phone'])
->page($pageNo, $pageSize)
->order(['id' => 'desc'])
->append(['notes'], true)
->withAttr('notes',function($value,$data){
return Db::name('company_authentication_fail_log')->where('company_id',$data['id'])->where('log_type', 3)->order(['id'=>'desc'])->limit(1)->value('fail_reason');
})->select()->toArray();
$count = ShopMerchant::where($where)->count();
$result = [
'lists' => $data,
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('请求成功',$result);
}
//商户认证表格列表
public function merchantAuthLists(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['page_no','page_size','merchant_name','organization_code','master_name']);
$pageNo = !empty($params['page_no']) ? $params['page_no'] : 1;
$pageSize = !empty($params['page_size']) ? $params['page_size'] : 20;
$where = [];
if(!empty($params['merchant_name'])){
$where[] = ['company_name','like','%'.$params['merchant_name'].'%'];
}
if(!empty($params['organization_code'])){
$where[] = ['organization_code','like','%'.$params['organization_code'].'%'];
}
if(!empty($params['master_name'])){
$where[] = ['master_name','like','%'.$params['master_name'].'%'];
}
$data = CompanyForm::where($where)
->field(['id', 'company_name', 'organization_code', 'address', 'master_name', 'type', 'master_email', 'notes'])
->page($pageNo, $pageSize)->order(['id' => 'desc'])->select()->toArray();
$count = CompanyForm::where($where)->count();
$result = [
'lists' => $data,
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('请求成功',$result);
}
//商户申请列表
public function merchantApplyLists(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['page_no','page_size','check_status','type']);
$pageNo = !empty($params['page_no']) ? $params['page_no'] : 1;
$pageSize = !empty($params['page_size']) ? $params['page_size'] : 20;
$where = [];
if(!empty($params['check_status']) && in_array($params['check_status'],[1,2,3])){
$where[] = ['check_status','=', $params['check_status']];
}
if(!empty($params['type']) && in_array($params['type'],[2,3])){
$where[] = ['type','=',$params['type']];
}else{
$where[] = ['type','in','2,3'];
}
$data = Approve::where($where)->with('task')->append(['area_manager', 'company_name'], true)
->page($pageNo, $pageSize)->order(['id' => 'desc'])->select()
->withAttr('area_manager',function($value,$data){
return Admin::where(['id' => $data['check_admin_ids']])->value('name');
})
->withAttr('company_name',function($value,$data){
$task = Task::where('id', $data['task_id'])->find();
if(!empty($task)){
return Company::where(['id' => $task['company_id']])->value('company_name');
}
})->toArray();
$count = Approve::where($where)->count();
$result = [
'lists' => $data,
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('请求成功',$result);
}
}

View File

@ -0,0 +1,99 @@
<?php
namespace app\middleapi\controller;
use app\adminapi\logic\recharge\RechargeLogic;
use app\adminapi\validate\recharge\RechargeRefundValidate;
use app\common\model\recharge\RechargeOrder;
use app\common\service\FileService;
use app\common\controller\BaseLikeAdminController;
/**
* 充值控制器
* Class RechargeController
* @package app\adminapi\controller\recharge
*/
class RechargeController extends BaseLikeAdminController
{
/**
* @notes 充值记录
* @return \think\response\Json
* @author 段誉
* @date 2023/2/24 16:01
*/
public function lists()
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['page_no','page_size', 'user_info', 'start_time', 'end_time', 'sn', 'pay_way', 'pay_status' ]);
$where = [];
if (!empty($params['sn'])) {
$where[] = ['ro.sn', '=', $params['sn']];
}
if (!empty($params['pay_way'])) {
$where[] = ['ro.pay_way', '=', $params['pay_way']];
}
if (!empty($params['pay_status'])) {
$where[] = ['ro.pay_status', '=', $params['pay_status']];
}
if (!empty($params['user_info'])) {
$where[] = ['u.sn|u.nickname|u.mobile', 'like', '%' . $params['user_info'] . '%'];
}
if (!empty($params['start_time']) && !empty($params['end_time'])) {
$where[] = ['ro.create_time', 'between', [strtotime($params['start_time']), strtotime($params['end_time'])]];
}
$pageNo = !empty($params['page_no']) ? $params['page_no'] : 1;
$pageSize = !empty($params['page_size']) ? $params['page_size'] : 20;
$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';
$data = RechargeOrder::alias('ro')
->join('user u', 'u.id = ro.user_id')
->join('admin a', 'u.admin_id = a.id')
->join('company c', 'u.company_id = c.id')
->field($field)
->where($where)
->order('ro.id', 'desc')
->page($pageNo, $pageSize)
->append(['pay_status_text', 'pay_way_text'])
->select()
->toArray();
foreach ($data as &$item) {
$item['avatar'] = FileService::getFileUrl($item['avatar']);
$item['pay_time'] = empty($item['pay_time']) ? '' : date('Y-m-d H:i:s', $item['pay_time']);
}
$count = RechargeOrder::alias('ro')
->join('user u', 'u.id = ro.user_id')
->join('admin a', 'u.admin_id = a.id')
->join('company c', 'u.company_id = c.id')
->where($where)->count();
$result = [
'lists' => $data,
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('请求成功',$result);
}
/**
* @notes 退款
* @return \think\response\Json
* @author 段誉
* @date 2023/2/28 17:29
*/
public function refund()
{
$params = (new RechargeRefundValidate())->post()->goCheck('refund');
$adminId = 1;
$result = RechargeLogic::refund($params, $adminId);
list($flag, $msg) = $result;
if(false === $flag) {
return $this->fail($msg);
}
return $this->success($msg, [], 1, 1);
}
}

View File

@ -0,0 +1,108 @@
<?php
namespace app\middleapi\controller;
use app\adminapi\logic\finance\RefundLogic;
use app\common\model\refund\RefundRecord;
use app\common\controller\BaseLikeAdminController;
/**
* 退款控制器
* Class RefundController
* @package app\adminapi\controller\finance
*/
class RefundController extends BaseLikeAdminController
{
/**
* @notes 退还统计
* @return \think\response\Json
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @author 段誉
* @date 2023/3/3 12:10
*/
public function stat()
{
$result = RefundLogic::stat();
return $this->success('', $result);
}
/**
* @notes 退款记录
* @return \think\response\Json
* @author 段誉
* @date 2023/3/1 9:47
*/
public function record()
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['page_no','page_size', 'user_info', 'start_time', 'end_time', 'sn', 'order_sn', 'refund_type', 'refund_status']);
$where = [];
if (!empty($params['sn'])) {
$where[] = ['r.sn', '=', $params['sn']];
}
if (!empty($params['order_sn'])) {
$where[] = ['r.order_sn', '=', $params['order_sn']];
}
if (!empty($params['refund_type'])) {
$where[] = ['r.refund_type', '=', $params['refund_type']];
}
if (!empty($params['user_info'])) {
$where[] = ['u.sn|u.nickname|u.mobile', 'like', '%' . $params['user_info'] . '%'];
}
if (!empty($params['start_time']) && !empty($params['end_time'])) {
$where[] = ['r.create_time', 'between', [strtotime($params['start_time']), strtotime($params['end_time'])]];
}
if (isset($params['refund_status']) && $params['refund_status'] != '') {
$where[] = ['r.refund_status', '=', $params['refund_status']];
}
$pageNo = !empty($params['page_no']) ? $params['page_no'] : 1;
$pageSize = !empty($params['page_size']) ? $params['page_size'] : 20;
$lists = (new RefundRecord())->alias('r')
->field('r.*,u.nickname,u.avatar')
->join('user u', 'u.id = r.user_id')
->order(['r.id' => 'desc'])
->where($where)
->page($pageNo, $pageSize)
->append(['refund_type_text', 'refund_status_text', 'refund_way_text'])
->select()
->toArray();
foreach ($lists as &$item) {
$item['avatar'] = FileService::getFileUrl($item['avatar']);
}
$count = (new RefundRecord())->alias('r')
->field('r.*,u.nickname,u.avatar')
->join('user u', 'u.id = r.user_id')
->order(['r.id' => 'desc'])
->where($where)->count();
$result = [
'lists' => $lists,
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('请求成功',$result);
}
/**
* @notes 退款日志
* @return \think\response\Json
* @author 段誉
* @date 2023/3/1 9:47
*/
public function log()
{
$params = $this->request->post(['record_id']);
$recordId = $params['record_id'] ?? 0;
$result = RefundLogic::refundLog($recordId);
return $this->success('', $result);
}
}

View File

@ -0,0 +1,180 @@
<?php
namespace app\middleapi\controller;
use app\adminapi\logic\ShopContractLogic;
use app\adminapi\validate\ShopContractValidate;
use app\api\controller\JunziqianController;
use app\api\logic\SmsLogic;
use app\common\controller\BaseLikeAdminController;
use app\common\logic\contract\ContractLogic;
use app\common\model\ShopContract;
use app\common\model\ShopMerchant;
use think\response\Json;
class ShopContractController extends BaseLikeAdminController
{
//商户合同列表
public function lists(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['page_no','page_size','contract_no','party_a','party_b','status']);
$pageNo = !empty($params['page_no']) ? $params['page_no'] : 1;
$pageSize = !empty($params['page_size']) ? $params['page_size'] : 20;
$where = [];
if(!empty($params['contract_no'])){
$where[] = ['contract_no','like','%'.$params['contract_no'].'%'];
}
if(isset($params['party_a']) && $params['party_a']!=''){
$arr= ShopMerchant::where('company_name','like','%'.$params['party_a'].'%')->column('id');
if($arr){
$where[]=['party_a','in',$arr];
}
}
if(isset($params['party_b']) && $params['party_b']!=''){
$arr= ShopMerchant::where('company_name','like','%'.$params['party_b'].'%')->column('id');
if($arr){
$where[]=['party_b','in',$arr];
}
}
if(isset($params['status']) && in_array($params['status'],[0,1])){
$where[] = ['status','=',$params['status']];
}
$data = ShopContract::where($where)
->field(['id', 'contract_no', 'party_a', 'party_b', 'area_manager', 'type', 'evidence_url', 'check_status', 'status', 'notes'])
->page($pageNo, $pageSize)->order(['id' => 'desc'])
->with(['partyA', 'partyB'])->select()->toArray();
$count = ShopContract::where($where)->count();
$result = [
'lists' => $data,
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('请求成功',$result);
}
//商户合同详情
public function detail(): Json
{
$params = (new ShopContractValidate())->post()->goCheck('detail');
$result = ShopContractLogic::detail($params);
return $this->data($result);
}
//商户合同审核后
public function check(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['id','file']);
if(empty($params['id']) || empty($params['file'])){
return $this->fail('参数错误');
}
$res = ShopContract::where('id', $params['id'])->update(['file' => $params['file'], 'check_status' => 2]);
if ($res) {
$find = ShopContract::where('id', $params['id'])->field('type,party_b,party_a')->find()->toArray();
$find['party_a_info'] = ShopMerchant::where('id', $find['party_a'])->field('company_name name,master_phone phone')->find()->toArray();
$find['party_b_info'] = ShopMerchant::where('id', $find['party_b'])->field('company_name name,master_phone phone')->find()->toArray();
$a = [
'mobile' => $find['party_a_info']['phone'],
'name' => $find['party_a_info']['name'],
'scene' => 'WQTZ'
];
SmsLogic::contractUrl($a);
$b = [
'mobile' => $find['party_b_info']['phone'],
'name' => $find['party_b_info']['name'],
'scene' => 'WQTZ'
];
SmsLogic::contractUrl($b);
return $this->success('上传成功', [], 1, 1);
} else {
if ($res == 0) {
return $this->success('没有更新', [], 1, 1);
}
return $this->fail('上传失败');
}
}
//商户合同备注
public function note(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['id','notes']);
if(empty($params['id']) || empty($params['notes'])){
return $this->fail('参数错误');
}
$shopContract = ShopContract::where('id', $params['id'])->find();
if (empty($shopContract)) {
return $this->fail('合同不存在');
}
$shopContract->notes = $params['notes'];
$shopContract->save();
return $this->success('成功');
}
//发送合同
public function draftContract(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['id']);
if(empty($params['id'])){
return $this->fail('参数错误');
}
$result = ShopContractLogic::Draftingcontracts($params);
if ($result) {
return $this->success('生成合同成功', [], 1, 1);
}
return $this->fail(ContractLogic::getError());
}
//发送短信
public function sendSms(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['id']);
if(empty($params['id'])){
return $this->fail('参数错误');
}
$re = ShopContractLogic::postsms($params);
if (!$re) {
return $this->fail(ShopContractLogic::getError());
}
return $this->success('成功');
}
//下载证据包
public function evidence()
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['id']);
if(empty($params['id'])){
return $this->fail('参数错误');
}
$detail=ShopContract::where('id',$params['id'])->find();
if(!empty($detail['evidence_url'])){
return $this->success('获取成功', ['url' => env('url.url_prefix').$detail['evidence_url']]);
}
$company=ShopMerchant::where('id',$detail['party_a'])->find();
$request = array(
"applyNo" => $detail['contract_no'],
"fullName" => $company['company_name'],
"identityCard" => $company['organization_code'],
"identityType" => 12,
);
return app(JunziqianController::class)->EvidenceShopDownload($request);
}
}

View File

@ -0,0 +1,106 @@
<?php
namespace app\middleapi\controller;
use app\common\model\task_scheduling\TaskScheduling;
use app\common\model\Company;
use app\adminapi\validate\task_scheduling\TaskSchedulingValidate;
use app\common\logic\task_scheduling\TaskSchedulingLogic;
use app\common\controller\BaseLikeAdminController;
/**
* 任务公司排期控制器
* Class TaskSchedulingController
* @package app\adminapi\controller\task_scheduling
*/
class TaskSchedulingController extends BaseLikeAdminController
{
/**
* @notes 获取任务公司排期列表
* @return \think\response\Json
* @author likeadmin
* @date 2023/08/08 10:08
*/
public function lists()
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params=$this->request->post(['page_no','page_size','company_id']);
$where = [];
if (isset($params['company_id']) && $params['company_id'] != '') {
$arr = Company::where('company_name', 'like', '%' . $params['company_id'] . '%')->column('id');
if ($arr) {
$where[] = ['company_id', 'in', $arr];
} else {
$where[] = ['company_id', 'in', [0]];
}
}
$pageNo = !empty($params['page_no']) ? $params['page_no'] : 1;
$pageSize = !empty($params['page_size']) ? $params['page_size'] : 20;
$data = TaskScheduling::where($where)
->with(['admin', 'company', 'company_type'])
->page($pageNo, $pageSize)
->order(['id' => 'desc'])
->select()
->toArray();
$count = TaskScheduling::where($where)->count();
$result = [
'lists' => $data,
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('请求成功',$result);
}
/**
* @notes 编辑任务公司排期
* @return \think\response\Json
* @author likeadmin
* @date 2023/08/08 10:08
*/
public function edit()
{
$params = (new TaskSchedulingValidate())->post()->goCheck('edit');
$result = TaskSchedulingLogic::edit($params);
if (true === $result) {
return $this->success('编辑成功', [], 1, 1);
}
return $this->fail(TaskSchedulingLogic::getError());
}
//编辑金额
public function editMoney()
{
$params = $this->request->param();
if(empty($params['id'])){
return $this->fail('缺少必要参数id');
}
if(empty($params['money'])){
return $this->fail('缺少必要参数金额');
}
$moeny = $params['money'];
$result = TaskScheduling::where(['id'=>$params['id']])->update(['money'=>$moeny]);
if ( $result) {
return $this->success('编辑成功', [], 1, 1);
}
return $this->fail('编辑失败');
}
/**
* @notes 获取任务公司排期详情
* @return \think\response\Json
* @author likeadmin
* @date 2023/08/08 10:08
*/
public function detail()
{
$params = (new TaskSchedulingValidate())->post()->goCheck('detail');
$result = TaskSchedulingLogic::detail($params);
return $this->data($result);
}
}

View File

@ -0,0 +1,62 @@
<?php
namespace app\middleapi\controller;
use app\common\model\task_scheduling_plan\TaskSchedulingPlan;
use app\common\controller\BaseLikeAdminController;
/**
* 任务排期日历控制器
* Class TaskSchedulingPlanController
* @package app\adminapi\controller\task_scheduling_plan
*/
class TaskSchedulingPlanController extends BaseLikeAdminController
{
/**
* @notes 获取任务排期日历列表
* @return \think\response\Json
* @author likeadmin
* @date 2023/08/08 10:34
*/
public function lists()
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params=$this->request->post(['page_no','page_size','template_id','scheduling_id','status','start_time','end_time']);
$where = [];
if (isset($params['template_id']) && $params['template_id'] != '') {
$where[] = ['template_id', '=', $params['template_id']];
}
if (isset($params['scheduling_id']) && $params['scheduling_id'] != '') {
$where[] = ['scheduling_id', '=', $params['scheduling_id']];
}
if (isset($params['status']) && $params['status'] != '') {
$where[] = ['status', '=', $params['status']];
}
if (isset($params['start_time']) && $params['start_time'] != '') {
$where[] = ['start_time', '>=', strtotime($params['start_time'])];
}
if (isset($params['end_time']) && $params['end_time'] != '') {
$where[] = ['end_time', '<=', strtotime($params['end_time'])];
}
$pageNo = !empty($params['page_no']) ? $params['page_no'] : 1;
$pageSize = !empty($params['page_size']) ? $params['page_size'] : 20;
$data = TaskSchedulingPlan::where($where)
->with(['template','templateInfo'])
->page($pageNo, $pageSize)
->order(['id' => 'desc'])
->select()
->toArray();
$count = TaskSchedulingPlan::where($where)->count();
$result = [
'lists' => $data,
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('请求成功',$result);
}
}

View File

@ -0,0 +1,142 @@
<?php
namespace app\middleapi\controller;
use app\common\logic\task_template\TaskTemplateLogic;
use app\adminapi\validate\task_template\TaskTemplateValidate;
use app\common\model\Company;
use app\common\model\task_template\TaskTemplate;
use app\common\model\task_scheduling\TaskScheduling;
use app\common\controller\BaseLikeAdminController;
/**
* 任务模板控制器
* Class TaskTemplateController
* @package app\adminapi\controller\task_template
*/
class TaskTemplateController extends BaseLikeAdminController
{
/**
* @notes 获取任务模板列表
* @return \think\response\Json
* @author likeadmin
* @date 2023/08/06 17:30
*/
public function lists()
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params=$this->request->post(['page_no','page_size','title', 'type', 'status', 'company_id']);
$where = [];
if (isset($params['title']) && $params['title'] != '') {
$where[] = ['title', 'like', '%' . $params['title'] . '%'];
}
if (isset($params['type']) && $params['type'] != '') {
$where[] = ['type', '=', $params['type']];
}
if (isset($params['status']) && $params['status'] != '') {
$where[] = ['status', '=', $params['status']];
}
if (isset($params['company_id']) && $params['company_id'] != '') {
$where[] = ['company_id', '=', $params['company_id']];
}
$pageNo = !empty($params['page_no']) ? $params['page_no'] : 1;
$pageSize = !empty($params['page_size']) ? $params['page_size'] : 20;
$data = TaskTemplate::where($where)
->with(['admin','data_type'])
->page($pageNo, $pageSize)
->order(['id' => 'desc'])
->select()
->toArray();
$count = TaskTemplate::where($where)->count();
$result = [
'lists' => $data,
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('请求成功',$result);
}
/**
* @notes 添加任务模板
* @return \think\response\Json
* @author likeadmin
* @date 2023/08/06 17:30
*/
public function add()
{
$params = (new TaskTemplateValidate())->post()->goCheck('add');
$params['admin_id'] = 1;
if (empty($params['extend'])) {
$params['extend'] = '{}';
}
$company = Company::find($params['company_id']);
if ($company->company_type == 41) {
// 创建 镇农科公司 任务模板
$result = TaskTemplateLogic::addTownTaskTemplate($params);
} else if ($company->company_type == 17) {
$result = TaskTemplateLogic::addVillageTaskTemplate($params);
} else {
$result = TaskTemplateLogic::add($params);
}
if (true === $result) {
TaskTemplateLogic::initCompanyWithdrawDeadline($params['company_id']);
return $this->success('添加成功', [], 1, 1);
}
return $this->fail(TaskTemplateLogic::getError());
}
/**
* @notes 编辑任务模板
* @return \think\response\Json
* @author likeadmin
* @date 2023/08/06 17:30
*/
public function edit()
{
$params = (new TaskTemplateValidate())->post()->goCheck('edit');
if (empty($params['extend'])) {
$params['extend'] = '{}';
}
$params['admin_id'] = 1;
$result = TaskTemplateLogic::edit($params);
if (true === $result) {
return $this->success('编辑成功', [], 1, 1);
}
return $this->fail(TaskTemplateLogic::getError());
}
/**
* @notes 删除任务模板
* @return \think\response\Json
* @author likeadmin
* @date 2023/08/06 17:30
*/
public function delete()
{
$params = (new TaskTemplateValidate())->post()->goCheck('delete');
TaskTemplateLogic::delete($params);
return $this->success('删除成功', [], 1, 1);
}
/**
* @notes 获取任务模板详情
* @return \think\response\Json
* @author likeadmin
* @date 2023/08/06 17:30
*/
public function detail()
{
$params = (new TaskTemplateValidate())->post()->goCheck('detail');
$result = TaskTemplateLogic::detail($params);
return $this->data($result);
}
}

View File

@ -0,0 +1,64 @@
<?php
namespace app\middleapi\controller;
use app\common\enum\user\AccountLogEnum;
use app\common\model\user\User;
use app\common\enum\user\UserTerminalEnum;
use think\facade\Db;
use app\common\controller\BaseLikeAdminController;
/***
* 用户控制器
* Class AccountLogController
* @package app\adminapi\controller
*/
class UserController extends BaseLikeAdminController
{
/**
* @notes 账户流水明细
* @return \think\response\Json
* @author 段誉
* @date 2023/2/24 15:25
*/
public function lists()
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['page_no','page_size', 'account', 'mobile', 'company_id']);
$where = [];
if(isset($params['company_id']) && $params['company_id'] > 0){
$where[] = ['company_id', '=', $params['company_id']];
}
if(isset($params['account']) && $params['account'] != ''){
$where[] = ['account', '=', $params['account']];
}
if(isset($params['mobile']) && $params['mobile'] != ''){
$where[] = ['mobile', 'like', '%'.$params['mobile'].'%'];
}
$pageNo = !empty($params['page_no']) ? $params['page_no'] : 1;
$pageSize = !empty($params['page_size']) ? $params['page_size'] : 20;
$field = "id,id contract,sn,nickname,sex,avatar,account,mobile,channel,create_time,admin_id,company_id,street,street as street_name,is_contract";
$lists = User::where($where)
->with(['company'])
->page($pageNo, $pageSize)
->field($field)
->order('id desc')
->select()
->toArray();
foreach ($lists as &$item) {
$item['channel'] = UserTerminalEnum::getTermInalDesc($item['channel']);
}
$count = User::where($where)->count();
$result = [
'lists' => $lists,
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('请求成功',$result);
}
}

View File

@ -0,0 +1,314 @@
<?php
namespace app\middleapi\controller;
use app\api\controller\JunziqianController;
use app\common\controller\BaseLikeAdminController;
use app\common\enum\notice\NoticeEnum;
use app\common\model\contract\VehicleContract;
use app\common\model\vehicle\VehicleRent;
use think\response\Json;
class VehicleController extends BaseLikeAdminController
{
//三轮车合同列表
public function lists(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$param = $this->request->post(['page_no','page_size','company_name','contract_no','status']);
$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'] : 20;
$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 detail(): Json
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$id = $this->request->post('id');
if(empty($id)){
$this->fail('参数错误');
}
$data = VehicleContract::where('id',$id)->findOrEmpty();
if($data->isEmpty()){
return $this->fail('未查找到数据');
}
$cars = json_decode($data['cars_info'],true);
//判断合同类型
if(!empty($data['contract_logistic_id']) && $data['type'] == 0){
$carList = curl_get(env('project.logistic_domain').'/api/getAvailableVehicles');
$data['car_list'] = $carList&&$carList['code']==1 ? $carList['data'] : [];
}
if(!empty($cars)){
foreach ($cars as $k=>$v) {
if($data['type'] == 0){
$cars[$k]['type'] = 0;
}
if($data['type'] == 1){
if(empty($v['id'])){
$cars[$k]['type'] = 1;
}else{
$rentInfo = VehicleRent::where('car_id',$v['id'])->findOrEmpty();
if($rentInfo->isEmpty()){
$cars[$k]['type'] = 0;
}else{
$cars[$k]['type'] = $rentInfo['type'];
}
}
}
if($data['type'] == 2){
$rentInfo = VehicleRent::where('car_id',$v['id'])->findOrEmpty();
if($rentInfo->isEmpty()){
$cars[$k]['type'] = 0;
}else{
$cars[$k]['type'] = $rentInfo['type'];
}
}
if($data['type'] == 3){
$rentInfo = VehicleRent::where('car_id',$v['id'])->findOrEmpty();
if($rentInfo->isEmpty()){
$cars[$k]['type'] = 2;
}else{
$cars[$k]['type'] = $rentInfo['type'];
}
}
$cars[$k]['rent_time'] = $data['update_time'];
}
}
$data['cars_info'] = $cars;
return $this->success('success',$data->toArray());
}
//上传三轮车合同
public function uploadContract(): Json
{
//获取参数
$params = $this->request->post(['id','file','cars']);
if(empty($params['id']) || empty($params['file'])){
return $this->fail('缺少必要参数');
}
//获取合同信息
$vehicle_contract = VehicleContract::where('id',$params['id'])->findOrEmpty();
if($vehicle_contract->isEmpty()){
return $this->fail('合同信息错误');
}
if($vehicle_contract['type']==0 && $vehicle_contract['contract_logistic_id'] != 0){
if(empty($params['cars'])){
return $this->fail('缺少必要参数cars');
}
$cars = json_decode($params['cars'],true);
if(empty($cars)){
return $this->fail('参数cars无效');
}
}
if($vehicle_contract['status'] != 0){
return $this->fail('合同状态错误');
}
//更新本地
try {
$data = [
'id' => $vehicle_contract['contract_logistic_id'],
'file' => $params['file'],
'status' => 1,
'update_time' => time()
];
//判断合同类型
if($vehicle_contract['type'] == 0 && $vehicle_contract['contract_logistic_id'] != 0){
$data['cars_info'] = $params['cars'];
}
if(!empty($vehicle_contract['contract_logistic_id'])){
//更新物流系统
curl_post(env('project.logistic_domain').'/api/contractUpdate',[],$data);
}
unset($data['id']);
VehicleContract::where('id', $params['id'])->update($data);
}catch (\Exception $e){
return $this->fail($e->getMessage());
}
return $this->success('上传成功', [], 1, 1);
}
//发起三轮车合同
public function initiatingContract(): Json
{
//获取参数
$params = $this->request->post(['id']);
if(empty($params['id'])){
return $this->fail('缺少必要参数');
}
//获取数据
$contract = VehicleContract::where('id',$params['id'])->findOrEmpty();
if($contract->isEmpty()){
return $this->fail('数据不存在');
}
if(!($contract['status'] == 1 || ($contract['status'] == 2 && $contract['signing_timer'] != 2))){
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 = '';
$smsTitle = '';
if($contract['type'] == 0){
$smsTitle = '《租赁合同》';
if(empty($contract['contract_logistic_id'])){
$notify_url = env('project.website_domain').'/api/index/systemCarRent';
}else{
$notify_url = env('project.website_domain').'/api/index/townCarRent';
}
}elseif($contract['type'] == 1){
$smsTitle = '《自有车辆上传合同》';
$notify_url = env('project.website_domain').'/api/index/selfCarRent';
}elseif($contract['type'] == 2){
$smsTitle = '《解约合同》';
$notify_url = env('project.website_domain').'/api/index/cancelRent';
}elseif($contract['type'] == 3){
$smsTitle = '《购买合同》';
$notify_url = env('project.website_domain').'/api/index/buyCar';
}
$signRes = app(JunziqianController::class)->VehicleRentSigning($signData, $params['id'],$notify_url);
if ($signRes->success) {
$contract->save([
'id' => $contract['id'],
'contract_no' => $signRes->data,
'status' => 2,
'signing_timer' => 0
]);
if(!empty($contract['contract_logistic_id'])){
curl_post(env('project.logistic_domain').'/api/contractUpdate',[],[
'id' => $contract['contract_logistic_id'],
'contract_no' => $signRes->data,
'status' => 2,
'signing_timer' => 0,
'update_time' => time()
]);
}
$this->sendSms($params['id'],$smsTitle);
return $this->success('合同发送成功');
} else {
return $this->fail($signRes->msg);
}
}
//重新发送三轮车合同短信
public function sendSmsAgain(): Json
{
//获取参数
$id = $this->request->post('id');
if(empty($id)){
return $this->fail('参数错误');
}
//获取数据
$contract = VehicleContract::where('id',$id)->find();
if(empty($contract)){
return $this->fail('数据错误');
}
$smsTitle = '';
if($contract['type'] == 0){
$smsTitle = '《租赁合同》';
}elseif($contract['type'] == 1){
$smsTitle = '《自有车辆上传合同》';
}elseif($contract['type'] == 2){
$smsTitle = '《解约合同》';
}elseif($contract['type'] == 3){
$smsTitle = '《购买合同》';
}
$this->sendSms($id,$smsTitle);
return $this->success('发送成功');
}
protected function sendSms($id,$title): bool
{
//获取合同数据
$contract = VehicleContract::where('id',$id)->findOrEmpty();
if (!$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

@ -0,0 +1,106 @@
<?php
namespace app\middleapi\controller;
use app\adminapi\lists\finance\WithdrawLists;
use app\common\logic\finance\WithdrawLogic;
use app\common\model\user\Withdraw;
use think\Exception;
use app\common\controller\BaseLikeAdminController;
class WithdrawController extends BaseLikeAdminController
{
public function index()
{
if(!$this->request->isPost()){
return $this->fail('请求方式错误');
}
$params = $this->request->post(['page_no','page_size', 'order_sn', 'status']);
$where = [];
if (!empty($params['order_sn'])) {
$where[] = ['order_sn', '=', $params['order_sn']];
}
if (isset($params['status']) && $params['status'] != '') {
$where[] = ['status', '=', $params['status']];
}
$pageNo = !empty($params['page_no']) ? $params['page_no'] : 1;
$pageSize = !empty($params['page_size']) ? $params['page_size'] : 20;
$lists = Withdraw::where($where)
->append(['s_date', 'e_date', 'company_name'], true)
->with('user')
->withAttr('company_name', function ($value, $data) {
$company = Company::where(['admin_id'=>$data['admin_id']])->find();
return $company['company_name']??'';
})
->withAttr('s_date', function ($value, $data) {
$withdrawedCount = Withdraw::where(['user_id'=>$data['user_id'], 'status'=>3])->count();
$company = Company::where(['admin_id'=>$data['admin_id']])->find();
if ($withdrawedCount == 0) {
$firstUserLog = UserAccountLog::where(['company_id'=>$company['id'] ?? 0])->order('id', 'asc')->find();
return $firstUserLog['create_time'] ?? '';
} else {
$withdrawedCount = Withdraw::where(['user_id'=>$data['user_id'], 'status'=>3])->order('id', 'desc')->find();
return $withdrawedCount['transfer_end_cycel'] ?? '';
}
})
->withAttr('e_date', function ($value, $data) {
return date('Y-m-d H:i:s', $data['transfer_end_cycel']);
})
->order('id', 'desc')
->page($pageNo, $pageSize)
->select()
->toArray();
$count = Withdraw::where($where)->count();
$result = [
'lists' => $lists,
'count' => $count,
'page_no' => $pageNo,
'page_size' => $pageSize
];
return $this->success('请求成功',$result);
}
public function update()
{
$id = $this->request->param('id');
$status = $this->request->param('status');
if (empty($id)) {
return $this->fail('参数id不能为空');
}
if (!in_array($status, [1, 2, 3])) {
return $this->fail('参数status错误');
}
$data = Withdraw::find($id);
if (empty($data)) {
return $this->fail('数据不存在');
}
$data->status = $status;
$data->udpate_time = time();
$data->save();
return $this->success('操作成功', [], 1, 1);
}
/**
* 提现申请审核
*/
public function audit()
{
try {
$params = $this->request->param();
if (empty($params['id'])) {
return $this->fail('参数id不能为空');
}
if (empty($params['status'])) {
return $this->fail('参数status不能为空');
}
$re = WithdrawLogic::audit($params);
if (!$re) {
return $this->fail(WithdrawLogic::getError());
}
return $this->success('操作成功', [], 1, 1);
} catch (Exception $exception) {
return $this->fail($exception->getMessage());
}
}
}

View File

@ -0,0 +1,27 @@
<?php
namespace app\middleapi\http\middleware;
use app\middleapi\service\ApiSignService;
use app\common\service\JsonService;
class AuthMiddleware
{
public function handle($request, \Closure $next)
{
//获取header参数
$appid = $request->header('appid');
$timestamp = $request->header('timestamp');
$sign = $request->header('sign');
//验证参数
if(empty($appid) || empty($timestamp) || empty($sign)){
return JsonService::fail('缺少请求头参数', [], 0);
}
//验证签名
$checkSign = ApiSignService::verifySign(['appid'=>$appid,'timestamp'=>$timestamp,'sign'=>$sign],env('app.app_secret'));
if($checkSign['code'] == 0){
return JsonService::fail($checkSign['msg'],[],0);
}
return $next($request);
}
}

View File

@ -0,0 +1,39 @@
<?php
namespace app\middleapi\service;
class ApiSignService
{
//创建sign
public static function makeSign($data,$appSecret): string
{
ksort($data);
$string = "";
foreach ($data as $k => $v) {
if ($k == "sign" || is_array($v)) {
continue;
}
$string .= $k . "=" . $v . "&";
}
$string = trim($string, "&");
$string = $string . "&key=" . $appSecret;
$string = md5(md5($string));
return strtolower($string);
}
//检验sign是否正确
public static function verifySign($data,$appSecret): array
{
// 验证请求, 10秒钟失效
if (time() - $data['timestamp'] > 10) {
return ['code' => 0, 'msg' => '签名已失效'];
}
//比对签名
$clientSign = $data['sign'];
$serverSign = self::makeSign($data,$appSecret);
if ($clientSign == $serverSign) {
return ['code' => 1, 'msg' => '验证通过'];
} else {
return ['code' => 0, 'msg' => '签名校验失败'];
}
}
}

View File

@ -0,0 +1 @@
import o from"./error.321207d6.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.10e48c93.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.8604d989.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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

@ -0,0 +1 @@
import o from"./error.17edec42.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.b0ecf6ae.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./vue-router.9f65afb1.js";import"./index.2ce58885.js";import"./lodash.ffb5376d.js";import"./axios.f9df025a.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.4b0c77cb.js";import"./color.992612d2.js";import"./clone.d8d3ae9a.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.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),R=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{R as default};

View File

@ -0,0 +1 @@
import o from"./error.e393a83a.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.10e48c93.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.8f8edf86.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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

@ -0,0 +1 @@
import o from"./error.321207d6.js";import{d as r,o as t,c as m,U as p}from"./@vue.51d7f2d8.js";import"./element-plus.10e48c93.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.8604d989.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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

@ -0,0 +1 @@
import o from"./error.17edec42.js";import{d as r,o as t,c as m,U as p}from"./@vue.51d7f2d8.js";import"./element-plus.b0ecf6ae.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./vue-router.9f65afb1.js";import"./index.2ce58885.js";import"./lodash.ffb5376d.js";import"./axios.f9df025a.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.4b0c77cb.js";import"./color.992612d2.js";import"./clone.d8d3ae9a.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.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"},M=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{M as default};

View File

@ -0,0 +1 @@
import o from"./error.e393a83a.js";import{d as r,o as t,c as m,U as p}from"./@vue.51d7f2d8.js";import"./element-plus.10e48c93.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.8f8edf86.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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};

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

@ -0,0 +1 @@
import"./account-adjust.vue_vue_type_script_setup_true_lang.028edd9d.js";import{_ as N}from"./account-adjust.vue_vue_type_script_setup_true_lang.028edd9d.js";import"./element-plus.10e48c93.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.49a85b68.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./index.8604d989.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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

@ -0,0 +1 @@
import"./account-adjust.vue_vue_type_script_setup_true_lang.f2844ca8.js";import{_ as N}from"./account-adjust.vue_vue_type_script_setup_true_lang.f2844ca8.js";import"./element-plus.10e48c93.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.6302064d.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./index.8f8edf86.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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

@ -0,0 +1 @@
import"./account-adjust.vue_vue_type_script_setup_true_lang.1dab9824.js";import{_ as L}from"./account-adjust.vue_vue_type_script_setup_true_lang.1dab9824.js";import"./element-plus.b0ecf6ae.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.fb62f914.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./index.2ce58885.js";import"./lodash.ffb5376d.js";import"./axios.f9df025a.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.4b0c77cb.js";import"./color.992612d2.js";import"./clone.d8d3ae9a.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.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

@ -0,0 +1 @@
import{C as x,G as B,H as R,B as g,D as N}from"./element-plus.10e48c93.js";import{P as q}from"./index.49a85b68.js";import{f as C}from"./index.8604d989.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

@ -0,0 +1 @@
import{C as x,G as B,H as R,B as g,D as N}from"./element-plus.b0ecf6ae.js";import{P as q}from"./index.fb62f914.js";import{f as C}from"./index.2ce58885.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

@ -0,0 +1 @@
import{C as x,G as B,H as R,B as g,D as N}from"./element-plus.10e48c93.js";import{P as q}from"./index.6302064d.js";import{f as C}from"./index.8f8edf86.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

@ -0,0 +1 @@
import"./add-nav.vue_vue_type_script_setup_true_lang.cf54377c.js";import{_ as X}from"./add-nav.vue_vue_type_script_setup_true_lang.cf54377c.js";import"./element-plus.b0ecf6ae.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.53ac98bb.js";import"./index.2ce58885.js";import"./lodash.ffb5376d.js";import"./axios.f9df025a.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.4b0c77cb.js";import"./color.992612d2.js";import"./clone.d8d3ae9a.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.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.99724087.js";import"./index.fb62f914.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.4765d64c.js";import"./index.a1470eba.js";import"./index.vue_vue_type_script_setup_true_lang.ebbecf1a.js";import"./index.4d4900fe.js";import"./index.vue_vue_type_script_setup_true_lang.00eabce0.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.884a7061.js";import"./vue.47d317a9.js";import"./sortablejs.263ac6c9.js";export{X as default};

View File

@ -0,0 +1 @@
import"./add-nav.vue_vue_type_script_setup_true_lang.935cddec.js";import{_ as Z}from"./add-nav.vue_vue_type_script_setup_true_lang.935cddec.js";import"./element-plus.10e48c93.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.bec1dd57.js";import"./index.8604d989.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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.df35a910.js";import"./index.49a85b68.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.c6551028.js";import"./index.cdbe0233.js";import"./index.vue_vue_type_script_setup_true_lang.579ca8f7.js";import"./index.f54b9769.js";import"./index.vue_vue_type_script_setup_true_lang.c7e5e9c8.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{Z as default};

View File

@ -0,0 +1 @@
import"./add-nav.vue_vue_type_script_setup_true_lang.b111f3f7.js";import{_ as Z}from"./add-nav.vue_vue_type_script_setup_true_lang.b111f3f7.js";import"./element-plus.10e48c93.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.e8342be6.js";import"./index.8f8edf86.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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.73c5c23b.js";import"./index.6302064d.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.751b2610.js";import"./index.335a5d44.js";import"./index.vue_vue_type_script_setup_true_lang.579ca8f7.js";import"./index.c945c88b.js";import"./index.vue_vue_type_script_setup_true_lang.c7e5e9c8.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{Z as default};

View File

@ -0,0 +1 @@
import{B,w as D}from"./element-plus.10e48c93.js";import{_ as F}from"./index.bec1dd57.js";import{_ as A}from"./picker.df35a910.js";import{_ as y}from"./picker.c6551028.js";import{f as p,b as E}from"./index.8604d989.js";import{D as U}from"./vuedraggable.0cb40d3a.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

@ -0,0 +1 @@
import{B,w as D}from"./element-plus.10e48c93.js";import{_ as F}from"./index.e8342be6.js";import{_ as A}from"./picker.73c5c23b.js";import{_ as y}from"./picker.751b2610.js";import{f as p,b as E}from"./index.8f8edf86.js";import{D as U}from"./vuedraggable.0cb40d3a.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

@ -0,0 +1 @@
import{B,w as D}from"./element-plus.b0ecf6ae.js";import{_ as F}from"./index.53ac98bb.js";import{_ as A}from"./picker.99724087.js";import{_ as y}from"./picker.4765d64c.js";import{f as p,b as E}from"./index.2ce58885.js";import{D as U}from"./vuedraggable.884a7061.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

@ -0,0 +1 @@
import{r as n}from"./index.8f8edf86.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

@ -0,0 +1 @@
import{r as n}from"./index.8604d989.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

@ -0,0 +1 @@
import{r as n}from"./index.2ce58885.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

@ -0,0 +1 @@
import{r as e}from"./index.2ce58885.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{r as e}from"./index.8604d989.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{r as e}from"./index.8f8edf86.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.7d1462fe.js";import{_ as xm}from"./attr-setting.vue_vue_type_script_setup_true_lang.7d1462fe.js";import"./index.a62871cd.js";import"./attr.vue_vue_type_script_setup_true_lang.3f6a5f79.js";import"./element-plus.b0ecf6ae.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.53ac98bb.js";import"./index.2ce58885.js";import"./lodash.ffb5376d.js";import"./axios.f9df025a.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.4b0c77cb.js";import"./color.992612d2.js";import"./clone.d8d3ae9a.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.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.99724087.js";import"./index.fb62f914.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.4765d64c.js";import"./index.a1470eba.js";import"./index.vue_vue_type_script_setup_true_lang.ebbecf1a.js";import"./index.4d4900fe.js";import"./index.vue_vue_type_script_setup_true_lang.00eabce0.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.884a7061.js";import"./vue.47d317a9.js";import"./sortablejs.263ac6c9.js";import"./content.vue_vue_type_script_setup_true_lang.ddbd8b1b.js";import"./decoration-img.2df32b0e.js";import"./attr.vue_vue_type_script_setup_true_lang.1476f95d.js";import"./content.0bfaaff7.js";import"./attr.vue_vue_type_script_setup_true_lang.90f915e8.js";import"./add-nav.vue_vue_type_script_setup_true_lang.cf54377c.js";import"./content.6d9031d5.js";import"./attr.vue_vue_type_script_setup_true_lang.80baeb6c.js";import"./content.vue_vue_type_script_setup_true_lang.8e3db82f.js";import"./attr.vue_vue_type_script_setup_true_lang.d01577b5.js";import"./content.4fb6f7d9.js";import"./decoration.a98d95b0.js";import"./attr.vue_vue_type_script_setup_true_lang.0fc534ba.js";import"./content.58f65cfc.js";import"./attr.vue_vue_type_script_setup_true_lang.b414204a.js";import"./content.vue_vue_type_script_setup_true_lang.0c935798.js";import"./attr.vue_vue_type_script_setup_true_lang.00e826d0.js";import"./content.e4aee044.js";export{xm as default};

View File

@ -0,0 +1 @@
import"./attr-setting.vue_vue_type_script_setup_true_lang.51c8e33a.js";import{_ as gm}from"./attr-setting.vue_vue_type_script_setup_true_lang.51c8e33a.js";import"./index.97cc583e.js";import"./attr.vue_vue_type_script_setup_true_lang.2c18954a.js";import"./element-plus.10e48c93.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.bec1dd57.js";import"./index.8604d989.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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.df35a910.js";import"./index.49a85b68.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.c6551028.js";import"./index.cdbe0233.js";import"./index.vue_vue_type_script_setup_true_lang.579ca8f7.js";import"./index.f54b9769.js";import"./index.vue_vue_type_script_setup_true_lang.c7e5e9c8.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";import"./content.vue_vue_type_script_setup_true_lang.119e534f.js";import"./decoration-img.75b2fa47.js";import"./attr.vue_vue_type_script_setup_true_lang.82447b1b.js";import"./content.898a7c02.js";import"./attr.vue_vue_type_script_setup_true_lang.cc6e622e.js";import"./add-nav.vue_vue_type_script_setup_true_lang.935cddec.js";import"./content.383660d4.js";import"./attr.vue_vue_type_script_setup_true_lang.04d8c679.js";import"./content.vue_vue_type_script_setup_true_lang.96dfcde9.js";import"./attr.vue_vue_type_script_setup_true_lang.d01577b5.js";import"./content.662fcb40.js";import"./decoration.74ede70c.js";import"./attr.vue_vue_type_script_setup_true_lang.0fc534ba.js";import"./content.2d66a30f.js";import"./attr.vue_vue_type_script_setup_true_lang.ae80f688.js";import"./content.vue_vue_type_script_setup_true_lang.02e538d9.js";import"./attr.vue_vue_type_script_setup_true_lang.00e826d0.js";import"./content.d49d77ae.js";export{gm as default};

View File

@ -0,0 +1 @@
import"./attr-setting.vue_vue_type_script_setup_true_lang.d21a3902.js";import{_ as gm}from"./attr-setting.vue_vue_type_script_setup_true_lang.d21a3902.js";import"./index.99dbbbc2.js";import"./attr.vue_vue_type_script_setup_true_lang.83355bf5.js";import"./element-plus.10e48c93.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.e8342be6.js";import"./index.8f8edf86.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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.73c5c23b.js";import"./index.6302064d.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.751b2610.js";import"./index.335a5d44.js";import"./index.vue_vue_type_script_setup_true_lang.579ca8f7.js";import"./index.c945c88b.js";import"./index.vue_vue_type_script_setup_true_lang.c7e5e9c8.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";import"./content.vue_vue_type_script_setup_true_lang.799f40f6.js";import"./decoration-img.925f91c5.js";import"./attr.vue_vue_type_script_setup_true_lang.1b5eeef0.js";import"./content.3f829449.js";import"./attr.vue_vue_type_script_setup_true_lang.46ab5924.js";import"./add-nav.vue_vue_type_script_setup_true_lang.b111f3f7.js";import"./content.ec616fdb.js";import"./attr.vue_vue_type_script_setup_true_lang.4d6ee902.js";import"./content.vue_vue_type_script_setup_true_lang.ede6eb8c.js";import"./attr.vue_vue_type_script_setup_true_lang.d01577b5.js";import"./content.8e6b01ee.js";import"./decoration.8b704ea8.js";import"./attr.vue_vue_type_script_setup_true_lang.0fc534ba.js";import"./content.8bef1e77.js";import"./attr.vue_vue_type_script_setup_true_lang.0a11af99.js";import"./content.vue_vue_type_script_setup_true_lang.0dcbfd42.js";import"./attr.vue_vue_type_script_setup_true_lang.00e826d0.js";import"./content.c3b9ff4a.js";export{gm as default};

View File

@ -0,0 +1 @@
import{w as c}from"./index.97cc583e.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

@ -0,0 +1 @@
import{w as c}from"./index.a62871cd.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

@ -0,0 +1 @@
import{w as c}from"./index.99dbbbc2.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

@ -0,0 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.b414204a.js";import{_ as X}from"./attr.vue_vue_type_script_setup_true_lang.b414204a.js";import"./element-plus.b0ecf6ae.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.53ac98bb.js";import"./index.2ce58885.js";import"./lodash.ffb5376d.js";import"./axios.f9df025a.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.4b0c77cb.js";import"./color.992612d2.js";import"./clone.d8d3ae9a.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.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.99724087.js";import"./index.fb62f914.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.4765d64c.js";import"./index.a1470eba.js";import"./index.vue_vue_type_script_setup_true_lang.ebbecf1a.js";import"./index.4d4900fe.js";import"./index.vue_vue_type_script_setup_true_lang.00eabce0.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.884a7061.js";import"./vue.47d317a9.js";import"./sortablejs.263ac6c9.js";export{X as default};

View File

@ -0,0 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.2c18954a.js";import{_ as Z}from"./attr.vue_vue_type_script_setup_true_lang.2c18954a.js";import"./element-plus.10e48c93.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.bec1dd57.js";import"./index.8604d989.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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.df35a910.js";import"./index.49a85b68.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.c6551028.js";import"./index.cdbe0233.js";import"./index.vue_vue_type_script_setup_true_lang.579ca8f7.js";import"./index.f54b9769.js";import"./index.vue_vue_type_script_setup_true_lang.c7e5e9c8.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{Z as default};

View File

@ -0,0 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.82447b1b.js";import{_ as Y}from"./attr.vue_vue_type_script_setup_true_lang.82447b1b.js";import"./element-plus.10e48c93.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.c6551028.js";import"./index.49a85b68.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./index.8604d989.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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.cdbe0233.js";import"./index.vue_vue_type_script_setup_true_lang.579ca8f7.js";import"./index.bec1dd57.js";import"./index.f54b9769.js";import"./index.vue_vue_type_script_setup_true_lang.c7e5e9c8.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{Y as default};

View File

@ -0,0 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.0a11af99.js";import{_ as Z}from"./attr.vue_vue_type_script_setup_true_lang.0a11af99.js";import"./element-plus.10e48c93.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.e8342be6.js";import"./index.8f8edf86.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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.73c5c23b.js";import"./index.6302064d.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.751b2610.js";import"./index.335a5d44.js";import"./index.vue_vue_type_script_setup_true_lang.579ca8f7.js";import"./index.c945c88b.js";import"./index.vue_vue_type_script_setup_true_lang.c7e5e9c8.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{Z as default};

View File

@ -0,0 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.3f6a5f79.js";import{_ as X}from"./attr.vue_vue_type_script_setup_true_lang.3f6a5f79.js";import"./element-plus.b0ecf6ae.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.53ac98bb.js";import"./index.2ce58885.js";import"./lodash.ffb5376d.js";import"./axios.f9df025a.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.4b0c77cb.js";import"./color.992612d2.js";import"./clone.d8d3ae9a.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.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.99724087.js";import"./index.fb62f914.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.4765d64c.js";import"./index.a1470eba.js";import"./index.vue_vue_type_script_setup_true_lang.ebbecf1a.js";import"./index.4d4900fe.js";import"./index.vue_vue_type_script_setup_true_lang.00eabce0.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.884a7061.js";import"./vue.47d317a9.js";import"./sortablejs.263ac6c9.js";export{X as default};

View File

@ -0,0 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.1b5eeef0.js";import{_ as Y}from"./attr.vue_vue_type_script_setup_true_lang.1b5eeef0.js";import"./element-plus.10e48c93.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.751b2610.js";import"./index.6302064d.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./index.8f8edf86.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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.335a5d44.js";import"./index.vue_vue_type_script_setup_true_lang.579ca8f7.js";import"./index.e8342be6.js";import"./index.c945c88b.js";import"./index.vue_vue_type_script_setup_true_lang.c7e5e9c8.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{Y as default};

View File

@ -0,0 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.46ab5924.js";import{_ as $}from"./attr.vue_vue_type_script_setup_true_lang.46ab5924.js";import"./element-plus.10e48c93.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.b111f3f7.js";import"./index.e8342be6.js";import"./index.8f8edf86.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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.73c5c23b.js";import"./index.6302064d.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.751b2610.js";import"./index.335a5d44.js";import"./index.vue_vue_type_script_setup_true_lang.579ca8f7.js";import"./index.c945c88b.js";import"./index.vue_vue_type_script_setup_true_lang.c7e5e9c8.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{$ as default};

View File

@ -0,0 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.90f915e8.js";import{_ as Y}from"./attr.vue_vue_type_script_setup_true_lang.90f915e8.js";import"./element-plus.b0ecf6ae.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./add-nav.vue_vue_type_script_setup_true_lang.cf54377c.js";import"./index.53ac98bb.js";import"./index.2ce58885.js";import"./lodash.ffb5376d.js";import"./axios.f9df025a.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.4b0c77cb.js";import"./color.992612d2.js";import"./clone.d8d3ae9a.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.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.99724087.js";import"./index.fb62f914.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.4765d64c.js";import"./index.a1470eba.js";import"./index.vue_vue_type_script_setup_true_lang.ebbecf1a.js";import"./index.4d4900fe.js";import"./index.vue_vue_type_script_setup_true_lang.00eabce0.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.884a7061.js";import"./vue.47d317a9.js";import"./sortablejs.263ac6c9.js";export{Y as default};

View File

@ -0,0 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.cc6e622e.js";import{_ as $}from"./attr.vue_vue_type_script_setup_true_lang.cc6e622e.js";import"./element-plus.10e48c93.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.935cddec.js";import"./index.bec1dd57.js";import"./index.8604d989.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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.df35a910.js";import"./index.49a85b68.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.c6551028.js";import"./index.cdbe0233.js";import"./index.vue_vue_type_script_setup_true_lang.579ca8f7.js";import"./index.f54b9769.js";import"./index.vue_vue_type_script_setup_true_lang.c7e5e9c8.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{$ as default};

View File

@ -0,0 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.80baeb6c.js";import{_ as Y}from"./attr.vue_vue_type_script_setup_true_lang.80baeb6c.js";import"./element-plus.b0ecf6ae.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./add-nav.vue_vue_type_script_setup_true_lang.cf54377c.js";import"./index.53ac98bb.js";import"./index.2ce58885.js";import"./lodash.ffb5376d.js";import"./axios.f9df025a.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.4b0c77cb.js";import"./color.992612d2.js";import"./clone.d8d3ae9a.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.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.99724087.js";import"./index.fb62f914.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.4765d64c.js";import"./index.a1470eba.js";import"./index.vue_vue_type_script_setup_true_lang.ebbecf1a.js";import"./index.4d4900fe.js";import"./index.vue_vue_type_script_setup_true_lang.00eabce0.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.884a7061.js";import"./vue.47d317a9.js";import"./sortablejs.263ac6c9.js";export{Y as default};

View File

@ -0,0 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.ae80f688.js";import{_ as Z}from"./attr.vue_vue_type_script_setup_true_lang.ae80f688.js";import"./element-plus.10e48c93.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.bec1dd57.js";import"./index.8604d989.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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.df35a910.js";import"./index.49a85b68.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.c6551028.js";import"./index.cdbe0233.js";import"./index.vue_vue_type_script_setup_true_lang.579ca8f7.js";import"./index.f54b9769.js";import"./index.vue_vue_type_script_setup_true_lang.c7e5e9c8.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{Z as default};

View File

@ -0,0 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.4d6ee902.js";import{_ as $}from"./attr.vue_vue_type_script_setup_true_lang.4d6ee902.js";import"./element-plus.10e48c93.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.b111f3f7.js";import"./index.e8342be6.js";import"./index.8f8edf86.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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.73c5c23b.js";import"./index.6302064d.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.751b2610.js";import"./index.335a5d44.js";import"./index.vue_vue_type_script_setup_true_lang.579ca8f7.js";import"./index.c945c88b.js";import"./index.vue_vue_type_script_setup_true_lang.c7e5e9c8.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{$ as default};

View File

@ -0,0 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.04d8c679.js";import{_ as $}from"./attr.vue_vue_type_script_setup_true_lang.04d8c679.js";import"./element-plus.10e48c93.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.935cddec.js";import"./index.bec1dd57.js";import"./index.8604d989.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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.df35a910.js";import"./index.49a85b68.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.c6551028.js";import"./index.cdbe0233.js";import"./index.vue_vue_type_script_setup_true_lang.579ca8f7.js";import"./index.f54b9769.js";import"./index.vue_vue_type_script_setup_true_lang.c7e5e9c8.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{$ as default};

View File

@ -0,0 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.1476f95d.js";import{_ as W}from"./attr.vue_vue_type_script_setup_true_lang.1476f95d.js";import"./element-plus.b0ecf6ae.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./picker.4765d64c.js";import"./index.fb62f914.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./index.2ce58885.js";import"./lodash.ffb5376d.js";import"./axios.f9df025a.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.4b0c77cb.js";import"./color.992612d2.js";import"./clone.d8d3ae9a.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.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.a1470eba.js";import"./index.vue_vue_type_script_setup_true_lang.ebbecf1a.js";import"./index.53ac98bb.js";import"./index.4d4900fe.js";import"./index.vue_vue_type_script_setup_true_lang.00eabce0.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.884a7061.js";import"./vue.47d317a9.js";import"./sortablejs.263ac6c9.js";export{W as default};

View File

@ -0,0 +1 @@
import"./attr.vue_vue_type_script_setup_true_lang.83355bf5.js";import{_ as Z}from"./attr.vue_vue_type_script_setup_true_lang.83355bf5.js";import"./element-plus.10e48c93.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.c80b8015.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.e8342be6.js";import"./index.8f8edf86.js";import"./lodash.08438971.js";import"./axios.105476b3.js";import"./vue-router.9f65afb1.js";import"./pinia.56356cb7.js";import"./vue-demi.b3a9cad9.js";import"./css-color-function.7ac6f233.js";import"./color.44a05936.js";import"./clone.0afcbf90.js";import"./color-convert.755d189f.js";import"./color-name.e7a4e1d3.js";import"./color-string.e356f5de.js";import"./balanced-match.d2a36341.js";import"./debug.86067895.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.73c5c23b.js";import"./index.6302064d.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.751b2610.js";import"./index.335a5d44.js";import"./index.vue_vue_type_script_setup_true_lang.579ca8f7.js";import"./index.c945c88b.js";import"./index.vue_vue_type_script_setup_true_lang.c7e5e9c8.js";import"./usePaging.60d02673.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{Z as default};

View File

@ -0,0 +1 @@
import{G as _,H as r,C as i,D as f}from"./element-plus.10e48c93.js";import{_ as p}from"./add-nav.vue_vue_type_script_setup_true_lang.935cddec.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

@ -0,0 +1 @@
import{G as D,H as U,C as y,B as v,w,D as N}from"./element-plus.10e48c93.js";import{_ as R}from"./index.e8342be6.js";import{_ as $}from"./picker.73c5c23b.js";import{_ as j}from"./picker.751b2610.js";import{f as F}from"./index.8f8edf86.js";import{D as G}from"./vuedraggable.0cb40d3a.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

@ -0,0 +1 @@
import{B as c,C as i,D as F}from"./element-plus.b0ecf6ae.js";import{_ as p}from"./picker.4765d64c.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

@ -0,0 +1 @@
import{B as c,C as i,D as F}from"./element-plus.10e48c93.js";import{_ as p}from"./picker.751b2610.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

@ -0,0 +1 @@
import{G as D,H as U,C as v,B as w,w as N,D as R}from"./element-plus.10e48c93.js";import{_ as $}from"./index.bec1dd57.js";import{_ as j}from"./picker.df35a910.js";import{_ as G}from"./picker.c6551028.js";import{f as b}from"./index.8604d989.js";import{D as I}from"./vuedraggable.0cb40d3a.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

@ -0,0 +1 @@
import{G as D,H as U,C as v,B as w,w as N,D as R}from"./element-plus.b0ecf6ae.js";import{_ as $}from"./index.53ac98bb.js";import{_ as j}from"./picker.99724087.js";import{_ as G}from"./picker.4765d64c.js";import{f as b}from"./index.2ce58885.js";import{D as I}from"./vuedraggable.884a7061.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 _};

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