Merge branch 'preview' of https://gitea.lihaink.cn/mkm/TaskSystem
This commit is contained in:
commit
d1d2e38e84
35
.example.env
35
.example.env
@ -1 +1,34 @@
|
||||
APP_DEBUG = true
[APP]
DEFAULT_TIMEZONE = Asia/Shanghai
[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = test
USERNAME = username
PASSWORD = password
HOSTPORT = 3306
CHARSET = utf8
DEBUG = true
PREFIX = la_
[LANG]
default_lang = zh-cn
[PROJECT]
UNIQUE_IDENTIFICATION = likeadmin
# 演示环境
DEMO_ENV = false
|
||||
APP_DEBUG = true
|
||||
|
||||
[APP]
|
||||
DEFAULT_TIMEZONE = Asia/Shanghai
|
||||
|
||||
[DATABASE]
|
||||
TYPE = mysql
|
||||
HOSTNAME = 127.0.0.1
|
||||
DATABASE = test
|
||||
USERNAME = username
|
||||
PASSWORD = password
|
||||
HOSTPORT = 3306
|
||||
CHARSET = utf8
|
||||
DEBUG = true
|
||||
PREFIX = la_
|
||||
|
||||
[LANG]
|
||||
default_lang = zh-cn
|
||||
|
||||
[PROJECT]
|
||||
UNIQUE_IDENTIFICATION = likeadmin
|
||||
# 演示环境
|
||||
DEMO_ENV = false
|
||||
|
||||
[DATABASE]
|
||||
TYPE = "mysql"
|
||||
HOSTNAME = "47.109.36.146"
|
||||
DATABASE = "worker_task"
|
||||
USERNAME = "worker_task"
|
||||
PASSWORD = "p4WGD67TezzzX3Mc"
|
||||
HOSTPORT = "3306"
|
||||
CHARSET = "utf8mb4"
|
||||
DEBUG = "0"
|
||||
PREFIX = "la_"
|
108
app/adminapi/controller/CompanyComplaintFeedbackController.php
Normal file
108
app/adminapi/controller/CompanyComplaintFeedbackController.php
Normal file
@ -0,0 +1,108 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | likeadmin快速开发前后端分离管理后台(PHP版)
|
||||
// +----------------------------------------------------------------------
|
||||
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
|
||||
// | 开源版本可自由商用,可去除界面版权logo
|
||||
// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
|
||||
// | github下载:https://github.com/likeshop-github/likeadmin
|
||||
// | 访问官网:https://www.likeadmin.cn
|
||||
// | likeadmin团队 版权所有 拥有最终解释权
|
||||
// +----------------------------------------------------------------------
|
||||
// | author: likeadminTeam
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
|
||||
namespace app\adminapi\controller;
|
||||
|
||||
|
||||
use app\adminapi\controller\BaseAdminController;
|
||||
use app\adminapi\lists\CompanyComplaintFeedbackLists;
|
||||
use app\adminapi\logic\CompanyComplaintFeedbackLogic;
|
||||
use app\adminapi\validate\CompanyComplaintFeedbackValidate;
|
||||
|
||||
|
||||
/**
|
||||
* CompanyComplaintFeedback控制器
|
||||
* Class CompanyComplaintFeedbackController
|
||||
* @package app\adminapi\controller
|
||||
*/
|
||||
class CompanyComplaintFeedbackController extends BaseAdminController
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取列表
|
||||
* @return \think\response\Json
|
||||
* @author likeadmin
|
||||
* @date 2023/09/23 15:14
|
||||
*/
|
||||
public function lists()
|
||||
{
|
||||
return $this->dataLists(new CompanyComplaintFeedbackLists());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 添加
|
||||
* @return \think\response\Json
|
||||
* @author likeadmin
|
||||
* @date 2023/09/23 15:14
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
$params = (new CompanyComplaintFeedbackValidate())->post()->goCheck('add');
|
||||
$result = CompanyComplaintFeedbackLogic::add($params);
|
||||
if (true === $result) {
|
||||
return $this->success('添加成功', [], 1, 1);
|
||||
}
|
||||
return $this->fail(CompanyComplaintFeedbackLogic::getError());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 编辑
|
||||
* @return \think\response\Json
|
||||
* @author likeadmin
|
||||
* @date 2023/09/23 15:14
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$params = (new CompanyComplaintFeedbackValidate())->post()->goCheck('edit');
|
||||
$result = CompanyComplaintFeedbackLogic::edit($params);
|
||||
if (true === $result) {
|
||||
return $this->success('编辑成功', [], 1, 1);
|
||||
}
|
||||
return $this->fail(CompanyComplaintFeedbackLogic::getError());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 删除
|
||||
* @return \think\response\Json
|
||||
* @author likeadmin
|
||||
* @date 2023/09/23 15:14
|
||||
*/
|
||||
public function delete()
|
||||
{
|
||||
$params = (new CompanyComplaintFeedbackValidate())->post()->goCheck('delete');
|
||||
CompanyComplaintFeedbackLogic::delete($params);
|
||||
return $this->success('删除成功', [], 1, 1);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取详情
|
||||
* @return \think\response\Json
|
||||
* @author likeadmin
|
||||
* @date 2023/09/23 15:14
|
||||
*/
|
||||
public function detail()
|
||||
{
|
||||
$params = (new CompanyComplaintFeedbackValidate())->goCheck('detail');
|
||||
$result = CompanyComplaintFeedbackLogic::detail($params);
|
||||
return $this->data($result);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -22,11 +22,9 @@ use app\common\logic\CompanyLogic;
|
||||
use app\adminapi\validate\CompanyValidate;
|
||||
use app\api\controller\JunziqianController;
|
||||
use app\common\logic\RedisLogic;
|
||||
use app\common\model\Approve;
|
||||
use app\common\model\auth\Admin;
|
||||
use app\common\model\Company;
|
||||
use app\common\model\contract\ShopContract;
|
||||
use app\common\model\ShopMerchant;
|
||||
use think\cache\driver\Redis;
|
||||
use think\Exception;
|
||||
use think\facade\Db;
|
||||
use app\common\logic\contract\ContractLogic;
|
||||
@ -363,27 +361,35 @@ class CompanyController extends BaseAdminController
|
||||
{
|
||||
try {
|
||||
$params = $this->request->param();
|
||||
Log::info(['商户入驻请求', $params]);
|
||||
if (empty($params['company_name'])) {
|
||||
throw new Exception('商户名称不能为空');
|
||||
}
|
||||
if (empty($params['organization_code'])) {
|
||||
throw new Exception('社会统一信用代码不能为空');
|
||||
}
|
||||
if (empty($params['master_name'])) {
|
||||
throw new Exception('商户法人名称不能为空');
|
||||
}
|
||||
$master_email=Db::name('company_form')->where('organization_code',$params['organization_code'])->value('master_email');
|
||||
$isQueryStatus = false; // 需要进一步查询是否已做过企业认证
|
||||
// $master_email为空表示没有做过认证
|
||||
if($master_email){
|
||||
$isQueryStatus = true;
|
||||
}else{
|
||||
$master_email=substr(md5(uniqid()),rand(0, 22),10)."@lihai.com";
|
||||
Log::info(['商户入驻申请-请求参数', $params]);
|
||||
// if (empty($params['company_name'])) {
|
||||
// throw new Exception('商户名称不能为空');
|
||||
// }
|
||||
// if (empty($params['organization_code'])) {
|
||||
// throw new Exception('社会统一信用代码不能为空');
|
||||
// }
|
||||
// if (empty($params['master_name'])) {
|
||||
// throw new Exception('商户法人名称不能为空');
|
||||
// }
|
||||
// $master_email=Db::name('company_form')->where('organization_code',$params['organization_code'])->value('master_email');
|
||||
//
|
||||
// $isQueryStatus = false; // 需要进一步查询是否已做过企业认证
|
||||
// // $master_email为空表示没有做过认证
|
||||
// if($master_email){
|
||||
// $isQueryStatus = true;
|
||||
// }else{
|
||||
// $master_email=substr(md5(uniqid()),rand(0, 22),10)."@lihai.com";
|
||||
// }
|
||||
|
||||
// 根据street码查询所属镇管理公司
|
||||
$company = Company::where(['street' => $params['street'], 'company_type' => 41])->find();
|
||||
if(empty($company)) {
|
||||
throw new Exception('当前区域无镇管理公司');
|
||||
}
|
||||
$data = [
|
||||
'mer_intention_id' => $params['mer_intention_id']??'', // 商城商户入驻申请id,签约完成后回调使用
|
||||
'company_name' => $params['company_name']??'',
|
||||
'mer_name' => $params['mer_name']??'', // 店铺名称
|
||||
'organization_code' => $params['organization_code']??'',
|
||||
'city' => $params['city']??'',
|
||||
'area' => $params['area']??'',
|
||||
@ -392,60 +398,75 @@ class CompanyController extends BaseAdminController
|
||||
'master_name' => $params['master_name']??'',
|
||||
'master_phone' => $params['master_phone']??'',
|
||||
'master_email' => $master_email??'',
|
||||
'face_create_status' => 1,
|
||||
'type_name' => $params['type_name'] ?? '', //店铺类型
|
||||
'category_name' => $params['category_name'] ?? '', //商户分类
|
||||
'qualification' => !empty($params['images'])?$params['images']:json_encode([])
|
||||
];
|
||||
$approveModel = new Approve();
|
||||
$shopApproveType = $params['type']; // 商户申请类型 1入驻 2开通交易
|
||||
// 插入审批流
|
||||
$approveModel->type = $shopApproveType == 1? 2: 3; // 审批类型,后台配置 1 其他任务 2商户入驻 3开通交易
|
||||
$approveModel->flow_id = 2;
|
||||
$approveModel->name = $shopApproveType == 1? '商户入驻审批': '开通交易审批';
|
||||
$approveModel->admin_id = 0; // 后台发起人id 暂时为0
|
||||
$approveModel->department_id = '0';
|
||||
$approveModel->check_admin_ids = $company['admin_id']; // 当前审批人ID 镇管理公司负责人
|
||||
$approveModel->check_status = 1; // 状态 0待审核,1审核中,2审核通过,3审核不通过,4撤销审核
|
||||
$approveModel->other_type = 6;
|
||||
$approveModel->extend = json_encode(array_merge($params, $data));
|
||||
$approveModel->create_time = time();
|
||||
$approveModel->update_time = time();
|
||||
$approveModel->save();
|
||||
|
||||
$shopMerchantModel = ShopMerchant::create($data);
|
||||
// $shopMerchantModel = ShopMerchant::create($data);
|
||||
|
||||
Log::info(['商户入驻请求-通滩镇商户', $params['street'], $isQueryStatus]);
|
||||
// 如果是通滩镇的商户,查询一下企业认证状态,通过的情况,则直接发起生成合同
|
||||
if ($params['street'] == '510502106' && $isQueryStatus) {
|
||||
$statusRe = app(JunziqianController::class)->shopMerchantStatusQuery($master_email);
|
||||
Log::info(['商户入驻请求-通滩镇商户-认证状态查询结果', $statusRe]);
|
||||
if($statusRe->success == true) {
|
||||
$statusData = json_decode(json_encode($statusRe->data), true);
|
||||
if ($statusData['status'] == 1) {
|
||||
// 生成合同
|
||||
$createContractData = [
|
||||
'id' => $shopMerchantModel->id,
|
||||
'party_a' => 1,
|
||||
'party_a_name' => '泸州市海之农科技有限公司',
|
||||
'party_b' => $shopMerchantModel->id,
|
||||
'party_b_name' => $params['company_name'],
|
||||
'contract_type' => 22,
|
||||
];
|
||||
$shopContractModel = new ShopContract();
|
||||
$shopContractModel->contract_no = time();
|
||||
$shopContractModel->create_time = time();
|
||||
$shopContractModel->check_status = 1;
|
||||
$shopContractModel->update_time = time();
|
||||
$shopContractModel->setAttrs($createContractData);
|
||||
$shopContractModel->save($createContractData);
|
||||
return $this->success('已做过企业认证,直接生成合同成功', [], 1, 1);
|
||||
}
|
||||
}
|
||||
// if ($params['street'] == '510502106' && $isQueryStatus) {
|
||||
// $statusRe = app(JunziqianController::class)->shopMerchantStatusQuery($master_email);
|
||||
// Log::info(['商户入驻请求-通滩镇商户-认证状态查询结果', $statusRe]);
|
||||
// if($statusRe->success == true) {
|
||||
// $statusData = json_decode($statusRe->data, true);
|
||||
// if ($statusData['status'] == 1) {
|
||||
// // 生成合同
|
||||
// $createContractData = [
|
||||
// 'id' => $shopMerchantModel->id,
|
||||
// 'party_a' => 1,
|
||||
// 'party_a_name' => '泸州市海之农科技有限公司',
|
||||
// 'party_b' => $shopMerchantModel->id,
|
||||
// 'party_b_name' => $params['company_name'],
|
||||
// 'contract_type' => 22,
|
||||
// ];
|
||||
// $shopContractModel = new ShopContract();
|
||||
// $shopContractModel->contract_no = time();
|
||||
// $shopContractModel->create_time = time();
|
||||
// $shopContractModel->check_status = 1;
|
||||
// $shopContractModel->update_time = time();
|
||||
// $shopContractModel->setAttrs($createContractData);
|
||||
// $shopContractModel->save($createContractData);
|
||||
// return $this->success('已做过企业认证,直接生成合同成功', [], 1, 1);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
if (!$shopMerchantModel->isEmpty()) {
|
||||
// 自动发起企业认证
|
||||
$shopMerchantCertificationData = [
|
||||
'name' => $shopMerchantModel->company_name,
|
||||
'organization_code' => $shopMerchantModel->organization_code,
|
||||
'business_license' => 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/561f8202305171526091317.png',
|
||||
'master_name' => $shopMerchantModel->master_name,
|
||||
'master_email' => $shopMerchantModel->master_email,
|
||||
'master_phone' => $shopMerchantModel->master_phone,
|
||||
'id' => $shopMerchantModel->id,
|
||||
];
|
||||
app(JunziqianController::class)->ShopMerchantCertification($shopMerchantCertificationData);
|
||||
} else {
|
||||
throw new Exception('商户创建失败');
|
||||
}
|
||||
return $this->success('商户创建成功', [], 1, 1);
|
||||
// if (!$shopMerchantModel->isEmpty()) {
|
||||
// // 自动发起企业认证
|
||||
// $shopMerchantCertificationData = [
|
||||
// 'name' => $shopMerchantModel->company_name,
|
||||
// 'organization_code' => $shopMerchantModel->organization_code,
|
||||
// 'business_license' => 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/561f8202305171526091317.png',
|
||||
// 'master_name' => $shopMerchantModel->master_name,
|
||||
// 'master_email' => $shopMerchantModel->master_email,
|
||||
// 'master_phone' => $shopMerchantModel->master_phone,
|
||||
// 'id' => $shopMerchantModel->id,
|
||||
// ];
|
||||
// app(JunziqianController::class)->ShopMerchantCertification($shopMerchantCertificationData);
|
||||
// } else {
|
||||
// throw new Exception('商户创建失败');
|
||||
// }
|
||||
return $this->success('审批创建成功', [], 1, 1);
|
||||
} catch (Exception $exception) {
|
||||
Log::error(['商户入驻请求失败', $exception->getMessage()]);
|
||||
Log::error(['商户入驻审批失败', $exception->getMessage()]);
|
||||
return $this->fail($exception->getMessage());
|
||||
}
|
||||
|
||||
|
77
app/adminapi/controller/approve/ApproveController.php
Normal file
77
app/adminapi/controller/approve/ApproveController.php
Normal file
@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
namespace app\adminapi\controller\approve;
|
||||
|
||||
use app\adminapi\controller\BaseAdminController;
|
||||
use app\adminapi\lists\approve\ApproveLists;
|
||||
use app\common\model\Approve;
|
||||
use app\common\model\task\Task;
|
||||
use app\common\model\task_scheduling_plan\TaskSchedulingPlan;
|
||||
use think\facade\Db;
|
||||
|
||||
class ApproveController extends BaseAdminController
|
||||
{
|
||||
public function lists()
|
||||
{
|
||||
return $this->dataLists(new ApproveLists());
|
||||
}
|
||||
|
||||
public function audit()
|
||||
{
|
||||
try {
|
||||
$params = $this->request->param(); // id check_status remark
|
||||
$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) {
|
||||
$this->pass($approve);
|
||||
}
|
||||
Db::commit();
|
||||
return $this->success('审核成功');
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
return $this->fail($e->getMessage());
|
||||
}
|
||||
}
|
||||
// 通过
|
||||
private function pass($approve)
|
||||
{
|
||||
$task = Task::find($approve['task_id']);
|
||||
if ($task['status'] == 2) {
|
||||
$task->status = 3;
|
||||
$task->save();
|
||||
}
|
||||
}
|
||||
|
||||
// 拒绝
|
||||
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
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
@ -20,6 +20,7 @@ use app\adminapi\controller\BaseAdminController;
|
||||
use app\adminapi\lists\task_template\TaskTemplateLists;
|
||||
use app\common\logic\task_template\TaskTemplateLogic;
|
||||
use app\adminapi\validate\task_template\TaskTemplateValidate;
|
||||
use app\common\model\Company;
|
||||
|
||||
|
||||
/**
|
||||
@ -53,8 +54,19 @@ class TaskTemplateController extends BaseAdminController
|
||||
{
|
||||
$params = (new TaskTemplateValidate())->post()->goCheck('add');
|
||||
$params['admin_id'] = $this->adminId;
|
||||
$result = TaskTemplateLogic::add($params);
|
||||
$company = Company::find($params['company_id']);
|
||||
if ($company->company_type == 41) {
|
||||
// 创建 镇管理公司 任务模板
|
||||
$result = TaskTemplateLogic::addTownTaskTemplate($params);
|
||||
} else {
|
||||
$result = TaskTemplateLogic::add($params);
|
||||
}
|
||||
|
||||
if (true === $result) {
|
||||
/**
|
||||
* 如果是公司第一次创建安排任务,则初始化公司的提现周期截止时间
|
||||
*/
|
||||
TaskTemplateLogic::initCompanyWithdrawDeadline($params['company_id']);
|
||||
return $this->success('添加成功', [], 1, 1);
|
||||
}
|
||||
return $this->fail(TaskTemplateLogic::getError());
|
||||
|
77
app/adminapi/lists/CompanyComplaintFeedbackLists.php
Normal file
77
app/adminapi/lists/CompanyComplaintFeedbackLists.php
Normal file
@ -0,0 +1,77 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | likeadmin快速开发前后端分离管理后台(PHP版)
|
||||
// +----------------------------------------------------------------------
|
||||
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
|
||||
// | 开源版本可自由商用,可去除界面版权logo
|
||||
// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
|
||||
// | github下载:https://github.com/likeshop-github/likeadmin
|
||||
// | 访问官网:https://www.likeadmin.cn
|
||||
// | likeadmin团队 版权所有 拥有最终解释权
|
||||
// +----------------------------------------------------------------------
|
||||
// | author: likeadminTeam
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\adminapi\lists;
|
||||
|
||||
|
||||
use app\adminapi\lists\BaseAdminDataLists;
|
||||
use app\common\model\CompanyComplaintFeedback;
|
||||
use app\common\lists\ListsSearchInterface;
|
||||
|
||||
|
||||
/**
|
||||
* CompanyComplaintFeedback列表
|
||||
* Class CompanyComplaintFeedbackLists
|
||||
* @package app\adminapi\lists
|
||||
*/
|
||||
class CompanyComplaintFeedbackLists extends BaseAdminDataLists implements ListsSearchInterface
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 设置搜索条件
|
||||
* @return \string[][]
|
||||
* @author likeadmin
|
||||
* @date 2023/09/23 15:14
|
||||
*/
|
||||
public function setSearch(): array
|
||||
{
|
||||
return [
|
||||
'=' => ['company_id', 'content'],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取列表
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @author likeadmin
|
||||
* @date 2023/09/23 15:14
|
||||
*/
|
||||
public function lists(): array
|
||||
{
|
||||
return CompanyComplaintFeedback::where($this->searchWhere)
|
||||
->field(['id', 'company_id', 'content'])
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['id' => 'desc'])
|
||||
->select()
|
||||
->toArray();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取数量
|
||||
* @return int
|
||||
* @author likeadmin
|
||||
* @date 2023/09/23 15:14
|
||||
*/
|
||||
public function count(): int
|
||||
{
|
||||
return CompanyComplaintFeedback::where($this->searchWhere)->count();
|
||||
}
|
||||
|
||||
}
|
57
app/adminapi/lists/approve/ApproveLists.php
Normal file
57
app/adminapi/lists/approve/ApproveLists.php
Normal file
@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace app\adminapi\lists\approve;
|
||||
|
||||
use app\adminapi\lists\BaseAdminDataLists;
|
||||
use app\common\lists\ListsSearchInterface;
|
||||
use app\common\model\Approve;
|
||||
use app\common\model\auth\Admin;
|
||||
use app\common\model\Company;
|
||||
use think\facade\Db;
|
||||
|
||||
class ApproveLists extends BaseAdminDataLists implements ListsSearchInterface
|
||||
{
|
||||
/**
|
||||
* @notes 设置搜索条件
|
||||
* @return \string[][]
|
||||
* @author likeadmin
|
||||
* @date 2023/08/31 11:08
|
||||
*/
|
||||
public function setSearch(): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
|
||||
public function queryWhere()
|
||||
{
|
||||
$where = [];
|
||||
// $where[] = ['check_admin_ids', '=', $this->adminId]; // todo 放开过滤条件,只有片区经理才能查看
|
||||
return $where;
|
||||
}
|
||||
|
||||
public function lists(): array
|
||||
{
|
||||
return Approve::where($this->searchWhere)
|
||||
->where($this->queryWhere())
|
||||
->with('task')
|
||||
->field('*')
|
||||
->append(['area_manager', 'company_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_name',function($value,$data){
|
||||
return Company::where(['admin_id' => $data['check_admin_ids']])->value('company_name');
|
||||
})
|
||||
->toArray();
|
||||
}
|
||||
|
||||
|
||||
public function count(): int
|
||||
{
|
||||
return Approve::where($this->searchWhere)->count();
|
||||
}
|
||||
}
|
@ -47,30 +47,34 @@ class WithdrawLists extends BaseAdminDataLists implements ListsSearchInterface
|
||||
public function lists(): array
|
||||
{
|
||||
$lists = Withdraw::where($this->searchWhere)
|
||||
->append(['s_date', 'e_date', 'company_name'], true)
|
||||
->with('user')
|
||||
->where($this->queryWhere())
|
||||
->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']])->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')
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->select()
|
||||
->toArray();
|
||||
// 组装审核时直接跳转到余额明细列表的 开始和结束时间
|
||||
foreach ($lists as &$item) {
|
||||
$withdrawedCount = Withdraw::where(['user_id'=>$item['user_id'], 'status'=>3])->count();
|
||||
$company = Company::where(['admin_id'=>$item['admin_id']])->find();
|
||||
$item['company_name'] = $company['company_name'];
|
||||
// 开始时间 如果用户第一次提现申请,则以该公司内用户 周期内第一条数据的生成时间为开始时间
|
||||
if ($withdrawedCount == 0) {
|
||||
|
||||
$firstUserLog = UserAccountLog::where(['company_id'=>$company['id']])->order('id', 'asc')->find();
|
||||
$item['s_date'] = $firstUserLog['create_time'];
|
||||
} else {
|
||||
// 如果用户已成功申请过提现,则以上次提现的截止日期为开始时间
|
||||
$withdrawedCount = Withdraw::where(['user_id'=>$item['user_id'], 'status'=>3])->order('id', 'desc')->find();
|
||||
$item['s_date'] = $withdrawedCount['transfer_end_cycel'];
|
||||
}
|
||||
// 结束时间
|
||||
$item['e_date'] = date('Y-m-d H:i:s', $item['transfer_end_cycel']);
|
||||
}
|
||||
unset($item);
|
||||
return $lists;
|
||||
}
|
||||
|
@ -36,8 +36,8 @@ class DictDataLists extends BaseAdminDataLists implements ListsSearchInterface
|
||||
public function setSearch(): array
|
||||
{
|
||||
return [
|
||||
'%like%' => ['name', 'type_value'],
|
||||
'=' => ['status', 'type_id']
|
||||
'%like%' => ['name'],
|
||||
'=' => ['status', 'type_id', 'type_value']
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -62,8 +62,8 @@ class TaskSchedulingPlanLists extends BaseAdminDataLists implements ListsSearchI
|
||||
}
|
||||
return TaskSchedulingPlan::where($this->searchWhere)
|
||||
->where($where)
|
||||
->with(['template'])
|
||||
->field(['id', 'create_user_id', 'template_id', 'scheduling_id', 'start_time', 'end_time', 'status'])
|
||||
->with(['template','templateInfo'])
|
||||
// ->field(['id', 'create_user_id', 'template_id', 'scheduling_id', 'start_time', 'end_time', 'status'])
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['id' => 'desc'])
|
||||
->select()
|
||||
|
106
app/adminapi/logic/CompanyComplaintFeedbackLogic.php
Normal file
106
app/adminapi/logic/CompanyComplaintFeedbackLogic.php
Normal file
@ -0,0 +1,106 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | likeadmin快速开发前后端分离管理后台(PHP版)
|
||||
// +----------------------------------------------------------------------
|
||||
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
|
||||
// | 开源版本可自由商用,可去除界面版权logo
|
||||
// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
|
||||
// | github下载:https://github.com/likeshop-github/likeadmin
|
||||
// | 访问官网:https://www.likeadmin.cn
|
||||
// | likeadmin团队 版权所有 拥有最终解释权
|
||||
// +----------------------------------------------------------------------
|
||||
// | author: likeadminTeam
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\adminapi\logic;
|
||||
|
||||
|
||||
use app\common\model\CompanyComplaintFeedback;
|
||||
use app\common\logic\BaseLogic;
|
||||
use think\facade\Db;
|
||||
|
||||
|
||||
/**
|
||||
* CompanyComplaintFeedback逻辑
|
||||
* Class CompanyComplaintFeedbackLogic
|
||||
* @package app\adminapi\logic
|
||||
*/
|
||||
class CompanyComplaintFeedbackLogic extends BaseLogic
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 添加
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author likeadmin
|
||||
* @date 2023/09/23 15:08
|
||||
*/
|
||||
public static function add(array $params): bool
|
||||
{
|
||||
Db::startTrans();
|
||||
try {
|
||||
CompanyComplaintFeedback::create([
|
||||
'content' => $params['content'],
|
||||
]);
|
||||
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 编辑
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author likeadmin
|
||||
* @date 2023/09/23 15:08
|
||||
*/
|
||||
public static function edit(array $params): bool
|
||||
{
|
||||
Db::startTrans();
|
||||
try {
|
||||
CompanyComplaintFeedback::where('id', $params['id'])->update([
|
||||
'content' => $params['content'],
|
||||
]);
|
||||
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 删除
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author likeadmin
|
||||
* @date 2023/09/23 15:08
|
||||
*/
|
||||
public static function delete(array $params): bool
|
||||
{
|
||||
return CompanyComplaintFeedback::destroy($params['id']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取详情
|
||||
* @param $params
|
||||
* @return array
|
||||
* @author likeadmin
|
||||
* @date 2023/09/23 15:08
|
||||
*/
|
||||
public static function detail($params): array
|
||||
{
|
||||
return CompanyComplaintFeedback::findOrEmpty($params['id'])->toArray();
|
||||
}
|
||||
}
|
@ -99,6 +99,36 @@ class ConfigLogic
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @notes 根据类型获取字典类型
|
||||
* @param $type
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @author 段誉
|
||||
* @date 2022/9/27 19:09
|
||||
*/
|
||||
public static function getDictTypeValueByType($type)
|
||||
{
|
||||
if (!is_string($type)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
$type = explode(',', $type);
|
||||
$lists = DictData::whereIn('type_value', $type)->select()->toArray();
|
||||
|
||||
if (empty($lists)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
$result = [];
|
||||
foreach ($lists as $dict) {
|
||||
$result[$dict['name']] = $dict;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
96
app/adminapi/validate/CompanyComplaintFeedbackValidate.php
Normal file
96
app/adminapi/validate/CompanyComplaintFeedbackValidate.php
Normal file
@ -0,0 +1,96 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | likeadmin快速开发前后端分离管理后台(PHP版)
|
||||
// +----------------------------------------------------------------------
|
||||
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
|
||||
// | 开源版本可自由商用,可去除界面版权logo
|
||||
// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
|
||||
// | github下载:https://github.com/likeshop-github/likeadmin
|
||||
// | 访问官网:https://www.likeadmin.cn
|
||||
// | likeadmin团队 版权所有 拥有最终解释权
|
||||
// +----------------------------------------------------------------------
|
||||
// | author: likeadminTeam
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\adminapi\validate;
|
||||
|
||||
|
||||
use app\common\validate\BaseValidate;
|
||||
|
||||
|
||||
/**
|
||||
* CompanyComplaintFeedback验证器
|
||||
* Class CompanyComplaintFeedbackValidate
|
||||
* @package app\adminapi\validate
|
||||
*/
|
||||
class CompanyComplaintFeedbackValidate extends BaseValidate
|
||||
{
|
||||
|
||||
/**
|
||||
* 设置校验规则
|
||||
* @var string[]
|
||||
*/
|
||||
protected $rule = [
|
||||
'id' => 'require',
|
||||
'content' => 'require',
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* 参数描述
|
||||
* @var string[]
|
||||
*/
|
||||
protected $field = [
|
||||
'id' => 'id',
|
||||
'content' => '内容',
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* @notes 添加场景
|
||||
* @return CompanyComplaintFeedbackValidate
|
||||
* @author likeadmin
|
||||
* @date 2023/09/23 15:08
|
||||
*/
|
||||
public function sceneAdd()
|
||||
{
|
||||
return $this->only(['content']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 编辑场景
|
||||
* @return CompanyComplaintFeedbackValidate
|
||||
* @author likeadmin
|
||||
* @date 2023/09/23 15:08
|
||||
*/
|
||||
public function sceneEdit()
|
||||
{
|
||||
return $this->only(['id','content']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 删除场景
|
||||
* @return CompanyComplaintFeedbackValidate
|
||||
* @author likeadmin
|
||||
* @date 2023/09/23 15:08
|
||||
*/
|
||||
public function sceneDelete()
|
||||
{
|
||||
return $this->only(['id']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 详情场景
|
||||
* @return CompanyComplaintFeedbackValidate
|
||||
* @author likeadmin
|
||||
* @date 2023/09/23 15:08
|
||||
*/
|
||||
public function sceneDetail()
|
||||
{
|
||||
return $this->only(['id']);
|
||||
}
|
||||
|
||||
}
|
51
app/api/controller/ApproveController.php
Normal file
51
app/api/controller/ApproveController.php
Normal file
@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\controller;
|
||||
|
||||
use app\api\lists\approve\ApproveLists;
|
||||
use app\common\logic\approve\ApproveLogic;
|
||||
use app\common\model\Approve;
|
||||
use Symfony\Component\HttpClient\HttpClient;
|
||||
use think\Exception;
|
||||
use think\facade\Db;
|
||||
|
||||
class ApproveController extends BaseApiController
|
||||
{
|
||||
public function lists()
|
||||
{
|
||||
return $this->dataLists(new ApproveLists());
|
||||
}
|
||||
|
||||
public function approveType()
|
||||
{
|
||||
$list = Db::name('flow_type')->where(['status' => 1])->field(['id, title'])->select()->toArray();
|
||||
return $this->success('成功', $list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 前台通用审批接口 审批后的业务逻辑,需要具体拆解
|
||||
*/
|
||||
public function audit()
|
||||
{
|
||||
try {
|
||||
$params = $this->request->param(); // id check_status remark
|
||||
$approve = Approve::find($params['id']);
|
||||
if (!$approve) {
|
||||
throw new Exception('数据不存在');
|
||||
}
|
||||
ApproveLogic::audit($approve, $params);
|
||||
return $this->success('操作成功');
|
||||
} catch (Exception $exception) {
|
||||
return $this->fail(ApproveLogic::getError() ?? $exception->getMessage());
|
||||
}
|
||||
}
|
||||
public function detail()
|
||||
{
|
||||
$param = $this->request->param();
|
||||
$detail = ApproveLogic::detail($param['id']);
|
||||
if (!$detail) {
|
||||
$this->fail('数据不存在');
|
||||
}
|
||||
return $this->success('成功', $detail->toArray());
|
||||
}
|
||||
}
|
@ -23,7 +23,7 @@ use app\common\model\contract\ShopContract;
|
||||
|
||||
class CeshiController extends BaseApiController
|
||||
{
|
||||
public array $notNeedLogin = ['index', 'ceshi', 'ceshi1', 'ceshi2'];
|
||||
public array $notNeedLogin = ['index', 'ceshi', 'ceshi1', 'ceshi2', 'task_ceshi'];
|
||||
|
||||
public function index()
|
||||
{ //1201
|
||||
@ -122,4 +122,58 @@ class CeshiController extends BaseApiController
|
||||
app(JunziqianController::class)->organizationReapply($shopMerchantCertificationData);
|
||||
halt(111);
|
||||
}
|
||||
|
||||
/**
|
||||
* 任务刷新
|
||||
*/
|
||||
public function ceshi(){
|
||||
$time=strtotime(date('Y-m-d'));
|
||||
// $time=strtotime(date('Y-m-d'));
|
||||
// $tiem_end=$time+86399;where('cron_time','<',$time)->
|
||||
$plan_all=TaskScheduling::where('id',8)->with('company_info')->select()->toArray();
|
||||
foreach($plan_all as $k=>$v){
|
||||
$all=TaskTemplate::where('status',1)->where('task_scheduling',$v['id'])->limit(30)->select()->toArray();
|
||||
if($all){
|
||||
$plan_all[$k]['template']=$all;
|
||||
}else{
|
||||
unset($plan_all[$k]);
|
||||
}
|
||||
}
|
||||
$company_id=[];
|
||||
foreach($plan_all as $k=>$v){
|
||||
foreach($v['template'] as $kk=>$vv){
|
||||
TaskLogic::CronAdd($vv,$v);
|
||||
}
|
||||
$company_id[]=$v['company_id'];
|
||||
}
|
||||
Company::where('id','in',$company_id)->inc('day_count')->update();
|
||||
}
|
||||
|
||||
public function task_ceshi()
|
||||
{
|
||||
$time = strtotime(date('Y-m-d'));
|
||||
// $tiem_end=$time+86399;
|
||||
$plan_all = TaskScheduling::where('cron_time', '<', $time)->where('status', 1)->where('company_type', 18)->with('company_info')->select()->toArray();
|
||||
|
||||
$plan_ids = [];
|
||||
foreach ($plan_all as $k => $v) {
|
||||
$all = TaskTemplate::where('status', 1)->where('task_scheduling', $v['id'])->limit(30)->select()->toArray();
|
||||
$plan_ids[] = $v['id'];
|
||||
if ($all) {
|
||||
$plan_all[$k]['template'] = $all;
|
||||
} else {
|
||||
unset($plan_all[$k]);
|
||||
}
|
||||
}
|
||||
$company_id = [];
|
||||
foreach ($plan_all as $k => $v) {
|
||||
foreach ($v['template'] as $kk => $vv) {
|
||||
queue(TaskAdd::class,['data'=>$vv,'data_two'=>$v]);
|
||||
}
|
||||
$company_id[] = $v['company_id'];
|
||||
}
|
||||
Company::where('id', 'in', $company_id)->inc('day_count')->update();
|
||||
TaskScheduling::where('id', 'in', $plan_ids)->update(['cron_time' => time()]);
|
||||
Log::info('定时任务下发执行成功' . date('Y-m-d H:i:s'));
|
||||
}
|
||||
}
|
||||
|
@ -58,4 +58,16 @@ class CommonController extends BaseApiController
|
||||
return $this->data($data->toArray());
|
||||
|
||||
}
|
||||
|
||||
public function dict_data_lists_by_type_value($type_value)
|
||||
{
|
||||
$data= DictData::where(['type_value' => $type_value])
|
||||
->append(['status_desc'])
|
||||
->limit(100)
|
||||
->order(['sort' => 'desc', 'id' => 'desc'])
|
||||
->select();
|
||||
|
||||
return $this->data($data->toArray());
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ class CompanyAccountLogController extends BaseApiController{
|
||||
$where=[];
|
||||
$where['company_id']=$this->userInfo['company_id'];
|
||||
$where['change_object']=CompanyAccountLog::SHAREHOLDER;
|
||||
$where['change_type']=CompanyAccountLog::TASK_INC_SHAREHOLDER_MONEY;
|
||||
// $where['change_type']=CompanyAccountLog::TASK_INC_SHAREHOLDER_MONEY;
|
||||
$count=CompanyAccountLog::where($where)->count();
|
||||
$lists=CompanyAccountLog::where($where)->page($page,$limit)->order('id','desc')->select();
|
||||
return $this->success('ok',['count'=>$count,'list'=>$lists]);
|
||||
|
@ -5,9 +5,12 @@ namespace app\api\controller;
|
||||
use app\common\logic\contract\ContractLogic;
|
||||
use app\common\model\auth\Admin;
|
||||
use app\common\model\Company;
|
||||
use app\common\model\company\CompanyAccountLog;
|
||||
use app\common\model\contract\Contract;
|
||||
use app\common\model\task\Task;
|
||||
use app\common\model\user\User;
|
||||
use app\common\model\user\UserAccountLog;
|
||||
use think\Exception;
|
||||
use think\facade\Db;
|
||||
use app\common\model\informationg\UserInformationg;
|
||||
use app\common\model\informationg\UserInformationgDemand;
|
||||
@ -18,6 +21,8 @@ use app\common\model\informationg\UserInformationgDemand;
|
||||
*/
|
||||
class CompanyController extends BaseApiController
|
||||
{
|
||||
public array $notNeedLogin = ['street_company'];
|
||||
|
||||
|
||||
//**签约公司*/
|
||||
public function index()
|
||||
@ -139,7 +144,14 @@ class CompanyController extends BaseApiController
|
||||
$query = User::where('id', $id);
|
||||
$user = $query->with(['company' => function ($query) {
|
||||
$query->field('id,company_name');
|
||||
}])->field('id,sex,avatar,nickname name,account,mobile phone,id_card,qualification,province,province province_name,city,city city_name,area,area area_name,street,street street_name,village,village village_name,brigade,brigade brigade_name, is_contract,company_id,is_captain')->find()->toArray();
|
||||
}])
|
||||
->field('id,sex,avatar,nickname name,account,mobile phone,id_card,qualification,province,province province_name,city,city city_name,area,area area_name,street,street street_name,village,village village_name,brigade,brigade brigade_name, is_contract,company_id,is_captain, group_id')
|
||||
->append(['is_service_manager'], true)
|
||||
->withAttr('is_service_manager', function ($value, $data) {
|
||||
return $data['group_id'] == 14 ?1 :0;
|
||||
})
|
||||
->find()
|
||||
->toArray();
|
||||
|
||||
$contract = Contract::where("type", 2)->where('party_b', $id)->append(['contract_type_name'])->find();
|
||||
$user['contract'] = $contract;
|
||||
@ -194,7 +206,7 @@ class CompanyController extends BaseApiController
|
||||
public function shareholder_info()
|
||||
{
|
||||
// $params = $this->request->param();
|
||||
$find = Company::where('id', $this->userInfo['company_id'])->field('shareholder_money,village')->find()->toArray();
|
||||
$find = Company::where('id', $this->userInfo['company_id'])->field('id,shareholder_money,village')->find()->toArray();
|
||||
$find['is_contract'] = 0;
|
||||
$find['check_status'] = 0;
|
||||
if ($find) {
|
||||
@ -220,10 +232,17 @@ class CompanyController extends BaseApiController
|
||||
} else {
|
||||
$find['is_village'] = 0;
|
||||
}
|
||||
// 股金任务是否完成
|
||||
$task = Task::where(['company_id' => $find['id'], 'type' => 35, 'status' => 3])->find();
|
||||
$find['is_done_task'] = 0;
|
||||
if (!empty($task)) {
|
||||
$find['is_done_task'] = 1;
|
||||
}
|
||||
} else {
|
||||
$find['contract_url'] = '';
|
||||
$find['contract_time'] = '';
|
||||
$find['is_village'] = 0;
|
||||
$find['is_done_task'] = 0;
|
||||
}
|
||||
return $this->success('ok', $find);
|
||||
}
|
||||
@ -255,8 +274,90 @@ class CompanyController extends BaseApiController
|
||||
}
|
||||
return $this->fail(ContractLogic::getError());
|
||||
}
|
||||
|
||||
/**
|
||||
* 小组服务公司股金上交
|
||||
*/
|
||||
public function pay_share_capital()
|
||||
{
|
||||
// return
|
||||
try {
|
||||
// 小组服务公司
|
||||
$serviceGroupCompany = Company::where('id', $this->userInfo['company_id'])->find()->toArray();
|
||||
// 村管理公司
|
||||
$villageCompany = Company::where(['village'=>$serviceGroupCompany['village'], 'company_type' => 17])->find()->toArray();
|
||||
Db::startTrans();
|
||||
// 上交股金金额
|
||||
$amount = $serviceGroupCompany['shareholder_money'];
|
||||
|
||||
$sharecapitalChangeLogData = [
|
||||
'subordinate_company_id' => $serviceGroupCompany['id'],
|
||||
'parent_company_id' => $villageCompany['id'],
|
||||
'amount' => $amount,
|
||||
'create_time' => time(),
|
||||
'update_time' => time(),
|
||||
];
|
||||
$sharecapitalChangeLogInsertId = Db::name('company_sharecapital_change_log')->insertGetId($sharecapitalChangeLogData);
|
||||
|
||||
// 小组服务公司股金变动 + 公司股金减少记录
|
||||
$leftAmount = bcsub($serviceGroupCompany['shareholder_money'], $amount, 2);
|
||||
Company::where('id', $this->userInfo['company_id'])->save(['shareholder_money'=> $leftAmount]);
|
||||
$company_log1 = [
|
||||
'sn' => generate_sn(UserAccountLog::class, 'sn', 20),
|
||||
'company_id' => $serviceGroupCompany['id'],
|
||||
'change_object' => 2, // 变动对象 1余额 2股金
|
||||
'change_type' => CompanyAccountLog::SHAREHOLDER_DEC_DEPOSIT, //变动类型
|
||||
'action' => 2, //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($villageCompany['shareholder_money'], $amount, 2);
|
||||
Company::where('id', $villageCompany['id'])->save(['shareholder_money'=>$addAmount]);
|
||||
|
||||
// 公司账户变动记录
|
||||
$company_log2 = [
|
||||
'sn' => generate_sn(UserAccountLog::class, 'sn', 20),
|
||||
'company_id' => $villageCompany['id'],
|
||||
'change_object' => 2, // 变动对象 1余额 2股金
|
||||
'change_type' => CompanyAccountLog::TASK_INC_SHAREHOLDER_MONEY, //变动类型
|
||||
'action' => 1, //1-增加 2-减少
|
||||
'left_amount' => $addAmount, //变动后数量
|
||||
'change_amount' => $amount, //变动数量
|
||||
'extend' => json_encode(['company_sharecapital_change_log_id' => $sharecapitalChangeLogInsertId]),
|
||||
'status' => 1,
|
||||
];
|
||||
CompanyAccountLog::create($company_log2);
|
||||
Db::commit();
|
||||
return $this->success('上交成功');
|
||||
} catch (Exception $e) {
|
||||
Db::rollback();
|
||||
return $this->fail($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public function complaint_feedback()
|
||||
{
|
||||
$params = $this->request->param();
|
||||
$company = Company::where('id', $this->userInfo['company_id'])->find()->toArray();
|
||||
Db::name('company_complaint_feedback')->insertGetId(['company_id'=>$company['id'], 'content'=>$params['content'],'create_time'=>time(), 'update_time'=>time()]);
|
||||
return $this->success('成功');
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询镇管理公司
|
||||
*/
|
||||
public function street_company(){
|
||||
$street=$this->request->param('street_code');
|
||||
$company = Company::where('street', $street)->where('company_type',41)->find();
|
||||
if($company){
|
||||
return $this->success('ok',['title'=>$company['company_name'],'organization_code'=>$company['organization_code']]);
|
||||
}else{
|
||||
return $this->fail('没有镇管理公司');
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,8 @@
|
||||
namespace app\api\controller;
|
||||
use app\common\model\task_scheduling_plan\TaskSchedulingPlan;
|
||||
use app\job\TaskInformationJob;
|
||||
use app\job\TownTaskAdd;
|
||||
use app\job\TownTaskSettlementJob;
|
||||
use think\facade\Log;
|
||||
use app\common\model\Company;
|
||||
use app\common\model\task_template\TaskTemplate;
|
||||
@ -20,24 +22,36 @@ class CronController extends BaseApiController
|
||||
public array $notNeedLogin = ['settlement','task_add'];
|
||||
|
||||
/**
|
||||
* 结算
|
||||
* 小组服务公司任务结算
|
||||
*/
|
||||
public function settlement(){
|
||||
$all=TaskSchedulingPlan::where('is_pay',0)->with(['template_info','scheduling'])->select()->toArray();
|
||||
// $all=TaskSchedulingPlan::where('is_pay',0)->with(['template_info','scheduling'])->select()->toArray();
|
||||
$all = TaskSchedulingPlan::whereDay('end_time','yesterday')
|
||||
->withJoin(['scheduling'], 'left')
|
||||
->where('scheduling.company_type', 18)
|
||||
->where('is_pay',0)
|
||||
->with(['template_info'])
|
||||
->select()
|
||||
->toArray();
|
||||
foreach($all as $k=>$v){
|
||||
queue(TaskInformationJob::class,$v);
|
||||
}
|
||||
Log::info('定时任务结算执行成功'.date('Y-m-d H:i:s'));
|
||||
return $this->success('定时任务结算执行成功');
|
||||
Log::info('小组服务公司定时任务结算执行成功'.date('Y-m-d H:i:s'));
|
||||
return $this->success('小组服务公司定时任务结算执行成功');
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 小组服务公司任务下发
|
||||
*/
|
||||
public function task_add(){
|
||||
//任务下发
|
||||
// $time=strtotime(date('Y-m-d',strtotime('-1 day')));
|
||||
$time = strtotime(date('Y-m-d'));
|
||||
// $tiem_end=$time+86399;
|
||||
$plan_all = TaskScheduling::where('cron_time', '<', $time)->where('status', 1)->with('company_info')->select()->toArray();
|
||||
// $plan_all = TaskScheduling::where('cron_time', '<', $time)->where('status', 1)->with('company_info')->select()->toArray();
|
||||
$plan_all = TaskScheduling::where('cron_time', '<', $time)->where('status', 1)->where('company_type', 18)->with('company_info')->select()->toArray();
|
||||
|
||||
$plan_ids = [];
|
||||
foreach ($plan_all as $k => $v) {
|
||||
$all = TaskTemplate::where('status', 1)->where('task_scheduling', $v['id'])->limit(30)->select()->toArray();
|
||||
@ -57,7 +71,59 @@ class CronController extends BaseApiController
|
||||
}
|
||||
Company::where('id', 'in', $company_id)->inc('day_count')->update();
|
||||
TaskScheduling::where('id', 'in', $plan_ids)->update(['cron_time' => time()]);
|
||||
Log::info('定时任务下发执行成功' . date('Y-m-d H:i:s'));
|
||||
Log::info('小组服务公司定时任务下发执行成功' . date('Y-m-d H:i:s'));
|
||||
return $this->success('定时任务下发执行成功');
|
||||
}
|
||||
|
||||
/**
|
||||
* 镇管理公司任务结算
|
||||
*/
|
||||
public function town_task_settlement()
|
||||
{
|
||||
Log::info('镇管理公司定时任务结算执行-开始'.date('Y-m-d H:i:s'));
|
||||
//yesterday 昨日未结算的任务计划
|
||||
$taskSchedulingPlanList = TaskSchedulingPlan::whereDay('end_time','yesterday')
|
||||
->withJoin(['scheduling'], 'left')
|
||||
->where('scheduling.company_type', 41)
|
||||
->where('is_pay',0)
|
||||
->with(['template_info'])
|
||||
->select()
|
||||
->toArray();
|
||||
foreach($taskSchedulingPlanList as $taskSchedulingPlan){
|
||||
queue(TownTaskSettlementJob::class, $taskSchedulingPlan);
|
||||
}
|
||||
Log::info('镇管理公司定时任务结算执行-结束'.date('Y-m-d H:i:s'));
|
||||
return $this->success('镇管理公司定时任务结算执行成功');
|
||||
}
|
||||
|
||||
/**
|
||||
* 镇管理公司任务下发
|
||||
*/
|
||||
public function town_task_add()
|
||||
{
|
||||
//任务下发
|
||||
$time = strtotime(date('Y-m-d'));
|
||||
// 查询系统 所有镇管理公司 未下发 的 任务安排
|
||||
$taskSchedulingList = TaskScheduling::where('cron_time', '<', $time)->where('status', 1)->where('company_type', 41)->with('company_info')->select()->toArray();
|
||||
|
||||
$taskSchedulingIds = [];
|
||||
$companyIds = [];
|
||||
foreach ($taskSchedulingList as $k => $taskScheduling) {
|
||||
$templateList = TaskTemplate::where('status', 1)->where('task_scheduling', $taskScheduling['id'])->limit(30)->select()->toArray();
|
||||
$taskSchedulingIds[] = $taskScheduling['id'];
|
||||
$companyIds[] = $taskScheduling['company_id'];
|
||||
foreach ($templateList as $template) {
|
||||
queue(TownTaskAdd::class, $template);
|
||||
// TaskLogic::TownCronAdd($template); // 手动下发用
|
||||
}
|
||||
|
||||
if (empty($templateList)) {
|
||||
unset($taskSchedulingList[$k]);
|
||||
}
|
||||
}
|
||||
Company::where('id', 'in', $companyIds)->inc('day_count')->update();
|
||||
TaskScheduling::where('id', 'in', $taskSchedulingIds)->update(['cron_time' => time()]);
|
||||
Log::info('镇管理公司定时任务下发执行成功' . date('Y-m-d H:i:s'));
|
||||
return $this->success('镇管理公司定时任务下发执行成功');
|
||||
}
|
||||
}
|
@ -208,6 +208,7 @@ class RemoteController extends BaseApiController
|
||||
/**
|
||||
*
|
||||
* 计算两点之间的距离
|
||||
* 返回米
|
||||
*/
|
||||
function calculateDistance($longitude1, $latitude1, $longitude2, $latitude2)
|
||||
{
|
||||
@ -220,7 +221,6 @@ class RemoteController extends BaseApiController
|
||||
cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) *
|
||||
sin($dLon / 2) * sin($dLon / 2);
|
||||
$c = 2 * asin(sqrt($a));
|
||||
|
||||
return $earthRadius * $c * 100;
|
||||
return round($earthRadius * $c*1000) ;
|
||||
}
|
||||
}
|
||||
|
@ -3,13 +3,19 @@
|
||||
namespace app\api\controller;
|
||||
|
||||
use app\common\logic\task\TaskLogic;
|
||||
use app\common\model\Approve;
|
||||
use app\common\model\Company;
|
||||
use app\common\model\company\CompanyProperty;
|
||||
use app\common\model\contract\Contract;
|
||||
use app\common\model\dict\DictData;
|
||||
use app\common\model\flow\Flow;
|
||||
use app\common\model\informationg\UserInformationg;
|
||||
use app\common\model\task\Task;
|
||||
use app\common\model\task_template\TaskTemplate;
|
||||
use app\common\model\user\User;
|
||||
use think\facade\Log;
|
||||
use think\Exception;
|
||||
use think\facade\Db;
|
||||
|
||||
|
||||
class TaskController extends BaseApiController
|
||||
{
|
||||
@ -50,11 +56,13 @@ class TaskController extends BaseApiController
|
||||
if (isset($param['status']) && $param['status'] > 0) {
|
||||
$where[] = ['status', '=', $param['status']];
|
||||
}
|
||||
$townTaskTypeList = DictData::where(['type_value' => 'town_task_type', 'status' => 1])->column('value', 'id');
|
||||
$res = Task::where($where)
|
||||
->field(['id', 'title', 'money', 'template_id', 'director_uid', 'company_id', 'start_time', 'end_time', 'director_uid', 'type', 'status', 'content', 'extend'])
|
||||
->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(); // 可能要判断预存金是否满足
|
||||
@ -74,7 +82,68 @@ class TaskController extends BaseApiController
|
||||
$res[$k]['extend']['transaction'] = '';
|
||||
}
|
||||
}
|
||||
if (isset($townTaskTypeList[$item['type']])) {
|
||||
if ($townTaskTypeList[$item['type']] == 'town_task_type_1') {
|
||||
// 协助总负责人开展工作任务
|
||||
$groupServiceCompanyCount = 0; // 已安排任务的小组服务公司总数
|
||||
$notDoneTaskGroupServiceCompanyCount = 0; // 未完成每日任务的小组服务公司总数
|
||||
|
||||
$townCompany = Company::where(['id' => $item['company_id']])->find();
|
||||
$groupServiceCompanyList = Company::where(['street' => $townCompany['street'], 'company_type' => 18])->select()->toArray();
|
||||
foreach ($groupServiceCompanyList as $groupServiceCompany) {
|
||||
// 小组服务公司是否有对应的每日任务安排
|
||||
$templateList = TaskTemplate::where(['company_id' => $groupServiceCompany['id']])->whereIn('type', [31, 32, 33])->select()->toArray();
|
||||
|
||||
if(count($templateList) === 3) {
|
||||
$groupServiceCompanyCount += 1;
|
||||
foreach ($templateList as $template) {
|
||||
$task = Task::where(['template_id' => $template['id'], 'status' => 3])->find();
|
||||
if (empty($task)) {
|
||||
$notDoneTaskGroupServiceCompanyCount += 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$res[$k]['extend'] = ['total' => $groupServiceCompanyCount, 'not_done_count' => $notDoneTaskGroupServiceCompanyCount];
|
||||
}
|
||||
if ($townTaskTypeList[$item['type']] == 'town_task_type_2') {
|
||||
// 拓展小组服务团队工作任务
|
||||
$contractCount = 15; // 小组服务合同总数
|
||||
$doneContractCount = 0; // 已完成小组服务合同数
|
||||
$townCompany = Company::where(['id' => $item['company_id']])->find();
|
||||
$doneContractCount = Contract::where(['party_a' => $townCompany['id'], 'status' => 1, 'contract_type' => 25])->count();
|
||||
$res[$k]['extend'] = ['total' => $contractCount, 'done_count' => $doneContractCount];
|
||||
}
|
||||
}
|
||||
|
||||
// break;
|
||||
// case 'town_task_type_2':
|
||||
// // 拓展小组服务团队工作任务
|
||||
//
|
||||
// break;
|
||||
// case 'town_task_type_3':
|
||||
// // 督促小组服务团队完成任务,协助开展工作,解决问题任务
|
||||
//
|
||||
// break;
|
||||
// case 'town_task_type_4':
|
||||
// // 督促小组服务团队学习任务
|
||||
//
|
||||
// break;
|
||||
// case 'town_task_type_5':
|
||||
// // 督促小组服务团队完成需求手机和交易任务
|
||||
//
|
||||
// break;
|
||||
// case 'town_task_type_6':
|
||||
// // 督促小组服务团队入股村联络员所成立的公司任务
|
||||
//
|
||||
// break;
|
||||
// case 'town_task_type_7':
|
||||
// // 安全工作任务
|
||||
//
|
||||
// break;
|
||||
}
|
||||
|
||||
return $this->success('ok', $res);
|
||||
}
|
||||
|
||||
@ -155,9 +224,13 @@ class TaskController extends BaseApiController
|
||||
if( $parmas['terminus']['lnglat'][0]==null || $parmas['terminus']['lnglat'][0]<=0){
|
||||
return $this->fail('定位不存在');
|
||||
}
|
||||
$res = App(RemoteController::class)->calculateDistance($task['extend']['terminus']['lnglat'][0],$task['extend']['terminus']['lnglat'][1], $parmas['terminus']['lnglat'][0], $parmas['terminus']['lnglat'][1]);
|
||||
if($res>200){
|
||||
return $this->fail('定位坐标大于200米,请重新打卡。'.$res.'米');
|
||||
}
|
||||
$res = App(RemoteController::class)->coordinate($datas, $parmas['terminus']['lnglat'][0], $parmas['terminus']['lnglat'][1]);
|
||||
if($res===false){
|
||||
return $this->fail('定位不存在|或GPS无轨迹');
|
||||
return $this->fail('GPS无轨迹');
|
||||
}
|
||||
$task['extend']['update']['terminus'] = $parmas['terminus'];
|
||||
}
|
||||
@ -165,21 +238,25 @@ class TaskController extends BaseApiController
|
||||
if( $parmas['transfer']['lnglat'][0]==null || $parmas['transfer']['lnglat'][0]<=0){
|
||||
return $this->fail('定位不存在');
|
||||
}
|
||||
$res = App(RemoteController::class)->calculateDistance($task['extend']['transfer']['lnglat'][0],$task['extend']['transfer']['lnglat'][1], $parmas['transfer']['lnglat'][0], $parmas['transfer']['lnglat'][1]);
|
||||
if($res>200){
|
||||
return $this->fail('定位坐标大于100米,请重新打卡。'.$res.'米');
|
||||
}
|
||||
$res = App(RemoteController::class)->coordinate($datas, $parmas['transfer']['lnglat'][0], $parmas['transfer']['lnglat'][1]);
|
||||
if($res===false){
|
||||
return $this->fail('定位不存在|或GPS无轨迹');
|
||||
return $this->fail('GPS无轨迹');
|
||||
}
|
||||
$task['extend']['update']['transfer'] = $parmas['transfer'];
|
||||
}
|
||||
if (isset($task['extend']['update']['terminus']) && isset($task['extend']['update']['transfer'])) {
|
||||
$data['status'] = 3;
|
||||
}
|
||||
if($res<100){
|
||||
if($res<200){
|
||||
$data['extend'] = json_encode($task['extend']);
|
||||
Task::where('id', $parmas['id'])->update($data);
|
||||
return $this->success('更新成功');
|
||||
}
|
||||
return $this->fail('定位坐标大于100米,请重新打卡');
|
||||
return $this->fail('定位坐标大于200米,请重新打卡。'.$res.'米');
|
||||
}
|
||||
|
||||
public function informationg_list()
|
||||
@ -202,4 +279,99 @@ class TaskController extends BaseApiController
|
||||
}
|
||||
return $this->success('ok', $list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 其他任务详情
|
||||
*/
|
||||
public function other_task_detail(){
|
||||
$parmas = $this->request->param();
|
||||
$task = TaskLogic::detail($parmas);
|
||||
$extend = $task['extend'];
|
||||
if ($extend['other']['is_commit'] == 1) {
|
||||
$approve = Approve::where(['task_id' =>$task['id']])->find();
|
||||
$task['approve_status'] = $approve['check_status']; //审核状态
|
||||
$task['deny_notes'] = $approve['remark']; // 拒绝原因
|
||||
}
|
||||
return $this->success('ok', $task);
|
||||
}
|
||||
|
||||
/**
|
||||
* 其他任务 -提交
|
||||
*/
|
||||
public function commit_other_task()
|
||||
{
|
||||
try {
|
||||
$parmas = $this->request->param(); //id note annex vedio_annex
|
||||
$task = TaskLogic::detail($parmas);
|
||||
if (empty($task)) {
|
||||
$this->fail('任务不存在');
|
||||
}
|
||||
$extend = ['other' => ['is_commit' => 1, 'note' => $parmas['note'], 'annex'=>$parmas['annex'], 'video_annex' => $parmas['video_annex']]];
|
||||
Db::startTrans();
|
||||
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']])->find();
|
||||
if ($approveModel->isEmpty()) {
|
||||
$approveModel->type = 1;
|
||||
$approveModel->flow_id = 1;
|
||||
$approveModel->name = $task['title'];
|
||||
$approveModel->type = 1;
|
||||
$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->create_time = time();
|
||||
$approveModel->update_time = time();
|
||||
$approveModel->save();
|
||||
} else {
|
||||
// 有则更新状态
|
||||
$approveModel->check_status = 1; // 状态 0待审核,1审核中,2审核通过,3审核不通过,4撤销审核
|
||||
$approveModel->save();
|
||||
}
|
||||
|
||||
Db::commit();
|
||||
return $this->success('ok', []);
|
||||
} catch (Exception $e) {
|
||||
Db::rollback();
|
||||
return $this->fail($e->getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 镇管理公司任务详情
|
||||
*/
|
||||
public function service_task_detail()
|
||||
{
|
||||
$param = $this->request->param();
|
||||
$task = TaskLogic::detail($param);
|
||||
return $this->success('成功', $task);
|
||||
}
|
||||
|
||||
/**
|
||||
* 镇管理公司任务-督促小组服务团队学习任务 -提交
|
||||
*/
|
||||
public function commit_town_task_type4()
|
||||
{
|
||||
try {
|
||||
$parmas = $this->request->param(); //id study_photo sign_in_table study_content
|
||||
$extend = ['town_task_type_4' => ['study_photo'=>$parmas['study_photo'], 'sign_in_table'=>$parmas['sign_in_table'], 'study_content'=> $parmas['study_content']]];
|
||||
if (count($parmas['study_photo']) >= 5 && !empty($parmas['sign_in_table']) && strlen($parmas['study_content'])>=50) {
|
||||
Task::where('id', $parmas['id'])->save(['extend' => json_encode($extend), 'status' => 3]);
|
||||
} else {
|
||||
Task::where('id', $parmas['id'])->save(['extend' => json_encode($extend)]);
|
||||
}
|
||||
return $this->success('成功', []);
|
||||
} catch (Exception $e) {
|
||||
return $this->fail($e->getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -44,6 +44,40 @@ class UploadController extends BaseApiController
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @notes 上传视频
|
||||
* @return Json
|
||||
* @author 段誉
|
||||
* @date 2021/12/29 16:27
|
||||
*/
|
||||
public function video()
|
||||
{
|
||||
try {
|
||||
$cid = $this->request->post('cid', 0);
|
||||
$result = UploadService::video($cid);
|
||||
return $this->success('上传成功', $result);
|
||||
} catch (Exception $e) {
|
||||
return $this->fail($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @notes 上传文件
|
||||
* @return Json
|
||||
* @author 段誉
|
||||
* @date 2021/12/29 16:27
|
||||
*/
|
||||
public function file()
|
||||
{
|
||||
try {
|
||||
$cid = $this->request->post('cid', 0);
|
||||
$result = UploadService::file($cid);
|
||||
return $this->success('上传成功', $result);
|
||||
} catch (Exception $e) {
|
||||
return $this->fail($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -21,10 +21,12 @@ use app\api\validate\PasswordValidate;
|
||||
use app\api\validate\SetUserInfoValidate;
|
||||
use app\api\validate\UserValidate;
|
||||
use app\common\logic\contract\ContractLogic;
|
||||
use app\common\model\Company;
|
||||
use app\common\model\contract\Contract;
|
||||
use app\common\model\dict\DictData;
|
||||
use app\common\model\user\User;
|
||||
use app\common\model\user\UserAccountLog;
|
||||
use app\common\model\user\Withdraw;
|
||||
use Common;
|
||||
use think\facade\Db;
|
||||
|
||||
@ -160,17 +162,18 @@ class UserController extends BaseApiController
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户当前可提现的周期以及可提现的金额
|
||||
* 获取用户当前可提现的截止时间以及可提现的金额
|
||||
*/
|
||||
public function getCurrCycleWithdraw()
|
||||
{
|
||||
$userInfo = User::find(['id' => $this->userId]);
|
||||
// 数据字典 提现周期 单位:天数
|
||||
$dictData = ConfigLogic::getDictByType('withdraw_cycle');
|
||||
$endCycle = strtotime(date('Y-m-d', strtotime("-{$dictData['withdraw_cycle'][0]['value']} day")));
|
||||
$company = Company::find(['id' => $userInfo['company_id']]);
|
||||
// 用户提现周期截止日期
|
||||
$endCycle = $company['withdraw_deadline'];
|
||||
$isDraw = time() >= $endCycle? 1: 0; // 当前时间大于截止时间,可提现
|
||||
// 计算公司周期内所有用户已完成的 变动类型为任务收益金额增加 动作为增加的 未提现状态 的变动金额之和
|
||||
$currTotalWithdrawMoney = UserAccountLog::where(['company_id'=>$userInfo['company_id'], 'action'=>1, 'status'=>1, 'is_withdraw'=>0, 'change_type'=>202])->where('create_time','<', $endCycle)->sum('change_amount');
|
||||
return $this->success('成功', ['end_cycle'=>$endCycle, 'user_currrent_total_withdraw_money'=>$currTotalWithdrawMoney], 1, 1);
|
||||
$currTotalWithdrawMoney = UserAccountLog::where(['company_id'=>$userInfo['company_id'], 'action'=>1, 'status'=>1, 'is_withdraw'=>0, 'change_type'=>202])->where('create_time', '<', $endCycle)->sum('change_amount');
|
||||
return $this->success('成功', ['is_draw' => $isDraw,'end_cycle'=>$endCycle, 'user_currrent_total_withdraw_money'=>$currTotalWithdrawMoney], 1, 1);
|
||||
}
|
||||
public function withdraw()
|
||||
{
|
||||
|
@ -576,7 +576,7 @@ class VehicleController extends BaseApiController
|
||||
if($company['company_type'] != 16){
|
||||
return $this->fail('非镇街公司不能访问');
|
||||
}
|
||||
$data = VehicleContract::field('id,contract_no,contract_url,status,create_time,update_time')->where('contract_logistic_id','<>',0)->where('company_b_id',$company['id'])->select();
|
||||
$data = VehicleContract::field('id,contract_no,contract_url,status,create_time,update_time')->where('contract_logistic_id',0)->where('company_b_id',$company['id'])->select();
|
||||
return $this->success('请求成功',$data->toArray());
|
||||
}
|
||||
|
||||
|
62
app/api/lists/approve/ApproveLists.php
Normal file
62
app/api/lists/approve/ApproveLists.php
Normal file
@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\lists\approve;
|
||||
|
||||
use app\api\lists\BaseApiDataLists;
|
||||
use app\common\lists\ListsSearchInterface;
|
||||
use app\common\model\Approve;
|
||||
use app\common\model\user\User;
|
||||
|
||||
class ApproveLists extends BaseApiDataLists implements ListsSearchInterface
|
||||
{
|
||||
/**
|
||||
* @notes 设置搜索条件
|
||||
* @return \string[][]
|
||||
* @author likeadmin
|
||||
* @date 2023/08/31 11:08
|
||||
*/
|
||||
public function setSearch(): array
|
||||
{
|
||||
$param = $this->request->param();
|
||||
if (isset($param['check_status']) && $param['check_status'] == 0) {
|
||||
return [
|
||||
'=' =>['type']
|
||||
];
|
||||
} else {
|
||||
return [
|
||||
'=' =>['type', 'check_status']
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function queryWhere()
|
||||
{
|
||||
$where = [];
|
||||
|
||||
// if (isset($param['type']) && $param['type'] == 2) {
|
||||
$adminId = User::where(['id' => $this->userId])->with('company')->value('admin_id');
|
||||
$where[] = ['check_admin_ids', '=', $adminId]; // 只有片区经理才能查看
|
||||
// }
|
||||
return $where;
|
||||
}
|
||||
|
||||
public function lists(): array
|
||||
{
|
||||
return Approve::where($this->searchWhere)
|
||||
->where($this->queryWhere())
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['id' => 'desc'])
|
||||
->withAttr('extend',function ($value, $data) {
|
||||
return json_decode($data['extend'], true);
|
||||
})
|
||||
->select()
|
||||
->toArray();
|
||||
}
|
||||
|
||||
|
||||
public function count(): int
|
||||
{
|
||||
return Approve::where($this->searchWhere)->count();
|
||||
}
|
||||
}
|
@ -70,6 +70,15 @@ class LoginLogic extends BaseLogic
|
||||
if ($params['is_captain']) {
|
||||
$group_id=2;
|
||||
}
|
||||
// 镇管理公司服务部长
|
||||
if ($params['is_service_manager'] == 1) {
|
||||
$user = User::where(['company_id' => $params['company_id'], 'group_id' => 14])->find();
|
||||
if (!empty($user)) {
|
||||
self::setError('公司已创建服务部长账号');
|
||||
return false;
|
||||
}
|
||||
$group_id=14;
|
||||
}
|
||||
User::create([
|
||||
'sn' => $userSn,
|
||||
'avatar' => $avatar,
|
||||
|
@ -328,6 +328,11 @@ class UserLogic extends BaseLogic
|
||||
throw new ValidateException('余额不足');
|
||||
}
|
||||
|
||||
// 发票校验
|
||||
if (empty($params['invoice'])) {
|
||||
throw new ValidateException('没有上传电子发票');
|
||||
}
|
||||
|
||||
// 保存提现记录
|
||||
$withdraw = new Withdraw();
|
||||
$withdraw->user_id = $user['id'];
|
||||
@ -335,6 +340,7 @@ class UserLogic extends BaseLogic
|
||||
$withdraw->order_sn = $withdraw->buildOrderSn();
|
||||
$withdraw->amount = $params['amount'];
|
||||
$withdraw->transfer_end_cycel = $params['transfer_end_cycel'];
|
||||
$withdraw->invoice = $params['invoice'];
|
||||
$withdraw->create_time = time();
|
||||
$withdraw->update_time = time();
|
||||
$withdraw->save();
|
||||
|
@ -115,6 +115,10 @@ class CompanyLogic extends BaseLogic
|
||||
//小组服务公司
|
||||
AdminLogic::insertRole($admin_id, [6]);
|
||||
$admin['group_id']=5;
|
||||
} elseif ($params['company_type']==41) {
|
||||
//镇管理公司 总负责人
|
||||
AdminLogic::insertRole($admin_id, [7]); //后台角色
|
||||
$admin['group_id']=15; // 前台角色
|
||||
}
|
||||
$userSn = User::createUserSn();
|
||||
$admin['admin_id']=$admin_id;
|
||||
|
65
app/common/logic/approve/ApproveLogic.php
Normal file
65
app/common/logic/approve/ApproveLogic.php
Normal file
@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\logic\approve;
|
||||
|
||||
use app\common\logic\BaseLogic;
|
||||
use app\common\model\Approve;
|
||||
use Symfony\Component\HttpClient\HttpClient;
|
||||
use think\facade\Db;
|
||||
use think\facade\Log;
|
||||
|
||||
|
||||
class ApproveLogic extends BaseLogic
|
||||
{
|
||||
public static function audit($approve, $params)
|
||||
{
|
||||
// 拒绝通过
|
||||
if ($params['check_status'] == 3) {
|
||||
if (empty($params['remark'])) {
|
||||
self::setError('请输入拒绝理由');
|
||||
}
|
||||
self::refuse($approve, $params);
|
||||
}
|
||||
// 修改任务完成状态
|
||||
if ($params['check_status'] == 2) {
|
||||
self::pass($approve);
|
||||
}
|
||||
|
||||
// 回调商城,通知审核状态
|
||||
if (in_array($approve['type'], [2, 3])) {
|
||||
$shopMerchantInfo = json_decode($approve['extend'], true);
|
||||
self::shopCallBack($approve, $shopMerchantInfo, $params);
|
||||
}
|
||||
}
|
||||
|
||||
private static function pass(Approve $approve)
|
||||
{
|
||||
$approve->check_status = 2;
|
||||
$approve->save();
|
||||
}
|
||||
|
||||
private static function refuse(Approve $approve, $params)
|
||||
{
|
||||
$approve->check_status = 3;
|
||||
$approve->remark = $params['remark'];
|
||||
$approve->save();
|
||||
}
|
||||
|
||||
private static function shopCallBack(Approve $approve, $shopMerchantInfo, $params)
|
||||
{
|
||||
$status = $params['check_status'] == 2? 1: 2;
|
||||
// 通知商城审批状态
|
||||
$requestResponse = HttpClient::create()->request('POST', env('url.shop_prefix') . '/api/merchant/syncStatus/'.$shopMerchantInfo['mer_intention_id'], [
|
||||
'body' => ['status' => $status, 'type' => $approve['type'] ==2 ? 1: 2, 'remark'=> $params['remark']??'']
|
||||
]);
|
||||
Log::info('通知商城审批状态-参数', ['status' => $status, 'type' => $approve['type']]);
|
||||
Log::info('通知商城审批状态-响应', [$requestResponse->getContent()]);
|
||||
}
|
||||
|
||||
public static function detail($id)
|
||||
{
|
||||
return Approve::where('id', $id)->withAttr('extend', function ($value, $data) {
|
||||
return json_decode($data['extend'], true);
|
||||
})->find();
|
||||
}
|
||||
}
|
@ -244,7 +244,9 @@ class ContractLogic extends BaseLogic
|
||||
|
||||
}
|
||||
|
||||
// /**发送合同 */
|
||||
/**发送合同
|
||||
* @type 1公司 2个人
|
||||
*/
|
||||
public static function Draftingcontracts($params,$type=1)
|
||||
{
|
||||
if($type==1){
|
||||
@ -252,6 +254,7 @@ class ContractLogic extends BaseLogic
|
||||
}else{
|
||||
$result = UserLogic::detail($params['id']);
|
||||
}
|
||||
$result['contract']= Contract::where('id',$params['contract_id'])->with(['party_a_info', 'contractType'])->find();
|
||||
if ($result && isset($result['contract']) && isset($result['contract']['file']) && $result['contract']['file'] != '') {
|
||||
if ($result['contract']['check_status'] == 3) {
|
||||
return self::setError('你已经生成过合同,请勿重复生成');
|
||||
|
216
app/common/logic/finance/TownShareProfit.php
Normal file
216
app/common/logic/finance/TownShareProfit.php
Normal file
@ -0,0 +1,216 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\logic\finance;
|
||||
|
||||
use app\common\enum\user\AccountLogEnum;
|
||||
use app\common\logic\AccountLogLogic;
|
||||
use app\common\model\Company;
|
||||
use app\common\model\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\UserAccountLog;
|
||||
use app\common\model\user\User;
|
||||
use think\facade\Db;
|
||||
use think\facade\Log;
|
||||
|
||||
class TownShareProfit
|
||||
{
|
||||
public function townTaskType1($taskInfo, $townCompany, $taskSchedulePlan)
|
||||
{
|
||||
try {
|
||||
Db::startTrans();
|
||||
$this->shareProfit($taskInfo, $townCompany, $taskSchedulePlan);
|
||||
// 更改结算状态
|
||||
(new TaskSchedulingPlan())->settlement($taskSchedulePlan['id']);
|
||||
// 更改任务状态
|
||||
Task::where(['id' => $taskSchedulePlan['task_id']])->update(['status' => 3]);
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
Log::error($taskSchedulePlan['template_info']['title'].'-任务结算失败:' . $e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function townTaskType2($taskInfo, $townCompany, $taskSchedulePlan, $step, $contractCount)
|
||||
{
|
||||
try {
|
||||
Db::startTrans();
|
||||
|
||||
$this->shareProfit($taskInfo, $townCompany, $taskSchedulePlan);
|
||||
|
||||
if ($step == 2 && $contractCount >= 15) {
|
||||
// 更改结算状态
|
||||
(new TaskSchedulingPlan())->settlement($taskSchedulePlan['id']);
|
||||
// 更改任务状态
|
||||
Task::where(['id' => $taskSchedulePlan['task_id']])->update(['status' => 3]);
|
||||
}
|
||||
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
Log::error($taskSchedulePlan['template_info']['title'].'-任务结算失败:' . $e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function townTaskType3($taskInfo, $townCompany, $taskSchedulePlan)
|
||||
{
|
||||
try {
|
||||
Db::startTrans();
|
||||
$this->shareProfit($taskInfo, $townCompany, $taskSchedulePlan);
|
||||
// 更改结算状态
|
||||
(new TaskSchedulingPlan())->settlement($taskSchedulePlan['id']);
|
||||
// 更改任务状态
|
||||
Task::where(['id' => $taskSchedulePlan['task_id']])->update(['status' => 3]);
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
Log::error($taskSchedulePlan['template_info']['title'].'-任务结算失败:' . $e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public function townTaskType4($taskInfo, $townCompany, $taskSchedulePlan)
|
||||
{
|
||||
try {
|
||||
Db::startTrans();
|
||||
$this->shareProfit($taskInfo, $townCompany, $taskSchedulePlan);
|
||||
// 更改结算状态
|
||||
(new TaskSchedulingPlan())->settlement($taskSchedulePlan['id']);
|
||||
// 更改任务状态
|
||||
Task::where(['id' => $taskSchedulePlan['task_id']])->update(['status' => 3]);
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
Log::error($taskSchedulePlan['template_info']['title'].'-任务结算失败:' . $e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function townTaskType5($taskInfo, $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]);
|
||||
// 更新镇交易池
|
||||
(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 townTaskType6($taskInfo, $townCompany, $taskSchedulePlan)
|
||||
{
|
||||
try {
|
||||
Db::startTrans();
|
||||
$this->shareProfit($taskInfo, $townCompany, $taskSchedulePlan);
|
||||
// 更改结算状态
|
||||
(new TaskSchedulingPlan())->settlement($taskSchedulePlan['id']);
|
||||
// 更改任务状态
|
||||
Task::where(['id' => $taskSchedulePlan['task_id']])->update(['status' => 3]);
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
Log::error($taskSchedulePlan['template_info']['title'].'-任务结算失败:' . $e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public function townTaskType7($taskInfo, $townCompany, $taskSchedulePlan)
|
||||
{
|
||||
try {
|
||||
Db::startTrans();
|
||||
$this->shareProfit($taskInfo, $townCompany, $taskSchedulePlan);
|
||||
// 更改结算状态
|
||||
(new TaskSchedulingPlan())->settlement($taskSchedulePlan['id']);
|
||||
// 更改任务状态
|
||||
Task::where(['id' => $taskSchedulePlan['task_id']])->update(['status' => 3]);
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
Log::error($taskSchedulePlan['template_info']['title'].'-任务结算失败:' . $e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 分润
|
||||
*/
|
||||
public function shareProfit($taskInfo, $company, $taskSchedulePlan)
|
||||
{
|
||||
$proportion = 0;
|
||||
//总金额除以2等于不可提现账号金额和收益
|
||||
$masterMoney = bcdiv($taskInfo['money'], 2, 2);
|
||||
|
||||
$remark = '来自任务【' . $taskSchedulePlan['template_info']['title'] . '】,';
|
||||
//服务部长收益 任务金额的50%为服务部长的收益
|
||||
$serviceManagerUser = User::where(['company_id' => $company['id'], 'group_id' => 14])->find();
|
||||
Log::info([$taskSchedulePlan['template_info']['title'].'结算-服务部长用户信息', $serviceManagerUser]);
|
||||
// 用户收益变动
|
||||
$arr = [$serviceManagerUser['id'], AccountLogEnum::UM_INC_TASK, AccountLogEnum::INC, $masterMoney, $taskSchedulePlan['sn'], $remark.'任务结算获得收益' . $masterMoney . '元', ['company_id' => $company['id'], 'proportion' => $proportion], 1];
|
||||
$this->master($arr);
|
||||
// 用户余额变动
|
||||
$arr_two = [$serviceManagerUser['id'], AccountLogEnum::UM_INC_TASKUSER, AccountLogEnum::INC, $masterMoney, $taskSchedulePlan['sn'], $remark . '获得账户余额' . $masterMoney . '元', ['company_id' => $company['id'], 'proportion' => $proportion], 1];
|
||||
$this->Account($arr_two);
|
||||
|
||||
// 公司收益
|
||||
$deposit_count = bcadd($company['deposit'], $masterMoney, 2);
|
||||
// 公司收益变动记录
|
||||
$this->AccountLog($company['id'], $deposit_count, $masterMoney, 1, CompanyAccountLog::TASK_INC_DEPOSIT);
|
||||
$company_money_count = bcadd($company['company_money'], $masterMoney, 2);
|
||||
//公司余额变动记录
|
||||
$this->AccountLog($company['id'], $company_money_count, $masterMoney, 1, CompanyAccountLog::TASK_INC_COMPANY_MONEY);
|
||||
// 变更公司收益和余额
|
||||
Company::where('id', $company['id'])->update(['deposit' => Db::raw('deposit+' . $masterMoney), 'company_money' => Db::raw('company_money+' . $masterMoney)]);
|
||||
}
|
||||
|
||||
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]);
|
||||
}
|
||||
}
|
@ -2,6 +2,7 @@
|
||||
|
||||
namespace app\common\logic\finance;
|
||||
|
||||
use app\adminapi\logic\ConfigLogic;
|
||||
use app\common\enum\user\AccountLogEnum;
|
||||
use app\common\logic\BaseLogic;
|
||||
use app\common\model\Company;
|
||||
@ -115,8 +116,17 @@ class WithdrawLogic extends BaseLogic
|
||||
// 将用户周期内的账户变动记录变更为已提现状态
|
||||
UserAccountLog::where(['user_id'=>$user->id, 'status'=>1, 'action'=>1, 'change_type'=>202, 'is_withdraw'=>0])->where('create_time','<', $endCycle)->update(['is_withdraw'=>1]);
|
||||
}
|
||||
|
||||
// 重置公司可提现截止日期 上一次截止日期 + 长期周期天数
|
||||
$dictData = ConfigLogic::getDictTypeValueByType('withdraw_cycle');
|
||||
$cycle = $dictData['withdraw_cycle_long']['value']; // 数据字典-提现周期 单位:天数
|
||||
$withdrawDeadline = $endCycle + $cycle * 24 * 60 * 60;
|
||||
$companyInfo->save(['withdraw_deadline' => $withdrawDeadline]);
|
||||
|
||||
// 更新状态,保存转账凭证
|
||||
Withdraw::where(['id'=>$withDrawInfo['id']])->update(['status'=>3, 'transfer_voucher'=>$params['transfer_voucher']]);
|
||||
|
||||
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (Exception $exception) {
|
||||
|
@ -15,6 +15,10 @@
|
||||
namespace app\common\logic\task;
|
||||
|
||||
|
||||
use app\common\logic\finance\TownShareProfit;
|
||||
use app\common\model\CompanyComplaintFeedback;
|
||||
use app\common\model\contract\Contract;
|
||||
use app\common\model\dict\DictData;
|
||||
use app\common\model\task\Task;
|
||||
use app\common\logic\BaseLogic;
|
||||
use app\common\model\Company;
|
||||
@ -22,6 +26,7 @@ use app\common\model\informationg\UserInformationg;
|
||||
use app\common\model\task_scheduling_plan\TaskSchedulingPlan;
|
||||
use app\common\model\task_template\TaskTemplate;
|
||||
use app\common\model\user\User;
|
||||
use think\Exception;
|
||||
use think\facade\Db;
|
||||
use think\facade\Log;
|
||||
|
||||
@ -77,6 +82,8 @@ class TaskLogic extends BaseLogic
|
||||
if ($v['types'] == 3) {
|
||||
$task = Task::where('template_id', $v['id'])->find();
|
||||
if ($task) {
|
||||
// 累计任务进行天数,单次任务结算时,用于判断任务是否超时
|
||||
TaskTemplate::where('id', $v['id'])->inc('day_count')->update();
|
||||
// Task::where('template_id', $v['id'])->update(['start_time' => strtotime($task['start_time']) + 86400, 'end_time' => strtotime($task['end_time']) + 86400]);
|
||||
// TaskTemplate::where('id', $v['id'])->inc('day_count')->update();
|
||||
return true;
|
||||
@ -174,6 +181,19 @@ class TaskLogic extends BaseLogic
|
||||
];
|
||||
$data['extend'] = json_encode($extend);
|
||||
}
|
||||
// 其他任务
|
||||
if ($v['type'] == 34) {
|
||||
// is_commit 是否提交 note 详情描述 annex 附件
|
||||
$extend = [
|
||||
'other'=> [
|
||||
'is_commit' => 0,
|
||||
'note' => '',
|
||||
'annex' => [],
|
||||
'video_annex' => [],
|
||||
]
|
||||
];
|
||||
$data['extend'] = json_encode($extend);
|
||||
}
|
||||
$task_id = (new Task())->insertGetId($data);
|
||||
TaskSchedulingPlan::where('id', $TaskSchedulingPlan['id'])->update(['task_id' => $task_id, 'is_execute' => 1]);
|
||||
TaskTemplate::where('id', $v['id'])->inc('day_count')->update();
|
||||
@ -188,16 +208,18 @@ class TaskLogic extends BaseLogic
|
||||
{
|
||||
$v_day_count=$v['day_count'];
|
||||
$v_day_count=$v_day_count+1;
|
||||
$stageDayOneAccumulative = $v['stage_day_one']; // 第一阶段天数
|
||||
$stageDayTwoAccumulative = bcadd($v['stage_day_one'], $v['stage_day_two']); // 第二阶段天数 第一+第二
|
||||
if ($v['types'] == 1 || $v['types'] == 3) {
|
||||
if ($v_day_count <= $v['stage_day_one']) {
|
||||
if ($v_day_count <= $stageDayOneAccumulative) {
|
||||
return $v['money'];
|
||||
} else {
|
||||
return $v['money_two'];
|
||||
}
|
||||
} elseif ($v['types'] == 2) {
|
||||
if ($v_day_count<= $v['stage_day_one']) {
|
||||
if ($v_day_count<= $stageDayOneAccumulative) {
|
||||
return $v['money'];
|
||||
} elseif ($v_day_count <= $v['stage_day_two']) {
|
||||
} elseif ($stageDayOneAccumulative < $v_day_count && $v_day_count <= $stageDayTwoAccumulative) {
|
||||
return $v['money_two'];
|
||||
} else {
|
||||
return $v['money_three'];
|
||||
@ -268,4 +290,594 @@ class TaskLogic extends BaseLogic
|
||||
}
|
||||
return $task;
|
||||
}
|
||||
|
||||
/**
|
||||
* 定时添加任务
|
||||
*/
|
||||
public static function TownCronAdd(array $taskTemplate)
|
||||
{
|
||||
try {
|
||||
Log::info(['镇管理公司定时任务下发-任务模板', $taskTemplate]);
|
||||
// 单次任务不重复下发,在结算时刷新任务时间
|
||||
if ($taskTemplate['types'] == 3) {
|
||||
$task = Task::where('template_id', $taskTemplate['id'])->find();
|
||||
if ($task) {
|
||||
// 累计任务进行天数,单次任务结算时,用于判断任务是否超时
|
||||
TaskTemplate::where('id', $taskTemplate['id'])->inc('day_count')->update();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
$time = strtotime(date('Y-m-d'));
|
||||
// 任务类型code
|
||||
$taskType = (new DictData())->getTownTaskType($taskTemplate['type']);
|
||||
$TaskSchedulingPlan_data = [
|
||||
'create_user_id' => 0,
|
||||
'company_id' => $taskTemplate['company_id'],
|
||||
'template_id' => $taskTemplate['id'],
|
||||
'scheduling_id' => $taskTemplate['task_scheduling'],
|
||||
'start_time' => $time,
|
||||
'end_time' => $time + 86399,
|
||||
'sn' => User::createUserSn(),
|
||||
'status' => 1
|
||||
];
|
||||
$TaskSchedulingPlan = TaskSchedulingPlan::create($TaskSchedulingPlan_data);
|
||||
Log::info(['镇管理公司定时任务下发-添加plan结果', $TaskSchedulingPlan]);
|
||||
|
||||
$serviceManagerUser = User::where(['company_id'=>$taskTemplate['company_id'], 'group_id'=> 14])->find();
|
||||
Log::info(['镇管理公司定时任务下发-服务部长user信息', $serviceManagerUser]);
|
||||
$arr = [
|
||||
'template_id' => $taskTemplate['id'],
|
||||
'scheduling_plan_id' => $TaskSchedulingPlan['id'],
|
||||
'company_id' => $taskTemplate['company_id'],
|
||||
'title' => $taskTemplate['title'],
|
||||
'money' => $taskTemplate['money'],
|
||||
'type' => $taskTemplate['type'],
|
||||
'content' => $taskTemplate['content'],
|
||||
'start_time' => $time,
|
||||
'end_time' => $time + 86399,
|
||||
'director_uid' => $serviceManagerUser['id'], // 默认都指派给服务部长
|
||||
'create_time' => time(),
|
||||
'update_time' => time(),
|
||||
];
|
||||
$data = $arr;
|
||||
$data['money'] = self::countTownTaskMoney($taskTemplate);
|
||||
$extend = [];
|
||||
// 督促小组服务团队学习任务 扩展信息
|
||||
if ($taskType == 'town_task_type_4') {
|
||||
$extend = ['town_task_type_4' => ['study_photo'=>[], 'sign_in_table'=>'', 'study_content'=> '']];
|
||||
}
|
||||
$data['extend'] = json_encode($extend);
|
||||
$task_id = (new Task())->insertGetId($data);
|
||||
Log::info(['镇管理公司定时任务下发-添加task结果', $task_id]);
|
||||
TaskSchedulingPlan::where('id', $TaskSchedulingPlan['id'])->update(['task_id' => $task_id, 'is_execute' => 1]);
|
||||
// 任务累计进行天数 +1
|
||||
TaskTemplate::where('id', $taskTemplate['id'])->inc('day_count')->update();
|
||||
} catch (\Exception $e) {
|
||||
Log::error('定时任务添加失败'.$e->getMessage().'。line:'.$e->getLine());
|
||||
}
|
||||
}
|
||||
|
||||
private static function countTownTaskMoney($tempalte)
|
||||
{
|
||||
$v_day_count = $tempalte['day_count'];
|
||||
$v_day_count = $v_day_count + 1;
|
||||
$stageDayOneAccumulative = $tempalte['stage_day_one']; // 第一阶段天数
|
||||
$stageDayTwoAccumulative = bcadd($tempalte['stage_day_one'], $tempalte['stage_day_two']); // 第二阶段天数 第一+第二
|
||||
$stageDayThreeAccumulative = bcadd($stageDayTwoAccumulative, $tempalte['stage_day_three']); // 第二阶段天数 第二阶段累计值+第三
|
||||
|
||||
// 单次和循环任务
|
||||
if ($tempalte['types'] == 1 || $tempalte['types'] == 3) {
|
||||
if ($v_day_count <= $stageDayOneAccumulative) {
|
||||
// 第一阶段金额
|
||||
return $tempalte['money'];
|
||||
} else if ($stageDayOneAccumulative < $v_day_count && $v_day_count<= $stageDayTwoAccumulative) {
|
||||
// 第二阶段金额
|
||||
return $tempalte['money_two'];
|
||||
} else if ( $stageDayTwoAccumulative < $v_day_count && $v_day_count <= $stageDayThreeAccumulative) {
|
||||
// 第三阶段金额
|
||||
return $tempalte['new_money_three'];
|
||||
}
|
||||
} elseif ($tempalte['types'] == 2) { // 长期任务
|
||||
if ($v_day_count<= $stageDayOneAccumulative) {
|
||||
// 第一阶段金额
|
||||
return $tempalte['money'];
|
||||
} elseif ( $stageDayOneAccumulative < $v_day_count && $v_day_count <= $stageDayTwoAccumulative) {
|
||||
// 第二阶段金额
|
||||
return $tempalte['money_two'];
|
||||
} else if ( $stageDayTwoAccumulative < $v_day_count && $v_day_count <=$stageDayThreeAccumulative) {
|
||||
// 第三阶段金额
|
||||
return $tempalte['new_money_three'];
|
||||
} else {
|
||||
// 长期金额
|
||||
return $tempalte['money_three'];
|
||||
}
|
||||
} else {
|
||||
if ($v_day_count <= $tempalte['stage_day_one']) {
|
||||
$a = $tempalte['money'];
|
||||
} else {
|
||||
$a = $tempalte['money_two'];
|
||||
}
|
||||
if ($v_day_count >= $tempalte['stage_day_two']) {
|
||||
TaskTemplate::where('id', $tempalte['id'])->update(['status' => 0]);
|
||||
}
|
||||
return $a;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 先判定任务是否已完成 再按每个任务对应的结算方式结算
|
||||
* $taskSchedulePlan 包含 task_tempalte、task_schedule、task_schedule_plan 三张表的信息
|
||||
*/
|
||||
public static function townTaskSettlement($taskSchedulePlan)
|
||||
{
|
||||
try {
|
||||
Log::info(['镇管理公司定时任务结算执行-任务计划', $taskSchedulePlan]);
|
||||
$taskTemplateInfo = $taskSchedulePlan['template_info'];
|
||||
// 任务类型用的数据字典主键id,将id和value作映射,避免测试和正式环境数据字典数据不一致时出问题
|
||||
$townTaskTypeList = DictData::where(['type_value' => 'town_task_type', 'status' => 1])->column('value', 'id');
|
||||
switch ($townTaskTypeList[$taskTemplateInfo['type']]){
|
||||
|
||||
case 'town_task_type_1':
|
||||
// 协助总负责人开展工作任务
|
||||
self::dealTownTask1($taskSchedulePlan);
|
||||
break;
|
||||
case 'town_task_type_2':
|
||||
// 拓展小组服务团队工作任务
|
||||
self::dealTownTask2($taskSchedulePlan);
|
||||
break;
|
||||
case 'town_task_type_3':
|
||||
// 督促小组服务团队完成任务,协助开展工作,解决问题任务
|
||||
self::dealTownTask3($taskSchedulePlan);
|
||||
break;
|
||||
case 'town_task_type_4':
|
||||
// 督促小组服务团队学习任务
|
||||
self::dealTownTask4($taskSchedulePlan);
|
||||
break;
|
||||
case 'town_task_type_5':
|
||||
// 督促小组服务团队完成需求收集和交易任务
|
||||
self::dealTownTask5($taskSchedulePlan);
|
||||
break;
|
||||
case 'town_task_type_6':
|
||||
// 督促小组服务团队入股村联络员所成立的公司任务
|
||||
self::dealTownTask6($taskSchedulePlan);
|
||||
break;
|
||||
case 'town_task_type_7':
|
||||
// 安全工作任务
|
||||
self::dealTownTask7($taskSchedulePlan);
|
||||
break;
|
||||
default :
|
||||
return true;
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
Log::error(['镇管理任务结算失败',$e]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 系统自动判定镇管理公司下属小组服务公司 是否100%完成每日任务:三轮车任务,档案更新任务,平台交易任务
|
||||
*/
|
||||
private static function dealTownTask1($taskSchedulePlan)
|
||||
{
|
||||
Log::info(['镇管理公司定时任务结算执行-'.$taskSchedulePlan['template_info']['title']]);
|
||||
$taskTemplateInfo = $taskSchedulePlan['template_info'];
|
||||
$taskInfo = Task::where(['id' => $taskSchedulePlan['task_id']])->find();
|
||||
$townCompany = Company::where(['id' => $taskTemplateInfo['company_id']])->find();
|
||||
$groupServiceCompanyList = Company::where(['street' => $townCompany['street'], 'company_type' => 18])->select()->toArray();
|
||||
$isDone = 1; // 任务是否完成标记
|
||||
$isTaskSchedule = 0; // 下属小组服务公司是否有每日任务安排标记
|
||||
|
||||
foreach ($groupServiceCompanyList as $groupServiceCompany) {
|
||||
// 查询小组服务公司是否有对应的每日任务安排
|
||||
$templateList = TaskTemplate::where(['company_id' => $groupServiceCompany['id']])->whereIn('type', [31, 32, 33])->select()->toArray();
|
||||
// 未做任务安排的小组服务公司不在判定范围内,跳出本次循环
|
||||
if(count($templateList) === 3) {
|
||||
$isTaskSchedule = 1;
|
||||
// 查询小组服务公司的循环任务有没有全部做完 任意有一个任务没有做完,则判定为该小组服务公司没有完成每日任务,即协助总负责人开展工作任务也认定失败
|
||||
foreach ($templateList as $template) {
|
||||
$task = Task::where(['template_id' => $template['id'], 'status' => 3])->find();
|
||||
if (empty($task)) {
|
||||
$isDone = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
// 下属小组服务公司有任务安排,也完成了任务
|
||||
if ($isDone === 1 && $isTaskSchedule === 1) {
|
||||
// 做任务结算,分润
|
||||
(new TownShareProfit())->townTaskType1($taskInfo, $townCompany, $taskSchedulePlan);
|
||||
} else {
|
||||
// 关闭任务
|
||||
(new Task())->closeTask($taskSchedulePlan['task_id']);
|
||||
Log::info('协助总负责人开展工作任务,结算失败:' . $taskTemplateInfo['title'] . '未完成。任务:' . json_encode($taskInfo));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 拓展小组服务团队工作任务 单次任务
|
||||
* 当前任务进行天数 < 第一阶段天数 只刷新任务时间
|
||||
* 当前任务进行天数 = 第一阶段天数 做第一阶段结算 如果第一阶段已完成全部任务,也要刷新任务时间,等到第二阶段结算时才结束任务
|
||||
* 当前任务进行天数 > 第一阶段天数 但未到第二阶段结算时间 继续刷新任务时间
|
||||
* 当前任务进行天数 = (第一阶段+第二阶段)天数 未完成则关闭任务 完成则结算第二阶段金额
|
||||
*/
|
||||
private static function dealTownTask2($taskSchedulePlan)
|
||||
{
|
||||
Log::info(['镇管理公司定时任务结算执行-'.$taskSchedulePlan['template_info']['title']]);
|
||||
$taskTemplateInfo = $taskSchedulePlan['template_info'];
|
||||
$townCompany = Company::where(['id' => $taskTemplateInfo['company_id']])->find();
|
||||
$day = $taskTemplateInfo['stage_day_one'] + $taskTemplateInfo['stage_day_two'];
|
||||
$task = Task::where('id', $taskSchedulePlan['task_id'])->with('director_info')->find();
|
||||
|
||||
// 当前任务进行天数 < 第一阶段天数 只刷新任务时间
|
||||
if($taskTemplateInfo['day_count'] < $taskTemplateInfo['stage_day_one']) {
|
||||
self::flushTaskTime($taskSchedulePlan);
|
||||
return true;
|
||||
}
|
||||
|
||||
// 当前任务进行天数 = 第一阶段天数 做第一阶段结算 如果第一阶段已完成全部任务,也要刷新任务时间,等到第二阶段结算时才结束任务
|
||||
if($taskTemplateInfo['day_count'] == $taskTemplateInfo['stage_day_one']) {
|
||||
// 已签约的小组服务合同个数
|
||||
$contractCount = Contract::where(['party_a' => $townCompany['id'], 'status' => 1, 'contract_type' => 25])->count();
|
||||
if ($contractCount < 9) {
|
||||
self::flushTaskTime($taskSchedulePlan);
|
||||
return false;
|
||||
}
|
||||
$totalMoney = bcmul($taskTemplateInfo['stage_day_one'], $taskTemplateInfo['money'], 2);
|
||||
$taskMoney = 0;
|
||||
switch ($contractCount) {
|
||||
case 9:
|
||||
$taskMoney = bcmul($totalMoney, 0.4, 2);
|
||||
break;
|
||||
case 10:
|
||||
$taskMoney = bcmul($totalMoney, 0.4, 2);
|
||||
break;
|
||||
case 11:
|
||||
$taskMoney = bcmul($totalMoney, 0.5, 2);
|
||||
break;
|
||||
case 12:
|
||||
$taskMoney = bcmul($totalMoney, 0.6, 2);
|
||||
break;
|
||||
case 13:
|
||||
$taskMoney = bcmul($totalMoney, 0.6, 2);
|
||||
break;
|
||||
case 14:
|
||||
$taskMoney = bcmul($totalMoney, 0.7, 2);
|
||||
break;
|
||||
case 15:
|
||||
$taskMoney = bcmul($totalMoney, 1, 2);
|
||||
break;
|
||||
}
|
||||
if ($contractCount > 15) {
|
||||
$taskMoney = bcmul($totalMoney, 1, 2);
|
||||
}
|
||||
$task['money'] = $taskMoney; // 任务金额
|
||||
(new TownShareProfit())->townTaskType2($task, $townCompany, $taskSchedulePlan, 1, $contractCount);
|
||||
}
|
||||
|
||||
// 当前任务进行天数 > 第一阶段天数 但未到第二阶段结算 继续刷新任务时间
|
||||
if($taskTemplateInfo['day_count'] > $taskTemplateInfo['stage_day_one'] && $taskTemplateInfo['day_count'] < $day){
|
||||
self::flushTaskTime($taskSchedulePlan);
|
||||
}
|
||||
|
||||
// 当前任务进行天数 = 第一+第二阶段天数 第二阶段结算
|
||||
if ($taskTemplateInfo['day_count'] == $day) {
|
||||
// 已签约的小组服务合同个数
|
||||
$contractCount = Contract::where(['party_a' => $townCompany['id'], 'status' => 1, 'contract_type' => 25])->count();
|
||||
// 第二阶段未完成
|
||||
if ($contractCount < 15) {
|
||||
// 关闭任务,并且没有奖励
|
||||
(new Task())->closeTask($taskSchedulePlan['task_id']);
|
||||
Log::info('结算失败:' . $taskTemplateInfo['title'] . '第二阶段未完成。任务:' . json_encode($task));
|
||||
return false;
|
||||
}
|
||||
|
||||
$taskMoney = bcmul($taskTemplateInfo['stage_day_two'], $taskTemplateInfo['money_two'], 2);
|
||||
$task['money'] = $taskMoney; // 任务金额
|
||||
|
||||
(new TownShareProfit())->townTaskType2($task, $townCompany, $taskSchedulePlan, 2, $contractCount);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private static function flushTaskTime($taskSchedulePlan)
|
||||
{
|
||||
$time = strtotime(date('Y-m-d')); // 今天的 00:00:00
|
||||
|
||||
TaskSchedulingPlan::where(['id' => $taskSchedulePlan['id']])->update(
|
||||
[
|
||||
'create_time' => $time+86400, //第二天的00:00:00
|
||||
'update_time' =>time(),
|
||||
'start_time'=>$time+86400, //第二天的00:00:00
|
||||
'end_time'=>$time+86400+86399 //第二天的 23:59:59
|
||||
]);
|
||||
|
||||
Task::where('id', $taskSchedulePlan['task_id'])->update(
|
||||
[
|
||||
'create_time' => $time+86400,
|
||||
'update_time' => time(),
|
||||
'start_time'=> $time+86400,
|
||||
'end_time'=> $time+86400+86399
|
||||
]);
|
||||
}
|
||||
|
||||
private static function dealTownTask3($taskSchedulePlan)
|
||||
{
|
||||
Log::info(['镇管理公司定时任务结算执行-'.$taskSchedulePlan['template_info']['title']]);
|
||||
$taskTemplateInfo = $taskSchedulePlan['template_info'];
|
||||
$townCompany = Company::where(['id' => $taskTemplateInfo['company_id']])->find();
|
||||
$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);
|
||||
$doneRate = bcdiv($doneTaskGroupServiceCompanyCount, $groupServiceCompanyCount,2);
|
||||
// <80% 未完成任务 关闭本次任务
|
||||
if (bccomp($doneRate, 0.8, 2) == -1) {
|
||||
(new Task())->closeTask($taskSchedulePlan['task_id']);
|
||||
return true;
|
||||
} else {
|
||||
// 结算 分润
|
||||
(new TownShareProfit())->townTaskType3($task, $townCompany, $taskSchedulePlan);
|
||||
}
|
||||
}
|
||||
|
||||
public static function taskType3DoneInfo($groupServiceCompanyList)
|
||||
{
|
||||
$groupServiceCompanyCount = count($groupServiceCompanyList); // 团队总数
|
||||
$doneTaskGroupServiceCompanyCount = 0; // 完成任务团队总数
|
||||
// 判定完成条件 组建成功的小组服务团队 每日完成档案更新任务和三轮车任务 的团队数量 >= 80% 小于80%则视为未完成
|
||||
foreach ($groupServiceCompanyList as $groupServiceCompany) {
|
||||
// 档案更新任务
|
||||
$taskType31 = Task::where(['company_id' => $groupServiceCompany['id'], 'type' => 31, 'status' => 3])->find();
|
||||
// 三轮车任务
|
||||
$taskType32 = Task::where(['company_id' => $groupServiceCompany['id'], 'type' => 32, 'status' => 3])->find();
|
||||
if (!empty($taskType31) && !empty($taskType32)) {
|
||||
$doneTaskGroupServiceCompanyCount++;
|
||||
}
|
||||
}
|
||||
return [$groupServiceCompanyCount, $doneTaskGroupServiceCompanyCount];
|
||||
}
|
||||
|
||||
/**
|
||||
* 督促小组服务团队学习任务 长期任务 前置操作:每天要从APP端提交资料上来,根据提交资料来判定当天任务有没有完成
|
||||
* 任务完成条件:(学习照片5张,签到表一份,培训内容大纲 >= 50个字),每月提交>=4次
|
||||
* 1 当前任务进行天数 < 第一阶段天数 只判断当天是否完成 状态未完成则关闭任务
|
||||
* 2 当前任务进行天数 = 第一阶段天数 做第一阶段结算 且更改 task_schedule_plan 状态为已结算,后续将会根据这个时间来统计、判断各阶段的周期内是否达成完成条件(*)
|
||||
* 3 第一阶段天数 < 当前任务进行天数 < (第一 + 第二) 只判断当天是否完成 状态未完成则关闭任务
|
||||
* 4 当前任务进行天数 = (第一阶段+第二阶段)天数 第二阶段结算 且更改 task_schedule_plan 状态为已结算
|
||||
* 5 第一阶段+第二阶段 < 当前任务进行天数 < (第一 + 第二 + 第三阶段天数) 只判断当天是否完成 状态未完成则关闭任务
|
||||
* 6 当前任务进行天数 = (第一 + 第二 + 第三阶段天数) 第三阶段结算 且更改 task_schedule_plan 状态为已结算
|
||||
* 7 当前任务进行天数 > (第一 + 第二 + 第三阶段天数) 但 当前任务进行天数/30 != 0 只判断当天是否完成 状态未完成则关闭任务
|
||||
* 8 当前任务进行天数/30 = 0, 长期阶段结算 且更改 task_schedule_plan 状态为已结算
|
||||
*/
|
||||
private static function dealTownTask4($taskSchedulePlan)
|
||||
{
|
||||
Log::info(['镇管理公司定时任务结算执行-'.$taskSchedulePlan['template_info']['title']]);
|
||||
$taskTemplateInfo = $taskSchedulePlan['template_info'];
|
||||
$townCompany = Company::where(['id' => $taskTemplateInfo['company_id']])->find();
|
||||
$taskDayCount = $taskTemplateInfo['day_count']; // 任务累计进行天数
|
||||
$task = Task::where('id', $taskSchedulePlan['task_id'])->find();
|
||||
$stageDayOneAccumulative = $taskTemplateInfo['stage_day_one']; // 第一阶段累计天数
|
||||
$stageDayTwoAccumulative = intval(bcadd($taskTemplateInfo['stage_day_one'], $taskTemplateInfo['stage_day_two'])); // 第二阶段累计天数 第一+第二
|
||||
$stageDayThreeAccumulative = intval(bcadd($stageDayTwoAccumulative, $taskTemplateInfo['stage_day_three'])); // 第三阶段累计天数 第二阶段累计值+第三阶段天数
|
||||
|
||||
// 1 当前任务进行天数 < 第一阶段天数 只判断当天是否完成 状态未完成则关闭任务
|
||||
if ($taskDayCount < $stageDayOneAccumulative) {
|
||||
if ($task['status'] != 3) {
|
||||
(new Task())->closeTask($task['id']);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// 2 当前任务进行天数 = 第一阶段天数 做第一阶段结算 且更改 task_schedule_plan 状态为已结算,后续将会根据这个时间来筛选、统计、判断各阶段周期内是否达成完成条件
|
||||
if($taskDayCount == $stageDayOneAccumulative){
|
||||
$doneTaskCount = Task::where(['template_id'=>$taskTemplateInfo['id'], 'status'=>3])->count();
|
||||
if ($doneTaskCount >= 4) {
|
||||
$task['money'] = bcmul($taskTemplateInfo['stage_day_one'], $taskTemplateInfo['money'], 2);
|
||||
(new TownShareProfit())->townTaskType4($task, $townCompany, $taskSchedulePlan);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// 3 第一阶段天数 < 当前任务进行天数 < (第一 + 第二) 只判断当天是否完成 状态未完成则关闭任务
|
||||
if ($stageDayOneAccumulative < $taskDayCount && $taskDayCount < $stageDayTwoAccumulative) {
|
||||
if ($task['status'] != 3) {
|
||||
(new Task())->closeTask($task['id']);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// 4 当前任务进行天数 = (第一阶段+第二阶段)天数 第二阶段结算 且更改 task_schedule_plan 状态为已结算
|
||||
if ($taskDayCount == $stageDayTwoAccumulative) {
|
||||
// 上一次做了结算的任务计划
|
||||
$lastTaskSchedulePlan = TaskSchedulingPlan::where(['template_id'=>$taskTemplateInfo['id'], 'is_pay'=>1])->order('start_time', 'desc')->find();
|
||||
// 上一次结算后到现在,完成的任务次数
|
||||
$doneTaskCount = Task::where(['template_id'=>$taskTemplateInfo['id'], 'status'=>3])->whereBetween('start_time', [$lastTaskSchedulePlan['start_time'], time()])->count();
|
||||
if ($doneTaskCount >= 4) {
|
||||
$task['money'] = bcmul($taskTemplateInfo['stage_day_two'], $taskTemplateInfo['money_two'], 2);
|
||||
(new TownShareProfit())->townTaskType4($task, $townCompany, $taskSchedulePlan);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// 5 第一阶段+第二阶段 < 当前任务进行天数 < (第一 + 第二 + 第三阶段天数) 只判断当天是否完成 状态未完成则关闭任务
|
||||
if ($stageDayTwoAccumulative < $taskDayCount && $taskDayCount < $stageDayThreeAccumulative) {
|
||||
if ($task['status'] != 3) {
|
||||
(new Task())->closeTask($task['id']);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// 6 当前任务进行天数 = (第一 + 第二 + 第三阶段天数) 第三阶段结算 且更改 task_schedule_plan 状态为已结算
|
||||
if ($taskDayCount == $stageDayThreeAccumulative) {
|
||||
// 上一次做了结算的任务计划
|
||||
$lastTaskSchedulePlan = TaskSchedulingPlan::where(['template_id'=>$taskTemplateInfo['id'], 'is_pay'=>1])->order('start_time', 'desc')->find();
|
||||
// 上一次结算后到现在,完成的任务次数
|
||||
$doneTaskCount = Task::where(['template_id'=>$taskTemplateInfo['id'], 'status'=>3])->whereBetween('start_time', [$lastTaskSchedulePlan['start_time'], time()])->count();
|
||||
if ($doneTaskCount >= 4) {
|
||||
$task['money'] = bcmul($taskTemplateInfo['stage_day_three'], $taskTemplateInfo['new_money_three'], 2);
|
||||
(new TownShareProfit())->townTaskType4($task, $townCompany, $taskSchedulePlan);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// 7 当前任务进行天数 > (第一 + 第二 + 第三阶段天数) 但 当前任务进行天数/30 != 0 只判断当天是否完成 状态未完成则关闭任务
|
||||
if($taskDayCount > $stageDayThreeAccumulative && $taskDayCount%30 != 0) {
|
||||
if ($task['status'] != 3) {
|
||||
(new Task())->closeTask($task['id']);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// 8 当前任务进行天数/30 = 0, 长期阶段结算 且更改 task_schedule_plan 状态为已结算
|
||||
if ($taskDayCount > $stageDayThreeAccumulative && $taskDayCount%30 == 0) {
|
||||
// 上一次做了结算的任务计划
|
||||
$lastTaskSchedulePlan = TaskSchedulingPlan::where(['template_id'=>$taskTemplateInfo['id'], 'is_pay'=>1])->order('start_time', 'desc')->find();
|
||||
// 上一次结算后到现在,完成的任务次数
|
||||
$doneTaskCount = Task::where(['template_id'=>$taskTemplateInfo['id'], 'status'=>3])->whereBetween('start_time', [$lastTaskSchedulePlan['start_time'], time()])->count();
|
||||
if ($doneTaskCount >= 4) {
|
||||
$task['money'] = bcmul(30, $taskTemplateInfo['money_three'], 2);
|
||||
(new TownShareProfit())->townTaskType4($task, $townCompany, $taskSchedulePlan);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查镇所属小组服务公司当日实际完成金额总和+镇管理公司的资金池
|
||||
* 查镇所属小组服务公司当日任务目标金额总和
|
||||
*/
|
||||
private static function dealTownTask5($taskSchedulePlan)
|
||||
{
|
||||
Log::info(['镇管理公司定时任务结算执行-'.$taskSchedulePlan['template_info']['title']]);
|
||||
$taskTemplateInfo = $taskSchedulePlan['template_info'];
|
||||
$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();
|
||||
$townTransactionPool = $taskTemplateInfo['transaction_pool']; // 镇交易池
|
||||
$townTotalTradeAmount = 0; // 镇下属小组服务公司 每日实际总交易额
|
||||
$targetAmount = 0; // 镇下属小组服务公司每日 目标总交易额
|
||||
// 查镇所属小组服务公司当日任务目标金额总和
|
||||
foreach ($groupServiceCompanyList as $groupServiceCompany) {
|
||||
$tempTask = Task::where(['company_id'=> $groupServiceCompany['id'], 'status'=>3, 'type'=>33])
|
||||
->whereDay('start_time','today')
|
||||
->find();
|
||||
if ($tempTask) {
|
||||
$plan = TaskSchedulingPlan::where(['id'=>$tempTask['scheduling_plan_id']])->find();
|
||||
if ($plan['is_pay'] == 1) {
|
||||
$extend = json_decode($tempTask['extend'], true);
|
||||
$targetAmount += $extend['transaction']['arr']['day_money'];
|
||||
$townTotalTradeAmount += $extend['transaction']['arr']['total_price'];
|
||||
}
|
||||
}
|
||||
}
|
||||
// 完成条件: 查镇所属小组服务公司当日实际完成金额总和+镇管理公司的资金池 > 查镇所属小组服务公司当日任务目标金额总和
|
||||
if($targetAmount != 0 && bcadd($townTransactionPool, $townTotalTradeAmount, 2) >= $targetAmount) {
|
||||
// 将余下金额放入镇交易池
|
||||
$leftTransactionPool = bcsub(bcadd($townTransactionPool, $townTotalTradeAmount, 2), $targetAmount, 2);
|
||||
(new TownShareProfit())->townTaskType5($townTask, $townCompany, $taskSchedulePlan, $leftTransactionPool);
|
||||
} else {
|
||||
// 关闭任务
|
||||
(new Task())->closeTask($taskSchedulePlan['task_id']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 督促小组服务团队入股村联络员所成立的公司任务 单次任务
|
||||
* 当前任务进行天数 < 第一+第二阶段天数 只刷新任务时间
|
||||
* 当前任务进行天数 = 第一+第二阶段天数 判定任务是否完成 结算 分润
|
||||
*/
|
||||
private static function dealTownTask6($taskSchedulePlan)
|
||||
{
|
||||
Log::info(['镇管理公司定时任务结算执行-'.$taskSchedulePlan['template_info']['title']]);
|
||||
$taskTemplateInfo = $taskSchedulePlan['template_info'];
|
||||
$taskDayCount = $taskTemplateInfo['day_count']; // 任务累计进行天数
|
||||
$task = Task::where('id', $taskSchedulePlan['task_id'])->find();
|
||||
$stageDayOneAccumulative = $taskTemplateInfo['stage_day_one']; // 第一阶段累计天数
|
||||
$stageDayTwoAccumulative = intval(bcadd($taskTemplateInfo['stage_day_one'], $taskTemplateInfo['stage_day_two'])); // 第二阶段累计天数 第一+第二
|
||||
$townCompany = Company::where('id', $taskTemplateInfo['company_id'])->find(); // 镇管理公司
|
||||
$villageCompanyList = Company::where(['street' => $townCompany['street'], 'company_type'=> 17])->select()->toArray(); // 村管理公司
|
||||
|
||||
// 当前任务进行天数 < 第一+第二阶段天数 只刷新任务时间
|
||||
if ($taskDayCount < $stageDayOneAccumulative) {
|
||||
self::flushTaskTime($taskSchedulePlan);
|
||||
return true;
|
||||
}
|
||||
|
||||
// 当前任务进行天数 = 第一+第二阶段天数 判定任务是否完成 结算 分润
|
||||
if($taskDayCount == $stageDayTwoAccumulative) {
|
||||
// 小组服务公司总数
|
||||
$groupServiceCompanyCount = Company::where(['street' => $townCompany['street'], 'company_type'=> 18])->count();
|
||||
|
||||
// 小组服务完成股金上交数
|
||||
$sharecapitalPaidCount= Db::name('company_sharecapital_change_log')->where(['parent_company_id'=>$villageCompanyList['id']])->count();
|
||||
|
||||
$rate = bcdiv($sharecapitalPaidCount, $groupServiceCompanyCount, 2);
|
||||
|
||||
// 小于50% 未完成 关闭任务
|
||||
if (bccomp($rate, 0.5, 2) == -1) {
|
||||
(new Task())->closeTask($taskSchedulePlan['task_id']);
|
||||
} else {
|
||||
// 已完成 计算结算金额
|
||||
$totalMoney = bcadd(bcmul($taskTemplateInfo['stage_day_one'], $taskTemplateInfo['money'], 2) , bcmul($taskTemplateInfo['stage_day_two'], $taskTemplateInfo['money_two'], 2), 2);
|
||||
// =50% - %59.9 x40%
|
||||
if (bccomp($rate, 0.5, 2) == 0 || (bccomp($rate, 0.5, 2) == 1 && bccomp($rate, 0.599, 2) == -1)) {
|
||||
$task['money'] = bcmul($totalMoney, 0.4, 2);
|
||||
}
|
||||
// =60% - %69.9 x50%
|
||||
if (bccomp($rate, 0.6, 2) == 0 || (bccomp($rate, 0.6, 2) == 1 && bccomp($rate, 0.699, 2) == -1)) {
|
||||
$task['money'] = bcmul($totalMoney, 0.5, 2);
|
||||
}
|
||||
|
||||
// =70% - %79.9 x60%
|
||||
if (bccomp($rate, 0.7, 2) == 0 || (bccomp($rate, 0.7, 2) == 1 && bccomp($rate, 0.799, 2) == -1)) {
|
||||
$task['money'] = bcmul($totalMoney, 0.6, 2);
|
||||
}
|
||||
|
||||
// =80% - %89.9 x70%
|
||||
if (bccomp($rate, 0.8, 2) == 0 || (bccomp($rate, 0.8, 2) == 1 && bccomp($rate, 0.899, 2) == -1)) {
|
||||
$task['money'] = bcmul($totalMoney, 0.7, 2);
|
||||
}
|
||||
// >=90% x100%
|
||||
if (bccomp($rate, 0.9, 2) == 0 || bccomp($rate, 0.9, 2) == 1) {
|
||||
$task['money'] = $totalMoney;
|
||||
}
|
||||
// 分润
|
||||
(new TownShareProfit())->townTaskType6($task, $townCompany, $taskSchedulePlan);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 安全任务结算
|
||||
private static function dealTownTask7($taskSchedulePlan)
|
||||
{
|
||||
Log::info(['镇管理公司定时任务结算执行-'.$taskSchedulePlan['template_info']['title']]);
|
||||
$taskTemplateInfo = $taskSchedulePlan['template_info'];
|
||||
|
||||
$townCompany = Company::where('id', $taskTemplateInfo['company_id'])->find(); // 镇管理公司
|
||||
$task = Task::where('id', $taskSchedulePlan['task_id'])->find();
|
||||
|
||||
// 片区下公司有任一投诉都判定为未完成
|
||||
$isDone = 1;
|
||||
$companyList = Company::where('street', $townCompany['street'])->select()->toArray();
|
||||
foreach ($companyList as $company) {
|
||||
$complain = CompanyComplaintFeedback::where(['company_id'=>$company['id']])->whereDay('create_time', 'today')->find();
|
||||
if (!empty($complain)) {
|
||||
$isDone = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 完成任务 结算 分润
|
||||
if ($isDone === 1) {
|
||||
(new TownShareProfit())->townTaskType7($task, $townCompany, $taskSchedulePlan);
|
||||
} else {
|
||||
// 关闭任务
|
||||
(new Task())->closeTask($task['id']);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -15,11 +15,14 @@
|
||||
namespace app\common\logic\task_template;
|
||||
|
||||
|
||||
use app\adminapi\logic\ConfigLogic;
|
||||
use app\common\model\Company;
|
||||
use app\common\model\task_template\TaskTemplate;
|
||||
use app\common\logic\BaseLogic;
|
||||
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 think\facade\Db;
|
||||
|
||||
|
||||
@ -41,8 +44,9 @@ class TaskTemplateLogic extends BaseLogic
|
||||
*/
|
||||
public static function add(array $params): bool
|
||||
{
|
||||
Db::startTrans();
|
||||
try {
|
||||
Db::startTrans();
|
||||
|
||||
$find=TaskTemplate::where('task_scheduling', $params['task_scheduling'])->where('company_id',$params['company_id'])->where('type',$params['type'])->field('id,types,type')->find();
|
||||
if($find&&$params['type']==$find['type']){
|
||||
self::setError('已经有同一种任务类型了');
|
||||
@ -78,12 +82,14 @@ class TaskTemplateLogic extends BaseLogic
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if($params['types']!=33){
|
||||
// 除了长期任务,其他阶段类型没有长期金额
|
||||
if($params['types']!=2){
|
||||
$params['money_three']=0;
|
||||
}
|
||||
if($params['type']==35){
|
||||
$params['extend']=['shareholder'=>['user_id'=>$params['task_admin']]];
|
||||
}
|
||||
|
||||
TaskTemplate::create([
|
||||
'title' => $params['title'],
|
||||
'admin_id' => $params['admin_id'],
|
||||
@ -103,7 +109,6 @@ class TaskTemplateLogic extends BaseLogic
|
||||
'proportion_two' => $params['proportion_two']??0,
|
||||
'recharge' => $params['recharge']??0,
|
||||
]);
|
||||
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
@ -159,7 +164,8 @@ class TaskTemplateLogic extends BaseLogic
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if($params['types']!=33){
|
||||
// 除了长期任务,其他阶段类型没有长期金额
|
||||
if($params['types']!=2){
|
||||
$params['money_three']=0;
|
||||
}
|
||||
if($params['type']==35){
|
||||
@ -217,4 +223,93 @@ class TaskTemplateLogic extends BaseLogic
|
||||
{
|
||||
return TaskTemplate::findOrEmpty($params['id'])->toArray();
|
||||
}
|
||||
|
||||
public static function initCompanyWithdrawDeadline($companyId)
|
||||
{
|
||||
// 如果是公司第一次创建安排任务,初始化公司的可提现周期截止时间
|
||||
$templateCount = TaskTemplate::where(['company_id' => $companyId])->count();
|
||||
if ($templateCount == 1) {
|
||||
$dictData = ConfigLogic::getDictTypeValueByType('withdraw_cycle');
|
||||
$cycle = $dictData['withdraw_cycle_1']['value']; // 数据字典-提现周期 单位:天数
|
||||
$today = strtotime(date('Y-m-d'));
|
||||
$withdrawDeadline = $today + $cycle * 24 * 60 * 60 + 86400;
|
||||
$company = Company::find($companyId);
|
||||
$company->withdraw_deadline = $withdrawDeadline;
|
||||
$company->save();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @notes 添加任务模板
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author likeadmin
|
||||
* @date 2023/08/06 17:30
|
||||
*/
|
||||
public static function addTownTaskTemplate(array $params): bool
|
||||
{
|
||||
try {
|
||||
Db::startTrans();
|
||||
|
||||
$serviceManagerUser = (new User())->searchServiceManager($params['company_id']);
|
||||
if (empty($serviceManagerUser)) {
|
||||
self::setError('公司还没有服务部长,无法指派任务');
|
||||
return false;
|
||||
}
|
||||
$find = TaskTemplate::where('task_scheduling', $params['task_scheduling'])->where('company_id',$params['company_id'])->where('type',$params['type'])->field('id,types,type')->find();
|
||||
if($find && $params['type'] == $find['type']){
|
||||
self::setError('已经有同一种任务类型了');
|
||||
return false;
|
||||
}
|
||||
|
||||
$moeny = TaskTemplate::where('company_id', $params['company_id'])->sum('money');
|
||||
if($moeny + $params['money'] > 200){
|
||||
self::setError('任务模板一阶段合计金额不能大于任务调度金额');
|
||||
return false;
|
||||
}
|
||||
$moneyTwo = TaskTemplate::where('company_id', $params['company_id'])->sum('money_two');
|
||||
if($moneyTwo + $params['money_two'] > 200){
|
||||
self::setError('任务模板二阶段合计金额不能大于任务调度金额');
|
||||
return false;
|
||||
}
|
||||
$newMoneyThree = TaskTemplate::where('company_id', $params['company_id'])->sum('new_money_three');
|
||||
if($newMoneyThree + $params['new_money_three'] > 200){
|
||||
self::setError('任务模板三阶段合计金额不能大于任务调度金额');
|
||||
return false;
|
||||
}
|
||||
$moneyThree = TaskTemplate::where('company_id', $params['company_id'])->sum('money_three');
|
||||
if($moneyThree + $params['money_three']>200){
|
||||
self::setError('任务模板长期合计金额不能大于任务调度金额');
|
||||
return false;
|
||||
}
|
||||
|
||||
TaskTemplate::create([
|
||||
'title' => $params['title'],
|
||||
'admin_id' => $params['admin_id'],
|
||||
'company_id' => $params['company_id'],
|
||||
'task_scheduling' => $params['task_scheduling']??0,
|
||||
'money' => $params['money'],
|
||||
'money_two' => $params['money_two'],
|
||||
'money_three' => $params['money_three'],
|
||||
'type' => $params['type'],
|
||||
'types' => $params['types'],
|
||||
'status' => $params['status'],
|
||||
'content' => $params['content'],
|
||||
'extend'=>json_encode($params['extend']),
|
||||
'stage_day_one' => $params['stage_day_one']??0,
|
||||
'proportion_one' => $params['proportion_one']??0,
|
||||
'stage_day_two' => $params['stage_day_two']??0,
|
||||
'proportion_two' => $params['proportion_two']??0,
|
||||
'recharge' => $params['recharge']??0,
|
||||
'stage_day_three' => $params['stage_day_three']??0,
|
||||
'new_money_three' => $params['new_money_three']??0,
|
||||
]);
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
20
app/common/model/Approve.php
Normal file
20
app/common/model/Approve.php
Normal file
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\model;
|
||||
|
||||
use app\common\model\dict\DictData;
|
||||
use app\common\model\task\Task;
|
||||
use think\model\concern\SoftDelete;
|
||||
|
||||
class Approve extends BaseModel
|
||||
{
|
||||
use SoftDelete;
|
||||
protected $name = 'approve';
|
||||
protected $deleteTime = 'delete_time';
|
||||
|
||||
public function task()
|
||||
{
|
||||
return $this->hasOne(Task::class, 'id', 'task_id');
|
||||
}
|
||||
|
||||
}
|
34
app/common/model/CompanyComplaintFeedback.php
Normal file
34
app/common/model/CompanyComplaintFeedback.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | likeadmin快速开发前后端分离管理后台(PHP版)
|
||||
// +----------------------------------------------------------------------
|
||||
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
|
||||
// | 开源版本可自由商用,可去除界面版权logo
|
||||
// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
|
||||
// | github下载:https://github.com/likeshop-github/likeadmin
|
||||
// | 访问官网:https://www.likeadmin.cn
|
||||
// | likeadmin团队 版权所有 拥有最终解释权
|
||||
// +----------------------------------------------------------------------
|
||||
// | author: likeadminTeam
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\common\model;
|
||||
|
||||
|
||||
use app\common\model\BaseModel;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* CompanyComplaintFeedback模型
|
||||
* Class CompanyComplaintFeedback
|
||||
* @package app\common\model
|
||||
*/
|
||||
class CompanyComplaintFeedback extends BaseModel
|
||||
{
|
||||
|
||||
protected $name = 'company_complaint_feedback';
|
||||
|
||||
|
||||
|
||||
}
|
@ -51,7 +51,7 @@ class ShopMerchant extends BaseModel
|
||||
|
||||
public function getContractAttr()
|
||||
{
|
||||
$find=Contract::where('party_a|party_b', $this->id)->field('check_status,status')->find();
|
||||
$find=ShopContract::where('party_a|party_b', $this->id)->field('check_status,status')->find();
|
||||
if($find){
|
||||
return $find->toArray();
|
||||
}else{
|
||||
|
@ -76,11 +76,11 @@ class CompanyAccountLog extends BaseModel
|
||||
*/
|
||||
|
||||
/**
|
||||
* 保证金
|
||||
* 任务收益
|
||||
*/
|
||||
const TASK_INC_DEPOSIT = 200;
|
||||
/**
|
||||
* 收益
|
||||
* 公司余额
|
||||
*/
|
||||
const TASK_INC_COMPANY_MONEY = 201;
|
||||
/**
|
||||
|
@ -44,4 +44,13 @@ class DictData extends BaseModel
|
||||
return $data['status'] ? '正常' : '停用';
|
||||
}
|
||||
|
||||
// 根据镇管理公司任务类型,获取code
|
||||
public function getTownTaskType($typeId){
|
||||
$townTaskTypeList = DictData::where(['type_value' => 'town_task_type', 'status' => 1])->column('value', 'id');
|
||||
if(isset($townTaskTypeList[$typeId])) {
|
||||
return $townTaskTypeList[$typeId];
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
}
|
@ -6,5 +6,12 @@ use app\common\model\BaseModel;
|
||||
|
||||
class UserInformationgDemand extends BaseModel
|
||||
{
|
||||
public function getDataAttr($value)
|
||||
{
|
||||
if($value){
|
||||
return json_decode($value,true);
|
||||
}
|
||||
return [];
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -16,6 +16,7 @@ namespace app\common\model\task;
|
||||
|
||||
|
||||
use app\common\model\BaseModel;
|
||||
use app\common\model\task_scheduling_plan\TaskSchedulingPlan;
|
||||
use app\common\model\user\User;
|
||||
use think\model\concern\SoftDelete;
|
||||
|
||||
@ -47,5 +48,9 @@ class Task extends BaseModel
|
||||
{
|
||||
return $this->hasOne(User::class, 'id', 'director_uid')->field(['id', 'nickname', 'avatar']);
|
||||
}
|
||||
// 关闭任务
|
||||
public function closeTask($id) {
|
||||
return Task::where(['id'=>$id])->save(['status'=>5]);
|
||||
}
|
||||
|
||||
}
|
@ -39,7 +39,7 @@ class TaskScheduling extends BaseModel
|
||||
}
|
||||
public function companyType()
|
||||
{
|
||||
return $this->hasOne(DictData::class, 'id', 'company_type')->bind(['company_type_name'=>'name']);
|
||||
return $this->hasOne(DictData::class, 'id', 'company_type')->bind(['dict_company_type'=>'id', 'company_type_name'=>'name']);
|
||||
}
|
||||
public function template()
|
||||
{
|
||||
|
@ -57,4 +57,7 @@ class TaskSchedulingPlan extends BaseModel
|
||||
public function scheduling(){
|
||||
return $this->hasOne(TaskScheduling::class,'id','scheduling_id');
|
||||
}
|
||||
public function settlement($id=0){
|
||||
TaskSchedulingPlan::where('id', $id)->update(['is_pay' => 1]);
|
||||
}
|
||||
}
|
@ -53,4 +53,8 @@ class TaskTemplate extends BaseModel
|
||||
return json_decode($value,true);
|
||||
}
|
||||
}
|
||||
public function updateTransactionPool($id, $transactionPool)
|
||||
{
|
||||
return TaskTemplate::where('id', $id)->save(['transaction_pool' => $transactionPool]);
|
||||
}
|
||||
}
|
@ -182,7 +182,7 @@ class User extends BaseModel
|
||||
|
||||
public function company()
|
||||
{
|
||||
return $this->hasOne(Company::class, 'id', 'company_id')->field(['id','company_name','admin_id','company_type','responsible_area']);
|
||||
return $this->hasOne(Company::class, 'id', 'company_id')->field(['id','company_name','admin_id','company_type','responsible_area', 'area_manager']);
|
||||
}
|
||||
public function getProvinceNameAttr($value)
|
||||
{
|
||||
@ -220,4 +220,9 @@ class User extends BaseModel
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
public function searchServiceManager($companyId)
|
||||
{
|
||||
return User::where(['company_id' => $companyId, 'group_id'=> 14])->find();
|
||||
}
|
||||
}
|
@ -93,6 +93,11 @@ class TaskInformationJob
|
||||
$arr['money'] = $task_35['money'];
|
||||
$arr['company_account_type'] = 2;
|
||||
}else{
|
||||
/**
|
||||
* 判断入股任务 单次类型 是否超时
|
||||
* 未超时时刷新开始结束时间
|
||||
* 超时则关闭
|
||||
*/
|
||||
if($data['template_info']['day_count']<=$day){
|
||||
TaskSchedulingPlan::where('id', $data['id'])->update(['is_pay' => 0]);
|
||||
try{
|
||||
@ -100,10 +105,10 @@ class TaskInformationJob
|
||||
}catch(\Exception $e){
|
||||
$start_time = strtotime(date('Y-m-d'));
|
||||
Task::where('id', $data['task_id'])->update(['create_time' => $start_time+86400,'update_time' =>time(),'start_time'=>$start_time+86400,'end_time'=> $start_time + 86400+86399]);
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if($data['template_info']['day_count']>$day){
|
||||
Task::where('id', $data['task_id'])->update(['status' =>5]);
|
||||
Log::info('入股任务 ' . $data['template_info']['title'] . '结算失败,任务为超时:' . json_encode($data));
|
||||
@ -117,15 +122,32 @@ class TaskInformationJob
|
||||
}
|
||||
else {
|
||||
//其他类型任务
|
||||
$task_count = Task::where('id', $data['task_id'])->field('director_uid,money')->where('status', 3)->with('director_info')->find();
|
||||
if (empty($task_count)) {
|
||||
Log::info('其他任务 ' . $data['template_info']['title'] . '结算失败,任务为空:' . json_encode($data));
|
||||
Task::where('id', $data['task_id'])->update(['status' => 5]);
|
||||
return false;
|
||||
$task = Task::where('id', $data['task_id'])->with('director_info')->find();
|
||||
if ($task['status'] == 3) {
|
||||
$name = $task['director_info']['nickname'];
|
||||
$arr['status'] = 1;
|
||||
$arr['money'] = $task['money'];
|
||||
} else if ($task['status'] == 2) {
|
||||
// 是否超时
|
||||
$day= $data['template_info']['stage_day_one'] + $data['template_info']['stage_day_two'];
|
||||
|
||||
if($data['template_info']['day_count'] >= $day){
|
||||
Task::where('id', $data['task_id'])->update(['status' =>5]);
|
||||
Log::info('入股任务 ' . $data['template_info']['title'] . '结算失败,任务为超时:' . json_encode($data));
|
||||
return false;
|
||||
}
|
||||
|
||||
if($data['template_info']['day_count'] < $day){
|
||||
TaskSchedulingPlan::where('id', $data['id'])->update(['is_pay' => 0]);
|
||||
try{
|
||||
Task::where('id', $data['task_id'])->update(['create_time' => $task['start_time']+86400,'update_time' =>time(),'start_time'=>$task['start_time']+86400,'end_time'=>$task['start_time']+86400+86399]);
|
||||
}catch(\Exception $e){
|
||||
$start_time = strtotime(date('Y-m-d'));
|
||||
Task::where('id', $data['task_id'])->update(['create_time' => $start_time+86400,'update_time' =>time(),'start_time'=>$start_time+86400,'end_time'=> $start_time + 86400+86399]);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
$name = $task_count['director_info']['nickname'];
|
||||
$arr['status'] = 1;
|
||||
$arr['money'] = $task_count['money'];
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
Log::error('line:'.$e->getLine().'异常报错:任务结算失败:' . $data['template_info']['title'] . $e->getMessage() . json_encode($data));
|
||||
|
23
app/job/TownTaskAdd.php
Normal file
23
app/job/TownTaskAdd.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace app\job;
|
||||
|
||||
use app\common\logic\task\TaskLogic;
|
||||
use think\queue\Job;
|
||||
|
||||
/**
|
||||
* 镇管理公司任务下发执行的具体逻辑
|
||||
*/
|
||||
class TownTaskAdd
|
||||
{
|
||||
|
||||
public function fire(Job $job, $template)
|
||||
{
|
||||
if ($job->attempts() > 3) {
|
||||
//通过这个方法可以检查这个任务已经重试了几次了
|
||||
}
|
||||
TaskLogic::TownCronAdd($template);
|
||||
//如果任务执行成功后 记得删除任务,不然这个任务会重复执行,直到达到最大重试次数后失败后,执行failed方法
|
||||
$job->delete();
|
||||
}
|
||||
}
|
26
app/job/TownTaskSettlementJob.php
Normal file
26
app/job/TownTaskSettlementJob.php
Normal file
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace app\job;
|
||||
|
||||
use app\api\controller\RemoteController;
|
||||
use app\common\logic\finance\ShareProfit;
|
||||
use app\common\logic\task\TaskLogic;
|
||||
use app\common\model\Company;
|
||||
use app\common\model\task\Task;
|
||||
use app\common\model\task_scheduling_plan\TaskSchedulingPlan;
|
||||
use app\common\model\task_template\TaskTemplate;
|
||||
use think\facade\Log;
|
||||
use think\queue\Job;
|
||||
|
||||
class TownTaskSettlementJob
|
||||
{
|
||||
/**
|
||||
* 镇管理公司任务结算
|
||||
*/
|
||||
public function fire(Job $job, $taskSchedulingPlan)
|
||||
{
|
||||
TaskLogic::townTaskSettlement($taskSchedulingPlan);
|
||||
//如果任务执行成功后 记得删除任务,不然这个任务会重复执行,直到达到最大重试次数后失败后,执行failed方法
|
||||
$job->delete();
|
||||
}
|
||||
}
|
@ -20,7 +20,7 @@ class TaskCron extends Task
|
||||
// $this->everyMinute();//每分钟
|
||||
}
|
||||
/**
|
||||
* 执行任务
|
||||
* 小组服务公司执行任务下发
|
||||
* @return mixed
|
||||
*/
|
||||
protected function execute()
|
||||
@ -29,7 +29,8 @@ class TaskCron extends Task
|
||||
// $time=strtotime(date('Y-m-d',strtotime('-1 day')));
|
||||
$time = strtotime(date('Y-m-d'));
|
||||
// $tiem_end=$time+86399;
|
||||
$plan_all = TaskScheduling::where('cron_time', '<', $time)->where('status', 1)->with('company_info')->select()->toArray();
|
||||
// 查询系统目前小组公司的任务安排
|
||||
$plan_all = TaskScheduling::where('cron_time', '<', $time)->where('status', 1)->where('company_type', 18)->with('company_info')->select()->toArray();
|
||||
$plan_ids = [];
|
||||
foreach ($plan_all as $k => $v) {
|
||||
$all = TaskTemplate::where('status', 1)->where('task_scheduling', $v['id'])->limit(30)->select()->toArray();
|
||||
|
@ -15,13 +15,26 @@ class TaskSettlementCron extends Task{
|
||||
// $this->everyMinute();//每分钟
|
||||
}
|
||||
/**
|
||||
* 任务结算
|
||||
* 小组服务公司任务结算
|
||||
* @return mixed
|
||||
*/
|
||||
protected function execute()
|
||||
{
|
||||
//yesterday
|
||||
$all=TaskSchedulingPlan::whereDay('end_time','yesterday')->where('is_pay',0)->with(['template_info','scheduling'])->select()->toArray();
|
||||
// $all=TaskSchedulingPlan::whereDay('end_time','yesterday')
|
||||
// ->where('is_pay',0)
|
||||
// ->with(['template_info','scheduling'=>function($query){
|
||||
// $query->where('company_type', 18);
|
||||
// }])
|
||||
// ->select()
|
||||
// ->toArray();
|
||||
$all = TaskSchedulingPlan::whereDay('end_time','yesterday')
|
||||
->withJoin(['scheduling'], 'left')
|
||||
->where('scheduling.company_type', 18)
|
||||
->where('is_pay',0)
|
||||
->with(['template_info'])
|
||||
->select()
|
||||
->toArray();
|
||||
foreach($all as $k=>$v){
|
||||
queue(TaskInformationJob::class,$v);
|
||||
}
|
||||
|
51
app/task/TownTaskCron.php
Normal file
51
app/task/TownTaskCron.php
Normal file
@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
namespace app\task;
|
||||
|
||||
use app\common\logic\task\TaskLogic;
|
||||
use app\common\model\Company;
|
||||
use app\common\model\task_scheduling\TaskScheduling;
|
||||
use app\common\model\task_template\TaskTemplate;
|
||||
use app\job\TaskAdd;
|
||||
use app\job\TownTaskAdd;
|
||||
use think\facade\Log;
|
||||
use yunwuxin\cron\Task;
|
||||
|
||||
class TownTaskCron extends Task {
|
||||
|
||||
public function configure()
|
||||
{
|
||||
$this->daily(); //设置任务的周期,每天执行一次,更多的方法可以查看源代码,都有注释
|
||||
// $this->everyMinute();//每分钟
|
||||
}
|
||||
/**
|
||||
* 镇管理公司任务下发
|
||||
*/
|
||||
protected function execute()
|
||||
{
|
||||
//任务下发
|
||||
$time = strtotime(date('Y-m-d'));
|
||||
// 查询系统 所有镇管理公司 未下发 的 任务安排
|
||||
$taskSchedulingList = TaskScheduling::where('cron_time', '<', $time)->where('status', 1)->where('company_type', 41)->with('company_info')->select()->toArray();
|
||||
|
||||
$taskSchedulingIds = [];
|
||||
$companyIds = [];
|
||||
foreach ($taskSchedulingList as $k => $taskScheduling) {
|
||||
$templateList = TaskTemplate::where('status', 1)->where('task_scheduling', $taskScheduling['id'])->limit(30)->select()->toArray();
|
||||
$taskSchedulingIds[] = $taskScheduling['id'];
|
||||
$companyIds[] = $taskScheduling['company_id'];
|
||||
foreach ($templateList as $template) {
|
||||
queue(TownTaskAdd::class, $template);
|
||||
// TaskLogic::TownCronAdd($template); // 手动下发用
|
||||
}
|
||||
|
||||
if (empty($templateList)) {
|
||||
unset($taskSchedulingList[$k]);
|
||||
}
|
||||
}
|
||||
Company::where('id', 'in', $companyIds)->inc('day_count')->update();
|
||||
TaskScheduling::where('id', 'in', $taskSchedulingIds)->update(['cron_time' => time()]);
|
||||
Log::info('定时任务下发执行成功' . date('Y-m-d H:i:s'));
|
||||
}
|
||||
|
||||
}
|
39
app/task/TownTaskSettlementCron.php
Normal file
39
app/task/TownTaskSettlementCron.php
Normal file
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace app\task;
|
||||
|
||||
use app\common\model\task_scheduling_plan\TaskSchedulingPlan;
|
||||
use app\job\TownTaskSettlementJob;
|
||||
use think\facade\Log;
|
||||
use yunwuxin\cron\Task;
|
||||
|
||||
class TownTaskSettlementCron extends Task
|
||||
{
|
||||
public function configure()
|
||||
{
|
||||
$this->daily(); //设置任务的周期,每天执行一次,更多的方法可以查看源代码,都有注释
|
||||
// $this->everyMinute();//每分钟
|
||||
}
|
||||
/**
|
||||
* 镇管理公司任务结算
|
||||
* @return mixed
|
||||
*/
|
||||
protected function execute()
|
||||
{
|
||||
Log::info('定时任务结算执行-开始'.date('Y-m-d H:i:s'));
|
||||
//yesterday 昨日未结算的任务计划
|
||||
$taskSchedulingPlanList = TaskSchedulingPlan::whereDay('end_time','yesterday')
|
||||
->withJoin(['scheduling'], 'left')
|
||||
->where('scheduling.company_type', 41)
|
||||
->where('is_pay',0)
|
||||
->with(['template_info'])
|
||||
->select()
|
||||
->toArray();
|
||||
foreach($taskSchedulingPlanList as $taskSchedulingPlan){
|
||||
queue(TownTaskSettlementJob::class, $taskSchedulingPlan);
|
||||
}
|
||||
Log::info('定时任务结算执行-结束'.date('Y-m-d H:i:s'));
|
||||
|
||||
//...具体的任务执行
|
||||
}
|
||||
}
|
@ -10,7 +10,7 @@
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
return [
|
||||
'default' => 'redis',
|
||||
'default' => env('redis.queue'),
|
||||
'connections' => [
|
||||
'sync' => [
|
||||
'type' => 'sync',
|
||||
@ -24,9 +24,9 @@ return [
|
||||
'redis' => [
|
||||
'type' => 'redis',
|
||||
'queue' => 'default',
|
||||
'host' => '127.0.0.1',
|
||||
'host' => env('redis.host'),
|
||||
'port' => 6379,
|
||||
'password' => '',
|
||||
'password' => env('redis.auth'),
|
||||
'select' => 0,
|
||||
'timeout' => 0,
|
||||
'persistent' => false,
|
||||
|
@ -19,11 +19,8 @@ namespace IFlytek\Xfyun\Speech;
|
||||
|
||||
use IFlytek\Xfyun\Core\Traits\SignTrait;
|
||||
use IFlytek\Xfyun\Core\HttpClient;
|
||||
use GuzzleHttp\Psr7\Request;
|
||||
use IFlytek\Xfyun\Speech\Constants\ChatConstants;
|
||||
|
||||
/**
|
||||
* 文本纠错客户端
|
||||
* 讯飞Ai户端
|
||||
*
|
||||
* @author guizheng@iflytek.com
|
||||
*/
|
||||
@ -87,4 +84,37 @@ class ChatClient
|
||||
));
|
||||
return $authAddr;
|
||||
}
|
||||
|
||||
function getBody($appid, $question)
|
||||
{
|
||||
$header = array(
|
||||
"app_id" => $appid,
|
||||
"uid" => "1"
|
||||
);
|
||||
|
||||
$parameter = array(
|
||||
"chat" => array(
|
||||
"domain" => "generalv2",
|
||||
"temperature" => 0.5,
|
||||
"max_tokens" => 1024
|
||||
)
|
||||
);
|
||||
|
||||
$payload = array(
|
||||
"message" => array(
|
||||
"text" => array(
|
||||
array("role" => "user", "content" => $question)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
$json_string = json_encode(array(
|
||||
"header" => $header,
|
||||
"parameter" => $parameter,
|
||||
"payload" => $payload
|
||||
));
|
||||
|
||||
return $json_string;
|
||||
}
|
||||
|
||||
}
|
||||
|
1
public/admin/assets/403.be543633.js
Normal file
1
public/admin/assets/403.be543633.js
Normal file
@ -0,0 +1 @@
|
||||
import o from"./error.c4961842.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.4328d892.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./vue-router.9f65afb1.js";import"./index.5a6ac86e.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};
|
1
public/admin/assets/403.fb90ae6f.js
Normal file
1
public/admin/assets/403.fb90ae6f.js
Normal file
@ -0,0 +1 @@
|
||||
import o from"./error.bfcea95a.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.b64c0a90.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./vue-router.9f65afb1.js";import"./index.760285cd.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};
|
1
public/admin/assets/404.920de617.js
Normal file
1
public/admin/assets/404.920de617.js
Normal file
@ -0,0 +1 @@
|
||||
import o from"./error.c4961842.js";import{d as r,o as t,c as m,U as p}from"./@vue.51d7f2d8.js";import"./element-plus.4328d892.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./vue-router.9f65afb1.js";import"./index.5a6ac86e.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};
|
1
public/admin/assets/404.f1a21415.js
Normal file
1
public/admin/assets/404.f1a21415.js
Normal file
@ -0,0 +1 @@
|
||||
import o from"./error.bfcea95a.js";import{d as r,o as t,c as m,U as p}from"./@vue.51d7f2d8.js";import"./element-plus.b64c0a90.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./vue-router.9f65afb1.js";import"./index.760285cd.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};
|
1
public/admin/assets/Withdrawal.25da6fc9.js
Normal file
1
public/admin/assets/Withdrawal.25da6fc9.js
Normal file
File diff suppressed because one or more lines are too long
1
public/admin/assets/Withdrawal.656bf41f.js
Normal file
1
public/admin/assets/Withdrawal.656bf41f.js
Normal file
File diff suppressed because one or more lines are too long
1
public/admin/assets/account-adjust.4e202fa0.js
Normal file
1
public/admin/assets/account-adjust.4e202fa0.js
Normal file
@ -0,0 +1 @@
|
||||
import"./account-adjust.vue_vue_type_script_setup_true_lang.a704baaf.js";import{_ as N}from"./account-adjust.vue_vue_type_script_setup_true_lang.a704baaf.js";import"./element-plus.4328d892.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.df3950ef.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./index.5a6ac86e.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};
|
1
public/admin/assets/account-adjust.8c3b1050.js
Normal file
1
public/admin/assets/account-adjust.8c3b1050.js
Normal file
@ -0,0 +1 @@
|
||||
import"./account-adjust.vue_vue_type_script_setup_true_lang.ce6c7365.js";import{_ as N}from"./account-adjust.vue_vue_type_script_setup_true_lang.ce6c7365.js";import"./element-plus.b64c0a90.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.8bb6f5eb.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./index.760285cd.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};
|
@ -0,0 +1 @@
|
||||
import{C as x,G as B,H as R,B as g,D as N}from"./element-plus.4328d892.js";import{P as q}from"./index.df3950ef.js";import{f as C}from"./index.5a6ac86e.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 _};
|
@ -0,0 +1 @@
|
||||
import{C as x,G as B,H as R,B as g,D as N}from"./element-plus.b64c0a90.js";import{P as q}from"./index.8bb6f5eb.js";import{f as C}from"./index.760285cd.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 _};
|
1
public/admin/assets/add-nav.23985b44.js
Normal file
1
public/admin/assets/add-nav.23985b44.js
Normal file
@ -0,0 +1 @@
|
||||
import"./add-nav.vue_vue_type_script_setup_true_lang.4fd23862.js";import{_ as Z}from"./add-nav.vue_vue_type_script_setup_true_lang.4fd23862.js";import"./element-plus.4328d892.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.11ed41fb.js";import"./index.5a6ac86e.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.995d7639.js";import"./index.df3950ef.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.3a1ba420.js";import"./index.45141e8f.js";import"./index.vue_vue_type_script_setup_true_lang.f93228b5.js";import"./index.4f535bb7.js";import"./index.vue_vue_type_script_setup_true_lang.dc835bba.js";import"./usePaging.2ad8e1e6.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{Z as default};
|
1
public/admin/assets/add-nav.c8bc6bb7.js
Normal file
1
public/admin/assets/add-nav.c8bc6bb7.js
Normal file
@ -0,0 +1 @@
|
||||
import"./add-nav.vue_vue_type_script_setup_true_lang.53d58090.js";import{_ as Z}from"./add-nav.vue_vue_type_script_setup_true_lang.53d58090.js";import"./element-plus.b64c0a90.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.faac87da.js";import"./index.760285cd.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.a03ef28f.js";import"./index.8bb6f5eb.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.3283c3e3.js";import"./index.f53f11d9.js";import"./index.vue_vue_type_script_setup_true_lang.a080b28e.js";import"./index.b06f93da.js";import"./index.vue_vue_type_script_setup_true_lang.c4fa43c7.js";import"./usePaging.2ad8e1e6.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{Z as default};
|
@ -0,0 +1 @@
|
||||
import{B,w as D}from"./element-plus.4328d892.js";import{_ as F}from"./index.11ed41fb.js";import{_ as A}from"./picker.995d7639.js";import{_ as y}from"./picker.3a1ba420.js";import{f as p,b as E}from"./index.5a6ac86e.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 _};
|
@ -0,0 +1 @@
|
||||
import{B,w as D}from"./element-plus.b64c0a90.js";import{_ as F}from"./index.faac87da.js";import{_ as A}from"./picker.a03ef28f.js";import{_ as y}from"./picker.3283c3e3.js";import{f as p,b as E}from"./index.760285cd.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 _};
|
1
public/admin/assets/admin.4e4b3799.js
Normal file
1
public/admin/assets/admin.4e4b3799.js
Normal file
@ -0,0 +1 @@
|
||||
import{r as n}from"./index.760285cd.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};
|
1
public/admin/assets/admin.776a94cb.js
Normal file
1
public/admin/assets/admin.776a94cb.js
Normal file
@ -0,0 +1 @@
|
||||
import{r as n}from"./index.5a6ac86e.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};
|
1
public/admin/assets/article.1563f12b.js
Normal file
1
public/admin/assets/article.1563f12b.js
Normal file
@ -0,0 +1 @@
|
||||
import{r as e}from"./index.5a6ac86e.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};
|
1
public/admin/assets/article.1adcb85d.js
Normal file
1
public/admin/assets/article.1adcb85d.js
Normal file
@ -0,0 +1 @@
|
||||
import{r as e}from"./index.760285cd.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};
|
1
public/admin/assets/attr-setting.35481140.js
Normal file
1
public/admin/assets/attr-setting.35481140.js
Normal file
@ -0,0 +1 @@
|
||||
import"./attr-setting.vue_vue_type_script_setup_true_lang.73d12600.js";import{_ as gm}from"./attr-setting.vue_vue_type_script_setup_true_lang.73d12600.js";import"./index.9500dd9d.js";import"./attr.vue_vue_type_script_setup_true_lang.46ef7bc0.js";import"./element-plus.4328d892.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.11ed41fb.js";import"./index.5a6ac86e.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.995d7639.js";import"./index.df3950ef.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.3a1ba420.js";import"./index.45141e8f.js";import"./index.vue_vue_type_script_setup_true_lang.f93228b5.js";import"./index.4f535bb7.js";import"./index.vue_vue_type_script_setup_true_lang.dc835bba.js";import"./usePaging.2ad8e1e6.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.6d685a22.js";import"./decoration-img.793551d6.js";import"./attr.vue_vue_type_script_setup_true_lang.1f447a10.js";import"./content.24f4082c.js";import"./attr.vue_vue_type_script_setup_true_lang.c3a7417c.js";import"./add-nav.vue_vue_type_script_setup_true_lang.4fd23862.js";import"./content.04895dbd.js";import"./attr.vue_vue_type_script_setup_true_lang.35f03462.js";import"./content.vue_vue_type_script_setup_true_lang.c95af90e.js";import"./attr.vue_vue_type_script_setup_true_lang.d01577b5.js";import"./content.35e9659f.js";import"./decoration.7c2a2539.js";import"./attr.vue_vue_type_script_setup_true_lang.0fc534ba.js";import"./content.079cccd7.js";import"./attr.vue_vue_type_script_setup_true_lang.286ccb9f.js";import"./content.vue_vue_type_script_setup_true_lang.cbc58c66.js";import"./attr.vue_vue_type_script_setup_true_lang.00e826d0.js";import"./content.b31ceb7b.js";export{gm as default};
|
1
public/admin/assets/attr-setting.d1a1c3c0.js
Normal file
1
public/admin/assets/attr-setting.d1a1c3c0.js
Normal file
@ -0,0 +1 @@
|
||||
import"./attr-setting.vue_vue_type_script_setup_true_lang.897d1b28.js";import{_ as gm}from"./attr-setting.vue_vue_type_script_setup_true_lang.897d1b28.js";import"./index.b7675886.js";import"./attr.vue_vue_type_script_setup_true_lang.d0e18524.js";import"./element-plus.b64c0a90.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.faac87da.js";import"./index.760285cd.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.a03ef28f.js";import"./index.8bb6f5eb.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.3283c3e3.js";import"./index.f53f11d9.js";import"./index.vue_vue_type_script_setup_true_lang.a080b28e.js";import"./index.b06f93da.js";import"./index.vue_vue_type_script_setup_true_lang.c4fa43c7.js";import"./usePaging.2ad8e1e6.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.6e431029.js";import"./decoration-img.9730e80f.js";import"./attr.vue_vue_type_script_setup_true_lang.322bd0c5.js";import"./content.70a6068b.js";import"./attr.vue_vue_type_script_setup_true_lang.8e6f4da3.js";import"./add-nav.vue_vue_type_script_setup_true_lang.53d58090.js";import"./content.a32143ae.js";import"./attr.vue_vue_type_script_setup_true_lang.21b3bafd.js";import"./content.vue_vue_type_script_setup_true_lang.340afd05.js";import"./attr.vue_vue_type_script_setup_true_lang.d01577b5.js";import"./content.b9c971ef.js";import"./decoration.d6e17c90.js";import"./attr.vue_vue_type_script_setup_true_lang.0fc534ba.js";import"./content.99bbb8f0.js";import"./attr.vue_vue_type_script_setup_true_lang.eb4a01e5.js";import"./content.vue_vue_type_script_setup_true_lang.ad4b79ec.js";import"./attr.vue_vue_type_script_setup_true_lang.00e826d0.js";import"./content.c1e4daef.js";export{gm as default};
|
@ -0,0 +1 @@
|
||||
import{w as c}from"./index.9500dd9d.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 _};
|
@ -0,0 +1 @@
|
||||
import{w as c}from"./index.b7675886.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 _};
|
1
public/admin/assets/attr.01c96971.js
Normal file
1
public/admin/assets/attr.01c96971.js
Normal file
@ -0,0 +1 @@
|
||||
import"./attr.vue_vue_type_script_setup_true_lang.1f447a10.js";import{_ as Y}from"./attr.vue_vue_type_script_setup_true_lang.1f447a10.js";import"./element-plus.4328d892.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./picker.3a1ba420.js";import"./index.df3950ef.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./index.5a6ac86e.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.45141e8f.js";import"./index.vue_vue_type_script_setup_true_lang.f93228b5.js";import"./index.11ed41fb.js";import"./index.4f535bb7.js";import"./index.vue_vue_type_script_setup_true_lang.dc835bba.js";import"./usePaging.2ad8e1e6.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{Y as default};
|
1
public/admin/assets/attr.0b9fee0b.js
Normal file
1
public/admin/assets/attr.0b9fee0b.js
Normal file
@ -0,0 +1 @@
|
||||
import"./attr.vue_vue_type_script_setup_true_lang.46ef7bc0.js";import{_ as Z}from"./attr.vue_vue_type_script_setup_true_lang.46ef7bc0.js";import"./element-plus.4328d892.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.11ed41fb.js";import"./index.5a6ac86e.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.995d7639.js";import"./index.df3950ef.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.3a1ba420.js";import"./index.45141e8f.js";import"./index.vue_vue_type_script_setup_true_lang.f93228b5.js";import"./index.4f535bb7.js";import"./index.vue_vue_type_script_setup_true_lang.dc835bba.js";import"./usePaging.2ad8e1e6.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{Z as default};
|
1
public/admin/assets/attr.15fe7f8d.js
Normal file
1
public/admin/assets/attr.15fe7f8d.js
Normal file
@ -0,0 +1 @@
|
||||
import"./attr.vue_vue_type_script_setup_true_lang.c3a7417c.js";import{_ as $}from"./attr.vue_vue_type_script_setup_true_lang.c3a7417c.js";import"./element-plus.4328d892.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./add-nav.vue_vue_type_script_setup_true_lang.4fd23862.js";import"./index.11ed41fb.js";import"./index.5a6ac86e.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.995d7639.js";import"./index.df3950ef.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.3a1ba420.js";import"./index.45141e8f.js";import"./index.vue_vue_type_script_setup_true_lang.f93228b5.js";import"./index.4f535bb7.js";import"./index.vue_vue_type_script_setup_true_lang.dc835bba.js";import"./usePaging.2ad8e1e6.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{$ as default};
|
1
public/admin/assets/attr.1fcbf3bb.js
Normal file
1
public/admin/assets/attr.1fcbf3bb.js
Normal file
@ -0,0 +1 @@
|
||||
import"./attr.vue_vue_type_script_setup_true_lang.286ccb9f.js";import{_ as Z}from"./attr.vue_vue_type_script_setup_true_lang.286ccb9f.js";import"./element-plus.4328d892.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.11ed41fb.js";import"./index.5a6ac86e.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.995d7639.js";import"./index.df3950ef.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.3a1ba420.js";import"./index.45141e8f.js";import"./index.vue_vue_type_script_setup_true_lang.f93228b5.js";import"./index.4f535bb7.js";import"./index.vue_vue_type_script_setup_true_lang.dc835bba.js";import"./usePaging.2ad8e1e6.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{Z as default};
|
1
public/admin/assets/attr.33944f43.js
Normal file
1
public/admin/assets/attr.33944f43.js
Normal file
@ -0,0 +1 @@
|
||||
import"./attr.vue_vue_type_script_setup_true_lang.d0e18524.js";import{_ as Z}from"./attr.vue_vue_type_script_setup_true_lang.d0e18524.js";import"./element-plus.b64c0a90.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.faac87da.js";import"./index.760285cd.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.a03ef28f.js";import"./index.8bb6f5eb.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.3283c3e3.js";import"./index.f53f11d9.js";import"./index.vue_vue_type_script_setup_true_lang.a080b28e.js";import"./index.b06f93da.js";import"./index.vue_vue_type_script_setup_true_lang.c4fa43c7.js";import"./usePaging.2ad8e1e6.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{Z as default};
|
1
public/admin/assets/attr.68c133d2.js
Normal file
1
public/admin/assets/attr.68c133d2.js
Normal file
@ -0,0 +1 @@
|
||||
import"./attr.vue_vue_type_script_setup_true_lang.21b3bafd.js";import{_ as $}from"./attr.vue_vue_type_script_setup_true_lang.21b3bafd.js";import"./element-plus.b64c0a90.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./add-nav.vue_vue_type_script_setup_true_lang.53d58090.js";import"./index.faac87da.js";import"./index.760285cd.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.a03ef28f.js";import"./index.8bb6f5eb.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.3283c3e3.js";import"./index.f53f11d9.js";import"./index.vue_vue_type_script_setup_true_lang.a080b28e.js";import"./index.b06f93da.js";import"./index.vue_vue_type_script_setup_true_lang.c4fa43c7.js";import"./usePaging.2ad8e1e6.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{$ as default};
|
1
public/admin/assets/attr.7dcbb853.js
Normal file
1
public/admin/assets/attr.7dcbb853.js
Normal file
@ -0,0 +1 @@
|
||||
import"./attr.vue_vue_type_script_setup_true_lang.8e6f4da3.js";import{_ as $}from"./attr.vue_vue_type_script_setup_true_lang.8e6f4da3.js";import"./element-plus.b64c0a90.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./add-nav.vue_vue_type_script_setup_true_lang.53d58090.js";import"./index.faac87da.js";import"./index.760285cd.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.a03ef28f.js";import"./index.8bb6f5eb.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.3283c3e3.js";import"./index.f53f11d9.js";import"./index.vue_vue_type_script_setup_true_lang.a080b28e.js";import"./index.b06f93da.js";import"./index.vue_vue_type_script_setup_true_lang.c4fa43c7.js";import"./usePaging.2ad8e1e6.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{$ as default};
|
1
public/admin/assets/attr.82cfebe4.js
Normal file
1
public/admin/assets/attr.82cfebe4.js
Normal file
@ -0,0 +1 @@
|
||||
import"./attr.vue_vue_type_script_setup_true_lang.eb4a01e5.js";import{_ as Z}from"./attr.vue_vue_type_script_setup_true_lang.eb4a01e5.js";import"./element-plus.b64c0a90.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.faac87da.js";import"./index.760285cd.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.a03ef28f.js";import"./index.8bb6f5eb.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.3283c3e3.js";import"./index.f53f11d9.js";import"./index.vue_vue_type_script_setup_true_lang.a080b28e.js";import"./index.b06f93da.js";import"./index.vue_vue_type_script_setup_true_lang.c4fa43c7.js";import"./usePaging.2ad8e1e6.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{Z as default};
|
1
public/admin/assets/attr.915745b7.js
Normal file
1
public/admin/assets/attr.915745b7.js
Normal file
@ -0,0 +1 @@
|
||||
import"./attr.vue_vue_type_script_setup_true_lang.322bd0c5.js";import{_ as Y}from"./attr.vue_vue_type_script_setup_true_lang.322bd0c5.js";import"./element-plus.b64c0a90.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./picker.3283c3e3.js";import"./index.8bb6f5eb.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./index.760285cd.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.f53f11d9.js";import"./index.vue_vue_type_script_setup_true_lang.a080b28e.js";import"./index.faac87da.js";import"./index.b06f93da.js";import"./index.vue_vue_type_script_setup_true_lang.c4fa43c7.js";import"./usePaging.2ad8e1e6.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{Y as default};
|
1
public/admin/assets/attr.c91c2972.js
Normal file
1
public/admin/assets/attr.c91c2972.js
Normal file
@ -0,0 +1 @@
|
||||
import"./attr.vue_vue_type_script_setup_true_lang.35f03462.js";import{_ as $}from"./attr.vue_vue_type_script_setup_true_lang.35f03462.js";import"./element-plus.4328d892.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./add-nav.vue_vue_type_script_setup_true_lang.4fd23862.js";import"./index.11ed41fb.js";import"./index.5a6ac86e.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.995d7639.js";import"./index.df3950ef.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./picker.3a1ba420.js";import"./index.45141e8f.js";import"./index.vue_vue_type_script_setup_true_lang.f93228b5.js";import"./index.4f535bb7.js";import"./index.vue_vue_type_script_setup_true_lang.dc835bba.js";import"./usePaging.2ad8e1e6.js";import"./vue3-video-play.b911321b.js";import"./vuedraggable.0cb40d3a.js";import"./vue.5de34049.js";import"./sortablejs.ef73fc5c.js";export{$ as default};
|
@ -0,0 +1 @@
|
||||
import{B as c,C as i,D as F}from"./element-plus.4328d892.js";import{_ as p}from"./picker.3a1ba420.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 _};
|
@ -0,0 +1 @@
|
||||
import{G as _,H as r,C as i,D as f}from"./element-plus.b64c0a90.js";import{_ as p}from"./add-nav.vue_vue_type_script_setup_true_lang.53d58090.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 _};
|
@ -0,0 +1 @@
|
||||
import{G as D,H as U,C as y,B as v,w,D as N}from"./element-plus.4328d892.js";import{_ as R}from"./index.11ed41fb.js";import{_ as $}from"./picker.995d7639.js";import{_ as j}from"./picker.3a1ba420.js";import{f as F}from"./index.5a6ac86e.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 _};
|
@ -0,0 +1 @@
|
||||
import{B as c,C as i,D as F}from"./element-plus.b64c0a90.js";import{_ as p}from"./picker.3283c3e3.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 _};
|
@ -0,0 +1 @@
|
||||
import{G as _,H as r,C as i,D as f}from"./element-plus.4328d892.js";import{_ as p}from"./add-nav.vue_vue_type_script_setup_true_lang.4fd23862.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 _};
|
@ -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.4328d892.js";import{_ as $}from"./index.11ed41fb.js";import{_ as j}from"./picker.995d7639.js";import{_ as G}from"./picker.3a1ba420.js";import{f as b}from"./index.5a6ac86e.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 _};
|
@ -0,0 +1 @@
|
||||
import{G as r,H as _,C as i,B as f,D as p}from"./element-plus.b64c0a90.js";import{_ as V}from"./add-nav.vue_vue_type_script_setup_true_lang.53d58090.js";import{d as b,o as E,c as x,U as e,L as t,R as d,a as B}from"./@vue.51d7f2d8.js";const F={class:"flex-1"},w=b({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(l){return(y,o)=>{const u=r,m=_,n=i,s=f,c=p;return E(),x("div",null,[e(c,{"label-width":"70px"},{default:t(()=>[e(n,{label:"\u6392\u7248\u6837\u5F0F"},{default:t(()=>[e(m,{modelValue:l.content.style,"onUpdate:modelValue":o[0]||(o[0]=a=>l.content.style=a)},{default:t(()=>[e(u,{label:1},{default:t(()=>[d("\u6A2A\u6392")]),_:1}),e(u,{label:2},{default:t(()=>[d("\u7AD6\u6392")]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(n,{label:"\u6807\u9898\u540D\u79F0"},{default:t(()=>[e(s,{class:"w-[400px]",modelValue:l.content.title,"onUpdate:modelValue":o[1]||(o[1]=a=>l.content.title=a)},null,8,["modelValue"])]),_:1}),e(n,{label:"\u83DC\u5355\u8BBE\u7F6E"},{default:t(()=>[B("div",F,[e(V,{modelValue:l.content.data,"onUpdate:modelValue":o[2]||(o[2]=a=>l.content.data=a)},null,8,["modelValue"])])]),_:1})]),_:1})])}}});export{w as _};
|
@ -0,0 +1 @@
|
||||
import{G as r,H as _,C as i,B as f,D as p}from"./element-plus.4328d892.js";import{_ as V}from"./add-nav.vue_vue_type_script_setup_true_lang.4fd23862.js";import{d as b,o as E,c as x,U as e,L as t,R as d,a as B}from"./@vue.51d7f2d8.js";const F={class:"flex-1"},w=b({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(l){return(y,o)=>{const u=r,m=_,n=i,s=f,c=p;return E(),x("div",null,[e(c,{"label-width":"70px"},{default:t(()=>[e(n,{label:"\u6392\u7248\u6837\u5F0F"},{default:t(()=>[e(m,{modelValue:l.content.style,"onUpdate:modelValue":o[0]||(o[0]=a=>l.content.style=a)},{default:t(()=>[e(u,{label:1},{default:t(()=>[d("\u6A2A\u6392")]),_:1}),e(u,{label:2},{default:t(()=>[d("\u7AD6\u6392")]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(n,{label:"\u6807\u9898\u540D\u79F0"},{default:t(()=>[e(s,{class:"w-[400px]",modelValue:l.content.title,"onUpdate:modelValue":o[1]||(o[1]=a=>l.content.title=a)},null,8,["modelValue"])]),_:1}),e(n,{label:"\u83DC\u5355\u8BBE\u7F6E"},{default:t(()=>[B("div",F,[e(V,{modelValue:l.content.data,"onUpdate:modelValue":o[2]||(o[2]=a=>l.content.data=a)},null,8,["modelValue"])])]),_:1})]),_:1})])}}});export{w as _};
|
@ -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.b64c0a90.js";import{_ as $}from"./index.faac87da.js";import{_ as j}from"./picker.a03ef28f.js";import{_ as G}from"./picker.3283c3e3.js";import{f as b}from"./index.760285cd.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 _};
|
@ -0,0 +1 @@
|
||||
import{G as D,H as U,C as y,B as v,w,D as N}from"./element-plus.b64c0a90.js";import{_ as R}from"./index.faac87da.js";import{_ as $}from"./picker.a03ef28f.js";import{_ as j}from"./picker.3283c3e3.js";import{f as F}from"./index.760285cd.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 _};
|
1
public/admin/assets/audit.61169ca0.js
Normal file
1
public/admin/assets/audit.61169ca0.js
Normal file
@ -0,0 +1 @@
|
||||
import"./audit.vue_vue_type_script_setup_true_name_withdrawEdit_lang.27a1e947.js";import{_ as O}from"./audit.vue_vue_type_script_setup_true_name_withdrawEdit_lang.27a1e947.js";import"./element-plus.4328d892.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.df3950ef.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./index.5a6ac86e.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"./withdraw.657e25e6.js";export{O as default};
|
1
public/admin/assets/audit.a4fe2a70.js
Normal file
1
public/admin/assets/audit.a4fe2a70.js
Normal file
@ -0,0 +1 @@
|
||||
import"./audit.vue_vue_type_script_setup_true_name_withdrawEdit_lang.f230c37e.js";import{_ as O}from"./audit.vue_vue_type_script_setup_true_name_withdrawEdit_lang.f230c37e.js";import"./element-plus.b64c0a90.js";import"./@vue.51d7f2d8.js";import"./@vueuse.ec90c285.js";import"./@element-plus.a074d1f6.js";import"./lodash-es.29c53eac.js";import"./dayjs.e873ead7.js";import"./@amap.8a62addd.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.8bb6f5eb.js";import"./index.vue_vue_type_style_index_0_scoped_95d1884e_lang.0fc4c9f8.js";import"./index.760285cd.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"./withdraw.2d776b99.js";export{O as default};
|
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@
|
||||
import{J as W,k as D,K as $,B as z,C as Q,w as X,G as Y,H as Z,c as ee,D as ue}from"./element-plus.b64c0a90.js";import{P as oe}from"./index.8bb6f5eb.js";import{b as ae,w as te}from"./withdraw.2d776b99.js";import"./lodash.08438971.js";import{a as le,k as se}from"./index.760285cd.js";import{d as k,C as re,s as b,r as h,e as ne,$ as v,a4 as g,o as i,c as de,U as l,L as t,u as a,R as p,K as _,a as w}from"./@vue.51d7f2d8.js";const ie={class:"edit-popup"},ce=w("div",{class:"el-upload__text"},"\u6587\u4EF6\u62D6\u5165\u6216\u70B9\u51FB\u4E0A\u4F20",-1),pe=w("div",{class:"el-upload__tip"},"\u8BF7\u4E0A\u4F20JPG/JPEG/PNG/GIF/PDF\u6587\u4EF6",-1),_e=k({name:"withdrawEdit"}),be=k({..._e,props:{dictData:{type:Object,default:()=>({})}},emits:["success","close"],setup(me,{expose:C,emit:f}){const V=le(),A=re("base_url"),F=b(),m=b(),c=h("audit"),x=ne(()=>c.value=="audit"?"\u5BA1\u6838\u63D0\u73B0\u7533\u8BF7":"\u63D0\u73B0\u7533\u8BF7\u8BE6\u60C5"),o=v({id:"",order_sn:"",user_id:"",admin_id:"",amount:"",status:"",transfer_voucher:"",deny_desc:"",company_id:"",company_name:"",s_date:"",e_date:""}),P=v({status:[{required:!0,validator:(u,e,s)=>{e==1||e==2?s():s(new Error("\u8BF7\u9009\u62E9\u5BA1\u6838\u662F\u5426\u901A\u8FC7!"))},trigger:["blur"]}],transfer_voucher:[{required:!0,message:"\u8BF7\u5148\u4E0A\u4F20\u51ED\u8BC1",trigger:["blur"]}],deny_desc:[{required:!0,message:"\u8BF7\u586B\u5199\u62D2\u7EDD\u539F\u56E0",trigger:["blur"]}]}),E=async u=>{for(const e in o)u[e]!=null&&u[e]!=null&&(o[e]=u[e])},G=async u=>{const e=await ae({id:u.id});E(e)},R=["application/pdf","image/jpeg","image/gif","image/png"],U=u=>{if(!R.includes(u.type))return D.error("\u8BF7\u4E0A\u4F20JPG/JPEG/PNG/GIF/PDF\u6587\u4EF6"),!1},d=h(null),I=u=>{d.value.clearFiles();const e=u[0];e.uid=$(),d.value.handleStart(e),d.value.submit()},J=u=>{if(u.code==0&&u.show==1)return o.transfer_voucher="",d.value.clearFiles(),D.error(u.msg||"\u4E0A\u4F20\u5931\u8D25");o.transfer_voucher=u.data.uri},N=()=>{window.open(o.transfer_voucher)},T=async()=>{var e,s;await((e=F.value)==null?void 0:e.validate());const u={...o};c.value==await te(u),(s=m.value)==null||s.close(),f("success")},q=(u="add")=>{var e;c.value=u,(e=m.value)==null||e.open()},S=()=>{f("close")};return C({open:q,setFormData:E,getDetail:G}),(u,e)=>{const s=z,n=Q,j=g("router-link"),B=X,y=Y,K=Z,L=g("upload-filled"),H=ee,M=W,O=ue;return i(),de("div",ie,[l(oe,{ref_key:"popupRef",ref:m,title:a(x),async:!0,width:"550px",onConfirm:T,onClose:S},{default:t(()=>[l(O,{ref_key:"formRef",ref:F,model:a(o),"label-width":"90px",rules:a(P)},{default:t(()=>[l(n,{label:"\u8BA2\u5355\u7F16\u53F7",prop:"order_sn"},{default:t(()=>[l(s,{readonly:"",modelValue:a(o).order_sn,"onUpdate:modelValue":e[0]||(e[0]=r=>a(o).order_sn=r),clearable:"",placeholder:"\u8BF7\u8F93\u5165\u8BA2\u5355\u7F16\u53F7"},null,8,["modelValue"])]),_:1}),l(n,{label:"\u63D0\u73B0\u91D1\u989D",prop:"amount"},{default:t(()=>[l(s,{readonly:"",modelValue:a(o).amount,"onUpdate:modelValue":e[1]||(e[1]=r=>a(o).amount=r),clearable:"",placeholder:"\u8BF7\u8F93\u5165\u63D0\u73B0\u91D1\u989D"},null,8,["modelValue"])]),_:1}),l(n,{label:"",prop:"amount"},{default:t(()=>[l(B,{type:"primary",link:""},{default:t(()=>[l(j,{to:{path:a(se)("finance.account_log/lists"),query:{company_id:a(o).company_id,s_date:a(o).s_date,e_date:a(o).e_date}}},{default:t(()=>[p("\u67E5\u770B\u660E\u7EC6")]),_:1},8,["to"])]),_:1})]),_:1}),l(n,{label:"\u5BA1\u6838",prop:"status"},{default:t(()=>[l(K,{modelValue:a(o).status,"onUpdate:modelValue":e[2]||(e[2]=r=>a(o).status=r)},{default:t(()=>[l(y,{label:1},{default:t(()=>[p("\u901A\u8FC7")]),_:1}),l(y,{label:2},{default:t(()=>[p("\u62D2\u7EDD")]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(o).status==2?(i(),_(n,{key:0,label:"\u5907\u6CE8",prop:"deny_desc"},{default:t(()=>[l(s,{modelValue:a(o).deny_desc,"onUpdate:modelValue":e[3]||(e[3]=r=>a(o).deny_desc=r),clearable:"",type:"textarea",placeholder:"\u8BF7\u8F93\u5165\u5907\u6CE8"},null,8,["modelValue"])]),_:1})):(i(),_(n,{key:1,label:"\u8F6C\u8D26\u51ED\u8BC1",prop:"transfer_voucher"},{default:t(()=>[a(c)=="audit"?(i(),_(M,{key:0,class:"upload-demo",style:{width:"100%"},drag:"",headers:{Token:a(V).token},action:a(A)+"/upload/file",limit:1,"on-success":J,"on-exceed":I,"before-upload":U,ref_key:"upload",ref:d},{tip:t(()=>[pe]),default:t(()=>[l(H,{class:"el-icon--upload"},{default:t(()=>[l(L)]),_:1}),ce]),_:1},8,["headers","action"])):(i(),_(B,{key:1,type:"primary",link:"",onClick:N},{default:t(()=>[p(" \u67E5\u770B\u51ED\u8BC1 ")]),_:1}))]),_:1}))]),_:1},8,["model","rules"])]),_:1},8,["title"])])}}});export{be as _};
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user