diff --git a/.gitignore b/.gitignore index 95d65ce2b9a71f4bb29af2f1f9c13231bc69e3b2..260f7385b912a57db924a327ece75364446a8ab6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ /backend/venv /backend/.idea +/backend/media/* +/web/node_modules .idea .history/ diff --git a/backend/__init__.py b/backend/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..4c245e18e2ccb396c8b3b115b8dd09a85a6f4212 --- /dev/null +++ b/backend/__init__.py @@ -0,0 +1,9 @@ +# -*- coding: utf-8 -*- +""" +@Time: 2025/3/15 15:50 +@File: __init__.py.py +@IDE: PyCharm +@Auth: Kendrick.Kc.Guan +@Email: 509556985@qq.com +@Version: 1.0 +""" diff --git a/backend/application/dispatch.py b/backend/application/dispatch.py index 101b3ab8c0255ed8d972348a51230dc1e7ee643b..f5d6f4bf8f7297b7275cdeac3cb19bf73e16c5a8 100644 --- a/backend/application/dispatch.py +++ b/backend/application/dispatch.py @@ -32,7 +32,7 @@ def _get_all_dictionary(): "children": list( Dictionary.objects.filter(parent=instance.id) .filter(status=1) - .values("label", "value", "type", "color") + .values("id", "label", "value", "type", "color") ), } ) diff --git a/backend/application/settings.py b/backend/application/settings.py index 1d0adf79b43c695cbb576518c213ea2837303a07..06f90e06793fed427d3e76db8379f4d417b0851d 100644 --- a/backend/application/settings.py +++ b/backend/application/settings.py @@ -62,6 +62,17 @@ INSTALLED_APPS = [ "dvadmin.system", ] +# 自定义应用 +My_Apps = [ + 'apps.crud_patron', # 客户管理 + 'apps.product', # 产品管理 + 'apps.inventory', # 库存管理 + 'apps.production', # 生产管理 + 'apps.finance', # 财务管理 +] + +INSTALLED_APPS += My_Apps + MIDDLEWARE = [ "dvadmin.utils.middleware.HealthCheckMiddleware", "django.middleware.security.SecurityMiddleware", @@ -411,4 +422,5 @@ from dvadmin3_celery.settings import * # celery 异步任务 #from dvadmin_social_auth.settings import * #from dvadmin_uniapp.settings import * # ... +from dvadmin3_flow.settings import * # 审批流组件 # ********** 一键导入插件配置结束 ********** diff --git a/backend/application/urls.py b/backend/application/urls.py index cb5a89997adb091fb3f8b071a6c7be814583e766..ea096cf08d2ccc86640228242eee840793eeb8eb 100644 --- a/backend/application/urls.py +++ b/backend/application/urls.py @@ -110,13 +110,27 @@ urlpatterns = ( path("api/init/settings/", InitSettingsViewSet.as_view()), path("apiLogin/", ApiLogin.as_view()), - # 仅用于开发,上线需关闭 - path("api/token/", LoginTokenView.as_view()), - # 前端页面映射 - path('web/', web_view, name='web_view'), - path('web/', serve_web_files, name='serve_web_files'), + # # 仅用于开发,上线需关闭 + # path("api/token/", LoginTokenView.as_view()), + # # 前端页面映射 + # path('web/', web_view, name='web_view'), + # path('web/', serve_web_files, name='serve_web_files'), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + static(settings.STATIC_URL, document_root=settings.STATIC_URL) + [re_path(ele.get('re_path'), include(ele.get('include'))) for ele in settings.PLUGINS_URL_PATTERNS] ) + +#添加如下内容,把自己的路由单独写出来,这样方便与dvadmin3的官方路由作区分 +My_Urls = ( + [ #这里的crud_demo是指django创建的应用名称crud_demo + path('',include('apps.crud_patron.urls')), + path('',include('apps.inventory.urls')), + path('',include('apps.product.urls')), + path('',include('apps.production.urls')), + path('',include('apps.finance.urls')), + ] +) + +# 这里把自己的路径单独出来,后面再追加在一起 +urlpatterns += My_Urls diff --git a/backend/apps/__init__.py b/backend/apps/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..99661c216ee6eea8c11b3d92a409e91d22e47368 --- /dev/null +++ b/backend/apps/__init__.py @@ -0,0 +1,9 @@ +# -*- coding: utf-8 -*- +""" +@Time: 2025/3/14 11:36 +@File: __init__.py.py +@IDE: PyCharm +@Auth: Kendrick.Kc.Guan +@Email: 509556985@qq.com +@Version: 1.0 +""" diff --git a/backend/apps/crud_patron/__init__.py b/backend/apps/crud_patron/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/backend/apps/crud_patron/admin.py b/backend/apps/crud_patron/admin.py new file mode 100644 index 0000000000000000000000000000000000000000..8c38f3f3dad51e4585f3984282c2a4bec5349c1e --- /dev/null +++ b/backend/apps/crud_patron/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/backend/apps/crud_patron/apps.py b/backend/apps/crud_patron/apps.py new file mode 100644 index 0000000000000000000000000000000000000000..cccf857e97452b86a304f9a0d7f59d489134cb9f --- /dev/null +++ b/backend/apps/crud_patron/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class CrudPatronConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "apps.crud_patron" diff --git a/backend/apps/crud_patron/migrations/__init__.py b/backend/apps/crud_patron/migrations/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/backend/apps/crud_patron/models.py b/backend/apps/crud_patron/models.py new file mode 100644 index 0000000000000000000000000000000000000000..e9f3edddf99ada92a755af54df92a1b29d227426 --- /dev/null +++ b/backend/apps/crud_patron/models.py @@ -0,0 +1,162 @@ +from django.db import models + +# Create your models here. +from dvadmin.utils.models import CoreModel, table_prefix +from dvadmin.system.models import Users, Dictionary, FileList +from apps.product.models import ProductModel +from apps.production.models import SampleCostModel +from apps.utils.random_code import sell_order_id, contract_order_id, sample_order_id + + +class CrudPatronAddressModel(CoreModel): + """ + 收件人信息表 + """ + name = models.CharField(max_length=255, verbose_name="收件人名称", help_text="收件人名称") + mobile = models.CharField(max_length=255, verbose_name="收件人手机", help_text="收件人手机") + address = models.CharField(max_length=255, verbose_name="详细地址", help_text="详细地址") + note = models.TextField(verbose_name="备注", null=True, blank=True, help_text="备注") + + def __str__(self): + return f"{self.name}" + + class Meta: + db_table = table_prefix + 'crud_patron_address' + verbose_name = '收件人信息表' + verbose_name_plural = verbose_name + ordering = ('-create_datetime',) + + +class CrudPatronModel(CoreModel): + """ + 客户管理表 + """ + username = models.CharField(max_length=255, verbose_name="客户名称", null=True, blank=True, help_text="客户名称") + code = models.CharField(max_length=255, verbose_name="客户代号", null=True, blank=True, help_text="客户代号") + phone = models.CharField(max_length=255, verbose_name="联系电话", null=True, blank=True, help_text="联系电话") + email = models.EmailField(max_length=255, verbose_name="邮箱地址", null=True, blank=True, help_text="邮箱地址") + age = models.IntegerField(verbose_name="年龄", null=True, blank=True, help_text="年龄") + GENDER_CHOICES = ( + (0, "未知"), + (1, "男"), + (2, "女"), + ) + sex = models.IntegerField(default=0, choices=GENDER_CHOICES, verbose_name="性别", null=True, blank=True, + help_text="性别") + open_order_name = models.CharField(max_length=255, verbose_name="开单名称") + my_remark = models.CharField(max_length=255, verbose_name="我方备注", null=True, blank=True, help_text="我方备注") + HIERARCHY_CHOICES = ( + (0, "1级"), + (1, "2级"), + (2, "3级"), + (3, "4级"), + (4, "5级"), + ) + hierarchy = models.IntegerField(default=0, choices=HIERARCHY_CHOICES, verbose_name="客户等级", help_text="客户等级") + tags = models.ManyToManyField(Dictionary, verbose_name="客户标签", blank=True, db_constraint=False, + help_text="客户标签", related_name="crud_patron_tags") + express = models.CharField(max_length=255, verbose_name="默认物流", null=True, blank=True, help_text="默认物流") + salesman = models.ManyToManyField(Users, verbose_name="业务员", blank=True, db_constraint=False, + help_text="业务员", related_name="crud_patron_salesman") + files = models.JSONField(verbose_name="上传附件", null=True, help_text="上传附件") + images = models.JSONField(verbose_name="上传图片", null=True, help_text="上传图片") + addressee = models.ManyToManyField(CrudPatronAddressModel, verbose_name="收件信息", blank=True, + db_constraint=False, help_text="收件信息") + + class Meta: + db_table = table_prefix + 'crud_patron' + app_label = 'crud_patron' + verbose_name = '客户管理表' + verbose_name_plural = verbose_name + ordering = ('-create_datetime',) + + +class ContractModel(CoreModel): + """ + 合同管理表 + """ + contract_ids = models.CharField(max_length=255, verbose_name="合同编号", null=True, blank=True, help_text="合同编号") + contract_type = models.CharField(max_length=255, verbose_name="合同类型", help_text="合同类型") + contract_remark = models.TextField(verbose_name="合同备注", null=True, blank=True, help_text="合同备注") + contract_file = models.JSONField(verbose_name="附件", null=True, blank=True, help_text="附件") + contract_user = models.ForeignKey(CrudPatronModel, on_delete=models.CASCADE, null=True, blank=True, verbose_name="合同客户", help_text="合同客户") + + class Meta: + db_table = table_prefix + 'crud_contract' + verbose_name = '合同管理表' + verbose_name_plural = verbose_name + ordering = ('-create_datetime',) + + def __str__(self): + return f"{self.contract_ids}" + + def save(self, *args, **kwargs): + if not self.contract_ids: + self.contract_ids = contract_order_id() + super().save(*args, **kwargs) + + +class SellOrderModel(CoreModel): + """ + 销售订单表 + """ + order_ids = models.CharField(max_length=255, verbose_name="订单编号", null=True, blank=True, help_text="订单编号") + order_type = models.CharField(max_length=255, verbose_name="订单类型", help_text="订单类型") + order_status = models.CharField(max_length=255, verbose_name="订单状态", null=True, blank=True, help_text="订单状态") + order_remark = models.TextField(verbose_name="订单备注", null=True, blank=True, help_text="订单备注") + order_user = models.ForeignKey(CrudPatronModel, on_delete=models.CASCADE, verbose_name="订单客户", null=True, blank=True, help_text="订单客户") + order_file = models.JSONField(verbose_name="附件", null=True, blank=True, help_text="附件") + order_payment_method = models.CharField(max_length=255, verbose_name="付款方式", null=True, blank=True, help_text="付款方式") + order_payment_remark = models.CharField(max_length=255, verbose_name="付款备注", null=True, blank=True, help_text="付款备注") + order_transport = models.CharField(max_length=255, verbose_name="运输方式", null=True, blank=True, help_text="运输方式") + order_discount = models.FloatField(max_length=255, verbose_name="折扣", null=True, blank=True, help_text="折扣") + order_discount_reason = models.CharField(max_length=255, verbose_name="折扣理由", null=True, blank=True, help_text="折扣理由") + order_delivery_date = models.CharField(max_length=255, verbose_name="交货日期", help_text="交货日期") + order_contract = models.ManyToManyField(ContractModel, verbose_name="合同", blank=True, db_constraint=False, help_text="合同") + order_product = models.ManyToManyField(ProductModel, verbose_name="产品信息", blank=True, db_constraint=False, help_text="产品信息") + + class Meta: + db_table = table_prefix + 'crud_sell_order' + verbose_name = '销售订单表' + verbose_name_plural = verbose_name + ordering = ('-create_datetime',) + + def __str__(self): + return f"{self.order_ids}" + + def save(self, *args, **kwargs): + if not self.order_ids: + self.order_ids = sell_order_id() + super().save(*args, **kwargs) + + +# 样品单 +class SampleOrderModel(CoreModel): + """ + 样品单 + """ + order_ids = models.CharField(max_length=255, verbose_name="样品单号", null=True, blank=True, help_text="样品单号") + order_type = models.CharField(max_length=255, verbose_name="类型", help_text="类型") + order_status = models.CharField(max_length=255, verbose_name="状态", null=True, blank=True, help_text="状态") + order_user = models.ForeignKey(CrudPatronModel, on_delete=models.CASCADE, verbose_name="客户代号", null=True, blank=True, help_text="客户代号") + order_payment_method = models.CharField(max_length=255, verbose_name="付款方式", null=True, blank=True, help_text="付款方式") + order_payment_remark = models.CharField(max_length=255, verbose_name="付款备注", null=True, blank=True, help_text="付款备注") + order_transport = models.CharField(max_length=255, verbose_name="运输方式", null=True, blank=True, help_text="运输方式") + order_product = models.TextField(verbose_name="样品信息", help_text="样品信息") + order_file = models.JSONField(verbose_name="附件", null=True, blank=True, help_text="附件") + order_sample = models.ManyToManyField(SampleCostModel, verbose_name="样品成本", blank=True, db_constraint=False, help_text="样品成本") + order_remark = models.TextField(verbose_name="备注", null=True, blank=True, help_text="备注") + + class Meta: + db_table = table_prefix + 'crud_sample_order' + verbose_name = '样品单' + verbose_name_plural = verbose_name + ordering = ('-create_datetime',) + + def __str__(self): + return f"{self.order_ids}" + + def save(self, *args, **kwargs): + if not self.order_ids: + self.order_ids = sample_order_id() + super().save(*args, **kwargs) diff --git a/backend/apps/crud_patron/serializers.py b/backend/apps/crud_patron/serializers.py new file mode 100644 index 0000000000000000000000000000000000000000..d6b1dfa4ecbb122b974c4e192f710fe0b9925c1d --- /dev/null +++ b/backend/apps/crud_patron/serializers.py @@ -0,0 +1,273 @@ +# -*- coding: utf-8 -*- +""" +@Time: 2025/3/16 09:59 +@File: serializers.py +@IDE: PyCharm +@Auth: Kendrick.Kc.Guan +@Email: 509556985@qq.com +@Version: 1.0 +""" + +from .models import CrudPatronModel, CrudPatronAddressModel, SellOrderModel, ContractModel, SampleOrderModel +from apps.production.models import SampleCostModel +from apps.production.serializers import SampleCostModelSerializer +from dvadmin.utils.serializers import CustomModelSerializer +from rest_framework import serializers +from django.forms.models import model_to_dict + + +class CrudPatronAddressModelExportImportSerializer(CustomModelSerializer): + class Meta: + model = CrudPatronAddressModel + fields = "__all__" # 指定需要序列化的字段 + + +class CrudPatronModelImportSerializer(CustomModelSerializer): + + class Meta: + model = CrudPatronModel + fields = "__all__" + + +class CrudPatronModelExportSerializer(CustomModelSerializer): + + class Meta: + model = CrudPatronModel + fields = "__all__" + + +class CrudPatronModelSerializer(CustomModelSerializer): + """ + 序列化器 + """ + + # 收件信息字段定制 + addressee = serializers.SerializerMethodField() + + class Meta: + model = CrudPatronModel + fields = "__all__" + + def get_addressee(self, obj): + """ 结构化收件地址信息 """ + return [ + { + "name": addr.name, + "mobile": addr.mobile, + "address": addr.address, + "note": addr.note, + "id": -addr.id, + "$editable_id": -addr.id, + "create_datetime": addr.create_datetime.strftime("%Y-%m-%d %H:%M:%S") + } + for addr in obj.addressee.all() + ] + + +class CrudPatronAddressModelSerializer(CustomModelSerializer): + class Meta: + model = CrudPatronAddressModel + fields = "__all__" # 指定需要序列化的字段 + + +class CrudPatronModelCreateUpdateSerializer(CustomModelSerializer): + # 处理嵌套地址创建 + addressee = CrudPatronAddressModelSerializer(many=True, required=False) + + class Meta: + model = CrudPatronModel + fields = "__all__" + read_only_fields = ("id", "create_datetime", "update_datetime") + + def create(self, validated_data): + # 提取地址数据 + addresses_data = validated_data.pop('addressee', []) + + # 创建主对象 + instance = super().create(validated_data) + + # 创建关联地址 + self._process_addresses(instance, addresses_data) + return instance + + def update(self, instance, validated_data): + # 提取地址数据 + addresses_data = validated_data.pop('addressee', []) + + # 更新主对象 + instance = super().update(instance, validated_data) + + # 清除旧地址并创建新地址 + instance.addressee.clear() + self._process_addresses(instance, addresses_data) + return instance + + def _process_addresses(self, instance, addresses_data): + """ 创建/更新多对多字段 addressee """ + request = self.context.get('request') + for address_data in addresses_data: + # 处理新建地址(带负ID表示临时对象) + if address_data.get('id', 0) < 0: + address_data.pop('id', None) + address_data.pop('$editable_id', None) + + # 联合查询条件 + query = CrudPatronAddressModel.objects.filter( + name=address_data.get('name'), + mobile=address_data.get('mobile') + ) + + # 存在则更新,不存在则创建 + if query.exists(): + addr_obj = query.first() + address_serializer = CrudPatronAddressModelSerializer( + addr_obj, + data=address_data, + partial=True, # 允许部分更新 + context={'request': request} + ) + else: + address_serializer = CrudPatronAddressModelSerializer( + data=address_data, + context={'request': request} + ) + + address_serializer.is_valid(raise_exception=True) + address = address_serializer.save( + modifier=request.user.id if request else None, + dept_belong_id=getattr(request.user, 'dept_id', None) if request else None + ) + + # 仅当新建时添加关联(更新时已存在关联) + instance.addressee.add(address) + + +class SellOrderModelSerializer(CustomModelSerializer): + + class Meta: + model = SellOrderModel + fields = "__all__" + + def get_order_contract(self, obj): + """ 结构化合同字段 """ + return [ + model_to_dict(item) for item in obj.order_contract.all() + ] + + def get_order_product(self, obj): + """ 结构化产品信息字段 """ + return [ + model_to_dict(item) for item in obj.order_product.all() + ] + + +class ContractModelSerializer(CustomModelSerializer): + + class Meta: + model = ContractModel + fields = "__all__" + +""" 样品单 - 开始 """ +class SampleOrderModelSerializer(CustomModelSerializer): + """ + 序列化器 + """ + + # 字段定制 + order_sample = serializers.SerializerMethodField() + + class Meta: + model = SampleOrderModel + fields = "__all__" + + def get_order_sample(self, obj): + """ 结构化信息 """ + return [ + { + "sample_name": addr.sample_name, + "sample_specification": addr.sample_specification, + "sample_number": addr.sample_number, + "sample_price": addr.sample_price, + "sample_total_price": addr.sample_total_price, + "sample_note": addr.sample_note, + "id": -addr.id, + "$editable_id": -addr.id, + "create_datetime": addr.create_datetime.strftime("%Y-%m-%d %H:%M:%S") + } + for addr in obj.order_sample.all() + ] + + +class SampleOrderModelCreateUpdateSerializer(CustomModelSerializer): + # 处理嵌套地址创建 + order_sample = SampleCostModelSerializer(many=True, required=False) + + class Meta: + model = SampleOrderModel + fields = "__all__" + read_only_fields = ("id", "create_datetime", "update_datetime") + + def create(self, validated_data): + # 提取地址数据 + order_sample_data = validated_data.pop('order_sample', []) + + # 创建主对象 + instance = super().create(validated_data) + + # 创建关联地址 + self._process_order_sample(instance, order_sample_data) + return instance + + def update(self, instance, validated_data): + # 提取地址数据 + order_sample_data = validated_data.pop('order_sample', []) + + # 更新主对象 + instance = super().update(instance, validated_data) + + # 清除旧地址并创建新地址 + instance.order_sample.clear() + self._process_order_sample(instance, order_sample_data) + return instance + + def _process_order_sample(self, instance, order_sample_data): + """ 创建/更新多对多字段 addressee """ + request = self.context.get('request') + for orders_data in order_sample_data: + print('数据:', orders_data) + # 处理新建地址(带负ID表示临时对象) + if orders_data.get('id', 0) < 0: + orders_data.pop('id', None) + orders_data.pop('$editable_id', None) + + # 联合查询条件 + query = SampleCostModel.objects.filter( + sample_name=orders_data.get('sample_name'), + sample_specification=orders_data.get('sample_specification') + ) + + # 存在则更新,不存在则创建 + if query.exists(): + addr_obj = query.first() + orders_serializer = SampleCostModelSerializer( + addr_obj, + data=orders_data, + partial=True, # 允许部分更新 + context={'request': request} + ) + else: + orders_serializer = SampleCostModelSerializer( + data=orders_data, + context={'request': request} + ) + + orders_serializer.is_valid(raise_exception=True) + orders = orders_serializer.save( + sample_total_price=orders_data['sample_price'] * orders_data['sample_number'], + modifier=request.user.id if request else None, + dept_belong_id=getattr(request.user, 'dept_id', None) if request else None + ) + + # 仅当新建时添加关联(更新时已存在关联) + instance.order_sample.add(orders) +""" 样品单 - 结束 """ diff --git a/backend/apps/crud_patron/tests.py b/backend/apps/crud_patron/tests.py new file mode 100644 index 0000000000000000000000000000000000000000..c2629a3abaadbb26e66740adaf543ab397e64675 --- /dev/null +++ b/backend/apps/crud_patron/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. \ No newline at end of file diff --git a/backend/apps/crud_patron/urls.py b/backend/apps/crud_patron/urls.py new file mode 100644 index 0000000000000000000000000000000000000000..a20b65dded1985f4d95f075ef8ab93f2261ad311 --- /dev/null +++ b/backend/apps/crud_patron/urls.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +""" +@Time: 2025/3/16 10:07 +@File: urls.py +@IDE: PyCharm +@Auth: Kendrick.Kc.Guan +@Email: 509556985@qq.com +@Version: 1.0 +""" + + +from rest_framework.routers import SimpleRouter + +from .views import CrudPatronModelViewSet, CrudPatronAddressModelViewSet +from .views import SellOrderModelViewSet, ContractModelViewSet +from .views import SampleOrderModelViewSet + +router = SimpleRouter() +# 这里进行注册路径,并把视图关联上,这里的api地址以视图名称为后缀,这样方便记忆api/CrudPatronViewSet +router.register("api/CrudPatronModelViewSet", CrudPatronModelViewSet) +router.register("api/CrudPatronAddressModelViewSet", CrudPatronAddressModelViewSet) +router.register("api/SellOrderModelViewSet", SellOrderModelViewSet) +router.register("api/ContractModelViewSet", ContractModelViewSet) +router.register("api/SampleOrderModelViewSet", SampleOrderModelViewSet) + +urlpatterns = [ +] +urlpatterns += router.urls \ No newline at end of file diff --git a/backend/apps/crud_patron/views.py b/backend/apps/crud_patron/views.py new file mode 100644 index 0000000000000000000000000000000000000000..c1d81fda3978559adc01ebac8d1ecbb6956c7f8c --- /dev/null +++ b/backend/apps/crud_patron/views.py @@ -0,0 +1,143 @@ +from django.shortcuts import render + +# Create your views here. +from .models import CrudPatronModel, CrudPatronAddressModel, SellOrderModel, ContractModel, SampleOrderModel +from .serializers import CrudPatronModelSerializer, CrudPatronModelCreateUpdateSerializer +from .serializers import CrudPatronModelExportSerializer, CrudPatronModelImportSerializer +from .serializers import CrudPatronAddressModelSerializer, CrudPatronAddressModelExportImportSerializer +from .serializers import SellOrderModelSerializer +from .serializers import ContractModelSerializer +from .serializers import SampleOrderModelSerializer, SampleOrderModelCreateUpdateSerializer +from dvadmin.utils.viewset import CustomModelViewSet + + +class CrudPatronModelViewSet(CustomModelViewSet): + """ + 客户管理 + list:查询 + create:新增 + update:修改 + retrieve:单例 + destroy:删除 + """ + queryset = CrudPatronModel.objects.all() + serializer_class = CrudPatronModelSerializer + create_serializer_class = CrudPatronModelCreateUpdateSerializer + update_serializer_class = CrudPatronModelCreateUpdateSerializer + + # 导出序列化器 + export_serializer_class = CrudPatronModelExportSerializer + export_field_label = { + "username": "客户名称", + "phone": "联系电话", + "email": "邮箱地址", + # "age": "年龄", + # "sex": "性别", + # "open_order_name": "开单名称", + # "my_remark": "我方备注", + # "hierarchy": "客户等级", + # "tags": "客户标签", + # "express": "默认物流", + # "salesman": "业务员", + # "addressee": "收件信息", + } + + # 导入序列化器 + import_serializer_class = CrudPatronModelImportSerializer + import_field_dict = { + "username": "客户名称", + "phone": "联系电话", + "email": "邮箱地址", + "open_order_name": "开单名称", + } + + +class CrudPatronAddressModelViewSet(CustomModelViewSet): + """ + 收件人信息 + list:查询 + create:新增 + update:修改 + retrieve:单例 + destroy:删除 + """ + queryset = CrudPatronAddressModel.objects.all() + serializer_class = CrudPatronAddressModelSerializer + create_serializer_class = CrudPatronAddressModelSerializer + update_serializer_class = CrudPatronAddressModelSerializer + + data_dict = { + "name": "收件人名称", + "mobile": "收件人手机", + "address": "收件地址", + "note": "备注", + } + + # 导出序列化器 + export_serializer_class = CrudPatronAddressModelExportImportSerializer + export_field_label = data_dict + + # 导入序列化器 + import_serializer_class = CrudPatronAddressModelExportImportSerializer + import_field_dict = data_dict + + +class SellOrderModelViewSet(CustomModelViewSet): + """ + 销售订单 + list:查询 + create:新增 + update:修改 + retrieve:单例 + destroy:删除 + """ + queryset = SellOrderModel.objects.all() + serializer_class = SellOrderModelSerializer + create_serializer_class = SellOrderModelSerializer + update_serializer_class = SellOrderModelSerializer + + # data_dict = { + # "name": "收件人名称", + # "mobile": "收件人手机", + # "address": "收件地址", + # "note": "备注", + # } + # + # # 导出序列化器 + # export_serializer_class = CrudPatronAddressModelExportImportSerializer + # export_field_label = data_dict + # + # # 导入序列化器 + # import_serializer_class = CrudPatronAddressModelExportImportSerializer + # import_field_dict = data_dict + + +class ContractModelViewSet(CustomModelViewSet): + """ + 合同 + list:查询 + create:新增 + update:修改 + retrieve:单例 + destroy:删除 + """ + queryset = ContractModel.objects.all() + serializer_class = ContractModelSerializer + create_serializer_class = ContractModelSerializer + update_serializer_class = ContractModelSerializer + + +class SampleOrderModelViewSet(CustomModelViewSet): + """ + 样品订单 + list:查询 + create:新增 + update:修改 + retrieve:单例 + destroy:删除 + """ + queryset = SampleOrderModel.objects.all() + serializer_class = SampleOrderModelSerializer + create_serializer_class = SampleOrderModelCreateUpdateSerializer + update_serializer_class = SampleOrderModelCreateUpdateSerializer + diff --git a/backend/apps/finance/__init__.py b/backend/apps/finance/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/backend/apps/finance/admin.py b/backend/apps/finance/admin.py new file mode 100644 index 0000000000000000000000000000000000000000..8c38f3f3dad51e4585f3984282c2a4bec5349c1e --- /dev/null +++ b/backend/apps/finance/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/backend/apps/finance/apps.py b/backend/apps/finance/apps.py new file mode 100644 index 0000000000000000000000000000000000000000..242a67c8f15e6a640093ac9dedda5f2071001cc6 --- /dev/null +++ b/backend/apps/finance/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class FinanceConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "apps.finance" diff --git a/backend/apps/finance/migrations/__init__.py b/backend/apps/finance/migrations/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/backend/apps/finance/models.py b/backend/apps/finance/models.py new file mode 100644 index 0000000000000000000000000000000000000000..9fc9d680dd6b7b00a69eb9123c3d0c1847a47e18 --- /dev/null +++ b/backend/apps/finance/models.py @@ -0,0 +1,4 @@ +from django.db import models + +# Create your models here. +from dvadmin.utils.models import CoreModel, table_prefix diff --git a/backend/apps/finance/tests.py b/backend/apps/finance/tests.py new file mode 100644 index 0000000000000000000000000000000000000000..7ce503c2dd97ba78597f6ff6e4393132753573f6 --- /dev/null +++ b/backend/apps/finance/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/backend/apps/finance/urls.py b/backend/apps/finance/urls.py new file mode 100644 index 0000000000000000000000000000000000000000..fe4bcb79792f437764a57f57a874b2e5ccf2ef1b --- /dev/null +++ b/backend/apps/finance/urls.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +""" +@Time: 2025/3/16 10:07 +@File: urls.py +@IDE: PyCharm +@Auth: Kendrick.Kc.Guan +@Email: 509556985@qq.com +@Version: 1.0 +""" + + +from rest_framework.routers import SimpleRouter + +router = SimpleRouter() +# 这里进行注册路径,并把视图关联上,这里的api地址以视图名称为后缀,这样方便记忆api/CrudPatronViewSet + +urlpatterns = [ +] +urlpatterns += router.urls \ No newline at end of file diff --git a/backend/apps/finance/views.py b/backend/apps/finance/views.py new file mode 100644 index 0000000000000000000000000000000000000000..91ea44a218fbd2f408430959283f0419c921093e --- /dev/null +++ b/backend/apps/finance/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/backend/apps/inventory/__init__.py b/backend/apps/inventory/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/backend/apps/inventory/admin.py b/backend/apps/inventory/admin.py new file mode 100644 index 0000000000000000000000000000000000000000..8c38f3f3dad51e4585f3984282c2a4bec5349c1e --- /dev/null +++ b/backend/apps/inventory/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/backend/apps/inventory/apps.py b/backend/apps/inventory/apps.py new file mode 100644 index 0000000000000000000000000000000000000000..c6aac5f577b7441e3d339af488a21ae20210e45b --- /dev/null +++ b/backend/apps/inventory/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class InventoryConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "apps.inventory" diff --git a/backend/apps/inventory/migrations/__init__.py b/backend/apps/inventory/migrations/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/backend/apps/inventory/models.py b/backend/apps/inventory/models.py new file mode 100644 index 0000000000000000000000000000000000000000..9327090e4daf57972799809b96b0fe91a1d83e6d --- /dev/null +++ b/backend/apps/inventory/models.py @@ -0,0 +1,185 @@ +from django.db import models + +# Create your models here. +from dvadmin.utils.models import CoreModel, table_prefix +from apps.utils.random_code import assembly_product_code, finished_product_code, semi_finished_product_code +from apps.utils.random_code import materiel_code, raw_material_code +from dvadmin3_flow.base_model import FlowBaseModel + + +class StashManageModel(FlowBaseModel, CoreModel): + """ + 仓库管理 + """ + stash_name = models.CharField(max_length=255, verbose_name="仓库名称", help_text="仓库名称") + stash_address = models.TextField(verbose_name="仓库地址", null=True, blank=True, help_text="仓库地址") + stash_position = models.CharField(max_length=255, verbose_name="仓位", help_text="仓位") + stash_note = models.TextField(verbose_name="备注", null=True, blank=True, help_text="备注") + + class Meta: + db_table = table_prefix + 'crud_stash_manage' + verbose_name = '仓库管理表' + verbose_name_plural = verbose_name + ordering = ('-create_datetime',) + + def __str__(self): + return f"{self.stash_name}" + + +class InAndOutRecordModel(CoreModel): + """ + 入库出库记录表 + """ + in_or_out = models.CharField(max_length=255, verbose_name="出入库类型", help_text="出入库类型") + in_or_out_aim = models.CharField(max_length=255, verbose_name="进出来源与目的", help_text="进出来源与目的") + in_or_out_code = models.CharField(max_length=255, verbose_name="商品编号", help_text="商品编号") + in_or_out_name = models.CharField(max_length=255, verbose_name="商品名称", null=True, blank=True, help_text="商品名称") + in_or_out_type = models.CharField(max_length=255, verbose_name="商品类型", null=True, blank=True, help_text="商品类型") + in_or_out_number = models.IntegerField(verbose_name="出入库数量", help_text="出入库数量") + in_or_out_unit = models.CharField(max_length=255, verbose_name="单位", help_text="单位") + in_or_out_stash = models.ForeignKey(StashManageModel, on_delete=models.CASCADE, verbose_name="仓位", null=True, blank=True, help_text="仓位") + in_or_out_note = models.TextField(verbose_name="备注", null=True, blank=True, help_text="备注") + + class Meta: + db_table = table_prefix + 'crud_in_and_out_record' + verbose_name = '出入库记录表' + verbose_name_plural = verbose_name + ordering = ('-create_datetime',) + + def __str__(self): + return f"{self.in_or_out}" + + +class TransferRecordModel(CoreModel): + """ + 库间调拨记录表 + """ + transfer_aim = models.CharField(max_length=255, verbose_name="调拨来源与目的", help_text="调拨来源与目的") + transfer_out_stash = models.ForeignKey(StashManageModel, on_delete=models.CASCADE, verbose_name="调出仓名称", help_text="调出仓名称", related_name='transfer_out_stash') + transfer_code = models.CharField(max_length=255, verbose_name="商品编号", help_text="商品编号") + transfer_name = models.CharField(max_length=255, verbose_name="商品名称", null=True, blank=True, help_text="商品名称") + transfer_product_type = models.CharField(max_length=255, verbose_name="商品类型", null=True, blank=True, help_text="商品类型") + transfer_number = models.IntegerField(verbose_name="调拨数量", help_text="调拨数量") + transfer_unit = models.CharField(max_length=255, verbose_name="单位", help_text="单位") + transfer_in_stash = models.ForeignKey(StashManageModel, on_delete=models.CASCADE, verbose_name="调进仓名称", help_text="调进仓名称", related_name='transfer_in_stash') + transfer_note = models.TextField(verbose_name="备注", null=True, blank=True, help_text="备注") + + class Meta: + db_table = table_prefix + 'crud_transfer_record' + verbose_name = '库间调拨记录表' + verbose_name_plural = verbose_name + ordering = ('-create_datetime',) + + def __str__(self): + return f"{self.transfer_code}" + + +class ProductShareModel(models.Model): + """ + 商品共享字段 + """ + code = models.CharField(max_length=255, verbose_name="编号", help_text="编号") + specification = models.CharField(max_length=255, verbose_name="规格", help_text="规格") + name = models.CharField(max_length=255, verbose_name="名称", help_text="名称") + number = models.IntegerField(verbose_name="数量", help_text="数量") + unit = models.CharField(max_length=255, verbose_name="单位", help_text="单位") + price = models.FloatField(max_length=255, verbose_name="单价", help_text="单价") + note = models.TextField(verbose_name="备注", null=True, blank=True, help_text="备注") + images = models.JSONField(verbose_name="图片", null=True, help_text="图片") + stash = models.ForeignKey(StashManageModel, on_delete=models.CASCADE, verbose_name="所属仓位", help_text="所属仓位") + + +class AssemblyProductModel(ProductShareModel, CoreModel): + """ + 组合商品 + """ + class Meta: + db_table = table_prefix + 'crud_product_assembly' + verbose_name = '组合商品' + verbose_name_plural = verbose_name + ordering = ('-create_datetime',) + + def __str__(self): + return f"{self.code}" + + def save(self, *args, **kwargs): + if not self.code: + self.code = assembly_product_code() + super().save(*args, **kwargs) + + +class FinishedProductModel(ProductShareModel, CoreModel): + """ + 成品商品 + """ + class Meta: + db_table = table_prefix + 'crud_product_finished' + verbose_name = '成品商品' + verbose_name_plural = verbose_name + ordering = ('-create_datetime',) + + def __str__(self): + return f"{self.code}" + + def save(self, *args, **kwargs): + if not self.code: + self.code = finished_product_code() + super().save(*args, **kwargs) + + +class SemiFinishedProductModel(ProductShareModel, CoreModel): + """ + 半成品商品 + """ + class Meta: + db_table = table_prefix + 'crud_product_semi_finished' + verbose_name = '半成品商品' + verbose_name_plural = verbose_name + ordering = ('-create_datetime',) + + def __str__(self): + return f"{self.code}" + + def save(self, *args, **kwargs): + if not self.code: + self.code = semi_finished_product_code() + super().save(*args, **kwargs) + + +class MaterielModel(ProductShareModel, CoreModel): + """ + 物料 + """ + class Meta: + db_table = table_prefix + 'crud_product_materiel' + verbose_name = '物料' + verbose_name_plural = verbose_name + ordering = ('-create_datetime',) + + def __str__(self): + return f"{self.code}" + + def save(self, *args, **kwargs): + if not self.code: + self.code = materiel_code() + super().save(*args, **kwargs) + + +class RawMaterialModel(ProductShareModel, CoreModel): + """ + 原材料 + """ + class Meta: + db_table = table_prefix + 'crud_product_raw_material' + verbose_name = '原材料' + verbose_name_plural = verbose_name + ordering = ('-create_datetime',) + + def __str__(self): + return f"{self.code}" + + def save(self, *args, **kwargs): + if not self.code: + self.code = raw_material_code() + super().save(*args, **kwargs) + diff --git a/backend/apps/inventory/serializers.py b/backend/apps/inventory/serializers.py new file mode 100644 index 0000000000000000000000000000000000000000..f052351cede4544b639e7ec15eb9daa4bbbdd252 --- /dev/null +++ b/backend/apps/inventory/serializers.py @@ -0,0 +1,88 @@ +# -*- coding: utf-8 -*- +""" +@Time: 2025/3/16 09:59 +@File: serializers.py +@IDE: PyCharm +@Auth: Kendrick.Kc.Guan +@Email: 509556985@qq.com +@Version: 1.0 +""" + +from .models import StashManageModel, InAndOutRecordModel, TransferRecordModel +from .models import AssemblyProductModel, FinishedProductModel, SemiFinishedProductModel, MaterielModel, RawMaterialModel +from dvadmin.utils.serializers import CustomModelSerializer +from rest_framework import serializers +from django.forms.models import model_to_dict + + +class StashManageModelSerializer(CustomModelSerializer): + """ + 仓库管理序列化器 + """ + class Meta: + model = StashManageModel + fields = "__all__" # 指定需要序列化的字段 + + +class InAndOutRecordModelSerializer(CustomModelSerializer): + """ + 入库出库记录序列化器 + """ + class Meta: + model = InAndOutRecordModel + fields = "__all__" # 指定需要序列化的字段 + + +class TransferRecordModelSerializer(CustomModelSerializer): + """ + 调拨记录序列化器 + """ + class Meta: + model = TransferRecordModel + fields = "__all__" # 指定需要序列化的字段 + + +class AssemblyProductModelSerializer(CustomModelSerializer): + """ + 组合商品序列化器 + """ + class Meta: + model = AssemblyProductModel + fields = "__all__" # 指定需要序列化的字段 + + +class FinishedProductModelSerializer(CustomModelSerializer): + """ + 成品序列化器 + """ + class Meta: + model = FinishedProductModel + fields = "__all__" # 指定需要序列化的字段 + + +class SemiFinishedProductModelSerializer(CustomModelSerializer): + """ + 产品半成品序列化器 + """ + class Meta: + model = SemiFinishedProductModel + fields = "__all__" # 指定需要序列化的字段 + + +class MaterielModelSerializer(CustomModelSerializer): + """ + 物料序列化器 + """ + class Meta: + model = MaterielModel + fields = "__all__" # 指定需要序列化的字段 + + +class RawMaterialModelSerializer(CustomModelSerializer): + """ + 原料序列化器 + """ + class Meta: + model = RawMaterialModel + fields = "__all__" # 指定需要序列化的字段 + diff --git a/backend/apps/inventory/tests.py b/backend/apps/inventory/tests.py new file mode 100644 index 0000000000000000000000000000000000000000..7ce503c2dd97ba78597f6ff6e4393132753573f6 --- /dev/null +++ b/backend/apps/inventory/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/backend/apps/inventory/urls.py b/backend/apps/inventory/urls.py new file mode 100644 index 0000000000000000000000000000000000000000..2820c3b4b8ba212fa107308a288fe088a0c867cb --- /dev/null +++ b/backend/apps/inventory/urls.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +""" +@Time: 2025/3/16 10:07 +@File: urls.py +@IDE: PyCharm +@Auth: Kendrick.Kc.Guan +@Email: 509556985@qq.com +@Version: 1.0 +""" + + +from rest_framework.routers import SimpleRouter +from .views import StashManageModelViewSet, InAndOutRecordModelViewSet, TransferRecordModelViewSet +from .views import AssemblyProductModelViewSet, FinishedProductModelViewSet, SemiFinishedProductModelViewSet, MaterielModelViewSet, RawMaterialModelViewSet + +router = SimpleRouter() +# 这里进行注册路径,并把视图关联上,这里的api地址以视图名称为后缀,这样方便记忆api/CrudPatronViewSet +router.register("api/StashManageModelViewSet", StashManageModelViewSet) +router.register("api/InAndOutRecordModelViewSet", InAndOutRecordModelViewSet) +router.register("api/TransferRecordModelViewSet", TransferRecordModelViewSet) +router.register("api/ProductAssemblyModelViewSet", AssemblyProductModelViewSet) +router.register("api/FinishedProductModelViewSet", FinishedProductModelViewSet) +router.register("api/SemiFinishedProductModelViewSet", SemiFinishedProductModelViewSet) +router.register("api/MaterielModelViewSet", MaterielModelViewSet) +router.register("api/RawMaterialModelViewSet", RawMaterialModelViewSet) + +urlpatterns = [ +] +urlpatterns += router.urls \ No newline at end of file diff --git a/backend/apps/inventory/views.py b/backend/apps/inventory/views.py new file mode 100644 index 0000000000000000000000000000000000000000..01f083880d88cf228f53e3d062d020101d9fb40d --- /dev/null +++ b/backend/apps/inventory/views.py @@ -0,0 +1,174 @@ +from django.shortcuts import render + +# Create your views here. +from dvadmin.utils.viewset import CustomModelViewSet +from .models import StashManageModel, InAndOutRecordModel, TransferRecordModel +from .models import AssemblyProductModel, FinishedProductModel, SemiFinishedProductModel, MaterielModel, RawMaterialModel +from .serializers import StashManageModelSerializer +from .serializers import InAndOutRecordModelSerializer +from .serializers import TransferRecordModelSerializer +from .serializers import AssemblyProductModelSerializer +from .serializers import FinishedProductModelSerializer +from .serializers import SemiFinishedProductModelSerializer +from .serializers import MaterielModelSerializer +from .serializers import RawMaterialModelSerializer + + +class StashManageModelViewSet(CustomModelViewSet): + """ + 仓库管理 + list: + 仓库管理列表数据 + create: + 创建仓库管理 + update: + 更新仓库管理 + retrieve: + 获取仓库管理详情 + destroy: + 删除仓库管理 + """ + queryset = StashManageModel.objects.all() + serializer_class = StashManageModelSerializer + create_serializer_class = StashManageModelSerializer + update_serializer_class = StashManageModelSerializer + + +class InAndOutRecordModelViewSet(CustomModelViewSet): + """ + 入库出库记录 + list: + 入库出库记录列表数据 + create: + 创建入库出库记录 + update: + 更新入库出库记录 + retrieve: + 获取入库出库记录详情 + destroy: + 删除入库出库记录 + """ + queryset = InAndOutRecordModel.objects.all() + serializer_class = InAndOutRecordModelSerializer + create_serializer_class = InAndOutRecordModelSerializer + update_serializer_class = InAndOutRecordModelSerializer + + +class TransferRecordModelViewSet(CustomModelViewSet): + """ + 调拨记录 + list: + 调拨记录列表数据 + create: + 创建调拨记录 + update: + 更新调拨记录 + retrieve: + 获取调拨记录详情 + destroy: + 删除调拨记录 + """ + queryset = TransferRecordModel.objects.all() + serializer_class = TransferRecordModelSerializer + create_serializer_class = TransferRecordModelSerializer + update_serializer_class = TransferRecordModelSerializer + + +class AssemblyProductModelViewSet(CustomModelViewSet): + """ + 组合商品 + list: + 组合商品列表数据 + create: + 创建组合商品 + update: + 更新组合商品 + retrieve: + 获取组合商品详情 + destroy: + 删除组合商品 + """ + queryset = AssemblyProductModel.objects.all() + serializer_class = AssemblyProductModelSerializer + create_serializer_class = AssemblyProductModelSerializer + update_serializer_class = AssemblyProductModelSerializer + + +class FinishedProductModelViewSet(CustomModelViewSet): + """ + 成品商品 + list: + 成品商品列表数据 + create: + 创建成品商品 + update: + 更新成品商品 + retrieve: + 获取成品商品详情 + destroy: + 删除成品商品 + """ + queryset = FinishedProductModel.objects.all() + serializer_class = FinishedProductModelSerializer + create_serializer_class = FinishedProductModelSerializer + update_serializer_class = FinishedProductModelSerializer + + +class SemiFinishedProductModelViewSet(CustomModelViewSet): + """ + 半成品商品 + list: + 半成品商品列表数据 + create: + 创建半成品商品 + update: + 更新半成品商品 + retrieve: + 获取半成品商品详情 + destroy: + 删除半成品商品 + """ + queryset = SemiFinishedProductModel.objects.all() + serializer_class = SemiFinishedProductModelSerializer + create_serializer_class = SemiFinishedProductModelSerializer + update_serializer_class = SemiFinishedProductModelSerializer + + +class MaterielModelViewSet(CustomModelViewSet): + """ + 物料 + list: + 物料列表数据 + create: + 创建物料 + update: + 更新物料 + retrieve: + 获取物料详情 + destroy: + 删除物料 + """ + queryset = MaterielModel.objects.all() + serializer_class = MaterielModelSerializer + create_serializer_class = MaterielModelSerializer + update_serializer_class = MaterielModelSerializer + + +class RawMaterialModelViewSet(CustomModelViewSet): + """ + 原料 + list: + 原料列表数据 + create: + 创建原料 + update: + 更新原料 + retrieve: + 获取原料详情 + destroy: + 删除原料 + """ + queryset = RawMaterialModel.objects.all() + serializer_class = RawMaterialModelSerializer + create_serializer_class = RawMaterialModelSerializer + update_serializer_class = RawMaterialModelSerializer diff --git a/backend/apps/product/__init__.py b/backend/apps/product/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/backend/apps/product/admin.py b/backend/apps/product/admin.py new file mode 100644 index 0000000000000000000000000000000000000000..8c38f3f3dad51e4585f3984282c2a4bec5349c1e --- /dev/null +++ b/backend/apps/product/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/backend/apps/product/apps.py b/backend/apps/product/apps.py new file mode 100644 index 0000000000000000000000000000000000000000..824c1364ffbba87cbff5d9768134e2fb29b57dbc --- /dev/null +++ b/backend/apps/product/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class ProductConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "apps.product" diff --git a/backend/apps/product/migrations/__init__.py b/backend/apps/product/migrations/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/backend/apps/product/models.py b/backend/apps/product/models.py new file mode 100644 index 0000000000000000000000000000000000000000..861a60554546eee615e0b3ebbbc4566f76576144 --- /dev/null +++ b/backend/apps/product/models.py @@ -0,0 +1,26 @@ +from random import choices + +from django.db import models + +# Create your models here. +from dvadmin.utils.models import CoreModel, table_prefix +from apps.inventory.models import StashManageModel + + +class ProductModel(CoreModel): + """ + 产品表 + """ + product_stash = models.ForeignKey(StashManageModel, on_delete=models.CASCADE, verbose_name="产品仓位", null=True, blank=True, help_text="产品仓位") + product_images = models.JSONField(verbose_name="图片墙", null=True, blank=True, help_text="图片墙") + product_file = models.JSONField(verbose_name="附件", null=True, blank=True, help_text="附件") + product_note = models.TextField(verbose_name="备注", null=True, blank=True, help_text="备注") + + class Meta: + db_table = table_prefix + 'product_model' + verbose_name = 'BOM表' + verbose_name_plural = verbose_name + ordering = ('-create_datetime',) + + def __str__(self): + return f"{self.product_ids}" diff --git a/backend/apps/product/tests.py b/backend/apps/product/tests.py new file mode 100644 index 0000000000000000000000000000000000000000..7ce503c2dd97ba78597f6ff6e4393132753573f6 --- /dev/null +++ b/backend/apps/product/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/backend/apps/product/urls.py b/backend/apps/product/urls.py new file mode 100644 index 0000000000000000000000000000000000000000..fe4bcb79792f437764a57f57a874b2e5ccf2ef1b --- /dev/null +++ b/backend/apps/product/urls.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +""" +@Time: 2025/3/16 10:07 +@File: urls.py +@IDE: PyCharm +@Auth: Kendrick.Kc.Guan +@Email: 509556985@qq.com +@Version: 1.0 +""" + + +from rest_framework.routers import SimpleRouter + +router = SimpleRouter() +# 这里进行注册路径,并把视图关联上,这里的api地址以视图名称为后缀,这样方便记忆api/CrudPatronViewSet + +urlpatterns = [ +] +urlpatterns += router.urls \ No newline at end of file diff --git a/backend/apps/product/views.py b/backend/apps/product/views.py new file mode 100644 index 0000000000000000000000000000000000000000..91ea44a218fbd2f408430959283f0419c921093e --- /dev/null +++ b/backend/apps/product/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/backend/apps/production/__init__.py b/backend/apps/production/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/backend/apps/production/admin.py b/backend/apps/production/admin.py new file mode 100644 index 0000000000000000000000000000000000000000..8c38f3f3dad51e4585f3984282c2a4bec5349c1e --- /dev/null +++ b/backend/apps/production/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/backend/apps/production/apps.py b/backend/apps/production/apps.py new file mode 100644 index 0000000000000000000000000000000000000000..5bdc7cb5f2f4fa651f2c6738c81cc539ac7f6b75 --- /dev/null +++ b/backend/apps/production/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class ProductionConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "apps.production" diff --git a/backend/apps/production/migrations/__init__.py b/backend/apps/production/migrations/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/backend/apps/production/models.py b/backend/apps/production/models.py new file mode 100644 index 0000000000000000000000000000000000000000..368bdd14f0b1fa4135a1ba2a2d6443d7af0c3f4d --- /dev/null +++ b/backend/apps/production/models.py @@ -0,0 +1,26 @@ +from django.db import models + +# Create your models here. +from dvadmin.utils.models import CoreModel, table_prefix + + +# 样品成本 +class SampleCostModel(CoreModel): + """ + 样品成本 + """ + sample_name = models.CharField(max_length=255, verbose_name="名称", help_text="名称") + sample_specification = models.CharField(max_length=255, verbose_name="规格", help_text="规格") + sample_number = models.IntegerField(verbose_name="数量", help_text="数量") + sample_price = models.FloatField(verbose_name="单价", help_text="单价") + sample_total_price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name="总价", null=True, blank=True, help_text="总价") + sample_note = models.TextField(verbose_name="备注", null=True, blank=True, help_text="备注") + + class Meta: + db_table = table_prefix + 'crud_sample_cost' + verbose_name = '样品成本表' + verbose_name_plural = verbose_name + ordering = ('-create_datetime',) + + def __str__(self): + return f"{self.name}" diff --git a/backend/apps/production/serializers.py b/backend/apps/production/serializers.py new file mode 100644 index 0000000000000000000000000000000000000000..cb9ffee2566ec7117352d771a8fb01052da0bd11 --- /dev/null +++ b/backend/apps/production/serializers.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +""" +@Time: 2025/4/11 11:54 +@File: serializers.py +@IDE: PyCharm +@Auth: Kendrick.Kc.Guan +@Email: 509556985@qq.com +@Version: 1.0 +""" + +from .models import SampleCostModel +from dvadmin.utils.serializers import CustomModelSerializer + + +class SampleCostModelSerializer(CustomModelSerializer): + class Meta: + model = SampleCostModel + fields = "__all__" # 指定需要序列化的字段 + diff --git a/backend/apps/production/tests.py b/backend/apps/production/tests.py new file mode 100644 index 0000000000000000000000000000000000000000..7ce503c2dd97ba78597f6ff6e4393132753573f6 --- /dev/null +++ b/backend/apps/production/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/backend/apps/production/urls.py b/backend/apps/production/urls.py new file mode 100644 index 0000000000000000000000000000000000000000..13fad214bc5db5e25674366baf99a3e4f3eaefe3 --- /dev/null +++ b/backend/apps/production/urls.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +""" +@Time: 2025/3/16 10:07 +@File: urls.py +@IDE: PyCharm +@Auth: Kendrick.Kc.Guan +@Email: 509556985@qq.com +@Version: 1.0 +""" + + +from rest_framework.routers import SimpleRouter +from .views import SampleCostModelViewSet + +router = SimpleRouter() +# 这里进行注册路径,并把视图关联上,这里的api地址以视图名称为后缀,这样方便记忆api/CrudPatronViewSet +router.register("api/SampleCostModelViewSet", SampleCostModelViewSet) + +urlpatterns = [ +] +urlpatterns += router.urls \ No newline at end of file diff --git a/backend/apps/production/views.py b/backend/apps/production/views.py new file mode 100644 index 0000000000000000000000000000000000000000..cf573abd5220936633d44e04d937cd2a2ba3a115 --- /dev/null +++ b/backend/apps/production/views.py @@ -0,0 +1,26 @@ +from django.shortcuts import render + +# Create your views here. +from .models import SampleCostModel +from .serializers import SampleCostModelSerializer +from dvadmin.utils.viewset import CustomModelViewSet + + +class SampleCostModelViewSet(CustomModelViewSet): + """ + 样本成本 + list: + 样本成本列表数据 + create: + 创建样本成本 + update: + 更新样本成本 + retrieve: + 获取样本成本详情 + destroy: + 删除样本成本 + """ + queryset = SampleCostModel.objects.all() + serializer_class = SampleCostModelSerializer + create_serializer_class = SampleCostModelSerializer + update_serializer_class = SampleCostModelSerializer diff --git a/backend/apps/utils/__init__.py b/backend/apps/utils/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e4cb647fdf467efa7b51d0ae5cde559669ef36e3 --- /dev/null +++ b/backend/apps/utils/__init__.py @@ -0,0 +1,9 @@ +# -*- coding: utf-8 -*- +""" +@Time: 2025/3/15 17:49 +@File: __init__.py.py +@IDE: PyCharm +@Auth: Kendrick.Kc.Guan +@Email: 509556985@qq.com +@Version: 1.0 +""" diff --git a/backend/apps/utils/random_code.py b/backend/apps/utils/random_code.py new file mode 100644 index 0000000000000000000000000000000000000000..e086b314dd49ce56721a4142d9ab4753cab7ea3c --- /dev/null +++ b/backend/apps/utils/random_code.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +""" +@Time: 2025/4/7 11:17 +@File: random_code.py +@IDE: PyCharm +@Auth: Kendrick.Kc.Guan +@Email: 509556985@qq.com +@Version: 1.0 +""" + + +import random +import string + + +def assembly_product_code(n: int = 16): + """ 组合商品编号 - 字母加数字组成16位随机数 """ + characters = string.ascii_letters + string.digits + return ''.join(random.choice(characters) for _ in range(n)) + + +def finished_product_code(n: int = 16): + """ 成品商品编号 - 字母加数字组成16位随机数 """ + characters = string.ascii_letters + string.digits + return ''.join(random.choice(characters) for _ in range(n)) + + +def semi_finished_product_code(n: int = 16): + """ 半成品编号 - 字母加数字组成16位随机数 """ + characters = string.ascii_letters + string.digits + return ''.join(random.choice(characters) for _ in range(n)) + + +def materiel_code(n: int = 16): + """ 物料编号 - 字母加数字组成16位随机数 """ + characters = string.ascii_letters + string.digits + return ''.join(random.choice(characters) for _ in range(n)) + + +def raw_material_code(n: int = 16): + """ 原材料编号 - 字母加数字组成16位随机数 """ + characters = string.ascii_letters + string.digits + return ''.join(random.choice(characters) for _ in range(n)) + + +def contract_order_id(n: int = 16): + """ 合同编号 - 字母加数字组成16位随机数 """ + characters = string.ascii_letters + string.digits + return ''.join(random.choice(characters) for _ in range(n)) + + +def sell_order_id(n: int = 16): + """ 销售订单编号 - 字母加数字组成16位随机数 """ + characters = string.ascii_letters + string.digits + return ''.join(random.choice(characters) for _ in range(n)) + + +def sample_order_id(n: int = 16): + """ 样品单编号 - 字母加数字组成16位随机数 """ + characters = string.ascii_letters + string.digits + return ''.join(random.choice(characters) for _ in range(n)) \ No newline at end of file diff --git a/backend/celery_start.sh b/backend/celery_start.sh new file mode 100644 index 0000000000000000000000000000000000000000..25ab0de426089a3b08051a11b0e48472c27c4616 --- /dev/null +++ b/backend/celery_start.sh @@ -0,0 +1,3 @@ +#!/bin/bash +export C_FORCE_ROOT="true" +celery -A application worker -B --loglevel=info \ No newline at end of file diff --git a/backend/conf/env.py b/backend/conf/env.py new file mode 100644 index 0000000000000000000000000000000000000000..554bd622c6d30ff0631e5ae7c973fcdc7c263316 --- /dev/null +++ b/backend/conf/env.py @@ -0,0 +1,57 @@ +import os + +from application.settings import BASE_DIR + +# ================================================= # +# *************** mysql数据库 配置 *************** # +# ================================================= # +# 数据库 ENGINE ,默认演示使用 sqlite3 数据库,正式环境建议使用 mysql 数据库 +# sqlite3 设置 +# DATABASE_ENGINE = "django.db.backends.sqlite3" +# DATABASE_NAME = os.path.join(BASE_DIR, "db.sqlite3") + +# 使用mysql时,改为此配置 +DATABASE_ENGINE = "django.db.backends.mysql" +DATABASE_NAME = 'xxibears' # mysql 时使用 + +# 数据库地址 改为自己数据库地址 +DATABASE_HOST = '192.168.100.252' +# DATABASE_HOST = '177.10.0.13' +# # 数据库端口 +DATABASE_PORT = 3306 +# # 数据库用户名 +DATABASE_USER = "root" +# # 数据库密码 +DATABASE_PASSWORD = 'xxibears@666' +# DATABASE_PASSWORD = 'BvYHKGyToIcrOArfZ6' + +# 表前缀 +TABLE_PREFIX = "xxibears_" +# ================================================= # +# ******** redis配置,无redis 可不进行配置 ******** # +# ================================================= # +REDIS_DB = 1 +CELERY_BROKER_DB = 3 +REDIS_HOST = '192.168.100.252' +# REDIS_HOST = '177.10.0.15' +REDIS_PASSWORD = 'xxibears@666' +# REDIS_PASSWORD = 'FMgMyF04llil' +REDIS_URL = f'redis://:{REDIS_PASSWORD or ""}@{REDIS_HOST}:6379' +# ================================================= # +# ****************** 功能 启停 ******************* # +# ================================================= # +DEBUG = True +# DEBUG = False +# 启动登录详细概略获取(通过调用api获取ip详细地址。如果是内网,关闭即可) +ENABLE_LOGIN_ANALYSIS_LOG = True +# ENABLE_LOGIN_ANALYSIS_LOG = False +# 登录接口 /api/token/ 是否需要验证码认证,用于测试,正式环境建议取消 +LOGIN_NO_CAPTCHA_AUTH = True +# LOGIN_NO_CAPTCHA_AUTH = False +# ================================================= # +# ****************** 其他 配置 ******************* # +# ================================================= # + +ALLOWED_HOSTS = ["*"] +# 列权限中排除App应用 +COLUMN_EXCLUDE_APPS = [] diff --git a/backend/docker_start.sh b/backend/docker_start.sh index 49ffb5e037612f34fc4a2f162d585a055e2db107..6c80824ae23f294922c2a6d3128a982e26794a83 100755 --- a/backend/docker_start.sh +++ b/backend/docker_start.sh @@ -1,5 +1,6 @@ #!/bin/bash -# python manage.py makemigrations -# python manage.py migrate -# python manage.py init -y -uvicorn application.asgi:application --port 8000 --host 0.0.0.0 --workers 4 +python manage.py makemigrations +python manage.py migrate +#python manage.py init -y +#python manage.py init_area +uvicorn application.asgi:application --port 8000 --host 0.0.0.0 --workers 4 --reload diff --git a/backend/dvadmin/system/views/dictionary.py b/backend/dvadmin/system/views/dictionary.py index 46c2a9c606bdefc97f65231b30b6b33efdccd832..21ffea1569edd154eb76ec52bc0adc6564b016dd 100644 --- a/backend/dvadmin/system/views/dictionary.py +++ b/backend/dvadmin/system/views/dictionary.py @@ -24,7 +24,7 @@ class DictionarySerializer(CustomModelSerializer): class Meta: model = Dictionary fields = "__all__" - read_only_fields = ["id"] + read_only_fields = ["id"] # 不显示id @@ -102,6 +102,6 @@ class InitDictionaryViewSet(APIView): data = [ele for ele in dispatch.get_dictionary_config().values()] else: data = self.queryset.filter(parent__value=dictionary_key, status=True).values('label', 'value', 'type', - 'color') + 'color', 'id') return SuccessResponse(data=data, msg="获取成功") return SuccessResponse(data=[], msg="获取成功") diff --git a/backend/dvadmin/system/views/menu_button.py b/backend/dvadmin/system/views/menu_button.py index d290bb1c30a3bc54d71b1779971038c43482ef52..c1ca7c90855f4de09b2170487d615b2ff24cd449 100644 --- a/backend/dvadmin/system/views/menu_button.py +++ b/backend/dvadmin/system/views/menu_button.py @@ -101,7 +101,7 @@ class MenuButtonViewSet(CustomModelViewSet): {'menu': menu_obj.id, 'name': '详情', 'value': f'{menu_obj.component_name}:Retrieve', 'api': f'/api/{menu_obj.component_name}/{{id}}/', 'method': 0}, {'menu': menu_obj.id, 'name': '复制', 'value': f'{menu_obj.component_name}:Copy', 'api': f'/api/{menu_obj.component_name}/', 'method': 1}, {'menu': menu_obj.id, 'name': '导入', 'value': f'{menu_obj.component_name}:Import', 'api': f'/api/{menu_obj.component_name}/import_data/', 'method': 1}, - {'menu': menu_obj.id, 'name': '导出', 'value': f'{menu_obj.component_name}:Export', 'api': f'/api{menu_obj.component_name}/export_data/', 'method': 1},] + {'menu': menu_obj.id, 'name': '导出', 'value': f'{menu_obj.component_name}:Export', 'api': f'/api/{menu_obj.component_name}/export_data/', 'method': 1},] serializer = self.get_serializer(data=result_list, many=True) serializer.is_valid(raise_exception=True) serializer.save() diff --git a/backend/dvadmin/system/views/user.py b/backend/dvadmin/system/views/user.py index 464e77dc64733974fbfffb7ee9761627d3b915b3..67cea5052805412162df729bb97d138811b919c0 100644 --- a/backend/dvadmin/system/views/user.py +++ b/backend/dvadmin/system/views/user.py @@ -426,11 +426,9 @@ class UserViewSet(CustomModelViewSet): queryset = self.filter_queryset(self.get_queryset()) else: queryset = self.filter_queryset(self.get_queryset()) - # print(queryset.values('id','name','dept__id')) page = self.paginate_queryset(queryset) if page is not None: serializer = self.get_serializer(page, many=True, request=request) - # print(serializer.data) return self.get_paginated_response(serializer.data) serializer = self.get_serializer(queryset, many=True, request=request) diff --git a/backend/dvadmin/utils/import_export_mixin.py b/backend/dvadmin/utils/import_export_mixin.py index e188ff5fa2916fd57acadc5659dd9872f138227f..25b826d0ef45137765531ac02d003b100f6db4ca 100644 --- a/backend/dvadmin/utils/import_export_mixin.py +++ b/backend/dvadmin/utils/import_export_mixin.py @@ -311,7 +311,7 @@ class ExportSerializerMixin: DownloadCenter.objects.create(creator=request.user, task_name=f'{get_verbose_name(queryset)}数据导出任务', dept_belong_id=request.user.dept_id).pk, self.export_field_label ) - return SuccessResponse(msg="导入任务已创建,请前往‘下载中心’等待下载") + return SuccessResponse(msg="导出任务已创建,请前往‘下载中心’等待下载") except: pass # 导出excel 表 diff --git a/backend/plugins/dvadmin3-flow-backend/.gitignore b/backend/plugins/dvadmin3-flow-backend/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..6c50cc968f99592116ca575d38654a3694d906e5 --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/.gitignore @@ -0,0 +1,101 @@ +# Byte-compiled / optimized / DLL files +*.py[cod] +*$py.class +__pycache__/ +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover +.hypothesis/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# IPython Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# dotenv +.env + +# virtualenv +venv/ +ENV/ + +# Spyder project settings +.spyderproject + +# Rope project settings +.ropeproject +.idea/ +*.db +.DS_Store +**/migrations/*.py +!**/migrations/__init__.py +*.pyc +conf/* +!conf/env.example.py +db.sqlite3 +media/ +__pypackages__/ +package-lock.json +gunicorn.pid +!plugins/__init__.py diff --git a/backend/plugins/dvadmin3-flow-backend/LICENSE b/backend/plugins/dvadmin3-flow-backend/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..ad1623906ae73cdc22c25c985f5f814c2f6d9ef5 --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) [2022] [dvadmin3-flow] + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/backend/plugins/dvadmin3-flow-backend/MANIFEST.in b/backend/plugins/dvadmin3-flow-backend/MANIFEST.in new file mode 100644 index 0000000000000000000000000000000000000000..8255102652f3c68f992bda5a1bb0d8eb6b407b96 --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/MANIFEST.in @@ -0,0 +1 @@ +include dvadmin3_flow/fixtures/*.json diff --git a/backend/plugins/dvadmin3-flow-backend/README.md b/backend/plugins/dvadmin3-flow-backend/README.md new file mode 100644 index 0000000000000000000000000000000000000000..96b8011e2f6267f7aeb402433076feeb93638241 --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/README.md @@ -0,0 +1,50 @@ +# dvadmin-flow +1. 插件安装 +~~~ +1. 把后端插件放到 dvadmin/plugins/ 目录下 +2. 把前端插件放到 src/views/plugins/ 目录下 +~~~ +2. 添加setting.py配置 +~~~ +from dvadmin3_flow.settings import * # 审批流组件 +~~~ +3. 迁移数据库 +~~~ +python manage.py makemigrations +python manage.py migrate +python manage.py init +~~~ +4. 给需要配置审批流的model做继承(演示环境配置的角色管理) +~~~ +from dvadmin3_flow.base_model import FlowBaseModel +class Role(CoreModel,FlowBaseModel): + name = models.CharField(max_length=64, verbose_name="角色名称", help_text="角色名称") + key = models.CharField(max_length=64, unique=True, verbose_name="权限字符", help_text="权限字符") + sort = models.IntegerField(default=1, verbose_name="角色顺序", help_text="角色顺序") + status = models.BooleanField(default=True, verbose_name="角色状态", help_text="角色状态") + + class Meta: + db_table = table_prefix + "system_role" + verbose_name = "角色表" + verbose_name_plural = verbose_name + ordering = ("sort",) +~~~ +5. 配置审批流 +~~~ +在审批流中配置审批流,并关联到对应的model上,如下图 +~~~ + +# 页面效果图 + + +![输入链接说明](https://bbs.django-vue-admin.com/uploads/20250321/97fbbf29673edfd66a1edd49237791bb.png) + +![输入链接说明](https://bbs.django-vue-admin.com/uploads/20250321/c43aa51278cbc478287c718d22397479.png) + + +![输入链接说明](https://bbs.django-vue-admin.com/uploads/20250321/9732a5cca9c1166d1a65c35e313ab90d.png) + + +![输入链接说明](https://bbs.django-vue-admin.com/uploads/20250321/3ca9dd0801ce76d21435abcc8a3d505a.png) + +![输入链接说明](https://bbs.django-vue-admin.com/uploads/20250321/a87a8d2329ef66880af5b0f16c5ff823.png) \ No newline at end of file diff --git a/backend/plugins/dvadmin3-flow-backend/__init__.py b/backend/plugins/dvadmin3-flow-backend/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..40a96afc6ff09d58a702b76e3f7dd412fe975e26 --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- diff --git a/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/__init__.py b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..40a96afc6ff09d58a702b76e3f7dd412fe975e26 --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- diff --git a/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/app_views/__init__.py b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/app_views/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..40a96afc6ff09d58a702b76e3f7dd412fe975e26 --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/app_views/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- diff --git a/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/app_views/flow_data.py b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/app_views/flow_data.py new file mode 100644 index 0000000000000000000000000000000000000000..d9e67673bc4ec93503954b7107acbcd064cfe1fd --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/app_views/flow_data.py @@ -0,0 +1,171 @@ +from django.db.models import Q, F +from rest_framework.decorators import action +from rest_framework.permissions import IsAuthenticated + +from dvadmin.utils.json_response import DetailResponse, SuccessResponse, ErrorResponse +from dvadmin.utils.serializers import CustomModelSerializer +from dvadmin.utils.viewset import CustomModelViewSet +from dvadmin3_flow.models import FlowData, FlowRecord, FlowAuditUsers, FlowNode + + +class AppFlowDataSerializer(CustomModelSerializer): + """ + 流程管理 创建/更新时的列化器 + """ + + def to_representation(self, instance): + data = super().to_representation(instance) + data["current_node"] = instance.current_node + data["status"] = instance.status + data["start_user_name"] = instance.start_user and instance.start_user.name + # 查询最新的一条记录表 + flow_record_obj = FlowRecord.objects.filter(flow_data_id=data.get('id')).order_by('-create_datetime').first() + if flow_record_obj: + data['pre_user'] = flow_record_obj.pre_user.all().values_list('name',flat=True) + data['pre_dept'] = flow_record_obj.pre_dept.all().values_list('name',flat=True) + data['pre_role'] = flow_record_obj.pre_role.all().values_list('name',flat=True) + # 返回已审核人信息 + data['audit_users'] = FlowAuditUsers.objects.filter(flow_record__flow_data_id=data.get('id')).values('id', + 'audit_user', + 'status', + 'description', + 'create_datetime') + return data + + class Meta: + model = FlowData + fields = ['id', 'no', 'name', 'models_name', 'start_user', + 'completed_time', 'update_datetime', 'create_datetime'] + + +class AppFlowDataViewSet(CustomModelViewSet): + """ + 流程管理接口: + """ + queryset = FlowData.objects.all() + permission_classes = [IsAuthenticated] + serializer_class = AppFlowDataSerializer + extra_filter_class = [] + + @action(methods=['get'], detail=False, permission_classes=[IsAuthenticated]) + def get_flow_data(self, request): + """ + 获取待我处理数据 + :param request: + :return: + """ + # 0待我处理;1我已处理;2我已提交;3抄送我的 + status = int(request.query_params.get('handle_status', 0)) + filter = Q(flowrecord__pre_user__id=request.user.id) + if request.user: + filter |= Q(flowrecord__pre_role__id__in=list(request.user.role.all().values_list('id', flat=True))) + if request.user.dept: + filter |= Q(flowrecord__pre_dept__id=request.user.dept.id) + # queryset = self.filter_queryset(self.get_queryset()) + queryset = self.get_queryset() + if status == 0: + filter = Q(filter) & Q(flowrecord__status=0) + queryset = queryset.filter(filter) + elif status == 1: + queryset = queryset.filter(flowrecord__flowauditusers__audit_user_id=request.user.id) + elif status == 2: + queryset = self.filter_queryset(self.get_queryset()).filter(start_user=self.request.user).filter(filter) + elif status == 3: + filter = Q(filter) & Q(flowrecord__type='Cc') + queryset = self.filter_queryset(queryset.filter(filter)) + page = self.paginate_queryset(queryset.distinct()) + if page is not None: + serializer = self.get_serializer(page, many=True, request=request) + return self.get_paginated_response(serializer.data) + serializer = self.get_serializer(queryset, many=True, request=request) + return SuccessResponse(data=serializer.data, msg="获取成功") + + @action(methods=['post'], detail=True, permission_classes=[IsAuthenticated]) + def handle_pass(self, request,pk, *args, **kwargs): + """ + 处理通过 + :param request: + :return: + """ + reason = request.data.get("reason","无") + instance = FlowData.objects.get(id=pk) + if instance.status != 0: + return ErrorResponse(msg="流程数据状态错误") + filter = Q(flowrecord__pre_user=request.user.id) + if request.user: + filter |= Q(flowrecord__pre_role__in=list(request.user.role.all().values_list('id', flat=True))) + if request.user.dept: + filter |= Q(flowrecord__pre_dept=request.user.dept.id) + if not FlowData.objects.filter(id=instance.id).filter(filter).exists(): + return ErrorResponse(msg="当前数据您无权限审核") + # 进行审核 + flow_record_obj = FlowRecord.objects.filter(flow_data=instance.id).first() + flow_record_obj.status = 1 + flow_record_obj.save() + FlowAuditUsers.objects.create(**{ + "flow_record": flow_record_obj, + "audit_user": self.request.user, + "status": 1, + "description": f"审核通过,处理意见:{reason}", + }) + + return DetailResponse(data=None, msg="处理通过") + + @action(methods=['post'], detail=True, permission_classes=[IsAuthenticated]) + def handle_reject(self, request, pk,*args, **kwargs): + """ + 处理驳回 + :param request: + :return: + """ + reason = request.data.get("reason") + instance = FlowData.objects.get(id=pk) + if instance.status != 0: + return ErrorResponse(msg="流程数据状态错误") + filter = Q(flowrecord__pre_user=request.user.id) + if request.user: + filter |= Q(flowrecord__pre_role__in=list(request.user.role.all().values_list('id', flat=True))) + if request.user.dept: + filter |= Q(flowrecord__pre_dept=request.user.dept.id) + if not FlowData.objects.filter(id=instance.id).filter(filter).exists(): + return ErrorResponse(msg="当前数据您无权限审核") + # 进行审核 + flow_record_obj = FlowRecord.objects.filter(flow_data=instance.id).first() + flow_record_obj.status = 2 + flow_record_obj.save() + FlowAuditUsers.objects.create(**{ + "flow_record": flow_record_obj, + "audit_user": self.request.user, + "status": 2, + "description": reason, + }) + return DetailResponse(data=None, msg="处理驳回") + + @action(methods=['post'], detail=False, permission_classes=[IsAuthenticated]) + def handle_cancel(self, request, *args, **kwargs): + """ + 审核撤销 + :param request: + :return: + """ + instance = FlowData.objects.get(id=request.data.get('id')) + if instance.status != 0: + return ErrorResponse(msg="流程数据状态错误") + filter = Q(flowrecord__pre_user=request.user.id) + if request.user: + filter |= Q(flowrecord__pre_role__in=list(request.user.role.all().values_list('id', flat=True))) + if request.user.dept: + filter |= Q(flowrecord__pre_dept=request.user.dept.id) + if not FlowData.objects.filter(id=instance.id).filter(filter).exists(): + return ErrorResponse(msg="当前数据您无权限审核") + # 进行审核撤销 + flow_record_obj = FlowRecord.objects.filter(flow_data=instance.id).first() + flow_record_obj.status = 3 + flow_record_obj.save() + FlowAuditUsers.objects.create(**{ + "flow_record": flow_record_obj, + "audit_user": self.request.user, + "status": 3, + "description": "手动审核撤销", + }) + return DetailResponse(data=None, msg="处理驳回") diff --git a/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/apps.py b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/apps.py new file mode 100644 index 0000000000000000000000000000000000000000..7c9752d282d9851a0b07d7e06ca9e1bc6a2ebbf8 --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class Dvadmin3FlowConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'dvadmin3_flow' diff --git a/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/base_model.py b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/base_model.py new file mode 100644 index 0000000000000000000000000000000000000000..77e2d3445efb3fa4d41dc8b592ac8ea569250180 --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/base_model.py @@ -0,0 +1,463 @@ +import datetime + +from django.apps import apps +from django.contrib.contenttypes.models import ContentType +from django.db import models, connection +from django.forms.models import model_to_dict +from rest_framework import serializers + +from dvadmin3_flow.models import FlowInfo, FlowData, FlowNode, FlowRecord, FlowAuditUsers + + +class ModelDiffMixin(object): + """ + A model mixin that tracks model fields' values and provide some useful api + to know what fields have been changed. + """ + + def __init__(self, *args, **kwargs): + super(ModelDiffMixin, self).__init__(*args, **kwargs) + self.__initial = self._dict + + @property + def diff(self): + d1 = self.__initial + if d1 is None: + return dict(self._dict) + d2 = self._dict + diffs = [(k, (v, d2[k])) for k, v in d1.items() if v != d2[k]] + return dict(diffs) + + @property + def has_changed(self): + return bool(self.diff) + + @property + def changed_fields(self): + return self.diff.keys() + + def get_field_diff(self, field_name): + """ + Returns a diff for field if it's changed and None otherwise. + """ + return self.diff.get(field_name, None) + + def save(self, *args, **kwargs): + """ + Saves model and set initial state. + """ + super(ModelDiffMixin, self).save(*args, **kwargs) + self.__initial = self._dict + + @property + def _dict(self): + return model_to_dict(self, fields=[field.name for field in self._meta.fields]) + + +class FlowBaseModel(models.Model, ModelDiffMixin): + IS_FLOW = True + is_audit_pass = False + + def save_base(self, raw=..., force_insert=..., force_update=..., using=..., update_fields=...): + operation = 'create' if force_insert else 'update' + if force_update: + operation = 'update' + if self.execute_approval_process(operation): + super().save_base(raw, force_insert, force_update, using, update_fields) + + def delete(self, using=None, keep_parents=False): + if self.execute_approval_process('delete'): + return super().delete(using, keep_parents) + + def execute_approval_process(self, operation, update_fields=None): + """ + 执行审批流 + """ + if self.is_audit_pass == True: + return True + from dvadmin.system.models import Users + + app_label = str(self._meta).split('.')[0] + model = str(self._meta).split('.')[1] + content_type_obj = ContentType.objects.filter(app_label=app_label, model=model).first() + flow_info_obj = FlowInfo.objects.filter(content_type=content_type_obj, operation=operation, status=1).first() + if not flow_info_obj: + return True + print("有流程:flow_info_obj", flow_info_obj) + # 1.创建一个流程任务,并保存要操作的数据,与当前数据 id + flow_node_obj = FlowNode.objects.filter(flow_info=flow_info_obj, node_type='Start').first() + update_fields = self.diff + if operation == 'create': + update_fields = self._dict + data = { + "flow_info": flow_info_obj, + "name": flow_info_obj.name, + "models_name": content_type_obj.name, + "pre_change_content": { + "type": operation, + "id": self.id, + "update_fields": update_fields + }, + "current_node": flow_node_obj.node_dict + } + users = None + if hasattr(self, 'modifier'): + users = Users.objects.filter(id=self.modifier).first() + if users: + data["start_user"] = users + data["name"] = f"{users.name}发起的{flow_info_obj.name}的流程" + data["creator"] = users + data["handler"] = users + data["modifier"] = users.id + data["dept_belong_id"] = users.dept_id + flow_data_obj = FlowData.objects.create(**data) + # 直接创建一条记录数据,并更新 + flow_record_obj = FlowRecord.objects.create(**{ + "flow_data_id": flow_data_obj.id, + "current_node_id": flow_node_obj.node_id, + "type": flow_node_obj.node_type, + "status": 1, + "parent_node_id": flow_node_obj.parent.node_id if flow_node_obj.parent else None, + }) + if users: + flow_record_obj.pre_user.set([users.id]) + FlowAuditUsers.objects.create(**{ + "flow_record": flow_record_obj, + "audit_user": flow_data_obj.start_user, + "status": 1, + "description": "自动审核通过", + }) + # 调用一次执行 + FlowBaseModel.process_engine(flow_data_obj.id) + return + + @classmethod + def conditional_check(self, props, flow_data_obj: FlowData): + """ + 条件确认,返回 true 或 false + """ + + def func_condition(data): + # 1.发起人-本人/部门 + # 2.发起人-角色 + # 3.库表-字符串类型 + # 4.库表-数字类型 + if data.get("type").lower() == 'org': + dept_id = flow_data_obj.start_user.dept_id + user_id = flow_data_obj.start_user.id + dept_ids = [ele.get('id') for ele in data["compareVal"] if ele.get('type') == 'dept'] + user_ids = [ele.get('id') for ele in data["compareVal"] if ele.get('type') == 'user'] + # 1.1.本人/部门属于 IN + if data['compare'] == 'IN': + if dept_id in dept_ids or user_id in user_ids: + return True + # 1.2.本人/部门不属于 NIN + else: + if not (dept_id in dept_ids or user_id in user_ids): + return True + return False + elif data.get("type").lower() == 'role': + roles = flow_data_obj.start_user.role.all().values_list('role_id', flat=True) + role_ids = [ele.get('id') for ele in data["compareVal"]] + # 2.1.拥有角色 + if data['compare'] == 'HAS': + return any([item in role_ids for item in roles]) + # 2.2.不拥有角色 + else: + return not any([item in role_ids for item in roles]) + + elif data.get("group") == 'DATABASE': + # 3.1. string + update_fields = flow_data_obj.pre_change_content.get('update_fields', {}) + if not update_fields: + return False + model_name = data.get("symbol").split('_')[0] + if model_name not in update_fields: + return False + if flow_data_obj.pre_change_content.get('type') == 'update': + model_data = update_fields[model_name][1] + else: + model_data = update_fields[model_name] + if data['type'] == 'TextInput': + # {name: '含有字符串', symbol: 'HAS'}, + # {name: '包含在', symbol: 'IN'}, + # {name: '等于', symbol: 'EQ'}, + # {name: '不等于', symbol: 'NEQ'} + if data['compare'] == 'HAS': + if data["compareVal"][0] in model_data: + return True + elif data['compare'] == 'IN': + return any([item in model_data for item in data["compareVal"]]) + elif data['compare'] == 'EQ': + if data["compareVal"][0] == 'null' and not model_data: + return True + if data["compareVal"][0] == model_data: + return True + else: + if data["compareVal"][0] != model_data: + return True + return False + if data['type'] == 'NumberInput': + # {name: '大于', symbol: 'GT'}, + # {name: '小于', symbol: 'LT'}, + # {name: '等于', symbol: 'EQ'}, + # {name: '大于等于', symbol: 'GT_EQ'}, + # {name: '小于等于', symbol: 'LT_EQ'}, + # {name: '不等于', symbol: 'NEQ'}, + # {name: '包含在', symbol: 'IN'}, + # {name: '介于两者间(含首尾)', symbol: 'BT'}, + if data['compare'] == 'GT': + if int(model_data) > int(data["compareVal"][0]): + return True + elif data['compare'] == 'LT': + if int(model_data) < int(data["compareVal"][0]): + return True + elif data['compare'] == 'EQ': + if int(model_data) == int(data["compareVal"][0]): + return True + elif data['compare'] == 'GT_EQ': + if int(model_data) >= int(data["compareVal"][0]): + return True + elif data['compare'] == 'LT_EQ': + if int(model_data) <= int(data["compareVal"][0]): + return True + elif data['compare'] == 'IN': + if int(model_data) != int(data["compareVal"][0]): + return str(model_data) in data["compareVal"] + elif data['compare'] == 'BT': + if int(data["compareVal"][0]) <= int(model_data) <= int( + data["compareVal"][1]): + return True + return False + return False + + groups = props.get('groups', []) + # 1.如果没有数据则返回 + if len(groups) == 0: + return True + if len(groups) == 1: + conditions = groups[0].get('conditions', []) + if len(conditions) == 0: + return True + # 2.判定 + sum_result = [] + for group in groups: + pass + conditions = group.get('conditions', []) + logic = group.get('logic') + result = [] + for condition in conditions: + # 把执行结果放到数组中 + result.append(func_condition(condition)) + # 判定结果 + result_str = f' {" and " if group.get("logic") else "or"}'.join([str(ele) for ele in result]) + sum_result.append(result_str) + # 全局判定 + all_result_str = f' {" and " if props.get("logic") else "or"}'.join(sum_result) + print("all_result_str", all_result_str) + return eval(all_result_str) + + @classmethod + def save_flow_node_obj(self, flow_data_obj, flow_node_obj, status): + # 更新当前节点状态 + pre_user = [] + pre_dept = [] + pre_role = [] + flow_data_obj.current_node = flow_node_obj.node_dict + flow_data_obj.handler = None + flow_data_obj.save() + # ruleType:ASSIGN_DEPT 指定部门;ASSIGN_USER 指定人员;ROOT_SELF 发起人自己;ASSIGN_ROLE指定角色 + if flow_node_obj.node_dict.get('props', {}).get('ruleType') == 'ASSIGN_USER': + # 1.指定人员 + for user in flow_node_obj.node_dict.get('props', {}).get('assignUser', []): + pre_user.append(user.get('id')) + elif flow_node_obj.node_dict.get('props', {}).get('ruleType') == 'ROOT_SELF': + # 2.发起人自己 + pre_user.append(flow_data_obj.start_user.id) + elif flow_node_obj.node_dict.get('props', {}).get('ruleType') == 'ASSIGN_DEPT': + # 3.指定部门 + for dept in flow_node_obj.node_dict.get('props', {}).get('assignDept', {}).get('dept'): + pre_dept.append(dept.get('id')) + elif flow_node_obj.node_dict.get('props', {}).get('ruleType') == 'ASSIGN_ROLE': + # 4.指定角色 + print(flow_node_obj.node_dict) + for role in flow_node_obj.node_dict.get('props', {}).get('assignRole', {}): + pre_role.append(role.get('id')) + # TODO 根据规则判断是否要自动审核通过 + create_dict = {} + same_root_type = flow_node_obj.props.get('sameRoot', {}).get('type') + # 当审批人与提交人为同一人时,自动审批 + if flow_data_obj.start_user_id in pre_user and same_root_type == 'TO_SKIP': + status = 1 + if flow_node_obj.node_type == 'Cc': + status = 1 + # 获取当前要处理的信息 + flow_data_obj.pre_user.set(pre_user) + flow_data_obj.pre_dept.set(pre_dept) + flow_data_obj.pre_role.set(pre_role) + # 直接创建一条记录数据,并更新 + flow_record_obj = FlowRecord.objects.create(**{ + "flow_data_id": flow_data_obj.id, + "current_node_id": flow_node_obj.node_id, + "type": flow_node_obj.node_type, + "status": status, + "parent_node_id": flow_node_obj.parent.node_id if flow_node_obj.parent else None, + }, **create_dict) + flow_record_obj.pre_user.set(pre_user) + flow_record_obj.pre_dept.set(pre_dept) + flow_record_obj.pre_role.set(pre_role) + # 发通知 + flow_record_obj.create_message_push(flow_record_obj) + if status == 1: + FlowAuditUsers.objects.create(**{ + "flow_record": flow_record_obj, + "audit_user": flow_data_obj.start_user, + "status": 1, + "description": "自动审核通过", + }) + + @classmethod + def _approval_node(self, flow_data_obj, flow_node_obj): + """ + 审核人节点 + """ + self.save_flow_node_obj(flow_data_obj, flow_node_obj, status=0) + + @classmethod + def _gateway_node(self, flow_data_obj, flow_node_obj): + """ + 分支节点 + 1.获取所有父级节点是本分支的子级条件节点 + 2.根据条件判断走哪一个分支节点 + """ + exclusive_node_obj = FlowNode.objects.filter(parent__node_id=flow_node_obj.node_id, + flow_info=flow_data_obj.flow_info) + for exclusive_node in exclusive_node_obj: + # 根据条件判断是否走该节点 + if not self.conditional_check(exclusive_node.props, flow_data_obj): + continue + flow_node_obj = FlowNode.objects.filter(parent__node_id=exclusive_node.node_id, + flow_info=flow_data_obj.flow_info).first() + # 如果flow_node_obj 为空,则直接跳过 + if not flow_node_obj: + self.save_flow_node_obj(flow_data_obj, exclusive_node, status=1) + break + # 更新当前节点状态 + self.save_flow_node_obj(flow_data_obj, flow_node_obj, status=0) + break + + return + + @classmethod + def _cc_node(self, flow_data_obj, flow_node_obj): + # 更新当前节点状态 + self.save_flow_node_obj(flow_data_obj, flow_node_obj, status=1) + + @classmethod + def audit_pass(self, flow_data_obj: FlowData): + """ + 审核通过执行 + """ + instance_id = flow_data_obj.pre_change_content.get('id') + type = flow_data_obj.pre_change_content.get('type') + update_fields_data = flow_data_obj.pre_change_content.get('update_fields') + update_fields = {} + for key, val in update_fields_data.items(): + if type == 'update': + update_fields[key] = val[1] + elif type == 'create': + update_fields[key] = val + instance = apps.get_model(flow_data_obj.flow_info.content_type.app_label, + model_name=flow_data_obj.flow_info.content_type.model) + if type == 'update': + instance.objects.filter(id=instance_id).update(**update_fields) + elif type == 'create': + class DynamicSerializer(serializers.ModelSerializer): + class Meta: + model = instance + fields = '__all__' + + # 创建新数据,使用动态序列化器 + instance.is_audit_pass = True + serializer = DynamicSerializer(data=update_fields) + serializer.is_valid(raise_exception=True) + serializer.save() + instance.is_audit_pass = False + + else: + if 'is_delete' in instance._meta.get_fields(): + instance.objects.filter(id=instance_id).update(is_delete=True) + else: + instance.objects.filter(id=instance_id).delete() + print(f"审核通过后执行更新成功[{instance_id}]") + + @classmethod + def _get_gateway(self, node_id): + """ + 获取 node 节点 id + """ + flow_node_obj = FlowNode.objects.filter(node_id=node_id).first() + if flow_node_obj.node_type == 'Exclusive': + new_flow_node_obj = FlowNode.objects.filter(parent_id=flow_node_obj.parent_id).exclude( + node_type='Exclusive').first() + if new_flow_node_obj: + return new_flow_node_obj + if flow_node_obj.node_type == 'Start': + return None + return self._get_gateway(flow_node_obj.parent.node_id) + + @classmethod + def process_engine(self, flow_data_id): + """ + 审批引擎,进行下一步流转 + """ + flow_data_obj = FlowData.objects.filter(id=flow_data_id).first() + # 1.判断该流程是否是需要人工审核 + flow_record_obj = FlowRecord.objects.filter(flow_data_id=flow_data_id).first() + if flow_record_obj is None: + print("[流程错误] flow_record_obj", flow_record_obj) + return False + if flow_record_obj.status == 0: + print("[需要人工审核通过后才可下一步] flow_record_obj", flow_record_obj) + return False + if flow_record_obj.status == 3: + # 撤销审核 + if not flow_data_obj.completed_time: + flow_data_obj.completed_time = datetime.datetime.now() + flow_data_obj.status = 3 + flow_data_obj.save() + return True + # 2.找该节点的子节点 + flow_node_obj = FlowNode.objects.filter(parent__node_id=flow_data_obj.current_node.get('id'), + flow_info=flow_data_obj.flow_info).first() + if not flow_node_obj: + # 3.判断,如果是条件节点,判断父级的网关节点下一节点。 + node_obj = FlowNode.objects.filter(node_id=flow_data_obj.current_node.get('id'), + flow_info=flow_data_obj.flow_info).first() + flow_node_obj = FlowNode.objects.filter(parent_id=node_obj.parent_id, + flow_info=flow_data_obj.flow_info, + process_index__gt=node_obj.process_index).first() + if not flow_node_obj: + # 4.查询当前节点的上级网关节点 + flow_node_obj = self._get_gateway(flow_data_obj.current_node.get('id')) + if not flow_node_obj: + flow_data_obj.completed_time = datetime.datetime.now() + flow_data_obj.status = 1 + flow_data_obj.save() + # 审核通过 + self.audit_pass(flow_data_obj) + return True + + node_func_dict = { + "Start": self._approval_node, # 开始节点 + "Approval": self._approval_node, # 审核人节点 + "Gateway": self._gateway_node, # 分支节点 + "Cc": self._cc_node, # 抄送节点 + } + node_func_dict[flow_node_obj.node_type](flow_data_obj, flow_node_obj) + # 如果需要继续执行下一节点则继续 + self.process_engine(flow_data_obj.id) + + # 3.审批通过后保存数据 + class Meta: + abstract = True diff --git a/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/fixtures/__init__.py b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/fixtures/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/fixtures/init_menu.json b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/fixtures/init_menu.json new file mode 100644 index 0000000000000000000000000000000000000000..61d6db9355364da5b77d8fccc3c088f6775355b5 --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/fixtures/init_menu.json @@ -0,0 +1,220 @@ +[ + { + "name": "审批流程", + "icon": "iconfont icon-xitongshezhi", + "sort": 9, + "is_link": false, + "is_catalog": true, + "web_path": "/workflow", + "component": "", + "component_name": "", + "status": true, + "cache": false, + "visible": true, + "parent": null, + "children": [ + { + "name": "流程管理", + "icon": "iconfont icon-caidan", + "sort": 1, + "is_link": false, + "is_catalog": false, + "web_path": "/flowManagement", + "component": "plugins/dvadmin3-flow-web/src/flowManagement/index", + "component_name": "flowManagement", + "status": true, + "cache": false, + "visible": true, + "parent": 1, + "children": [], + "menu_button": [ + { + "name": "查询", + "value": "flowInfo:Search", + "api": "/api/dvadmin3_flow/flow_info/", + "method": 0 + }, + { + "name": "详情", + "value": "flowInfo:Retrieve", + "api": "/api/dvadmin3_flow/flow_info/{id}/", + "method": 0 + }, + { + "name": "新增", + "value": "flowInfo:Create", + "api": "/api/dvadmin3_flow/flow_info/", + "method": 1 + }, + { + "name": "编辑", + "value": "flowInfo:Update", + "api": "/api/dvadmin3_flow/flow_info/{id}/", + "method": 2 + }, + { + "name": "删除", + "value": "flowInfo:Delete", + "api": "/api/dvadmin3_flow/flow_info/{id}/", + "method": 3 + } + ], + "menu_field": [] + }, + { + "name": "全部审批", + "icon": "ele-OfficeBuilding", + "sort": 3, + "is_link": false, + "is_catalog": false, + "web_path": "/flowData", + "component": "plugins/dvadmin3-flow-web/src/flowData/index", + "component_name": "flowData", + "status": true, + "cache": false, + "visible": true, + "parent": 1, + "children": [], + "menu_button": [ + { + "name": "查询", + "value": "flowData:Search", + "api": "/api/dvadmin3_flow/flow_data/{id}/", + "method": 0 + }, + { + "name": "详情", + "value": "flowData:Retrieve", + "api": "/api/dvadmin3_flow/flow_data/{id}/", + "method": 0 + }, + { + "name": "新增", + "value": "flowData:Create", + "api": "/api/dvadmin3_flow/flow_data/{id}/", + "method": 1 + }, + { + "name": "编辑", + "value": "flowData:Update", + "api": "/api/dvadmin3_flow/flow_data/{id}/", + "method": 2 + }, + { + "name": "删除", + "value": "flowData:Delete", + "api": "/api/dvadmin3_flow/flow_data/{id}/", + "method": 3 + } + ], + "menu_field": [] + }, + { + "name": "待我处理", + "icon": "ele-ColdDrink", + "sort": 4, + "is_link": false, + "is_catalog": false, + "web_path": "/flowTodo", + "component": "plugins/dvadmin3-flow-web/src/flowTodo/index", + "component_name": "flowTodo", + "status": true, + "cache": false, + "visible": true, + "parent": 1, + "children": [], + "menu_button": [ + { + "name": "查询", + "value": "flowTodo:Search", + "api": "/api/dvadmin3_flow/flow_data/{id}/", + "method": 0 + } + ], + "menu_field": [ + + ] + }, + { + "name": "已处理的", + "icon": "ele-ColdDrink", + "sort": 5, + "is_link": false, + "is_catalog": false, + "web_path": "/flowIdo", + "component": "plugins/dvadmin3-flow-web/src/flowIdo/index", + "component_name": "flowIdo", + "status": true, + "cache": false, + "visible": true, + "parent": 1, + "children": [], + "menu_button": [ + { + "name": "查询", + "value": "flowIdo:Search", + "api": "/api/dvadmin3_flow/flow_data/{id}/", + "method": 0 + } + ], + "menu_field": [ + + ] + }, + { + "name": "我发起的", + "icon": "ele-ColdDrink", + "sort": 6, + "is_link": false, + "is_catalog": false, + "web_path": "/flowSubmitted", + "component": "plugins/dvadmin3-flow-web/src/flowSubmitted/index", + "component_name": "flowSubmitted", + "status": true, + "cache": false, + "visible": true, + "parent": 1, + "children": [], + "menu_button": [ + { + "name": "查询", + "value": "flowSubmitted:Search", + "api": "/api/dvadmin3_flow/flow_data/{id}/", + "method": 0 + } + ], + "menu_field": [ + + ] + }, + { + "name": "抄送我的", + "icon": "ele-ColdDrink", + "sort": 7, + "is_link": false, + "is_catalog": false, + "web_path": "/flowCC", + "component": "plugins/dvadmin3-flow-web/src/flowCC/index", + "component_name": "flowCC", + "status": true, + "cache": false, + "visible": true, + "parent": 1, + "children": [], + "menu_button": [ + { + "name": "查询", + "value": "flowCC:Search", + "api": "/api/dvadmin3_flow/flow_data/{id}/", + "method": 0 + } + ], + "menu_field": [ + + ] + } + ], + "menu_button": [], + "menu_field": [] + } +] \ No newline at end of file diff --git a/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/fixtures/initialize.py b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/fixtures/initialize.py new file mode 100644 index 0000000000000000000000000000000000000000..a7cb33106d8766e13db9d9a0741ea0a36922e362 --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/fixtures/initialize.py @@ -0,0 +1,26 @@ +# 初始化 +import os + +import django + +from dvadmin.system.fixtures.initSerializer import MenuInitSerializer + +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "application.settings") +django.setup() + +from dvadmin.utils.core_initialize import CoreInitialize + + +class Initialize(CoreInitialize): + + def init_menu(self): + """ + 初始化菜单信息 + """ + self.init_base(MenuInitSerializer, unique_fields=['name', 'web_path', 'component', 'component_name']) + + def run(self): + self.init_menu() + +if __name__ == "__main__": + Initialize(app='dvadmin3_flow').run() diff --git a/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/migrations/__init__.py b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/migrations/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..40a96afc6ff09d58a702b76e3f7dd412fe975e26 --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/migrations/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- diff --git a/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/models.py b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/models.py new file mode 100644 index 0000000000000000000000000000000000000000..d27df0eb3d10cf4a59caf8cbf1902b50c57e78ee --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/models.py @@ -0,0 +1,272 @@ +from django.contrib.contenttypes.models import ContentType +from django.db import models + +from application import settings +from dvadmin.utils.models import CoreModel + +table_prefix = 'workflow_' + +AUDIT_STATUS = ( + (0, '进行中'), + (1, '审核通过'), + (2, '审核驳回'), + (3, '审核撤销'), +) + + +class FlowInfo(CoreModel): + content_type = models.ForeignKey(ContentType, db_constraint=False, null=True, blank=True, on_delete=models.CASCADE) + name = models.CharField(max_length=50, verbose_name='名称') + operation = models.CharField(null=True, blank=True,max_length=255, verbose_name='操作') + icon = models.JSONField( blank=True,null=True, verbose_name='图标') + form_conf = models.JSONField( blank=True,null=True, verbose_name='form配置') + is_deleted = models.BooleanField(verbose_name="是否软删除", help_text='是否软删除', blank=True,default=False, db_index=True) + STATUS_CHOICES = ( + (0, '待发布'), + (1, '正常'), + (2, '下架'), + ) + status = models.IntegerField(default=0, choices=STATUS_CHOICES, verbose_name="状态", help_text="状态") + + class Meta: + db_table = table_prefix + 'flow_info' + verbose_name = '流程管理' + verbose_name_plural = verbose_name + ordering = ('-create_datetime',) + + +class FlowNode(CoreModel): + flow_info = models.ForeignKey(FlowInfo, db_constraint=False, on_delete=models.CASCADE) + node_id = models.CharField(max_length=64, verbose_name="节点ID", help_text="节点ID") + process_index = models.IntegerField(default=0, verbose_name="索引", help_text="索引") + name = models.CharField(max_length=64, verbose_name="节点名称", help_text="节点名称") + # Start 开始节点 + # Approval 审批中 + # Cc 抄送 + # Gateway 节点 + node_type = models.CharField(default="Start", max_length=64, verbose_name='节点类型', help_text='节点类型') + props = models.JSONField(null=True, blank=True, verbose_name="条件流程配置", help_text="条件流程配置") + branch = models.JSONField(null=True, blank=True, verbose_name="分支流程配置", help_text="分支流程配置") + is_first = models.BooleanField(default=False, verbose_name="是否首级", help_text="是否首级") + # 子级节点 + parent = models.ForeignKey('self', null=True, blank=True, db_constraint=False, on_delete=models.CASCADE) + + class Meta: + db_table = table_prefix + "flow_node" + verbose_name = "流程节点表" + verbose_name_plural = verbose_name + ordering = ('process_index',) + + @classmethod + def save_flow_node(self, data, flow_info_obj, parent_id=None): + """ + 保存节点数据 + """ + all_node_ids = [] + last_node_id = None + for index, ele in enumerate(data): + # 保存节点信息 + node_id = ele.pop('id') + all_node_ids.append(node_id) + flow_node_obj, _ = FlowNode.objects.update_or_create(flow_info=flow_info_obj, node_id=node_id, defaults={ + "name": ele.get('name'), + "node_type": ele.get('type'), + "props": ele.get('props'), + "branch": ele.get('branch'), + "process_index": index, + "is_first": not parent_id, + "parent_id": parent_id or last_node_id + }) + last_node_id = flow_node_obj.id + # 子级节点数据保存 + branch = ele.get('props', {}).get('branch') + if branch: + for inx, branch_ele in enumerate(branch): + # Gateway下的props-branch + branch_node_id = branch_ele.pop('id') + all_node_ids.append(branch_node_id) + branch_flow_node_obj, _ = FlowNode.objects.update_or_create( + flow_info=flow_info_obj, node_id=branch_node_id, + defaults={ + "name": branch_ele.get('name'), + "node_type": branch_ele.get('type'), + "props": branch_ele.get('props'), + "branch": branch_ele.get('branch'), + "process_index": inx, + "parent_id": flow_node_obj.id + }) + # 条件分支下的各个数据保存 + all_node_ids += self.save_flow_node(ele.get('branch', [])[inx], flow_info_obj, + parent_id=branch_flow_node_obj.id) + return all_node_ids + + @classmethod + def get_flow_node(self, flow_info_obj): + """ + 获取节点数据 + """ + data = [] + flow_node_obj = FlowNode.objects.filter(flow_info=flow_info_obj, is_first=True) + for ele in flow_node_obj: + data.append({ + "id": ele.node_id, + "name": ele.name, + "props": ele.props, + "type": ele.node_type, + "branch": ele.branch + }) + return data + + @property + def node_dict(self): + """ + 根据node_id获取节点数据 + """ + return { + "id": self.node_id, + "name": self.name, + "props": self.props, + "type": self.node_type, + "branch": self.branch + } + + +class FlowData(CoreModel): + flow_info = models.ForeignKey(FlowInfo, db_constraint=False, verbose_name='关联流程节点表', + on_delete=models.CASCADE) + no = models.CharField(max_length=200, verbose_name='流程编号') + name = models.CharField(max_length=100, verbose_name='名称') + models_name = models.CharField(max_length=100, null=True, blank=True, verbose_name='model名称') + status = models.IntegerField(choices=AUDIT_STATUS, default=0, verbose_name='状态') + start_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name='发起人', blank=True, null=True, + related_name='start_user', db_constraint=False, + on_delete=models.PROTECT) + pre_user = models.ManyToManyField(settings.AUTH_USER_MODEL, db_constraint=False, verbose_name='预处理人', + blank=True, + related_name='flow_pre_user', ) + pre_dept = models.ManyToManyField("system.Dept", db_constraint=False, verbose_name='预处理部门', blank=True, + related_name='flow_pre_dept', ) + pre_role = models.ManyToManyField("system.Role", verbose_name='预处理角色', db_constraint=False, blank=True) + handler = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name='处理人', blank=True, null=True, + related_name='flow_handler', db_constraint=False, + on_delete=models.PROTECT) + pre_change_content = models.JSONField(verbose_name='预改变内容', null=True, blank=True) + current_node = models.JSONField(verbose_name='当前节点') + completed_time = models.DateTimeField(null=True, blank=True, verbose_name='完成时间') + + class Meta: + db_table = table_prefix + 'flow_data' + verbose_name = '流程数据' + verbose_name_plural = verbose_name + ordering = ('-create_datetime',) + + def generate_no(self): + # 获取当前日期 + from django.utils import timezone + current_date = timezone.now() + + date_str = current_date.strftime('%Y%m%d') # 格式化日期为 YYYYMMDD + prefix = "SH" + date_str + + # 查找当前最大编号 + max_no = FlowData.objects.filter(no__startswith=prefix).order_by('no').last() + if max_no: + # 解析当前最大编号的顺序部分 + last_sequence = int(max_no.no[len(prefix):]) # 获取顺序编号部分 + else: + last_sequence = 0 + + new_sequence = last_sequence + 1 + return f"{prefix}{new_sequence:06d}" # 生成新的编号,格式为 SHYYYYMMDD000001 + + def save(self, *args, **kwargs): + if not self.no: + # 如果没有提供 no 字段值,则自动生成 + self.no = self.generate_no() + super().save(*args, **kwargs) + + +class FlowRecord(CoreModel): + flow_data = models.ForeignKey(FlowData, db_constraint=False, on_delete=models.CASCADE) + pre_user = models.ManyToManyField(settings.AUTH_USER_MODEL, verbose_name='预处理人', blank=True, + related_name='pre_user', db_constraint=False, ) + pre_dept = models.ManyToManyField("system.Dept", verbose_name='预处理部门', blank=True, + related_name='pre_dept', db_constraint=False, ) + pre_role = models.ManyToManyField("system.Role", verbose_name='预处理角色', db_constraint=False, blank=True) + handler = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name='处理人', blank=True, null=True, + related_name='handler', db_constraint=False, + on_delete=models.PROTECT) + current_node_id = models.CharField(max_length=50, verbose_name='当前节点', null=True, blank=True, ) + parent_node_id = models.CharField(max_length=50, verbose_name='父节点', null=True, blank=True, ) + FLOW_RECORD_TYPE = ( + ("Start", '发起节点'), + ("Approval", '审核节点'), + ("Gateway", '条件节点'), + ("Cc", '抄送节点'), + ) + type = models.CharField(choices=FLOW_RECORD_TYPE, default="",max_length=255, null=True, blank=True, verbose_name='类型') + status = models.IntegerField(choices=AUDIT_STATUS, default=0, verbose_name='状态') + completed_time = models.DateTimeField(null=True, blank=True, verbose_name='完成时间') + + class Meta: + db_table = table_prefix + 'flow_record' + verbose_name = '流转记录' + verbose_name_plural = verbose_name + ordering = ('-create_datetime',) + + def save(self, force_insert=False, force_update=False, using=None, update_fields=None): + super().save(force_insert, force_update, using, update_fields) + # 如果审核通过,就走下一步 + print("force_insert", force_insert) + if not force_insert and self.status in [1, 2, 3]: + from dvadmin3_flow.base_model import FlowBaseModel + FlowBaseModel.process_engine(self.flow_data_id) + + @classmethod + def create_message_push(cls, obj, request=None): + from application.websocketConfig import create_message_push + # 通知审核 + user_id = obj.pre_user.all().values_list('id', flat=True) + print("user_id", user_id) + role_id = obj.pre_role.all().values_list('id', flat=True) + dept_id = obj.pre_dept.all().values_list('id', flat=True) + message = { + "contentType": "Content", + "content": "您有一个新审批,请前往查看!", + "notificationTitle": "新审核", + "notificationButton": "点击前往审核", + "path": "/flowTodo" + } + if user_id: + create_message_push(title=obj.flow_data.name, content=message.get("content"), + target_user=list(user_id), + message=message, request=request) + if role_id: + create_message_push(title=obj.flow_data.name, content=message.get("content"), + target_role=list(role_id), + target_type=1, + message=message, request=request) + if dept_id: + create_message_push(title=obj.flow_data.name, content=message.get("content"), + target_role=list(dept_id), + target_type=2, + message=message, request=request) + + +class FlowAuditUsers(models.Model): + flow_record = models.ForeignKey(FlowRecord, db_constraint=False, on_delete=models.CASCADE) + audit_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name='审核人', blank=True, null=True, + db_constraint=False, + related_name='audit_user', on_delete=models.PROTECT) + status = models.IntegerField(choices=AUDIT_STATUS, default=0, verbose_name='状态') + description = models.CharField(max_length=255, verbose_name="描述", null=True, blank=True, help_text="描述") + update_datetime = models.DateTimeField(auto_now=True, null=True, blank=True, help_text="修改时间", + verbose_name="修改时间") + create_datetime = models.DateTimeField(auto_now_add=True, null=True, blank=True, help_text="创建时间", + verbose_name="创建时间") + + class Meta: + db_table = table_prefix + 'flow_audit_users' + verbose_name = '流程审核人员' + verbose_name_plural = verbose_name + ordering = ('-create_datetime',) diff --git a/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/settings.py b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/settings.py new file mode 100644 index 0000000000000000000000000000000000000000..0fd9455c3b824872dff29dca9f75670828b142f2 --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/settings.py @@ -0,0 +1,29 @@ +from application import settings + +# ================================================= # +# ***************** 插件配置区开始 ******************* +# ================================================= # +# 路由配置 +plugins_url_patterns = [ + {"re_path": r'api/dvadmin3_flow/', "include": "dvadmin3_flow.urls"}, +] +# app 配置 +apps = ['dvadmin3_flow'] +# 租户模式中,public模式共享app配置 +tenant_shared_apps = [] +# 只在普通租户建表,public中无表 +tenant_exclusive_apps = ['dvadmin3_flow'] +# ================================================= # +# ******************* 插件配置区结束 ***************** +# ================================================= # + +# ********** 赋值到 settings 中 ********** +if not hasattr(settings, 'TENANT_SHARED_APPS'): + settings.TENANT_SHARED_APPS = [] +if not hasattr(settings, 'TENANT_EXCLUSIVE_APPS'): + settings.TENANT_EXCLUSIVE_APPS = [] +settings.TENANT_SHARED_APPS += tenant_shared_apps +settings.TENANT_EXCLUSIVE_APPS += tenant_exclusive_apps +settings.INSTALLED_APPS += [app for app in apps if app not in settings.INSTALLED_APPS] +# ********** 注册路由 ********** +settings.PLUGINS_URL_PATTERNS += plugins_url_patterns diff --git a/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/urls.py b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/urls.py new file mode 100644 index 0000000000000000000000000000000000000000..d148d96cb16565f4c4cf5add70c630853dd6ba5f --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/urls.py @@ -0,0 +1,17 @@ +from rest_framework import routers +from django.urls import re_path, path + +from dvadmin3_flow.app_views.flow_data import AppFlowDataViewSet +from dvadmin3_flow.views.flow_info import FlowInfoViewSet +from dvadmin3_flow.views.flow_data import FlowDataViewSet + + +router_url = routers.SimpleRouter() +router_url.register('flow_info', FlowInfoViewSet) +router_url.register('flow_data', FlowDataViewSet) +urlpatterns = [ + path('get_flow_data/',AppFlowDataViewSet.as_view({ + 'get': 'get_flow_data' + })) +] +urlpatterns += router_url.urls diff --git a/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/views/__init__.py b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/views/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..40a96afc6ff09d58a702b76e3f7dd412fe975e26 --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/views/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- diff --git a/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/views/flow_data.py b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/views/flow_data.py new file mode 100644 index 0000000000000000000000000000000000000000..ba7df437e0df9c202c12d68f584932f8b59e64c8 --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/views/flow_data.py @@ -0,0 +1,250 @@ +from django.db.models import Q, F +from rest_framework.decorators import action +from rest_framework.permissions import IsAuthenticated + +from dvadmin.utils.json_response import DetailResponse, SuccessResponse, ErrorResponse +from dvadmin.utils.serializers import CustomModelSerializer +from dvadmin.utils.viewset import CustomModelViewSet +from dvadmin3_flow.models import FlowData, FlowRecord, FlowAuditUsers, FlowNode + + +class FlowDataSerializer(CustomModelSerializer): + """ + 流程管理 创建/更新时的列化器 + """ + + def to_representation(self, instance): + data = super().to_representation(instance) + data["current_node"] = instance.current_node + data["status"] = instance.status + data["start_user_name"] = instance.start_user and instance.start_user.name + # 查询最新的一条记录表 + flow_record_obj = FlowRecord.objects.filter(flow_data_id=data.get('id')).order_by('-create_datetime').first() + if flow_record_obj: + data['pre_user'] = flow_record_obj.pre_user.all().values_list('name',flat=True) + data['pre_dept'] = flow_record_obj.pre_dept.all().values_list('name',flat=True) + data['pre_role'] = flow_record_obj.pre_role.all().values_list('name',flat=True) + # 返回已审核人信息 + data['audit_users'] = FlowAuditUsers.objects.filter(flow_record__flow_data_id=data.get('id')).values('id', + 'audit_user', + 'status', + 'description', + 'create_datetime') + return data + + class Meta: + model = FlowData + fields = ['id', 'no', 'name', 'models_name', 'start_user', + 'completed_time', 'update_datetime', 'create_datetime'] + + +class FlowDataViewSet(CustomModelViewSet): + """ + 流程管理接口: + """ + queryset = FlowData.objects.all() + permission_classes = [IsAuthenticated] + serializer_class = FlowDataSerializer + extra_filter_class = [] + + @action(methods=['get'], detail=False, permission_classes=[IsAuthenticated]) + def get_all_flow_data(self, request): + """ + 获取所有审批流程数据 + :param request: + :return: + """ + self.extra_filter_class = [] + queryset = self.filter_queryset(self.get_queryset()) + page = self.paginate_queryset(queryset) + if page is not None: + serializer = self.get_serializer(page, many=True, request=request) + return self.get_paginated_response(serializer.data) + serializer = self.get_serializer(queryset, many=True, request=request) + return SuccessResponse(data=serializer.data, msg="获取成功") + + @action(methods=['get'], detail=True, permission_classes=[IsAuthenticated]) + def get_pre_change_content(self,request,pk): + """ + 获取预审核数据 + """ + instance = FlowData.objects.get(id=pk) + model_class = instance.flow_info.content_type.model_class() + field_verbose_names = {} + for field in model_class._meta.get_fields(): + if hasattr(field, 'verbose_name'): + field_verbose_names[field.name] = field.verbose_name + print(field_verbose_names) + + update_fields = instance.pre_change_content.get("update_fields") + print(update_fields) + def get_verbose_names_from_dicts(dict1, dict2): + verbose_names = {} + for field, value in dict2.items(): + if field in dict1: + verbose_names[dict1[field]] = value + else: + verbose_names[field] = value + return verbose_names + + verbose_names = get_verbose_names_from_dicts(field_verbose_names, update_fields) + print(verbose_names) + instance.pre_change_content["form_data"]=verbose_names + result = instance.pre_change_content + return DetailResponse(data=result) + + @action(methods=['get'], detail=True, permission_classes=[IsAuthenticated]) + def get_flow_record(self,request,pk): + """ + 获取审核记录 + """ + instance = FlowData.objects.get(id=pk) + flow_record = FlowRecord.objects.filter(flow_data_id=pk).order_by("id") + result = list() + for record in flow_record: + node_data = FlowNode.objects.filter(flow_info_id=instance.flow_info_id,node_id=record.current_node_id).values() + audit_users = FlowAuditUsers.objects.filter(flow_record_id=record.id).values(name=F('audit_user__name')) + result.append({ + "startUserName":instance.start_user.name, + "nodeData":node_data[0], + "auditUsers":audit_users, + "preInfo":{ + "pre_user": record.pre_user.all().values('id', 'name'), + "pre_dept": record.pre_dept.all().values('id', 'name'), + "pre_role": record.pre_role.all().values('id', 'name'), + }, + "nodeStatus":record.status + }) + return DetailResponse(data=result) + + @action(methods=['get'], detail=True, permission_classes=[IsAuthenticated]) + def get_flow_process(self, request, pk): + """ + 获取流程图 + """ + instance = FlowData.objects.get(id=pk) + result = FlowNode.get_flow_node(instance.flow_info) + return DetailResponse(data=result) + + @action(methods=['get'], detail=False, permission_classes=[IsAuthenticated]) + def my_pending_handle(self, request): + """ + 获取待我处理数据 + :param request: + :return: + """ + # 0待我处理;1我已处理;2我已提交;3抄送我的 + status = int(request.query_params.get('handle_status', 0)) + filter = Q(flowrecord__pre_user__id=request.user.id) + if request.user: + filter |= Q(flowrecord__pre_role__id__in=list(request.user.role.all().values_list('id', flat=True))) + if request.user.dept: + filter |= Q(flowrecord__pre_dept__id=request.user.dept.id) + # queryset = self.filter_queryset(self.get_queryset()) + queryset = self.get_queryset() + if status == 0: + filter = Q(filter) & Q(flowrecord__status=0) + queryset = queryset.filter(filter) + elif status == 1: + queryset = queryset.filter(flowrecord__flowauditusers__audit_user_id=request.user.id) + elif status == 2: + queryset = self.filter_queryset(self.get_queryset()).filter(start_user=self.request.user).filter(filter) + elif status == 3: + filter = Q(filter) & Q(flowrecord__type='Cc') + queryset = queryset.filter(filter) + page = self.paginate_queryset(queryset.distinct()) + if page is not None: + serializer = self.get_serializer(page, many=True, request=request) + return self.get_paginated_response(serializer.data) + serializer = self.get_serializer(queryset, many=True, request=request) + return SuccessResponse(data=serializer.data, msg="获取成功") + + @action(methods=['post'], detail=True, permission_classes=[IsAuthenticated]) + def handle_pass(self, request,pk, *args, **kwargs): + """ + 处理通过 + :param request: + :return: + """ + reason = request.data.get("reason","无") + instance = FlowData.objects.get(id=pk) + if instance.status != 0: + return ErrorResponse(msg="流程数据状态错误") + filter = Q(flowrecord__pre_user=request.user.id) + if request.user: + filter |= Q(flowrecord__pre_role__in=list(request.user.role.all().values_list('id', flat=True))) + if request.user.dept: + filter |= Q(flowrecord__pre_dept=request.user.dept.id) + if not FlowData.objects.filter(id=instance.id).filter(filter).exists(): + return ErrorResponse(msg="当前数据您无权限审核") + # 进行审核 + flow_record_obj = FlowRecord.objects.filter(flow_data=instance.id).first() + flow_record_obj.status = 1 + flow_record_obj.save() + FlowAuditUsers.objects.create(**{ + "flow_record": flow_record_obj, + "audit_user": self.request.user, + "status": 1, + "description": f"审核通过,处理意见:{reason}", + }) + + return DetailResponse(data=None, msg="处理通过") + + @action(methods=['post'], detail=True, permission_classes=[IsAuthenticated]) + def handle_reject(self, request, pk,*args, **kwargs): + """ + 处理驳回 + :param request: + :return: + """ + reason = request.data.get("reason") + instance = FlowData.objects.get(id=pk) + if instance.status != 0: + return ErrorResponse(msg="流程数据状态错误") + filter = Q(flowrecord__pre_user=request.user.id) + if request.user: + filter |= Q(flowrecord__pre_role__in=list(request.user.role.all().values_list('id', flat=True))) + if request.user.dept: + filter |= Q(flowrecord__pre_dept=request.user.dept.id) + if not FlowData.objects.filter(id=instance.id).filter(filter).exists(): + return ErrorResponse(msg="当前数据您无权限审核") + # 进行审核 + flow_record_obj = FlowRecord.objects.filter(flow_data=instance.id).first() + flow_record_obj.status = 2 + flow_record_obj.save() + FlowAuditUsers.objects.create(**{ + "flow_record": flow_record_obj, + "audit_user": self.request.user, + "status": 2, + "description": reason, + }) + return DetailResponse(data=None, msg="处理驳回") + + @action(methods=['post'], detail=False, permission_classes=[IsAuthenticated]) + def handle_cancel(self, request, *args, **kwargs): + """ + 审核撤销 + :param request: + :return: + """ + instance = FlowData.objects.get(id=request.data.get('id')) + if instance.status != 0: + return ErrorResponse(msg="流程数据状态错误") + filter = Q(flowrecord__pre_user=request.user.id) + if request.user: + filter |= Q(flowrecord__pre_role__in=list(request.user.role.all().values_list('id', flat=True))) + if request.user.dept: + filter |= Q(flowrecord__pre_dept=request.user.dept.id) + if not FlowData.objects.filter(id=instance.id).filter(filter).exists(): + return ErrorResponse(msg="当前数据您无权限审核") + # 进行审核撤销 + flow_record_obj = FlowRecord.objects.filter(flow_data=instance.id).first() + flow_record_obj.status = 3 + flow_record_obj.save() + FlowAuditUsers.objects.create(**{ + "flow_record": flow_record_obj, + "audit_user": self.request.user, + "status": 3, + "description": "手动审核撤销", + }) + return DetailResponse(data=None, msg="处理驳回") diff --git a/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/views/flow_info.py b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/views/flow_info.py new file mode 100644 index 0000000000000000000000000000000000000000..8cd8681e4b3441d0a2f77d5104d03abe79edf267 --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/views/flow_info.py @@ -0,0 +1,269 @@ +from django.apps import apps +from django.contrib.contenttypes.models import ContentType +from django.db import models +from django.db.models import Model +from rest_framework import serializers +from rest_framework.decorators import action +from rest_framework.permissions import IsAuthenticated + +from dvadmin.system.models import Dept, Users, Role +from dvadmin.utils.json_response import DetailResponse, SuccessResponse, ErrorResponse +from dvadmin.utils.serializers import CustomModelSerializer +from dvadmin.utils.string_util import random_str +from dvadmin.utils.viewset import CustomModelViewSet +from dvadmin3_flow.models import FlowInfo, FlowNode + + +class FlowInfoSerializer(CustomModelSerializer): + """ + 流程管理 创建/更新时的列化器 + """ + content_type = serializers.SerializerMethodField() + model_name = serializers.SerializerMethodField() + + def get_content_type(self, obj): + if obj.content_type: + return f"{obj.content_type.app_label}.{obj.content_type.model}" + else: + return "" + + def get_model_name(self, instance): + if instance.content_type: + return instance.content_type.name + return "" + + class Meta: + model = FlowInfo + fields = '__all__' + + +class FlowInfoViewSet(CustomModelViewSet): + """ + 流程管理接口: + """ + queryset = FlowInfo.objects.filter(is_deleted=False) + serializer_class = FlowInfoSerializer + + def list(self, request, *args, **kwargs): + self.extra_filter_class = [] + queryset = self.filter_queryset(self.get_queryset()) + page = self.paginate_queryset(queryset) + if page is not None: + serializer = self.get_serializer(page, many=True, request=request) + return self.get_paginated_response(serializer.data) + serializer = self.get_serializer(queryset, many=True, request=request) + return SuccessResponse(data=serializer.data, msg="获取成功") + + @action(methods=['GET'], detail=False, permission_classes=[IsAuthenticated]) + def org_tree(self, request, *args, **kwargs): + """ + 获取组织架构列表 + """ + dept_id = self.request.query_params.get('deptId') + type = self.request.query_params.get('type') + if not dept_id or not type: + return ErrorResponse(msg='参数错误') + data = [] + filter = {} + if int(dept_id) != 0: + filter['parent_id'] = dept_id + else: + filter['parent__isnull'] = True + if type == 'role': + for role in Role.objects.all(): + data.append({ + "id": role.id, + "name": role.name, + "avatar": "", + "type": "role" + }) + return DetailResponse(data=data, msg="获取成功") + dept_ids = [] + + for dept in Dept.objects.filter(**filter): + data.append({ + "id": dept.id, + "name": dept.name, + "avatar": "", + "type": "dept" + }) + dept_ids.append(dept.id) + if type == 'user': + for user in Users.objects.filter(dept_id__in=dept_ids): + data.append({ + "id": user.id, + "name": user.name, + "avatar": user.avatar, + "type": "user" + }) + return DetailResponse(data=data, msg="获取成功") + + @action(methods=['GET'], detail=False, permission_classes=[IsAuthenticated]) + def user_search(self, request, *args, **kwargs): + """ + 搜索用户 + """ + user_name = self.request.query_params.get('userName') + if not user_name: + return ErrorResponse(msg='参数错误') + data = [] + + for user in Users.objects.filter(name__icontains=user_name): + data.append({ + "id": user.id, + "name": user.name, + "avatar": user.avatar, + "type": "user" + }) + return DetailResponse(data=data, msg="获取成功") + + @action(methods=['GET'], detail=False, permission_classes=[IsAuthenticated]) + def get_all_flow_content_type(self, request, *args, **kwargs): + """ + 获取所有的model名称 + """ + data = [] + # 获取所有注册的app + apps_list = apps.get_app_configs() + # + # # 遍历所有的app并获取其所有的model + for app in apps_list: + for model in app.get_models(): + if getattr(model, 'ONLY_PUBLIC_TENANTS', False): + continue + if getattr(model, 'IS_FLOW', False): + data.append({ + "label": model._meta.verbose_name, + "value": str(model._meta), + }) + return DetailResponse(data=data, msg="获取成功") + + @action(methods=['get'], detail=True, permission_classes=[IsAuthenticated]) + def get_flow_process(self, request, pk): + instance = FlowInfo.objects.get(id=pk) + result = FlowNode.get_flow_node(instance) + return DetailResponse(data=result) + + @action(methods=['GET'], detail=False, permission_classes=[IsAuthenticated]) + def get_model_fields(self, request): + if not request.query_params.get('model_name'): + return DetailResponse(data=[]) + app_label, model_name = request.query_params.get('model_name').split('.') + try: + # 获取模型类 + model_class = apps.get_model(app_label=app_label, model_name=model_name) + # 检查是否为有效的模型 + if not issubclass(model_class, Model): + raise ValueError(f"{model_name} is not a Django model.") + # 获取模型的字段 + fields = model_class._meta.get_fields() + # 如果你只想要字段的名字,可以这样做 + field_list = [] + for field in fields: + field_verbose_name = "" + if hasattr(field, 'verbose_name'): + field_verbose_name = field.verbose_name + field_type = { + models.CharField: 'TextInput', + models.TextField: 'TextInput', + models.IntegerField: 'NumberInput', + models.FloatField: 'NumberInput', + models.BooleanField: 'NumberInput', + models.DateTimeField: 'datetime', + # 添加更多字段类型映射... + }.get(type(field), 'unknown') + if field_type in ['unknown', 'datetime']: + continue + field_list.append({ + 'label': field_verbose_name or field.name, + 'value': field.name, + 'type': field_type, + 'key': field.name + '_' + random_str(6), + }) + return DetailResponse(data=field_list) + except LookupError as e: + print(f"Model {model_name} not found in app {app_label}.") + return DetailResponse(data=[]) + + def create(self, request, *args, **kwargs): + """ + 创建审批流程 + """ + data = self.request.data + if not data: + return ErrorResponse(msg='流程数据不能为空') + flow_id = data.get('id') + if flow_id: + flow_info_obj = FlowInfo.objects.get(id=flow_id) + else: + flow_info_obj = FlowInfo() + # 保存 model 对象 + if data.get('content_type'): + app_label = data.get('content_type').split('.')[0] + model = data.get('content_type').split('.')[-1] + content_type_obj = ContentType.objects.filter(app_label=app_label, model=model).first() + flow_info_obj.content_type = content_type_obj + flow_info_obj.name = data.get('name') + flow_info_obj.icon = data.get('icon') + flow_info_obj.operation = data.get('operation') + flow_info_obj.form_conf = data.get('formConf') + flow_info_obj.description = data.get('remark') + if self.request.user: + flow_info_obj.creator = self.request.user + flow_info_obj.modifier = self.request.user.id + flow_info_obj.dept_belong_id = self.request.user.dept_id + flow_info_obj.save() + all_node_ids = FlowNode.save_flow_node(data.get('process'), flow_info_obj) + # 删除多余的 ids + FlowNode.objects.filter(flow_info=flow_info_obj).exclude(node_id__in=all_node_ids).delete() + return DetailResponse(msg="成功", data={'flow_id': flow_info_obj.id}) + + def retrieve(self, request, *args, **kwargs): + instance = self.get_object() + content_type = None + if instance.content_type: + content_type = f"{instance.content_type.app_label}.{instance.content_type.model}" + data = { + "id": instance.id, + "content_type": content_type, + "formConf": instance.form_conf, + "icon": instance.icon, + "name": instance.name, + "operation": instance.operation, + "process": FlowNode.get_flow_node(instance), + "remark": instance.description, + } + # 获取节点数据 + return DetailResponse(data=data, msg="获取成功") + + @action(methods=['POST'], detail=True, permission_classes=[IsAuthenticated]) + def publish(self, request, *args, **kwargs): + """ + 进行发布 + """ + instance = self.get_object() + # 发布 + if instance.status == 1: + return ErrorResponse(msg="该流程已发布") + instance.status = 1 + instance.save() + return DetailResponse(msg="发布成功") + + @action(methods=['POST'], detail=True, permission_classes=[IsAuthenticated]) + def unpublish(self, request, *args, **kwargs): + """ + 下架 + """ + instance = self.get_object() + # 发布 + if instance.status == 1: + return ErrorResponse(msg="该流程已下架") + instance.status = 2 + instance.save() + return DetailResponse(msg="下架成功") + + def destroy(self, request, *args, **kwargs): + instance = self.get_object() + instance.is_deleted = True + instance.save() + return DetailResponse(data=[], msg="删除成功") diff --git a/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/views/flow_record.py b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/views/flow_record.py new file mode 100644 index 0000000000000000000000000000000000000000..4a2e763f589327b9e0002991ce26d2fd77de7ff9 --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/dvadmin3_flow/views/flow_record.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +from rest_framework import serializers + +from dvadmin.utils.serializers import CustomModelSerializer +from dvadmin3_flow.models import FlowRecord,FlowNode + +class FlowRecordSerializer(CustomModelSerializer): + """ + 流程记录 的列化器 + """ + current_node_info = serializers.SerializerMethodField() + + def get_current_node_info(self, instance): + current_node_id = instance.current_node_id + return FlowNode.objects.filter(node_id=current_node_id).values() + + + + class Meta: + model = FlowRecord + fields = '__all__' \ No newline at end of file diff --git a/backend/plugins/dvadmin3-flow-backend/pyproject.toml b/backend/plugins/dvadmin3-flow-backend/pyproject.toml new file mode 100644 index 0000000000000000000000000000000000000000..f6c16894020a5b720b1c626f23f358cdbb12193f --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/pyproject.toml @@ -0,0 +1,6 @@ +[build-system] +requires = [ + "setuptools>=42", + "wheel", +] +build-backend = "setuptools.build_meta" diff --git a/backend/plugins/dvadmin3-flow-backend/setup.py b/backend/plugins/dvadmin3-flow-backend/setup.py new file mode 100644 index 0000000000000000000000000000000000000000..b8af31b8878b62f2f2131b01a281ff5eb5d33eee --- /dev/null +++ b/backend/plugins/dvadmin3-flow-backend/setup.py @@ -0,0 +1,25 @@ +import setuptools + +with open("README.md", "r") as fh: + long_description = fh.read() + +setuptools.setup( + name="dvadmin-flow", + version="1.0.0", + author="DVAdmin", + author_email="liqiang@django-vue-admin.com", + description="一款适用于django-vue-admin的flow。", + long_description=long_description, + long_description_content_type="text/markdown", + url="https://gitee.com/huge-dream/dvadmin-flow", + packages=setuptools.find_packages(), + python_requires='>=3.7, <4', + install_requires=[ + ], + classifiers=[ + "Programming Language :: Python :: 3", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + ], + include_package_data=True +) diff --git "a/backend/plugins/dvadmin3-folw(\345\220\216\347\253\257)\345\220\216\345\217\260\345\256\241\346\211\271\346\265\201\346\217\222\344\273\266.zip" "b/backend/plugins/dvadmin3-folw(\345\220\216\347\253\257)\345\220\216\345\217\260\345\256\241\346\211\271\346\265\201\346\217\222\344\273\266.zip" new file mode 100644 index 0000000000000000000000000000000000000000..4b4353e81e1c76f2aef90bc75d878e211aa6d61e Binary files /dev/null and "b/backend/plugins/dvadmin3-folw(\345\220\216\347\253\257)\345\220\216\345\217\260\345\256\241\346\211\271\346\265\201\346\217\222\344\273\266.zip" differ diff --git a/backend/requirements.txt b/backend/requirements.txt index 9cae2cca7e0fe4085fa49dec92d9f5203dd10aea..bfa119c1a7c8f192aa1a09b09e8b967fccbc8565 100644 Binary files a/backend/requirements.txt and b/backend/requirements.txt differ diff --git a/backend/static/drf-yasg/redoc/redoc.min.js b/backend/static/drf-yasg/redoc/redoc.min.js index 08bfb15c35aa7b6a4a51e3d4eee60b7dc45629ca..7e7eac603f121ce679427a2c2fd339ec3f292935 100644 --- a/backend/static/drf-yasg/redoc/redoc.min.js +++ b/backend/static/drf-yasg/redoc/redoc.min.js @@ -1651,7 +1651,7 @@ padding: ${e=>4*e.theme.spacing.unit}px; `;Object.defineProperty,Object.getOwnPropertyDescriptor;let qv=class extends n.Component{render(){const{operation:e}=this.props,t=e.codeSamples,r=t.length>0,o=1===t.length&&this.context.hideSingleRequestSampleTab;return r&&n.createElement("div",null,n.createElement(Tu,null," ",lo("requestSamples")," "),n.createElement(Dp,{defaultIndex:0},n.createElement(Ap,{hidden:o},t.map((e=>n.createElement(jp,{key:e.lang+"_"+(e.label||"")},void 0!==e.label?e.label:e.lang)))),t.map((e=>n.createElement(Np,{key:e.lang+"_"+(e.label||"")},xu(e)?n.createElement("div",null,n.createElement(jv,{content:e.requestBodyContent})):n.createElement(ah,{lang:e.lang,source:e.source}))))))||null}};qv.contextType=Sa,qv=((e,t,n,r)=>{for(var o,i=t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=o(i)||i);return i})([im],qv);Object.defineProperty,Object.getOwnPropertyDescriptor;let Wv=class extends n.Component{render(){const{operation:e}=this.props,t=e.responses.filter((e=>e.content&&e.content.hasSample));return t.length>0&&n.createElement("div",null,n.createElement(Tu,null," ",lo("responseSamples")," "),n.createElement(Dp,{defaultIndex:0},n.createElement(Ap,null,t.map((e=>n.createElement(jp,{className:"tab-"+e.type,key:e.code},e.code)))),t.map((e=>n.createElement(Np,{key:e.code},n.createElement("div",null,n.createElement(jv,{content:e.content})))))))||null}};Wv=((e,t,n,r)=>{for(var o,i=t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=o(i)||i);return i})([im],Wv);var Hv=Object.defineProperty,Yv=Object.defineProperties,Kv=Object.getOwnPropertyDescriptors,Gv=Object.getOwnPropertySymbols,Qv=Object.prototype.hasOwnProperty,Xv=Object.prototype.propertyIsEnumerable,Jv=(e,t,n)=>t in e?Hv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const Zv=ga.div` margin-bottom: ${({theme:e})=>6*e.spacing.unit}px; -`,eb=im((({operation:e})=>{const{name:t,description:r,deprecated:o,externalDocs:i,isWebhook:a,httpVerb:s}=e,l=!(!r&&!i),{showWebhookVerb:c}=n.useContext(Sa);return n.createElement(Sa.Consumer,null,(u=>n.createElement(Au,((e,t)=>Yv(e,Kv(t)))(((e,t)=>{for(var n in t||(t={}))Qv.call(t,n)&&Jv(e,n,t[n]);if(Gv)for(var n of Gv(t))Xv.call(t,n)&&Jv(e,n,t[n]);return e})({},{[gf]:e.operationHash}),{id:e.operationHash}),n.createElement(Ou,null,n.createElement(ju,null,n.createElement(Uu,{to:e.id}),t," ",o&&n.createElement(qu,{type:"warning"}," Deprecated "),a&&n.createElement(qu,{type:"primary"}," ","Webhook ",c&&s&&"| "+s.toUpperCase())),u.pathInMiddlePanel&&!a&&n.createElement(Vy,{operation:e,inverted:!0}),l&&n.createElement(Zv,null,void 0!==r&&n.createElement(Ff,{source:r}),i&&n.createElement(xm,{externalDocs:i})),n.createElement(Sm,{extensions:e.extensions}),n.createElement(gv,{securities:e.security}),n.createElement(Xy,{parameters:e.parameters,body:e.requestBody}),n.createElement(fv,{responses:e.responses}),n.createElement(kv,{callbacks:e.callbacks})),n.createElement(Pu,null,!u.pathInMiddlePanel&&!a&&n.createElement(Vy,{operation:e}),n.createElement(qv,{operation:e}),n.createElement(Wv,{operation:e}),n.createElement(Vv,{callbacks:e.callbacks})))))}));var tb=Object.defineProperty,nb=Object.getOwnPropertyDescriptor,rb=Object.getOwnPropertySymbols,ob=Object.prototype.hasOwnProperty,ib=Object.prototype.propertyIsEnumerable,ab=(e,t,n)=>t in e?tb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,sb=(e,t,n,r)=>{for(var o,i=r>1?void 0:r?nb(t,n):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&tb(t,n,i),i};let lb=class extends n.Component{render(){const e=this.props.items;return 0===e.length?null:e.map((e=>n.createElement(cb,{key:e.id,item:e})))}};lb=sb([im],lb);let cb=class extends n.Component{render(){const e=this.props.item;let t;const{type:r}=e;switch(r){case"group":t=null;break;case"tag":case"section":default:t=n.createElement(pb,((e,t)=>{for(var n in t||(t={}))ob.call(t,n)&&ab(e,n,t[n]);if(rb)for(var n of rb(t))ib.call(t,n)&&ab(e,n,t[n]);return e})({},this.props));break;case"operation":t=n.createElement(db,{item:e})}return n.createElement(n.Fragment,null,t&&n.createElement(Su,{id:e.id,underlined:"operation"===e.type},t),e.items&&n.createElement(lb,{items:e.items}))}};cb=sb([im],cb);const ub=e=>n.createElement(Ou,{compact:!0},e);let pb=class extends n.Component{render(){const{name:e,description:t,externalDocs:r,level:o}=this.props.item,i=2===o?ju:Ru;return n.createElement(n.Fragment,null,n.createElement(Au,null,n.createElement(Ou,{compact:!1},n.createElement(i,null,n.createElement(Uu,{to:this.props.item.id}),e))),n.createElement(vy,{parentId:this.props.item.id,source:t||"",htmlWrap:ub}),r&&n.createElement(Au,null,n.createElement(Ou,null,n.createElement(xm,{externalDocs:r}))))}};pb=sb([im],pb);let db=class extends n.Component{render(){return n.createElement(eb,{operation:this.props.item})}};db=sb([im],db);var fb=Object.defineProperty,hb=Object.defineProperties,mb=(Object.getOwnPropertyDescriptor,Object.getOwnPropertyDescriptors),gb=Object.getOwnPropertySymbols,yb=Object.prototype.hasOwnProperty,vb=Object.prototype.propertyIsEnumerable,bb=(e,t,n)=>t in e?fb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;let wb=class extends n.Component{constructor(){super(...arguments),this.ref=n.createRef(),this.activate=e=>{this.props.onActivate(this.props.item),e.stopPropagation()}}componentDidMount(){this.scrollIntoViewIfActive()}componentDidUpdate(){this.scrollIntoViewIfActive()}scrollIntoViewIfActive(){this.props.item.active&&this.ref.current&&Hr(this.ref.current)}render(){const{item:e,withoutChildren:t}=this.props;return n.createElement(Oy,{onClick:this.activate,depth:e.depth,"data-item-id":e.id},"operation"===e.type?n.createElement(xb,((e,t)=>hb(e,mb(t)))(((e,t)=>{for(var n in t||(t={}))yb.call(t,n)&&bb(e,n,t[n]);if(gb)for(var n of gb(t))vb.call(t,n)&&bb(e,n,t[n]);return e})({},this.props),{item:e})):n.createElement(Ey,{depth:e.depth,active:e.active,type:e.type,ref:this.ref},n.createElement(Py,{title:e.sidebarLabel},e.sidebarLabel,this.props.children),e.depth>0&&e.items.length>0&&n.createElement(Bu,{float:"right",direction:e.expanded?"down":"right"})||null),!t&&e.items&&e.items.length>0&&n.createElement(Pb,{expanded:e.expanded,items:e.items,onActivate:this.props.onActivate}))}};wb=((e,t,n,r)=>{for(var o,i=t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=o(i)||i);return i})([im],wb);const xb=im((e=>{const{item:t}=e,r=n.createRef(),{showWebhookVerb:o}=n.useContext(Sa);return n.useEffect((()=>{e.item.active&&r.current&&Hr(r.current)}),[e.item.active,r]),n.createElement(Ey,{depth:t.depth,active:t.active,deprecated:t.deprecated,ref:r},t.isWebhook?n.createElement(xy,{type:"hook"},o?t.httpVerb:lo("webhook")):n.createElement(xy,{type:t.httpVerb},ms(t.httpVerb)),n.createElement(Py,{width:"calc(100% - 38px)"},t.sidebarLabel,e.children))}));var kb=Object.defineProperty,_b=(Object.getOwnPropertyDescriptor,Object.getOwnPropertySymbols),Ob=Object.prototype.hasOwnProperty,Sb=Object.prototype.propertyIsEnumerable,Eb=(e,t,n)=>t in e?kb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;let Pb=class extends n.Component{render(){const{items:e,root:t,className:r}=this.props,o=null==this.props.expanded||this.props.expanded;return n.createElement(_y,((e,t)=>{for(var n in t||(t={}))Ob.call(t,n)&&Eb(e,n,t[n]);if(_b)for(var n of _b(t))Sb.call(t,n)&&Eb(e,n,t[n]);return e})({className:r,style:this.props.style,expanded:o},t?{role:"menu"}:{}),e.map(((e,t)=>n.createElement(wb,{key:t,item:e,onActivate:this.props.onActivate}))))}};function Ab(){const[e,t]=(0,n.useState)(!1);return(0,n.useEffect)((()=>{t(!0)}),[]),e?n.createElement("img",{alt:"redocly logo",onError:()=>t(!1),src:"https://cdn.redoc.ly/redoc/logo-mini.svg"}):null}Pb=((e,t,n,r)=>{for(var o,i=t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=o(i)||i);return i})([im],Pb);Object.defineProperty,Object.getOwnPropertyDescriptor;let $b=class extends n.Component{constructor(){super(...arguments),this.activate=e=>{if(e&&e.active&&this.context.menuToggle)return e.expanded?e.collapse():e.expand();this.props.menu.activateAndScroll(e,!0),setTimeout((()=>{this._updateScroll&&this._updateScroll()}))},this.saveScrollUpdate=e=>{this._updateScroll=e}}render(){const e=this.props.menu;return n.createElement(Pd,{updateFn:this.saveScrollUpdate,className:this.props.className,options:{wheelPropagation:!1}},n.createElement(Pb,{items:e.items,onActivate:this.activate,root:!0}),n.createElement(Ay,null,n.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://redocly.com/redoc/"},n.createElement(Ab,null),"API docs by Redocly")))}};$b.contextType=Sa,$b=((e,t,n,r)=>{for(var o,i=t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=o(i)||i);return i})([im],$b);const Cb=({open:e})=>{const t=e?8:-4;return n.createElement(jb,null,n.createElement(Rb,{size:15,style:{transform:`translate(2px, ${t}px) rotate(180deg)`,transition:"transform 0.2s ease"}}),n.createElement(Rb,{size:15,style:{transform:`translate(2px, ${0-t}px)`,transition:"transform 0.2s ease"}}))},Rb=({size:e=10,className:t="",style:r})=>n.createElement("svg",{className:t,style:r||{},viewBox:"0 0 926.23699 573.74994",version:"1.1",x:"0px",y:"0px",width:e,height:e},n.createElement("g",{transform:"translate(904.92214,-879.1482)"},n.createElement("path",{d:"\n m -673.67664,1221.6502 -231.2455,-231.24803 55.6165,\n -55.627 c 30.5891,-30.59485 56.1806,-55.627 56.8701,-55.627 0.6894,\n 0 79.8637,78.60862 175.9427,174.68583 l 174.6892,174.6858 174.6892,\n -174.6858 c 96.079,-96.07721 175.253196,-174.68583 175.942696,\n -174.68583 0.6895,0 26.281,25.03215 56.8701,\n 55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864\n -231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688,\n -104.0616 -231.873,-231.248 z\n ",fill:"currentColor"}))),jb=ga.div` +`,eb=im((({operation:e})=>{const{name:t,description:r,deprecated:o,externalDocs:i,isWebhook:a,httpVerb:s}=e,l=!(!r&&!i),{showWebhookVerb:c}=n.useContext(Sa);return n.createElement(Sa.Consumer,null,(u=>n.createElement(Au,((e,t)=>Yv(e,Kv(t)))(((e,t)=>{for(var n in t||(t={}))Qv.call(t,n)&&Jv(e,n,t[n]);if(Gv)for(var n of Gv(t))Xv.call(t,n)&&Jv(e,n,t[n]);return e})({},{[gf]:e.operationHash}),{id:e.operationHash}),n.createElement(Ou,null,n.createElement(ju,null,n.createElement(Uu,{to:e.id}),t," ",o&&n.createElement(qu,{type:"warning"}," Deprecated "),a&&n.createElement(qu,{type:"primary"}," ","Webhook ",c&&s&&"| "+s.toUpperCase())),u.pathInMiddlePanel&&!a&&n.createElement(Vy,{operation:e,inverted:!0}),l&&n.createElement(Zv,null,void 0!==r&&n.createElement(Ff,{source:r}),i&&n.createElement(xm,{externalDocs:i})),n.createElement(Sm,{extensions:e.extensions}),n.createElement(gv,{securities:e.security}),n.createElement(Xy,{parameters:e.parameters,body:e.requestBody}),n.createElement(fv,{responses:e.responses}),n.createElement(kv,{callbacks:e.callbacks})),n.createElement(Pu,null,!u.pathInMiddlePanel&&!a&&n.createElement(Vy,{operation:e}),n.createElement(qv,{operation:e}),n.createElement(Wv,{operation:e}),n.createElement(Vv,{callbacks:e.callbacks})))))}));var tb=Object.defineProperty,nb=Object.getOwnPropertyDescriptor,rb=Object.getOwnPropertySymbols,ob=Object.prototype.hasOwnProperty,ib=Object.prototype.propertyIsEnumerable,ab=(e,t,n)=>t in e?tb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,sb=(e,t,n,r)=>{for(var o,i=r>1?void 0:r?nb(t,n):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&tb(t,n,i),i};let lb=class extends n.Component{render(){const e=this.props.items;return 0===e.length?null:e.map((e=>n.createElement(cb,{key:e.id,item:e})))}};lb=sb([im],lb);let cb=class extends n.Component{render(){const e=this.props.item;let t;const{type:r}=e;switch(r){case"group":t=null;break;case"tag":case"section":default:t=n.createElement(pb,((e,t)=>{for(var n in t||(t={}))ob.call(t,n)&&ab(e,n,t[n]);if(rb)for(var n of rb(t))ib.call(t,n)&&ab(e,n,t[n]);return e})({},this.props));break;case"operation":t=n.createElement(db,{item:e})}return n.createElement(n.Fragment,null,t&&n.createElement(Su,{id:e.id,underlined:"operation"===e.type},t),e.items&&n.createElement(lb,{items:e.items}))}};cb=sb([im],cb);const ub=e=>n.createElement(Ou,{compact:!0},e);let pb=class extends n.Component{render(){const{name:e,description:t,externalDocs:r,level:o}=this.props.item,i=2===o?ju:Ru;return n.createElement(n.Fragment,null,n.createElement(Au,null,n.createElement(Ou,{compact:!1},n.createElement(i,null,n.createElement(Uu,{to:this.props.item.id}),e))),n.createElement(vy,{parentId:this.props.item.id,source:t||"",htmlWrap:ub}),r&&n.createElement(Au,null,n.createElement(Ou,null,n.createElement(xm,{externalDocs:r}))))}};pb=sb([im],pb);let db=class extends n.Component{render(){return n.createElement(eb,{operation:this.props.item})}};db=sb([im],db);var fb=Object.defineProperty,hb=Object.defineProperties,mb=(Object.getOwnPropertyDescriptor,Object.getOwnPropertyDescriptors),gb=Object.getOwnPropertySymbols,yb=Object.prototype.hasOwnProperty,vb=Object.prototype.propertyIsEnumerable,bb=(e,t,n)=>t in e?fb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;let wb=class extends n.Component{constructor(){super(...arguments),this.ref=n.createRef(),this.activate=e=>{this.props.onActivate(this.props.item),e.stopPropagation()}}componentDidMount(){this.scrollIntoViewIfActive()}componentDidUpdate(){this.scrollIntoViewIfActive()}scrollIntoViewIfActive(){this.props.item.active&&this.ref.current&&Hr(this.ref.current)}render(){const{item:e,withoutChildren:t}=this.props;return n.createElement(Oy,{onClick:this.activate,depth:e.depth,"data-item-id":e.id},"operation"===e.type?n.createElement(xb,((e,t)=>hb(e,mb(t)))(((e,t)=>{for(var n in t||(t={}))yb.call(t,n)&&bb(e,n,t[n]);if(gb)for(var n of gb(t))vb.call(t,n)&&bb(e,n,t[n]);return e})({},this.props),{item:e})):n.createElement(Ey,{depth:e.depth,active:e.active,type:e.type,ref:this.ref},n.createElement(Py,{title:e.sidebarLabel},e.sidebarLabel,this.props.children),e.depth>0&&e.items.length>0&&n.createElement(Bu,{float:"right",direction:e.expanded?"down":"right"})||null),!t&&e.items&&e.items.length>0&&n.createElement(Pb,{expanded:e.expanded,items:e.items,onActivate:this.props.onActivate}))}};wb=((e,t,n,r)=>{for(var o,i=t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=o(i)||i);return i})([im],wb);const xb=im((e=>{const{item:t}=e,r=n.createRef(),{showWebhookVerb:o}=n.useContext(Sa);return n.useEffect((()=>{e.item.active&&r.current&&Hr(r.current)}),[e.item.active,r]),n.createElement(Ey,{depth:t.depth,active:t.active,deprecated:t.deprecated,ref:r},t.isWebhook?n.createElement(xy,{type:"hook"},o?t.httpVerb:lo("webhook")):n.createElement(xy,{type:t.httpVerb},ms(t.httpVerb)),n.createElement(Py,{width:"calc(100% - 38px)"},t.sidebarLabel,e.children))}));var kb=Object.defineProperty,_b=(Object.getOwnPropertyDescriptor,Object.getOwnPropertySymbols),Ob=Object.prototype.hasOwnProperty,Sb=Object.prototype.propertyIsEnumerable,Eb=(e,t,n)=>t in e?kb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;let Pb=class extends n.Component{render(){const{items:e,root:t,className:r}=this.props,o=null==this.props.expanded||this.props.expanded;return n.createElement(_y,((e,t)=>{for(var n in t||(t={}))Ob.call(t,n)&&Eb(e,n,t[n]);if(_b)for(var n of _b(t))Sb.call(t,n)&&Eb(e,n,t[n]);return e})({className:r,style:this.props.style,expanded:o},t?{role:"menu"}:{}),e.map(((e,t)=>n.createElement(wb,{key:t,item:e,onActivate:this.props.onActivate}))))}};function Ab(){const[e,t]=(0,n.useState)(!1);return(0,n.useEffect)((()=>{t(!0)}),[]),e?n.createElement("img",{alt:"redocly logo",onError:()=>t(!1),src:"https://cdn.redoc.ly/redoc/logo-mini.png"}):null}Pb=((e,t,n,r)=>{for(var o,i=t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=o(i)||i);return i})([im],Pb);Object.defineProperty,Object.getOwnPropertyDescriptor;let $b=class extends n.Component{constructor(){super(...arguments),this.activate=e=>{if(e&&e.active&&this.context.menuToggle)return e.expanded?e.collapse():e.expand();this.props.menu.activateAndScroll(e,!0),setTimeout((()=>{this._updateScroll&&this._updateScroll()}))},this.saveScrollUpdate=e=>{this._updateScroll=e}}render(){const e=this.props.menu;return n.createElement(Pd,{updateFn:this.saveScrollUpdate,className:this.props.className,options:{wheelPropagation:!1}},n.createElement(Pb,{items:e.items,onActivate:this.activate,root:!0}),n.createElement(Ay,null,n.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://redocly.com/redoc/"},n.createElement(Ab,null),"API docs by Redocly")))}};$b.contextType=Sa,$b=((e,t,n,r)=>{for(var o,i=t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=o(i)||i);return i})([im],$b);const Cb=({open:e})=>{const t=e?8:-4;return n.createElement(jb,null,n.createElement(Rb,{size:15,style:{transform:`translate(2px, ${t}px) rotate(180deg)`,transition:"transform 0.2s ease"}}),n.createElement(Rb,{size:15,style:{transform:`translate(2px, ${0-t}px)`,transition:"transform 0.2s ease"}}))},Rb=({size:e=10,className:t="",style:r})=>n.createElement("svg",{className:t,style:r||{},viewBox:"0 0 926.23699 573.74994",version:"1.1",x:"0px",y:"0px",width:e,height:e},n.createElement("g",{transform:"translate(904.92214,-879.1482)"},n.createElement("path",{d:"\n m -673.67664,1221.6502 -231.2455,-231.24803 55.6165,\n -55.627 c 30.5891,-30.59485 56.1806,-55.627 56.8701,-55.627 0.6894,\n 0 79.8637,78.60862 175.9427,174.68583 l 174.6892,174.6858 174.6892,\n -174.6858 c 96.079,-96.07721 175.253196,-174.68583 175.942696,\n -174.68583 0.6895,0 26.281,25.03215 56.8701,\n 55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864\n -231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688,\n -104.0616 -231.873,-231.248 z\n ",fill:"currentColor"}))),jb=ga.div` user-select: none; width: 20px; height: 20px; diff --git a/docker-compose.yml b/docker-compose.yml index 8fd739fefb3ac6af12fe5e3362e7ba1beabf35b7..6c8cdf2fb29a4ec016c2be3810e3d2286363c744 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: "3" services: - dvadmin3-web: - container_name: dvadmin3-web + xxibears-erp-web: + container_name: xxibears-erp-web ports: - "8080:8080" build: @@ -19,17 +19,17 @@ services: network: ipv4_address: 177.10.0.11 - dvadmin3-django: + xxibears-erp-django: build: context: . dockerfile: ./docker_env/django/Dockerfile - container_name: dvadmin3-django + container_name: xxibears-erp-django working_dir: /backend depends_on: - - dvadmin3-mysql + - xxibears-erp-mysql environment: PYTHONUNBUFFERED: 1 - DATABASE_HOST: dvadmin3-mysql + DATABASE_HOST: xxibears-erp-mysql TZ: Asia/Shanghai volumes: - ./backend:/backend @@ -43,16 +43,16 @@ services: network: ipv4_address: 177.10.0.12 - dvadmin3-mysql: - image: mysql:8.0 - container_name: dvadmin3-mysql + xxibears-erp-mysql: + image: crpi-r63u596ki20idsav.cn-shenzhen.personal.cr.aliyuncs.com/gdjcz/basics-mysql:8.0 + container_name: xxibears-erp-mysql privileged: true restart: always ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: ${MYSQL_PASSWORD} - MYSQL_DATABASE: "django-vue3-admin" + MYSQL_DATABASE: "xxibears" TZ: Asia/Shanghai command: --wait_timeout=31536000 @@ -68,17 +68,17 @@ services: ipv4_address: 177.10.0.13 - dvadmin3-celery: + xxibears-erp-celery: build: context: . dockerfile: ./docker_env/celery/Dockerfile - container_name: dvadmin3-celery + container_name: xxibears-erp-celery working_dir: /backend depends_on: - - dvadmin3-mysql + - xxibears-erp-mysql environment: PYTHONUNBUFFERED: 1 - DATABASE_HOST: dvadmin3-mysql + DATABASE_HOST: xxibears-erp-mysql TZ: Asia/Shanghai volumes: - ./backend:/backend @@ -89,9 +89,9 @@ services: ipv4_address: 177.10.0.14 - dvadmin3-redis: - image: redis:6.2.6-alpine # 指定服务镜像,最好是与之前下载的redis配置文件保持一致 - container_name: dvadmin3-redis # 容器名称 + xxibears-erp-redis: + image: crpi-r63u596ki20idsav.cn-shenzhen.personal.cr.aliyuncs.com/gdjcz/basics-redis:7.4.2 # 指定服务镜像,最好是与之前下载的redis配置文件保持一致 + container_name: xxibears-erp-redis # 容器名称 restart: always environment: - TZ=Asia/Shanghai # 设置时区 @@ -114,5 +114,4 @@ networks: ipam: driver: default config: - - subnet: '177.10.0.0/16' - + - subnet: '177.10.0.0/16' \ No newline at end of file diff --git a/docker_env/README.md b/docker_env/README.md index f281ab5e7a493ca977f96654e2786ac3b9222e98..a298244a2c556dc2990a96537994241fa9c687e2 100644 --- a/docker_env/README.md +++ b/docker_env/README.md @@ -62,4 +62,3 @@ docker-compose restart docker-compose up -d --build ~~~ - diff --git a/docker_env/celery/Dockerfile b/docker_env/celery/Dockerfile index 7d57c7aa9031f74f6aff83a899eb09531ae6ef60..8fee0706433d80bd9524a76564edd7e36d5dc5db 100644 --- a/docker_env/celery/Dockerfile +++ b/docker_env/celery/Dockerfile @@ -1,7 +1,6 @@ -FROM registry.cn-zhangjiakou.aliyuncs.com/dvadmin-pro/dvadmin3-base-backend:latest +FROM crpi-r63u596ki20idsav.cn-shenzhen.personal.cr.aliyuncs.com/gdjcz/basics-xxibears-erp-django WORKDIR /backend COPY ./backend/ . RUN awk 'BEGIN { cmd="cp -i ./conf/env.example.py ./conf/env.py "; print "n" |cmd; }' RUN python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ -r requirements.txt -CMD ["celery", "-A", "application", "worker", "-B", "--loglevel=info"] - +CMD ["sh","celery_start.sh"] \ No newline at end of file diff --git a/docker_env/django/Dockerfile b/docker_env/django/Dockerfile index cad6fed52a59efcc8b5de3ce61e3f8aa12d88131..ffa28e0bb9d8fbefbab082d8c263e376be06b7b4 100644 --- a/docker_env/django/Dockerfile +++ b/docker_env/django/Dockerfile @@ -1,9 +1,22 @@ -FROM registry.cn-zhangjiakou.aliyuncs.com/dvadmin-pro/dvadmin3-base-backend:latest +FROM crpi-r63u596ki20idsav.cn-shenzhen.personal.cr.aliyuncs.com/gdjcz/basics-xxibears-erp-django WORKDIR /backend COPY ./backend/ . RUN ls ./conf/ RUN awk 'BEGIN { cmd="cp -i ./conf/env.example.py ./conf/env.py "; print "n" |cmd; }' -RUN sed -i "s|DATABASE_HOST = '127.0.0.1'|DATABASE_HOST = '177.10.0.1'|g" ./conf/env.py -RUN sed -i "s|REDIS_HOST = '127.0.0.1'|REDIS_HOST = '177.10.0.1'|g" ./conf/env.py +RUN sed -i "s/^DATABASE_HOST = '192.168.100.252'/# DATABASE_HOST = '192.168.100.252'/" /backend/conf/env.py +RUN sed -i "s/^# DATABASE_HOST = '177.10.0.13'/DATABASE_HOST = '177.10.0.13'/" /backend/conf/env.py +RUN sed -i "s/^DATABASE_PASSWORD = 'xxibears@666'/# DATABASE_PASSWORD = 'xxibears@666'/" /backend/conf/env.py +RUN sed -i "s/^# DATABASE_PASSWORD = 'Xq0ilC4RxPbi0bUGMe'/DATABASE_PASSWORD = 'Xq0ilC4RxPbi0bUGMe'/" /backend/conf/env.py +RUN sed -i "s/^REDIS_HOST = '192.168.100.252'/# REDIS_HOST = '192.168.100.252'/" /backend/conf/env.py +RUN sed -i "s/^# REDIS_HOST = '177.10.0.15'/REDIS_HOST = '177.10.0.15'/" /backend/conf/env.py +RUN sed -i "s/^REDIS_PASSWORD = 'xxibears@666'/# REDIS_PASSWORD = 'xxibears@666'/" /backend/conf/env.py +RUN sed -i "s/^# REDIS_PASSWORD = 'BrYnoC1hBKNM'/REDIS_PASSWORD = 'BrYnoC1hBKNM'/" /backend/conf/env.py +RUN sed -i "s/^DEBUG = True/# DEBUG = True/" /backend/conf/env.py +RUN sed -i "s/^# DEBUG = False/DEBUG = False/" /backend/conf/env.py +RUN sed -i "s/^ENABLE_LOGIN_ANALYSIS_LOG = True/# ENABLE_LOGIN_ANALYSIS_LOG = True/" /backend/conf/env.py +RUN sed -i "s/^# ENABLE_LOGIN_ANALYSIS_LOG = False/ENABLE_LOGIN_ANALYSIS_LOG = False/" /backend/conf/env.py +RUN sed -i "s/^LOGIN_NO_CAPTCHA_AUTH = True/# LOGIN_NO_CAPTCHA_AUTH = True/" /backend/conf/env.py +RUN sed -i "s/^# LOGIN_NO_CAPTCHA_AUTH = False/LOGIN_NO_CAPTCHA_AUTH = False/" /backend/conf/env.py RUN python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ -r requirements.txt CMD ["sh","docker_start.sh"] + diff --git a/docker_env/django/DockerfileBuild b/docker_env/django/DockerfileBuild index 53e5049202c8be99a13bda58483f0595d8a7d1ac..8f51d2e0cfab60ed78eaec2dd572150b55167678 100644 --- a/docker_env/django/DockerfileBuild +++ b/docker_env/django/DockerfileBuild @@ -1,4 +1,4 @@ -FROM python:3.10-alpine +FROM python:3.11-alpine RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories RUN apk update && apk add bash bash-doc bash-completion git freetds-dev jpeg-dev linux-headers mysql-client mariadb-dev build-base libffi-dev openssl-dev zlib-dev bzip2-dev pcre-dev ncurses-dev readline-dev tk-dev postgresql-dev WORKDIR /backend diff --git a/docker_env/web/Dockerfile b/docker_env/web/Dockerfile index 73fc4e7cd6d3d3cfd06d93260d2cdba4abfc5d20..6bcb168e7aee5a43e593aab21201f1dfd3541291 100644 --- a/docker_env/web/Dockerfile +++ b/docker_env/web/Dockerfile @@ -1,9 +1,8 @@ -FROM registry.cn-zhangjiakou.aliyuncs.com/dvadmin-pro/dvadmin3-base-web:18.20-alpine +FROM crpi-r63u596ki20idsav.cn-shenzhen.personal.cr.aliyuncs.com/gdjcz/basics-xxibears-erp-web WORKDIR /web/ COPY web/. . -RUN yarn install --registry=https://registry.npmmirror.com RUN yarn build -FROM nginx:alpine +FROM crpi-r63u596ki20idsav.cn-shenzhen.personal.cr.aliyuncs.com/gdjcz/basics-nginx COPY ./docker_env/nginx/my.conf /etc/nginx/conf.d/my.conf COPY --from=0 /web/dist /usr/share/nginx/html diff --git a/docker_env/web/DockerfileBuild b/docker_env/web/DockerfileBuild index 1f725cafe31ec721e72ceb8c138ccf1911c053fe..b5c64d8a7e883917e2001e3e1dd9289f7cf38acb 100644 --- a/docker_env/web/DockerfileBuild +++ b/docker_env/web/DockerfileBuild @@ -1,4 +1,5 @@ -FROM node:16.19-alpine +FROM node:22.12-alpine WORKDIR / COPY ./web/package.json . RUN yarn install --registry=https://registry.npmmirror.com +RUN npm install -g vite diff --git a/init.sh b/init.sh index ab828cb56d912697f883f9c7699e0dc1490130b7..3f75e1fdb18d45da35c01b0e448a6730de1141db 100644 --- a/init.sh +++ b/init.sh @@ -56,11 +56,11 @@ i=1 while [ $i -le 8 ]; do if check_mysql || check_redis; then echo "正在迁移数据..." - docker exec dvadmin3-django python3 manage.py makemigrations - docker exec dvadmin3-django python3 manage.py migrate + docker exec xxibears-erp-django python3 manage.py makemigrations + docker exec xxibears-erp-django python3 manage.py migrate echo "正在初始化数据..." - docker exec dvadmin3-django python3 manage.py init - echo "欢迎使用dvadmin3项目" + docker exec xxibears-erp-django python3 manage.py init + echo "欢迎使用小西熊生产ERP项目" echo "登录地址:http://ip:8080" echo "如访问不到,请检查防火墙配置" exit 0 @@ -71,5 +71,5 @@ while [ $i -le 8 ]; do i=$((i+1)) done -echo "尝试 5 次后,MySQL 或 REDIS服务仍未运行" +echo "尝试 8 次后,MySQL 或 REDIS服务仍未运行" exit 1 diff --git a/web/.env.development b/web/.env.development index dc36b291b2cdf3991de42c0cb05648f397f5e173..1c3ca5db362e1f7935aded834e08f0a46ed640a6 100644 --- a/web/.env.development +++ b/web/.env.development @@ -2,7 +2,7 @@ ENV = 'development' # 本地环境接口地址 -VITE_API_URL = 'http://127.0.0.1:8001' +VITE_API_URL = 'http://127.0.0.1:8000' # 是否启用按钮权限 VITE_PM_ENABLED = true diff --git a/web/.gitignore b/web/.gitignore index 8cef9186824172b87665ec830e8e4483b0fd0885..4edf6dca0e18f9ac2404b8b0845a6b6773ddf2d5 100644 --- a/web/.gitignore +++ b/web/.gitignore @@ -1,6 +1,5 @@ .DS_Store node_modules -/dist yarn.lock # local env files diff --git a/web/dist/assets/401.C9Gorf2A.css b/web/dist/assets/401.C9Gorf2A.css new file mode 100644 index 0000000000000000000000000000000000000000..38aee7a0154f51227f1904a7d74a668a6bdcc3c7 --- /dev/null +++ b/web/dist/assets/401.C9Gorf2A.css @@ -0,0 +1 @@ +.error[data-v-858f28e6]{height:100%;background-color:var(--el-color-white);display:flex}.error .error-flex[data-v-858f28e6]{margin:auto;display:flex;height:350px;width:900px}.error .error-flex .left[data-v-858f28e6]{flex:1;height:100%;align-items:center;display:flex}.error .error-flex .left .left-item .left-item-animation[data-v-858f28e6]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards}.error .error-flex .left .left-item .left-item-num[data-v-858f28e6]{color:var(--el-color-info);font-size:55px}.error .error-flex .left .left-item .left-item-title[data-v-858f28e6]{font-size:20px;color:var(--el-text-color-primary);margin:15px 0 5px;animation-delay:.1s}.error .error-flex .left .left-item .left-item-msg[data-v-858f28e6]{color:var(--el-text-color-secondary);font-size:12px;margin-bottom:30px;animation-delay:.2s}.error .error-flex .left .left-item .left-item-btn[data-v-858f28e6]{animation-delay:.2s}.error .error-flex .right[data-v-858f28e6]{flex:1;opacity:0;animation-name:error-img;animation-duration:2s;animation-fill-mode:forwards}.error .error-flex .right img[data-v-858f28e6]{width:100%;height:100%} diff --git a/web/dist/assets/401.D4rfss3t.js b/web/dist/assets/401.D4rfss3t.js new file mode 100644 index 0000000000000000000000000000000000000000..89e63d10b7b9fc827204e1557da6741029acd103 --- /dev/null +++ b/web/dist/assets/401.D4rfss3t.js @@ -0,0 +1 @@ +import{d as m,T as r,c as d,h as f,a as g,o as p,e,K as i,k as u,w as _,m as h,n as v}from"./vue.DmuWcDrn.js";import{u as w,O as T,S as C}from"./index.XK2ik2qb.js";import{_ as b}from"./_plugin-vue_export-helper.DlAUqK2U.js";const F=m({name:"401",setup(){const s=w(),t=T(),{themeConfig:a}=r(s),{isTagsViewCurrenFull:n}=r(t),c=()=>{C.clear(),window.location.reload()},l=d(()=>{let{isTagsview:o}=a.value;return n.value?"30px":o?"114px":"80px"});return{onSetAuth:c,initTagViewHeight:l}}}),V={class:"error-flex"},$={class:"left"},x={class:"left-item"},y={class:"left-item-animation left-item-title"},A={class:"left-item-animation left-item-msg"},k={class:"left-item-animation left-item-btn"};function S(s,t,a,n,c,l){const o=f("el-button");return p(),g("div",{class:"error layout-view-bg-white",style:v({height:`calc(100vh - ${s.initTagViewHeight}`})},[e("div",V,[e("div",$,[e("div",x,[t[0]||(t[0]=e("div",{class:"left-item-animation left-item-num"},"401",-1)),e("div",y,i(s.$t("message.noAccess.accessTitle")),1),e("div",A,i(s.$t("message.noAccess.accessMsg")),1),e("div",k,[u(o,{type:"primary",round:"",onClick:s.onSetAuth},{default:_(()=>[h(i(s.$t("message.noAccess.accessBtn")),1)]),_:1},8,["onClick"])])])]),t[1]||(t[1]=e("div",{class:"right"},[e("img",{src:"https://img-blog.csdnimg.cn/3333f265772a4fa89287993500ecbf96.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHl0LXRvcA==,size_16,color_FFFFFF,t_70,g_se,x_16"})],-1))])],4)}const H=b(F,[["render",S],["__scopeId","data-v-858f28e6"]]);export{H as default}; diff --git a/web/dist/assets/404.8Y09U-70.js b/web/dist/assets/404.8Y09U-70.js new file mode 100644 index 0000000000000000000000000000000000000000..dc4b7531f38b4f88bd3068e38484b3085f07cac6 --- /dev/null +++ b/web/dist/assets/404.8Y09U-70.js @@ -0,0 +1 @@ +import{d as c,T as m,v as u,c as f,h as p,a as g,o as _,e,K as i,k as v,w as h,m as T,n as w}from"./vue.DmuWcDrn.js";import{u as C,O as V}from"./index.XK2ik2qb.js";import{_ as $}from"./_plugin-vue_export-helper.DlAUqK2U.js";const y=c({name:"404",setup(){const t=C(),s=V(),{themeConfig:n}=m(t),{isTagsViewCurrenFull:a}=m(s),r=u(),l=()=>{r.push("/")},o=f(()=>{let{isTagsview:d}=n.value;return a.value?"30px":d?"114px":"80px"});return{onGoHome:l,initTagViewHeight:o}}}),k="/assets/img404.DizYJBZK.png",B={class:"error-flex"},b={class:"left"},x={class:"left-item"},F={class:"left-item-animation left-item-title"},H={class:"left-item-animation left-item-msg"},R={class:"left-item-animation left-item-btn"};function N(t,s,n,a,r,l){const o=p("el-button");return _(),g("div",{class:"error layout-view-bg-white",style:w({height:`calc(100vh - ${t.initTagViewHeight}`})},[e("div",B,[e("div",b,[e("div",x,[s[0]||(s[0]=e("div",{class:"left-item-animation left-item-num"},"404",-1)),e("div",F,i(t.$t("message.notFound.foundTitle")),1),e("div",H,i(t.$t("message.notFound.foundMsg")),1),e("div",R,[v(o,{type:"primary",round:"",onClick:t.onGoHome},{default:h(()=>[T(i(t.$t("message.notFound.foundBtn")),1)]),_:1},8,["onClick"])])])]),s[1]||(s[1]=e("div",{class:"right"},[e("img",{src:k})],-1))])],4)}const K=$(y,[["render",N],["__scopeId","data-v-43ed7a98"]]);export{K as default}; diff --git a/web/dist/assets/404.DufCVmXm.css b/web/dist/assets/404.DufCVmXm.css new file mode 100644 index 0000000000000000000000000000000000000000..26b9b30abc2f89c3c3259087b7d56182bc67db4d --- /dev/null +++ b/web/dist/assets/404.DufCVmXm.css @@ -0,0 +1 @@ +.error[data-v-43ed7a98]{height:100%;background-color:var(--el-color-white);display:flex}.error .error-flex[data-v-43ed7a98]{margin:auto;display:flex;height:350px;width:900px}.error .error-flex .left[data-v-43ed7a98]{flex:1;height:100%;align-items:center;display:flex}.error .error-flex .left .left-item .left-item-animation[data-v-43ed7a98]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards}.error .error-flex .left .left-item .left-item-num[data-v-43ed7a98]{color:var(--el-color-info);font-size:55px}.error .error-flex .left .left-item .left-item-title[data-v-43ed7a98]{font-size:20px;color:var(--el-text-color-primary);margin:15px 0 5px;animation-delay:.1s}.error .error-flex .left .left-item .left-item-msg[data-v-43ed7a98]{color:var(--el-text-color-secondary);font-size:12px;margin-bottom:30px;animation-delay:.2s}.error .error-flex .left .left-item .left-item-btn[data-v-43ed7a98]{animation-delay:.2s}.error .error-flex .right[data-v-43ed7a98]{flex:1;opacity:0;animation-name:error-img;animation-duration:2s;animation-fill-mode:forwards}.error .error-flex .right img[data-v-43ed7a98]{width:100%;height:100%} diff --git a/web/dist/assets/Approval.BIQMdMFc.js b/web/dist/assets/Approval.BIQMdMFc.js new file mode 100644 index 0000000000000000000000000000000000000000..63b62f7da7427a7e0f5cf03bf274502d7928fcb4 --- /dev/null +++ b/web/dist/assets/Approval.BIQMdMFc.js @@ -0,0 +1 @@ +import E from"./Node.Do50r9uM.js";import{n as t}from"./NodeMixin.CdUK7SNa.js";import{c as p,g as i,b as f,o as b}from"./vue.DmuWcDrn.js";import"./InsertBtn.A0117t9o.js";import"./ProcessNodes.r7PbQ_Ri.js";import"./index.XK2ik2qb.js";import"./ProcessUtil.B7gNiVp1.js";import"./_plugin-vue_export-helper.DlAUqK2U.js";const N={__name:"Approval",props:{...t.props},emits:t.emits,setup(u,{expose:m,emit:d}){const v=u,s=d,n=p(t.computed._value(v,s)),l=i(!1),o=i(null);m({validate:S});const c=p(()=>{let a="请设置审批人";const e=n.value.props;switch(e.mode){case"AUTO_REFUSE":a="系统自动拒绝流程🚫";break;case"AUTO_PASS":a="系统自动通过流程✔️";break;case"USER":switch(e.ruleType){case"ASSIGN_USER":e.assignUser.length===0?a="请指定审批人":a=e.assignUser.map(r=>r.name).join("、");break;case"ROOT_SELECT":a="发起人提交流程时指定人";break;case"ROOT_SELF":a="发起人自己审批";break;case"LEADER":e.leader.level>1?a=`发起人的第${e.leader.level}级部门主管`:a="发起人的直属主管";break;case"LEADER_TOP":a="逐级部门主管审批";break;case"ASSIGN_DEPT":a=`部门[${e.assignDept.dept.map(r=>r.name).join("、")}]的主管审批`;break;case"ASSIGN_ROLE":a=`具有角色[${e.assignRole.map(r=>r.name).join("、")}]的人员审批`;break}break}return a});function S(a){const e=n.value.props;if(l.value=!0,e.mode==="USER"){switch(e.ruleType){case"ASSIGN_USER":if(e.assignUser.length===0){o.value="未指定具体审批人",a.push(`${n.value.name} 节点未指定审批人`);return}break;case"ASSIGN_DEPT":if(e.assignDept.dept.length===0){o.value="未设置部门",a.push(`${n.value.name} 节点未设置部门`);return}break;case"ASSIGN_ROLE":if(e.assignRole.length===0){o.value="未设置审批角色",a.push(`${n.value.name} 节点未设置角色`);return}break}if(e.noUserHandler.type==="TO_USER"&&e.noUserHandler.assigned.length===0){o.value="未指定为空转交人",a.push(`${n.value.name} 节点未指定为空时的转交人`);return}}l.value=!1}return(a,e)=>(b(),f(E,{modelValue:n.value,"onUpdate:modelValue":e[0]||(e[0]=r=>n.value=r),readonly:a.readonly,"show-error":l.value,"error-info":o.value,"header-color":"#EC8151","header-icon":"stamp",content:c.value,onSelect:e[1]||(e[1]=r=>s("select",a.modelValue)),onInsertNode:e[2]||(e[2]=r=>s("insertNode",a.branch,a.index,r)),onDelete:e[3]||(e[3]=r=>s("delete",a.branch,a.index))},null,8,["modelValue","readonly","show-error","error-info","content"]))}};export{N as default}; diff --git a/web/dist/assets/Approval.Bswl0Ie2.js b/web/dist/assets/Approval.Bswl0Ie2.js new file mode 100644 index 0000000000000000000000000000000000000000..9b24cc93ae1ed2b0acd30f6f7478c6d96b7d91a9 --- /dev/null +++ b/web/dist/assets/Approval.Bswl0Ie2.js @@ -0,0 +1 @@ +import{n as T}from"./NodeMixin.CdUK7SNa.js";import F from"./WOrgPicker.B_7Qd6r5.js";import"./FormInterface.vRCiFeo3.js";import S from"./WOrgTags.Bgj5L3ZH.js";import{_ as $}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{c as W,g as E,h as s,b as i,o as t,w as p,k as o,J as f,e as R,m as v,a as d,G as m,H as A}from"./vue.DmuWcDrn.js";import"./WDialog.D9OIgJAb.js";import"./request.FMdsBF9A.js";import"./index.XK2ik2qb.js";import"./GlobalFunc.9BrjVkDm.js";import"./ProcessUtil.B7gNiVp1.js";const H={class:"w-node-rules"},J={__name:"Approval",props:{...T.props},emits:T.emits,setup(N,{emit:L}){const P=N,C=L,l=W(T.computed._value(P,C)),V=E(),U=E("org"),_=E([]),I=[{label:"指定人员",type:"ASSIGN_USER"},{label:"发起人自己",type:"ROOT_SELF"},{label:"指定部门",type:"ASSIGN_DEPT"},{label:"系统角色",type:"ASSIGN_ROLE"}];function b(y,e){U.value=e,_.value=y,V.value.open()}function w(y){console.log("选中",y),V.value.close(),_.value.length=0,_.value.push(...y)}return(y,e)=>{const k=s("el-text"),u=s("el-radio"),r=s("el-radio-group"),D=s("el-divider"),g=s("el-button"),n=s("el-form-item"),O=s("el-option"),G=s("el-select"),x=s("el-input-number"),M=s("el-form"),z=s("el-tab-pane"),B=s("el-tabs");return t(),i(B,{style:{padding:"0px 10px"}},{default:p(()=>[o(z,{label:"审批人设置"},{default:p(()=>[l.value.props.mode==="USER"?(t(),i(M,{key:0,"label-position":"top"},{default:p(()=>[R("div",H,[o(k,null,{default:p(()=>e[16]||(e[16]=[v("👨‍⚖️ 设置审批人规则")])),_:1}),R("div",null,[o(r,{modelValue:l.value.props.ruleType,"onUpdate:modelValue":e[0]||(e[0]=a=>l.value.props.ruleType=a),class:"w-a-t-group"},{default:p(()=>[(t(),d(m,null,A(I,a=>o(u,{key:a.type,label:a.label,value:a.type},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),o(D,{style:{margin:"5px 0 10px"}}),l.value.props.ruleType==="ASSIGN_USER"?(t(),d(m,{key:0},[o(g,{style:{"margin-bottom":"5px"},onClick:e[1]||(e[1]=a=>b(l.value.props.assignUser,"user")),size:"small",type:"primary",icon:"plus",plain:""},{default:p(()=>e[17]||(e[17]=[v("添加审批人 ")])),_:1}),o(S,{modelValue:l.value.props.assignUser,"onUpdate:modelValue":e[2]||(e[2]=a=>l.value.props.assignUser=a)},null,8,["modelValue"])],64)):l.value.props.ruleType==="ROOT_SELECT"?(t(),i(n,{key:1,label:"选择方式"},{default:p(()=>[o(r,{modelValue:l.value.props.rootSelect.multiple,"onUpdate:modelValue":e[3]||(e[3]=a=>l.value.props.rootSelect.multiple=a)},{default:p(()=>[o(u,{value:!1,label:"自选一个人"}),o(u,{value:!0,label:"自选多个人"})]),_:1},8,["modelValue"])]),_:1})):l.value.props.ruleType==="ROOT_SELF"?(t(),i(k,{key:2},{default:p(()=>e[18]||(e[18]=[v(" 发起人自己将作为审批人进行审批 ")])),_:1})):l.value.props.ruleType==="LEADER"?(t(),d(m,{key:3},[o(n,{label:"指定主管级别"},{default:p(()=>[o(k,null,{default:p(()=>e[19]||(e[19]=[v("发起人的:")])),_:1}),o(G,{style:{width:"80%"},modelValue:l.value.props.leader.level,"onUpdate:modelValue":e[4]||(e[4]=a=>l.value.props.leader.level=a)},{default:p(()=>[o(O,{value:1,label:"向上第1级部门主管(直属主管)"}),(t(),d(m,null,A(18,a=>o(O,{value:a+1,label:`向上第${a+1}级部门主管`},null,8,["value","label"])),64))]),_:1},8,["modelValue"])]),_:1}),o(n,{label:"对应部门主管未设置时"},{default:p(()=>[o(r,{modelValue:l.value.props.leader.emptySkip,"onUpdate:modelValue":e[5]||(e[5]=a=>l.value.props.leader.emptySkip=a)},{default:p(()=>[o(u,{value:!1,label:"也算找了一级"}),o(u,{value:!0,label:"有人才算找了一级"})]),_:1},8,["modelValue"])]),_:1})],64)):l.value.props.ruleType==="LEADER_TOP"?(t(),d(m,{key:4},[o(n,{label:"部门层级终点"},{default:p(()=>[o(r,{modelValue:l.value.props.leaderTop.toEnd,"onUpdate:modelValue":e[6]||(e[6]=a=>l.value.props.leaderTop.toEnd=a)},{default:p(()=>[o(u,{value:!0,label:"直到最顶级部门"}),o(u,{value:!1,label:"到指定级别为止"})]),_:1},8,["modelValue"]),l.value.props.leaderTop.toEnd?f("",!0):(t(),i(x,{key:0,style:{"margin-left":"10px"},size:"small",precision:0,modelValue:l.value.props.leaderTop.level,"onUpdate:modelValue":e[7]||(e[7]=a=>l.value.props.leaderTop.level=a),min:1,max:50},null,8,["modelValue"]))]),_:1}),o(n,{label:"对应部门主管未设置时"},{default:p(()=>[o(r,{modelValue:l.value.props.leaderTop.emptySkip,"onUpdate:modelValue":e[8]||(e[8]=a=>l.value.props.leaderTop.emptySkip=a)},{default:p(()=>[o(u,{value:!1,label:"也算找了一级"}),o(u,{value:!0,label:"有人才算找了一级"})]),_:1},8,["modelValue"])]),_:1})],64)):l.value.props.ruleType==="ASSIGN_DEPT"?(t(),d(m,{key:5},[o(g,{style:{"margin-bottom":"5px"},onClick:e[9]||(e[9]=a=>b(l.value.props.assignDept.dept,"dept")),size:"small",type:"primary",icon:"plus",plain:""},{default:p(()=>e[20]||(e[20]=[v("选择部门 ")])),_:1}),o(S,{modelValue:l.value.props.assignDept.dept,"onUpdate:modelValue":e[10]||(e[10]=a=>l.value.props.assignDept.dept=a)},null,8,["modelValue"])],64)):l.value.props.ruleType==="ASSIGN_ROLE"?(t(),d(m,{key:6},[o(g,{style:{"margin-bottom":"5px"},onClick:e[11]||(e[11]=a=>b(l.value.props.assignRole,"role")),size:"small",type:"primary",icon:"plus",plain:""},{default:p(()=>e[21]||(e[21]=[v("选择系统角色 ")])),_:1}),o(S,{modelValue:l.value.props.assignRole,"onUpdate:modelValue":e[12]||(e[12]=a=>l.value.props.assignRole=a)},null,8,["modelValue"])],64)):f("",!0)])]),o(n,{label:"👩‍👦‍👦节点存在多个审批人时审批方式"},{default:p(()=>[o(r,{modelValue:l.value.props.taskMode.type,"onUpdate:modelValue":e[14]||(e[14]=a=>l.value.props.taskMode.type=a)},{default:p(()=>[o(u,{style:{width:"100%"},value:"OR",label:"或签(有一人同意即可)"}),l.value.props.taskMode.type==="CUSTOM"?(t(),i(x,{key:0,size:"small",precision:0,modelValue:l.value.props.taskMode.percentage,"onUpdate:modelValue":e[13]||(e[13]=a=>l.value.props.taskMode.percentage=a),max:100,min:1},null,8,["modelValue"])):f("",!0)]),_:1},8,["modelValue"])]),_:1}),o(n,{label:"🤫当审批人与提交人为同一人时"},{default:p(()=>[o(r,{modelValue:l.value.props.sameRoot.type,"onUpdate:modelValue":e[15]||(e[15]=a=>l.value.props.sameRoot.type=a)},{default:p(()=>[o(u,{value:"TO_SELF",label:"自己审批"}),o(u,{value:"TO_SKIP",label:"跳过任务"})]),_:1},8,["modelValue"])]),_:1})]),_:1})):f("",!0)]),_:1}),o(F,{ref_key:"orgPicker",ref:V,type:U.value,selected:_.value,multiple:"",onOk:w},null,8,["type","selected"])]),_:1})}}},oe=$(J,[["__scopeId","data-v-9d252f67"]]);export{oe as default}; diff --git a/web/dist/assets/Approval.Bt898B8S.css b/web/dist/assets/Approval.Bt898B8S.css new file mode 100644 index 0000000000000000000000000000000000000000..96ed186f36ed7aaac2b017b2c761706c01b8144d --- /dev/null +++ b/web/dist/assets/Approval.Bt898B8S.css @@ -0,0 +1 @@ +[data-v-9d252f67] .w-a-t-group{display:flex;flex-wrap:wrap}[data-v-9d252f67] .w-a-t-group .el-radio{width:112px;margin-bottom:10px}.w-node-rules[data-v-9d252f67]{border-radius:5px;overflow:hidden;border:1px solid var(--el-border-color);margin-bottom:20px}.w-node-rules[data-v-9d252f67]>:first-child{display:inline-block;padding:5px;width:100%;background-color:var(--el-border-color)}.w-node-rules[data-v-9d252f67]>:nth-child(2){padding:10px} diff --git a/web/dist/assets/BaseSetting.AfBX5QdH.js b/web/dist/assets/BaseSetting.AfBX5QdH.js new file mode 100644 index 0000000000000000000000000000000000000000..49a52b8bc50ad5b062f1b172ccb2bac18208cc2d --- /dev/null +++ b/web/dist/assets/BaseSetting.AfBX5QdH.js @@ -0,0 +1 @@ +import{I as b}from"./index.XK2ik2qb.js";import{s as z}from"./request.FMdsBF9A.js";import{_ as E}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{g as d,c as F,x as G,h as n,b as _,o as i,w as t,k as l,e as m,u as v,n as H,m as V,a as c,G as p,H as f}from"./vue.DmuWcDrn.js";const M={style:{margin:"0 40px"}},P={style:{display:"flex","align-items":"center"}},$={class:"w-icons"},A={style:{width:"31px",height:"0"}},D={__name:"BaseSetting",props:{modelValue:Object},setup(q,{expose:B}){const C=q,y=d();B({validate:U});const o=F({get(){return C.modelValue},set(r){emit("update:modelValue",r)}});d([{id:222,name:"测试"}]);function U(){return new Promise((r,a)=>{y.value.validate().then(()=>r()).catch(s=>{a(Object.keys(s).map(g=>s[g][0].message))})})}const I={name:[{required:!0,message:"请设置流程表单名称",trigger:"blur"},{min:2,max:20,message:"流程表单名称长度在2~20",trigger:"blur"}],groupId:[{required:!0,message:"请设置流程表单分组",trigger:"blur"}],content_type:[{required:!0,message:"请选择库表",trigger:"blur"}],operation:[{required:!0,message:"请选择库表操作",trigger:"blur"}]},L=["bi:people-fill","gridicons:multiple-users","icon-park-solid:appointment","icon-park-solid:people","fluent:people-add-24-filled","material-symbols:person-cancel-rounded","ph:coffee-fill","ph:sneaker-move-fill","solar:money-bag-bold","healthicons:money-bag","solar:wallet-money-bold","f7:money-yen-circle-fill","entypo:aircraft","entypo:aircraft-take-off","mingcute:bus-2-fill","mingcute:car-fill","mingcute:train-fill","fluent:handshake-20-filled","icon-park-solid:buy","mingcute:hand-card-fill","icon-park-solid:time","mdi:gift","bxs:map","ph:fingerprint-fill","mdi:customer-service","icon-park-solid:general-branch","bx:bxs-purchase-tag","mdi:notebook-edit","simple-icons:opsgenie","streamline:business-user-curriculum-solid","fa6-solid:business-time","mdi:google-my-business","mdi:qqchat","mdi:wechat","bxs:message-square-detail","mingcute:send-plane-fill","tabler:mail-filled","material-symbols:folder-open","icon-park-solid:computer","material-symbols:laptop-mac-outline","fluent:phone-vibrate-20-filled","fluent:form-28-filled","file-icons:omnigraffle","material-symbols:assignment-turned-in","mingcute:card-refund-fill","mingcute:wechat-miniprogram-fill","whh:phonebookalt","ri:database-2-fill","ph:bank-fill","material-symbols:school","iconamoon:smiling-face-fill","solar:sad-circle-bold","ri:hearts-fill","mdi:qrcode-scan","fluent:calendar-cancel-16-filled","ion:videocam","material-symbols:play-circle","jam:unsplash","ph:film-reel-fill","icon-park-solid:noodles","dashicons:food","fluent:food-cake-16-filled","mdi:food","material-symbols:delete","material-symbols:edit-document","material-symbols:chart-data","ph:chart-pie-slice-fill"],h=d([]),j=()=>z({url:"/api/dvadmin3_flow/flow_info/get_all_flow_content_type/",method:"get"}).then(r=>{h.value=r.data}),N=d([{value:"create",label:"新增"},{value:"update",label:"编辑"},{value:"delete",label:"删除"}]);return G(()=>{j()}),(r,a)=>{const s=n("el-text"),g=n("el-color-picker"),S=n("el-popover"),u=n("el-form-item"),k=n("el-input"),x=n("el-option"),w=n("el-select"),T=n("el-form"),O=n("el-main");return i(),_(O,{class:"w-designer-base"},{default:t(()=>[l(T,{ref_key:"form",ref:y,rules:I,model:o.value,"label-position":"top"},{default:t(()=>[l(u,{prop:"icon",label:"设置图标"},{default:t(()=>[l(v(b),{icon:o.value.icon.name,class:"w-process-icon",style:H({background:o.value.icon.bgc,color:o.value.icon.color})},null,8,["icon","style"]),m("div",M,[l(s,null,{default:t(()=>a[5]||(a[5]=[V("选择背景色:")])),_:1}),l(g,{modelValue:o.value.icon.bgc,"onUpdate:modelValue":a[0]||(a[0]=e=>o.value.icon.bgc=e)},null,8,["modelValue"])]),m("div",P,[l(s,null,{default:t(()=>a[6]||(a[6]=[V("选择图标:")])),_:1}),l(S,{placement:"bottom-start",width:"402",trigger:"click"},{reference:t(()=>[l(v(b),{class:"w-p-icon",style:{padding:"0"},slot:"reference",icon:o.value.icon.name},null,8,["icon"])]),default:t(()=>[m("div",$,[(i(),c(p,null,f(L,e=>l(v(b),{class:"w-icons-ico",onClick:J=>o.value.icon.name=e,icon:e,key:e},null,8,["onClick","icon"])),64)),(i(),c(p,null,f(12,e=>m("div",A)),64))])]),_:1})])]),_:1}),l(u,{prop:"name",required:"",label:"流程名称"},{default:t(()=>[l(k,{modelValue:o.value.name,"onUpdate:modelValue":a[1]||(a[1]=e=>o.value.name=e),placeholder:"请设置流程名"},null,8,["modelValue"])]),_:1}),l(u,{prop:"content_type",required:"",label:"关联库表"},{default:t(()=>[l(w,{style:{width:"calc(100% - 140px)","padding-right":"20px"},modelValue:o.value.content_type,"onUpdate:modelValue":a[2]||(a[2]=e=>o.value.content_type=e),placeholder:"请选择"},{default:t(()=>[(i(!0),c(p,null,f(h.value,e=>(i(),_(x,{value:e.value,label:e.label},null,8,["value","label"]))),256))]),_:1},8,["modelValue"])]),_:1}),l(u,{prop:"operation",required:"",label:"库表操作"},{default:t(()=>[l(w,{style:{width:"calc(100% - 140px)","padding-right":"20px"},modelValue:o.value.operation,"onUpdate:modelValue":a[3]||(a[3]=e=>o.value.operation=e),placeholder:"请选择"},{default:t(()=>[(i(!0),c(p,null,f(N.value,e=>(i(),_(x,{value:e.value,label:e.label},null,8,["value","label"]))),256))]),_:1},8,["modelValue"])]),_:1}),l(u,{label:"备注说明"},{default:t(()=>[l(k,{modelValue:o.value.remark,"onUpdate:modelValue":a[4]||(a[4]=e=>o.value.remark=e),"show-word-limit":"",maxlength:"128",rows:3,type:"textarea",placeholder:"流程备注说明信息"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1})}}},X=E(D,[["__scopeId","data-v-74849b61"]]);export{X as default}; diff --git a/web/dist/assets/BaseSetting.BoIrvcwf.css b/web/dist/assets/BaseSetting.BoIrvcwf.css new file mode 100644 index 0000000000000000000000000000000000000000..0cc0953a36fc6b3986daf088a9d30cf8890ed33e --- /dev/null +++ b/web/dist/assets/BaseSetting.BoIrvcwf.css @@ -0,0 +1 @@ +.w-designer-base[data-v-74849b61]{margin:0 auto;border-radius:5px;background-color:#fff;width:650px;min-height:calc(100vh - 100px)}.w-p-icon[data-v-74849b61]{font-size:20px;cursor:pointer;color:var(--el-color-info)}.w-icons[data-v-74849b61]{overflow:auto;max-height:400px;padding:2px;display:flex;justify-content:space-between;flex-wrap:wrap}.w-icons .w-icons-ico[data-v-74849b61]{width:25px;height:25px;padding:3px;cursor:pointer;border-radius:2px}.w-icons .w-icons-ico[data-v-74849b61]:hover{box-shadow:0 0 3px #9b9595} diff --git a/web/dist/assets/BranchNode.B8syyw50.js b/web/dist/assets/BranchNode.B8syyw50.js new file mode 100644 index 0000000000000000000000000000000000000000..89045dfa6824cec884817de929270a8f791d4fc7 --- /dev/null +++ b/web/dist/assets/BranchNode.B8syyw50.js @@ -0,0 +1 @@ +import{g as p,c as z,C as E,D as A,h as a,a as m,o as s,b as u,J as v,e as d,w as l,k as t,p as w,N as B,n as g,r as T,_ as F,K as y,m as x,f as M}from"./vue.DmuWcDrn.js";import W from"./InsertBtn.A0117t9o.js";import{n as D}from"./NodeMixin.CdUK7SNa.js";import{_ as j}from"./_plugin-vue_export-helper.DlAUqK2U.js";import"./ProcessNodes.r7PbQ_Ri.js";import"./index.XK2ik2qb.js";import"./ProcessUtil.B7gNiVp1.js";const J={class:"w-p-node"},K={style:{flex:"1"}},O={class:"w-p-node-header"},U={key:0,class:"w-node-action"},q={class:"w-p-node-add"},G={__name:"BranchNode",props:{moveLn:Boolean,moveRn:Boolean,type:String,color:String,headerIcon:String,content:String,readonly:Boolean,modelValue:Object,showError:Boolean,errorInfo:String,isDefault:Boolean,placeholder:{default:"请设置"},desc:String},emits:[...D.emits,"copy","moveL","moveR"],setup(e,{emit:N}){const I=e,r=p(!1),k=p(),i=N,f=z(D.computed._value(I,i));return E(r,()=>{r.value&&A(()=>{k.value.focus()})}),(S,o)=>{const $=a("WarningFilled"),c=a("el-icon"),h=a("el-tooltip"),L=a("ArrowLeft"),R=a("CopyDocument"),V=a("Close"),C=a("el-text"),b=a("ArrowRight");return s(),m("div",J,[e.showError?(s(),u(h,{key:0,effect:"dark",content:e.errorInfo||"设置错误",placement:"top-start"},{default:l(()=>[t(c,{size:"20",class:"w-node-err-tip"},{default:l(()=>[t($)]),_:1})]),_:1},8,["content"])):v("",!0),d("div",{class:M({"w-p-node-body":!0,"w-node-err":e.showError}),style:g({"---shadowColor":e.color})},[d("div",{class:"w-p-node-move",onClick:o[0]||(o[0]=n=>i("moveL"))},[w(t(c,null,{default:l(()=>[t(L)]),_:1},512),[[B,!e.readonly&&e.moveLn&&!e.isDefault]])]),d("div",K,[d("div",O,[d("div",{style:g({color:e.isDefault?"#898989":e.color})},[r.value?v("",!0):(s(),u(c,{key:0,size:"15"},{default:l(()=>[(s(),u(T(e.headerIcon)))]),_:1})),r.value?w((s(),m("input",{key:1,ref_key:"nodeNameInput",ref:k,autofocus:"",onBlur:o[1]||(o[1]=n=>r.value=!1),"onUpdate:modelValue":o[2]||(o[2]=n=>f.value.name=n)},null,544)),[[F,f.value.name]]):(s(),m("div",{key:2,class:"w-row-text",onClick:o[3]||(o[3]=()=>{e.readonly||(r.value=!0)})},y(f.value.name),1))],4),!e.readonly&&!e.isDefault?(s(),m("div",U,[t(c,{onClick:o[4]||(o[4]=n=>i("copy"))},{default:l(()=>[t(R)]),_:1}),t(c,{onClick:o[5]||(o[5]=n=>i("delete"))},{default:l(()=>[t(V)]),_:1})])):v("",!0),t(C,{class:"w-node-desc",type:"info",size:"small"},{default:l(()=>[x(y(e.desc),1)]),_:1})]),d("div",{class:"w-p-node-content",onClick:o[6]||(o[6]=n=>S.$emit("select"))},[t(C,{"line-clamp":"4"},{default:l(()=>[x(y(e.content||e.placeholder),1)]),_:1})])]),d("div",{class:"w-p-node-move",onClick:o[7]||(o[7]=n=>i("moveR"))},[w(t(c,null,{default:l(()=>[t(b)]),_:1},512),[[B,!e.readonly&&e.moveRn&&!e.isDefault]])])],6),d("div",q,[e.readonly?v("",!0):(s(),u(W,{key:0,onInsertNode:o[8]||(o[8]=n=>i("insertNode",n))}))])])}}},ee=j(G,[["__scopeId","data-v-c9db5d83"]]);export{ee as default}; diff --git a/web/dist/assets/BranchNode.qDeeEatk.css b/web/dist/assets/BranchNode.qDeeEatk.css new file mode 100644 index 0000000000000000000000000000000000000000..50c77629a8fdab2326980eb857026d49bb61087b --- /dev/null +++ b/web/dist/assets/BranchNode.qDeeEatk.css @@ -0,0 +1 @@ +.w-node-err[data-v-c9db5d83]{border:1px solid #f56c6c;box-shadow:0 0 5px #f56c6c!important}.w-p-node[data-v-c9db5d83]{width:220px;margin-bottom:8px;position:relative}.w-p-node .w-node-err-tip[data-v-c9db5d83]{position:absolute;right:-30px;color:var(--el-color-danger)}.w-p-node .w-p-node-body[data-v-c9db5d83]{cursor:pointer;background:#fff;overflow:hidden;border-radius:5px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 0 5px #d8d8d8}.w-p-node .w-p-node-body .w-p-node-move[data-v-c9db5d83]{width:15px}.w-p-node .w-p-node-body .w-p-node-move[data-v-c9db5d83]:hover{background:#f5f6f6}.w-p-node .w-p-node-body[data-v-c9db5d83]:hover{box-shadow:0 0 5px 0 var(---shadowColor)}.w-p-node .w-p-node-body>div[data-v-c9db5d83]:first-child,.w-p-node .w-p-node-body>div[data-v-c9db5d83]:last-child{height:100%}.w-p-node .w-p-node-body>div[data-v-c9db5d83]:first-child:hover,.w-p-node .w-p-node-body>div[data-v-c9db5d83]:last-child:hover{background:#cacaca}.w-p-node .w-p-node-body .w-p-node-header[data-v-c9db5d83]{display:flex;align-items:center;justify-content:space-between;height:25px;font-size:13px}.w-p-node .w-p-node-body .w-p-node-header .w-node-action[data-v-c9db5d83]{color:#767676;display:none}.w-p-node .w-p-node-body .w-p-node-header .w-node-action[data-v-c9db5d83]>*{margin:2px}.w-p-node .w-p-node-body .w-p-node-header .w-node-desc[data-v-c9db5d83]{position:absolute;right:8px}.w-p-node .w-p-node-body .w-p-node-header .w-row-text[data-v-c9db5d83]:hover{text-decoration:underline}.w-p-node .w-p-node-body .w-p-node-header>div[data-v-c9db5d83]{display:flex;align-items:center}.w-p-node .w-p-node-body .w-p-node-header>div>div[data-v-c9db5d83]{margin-left:3px;width:135px}.w-p-node .w-p-node-body .w-p-node-header input[data-v-c9db5d83]{width:135px;border:1px solid #CACACA;border-radius:5px}.w-p-node .w-p-node-body .w-p-node-header input[data-v-c9db5d83]:focus{outline:none}.w-p-node .w-p-node-body .w-p-node-content[data-v-c9db5d83]{padding:5px;min-height:50px;display:flex;justify-content:space-between;align-items:center;font-size:15px;color:#656363}.w-p-node .w-p-node-body .w-p-node-content>div[data-v-c9db5d83]{word-wrap:break-word}.w-p-node .w-p-node-body:hover .w-node-action[data-v-c9db5d83]{display:inline}.w-p-node .w-p-node-body:hover .w-node-desc[data-v-c9db5d83]{display:none}.w-p-node .w-p-node-add[data-v-c9db5d83]{position:relative;display:flex;justify-content:center;align-items:center;height:80px}.w-p-node .w-p-node-add[data-v-c9db5d83]:before{position:absolute;content:"";width:2px;height:80px;background:#cacaca}.w-p-node .w-p-node-add[data-v-c9db5d83]:after{content:"";position:absolute;top:80px;left:50%;transform:translate(-50%);width:0;border-style:solid;border-width:8px 6px 4px;border-color:#CACACA transparent transparent} diff --git a/web/dist/assets/Cc.B7imrGbS.js b/web/dist/assets/Cc.B7imrGbS.js new file mode 100644 index 0000000000000000000000000000000000000000..55290f75c40c09f8171ea3493ce87bb937ef6788 --- /dev/null +++ b/web/dist/assets/Cc.B7imrGbS.js @@ -0,0 +1 @@ +import S from"./Node.Do50r9uM.js";import{n as l}from"./NodeMixin.CdUK7SNa.js";import{c as p,g as i,b as g,o as b}from"./vue.DmuWcDrn.js";import"./InsertBtn.A0117t9o.js";import"./ProcessNodes.r7PbQ_Ri.js";import"./index.XK2ik2qb.js";import"./ProcessUtil.B7gNiVp1.js";import"./_plugin-vue_export-helper.DlAUqK2U.js";const D={__name:"Cc",props:{...l.props},emits:l.emits,setup(u,{expose:m,emit:d}){const v=u,a=d,r=p(l.computed._value(v,a)),t=i(!1),s=i(null),c=p(()=>{let o="请设置抄送人";const e=r.value.props;switch(e.ruleType){case"ASSIGN_USER":e.assignUser.length===0?o="请指定抄送人":o=`抄送 ${e.assignUser.map(n=>n.name).join("、")}`;break;case"ROOT_SELECT":o="发起人提交流程时指定人";break;case"LEADER":o="发起人的直属主管";break;case"ASSIGN_DEPT":o=`抄送部门[${e.assignDept.dept.map(n=>n.name).join("、")}]的主管`;break;case"ASSIGN_ROLE":o=`抄送具有角色[${e.assignRole.map(n=>n.name).join("、")}]的人员`;break}return o});m({validate:f});function f(o){t.value=!0;const e=r.value.props;switch(e.ruleType){case"ASSIGN_USER":if(e.assignUser.length===0){s.value="未指定具体抄送人",o.push(`${r.value.name} 节点未指定抄送人`);return}break;case"ASSIGN_DEPT":if(e.assignDept.dept.length===0){s.value="未设置抄送部门",o.push(`${r.value.name} 节点未设置抄送部门`);return}break;case"ASSIGN_ROLE":if(e.assignRole.length===0){s.value="未设置抄送角色",o.push(`${r.value.name} 节点未设置抄送角色`);return}break}t.value=!1}return(o,e)=>(b(),g(S,{modelValue:r.value,"onUpdate:modelValue":e[0]||(e[0]=n=>r.value=n),readonly:o.readonly,"show-error":t.value,"error-info":s.value,"header-color":"#5994F3","header-icon":"Promotion",content:c.value,onSelect:e[1]||(e[1]=n=>a("select",o.modelValue)),onInsertNode:e[2]||(e[2]=n=>a("insertNode",o.branch,o.index,n)),onDelete:e[3]||(e[3]=n=>a("delete",o.branch,o.index))},null,8,["modelValue","readonly","show-error","error-info","content"]))}};export{D as default}; diff --git a/web/dist/assets/Cc.COAaZbd-.css b/web/dist/assets/Cc.COAaZbd-.css new file mode 100644 index 0000000000000000000000000000000000000000..716e0f1279750fc3b9d7a2b91273fb140d8345c4 --- /dev/null +++ b/web/dist/assets/Cc.COAaZbd-.css @@ -0,0 +1 @@ +[data-v-5349d6a9] .w-a-t-group{display:flex;flex-wrap:wrap}[data-v-5349d6a9] .w-a-t-group .el-radio{width:112px;margin-bottom:10px}.w-node-rules[data-v-5349d6a9]{border-radius:5px;overflow:hidden;border:1px solid var(--el-border-color);margin-bottom:20px}.w-node-rules[data-v-5349d6a9]>:first-child{display:inline-block;padding:5px;width:100%;background-color:var(--el-border-color)}.w-node-rules[data-v-5349d6a9]>:nth-child(2){padding:10px} diff --git a/web/dist/assets/Cc.CQpVL-5n.js b/web/dist/assets/Cc.CQpVL-5n.js new file mode 100644 index 0000000000000000000000000000000000000000..22b310d119f6e721441d3f189436d61526c2b736 --- /dev/null +++ b/web/dist/assets/Cc.CQpVL-5n.js @@ -0,0 +1 @@ +import{n as y}from"./NodeMixin.CdUK7SNa.js";import D from"./FormPermConf.CE-WaGhp.js";import g from"./WOrgTags.Bgj5L3ZH.js";import w from"./WOrgPicker.B_7Qd6r5.js";import{_ as L}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{c as z,g as b,h as s,b as V,o as a,w as p,k as t,e as x,m as n,a as m,J as B,G as i,H as $}from"./vue.DmuWcDrn.js";import"./FormInterface.vRCiFeo3.js";import"./WDialog.D9OIgJAb.js";import"./request.FMdsBF9A.js";import"./index.XK2ik2qb.js";import"./GlobalFunc.9BrjVkDm.js";import"./ProcessUtil.B7gNiVp1.js";const W={class:"w-node-rules"},F={__name:"Cc",props:{...y.props},emits:y.emits,setup(E,{emit:U}){const I=E,N=U,l=z(y.computed._value(I,N)),d=b(),k=b("org"),u=b([]),O=[{label:"指定人员",type:"ASSIGN_USER"},{label:"指定部门",type:"ASSIGN_DEPT"},{label:"系统角色",type:"ASSIGN_ROLE"}];function v(r,e){k.value=e,u.value=r,d.value.open()}function R(r){console.log("选中",r),d.value.close(),u.value.length=0,u.value.push(...r)}return(r,e)=>{const S=s("el-text"),f=s("el-radio"),c=s("el-radio-group"),C=s("el-divider"),_=s("el-button"),P=s("el-form-item"),A=s("el-form"),T=s("el-tab-pane"),G=s("el-tabs");return a(),V(G,null,{default:p(()=>[t(T,{label:"抄送人设置"},{default:p(()=>[t(A,{"label-position":"top"},{default:p(()=>[x("div",W,[t(S,null,{default:p(()=>e[9]||(e[9]=[n("👨‍⚖️ 设置抄送人规则")])),_:1}),x("div",null,[t(c,{modelValue:l.value.props.ruleType,"onUpdate:modelValue":e[0]||(e[0]=o=>l.value.props.ruleType=o),class:"w-a-t-group"},{default:p(()=>[(a(),m(i,null,$(O,o=>t(f,{key:o.type,label:o.label,value:o.type},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),t(C,{style:{margin:"5px 0 10px"}}),l.value.props.ruleType==="ASSIGN_USER"?(a(),m(i,{key:0},[t(_,{style:{"margin-bottom":"5px"},onClick:e[1]||(e[1]=o=>v(l.value.props.assignUser,"user")),size:"small",type:"primary",icon:"plus",plain:""},{default:p(()=>e[10]||(e[10]=[n("添加抄送人 ")])),_:1}),t(g,{modelValue:l.value.props.assignUser,"onUpdate:modelValue":e[2]||(e[2]=o=>l.value.props.assignUser=o)},null,8,["modelValue"])],64)):l.value.props.ruleType==="ROOT_SELECT"?(a(),V(P,{key:1,label:"选择方式"},{default:p(()=>[t(c,{modelValue:l.value.props.rootSelect.multiple,"onUpdate:modelValue":e[3]||(e[3]=o=>l.value.props.rootSelect.multiple=o)},{default:p(()=>[t(f,{value:!1,label:"自选一个人"}),t(f,{value:!0,label:"自选多个人"})]),_:1},8,["modelValue"])]),_:1})):l.value.props.ruleType==="ASSIGN_DEPT"?(a(),m(i,{key:2},[t(_,{style:{"margin-bottom":"5px"},onClick:e[4]||(e[4]=o=>v(l.value.props.assignDept.dept,"dept")),size:"small",type:"primary",icon:"plus",plain:""},{default:p(()=>e[11]||(e[11]=[n("选择部门 ")])),_:1}),t(g,{modelValue:l.value.props.assignDept.dept,"onUpdate:modelValue":e[5]||(e[5]=o=>l.value.props.assignDept.dept=o)},null,8,["modelValue"])],64)):l.value.props.ruleType==="ASSIGN_ROLE"?(a(),m(i,{key:3},[t(_,{style:{"margin-bottom":"5px"},onClick:e[6]||(e[6]=o=>v(l.value.props.assignRole,"role")),size:"small",type:"primary",icon:"plus",plain:""},{default:p(()=>e[12]||(e[12]=[n("选择系统角色 ")])),_:1}),t(g,{modelValue:l.value.props.assignRole,"onUpdate:modelValue":e[7]||(e[7]=o=>l.value.props.assignRole=o)},null,8,["modelValue"])],64)):l.value.props.ruleType==="LEADER"?(a(),V(S,{key:4},{default:p(()=>e[13]||(e[13]=[n("抄送发起人的直属主管")])),_:1})):B("",!0)])])]),_:1})]),_:1}),t(T,{lazy:"",label:"表单权限设置"},{default:p(()=>[t(D,{"default-perm":"R",formItems:r.formItems,modelValue:l.value.props.formPerms,"onUpdate:modelValue":e[8]||(e[8]=o=>l.value.props.formPerms=o)},null,8,["formItems","modelValue"])]),_:1}),t(w,{ref_key:"orgPicker",ref:d,type:k.value,selected:u.value,multiple:"",onOk:R},null,8,["type","selected"])]),_:1})}}},le=L(F,[["__scopeId","data-v-5349d6a9"]]);export{le as default}; diff --git a/web/dist/assets/CommonConfig.Cb__DBae.js b/web/dist/assets/CommonConfig.Cb__DBae.js new file mode 100644 index 0000000000000000000000000000000000000000..c6df94682825980259c0b69a62ce213683bc4e1a --- /dev/null +++ b/web/dist/assets/CommonConfig.Cb__DBae.js @@ -0,0 +1 @@ +import{F as p}from"./FormComponentMixin.C3yPnfoW.js";import{h as t,a as i,o as u,k as l,w as a,G as d}from"./vue.DmuWcDrn.js";const g={__name:"CommonConfig",props:{...p.props},emits:[...p.emits],setup(_,{emit:f}){return(e,o)=>{const s=t("el-input"),m=t("el-form-item"),r=t("el-switch");return u(),i(d,null,[l(m,{label:"字段KEY"},{default:a(()=>[l(s,{modelValue:e.config.props.key,"onUpdate:modelValue":o[0]||(o[0]=n=>e.config.props.key=n),placeholder:"请输入字段唯一key值"},null,8,["modelValue"])]),_:1}),l(m,{label:"隐藏名称"},{default:a(()=>[l(r,{modelValue:e.config.props.hideLabel,"onUpdate:modelValue":o[1]||(o[1]=n=>e.config.props.hideLabel=n)},null,8,["modelValue"])]),_:1})],64)}}};export{g as default}; diff --git a/web/dist/assets/ConditionCompare.CgHyGqGV.js b/web/dist/assets/ConditionCompare.CgHyGqGV.js new file mode 100644 index 0000000000000000000000000000000000000000..62756c63a48a7d3465571aa2fc73ec905372ee95 --- /dev/null +++ b/web/dist/assets/ConditionCompare.CgHyGqGV.js @@ -0,0 +1 @@ +const s={number:[{name:"大于",symbol:"GT"},{name:"小于",symbol:"LT"},{name:"等于",symbol:"EQ"},{name:"大于等于",symbol:"GT_EQ"},{name:"小于等于",symbol:"LT_EQ"},{name:"不等于",symbol:"NEQ"},{name:"包含在",symbol:"IN"},{name:"介于两者间(含首尾)",symbol:"BT"}],string:[{name:"含有字符串",symbol:"HAS"},{name:"包含在",symbol:"IN"},{name:"等于",symbol:"EQ"},{name:"不等于",symbol:"NEQ"}],array:[{name:"含有",symbol:"HAS"},{name:"不含有",symbol:"NHAS"}],date:[{name:"在之前<",symbol:"BF"},{name:"在之后>",symbol:"AF"},{name:"在之间",symbol:"CT"},{name:"在之外",symbol:"NCT"}],dateRange:[{name:"在本期间",symbol:"CT"},{name:"在本期间外",symbol:"NCT"},{name:"时长大于",symbol:"GE"},{name:"时长小于",symbol:"LE"},{name:"时长等于",symbol:"EQ"}],org:[{name:"本人/部门属于",symbol:"IN"},{name:"本人/部门不属于",symbol:"NIN"}],role:[{name:"拥有角色",symbol:"HAS"},{name:"没有角色",symbol:"NHAS"}]},n=e=>{const m=s[r[e.group][e.type].type],o=m.findIndex(a=>a.symbol===e.compare);return(m[o]||{}).name||"?"},r={INITIATOR:{Org:{type:"org",desc(e){return`发起人${n(e)} ${(e.compareVal||[]).map(m=>m.name).join("、")}`}},Role:{type:"role",desc(e){return`发起人${n(e)} ${e.compareVal.map(m=>m.name).join("、")}`}}},FORM:{TextInput:{type:"string",desc(e){return`${e.name[1]} ${n(e)} ${e.compareVal.join("、")}`}},NumberInput:{type:"number",desc(e){return`${e.name[1]} ${n(e)} ${e.compareVal.join("、")}`}}},DATABASE:{TextInput:{type:"string",desc(e){return`${e.name[1]} ${n(e)} ${e.compareVal.join("、")}`}},NumberInput:{type:"number",desc(e){return`${e.name[1]} ${n(e)} ${e.compareVal.join("、")}`}}}};export{s as C,r as P}; diff --git a/web/dist/assets/ConditionGroupConfig.BNW7mGqr.js b/web/dist/assets/ConditionGroupConfig.BNW7mGqr.js new file mode 100644 index 0000000000000000000000000000000000000000..946b6df059236f7014469b6a3d72834e31696916 --- /dev/null +++ b/web/dist/assets/ConditionGroupConfig.BNW7mGqr.js @@ -0,0 +1 @@ +import G from"./ConditionItemConfig.CdU5ajTx.js";import J from"./WDialog.D9OIgJAb.js";import{_ as M}from"./FormInterface.vRCiFeo3.js";import{P as $}from"./ConditionCompare.CgHyGqGV.js";import{s as P}from"./request.FMdsBF9A.js";import{_ as z}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{b as H}from"./index.XK2ik2qb.js";import{c as A,g as V,h as i,a as f,o as a,e as k,k as o,w as n,m as d,K as N,J as K,G as _,H as C,b as r,u as L}from"./vue.DmuWcDrn.js";import"./WOrgTags.Bgj5L3ZH.js";import"./WOrgPicker.B_7Qd6r5.js";import"./GlobalFunc.9BrjVkDm.js";import"./ProcessUtil.B7gNiVp1.js";const W={class:"w-condition-group"},q={key:0,class:"w-cd-group-tip"},Q={__name:"ConditionGroupConfig",props:{name:String,designData:{type:Object,default:()=>({})},modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue","delete"],setup(c){const b=c,s=A({get(){return b.modelValue},set(m){emit("update:modelValue",m)}}),T=A(()=>M.value.filter(m=>$.FORM[m.type])),w=V([]),U=()=>{const e=JSON.parse(JSON.stringify(b.designData)).content_type;return P({url:"/api/dvadmin3_flow/flow_info/get_model_fields/",method:"get",params:{model_name:e}}).then(u=>{w.value=u.data})},y=V(!1),t=V({});function I(){U(),y.value=!0,t.value={group:null,type:null,symbol:null,name:[],valueType:null}}function B(){t.value.type&&t.value.symbol?(y.value=!1,s.value.conditions.push({...t.value,compare:null,compareVal:[]})):H.warning("请选择条件类别")}return(m,e)=>{const u=i("el-text"),S=i("el-switch"),O=i("el-button"),F=i("Delete"),R=i("el-icon"),E=i("el-form-item"),j=i("el-form"),p=i("el-option"),g=i("el-select");return a(),f("div",W,[k("div",null,[o(u,null,{default:n(()=>[d(N(c.name),1)]),_:1}),k("div",null,[o(u,{style:{"margin-right":"10px"}},{default:n(()=>e[13]||(e[13]=[d("组内条件关系:")])),_:1}),o(S,{modelValue:s.value.logic,"onUpdate:modelValue":e[0]||(e[0]=l=>s.value.logic=l),"active-text":"且","inactive-text":"或"},null,8,["modelValue"])]),k("div",null,[o(O,{link:"",icon:"Plus",type:"primary",onClick:I},{default:n(()=>e[14]||(e[14]=[d("添加条件")])),_:1}),o(O,{link:"",icon:"Delete",type:"danger",onClick:e[1]||(e[1]=l=>m.$emit("delete"))},{default:n(()=>e[15]||(e[15]=[d("删除")])),_:1})])]),k("div",null,[s.value.conditions.length===0?(a(),f("div",q,[o(u,null,{default:n(()=>e[16]||(e[16]=[d("请点击上方 + 添加条件选项")])),_:1})])):K("",!0),o(j,{"label-position":"top","label-width":"100",class:"w-cd-group-item"},{default:n(()=>[(a(!0),f(_,null,C(s.value.conditions,(l,v)=>(a(),r(E,{key:l.id},{label:n(()=>[o(u,{truncated:""},{default:n(()=>[d(N((l.name||[]).join("-")),1)]),_:2},1024)]),default:n(()=>{var x;return[o(G,{modelValue:s.value.conditions[v],"onUpdate:modelValue":D=>s.value.conditions[v]=D,type:(x=L($)[l.group][l.type])==null?void 0:x.type,style:{display:"inline-block",width:"calc(100% - 20px)"}},null,8,["modelValue","onUpdate:modelValue","type"]),o(R,{class:"w-cd-del",style:{"font-size":"20px"},onClick:D=>s.value.conditions.splice(v,1)},{default:n(()=>[o(F)]),_:2},1032,["onClick"])]}),_:2},1024))),128))]),_:1})]),o(J,{border:!1,title:"选择条件类别",width:"500",modelValue:y.value,"onUpdate:modelValue":e[12]||(e[12]=l=>y.value=l),onOk:B},{default:n(()=>[o(g,{style:{width:"45%"},modelValue:t.value.group,"onUpdate:modelValue":e[4]||(e[4]=l=>t.value.group=l),onChange:e[5]||(e[5]=l=>t.value.symbol=null)},{default:n(()=>[o(p,{label:"发起人",value:"INITIATOR",onClick:e[2]||(e[2]=l=>t.value.name[0]="发起人")}),o(p,{label:"库表",value:"DATABASE",onClick:e[3]||(e[3]=l=>t.value.name[0]="库表")})]),_:1},8,["modelValue"]),o(u,{style:{margin:"0 10px"}},{default:n(()=>e[17]||(e[17]=[d("的")])),_:1}),t.value.group==="INITIATOR"?(a(),r(g,{key:0,style:{width:"45%"},modelValue:t.value.type,"onUpdate:modelValue":e[8]||(e[8]=l=>t.value.type=l),onChange:e[9]||(e[9]=l=>t.value.symbol=l)},{default:n(()=>[o(p,{label:"本人/部门",value:"Org",onClick:e[6]||(e[6]=l=>t.value.name[1]="本人/部门")}),o(p,{label:"角色",value:"Role",onClick:e[7]||(e[7]=l=>t.value.name[1]="角色")})]),_:1},8,["modelValue"])):t.value.group==="FORM"?(a(),r(g,{key:1,style:{width:"45%"},modelValue:t.value.symbol,"onUpdate:modelValue":e[10]||(e[10]=l=>t.value.symbol=l)},{default:n(()=>[(a(!0),f(_,null,C(T.value,l=>(a(),r(p,{label:l.name,value:l.key,key:l.key,onClick:v=>{t.value.type=l.type,t.value.name[1]=l.name}},null,8,["label","value","onClick"]))),128))]),_:1},8,["modelValue"])):b.designData.content_type?t.value.group==="DATABASE"?(a(),r(g,{key:3,style:{width:"45%"},modelValue:t.value.symbol,"onUpdate:modelValue":e[11]||(e[11]=l=>t.value.symbol=l)},{default:n(()=>[(a(!0),f(_,null,C(w.value,l=>(a(),r(p,{label:l.label,value:l.key,key:l.key,onClick:v=>{t.value.type=l.type,t.value.name[1]=l.label}},null,8,["label","value","onClick"]))),128))]),_:1},8,["modelValue"])):(a(),r(u,{key:4,type:"warning"},{default:n(()=>e[19]||(e[19]=[d("👀请选择左侧类别")])),_:1})):(a(),r(u,{key:2,type:"warning"},{default:n(()=>e[18]||(e[18]=[d("请先在首页选择model")])),_:1}))]),_:1},8,["modelValue"])])}}},de=z(Q,[["__scopeId","data-v-c2502bd3"]]);export{de as default}; diff --git a/web/dist/assets/ConditionGroupConfig.UuDrWypp.css b/web/dist/assets/ConditionGroupConfig.UuDrWypp.css new file mode 100644 index 0000000000000000000000000000000000000000..ed65ed03375ac1f496dd4350d0bbd7dd2f7bf8a1 --- /dev/null +++ b/web/dist/assets/ConditionGroupConfig.UuDrWypp.css @@ -0,0 +1 @@ +.w-condition-group[data-v-c2502bd3]{border-radius:5px;overflow:hidden;border:1px solid var(--el-border-color);margin-bottom:20px}.w-condition-group .w-cd-group-tip[data-v-c2502bd3]{text-align:center;padding:10px 0}.w-condition-group[data-v-c2502bd3]>:first-child{padding:0 5px;display:flex;align-items:center;background-color:var(--el-border-color)}.w-condition-group[data-v-c2502bd3]>:first-child>:first-child{flex:1}.w-condition-group[data-v-c2502bd3]>:first-child>:nth-child(2){display:flex;align-items:center;margin-right:100px}.w-condition-group[data-v-c2502bd3]>:nth-child(2){padding:10px}[data-v-c2502bd3] .w-cd-group-item .w-cd-del{color:var(--el-color-danger);padding:3px;cursor:pointer}[data-v-c2502bd3] .w-cd-group-item .el-form-item__label{margin-bottom:0!important} diff --git a/web/dist/assets/ConditionItemConfig.CdU5ajTx.js b/web/dist/assets/ConditionItemConfig.CdU5ajTx.js new file mode 100644 index 0000000000000000000000000000000000000000..b1dcf22359235710801d5f38392839104d26fc58 --- /dev/null +++ b/web/dist/assets/ConditionItemConfig.CdU5ajTx.js @@ -0,0 +1 @@ +import U from"./WOrgTags.Bgj5L3ZH.js";import I from"./WOrgPicker.B_7Qd6r5.js";import{C as T}from"./ConditionCompare.CgHyGqGV.js";import{c as z,g as k,h as p,a as o,o as t,k as r,J as x,w as i,G as u,H as c,u as $,b as d,m as b,e as W}from"./vue.DmuWcDrn.js";import"./_plugin-vue_export-helper.DlAUqK2U.js";import"./WDialog.D9OIgJAb.js";import"./request.FMdsBF9A.js";import"./index.XK2ik2qb.js";import"./GlobalFunc.9BrjVkDm.js";import"./ProcessUtil.B7gNiVp1.js";const j={style:{width:"10%","margin-left":"10px"}},K={__name:"ConditionItemConfig",props:{type:{type:String},modelValue:{type:Object}},emits:["update:modelValue"],setup(m){const N=m,a=z({get(){return N.modelValue},set(n){emit("update:modelValue",n)}}),V=k(),f=k(!1),g=k("org");function E(n){}function w(n){g.value=n,V.value.open()}function O(n){a.value.compareVal=n,V.value.close()}return(n,l)=>{const y=p("el-option"),v=p("el-select"),B=p("el-divider"),C=p("el-button"),s=p("el-input"),P=p("el-checkbox");return t(),o("div",null,[r(v,{modelValue:a.value.compare,"onUpdate:modelValue":l[0]||(l[0]=e=>a.value.compare=e),style:{width:"30%"}},{default:i(()=>[(t(!0),o(u,null,c($(T)[m.type],e=>(t(),d(y,{key:e.symbol,label:e.name,value:e.symbol},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),r(B,{direction:"vertical"}),m.type==="org"?(t(),o(u,{key:0},[r(C,{icon:"Plus",size:"small",type:"primary",round:"",onClick:l[1]||(l[1]=e=>w("org"))},{default:i(()=>l[13]||(l[13]=[b("选择人员/部门")])),_:1}),r(U,{style:{"margin-top":"5px"},modelValue:a.value.compareVal,"onUpdate:modelValue":l[2]||(l[2]=e=>a.value.compareVal=e)},null,8,["modelValue"])],64)):m.type==="role"?(t(),o(u,{key:1},[r(C,{icon:"Plus",size:"small",type:"primary",round:"",onClick:l[3]||(l[3]=e=>w("role"))},{default:i(()=>l[14]||(l[14]=[b("选择角色")])),_:1}),r(U,{style:{"margin-top":"5px"},modelValue:a.value.compareVal,"onUpdate:modelValue":l[4]||(l[4]=e=>a.value.compareVal=e)},null,8,["modelValue"])],64)):x("",!0),m.type==="user"?(t(),o(u,{key:2},[],64)):m.type==="dept"?(t(),o(u,{key:3},[],64)):m.type==="number"?(t(),o(u,{key:4},[a.value.compare==="BT"?(t(),o(u,{key:0},[r(s,{style:{width:"30%"},type:"number",modelValue:a.value.compareVal[0],"onUpdate:modelValue":l[5]||(l[5]=e=>a.value.compareVal[0]=e),placeholder:"左比较值"},null,8,["modelValue"]),l[15]||(l[15]=b(" ~ ")),r(s,{style:{width:"30%"},type:"number",modelValue:a.value.compareVal[1],"onUpdate:modelValue":l[6]||(l[6]=e=>a.value.compareVal[1]=e),placeholder:"右比较值"},null,8,["modelValue"])],64)):a.value.compare==="IN"?(t(),d(v,{key:1,multiple:"",filterable:"","allow-create":"",modelValue:a.value.compareVal,"onUpdate:modelValue":l[7]||(l[7]=e=>a.value.compareVal=e),style:{width:"65%"},placeholder:"请输入选项"},{default:i(()=>[(t(!0),o(u,null,c(a.value.compareVal,e=>(t(),d(y,{key:e.symbol,label:e.name,value:e.name},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])):(t(),d(s,{key:2,type:"number",style:{width:"65%"},modelValue:a.value.compareVal[0],"onUpdate:modelValue":l[8]||(l[8]=e=>a.value.compareVal[0]=e),placeholder:"比较值"},null,8,["modelValue"]))],64)):m.type==="string"?(t(),o(u,{key:5},[a.value.compare==="IN"?(t(),d(v,{key:0,multiple:"",filterable:"","allow-create":"",modelValue:a.value.compareVal,"onUpdate:modelValue":l[9]||(l[9]=e=>a.value.compareVal=e),style:{width:"65%"},placeholder:"请输入选项"},{default:i(()=>[(t(!0),o(u,null,c(a.value.compareVal,e=>(t(),d(y,{key:e.symbol,label:e.name,value:e.name},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])):(t(),d(s,{key:1,style:{width:"55%"},modelValue:a.value.compareVal[0],"onUpdate:modelValue":l[10]||(l[10]=e=>a.value.compareVal[0]=e),placeholder:"输入比较值"},null,8,["modelValue"])),W("span",j,[r(P,{label:"为空",size:"large",modelValue:f.value,"onUpdate:modelValue":l[11]||(l[11]=e=>f.value=e),onClick:l[12]||(l[12]=e=>(a.value.compareVal[0],void 0))},null,8,["modelValue"])])],64)):m.type==="array"?(t(),o(u,{key:6},[],64)):m.type==="date"?(t(),o(u,{key:7},[],64)):m.type==="dateRange"?(t(),o(u,{key:8},[],64)):x("",!0),r(I,{type:g.value,multiple:"",ref_key:"orgPicker",ref:V,selected:a.value.compareVal,onOk:O},null,8,["type","selected"])])}}};export{K as default}; diff --git a/web/dist/assets/DateTimePicker.BmKb3hOT.js b/web/dist/assets/DateTimePicker.BmKb3hOT.js new file mode 100644 index 0000000000000000000000000000000000000000..086f085327763fa469a6f6d308232f77fafae586 --- /dev/null +++ b/web/dist/assets/DateTimePicker.BmKb3hOT.js @@ -0,0 +1 @@ +import{F as o}from"./FormComponentMixin.C3yPnfoW.js";import{c as p,h as i,b as d,o as f}from"./vue.DmuWcDrn.js";const M={__name:"DateTimePicker",props:{...o.props},emits:[...o.emits],setup(m,{emit:l}){const t=m,n=l,a=p(o.computed._value(t,n)),s=p(()=>{switch(t.config.props.format){case"YYYY":return"year";case"YYYY-MM":return"month";case"YYYY-MM-DD":return"date";case"YYYY-MM-DD HH:mm":return"datetime";default:return"datetime"}});return(e,r)=>{const c=i("el-date-picker");return f(),d(c,{modelValue:a.value,"onUpdate:modelValue":r[0]||(r[0]=u=>a.value=u),"value-format":e.config.props.format,format:e.config.props.format,clearable:"",type:s.value,placeholder:e.config.props.placeholder},null,8,["modelValue","value-format","format","type","placeholder"])}}};export{M as default}; diff --git a/web/dist/assets/DateTimePicker.yGOOCJii.js b/web/dist/assets/DateTimePicker.yGOOCJii.js new file mode 100644 index 0000000000000000000000000000000000000000..a7f2f848b9a520ce30a04dec4883464eb9166ed8 --- /dev/null +++ b/web/dist/assets/DateTimePicker.yGOOCJii.js @@ -0,0 +1 @@ +import{F as r}from"./FormComponentMixin.C3yPnfoW.js";import{h as t,a as s,o as f,k as e,w as n,G as Y}from"./vue.DmuWcDrn.js";const D={__name:"DateTimePicker",props:{...r.props},emits:[...r.emits],setup(V,{emit:b}){return(l,o)=>{const u=t("el-input"),m=t("el-form-item"),p=t("el-option"),i=t("el-select"),d=t("el-switch");return f(),s(Y,null,[e(m,{label:"字段KEY"},{default:n(()=>[e(u,{modelValue:l.config.key,"onUpdate:modelValue":o[0]||(o[0]=a=>l.config.key=a),placeholder:"请输入字段唯一key值"},null,8,["modelValue"])]),_:1}),e(m,{label:"字段名称"},{default:n(()=>[e(u,{modelValue:l.config.name,"onUpdate:modelValue":o[1]||(o[1]=a=>l.config.name=a),placeholder:"请设置字段名称"},null,8,["modelValue"])]),_:1}),e(m,{label:"提示文字"},{default:n(()=>[e(u,{modelValue:l.config.props.placeholder,"onUpdate:modelValue":o[2]||(o[2]=a=>l.config.props.placeholder=a),placeholder:"输入提示"},null,8,["modelValue"])]),_:1}),e(m,{label:"数据格式"},{default:n(()=>[e(i,{modelValue:l.config.props.format,"onUpdate:modelValue":o[3]||(o[3]=a=>l.config.props.format=a)},{default:n(()=>[e(p,{label:"年",value:"YYYY"}),e(p,{label:"年-月",value:"YYYY-MM"}),e(p,{label:"年-月-日",value:"YYYY-MM-DD"}),e(p,{label:"年-月-日 时",value:"YYYY-MM-DD HH"}),e(p,{label:"年-月-日 时:分",value:"YYYY-MM-DD HH:mm"}),e(p,{label:"年-月-日 时:分:秒",value:"YYYY-MM-DD HH:mm:ss"})]),_:1},8,["modelValue"])]),_:1}),e(m,{label:"隐藏名称"},{default:n(()=>[e(d,{modelValue:l.config.props.hideLabel,"onUpdate:modelValue":o[4]||(o[4]=a=>l.config.props.hideLabel=a)},null,8,["modelValue"])]),_:1}),e(m,{label:"是否必填"},{default:n(()=>[e(d,{modelValue:l.config.props.required,"onUpdate:modelValue":o[5]||(o[5]=a=>l.config.props.required=a)},null,8,["modelValue"])]),_:1})],64)}}};export{D as default}; diff --git a/web/dist/assets/DateTimeRangePicker.BDeWvN-a.js b/web/dist/assets/DateTimeRangePicker.BDeWvN-a.js new file mode 100644 index 0000000000000000000000000000000000000000..e065572d15223174237314bfe1f24886848fa727 --- /dev/null +++ b/web/dist/assets/DateTimeRangePicker.BDeWvN-a.js @@ -0,0 +1 @@ +import{F as o}from"./FormComponentMixin.C3yPnfoW.js";import{c as p,h as u,b as i,o as f}from"./vue.DmuWcDrn.js";const Y={__name:"DateTimeRangePicker",props:{...o.props},emits:[...o.emits],setup(l,{emit:n}){const a=l,m=n,r=p(o.computed._value(a,m)),s=p(()=>{switch(a.config.props.format){case"YYYY-MM-DD":return"daterange";case"YYYY-MM-DD HH:mm":return"datetimerange";default:return"daterange"}});return(e,t)=>{const c=u("el-date-picker");return f(),i(c,{modelValue:r.value,"onUpdate:modelValue":t[0]||(t[0]=d=>r.value=d),clearable:"","value-format":e.config.props.format,format:e.config.props.format,type:s.value,"start-placeholder":e.config.props.placeholder[0],"end-placeholder":e.config.props.placeholder[1]},null,8,["modelValue","value-format","format","type","start-placeholder","end-placeholder"])}}};export{Y as default}; diff --git a/web/dist/assets/DateTimeRangePicker.Bsq0yfhX.js b/web/dist/assets/DateTimeRangePicker.Bsq0yfhX.js new file mode 100644 index 0000000000000000000000000000000000000000..37494132f505d22bea156872679c6766b737d452 --- /dev/null +++ b/web/dist/assets/DateTimeRangePicker.Bsq0yfhX.js @@ -0,0 +1 @@ +import{F as r}from"./FormComponentMixin.C3yPnfoW.js";import{h as p,a as s,o as f,k as e,w as n,G as V}from"./vue.DmuWcDrn.js";const k={__name:"DateTimeRangePicker",props:{...r.props},emits:[...r.emits],setup(g,{emit:Y}){return(l,o)=>{const t=p("el-input"),m=p("el-form-item"),d=p("el-option"),i=p("el-select"),u=p("el-switch");return f(),s(V,null,[e(m,{label:"字段KEY"},{default:n(()=>[e(t,{modelValue:l.config.key,"onUpdate:modelValue":o[0]||(o[0]=a=>l.config.key=a),placeholder:"请输入字段唯一key值"},null,8,["modelValue"])]),_:1}),e(m,{label:"字段名称"},{default:n(()=>[e(t,{modelValue:l.config.name,"onUpdate:modelValue":o[1]||(o[1]=a=>l.config.name=a),placeholder:"请设置字段名称"},null,8,["modelValue"])]),_:1}),e(m,{label:"提示文字"},{default:n(()=>[e(t,{modelValue:l.config.props.placeholder,"onUpdate:modelValue":o[2]||(o[2]=a=>l.config.props.placeholder=a),placeholder:"输入提示"},null,8,["modelValue"])]),_:1}),e(m,{label:"数据格式"},{default:n(()=>[e(i,{modelValue:l.config.props.format,"onUpdate:modelValue":o[3]||(o[3]=a=>l.config.props.format=a)},{default:n(()=>[e(d,{label:"年-月-日",value:"YYYY-MM-DD"}),e(d,{label:"年-月-日 时:分",value:"YYYY-MM-DD HH:mm"}),e(d,{label:"年-月-日 时:分:秒",value:"YYYY-MM-DD HH:mm:ss"})]),_:1},8,["modelValue"])]),_:1}),e(m,{label:"隐藏名称"},{default:n(()=>[e(u,{modelValue:l.config.props.hideLabel,"onUpdate:modelValue":o[4]||(o[4]=a=>l.config.props.hideLabel=a)},null,8,["modelValue"])]),_:1}),e(m,{label:"是否必填"},{default:n(()=>[e(u,{modelValue:l.config.props.required,"onUpdate:modelValue":o[5]||(o[5]=a=>l.config.props.required=a)},null,8,["modelValue"])]),_:1})],64)}}};export{k as default}; diff --git a/web/dist/assets/DeptPicker.BMtlEMVg.js b/web/dist/assets/DeptPicker.BMtlEMVg.js new file mode 100644 index 0000000000000000000000000000000000000000..e2a0300ea7be949d9f3d9ebd4cbff6e42437a58b --- /dev/null +++ b/web/dist/assets/DeptPicker.BMtlEMVg.js @@ -0,0 +1 @@ +import{F as r}from"./FormComponentMixin.C3yPnfoW.js";import k from"./WOrgPicker.B_7Qd6r5.js";import v from"./WOrgTags.Bgj5L3ZH.js";import{_ as g}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{c as x,g as y,h as p,a as V,o as a,k as s,b as C,J as P,w as O,m as b,K as h}from"./vue.DmuWcDrn.js";import"./WDialog.D9OIgJAb.js";import"./request.FMdsBF9A.js";import"./index.XK2ik2qb.js";import"./GlobalFunc.9BrjVkDm.js";import"./ProcessUtil.B7gNiVp1.js";const w={style:{display:"flex","align-items":"center"}},B={__name:"DeptPicker",props:{...r.props},emits:[...r.emits],setup(i,{emit:m}){const c=i,u=m,e=x(r.computed._value(c,u)),l=y();function d(t){e.value=t,l.value.close()}return(t,o)=>{const f=p("el-button"),_=p("el-text");return a(),V("div",w,[s(f,{icon:"plus",onClick:o[0]||(o[0]=n=>l.value.open()),round:""}),(e.value||[]).length>0?(a(),C(v,{key:0,inline:"",modelValue:e.value,"onUpdate:modelValue":o[1]||(o[1]=n=>e.value=n)},null,8,["modelValue"])):P("",!0),s(_,{class:"w-placeholder"},{default:O(()=>[b(h(t.config.props.placeholder),1)]),_:1}),s(k,{multiple:t.config.props.multiple,ref_key:"orgPicker",ref:l,type:"dept",selected:e.value,onOk:d},null,8,["multiple","selected"])])}}},S=g(B,[["__scopeId","data-v-6fc68e88"]]);export{S as default}; diff --git a/web/dist/assets/DeptPicker.CCRiKZ2s.js b/web/dist/assets/DeptPicker.CCRiKZ2s.js new file mode 100644 index 0000000000000000000000000000000000000000..de212fccfc7b3b38b96e85ba3a405855c0152232 --- /dev/null +++ b/web/dist/assets/DeptPicker.CCRiKZ2s.js @@ -0,0 +1 @@ +import{F as r}from"./FormComponentMixin.C3yPnfoW.js";import{h as u,a as t,o as i,k as o,w as p,G as s}from"./vue.DmuWcDrn.js";const k={__name:"DeptPicker",props:{...r.props},emits:[...r.emits],setup(f,{emit:V}){return(e,l)=>{const m=u("el-input"),a=u("el-form-item"),d=u("el-switch");return i(),t(s,null,[o(a,{label:"字段KEY"},{default:p(()=>[o(m,{modelValue:e.config.key,"onUpdate:modelValue":l[0]||(l[0]=n=>e.config.key=n),placeholder:"请输入字段唯一key值"},null,8,["modelValue"])]),_:1}),o(a,{label:"字段名称"},{default:p(()=>[o(m,{modelValue:e.config.name,"onUpdate:modelValue":l[1]||(l[1]=n=>e.config.name=n),placeholder:"请设置字段名称"},null,8,["modelValue"])]),_:1}),o(a,{label:"提示文字"},{default:p(()=>[o(m,{modelValue:e.config.props.placeholder,"onUpdate:modelValue":l[2]||(l[2]=n=>e.config.props.placeholder=n),placeholder:"输入提示"},null,8,["modelValue"])]),_:1}),o(a,{label:"是否多选"},{default:p(()=>[o(d,{modelValue:e.config.props.multiple,"onUpdate:modelValue":l[3]||(l[3]=n=>e.config.props.multiple=n)},null,8,["modelValue"])]),_:1}),o(a,{label:"隐藏名称"},{default:p(()=>[o(d,{modelValue:e.config.props.hideLabel,"onUpdate:modelValue":l[4]||(l[4]=n=>e.config.props.hideLabel=n)},null,8,["modelValue"])]),_:1}),o(a,{label:"是否必填"},{default:p(()=>[o(d,{modelValue:e.config.props.required,"onUpdate:modelValue":l[5]||(l[5]=n=>e.config.props.required=n)},null,8,["modelValue"])]),_:1})],64)}}};export{k as default}; diff --git a/web/dist/assets/DeptPicker.Dztcgi1j.css b/web/dist/assets/DeptPicker.Dztcgi1j.css new file mode 100644 index 0000000000000000000000000000000000000000..54e9b0ab2396c0876705167fe3537a5b3a6c61ea --- /dev/null +++ b/web/dist/assets/DeptPicker.Dztcgi1j.css @@ -0,0 +1 @@ +.w-placeholder[data-v-6fc68e88]{margin-left:10px;color:var(--el-text-color-placeholder)} diff --git a/web/dist/assets/Exclusive.Bnfklj94.js b/web/dist/assets/Exclusive.Bnfklj94.js new file mode 100644 index 0000000000000000000000000000000000000000..55b469bd77d4d7cb75a1da2a4f8bd2a3639cd982 --- /dev/null +++ b/web/dist/assets/Exclusive.Bnfklj94.js @@ -0,0 +1 @@ +import L from"./BranchNode.B8syyw50.js";import{n as p}from"./NodeMixin.CdUK7SNa.js";import{P as v}from"./ConditionCompare.CgHyGqGV.js";import{c as f,g as d,b as R,o as y}from"./vue.DmuWcDrn.js";import"./InsertBtn.A0117t9o.js";import"./ProcessNodes.r7PbQ_Ri.js";import"./index.XK2ik2qb.js";import"./ProcessUtil.B7gNiVp1.js";import"./_plugin-vue_export-helper.DlAUqK2U.js";const k={__name:"Exclusive",props:{...p.props,moveLn:Boolean,moveRn:Boolean,isDefault:Boolean},emits:[...p.emits,"moveL","moveR"],setup(i,{expose:g,emit:c}){const a=i,l=c,r=f(p.computed._value(a,l)),m=d(!1),u=d(null);g({validate:h});const $=f(()=>{if(a.isDefault)return"其他情况将进入此分支";{let n="请设置条件";const e=r.value.props;return e.groups.length>0&&e.groups[0].conditions.length>0&&(n=e.groups.map(o=>{if((o.conditions||[]).length===0)return"请添加条件";const s=e.groups.length>1&&o.conditions.length;return(s?"[":"")+o.conditions.map(t=>v[t.group]&&v[t.group][t.type]?v[t.group][t.type].desc(t):"未配置条件").join(` ${o.logic?"且":"或"} `)+(s?"]":"")}).join(` ${e.logic?"且":"或"} `)),n}});function h(n){if(m.value=!0,!a.isDefault){const e=r.value.props;if(e.groups.length===0){u.value="请添加条件组",n.push(`条件 ${r.value.name}未添加条件组`);return}else for(let o=0;oe==null||String(e).trim()==="")>-1}return(n,e)=>(y(),R(L,{modelValue:r.value,"onUpdate:modelValue":e[0]||(e[0]=o=>r.value=o),readonly:n.readonly,"show-error":m.value,"error-info":u.value,color:"#59B9A4","header-icon":"share","is-default":i.isDefault,content:$.value,moveRn:i.moveRn,moveLn:i.moveLn,onInsertNode:e[1]||(e[1]=o=>l("insertNode",o)),desc:`优先级 ${n.index+1}`,onMoveL:e[2]||(e[2]=o=>l("moveL")),onMoveR:e[3]||(e[3]=o=>l("moveR")),onDelete:e[4]||(e[4]=o=>l("delete")),onSelect:e[5]||(e[5]=o=>l("select",n.modelValue))},null,8,["modelValue","readonly","show-error","error-info","is-default","content","moveRn","moveLn","desc"]))}};export{k as default}; diff --git a/web/dist/assets/Exclusive.CHGcNMOo.js b/web/dist/assets/Exclusive.CHGcNMOo.js new file mode 100644 index 0000000000000000000000000000000000000000..8748d9b1d8db91b74f5fb7f7dd40f16a9e1d9978 --- /dev/null +++ b/web/dist/assets/Exclusive.CHGcNMOo.js @@ -0,0 +1 @@ +import{n as s}from"./NodeMixin.CdUK7SNa.js";import D from"./ConditionGroupConfig.BNW7mGqr.js";import{b as c}from"./index.XK2ik2qb.js";import{c as w,h as t,b as u,o as l,w as p,J as G,k as n,a as h,m as B,G as E,H as N}from"./vue.DmuWcDrn.js";import"./ConditionItemConfig.CdU5ajTx.js";import"./WOrgTags.Bgj5L3ZH.js";import"./_plugin-vue_export-helper.DlAUqK2U.js";import"./WOrgPicker.B_7Qd6r5.js";import"./WDialog.D9OIgJAb.js";import"./request.FMdsBF9A.js";import"./GlobalFunc.9BrjVkDm.js";import"./ProcessUtil.B7gNiVp1.js";import"./ConditionCompare.CgHyGqGV.js";import"./FormInterface.vRCiFeo3.js";const K={__name:"Exclusive",props:{...s.props},emits:s.emits,setup(g,{emit:_}){const f=g,v=_,e=w(s.computed._value(f,v));function V(a){if(e.value.props.groups.length<2){c.warning("哥,给我留一个😥");return}e.value.props.groups.splice(a,1)}function b(){if(e.value.props.groups.length>=4){c.warning("不要搞这么多撒🤨");return}e.value.props.groups.push({logic:!0,conditions:[]})}return(a,r)=>{const m=t("el-radio"),k=t("el-radio-group"),x=t("el-form-item"),C=t("el-button"),y=t("el-form");return l(),u(y,null,{default:p(()=>[e.value.props.groups.length>1?(l(),u(x,{key:0,label:"条件组关系"},{default:p(()=>[n(k,{modelValue:e.value.props.logic,"onUpdate:modelValue":r[0]||(r[0]=i=>e.value.props.logic=i)},{default:p(()=>[n(m,{label:"全部满足",value:!0}),n(m,{label:"满足任意一个",value:!1})]),_:1},8,["modelValue"])]),_:1})):G("",!0),n(C,{style:{"margin-bottom":"20px"},link:"",type:"primary",icon:"Plus",onClick:b},{default:p(()=>r[1]||(r[1]=[B("添加条件组")])),_:1}),(l(!0),h(E,null,N(e.value.props.groups,(i,o)=>(l(),u(D,{modelValue:e.value.props.groups[o],"onUpdate:modelValue":d=>e.value.props.groups[o]=d,designData:a.designData,name:`条件组 ${o+1}`,key:o,onDelete:d=>V(o)},null,8,["modelValue","onUpdate:modelValue","designData","name","onDelete"]))),128))]),_:1})}}};export{K as default}; diff --git a/web/dist/assets/FormComponent.BFjxV9c8.js b/web/dist/assets/FormComponent.BFjxV9c8.js new file mode 100644 index 0000000000000000000000000000000000000000..f0712a993afd568256778dccb9ec228ee5865773 --- /dev/null +++ b/web/dist/assets/FormComponent.BFjxV9c8.js @@ -0,0 +1 @@ +import{F as m}from"./FormComponentMixin.C3yPnfoW.js";import{F as g}from"./FormComponents.BoFxZNqy.js";import{c as V,a as D}from"./GlobalFunc.9BrjVkDm.js";import{_ as x}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{c as s,h as l,a as v,o as c,J as _,b,k as i,w as C,u as d,r as B,f as N}from"./vue.DmuWcDrn.js";import"./index.XK2ik2qb.js";import"./ProcessUtil.B7gNiVp1.js";const U={key:0,class:"w-form-component"},$={__name:"FormComponent",props:{...m.props,type:String,modelValue:{default:void 0},parents:{default:()=>[]},index:Number},emits:[...m.emits],setup(t,{emit:y}){const a=t,f=y,p=s(m.computed._value(a,f)),r=s(m.computed._active(a,f)),F=s(()=>{var o;return((o=r.value)==null?void 0:o.id)===a.config.id&&a.mode==="free"});return(o,e)=>{const k=l("CopyDocument"),u=l("el-icon"),w=l("Delete");return c(),v("div",{style:{position:"relative",width:"100%"},class:N({"w-form-cp-active":F.value,"w-border-no":!o.config.props.isContainer})},[o.mode==="free"?(c(),v("div",U,[i(u,{color:"#ffffff",onClick:e[0]||(e[0]=n=>d(V)(t.parents,t.index))},{default:C(()=>[i(k)]),_:1}),i(u,{color:"#ffffff",onClick:e[1]||(e[1]=n=>d(D)(t.parents,t.index))},{default:C(()=>[i(w)]),_:1})])):_("",!0),(c(),b(B(d(g)[t.type]),{config:o.config,modelValue:p.value,"onUpdate:modelValue":e[2]||(e[2]=n=>p.value=n),mode:o.mode,active:r.value,"onUpdate:active":e[3]||(e[3]=n=>r.value=n)},null,40,["config","modelValue","mode","active"]))],2)}}},j=x($,[["__scopeId","data-v-03caae53"]]);export{j as default}; diff --git a/web/dist/assets/FormComponent.DNnIvXVq.css b/web/dist/assets/FormComponent.DNnIvXVq.css new file mode 100644 index 0000000000000000000000000000000000000000..edccb89250740ab9241bb3c67c18e1ae758702f1 --- /dev/null +++ b/web/dist/assets/FormComponent.DNnIvXVq.css @@ -0,0 +1 @@ +.w-border-no[data-v-03caae53]{border:none!important}.w-form-component[data-v-03caae53]{position:absolute;bottom:0;right:0;z-index:9;display:none;border-radius:5px 0 0;overflow:hidden}.w-form-component i[data-v-03caae53]{padding:5px;cursor:pointer;background:var(--el-color-primary)}.w-form-component i[data-v-03caae53]:hover{background:var(--el-color-primary-light-3)} diff --git a/web/dist/assets/FormComponentMixin.C3yPnfoW.js b/web/dist/assets/FormComponentMixin.C3yPnfoW.js new file mode 100644 index 0000000000000000000000000000000000000000..11af628465bd2f7c302374d9decb493cfa2c0a87 --- /dev/null +++ b/web/dist/assets/FormComponentMixin.C3yPnfoW.js @@ -0,0 +1 @@ +const a={props:{config:{type:Object,default:()=>({})},mode:{type:String,default:"normal"},active:{type:Object},modelValue:Object|Number|Array|String},computed:{_active:function(e,t){return{get(){return e.active},set(u){t("update:active",u)}}},_value:function(e,t){return{get(){return e.modelValue},set(u){t("update:modelValue",u)}}}},emits:["update:modelValue","update:active","copy","delete"]};export{a as F}; diff --git a/web/dist/assets/FormComponents.BoFxZNqy.js b/web/dist/assets/FormComponents.BoFxZNqy.js new file mode 100644 index 0000000000000000000000000000000000000000..aaa1428461e46a9a828c61637bc96a45c4ae1025 --- /dev/null +++ b/web/dist/assets/FormComponents.BoFxZNqy.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DateTimePicker.BmKb3hOT.js","assets/FormComponentMixin.C3yPnfoW.js","assets/vue.DmuWcDrn.js","assets/DateTimeRangePicker.BDeWvN-a.js","assets/DeptPicker.BMtlEMVg.js","assets/WOrgPicker.B_7Qd6r5.js","assets/WDialog.D9OIgJAb.js","assets/_plugin-vue_export-helper.DlAUqK2U.js","assets/WDialog.DTkfzpzg.css","assets/request.FMdsBF9A.js","assets/index.XK2ik2qb.js","assets/index.JncG-tMh.css","assets/GlobalFunc.9BrjVkDm.js","assets/ProcessUtil.B7gNiVp1.js","assets/WOrgPicker.CaxAS1JB.css","assets/WOrgTags.Bgj5L3ZH.js","assets/WOrgTags.C3Esetp_.css","assets/DeptPicker.Dztcgi1j.css","assets/FormComponent.BFjxV9c8.js","assets/FormComponent.DNnIvXVq.css","assets/MultiplePicker.DptKe0fb.js","assets/NumberInput.CABlh2e3.js","assets/Score.DUabvE8p.js","assets/SinglePicker.DvSZcB6W.js","assets/SpanLayout.D0ohsIM7.js","assets/vue-draggable-plus.DFq4KU1k.js","assets/SpanLayout.DQHViipG.css","assets/TableList.Cc91hF7e.js","assets/TableList.ToArSLcu.css","assets/TextInput.VohADZme.js","assets/TextareaInput.a4aUy-y1.js","assets/UserPicker.B0pD0EhW.js","assets/UserPicker.C5eFQ_EL.css","assets/CommonConfig.Cb__DBae.js","assets/DateTimePicker.yGOOCJii.js","assets/DateTimeRangePicker.Bsq0yfhX.js","assets/DeptPicker.CCRiKZ2s.js","assets/MultiplePicker.DhF5GoN-.js","assets/MultiplePicker.zM2qUqiD.css","assets/NumberInput.D8yRZJpZ.js","assets/Score.nTTEFCHc.js","assets/SinglePicker.D6U6j9Wo.js","assets/SinglePicker.DJx3KAyh.css","assets/SpanLayout.CKTqSyyT.js","assets/TabelList.DtkekVLW.js","assets/TextInput.DqRxUp4L.js","assets/TextareaInput.tZJpkb2p.js","assets/UserPicker.IE_X13SV.js"])))=>i.map(i=>d[i]); +import{_ as e}from"./index.XK2ik2qb.js";import{q as n}from"./vue.DmuWcDrn.js";const r=Object.assign({"./component/DateTimePicker.vue":()=>e(()=>import("./DateTimePicker.BmKb3hOT.js"),__vite__mapDeps([0,1,2])),"./component/DateTimeRangePicker.vue":()=>e(()=>import("./DateTimeRangePicker.BDeWvN-a.js"),__vite__mapDeps([3,1,2])),"./component/DeptPicker.vue":()=>e(()=>import("./DeptPicker.BMtlEMVg.js"),__vite__mapDeps([4,1,5,6,7,2,8,9,10,11,12,13,14,15,16,17])),"./component/FormComponent.vue":()=>e(()=>import("./FormComponent.BFjxV9c8.js"),__vite__mapDeps([18,1,12,13,7,2,10,11,19])),"./component/MultiplePicker.vue":()=>e(()=>import("./MultiplePicker.DptKe0fb.js"),__vite__mapDeps([20,1,2])),"./component/NumberInput.vue":()=>e(()=>import("./NumberInput.CABlh2e3.js"),__vite__mapDeps([21,1,2])),"./component/Score.vue":()=>e(()=>import("./Score.DUabvE8p.js"),__vite__mapDeps([22,1,2])),"./component/SinglePicker.vue":()=>e(()=>import("./SinglePicker.DvSZcB6W.js"),__vite__mapDeps([23,1,2])),"./component/SpanLayout.vue":()=>e(()=>import("./SpanLayout.D0ohsIM7.js"),__vite__mapDeps([24,2,1,25,18,12,13,7,10,11,19,26])),"./component/TableList.vue":()=>e(()=>import("./TableList.Cc91hF7e.js"),__vite__mapDeps([27,1,25,2,12,13,18,7,10,11,19,28])),"./component/TextInput.vue":()=>e(()=>import("./TextInput.VohADZme.js"),__vite__mapDeps([29,1,2])),"./component/TextareaInput.vue":()=>e(()=>import("./TextareaInput.a4aUy-y1.js"),__vite__mapDeps([30,1,2])),"./component/UserPicker.vue":()=>e(()=>import("./UserPicker.B0pD0EhW.js"),__vite__mapDeps([31,1,5,6,7,2,8,9,10,11,12,13,14,15,16,32]))}),i=Object.assign({"./config/CommonConfig.vue":()=>e(()=>import("./CommonConfig.Cb__DBae.js"),__vite__mapDeps([33,1,2])),"./config/DateTimePicker.vue":()=>e(()=>import("./DateTimePicker.yGOOCJii.js"),__vite__mapDeps([34,1,2])),"./config/DateTimeRangePicker.vue":()=>e(()=>import("./DateTimeRangePicker.Bsq0yfhX.js"),__vite__mapDeps([35,1,2])),"./config/DeptPicker.vue":()=>e(()=>import("./DeptPicker.CCRiKZ2s.js"),__vite__mapDeps([36,1,2])),"./config/MultiplePicker.vue":()=>e(()=>import("./MultiplePicker.DhF5GoN-.js"),__vite__mapDeps([37,1,25,2,7,38])),"./config/NumberInput.vue":()=>e(()=>import("./NumberInput.D8yRZJpZ.js"),__vite__mapDeps([39,1,2])),"./config/Score.vue":()=>e(()=>import("./Score.nTTEFCHc.js"),__vite__mapDeps([40,1,2])),"./config/SinglePicker.vue":()=>e(()=>import("./SinglePicker.D6U6j9Wo.js"),__vite__mapDeps([41,1,25,2,7,42])),"./config/SpanLayout.vue":()=>e(()=>import("./SpanLayout.CKTqSyyT.js"),__vite__mapDeps([43,1,2])),"./config/TabelList.vue":()=>e(()=>import("./TabelList.DtkekVLW.js"),__vite__mapDeps([44,1,2])),"./config/TextInput.vue":()=>e(()=>import("./TextInput.DqRxUp4L.js"),__vite__mapDeps([45,1,2])),"./config/TextareaInput.vue":()=>e(()=>import("./TextareaInput.tZJpkb2p.js"),__vite__mapDeps([46,1,2])),"./config/UserPicker.vue":()=>e(()=>import("./UserPicker.IE_X13SV.js"),__vite__mapDeps([47,1,2]))}),_={};Object.keys(r).forEach(o=>{const t=o.replace(/^.+\/([^/]+)\.vue$/,"$1");_[t]=n(r[o])});const p={};Object.keys(i).forEach(o=>{const t=o.replace(/^.+\/([^/]+)\.vue$/,"$1");p[t]=n(i[o])});const u=[{name:"布局组件",components:[{icon:"tabler:layout-columns",type:"SpanLayout",name:"分栏布局",props:{isContainer:!0,span:24,number:2,gutter:5,columns:[]}}]},{name:"基础组件",components:[{icon:"iconamoon:edit",type:"TextInput",name:"单行输入框",props:{required:!1}},{name:"多行输入框",type:"TextareaInput",icon:"solar:list-down-line-duotone",props:{required:!1,max:255}},{name:"数字输入框",type:"NumberInput",icon:"tabler:123",key:null,props:{required:!1}},{name:"评分",type:"Score",icon:"fluent:star-12-regular",props:{required:!1,color:"#f0a732",max:5,showScore:!0,enableHalf:!1,icon:"StarFilled"}},{name:"单选框",type:"SinglePicker",icon:"mdi:radiobox-marked",props:{required:!1,expanding:!1,options:["选项1","选项2"]}},{name:"多选框",type:"MultiplePicker",icon:"mingcute:multiselect-line",props:{required:!1,expanding:!1,options:["选项1","选项2"]}},{name:"日期时间点",type:"DateTimePicker",icon:"material-symbols:calendar-clock-outline",props:{required:!1,format:"YYYY-MM-DD HH:mm"}},{name:"日期时间区间",type:"DateTimeRangePicker",icon:"material-symbols:calendar-month-outline",props:{required:!1,placeholder:["开始时间","结束时间"],format:"YYYY-MM-DD HH:mm",showLength:!1}},{name:"人员选择",type:"UserPicker",icon:"gravity-ui:persons",props:{required:!1,multiple:!1}},{name:"部门选择",type:"DeptPicker",icon:"fluent:organization-24-regular",props:{required:!1,multiple:!1}}]},{name:"高级组件",components:[{name:"明细表",type:"TableList",icon:"mdi:table",props:{required:!1,showBorder:!0,showSummary:!1,summaryColumns:[],maxSize:0,columns:[]}}]}];export{_ as F,p as a,u as c}; diff --git a/web/dist/assets/FormDesigner.BRjECsv8.css b/web/dist/assets/FormDesigner.BRjECsv8.css new file mode 100644 index 0000000000000000000000000000000000000000..92807cb3f9aad00d768969c75609efcbb36d2ff7 --- /dev/null +++ b/web/dist/assets/FormDesigner.BRjECsv8.css @@ -0,0 +1 @@ +.w-form-designer[data-v-efade547]{font-size:var(--el-font-size-base);color:var(--el-text-color)}.w-form-d-lib[data-v-efade547]{border-right:1px solid var(--el-border-color)}[data-v-efade547] .w-form-d-conf{border-left:1px solid var(--el-border-color)}[data-v-efade547] .w-form-d-conf .el-tabs__header{background-color:#fff}[data-v-efade547] .w-form-d-conf .el-tabs__header .el-tabs__nav{height:35px}[data-v-efade547] .w-form-d-conf .el-tabs__header .el-tabs__item{font-size:small;height:35px}.w-cp-lib[data-v-efade547],.w-cp-conf[data-v-efade547]{font-size:small}.w-cp-lib>div[data-v-efade547]:first-child,.w-cp-conf>div[data-v-efade547]:first-child{height:35px;line-height:35px;text-align:center;background:#fff}.w-cp-lib>div[data-v-efade547]:last-child,.w-cp-conf>div[data-v-efade547]:last-child{padding:0 15px}.w-cp-group>div[data-v-efade547]:first-child{padding:15px 0}.w-cp-group .w-cp-items[data-v-efade547]{display:flex;flex-wrap:wrap;justify-content:space-between}.w-cp-item[data-v-efade547]{display:flex;align-items:center;padding:10px;border-radius:10px;background:#fff;width:110px;border:1px solid white;margin-bottom:5px;color:var(--el-text-color-primary)}.w-cp-item>span[data-v-efade547]{margin-left:5px}.w-cp-item[data-v-efade547]:hover{background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary);color:var(--el-color-primary);cursor:grab}.w-form-d-toolbar[data-v-efade547]{display:flex;height:35px;align-items:center;background:#fff;position:relative;padding:0 20px}.w-form-d-toolbar .w-f-d-t-active[data-v-efade547]{color:#656363}.w-form-d-toolbar>div[data-v-efade547]{color:#989898;font-size:medium}.w-form-d-toolbar>div[data-v-efade547]>*{padding:2px;margin:0 5px;cursor:pointer}.w-form-d-toolbar>div[data-v-efade547]>*:focus{outline:none}.w-form-d-toolbar>div[data-v-efade547]>*:hover{color:#656363}.w-form-d-toolbar>div[data-v-efade547]:nth-child(2){margin-left:20px}.w-form-d-toolbar>div[data-v-efade547]:nth-child(3){font-size:small;position:absolute;right:20px;display:flex}.w-form-d-toolbar>div:nth-child(3)>div[data-v-efade547]{display:flex;align-items:center}.w-form-d-toolbar>div:nth-child(3)>div span[data-v-efade547]{margin-left:5px}.w-form-d-toolbar>div:nth-child(3)>div[data-v-efade547]:first-child{color:var(--el-color-danger)}.w-form-d-toolbar>div:nth-child(3)>div[data-v-efade547]:last-child{color:var(--el-color-primary)}.w-form-d-ctx[data-v-efade547]{margin:10px;padding:5px;position:relative;background-color:#fff;border-radius:5px;min-height:calc(100vh - 125px)}.w-form-d-ctx .w-form-d-tip[data-v-efade547]{padding:20px;color:#8d8d8d;position:relative;display:flex;justify-content:center}.w-form-d-ctx .w-form-d-tip span[data-v-efade547]{position:absolute;top:-25vh}.w-form-d-ctx[data-v-efade547] .w-form-d-ctx-ep{min-height:80%}.w-f-cp-select[data-v-efade547]{border-radius:2px;border:1px dashed var(--el-color-primary)!important} diff --git a/web/dist/assets/FormDesigner.C_g4ii55.js b/web/dist/assets/FormDesigner.C_g4ii55.js new file mode 100644 index 0000000000000000000000000000000000000000..15e3e2053aa1f79236f7b31cc0a744f620333fea --- /dev/null +++ b/web/dist/assets/FormDesigner.C_g4ii55.js @@ -0,0 +1 @@ +import{l as M}from"./vue-draggable-plus.DFq4KU1k.js";import{c as oe,a as le}from"./FormComponents.BoFxZNqy.js";import{F as U}from"./FormComponentMixin.C3yPnfoW.js";import te from"./FormRender.BwAVd06k.js";import ne from"./WDialog.D9OIgJAb.js";import S from"./FormComponent.BFjxV9c8.js";import{g as ae,d as se}from"./GlobalFunc.9BrjVkDm.js";import{f as T}from"./FormInterface.vRCiFeo3.js";import{_ as ie}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{E as ue}from"./index.XK2ik2qb.js";import{g as _,c as q,x as de,C as re,h as i,b,o as s,w as t,k as e,e as a,a as p,G as y,H as D,u as V,K as E,f as k,J as O,r as me}from"./vue.DmuWcDrn.js";import"./ProcessUtil.B7gNiVp1.js";const pe={class:"w-cp-lib"},ce={class:"w-form-d-toolbar"},fe={key:0,class:"w-form-d-tip"},ve={style:{padding:"10px"}},_e={style:{padding:"10px"}},be={__name:"FormDesigner",props:{...U.props,modelValue:{type:Object,default:()=>({formConfig:{labelPosition:"right",labelWidth:100,size:"default"},components:[]})}},emits:[...U.emits],setup(H,{expose:L,emit:j}){const z=_(!0),x=_(!0),u=_({}),C=_(!1),B=_({});L({validate:Y});const A=H,G=j,n=q(U.computed._value(A,G)),I=q(()=>x.value&&n.value.components.length===0);de(()=>{T.value=n.value.components}),re(()=>n.value.components,()=>{T.value=n.value.components},{deep:!0});function K(d){const o=JSON.parse(JSON.stringify(d));return o.key=o.type+"_"+ae(8),o.id="wflow_"+o.key,o}function ge(d){}function R(d){console.log(d)}function h(d){u.value=d}function Q(){ue.confirm("您确定要清空表单设计区吗?","提醒",{confirmButtonText:"我再想想",cancelButtonText:"确认清空",type:"warning"}).catch(()=>{se(n.value.components),n.value.components.length=0})}function X(){C.value=!0}function Y(){return new Promise((d,o)=>{n.value.components.length>0?d():o(["表单组件为空"])})}return(d,o)=>{const m=i("iconify"),N=i("el-aside"),c=i("el-tooltip"),g=i("el-form-item"),P=i("el-form"),W=i("el-container"),$=i("el-tab-pane"),f=i("el-radio-button"),J=i("el-radio-group"),Z=i("el-input"),ee=i("el-tabs");return s(),b(W,{class:"w-form-designer"},{default:t(()=>[e(N,{width:"300px",class:"w-form-d-lib"},{default:t(()=>[a("div",pe,[o[10]||(o[10]=a("div",null,"组件库",-1)),a("div",null,[(s(!0),p(y,null,D(V(oe),(l,w)=>(s(),p("div",{key:w,class:"w-cp-group"},[a("div",null,E(l.name),1),e(V(M),{modelValue:l.components,"onUpdate:modelValue":r=>l.components=r,group:{name:"FormDesign",pull:"clone",put:!1},sort:!1,clone:K,class:"w-cp-items"},{default:t(()=>[(s(!0),p(y,null,D(l.components,(r,F)=>(s(),p("div",{key:r.type,class:"w-cp-item"},[e(m,{icon:r.icon},null,8,["icon"]),a("span",null,E(r.name),1)]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])]))),128))])])]),_:1}),e(W,{style:{display:"flex","flex-direction":"column"}},{default:t(()=>[a("div",ce,[a("div",null,[e(c,{effect:"dark",content:"撤销",placement:"top"},{default:t(()=>[e(m,{icon:"ooui:undo-ltr"})]),_:1}),e(c,{effect:"dark",content:"重做",placement:"top"},{default:t(()=>[e(m,{icon:"ooui:undo-rtl"})]),_:1})]),a("div",null,[e(c,{effect:"dark",content:"电脑端",placement:"top"},{default:t(()=>[e(m,{icon:"mi:computer",class:k({"w-f-d-t-active":z.value})},null,8,["class"])]),_:1}),e(c,{effect:"dark",content:"手机端",placement:"top"},{default:t(()=>[e(m,{icon:"mingcute:cellphone-line",class:k({"w-f-d-t-active":!z.value})},null,8,["class"])]),_:1})]),a("div",null,[e(c,{effect:"dark",content:"清空设计",placement:"top"},{default:t(()=>[a("div",{onClick:Q},[e(m,{icon:"fluent:delete-12-regular"}),o[11]||(o[11]=a("span",null,"清除",-1))])]),_:1}),e(c,{effect:"dark",content:"预览表单",placement:"top"},{default:t(()=>[a("div",{onClick:X},[e(m,{icon:"solar:eye-scan-bold"}),o[12]||(o[12]=a("span",null,"预览",-1))])]),_:1})])]),e(P,{"label-width":n.value.conf.labelWidth,"label-position":n.value.conf.labelPosition,size:n.value.conf.size,class:"w-form-d-ctx"},{default:t(()=>[e(V(M),{modelValue:n.value.components,"onUpdate:modelValue":o[2]||(o[2]=l=>n.value.components=l),animation:150,ghostClass:"w-f-cp-select",onChoose:R,onAdd:o[3]||(o[3]=l=>x.value=!1),onRemove:o[4]||(o[4]=l=>x.value=!0),group:"FormDesign",class:"w-form-d-ctx-ep"},{default:t(()=>[(s(!0),p(y,null,D(n.value.components,(l,w)=>{var r,F;return s(),p(y,{key:l.id},[l.props.isContainer?(s(),b(S,{key:1,type:l.type,class:k(["w-form-d-item",{"w-form-d-item":!0,"w-form-cp-active":((F=u.value)==null?void 0:F.id)===l.id}]),index:w,parents:n.value.components,config:l,active:u.value,"onUpdate:active":o[1]||(o[1]=v=>u.value=v),onClick:v=>h(l),mode:"free"},null,8,["type","index","parents","config","active","onClick","class"])):(s(),b(g,{key:0,label:l.name,required:l.props.required,onClick:v=>h(l),class:k({"w-form-d-item":!0,"w-form-cp-active":((r=u.value)==null?void 0:r.id)===l.id,"w-form-cp-nlb":l.props.hideLabel})},{default:t(()=>[e(S,{index:w,parents:n.value.components,mode:"free",type:l.type,config:l,active:u.value,"onUpdate:active":o[0]||(o[0]=v=>u.value=v)},null,8,["index","parents","type","config","active"])]),_:2},1032,["label","required","onClick","class"]))],64)}),128))]),_:1},8,["modelValue"]),I.value?(s(),p("div",fe,o[13]||(o[13]=[a("span",null,"💕 请从左侧组件库拖拽表单组件到此处",-1)]))):O("",!0)]),_:1},8,["label-width","label-position","size"])]),_:1}),e(N,{width:"300px",class:"w-form-d-conf"},{default:t(()=>[e(P,{"label-width":"80"},{default:t(()=>[e(ee,{stretch:""},{default:t(()=>[u.value?(s(),b($,{key:0,label:"组件设置"},{default:t(()=>[a("div",ve,[(s(),b(me(V(le)[u.value.type]),{config:u.value},null,8,["config"]))])]),_:1})):O("",!0),e($,{label:"表单设置"},{default:t(()=>[a("div",_e,[e(g,{label:"标签位置"},{default:t(()=>[e(J,{modelValue:n.value.conf.labelPosition,"onUpdate:modelValue":o[5]||(o[5]=l=>n.value.conf.labelPosition=l)},{default:t(()=>[e(f,{label:"上面",value:"top"}),e(f,{label:"靠左",value:"left"}),e(f,{label:"靠右",value:"right"})]),_:1},8,["modelValue"])]),_:1}),e(g,{label:"标签宽度"},{default:t(()=>[e(Z,{type:"number",modelValue:n.value.conf.labelWidth,"onUpdate:modelValue":o[6]||(o[6]=l=>n.value.conf.labelWidth=l)},null,8,["modelValue"])]),_:1}),e(g,{label:"组件尺寸"},{default:t(()=>[e(J,{modelValue:n.value.conf.size,"onUpdate:modelValue":o[7]||(o[7]=l=>n.value.conf.size=l)},{default:t(()=>[e(f,{label:"大",value:"large"}),e(f,{label:"中",value:"default"}),e(f,{label:"小",value:"small"})]),_:1},8,["modelValue"])]),_:1})])]),_:1})]),_:1})]),_:1})]),_:1}),e(ne,{modelValue:C.value,"onUpdate:modelValue":o[9]||(o[9]=l=>C.value=l),width:"800px",title:"表单预览",border:!1,"ok-text":"表单校验","cancel-text":"关闭"},{default:t(()=>[e(te,{config:n.value,modelValue:B.value,"onUpdate:modelValue":o[8]||(o[8]=l=>B.value=l)},null,8,["config","modelValue"])]),_:1},8,["modelValue"])]),_:1})}}},Ne=ie(be,[["__scopeId","data-v-efade547"]]);export{Ne as default}; diff --git a/web/dist/assets/FormInterface.vRCiFeo3.js b/web/dist/assets/FormInterface.vRCiFeo3.js new file mode 100644 index 0000000000000000000000000000000000000000..0bbe38455685c22b03da09a1be05894f33bdc576 --- /dev/null +++ b/web/dist/assets/FormInterface.vRCiFeo3.js @@ -0,0 +1 @@ +import{c as f,g as p}from"./vue.DmuWcDrn.js";const c=p([]);p();const a=new Map,y=f(()=>u(c.value)),n=(r,o,e,s)=>{a.set(r.id,r),Array.isArray(r)?r.forEach(l=>n(l,o,null,s)):r.props.isContainer?r.props.columns.forEach(l=>n(l,o,null,s)):r.type==="TableList"?(s(r,e),r.props.columns.forEach(l=>n(l,o,r.name,s))):s(r,e)},u=r=>{let o=[];return a.clear(),n(r,o,null,e=>o.push(e)),o},d=(r="R")=>{let o=[];a.clear();const e=(s,l)=>{o.push({id:s.id,key:s.key,name:`${l?l+".":""}${s.name}`,required:s.props.required,perm:s.perm?s.perm:r})};return n(c.value,o,null,e),o};export{y as _,c as f,d as g}; diff --git a/web/dist/assets/FormPermConf.CE-WaGhp.js b/web/dist/assets/FormPermConf.CE-WaGhp.js new file mode 100644 index 0000000000000000000000000000000000000000..dbaa7a97e0acd9121f178312a0882e9a81646b92 --- /dev/null +++ b/web/dist/assets/FormPermConf.CE-WaGhp.js @@ -0,0 +1 @@ +import{n as V}from"./NodeMixin.CdUK7SNa.js";import{g as _}from"./FormInterface.vRCiFeo3.js";import{c as B,g as v,I as P,C as R,h as w,b as k,o as b,w as o,k as r,J as U,a as F,e as N,K as H,m as s}from"./vue.DmuWcDrn.js";const S={key:0,style:{color:"var(--el-color-danger)"}},I={__name:"FormPermConf",props:{...V.props,showE:{default:!0},defaultPerm:{default:"R"}},emits:V.emits,setup(y,{emit:C}){const p=y,E=C,i=B(V.computed._value(p,E)),d=v("R"),g=v(1),n=v([]);P(()=>{i.value||(i.value=[]),d.value=p.defaultPerm,n.value=_(p.defaultPerm),(p.modelValue||[]).forEach(t=>{const e=n.value.findIndex(u=>u.key===t.key);e>-1&&t.perm&&(n.value[e].perm=t.perm)})});function f(t){n.value.forEach(e=>e.perm=t),g.value++}return R(n,()=>{i.value=n.value.map(t=>({id:t.id,key:t.key,perm:t.perm}))},{deep:!0}),(t,e)=>{const u=w("el-table-column"),m=w("el-radio"),x=w("el-table");return b(),k(x,{key:g.value,"header-cell-style":{background:"#f5f6f6"},data:n.value,border:"",style:{width:"100%"}},{empty:o(()=>e[6]||(e[6]=[s(" 未解析到表单字段清单😥 ")])),default:o(()=>[r(u,{prop:"title","show-overflow-tooltip":"",label:"表单字段"},{default:o(l=>{var a;return[(a=l.row.props)!=null&&a.required?(b(),F("span",S," * ")):U("",!0),N("span",null,H(l.row.name),1)]}),_:1}),r(u,{align:"center",prop:"readOnly",label:"只读",width:"80"},{header:o(l=>[r(m,{label:"R",modelValue:d.value,"onUpdate:modelValue":e[0]||(e[0]=a=>d.value=a),onChange:e[1]||(e[1]=a=>f("R"))},{default:o(()=>e[7]||(e[7]=[s("只读")])),_:1},8,["modelValue"])]),default:o(l=>[r(m,{modelValue:l.row.perm,"onUpdate:modelValue":a=>l.row.perm=a,value:"R",name:l.row.id},null,8,["modelValue","onUpdate:modelValue","name"])]),_:1}),y.showE?(b(),k(u,{key:0,align:"center",prop:"editable",label:"可编辑",width:"90"},{header:o(l=>[r(m,{label:"E",modelValue:d.value,"onUpdate:modelValue":e[2]||(e[2]=a=>d.value=a),onChange:e[3]||(e[3]=a=>f("E"))},{default:o(()=>e[8]||(e[8]=[s("可编辑")])),_:1},8,["modelValue"])]),default:o(l=>[r(m,{modelValue:l.row.perm,"onUpdate:modelValue":a=>l.row.perm=a,value:"E",name:l.row.id},null,8,["modelValue","onUpdate:modelValue","name"])]),_:1})):U("",!0),r(u,{align:"center",prop:"hide",label:"隐藏",width:"80"},{header:o(l=>[r(m,{label:"H",modelValue:d.value,"onUpdate:modelValue":e[4]||(e[4]=a=>d.value=a),onChange:e[5]||(e[5]=a=>f("H"))},{default:o(()=>e[9]||(e[9]=[s("隐藏")])),_:1},8,["modelValue"])]),default:o(l=>[r(m,{modelValue:l.row.perm,"onUpdate:modelValue":a=>l.row.perm=a,value:"H",name:l.row.id},null,8,["modelValue","onUpdate:modelValue","name"])]),_:1})]),_:1},8,["data"])}}};export{I as default}; diff --git a/web/dist/assets/FormProcessDesigner.NtQV6jPD.js b/web/dist/assets/FormProcessDesigner.NtQV6jPD.js new file mode 100644 index 0000000000000000000000000000000000000000..11b798f4f9c4f529253a4401cc29818723a74567 --- /dev/null +++ b/web/dist/assets/FormProcessDesigner.NtQV6jPD.js @@ -0,0 +1 @@ +import{g as i,c as g,z as re,h as r,a as C,o as f,k as l,w as n,e as h,n as ue,m,K as k,f as ie,p as y,N as w,G as I,H as T,b as _,J as R,B as ce}from"./vue.DmuWcDrn.js";import de from"./FormDesigner.C_g4ii55.js";import fe from"./ProcessDesigner.y0zNgYS2.js";import me from"./BaseSetting.AfBX5QdH.js";import ve from"./PlusSetting.d22L-CQ-.js";import pe from"./WDialog.D9OIgJAb.js";import{s as A}from"./request.FMdsBF9A.js";import{n as _e}from"./ProcessNodes.r7PbQ_Ri.js";import{_ as ge}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{E as ye,b as S}from"./index.XK2ik2qb.js";import"./vue-draggable-plus.DFq4KU1k.js";import"./FormComponents.BoFxZNqy.js";import"./FormComponentMixin.C3yPnfoW.js";import"./FormRender.BwAVd06k.js";import"./FormComponent.BFjxV9c8.js";import"./GlobalFunc.9BrjVkDm.js";import"./ProcessUtil.B7gNiVp1.js";import"./FormInterface.vRCiFeo3.js";import"./ProcessRender.C3vTPZCi.js";const we={class:"w-designer"},Ve={class:"w-valid-err-info"},be={__name:"FormProcessDesigner",props:{modelValue:Object},setup(U){const V=ce(),u=i("BASE"),v=i(!1),c=i(0),z=i(),O=i(),L=i(),M=i(),d=i([{_ref:"baseRef",name:"基础设置",status:""},{_ref:"processRef",name:"流程设计",status:""}]),t=i({}),N=g(()=>u.value==="PROCESS"),W=g(()=>t.value.finished?t.value.success?"success":"warning":"loading"),$=g(()=>t.value.finished&&!t.value.success?t.value.title+` (${t.value.errs.length}项错误)`:t.value.title),j=U,x=re({name:"未命名流程",icon:{name:"file-icons:omnigraffle",bgc:"#4C87F3",color:"#FFFFFF"},groupId:null,content_type:null,operation:null,formConf:{conf:{labelPosition:"right",labelWidth:100,size:"default"},components:[]},process:[_e.Start.create()],remark:null}),s=g(()=>(console.log(333,x),j.modelValue||x));function G(o){u.value=o}function F(o=!1){return A({url:"/api/dvadmin3_flow/flow_info/",method:"post",data:s.value}).then(e=>{S.success("保存成功"),o&&A({url:"/api/dvadmin3_flow/flow_info/"+s.value.id+"/publish/",method:"post",data:{}}).then(p=>{S.success("发布成功")})})}async function H(){v.value=!0,c.value=0,t.value={errs:[],finished:!1,success:!1,title:"检查中...",action:"去处理",desc:"正在检查设置项"},d.value.forEach(o=>o.status="");for(let o=0;osetTimeout(e,500)),console.log("this.refs",V.refs),await V.refs[d.value[c.value]._ref].validate(),d.value[c.value].status="success"}function J(){H().then(()=>{B(!0)}).catch(o=>{B(!1),d.value[c.value].status="error",console.log(o),Array.isArray(o)&&t.value.errs.push(...o)})}function B(o){t.value.finished=!0,t.value.success=o,t.value.desc="",t.value.action=o?"去发布":"去处理",t.value.title=o?"校验成功😃":"校验失败😥,发现",d.value[c.value].status=o?"success":"error"}function K(){t.value.success?(F(!0),v.value=!1):(u.value=d.value[c.value]._ref.toUpperCase(),v.value=!1)}const q=()=>{ye.confirm("确定关闭流程设计?",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{V.emit("onClose")}).catch(()=>{S.error("已取消")})};return(o,e)=>{const p=r("el-button"),Q=r("iconify"),P=r("el-text"),D=r("el-menu-item"),X=r("el-menu"),Y=r("el-header"),Z=r("el-main"),ee=r("el-container"),te=r("el-step"),le=r("el-steps"),oe=r("Loading"),E=r("el-icon"),ne=r("Warning"),ae=r("el-scrollbar"),se=r("el-result");return f(),C("div",we,[l(ee,null,{default:n(()=>[l(Y,{style:{padding:"0"}},{default:n(()=>[l(X,{"default-active":u.value,class:"w-designer-menu",mode:"horizontal",onSelect:G},{default:n(()=>[h("div",null,[l(p,{icon:"ArrowLeft",circle:"",onClick:q}),l(Q,{icon:s.value.icon.name,class:"w-process-icon",style:ue({background:s.value.icon.bgc,color:s.value.icon.color})},null,8,["icon","style"]),l(P,null,{default:n(()=>[m(k(s.value.name),1)]),_:1})]),l(D,{index:"BASE"},{default:n(()=>e[6]||(e[6]=[m("基础设置")])),_:1}),l(D,{index:"PROCESS"},{default:n(()=>e[7]||(e[7]=[m("流程设计")])),_:1}),h("div",null,[l(p,{icon:"FolderChecked",onClick:e[0]||(e[0]=a=>F()),round:""},{default:n(()=>e[8]||(e[8]=[m("保存")])),_:1}),l(p,{icon:"Promotion",type:"primary",onClick:J,round:""},{default:n(()=>e[9]||(e[9]=[m("发布")])),_:1})])]),_:1},8,["default-active"])]),_:1}),l(Z,{class:ie({"w-designer-container":!0,"w-no-padding":u.value==="FORM"})},{default:n(()=>[y(l(me,{ref_key:"baseRef",ref:z,modelValue:s.value,"onUpdate:modelValue":e[1]||(e[1]=a=>s.value=a)},null,8,["modelValue"]),[[w,u.value==="BASE"]]),y(l(de,{ref_key:"formRef",ref:O,modelValue:s.value.formConf,"onUpdate:modelValue":e[2]||(e[2]=a=>s.value.formConf=a)},null,8,["modelValue"]),[[w,u.value==="FORM"]]),y(l(fe,{ref_key:"processRef",ref:L,formItems:s.value.formConf.components,modelValue:s.value.process,"onUpdate:modelValue":e[3]||(e[3]=a=>s.value.process=a),designData:s.value,active:N.value},null,8,["formItems","modelValue","designData","active"]),[[w,u.value==="PROCESS"]]),y(l(ve,{ref_key:"plusRef",ref:M,modelValue:s.value,"onUpdate:modelValue":e[4]||(e[4]=a=>s.value=a)},null,8,["modelValue"]),[[w,u.value==="PLUS"]])]),_:1},8,["class"])]),_:1}),l(pe,{border:!1,modelValue:v.value,"onUpdate:modelValue":e[5]||(e[5]=a=>v.value=a),width:"550",title:"表单流程设计校验","show-footer":!1},{default:n(()=>[l(le,{"align-center":"",active:c.value,"finish-status":"success"},{default:n(()=>[(f(!0),C(I,null,T(d.value,(a,b)=>(f(),_(te,{title:a.name,key:b,icon:a.icon,status:a.status,description:a.description},null,8,["title","icon","status","description"]))),128))]),_:1},8,["active"]),l(se,{icon:W.value,title:$.value,subTitle:t.value.desc},{icon:n(()=>[t.value.finished?R("",!0):(f(),_(E,{key:0,size:"30",class:"is-loading"},{default:n(()=>[l(oe)]),_:1}))]),"sub-title":n(()=>[t.value.errs.length>0?(f(),_(ae,{key:0},{default:n(()=>[h("div",Ve,[(f(!0),C(I,null,T(t.value.errs,(a,b)=>(f(),_(P,{tag:"div",truncated:"",key:b+"_err"},{default:n(()=>[l(E,null,{default:n(()=>[l(ne)]),_:1}),m(" "+k(a),1)]),_:2},1024))),128))])]),_:1})):R("",!0)]),extra:n(()=>[t.value.finished?(f(),_(p,{key:0,type:"primary",onClick:K},{default:n(()=>[m(k(t.value.action),1)]),_:1})):R("",!0)]),_:1},8,["icon","title","subTitle"])]),_:1},8,["modelValue"])])}}},Ne=ge(be,[["__scopeId","data-v-22c18ed4"]]);export{Ne as default}; diff --git a/web/dist/assets/FormProcessDesigner.ln_QY0no.css b/web/dist/assets/FormProcessDesigner.ln_QY0no.css new file mode 100644 index 0000000000000000000000000000000000000000..c7c535ab1db5a5670d23951a14c11d033bbbb77c --- /dev/null +++ b/web/dist/assets/FormProcessDesigner.ln_QY0no.css @@ -0,0 +1 @@ +.w-node-err[data-v-22c18ed4]{border:1px solid #f56c6c;box-shadow:0 0 5px #f56c6c!important}.w-designer[data-v-22c18ed4]{background:#f3f3f3}.w-designer .w-designer-menu[data-v-22c18ed4]{display:flex;align-items:center;background:#fff;justify-content:center;position:relative}.w-designer .w-designer-menu>div[data-v-22c18ed4]:first-child{position:absolute;left:20px;display:flex;align-items:center}.w-designer .w-designer-menu>div:first-child .w-process-icon[data-v-22c18ed4]{margin:0 10px 0 20px}.w-designer .w-designer-menu>div[data-v-22c18ed4]:last-child{position:absolute;right:20px}.w-designer .w-designer-container[data-v-22c18ed4]{overflow:auto;height:calc(100vh - 60px)}.w-designer .w-no-padding[data-v-22c18ed4]{padding:0}.w-valid-err-info[data-v-22c18ed4]{max-height:200px}.w-valid-err-info>div[data-v-22c18ed4]{display:block;text-align:left;padding:2px 5px;border-radius:5px;margin:2px;background:#f3f3f3}.el-menu.el-menu--horizontal[data-v-22c18ed4]{border-bottom:none!important;width:100%!important}.el-menu.el-menu--horizontal .el-menu-item[data-v-22c18ed4],.el-menu.el-menu--horizontal .el-sub-menu__title[data-v-22c18ed4]{height:50px!important;color:var(--el-menu-text-color)}.el-menu.el-menu--horizontal .el-menu-item[data-v-22c18ed4]:not(.is-active):hover,.el-menu.el-menu--horizontal .el-sub-menu:not(.is-active):hover .el-sub-menu__title[data-v-22c18ed4]{color:var(--el-menu-text-color)} diff --git a/web/dist/assets/FormRender.BwAVd06k.js b/web/dist/assets/FormRender.BwAVd06k.js new file mode 100644 index 0000000000000000000000000000000000000000..7b5b13b4199a8d5a0524db83dcff33b471e86a91 --- /dev/null +++ b/web/dist/assets/FormRender.BwAVd06k.js @@ -0,0 +1 @@ +import{F as s}from"./FormComponents.BoFxZNqy.js";import{F as t}from"./FormComponentMixin.C3yPnfoW.js";import{c as C,h as i,b as a,o as l,w as u,a as d,G as p,H as w,f as F,r as f,u as c}from"./vue.DmuWcDrn.js";import"./index.XK2ik2qb.js";const U={__name:"FormRender",props:{...t.props,modelValue:{type:Object,default:()=>({})}},emits:[...t.emits],setup(b,{emit:y}){const g=b,k=y,n=C(t.computed._value(g,k));return(o,m)=>{const _=i("el-form-item"),v=i("el-form");return l(),a(v,{"label-width":o.config.conf.labelWidth,size:o.config.conf.size,"label-position":o.config.conf.labelPosition,class:"w-form-render"},{default:u(()=>[(l(!0),d(p,null,w(o.config.components,(e,V)=>(l(),d(p,{key:e.type+V},[e.props.isContainer?(l(),a(f(c(s)[e.type]),{key:1,mode:o.mode,modelValue:n.value,"onUpdate:modelValue":m[0]||(m[0]=r=>n.value=r),config:e},null,8,["mode","modelValue","config"])):(l(),a(_,{key:0,label:e.name,required:e.props.required,class:F({"w-form-cp-nlb":e.props.hideLabel}),prop:e.key},{default:u(()=>[(l(),a(f(c(s)[e.type]),{mode:o.mode,config:e,modelValue:n.value[e.key],"onUpdate:modelValue":r=>n.value[e.key]=r},null,8,["mode","config","modelValue","onUpdate:modelValue"]))]),_:2},1032,["label","required","class","prop"]))],64))),128))]),_:1},8,["label-width","size","label-position"])}}};export{U as default}; diff --git a/web/dist/assets/Gateway.BOgbIYCX.js b/web/dist/assets/Gateway.BOgbIYCX.js new file mode 100644 index 0000000000000000000000000000000000000000..2f50a50b44829cb3f436e48a336f5ccaab190a79 --- /dev/null +++ b/web/dist/assets/Gateway.BOgbIYCX.js @@ -0,0 +1 @@ +import T from"./Node.Do50r9uM.js";import{r as b}from"./ProcessUtil.B7gNiVp1.js";import{n as y}from"./NodeMixin.CdUK7SNa.js";import{N as v,n as c}from"./ProcessNodes.r7PbQ_Ri.js";import{d as N}from"./GlobalFunc.9BrjVkDm.js";import{_ as z}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{b as w}from"./index.XK2ik2qb.js";import{g as F,h as H,a as i,o as s,e as g,k as J,b as f,J as q,w as K,m as O,G as k,H as C,f as B,r as D,u as I}from"./vue.DmuWcDrn.js";import"./InsertBtn.A0117t9o.js";const Q={class:"w-p-gateway"},W={class:"w-p-branch"},X={__name:"Gateway",props:{...y.props},emits:y.emits,setup(L,{expose:M,emit:$}){const n=L,h=$;M({validate:A});const d=F();function V(e,o,r){c[r]?e.splice(o+1,0,c[r].create(r)):w.warning("请在ProcessNodes.js内配置该节点")}function P(e,o){e.splice(o,1)}function R(){const e=n.modelValue.branch.length-1,o=n.modelValue.props.type;c[o]?(n.modelValue.props.branch.splice(e,0,c[o].createSelf(e+1)),n.modelValue.branch.splice(e,0,[])):w.warning("请在ProcessNodes.js内配置该节点")}function S(e){const o=N(n.modelValue.props.branch[e]);o.name=o.name+"-copy";const r=N(n.modelValue.branch[e]);b(o),b(r),n.modelValue.props.branch.splice(e+1,0,o),n.modelValue.branch.splice(e+1,0,r)}function U(e){n.modelValue.branch.length<=2?h("delete",n.branch,n.index):(n.modelValue.props.branch.splice(e,1),n.modelValue.branch.splice(e,1))}function E(e){m(n.modelValue.props.branch,e,e-1),m(n.modelValue.branch,e,e-1)}function G(e){m(n.modelValue.props.branch,e,e+1),m(n.modelValue.branch,e,e+1)}function m(e,o,r){const t=e[o];e[o]=e[r],e[r]=t}function j(e,o){o===n.modelValue.branch.length-1&&n.modelValue.props.type!=="Parallel"||h("select",e)}function A(e){Array.isArray(d.value)?d.value.forEach(o=>{o.validate&&o.validate(e)}):d.value&&d.value.validate&&d.value.validate(e)}return(e,o)=>{const r=H("el-button");return s(),i("div",Q,[g("div",W,[e.readonly?q("",!0):(s(),f(r,{key:0,class:"w-p-gateway-add",round:"",plain:"",onClick:R},{default:K(()=>o[2]||(o[2]=[O("添加分支")])),_:1})),(s(!0),i(k,null,C(e.modelValue.branch,(t,a)=>(s(),i("div",{key:a+"_br",class:B({"w-p-branch-item":!0,"w-p-branch-item-l":a===0,"w-p-branch-item-r":a===e.modelValue.branch.length-1})},[g("div",null,[(s(),f(D(I(v)[e.modelValue.props.type]),{ref_for:!0,ref_key:"node",ref:d,readonly:e.readonly,modelValue:e.modelValue.props.branch[a],"onUpdate:modelValue":l=>e.modelValue.props.branch[a]=l,index:a,moveRn:a0,isDefault:a===e.modelValue.branch.length-1&&e.modelValue.props.type!=="Parallel",onInsertNode:l=>V(t,-1,l),onDelete:l=>U(a),onCopy:l=>S(a),onMoveL:l=>E(a),onMoveR:l=>G(a),onSelect:l=>j(l,a)},null,40,["readonly","modelValue","onUpdate:modelValue","index","moveRn","moveLn","isDefault","onInsertNode","onDelete","onCopy","onMoveL","onMoveR","onSelect"])),(s(!0),i(k,null,C(t,(l,p)=>(s(),f(D(I(v)[l.type]),{key:p+"_bi",ref_for:!0,ref_key:"node",ref:l,readonly:e.readonly,modelValue:e.modelValue.branch[a][p],"onUpdate:modelValue":u=>e.modelValue.branch[a][p]=u,branch:t,index:p,onInsertNode:V,onDelete:u=>P(t,p),onSelect:o[0]||(o[0]=u=>h("select",u))},null,40,["readonly","modelValue","onUpdate:modelValue","branch","index","onDelete"]))),128))])],2))),128))]),J(T,{readonly:e.readonly,class:B({"w-p-branch-end":e.branch.length===e.index+1}),"show-body":!1,onInsertNode:o[1]||(o[1]=t=>e.$emit("insertNode",e.branch,e.index,t))},null,8,["readonly","class"])])}}},re=z(X,[["__scopeId","data-v-0a17ec6d"]]);export{re as default}; diff --git a/web/dist/assets/Gateway.Bsn85Ufa.css b/web/dist/assets/Gateway.Bsn85Ufa.css new file mode 100644 index 0000000000000000000000000000000000000000..36e526cbb13b67031a06cc7ef83018f913368f40 --- /dev/null +++ b/web/dist/assets/Gateway.Bsn85Ufa.css @@ -0,0 +1 @@ +.w-node-err[data-v-0a17ec6d]{border:1px solid #f56c6c;box-shadow:0 0 5px #f56c6c!important}.w-p-gateway[data-v-0a17ec6d]{display:flex;flex-direction:column;align-items:center;position:relative}.w-p-gateway .w-p-gateway-add[data-v-0a17ec6d]{z-index:2;top:-16px;position:absolute}.w-p-branch[data-v-0a17ec6d]{display:flex;position:relative;justify-content:center;background:#f5f6f6}.w-p-branch[data-v-0a17ec6d]:before{content:"";width:calc(100% - 220px);background:#cacaca;position:absolute;height:2px}.w-p-branch[data-v-0a17ec6d]:after{content:"";width:calc(100% - 220px);background:#cacaca;position:absolute;height:2px;bottom:0}.w-p-branch .w-p-branch-item[data-v-0a17ec6d]{position:relative;padding:0 60px;display:flex;justify-content:center}.w-p-branch .w-p-branch-item>div[data-v-0a17ec6d]{z-index:1;margin-top:40px;display:flex;flex-direction:column;align-items:center}.w-p-branch .w-p-branch-item>div>.w-p-node[data-v-0a17ec6d]:last-child .w-p-node-add:after{display:none!important}.w-p-branch .w-p-branch-item[data-v-0a17ec6d]:before{content:"";position:absolute;background:#cacaca;height:100%;width:2px}.w-p-branch .w-p-branch-item-l[data-v-0a17ec6d]:after,.w-p-branch .w-p-branch-item-r[data-v-0a17ec6d]:after{content:"";position:absolute;height:2px;width:50%;top:0;background:#f5f6f6}.w-p-branch .w-p-branch-item-l>div[data-v-0a17ec6d]:before,.w-p-branch .w-p-branch-item-r>div[data-v-0a17ec6d]:before{content:"";position:absolute;height:2px;width:50%;bottom:0;background:#f5f6f6}.w-p-branch[data-v-0a17ec6d] .w-p-branch-end .w-p-node-add:after{border:none}.w-p-branch .w-p-branch-item-l[data-v-0a17ec6d]{margin-left:0}.w-p-branch .w-p-branch-item-l>div[data-v-0a17ec6d]:before{left:-1px}.w-p-branch .w-p-branch-item-l[data-v-0a17ec6d]:after{left:-1px}.w-p-branch .w-p-branch-item-r[data-v-0a17ec6d]{margin-right:0}.w-p-branch .w-p-branch-item-r>div[data-v-0a17ec6d]:before{right:-1px}.w-p-branch .w-p-branch-item-r[data-v-0a17ec6d]:after{right:-1px} diff --git a/web/dist/assets/GlobalFunc.9BrjVkDm.js b/web/dist/assets/GlobalFunc.9BrjVkDm.js new file mode 100644 index 0000000000000000000000000000000000000000..bddedd748b0045ce80514a8d21f37a5b836c9d34 --- /dev/null +++ b/web/dist/assets/GlobalFunc.9BrjVkDm.js @@ -0,0 +1 @@ +import{g as o}from"./ProcessUtil.B7gNiVp1.js";function c(t){let r="";const e="abcdefghijklmnopqrstuvwxyz0123456789";let a=e.length;for(let n=0;nn[e].name).map(e=>({type:e,...n[e]}));return(e,w)=>{const p=s("el-button"),m=s("el-icon"),_=s("el-popover");return o(),a(_,{width:"450",title:"请选择流程节点",placement:"right-start",trigger:"click"},{reference:r(()=>[i(p,{type:"primary",icon:"plus",circle:"",style:{"z-index":"1"}})]),default:r(()=>[u("div",x,[(o(!0),c(y,null,f(k(l),t=>(o(),c("div",{key:t.type,onClick:z=>e.$emit("insertNode",t.type)},[i(m,{size:"25",style:v({color:t.color})},{default:r(()=>[(o(),a(B(t.icon)))]),_:2},1032,["style"]),h(" "+g(t.name),1)],8,C))),128))])]),_:1})}}},T=d(N,[["__scopeId","data-v-2126ac57"]]);export{T as default}; diff --git a/web/dist/assets/InsertBtn.DmHckovs.css b/web/dist/assets/InsertBtn.DmHckovs.css new file mode 100644 index 0000000000000000000000000000000000000000..0fc7d742aec0255bec63bf02914769967e0bbfda --- /dev/null +++ b/web/dist/assets/InsertBtn.DmHckovs.css @@ -0,0 +1 @@ +.w-node-options[data-v-2126ac57]{display:flex;flex-wrap:wrap}.w-node-options i[data-v-2126ac57]{padding:3px;margin-right:5px;border-radius:10px;border:1px solid #DEDFDF}.w-node-options>div[data-v-2126ac57]{display:flex;align-items:center;cursor:pointer;padding:8px 10px;border-radius:15px;background:#f8f9f9;margin:5px;width:110px}.w-node-options>div[data-v-2126ac57]:hover{box-shadow:0 0 5px #e3e3e3} diff --git a/web/dist/assets/MultiplePicker.DhF5GoN-.js b/web/dist/assets/MultiplePicker.DhF5GoN-.js new file mode 100644 index 0000000000000000000000000000000000000000..2b02a305f47642d120998e51219200e43af8ea95 --- /dev/null +++ b/web/dist/assets/MultiplePicker.DhF5GoN-.js @@ -0,0 +1 @@ +import{F as V}from"./FormComponentMixin.C3yPnfoW.js";import{l as w}from"./vue-draggable-plus.DFq4KU1k.js";import{_ as y}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{h as t,a as g,o as r,k as e,w as p,m as C,u as v,G as c,H as B,b as F}from"./vue.DmuWcDrn.js";const L={__name:"MultiplePicker",props:{...V.props},emits:[...V.emits],setup(k,{emit:M}){const u=k;function b(){u.config.props.options.push(`选项${u.config.props.options.length+1}`)}return(o,l)=>{const i=t("el-input"),a=t("el-form-item"),m=t("el-button"),U=t("Rank"),_=t("el-icon"),s=t("el-switch");return r(),g(c,null,[e(a,{label:"字段KEY"},{default:p(()=>[e(i,{modelValue:o.config.key,"onUpdate:modelValue":l[0]||(l[0]=n=>o.config.key=n),placeholder:"请输入字段唯一key值"},null,8,["modelValue"])]),_:1}),e(a,{label:"字段名称"},{default:p(()=>[e(i,{modelValue:o.config.name,"onUpdate:modelValue":l[1]||(l[1]=n=>o.config.name=n),placeholder:"请设置字段名称"},null,8,["modelValue"])]),_:1}),e(a,{label:"提示文字"},{default:p(()=>[e(i,{modelValue:o.config.props.placeholder,"onUpdate:modelValue":l[2]||(l[2]=n=>o.config.props.placeholder=n),placeholder:"输入提示"},null,8,["modelValue"])]),_:1}),e(a,{label:"选项设置"},{default:p(()=>[e(m,{style:{margin:"7px"},link:"",type:"primary",icon:"plus",onClick:b},{default:p(()=>l[7]||(l[7]=[C("添加选项")])),_:1}),e(v(w),{class:"w-fd-options",handle:".w-move",animation:150,modelValue:o.config.props.options,"onUpdate:modelValue":l[3]||(l[3]=n=>o.config.props.options=n)},{default:p(()=>[(r(!0),g(c,null,B(o.config.props.options,(n,d)=>(r(),F(i,{modelValue:o.config.props.options[d],"onUpdate:modelValue":f=>o.config.props.options[d]=f},{prepend:p(()=>[e(_,{class:"w-move"},{default:p(()=>[e(U)]),_:1})]),append:p(()=>[e(m,{icon:"Delete",onClick:f=>o.config.props.options.splice(d,1)},null,8,["onClick"])]),_:2},1032,["modelValue","onUpdate:modelValue"]))),256))]),_:1},8,["modelValue"])]),_:1}),e(a,{label:"选项展开"},{default:p(()=>[e(s,{modelValue:o.config.props.expanding,"onUpdate:modelValue":l[4]||(l[4]=n=>o.config.props.expanding=n)},null,8,["modelValue"])]),_:1}),e(a,{label:"隐藏名称"},{default:p(()=>[e(s,{modelValue:o.config.props.hideLabel,"onUpdate:modelValue":l[5]||(l[5]=n=>o.config.props.hideLabel=n)},null,8,["modelValue"])]),_:1}),e(a,{label:"是否必填"},{default:p(()=>[e(s,{modelValue:o.config.props.required,"onUpdate:modelValue":l[6]||(l[6]=n=>o.config.props.required=n)},null,8,["modelValue"])]),_:1})],64)}}},R=y(L,[["__scopeId","data-v-f92584a4"]]);export{R as default}; diff --git a/web/dist/assets/MultiplePicker.DptKe0fb.js b/web/dist/assets/MultiplePicker.DptKe0fb.js new file mode 100644 index 0000000000000000000000000000000000000000..886db90a7da4c8997d54f4741486a057f96838dd --- /dev/null +++ b/web/dist/assets/MultiplePicker.DptKe0fb.js @@ -0,0 +1 @@ +import{F as p}from"./FormComponentMixin.C3yPnfoW.js";import{c as V,h as n,b as a,o,w as s,a as r,G as m,H as c}from"./vue.DmuWcDrn.js";const C={__name:"MultiplePicker",props:{...p.props},emits:[...p.emits],setup(i,{emit:_}){const d=i,v=_,l=V(p.computed._value(d,v));return(u,t)=>{const k=n("el-checkbox"),b=n("el-checkbox-group"),f=n("el-option"),g=n("el-select");return u.config.props.expanding?(o(),a(b,{key:0,modelValue:l.value,"onUpdate:modelValue":t[0]||(t[0]=e=>l.value=e)},{default:s(()=>[(o(!0),r(m,null,c(u.config.props.options,(e,x)=>(o(),a(k,{label:e,value:e},null,8,["label","value"]))),256))]),_:1},8,["modelValue"])):(o(),a(g,{key:1,multiple:"",modelValue:l.value,"onUpdate:modelValue":t[1]||(t[1]=e=>l.value=e)},{default:s(()=>[(o(!0),r(m,null,c(u.config.props.options,(e,x)=>(o(),a(f,{label:e,value:e},null,8,["label","value"]))),256))]),_:1},8,["modelValue"]))}}};export{C as default}; diff --git a/web/dist/assets/MultiplePicker.zM2qUqiD.css b/web/dist/assets/MultiplePicker.zM2qUqiD.css new file mode 100644 index 0000000000000000000000000000000000000000..125a5a6204ef45f57f9dcca52023ef43b670e3ba --- /dev/null +++ b/web/dist/assets/MultiplePicker.zM2qUqiD.css @@ -0,0 +1 @@ +[data-v-f92584a4] .w-fd-options .el-input-group__append,[data-v-f92584a4] .w-fd-options .el-input-group__prepend{padding:0 10px}.w-move[data-v-f92584a4]{cursor:move} diff --git a/web/dist/assets/Node.CQpGzEsh.css b/web/dist/assets/Node.CQpGzEsh.css new file mode 100644 index 0000000000000000000000000000000000000000..f9a550334b054303f31e16e76db53f40acb34b98 --- /dev/null +++ b/web/dist/assets/Node.CQpGzEsh.css @@ -0,0 +1 @@ +.w-node-err[data-v-b126efc2]{border:1px solid #f56c6c;box-shadow:0 0 5px #f56c6c!important}.w-p-node[data-v-b126efc2]{width:220px;margin-bottom:8px;position:relative}.w-p-node .w-node-err-tip[data-v-b126efc2]{position:absolute;right:-30px;color:var(--el-color-danger)}.w-p-node .w-p-node-body[data-v-b126efc2]{cursor:pointer;background:#fff;overflow:hidden;border-radius:5px;box-shadow:0 0 5px #d8d8d8}.w-p-node .w-p-node-body .w-p-node-header[data-v-b126efc2]{display:flex;align-items:center;justify-content:space-between;padding:0 10px;color:#fff;height:25px;font-size:13px}.w-p-node .w-p-node-body .w-p-node-header .w-row-text[data-v-b126efc2]:hover{text-decoration:underline}.w-p-node .w-p-node-body .w-p-node-header .w-node-del[data-v-b126efc2]{display:none}.w-p-node .w-p-node-body .w-p-node-header>div[data-v-b126efc2]{display:flex;align-items:center}.w-p-node .w-p-node-body .w-p-node-header>div>div[data-v-b126efc2]{margin-left:3px;width:170px}.w-p-node .w-p-node-body .w-p-node-header input[data-v-b126efc2]{width:170px;border:none;border-radius:5px}.w-p-node .w-p-node-body .w-p-node-header input[data-v-b126efc2]:focus{outline:none}.w-p-node .w-p-node-body .w-p-node-content[data-v-b126efc2]{padding:5px 5px 5px 15px;min-height:50px;display:flex;justify-content:space-between;align-items:center;font-size:15px;color:#656363}.w-p-node .w-p-node-body .w-p-node-content>div[data-v-b126efc2]{width:92%;word-wrap:break-word}.w-p-node .w-p-node-body[data-v-b126efc2]:hover{box-shadow:0 0 5px 0 var(---shadowColor)}.w-p-node .w-p-node-body:hover .w-node-del[data-v-b126efc2]{display:inline}.w-p-node .w-p-node-add[data-v-b126efc2]{position:relative;display:flex;justify-content:center;align-items:center;height:80px}.w-p-node .w-p-node-add[data-v-b126efc2]:before{position:absolute;content:"";width:2px;height:80px;background:#cacaca}.w-p-node .w-p-node-add[data-v-b126efc2]:after{content:"";position:absolute;top:80px;left:50%;transform:translate(-50%);width:0;border-style:solid;border-width:8px 6px 4px;border-color:#CACACA transparent transparent} diff --git a/web/dist/assets/Node.Do50r9uM.js b/web/dist/assets/Node.Do50r9uM.js new file mode 100644 index 0000000000000000000000000000000000000000..c5b8869e779de454ac061d71696bd321af33b824 --- /dev/null +++ b/web/dist/assets/Node.Do50r9uM.js @@ -0,0 +1 @@ +import{g as p,c as V,C as E,D as z,h as a,a as u,o as t,b as d,J as i,e as m,w as r,k as s,n as y,f as D,p as $,r as T,_ as A,K as k,m as F}from"./vue.DmuWcDrn.js";import M from"./InsertBtn.A0117t9o.js";import{n as C}from"./NodeMixin.CdUK7SNa.js";import{_ as R}from"./_plugin-vue_export-helper.DlAUqK2U.js";import"./ProcessNodes.r7PbQ_Ri.js";import"./index.XK2ik2qb.js";import"./ProcessUtil.B7gNiVp1.js";const W={class:"w-p-node"},j={class:"w-p-node-add"},J={__name:"Node",props:{headerColor:String,headerIcon:String,content:String,readonly:Boolean,modelValue:Object,showError:Boolean,errorInfo:String,showClose:{default:!0},showBody:{default:!0},placeholder:{default:"请设置"}},emits:C.emits,setup(e,{emit:h}){const g=e,n=p(!1),w=p(),f=h,v=V(C.computed._value(g,f));return E(n,()=>{n.value&&z(()=>{w.value.focus()})}),(x,o)=>{const B=a("WarningFilled"),c=a("el-icon"),N=a("el-tooltip"),I=a("Close"),b=a("el-text"),S=a("ArrowRight");return t(),u("div",W,[e.showError?(t(),d(N,{key:0,effect:"dark",content:e.errorInfo||"设置错误",placement:"top-start"},{default:r(()=>[s(c,{size:"20",class:"w-node-err-tip"},{default:r(()=>[s(B)]),_:1})]),_:1},8,["content"])):i("",!0),e.showBody?(t(),u("div",{key:1,class:D({"w-p-node-body":!0,"w-node-err":e.showError}),style:y({"---shadowColor":e.headerColor})},[m("div",{class:"w-p-node-header",style:y({"background-color":e.headerColor})},[m("div",null,[n.value?i("",!0):(t(),d(c,{key:0,size:"15"},{default:r(()=>[(t(),d(T(e.headerIcon)))]),_:1})),n.value?$((t(),u("input",{key:1,ref_key:"nodeNameInput",ref:w,autofocus:"",onBlur:o[0]||(o[0]=l=>n.value=!1),"onUpdate:modelValue":o[1]||(o[1]=l=>v.value.name=l)},null,544)),[[A,v.value.name]]):(t(),u("div",{key:2,class:"w-row-text",onClick:o[2]||(o[2]=()=>{e.readonly||(n.value=!0)})},k(v.value.name),1))]),e.showClose&&!e.readonly?(t(),d(c,{key:0,class:"w-node-del",onClick:o[3]||(o[3]=l=>f("delete"))},{default:r(()=>[s(I)]),_:1})):i("",!0)],4),m("div",{class:"w-p-node-content",onClick:o[4]||(o[4]=l=>x.$emit("select"))},[s(b,{"line-clamp":"4"},{default:r(()=>[F(k(e.content||e.placeholder),1)]),_:1}),s(c,{class:"w-p-node-click"},{default:r(()=>[s(S)]),_:1})])],6)):i("",!0),m("div",j,[e.readonly?i("",!0):(t(),d(M,{key:0,onInsertNode:o[5]||(o[5]=l=>f("insertNode",l))}))])])}}},L=R(J,[["__scopeId","data-v-b126efc2"]]);export{L as default}; diff --git a/web/dist/assets/NodeMixin.CdUK7SNa.js b/web/dist/assets/NodeMixin.CdUK7SNa.js new file mode 100644 index 0000000000000000000000000000000000000000..a893780fceb110f4e164c19de0ac8e20a81eab57 --- /dev/null +++ b/web/dist/assets/NodeMixin.CdUK7SNa.js @@ -0,0 +1 @@ +const a={props:{designData:Object,modelValue:Object,formItems:Object,readonly:Boolean,index:Number,branch:Array},computed:{_value:function(e,t){return{get(){return e.modelValue},set(o){t("update:modelValue",o)}}}},emits:["update:modelValue","delete","insertNode","select"]};export{a as n}; diff --git a/web/dist/assets/NumberInput.CABlh2e3.js b/web/dist/assets/NumberInput.CABlh2e3.js new file mode 100644 index 0000000000000000000000000000000000000000..8dff489391a82bc0b5673c33ee97068bc2c4d986 --- /dev/null +++ b/web/dist/assets/NumberInput.CABlh2e3.js @@ -0,0 +1 @@ +import{F as e}from"./FormComponentMixin.C3yPnfoW.js";import{h as n,b as r,o as m}from"./vue.DmuWcDrn.js";const c={__name:"NumberInput",props:{...e.props},setup(a){return(o,s)=>{const p=n("el-input");return m(),r(p,{type:"number",max:o.config.props.max,min:o.config.props.min,placeholder:o.config.props.placeholder},null,8,["max","min","placeholder"])}}};export{c as default}; diff --git a/web/dist/assets/NumberInput.D8yRZJpZ.js b/web/dist/assets/NumberInput.D8yRZJpZ.js new file mode 100644 index 0000000000000000000000000000000000000000..8632ae099aa0038a041fe7cb84d0079849488fa7 --- /dev/null +++ b/web/dist/assets/NumberInput.D8yRZJpZ.js @@ -0,0 +1 @@ +import{F as r}from"./FormComponentMixin.C3yPnfoW.js";import{h as d,a as t,o as i,k as n,w as p,m as s,G as f}from"./vue.DmuWcDrn.js";const U={__name:"NumberInput",props:{...r.props},emits:[...r.emits],setup(V,{emit:g}){return(l,e)=>{const m=d("el-input"),a=d("el-form-item"),u=d("el-switch");return i(),t(f,null,[n(a,{label:"字段KEY"},{default:p(()=>[n(m,{modelValue:l.config.key,"onUpdate:modelValue":e[0]||(e[0]=o=>l.config.key=o),placeholder:"请输入字段唯一key值"},null,8,["modelValue"])]),_:1}),n(a,{label:"字段名称"},{default:p(()=>[n(m,{modelValue:l.config.name,"onUpdate:modelValue":e[1]||(e[1]=o=>l.config.name=o),placeholder:"请设置字段名称"},null,8,["modelValue"])]),_:1}),n(a,{label:"提示文字"},{default:p(()=>[n(m,{modelValue:l.config.props.placeholder,"onUpdate:modelValue":e[2]||(e[2]=o=>l.config.props.placeholder=o),placeholder:"输入提示"},null,8,["modelValue"])]),_:1}),n(a,{label:"输入范围"},{default:p(()=>[n(m,{type:"number",style:{width:"47%"},modelValue:l.config.props.min,"onUpdate:modelValue":e[3]||(e[3]=o=>l.config.props.min=o),placeholder:"最小值"},null,8,["modelValue"]),e[7]||(e[7]=s(" ~ ")),n(m,{type:"number",style:{width:"47%"},modelValue:l.config.props.max,"onUpdate:modelValue":e[4]||(e[4]=o=>l.config.props.max=o),placeholder:"最大值"},null,8,["modelValue"])]),_:1}),n(a,{label:"隐藏名称"},{default:p(()=>[n(u,{modelValue:l.config.props.hideLabel,"onUpdate:modelValue":e[5]||(e[5]=o=>l.config.props.hideLabel=o)},null,8,["modelValue"])]),_:1}),n(a,{label:"是否必填"},{default:p(()=>[n(u,{modelValue:l.config.props.required,"onUpdate:modelValue":e[6]||(e[6]=o=>l.config.props.required=o)},null,8,["modelValue"])]),_:1})],64)}}};export{U as default}; diff --git a/web/dist/assets/Parallel.AwxdJs98.js b/web/dist/assets/Parallel.AwxdJs98.js new file mode 100644 index 0000000000000000000000000000000000000000..8f70a630b756065516a449cf3440c1bf4fa89176 --- /dev/null +++ b/web/dist/assets/Parallel.AwxdJs98.js @@ -0,0 +1 @@ +import s from"./BranchNode.B8syyw50.js";import{n as r}from"./NodeMixin.CdUK7SNa.js";import{c as p,b as u,o as f}from"./vue.DmuWcDrn.js";import"./InsertBtn.A0117t9o.js";import"./ProcessNodes.r7PbQ_Ri.js";import"./index.XK2ik2qb.js";import"./ProcessUtil.B7gNiVp1.js";import"./_plugin-vue_export-helper.DlAUqK2U.js";const k={__name:"Parallel",props:{...r.props,moveLn:Boolean,moveRn:Boolean},emits:[...r.emits,"moveL","moveR"],setup(t,{expose:v,emit:d}){const i=t,n=d,l=p(r.computed._value(i,n));v({validate:a});function a(m){return!0}return(m,e)=>(f(),u(s,{modelValue:l.value,"onUpdate:modelValue":e[0]||(e[0]=o=>l.value=o),readonly:m.readonly,desc:"并行执行",color:"#718dff","header-icon":"Operation",content:"并行流程分支",moveRn:t.moveRn,moveLn:t.moveLn,onInsertNode:e[1]||(e[1]=o=>n("insertNode",o)),onMoveL:e[2]||(e[2]=o=>n("moveL")),onMoveR:e[3]||(e[3]=o=>n("moveR")),onDelete:e[4]||(e[4]=o=>n("delete")),onSelect:e[5]||(e[5]=o=>n("select",m.modelValue))},null,8,["modelValue","readonly","moveRn","moveLn"]))}};export{k as default}; diff --git a/web/dist/assets/PlusSetting.Dpmt0s3R.css b/web/dist/assets/PlusSetting.Dpmt0s3R.css new file mode 100644 index 0000000000000000000000000000000000000000..cd2854a6de16ecbbfe450135413a31af36b3c428 --- /dev/null +++ b/web/dist/assets/PlusSetting.Dpmt0s3R.css @@ -0,0 +1 @@ +.w-designer-base[data-v-cb8a15ec]{margin:0 auto;border-radius:5px;background-color:#fff;width:800px;min-height:calc(100vh - 100px)} diff --git a/web/dist/assets/PlusSetting.d22L-CQ-.js b/web/dist/assets/PlusSetting.d22L-CQ-.js new file mode 100644 index 0000000000000000000000000000000000000000..f71c754a4a4415a80997ec9fa164c30a1e20c7e2 --- /dev/null +++ b/web/dist/assets/PlusSetting.d22L-CQ-.js @@ -0,0 +1 @@ +import{_ as c}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{h as o,b as l,o as m,w as s,k as p,m as i}from"./vue.DmuWcDrn.js";const u={__name:"PlusSetting",setup(d,{expose:n}){n({validate:a});function a(){return new Promise(e=>e())}return(e,t)=>{const r=o("el-text"),_=o("el-main");return m(),l(_,{class:"w-designer-base"},{default:s(()=>[p(r,null,{default:s(()=>t[0]||(t[0]=[i("暂无设置项")])),_:1})]),_:1})}}},w=c(u,[["__scopeId","data-v-cb8a15ec"]]);export{w as default}; diff --git a/web/dist/assets/ProcessDesigner.DHm197_z.css b/web/dist/assets/ProcessDesigner.DHm197_z.css new file mode 100644 index 0000000000000000000000000000000000000000..16f7569d3790b02b9e0d8d6c99fc9ebc73ee9e02 --- /dev/null +++ b/web/dist/assets/ProcessDesigner.DHm197_z.css @@ -0,0 +1 @@ +.w-process-designer[data-v-32c6ed0f]{display:inline-block;min-width:100%}.w-process-designer .w-p-d-operation[data-v-32c6ed0f]{position:fixed;top:18%;right:40px;z-index:99}.w-process-designer .w-p-d-operation .w-p-d-operation-zoom[data-v-32c6ed0f]{display:flex;justify-content:space-between;align-items:center}.w-process-designer .w-p-d-operation .w-p-d-operation-zoom span[data-v-32c6ed0f]{padding:0 5px;font-size:medium;color:var(--el-text-color-primary)} diff --git a/web/dist/assets/ProcessDesigner.y0zNgYS2.js b/web/dist/assets/ProcessDesigner.y0zNgYS2.js new file mode 100644 index 0000000000000000000000000000000000000000..c26ff5b9dda818310f0935f6ba01e0f49b17833d --- /dev/null +++ b/web/dist/assets/ProcessDesigner.y0zNgYS2.js @@ -0,0 +1 @@ +import{I as S,c as k,g as s,x as A,R as K,h as u,a as T,o as _,k as a,w as i,b as W,r as $,u as j,e as O,p as D,N as x,m as Y,K as Z}from"./vue.DmuWcDrn.js";import q from"./ProcessRender.C3vTPZCi.js";import{n as F,a as E}from"./ProcessNodes.r7PbQ_Ri.js";import{_ as G}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{b as C}from"./index.XK2ik2qb.js";import"./ProcessUtil.B7gNiVp1.js";const H={class:"w-process-designer"},J={__name:"ProcessDesigner",props:{designData:{type:Object,default:()=>({})},active:{default:!1},formItems:{type:Array,default:()=>[]},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],setup(m,{expose:B,emit:I}){const p=m;S(()=>{r.value.length===0&&(r.value=[F.Start.create()])});const r=k({get(){return p.modelValue},set(e){L("update:modelValue",e)}});B({validate:w});const L=I,l=s(100),o=s({}),d=s(!1),v=s(!1),y=s();let c=!1;const N=k(()=>o.value.type==="Exclusive"?600:500);function R(e){o.value=e,E[o.value.type]?v.value=!0:C.warning("本节点无配置项"),console.log("选中",e)}function U(e){l.value>30&&l.value<150||l.value<=30&&e>0||l.value>=150&&e<0?l.value+=e:C.warning("缩放已经到极限了😥")}function g(e){e.ctrlKey&&(c=!0,document.addEventListener("wheel",f,{passive:!1}))}function V(e){e.key==="Control"&&(c=!1,document.removeEventListener("wheel",f))}function f(e){if(c&&p.active){e.preventDefault();const t=Math.sign(e.deltaY);U(t*-5)}}A(()=>{document.addEventListener("keydown",g),document.addEventListener("keyup",V)}),K(()=>{document.removeEventListener("keydown",g),document.removeEventListener("keyup",V),document.removeEventListener("wheel",f)});function w(){return y.value.validate()}return(e,t)=>{const h=u("el-input"),b=u("edit"),z=u("el-icon"),M=u("el-link"),P=u("el-drawer");return _(),T("div",H,[a(q,{ref_key:"processRenderRef",ref:y,modelValue:r.value,"onUpdate:modelValue":t[0]||(t[0]=n=>r.value=n),readonly:!1,onSelect:R},null,8,["modelValue"]),a(P,{class:"w-drawer",size:N.value,title:o.value.name,modelValue:v.value,"onUpdate:modelValue":t[5]||(t[5]=n=>v.value=n),onClose:w},{header:i(()=>[O("div",null,[D(a(h,{autofocus:"",modelValue:o.value.name,"onUpdate:modelValue":t[1]||(t[1]=n=>o.value.name=n),style:{width:"300px"},onBlur:t[2]||(t[2]=n=>d.value=!1)},null,8,["modelValue"]),[[x,d.value]]),D(a(M,{onClick:t[3]||(t[3]=n=>d.value=!0),style:{"font-size":"medium"}},{default:i(()=>[a(z,{style:{"margin-right":"10px"}},{default:i(()=>[a(b)]),_:1}),Y(" "+Z(o.value.name),1)]),_:1},512),[[x,!d.value]])])]),default:i(()=>[(_(),W($(j(E)[o.value.type]),{modelValue:o.value,"onUpdate:modelValue":t[4]||(t[4]=n=>o.value=n),formItems:m.formItems,designData:m.designData},null,8,["modelValue","formItems","designData"]))]),_:1},8,["size","title","modelValue"])])}}},ae=G(J,[["__scopeId","data-v-32c6ed0f"]]);export{ae as default}; diff --git a/web/dist/assets/ProcessNodes.r7PbQ_Ri.js b/web/dist/assets/ProcessNodes.r7PbQ_Ri.js new file mode 100644 index 0000000000000000000000000000000000000000..8d5a8502d83bdbf6cbce6573cd0a8046c1bc530e --- /dev/null +++ b/web/dist/assets/ProcessNodes.r7PbQ_Ri.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Approval.BIQMdMFc.js","assets/Node.Do50r9uM.js","assets/vue.DmuWcDrn.js","assets/InsertBtn.A0117t9o.js","assets/_plugin-vue_export-helper.DlAUqK2U.js","assets/index.XK2ik2qb.js","assets/index.JncG-tMh.css","assets/ProcessUtil.B7gNiVp1.js","assets/InsertBtn.DmHckovs.css","assets/NodeMixin.CdUK7SNa.js","assets/Node.CQpGzEsh.css","assets/Cc.B7imrGbS.js","assets/Exclusive.Bnfklj94.js","assets/BranchNode.B8syyw50.js","assets/BranchNode.qDeeEatk.css","assets/ConditionCompare.CgHyGqGV.js","assets/Gateway.BOgbIYCX.js","assets/GlobalFunc.9BrjVkDm.js","assets/Gateway.Bsn85Ufa.css","assets/Parallel.AwxdJs98.js","assets/Start.BIqQDQeS.js","assets/Approval.Bswl0Ie2.js","assets/WOrgPicker.B_7Qd6r5.js","assets/WDialog.D9OIgJAb.js","assets/WDialog.DTkfzpzg.css","assets/request.FMdsBF9A.js","assets/WOrgPicker.CaxAS1JB.css","assets/FormInterface.vRCiFeo3.js","assets/WOrgTags.Bgj5L3ZH.js","assets/WOrgTags.C3Esetp_.css","assets/Approval.Bt898B8S.css","assets/Cc.CQpVL-5n.js","assets/FormPermConf.CE-WaGhp.js","assets/Cc.COAaZbd-.css","assets/Exclusive.CHGcNMOo.js","assets/ConditionGroupConfig.BNW7mGqr.js","assets/ConditionItemConfig.CdU5ajTx.js","assets/ConditionGroupConfig.UuDrWypp.css","assets/Start.D_HyHccb.js"])))=>i.map(i=>d[i]); +import{_ as t}from"./index.XK2ik2qb.js";import{g as o}from"./ProcessUtil.B7gNiVp1.js";import{q as i}from"./vue.DmuWcDrn.js";const a=Object.assign({"./node/Approval.vue":()=>t(()=>import("./Approval.BIQMdMFc.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./node/Cc.vue":()=>t(()=>import("./Cc.B7imrGbS.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./node/Exclusive.vue":()=>t(()=>import("./Exclusive.Bnfklj94.js"),__vite__mapDeps([12,13,2,3,4,5,6,7,8,9,14,15])),"./node/Gateway.vue":()=>t(()=>import("./Gateway.BOgbIYCX.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10,17,18])),"./node/Parallel.vue":()=>t(()=>import("./Parallel.AwxdJs98.js"),__vite__mapDeps([19,13,2,3,4,5,6,7,8,9,14])),"./node/Start.vue":()=>t(()=>import("./Start.BIqQDQeS.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10]))}),l=Object.assign({"./config/Approval.vue":()=>t(()=>import("./Approval.Bswl0Ie2.js"),__vite__mapDeps([21,9,22,23,4,2,24,25,5,6,17,7,26,27,28,29,30])),"./config/Cc.vue":()=>t(()=>import("./Cc.CQpVL-5n.js"),__vite__mapDeps([31,9,32,27,2,28,4,29,22,23,24,25,5,6,17,7,26,33])),"./config/Exclusive.vue":()=>t(()=>import("./Exclusive.CHGcNMOo.js"),__vite__mapDeps([34,9,35,36,28,4,2,29,22,23,24,25,5,6,17,7,26,15,27,37])),"./config/Start.vue":()=>t(()=>import("./Start.D_HyHccb.js"),__vite__mapDeps([38,9,32,27,2]))}),p={};Object.keys(a).forEach(e=>{const r=e.replace(/^.+\/([^/]+)\.vue$/,"$1");p[r]=i(a[e])});const s={};Object.keys(l).forEach(e=>{const r=e.replace(/^.+\/([^/]+)\.vue$/,"$1");s[r]=i(l[e])});const c=e=>({id:o()+"_fork",type:"Gateway",name:"网关节点",parentId:null,childId:null,props:{type:e,branch:[n[e].createSelf(1),n[e].createSelf()]},branch:[[],[]]}),n={Exclusive:{name:"分支条件",icon:"Share",color:"#1BB782",createSelf(e){return{id:o(),type:"Exclusive",name:e?"条件"+e:"默认条件",parentId:null,childId:null,props:{logic:!0,groups:[{logic:!0,conditions:[]}]}}},create(){return c("Exclusive")}}},d={create(){return{id:"node_root",type:"Start",name:"发起人",parentId:null,childId:null,props:{}}}},_={name:"审批人",icon:"Stamp",color:"#EF994F",create(){return{id:o(),type:"Approval",name:"审批人",parentId:null,childId:null,props:{mode:"USER",ruleType:"ASSIGN_USER",taskMode:{type:"OR",percentage:100},needSign:!1,assignUser:[],rootSelect:{multiple:!1},leader:{level:1,emptySkip:!1},leaderTop:{level:0,toEnd:!1,emptySkip:!1},assignDept:{dept:[],type:"LEADER"},assignRole:[],noUserHandler:{type:"TO_NEXT",assigned:[]},sameRoot:{type:"TO_SELF",assigned:[]},timeout:{enable:!1,time:1,timeUnit:"M",type:"TO_PASS"}}}}},u={name:"抄送人",icon:"Promotion",color:"#5994F3",create(){return{id:o(),type:"Cc",name:"抄送人",parentId:null,childId:null,props:{ruleType:"ASSIGN_USER",assignUser:[],rootSelect:{multiple:!1},assignDept:{dept:[],type:"LEADER"},assignRole:[]}}}},S={Approval:_,Cc:u,Start:d,...n};export{p as N,s as a,S as n}; diff --git a/web/dist/assets/ProcessRender.BvAnKCMh.css b/web/dist/assets/ProcessRender.BvAnKCMh.css new file mode 100644 index 0000000000000000000000000000000000000000..8163d60b97ca4a55fdeffccbd6975e0fcfb036de --- /dev/null +++ b/web/dist/assets/ProcessRender.BvAnKCMh.css @@ -0,0 +1 @@ +.w-node-err[data-v-8f655145]{border:1px solid #f56c6c;box-shadow:0 0 5px #f56c6c!important}.w-process[data-v-8f655145]{display:flex;flex-direction:column;align-items:center}.w-process .w-process-node[data-v-8f655145]{display:flex;justify-content:center;width:100%}.w-process .w-process-end[data-v-8f655145]{padding:10px;border-radius:5px;background:#cacaca} diff --git a/web/dist/assets/ProcessRender.C3vTPZCi.js b/web/dist/assets/ProcessRender.C3vTPZCi.js new file mode 100644 index 0000000000000000000000000000000000000000..dff3d4f2997e9951650b0269351051cb0479598c --- /dev/null +++ b/web/dist/assets/ProcessRender.C3vTPZCi.js @@ -0,0 +1 @@ +import{N,n as m}from"./ProcessNodes.r7PbQ_Ri.js";import{_ as x}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{b as f}from"./index.XK2ik2qb.js";import{g as v,h as w,a as p,o as u,e as r,k as y,K as C,G as P,H as B,b as F,r as R,u as $,n as z}from"./vue.DmuWcDrn.js";import"./ProcessUtil.B7gNiVp1.js";const D={style:{"background-color":"#F5F6F6",padding:"20px"}},E={style:{position:"absolute","z-index":"999"}},S={__name:"ProcessRender",props:{readonly:{default:!1},modelValue:{required:!0,type:Object,default:()=>[]}},emits:["select"],setup(t,{expose:V}){V({validate:k});const s=v();function b(o,e){o.splice(e,1)}function g(o,e,l){m[l]?o.splice(e+1,0,m[l].create(l)):f.warning("请在ProcessNodes.js内配置该节点")}function k(){return new Promise((o,e)=>{const l=[];Array.isArray(s.value)?s.value.forEach(n=>{n.validate&&n.validate(l)}):node.value&&s.value.validate&&s.value.validate(l),l.length===0?o():e(l)})}const a=v(100);function c(o){a.value>30&&a.value<150||a.value<=30&&o>0||a.value>=150&&o<0?a.value+=o:f.warning("缩放已经到极限了😥")}return(o,e)=>{const l=w("el-button");return u(),p("div",D,[r("div",E,[y(l,{icon:"Minus",onClick:e[0]||(e[0]=n=>c(-5)),circle:""}),r("span",null,C(a.value)+"%",1),y(l,{icon:"Plus",onClick:e[1]||(e[1]=n=>c(5)),circle:""})]),r("div",{class:"w-process",style:z(`transform: scale(${a.value/100})`)},[(u(!0),p(P,null,B(t.modelValue||[],(n,d)=>(u(),F(R($(N)[n.type]),{key:n.id+n.type,readonly:t.readonly,modelValue:t.modelValue[d],"onUpdate:modelValue":i=>t.modelValue[d]=i,branch:t.modelValue,index:d,onSelect:e[2]||(e[2]=i=>o.$emit("select",i)),ref_for:!0,ref_key:"nodeRef",ref:s,onDelete:b,onInsertNode:g},null,40,["readonly","modelValue","onUpdate:modelValue","branch","index"]))),128)),e[3]||(e[3]=r("div",{class:"w-process-end"},"流程结束",-1))],4)])}}},U=x(S,[["__scopeId","data-v-8f655145"]]);export{U as default}; diff --git a/web/dist/assets/ProcessUtil.B7gNiVp1.js b/web/dist/assets/ProcessUtil.B7gNiVp1.js new file mode 100644 index 0000000000000000000000000000000000000000..f45ba4103852274bc0533fe9e29316356da3851d --- /dev/null +++ b/web/dist/assets/ProcessUtil.B7gNiVp1.js @@ -0,0 +1 @@ +function t(){return`node_${new Date().getTime()}${Math.floor(Math.random()*1e4).toString().padStart(4,"0")}`}function e(a){Array.isArray(a)?a.forEach(r=>{r.type==="GATEWAY"?(r.id=t()+"_fork",e(r.props.branch),e(r.branch)):r.id=t()}):a.id=t()}export{t as g,e as r}; diff --git a/web/dist/assets/RoleDrawer.D3Ka2ZfE.js b/web/dist/assets/RoleDrawer.D3Ka2ZfE.js new file mode 100644 index 0000000000000000000000000000000000000000..8d7028593ede5664b094c71c493c11f6b8e08fc1 --- /dev/null +++ b/web/dist/assets/RoleDrawer.D3Ka2ZfE.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RoleMenuTree.DcvolyEz.js","assets/api.BMXTwPHc.js","assets/vue.DmuWcDrn.js","assets/index.XK2ik2qb.js","assets/index.JncG-tMh.css","assets/RoleMenuTreeStores.CLogX8g4.js","assets/RoleMenuBtnStores.BlTPwy92.js","assets/RoleMenuFieldStores.DWC1Blrk.js","assets/RoleMenuBtn.6QI1qA9D.js","assets/_plugin-vue_export-helper.DlAUqK2U.js","assets/RoleMenuBtn.DUIvX6wu.css","assets/RoleMenuField.DRUPXFSE.js","assets/RoleMenuField.uy3HOin6.css","assets/RoleUsers.BFQCapvX.js","assets/RoleUsersStores.D14armsj.js"])))=>i.map(i=>d[i]); +import{aj as ge,_ as T}from"./index.XK2ik2qb.js";import{a3 as Se,g as R,c as w,C as B,R as ee,x as ae,b as Pe,X as k,o as K,r as we,i as V,B as Me,a as ne,l as Ee,n as Re,u as h,A as be,D as j,d as ye,h as O,k as z,w as x,e as Y,q as U,m as F,K as Q,G as ke}from"./vue.DmuWcDrn.js";import{R as Ce}from"./api.BMXTwPHc.js";import{R as De}from"./RoleUsersStores.D14armsj.js";import{_ as Ne}from"./_plugin-vue_export-helper.DlAUqK2U.js";const Ve={__name:"splitpanes",props:{horizontal:{type:Boolean},pushOtherPanes:{type:Boolean,default:!0},dblClickSplitter:{type:Boolean,default:!0},rtl:{type:Boolean,default:!1},firstSplitter:{type:Boolean}},emits:["ready","resize","resized","pane-click","pane-maximize","pane-add","pane-remove","splitter-click"],setup(A,{emit:C}){const m=C,u=A,D=Se(),l=R([]),M=w(()=>l.value.reduce((e,n)=>(e[~~n.id]=n)&&e,{})),f=w(()=>l.value.length),v=R(null),g=R(!1),c=R({mouseDown:!1,dragging:!1,activeSplitter:null,cursorOffset:0}),d=R({splitter:null,timeoutId:null}),b=w(()=>({[`splitpanes splitpanes--${u.horizontal?"horizontal":"vertical"}`]:!0,"splitpanes--dragging":c.value.dragging})),y=()=>{document.addEventListener("mousemove",r,{passive:!1}),document.addEventListener("mouseup",S),"ontouchstart"in window&&(document.addEventListener("touchmove",r,{passive:!1}),document.addEventListener("touchend",S))},E=()=>{document.removeEventListener("mousemove",r,{passive:!1}),document.removeEventListener("mouseup",S),"ontouchstart"in window&&(document.removeEventListener("touchmove",r,{passive:!1}),document.removeEventListener("touchend",S))},N=(e,n)=>{const t=e.target.closest(".splitpanes__splitter");if(t){const{left:a,top:i}=t.getBoundingClientRect(),{clientX:s,clientY:o}="ontouchstart"in window&&e.touches?e.touches[0]:e;c.value.cursorOffset=u.horizontal?o-i:s-a}y(),c.value.mouseDown=!0,c.value.activeSplitter=n},r=e=>{c.value.mouseDown&&(e.preventDefault(),c.value.dragging=!0,requestAnimationFrame(()=>{se(ie(e)),m("resize",l.value.map(n=>({min:n.min,max:n.max,size:n.size})))}))},S=()=>{c.value.dragging&&m("resized",l.value.map(e=>({min:e.min,max:e.max,size:e.size}))),c.value.mouseDown=!1,setTimeout(()=>{c.value.dragging=!1,E()},100)},P=(e,n)=>{"ontouchstart"in window&&(e.preventDefault(),u.dblClickSplitter&&(d.value.splitter===n?(clearTimeout(d.value.timeoutId),d.value.timeoutId=null,$(e,n),d.value.splitter=null):(d.value.splitter=n,d.value.timeoutId=setTimeout(()=>d.value.splitter=null,500)))),c.value.dragging||m("splitter-click",l.value[n])},$=(e,n)=>{let t=0;l.value=l.value.map((a,i)=>(a.size=i===n?a.max:a.min,i!==n&&(t+=a.min),a)),l.value[n].size-=t,m("pane-maximize",l.value[n]),m("resized",l.value.map(a=>({min:a.min,max:a.max,size:a.size})))},te=(e,n)=>{m("pane-click",M.value[n])},ie=e=>{const n=v.value.getBoundingClientRect(),{clientX:t,clientY:a}="ontouchstart"in window&&e.touches?e.touches[0]:e;return{x:t-(u.horizontal?0:c.value.cursorOffset)-n.left,y:a-(u.horizontal?c.value.cursorOffset:0)-n.top}},le=e=>{e=e[u.horizontal?"y":"x"];const n=v.value[u.horizontal?"clientHeight":"clientWidth"];return u.rtl&&!u.horizontal&&(e=n-e),e*100/n},se=e=>{const n=c.value.activeSplitter;let t={prevPanesSize:W(n),nextPanesSize:L(n),prevReachedMinPanes:0,nextReachedMinPanes:0};const a=0+(u.pushOtherPanes?0:t.prevPanesSize),i=100-(u.pushOtherPanes?0:t.nextPanesSize),s=Math.max(Math.min(le(e),i),a);let o=[n,n+1],p=l.value[o[0]]||null,_=l.value[o[1]]||null;const H=p.max<100&&s>=p.max+t.prevPanesSize,xe=_.max<100&&s<=100-(_.max+L(n+1));if(H||xe){H?(p.size=p.max,_.size=Math.max(100-p.max-t.prevPanesSize-t.nextPanesSize,0)):(p.size=Math.max(100-_.max-t.prevPanesSize-L(n+1),0),_.size=_.max);return}if(u.pushOtherPanes){const J=oe(t,s);if(!J)return;({sums:t,panesToResize:o}=J),p=l.value[o[0]]||null,_=l.value[o[1]]||null}p!==null&&(p.size=Math.min(Math.max(s-t.prevPanesSize-t.prevReachedMinPanes,p.min),p.max)),_!==null&&(_.size=Math.min(Math.max(100-s-t.nextPanesSize-t.nextReachedMinPanes,_.min),_.max))},oe=(e,n)=>{const t=c.value.activeSplitter,a=[t,t+1];return n{s>a[0]&&s<=t&&(i.size=i.min,e.prevReachedMinPanes+=i.min)}),e.prevPanesSize=W(a[0]),a[0]===void 0)?(e.prevReachedMinPanes=0,l.value[0].size=l.value[0].min,l.value.forEach((i,s)=>{s>0&&s<=t&&(i.size=i.min,e.prevReachedMinPanes+=i.min)}),l.value[a[1]].size=100-e.prevReachedMinPanes-l.value[0].min-e.prevPanesSize-e.nextPanesSize,null):n>100-e.nextPanesSize-l.value[a[1]].min&&(a[1]=ue(t).index,e.nextReachedMinPanes=0,a[1]>t+1&&l.value.forEach((i,s)=>{s>t&&s{s=t+1&&(i.size=i.min,e.nextReachedMinPanes+=i.min)}),l.value[a[0]].size=100-e.prevPanesSize-L(a[0]-1),null):{sums:e,panesToResize:a}},W=e=>l.value.reduce((n,t,a)=>n+(al.value.reduce((n,t,a)=>n+(a>e+1?t.size:0),0),re=e=>[...l.value].reverse().find(n=>n.indexn.min)||{},ue=e=>l.value.find(n=>n.index>e+1&&n.size>n.min)||{},de=()=>{var e;Array.from(((e=v.value)==null?void 0:e.children)||[]).forEach(n=>{const t=n.classList.contains("splitpanes__pane"),a=n.classList.contains("splitpanes__splitter");!t&&!a&&(n.remove(),console.warn("Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed."))})},G=(e,n,t=!1)=>{const a=e-1,i=document.createElement("div");i.classList.add("splitpanes__splitter"),t||(i.onmousedown=s=>N(s,a),typeof window<"u"&&"ontouchstart"in window&&(i.ontouchstart=s=>N(s,a)),i.onclick=s=>P(s,a+1)),u.dblClickSplitter&&(i.ondblclick=s=>$(s,a+1)),n.parentNode.insertBefore(i,n)},me=e=>{e.onmousedown=void 0,e.onclick=void 0,e.ondblclick=void 0,e.remove()},I=()=>{var e;const n=Array.from(((e=v.value)==null?void 0:e.children)||[]);n.forEach(a=>{a.className.includes("splitpanes__splitter")&&me(a)});let t=0;n.forEach(a=>{a.className.includes("splitpanes__pane")&&(!t&&u.firstSplitter?G(t,a,!0):t&&G(t,a),t++)})},ve=({uid:e,...n})=>{const t=M.value[e];Object.entries(n).forEach(([a,i])=>t[a]=i)},ce=e=>{var n;let t=-1;Array.from(((n=v.value)==null?void 0:n.children)||[]).some(a=>(a.className.includes("splitpanes__pane")&&t++,a.isSameNode(e.el))),l.value.splice(t,0,{...e,index:t}),l.value.forEach((a,i)=>a.index=i),g.value&&j(()=>{I(),q({addedPane:l.value[t]}),m("pane-add",{index:t,panes:l.value.map(a=>({min:a.min,max:a.max,size:a.size}))})})},pe=e=>{const n=l.value.findIndex(a=>a.id===e),t=l.value.splice(n,1)[0];l.value.forEach((a,i)=>a.index=i),j(()=>{I(),q({removedPane:{...t}}),m("pane-remove",{removed:t,panes:l.value.map(a=>({min:a.min,max:a.max,size:a.size}))})})},q=(e={})=>{!e.addedPane&&!e.removedPane?he():l.value.some(n=>n.givenSize!==null||n.min||n.max<100)?fe(e):ze(),g.value&&m("resized",l.value.map(n=>({min:n.min,max:n.max,size:n.size})))},ze=()=>{const e=100/f.value;let n=0;const t=[],a=[];l.value.forEach(i=>{i.size=Math.max(Math.min(e,i.max),i.min),n-=i.size,i.size>=i.max&&t.push(i.id),i.size<=i.min&&a.push(i.id)}),n>.1&&X(n,t,a)},he=()=>{let e=100;const n=[],t=[];let a=0;l.value.forEach(s=>{e-=s.size,s.givenSize!==null&&a++,s.size>=s.max&&n.push(s.id),s.size<=s.min&&t.push(s.id)});let i=100;e>.1&&(l.value.forEach(s=>{s.givenSize===null&&(s.size=Math.max(Math.min(e/(f.value-a),s.max),s.min)),i-=s.size}),i>.1&&X(i,n,t))},fe=({addedPane:e,removedPane:n}={})=>{let t=100/f.value,a=0;const i=[],s=[];((e==null?void 0:e.givenSize)??null)!==null&&(t=(100-e.givenSize)/(f.value-1).value),l.value.forEach(o=>{a-=o.size,o.size>=o.max&&i.push(o.id),o.size<=o.min&&s.push(o.id)}),!(Math.abs(a)<.1)&&(l.value.forEach(o=>{(e==null?void 0:e.givenSize)!==null&&(e==null?void 0:e.id)===o.id||(o.size=Math.max(Math.min(t,o.max),o.min)),a-=o.size,o.size>=o.max&&i.push(o.id),o.size<=o.min&&s.push(o.id)}),a>.1&&X(a,i,s))},X=(e,n,t)=>{let a;e>0?a=e/(f.value-n.length):a=e/(f.value-t.length),l.value.forEach((i,s)=>{if(e>0&&!n.includes(i.id)){const o=Math.max(Math.min(i.size+a,i.max),i.min),p=o-i.size;e-=p,i.size=o}else if(!t.includes(i.id)){const o=Math.max(Math.min(i.size+a,i.max),i.min),p=o-i.size;e-=p,i.size=o}}),Math.abs(e)>.1&&j(()=>{g.value&&console.warn("Splitpanes: Could not resize panes correctly due to their constraints.")})};B(()=>u.firstSplitter,()=>I()),B(()=>u.dblClickSplitter,e=>{[...v.value.querySelectorAll(".splitpanes__splitter")].forEach((n,t)=>{n.ondblclick=e?a=>$(a,t):void 0})}),ee(()=>g.value=!1),ae(()=>{de(),I(),q(),m("ready"),g.value=!0});const _e=()=>{var e;return be("div",{ref:v,class:b.value},(e=D.default)==null?void 0:e.call(D))};return k("panes",l),k("indexedPanes",M),k("horizontal",w(()=>u.horizontal)),k("requestUpdate",ve),k("onPaneAdd",ce),k("onPaneRemove",pe),k("onPaneClick",te),(e,n)=>(K(),Pe(we(_e)))}},Z={__name:"pane",props:{size:{type:[Number,String]},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},setup(A){var C;const m=A,u=V("requestUpdate"),D=V("onPaneAdd"),l=V("horizontal"),M=V("onPaneRemove"),f=V("onPaneClick"),v=(C=Me())==null?void 0:C.uid,g=V("indexedPanes"),c=w(()=>g.value[v]),d=R(null),b=w(()=>{const r=isNaN(m.size)||m.size===void 0?0:parseFloat(m.size);return Math.max(Math.min(r,E.value),y.value)}),y=w(()=>{const r=parseFloat(m.minSize);return isNaN(r)?0:r}),E=w(()=>{const r=parseFloat(m.maxSize);return isNaN(r)?100:r}),N=w(()=>{var r;return`${l.value?"height":"width"}: ${(r=c.value)==null?void 0:r.size}%`});return ae(()=>{D({id:v,el:d.value,min:y.value,max:E.value,givenSize:m.size===void 0?null:b.value,size:b.value})}),B(()=>b.value,r=>u({uid:v,size:r})),B(()=>y.value,r=>u({uid:v,min:r})),B(()=>E.value,r=>u({uid:v,max:r})),ee(()=>M(v)),(r,S)=>(K(),ne("div",{ref_key:"paneEl",ref:d,class:"splitpanes__pane",onClick:S[0]||(S[0]=P=>h(f)(P,r._.uid)),style:Re(N.value)},[Ee(r.$slots,"default")],4))}},Oe={class:"pane-box"},Le={class:"pane-box"},Be=ye({__name:"RoleDrawer",setup(A){const C=U(()=>T(()=>import("./RoleMenuTree.DcvolyEz.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]))),m=U(()=>T(()=>import("./RoleMenuBtn.6QI1qA9D.js"),__vite__mapDeps([8,2,1,3,4,6,5,9,10]))),u=U(()=>T(()=>import("./RoleMenuField.DRUPXFSE.js"),__vite__mapDeps([11,1,2,3,4,7,9,12]))),D=U(()=>T(()=>import("./RoleUsers.BFQCapvX.js"),__vite__mapDeps([13,1,2,3,4,14]))),l=Ce(),M=De(),f=R("first"),v=R(!1),g=()=>{v.value=!0,M.get_all_users(),M.set_right_users(l.$state.users)};return(c,d)=>{const b=O("el-tag"),y=O("el-button"),E=O("el-tab-pane"),N=O("el-tabs"),r=O("el-drawer"),S=O("el-dialog");return K(),ne(ke,null,[z(r,{modelValue:h(l).drawerVisible,"onUpdate:modelValue":d[1]||(d[1]=P=>h(l).drawerVisible=P),title:"权限配置",direction:"rtl",size:"80%","close-on-click-modal":!1,"before-close":h(l).handleDrawerClose,"destroy-on-close":!0},{header:x(()=>[Y("div",null,[d[3]||(d[3]=F(" 当前授权角色: ")),z(b,{style:{"margin-right":"20px"}},{default:x(()=>[F(Q(h(l).roleName),1)]),_:1}),d[4]||(d[4]=F(" 授权人员: ")),z(y,{size:"small",icon:h(ge),onClick:g},{default:x(()=>[F(Q(h(l).users.length),1)]),_:1},8,["icon"])])]),default:x(()=>[z(h(Ve),{class:"default-theme",style:{height:"100%"}},{default:x(()=>[z(h(Z),{"min-size":"20",size:"22"},{default:x(()=>[Y("div",Oe,[z(h(C))])]),_:1}),z(h(Z),{"min-size":"20"},{default:x(()=>[Y("div",Le,[z(N,{modelValue:f.value,"onUpdate:modelValue":d[0]||(d[0]=P=>f.value=P),class:"demo-tabs"},{default:x(()=>[z(E,{label:"接口权限",name:"first"},{default:x(()=>[z(h(m))]),_:1}),z(E,{label:"列字段权限",name:"second"},{default:x(()=>[z(h(u))]),_:1})]),_:1},8,["modelValue"])])]),_:1})]),_:1})]),_:1},8,["modelValue","before-close"]),z(S,{modelValue:v.value,"onUpdate:modelValue":d[2]||(d[2]=P=>v.value=P),title:"授权用户",width:"700px","close-on-click-modal":!1},{default:x(()=>[z(h(D))]),_:1},8,["modelValue"])],64)}}}),$e=Ne(Be,[["__scopeId","data-v-35437ed6"]]);export{$e as default}; diff --git a/web/dist/assets/RoleDrawer.DWSu5Noa.css b/web/dist/assets/RoleDrawer.DWSu5Noa.css new file mode 100644 index 0000000000000000000000000000000000000000..8e22df908817fc028fdd8fe27eb930fb535e30d0 --- /dev/null +++ b/web/dist/assets/RoleDrawer.DWSu5Noa.css @@ -0,0 +1 @@ +@charset "UTF-8";.splitpanes{display:flex;width:100%;height:100%}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging *{-webkit-user-select:none;-moz-user-select:none;user-select:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical .splitpanes__pane{transition:width .2s ease-out}.splitpanes--horizontal .splitpanes__pane{transition:height .2s ease-out}.splitpanes--dragging .splitpanes__pane{transition:none}.splitpanes__splitter{touch-action:none}.splitpanes--vertical>.splitpanes__splitter{min-width:1px;cursor:col-resize}.splitpanes--horizontal>.splitpanes__splitter{min-height:1px;cursor:row-resize}.splitpanes.default-theme .splitpanes__pane{background-color:#f2f2f2}.splitpanes.default-theme .splitpanes__splitter{background-color:#fff;box-sizing:border-box;position:relative;flex-shrink:0}.splitpanes.default-theme .splitpanes__splitter:before,.splitpanes.default-theme .splitpanes__splitter:after{content:"";position:absolute;top:50%;left:50%;background-color:#00000026;transition:background-color .3s}.splitpanes.default-theme .splitpanes__splitter:hover:before,.splitpanes.default-theme .splitpanes__splitter:hover:after{background-color:#00000040}.splitpanes.default-theme .splitpanes__splitter:first-child{cursor:auto}.default-theme .splitpanes--dragging{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme.splitpanes--vertical>.splitpanes__splitter,.default-theme .splitpanes--vertical>.splitpanes__splitter{width:7px;border-left:1px solid #eee;margin-left:-1px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{transform:translateY(-50%);width:1px;height:30px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:before{margin-left:-2px}.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{margin-left:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter,.default-theme .splitpanes--horizontal>.splitpanes__splitter{height:7px;border-top:1px solid #eee;margin-top:-1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{transform:translate(-50%);width:30px;height:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px}.pane-box[data-v-35437ed6]{width:100vw;height:100vh;max-width:100%;max-height:100%;overflow:auto;padding:10px;background-color:#fff} diff --git a/web/dist/assets/RoleMenuBtn.6QI1qA9D.js b/web/dist/assets/RoleMenuBtn.6QI1qA9D.js new file mode 100644 index 0000000000000000000000000000000000000000..3b189cc612412998e6f09cf59a2cf8e26821c1eb --- /dev/null +++ b/web/dist/assets/RoleMenuBtn.6QI1qA9D.js @@ -0,0 +1 @@ +import{d as H,g as m,c as Y,x as j,h as s,a as _,o as d,J as q,k as o,u as U,e as u,p as C,w as r,G as v,H as V,b,N as x,m as R,K as z,Y as Q}from"./vue.DmuWcDrn.js";import{R as W,d as Z,e as ee,f as ae}from"./api.BMXTwPHc.js";import{R as le}from"./RoleMenuBtnStores.BlTPwy92.js";import{R as te}from"./RoleMenuTreeStores.CLogX8g4.js";import{L as g,X as N,b as T}from"./index.XK2ik2qb.js";import{_ as ne}from"./_plugin-vue_export-helper.DlAUqK2U.js";const oe={key:0,class:"pccm-item"},se={class:"menu-form-alert"},de={style:{display:"flex","align-items":"center","white-space":"nowrap","margin-bottom":"10px"}},ue={class:"btn-item"},re=["onClick"],ie={class:"pc-dialog"},ce=H({__name:"RoleMenuBtn",setup(pe){const w=W(),$=te(),f=le(),p=m(!1),t=m({id:0,menu_btn_pre_id:0,isCheck:!1,name:"",data_range:g.get("role_default_data_range"),dept:g.get("role_default_custom_dept")}),n=m({id:0,menu_btn_pre_id:0,isCheck:!1,name:"",data_range:0,dept:[]}),h=m([{label:"仅本人数据权限",value:0},{label:"本部门及以下数据权限",value:1},{label:"本部门数据权限",value:2},{label:"全部数据权限",value:3},{label:"自定数据权限",value:4}]),B={children:"children",label:"name",value:"id"},I=async l=>{t.value.data_range=l,g.set("role_default_data_range",l)},P=async l=>{t.value.dept=l,g.set("role_default_custom_dept",l)},A=async l=>{l<4&&(n.value.dept=[])},E=Y(()=>function(l,a){const c=N.find(h.value,i=>{if(i.value===l)return i.label});return l===t.value.data_range&&(l!==4||JSON.stringify(a)===JSON.stringify(t.value.dept))?"默认接口权限":c.label}),J=async l=>{n.value=t.value;const a={isCheck:l.isCheck,roleId:w.roleId,menuId:$.id,btnId:l.id,data_range:t.value.data_range,dept:t.value.dept},{data:c,msg:i}=await ae(a);f.updateState(c),T({message:i,type:"success"})},L=async()=>{const{data:l,msg:a}=await ee(n.value);n.value=l,p.value=!1,T({message:a,type:"success"})},M=()=>{p.value=!1},O=async l=>{n.value=l,p.value=!0},k=m([]);return j(async()=>{const l=await Z({role:w.roleId,menu_button:n.value.id}),a=N.toArrayTree(l.data,{parentKey:"parent",strict:!1});k.value=a}),(l,a)=>{const c=s("el-option"),i=s("el-select"),S=s("el-tree-select"),K=s("Setting"),X=s("el-icon"),F=s("el-checkbox"),D=s("el-button"),G=s("el-dialog");return d(),_(v,null,[U(f).$state.length>0?(d(),_("div",oe,[u("div",se,[u("div",de,[a[6]||(a[6]=u("span",null,"默认接口权限:",-1)),o(i,{modelValue:t.value.data_range,"onUpdate:modelValue":a[0]||(a[0]=e=>t.value.data_range=e),onChange:I,placeholder:"请选择",style:{"margin-left":"5px",width:"250px","min-width":"250px"}},{default:r(()=>[(d(!0),_(v,null,V(h.value,e=>(d(),b(c,{key:e.value,label:e.label,value:e.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),C(o(S,{"node-key":"id",modelValue:t.value.dept,"onUpdate:modelValue":a[1]||(a[1]=e=>t.value.dept=e),props:B,data:k.value,onChange:a[2]||(a[2]=e=>P(t.value.dept)),placeholder:"请选择自定义部门",multiple:"","check-strictly":"","render-after-expand":!1,"show-checkbox":"",class:"dialog-tree",style:{"margin-left":"15px",width:"AUTO","min-width":"250px","margin-top":"0"}},null,8,["modelValue","data"]),[[x,t.value.data_range===4]])]),a[7]||(a[7]=u("span",null,"配置操作功能接口权限,配置数据权限点击小齿轮",-1))]),(d(!0),_(v,null,V(U(f).$state,e=>(d(),b(F,{key:e.id,modelValue:e.isCheck,"onUpdate:modelValue":y=>e.isCheck=y,onChange:y=>J(e)},{default:r(()=>[u("div",ue,[R(z(e.data_range!==null?`${e.name}(${E.value(e.data_range,e.dept)})`:e.name)+" ",1),C(u("span",{onClick:Q(y=>O(e),["stop","prevent"])},[o(X,null,{default:r(()=>[o(K)]),_:1})],8,re),[[x,e.isCheck]])])]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"]))),128))])):q("",!0),o(G,{modelValue:p.value,"onUpdate:modelValue":a[5]||(a[5]=e=>p.value=e),title:"数据权限配置",width:"400px","close-on-click-modal":!1,"before-close":M},{footer:r(()=>[u("div",null,[o(D,{type:"primary",onClick:L},{default:r(()=>a[8]||(a[8]=[R(" 确定")])),_:1}),o(D,{onClick:M},{default:r(()=>a[9]||(a[9]=[R(" 取消")])),_:1})])]),default:r(()=>[u("div",ie,[o(i,{modelValue:n.value.data_range,"onUpdate:modelValue":a[3]||(a[3]=e=>n.value.data_range=e),onChange:A,placeholder:"请选择"},{default:r(()=>[(d(!0),_(v,null,V(h.value,e=>(d(),b(c,{key:e.value,label:e.label,value:e.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),C(o(S,{"node-key":"id",modelValue:n.value.dept,"onUpdate:modelValue":a[4]||(a[4]=e=>n.value.dept=e),props:B,data:k.value,multiple:"","check-strictly":"","render-after-expand":!1,"show-checkbox":"",class:"dialog-tree"},null,8,["modelValue","data"]),[[x,n.value.data_range===4]])])]),_:1},8,["modelValue"])],64)}}}),ke=ne(ce,[["__scopeId","data-v-e4db1c3e"]]);export{ke as default}; diff --git a/web/dist/assets/RoleMenuBtn.DUIvX6wu.css b/web/dist/assets/RoleMenuBtn.DUIvX6wu.css new file mode 100644 index 0000000000000000000000000000000000000000..2678ed67e1be43fe2dd9caee93f1e615479a4cee --- /dev/null +++ b/web/dist/assets/RoleMenuBtn.DUIvX6wu.css @@ -0,0 +1 @@ +@charset "UTF-8";.pccm-item[data-v-e4db1c3e]{margin-bottom:10px}.pccm-item .menu-form-alert[data-v-e4db1c3e]{color:#fff;line-height:24px;padding:8px 16px;margin-bottom:20px;border-radius:4px;background-color:var(--el-color-primary)}.el-checkbox[data-v-e4db1c3e]{width:20%}.btn-item[data-v-e4db1c3e]{display:flex;align-items:center;justify-content:center}.btn-item .el-icon[data-v-e4db1c3e]{margin-left:5px}.dialog-tree[data-v-e4db1c3e]{width:100%;margin-top:20px} diff --git a/web/dist/assets/RoleMenuBtnStores.BlTPwy92.js b/web/dist/assets/RoleMenuBtnStores.BlTPwy92.js new file mode 100644 index 0000000000000000000000000000000000000000..20c3a5745862be0ccf5111275f82bf12f57dda8d --- /dev/null +++ b/web/dist/assets/RoleMenuBtnStores.BlTPwy92.js @@ -0,0 +1 @@ +import{M as n}from"./vue.DmuWcDrn.js";const o=n("RoleMenuBtnStores",{state:()=>[],actions:{setState(t){this.$state=t,this.$state.length=t.length},updateState(t){const e=this.$state.findIndex(s=>s.id===t.id);e!==-1&&(this.$state[e]=t)}}});export{o as R}; diff --git a/web/dist/assets/RoleMenuField.DRUPXFSE.js b/web/dist/assets/RoleMenuField.DRUPXFSE.js new file mode 100644 index 0000000000000000000000000000000000000000..c522feecb18ed6c7bc08cbb8ada0562c7063bd6b --- /dev/null +++ b/web/dist/assets/RoleMenuField.DRUPXFSE.js @@ -0,0 +1 @@ +import{R as C,h as F}from"./api.BMXTwPHc.js";import{R as M,a as $}from"./RoleMenuFieldStores.DWC1Blrk.js";import{b as y}from"./index.XK2ik2qb.js";import{d as S,h as f,a as l,J as N,u as c,o as a,e as t,k as m,m as k,w as v,G as p,H as _,K as V}from"./vue.DmuWcDrn.js";import{_ as U}from"./_plugin-vue_export-helper.DlAUqK2U.js";const B={key:0,class:"pccm-item"},D={class:"menu-form-alert"},H={class:"columns-list"},E={class:"columns-head"},I={class:"columns-content"},z={class:"width-txt"},G=S({__name:"RoleMenuField",setup(J){const d=M(),h=$(),R=C(),b=(r,s,u)=>{for(const n of d.$state)n[s]=n[u]?n[s]:r},g=async()=>{const r=await F(R.$state.roleId,d.$state);y({message:r.msg,type:"success"})};return(r,s)=>{const u=f("el-button"),n=f("el-checkbox");return c(d).$state.length>0?(a(),l("div",B,[t("div",D,[m(u,{size:"small",onClick:g},{default:v(()=>s[0]||(s[0]=[k("保存 ")])),_:1}),s[1]||(s[1]=k(" 配置数据列字段权限 "))]),t("ul",H,[t("li",E,[s[2]||(s[2]=t("div",{class:"width-txt"},[t("span",null,"字段")],-1)),(a(!0),l(p,null,_(c(h).$state,(e,i)=>(a(),l("div",{key:i,class:"width-check"},[m(n,{modelValue:e.checked,"onUpdate:modelValue":o=>e.checked=o,onChange:o=>b(o,e.value,e.disabled)},{default:v(()=>[t("span",null,V(e.label),1)]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])]))),128))]),t("div",I,[(a(!0),l(p,null,_(c(d).$state,(e,i)=>(a(),l("li",{key:i,class:"columns-item"},[t("div",z,V(e.title),1),(a(!0),l(p,null,_(c(h).$state,(o,w)=>(a(),l("div",{key:w,class:"width-check"},[m(n,{modelValue:e[o.value],"onUpdate:modelValue":x=>e[o.value]=x,class:"ci-checkout",disabled:e[o.disabled]},null,8,["modelValue","onUpdate:modelValue","disabled"])]))),128))]))),128))])])])):N("",!0)}}}),O=U(G,[["__scopeId","data-v-088391a4"]]);export{O as default}; diff --git a/web/dist/assets/RoleMenuField.uy3HOin6.css b/web/dist/assets/RoleMenuField.uy3HOin6.css new file mode 100644 index 0000000000000000000000000000000000000000..5573af0c3560abef3f5eaa1f5b1cb2e4f33daf8a --- /dev/null +++ b/web/dist/assets/RoleMenuField.uy3HOin6.css @@ -0,0 +1 @@ +@charset "UTF-8";.pccm-item[data-v-088391a4]{margin-bottom:10px}.pccm-item .menu-form-alert[data-v-088391a4]{color:#fff;line-height:24px;padding:8px 16px;margin-bottom:20px;border-radius:4px;background-color:var(--el-color-primary)}.pccm-item .menu-form-btn[data-v-088391a4]{margin-left:10px;height:40px;padding:8px 16px;margin-bottom:20px}.pccm-item .btn-item[data-v-088391a4]{display:flex;align-items:center}.pccm-item .btn-item span[data-v-088391a4]{margin-left:5px}.pccm-item .columns-list .width-txt[data-v-088391a4]{width:200px}.pccm-item .columns-list .width-check[data-v-088391a4]{width:100px}.pccm-item .columns-list .width-icon[data-v-088391a4]{cursor:pointer}.pccm-item .columns-list .columns-head[data-v-088391a4]{display:flex;align-items:center;padding:6px 0;border-bottom:1px solid #ebeef5;box-sizing:border-box}.pccm-item .columns-list .columns-head span[data-v-088391a4]{font-weight:900}.pccm-item .columns-list .columns-content[data-v-088391a4]{max-height:calc(100vh - 240px);overflow-y:auto}.pccm-item .columns-list .columns-content .columns-item[data-v-088391a4]{display:flex;align-items:center;padding:6px 0;box-sizing:border-box}.pccm-item .columns-list .columns-content .columns-item .ci-checkout[data-v-088391a4]{height:auto!important} diff --git a/web/dist/assets/RoleMenuFieldStores.DWC1Blrk.js b/web/dist/assets/RoleMenuFieldStores.DWC1Blrk.js new file mode 100644 index 0000000000000000000000000000000000000000..f25d4c06ce9c6714300ff173a4b2a2e832a5fb05 --- /dev/null +++ b/web/dist/assets/RoleMenuFieldStores.DWC1Blrk.js @@ -0,0 +1 @@ +import{M as a}from"./vue.DmuWcDrn.js";const l=a("RoleMenuFieldStores",{state:()=>[],actions:{setState(e){this.$state=e,this.$state.length=e.length}}}),t=a("RoleMenuFieldHeaderStores",{state:()=>[{value:"is_create",label:"新增可见",disabled:"disabled_create",checked:!1},{value:"is_update",label:"编辑可见",disabled:"disabled_update",checked:!1},{value:"is_query",label:"列表可见",disabled:"disabled_query",checked:!1}]});export{l as R,t as a}; diff --git a/web/dist/assets/RoleMenuTree.DcvolyEz.js b/web/dist/assets/RoleMenuTree.DcvolyEz.js new file mode 100644 index 0000000000000000000000000000000000000000..69da1f65400d8dc1772147791a8db21d20ebe659 --- /dev/null +++ b/web/dist/assets/RoleMenuTree.DcvolyEz.js @@ -0,0 +1 @@ +import{R as f,a as p,s as R,b as M}from"./api.BMXTwPHc.js";import{R as k}from"./RoleMenuTreeStores.CLogX8g4.js";import{R as _}from"./RoleMenuBtnStores.BlTPwy92.js";import{R as g,a as C}from"./RoleMenuFieldStores.DWC1Blrk.js";import{X as y,b as S}from"./index.XK2ik2qb.js";import{d as I,g as c,x as v,h as b,b as T,o as w}from"./vue.DmuWcDrn.js";const A=I({__name:"RoleMenuTree",setup(x){const o=f(),d=k(),s=_(),l=g(),u=C(),a=c([]),r=c([]),i={children:"children",label:"name",value:"id"},m=(e,t)=>{R({roleId:o.roleId,menuId:e.id,isCheck:t}).then(n=>{S({message:n.msg,type:"success"})})},h=async e=>{if(e.is_catalog)s.setState([]),l.setState([]);else{d.setRoleMenuTree(e);const{data:t}=await M({roleId:o.roleId,menuId:e.id});s.setState(t.menu_btn),l.setState(t.menu_field)}u.$reset()};return v(async()=>{a.value=await p({roleId:o.roleId}),r.value=y.toTreeArray(a.value).filter(e=>e.isCheck).map(e=>e.id)}),(e,t)=>{const n=b("el-tree");return w(),T(n,{ref:"treeRef",data:a.value,props:i,"default-checked-keys":r.value,onCheckChange:m,onNodeClick:h,"node-key":"id","check-strictly":"","highlight-current":"","show-checkbox":"","default-expand-all":""},null,8,["data","default-checked-keys"])}}});export{A as default}; diff --git a/web/dist/assets/RoleMenuTreeStores.CLogX8g4.js b/web/dist/assets/RoleMenuTreeStores.CLogX8g4.js new file mode 100644 index 0000000000000000000000000000000000000000..345b1e22300fa3fc98166388460f6fbaf12dd4f1 --- /dev/null +++ b/web/dist/assets/RoleMenuTreeStores.CLogX8g4.js @@ -0,0 +1 @@ +import{M as t}from"./vue.DmuWcDrn.js";const o=t("RoleMenuTreeStores",{state:()=>({id:0,parent:0,name:"",isCheck:!1,is_catalog:!1}),actions:{setRoleMenuTree(e){this.$state=e}}});export{o as R}; diff --git a/web/dist/assets/RoleUserStores.RiNc6kdN.js b/web/dist/assets/RoleUserStores.RiNc6kdN.js new file mode 100644 index 0000000000000000000000000000000000000000..c73fca8ffc19eab4a7c51b137b8ffd55503ad527 --- /dev/null +++ b/web/dist/assets/RoleUserStores.RiNc6kdN.js @@ -0,0 +1 @@ +import{M as r}from"./vue.DmuWcDrn.js";const i=r("RoleUserStores",{state:()=>({drawerVisible:!1,role_id:void 0,role_name:void 0}),actions:{handleDrawerOpen(e){this.drawerVisible=!0,this.role_name=e.name,this.role_id=e.id},handleDrawerClose(){this.drawerVisible=!1}}});export{i as R}; diff --git a/web/dist/assets/RoleUsers.BFQCapvX.js b/web/dist/assets/RoleUsers.BFQCapvX.js new file mode 100644 index 0000000000000000000000000000000000000000..ecd256508e9c9600d99ce88b826614ab86b87b8b --- /dev/null +++ b/web/dist/assets/RoleUsers.BFQCapvX.js @@ -0,0 +1 @@ +import{R as m,c as p}from"./api.BMXTwPHc.js";import{R as u}from"./RoleUsersStores.D14armsj.js";import{b as d}from"./index.XK2ik2qb.js";import{d as _,h as c,b as f,o as i,u as o}from"./vue.DmuWcDrn.js";const C=_({__name:"RoleUsers",setup(R){const r=m(),t=u(),l=(n,e,a)=>{p(r.$state.roleId,{direction:e,movedKeys:a}).then(s=>{r.set_state(s.data),d({message:s.msg,type:"success"})})};return(n,e)=>{const a=c("el-transfer");return i(),f(a,{modelValue:o(t).$state.right_users,"onUpdate:modelValue":e[0]||(e[0]=s=>o(t).$state.right_users=s),filterable:"",titles:["未授权用户","已授权用户"],data:o(t).$state.all_users,props:{key:"id",label:"name"},onChange:l},null,8,["modelValue","data"])}}});export{C as default}; diff --git a/web/dist/assets/RoleUsersStores.D14armsj.js b/web/dist/assets/RoleUsersStores.D14armsj.js new file mode 100644 index 0000000000000000000000000000000000000000..1b9b0e1ae99b054bd91c5ca3afa9e65494526b17 --- /dev/null +++ b/web/dist/assets/RoleUsersStores.D14armsj.js @@ -0,0 +1 @@ +import{M as e}from"./vue.DmuWcDrn.js";import{g as r}from"./api.BMXTwPHc.js";import{X as o}from"./index.XK2ik2qb.js";const _=e("RoleUsersStores",{state:()=>({all_users:[],right_users:[]}),actions:{get_all_users(){r().then(s=>{this.$state.all_users=s})},set_right_users(s){this.$state.right_users=o.map(s,t=>t.id)}}});export{_ as R}; diff --git a/web/dist/assets/Score.DUabvE8p.js b/web/dist/assets/Score.DUabvE8p.js new file mode 100644 index 0000000000000000000000000000000000000000..03c049386c5709f41ca63cbc8ddcee76c2f88d01 --- /dev/null +++ b/web/dist/assets/Score.DUabvE8p.js @@ -0,0 +1 @@ +import{F as r}from"./FormComponentMixin.C3yPnfoW.js";import{c,h as f,b as d,o as v}from"./vue.DmuWcDrn.js";const w={__name:"Score",props:{...r.props},emits:[...r.emits],setup(l,{emit:a}){const e=l,t=a,n=c(r.computed._value(e,t)),p=c(()=>{const o=e.config.props.icon;return[o,o,o]}),i=c(()=>{const o=e.config.props.color;return[o,o,o]});return(o,s)=>{const m=f("el-rate");return v(),d(m,{"allow-half":o.config.props.enableHalf,clearable:"","void-icon":e.config.props.icon,max:o.config.props.max,"show-score":o.config.props.showScore,"text-color":o.config.props.color,modelValue:n.value,"onUpdate:modelValue":s[0]||(s[0]=u=>n.value=u),colors:i.value,icons:p.value},null,8,["allow-half","void-icon","max","show-score","text-color","modelValue","colors","icons"])}}};export{w as default}; diff --git a/web/dist/assets/Score.nTTEFCHc.js b/web/dist/assets/Score.nTTEFCHc.js new file mode 100644 index 0000000000000000000000000000000000000000..0650cda43a6e995223be512f94068ae2cca85980 --- /dev/null +++ b/web/dist/assets/Score.nTTEFCHc.js @@ -0,0 +1 @@ +import{F as r}from"./FormComponentMixin.C3yPnfoW.js";import{h as u,a as w,o as F,k as e,w as l,G as S}from"./vue.DmuWcDrn.js";const C={__name:"Score",props:{...r.props},emits:[...r.emits],setup(k,{emit:v}){return(o,n)=>{const i=u("el-input"),d=u("el-form-item"),s=u("StarFilled"),p=u("el-icon"),t=u("el-radio-button"),f=u("View"),_=u("UserFilled"),V=u("Medal"),g=u("Sunny"),b=u("el-radio-group"),c=u("el-input-number"),m=u("el-switch"),U=u("el-color-picker");return F(),w(S,null,[e(d,{label:"字段KEY"},{default:l(()=>[e(i,{modelValue:o.config.key,"onUpdate:modelValue":n[0]||(n[0]=a=>o.config.key=a),placeholder:"请输入字段唯一key值"},null,8,["modelValue"])]),_:1}),e(d,{label:"字段名称"},{default:l(()=>[e(i,{modelValue:o.config.name,"onUpdate:modelValue":n[1]||(n[1]=a=>o.config.name=a),placeholder:"请设置字段名称"},null,8,["modelValue"])]),_:1}),e(d,{label:"图标设置"},{default:l(()=>[e(b,{size:"small",modelValue:o.config.props.icon,"onUpdate:modelValue":n[2]||(n[2]=a=>o.config.props.icon=a)},{default:l(()=>[e(t,{value:"StarFilled"},{default:l(()=>[e(p,null,{default:l(()=>[e(s)]),_:1})]),_:1}),e(t,{value:"View"},{default:l(()=>[e(p,null,{default:l(()=>[e(f)]),_:1})]),_:1}),e(t,{value:"UserFilled"},{default:l(()=>[e(p,null,{default:l(()=>[e(_)]),_:1})]),_:1}),e(t,{value:"Medal"},{default:l(()=>[e(p,null,{default:l(()=>[e(V)]),_:1})]),_:1}),e(t,{value:"Sunny"},{default:l(()=>[e(p,null,{default:l(()=>[e(g)]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(d,{label:"最大分值"},{default:l(()=>[e(c,{precision:0,min:0,max:20,modelValue:o.config.props.max,"onUpdate:modelValue":n[3]||(n[3]=a=>o.config.props.max=a)},null,8,["modelValue"])]),_:1}),e(d,{label:"显示分值"},{default:l(()=>[e(m,{modelValue:o.config.props.showScore,"onUpdate:modelValue":n[4]||(n[4]=a=>o.config.props.showScore=a)},null,8,["modelValue"])]),_:1}),e(d,{label:"允许半分"},{default:l(()=>[e(m,{modelValue:o.config.props.enableHalf,"onUpdate:modelValue":n[5]||(n[5]=a=>o.config.props.enableHalf=a)},null,8,["modelValue"])]),_:1}),e(d,{label:"图标颜色"},{default:l(()=>[e(U,{modelValue:o.config.props.color,"onUpdate:modelValue":n[6]||(n[6]=a=>o.config.props.color=a)},null,8,["modelValue"])]),_:1}),e(d,{label:"隐藏名称"},{default:l(()=>[e(m,{modelValue:o.config.props.hideLabel,"onUpdate:modelValue":n[7]||(n[7]=a=>o.config.props.hideLabel=a)},null,8,["modelValue"])]),_:1}),e(d,{label:"是否必填"},{default:l(()=>[e(m,{modelValue:o.config.props.required,"onUpdate:modelValue":n[8]||(n[8]=a=>o.config.props.required=a)},null,8,["modelValue"])]),_:1})],64)}}};export{C as default}; diff --git a/web/dist/assets/SinglePicker.D6U6j9Wo.js b/web/dist/assets/SinglePicker.D6U6j9Wo.js new file mode 100644 index 0000000000000000000000000000000000000000..e9a9392563f81a3a208a217a273e8f9480e2f756 --- /dev/null +++ b/web/dist/assets/SinglePicker.D6U6j9Wo.js @@ -0,0 +1 @@ +import{F as g}from"./FormComponentMixin.C3yPnfoW.js";import{l as w}from"./vue-draggable-plus.DFq4KU1k.js";import{_ as y}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{h as t,a as V,o as r,k as e,w as p,m as C,u as v,G as c,H as B,b as F}from"./vue.DmuWcDrn.js";const L={__name:"SinglePicker",props:{...g.props},emits:[...g.emits],setup(k,{emit:q}){const m=k;function b(){m.config.props.options.push(`选项${m.config.props.options.length+1}`)}return(o,l)=>{const i=t("el-input"),a=t("el-form-item"),u=t("el-button"),U=t("Rank"),_=t("el-icon"),s=t("el-switch");return r(),V(c,null,[e(a,{label:"字段KEY"},{default:p(()=>[e(i,{modelValue:o.config.key,"onUpdate:modelValue":l[0]||(l[0]=n=>o.config.key=n),placeholder:"请输入字段唯一key值"},null,8,["modelValue"])]),_:1}),e(a,{label:"字段名称"},{default:p(()=>[e(i,{modelValue:o.config.name,"onUpdate:modelValue":l[1]||(l[1]=n=>o.config.name=n),placeholder:"请设置字段名称"},null,8,["modelValue"])]),_:1}),e(a,{label:"提示文字"},{default:p(()=>[e(i,{modelValue:o.config.props.placeholder,"onUpdate:modelValue":l[2]||(l[2]=n=>o.config.props.placeholder=n),placeholder:"输入提示"},null,8,["modelValue"])]),_:1}),e(a,{label:"选项设置"},{default:p(()=>[e(u,{style:{margin:"7px"},link:"",type:"primary",icon:"plus",onClick:b},{default:p(()=>l[7]||(l[7]=[C("添加选项")])),_:1}),e(v(w),{class:"w-fd-options",handle:".w-move",animation:150,modelValue:o.config.props.options,"onUpdate:modelValue":l[3]||(l[3]=n=>o.config.props.options=n)},{default:p(()=>[(r(!0),V(c,null,B(o.config.props.options,(n,d)=>(r(),F(i,{modelValue:o.config.props.options[d],"onUpdate:modelValue":f=>o.config.props.options[d]=f},{prepend:p(()=>[e(_,{class:"w-move"},{default:p(()=>[e(U)]),_:1})]),append:p(()=>[e(u,{icon:"Delete",onClick:f=>o.config.props.options.splice(d,1)},null,8,["onClick"])]),_:2},1032,["modelValue","onUpdate:modelValue"]))),256))]),_:1},8,["modelValue"])]),_:1}),e(a,{label:"选项展开"},{default:p(()=>[e(s,{modelValue:o.config.props.expanding,"onUpdate:modelValue":l[4]||(l[4]=n=>o.config.props.expanding=n)},null,8,["modelValue"])]),_:1}),e(a,{label:"隐藏名称"},{default:p(()=>[e(s,{modelValue:o.config.props.hideLabel,"onUpdate:modelValue":l[5]||(l[5]=n=>o.config.props.hideLabel=n)},null,8,["modelValue"])]),_:1}),e(a,{label:"是否必填"},{default:p(()=>[e(s,{modelValue:o.config.props.required,"onUpdate:modelValue":l[6]||(l[6]=n=>o.config.props.required=n)},null,8,["modelValue"])]),_:1})],64)}}},S=y(L,[["__scopeId","data-v-3aa01aba"]]);export{S as default}; diff --git a/web/dist/assets/SinglePicker.DJx3KAyh.css b/web/dist/assets/SinglePicker.DJx3KAyh.css new file mode 100644 index 0000000000000000000000000000000000000000..1d329031b580fa621c3342d8600a47018eea3e4f --- /dev/null +++ b/web/dist/assets/SinglePicker.DJx3KAyh.css @@ -0,0 +1 @@ +[data-v-3aa01aba] .w-fd-options .el-input-group__append,[data-v-3aa01aba] .w-fd-options .el-input-group__prepend{padding:0 10px}.w-move[data-v-3aa01aba]{cursor:move} diff --git a/web/dist/assets/SinglePicker.DvSZcB6W.js b/web/dist/assets/SinglePicker.DvSZcB6W.js new file mode 100644 index 0000000000000000000000000000000000000000..a4778ba34e94fc5e1f6906c1dfd088770cff302b --- /dev/null +++ b/web/dist/assets/SinglePicker.DvSZcB6W.js @@ -0,0 +1 @@ +import{F as s}from"./FormComponentMixin.C3yPnfoW.js";import{c as B,h as t,b as a,o,w as u,a as p,G as i,H as m}from"./vue.DmuWcDrn.js";const w={__name:"SinglePicker",props:{...s.props},emits:[...s.emits],setup(c,{emit:d}){const _=c,v=d,l=B(s.computed._value(_,v));return(r,n)=>{const f=t("el-radio"),g=t("el-radio-group"),k=t("el-option"),V=t("el-select");return r.config.props.expanding?(o(),a(g,{key:0,modelValue:l.value,"onUpdate:modelValue":n[0]||(n[0]=e=>l.value=e)},{default:u(()=>[(o(!0),p(i,null,m(r.config.props.options,(e,b)=>(o(),a(f,{label:e,value:e},null,8,["label","value"]))),256))]),_:1},8,["modelValue"])):(o(),a(V,{key:1,modelValue:l.value,"onUpdate:modelValue":n[1]||(n[1]=e=>l.value=e)},{default:u(()=>[(o(!0),p(i,null,m(r.config.props.options,(e,b)=>(o(),a(k,{label:e,value:e},null,8,["label","value"]))),256))]),_:1},8,["modelValue"]))}}};export{w as default}; diff --git a/web/dist/assets/SpanLayout.CKTqSyyT.js b/web/dist/assets/SpanLayout.CKTqSyyT.js new file mode 100644 index 0000000000000000000000000000000000000000..0c0adc8ceee3e1cc33a3924fa18dfb4ab88e5737 --- /dev/null +++ b/web/dist/assets/SpanLayout.CKTqSyyT.js @@ -0,0 +1 @@ +import{F as r}from"./FormComponentMixin.C3yPnfoW.js";import{h as a,a as i,o as d,k as e,w as p}from"./vue.DmuWcDrn.js";const c={__name:"SpanLayout",props:{...r.props},emits:[...r.emits],setup(f,{emit:_}){return(l,o)=>{const u=a("el-input"),m=a("el-form-item"),n=a("el-option"),s=a("el-select");return d(),i("div",null,[e(m,{label:"字段KEY"},{default:p(()=>[e(u,{modelValue:l.config.key,"onUpdate:modelValue":o[0]||(o[0]=t=>l.config.key=t),placeholder:"请输入字段唯一key值"},null,8,["modelValue"])]),_:1}),e(m,{label:"分栏数"},{default:p(()=>[e(s,{modelValue:l.config.props.number,"onUpdate:modelValue":o[1]||(o[1]=t=>l.config.props.number=t)},{default:p(()=>[e(n,{label:"分2栏",value:2}),e(n,{label:"分3栏",value:3}),e(n,{label:"分4栏",value:4}),e(n,{label:"分6栏",value:6}),e(n,{label:"分8栏",value:8})]),_:1},8,["modelValue"])]),_:1}),e(m,{label:"栏间隔"},{default:p(()=>[e(u,{modelValue:l.config.props.gutter,"onUpdate:modelValue":o[2]||(o[2]=t=>l.config.props.gutter=t),type:"number",placeholder:"每栏间隔多少"},null,8,["modelValue"])]),_:1})])}}};export{c as default}; diff --git a/web/dist/assets/SpanLayout.D0ohsIM7.js b/web/dist/assets/SpanLayout.D0ohsIM7.js new file mode 100644 index 0000000000000000000000000000000000000000..b5d910a027914e10d9611be6c7dc372e54c0dcfa --- /dev/null +++ b/web/dist/assets/SpanLayout.D0ohsIM7.js @@ -0,0 +1 @@ +import{c as f,I,C as z,h as v,b as u,o as r,w as m,a as g,G as _,H as U,k as h,u as D,f as k,Y as F}from"./vue.DmuWcDrn.js";import{F as c}from"./FormComponentMixin.C3yPnfoW.js";import{l as E}from"./vue-draggable-plus.DFq4KU1k.js";import B from"./FormComponent.BFjxV9c8.js";import{_ as G}from"./_plugin-vue_export-helper.DlAUqK2U.js";import"./FormComponents.BoFxZNqy.js";import"./index.XK2ik2qb.js";import"./GlobalFunc.9BrjVkDm.js";import"./ProcessUtil.B7gNiVp1.js";const H={__name:"SpanLayout",props:{...c.props,modelValue:{default:()=>({})}},emits:[...c.emits],setup(L,{emit:M}){const t=L,y=M,n=f(c.computed._active(t,y)),p=f(c.computed._value(t,y)),s=f(()=>t.mode==="free");function w(){const o=t.config.props;if(o.number>o.columns.length)for(let a=0;at.config.props.number,w),(o,a)=>{const q=v("el-form-item"),S=v("el-col"),$=v("el-row");return r(),u($,{gutter:o.config.props.gutter},{default:m(()=>[(r(!0),g(_,null,U(o.config.props.columns,(d,i)=>(r(),u(S,{span:o.config.props.span/o.config.props.number,key:`col_${i}`},{default:m(()=>[h(D(E),{modelValue:o.config.props.columns[i],"onUpdate:modelValue":e=>o.config.props.columns[i]=e,animation:150,group:"FormDesign",disabled:!s.value,ghostClass:s.value?"w-f-cp-select":"",class:k({"w-f-cp-ct":s.value})},{default:m(()=>[(r(!0),g(_,null,U(d,(e,C)=>{var V,b;return r(),g(_,{key:e.id},[e.props.isContainer?(r(),u(B,{key:1,config:e,mode:o.mode,active:n.value,"onUpdate:active":a[1]||(a[1]=l=>n.value=l),type:e.type,onClick:F(l=>n.value=e,["stop"]),modelValue:p.value,"onUpdate:modelValue":a[2]||(a[2]=l=>p.value=l),index:C,parents:d,class:k({"w-form-d-item":s.value,"w-form-cp-active":((b=n.value)==null?void 0:b.id)===e.id&&s.value})},null,8,["config","mode","active","type","onClick","modelValue","index","parents","class"])):(r(),u(q,{key:0,label:e.name,required:e.props.required,prop:e.key,onClick:F(l=>n.value=e,["stop"]),class:k({"w-form-d-item":s.value,"w-form-cp-active":((V=n.value)==null?void 0:V.id)===e.id&&s.value,"w-form-cp-nlb":e.props.hideLabel})},{default:m(()=>[h(B,{index:C,parents:d,config:e,mode:o.mode,active:n.value,"onUpdate:active":a[0]||(a[0]=l=>n.value=l),modelValue:p.value[e.key],"onUpdate:modelValue":l=>p.value[e.key]=l,type:e.type},null,8,["index","parents","config","mode","active","modelValue","onUpdate:modelValue","type"])]),_:2},1032,["label","required","prop","onClick","class"]))],64)}),128))]),_:2},1032,["modelValue","onUpdate:modelValue","disabled","ghostClass","class"])]),_:2},1032,["span"]))),128))]),_:1},8,["gutter"])}}},Q=G(H,[["__scopeId","data-v-946e99c5"]]);export{Q as default}; diff --git a/web/dist/assets/SpanLayout.DQHViipG.css b/web/dist/assets/SpanLayout.DQHViipG.css new file mode 100644 index 0000000000000000000000000000000000000000..4cfd44ec0b9ff3e45905a633159d31e202a0e995 --- /dev/null +++ b/web/dist/assets/SpanLayout.DQHViipG.css @@ -0,0 +1 @@ +.w-node-err[data-v-946e99c5]{border:1px solid #f56c6c;box-shadow:0 0 5px #f56c6c!important}[data-v-946e99c5] .w-f-cp-ct{width:100%;min-height:50px;background-color:#f5f6f6}.w-f-cp-select[data-v-946e99c5]{border-radius:2px;border:1px dashed var(--el-color-primary)!important} diff --git a/web/dist/assets/Start.BIqQDQeS.js b/web/dist/assets/Start.BIqQDQeS.js new file mode 100644 index 0000000000000000000000000000000000000000..0966ee568bf8f7c3749156bda885613dbad95712 --- /dev/null +++ b/web/dist/assets/Start.BIqQDQeS.js @@ -0,0 +1 @@ +import c from"./Node.Do50r9uM.js";import{n as t}from"./NodeMixin.CdUK7SNa.js";import{c as v,g as s,b as w,o as V}from"./vue.DmuWcDrn.js";import"./InsertBtn.A0117t9o.js";import"./ProcessNodes.r7PbQ_Ri.js";import"./index.XK2ik2qb.js";import"./ProcessUtil.B7gNiVp1.js";import"./_plugin-vue_export-helper.DlAUqK2U.js";const U={__name:"Start",props:{...t.props},emits:t.emits,setup(a,{expose:i,emit:m}){const p=a,n=m,l=v(t.computed._value(p,n)),d=s(!1),u=s(null);i({validate:f});function f(o){}return(o,e)=>(V(),w(c,{modelValue:l.value,"onUpdate:modelValue":e[0]||(e[0]=r=>l.value=r),readonly:o.readonly,"show-close":!1,"show-error":d.value,onSelect:e[1]||(e[1]=r=>n("select",o.modelValue)),"error-info":u.value,onInsertNode:e[2]||(e[2]=r=>n("insertNode",o.branch,o.index,r)),"header-color":"#80929C","header-icon":"UserFilled",content:"流程从本节点开始"},null,8,["modelValue","readonly","show-error","error-info"]))}};export{U as default}; diff --git a/web/dist/assets/Start.D_HyHccb.js b/web/dist/assets/Start.D_HyHccb.js new file mode 100644 index 0000000000000000000000000000000000000000..2c2c5cf19dafc36a922da426c5603fcdfae3bb3b --- /dev/null +++ b/web/dist/assets/Start.D_HyHccb.js @@ -0,0 +1 @@ +import{n as e}from"./NodeMixin.CdUK7SNa.js";import i from"./FormPermConf.CE-WaGhp.js";import{c as d,h as a,b,o as v,w as m,k as s}from"./vue.DmuWcDrn.js";import"./FormInterface.vRCiFeo3.js";const w={__name:"Start",props:{...e.props},emits:e.emits,setup(r,{emit:l}){const n=r,p=l,o=d(e.computed._value(n,p));return(u,t)=>{const _=a("el-tab-pane"),c=a("el-tabs");return v(),b(c,null,{default:m(()=>[s(_,{lazy:"",label:"表单权限设置"},{default:m(()=>[s(i,{"default-perm":"E",formItems:u.formItems,modelValue:o.value.props.formPerms,"onUpdate:modelValue":t[0]||(t[0]=f=>o.value.props.formPerms=f)},null,8,["formItems","modelValue"])]),_:1})]),_:1})}}};export{w as default}; diff --git a/web/dist/assets/TabelList.DtkekVLW.js b/web/dist/assets/TabelList.DtkekVLW.js new file mode 100644 index 0000000000000000000000000000000000000000..4f40cb092275f54d3c6e9a1f8a0414c8ee17ff85 --- /dev/null +++ b/web/dist/assets/TabelList.DtkekVLW.js @@ -0,0 +1 @@ +import{F as r}from"./FormComponentMixin.C3yPnfoW.js";import{h as t,a as u,o as d,k as o,w as m,G as s}from"./vue.DmuWcDrn.js";const b={__name:"TabelList",props:{...r.props},emits:[...r.emits],setup(f,{emit:V}){return(e,l)=>{const p=t("el-input"),a=t("el-form-item"),i=t("el-switch");return d(),u(s,null,[o(a,{label:"字段KEY"},{default:m(()=>[o(p,{modelValue:e.config.key,"onUpdate:modelValue":l[0]||(l[0]=n=>e.config.key=n),placeholder:"请输入字段唯一key值"},null,8,["modelValue"])]),_:1}),o(a,{label:"字段名称"},{default:m(()=>[o(p,{modelValue:e.config.name,"onUpdate:modelValue":l[1]||(l[1]=n=>e.config.name=n),placeholder:"请设置字段名称"},null,8,["modelValue"])]),_:1}),o(a,{label:"隐藏名称"},{default:m(()=>[o(i,{modelValue:e.config.props.hideLabel,"onUpdate:modelValue":l[2]||(l[2]=n=>e.config.props.hideLabel=n)},null,8,["modelValue"])]),_:1}),o(a,{label:"是否必填"},{default:m(()=>[o(i,{modelValue:e.config.props.required,"onUpdate:modelValue":l[3]||(l[3]=n=>e.config.props.required=n)},null,8,["modelValue"])]),_:1})],64)}}};export{b as default}; diff --git a/web/dist/assets/TableList.Cc91hF7e.js b/web/dist/assets/TableList.Cc91hF7e.js new file mode 100644 index 0000000000000000000000000000000000000000..4e7bdf743bbd80318753fcfd8bcdb266c9a3e70e --- /dev/null +++ b/web/dist/assets/TableList.Cc91hF7e.js @@ -0,0 +1 @@ +import{F as k}from"./FormComponentMixin.C3yPnfoW.js";import{l as A}from"./vue-draggable-plus.DFq4KU1k.js";import{c as G,a as I,d as J}from"./GlobalFunc.9BrjVkDm.js";import K from"./FormComponent.BFjxV9c8.js";import{_ as P}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{c as b,h as a,b as y,o as r,w as t,k as l,Z,a as D,G as j,H as q,e as _,f as O,J as h,u as g,K as Q,m as B}from"./vue.DmuWcDrn.js";import"./ProcessUtil.B7gNiVp1.js";import"./FormComponents.BoFxZNqy.js";import"./index.XK2ik2qb.js";const W={key:0,class:"w-form-component"},X={__name:"TableList",props:{...k.props,modelValue:{type:Array,default:()=>[]}},emits:[...k.emits],setup(N,{emit:R}){const i=N,c=R,f=b(k.computed._active(i,c)),s=b(k.computed._value(i,c)),d=b(()=>i.mode==="free"),U={background:"#e8e8e8",padding:"10px 0"};function C(e,o){o.stopPropagation();const v=i.config.props.columns[e.no];v&&c("update:active",v)}function x(){let e={};return i.config.props.columns.forEach(o=>e[o.key]=null),e}function L(){c("update:modelValue",[...s.value||[],x()])}function S(e){s.value.splice(e,1)}function T(e){s.value.push(J(e))}return(e,o)=>{const v=a("CopyDocument"),w=a("el-icon"),E=a("Delete"),V=a("el-table-column"),H=a("el-button"),$=a("el-link"),M=a("el-divider"),z=a("el-table");return r(),y(g(A),{modelValue:e.config.props.columns,"onUpdate:modelValue":o[1]||(o[1]=n=>e.config.props.columns=n),target:".w-tb-header-cell",group:"FormDesign",filter:".w-tb-op",animation:150,disabled:!d.value,ghostClass:d.value?"w-f-cp-select":"",class:"w-f-cp-ct"},{default:t(()=>[l(z,{data:s.value,"cell-style":{padding:0},"header-row-class-name":"w-tb-header-cell",border:"","header-cell-style":U,onHeaderClick:C},Z({default:t(()=>[(r(!0),D(j,null,q(e.config.props.columns,(n,p)=>{var F;return r(),y(V,{ref_for:!0,ref:"col",prop:n.key,label:n.name,key:`col_${n.id}`,"class-name":`${e.mode==="free"?"w-form-d-item":""} ${((F=f.value)==null?void 0:F.id)===n.id&&d.value?"w-form-cp-active":""}`},{header:t(()=>{var m;return[_("div",{style:{border:"none !important"},class:O({"w-form-cp-active":((m=f.value)==null?void 0:m.id)===n.id&&d.value})},[e.mode==="free"?(r(),D("div",W,[l(w,{color:"#ffffff",onClick:u=>g(G)(e.config.props.columns,p)},{default:t(()=>[l(v)]),_:2},1032,["onClick"]),l(w,{color:"#ffffff",onClick:u=>g(I)(e.config.props.columns,p)},{default:t(()=>[l(E)]),_:2},1032,["onClick"])])):h("",!0),_("div",null,Q(n.name),1)],2)]}),default:t(m=>[(r(),y(K,{index:p,parents:e.config.props.columns,config:n,mode:e.mode,active:f.value,"onUpdate:active":o[0]||(o[0]=u=>f.value=u),modelValue:s.value[m.$index][n.key],"onUpdate:modelValue":u=>s.value[m.$index][n.key]=u,key:n.id,type:n.type},null,8,["index","parents","config","mode","active","modelValue","onUpdate:modelValue","type"]))]),_:2},1032,["prop","label","class-name"])}),128)),l(V,{fixed:"right",width:"120",label:"操作",onClick:C,"class-name":"w-tb-op"},{header:t(()=>[o[3]||(o[3]=_("span",null,"操作",-1)),e.mode==="normal"?(r(),y(H,{key:0,icon:"plus",onClick:L,circle:"",class:"w-tb-op-add"})):h("",!0)]),default:t(n=>[l($,{type:"danger",underline:!1,onClick:p=>S(n.$index)},{default:t(()=>o[4]||(o[4]=[B("删除")])),_:2},1032,["onClick"]),l(M,{direction:"vertical"}),l($,{type:"primary",underline:!1,onClick:p=>T(n.row)},{default:t(()=>o[5]||(o[5]=[B("复制")])),_:2},1032,["onClick"])]),_:1})]),_:2},[d.value?{name:"empty",fn:t(()=>[o[2]||(o[2]=_("span",null,"👆拖拽字段到上方列内",-1))]),key:"0"}:void 0]),1032,["data"])]),_:1},8,["modelValue","disabled","ghostClass"])}}},ie=P(X,[["__scopeId","data-v-9b116fa1"]]);export{ie as default}; diff --git a/web/dist/assets/TableList.ToArSLcu.css b/web/dist/assets/TableList.ToArSLcu.css new file mode 100644 index 0000000000000000000000000000000000000000..0b390d1d87f518f63d800c8ae07c623bf657a13d --- /dev/null +++ b/web/dist/assets/TableList.ToArSLcu.css @@ -0,0 +1 @@ +.w-node-err[data-v-9b116fa1]{border:1px solid #f56c6c;box-shadow:0 0 5px #f56c6c!important}.w-f-cp-ct[data-v-9b116fa1]{width:100%;height:100%;min-height:50px;background-color:#f5f6f6}.w-tb-op[data-v-9b116fa1]{position:relative}.w-tb-op .w-tb-op-add[data-v-9b116fa1]{position:absolute;top:5px;right:5px}[data-v-9b116fa1] .w-tb-header-cell{cursor:grab}[data-v-9b116fa1] .w-tb-header-cell .w-form-d-item{position:relative;padding:5px;margin:2px;border:1px dashed white}[data-v-9b116fa1] .w-tb-header-cell .w-form-d-item:hover{border:1px dashed #8d8d8d}[data-v-9b116fa1] .w-tb-header-cell .w-form-cp-active{border:1px dashed var(--el-color-primary)!important}.w-f-cp-select[data-v-9b116fa1]{border-radius:2px;border:1px dashed var(--el-color-primary)!important}.w-form-component[data-v-9b116fa1]{position:absolute;bottom:0;right:0;z-index:9;display:none;border-radius:5px 0 0;overflow:hidden}.w-form-component i[data-v-9b116fa1]{padding:5px;cursor:pointer;background:var(--el-color-primary)}.w-form-component i[data-v-9b116fa1]:hover{background:var(--el-color-primary-light-3)} diff --git a/web/dist/assets/TextInput.DqRxUp4L.js b/web/dist/assets/TextInput.DqRxUp4L.js new file mode 100644 index 0000000000000000000000000000000000000000..d78b15963bc7812f269440b9879d9e7c6107a70c --- /dev/null +++ b/web/dist/assets/TextInput.DqRxUp4L.js @@ -0,0 +1 @@ +import{F as u}from"./FormComponentMixin.C3yPnfoW.js";import{h as d,a as r,o as i,k as o,w as p,G as s}from"./vue.DmuWcDrn.js";const k={__name:"TextInput",props:{...u.props},emits:[...u.emits],setup(f,{emit:V}){return(e,l)=>{const m=d("el-input"),a=d("el-form-item"),t=d("el-switch");return i(),r(s,null,[o(a,{label:"字段KEY"},{default:p(()=>[o(m,{modelValue:e.config.key,"onUpdate:modelValue":l[0]||(l[0]=n=>e.config.key=n),placeholder:"请输入字段唯一key值"},null,8,["modelValue"])]),_:1}),o(a,{label:"字段名称"},{default:p(()=>[o(m,{modelValue:e.config.name,"onUpdate:modelValue":l[1]||(l[1]=n=>e.config.name=n),placeholder:"请设置字段名称"},null,8,["modelValue"])]),_:1}),o(a,{label:"提示文字"},{default:p(()=>[o(m,{modelValue:e.config.props.placeholder,"onUpdate:modelValue":l[2]||(l[2]=n=>e.config.props.placeholder=n),placeholder:"输入提示"},null,8,["modelValue"])]),_:1}),o(a,{label:"隐藏名称"},{default:p(()=>[o(t,{modelValue:e.config.props.hideLabel,"onUpdate:modelValue":l[3]||(l[3]=n=>e.config.props.hideLabel=n)},null,8,["modelValue"])]),_:1}),o(a,{label:"是否必填"},{default:p(()=>[o(t,{modelValue:e.config.props.required,"onUpdate:modelValue":l[4]||(l[4]=n=>e.config.props.required=n)},null,8,["modelValue"])]),_:1})],64)}}};export{k as default}; diff --git a/web/dist/assets/TextInput.VohADZme.js b/web/dist/assets/TextInput.VohADZme.js new file mode 100644 index 0000000000000000000000000000000000000000..78dfd4f38eede0e36f925074ef61e5eeed8819e5 --- /dev/null +++ b/web/dist/assets/TextInput.VohADZme.js @@ -0,0 +1 @@ +import{F as e}from"./FormComponentMixin.C3yPnfoW.js";import{c as u,h as c,b as i,o as d}from"./vue.DmuWcDrn.js";const v={__name:"TextInput",props:{...e.props},emits:[...e.emits],setup(p,{emit:l}){const n=p,a=l,o=u(e.computed._value(n,a));return(s,t)=>{const m=c("el-input");return d(),i(m,{placeholder:s.config.props.placeholder,modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=r=>o.value=r)},null,8,["placeholder","modelValue"])}}};export{v as default}; diff --git a/web/dist/assets/TextareaInput.a4aUy-y1.js b/web/dist/assets/TextareaInput.a4aUy-y1.js new file mode 100644 index 0000000000000000000000000000000000000000..f44639c69766d4f5cd695079e8c500e79eaf15e2 --- /dev/null +++ b/web/dist/assets/TextareaInput.a4aUy-y1.js @@ -0,0 +1 @@ +import{F as p}from"./FormComponentMixin.C3yPnfoW.js";import{h as r,b as n,o as t}from"./vue.DmuWcDrn.js";const c={__name:"TextareaInput",props:{...p.props},setup(a){return(o,l)=>{const e=r("el-input");return t(),n(e,{"show-word-limit":"",rows:3,type:"textarea",maxlength:o.config.props.max||255,placeholder:o.config.props.placeholder},null,8,["maxlength","placeholder"])}}};export{c as default}; diff --git a/web/dist/assets/TextareaInput.tZJpkb2p.js b/web/dist/assets/TextareaInput.tZJpkb2p.js new file mode 100644 index 0000000000000000000000000000000000000000..508c622267dc6d9436275afd06ec89b46af7b09c --- /dev/null +++ b/web/dist/assets/TextareaInput.tZJpkb2p.js @@ -0,0 +1 @@ +import{F as r}from"./FormComponentMixin.C3yPnfoW.js";import{h as m,a as i,o as s,k as o,w as p,G as f}from"./vue.DmuWcDrn.js";const U={__name:"TextareaInput",props:{...r.props},emits:[...r.emits],setup(V,{emit:g}){return(e,l)=>{const u=m("el-input"),a=m("el-form-item"),t=m("el-input-number"),d=m("el-switch");return s(),i(f,null,[o(a,{label:"字段KEY"},{default:p(()=>[o(u,{modelValue:e.config.key,"onUpdate:modelValue":l[0]||(l[0]=n=>e.config.key=n),placeholder:"请输入字段唯一key值"},null,8,["modelValue"])]),_:1}),o(a,{label:"字段名称"},{default:p(()=>[o(u,{modelValue:e.config.name,"onUpdate:modelValue":l[1]||(l[1]=n=>e.config.name=n),placeholder:"请设置字段名称"},null,8,["modelValue"])]),_:1}),o(a,{label:"提示文字"},{default:p(()=>[o(u,{modelValue:e.config.props.placeholder,"onUpdate:modelValue":l[2]||(l[2]=n=>e.config.props.placeholder=n),placeholder:"输入提示"},null,8,["modelValue"])]),_:1}),o(a,{label:"最大字数"},{default:p(()=>[o(t,{precision:0,min:1,modelValue:e.config.props.max,"onUpdate:modelValue":l[3]||(l[3]=n=>e.config.props.max=n)},null,8,["modelValue"])]),_:1}),o(a,{label:"隐藏名称"},{default:p(()=>[o(d,{modelValue:e.config.props.hideLabel,"onUpdate:modelValue":l[4]||(l[4]=n=>e.config.props.hideLabel=n)},null,8,["modelValue"])]),_:1}),o(a,{label:"是否必填"},{default:p(()=>[o(d,{modelValue:e.config.props.required,"onUpdate:modelValue":l[5]||(l[5]=n=>e.config.props.required=n)},null,8,["modelValue"])]),_:1})],64)}}};export{U as default}; diff --git a/web/dist/assets/UserPicker.B0pD0EhW.js b/web/dist/assets/UserPicker.B0pD0EhW.js new file mode 100644 index 0000000000000000000000000000000000000000..920c2c1e7337c259528998dd649c09b89b9a3ac2 --- /dev/null +++ b/web/dist/assets/UserPicker.B0pD0EhW.js @@ -0,0 +1 @@ +import{F as r}from"./FormComponentMixin.C3yPnfoW.js";import k from"./WOrgPicker.B_7Qd6r5.js";import v from"./WOrgTags.Bgj5L3ZH.js";import{_ as g}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{c as x,g as y,h as a,a as V,o as p,k as s,b as C,J as P,w as O,m as b,K as h}from"./vue.DmuWcDrn.js";import"./WDialog.D9OIgJAb.js";import"./request.FMdsBF9A.js";import"./index.XK2ik2qb.js";import"./GlobalFunc.9BrjVkDm.js";import"./ProcessUtil.B7gNiVp1.js";const w={style:{display:"flex","align-items":"center"}},B={__name:"UserPicker",props:{...r.props},emits:[...r.emits],setup(i,{emit:m}){const c=i,u=m,e=x(r.computed._value(c,u)),l=y();function d(o){e.value=o,l.value.close()}return(o,t)=>{const _=a("el-button"),f=a("el-text");return p(),V("div",w,[s(_,{icon:"plus",onClick:t[0]||(t[0]=n=>l.value.open()),round:""}),(e.value||[]).length>0?(p(),C(v,{key:0,inline:"",modelValue:e.value,"onUpdate:modelValue":t[1]||(t[1]=n=>e.value=n)},null,8,["modelValue"])):P("",!0),s(f,{class:"w-placeholder"},{default:O(()=>[b(h(o.config.props.placeholder),1)]),_:1}),s(k,{multiple:o.config.props.multiple,ref_key:"orgPicker",ref:l,type:"user",selected:e.value,onOk:d},null,8,["multiple","selected"])])}}},M=g(B,[["__scopeId","data-v-849c8dc4"]]);export{M as default}; diff --git a/web/dist/assets/UserPicker.C5eFQ_EL.css b/web/dist/assets/UserPicker.C5eFQ_EL.css new file mode 100644 index 0000000000000000000000000000000000000000..5a0b7d4ee73b8ba03f9157a4a3407dbee3149a33 --- /dev/null +++ b/web/dist/assets/UserPicker.C5eFQ_EL.css @@ -0,0 +1 @@ +.w-placeholder[data-v-849c8dc4]{margin-left:10px;color:var(--el-text-color-placeholder)} diff --git a/web/dist/assets/UserPicker.IE_X13SV.js b/web/dist/assets/UserPicker.IE_X13SV.js new file mode 100644 index 0000000000000000000000000000000000000000..7085c85e7b7550f8d467932303ff82548849978d --- /dev/null +++ b/web/dist/assets/UserPicker.IE_X13SV.js @@ -0,0 +1 @@ +import{F as r}from"./FormComponentMixin.C3yPnfoW.js";import{h as u,a as i,o as t,k as o,w as p,G as s}from"./vue.DmuWcDrn.js";const k={__name:"UserPicker",props:{...r.props},emits:[...r.emits],setup(f,{emit:V}){return(e,l)=>{const m=u("el-input"),a=u("el-form-item"),d=u("el-switch");return t(),i(s,null,[o(a,{label:"字段KEY"},{default:p(()=>[o(m,{modelValue:e.config.key,"onUpdate:modelValue":l[0]||(l[0]=n=>e.config.key=n),placeholder:"请输入字段唯一key值"},null,8,["modelValue"])]),_:1}),o(a,{label:"字段名称"},{default:p(()=>[o(m,{modelValue:e.config.name,"onUpdate:modelValue":l[1]||(l[1]=n=>e.config.name=n),placeholder:"请设置字段名称"},null,8,["modelValue"])]),_:1}),o(a,{label:"提示文字"},{default:p(()=>[o(m,{modelValue:e.config.props.placeholder,"onUpdate:modelValue":l[2]||(l[2]=n=>e.config.props.placeholder=n),placeholder:"输入提示"},null,8,["modelValue"])]),_:1}),o(a,{label:"是否多选"},{default:p(()=>[o(d,{modelValue:e.config.props.multiple,"onUpdate:modelValue":l[3]||(l[3]=n=>e.config.props.multiple=n)},null,8,["modelValue"])]),_:1}),o(a,{label:"隐藏名称"},{default:p(()=>[o(d,{modelValue:e.config.props.hideLabel,"onUpdate:modelValue":l[4]||(l[4]=n=>e.config.props.hideLabel=n)},null,8,["modelValue"])]),_:1}),o(a,{label:"是否必填"},{default:p(()=>[o(d,{modelValue:e.config.props.required,"onUpdate:modelValue":l[5]||(l[5]=n=>e.config.props.required=n)},null,8,["modelValue"])]),_:1})],64)}}};export{k as default}; diff --git a/web/dist/assets/WDialog.D9OIgJAb.js b/web/dist/assets/WDialog.D9OIgJAb.js new file mode 100644 index 0000000000000000000000000000000000000000..27d49d1f4a872b18950eefe953eb955b14c872c9 --- /dev/null +++ b/web/dist/assets/WDialog.D9OIgJAb.js @@ -0,0 +1 @@ +import{_ as k}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{h as s,b as y,o as i,w as a,l as u,a as g,J as p,k as r,m as f,K as m,f as w}from"./vue.DmuWcDrn.js";const v={name:"WDialog",components:{},props:{title:{type:String,default:""},width:{type:String,default:"50%"},fullscreen:{type:Boolean,default:!1},noPadding:{type:Boolean,default:!1},modelValue:{type:Boolean,default:!1},clickClose:{type:Boolean,default:!1},closeFree:{type:Boolean,default:!1},showFooter:{type:Boolean,default:!0},cancelText:{type:String,default:"取 消"},okText:{type:String,default:"确 定"},okLoading:!1,border:{type:Boolean,default:!0}},computed:{_value:{get(){return this.modelValue},set(l){this.$emit("update:modelValue",l)}}},data(){return{}},methods:{},emits:["opened","closed","cancel","ok","update:modelValue"]},B={key:0};function V(l,t,e,b,C,d){const n=s("el-button"),c=s("el-dialog");return i(),y(c,{class:w({"w-dialog":!0,"w-dialog-border":e.border,"w-fullscreen":e.fullscreen}),width:e.width,title:e.title,"append-to-body":"","close-on-click-modal":e.clickClose,onOpened:t[2]||(t[2]=o=>l.$emit("opened")),onClosed:t[3]||(t[3]=o=>l.$emit("closed")),"destroy-on-close":e.closeFree,modelValue:d._value,"onUpdate:modelValue":t[4]||(t[4]=o=>d._value=o)},{header:a(()=>[u(l.$slots,"title")]),footer:a(()=>[e.showFooter?(i(),g("div",B,[r(n,{size:"default",onClick:t[0]||(t[0]=o=>{d._value=!1,l.$emit("cancel")})},{default:a(()=>[f(m(e.cancelText),1)]),_:1}),r(n,{size:"default",icon:e.okLoading?"loading":"",disabled:e.okLoading,type:"primary",onClick:t[1]||(t[1]=o=>l.$emit("ok"))},{default:a(()=>[f(m(e.okText),1)]),_:1},8,["icon","disabled"])])):p("",!0)]),default:a(()=>[u(l.$slots,"default")]),_:3},8,["class","width","title","close-on-click-modal","destroy-on-close","modelValue"])}const T=k(v,[["render",V]]);export{T as default}; diff --git a/web/dist/assets/WDialog.DTkfzpzg.css b/web/dist/assets/WDialog.DTkfzpzg.css new file mode 100644 index 0000000000000000000000000000000000000000..01e37b8761e8854218eb3d81d85b4262043361aa --- /dev/null +++ b/web/dist/assets/WDialog.DTkfzpzg.css @@ -0,0 +1 @@ +.w-dialog-border .el-dialog__header{border-bottom:1px solid var(--el-border-color)}.w-dialog-border .el-dialog__footer{border-top:1px solid var(--el-border-color)}.w-dialog{padding:8px!important}.w-dialog .el-dialog__header{padding-bottom:8px}.w-dialog .el-dialog__footer{padding-top:8px}.w-dialog .el-dialog__body{padding:10px 0}.w-fullscreen{overflow:hidden;margin-top:0!important;width:100%!important;height:100%!important}.w-fullscreen .el-dialog__body{padding:0;height:calc(100vh - 94px)} diff --git a/web/dist/assets/WOrgPicker.B_7Qd6r5.js b/web/dist/assets/WOrgPicker.B_7Qd6r5.js new file mode 100644 index 0000000000000000000000000000000000000000..a27406305731e0b078f39754cf7053a0406d48fb --- /dev/null +++ b/web/dist/assets/WOrgPicker.B_7Qd6r5.js @@ -0,0 +1 @@ +import pe from"./WDialog.D9OIgJAb.js";import{s as S}from"./request.FMdsBF9A.js";import{d as me}from"./GlobalFunc.9BrjVkDm.js";import{_ as fe}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{c as V,g as v,h as s,j as ve,b as d,o,w as a,k as u,p as ge,e as x,a as g,J as C,G as N,H as A,m as p,K as h}from"./vue.DmuWcDrn.js";import"./index.XK2ik2qb.js";import"./ProcessUtil.B7gNiVp1.js";function ye(r){return S({url:"/api/dvadmin3_flow/flow_info/org_tree/",method:"get",params:r})}function _e(){return S({url:"/api/system/role/",method:"get"})}function ke(r){return S({url:"/api/dvadmin3_flow/flow_info/user_search/",method:"get",params:r})}function he(r){return S({url:`oa/org/user/${r}/dept`,method:"get"})}const K={getOrgTree:ye,getUserByName:ke,getRole:_e,getUserDepts:he},be={class:"w-org-picker-nav"},we={key:0,class:"w-org-list-path"},Ve={key:0},xe={class:"w-org-list"},Ce={class:"w-org-picker-select"},Be={__name:"WOrgPicker",props:{title:{type:String,default:"请选择"},size:{default:20},parentId:{type:Number,default:0},type:{type:String,default:"org"},selected:{type:Array,default:()=>[]},multiple:Boolean},emits:["update:modelValue","ok"],setup(r,{expose:q,emit:M}){const m=r;V({get(){return m.modelValue},set(e){Q("update:modelValue",e)}}),q({open:Y,close:Z});const Q=M,f=v(!1),B=v(!1),n=v([]),$=v([]),b=v(null),O=v([]),c=v([{id:m.parentId,name:""}]),I=V(()=>(b.value||"").trim()!==""),w=V(()=>I.value?O.value:$.value),X=V(()=>!U.value&&n.value.some(e=>w.value.some(t=>D(t,e)))),U=V({get(){return w.value.every(e=>n.value.some(t=>D(t,e)))},set(e){const t=w.value.filter(i=>{const y=!n.value.some(_=>D(_,i));switch(m.type){case"user":return y&&i.type==="user";case"dept":case"role":return y&&m.type===i.type}return!0});e?n.value.push(...t):n.value=t}});function D(e,t){return e.id===t.id&&e.type===t.type}function Y(){setTimeout(()=>{c.value.length=1,b.value=null,z(m.parentId),n.value=me(m.selected),B.value=!0},100)}function Z(){B.value=!1,c.value.length=1}function R(e,t){c.value.length=t+1,z(e.id)}function ee(e){z(e.id,t=>{c.value.push(e)})}function te(){R(c.value[c.value.length-2],c.value.length-2)}function le(){I.value&&(f.value=!0,K.getUserByName({userName:b.value}).then(e=>{f.value=!1,O.value=e.data,W(O.value)}).catch(e=>{f.value=!1}))}function z(e,t){f.value=!0,K.getOrgTree({deptId:e,type:m.type}).then(i=>{console.log(i),f.value=!1,$.value=i.data,W($.value),t&&t(i.data)}).catch(i=>{f.value=!1})}async function W(e){if(n.value.length>0)for(let t in e){let i=n.value.findIndex(y=>D(y,e[t]));i>-1&&(e[t]=n.value[i])}}function j(e){return(e||"").length>2?e.substring(e.length-2,e.length):e}function ae(e){m.multiple||(n.value=[e[e.length-1]])}function ne(){return n.value.map(e=>({id:e.id,name:e.name,type:e.type,avatar:e.avatar}))}return(e,t)=>{const i=s("el-input"),y=s("OfficeBuilding"),_=s("el-icon"),T=s("el-text"),L=s("el-scrollbar"),E=s("el-checkbox"),oe=s("TopLeft"),P=s("el-button"),F=s("el-avatar"),G=s("el-image"),ue=s("BottomRight"),se=s("el-checkbox-group"),H=s("el-empty"),J=s("el-col"),re=s("Close"),ie=s("el-row"),de=ve("loading");return o(),d(pe,{border:!1,width:"550",title:r.title,modelValue:B.value,"onUpdate:modelValue":t[4]||(t[4]=l=>B.value=l),onOk:t[5]||(t[5]=l=>e.$emit("ok",ne()))},{default:a(()=>[u(ie,null,{default:a(()=>[ge((o(),d(J,{span:12,class:"w-org-picker-span"},{default:a(()=>[u(i,{modelValue:b.value,"onUpdate:modelValue":t[0]||(t[0]=l=>b.value=l),onInput:le,class:"w-org-picker-s-input",clearable:"",disabled:r.type!=="user"&&r.type!=="org",placeholder:"搜索人员,支持姓名","prefix-icon":"search"},null,8,["modelValue","disabled"]),x("div",be,[u(_,null,{default:a(()=>[u(y)]),_:1}),u(L,null,{default:a(()=>[r.type!=="role"?(o(),g("div",we,[(o(!0),g(N,null,A(c.value,(l,k)=>(o(),g(N,null,[k>1?(o(),g("span",Ve," > ")):C("",!0),u(T,{size:"small",style:{cursor:"pointer"},onClick:ce=>R(l,k),type:k===c.value.length-1?"primary":"info"},{default:a(()=>[p(h(l.name),1)]),_:2},1032,["onClick","type"])],64))),256))])):C("",!0)]),_:1})]),x("div",xe,[x("div",null,[u(E,{modelValue:U.value,"onUpdate:modelValue":t[1]||(t[1]=l=>U.value=l),indeterminate:X.value,style:{padding:"0 5px"},disabled:!r.multiple&&r.type!=="user"},{default:a(()=>t[6]||(t[6]=[p("全选")])),_:1},8,["modelValue","indeterminate","disabled"]),u(P,{link:"",type:"primary",onClick:te,disabled:c.value.length<=1||I.value},{default:a(()=>[u(_,null,{default:a(()=>[u(oe)]),_:1}),t[7]||(t[7]=p("上级 "))]),_:1},8,["disabled"])]),w.value.length>0?(o(),d(L,{key:0},{default:a(()=>[u(se,{modelValue:n.value,"onUpdate:modelValue":t[2]||(t[2]=l=>n.value=l),class:"w-org-list-org",onChange:ae},{default:a(()=>[(o(!0),g(N,null,A(w.value,l=>(o(),d(E,{disabled:r.type==="user"&&l.type==="dept",key:l.type+l.id,label:l.name,value:l},{default:a(()=>[l.type==="user"?(o(),d(F,{key:0,size:35,src:l.avatar},{default:a(()=>[p(h(j(l.name)),1)]),_:2},1032,["src"])):l.type!=="user"?(o(),d(G,{key:1,class:"w-org-dept-img",fit:"fill",src:`/image/${l.type}.png`},null,8,["src"])):C("",!0),u(T,{style:{"margin-left":"5px",flex:"1"}},{default:a(()=>[p(h(l.name),1)]),_:2},1024),l.type==="dept"?(o(),d(P,{key:2,type:"primary",link:"",class:"w-org-child",underline:!1,onClick:k=>ee(l)},{default:a(()=>[t[8]||(t[8]=p("下级 ")),u(_,null,{default:a(()=>[u(ue)]),_:1})]),_:2},1032,["onClick"])):C("",!0)]),_:2},1032,["disabled","label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})):(o(),d(H,{key:1,"image-size":100,description:"未找到对应组织数据"}))])]),_:1})),[[de,f.value]]),u(J,{span:12,class:"w-org-picker-span"},{default:a(()=>[x("div",null,[x("span",null,"已选 "+h(n.value.length)+" 项",1),u(P,{link:"",type:"danger",disabled:n.value.length===0,onClick:t[3]||(t[3]=l=>n.value.length=0)},{default:a(()=>t[9]||(t[9]=[p("清空")])),_:1},8,["disabled"])]),n.value.length>0?(o(),d(L,{key:0},{default:a(()=>[(o(!0),g(N,null,A(n.value,(l,k)=>(o(),g("div",Ce,[l.type==="user"?(o(),d(F,{key:0,size:35,src:l.avatar},{default:a(()=>[p(h(j(l.name)),1)]),_:2},1032,["src"])):l.type!=="user"?(o(),d(G,{key:1,class:"w-org-dept-img",fit:"fill",src:`/image/${l.type}.png`},null,8,["src"])):C("",!0),u(T,{style:{"margin-left":"5px",flex:"1"}},{default:a(()=>[p(h(l.name),1)]),_:2},1024),u(_,{onClick:ce=>n.value.splice(k,1)},{default:a(()=>[u(re)]),_:2},1032,["onClick"])]))),256))]),_:1})):(o(),d(H,{key:1,"image-size":100,description:"未选中任何数据"}))]),_:1})]),_:1})]),_:1},8,["title","modelValue"])}}},ze=fe(Be,[["__scopeId","data-v-b015a3e1"]]);export{ze as default}; diff --git a/web/dist/assets/WOrgPicker.CaxAS1JB.css b/web/dist/assets/WOrgPicker.CaxAS1JB.css new file mode 100644 index 0000000000000000000000000000000000000000..7522e789bdd07febab26f4c2c3d47d7c681ca26f --- /dev/null +++ b/web/dist/assets/WOrgPicker.CaxAS1JB.css @@ -0,0 +1 @@ +.w-node-err[data-v-b015a3e1]{border:1px solid #f56c6c;box-shadow:0 0 5px #f56c6c!important}.w-org-picker-span[data-v-b015a3e1]{display:flex;flex-direction:column;height:400px;border:1px solid var(--el-border-color)}.w-org-picker-span[data-v-b015a3e1]:first-child{border-right:none}.w-org-picker-span:first-child .w-org-picker-s-input[data-v-b015a3e1]{padding:5px}.w-org-picker-span[data-v-b015a3e1]:last-child>:first-child{display:flex;align-items:center;height:40px;padding:0 10px;justify-content:space-between;border-bottom:1px solid var(--el-border-color)}.w-org-picker-nav[data-v-b015a3e1]{padding:0 5px;display:flex;align-items:center}.w-org-picker-nav i[data-v-b015a3e1]{margin-right:5px}.w-org-dept-img[data-v-b015a3e1]{width:20px;height:20px;padding:8px 0}.w-org-picker-select[data-v-b015a3e1]{display:flex;align-items:center;padding:3px 5px}.w-org-picker-select .el-avatar[data-v-b015a3e1]{background-color:var(--el-color-primary)}.w-org-picker-select i[data-v-b015a3e1]{cursor:pointer;padding:5px}.w-org-picker-select[data-v-b015a3e1]:hover{background-color:#f7f7f9}[data-v-b015a3e1] .w-org-list-org{display:flex;flex-direction:column;height:275px}[data-v-b015a3e1] .w-org-list-org>.el-checkbox{height:auto;padding:3px 5px;margin-right:0}[data-v-b015a3e1] .w-org-list-org>.el-checkbox:hover{background-color:#f7f7f9}[data-v-b015a3e1] .w-org-list-org .w-org-child{color:var(--el-color-primary)}[data-v-b015a3e1] .w-org-list-org .el-checkbox__label{display:flex;position:relative;flex:1}[data-v-b015a3e1] .w-org-list-org .el-avatar{background-color:var(--el-color-primary)}.w-org-list>div[data-v-b015a3e1]:first-child{display:flex;align-items:center;position:relative}.w-org-list>div[data-v-b015a3e1]:first-child>:first-child{flex:1}.w-org-list>div[data-v-b015a3e1]:first-child>:last-child{margin-right:5px}.w-org-list .w-org-list-path[data-v-b015a3e1]{display:flex} diff --git a/web/dist/assets/WOrgTags.Bgj5L3ZH.js b/web/dist/assets/WOrgTags.Bgj5L3ZH.js new file mode 100644 index 0000000000000000000000000000000000000000..883e5f10fce48078b0fbbc99f3d8d5b29407d4fe --- /dev/null +++ b/web/dist/assets/WOrgTags.Bgj5L3ZH.js @@ -0,0 +1 @@ +import{_ as B}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{c as _,z as b,h as l,a as d,o as p,e as g,G as N,H as A,k as o,w as m,K as y,f as I,m as S,n as T}from"./vue.DmuWcDrn.js";const E={class:"w-org-items"},O={__name:"WOrgTags",props:{modelValue:{type:Array,default:()=>[]},disabled:{default:!1},size:{default:20},inline:Boolean},emits:["update:modelValue"],setup(r,{emit:h}){const v=r,i=_({get(){return v.modelValue},set(e){x("update:modelValue",e)}}),x=h,c=b({user:{},dept:{},role:{}}),u=_(()=>{let e={...c};const s=i.value.filter(a=>(c[a.type]||{})[a.id]===void 0);return s.length>0&&z(s).then(a=>{a.forEach(t=>{t.type==="role"?t.avatar="./image/role.png":t.type==="dept"&&(t.avatar="./image/dept.png"),e[t.type][t.id]=t,c[t.type][t.id]=t})}),e});function z(e){return new Promise((s,a)=>{s(e)})}function k(e){return(e||"").length>2?e.substring(e.length-2,e.length):e}function C(e){return u.value[e.type]&&u.value[e.type][e.id]?u.value[e.type][e.id].avatar:null}return(e,s)=>{const a=l("el-avatar"),t=l("el-text"),V=l("Close"),w=l("el-icon");return p(),d("div",{style:T({display:r.inline?"inline-block":"block"})},[g("div",E,[(p(!0),d(N,null,A(i.value,(n,f)=>(p(),d("div",{key:f},[o(a,{size:r.size,class:I("w-avatar-"+n.type),src:C(n)},{default:m(()=>[g("span",null,y(k(n.name)),1)]),_:2},1032,["size","class","src"]),o(t,{size:"small",style:{height:"20px","line-height":"20px"}},{default:m(()=>[S(y(n.name),1)]),_:2},1024),o(w,{size:"10",onClick:W=>i.value.splice(f,1)},{default:m(()=>[o(V)]),_:2},1032,["onClick"])]))),128))])],4)}}},F=B(O,[["__scopeId","data-v-44aae54f"]]);export{F as default}; diff --git a/web/dist/assets/WOrgTags.C3Esetp_.css b/web/dist/assets/WOrgTags.C3Esetp_.css new file mode 100644 index 0000000000000000000000000000000000000000..cad739abe0c7a19bb02b1eacef883bafae85105b --- /dev/null +++ b/web/dist/assets/WOrgTags.C3Esetp_.css @@ -0,0 +1 @@ +.w-node-err[data-v-44aae54f]{border:1px solid #f56c6c;box-shadow:0 0 5px #f56c6c!important}.w-org-items[data-v-44aae54f]{display:flex;align-items:center;flex-wrap:wrap}.w-org-items>div[data-v-44aae54f]{display:flex;align-items:center;margin:5px;padding:3px 5px;border-radius:15px;background-color:#f5f6f6}.w-org-items>div .w-avatar-user[data-v-44aae54f]{background-color:var(--el-color-primary)}.w-org-items>div .w-avatar-dept[data-v-44aae54f],.w-org-items>div .w-avatar-role[data-v-44aae54f]{background:none}.w-org-items>div .el-avatar[data-v-44aae54f]{margin-right:3px}.w-org-items>div .el-avatar span[data-v-44aae54f]{transform:scale(.5);position:absolute;display:flex;align-items:center}.w-org-items>div i[data-v-44aae54f]{cursor:pointer;padding:2px;margin-left:2px}.w-org-items>div i[data-v-44aae54f]:hover{background-color:#c4c4c4;border-radius:50%} diff --git a/web/dist/assets/_plugin-vue_export-helper.DlAUqK2U.js b/web/dist/assets/_plugin-vue_export-helper.DlAUqK2U.js new file mode 100644 index 0000000000000000000000000000000000000000..718edd3390466491f5ea1dd180e906a0933671d4 --- /dev/null +++ b/web/dist/assets/_plugin-vue_export-helper.DlAUqK2U.js @@ -0,0 +1 @@ +const s=(t,r)=>{const o=t.__vccOpts||t;for(const[c,e]of r)o[c]=e;return o};export{s as _}; diff --git a/web/dist/assets/account.CY4fFktS.css b/web/dist/assets/account.CY4fFktS.css new file mode 100644 index 0000000000000000000000000000000000000000..554d3ea2ed8faf7fedd85f838f6eb4d09336e7d0 --- /dev/null +++ b/web/dist/assets/account.CY4fFktS.css @@ -0,0 +1 @@ +.login-content-form[data-v-c978d4da]{margin-top:20px}.login-content-form .login-animation1[data-v-c978d4da]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.1s}.login-content-form .login-animation2[data-v-c978d4da]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.2s}.login-content-form .login-animation3[data-v-c978d4da]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.3s}.login-content-form .login-animation4[data-v-c978d4da]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.4s}.login-content-form .login-content-password[data-v-c978d4da]{display:inline-block;width:20px;cursor:pointer}.login-content-form .login-content-password[data-v-c978d4da]:hover{color:#909399}.login-content-form .login-content-captcha[data-v-c978d4da]{width:100%;padding:0;font-weight:700;letter-spacing:5px}.login-content-form .login-content-submit[data-v-c978d4da]{width:100%;letter-spacing:2px;font-weight:800;margin-top:15px} diff --git a/web/dist/assets/account.qOJbL1yX.js b/web/dist/assets/account.qOJbL1yX.js new file mode 100644 index 0000000000000000000000000000000000000000..f9f32f784afc0e33ec929a6a48bb49dd58fb0cf9 --- /dev/null +++ b/web/dist/assets/account.qOJbL1yX.js @@ -0,0 +1 @@ +import{d as N,T as V,s as A,v as E,z as $,g as M,c as P,x as z,y as O,h as t,a as R,o as k,k as a,J as q,w as o,b as j,e as F,f as G,K as J,a0 as L,G as H}from"./vue.DmuWcDrn.js";import{a0 as Q,u as W,a1 as T,H as U,g as X,a2 as Y,S as Z,a3 as x,a4 as ee,G as ae,D as oe,b as se,N as ne}from"./index.XK2ik2qb.js";import{a as te}from"./formatTime.in1fXasu.js";import{g as K,l as le}from"./api.DMCQHntY.js";import{M as re}from"./md5.DLPczxzP.js";import{_ as ce}from"./_plugin-vue_export-helper.DlAUqK2U.js";const ie=N({name:"loginAccount",setup(){const{t:e}=Q.useI18n(),s=W(),{themeConfig:S}=V(s),{userInfos:b}=V(T()),p=A(),_=E(),n=$({isShowPassword:!1,ruleForm:{username:"",password:"",captcha:"",captchaKey:"",captchaImgBase:""},loading:{signIn:!1}}),m=$({username:[{required:!0,message:"请填写账号",trigger:"blur"}],password:[{required:!0,message:"请填写密码",trigger:"blur"}],captcha:[{required:!0,message:"请填写验证码",trigger:"blur"}]}),r=M(),i=P(()=>te(new Date)),w=P(()=>U().systemConfig["base.captcha_state"]),C=async()=>{K().then(l=>{n.ruleForm.captchaImgBase=l.data.image_base,n.ruleForm.captchaKey=l.data.key})},d=async()=>{window.open(X("/api/system/apply_for_trial/"))},y=async()=>{n.ruleForm.captcha="",K().then(l=>{n.ruleForm.captchaImgBase=l.data.image_base,n.ruleForm.captchaKey=l.data.key})},g=async()=>{r.value&&await r.value.validate(l=>{l?le({...n.ruleForm,password:re.hashStr(n.ruleForm.password)}).then(u=>{if(u.code===2e3){const{data:h}=u;if(Y.set("username",u.data.username),Z.set("token",u.data.access),T().setPwdChangeCount(h.pwd_change_count),h.pwd_change_count==0)return _.push("/login");S.value.isRequestRoutes?(ee(),f()):(x(),f())}}).catch(u=>{y()}):ae("请填写登录信息")})},f=()=>{var h,B,I,v;oe().getSystemDictionarys();let l=i.value;if(b.value.pwd_change_count>0){(h=p.query)!=null&&h.redirect?_.push({path:(B=p.query)==null?void 0:B.redirect,query:Object.keys((I=p.query)==null?void 0:I.params).length>0?JSON.parse((v=p.query)==null?void 0:v.params):""}):_.push("/"),n.loading.signIn=!0;const D=e("message.signInText");se.success(`${l},${D}`)}ne.start()};return z(()=>{C(),U().getSystemConfigs()}),{refreshCaptcha:y,loginClick:g,loginSuccess:f,isShowCaptcha:w,state:n,formRef:r,rules:m,applyBtnClick:d,showApply:()=>window.location.href.indexOf("public")!=-1,...O(n)}}}),ue={key:0,style:{"text-align":"center"}};function pe(e,s,S,b,p,_){const n=t("ele-User"),m=t("el-icon"),r=t("el-input"),i=t("el-form-item"),w=t("ele-Unlock"),C=t("ele-Position"),d=t("el-col"),y=t("el-image"),g=t("el-button"),f=t("el-form");return k(),R(H,null,[a(f,{ref:"formRef",size:"large",class:"login-content-form",model:e.state.ruleForm,rules:e.rules,onKeyup:L(e.loginClick,["enter"])},{default:o(()=>[a(i,{class:"login-animation1",prop:"username"},{default:o(()=>[a(r,{type:"text",placeholder:e.$t("message.account.accountPlaceholder1"),modelValue:e.ruleForm.username,"onUpdate:modelValue":s[0]||(s[0]=c=>e.ruleForm.username=c),clearable:"",autocomplete:"off"},{prefix:o(()=>[a(m,{class:"el-input__icon"},{default:o(()=>[a(n)]),_:1})]),_:1},8,["placeholder","modelValue"])]),_:1}),a(i,{class:"login-animation2",prop:"password"},{default:o(()=>[a(r,{type:e.isShowPassword?"text":"password",placeholder:e.$t("message.account.accountPlaceholder2"),modelValue:e.ruleForm.password,"onUpdate:modelValue":s[2]||(s[2]=c=>e.ruleForm.password=c)},{prefix:o(()=>[a(m,{class:"el-input__icon"},{default:o(()=>[a(w)]),_:1})]),suffix:o(()=>[F("i",{class:G(["iconfont el-input__icon login-content-password",e.isShowPassword?"icon-yincangmima":"icon-xianshimima"]),onClick:s[1]||(s[1]=c=>e.isShowPassword=!e.isShowPassword)},null,2)]),_:1},8,["type","placeholder","modelValue"])]),_:1}),e.isShowCaptcha?(k(),j(i,{key:0,class:"login-animation3",prop:"captcha"},{default:o(()=>[a(d,{span:15},{default:o(()=>[a(r,{type:"text",maxlength:"4",placeholder:e.$t("message.account.accountPlaceholder3"),modelValue:e.ruleForm.captcha,"onUpdate:modelValue":s[3]||(s[3]=c=>e.ruleForm.captcha=c),clearable:"",autocomplete:"off"},{prefix:o(()=>[a(m,{class:"el-input__icon"},{default:o(()=>[a(C)]),_:1})]),_:1},8,["placeholder","modelValue"])]),_:1}),a(d,{span:1}),a(d,{span:8},{default:o(()=>[a(g,{class:"login-content-captcha"},{default:o(()=>[a(y,{src:e.ruleForm.captchaImgBase,onClick:e.refreshCaptcha},null,8,["src","onClick"])]),_:1})]),_:1})]),_:1})):q("",!0),a(i,{class:"login-animation4"},{default:o(()=>[a(g,{type:"primary",class:"login-content-submit",round:"",onClick:e.loginClick,loading:e.loading.signIn},{default:o(()=>[F("span",null,J(e.$t("message.account.accountBtnText")),1)]),_:1},8,["onClick","loading"])]),_:1})]),_:1},8,["model","rules","onKeyup"]),e.showApply()?(k(),R("div",ue,[a(g,{class:"login-content-apply",link:"",type:"primary",plain:"",round:"",onClick:e.applyBtnClick},{default:o(()=>s[4]||(s[4]=[F("span",null,"申请试用",-1)])),_:1},8,["onClick"])])):q("",!0)],64)}const ye=ce(ie,[["render",pe],["__scopeId","data-v-c978d4da"]]);export{ye as default}; diff --git a/web/dist/assets/addContent.CXxahEvw.js b/web/dist/assets/addContent.CXxahEvw.js new file mode 100644 index 0000000000000000000000000000000000000000..a59fd2833bd426a03e8d01e7098546e70ac04579 --- /dev/null +++ b/web/dist/assets/addContent.CXxahEvw.js @@ -0,0 +1 @@ +import{_ as o}from"./addContent.vue_vue_type_script_setup_true_lang.Do7TlUJ8.js";import"./api.BZTxDs4c.js";import"./index.XK2ik2qb.js";import"./vue.DmuWcDrn.js";import"./associationTable.vue_vue_type_script_setup_true_lang.CRkFTsQv.js";import"./dictionary.DnyXy1XL.js";export{o as default}; diff --git a/web/dist/assets/addContent.vue_vue_type_script_setup_true_lang.Do7TlUJ8.js b/web/dist/assets/addContent.vue_vue_type_script_setup_true_lang.Do7TlUJ8.js new file mode 100644 index 0000000000000000000000000000000000000000..4ceefc09d000f53818e612ad38c6d1f46958e9c8 --- /dev/null +++ b/web/dist/assets/addContent.vue_vue_type_script_setup_true_lang.Do7TlUJ8.js @@ -0,0 +1 @@ +import{G as B,A as G}from"./api.BZTxDs4c.js";import{_ as N}from"./associationTable.vue_vue_type_script_setup_true_lang.CRkFTsQv.js";import{s as $}from"./index.XK2ik2qb.js";import{d as z}from"./dictionary.DnyXy1XL.js";import{d as M,z as U,g as V,i as P,x as S,h as m,a as f,o as u,k as o,w as r,b as y,J as x,u as t,G as c,H as g,m as F}from"./vue.DmuWcDrn.js";const H={style:{padding:"20px"}},J={key:1},W=M({__name:"addContent",setup(Z){let a=U({parent:null,title:null,key:null,form_item_type:"",rule:null,placeholder:null});const k=V(),_=V(),w=U({parent:[{required:!0,message:"请选择"}],title:[{required:!0,message:"请输入"}],key:[{required:!0,message:"请输入"},{pattern:/^[A-Za-z0-9_]+$/,message:"请输入数字、字母或下划线"}],form_item_type:[{required:!0,message:"请输入"}]});let v=V([]),q=V([{label:"必填项",value:'{"required": true, "message": "必填项不能为空"}'},{label:"邮箱",value:'{ "type": "email", "message": "请输入正确的邮箱地址"}'},{label:"URL地址",value:'{ "type": "url", "message": "请输入正确的URL地址"}'}]);const C=()=>{B({parent__isnull:!0,limit:999}).then(s=>{v.value=s.data})},O=P("refreshView"),R=async s=>{s&&await s.validate((l,d)=>{l?G(a).then(i=>{i.code==2e3&&($("新增成功"),O())}):console.log("error submit!",d)})},L=()=>new Promise(function(s,l){if(_){if(!_.onSubmit())return l(!1);const{formObj:d}=_;return a.setting=d,s(!0)}else return s(!0)});return S(()=>{C()}),(s,l)=>{const d=m("el-option"),i=m("el-select"),n=m("el-form-item"),b=m("el-input"),T=m("el-input-number"),j=m("el-button"),A=m("el-form");return u(),f("div",H,[o(A,{ref_key:"formRef",ref:k,model:t(a),rules:w,"label-width":"80px"},{default:r(()=>[o(n,{label:"所属分组",prop:"parent"},{default:r(()=>[o(i,{modelValue:t(a).parent,"onUpdate:modelValue":l[0]||(l[0]=e=>t(a).parent=e),placeholder:"请选择分组",clearable:""},{default:r(()=>[(u(!0),f(c,null,g(t(v),(e,p)=>(u(),y(d,{label:e.title,value:e.id,key:p},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(n,{label:"标题",prop:"title"},{default:r(()=>[o(b,{modelValue:t(a).title,"onUpdate:modelValue":l[1]||(l[1]=e=>t(a).title=e),placeholder:"请输入",clearable:""},null,8,["modelValue"])]),_:1}),o(n,{label:"key值",prop:"key"},{default:r(()=>[o(b,{modelValue:t(a).key,"onUpdate:modelValue":l[2]||(l[2]=e=>t(a).key=e),placeholder:"请输入",clearable:""},null,8,["modelValue"])]),_:1}),o(n,{label:"表单类型",prop:"form_item_type"},{default:r(()=>[o(i,{modelValue:t(a).form_item_type,"onUpdate:modelValue":l[3]||(l[3]=e=>t(a).form_item_type=e),placeholder:"请选择",clearable:""},{default:r(()=>[(u(!0),f(c,null,g(t(z)("config_form_type"),(e,p)=>(u(),y(d,{label:e.label,value:e.value,key:p},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),[4,5,6].indexOf(t(a).form_item_type)>-1?(u(),y(n,{key:0,label:"字典key",prop:"setting",rules:[{required:!0,message:"不能为空"}]},{default:r(()=>[o(b,{modelValue:t(a).setting,"onUpdate:modelValue":l[4]||(l[4]=e=>t(a).setting=e),placeholder:"请输入dictionary中key值",clearable:""},null,8,["modelValue"])]),_:1})):x("",!0),[13,14].indexOf(t(a).form_item_type)>-1?(u(),f("div",J,[o(N,{ref_key:"associationTableRef",ref:_,modelValue:t(a).setting,"onUpdate:modelValue":l[5]||(l[5]=e=>t(a).setting=e),onUpdateVal:L},null,8,["modelValue"])])):x("",!0),o(n,{label:"校验规则"},{default:r(()=>[o(i,{modelValue:t(a).rule,"onUpdate:modelValue":l[6]||(l[6]=e=>t(a).rule=e),multiple:"",placeholder:"请选择(可多选)",clearable:""},{default:r(()=>[(u(!0),f(c,null,g(t(q),(e,p)=>(u(),y(d,{label:e.label,value:e.value,key:p},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(n,{label:"提示信息",prop:"placeholder"},{default:r(()=>[o(b,{modelValue:t(a).placeholder,"onUpdate:modelValue":l[7]||(l[7]=e=>t(a).placeholder=e),placeholder:"请输入",clearable:""},null,8,["modelValue"])]),_:1}),o(n,{label:"排序",prop:"sort"},{default:r(()=>[o(T,{modelValue:t(a).sort,"onUpdate:modelValue":l[8]||(l[8]=e=>t(a).sort=e),min:0,max:99},null,8,["modelValue"])]),_:1}),o(n,null,{default:r(()=>[o(j,{type:"primary",onClick:l[9]||(l[9]=e=>R(k.value))},{default:r(()=>l[10]||(l[10]=[F("立即创建")])),_:1})]),_:1})]),_:1},8,["model","rules"])])}}});export{W as _}; diff --git a/web/dist/assets/addTabs.DFe8wYvR.js b/web/dist/assets/addTabs.DFe8wYvR.js new file mode 100644 index 0000000000000000000000000000000000000000..bd78cf2e31f4adda1203ff9bc52c40ab88fc0a57 --- /dev/null +++ b/web/dist/assets/addTabs.DFe8wYvR.js @@ -0,0 +1 @@ +import{_ as o}from"./addTabs.vue_vue_type_script_setup_true_lang.B-lxowTP.js";import"./api.BZTxDs4c.js";import"./index.XK2ik2qb.js";import"./vue.DmuWcDrn.js";export{o as default}; diff --git a/web/dist/assets/addTabs.vue_vue_type_script_setup_true_lang.B-lxowTP.js b/web/dist/assets/addTabs.vue_vue_type_script_setup_true_lang.B-lxowTP.js new file mode 100644 index 0000000000000000000000000000000000000000..c2ee45c90d77f8062b9a36870d8cd36d59e006e3 --- /dev/null +++ b/web/dist/assets/addTabs.vue_vue_type_script_setup_true_lang.B-lxowTP.js @@ -0,0 +1 @@ +import{A as V}from"./api.BZTxDs4c.js";import{s as b}from"./index.XK2ik2qb.js";import{d as g,z as f,g as v,i as w,h as m,a as x,o as C,k as t,w as l,u as s,m as p}from"./vue.DmuWcDrn.js";const A={style:{padding:"20px"}},N=g({__name:"addTabs",setup(j){let o=f({title:null,key:null});const i=v(),_=f({title:[{required:!0,message:"请输入"}],key:[{required:!0,message:"请输入"},{pattern:/^[A-Za-z0-9]+$/,message:"只能是英文和数字"}]}),c=w("refreshView"),k=async u=>{u&&await u.validate((e,r)=>{e?V(o).then(n=>{n.code==2e3&&(b("新增成功"),c())}):console.log("error submit!",r)})};return(u,e)=>{const r=m("el-input"),n=m("el-form-item"),d=m("el-button"),y=m("el-form");return C(),x("div",A,[t(y,{ref_key:"formRef",ref:i,model:s(o),rules:_,"label-width":"80px"},{default:l(()=>[t(n,{label:"标题",prop:"title"},{default:l(()=>[t(r,{modelValue:s(o).title,"onUpdate:modelValue":e[0]||(e[0]=a=>s(o).title=a)},null,8,["modelValue"])]),_:1}),t(n,{label:"key值",prop:"key"},{default:l(()=>[t(r,{modelValue:s(o).key,"onUpdate:modelValue":e[1]||(e[1]=a=>s(o).key=a)},null,8,["modelValue"])]),_:1}),t(n,null,{default:l(()=>[t(d,{type:"primary",onClick:e[2]||(e[2]=a=>k(i.value))},{default:l(()=>e[3]||(e[3]=[p("立即创建")])),_:1}),t(d,null,{default:l(()=>e[4]||(e[4]=[p("取消")])),_:1})]),_:1})]),_:1},8,["model","rules"])])}}});export{N as _}; diff --git a/web/dist/assets/api.BMXTwPHc.js b/web/dist/assets/api.BMXTwPHc.js new file mode 100644 index 0000000000000000000000000000000000000000..15c6225faab9614343bc5f8957ca5efe554c4ef2 --- /dev/null +++ b/web/dist/assets/api.BMXTwPHc.js @@ -0,0 +1 @@ +import{M as o}from"./vue.DmuWcDrn.js";import{r as t,X as n}from"./index.XK2ik2qb.js";const s={drawerVisible:!1,roleId:void 0,roleName:void 0,users:[]},i=o("RoleDrawerStores",{state:()=>({...s}),actions:{handleDrawerOpen(e){this.drawerVisible=!0,this.set_state(e)},set_state(e){this.roleName=e.name,this.roleId=e.id,this.users=e.users},handleDrawerClose(){Object.assign(this.$state,s)}}});function l(e){return t({url:"/api/system/role_menu_button_permission/get_role_menu/",method:"get",params:e}).then(r=>n.toArrayTree(r.data,{key:"id",parentKey:"parent",children:"children",strict:!1}))}function m(e){return t({url:"/api/system/role_menu_button_permission/set_role_menu/",method:"put",data:e})}function _(e){return t({url:"/api/system/role_menu_button_permission/get_role_menu_btn_field/",method:"get",params:e})}function p(e){return t({url:"/api/system/role_menu_button_permission/set_role_menu_btn/",method:"put",data:e})}function d(e,r){return t({url:`/api/system/role_menu_button_permission/${e}/set_role_menu_field/`,method:"put",data:r})}function h(e){return t({url:"/api/system/role_menu_button_permission/set_role_menu_btn_data_range/",method:"put",data:e})}function c(e){return t({url:"/api/system/role_menu_button_permission/role_to_dept_all/",method:"get",params:e})}function f(){return t({url:"/api/system/user/",method:"get",params:{limit:999}}).then(e=>n.map(e.data,r=>({id:r.id,name:r.name})))}function b(e,r){return t({url:`/api/system/role/${e}/set_role_users/`,method:"put",data:r})}export{i as R,l as a,_ as b,b as c,c as d,h as e,p as f,f as g,d as h,m as s}; diff --git a/web/dist/assets/api.BZTxDs4c.js b/web/dist/assets/api.BZTxDs4c.js new file mode 100644 index 0000000000000000000000000000000000000000..03e5254418a45c75c4f2822ff2398980ca4a7777 --- /dev/null +++ b/web/dist/assets/api.BZTxDs4c.js @@ -0,0 +1 @@ +import{r as e}from"./index.XK2ik2qb.js";const r="/api/system/system_config/";function a(t){return e({url:r,method:"get",params:t})}function s(t){return e({url:r,method:"post",data:t})}function u(t){return e({url:r+t.id+"/",method:"put",data:t})}function o(t){return e({url:r+t+"/",method:"delete",data:{id:t}})}function d(t){return e({url:r+"save_content/",method:"put",data:t})}export{s as A,o as D,a as G,u as U,d as s}; diff --git a/web/dist/assets/api.CQml_ETa.js b/web/dist/assets/api.CQml_ETa.js new file mode 100644 index 0000000000000000000000000000000000000000..be409266c8171f229c3927bcc38c6db1455050f7 --- /dev/null +++ b/web/dist/assets/api.CQml_ETa.js @@ -0,0 +1 @@ +import{r as e}from"./index.XK2ik2qb.js";import"./vue.DmuWcDrn.js";const r="/api/dvadmin3_flow/flow_info/";function u(t){return e({url:r,method:"get",params:t})}function d(t){return e({url:r+t,method:"get"})}function a(t){return e({url:r,method:"post",data:t})}function i(t){return e({url:r+t.id+"/",method:"put",data:t})}function f(t){return e({url:r+t+"/",method:"delete",data:{id:t}})}export{a as AddObj,f as DelObj,u as GetList,d as GetObj,i as UpdateObj,r as apiPrefix}; diff --git a/web/dist/assets/api.CXQZ_GZz.js b/web/dist/assets/api.CXQZ_GZz.js new file mode 100644 index 0000000000000000000000000000000000000000..82cf9fc9f5743485a2c048f089ae433bdfa26845 --- /dev/null +++ b/web/dist/assets/api.CXQZ_GZz.js @@ -0,0 +1 @@ +import{r as e}from"./index.XK2ik2qb.js";import"./vue.DmuWcDrn.js";const r="/api/dvadmin3_flow/flow_data/get_all_flow_data/";function n(t){return e({url:r,method:"get",params:t})}function u(t){return e({url:r+t,method:"get"})}function d(t){return e({url:r,method:"post",data:t})}function i(t){return e({url:r+t.id+"/",method:"put",data:t})}function l(t){return e({url:r+t+"/",method:"delete",data:{id:t}})}export{d as AddObj,l as DelObj,n as GetList,u as GetObj,i as UpdateObj,r as apiPrefix}; diff --git a/web/dist/assets/api.CYNTogYL.js b/web/dist/assets/api.CYNTogYL.js new file mode 100644 index 0000000000000000000000000000000000000000..2aeab549d0b60def1de811e9abe7aa2e5924fd46 --- /dev/null +++ b/web/dist/assets/api.CYNTogYL.js @@ -0,0 +1 @@ +import{r as e}from"./index.XK2ik2qb.js";const r="/api/system/menu/";function u(t){return e({url:r,method:"get",params:t})}function o(t){return e({url:r,method:"post",data:t})}function a(t){return e({url:r+t.id+"/",method:"put",data:t})}function d(t){return e({url:r+t+"/",method:"delete"})}function m(t){return e({url:r,method:"get",params:t})}function s(t){return e({url:r+"move_up/",method:"post",data:t})}function i(t){return e({url:r+"move_down/",method:"post",data:t})}export{o as A,d as D,u as G,a as U,i as a,m as l,s as m}; diff --git a/web/dist/assets/api.CgqMcKh6.js b/web/dist/assets/api.CgqMcKh6.js new file mode 100644 index 0000000000000000000000000000000000000000..7e691a5b1e1a6316aeba69f485d95a29157574de --- /dev/null +++ b/web/dist/assets/api.CgqMcKh6.js @@ -0,0 +1 @@ +import{r as e}from"./index.XK2ik2qb.js";import"./vue.DmuWcDrn.js";const r="/api/dvadmin_celery/task_detail/";function a(t){return e({url:r,method:"get",params:t})}function d(t){return e({url:r+t,method:"get"})}function o(t){return e({url:r,method:"post",data:t})}function i(t){return e({url:r+t.id+"/",method:"put",data:t})}function m(t){return e({url:r+t+"/",method:"delete",data:{id:t}})}export{o as AddObj,m as DelObj,a as GetList,d as GetObj,i as UpdateObj,r as apiPrefix}; diff --git a/web/dist/assets/api.Cpc88qFC.js b/web/dist/assets/api.Cpc88qFC.js new file mode 100644 index 0000000000000000000000000000000000000000..175f4acc2a686707e00e11b9a4ece85527b5c2de --- /dev/null +++ b/web/dist/assets/api.Cpc88qFC.js @@ -0,0 +1 @@ +import{r as e}from"./index.XK2ik2qb.js";import"./vue.DmuWcDrn.js";const r="/api/dvadmin3_flow/flow_data/my_pending_handle/";function d(t){return t.handle_status=0,e({url:r,method:"get",params:t})}function u(t){return e({url:r+t,method:"get",params:{handle_status:0}})}function o(t){return e({url:r,method:"post",data:t})}function i(t){return e({url:r+t.id+"/",method:"put",data:t})}function l(t){return e({url:r+t+"/",method:"delete",data:{id:t}})}export{o as AddObj,l as DelObj,d as GetList,u as GetObj,i as UpdateObj,r as apiPrefix}; diff --git a/web/dist/assets/api.DG102jwl.js b/web/dist/assets/api.DG102jwl.js new file mode 100644 index 0000000000000000000000000000000000000000..dd8cfedaedd97d80a911c7e83fcecc8bc7d7d595 --- /dev/null +++ b/web/dist/assets/api.DG102jwl.js @@ -0,0 +1 @@ +import{r}from"./index.XK2ik2qb.js";import"./vue.DmuWcDrn.js";const e="/api/dvadmin_celery/task/";function u(){return r({url:e+"field_permission/",method:"get"})}function i(t){return r({url:e,method:"get",params:t})}function s(t){return r({url:e+t,method:"get"})}function d(t){return t.kwargs&&(t.kwargs=JSON.stringify(t.kwargs)),r({url:e,method:"post",data:t})}function o(t){return t.kwargs&&(t.kwargs=JSON.stringify(t.kwargs)),r({url:e+t.id+"/",method:"put",data:t})}function f(t){return r({url:e+t+"/",method:"delete",data:{id:t}})}function m(t){return r({url:e+t.id+"/update_status/",method:"post",data:t})}function p(t){return r({url:e+t.id+"/run_task/",method:"post",data:t})}export{d as AddObj,f as DelObj,i as GetList,s as GetObj,u as GetPermission,p as RunTask,o as UpdateObj,m as UpdateTask,e as apiPrefix}; diff --git a/web/dist/assets/api.DMCQHntY.js b/web/dist/assets/api.DMCQHntY.js new file mode 100644 index 0000000000000000000000000000000000000000..e02128735225cc095a0149cbc8a3f08c85cd76ac --- /dev/null +++ b/web/dist/assets/api.DMCQHntY.js @@ -0,0 +1 @@ +import{r as a}from"./index.XK2ik2qb.js";function r(){return a({url:"/api/captcha/",method:"get"})}function e(t){return a({url:"/api/login/",method:"post",data:t})}function n(t){return a({url:"/api/system/user/login_change_password/",method:"post",data:t})}export{n as a,r as g,e as l}; diff --git a/web/dist/assets/api.DWbfkKZe.js b/web/dist/assets/api.DWbfkKZe.js new file mode 100644 index 0000000000000000000000000000000000000000..b569d1de39b38b2c6af1a21c5350a6bc0b3de2e2 --- /dev/null +++ b/web/dist/assets/api.DWbfkKZe.js @@ -0,0 +1 @@ +import{r as e}from"./index.XK2ik2qb.js";import"./vue.DmuWcDrn.js";const r="/api/dvadmin3_flow/flow_data/my_pending_handle/";function d(t){return t.handle_status=3,e({url:r,method:"get",params:t})}function o(t){return e({url:r+t,method:"get"})}function u(t){return e({url:r,method:"post",data:t})}function i(t){return e({url:r+t.id+"/",method:"put",data:t})}function l(t){return e({url:r+t+"/",method:"delete",data:{id:t}})}export{u as AddObj,l as DelObj,d as GetList,o as GetObj,i as UpdateObj,r as apiPrefix}; diff --git a/web/dist/assets/api.Duj3eJXG.js b/web/dist/assets/api.Duj3eJXG.js new file mode 100644 index 0000000000000000000000000000000000000000..95cf968d09b9f9538a918539fcc8f93826c9232e --- /dev/null +++ b/web/dist/assets/api.Duj3eJXG.js @@ -0,0 +1 @@ +import{r as e}from"./index.XK2ik2qb.js";import"./vue.DmuWcDrn.js";const r="/api/dvadmin3_flow/flow_data/my_pending_handle/";function d(t){return t.handle_status=2,e({url:r,method:"get",params:t})}function o(t){return e({url:r+t,method:"get"})}function u(t){return e({url:r,method:"post",data:t})}function i(t){return e({url:r+t.id+"/",method:"put",data:t})}function l(t){return e({url:r+t+"/",method:"delete",data:{id:t}})}export{u as AddObj,l as DelObj,d as GetList,o as GetObj,i as UpdateObj,r as apiPrefix}; diff --git a/web/dist/assets/api.KWPB0rj1.js b/web/dist/assets/api.KWPB0rj1.js new file mode 100644 index 0000000000000000000000000000000000000000..2b528a593d0c67caa2db703be490afe1c31b29b4 --- /dev/null +++ b/web/dist/assets/api.KWPB0rj1.js @@ -0,0 +1 @@ +import{r as e}from"./index.XK2ik2qb.js";const r="/api/system/dept/";function a(t){return e({url:r,method:"get",params:t})}function n(t){return e({url:r,method:"post",data:t})}function u(t){return e({url:r+t.id+"/",method:"put",data:t})}function d(t){return e({url:r+t+"/",method:"delete"})}function s(t){return e({url:r,method:"get",params:t})}function p(t){return e({url:r+"move_up/",method:"post",data:t})}function m(t){return e({url:r+"move_down/",method:"post",data:t})}export{n as A,d as D,a as G,u as U,m as a,p as d,s as l}; diff --git a/web/dist/assets/api.Rm0uCpyl.js b/web/dist/assets/api.Rm0uCpyl.js new file mode 100644 index 0000000000000000000000000000000000000000..e0fbf9ec1b4f23d4438a79bebae6f6bafd57bbde --- /dev/null +++ b/web/dist/assets/api.Rm0uCpyl.js @@ -0,0 +1 @@ +import{r as e}from"./index.XK2ik2qb.js";import"./vue.DmuWcDrn.js";const r="/api/dvadmin3_flow/flow_data/my_pending_handle/";function d(t){return t.handle_status=1,e({url:r,method:"get",params:t})}function o(t){return e({url:r+t,method:"get"})}function u(t){return e({url:r,method:"post",data:t})}function i(t){return e({url:r+t.id+"/",method:"put",data:t})}function l(t){return e({url:r+t+"/",method:"delete",data:{id:t}})}export{u as AddObj,l as DelObj,d as GetList,o as GetObj,i as UpdateObj,r as apiPrefix}; diff --git a/web/dist/assets/api.ixj0nmKJ.js b/web/dist/assets/api.ixj0nmKJ.js new file mode 100644 index 0000000000000000000000000000000000000000..f3b832c991d0df9774a263aaae6fc80523b5184f --- /dev/null +++ b/web/dist/assets/api.ixj0nmKJ.js @@ -0,0 +1 @@ +import{r as u}from"./index.XK2ik2qb.js";function e(t){return u({url:"/api/system/column/",method:"get",params:t})}function o(t){return u({url:"/api/system/column/auto_match_fields/",method:"post",data:t})}function s(t){return u({url:"/api/system/column/",method:"post",data:t})}function m(t){return u({url:`/api/system/column/${t}/`,method:"delete"})}function n(t){return u({url:`/api/system/column/${t.id}/`,method:"put",data:t})}export{s as a,o as b,m as d,e as g,n as u}; diff --git a/web/dist/assets/aside.D4ng9uQr.js b/web/dist/assets/aside.D4ng9uQr.js new file mode 100644 index 0000000000000000000000000000000000000000..fd8fab9f22a9ecc975f2e4e805668fa6fbf39a32 --- /dev/null +++ b/web/dist/assets/aside.D4ng9uQr.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index.CCNs2Hev.js","assets/vue.DmuWcDrn.js","assets/index.XK2ik2qb.js","assets/index.JncG-tMh.css","assets/logo-mini.Cm36vqeJ.js","assets/_plugin-vue_export-helper.DlAUqK2U.js","assets/index.DayMOj0i.css","assets/vertical.DfG__Lvt.js"])))=>i.map(i=>d[i]); +import{M as P,u as q,O as z,p as u,P as H,_ as S}from"./index.XK2ik2qb.js";import{d as I,s as $,g as F,T as p,z as j,c as x,I as J,C as w,h as R,p as G,N as K,u as v,a as Q,o as A,k as y,w as M,b as U,J as X,q as T,f as Y}from"./vue.DmuWcDrn.js";const Z={class:"h100"},ee=I({name:"layoutAside"}),ne=I({...ee,setup(te){const B=$(),E=T(()=>S(()=>import("./index.CCNs2Hev.js"),__vite__mapDeps([0,1,2,3,4,5,6]))),V=T(()=>S(()=>import("./vertical.DfG__Lvt.js"),__vite__mapDeps([7,2,1,3]))),d=F(),f=F(0),_=P(),W=q(),k=z(),{routesList:r}=p(_),{themeConfig:n}=p(W),{isTagsViewCurrenFull:D}=p(k),l=j({menuList:[],clientWidth:0}),N=x(()=>{const{layout:e,isCollapse:t,menuBar:s}=n.value,o=["#FFFFFF","#FFF","#fff","#ffffff"].includes(s)?"layout-el-aside-br-color":"";if(l.clientWidth<=1e3)if(t){document.body.setAttribute("class","el-popup-parent--hidden");const g=document.querySelector(".layout-container"),a=document.createElement("div");return a.setAttribute("class","layout-aside-mobile-mode"),g.appendChild(a),a.addEventListener("click",m),[o,"layout-aside-mobile","layout-aside-mobile-open"]}else return m(),[o,"layout-aside-mobile","layout-aside-mobile-close"];else return e==="columns"?t?[o,"layout-aside-pc-1"]:[o,"layout-aside-pc-220"]:t?[o,"layout-aside-pc-64"]:[o,"layout-aside-pc-220"]}),O=x(()=>{let{layout:e,isShowLogo:t}=n.value;return t&&e==="defaults"||t&&e==="columns"}),m=()=>{const e=document.querySelector(".layout-aside-mobile-mode");e==null||e.setAttribute("style","animation: error-img-two 0.3s"),setTimeout(()=>{var s;(s=e==null?void 0:e.parentNode)==null||s.removeChild(e)},300),document.body.clientWidth<1e3&&(n.value.isCollapse=!1),document.body.setAttribute("class","")},C=(e,t)=>{for(let s=0;s0&&(i.children.findIndex(a=>a.path===t)!==-1||C(i.children,t)!==null))return s}return null},c=(e="")=>{if(n.value.layout==="columns")return!1;let{layout:t,isClassicSplitMenu:s}=n.value;t==="classic"&&s?(f.value=C(r.value,e||B.path)||0,l.menuList=h(r.value[f.value].children||[r.value[f.value]])):l.menuList=h(r.value)},h=e=>e.filter(t=>{var s;return!((s=t.meta)!=null&&s.isHide)}).map(t=>(t=Object.assign({},t),t.children&&(t.children=h(t.children)),t)),b=e=>{l.clientWidth=e},L=e=>{let{layout:t}=n.value;if(t!=="columns")return!1;e||u.emit("restoreDefault"),_.setColumnsMenuHover(e)};return J(()=>{b(document.body.clientWidth),c(),u.on("setSendColumnsChildren",e=>{l.menuList=e.children}),u.on("setSendClassicChildren",e=>{let{layout:t,isClassicSplitMenu:s}=n.value;t==="classic"&&s&&(l.menuList=[],c(e.path))}),u.on("getBreadcrumbIndexSetFilterRoutes",()=>{c()}),u.on("layoutMobileResize",e=>{b(e.clientWidth),m()})}),w(n.value,e=>{e.isShowLogoChange!==e.isShowLogo&&d.value&&d.value.update()}),w(H.state,e=>{let{layout:t,isClassicSplitMenu:s}=e.themeConfig.themeConfig;if(t==="classic"&&s)return!1;c()},{deep:!0}),(e,t)=>{const s=R("el-scrollbar"),i=R("el-aside");return G((A(),Q("div",Z,[y(i,{class:Y(["layout-aside",N.value])},{default:M(()=>[O.value?(A(),U(v(E),{key:0})):X("",!0),y(s,{class:"flex-auto",ref_key:"layoutAsideScrollbarRef",ref:d,onMouseenter:t[0]||(t[0]=o=>L(!0)),onMouseleave:t[1]||(t[1]=o=>L(!1))},{default:M(()=>[y(v(V),{menuList:l.menuList},null,8,["menuList"])]),_:1},512)]),_:1},8,["class"])],512)),[[K,!v(D)]])}}});export{ne as default}; diff --git a/web/dist/assets/associationTable.OK4-bur0.js b/web/dist/assets/associationTable.OK4-bur0.js new file mode 100644 index 0000000000000000000000000000000000000000..95b59340af3c5ed83f82eee9fb1df14a4824a3b9 --- /dev/null +++ b/web/dist/assets/associationTable.OK4-bur0.js @@ -0,0 +1 @@ +import{_ as o}from"./associationTable.vue_vue_type_script_setup_true_lang.CRkFTsQv.js";import"./index.XK2ik2qb.js";import"./vue.DmuWcDrn.js";export{o as default}; diff --git a/web/dist/assets/associationTable.vue_vue_type_script_setup_true_lang.CRkFTsQv.js b/web/dist/assets/associationTable.vue_vue_type_script_setup_true_lang.CRkFTsQv.js new file mode 100644 index 0000000000000000000000000000000000000000..0c5503470ba0490a79e4342a916e7e9158b11c88 --- /dev/null +++ b/web/dist/assets/associationTable.vue_vue_type_script_setup_true_lang.CRkFTsQv.js @@ -0,0 +1 @@ +import"./index.XK2ik2qb.js";import{d as S,z,g as b,h as m,a as f,o as r,k as s,u as l,w as a,G as h,H as g,b as y,e as d,K as u}from"./vue.DmuWcDrn.js";const q={style:{float:"left"}},B={style:{float:"right",color:"#8492a6","font-size":"13px"}},N={style:{float:"left"}},O={style:{float:"right",color:"#8492a6","font-size":"13px"}},U={style:{float:"left"}},w={style:{float:"right",color:"#8492a6","font-size":"13px"}},R={style:{float:"left"}},j={style:{float:"right",color:"#8492a6","font-size":"13px"}},K=S({__name:"associationTable",props:["value"],emits:["updateVal"],setup(D,{emit:E}){let o=z({table:null,primarykey:null,field:null,searchField:null,oldSearchField:null});b("");let k=b([]),i=b([]);const v=b(),x=p=>{const{tableFields:t}=k.find(n=>n.table===p);i=t},F=p=>{const t=i.filter(n=>p.indexOf(n.field)>-1);o.searchField=t};return(p,t)=>{const n=m("el-option"),_=m("el-select"),c=m("el-form-item"),C=m("el-form");return r(),f("div",null,[s(C,{model:l(o),ref_key:"associationRef",ref:v},{default:a(()=>[s(c,{label:"关联表",prop:"table",rules:[{required:!0,message:"必填项",trigger:"blur"}]},{default:a(()=>[s(_,{modelValue:l(o).table,"onUpdate:modelValue":t[0]||(t[0]=e=>l(o).table=e),filterable:"",clearable:"",placeholder:"请选择",onChange:x},{default:a(()=>[(r(!0),f(h,null,g(l(k),e=>(r(),y(n,{key:e.table,label:e.tableName,value:e.table},{default:a(()=>[d("span",q,u(e.tableName),1),d("span",B,u(e.table),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),s(c,{label:"显示字段",prop:"field",rules:[{required:!0,message:"必填项",trigger:"blur"}]},{default:a(()=>[s(_,{modelValue:l(o).field,"onUpdate:modelValue":t[1]||(t[1]=e=>l(o).field=e),filterable:"",clearable:"",placeholder:"请选择"},{default:a(()=>[(r(!0),f(h,null,g(l(i),e=>(r(),y(n,{key:e.table,label:e.title,value:e.field},{default:a(()=>[d("span",N,u(e.field),1),d("span",O,u(e.title),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),s(c,{label:"储存字段",prop:"primarykey",rules:[{required:!0,message:"必填项",trigger:"blur"}]},{default:a(()=>[s(_,{modelValue:l(o).primarykey,"onUpdate:modelValue":t[2]||(t[2]=e=>l(o).primarykey=e),filterable:"",clearable:"",placeholder:"请选择"},{default:a(()=>[(r(!0),f(h,null,g(l(i),(e,V)=>(r(),y(n,{key:V,label:e.title,value:e.field},{default:a(()=>[d("span",U,u(e.field),1),d("span",w,u(e.title),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),s(c,{label:"过滤条件",prop:"oldSearchField",rules:[{required:!0,message:"必填项",trigger:"blur"}]},{default:a(()=>[s(_,{modelValue:l(o).oldSearchField,"onUpdate:modelValue":t[3]||(t[3]=e=>l(o).oldSearchField=e),multiple:"",filterable:"",clearable:"",placeholder:"请选择",onChange:F},{default:a(()=>[(r(!0),f(h,null,g(l(i),(e,V)=>(r(),y(n,{key:V,label:e.title,value:e.field},{default:a(()=>[d("span",R,u(e.field),1),d("span",j,u(e.title),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])])}}});export{K as _}; diff --git a/web/dist/assets/authFunction.CZ5a1pu0.js b/web/dist/assets/authFunction.CZ5a1pu0.js new file mode 100644 index 0000000000000000000000000000000000000000..30dac2b64cd2f74c075b4de10246ffcd43a46989 --- /dev/null +++ b/web/dist/assets/authFunction.CZ5a1pu0.js @@ -0,0 +1 @@ +import{B as s}from"./index.XK2ik2qb.js";function a(t){return s().data.some(o=>o===t)}export{a}; diff --git a/web/dist/assets/bakindex.BK2ZxFPm.css b/web/dist/assets/bakindex.BK2ZxFPm.css new file mode 100644 index 0000000000000000000000000000000000000000..365cf7b3a4dc5811dd8932a8b292ff7777ef6c32 --- /dev/null +++ b/web/dist/assets/bakindex.BK2ZxFPm.css @@ -0,0 +1 @@ +.home-container[data-v-36645091]{overflow:hidden}.home-container .home-card-one .home-card-item[data-v-36645091],.home-container .home-card-two .home-card-item[data-v-36645091],.home-container .home-card-three .home-card-item[data-v-36645091]{width:100%;height:130px;border-radius:4px;transition:all ease .3s;padding:20px;overflow:hidden;background:var(--el-color-white);color:var(--el-text-color-primary);border:1px solid var(--next-border-color-light)}.home-container .home-card-one .home-card-item[data-v-36645091]:hover,.home-container .home-card-two .home-card-item[data-v-36645091]:hover,.home-container .home-card-three .home-card-item[data-v-36645091]:hover{box-shadow:0 2px 12px var(--next-color-dark-hover);transition:all ease .3s}.home-container .home-card-one .home-card-item-icon[data-v-36645091],.home-container .home-card-two .home-card-item-icon[data-v-36645091],.home-container .home-card-three .home-card-item-icon[data-v-36645091]{width:70px;height:70px;border-radius:100%;flex-shrink:1}.home-container .home-card-one .home-card-item-icon i[data-v-36645091],.home-container .home-card-two .home-card-item-icon i[data-v-36645091],.home-container .home-card-three .home-card-item-icon i[data-v-36645091]{color:var(--el-text-color-placeholder)}.home-container .home-card-one .home-card-item-title[data-v-36645091],.home-container .home-card-two .home-card-item-title[data-v-36645091],.home-container .home-card-three .home-card-item-title[data-v-36645091]{font-size:15px;font-weight:700;height:30px}.home-container .home-card-one .home-one-animation0[data-v-36645091]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:0s}.home-container .home-card-one .home-one-animation1[data-v-36645091]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.1s}.home-container .home-card-one .home-one-animation2[data-v-36645091]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.2s}.home-container .home-card-one .home-one-animation3[data-v-36645091]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.3s}.home-container .home-card-two .home-card-item[data-v-36645091],.home-container .home-card-three .home-card-item[data-v-36645091]{height:400px;width:100%;overflow:hidden}.home-container .home-card-two .home-card-item .home-monitor[data-v-36645091],.home-container .home-card-three .home-card-item .home-monitor[data-v-36645091]{height:100%}.home-container .home-card-two .home-card-item .home-monitor .flex-warp-item[data-v-36645091],.home-container .home-card-three .home-card-item .home-monitor .flex-warp-item[data-v-36645091]{width:25%;height:111px;display:flex}.home-container .home-card-two .home-card-item .home-monitor .flex-warp-item .flex-warp-item-box[data-v-36645091],.home-container .home-card-three .home-card-item .home-monitor .flex-warp-item .flex-warp-item-box[data-v-36645091]{margin:auto;text-align:center;color:var(--el-text-color-primary);display:flex;border-radius:5px;background:var(--next-bg-color);cursor:pointer;transition:all .3s ease}.home-container .home-card-two .home-card-item .home-monitor .flex-warp-item .flex-warp-item-box[data-v-36645091]:hover,.home-container .home-card-three .home-card-item .home-monitor .flex-warp-item .flex-warp-item-box[data-v-36645091]:hover{background:var(--el-color-primary-light-9);transition:all .3s ease}.home-container .home-card-two .home-card-item .home-monitor .flex-warp-item .home-animation0[data-v-36645091],.home-container .home-card-three .home-card-item .home-monitor .flex-warp-item .home-animation0[data-v-36645091]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:0s}.home-container .home-card-two .home-card-item .home-monitor .flex-warp-item .home-animation1[data-v-36645091],.home-container .home-card-three .home-card-item .home-monitor .flex-warp-item .home-animation1[data-v-36645091]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.1s}.home-container .home-card-two .home-card-item .home-monitor .flex-warp-item .home-animation2[data-v-36645091],.home-container .home-card-three .home-card-item .home-monitor .flex-warp-item .home-animation2[data-v-36645091]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.2s}.home-container .home-card-two .home-card-item .home-monitor .flex-warp-item .home-animation3[data-v-36645091],.home-container .home-card-three .home-card-item .home-monitor .flex-warp-item .home-animation3[data-v-36645091]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.3s}.home-container .home-card-two .home-card-item .home-monitor .flex-warp-item .home-animation4[data-v-36645091],.home-container .home-card-three .home-card-item .home-monitor .flex-warp-item .home-animation4[data-v-36645091]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.4s}.home-container .home-card-two .home-card-item .home-monitor .flex-warp-item .home-animation5[data-v-36645091],.home-container .home-card-three .home-card-item .home-monitor .flex-warp-item .home-animation5[data-v-36645091]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.5s}.home-container .home-card-two .home-card-item .home-monitor .flex-warp-item .home-animation6[data-v-36645091],.home-container .home-card-three .home-card-item .home-monitor .flex-warp-item .home-animation6[data-v-36645091]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.6s}.home-container .home-card-two .home-card-item .home-monitor .flex-warp-item .home-animation7[data-v-36645091],.home-container .home-card-three .home-card-item .home-monitor .flex-warp-item .home-animation7[data-v-36645091]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.7s}.home-container .home-card-two .home-card-item .home-monitor .flex-warp-item .home-animation8[data-v-36645091],.home-container .home-card-three .home-card-item .home-monitor .flex-warp-item .home-animation8[data-v-36645091]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.8s} diff --git a/web/dist/assets/bakindex.DQYhiPKZ.js b/web/dist/assets/bakindex.DQYhiPKZ.js new file mode 100644 index 0000000000000000000000000000000000000000..393deba68af03ea8f653fbab1b94b60d2d83ff5e --- /dev/null +++ b/web/dist/assets/bakindex.DQYhiPKZ.js @@ -0,0 +1 @@ +import{i as z,L as u}from"./echarts.8mhZIf8A.js";import{d as H,g as x,T as M,z as K,x as Y,a1 as G,C as W,D as S,y as V,h as D,a as g,o as d,k as n,w as i,G as N,H as B,b as I,f,e as o,K as p,n as y}from"./vue.DmuWcDrn.js";import{O as X,u as Z}from"./index.XK2ik2qb.js";import{_ as Q}from"./_plugin-vue_export-helper.DlAUqK2U.js";let t={homeChartOne:null,homeChartTwo:null,homeCharThree:null,dispose:[null,"",void 0]};const J=H({name:"home",setup(){const c=x(),m=x(),b=x(),A=X(),T=Z(),{themeConfig:w}=M(T),{isTagsViewCurrenFull:r}=M(A),e=K({homeOne:[{num1:"125,12",num2:"-12.32",num3:"订单统计信息",num4:"fa fa-meetup",color1:"#FF6462",color2:"--next-color-primary-lighter",color3:"--el-color-primary"},{num1:"653,33",num2:"+42.32",num3:"月度计划信息",num4:"iconfont icon-ditu",color1:"#6690F9",color2:"--next-color-success-lighter",color3:"--el-color-success"},{num1:"125,65",num2:"+17.32",num3:"年度计划信息",num4:"iconfont icon-zaosheng",color1:"#6690F9",color2:"--next-color-warning-lighter",color3:"--el-color-warning"},{num1:"520,43",num2:"-10.01",num3:"访问统计信息",num4:"fa fa-github-alt",color1:"#FF6462",color2:"--next-color-danger-lighter",color3:"--el-color-danger"}],homeThree:[{icon:"iconfont icon-yangan",label:"浅粉红",value:"2.1%OBS/M",iconColor:"#F72B3F"},{icon:"iconfont icon-wendu",label:"深红(猩红)",value:"30℃",iconColor:"#91BFF8"},{icon:"iconfont icon-shidu",label:"淡紫红",value:"57%RH",iconColor:"#88D565"},{icon:"iconfont icon-shidu",label:"弱紫罗兰红",value:"107w",iconColor:"#88D565"},{icon:"iconfont icon-zaosheng",label:"中紫罗兰红",value:"57DB",iconColor:"#FBD4A0"},{icon:"iconfont icon-zaosheng",label:"紫罗兰",value:"57PV",iconColor:"#FBD4A0"},{icon:"iconfont icon-zaosheng",label:"暗紫罗兰",value:"517Cpd",iconColor:"#FBD4A0"},{icon:"iconfont icon-zaosheng",label:"幽灵白",value:"12kg",iconColor:"#FBD4A0"},{icon:"iconfont icon-zaosheng",label:"海军蓝",value:"64fm",iconColor:"#FBD4A0"}],myCharts:[],charts:{theme:"",bgColor:"",color:"#303133"}}),s=()=>{t.dispose.some(h=>h===t.homeChartOne)||t.homeChartOne.dispose(),t.homeChartOne=z(c.value,e.charts.theme);const a={backgroundColor:e.charts.bgColor,title:{text:"政策补贴额度",x:"left",textStyle:{fontSize:"15",color:e.charts.color}},grid:{top:70,right:20,bottom:30,left:30},tooltip:{trigger:"axis"},legend:{data:["预购队列","最新成交价"],right:0},xAxis:{data:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]},yAxis:[{type:"value",name:"价格",splitLine:{show:!0,lineStyle:{type:"dashed",color:"#f5f5f5"}}}],series:[{name:"预购队列",type:"line",symbolSize:6,symbol:"circle",smooth:!0,data:[0,41.1,30.4,65.1,53.3,53.3,53.3,41.1,30.4,65.1,53.3,10],lineStyle:{color:"#fe9a8b"},itemStyle:{color:"#fe9a8b",borderColor:"#fe9a8b"},areaStyle:{color:new u(0,0,0,1,[{offset:0,color:"#fe9a8bb3"},{offset:1,color:"#fe9a8b03"}])}},{name:"最新成交价",type:"line",symbolSize:6,symbol:"circle",smooth:!0,data:[0,24.1,7.2,15.5,42.4,42.4,42.4,24.1,7.2,15.5,42.4,0],lineStyle:{color:"#9E87FF"},itemStyle:{color:"#9E87FF",borderColor:"#9E87FF"},areaStyle:{color:new u(0,0,0,1,[{offset:0,color:"#9E87FFb3"},{offset:1,color:"#9E87FF03"}])},emphasis:{itemStyle:{color:{type:"radial",x:.5,y:.5,r:.5,colorStops:[{offset:0,color:"#9E87FF"},{offset:.4,color:"#9E87FF"},{offset:.5,color:"#fff"},{offset:.7,color:"#fff"},{offset:.8,color:"#fff"},{offset:1,color:"#fff"}]},borderColor:"#9E87FF",borderWidth:2}}}]};t.homeChartOne.setOption(a),e.myCharts.push(t.homeChartOne)},l=()=>{t.dispose.some(F=>F===t.homeChartTwo)||t.homeChartTwo.dispose(),t.homeChartTwo=z(m.value,e.charts.theme);for(var a=["房屋及结构物","专用设备","通用设备","文物和陈列品","图书、档案"],h=[34.2,38.87,17.88,9.05,2.05],E=[],v=0;v {c}%"},graphic:{elements:[{type:"image",z:-1,style:{image:w.value.isIsDark?"":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK0AAACtCAYAAADCr/9DAAAcoElEQVR4Xu19e7wcRZn28/ZM90xXzzknOYEkIAEiBAUUFyFc4wKCCAt8gHhBUEDFG8K3Iri6+3ETL0hQ9FthvYC4gAb0cwFRQcUlKiIIbpRbEBGUREJIyHWmq2e6Z+r9fjU5iQnJOWcuPV195nT/l5yq93nep57p6amueouQXV0rwMzW6tWrS4XCsFvPVQWIyAphKweR3ShUGw2EAwMIAfhE1OgacJIHoEme/7jpM3O+UgnnWFZuDpF6pQJ2JtDOBJ4JwgxmmgbwEABr3GAAM1Ah8CqAVgC8nEBLFWgJQz1Liv7sefZTRBS0EGvSNslMu9nQL1u2TEyZsv3rARygwK8nxuvIwh7McBJ0iL4T/xXgR8DW75nxcL2ef2jKFFqTIIdUQ01q02qTDg5v/wZLqSMZ9I8AtGHtFI6YAmExFO4jsu6N3Ny9Q0SrU8gzEUqTzrSrV8ud7aJ1okW54wg4jJmLiSgdL4i+Gz8Moh9xQ91ZKhUeizd8uqNNCtNKya9QqnYqWdbbAcwF0Fd5M/AnZv5/UFgwMFBYnG7Ldc+urwZvczmY2Q6CxolMfDaYjwKQ616uCRHhd2BcX63at0ybRusnBOM2SfadaYOAd2Wun8PgMwFMb1OPvmlORBUGfw8K13qes6hvEuunr0nfD/dn4gsJdAqAfD8NUpe5MBF+wWR9QRRydxMRdxnPePcJf6etBNGRFvNFDBxuXM20EyA8QWx9xnVz3yMilXa6o/GbsKYNgugNivlzAOZNVPGN8SY8rpgvK7nObRPxzjvhTFsu1/ay8rgKTP9kbND7BZixyLLoQte1F06klCaMadetWzecz7uXg/DB7Jk1bovRD3JW42PFYvHZuCP3Il7qTcvMJKvRe8D0eYC374UIWcymAlUwf14I5/NEVEuzJqk27bp11Tm2bV3HwGFpFrGfuDHwlKLG+wdd97605pVK0+q7axBE/8zAZwGItIrXx7wUA9esWfXiJ2fNmpW6FWepM63v8w6M6EYivKmPTTExUiM8wQ2cXio5j6SJcKpMu96vnZQj6zqAt0uTSJOcS41B/+a5+S+lZXosFaZduJDzcw+MPk/Ax/rpLV1/mZ1+FLn5M6aQ+XW9xk1bLvN0ykXfpeyN1kTw+F9Y4WTTjwtGTavXC4DodoB3mggjlnFsrun0AT5LiML3TelhzLRS1t7KoBuz2QFTQ98VrgLzJZ5X0LM7iV9GTCtl+FEGvtjiZsDERckAW1SAcN1DD9rnHHEE1VvsEUuzxE1bkbX5BPp4LOyzIOYVYP6hEM7biaiaFJnETKtrA8hq9DUw3p9UchlOMgro9bpu0T5BLzxPAjER0zJzTlajG8A4I4mkMozkFSDggWq1cuzw8PC6XqP33LT6DhtUo/9kxrt7nUwW37gCD/iVtUdPnz69p3fcnpvW98PrQXifcTkzAokoQET3rnpp+fG9XLPQU9NKGX2RwfotV3ZNIgWY+S5POCcRUdSLtHtm2oqMLiTwVb0gncVMvwIM3Oq59mm9WK/QE9NKWX8HQy2YZPOwzIz1ROQDqqbvMrp4HYAiQLqKjS5SN1lqLzQ/VQSeL0ThE3F/xGI3rZTRwQzWe44KcZM1Ha9ZS4D5CRAeJcZitqxnuK6WAOGLnue9RDT6JLv+QVoul4cLhYHpzPVZjQbvRkSvAngfxdiHCMOm8+sBPoNwtuc6N8QZO1bTrpJyVhH2wwDPiJOkqVjMWG0R7mELv2LLvt+z8Vivtl5Xq9XdmfOHKqh5YD4GoL5Yj0GEEExHCmH/Oq5xjM20upCbDCK9RWP/uMiZiEOEv0DXxYJ1h+vmHzJVBLlcq72GFE4gJl1/7B9MaBEj5ouE+v5CiL/FETM20/p+eJ3+KoiDVNIxGCgT4RZifEsI58Gk8cfDq1Z5j7oK30OwzgR4h/Hap/TvDwjXPiyOGYVYTFsJwncT46aUijUqLQKeZsaXhLBvTuoVZDca6R92QdA4iaEuAHBQN7FM9CXQ1ULYmntXV9emXVetzrHZ+h9mDHTFJMHOzHiEiS8vuc4dvXpG7XU6UkaHKlaXENHRvcaKMT6DreM9L39XNzG7Mq3+5Mugfj/AB3RDIqm+uo6rBesi1819vxfzh0nlsTmOlNE8Bl8xccpD0YvCzb+WiFZ2qldXpvWD6FIwX9YpeFL9mLHWIvq06+avISJ9ykzfXXpuHFBXMrBL2pMj0B1C2Cd3yrNj01Yq4T+QhYdSekbBZnrwf4Hr53me90KnIk2UfsuXL/dKg8OXE/DPaX+RwcTvKrmF73SibUembS41DCJtWH2wRiovZqxQxB8aFIXbU0mwh6R8358L2P8Jwl49hOkyNL2kGvm9Bgbaf0zoyLRSRh9jsN4uk86L+W6lnLMGBvRZXZPz0vPmQRB9gYFz0rotnwg3C9dpe41126aVUu7EyD8JoJRCOzT0M7YQzmf75YdWtxo3N5ASfROMwW5j9aA/W0RHtltqtAPThrcwcGoPEugyJK1hhXeWSvZPuwzUd911Td9cnu5gxpzUJUd4/KEH7X3b2RzZlmmljA5hsH6H3Fa/3gvFf1UNHDcZjiPqVEtmHg6C6HYG9CF/6boYH/E85z9aJdWy+Zp1YoPoAQAHtho8iXbM/Aewc0ypRC8mgTeRMZi5IGW4AERvSVkeK4Vr707U2hFSLZtWytopDDJWVWQUkR8Urn0sEa1N2SCkls7IJlP9jKuPrErPxfwZzytc3Aqhlkw7sv37cTD2bCVoQm30AoyjJ8KagYT0aBlmZDyvB+M9LXfqfcOKatR2GxgYGHfGpyXTVoLaacTU0URwj3JdFNb8I6dOnZrdYTsUWBvXD6LvUIp+VOvtWUIU/mW8lMY1bTM5GT5ORCm5y/KzquEc1Mmk9HhiTLa/66NYfRn9OC0FrPW3Zj0KZg8ODr401liMa9r1snZyDnRbOgaUXmpYjUMHi8U/pYPPxGfBzEO+jO4nwt6pyIb5cs8rXNqVaaUMf8PAwSlIqG4RHeW69i9TwKWvKAQB76K4/rt0VGCnVcLN70xEcjSRx7zTShkexICe5jJ+sVIXlErFq40T6VMClWp0FCn+SRoW2ijGOQOe89VOTbuAgXeaHye+zRMFfVBzdvVQAd+vXQyiy3sI0VJoZiwuec6ojyuj3mnL5fL0XL6whNn0VnD6Wz3Kv25oiFa3lHHWqGMF9ByuH0QLCXhDx0Fi6qiIDh8Y5VFwVNNWZPXjBGt+TBw6DaMXVLzJde3/7jRA1q89BfTzbYOjxwhmt08RsEAI5/RtsR/VtH4QLjb+MoFwvec6WT3b9nzXdWvfDz8CwjVdB+ouQBDW7B2nTt36bec2TeuH4f6o4+HuMLvszbw8FM6eU7NXtF0K2X735huzDTUsDmm/d4w9GB/0POcbL4+4TdNWZO0qAl0YI3zboSyyznLdvD5IJLsMKDCynep3JmcTGPhlSTiHj2va5rm01egvzAY3yDEeFsI+MFvIbcCtm0H6fvh1ED5gkIWSHM3a3vOWbc5hqzvtSAG53xgkCovo8OwlgskR2IDt+/4OIPvPRo/NYpzrec61Y5u2Gs1nxeZOn2H83POc7DBn855tMpCydhWbfFQk3OO5zhYFSba60/p++BgIrzGlGYEOFcI2eqc3lXsacZl5uyCI/sqAZ4hfrbzenjZzpq77u+HawrRSylmM/HMGt9Pc7wlnniFxMthRFPD98BoQPmJMIMs6wSvmf7RN0/p++H4QtppiSIwsWyd7Xv6OxPAyoJYUqFZ5t4aKnjI4k/AfnnA2fWi2uNNWZKhPA9f1UA1cvES4zuyJWhDOgGCJQvoy+gHA/ytR0I2PA4Q/Cdd51bbvtDL6G8CvMEFM1yvwvMKnjGBnoOMq4PvV40HWD8dt2JsGrBr2zI3FVzbdadcGwWybc8/2BnPcqKpWrc8eHhZLxm2ZNTCiQHNDpAyXgshIUWcCv0WMlLjaZNogqJ+uWH3bhCIE/EII5wgT2Blm6wpIGV3N4PNb7xFfSwJ9QQi7ORW7ybS+rF8DKDO/ENss1hCfFFmkdhQw+eKJQPcLYTdnljYzbajnRk1sq2GCPUsIer4dAbO2ySuwoWBL/XlD5z74wrUH9Q/1pmlHVvWsh5kJ5Ec94bwu+SHIEDtRwPfDb4Lw3k76dtsnZ6lXF4vFp5qmXVutvtJW1jPdBu2kP4Pnl3pwql8nXLI+4ytQlrVTLdAt47eMvwWBTxGicFvTtL5fPx6kjExnsEXHlIpZpcP4h7g3ESuVykyyHL3qatzyA7EzILrYc+3PNIErsno+wTKx07UhXHsqEZVjTzAL2DMFpAyfZmD3ngGMFphxk+c5Z47cacNrQc2K0YlezHii5DnGFuckmmwfgckgvJkZ7zKQUnNtygbTyuiHAB+fNAkiLBDutjevJc0lw2tdASnD8xlI/JuZQH8Twp614fHADx8hwj6t046nJYE+KYR9ZTzRsihJKVCpRG8ii3+WFN5mOPpxsrjxTrsC4O0TJ8HqRM8r3pk4bgbYlQJS8ixGZOSVO8HeiRYu5PwBB0Y1AFZXmXTQmRXvUyoVHuuga9bFoAIj8/oBACdxGoz9SFeSsXIFI6XfhWsPZEWREx/2WAB9WXsaoMRnEFipN1O1Wt2joSy9wDfZi7HW85ypyYJmaHEpUJGhLp+01fbuuOKPFofA7yDfD/cHJV+YQx+uXBJ/X9jb62Sz+PEqYGzDAOMDVC4Hh1m53C/iTamlaL/1hHNQSy2zRqlTwA/Cr4HxwaSJ6XN/qVKpHkOWdbcB8IVCOG9MGjfDi0cBKcOrGUh8ba2eJiXfrx4HsjbtdIwnpRaiEP3Ec+1jW2iZNUmhAhVZu0IbKHFqRBeR79dOBJGBHbB8pycKJyaedAYYiwK+X7sMRGOejRAL0MuDEF1m7k7L/GPPKyT+6rgnQk7CoL5f+xSILkk8deZLTZr2p55XOCbxpDPAWBSoyNqVBBr3zK9YwDYLwuB/pSCIjlDM98YdvIV4v/aEY7xMegs8sybbUEDK8N8ZOC9pcQh0AZk6wYYZj5U8J/FFOkmL3K94MghvYsa7E8/PwoepVqu9pt4gA+//6QVP2DsmnnQGGIsCfhDdBebEZ3+Y+F0kJe/EiJbGkkl7QerNZWZEjfa6Za3ToIAvw0UA9k2aCyt1LC1btkwMTdluUxnFJElUg/rO06YJEx+YJNPsS6yKH75EhGmJJ8eYO7KeNtR7tEpJExjrrKikuWR4rSuwevXqoUKxZOQEeIvs2U3TyiB8mtnARjULH/SKW59e0rp8WUsTCvh+OBeEh0xgN5ezamBTy8wAXOsJ51wTyWeYnStQCcKziPGtziN02pPWeMIeHtkjVruRiM7oNFSn/Ri4ryScf+y0f9bPjAIVGf5fAv63AfRmNaINz7RBdAmYE68NS4SKW2zWPagbECCD7FABX4b6ZHoDy0rpdk/Yb2maNgjqpylW3+kwh+66Mfb3POd/uguS9U5KAWZ2ZRDpH2GJ7w8ji64SRftfNtxpw3A/1KFP50v8YqjzS6L45cSBM8COFAiC6DDFbGLTgC7E9D7PdW7YWDVRyCDSVRNzHWXSRSdmvrvkFf6pixBZ1wQVKPu1T1tEFyUIuQmKgIOFcB7cVERMBuEfmbHpMIYESQXCtYeJqJogZgbVoQK+DPVB3/t32L2bbg2/Yk+ZPp0qfzetDG9h4NRuonbcl9UJnldMfvdEx4QnZ0cp5U4j58wlXyMD/FRJFF6tld9k2oqMLiTwVUaGg3CT5zpnGsHOQFtWwFQNL02Qwd8uiUJzVdkm066Xcl4O+ftaziDGhsxYv3LF8zNmz56dPSLEqGvcoXwZPgjgwLjjthKPoM4TonjNFqZl5uLIVEahlSBxt2HFp5VKBSMVpuPOpR/jlcu1Pa0cPWGkmLIWNI/Xe47z+y1Mq/9RkeGvCDCym4CBhaVsS3lq/S5l9EUGf8wMQVor3Py0jad5blGC3A+iT4E5+c1qG5TgRl3tOThYTL5Ek5mRmDCoS5cudYenzVwC8HZmSNOdnrA37dx+2Snk0TwGG3mu1WJYhK+7rvMhM8JkqKMpYPqgbwLOE8JpPs9u9XjAzHlfRiuJMMXQEAaqUdt1YGBghSH8DPZlCuiynn4QLSYYmcNvsqlHao+hoeLT2zSt/k8pw1sZeIep0dPTbkIUEt+abCrftONWgtppxGRmXcqGX31PCeE052fHMG3tnQxaYFBMySrcrVQqLTfIIYPecChiLqhGi5mxhylBNi6SGdO0zFwKqvUXmVmYIgpY13oiny0ONzcATWTfD84G5a4zSYPyOEg4zm/HNO0GsrXvg+gUg2TrqsH7DgwUHjfIYVJDr1y5ckB4g08BtIMpIYjwnFu0ZxMRj2taKetvY6jvmSLbxCX6uefabzLKYRKDSxnNZ3DzqHpTF4GuFMLeqjLjNo+K1NvKB4e2e4EIg6YIa1yLcIbrOjeb5DAZsf0w3Bf15sbFvMn8VYNfu61v21HPNy374TcswvtNkmbGKk/YexLRSpM8JhO2nvaUQaSfIV9vNG/Gw57nHLAtDqOaVsrwAAa2eAA2kgTznZ6X1bFNSvuyX/uUZaKE58sTHKO8wJgnSfsy1Hu3zH7idDKMD3ue87WkBm6y4qyX8tA88r9gw48FAK3zK2t2mj59eqWtO61uHAThexTjhhQMomSFQ0sl5w8p4NKXFJh5uyCIfsfALilI8CuecEbdoj7mnZaZCzKoPwfwjBQk8qxw7f2JaE0KuPQVBf0SQVbrPwHzUSlIrFGP1KuHhop/Ho3LmKbVnfwguhjMl6cgGT0Ndo8o5o8joigVfPqEhJTRlxj80XSkw7d7ovCWsbiMa9p163g4b0fPmShQt03ijBs8z3lfOgSe+CykDM9l4CtpyYSAA4VwxqwTNq5pdTIVWZtPIKMTzVuIyvxpzyuYWveblvHtmoeUtVMY9F0TpQO2RZ4Z95Q85+jxEmvJtCOHPj8LwBsvYFJ/14dUCGGb2YiZVJI9xPH96rEg63YARrZXbXtWgOYJYd8/Xtotmbb5bOvXPgeifx0vYIJ/Z333F8L+YoKYfQGlDUtW7r90iaPUJMR8t9di0ZaWTbuGeYoTRM8AGE5NopoI0WWeaydePC9VGrRBpixrp1horo9NzR0WgGKF/Vqd0mzZtBuebcOPEvClNjRKpinjq0LY52XnN4wtd9kPP2xR80dX4uWvxmTGuNHznLNaNUtbpn3iCXZ2mR0+TqA5rQIk1o75LimdU7ffnnQp/uzaTAE9D+sH0XwCDO2mHXM4fIL9KiHo+VYHrS3T6qDVanRMQ3Hip5a3lBDjSaX4lIGBwpMttZ8EjZh5WFbDBWB6cxrTZaJ/K7n2Fe1wa9u0OriU0W0MPrkdoKTaMlC2wB8QonBrUphpxZEyOoShFgCUhlezW8nE4Kc819mHiMJ2NOzQtHInhbzeoTnQDliSbQm42XXtc4lIlzCdVNfChZw/4KD6RWD+P6bXxI4hPCuiNw64dtu1bjsyrSbi++E5IFybcjcsgWWd4xXzP045z9joVSo1fef6JshIOc7W8yBc77lOR+u1OzYtM+vDoO9l4PDWmZppyeDvWmhcIIRo+WHfDNPOUVes4JIohZcQSK8hsDuPlEjPpbVq5bXDw8PrOkHr2LQabE0Q7Gqr3COmt+W0kjgRlRnqqvK6NVfPnDnTyAmVrfBst82GFVrRmVD8GZC5TYht8FYW0dGua/93G322aNqVaXWkShCeQYwbOyWQfD9eTqDPua593USuPq4rv1SC8K0W0aVg7JW8jp0hMvDlknDO76z3hl5dm7ZpXBl+m4DTuyGSdF9mvEjgaxqN2lcHBwdXJY3fKZ4uyVqR0Rk5C+czY4vKK53GTLDfomXPP3fInDlzat1gxmJavUfeKw09NAFFBBH5DL6FGNcLsWVRiG6Ejbvvump195yiswnWewHePu74vY7HjHWNnJo7VPx7Ta5OMWMxrQav1Wp7N5T1oK5Q0ykZ0/0Y/Eci61ZVV99LwwsKn3lHDqK3EfB2AAfH9c1oQGdW4LcOiMJtcWDHZlpNRsra20bWZ8YaN45E247BeJKI7lIW7vEK+d/oH3Jtx2izw9NPP12Y8YpXzM1x7kgiOpaBubr8Q5th0tec+bOeV4jtGKfYzeX7tU/D0DlTPRytBoBHwc0t9Y8Q0aNRJP84NDS0ulPMFStWlDxvyhzLsvZpsNrHAh3AYH3UUbHTmOnsR3cKN3/yxirecXCM3bQj87e6XKj+Suv3S88z/oWZl1sWrVSMVcRcgYUqM+o5siwFFJnZI8I0KF1Jm2YwsCsRJtxzaQeD+YfyenvezJkU6xRj7KbViW0odz7j5wAO6SDRrEtfKMBLwPWDPc9bFnc6PTGtJrmWeWpehvcR0d5xk87ipV6Bl/I5PqxQKCzuBdOemVaT9X1/R7Ls+5jxyl6Qz2KmUoG1YBzpec6iXrHrqWmbd9y1wWzbsX4J0KxeJZHFTYcCRFQB481C2L/pJaOem1aTX7euunvepnsz4/ZyKM3G1i9pGnWcMDBgL+w1k0RMq5MIAp6tONTG3bXXSWXxk1VAz2ETcLzr2r9KAjkx0+pk9CnWinM/I6I9k0guw0hCAVpVBx83lOAr8ERNqyVk5mkyiH4E4KAkJM0weqkAL1ENHDsw0JtZgtGYJ27aEeO6MqgvAPikXkqaxe6pAr8H28d7HsU+DzseayOmHTGuFQThlQy6YAIvBBlP3z79O93pV9acPlrR414nbcy0GxPTi8gt0NdSVaKn16pP3PgM5iuEcC6Ocy1Bu3IYN60m7PvhfiD+fjaz0O7wJdder4dl4vfGtbywG+apMK1OQL/2tYPwWwBtOiK9m8SyvrEqsChn2e8oFmnU6tyxoo0TLDWm3cizLMNzLWA+gPRU9EtyRNKFpRj4d8+1P9FuQY1eppE60+pky+XaXlaObgKwXy+Tz2KPqcBSVvTeUsnWq/VSdaXStCOzC3k/qF9A4Euzu26inlEgfF0U7U+mtTpPak27cZiq1erudWV9g4AjEh26yQjGeLJB9Q8MCvHrNKefetOO3HXJ98PTybKuAHinNAs6EbkxYz2YP/fCC0u+3O327iTynxCm3SgEMwtZrX8C3DwdO/uh1r1DGmgWWoku8jzvhe7DJRNhQpl2oyRS8iwmfb4ZdPXotNetSmYk20NhgH/Mii5utWR8e+F723pCmvbvz7v8ykYjuoQIp5s/z7W3AxVbdKKfEvMl453VFRteDwJNaNNuZt7dGxx9HIwz+m8LdiyjrgC6k8BXCuE8GEtEg0H6wrQb9SuXebqVr38IjA8BvINBXVMBrauiE3Bjo66+MjhY/FMqSMVAoq9Mu9kPNrsShCdZZJ0N5iNTd5pLDAM3TohFYFwnpf2dfjw4pS9Nu/mASilnKcq9i0CngfGa3vvFGMJSBt+KHL5dKhQeNcYiAeC+N+3mGpZrtb0shVNY0UlE2Heir+Mlwp9B9AMo3Oa6+QeIiBPwjHGISWXazdX2fd4RiI4lwlEMvBHAdOOjMQ4B/YwK5vssop/V6/zTwcHCH9POuRf8Jq1pXy5muVzb08rTPCg+CBbNBUNvvsz3QvQWYzIB+hDthxXUb4mt+4WwF2WnUsZUCbzFQZhQzZr1yGbM2Jsb2Nti3pMZc0C0GzN2IcKUGJPxwVgComcY/Azp9/+NxuJ6PXi004M0YuSWylDZnbaDYdGFo2u12g5K5WbUWW1nWTTFYgwo6OqIVgEKNpPKE6MGywqJEQJcY4ZPZK1pEK9GXa1Qylk+NEQdlwvtgHpfdPn/ixNifr4QLGYAAAAASUVORK5CYII=",width:230,height:230},left:"16.5%",top:"center"}]},legend:{type:"scroll",orient:"vertical",right:"0%",left:"65%",top:"center",itemWidth:14,itemHeight:14,data:a,textStyle:{rich:{name:{fontSize:14,fontWeight:400,width:200,height:35,padding:[0,0,0,60],color:e.charts.color},rate:{fontSize:15,fontWeight:500,height:35,width:40,padding:[0,0,0,30],color:e.charts.color}}}},series:[{type:"pie",radius:["82",w.value.isIsDark?"50":"102"],center:["32%","50%"],itemStyle:{color:function(F){return L[F.dataIndex]}},label:{show:!1},labelLine:{show:!1},data:E}]};t.homeChartTwo.setOption(O),e.myCharts.push(t.homeChartTwo)},P=()=>{t.dispose.some(h=>h===t.homeCharThree)||t.homeCharThree.dispose(),t.homeCharThree=z(b.value,e.charts.theme);const a={backgroundColor:e.charts.bgColor,title:{text:"地热开发利用",x:"left",textStyle:{fontSize:"15",color:e.charts.color}},tooltip:{trigger:"axis"},legend:{data:["供温","回温","压力值(Mpa)"],right:0},grid:{top:70,right:80,bottom:30,left:80},xAxis:[{type:"category",data:["1km","2km","3km","4km","5km","6km"],boundaryGap:!0,axisTick:{show:!1}}],yAxis:[{name:"供回温度(℃)",nameLocation:"middle",nameTextStyle:{padding:[3,4,50,6]},splitLine:{show:!0,lineStyle:{type:"dashed",color:"#f5f5f5"}},axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:e.charts.color,formatter:"{value} "}},{name:"压力值(Mpa)",nameLocation:"middle",nameTextStyle:{padding:[50,4,5,6]},splitLine:{show:!1},axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:e.charts.color,formatter:"{value} "}}],series:[{name:"供温",type:"line",smooth:!0,showSymbol:!0,symbol:"path://M150 0 L80 175 L250 75 L50 75 L220 175 Z",symbolSize:12,yAxisIndex:0,areaStyle:{color:new u(0,0,0,1,[{offset:0,color:"rgba(250,180,101,0.3)"},{offset:1,color:"rgba(250,180,101,0)"}]),shadowColor:"rgba(250,180,101,0.2)",shadowBlur:20},itemStyle:{color:"#FF8000"},data:[{value:1,stationName:"s1"},{value:3,stationName:"s2"},{value:4,stationName:"s3"},{value:9,stationName:"s4"},{value:3,stationName:"s5"},{value:2,stationName:"s6"}]},{name:"回温",type:"line",smooth:!0,showSymbol:!0,symbol:"emptyCircle",symbolSize:12,yAxisIndex:0,areaStyle:{color:new u(0,0,0,1,[{offset:0,color:"rgba(199, 237, 250,0.5)"},{offset:1,color:"rgba(199, 237, 250,0.2)"}],!1)},itemStyle:{color:"#3bbc86"},data:[{value:31,stationName:"s1"},{value:36,stationName:"s2"},{value:54,stationName:"s3"},{value:24,stationName:"s4"},{value:73,stationName:"s5"},{value:22,stationName:"s6"}]},{name:"压力值(Mpa)",type:"bar",barWidth:30,yAxisIndex:1,itemStyle:{color:new u(0,0,0,1,[{offset:0,color:"rgba(108,80,243,0.3)"},{offset:1,color:"rgba(108,80,243,0)"}]),borderRadius:[30,30,0,0]},data:[{value:11,stationName:"s1"},{value:34,stationName:"s2"},{value:54,stationName:"s3"},{value:39,stationName:"s4"},{value:63,stationName:"s5"},{value:24,stationName:"s6"}]}]};t.homeCharThree.setOption(a),e.myCharts.push(t.homeCharThree)},C=()=>{S(()=>{for(let a=0;a{e.myCharts[a].resize()},a*1e3)})},R=()=>{window.addEventListener("resize",C)};return Y(()=>{R()}),G(()=>{C()}),W(()=>r.value,()=>{C()}),W(()=>w.value.isIsDark,a=>{S(()=>{e.charts.theme=a?"dark":"",e.charts.bgColor=a?"transparent":"",e.charts.color=a?"#dadada":"#303133",setTimeout(()=>{s()},500),setTimeout(()=>{l()},700),setTimeout(()=>{P()},1e3)})},{deep:!0,immediate:!0}),{homeLineRef:c,homePieRef:m,homeBarRef:b,...V(e)}}}),k={class:"home-container"},q={class:"home-card-item flex"},j={class:"flex-auto"},U={class:"font30"},_={class:"mt10"},$={class:"home-card-item"},ee={style:{height:"100%"},ref:"homeLineRef"},oe={class:"home-card-item"},te={style:{height:"100%"},ref:"homePieRef"},ae={class:"home-card-item"},se={class:"home-monitor"},le={class:"flex-warp"},ie={class:"flex-margin"},re={class:"pl5"},ne={class:"mt10"},ce={class:"home-card-item"},me={style:{height:"100%"},ref:"homeBarRef"};function he(c,m,b,A,T,w){const r=D("el-col"),e=D("el-row");return d(),g("div",k,[n(e,{gutter:15,class:"home-card-one mb15"},{default:i(()=>[(d(!0),g(N,null,B(c.homeOne,(s,l)=>(d(),I(r,{xs:24,sm:12,md:12,lg:6,xl:6,key:l,class:f({"home-media home-media-lg":l>1,"home-media-sm":l===1})},{default:i(()=>[o("div",q,[o("div",{class:f(["flex-margin flex w100",` home-one-animation${l}`])},[o("div",j,[o("span",U,p(s.num1),1),o("span",{class:"ml5 font16",style:y({color:s.color1})},p(s.num2)+"%",5),o("div",_,p(s.num3),1)]),o("div",{class:"home-card-item-icon flex",style:y({background:`var(${s.color2})`})},[o("i",{class:f(["flex-margin font32",s.num4]),style:y({color:`var(${s.color3})`})},null,6)],4)],2)])]),_:2},1032,["class"]))),128))]),_:1}),n(e,{gutter:15,class:"home-card-two mb15"},{default:i(()=>[n(r,{xs:24,sm:14,md:14,lg:16,xl:16},{default:i(()=>[o("div",$,[o("div",ee,null,512)])]),_:1}),n(r,{xs:24,sm:10,md:10,lg:8,xl:8,class:"home-media"},{default:i(()=>[o("div",oe,[o("div",te,null,512)])]),_:1})]),_:1}),n(e,{gutter:15,class:"home-card-three"},{default:i(()=>[n(r,{xs:24,sm:10,md:10,lg:8,xl:8},{default:i(()=>[o("div",ae,[m[0]||(m[0]=o("div",{class:"home-card-item-title"},"快捷导航工具",-1)),o("div",se,[o("div",le,[(d(!0),g(N,null,B(c.homeThree,(s,l)=>(d(),g("div",{class:"flex-warp-item",key:l},[o("div",{class:f(["flex-warp-item-box",`home-animation${l}`])},[o("div",ie,[o("i",{class:f(s.icon),style:y({color:s.iconColor})},null,6),o("span",re,p(s.label),1),o("div",ne,p(s.value),1)])],2)]))),128))])])])]),_:1}),n(r,{xs:24,sm:14,md:14,lg:16,xl:16,class:"home-media"},{default:i(()=>[o("div",ce,[o("div",me,null,512)])]),_:1})]),_:1})])}const we=Q(J,[["render",he],["__scopeId","data-v-36645091"]]);export{we as default}; diff --git a/web/dist/assets/breadcrumb.CgSM-oQ7.css b/web/dist/assets/breadcrumb.CgSM-oQ7.css new file mode 100644 index 0000000000000000000000000000000000000000..b1701d2fe49a1abef80b662a705296f494764fc4 --- /dev/null +++ b/web/dist/assets/breadcrumb.CgSM-oQ7.css @@ -0,0 +1 @@ +.layout-navbars-breadcrumb[data-v-6ee1e737]{flex:1;height:inherit;display:flex;align-items:center}.layout-navbars-breadcrumb .layout-navbars-breadcrumb-icon[data-v-6ee1e737]{cursor:pointer;font-size:18px;color:var(--next-bg-topBarColor);height:100%;width:40px;opacity:.8}.layout-navbars-breadcrumb .layout-navbars-breadcrumb-icon[data-v-6ee1e737]:hover{opacity:1}.layout-navbars-breadcrumb .layout-navbars-breadcrumb-span[data-v-6ee1e737]{display:flex;opacity:.7;color:var(--next-bg-topBarColor)}.layout-navbars-breadcrumb .layout-navbars-breadcrumb-iconfont[data-v-6ee1e737]{font-size:14px;margin-right:5px}.layout-navbars-breadcrumb[data-v-6ee1e737] .el-breadcrumb__separator{opacity:.7;color:var(--next-bg-topBarColor)}.layout-navbars-breadcrumb[data-v-6ee1e737] .el-breadcrumb__inner a{font-weight:unset!important;color:var(--next-bg-topBarColor)}.layout-navbars-breadcrumb[data-v-6ee1e737] .el-breadcrumb__inner a:hover{color:var(--el-color-primary)!important} diff --git a/web/dist/assets/breadcrumb.CtadGDYd.js b/web/dist/assets/breadcrumb.CtadGDYd.js new file mode 100644 index 0000000000000000000000000000000000000000..a611c4507813c80b7027ef65b4244d935e53111b --- /dev/null +++ b/web/dist/assets/breadcrumb.CtadGDYd.js @@ -0,0 +1 @@ +import{d as L,T as k,s as F,v as R,z as $,c as E,x as M,$ as z,h as m,a as i,J as d,o as r,k as b,u as p,w as h,U as G,G as U,H as D,b as f,K as _,Y as H,m as J}from"./vue.DmuWcDrn.js";import{M as K,u as Q,Q as Y,L as y}from"./index.XK2ik2qb.js";import{_ as j}from"./_plugin-vue_export-helper.DlAUqK2U.js";const q={key:0,class:"layout-navbars-breadcrumb"},A={key:0,class:"layout-navbars-breadcrumb-span"},O={key:1},P={key:2},W=["onClick"],X=L({name:"layoutBreadcrumb"}),Z=L({...X,setup(ee){const B=K(),w=Q(),{themeConfig:o}=k(w),{routesList:g}=k(B),c=F(),v=R(),e=$({breadcrumbList:[],routeSplit:[],routeSplitFirst:"",routeSplitIndex:1}),I=E(()=>{u(c.path);const{layout:t,isBreadcrumb:a}=o.value;return t==="classic"||t==="transverse"?!1:!!a}),x=t=>{const{redirect:a,path:n}=t;a?v.push(a):v.push(n)},N=()=>{o.value.isCollapse=!o.value.isCollapse,T()},T=()=>{y.remove("themeConfig"),y.set("themeConfig",o.value)},C=t=>{t.forEach(a=>{e.routeSplit.forEach((n,S,l)=>{e.routeSplitFirst===a.path&&(e.routeSplitFirst+=`/${l[e.routeSplitIndex]}`,e.breadcrumbList.push(a),e.routeSplitIndex++,a.children&&C(a.children))})})},u=t=>{if(!o.value.isBreadcrumb)return!1;e.breadcrumbList=[g.value[0]],e.routeSplit=t.split("/"),e.routeSplit.shift(),e.routeSplitFirst=`/${e.routeSplit[0]}`,e.routeSplitIndex=1,C(g.value),(c.name==="home"||c.name==="notFound"&&e.breadcrumbList.length>1)&&e.breadcrumbList.shift(),e.breadcrumbList.length>0&&(e.breadcrumbList[e.breadcrumbList.length-1].meta.tagsViewName=Y.setTagsViewNameI18n(c))};return M(()=>{u(c.path)}),z(t=>{u(t.path)}),(t,a)=>{const n=m("SvgIcon"),S=m("el-breadcrumb-item"),l=m("el-breadcrumb");return I.value?(r(),i("div",q,[b(n,{class:"layout-navbars-breadcrumb-icon",name:p(o).isCollapse?"ele-Expand":"ele-Fold",size:16,onClick:N},null,8,["name"]),b(l,{class:"layout-navbars-breadcrumb-hide"},{default:h(()=>[b(G,{name:"breadcrumb"},{default:h(()=>[(r(!0),i(U,null,D(e.breadcrumbList,(s,V)=>(r(),f(S,{key:s.meta.tagsViewName?s.meta.tagsViewName:s.meta.title},{default:h(()=>[V===e.breadcrumbList.length-1?(r(),i("span",A,[p(o).isBreadcrumbIcon?(r(),f(n,{key:0,name:s.meta.icon,class:"layout-navbars-breadcrumb-iconfont"},null,8,["name"])):d("",!0),s.meta.tagsViewName?(r(),i("div",P,_(s.meta.tagsViewName),1)):(r(),i("div",O,_(t.$t(s.meta.title)),1))])):(r(),i("a",{key:1,onClick:H(te=>x(s),["prevent"])},[p(o).isBreadcrumbIcon?(r(),f(n,{key:0,name:s.meta.icon,class:"layout-navbars-breadcrumb-iconfont"},null,8,["name"])):d("",!0),J(_(t.$t(s.meta.title)),1)],8,W))]),_:2},1024))),128))]),_:1})]),_:1})])):d("",!0)}}}),oe=j(Z,[["__scopeId","data-v-6ee1e737"]]);export{oe as default}; diff --git a/web/dist/assets/changePwd.BniOkxQT.js b/web/dist/assets/changePwd.BniOkxQT.js new file mode 100644 index 0000000000000000000000000000000000000000..fd5162d71033a23388c1548e536d1d0c384e0385 --- /dev/null +++ b/web/dist/assets/changePwd.BniOkxQT.js @@ -0,0 +1 @@ +import{d as E,T as F,s as q,v as T,z as k,g as U,c as D,x as N,y as A,h as u,a as R,o as V,k as s,J as M,w as o,e as y,f as $,K as z,a0 as K,G as O}from"./vue.DmuWcDrn.js";import{a0 as j,u as G,a1 as J,a2 as L,H,g as Z,a3 as x,a4 as Q,G as I,D as W,b as X,N as Y}from"./index.XK2ik2qb.js";import{a as ee}from"./formatTime.in1fXasu.js";import{a as se}from"./api.DMCQHntY.js";import{M as b}from"./md5.DLPczxzP.js";import{_ as oe}from"./_plugin-vue_export-helper.DlAUqK2U.js";const ae=E({name:"changePwd",setup(){const{t:e}=j.useI18n(),a=G(),{themeConfig:v}=F(a),{userInfos:B}=F(J()),d=q(),h=T(),n=k({isShowPassword:!1,ruleForm:{username:"",password:"",password_regain:""},loading:{signIn:!1}}),p=k({username:[{required:!0,message:"请填写账号",trigger:"blur"}],password:[{required:!0,message:"请填写密码",trigger:"blur"},{validator:(m,r,t)=>{const w=new RegExp("(?=.*[0-9])(?=.*[a-zA-Z]).{8,30}");r===""?t(new Error("请输入密码")):w.test(r)?(n.ruleForm.password!==""&&i.value.validateField("password"),t()):t(new Error("您的密码复杂度太低(密码中必须包含字母、数字)"))},trigger:"blur"}],password_regain:[{required:!0,message:"请填写密码",trigger:"blur"},{validator:(m,r,t)=>{r===""?t(new Error("请再次输入密码")):r!==n.ruleForm.password?t(new Error("两次输入密码不一致!")):t()},trigger:"blur"}]}),i=U(),f=D(()=>ee(new Date)),_=async()=>{window.open(Z("/api/system/apply_for_trial/"))},l=async()=>{i.value&&await i.value.validate(m=>{m?se({...n.ruleForm,password:b.hashStr(n.ruleForm.password),password_regain:b.hashStr(n.ruleForm.password_regain)}).then(r=>{r.code===2e3&&(v.value.isRequestRoutes?(Q(),C()):(x(),C()))}).catch(r=>{I("登录失败")}):I("请填写登录信息")})},C=()=>{var t,w,P,S;W().getSystemDictionarys();let m=f.value;(t=d.query)!=null&&t.redirect?h.push({path:(w=d.query)==null?void 0:w.redirect,query:Object.keys((P=d.query)==null?void 0:P.params).length>0?JSON.parse((S=d.query)==null?void 0:S.params):""}):h.push("/"),n.loading.signIn=!0;const r=e("message.signInText");X.success(`${m},${r}`),Y.start()};return N(()=>{n.ruleForm.username=L.get("username"),H().getSystemConfigs()}),{loginClick:l,loginSuccess:C,state:n,formRef:i,rules:p,applyBtnClick:_,showApply:()=>window.location.href.indexOf("public")!=-1,...A(n)}}}),ne={key:0,style:{"text-align":"center"}};function re(e,a,v,B,d,h){const n=u("ele-User"),c=u("el-icon"),g=u("el-input"),p=u("el-form-item"),i=u("ele-Unlock"),f=u("el-button"),_=u("el-form");return V(),R(O,null,[s(_,{ref:"formRef",size:"large",class:"login-content-form",model:e.state.ruleForm,rules:e.rules,onKeyup:K(e.loginClick,["enter"])},{default:o(()=>[s(p,{class:"login-animation1",prop:"username"},{default:o(()=>[s(g,{type:"text",placeholder:e.$t("message.account.accountPlaceholder1"),readonly:"",modelValue:e.ruleForm.username,"onUpdate:modelValue":a[0]||(a[0]=l=>e.ruleForm.username=l),clearable:"",autocomplete:"off"},{prefix:o(()=>[s(c,{class:"el-input__icon"},{default:o(()=>[s(n)]),_:1})]),_:1},8,["placeholder","modelValue"])]),_:1}),s(p,{class:"login-animation2",prop:"password"},{default:o(()=>[s(g,{type:e.isShowPassword?"text":"password",placeholder:e.$t("message.account.accountPlaceholder4"),modelValue:e.ruleForm.password,"onUpdate:modelValue":a[2]||(a[2]=l=>e.ruleForm.password=l)},{prefix:o(()=>[s(c,{class:"el-input__icon"},{default:o(()=>[s(i)]),_:1})]),suffix:o(()=>[y("i",{class:$(["iconfont el-input__icon login-content-password",e.isShowPassword?"icon-yincangmima":"icon-xianshimima"]),onClick:a[1]||(a[1]=l=>e.isShowPassword=!e.isShowPassword)},null,2)]),_:1},8,["type","placeholder","modelValue"])]),_:1}),s(p,{class:"login-animation3",prop:"password_regain"},{default:o(()=>[s(g,{type:e.isShowPassword?"text":"password",placeholder:e.$t("message.account.accountPlaceholder5"),modelValue:e.ruleForm.password_regain,"onUpdate:modelValue":a[4]||(a[4]=l=>e.ruleForm.password_regain=l)},{prefix:o(()=>[s(c,{class:"el-input__icon"},{default:o(()=>[s(i)]),_:1})]),suffix:o(()=>[y("i",{class:$(["iconfont el-input__icon login-content-password",e.isShowPassword?"icon-yincangmima":"icon-xianshimima"]),onClick:a[3]||(a[3]=l=>e.isShowPassword=!e.isShowPassword)},null,2)]),_:1},8,["type","placeholder","modelValue"])]),_:1}),s(p,{class:"login-animation4"},{default:o(()=>[s(f,{type:"primary",class:"login-content-submit",round:"",onClick:e.loginClick,loading:e.loading.signIn},{default:o(()=>[y("span",null,z(e.$t("message.account.accountBtnText")),1)]),_:1},8,["onClick","loading"])]),_:1})]),_:1},8,["model","rules","onKeyup"]),e.showApply()?(V(),R("div",ne,[s(f,{class:"login-content-apply",link:"",type:"primary",plain:"",round:"",onClick:e.applyBtnClick},{default:o(()=>a[5]||(a[5]=[y("span",null,"申请试用",-1)])),_:1},8,["onClick"])])):M("",!0)],64)}const ce=oe(ae,[["render",re],["__scopeId","data-v-deeb965b"]]);export{ce as default}; diff --git a/web/dist/assets/changePwd.Dumi_sqx.css b/web/dist/assets/changePwd.Dumi_sqx.css new file mode 100644 index 0000000000000000000000000000000000000000..e1eb98b34d241878500f3767c75febb22949770a --- /dev/null +++ b/web/dist/assets/changePwd.Dumi_sqx.css @@ -0,0 +1 @@ +.login-content-form[data-v-deeb965b]{margin-top:20px}.login-content-form .login-animation1[data-v-deeb965b]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.1s}.login-content-form .login-animation2[data-v-deeb965b]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.2s}.login-content-form .login-animation3[data-v-deeb965b]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.3s}.login-content-form .login-animation4[data-v-deeb965b]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.4s}.login-content-form .login-animation5[data-v-deeb965b]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.5s}.login-content-form .login-content-password[data-v-deeb965b]{display:inline-block;width:20px;cursor:pointer}.login-content-form .login-content-password[data-v-deeb965b]:hover{color:#909399}.login-content-form .login-content-captcha[data-v-deeb965b]{width:100%;padding:0;font-weight:700;letter-spacing:5px}.login-content-form .login-content-submit[data-v-deeb965b]{width:100%;letter-spacing:2px;font-weight:800;margin-top:15px} diff --git a/web/dist/assets/classic.DpyO9a-A.js b/web/dist/assets/classic.DpyO9a-A.js new file mode 100644 index 0000000000000000000000000000000000000000..c351a0e678e5a7ef6ae0c1b374013728919287c5 --- /dev/null +++ b/web/dist/assets/classic.DpyO9a-A.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/aside.D4ng9uQr.js","assets/index.XK2ik2qb.js","assets/vue.DmuWcDrn.js","assets/index.JncG-tMh.css","assets/header.BQoAQuJ9.js","assets/main.BjGLKst8.js","assets/tagsView.C57Sgq_O.js","assets/_plugin-vue_export-helper.DlAUqK2U.js","assets/tagsView.B9nwrDkZ.css"])))=>i.map(i=>d[i]); +import{u as g,_ as e}from"./index.XK2ik2qb.js";import{d as p,g as E,s as L,T as V,c as k,x as w,C as _,h as x,b as l,o as d,w as f,k as t,u as o,q as a,e as A,J as M,D as b}from"./vue.DmuWcDrn.js";const D={class:"flex-center layout-backtop"},P=p({name:"layoutClassic"}),N=p({...P,setup(B){const m=a(()=>e(()=>import("./aside.D4ng9uQr.js"),__vite__mapDeps([0,1,2,3]))),y=a(()=>e(()=>import("./header.BQoAQuJ9.js"),__vite__mapDeps([4,1,2,3]))),T=a(()=>e(()=>import("./main.BjGLKst8.js"),__vite__mapDeps([5,1,2,3]))),v=a(()=>e(()=>import("./tagsView.C57Sgq_O.js"),__vite__mapDeps([6,1,2,3,7,8]))),s=E(),h=L(),R=g(),{themeConfig:r}=V(R),C=k(()=>r.value.isTagsview),c=()=>{var n;(n=s.value)==null||n.layoutMainScrollbarRef.update()},u=()=>{b(()=>{setTimeout(()=>{c(),s.value.layoutMainScrollbarRef.wrapRef.scrollTop=0},500)})};return w(()=>{u()}),_(()=>h.path,()=>{u()}),_(r,()=>{c()},{deep:!0}),(n,I)=>{const i=x("el-container");return d(),l(i,{class:"layout-container flex-center"},{default:f(()=>[t(o(y)),t(i,{class:"layout-mian-height-50"},{default:f(()=>[t(o(m)),A("div",D,[C.value?(d(),l(o(v),{key:0})):M("",!0),t(o(T),{ref_key:"layoutMainRef",ref:s},null,512)])]),_:1})]),_:1})}}});export{N as default}; diff --git a/web/dist/assets/closeFull.aavHxrrN.css b/web/dist/assets/closeFull.aavHxrrN.css new file mode 100644 index 0000000000000000000000000000000000000000..b5791e3cfd814c3908d53374916711fe4da6262d --- /dev/null +++ b/web/dist/assets/closeFull.aavHxrrN.css @@ -0,0 +1 @@ +.layout-navbars-close-full[data-v-83ab04b1]{position:fixed;z-index:9999999999;right:-30px;top:-30px}.layout-navbars-close-full .layout-navbars-close-full-icon[data-v-83ab04b1]{width:60px;height:60px;border-radius:100%;cursor:pointer;background:#0000001a;transition:all .3s ease;position:relative}.layout-navbars-close-full .layout-navbars-close-full-icon[data-v-83ab04b1] i{position:absolute;left:10px;top:35px;color:#333;transition:all .3s ease}.layout-navbars-close-full[data-v-83ab04b1]:hover{transition:all .3s ease}.layout-navbars-close-full[data-v-83ab04b1]:hover i{color:var(--el-color-primary);transition:all .3s ease} diff --git a/web/dist/assets/closeFull.eiiTwLFe.js b/web/dist/assets/closeFull.eiiTwLFe.js new file mode 100644 index 0000000000000000000000000000000000000000..66737261b80a64a047649a5e03e986fc327e1382 --- /dev/null +++ b/web/dist/assets/closeFull.eiiTwLFe.js @@ -0,0 +1 @@ +import{d as s,T as n,h as c,a as r,J as u,u as _,o as i,e as m,k as d}from"./vue.DmuWcDrn.js";import{O as f}from"./index.XK2ik2qb.js";import{_ as p}from"./_plugin-vue_export-helper.DlAUqK2U.js";const C={key:0,class:"layout-navbars-close-full"},v={class:"layout-navbars-close-full-icon"},g=s({name:"layoutCloseFull"}),F=s({...g,setup(V){const e=f(),{isTagsViewCurrenFull:o}=n(e),t=()=>{e.setCurrenFullscreen(!1)};return(a,k)=>{const l=c("SvgIcon");return _(o)?(i(),r("div",C,[m("div",v,[d(l,{name:"ele-Close",title:a.$t("message.tagsView.closeFullscreen"),onClick:t},null,8,["title"])])])):u("",!0)}}}),T=p(F,[["__scopeId","data-v-83ab04b1"]]);export{T as default}; diff --git a/web/dist/assets/columnPermission.Cm-b5eJD.js b/web/dist/assets/columnPermission.Cm-b5eJD.js new file mode 100644 index 0000000000000000000000000000000000000000..c25cf4dcaa1b5f9d1e7292e6c77b52a67c1c8d77 --- /dev/null +++ b/web/dist/assets/columnPermission.Cm-b5eJD.js @@ -0,0 +1 @@ +import{X as d}from"./index.XK2ik2qb.js";const r=async(n,e,s=[])=>{const t=await n();e.pagination==null&&(e.pagination={show:!0});const i=e.columns,c=["checked","_index","id","create_datetime","update_datetime"].concat(s);return d.eachTree(i,(o,a)=>{!c.includes(String(a))&&a in t.data&&(t.data[a].is_query||(o.column.show=!1,o.column.columnSetDisabled=!0),o.addForm={show:t.data[a].is_create},o.editForm={show:t.data[a].is_update})}),e};export{r as h}; diff --git a/web/dist/assets/columns.CnTkmDw8.js b/web/dist/assets/columns.CnTkmDw8.js new file mode 100644 index 0000000000000000000000000000000000000000..497eb383c49da35552b52cc9236e32968a984e1e --- /dev/null +++ b/web/dist/assets/columns.CnTkmDw8.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/aside.D4ng9uQr.js","assets/index.XK2ik2qb.js","assets/vue.DmuWcDrn.js","assets/index.JncG-tMh.css","assets/header.BQoAQuJ9.js","assets/main.BjGLKst8.js","assets/columnsAside.BZt6OJ0q.js","assets/_plugin-vue_export-helper.DlAUqK2U.js","assets/columnsAside.TyXXNMHi.css"])))=>i.map(i=>d[i]); +import{u as b,_ as o}from"./index.XK2ik2qb.js";import{d as p,g as _,s as E,T as k,x as w,C as i,h as f,b as A,o as L,w as r,k as e,u as t,q as a,D as M}from"./vue.DmuWcDrn.js";const S=p({name:"layoutColumns"}),I=p({...S,setup(g){const d=a(()=>o(()=>import("./aside.D4ng9uQr.js"),__vite__mapDeps([0,1,2,3]))),m=a(()=>o(()=>import("./header.BQoAQuJ9.js"),__vite__mapDeps([4,1,2,3]))),y=a(()=>o(()=>import("./main.BjGLKst8.js"),__vite__mapDeps([5,1,2,3]))),R=a(()=>o(()=>import("./columnsAside.BZt6OJ0q.js"),__vite__mapDeps([6,2,1,3,7,8]))),s=_(""),n=_(),T=E(),v=b(),{themeConfig:h}=k(v),l=()=>{s.value.update(),n.value.layoutMainScrollbarRef.update()},c=()=>{M(()=>{setTimeout(()=>{l(),s.value.wrapRef.scrollTop=0,n.value.layoutMainScrollbarRef.wrapRef.scrollTop=0},500)})};return w(()=>{c()}),i(()=>T.path,()=>{c()}),i(h,()=>{l()},{deep:!0}),(x,D)=>{const C=f("el-scrollbar"),u=f("el-container");return L(),A(u,{class:"layout-container"},{default:r(()=>[e(t(R)),e(u,{class:"layout-columns-warp layout-container-view h100"},{default:r(()=>[e(t(d)),e(C,{ref_key:"layoutScrollbarRef",ref:s,class:"layout-backtop"},{default:r(()=>[e(t(m)),e(t(y),{ref_key:"layoutMainRef",ref:n},null,512)]),_:1},512)]),_:1})]),_:1})}}});export{I as default}; diff --git a/web/dist/assets/columnsAside.BZt6OJ0q.js b/web/dist/assets/columnsAside.BZt6OJ0q.js new file mode 100644 index 0000000000000000000000000000000000000000..b5a5bcbf7cba3547d4a4ff59e5bab21855d9721b --- /dev/null +++ b/web/dist/assets/columnsAside.BZt6OJ0q.js @@ -0,0 +1 @@ +import{d as O,g as I,T as M,s as F,v as j,z,x as E,E as U,$ as V,C as G,h as $,a as c,o as d,k as v,w as K,e as m,G as q,H as J,f as C,u as f,K as k,D as Q}from"./vue.DmuWcDrn.js";import{M as W,u as X,p as i,P as Y}from"./index.XK2ik2qb.js";import{_ as Z}from"./_plugin-vue_export-helper.DlAUqK2U.js";const ee={class:"layout-columns-aside"},te=["onClick","onMouseenter","title"],se={class:"columns-vertical-title font12"},ne=["href"],oe={class:"columns-vertical-title font12"},le=O({name:"layoutColumnsAside"}),ie=O({...le,setup(ae){const A=I([]),_=I(),h=W(),R=X(),{routesList:x,isColumnsMenuHover:T,isColumnsNavHover:D}=M(h),{themeConfig:a}=M(R),y=F(),g=j(),t=z({columnsAsideList:[],liIndex:0,liOldIndex:null,liHoverIndex:null,liOldPath:null,difference:0,routeSplit:[]}),L=e=>{t.liIndex=e,_.value.style.top=`${A.value[e].offsetTop+t.difference}px`},P=(e,s)=>{L(s);let{path:o,redirect:l}=e;l?g.push(l):g.push(o)},b=(e,s)=>{if(!a.value.isColumnsMenuHoverPreload)return!1;let{path:o}=e;t.liOldPath=o,t.liOldIndex=s,t.liHoverIndex=s,i.emit("setSendColumnsChildren",r(o)),h.setColumnsMenuHover(!1),h.setColumnsNavHover(!0)},N=async()=>{await h.setColumnsNavHover(!1),setTimeout(()=>{!T&&!D&&i.emit("restoreDefault")},100)},S=e=>{Q(()=>{L(e)})},w=()=>{var s;t.columnsAsideList=H(x.value);const e=r(y.path);if(Object.keys(e).length<=0)return!1;S((s=e.item)==null?void 0:s.k),i.emit("setSendColumnsChildren",e)},r=e=>{const s=e.split("/");let o={children:[]};return t.columnsAsideList.map((l,n)=>{l.path===`/${s[1]}`&&(l.k=n,o.item={...l},o.children=[{...l}],l.children&&(o.children=l.children))}),o},H=e=>e.filter(s=>{var o;return!((o=s.meta)!=null&&o.isHide)}).map(s=>(s=Object.assign({},s),s.children&&(s.children=H(s.children)),s)),B=e=>{t.routeSplit=e.split("/"),t.routeSplit.shift();const s=`/${t.routeSplit[0]}`,o=t.columnsAsideList.find(l=>l.path===s);if(!o)return!1;setTimeout(()=>{S(o.k)},0)};return E(()=>{w(),i.on("restoreDefault",()=>{t.liOldIndex=null,t.liOldPath=null})}),U(()=>{i.off("restoreDefault",()=>{})}),V(e=>{B(e.path),i.emit("setSendColumnsChildren",r(e.path))}),G(Y.state,e=>{if(e.themeConfig.themeConfig.columnsAsideStyle==="columnsRound"?t.difference=3:t.difference=0,!e.routesList.isColumnsMenuHover&&!e.routesList.isColumnsNavHover)t.liHoverIndex=null,i.emit("setSendColumnsChildren",r(y.path));else{if(t.liHoverIndex=t.liOldIndex,!t.liOldPath)return!1;i.emit("setSendColumnsChildren",r(t.liOldPath))}},{deep:!0}),(e,s)=>{const o=$("SvgIcon"),l=$("el-scrollbar");return d(),c("div",ee,[v(l,null,{default:K(()=>[m("ul",{onMouseleave:s[0]||(s[0]=n=>N())},[(d(!0),c(q,null,J(t.columnsAsideList,(n,u)=>(d(),c("li",{key:u,onClick:p=>P(n,u),onMouseenter:p=>b(n,u),ref_for:!0,ref:p=>{p&&(A.value[u]=p)},class:C({"layout-columns-active":t.liIndex===u,"layout-columns-hover":t.liHoverIndex===u}),title:e.$t(n.meta.title)},[!n.meta.isLink||n.meta.isLink&&n.meta.isIframe?(d(),c("div",{key:0,class:C(f(a).columnsAsideLayout)},[v(o,{name:n.meta.icon},null,8,["name"]),m("div",se,k(e.$t(n.meta.title)&&e.$t(n.meta.title).length>=4?e.$t(n.meta.title).substr(0,f(a).columnsAsideLayout==="columns-vertical"?4:3):e.$t(n.meta.title)),1)],2)):(d(),c("div",{key:1,class:C(f(a).columnsAsideLayout)},[m("a",{href:n.meta.isLink,target:"_blank"},[v(o,{name:n.meta.icon},null,8,["name"]),m("div",oe,k(e.$t(n.meta.title)&&e.$t(n.meta.title).length>=4?e.$t(n.meta.title).substr(0,f(a).columnsAsideLayout==="columns-vertical"?4:3):e.$t(n.meta.title)),1)],8,ne)],2))],42,te))),128)),m("div",{ref_key:"columnsAsideActiveRef",ref:_,class:C(f(a).columnsAsideStyle)},null,2)],32)]),_:1})])}}}),de=Z(ie,[["__scopeId","data-v-a5c512c6"]]);export{de as default}; diff --git a/web/dist/assets/columnsAside.TyXXNMHi.css b/web/dist/assets/columnsAside.TyXXNMHi.css new file mode 100644 index 0000000000000000000000000000000000000000..a64102ed22e2855b0f6813e65b15a45355373702 --- /dev/null +++ b/web/dist/assets/columnsAside.TyXXNMHi.css @@ -0,0 +1 @@ +.layout-columns-aside[data-v-a5c512c6]{width:70px;height:100%;background:var(--next-bg-columnsMenuBar)}.layout-columns-aside ul[data-v-a5c512c6]{position:relative}.layout-columns-aside ul .layout-columns-active[data-v-a5c512c6]{color:var(--next-bg-columnsMenuBarColor)!important;transition:.3s ease-in-out}.layout-columns-aside ul .layout-columns-hover[data-v-a5c512c6],.layout-columns-aside ul li[data-v-a5c512c6]:hover,.layout-columns-aside ul .layout-columns-hover a[data-v-a5c512c6],.layout-columns-aside ul li:hover a[data-v-a5c512c6]{color:var(--el-color-primary)}.layout-columns-aside ul li[data-v-a5c512c6]{color:var(--next-bg-columnsMenuBarColor);width:100%;height:50px;text-align:center;display:flex;cursor:pointer;position:relative;z-index:1}.layout-columns-aside ul li .columns-vertical[data-v-a5c512c6]{margin:auto}.layout-columns-aside ul li .columns-vertical .columns-vertical-title[data-v-a5c512c6]{padding-top:1px}.layout-columns-aside ul li .columns-horizontal[data-v-a5c512c6]{display:flex;height:50px;width:100%;align-items:center;padding:0 5px}.layout-columns-aside ul li .columns-horizontal i[data-v-a5c512c6]{margin-right:3px}.layout-columns-aside ul li .columns-horizontal a[data-v-a5c512c6]{display:flex}.layout-columns-aside ul li .columns-horizontal a .columns-horizontal-title[data-v-a5c512c6]{padding-top:1px}.layout-columns-aside ul li a[data-v-a5c512c6]{text-decoration:none;color:var(--next-bg-columnsMenuBarColor)}.layout-columns-aside ul .columns-round[data-v-a5c512c6],.layout-columns-aside ul .columns-card[data-v-a5c512c6]{background:var(--el-color-primary);color:var(--el-color-white);position:absolute;left:50%;top:2px;height:44px;width:65px;transform:translate(-50%);z-index:0;transition:.3s ease-in-out;border-radius:5px}.layout-columns-aside ul .columns-card[data-v-a5c512c6]{top:0;height:50px;width:100%;border-radius:0} diff --git a/web/dist/assets/commonCrud.Ca1t2kUN.js b/web/dist/assets/commonCrud.Ca1t2kUN.js new file mode 100644 index 0000000000000000000000000000000000000000..b497857dee3839d7808209a7d124d87be3c81644 --- /dev/null +++ b/web/dist/assets/commonCrud.Ca1t2kUN.js @@ -0,0 +1 @@ +import{v as l,c}from"./index.XK2ik2qb.js";import{d,g as p,C as h,a as f,o as w,K as u,Q as _}from"./vue.DmuWcDrn.js";const b=d({__name:"index",props:{modelValue:{type:Number||String}},setup(s){const e=s,t=p();return h(()=>e.modelValue,async o=>{const r=await l().getParentDeptById(o);if(r!=null&&r.nodes){let i="";console.log(r),r.nodes.forEach((n,m)=>{i+=m>0?`/${n.name}`:n.name}),t.value=i}},{immediate:!0}),(o,a)=>(w(),f("div",null,u(t.value),1))}}),g={create_datetime:{form:!1,table:!1,search:!1,width:160},update_datetime:{form:!1,table:!1,search:!1,width:160},creator_name:{form:!1,table:!1,search:!1,width:100},modifier_name:{form:!1,table:!1,search:!1,width:100},dept_belong_id:{form:!1,table:!1,search:!1,width:300},description:{form:!1,table:!1,search:!1,width:100}};function v(s,e={}){const t={...s};for(const o in e)if(Object.prototype.hasOwnProperty.call(e,o)){const a=t[o],r=e[o];a&&r&&(t[o]={...a,...r})}return t}const y=(s={})=>{const e=v(g,s);return{dept_belong_id:{title:"所属部门",type:"dict-tree",search:{show:e.dept_belong_id.search},dict:c({url:"/api/system/dept/all_dept/",isTree:!0,value:"id",label:"name",children:"children"}),column:{align:"center",width:e.dept_belong_id.width,show:e.dept_belong_id.table,component:{is:_(b),vModel:"modelValue"}},form:{show:e.dept_belong_id.form,component:{multiple:!1,clearable:!0,props:{checkStrictly:!0,props:{label:"name",value:"id"}}},helper:"默认不填则为当前创建用户的部门ID"}},description:{title:"备注",search:{show:e.description.search},type:"textarea",column:{width:e.description.width,show:e.description.table},form:{show:e.description.form,component:{placeholder:"请输入内容",showWordLimit:!0,maxlength:"200"}},viewForm:{show:!0}},modifier_name:{title:"修改人",search:{show:e.modifier_name.search},column:{width:e.modifier_name.width,show:e.modifier_name.table},form:{show:e.modifier_name.form},viewForm:{show:!0}},creator_name:{title:"创建人",search:{show:e.creator_name.search},column:{width:e.creator_name.width,show:e.creator_name.table},form:{show:e.creator_name.form},viewForm:{show:!0}},update_datetime:{title:"更新时间",type:"datetime",search:{show:e.update_datetime.search,col:{span:8},component:{type:"datetimerange",props:{"start-placeholder":"开始时间","end-placeholder":"结束时间","value-format":"YYYY-MM-DD HH:mm:ss","picker-options":{shortcuts:[{text:"最近一周",onClick(t){const o=new Date,a=new Date;a.setTime(a.getTime()-3600*1e3*24*7),t.$emit("pick",[a,o])}},{text:"最近一个月",onClick(t){const o=new Date,a=new Date;a.setTime(a.getTime()-3600*1e3*24*30),t.$emit("pick",[a,o])}},{text:"最近三个月",onClick(t){const o=new Date,a=new Date;a.setTime(a.getTime()-3600*1e3*24*90),t.$emit("pick",[a,o])}}]}}},valueResolve(t){const{value:o}=t;o&&(t.form.update_datetime_after=o[0],t.form.update_datetime_before=o[1],delete t.form.update_datetime)}},column:{width:e.update_datetime.width,show:e.update_datetime.table},form:{show:e.update_datetime.form},viewForm:{show:!0}},create_datetime:{title:"创建时间",type:"datetime",search:{show:e.create_datetime.search,col:{span:8},component:{type:"datetimerange",props:{"start-placeholder":"开始时间","end-placeholder":"结束时间","value-format":"YYYY-MM-DD HH:mm:ss","picker-options":{shortcuts:[{text:"最近一周",onClick(t){const o=new Date,a=new Date;a.setTime(a.getTime()-3600*1e3*24*7),t.$emit("pick",[a,o])}},{text:"最近一个月",onClick(t){const o=new Date,a=new Date;a.setTime(a.getTime()-3600*1e3*24*30),t.$emit("pick",[a,o])}},{text:"最近三个月",onClick(t){const o=new Date,a=new Date;a.setTime(a.getTime()-3600*1e3*24*90),t.$emit("pick",[a,o])}}]}}},valueResolve(t){const{value:o}=t;o&&(t.form.create_datetime_after=o[0],t.form.create_datetime_before=o[1],delete t.form.create_datetime)}},column:{width:e.create_datetime.width,show:e.create_datetime.table},form:{show:e.create_datetime.form},viewForm:{show:!0}}}};export{y as c}; diff --git a/web/dist/assets/contextmenu.B7am1DsY.js b/web/dist/assets/contextmenu.B7am1DsY.js new file mode 100644 index 0000000000000000000000000000000000000000..70fa81b680d141f08894c1e59162316a7e78288e --- /dev/null +++ b/web/dist/assets/contextmenu.B7am1DsY.js @@ -0,0 +1 @@ +import{d as m,z as g,c as y,x as v,E as L,C as V,h as b,b as I,o,w as S,p as E,a,n as d,e as l,G as u,H as M,J as $,k as B,K as N,N as W,V as z}from"./vue.DmuWcDrn.js";import{_ as D}from"./_plugin-vue_export-helper.DlAUqK2U.js";const O={class:"el-dropdown-menu"},T=["onClick"],j=m({name:"layoutTagsViewContextmenu"}),A=m({...j,props:{dropdown:{type:Object,default:()=>({x:0,y:0})}},emits:["currentContextmenuClick"],setup(p,{expose:f,emit:x}){const n=p,w=x,e=g({isShow:!1,dropdownList:[{contextMenuClickId:0,txt:"message.tagsView.refresh",affix:!1,icon:"ele-RefreshRight"},{contextMenuClickId:1,txt:"message.tagsView.close",affix:!1,icon:"ele-Close"},{contextMenuClickId:2,txt:"message.tagsView.closeOther",affix:!1,icon:"ele-CircleClose"},{contextMenuClickId:3,txt:"message.tagsView.closeAll",affix:!1,icon:"ele-FolderDelete"},{contextMenuClickId:4,txt:"message.tagsView.fullscreen",affix:!1,icon:"iconfont icon-fullscreen"}],item:{},arrowLeft:10}),r=y(()=>n.dropdown.x+117>document.documentElement.clientWidth?{x:document.documentElement.clientWidth-117-5,y:n.dropdown.y}:n.dropdown),C=t=>{w("currentContextmenuClick",Object.assign({},{contextMenuClickId:t},e.item))},_=t=>{var i;e.item=t,(i=t.meta)!=null&&i.isAffix?e.dropdownList[1].affix=!0:e.dropdownList[1].affix=!1,c(),setTimeout(()=>{e.isShow=!0},10)},c=()=>{e.isShow=!1};return v(()=>{document.body.addEventListener("click",c)}),L(()=>{document.body.removeEventListener("click",c)}),V(()=>n.dropdown,({x:t})=>{t+117>document.documentElement.clientWidth?e.arrowLeft=117-(document.documentElement.clientWidth-t):e.arrowLeft=10},{deep:!0}),f({openContextmenu:_}),(t,i)=>{const h=b("SvgIcon");return o(),I(z,{name:"el-zoom-in-center"},{default:S(()=>[E((o(),a("div",{"aria-hidden":"true",class:"el-dropdown__popper el-popper is-light is-pure custom-contextmenu",role:"tooltip","data-popper-placement":"bottom",style:d(`top: ${r.value.y+5}px;left: ${r.value.x}px;`),key:Math.random()},[l("ul",O,[(o(!0),a(u,null,M(e.dropdownList,(s,k)=>(o(),a(u,null,[s.affix?$("",!0):(o(),a("li",{class:"el-dropdown-menu__item","aria-disabled":"false",tabindex:"-1",key:k,onClick:F=>C(s.contextMenuClickId)},[B(h,{name:s.icon},null,8,["name"]),l("span",null,N(t.$t(s.txt)),1)],8,T))],64))),256))]),l("div",{class:"el-popper__arrow",style:d({left:`${e.arrowLeft}px`})},null,4)],4)),[[W,e.isShow]])]),_:1})}}}),H=D(A,[["__scopeId","data-v-4b07d0ca"]]);export{H as default}; diff --git a/web/dist/assets/contextmenu.Q99eYcOG.css b/web/dist/assets/contextmenu.Q99eYcOG.css new file mode 100644 index 0000000000000000000000000000000000000000..2d9ff4730d100ab4e870d94e2919b9c37ffd2646 --- /dev/null +++ b/web/dist/assets/contextmenu.Q99eYcOG.css @@ -0,0 +1 @@ +.custom-contextmenu[data-v-4b07d0ca]{transform-origin:center top;z-index:2190;position:fixed}.custom-contextmenu .el-dropdown-menu__item[data-v-4b07d0ca]{font-size:12px!important;white-space:nowrap}.custom-contextmenu .el-dropdown-menu__item i[data-v-4b07d0ca]{font-size:12px!important} diff --git a/web/dist/assets/crud.B1xqCDQ3.js b/web/dist/assets/crud.B1xqCDQ3.js new file mode 100644 index 0000000000000000000000000000000000000000..20a4454ca5c20c1b39995842e0e42e86e42534dd --- /dev/null +++ b/web/dist/assets/crud.B1xqCDQ3.js @@ -0,0 +1 @@ +import{r as u,c as y,X as r}from"./index.XK2ik2qb.js";import{a as i}from"./authFunction.CZ5a1pu0.js";import{g as v,D as x}from"./vue.DmuWcDrn.js";const s="/api/system/column/";function D(t){return u({url:s,method:"get",params:t})}function q(t){return u({url:s,method:"post",data:t})}function R(t){return u({url:s+t.id+"/",method:"put",data:t})}function S(t){return u({url:s+t+"/",method:"delete",data:{id:t}})}function C(t){return u({url:s+"multiple_delete/",method:"delete",data:{keys:t}})}function M(){return u({url:"/api/system/column/get_models/",method:"get"})}const _=function({crudExpose:t,props:O,modelDialog:m,selectOptions:c,allModelData:k}){const p=async e=>{if(c.value.id)return await D({menu:c.value.id})},f=async({form:e,row:l})=>(e.id=l.id,await R(e)),h=async({row:e})=>await S(e.id),g=async({form:e})=>(e.menu=c.value.id,await q(e)),n=v([]),b=e=>{const o=t.getTableData().filter(a=>!e.includes(a));r.arrayEach(e,a=>{r.pluck(n.value,"id").includes(a.id)||(n.value=r.union(n.value,[a]))}),r.arrayEach(o,a=>{n.value=r.remove(n.value,d=>d.id!==a.id)})},w=()=>{const e=t.getBaseTableRef(),l=t.getTableData(),o=r.filter(l,a=>r.pluck(n.value,"id").includes(a.id));x(()=>{r.arrayEach(o,a=>{e.toggleRowSelection(a,!0)})})};return{selectedRows:n,crudOptions:{request:{pageRequest:p,addRequest:g,editRequest:f,delRequest:h},pagination:{show:!1},actionbar:{buttons:{add:{show:i("column:Create")},auto:{text:"自动匹配",type:"success",show:i("column:Match"),click:()=>m.value=!0}}},rowHandle:{fixed:"right",buttons:{view:{show:!1},edit:{show:i("column:Update")},remove:{show:i("column:Delete")}}},form:{col:{span:24},labelWidth:"110px",wrapper:{is:"el-dialog",width:"600px"}},table:{rowKey:"id",onSelectionChange:b,onRefreshed:()=>w()},columns:{$checked:{title:"选择",form:{show:!1},column:{type:"selection",align:"center",width:"70px",columnSetDisabled:!0}},_index:{title:"序号",form:{show:!1},column:{align:"center",width:"70px",columnSetDisabled:!0,formatter:e=>{let l=e.index??1,o=t.crudBinding.value.pagination;return((o.currentPage??1)-1)*o.pageSize+l+1}}},model:{title:"model",type:"dict-select",dict:y({url:"/api/system/column/get_models/",label:"title",value:"key"}),column:{sortable:!0},form:{rules:[{required:!0,message:"必填项"}],component:{span:12,showSearch:!0,filterable:!0,filterOption(e,l){return l.label.indexOf(e)>=0||l.value.indexOf(e)>=0}}}},title:{title:"中文名",sortable:"custom",search:{show:!0},type:"text",form:{rules:[{required:!0,message:"必填项"}],component:{span:12,placeholder:"请输入中文名"}}},field_name:{title:"字段名",type:"text",search:{show:!0},column:{sortable:!0},form:{rules:[{required:!0,message:"必填项"}],component:{span:12,placeholder:"请输入字段名"}}}}}}},P=Object.freeze(Object.defineProperty({__proto__:null,createCrudOptions:_},Symbol.toStringTag,{value:"Module"}));export{C as B,P as a,_ as c,M as g}; diff --git a/web/dist/assets/crud.B74cb5FM.js b/web/dist/assets/crud.B74cb5FM.js new file mode 100644 index 0000000000000000000000000000000000000000..1233f783a5f4fd8d771f5aeeeee43cfc37d84b72 --- /dev/null +++ b/web/dist/assets/crud.B74cb5FM.js @@ -0,0 +1 @@ +import{r as a,d as p,t as m,c,g as h}from"./index.XK2ik2qb.js";import{a as r}from"./authFunction.CZ5a1pu0.js";import{d as w}from"./dictionary.DnyXy1XL.js";import"./vue.DmuWcDrn.js";const o="/api/ContractModelViewSet/";function f(e){return a({url:o,method:"get",params:e})}function y(e){return a({url:o,method:"post",data:e})}function g(e){return a({url:o+e.id+"/",method:"put",data:e})}function x(e){return a({url:o+e+"/",method:"delete",data:{id:e}})}function b(e){return p({url:o+"export_data/",params:e,method:"get"})}function V({crudExpose:e}){const s=async t=>await f(t),i=async({form:t,row:n})=>(n.id&&(t.id=n.id),await g(t)),d=async({row:t})=>await x(t.id),l=async({form:t})=>await y(t),u=async t=>await b(t);return{crudOptions:{request:{pageRequest:s,addRequest:l,editRequest:i,delRequest:d},actionbar:{buttons:{export:{show:r("ContractModelViewSet:Export"),text:"导出",title:"导出",click(){return u(e.getSearchFormData())}},add:{show:r("ContractModelViewSet:Create")}}},rowHandle:{fixed:"right",width:130,buttons:{view:{type:"text",order:1,show:r("ContractModelViewSet:Retrieve")},edit:{type:"text",order:2,show:r("ContractModelViewSet:Update")},copy:{type:"text",order:3,show:r("ContractModelViewSet:Copy")},remove:{type:"text",order:4,show:r("ContractModelViewSet:Delete")}}},columns:{contract_ids:{title:"合同编号",type:"text",search:{show:!0},column:{sortable:"custom"},form:{show:!0,component:{placeholder:"合同编号自动生成,无需输入."}},addForm:{component:{disabled:!0}},editForm:{component:{disabled:!0}}},contract_type:{title:"合同类型",search:{show:!0},type:"dict-select",dict:c({data:w("contract_type")}),form:{rules:[{required:!0,message:"合同类型必选",trigger:"change"}],component:{filterable:!0,placeholder:"请输入合同类型"}},component:{props:{color:"auto"}}},contract_remark:{title:"合同备注",type:"textarea",search:{show:!1},column:{show:!1,sortable:"custom"},form:{component:{placeholder:"请输入合同备注"}}},contract_user:{title:"合同客户",search:{show:!0},type:"dict-select",dict:c({url:"/api/CrudPatronModelViewSet/",label:"username",value:"id"}),form:{component:{filterable:!0,placeholder:"请选择合同客户"}},component:{props:{color:"auto"}}},contract_file:{title:"上传合同",type:"file-uploader",form:{component:{limit:1,uploader:{type:"form"},accept:".pdf,.zip,.7z,.rar"},rules:m([{required:!1,message:"此项必传",trigger:"change"}]),helper:"最大可上传1个文件(建议使用密码加密后上传)"},column:{show:!1,component:{async buildUrl(t){return h(t)}}}}}}}}export{V as default}; diff --git a/web/dist/assets/crud.B9j8xmfD.css b/web/dist/assets/crud.B9j8xmfD.css new file mode 100644 index 0000000000000000000000000000000000000000..21f33bdd797abcb377e17648f4b138900dd9bad9 --- /dev/null +++ b/web/dist/assets/crud.B9j8xmfD.css @@ -0,0 +1 @@ +.many-to-many-tag[data-v-0838bf04]{margin-right:5px}.many-to-many-tag[data-v-0838bf04]:last-child{margin-right:0} diff --git a/web/dist/assets/crud.BJWb00pr.js b/web/dist/assets/crud.BJWb00pr.js new file mode 100644 index 0000000000000000000000000000000000000000..c9134d25fb2ee855ee0ed11d679e6b535974c7ee --- /dev/null +++ b/web/dist/assets/crud.BJWb00pr.js @@ -0,0 +1 @@ +import{DelObj as n,UpdateObj as l,AddObj as r,GetList as o}from"./api.DWbfkKZe.js";import{c as d}from"./index.XK2ik2qb.js";import{c}from"./commonCrud.Ca1t2kUN.js";import"./vue.DmuWcDrn.js";const b=function({crudExpose:a}){return{crudOptions:{request:{pageRequest:async e=>await o(e),addRequest:async({form:e})=>await r(e),editRequest:async({form:e,row:t})=>(e.id=t.id,await l(e)),delRequest:async({row:e})=>await n(e.id)},actionbar:{buttons:{add:{show:!1}}},rowHandle:{fixed:"right",width:80,buttons:{view:{show:!1},edit:{iconRight:"Edit",type:"text",show:!1},remove:{iconRight:"Delete",type:"text",show:!1}}},form:{col:{span:24},labelWidth:"110px",wrapper:{is:"el-dialog",width:"600px"}},columns:{_index:{title:"序号",form:{show:!1},column:{align:"center",width:"70px",columnSetDisabled:!0,formatter:e=>{let t=e.index??1,i=a.crudBinding.value.pagination;return((i.currentPage??1)-1)*i.pageSize+t+1}}},no:{title:"流水号",search:{show:!0,component:{props:{clearable:!0},placeholder:"请输入"}},column:{width:"160px",align:"center"}},name:{title:"名称",column:{width:"250px",align:"center"}},models_name:{title:"库表",column:{width:"140px",align:"center"}},start_user_name:{title:"发起人",column:{width:"120px",align:"center"}},"current_node.name":{title:"当前节点",column:{width:"160px",align:"center"}},pre_user:{title:"预处理人",column:{width:"160px",align:"center"}},pre_role:{title:"预处理角色",column:{width:"160px",align:"center"}},pre_dept:{title:"预处理部门",column:{width:"160px",align:"center"}},status:{title:"状态",type:"dict-select",column:{fixed:"right",width:"100px",align:"center"},dict:d({data:[{value:0,label:"进行中"},{value:1,label:"审核通过"},{value:2,label:"审核驳回"},{value:3,label:"审核撤销"}]})},completed_time:{title:"完成时间",column:{width:"160px",align:"center"}},...c({create_datetime:{search:!1,table:!0},update_datetime:{table:!0},dept_belong_id:{table:!1}})}}}};export{b as createCrudOptions}; diff --git a/web/dist/assets/crud.BcxQZW6U.js b/web/dist/assets/crud.BcxQZW6U.js new file mode 100644 index 0000000000000000000000000000000000000000..e5b50b5d73b116736ca32dc12282b34fb6d0e20d --- /dev/null +++ b/web/dist/assets/crud.BcxQZW6U.js @@ -0,0 +1 @@ +import{r as d,c as b,X as a}from"./index.XK2ik2qb.js";import{a as u}from"./authFunction.CZ5a1pu0.js";import{g as v,D as c}from"./vue.DmuWcDrn.js";function R(t){return t.authorized=1,d({url:"/api/system/role/get_role_users/",method:"get",params:t})}function y(t,n){return d({url:`/api/system/role/${t}/remove_role_user/`,method:"delete",data:{user_id:n}})}const _=function({crudExpose:t,context:n}){const f=async e=>await R(e),m=async({form:e,row:l})=>{},h=async({row:e})=>await y(t.crudRef.value.getSearchFormData().role_id,[e.id]),p=async({form:e})=>{},o=v([]),g=e=>{const s=t.getTableData().filter(r=>!e.includes(r));a.arrayEach(e,r=>{a.pluck(o.value,"id").includes(r.id)||(o.value=a.union(o.value,[r]))}),a.arrayEach(s,r=>{o.value=a.remove(o.value,i=>i.id!==r.id)})},w=()=>{const e=t.getBaseTableRef(),l=t.getTableData(),s=a.filter(l,r=>a.pluck(o.value,"id").includes(r.id));c(()=>{a.arrayEach(s,r=>{e.toggleRowSelection(r,!0)})})};return{selectedRows:o,crudOptions:{request:{pageRequest:f,addRequest:p,editRequest:m,delRequest:h},actionbar:{buttons:{add:{show:u("role:AuthorizedAdd"),click:e=>{n.subUserRef.value.dialog=!0,c(()=>{n.subUserRef.value.setSearchFormData({form:{role_id:t.crudRef.value.getSearchFormData().role_id}}),n.subUserRef.value.doRefresh()})}}}},rowHandle:{fixed:"left",width:120,show:u("role:AuthorizedDel"),buttons:{view:{show:!1},edit:{show:!1},remove:{iconRight:"Delete",show:!0}}},table:{rowKey:"id",onSelectionChange:g,onRefreshed:()=>w()},columns:{$checked:{title:"选择",form:{show:!1},column:{show:u("role:AuthorizedDel"),type:"selection",align:"center",width:"55px",columnSetDisabled:!0}},_index:{title:"序号",form:{show:!1},column:{align:"center",width:"70px",columnSetDisabled:!0,formatter:e=>{let l=e.index??1,s=t.crudBinding.value.pagination;return((s.currentPage??1)-1)*s.pageSize+l+1}}},name:{title:"用户名",search:{show:!0,component:{props:{clearable:!0}}},type:"text",form:{show:!1}},dept:{title:"部门",show:!0,type:"dict-tree",column:{name:"text",formatter({value:e,row:l,index:s}){return l.dept__name}},search:{show:!0,disabled:!0,col:{span:6},component:{multiple:!1,props:{checkStrictly:!0,clearable:!0,filterable:!0}}},form:{show:!1},dict:b({isTree:!0,url:"/api/system/dept/all_dept/",value:"id",label:"name"})}}}}},k=Object.freeze(Object.defineProperty({__proto__:null,createCrudOptions:_},Symbol.toStringTag,{value:"Module"}));export{k as a,_ as c,y as r}; diff --git a/web/dist/assets/crud.BkSVuOF_.js b/web/dist/assets/crud.BkSVuOF_.js new file mode 100644 index 0000000000000000000000000000000000000000..9c78321d3e332bbe7c035805a159e9c2d43ed731 --- /dev/null +++ b/web/dist/assets/crud.BkSVuOF_.js @@ -0,0 +1 @@ +import{r as a,d as h,t as f,c as l,g as u}from"./index.XK2ik2qb.js";import{a as r}from"./authFunction.CZ5a1pu0.js";import{d as w}from"./dictionary.DnyXy1XL.js";import"./vue.DmuWcDrn.js";const s="/api/ProductAssemblyModelViewSet/";function y(t){return a({url:s,method:"get",params:t})}function b(t){return a({url:s,method:"post",data:t})}function g(t){return a({url:s+t.id+"/",method:"put",data:t})}function x(t){return a({url:s+t+"/",method:"delete",data:{id:t}})}function q(t){return h({url:s+"export_data/",params:t,method:"get"})}function A({crudExpose:t}){const n=async e=>await y(e),c=async({form:e,row:o})=>(o.id&&(e.id=o.id),await g(e)),d=async({row:e})=>await x(e.id),i=async({form:e})=>await b(e),m=async e=>await q(e);return{crudOptions:{request:{pageRequest:n,addRequest:i,editRequest:c,delRequest:d},actionbar:{buttons:{export:{show:r("ProductAssemblyModelViewSet:Export"),text:"导出",title:"导出",click(){return m(t.getSearchFormData())}},add:{show:r("ProductAssemblyModelViewSet:Create")}}},rowHandle:{fixed:"right",width:130,buttons:{view:{type:"text",order:1,show:r("ProductAssemblyModelViewSet:Retrieve")},edit:{type:"text",order:2,show:r("ProductAssemblyModelViewSet:Update")},copy:{type:"text",order:3,show:r("ProductAssemblyModelViewSet:Copy")},remove:{type:"text",order:4,show:r("ProductAssemblyModelViewSet:Delete")}}},columns:{code:{title:"编号",type:"text",search:{show:!0},column:{sortable:"custom"},form:{show:!0,component:{placeholder:"编号自动生成,无需输入."}},addForm:{component:{disabled:!0}},editForm:{component:{disabled:!0}}},specification:{title:"规格",type:"text",search:{show:!0,component:{placeholder:"请输入规格"}},column:{sortable:"custom"},form:{rules:[{required:!0,message:"规格必填"}],component:{placeholder:"请输入规格"}}},name:{title:"名称",type:"text",search:{show:!0,component:{placeholder:"请输入名称"}},column:{sortable:"custom"},form:{rules:[{required:!0,message:"规格必填"}],component:{placeholder:"请输入名称"}}},number:{title:"数量",type:"number",search:{show:!1,component:{placeholder:"请输入数量"}},column:{sortable:"custom"},form:{value:1,rules:[{required:!0,message:"数量必填"}],component:{min:0,placeholder:"请输入数量"}}},transfer_unit:{title:"单位",type:"dict-radio",search:{show:!0,component:{placeholder:"请输入单位"}},dict:l({data:w("weight_unit")}),column:{sortable:"custom"},form:{rules:[{required:!0,message:"单位必选"}],component:{placeholder:"请输入单位"}}},price:{title:"单价",type:"",search:{show:!1,component:{placeholder:"请输入单价"}},column:{sortable:"custom"},form:{value:1,rules:[{required:!0,message:"单价必填"}],component:{min:0,max:10,step:.1,placeholder:"请输入单价"}}},stash:{title:"所属仓位",type:"dict-select",search:{show:!0,component:{placeholder:"请输入所属仓位"}},dict:l({url:"/api/StashManageModelViewSet/",label:"stash_position",value:"id"}),column:{sortable:"custom"},form:{rules:[{required:!0,message:"所属仓位必选"}],component:{placeholder:"请输入所属仓位"}}},note:{title:"备注",type:"textarea",search:{show:!1},column:{show:!1,sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入订单备注"}}},images:{title:"照片墙",type:"image-uploader",form:{col:{span:24},component:{limit:10,uploader:{type:"form"}},valueBuilder(e){e.mode!=="add"&&e.form.images!==null&&e.form.images.forEach((o,p)=>{e.form.images[p]=u(o)})},rules:f([{required:!1,message:"此项必传",trigger:"change"}]),helper:"最多可上传10个图片"},column:{component:{async buildUrl(e){return u(e)},async buildPreviewUrl({url:e,index:o}){return e+"?preview=600x600"}}}}}}}}export{A as default}; diff --git a/web/dist/assets/crud.BolfnWXH.js b/web/dist/assets/crud.BolfnWXH.js new file mode 100644 index 0000000000000000000000000000000000000000..24ea8069dcf65d2d69d3c4c53f97efe001b85109 --- /dev/null +++ b/web/dist/assets/crud.BolfnWXH.js @@ -0,0 +1 @@ +import{r as a,c,w as l,s as d}from"./index.XK2ik2qb.js";import{d as p}from"./dictionary.DnyXy1XL.js";import{a as i}from"./authFunction.CZ5a1pu0.js";import{k as m,h,D as f}from"./vue.DmuWcDrn.js";const o="/api/system/dictionary/";function w(t){return a({url:o,method:"get",params:t})}function y(t){return a({url:o,method:"post",data:t})}function u(t){return a({url:o+t.id+"/",method:"put",data:t})}function g(t){return a({url:o+t+"/",method:"delete",data:{id:t}})}const C=function({crudExpose:t,context:n}){return{crudOptions:{request:{pageRequest:async e=>await w(e),addRequest:async({form:e})=>await y(e),editRequest:async({form:e,row:r})=>(e.id=r.id,await u(e)),delRequest:async({row:e})=>await g(e.id)},rowHandle:{fixed:"right",width:200,buttons:{view:{show:!1},edit:{iconRight:"Edit",type:"text",show:i("dictionary:Update")},remove:{iconRight:"Delete",type:"text",show:i("dictionary:Delete")},custom:{text:"字典配置",type:"text",show:i("dictionary:Update"),tooltip:{placement:"top",content:"字典配置"},click:e=>{const{row:r}=e;n.subDictRef.value.drawer=!0,f(()=>{n.subDictRef.value.setSearchFormData({form:{parent:r.id}}),n.subDictRef.value.doRefresh()})}}}},columns:{_index:{title:"序号",form:{show:!1},column:{align:"center",width:"70px",columnSetDisabled:!0,formatter:e=>{let r=e.index??1,s=t.crudBinding.value.pagination;return((s.currentPage??1)-1)*s.pageSize+r+1}}},search:{title:"关键词",column:{show:!1},search:{show:!0,component:{props:{clearable:!0},placeholder:"请输入关键词"}},form:{show:!1,component:{props:{clearable:!0}}}},label:{title:"字典名称",search:{show:!0,component:{props:{clearable:!0}}},type:"input",column:{minWidth:120},form:{rules:[{required:!0,message:"字典名称必填项"}],component:{props:{clearable:!0},placeholder:"请输入字典名称"}}},value:{title:"字典编号",search:{disabled:!0,component:{props:{clearable:!0}}},type:"input",column:{minWidth:120},form:{rules:[{required:!0,message:"字典编号必填项"}],component:{props:{clearable:!0},placeholder:"请输入字典编号"},helper:{render(e){return m(h("el-alert"),{title:"使用方法:dictionary('字典编号')",type:"warning"},null)}}}},status:{title:"状态",search:{show:!0},type:"dict-radio",column:{minWidth:90,component:{name:"fs-dict-switch",activeText:"",inactiveText:"",style:"--el-switch-on-color: var(--el-color-primary); --el-switch-off-color: #dcdfe6",onChange:l(e=>()=>{u(e.row).then(r=>{d(r.msg)})})}},dict:c({data:p("button_status_bool")})},sort:{title:"排序",type:"number",column:{minWidth:80},form:{value:1}}}}}};export{C as createCrudOptions}; diff --git a/web/dist/assets/crud.Bq9pdT9R.js b/web/dist/assets/crud.Bq9pdT9R.js new file mode 100644 index 0000000000000000000000000000000000000000..f1489f93d7df3f983d77b1a951f39c75c7bda842 --- /dev/null +++ b/web/dist/assets/crud.Bq9pdT9R.js @@ -0,0 +1 @@ +import{r as o,d as p}from"./index.XK2ik2qb.js";import{a as r}from"./authFunction.CZ5a1pu0.js";import"./vue.DmuWcDrn.js";const a="/api/VIEWSETNAME/";function E(t){return o({url:a,method:"get",params:t})}function l(t){return o({url:a,method:"post",data:t})}function h(t){return o({url:a+t.id+"/",method:"put",data:t})}function w(t){return o({url:a+t+"/",method:"delete",data:{id:t}})}function m(t){return p({url:a+"export_data/",params:t,method:"get"})}function A({crudExpose:t}){const d=async e=>await E(e),u=async({form:e,row:n})=>(n.id&&(e.id=n.id),await h(e)),i=async({row:e})=>await w(e.id),s=async({form:e})=>await l(e),c=async e=>await m(e);return{crudOptions:{request:{pageRequest:d,addRequest:s,editRequest:u,delRequest:i},actionbar:{buttons:{export:{show:r("VIEWSETNAME:Export"),text:"导出",title:"导出",click(){return c(t.getSearchFormData())}},add:{show:r("VIEWSETNAME:Create")}}},rowHandle:{fixed:"right",width:200,buttons:{view:{type:"text",order:1,show:r("VIEWSETNAME:Retrieve")},edit:{type:"text",order:2,show:r("VIEWSETNAME:Update")},copy:{type:"text",order:3,show:r("VIEWSETNAME:Copy")},remove:{type:"text",order:4,show:r("VIEWSETNAME:Delete")}}},columns:{}}}}export{A as default}; diff --git a/web/dist/assets/crud.BtIrK1bf.js b/web/dist/assets/crud.BtIrK1bf.js new file mode 100644 index 0000000000000000000000000000000000000000..af94932ce887e2cee0c51bde1fff9a217f48b308 --- /dev/null +++ b/web/dist/assets/crud.BtIrK1bf.js @@ -0,0 +1 @@ +import{DelObj as n,UpdateObj as r,AddObj as d,GetList as o}from"./api.CQml_ETa.js";import{c as l}from"./index.XK2ik2qb.js";import{c}from"./commonCrud.Ca1t2kUN.js";import"./vue.DmuWcDrn.js";const f=function({crudExpose:i}){return{crudOptions:{request:{pageRequest:async e=>await o(e),addRequest:async({form:e})=>await d(e),editRequest:async({form:e,row:t})=>(e.id=t.id,await r(e)),delRequest:async({row:e})=>await n(e.id)},actionbar:{buttons:{add:{show:!1}}},rowHandle:{fixed:"right",align:"center",width:180,buttons:{view:{show:!1},edit:{iconRight:"Edit",type:"text",show:!1},remove:{iconRight:"Delete",type:"text"}}},form:{col:{span:24},labelWidth:"110px",wrapper:{is:"el-dialog",width:"600px"}},columns:{_index:{title:"序号",form:{show:!1},column:{align:"center",width:"70px",columnSetDisabled:!0,formatter:e=>{let t=e.index??1,a=i.crudBinding.value.pagination;return((a.currentPage??1)-1)*a.pageSize+t+1}}},name:{title:"流程名称",search:{show:!0,component:{props:{clearable:!0},placeholder:"请输入"}},column:{width:"200px",align:"center"}},icon:{title:"流程图标",column:{width:"100px",align:"center"}},model_name:{title:"库表模型",column:{minWidth:"120px",align:"center"}},operation:{title:"库表操作",type:"dict-select",align:"center",dict:l({label:"label",value:"value",data:[{value:"create",label:"新增"},{value:"update",label:"编辑"},{value:"delete",label:"删除"}]})},status:{title:"状态",type:"dict-select",dict:l({data:[{label:"待发布",value:0},{label:"启用",value:1},{label:"停用",value:2}]})},...c({create_datetime:{search:!1,table:!0},update_datetime:{table:!0},dept_belong_id:{table:!1}})}}}};export{f as createCrudOptions}; diff --git a/web/dist/assets/crud.BvRPdH2Q.js b/web/dist/assets/crud.BvRPdH2Q.js new file mode 100644 index 0000000000000000000000000000000000000000..a0b868365e7af1706db4c4ffcb6a3872ed34e6b1 --- /dev/null +++ b/web/dist/assets/crud.BvRPdH2Q.js @@ -0,0 +1 @@ +import{r as a,c as n,g as s}from"./index.XK2ik2qb.js";import"./vue.DmuWcDrn.js";const l="/api/system/file/";function u(t){return a({url:l,method:"get",params:t})}function d(t){return a({url:l,method:"post",data:t})}function c(t){return a({url:l+t.id+"/",method:"put",data:t})}function m(t){return a({url:l+t+"/",method:"delete",data:{id:t}})}const y=function({crudExpose:t,context:r}){return{crudOptions:{actionbar:{buttons:{add:{show:!0,click:()=>{var e;return(e=r.openAddHandle)==null?void 0:e.call(r)}}}},request:{pageRequest:async e=>await u(e),addRequest:async({form:e})=>await d(e),editRequest:async({form:e,row:i})=>(e.id=i.id,await c(e)),delRequest:async({row:e})=>await m(e.id)},tabs:{show:!0,name:"file_type",type:"",options:[{value:0,label:"图片"},{value:1,label:"视频"},{value:2,label:"音频"},{value:3,label:"其他"}]},rowHandle:{fixed:"right",width:200,show:!1,buttons:{view:{show:!1},edit:{iconRight:"Edit",type:"text"},remove:{iconRight:"Delete",type:"text"}}},columns:{_index:{title:"序号",form:{show:!1},column:{align:"center",width:"70px",columnSetDisabled:!0,formatter:e=>{let i=e.index??1,o=t.crudBinding.value.pagination;return((o.currentPage??1)-1)*o.pageSize+i+1}}},search:{title:"关键词",column:{show:!1},search:{show:!0,component:{props:{clearable:!0},placeholder:"请输入关键词"}},form:{show:!1,component:{props:{clearable:!0}}}},name:{title:"文件名称",search:{show:!0},type:"input",column:{minWidth:200},form:{component:{placeholder:"请输入文件名称",clearable:!0}}},preview:{title:"预览",column:{minWidth:120,align:"center"},form:{show:!1}},url:{title:"文件地址",type:"file-uploader",search:{disabled:!0},column:{minWidth:360,component:{async buildUrl(e){return s(e)}}}},md5sum:{title:"文件MD5",search:{disabled:!0},column:{minWidth:300},form:{disabled:!1}},mime_type:{title:"文件类型",type:"input",form:{show:!1},column:{minWidth:160}},file_type:{title:"文件类型",type:"dict-select",dict:n({data:[{label:"图片",value:0,color:"success"},{label:"视频",value:1,color:"warning"},{label:"音频",value:2,color:"danger"},{label:"其他",value:3,color:"primary"}]}),column:{show:!1},search:{show:!0},form:{show:!1,component:{placeholder:"请选择文件类型"}}},size:{title:"文件大小",column:{minWidth:120},form:{show:!1}},upload_method:{title:"上传方式",type:"dict-select",dict:n({data:[{label:"默认上传",value:0,color:"primary"},{label:"文件选择器上传",value:1,color:"warning"}]}),column:{minWidth:140},search:{show:!0}},create_datetime:{title:"创建时间",column:{minWidth:160},form:{show:!1}}}}}};export{y as createCrudOptions}; diff --git a/web/dist/assets/crud.C2AJNsTW.js b/web/dist/assets/crud.C2AJNsTW.js new file mode 100644 index 0000000000000000000000000000000000000000..06273f0c5782fc739cc71f258b88738c4f924ab5 --- /dev/null +++ b/web/dist/assets/crud.C2AJNsTW.js @@ -0,0 +1 @@ +import{r as a,d as m}from"./index.XK2ik2qb.js";import{a as r}from"./authFunction.CZ5a1pu0.js";import"./vue.DmuWcDrn.js";const o="/api/SampleCostModelViewSet/";function i(e){return a({url:o,method:"get",params:e})}function d(e){return a({url:o,method:"post",data:e})}function h(e){return a({url:o+e.id+"/",method:"put",data:e})}function w(e){return a({url:o+e+"/",method:"delete",data:{id:e}})}function f(e){return m({url:o+"export_data/",params:e,method:"get"})}function x({crudExpose:e}){const l=async t=>await i(t),n=async({form:t,row:s})=>(s.id&&(t.id=s.id),await h(t)),u=async({row:t})=>await w(t.id),p=async({form:t})=>await d(t),c=async t=>await f(t);return{crudOptions:{request:{pageRequest:l,addRequest:p,editRequest:n,delRequest:u},actionbar:{buttons:{export:{show:r("SampleCostModelViewSet:Export"),text:"导出",title:"导出",click(){return c(e.getSearchFormData())}},add:{show:r("SampleCostModelViewSet:Create")}}},rowHandle:{fixed:"right",width:200,buttons:{view:{type:"text",order:1,show:r("SampleCostModelViewSet:Retrieve")},edit:{type:"text",order:2,show:r("SampleCostModelViewSet:Update")},copy:{type:"text",order:3,show:r("SampleCostModelViewSet:Copy")},remove:{type:"text",order:4,show:r("SampleCostModelViewSet:Delete")}}},columns:{sample_name:{title:"名称",type:"text",search:{show:!0,component:{placeholder:"请输入名称"}},column:{sortable:"custom"},form:{rules:[{required:!0,message:"名称必填",trigger:"blur"}],component:{placeholder:"请输入名称"}}},sample_specification:{title:"规格",type:"text",search:{show:!0,component:{placeholder:"请输入规格"}},column:{sortable:"custom"},form:{rules:[{required:!0,message:"规格必填",trigger:"blur"}],component:{placeholder:"请输入规格"}}},sample_number:{title:"数量",type:"number",search:{show:!1,component:{placeholder:"请输入数量"}},column:{sortable:"custom"},form:{rules:[{required:!0,message:"数量必填",trigger:"blur"}],component:{placeholder:"请输入数量"}}},sample_price:{title:"单价",type:"number",search:{show:!1,component:{placeholder:"请输入单价"}},column:{sortable:"custom"},form:{rules:[{required:!0,message:"单价必填",trigger:"blur"}],component:{min:0,step:.01,placeholder:"请输入单价"}}},sample_total_price:{title:"总价",type:"number",search:{show:!1,component:{placeholder:"请输入总价"}},column:{sortable:"custom"},form:{rules:[{required:!1}],component:{min:0,step:.01,placeholder:"请输入总价"}}},sample_note:{title:"备注",type:"textarea",search:{show:!1,component:{placeholder:"请输入备注"}},column:{sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入备注"}}}}}}}export{x as default}; diff --git a/web/dist/assets/crud.C4dquu5X.js b/web/dist/assets/crud.C4dquu5X.js new file mode 100644 index 0000000000000000000000000000000000000000..c6a0a63e6f74728936e61b2c6a502b1e573c6220 --- /dev/null +++ b/web/dist/assets/crud.C4dquu5X.js @@ -0,0 +1 @@ +import{r as l,c as u}from"./index.XK2ik2qb.js";import{d as n}from"./dictionary.DnyXy1XL.js";import"./vue.DmuWcDrn.js";const o="/api/system/dictionary/";function i(e){return l({url:o,method:"get",params:e})}function s(e){return l({url:o,method:"post",data:e})}function c(e){return l({url:o+e.id+"/",method:"put",data:e})}function d(e){return l({url:o+e+"/",method:"delete",data:{}})}const y=function({crudExpose:e,context:p}){return{crudOptions:{request:{pageRequest:async t=>await i(t),addRequest:async({form:t})=>{const a=e.getSearchFormData().parent;if(t.parent=a,a)return await s(t)},editRequest:async({form:t,row:r})=>(t.id=r.id,await c(t)),delRequest:async({row:t})=>await d(t.id)},rowHandle:{fixed:"right",width:200,buttons:{view:{show:!1},edit:{iconRight:"Edit",type:"text"},remove:{iconRight:"Delete",type:"text"}}},columns:{_index:{title:"序号",form:{show:!1},column:{align:"center",width:"70px",columnSetDisabled:!0,formatter:t=>{let r=t.index??1,a=e.crudBinding.value.pagination;return((a.currentPage??1)-1)*a.pageSize+r+1}}},label:{title:"名称",search:{show:!0,component:{props:{clearable:!0}}},type:"input",form:{rules:[{required:!0,message:"名称必填项"}],component:{props:{clearable:!0},placeholder:"请输入名称"}}},type:{title:"数据值类型",type:"dict-select",search:{disabled:!0,component:{props:{clearable:!0}}},show:!1,dict:u({data:[{label:"text",value:0},{label:"number",value:1},{label:"date",value:2},{label:"datetime",value:3},{label:"time",value:4},{label:"file",value:5},{label:"boolean",value:6},{label:"images",value:7}]}),form:{rules:[{required:!0,message:"数据值类型必填项"}],value:0,component:{props:{clearable:!0},placeholder:"请选择数据值类型"}}},value:{title:"数据值",search:{show:!0,component:{props:{clearable:!0}}},view:{component:{props:{height:100,width:100}}},type:"input",form:{rules:[{required:!0,message:"数据值必填项"}],component:{props:{clearable:!0},placeholder:"请输入数据值"}}},status:{title:"状态",width:80,search:{show:!0},type:"dict-radio",dict:u({data:n("button_status_bool")}),form:{value:!0,rules:[{required:!0,message:"状态必填项"}]}},sort:{title:"排序",width:70,type:"number",form:{value:1,component:{},rules:[{required:!0,message:"排序必填项"}]}},color:{title:"标签颜色",width:90,search:{disabled:!0},type:"dict-select",dict:u({data:[{label:"success",value:"success",color:"success"},{label:"primary",value:"primary",color:"primary"},{label:"info",value:"info",color:"info"},{label:"danger",value:"danger",color:"danger"},{label:"warning",value:"warning",color:"warning"}]}),form:{component:{props:{clearable:!0}}}},is_value:{title:"是否值",column:{show:!1},form:{show:!1,value:!0}}}}}};export{y as createCrudOptions}; diff --git a/web/dist/assets/crud.CDRJ7Jbg.js b/web/dist/assets/crud.CDRJ7Jbg.js new file mode 100644 index 0000000000000000000000000000000000000000..0e133f356837f9e02953185209cef2cd9941099f --- /dev/null +++ b/web/dist/assets/crud.CDRJ7Jbg.js @@ -0,0 +1 @@ +import{i as s}from"./vue.DmuWcDrn.js";function d({crudExpose:t}){const{crudBinding:r}=t,o=s("get:scope",()=>({index:null,row:null,form:null,mode:"edit"})),{index:i,row:a,form:l,mode:e}=o();return{crudOptions:{actionbar:{buttons:{add:{show:!1},addRow:{show:e!="view"}}},search:{show:!1},toolbar:{show:!1,buttons:{refresh:{show:!1},search:{show:!1}}},table:{editable:{enabled:!1,mode:"free",showAction:!1,activeDefault:!0}},pagination:{show:!1,pageSize:9999999},columns:{sample_name:{title:"名称",type:"text",column:{minWidth:50},form:{component:{placeholder:"请输入",disabled:e=="view"},rules:[{required:!0,message:"名称必填项"}]}},sample_specification:{title:"规格",type:"text",form:{component:{placeholder:"请输入",disabled:e=="view"},rules:[{required:!0,message:"规格必填项"}]}},sample_number:{title:"数量",type:"number",column:{minWidth:70},form:{component:{disabled:e=="view"},rules:[{required:!0,message:"数量必填项"}]}},sample_price:{title:"单价",type:"number",form:{component:{min:0,step:.1,disabled:e=="view"},rules:[{required:!0,message:"单价必填项"}]}},note:{title:"备注",type:"textarea",form:{component:{placeholder:"请输入",disabled:e=="view"}}}},rowHandle:{fixed:"right",width:90,show:e!="view"}}}}export{d as default}; diff --git a/web/dist/assets/crud.CL85Bv5S.js b/web/dist/assets/crud.CL85Bv5S.js new file mode 100644 index 0000000000000000000000000000000000000000..aa68da57eaf22bdfdee801b2346587ae09cc141c --- /dev/null +++ b/web/dist/assets/crud.CL85Bv5S.js @@ -0,0 +1 @@ +import{r as i,d as w,t as u,c as a,g as s}from"./index.XK2ik2qb.js";import y from"./index.S9xXVY3S.js";import{a as r}from"./authFunction.CZ5a1pu0.js";import{d as n}from"./dictionary.DnyXy1XL.js";import"./vue.DmuWcDrn.js";import"./crud.jJOAkYw9.js";import"./_plugin-vue_export-helper.DlAUqK2U.js";const l="/api/CrudPatronModelViewSet/";function g(t){return i({url:l,method:"get",params:t})}function b(t){return i({url:l,method:"post",data:t})}function x(t){return i({url:l+t.id+"/",method:"put",data:t})}function v(t){return i({url:l+t+"/",method:"delete",data:{id:t}})}function q(t){return w({url:l+"export_data/",params:t,method:"get"})}function O({crudExpose:t}){const d=async e=>await g(e),p=async({form:e,row:o})=>(o.id&&(e.id=o.id),await x(e)),m=async({row:e})=>await v(e.id),f=async({form:e})=>await b(e),h=async e=>await q(e);return console.log("这个位置是全局数据:",t),{crudOptions:{request:{pageRequest:d,addRequest:f,editRequest:p,delRequest:m},actionbar:{buttons:{export:{show:r("CrudPatronModelViewSet:Export"),text:"导出",title:"导出",click(){return h(t.getSearchFormData())}},add:{show:r("CrudPatronModelViewSet:Create")}}},rowHandle:{fixed:"right",width:200,align:"center",buttons:{view:{type:"text",order:1,show:r("CrudPatronModelViewSet:Retrieve")},edit:{type:"text",order:2,show:r("CrudPatronModelViewSet:Update")},copy:{type:"text",order:3,show:r("CrudPatronModelViewSet:Copy")},remove:{type:"text",order:4,show:r("CrudPatronModelViewSet:Delete")}}},columns:{username:{title:"客户名称",type:"text",search:{show:!0,component:{placeholder:"请输入客户名称"}},column:{sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入客户名称"}}},code:{title:"客户代号",type:"text",search:{show:!0,component:{placeholder:"客户代号"}},column:{sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"客户代号"}}},open_order_name:{title:"开单名称",type:"text",search:{show:!0,component:{placeholder:"请输入开单名称"}},column:{sortable:"custom"},form:{rules:[{required:!0,message:"开单名称必填"}],component:{placeholder:"请输入开单名称"}}},phone:{title:"联系电话",type:"text",search:{show:!0,component:{placeholder:"请输入联系电话"}},column:{sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入联系电话"}}},email:{title:"邮箱",type:"text",search:{show:!0,component:{placeholder:"请输入邮箱地址"}},column:{sortable:"custom"},form:{rules:[{type:"email",message:"请输入正确的邮箱地址",trigger:["blur","change"]}],component:{placeholder:"请输入邮箱"}}},age:{title:"年龄",type:"number",column:{sortable:"custom"},form:{value:0,component:{min:0,placeholder:"请输入客户年龄"}}},sex:{title:"性别",type:"dict-radio",search:{show:!0,component:{placeholder:"请选择性别"}},column:{sortable:"custom"},dict:a({data:n("gender")}),form:{value:1,component:{optionName:"el-radio"}},component:{props:{color:"auto"}}},my_remark:{title:"我方备注",type:"textarea",search:{show:!1},column:{show:!1,sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入我方备注"}}},tags:{title:"客户标签",search:{show:!1,component:{props:{name:"fs-dict-select",clearable:!0}}},type:"dict-select",dict:a({value:"id",label:"label",data:n("patron_tag")}),form:{rules:[{required:!1}],component:{multiple:!0,filterable:!0,placeholder:"请选择标签"}},component:{props:{color:"auto"}}},express:{title:"默认物流",search:{show:!0},type:"dict-select",dict:a({data:n("express")}),form:{component:{filterable:!0,placeholder:"请输入默认物流"}},component:{props:{color:"auto"}}},salesman:{title:"业务员",search:{show:!1},type:"dict-select",dict:a({url:"/api/system/user/",value:"id",label:"name"}),form:{component:{multiple:!0,filterable:!0,placeholder:"请选择业务员"}},component:{props:{color:"auto"}}},hierarchy:{title:"客户等级",search:{show:!0,component:{placeholder:"请选择客户等级"}},type:["dict-radio","colspan"],dict:a({data:n("patron")}),form:{value:0,component:{optionName:"el-radio-button"}},component:{props:{color:"auto"}}},images:{title:"照片墙",type:"image-uploader",form:{component:{limit:10,uploader:{type:"form"}},valueBuilder(e){e.mode!=="add"&&e.form.images!==null&&e.form.images.forEach((o,c)=>{e.form.images[c]=s(o)})},rules:u([{required:!1,message:"此项必传",trigger:"change"}]),helper:"最多可上传10个图片"},column:{component:{async buildUrl(e){return s(e)},async buildPreviewUrl({url:e,index:o}){return e+"?preview=600x600"}}}},files:{title:"上传附件",type:"file-uploader",form:{component:{limit:5,uploader:{type:"form"},accept:".pdf,.csv,.doc,.docx,.xls,.xlsx,.mp4,.zip,.7z,.rar"},valueBuilder(e){e.mode!=="add"&&e.form.files!==null&&e.form.files.forEach((o,c)=>{e.form.files[c]=s(o)})},rules:u([{required:!1,message:"此项必传",trigger:"change"}]),helper:"最大可上传5个文件"},column:{show:!1,component:{async buildUrl(e){return s(e)}}}},addressee:{title:"收件人信息",type:"text",form:{component:{name:y,vModel:"modelValue",readonly:!0},col:{span:24}},column:{show:!1,formatter:({row:e})=>{var o;return((o=e.addressee)==null?void 0:o.length)+"条数据"}}}},form:{display:"flex",wrapper:{width:"80%"},async beforeSubmit(){var o;if(await((o=t.getFormComponentRef("addressee"))==null?void 0:o.validate())!==!0)return!1}},toolbar:{buttons:{export:{show:!0}}}}}}export{O as default}; diff --git a/web/dist/assets/crud.CNUBLSuF.js b/web/dist/assets/crud.CNUBLSuF.js new file mode 100644 index 0000000000000000000000000000000000000000..78761bbb3c10cbdc79fb38692eecb7ae00a73e0f --- /dev/null +++ b/web/dist/assets/crud.CNUBLSuF.js @@ -0,0 +1 @@ +import{r as a,d as m,c as n}from"./index.XK2ik2qb.js";import{a as o}from"./authFunction.CZ5a1pu0.js";import{d as u}from"./dictionary.DnyXy1XL.js";import"./vue.DmuWcDrn.js";const r="/api/InAndOutRecordModelViewSet/";function h(e){return a({url:r,method:"get",params:e})}function _(e){return a({url:r,method:"post",data:e})}function w(e){return a({url:r+e.id+"/",method:"put",data:e})}function f(e){return a({url:r+e+"/",method:"delete",data:{id:e}})}function y(e){return m({url:r+"export_data/",params:e,method:"get"})}function R({crudExpose:e}){const l=async t=>await h(t),s=async({form:t,row:c})=>(c.id&&(t.id=c.id),await w(t)),d=async({row:t})=>await f(t.id),i=async({form:t})=>await _(t),p=async t=>await y(t);return{crudOptions:{request:{pageRequest:l,addRequest:i,editRequest:s,delRequest:d},actionbar:{buttons:{export:{show:o("InAndOutRecordModelViewSet:Export"),text:"导出",title:"导出",click(){return p(e.getSearchFormData())}},add:{show:o("InAndOutRecordModelViewSet:Create")}}},rowHandle:{fixed:"right",width:200,buttons:{view:{type:"text",order:1,show:o("InAndOutRecordModelViewSet:Retrieve")},edit:{type:"text",order:2,show:o("InAndOutRecordModelViewSet:Update")},copy:{type:"text",order:3,show:o("InAndOutRecordModelViewSet:Copy")},remove:{type:"text",order:4,show:o("InAndOutRecordModelViewSet:Delete")}}},columns:{in_or_out:{title:"出入库类型",type:"dict-radio",search:{show:!0,component:{placeholder:"请选择出入库类型"}},dict:n({data:u("in_or_out_type")}),column:{sortable:"custom"},form:{rules:[{required:!0,message:"出入库类型必选"}],component:{placeholder:"请选择出入库类型"}}},in_or_out_aim:{title:"进出来源与目的",type:"text",search:{show:!0,component:{placeholder:"请输入进出来源与目的"}},column:{sortable:"custom"},form:{rules:[{required:!0,message:"进出来源与目的必填"}],component:{placeholder:"请输入进出来源与目的"}}},in_or_out_code:{title:"商品编号",type:"text",search:{show:!0,component:{placeholder:"请输入商品编号"}},column:{sortable:"custom"},form:{rules:[{required:!0,message:"商品编号必填"}],component:{placeholder:"请输入商品编号"}}},in_or_out_name:{title:"商品名称",type:"text",search:{show:!0,component:{placeholder:"请输入商品名称"}},column:{sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入商品名称"}}},in_or_out_type:{title:"商品类型",type:"dict-select",search:{show:!0,component:{placeholder:"请输入商品类型"}},dict:n({data:u("product_type")}),column:{sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入商品类型"}}},in_or_out_number:{title:"出入库数量",type:"number",search:{show:!1,component:{placeholder:"请输入出入库数量"}},column:{sortable:"custom"},form:{value:1,rules:[{required:!0,message:"出入库数量必填"}],component:{min:0,placeholder:"请输入出入库数量"}}},in_or_out_unit:{title:"单位",type:"dict-radio",search:{show:!0,component:{placeholder:"请输入单位"}},dict:n({data:u("weight_unit")}),column:{sortable:"custom"},form:{rules:[{required:!0,message:"单位必选"}],component:{placeholder:"请输入单位"}}},in_or_out_stash:{title:"仓位",type:"dict-select",search:{show:!0,component:{placeholder:"请输入仓位"}},dict:n({url:"/api/StashManageModelViewSet/",label:"stash_position",value:"id"}),column:{sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入仓位"}}},in_or_out_note:{title:"备注",type:"textarea",search:{show:!1,component:{placeholder:"请输入备注"}},column:{sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入备注"}}}}}}}export{R as default}; diff --git a/web/dist/assets/crud.CNtgxGiQ.js b/web/dist/assets/crud.CNtgxGiQ.js new file mode 100644 index 0000000000000000000000000000000000000000..f7ec1fed694f2f32f4e6630a8ac3145e95de0f5b --- /dev/null +++ b/web/dist/assets/crud.CNtgxGiQ.js @@ -0,0 +1 @@ +import{r as a,c as i,w as l,g as o}from"./index.XK2ik2qb.js";import"./vue.DmuWcDrn.js";const s="/api/system/download_center/";function r(e){return a({url:s,method:"get",params:e})}function u(e){return a({url:s,method:"post",data:e})}function d(e){return a({url:s+e.id+"/",method:"put",data:e})}function c(e){return a({url:s+e+"/",method:"delete",data:{id:e}})}const x=function({crudExpose:e}){return{crudOptions:{request:{pageRequest:async t=>await r(t),addRequest:async({form:t})=>await u(t),editRequest:async({form:t,row:n})=>(t.id=n.id,await d(t)),delRequest:async({row:t})=>await c(t.id)},pagination:{show:!0},actionbar:{buttons:{add:{show:!1}}},toolbar:{buttons:{export:{show:!1}}},rowHandle:{fixed:"right",width:120,buttons:{view:{show:!1},edit:{show:!1},remove:{show:!1},download:{show:l(t=>t.row.task_status===2),text:"下载文件",type:"warning",click:t=>window.open(o(t.row.url),"_blank")}}},form:{col:{span:24},labelWidth:"100px",wrapper:{is:"el-dialog",width:"600px"}},columns:{_index:{title:"序号",form:{show:!1},column:{type:"index",align:"center",width:"70px",columnSetDisabled:!0}},task_name:{title:"任务名",type:"text",column:{minWidth:160,align:"left"},search:{show:!0}},file_name:{title:"文件名",type:"text",column:{minWidth:160,align:"left"},search:{show:!0}},size:{title:"文件大小(b)",type:"number",column:{width:100}},task_status:{title:"任务状态",type:"dict-select",dict:i({data:[{label:"任务已创建",value:0},{label:"任务进行中",value:1},{label:"任务完成",value:2},{label:"任务失败",value:3}]}),column:{width:120},search:{show:!0}},create_datetime:{title:"创建时间",column:{width:160}},update_datetime:{title:"更新时间",column:{width:160}}}}}};export{x as createCrudOptions}; diff --git a/web/dist/assets/crud.CPULa58X.js b/web/dist/assets/crud.CPULa58X.js new file mode 100644 index 0000000000000000000000000000000000000000..6a1a1a8b117b94237e8a9d61b1d8784cbc306093 --- /dev/null +++ b/web/dist/assets/crud.CPULa58X.js @@ -0,0 +1 @@ +import{r as a,c as n,w as d,s as c}from"./index.XK2ik2qb.js";import{d as m}from"./dictionary.DnyXy1XL.js";import{a as o}from"./authFunction.CZ5a1pu0.js";import{c as h,D as p}from"./vue.DmuWcDrn.js";const i="/api/system/role/";function w(t){return a({url:i,method:"get",params:t})}function f(t){return a({url:i,method:"post",data:t})}function l(t){return a({url:i+t.id+"/",method:"put",data:t})}function y(t){return a({url:i+t+"/",method:"delete",data:{id:t}})}const O=function({crudExpose:t,context:s}){return{crudOptions:{request:{pageRequest:async e=>await w(e),addRequest:async({form:e})=>await f(e),editRequest:async({form:e,row:r})=>(e.id=r.id,await l(e)),delRequest:async({row:e})=>await y(e.id)},pagination:{show:!0},actionbar:{buttons:{add:{show:o("role:Create")}}},rowHandle:{fixed:"right",width:h(()=>o("role:AuthorizedAdd")||o("role:AuthorizedSearch")?420:320),buttons:{view:{show:!0},edit:{show:o("role:Update")},remove:{show:o("role:Delete")},assignment:{type:"primary",text:"授权用户",show:o("role:AuthorizedAdd")||o("role:AuthorizedSearch"),click:e=>{const{row:r}=e;s.RoleUserDrawer.handleDrawerOpen(r),p(()=>{s.RoleUserRef.value.setSearchFormData({form:{role_id:r.id}}),s.RoleUserRef.value.doRefresh()})}},permission:{type:"primary",text:"权限配置",show:o("role:Permission"),click:e=>{const{row:r}=e;s.RoleDrawer.handleDrawerOpen(r),s.RoleMenuBtn.setState([]),s.RoleMenuField.setState([])}}}},form:{col:{span:24},labelWidth:"100px",wrapper:{is:"el-dialog",width:"600px"}},columns:{_index:{title:"序号",form:{show:!1},column:{type:"index",align:"center",width:"70px",columnSetDisabled:!0}},id:{title:"ID",column:{show:!1},search:{show:!1},form:{show:!1}},name:{title:"角色名称",search:{show:!0},column:{minWidth:120,sortable:"custom"},form:{rules:[{required:!0,message:"角色名称必填"}],component:{placeholder:"请输入角色名称"}}},key:{title:"权限标识",search:{show:!1},column:{minWidth:120,sortable:"custom",columnSetDisabled:!0},form:{rules:[{required:!0,message:"权限标识必填"}],component:{placeholder:"输入权限标识"}},valueBuilder(e){const{row:r,key:u}=e;return r[u]}},sort:{title:"排序",search:{show:!1},type:"number",column:{minWidth:90,sortable:"custom"},form:{rules:[{required:!0,message:"排序必填"}],value:1}},status:{title:"状态",search:{show:!0},type:"dict-radio",column:{width:100,component:{name:"fs-dict-switch",activeText:"",inactiveText:"",style:"--el-switch-on-color: var(--el-color-primary); --el-switch-off-color: #dcdfe6",onChange:d(e=>()=>{l(e.row).then(r=>{c(r.msg)})})}},dict:n({value:m("button_status_bool")})}}}}};export{O as createCrudOptions}; diff --git a/web/dist/assets/crud.CRnHRW7e.js b/web/dist/assets/crud.CRnHRW7e.js new file mode 100644 index 0000000000000000000000000000000000000000..ded16cbb902cab0445fc8d57b22b7f83dd46c2ff --- /dev/null +++ b/web/dist/assets/crud.CRnHRW7e.js @@ -0,0 +1 @@ +import{DelObj as n,UpdateObj as l,AddObj as r,GetList as o}from"./api.Rm0uCpyl.js";import{c as d}from"./index.XK2ik2qb.js";import{c}from"./commonCrud.Ca1t2kUN.js";import"./vue.DmuWcDrn.js";const b=function({crudExpose:a}){return{crudOptions:{request:{pageRequest:async e=>await o(e),addRequest:async({form:e})=>await r(e),editRequest:async({form:e,row:t})=>(e.id=t.id,await l(e)),delRequest:async({row:e})=>await n(e.id)},actionbar:{buttons:{add:{show:!1}}},rowHandle:{fixed:"right",width:80,buttons:{view:{show:!1},edit:{iconRight:"Edit",type:"text",show:!1},remove:{iconRight:"Delete",type:"text",show:!1}}},form:{col:{span:24},labelWidth:"110px",wrapper:{is:"el-dialog",width:"600px"}},columns:{_index:{title:"序号",form:{show:!1},column:{align:"center",width:"70px",columnSetDisabled:!0,formatter:e=>{let t=e.index??1,i=a.crudBinding.value.pagination;return((i.currentPage??1)-1)*i.pageSize+t+1}}},no:{title:"流水号",search:{show:!0,component:{props:{clearable:!0},placeholder:"请输入"}},column:{width:"160px",align:"center"}},name:{title:"名称",column:{width:"250px",align:"center"}},models_name:{title:"库表",column:{width:"140px",align:"center"}},start_user_name:{title:"发起人",column:{width:"120px",align:"center"}},"current_node.name":{title:"当前节点",column:{width:"160px",align:"center"}},pre_user:{title:"预处理人",column:{width:"160px",align:"center"}},pre_role:{title:"预处理角色",column:{width:"160px",align:"center"}},pre_dept:{title:"预处理部门",column:{width:"160px",align:"center"}},status:{title:"状态",type:"dict-select",column:{fixed:"right",width:"100px",align:"center"},dict:d({data:[{value:0,label:"进行中"},{value:1,label:"审核通过"},{value:2,label:"审核驳回"},{value:3,label:"审核撤销"}]})},completed_time:{title:"完成时间",column:{width:"160px",align:"center"}},...c({create_datetime:{search:!1,table:!0},update_datetime:{table:!0},dept_belong_id:{table:!1}})}}}};export{b as createCrudOptions}; diff --git a/web/dist/assets/crud.CYFE-0Hu.js b/web/dist/assets/crud.CYFE-0Hu.js new file mode 100644 index 0000000000000000000000000000000000000000..7d2028945d3c0007f4ed41658d45bbcea0ba8a0d --- /dev/null +++ b/web/dist/assets/crud.CYFE-0Hu.js @@ -0,0 +1 @@ +import{r as s,d as m,c as a}from"./index.XK2ik2qb.js";import{a as r}from"./authFunction.CZ5a1pu0.js";import{d as l}from"./dictionary.DnyXy1XL.js";import"./vue.DmuWcDrn.js";const o="/api/TransferRecordModelViewSet/";function h(e){return s({url:o,method:"get",params:e})}function f(e){return s({url:o,method:"post",data:e})}function w(e){return s({url:o+e.id+"/",method:"put",data:e})}function y(e){return s({url:o+e+"/",method:"delete",data:{id:e}})}function b(e){return m({url:o+"export_data/",params:e,method:"get"})}function R({crudExpose:e}){const c=async t=>await h(t),d=async({form:t,row:n})=>(n.id&&(t.id=n.id),await w(t)),u=async({row:t})=>await y(t.id),i=async({form:t})=>await f(t),p=async t=>await b(t);return{crudOptions:{request:{pageRequest:c,addRequest:i,editRequest:d,delRequest:u},actionbar:{buttons:{export:{show:r("TransferRecordModelViewSet:Export"),text:"导出",title:"导出",click(){return p(e.getSearchFormData())}},add:{show:r("TransferRecordModelViewSet:Create")}}},rowHandle:{fixed:"right",width:200,buttons:{view:{type:"text",order:1,show:r("TransferRecordModelViewSet:Retrieve")},edit:{type:"text",order:2,show:r("TransferRecordModelViewSet:Update")},copy:{type:"text",order:3,show:r("TransferRecordModelViewSet:Copy")},remove:{type:"text",order:4,show:r("TransferRecordModelViewSet:Delete")}}},columns:{transfer_aim:{title:"调拨来源与目的",type:"text",search:{show:!1,component:{placeholder:"请输入调拨来源与目的"}},column:{sortable:"custom"},form:{rules:[{required:!0,message:"调拨来源与目的必填"}],component:{placeholder:"请输入调拨来源与目的"}}},transfer_out_stash:{title:"调出仓名称",type:"dict-select",search:{show:!0,component:{placeholder:"请输入调出仓名称"}},dict:a({url:"/api/StashManageModelViewSet/",label:"stash_position",value:"id"}),column:{sortable:"custom"},form:{rules:[{required:!0,message:"调出仓名称必选"}],component:{placeholder:"请输入调出仓名称"}}},transfer_code:{title:"商品编号",type:"text",search:{show:!0,component:{placeholder:"请输入商品编号"}},column:{sortable:"custom"},form:{rules:[{required:!0,message:"商品编号必填"}],component:{placeholder:"请输入商品编号"}}},transfer_name:{title:"商品名称",type:"text",search:{show:!0,component:{placeholder:"请输入商品名称"}},column:{sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入商品名称"}}},transfer_product_type:{title:"商品类型",type:"dict-select",search:{show:!0,component:{placeholder:"请输入商品类型"}},dict:a({data:l("product_type")}),column:{sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入商品类型"}}},transfer_number:{title:"调拨数量",type:"number",search:{show:!1,component:{placeholder:"请输入调拨数量"}},column:{sortable:"custom"},form:{value:1,rules:[{required:!0,message:"调拨数量必填"}],component:{min:0,placeholder:"请输入调拨数量"}}},transfer_unit:{title:"单位",type:"dict-radio",search:{show:!0,component:{placeholder:"请输入单位"}},dict:a({data:l("weight_unit")}),column:{sortable:"custom"},form:{rules:[{required:!0,message:"单位必选"}],component:{placeholder:"请输入单位"}}},transfer_in_stash:{title:"调进仓名称",type:"dict-select",search:{show:!0,component:{placeholder:"请输入调进仓名称"}},dict:a({url:"/api/StashManageModelViewSet/",label:"stash_position",value:"id"}),column:{sortable:"custom"},form:{rules:[{required:!0,message:"调进仓名称必选"}],component:{placeholder:"请输入调进仓名称"}}},transfer_note:{title:"备注",type:"textarea",search:{show:!1,component:{placeholder:"请输入备注"}},column:{sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入备注"}}}}}}}export{R as default}; diff --git a/web/dist/assets/crud.CZBUs_6D.js b/web/dist/assets/crud.CZBUs_6D.js new file mode 100644 index 0000000000000000000000000000000000000000..7b0e4121afbe44d858d980b79d24fd75956653db --- /dev/null +++ b/web/dist/assets/crud.CZBUs_6D.js @@ -0,0 +1 @@ +import{r,c as f,w as l,s as w}from"./index.XK2ik2qb.js";import{d as y}from"./dictionary.DnyXy1XL.js";import{a as n}from"./authFunction.CZ5a1pu0.js";import{t as b}from"./index.BEdABa7j.js";import{Q as g}from"./vue.DmuWcDrn.js";const o="/api/system/area/";function x(t){return r({url:o,method:"get",params:t})}function C(t){return r({url:o,method:"post",data:t})}function d(t){return r({url:o+t.id+"/",method:"put",data:t})}function _(t){return r({url:o+t+"/",method:"delete",data:{id:t}})}function j(){return r({url:o+"field_permission/",method:"get"})}const q=function({crudExpose:t}){const i=async e=>await x(e),c=async({form:e,row:a})=>(e.id=a.id,await d(e)),u=async({row:e})=>await _(e.id),h=async({form:e})=>await C(e),s=(e,a,m)=>{i({pcode:e.code}).then(p=>{m(p.data)})};return{crudOptions:{request:{pageRequest:i,addRequest:h,editRequest:c,delRequest:u},actionbar:{buttons:{add:{show:n("area:Create")}}},rowHandle:{fixed:"right",width:200,buttons:{view:{show:!1},edit:{iconRight:"Edit",type:"text",show:n("area:Update")},remove:{iconRight:"Delete",type:"text",show:n("area:Delete")}}},pagination:{show:!1},table:{rowKey:"id",lazy:!0,load:s,treeProps:{children:"children",hasChildren:"hasChild"}},columns:{_index:{title:"序号",form:{show:!1},column:{type:"index",align:"center",width:"70px",columnSetDisabled:!0}},name:{title:"名称",search:{show:!0},treeNode:!0,type:"input",column:{minWidth:120},form:{rules:[{required:!0,message:"名称必填项"}],component:{placeholder:"请输入名称"}}},pcode:{title:"父级地区",search:{disabled:!0},width:130,type:"table-selector",form:{component:{name:g(b),vModel:"modelValue",displayLabel:l(({row:e})=>e?e.pcode_info:null),tableConfig:{url:"/api/system/area/",label:"name",value:"id",isTree:!0,isMultiple:!1,lazy:!0,load:s,treeProps:{children:"children",hasChildren:"hasChild"},columns:[{prop:"name",label:"地区",width:150},{prop:"code",label:"地区编码"}]}}},column:{show:!1}},code:{title:"地区编码",search:{show:!0},type:"input",column:{minWidth:90},form:{rules:[{required:!0,message:"地区编码必填项"}],component:{placeholder:"请输入地区编码"}}},enable:{title:"是否启用",search:{show:!0},type:"dict-radio",column:{minWidth:90,component:{name:"fs-dict-switch",activeText:"",inactiveText:"",style:"--el-switch-on-color: var(--el-color-primary); --el-switch-off-color: #dcdfe6",onChange:l(e=>()=>{d(e.row).then(a=>{w(a.msg)})})}},dict:f({data:y("button_status_bool")})}}}}},D=Object.freeze(Object.defineProperty({__proto__:null,createCrudOptions:q},Symbol.toStringTag,{value:"Module"}));export{j as G,D as a,q as c}; diff --git a/web/dist/assets/crud.Cd22w0qR.js b/web/dist/assets/crud.Cd22w0qR.js new file mode 100644 index 0000000000000000000000000000000000000000..6e32f72ff48edf5b73f655c3ef37afddf0b7d19b --- /dev/null +++ b/web/dist/assets/crud.Cd22w0qR.js @@ -0,0 +1 @@ +import{r as o,H as y,c as s,w as b,E as x,s as c}from"./index.XK2ik2qb.js";import{d as i}from"./dictionary.DnyXy1XL.js";import{a}from"./authFunction.CZ5a1pu0.js";import{T as v,c as d}from"./vue.DmuWcDrn.js";import{M as _}from"./md5.DLPczxzP.js";import{c as q}from"./commonCrud.Ca1t2kUN.js";const n="/api/system/user/";function B(t){return o({url:"/api/system/dept/all_dept/",method:"get",params:t})}function R(t){return o({url:n,method:"get",params:t})}function T(t){return o({url:n,method:"post",data:t})}function m(t){return o({url:n+t.id+"/",method:"put",data:t})}function C(t){return o({url:n+t+"/",method:"delete",data:{id:t}})}function S(t){return o({url:n+t+"/reset_to_default_password/",method:"put"})}const D=function({crudExpose:t}){const p=async e=>await R(e),h=async({form:e,row:r})=>(e.id=r.id,await m(e)),f=async({row:e})=>await C(e.id),w=async({form:e})=>await T(e),l=async e=>{await S(e.id),c("重置密码成功")},g=y(),{systemConfig:u}=v(g);return d(()=>u.value),{crudOptions:{table:{remove:{confirmMessage:"是否删除该用户?"}},request:{pageRequest:p,addRequest:w,editRequest:h,delRequest:f},form:{initialForm:{password:d(()=>u.value["base.default_password"])}},actionbar:{buttons:{add:{show:a("user:Create")},export:{text:"导出",title:"导出",show:a("user:Export"),click:e=>x.confirm("确定重设密码吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>l(e.row))}}},rowHandle:{fixed:"right",width:200,buttons:{view:{show:!1},edit:{iconRight:"Edit",type:"text",show:a("user:Update")},remove:{iconRight:"Delete",type:"text",show:a("user:Delete")},custom:{text:"重设密码",type:"text",show:a("user:ResetPassword"),tooltip:{placement:"top",content:"重设密码"},click:e=>{const{row:r}=e;l(r)}}}},columns:{_index:{title:"序号",form:{show:!1},column:{type:"index",align:"center",width:"70px",columnSetDisabled:!0}},username:{title:"账号",search:{show:!0},type:"input",column:{minWidth:100},form:{rules:[{required:!0,message:"账号必填项"}],component:{placeholder:"请输入账号"}}},password:{title:"密码",type:"password",column:{show:!1},editForm:{show:!1},form:{rules:[{required:!0,message:"密码必填项"}],component:{span:12,showPassword:!0,placeholder:"请输入密码"}},valueResolve({form:e}){e.password&&(e.password=_.hashStr(e.password))}},name:{title:"姓名",search:{show:!0},type:"input",column:{minWidth:100},form:{rules:[{required:!0,message:"姓名必填项"}],component:{span:12,placeholder:"请输入姓名"}}},dept:{title:"部门",search:{disabled:!0},type:"dict-tree",dict:s({isTree:!0,url:"/api/system/dept/all_dept/",value:"id",label:"name"}),column:{minWidth:200,formatter({value:e,row:r,index:O}){return r.dept_name_all}},form:{rules:[{required:!0,message:"必填项"}],component:{filterable:!0,placeholder:"请选择",props:{checkStrictly:!0,props:{value:"id",label:"name"}}}}},role:{title:"角色",search:{disabled:!0},type:"dict-select",dict:s({url:"/api/system/role/",value:"id",label:"name"}),column:{minWidth:200},form:{rules:[{required:!0,message:"必填项"}],component:{multiple:!0,filterable:!0,placeholder:"请选择角色"}}},mobile:{title:"手机号码",search:{show:!0},type:"input",column:{minWidth:120},form:{rules:[{max:20,message:"请输入正确的手机号码",trigger:"blur"},{pattern:/^1[3-9]\d{9}$/,message:"请输入正确的手机号码"}],component:{placeholder:"请输入手机号码"}}},email:{title:"邮箱",column:{width:260},form:{rules:[{type:"email",message:"请输入正确的邮箱地址",trigger:["blur","change"]}],component:{placeholder:"请输入邮箱"}}},gender:{title:"性别",type:"dict-select",dict:s({data:i("gender")}),form:{value:1,component:{span:12}},component:{props:{color:"auto"}}},user_type:{title:"用户类型",search:{show:!0},type:"dict-select",dict:s({data:i("user_type")}),column:{minWidth:100},form:{show:!1,value:0,component:{span:12}}},is_active:{title:"状态",search:{show:!0},type:"dict-radio",column:{component:{name:"fs-dict-switch",activeText:"",inactiveText:"",style:"--el-switch-on-color: var(--el-color-primary); --el-switch-off-color: #dcdfe6",onChange:b(e=>()=>{m(e.row).then(r=>{c(r.msg)})})}},dict:s({data:i("button_status_bool")})},avatar:{title:"头像",type:"avatar-uploader",align:"center",form:{show:!1},column:{minWidth:100}},...q({dept_belong_id:{form:!0,table:!0}})}}}},G=Object.freeze(Object.defineProperty({__proto__:null,createCrudOptions:D},Symbol.toStringTag,{value:"Module"}));export{B as G,G as a,D as c}; diff --git a/web/dist/assets/crud.Ce1dW_hh.js b/web/dist/assets/crud.Ce1dW_hh.js new file mode 100644 index 0000000000000000000000000000000000000000..9c6c655f2af814bf26cbb6e290ee271c6c8c0917 --- /dev/null +++ b/web/dist/assets/crud.Ce1dW_hh.js @@ -0,0 +1 @@ +import{r as a,d as i}from"./index.XK2ik2qb.js";import{a as o}from"./authFunction.CZ5a1pu0.js";import"./vue.DmuWcDrn.js";const r="/api/StashManageModelViewSet/";function p(e){return a({url:r,method:"get",params:e})}function h(e){return a({url:r,method:"post",data:e})}function m(e){return a({url:r+e.id+"/",method:"put",data:e})}function w(e){return a({url:r+e+"/",method:"delete",data:{id:e}})}function f(e){return i({url:r+"export_data/",params:e,method:"get"})}function M({crudExpose:e}){const n=async t=>await p(t),d=async({form:t,row:s})=>(s.id&&(t.id=s.id),await m(t)),l=async({row:t})=>await w(t.id),u=async({form:t})=>await h(t),c=async t=>await f(t);return{crudOptions:{request:{pageRequest:n,addRequest:u,editRequest:d,delRequest:l},actionbar:{buttons:{export:{show:o("StashManageModelViewSet:Export"),text:"导出",title:"导出",click(){return c(e.getSearchFormData())}},add:{show:o("StashManageModelViewSet:Create")}}},rowHandle:{fixed:"right",width:200,buttons:{view:{type:"text",order:1,show:o("StashManageModelViewSet:Retrieve")},edit:{type:"text",order:2,show:o("StashManageModelViewSet:Update")},copy:{type:"text",order:3,show:o("StashManageModelViewSet:Copy")},remove:{type:"text",order:4,show:o("StashManageModelViewSet:Delete")}}},columns:{stash_name:{title:"仓库名称",type:"text",search:{show:!0,component:{placeholder:"请输入仓库名称"}},column:{sortable:"custom"},form:{rules:[{required:!0}],component:{placeholder:"请输入仓库名称"}}},stash_address:{title:"仓库地址",type:"text",search:{show:!0,component:{placeholder:"请输入仓库地址"}},column:{sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入仓库地址"}}},stash_position:{title:"仓位",type:"text",search:{show:!0,component:{placeholder:"请输入仓位"}},column:{sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入仓位"}}},stash_note:{title:"备注",type:"textarea",search:{show:!1,component:{placeholder:"请输入备注"}},column:{sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入备注"}}}}}}}export{M as default}; diff --git a/web/dist/assets/crud.ChsU5dzN.js b/web/dist/assets/crud.ChsU5dzN.js new file mode 100644 index 0000000000000000000000000000000000000000..6bc6ea7cab35a6c1c508b84f94d2175b31c49016 --- /dev/null +++ b/web/dist/assets/crud.ChsU5dzN.js @@ -0,0 +1 @@ +import{r as o}from"./index.XK2ik2qb.js";import"./vue.DmuWcDrn.js";const r="/api/system/operation_log/";function i(e){return o({url:r,method:"get",params:e})}function s(e){return o({url:r,method:"post",data:e})}function d(e){return o({url:r+e.id+"/",method:"put",data:e})}function l(e){return o({url:r+e+"/",method:"delete",data:{id:e}})}const b=function({crudExpose:e}){return{crudOptions:{request:{pageRequest:async t=>await i(t),addRequest:async({form:t})=>await s(t),editRequest:async({form:t,row:n})=>(t.id=n.id,await d(t)),delRequest:async({row:t})=>await l(t.id)},actionbar:{buttons:{add:{show:!1}}},rowHandle:{fixed:"right",width:100,buttons:{view:{type:"text"},edit:{show:!1},remove:{show:!1}}},columns:{_index:{title:"序号",form:{show:!1},column:{align:"center",width:"70px",columnSetDisabled:!0,formatter:t=>{let n=t.index??1,a=e.crudBinding.value.pagination;return((a.currentPage??1)-1)*a.pageSize+n+1}}},search:{title:"关键词",column:{show:!1},search:{show:!0,component:{props:{clearable:!0},placeholder:"请输入关键词"}},form:{show:!1,component:{props:{clearable:!0}}}},request_modular:{title:"请求模块",search:{disabled:!1},type:"input",column:{minWidth:100},form:{disabled:!0,component:{placeholder:"请输入请求模块"}}},request_path:{title:"请求地址",search:{disabled:!1},type:"input",column:{minWidth:200},form:{disabled:!0,component:{placeholder:"请输入请求地址"}}},request_body:{column:{showOverflowTooltip:!0,width:200,minWidth:100},title:"请求参数",search:{disabled:!0},disabled:!0,type:"textarea",form:{component:{props:{type:"textarea"},autosize:{minRows:2,maxRows:8},placeholder:"请输入关键词"}}},request_method:{title:"请求方法",type:"input",search:{disabled:!1},column:{minWidth:100},form:{disabled:!0,component:{placeholder:"请输入请求方法"}},component:{props:{color:"auto"}}},request_msg:{title:"操作说明",disabled:!0,form:{component:{span:12}}},request_ip:{title:"IP地址",search:{disabled:!1},type:"input",column:{minWidth:100},form:{disabled:!0,component:{placeholder:"请输入IP地址"}},component:{props:{color:"auto"}}},request_browser:{title:"请求浏览器",type:"input",column:{minWidth:120},form:{disabled:!0},component:{props:{color:"auto"}}},response_code:{title:"响应码",search:{disabled:!0},type:"input",column:{minWidth:100},form:{disabled:!0},component:{props:{color:"auto"}}},request_os:{title:"操作系统",disabled:!0,search:{disabled:!0},type:"input",column:{minWidth:120},form:{disabled:!0},component:{props:{color:"auto"}}},json_result:{title:"返回信息",search:{disabled:!0},type:"input",column:{minWidth:150},form:{disabled:!0},component:{props:{color:"auto"}}},creator_name:{title:"操作人",column:{minWidth:100},form:{disabled:!0}}}}}};export{b as createCrudOptions}; diff --git a/web/dist/assets/crud.CjtLR7MS.js b/web/dist/assets/crud.CjtLR7MS.js new file mode 100644 index 0000000000000000000000000000000000000000..ce9385c78badee81cf54df513b2a722a90dc9d99 --- /dev/null +++ b/web/dist/assets/crud.CjtLR7MS.js @@ -0,0 +1 @@ +import{r as l,l as b,c as y}from"./index.XK2ik2qb.js";import{c as g}from"./commonCrud.Ca1t2kUN.js";import{d as w,g as s,C as _,h as W,b as x,o as q,Q as C,c as R}from"./vue.DmuWcDrn.js";import{_ as V}from"./_plugin-vue_export-helper.DlAUqK2U.js";const h="/api/system/login_log/";function B(e){return l({url:h,method:"get",params:e})}function O(e){return l({url:h,method:"post",data:e})}function k(e){return l({url:h+e.id+"/",method:"put",data:e})}function j(e){return l({url:h+e+"/",method:"delete",data:{id:e}})}const D=w({__name:"index",props:{dict:{type:Array,required:!0},modelValue:{}},emits:["update:modelValue"],setup(e,{emit:c}){const o=e,f=c;s([]);const a=s(),p=s([]),u=s({label:"label",value:"value"});_(()=>o.modelValue,n=>{l({url:o.dict.url,params:{id:o.modelValue}}).then(m=>{const i=m.data;console.log(i),i&&i.length===1?a.value=i[0][u.value.label]:a.value=null})},{immediate:!0});const{ui:t}=b(),r=t.formItem.injectFormItemContext();function d(n){f("update:modelValue",n),a.value=n,r.onChange(),r.onBlur()}return o.dict.url instanceof Function?l(o.dict.url).then(n=>{p.value=n.data}):(u.value.label=o.dict.label,u.value.value=o.dict.value,l({url:o.dict.url}).then(n=>{p.value=n.data})),(n,m)=>{const i=W("el-select-v2");return q(),x(i,{modelValue:a.value,"onUpdate:modelValue":m[0]||(m[0]=v=>a.value=v),options:p.value,style:{width:"100%"},clearable:!0,props:u.value,onChange:d},null,8,["modelValue","options","props"])}}}),I=V(D,[["__scopeId","data-v-d3d07a23"]]),L=function({crudExpose:e,isEcharts:c,initChart:o}){return{crudOptions:{request:{pageRequest:async t=>await B(t),addRequest:async({form:t})=>await O(t),editRequest:async({form:t,row:r})=>(t.id=r.id,await k(t)),delRequest:async({row:t})=>await j(t.id)},actionbar:{buttons:{add:{show:!0},showEcharts:{type:"warning",text:R(()=>c.value?"隐藏图表":"显示图表"),click:()=>{c.value=!c.value}}}},rowHandle:{fixed:"right",width:100,buttons:{view:{type:"text"},edit:{show:!1},remove:{show:!1}}},columns:{_index:{title:"序号",form:{show:!1},column:{align:"center",width:"70px",columnSetDisabled:!0,formatter:t=>{let r=t.index??1,d=e.crudBinding.value.pagination;return((d.currentPage??1)-1)*d.pageSize+r+1}}},search:{title:"关键词",column:{show:!1},search:{show:!0,component:{props:{clearable:!0},placeholder:"请输入关键词"}},form:{show:!1,component:{props:{clearable:!0}}}},username:{title:"测试自定义组件",dict:y({url({form:t}){return"/api/system/role/"},label:"name",value:"id"}),form:{component:{name:C(I)}}},ip:{title:"登录ip",search:{disabled:!1},type:"input",column:{minWidth:120},form:{disabled:!0,component:{placeholder:"请输入登录ip"}}},isp:{title:"运营商",search:{disabled:!0},disabled:!0,type:"input",column:{minWidth:120},form:{component:{placeholder:"请输入运营商"}}},continent:{title:"大州",type:"input",column:{minWidth:90},form:{disabled:!0,component:{placeholder:"请输入大州"}},component:{props:{color:"auto"}}},country:{title:"国家",type:"input",column:{minWidth:90},form:{component:{placeholder:"请输入国家"}},component:{props:{color:"auto"}}},province:{title:"省份",type:"input",column:{minWidth:80},form:{component:{placeholder:"请输入省份"}},component:{props:{color:"auto"}}},city:{title:"城市",type:"input",column:{minWidth:80},form:{component:{placeholder:"请输入城市"}},component:{props:{color:"auto"}}},district:{title:"县区",key:"",type:"input",column:{minWidth:80},form:{component:{placeholder:"请输入县区"}},component:{props:{color:"auto"}}},area_code:{title:"区域代码",type:"input",column:{minWidth:90},form:{component:{placeholder:"请输入区域代码"}},component:{props:{color:"auto"}}},country_english:{title:"英文全称",type:"input",column:{minWidth:120},form:{component:{placeholder:"请输入英文全称"}},component:{props:{color:"auto"}}},country_code:{title:"简称",type:"input",column:{minWidth:100},form:{component:{placeholder:"请输入简称"}},component:{props:{color:"auto"}}},longitude:{title:"经度",type:"input",disabled:!0,column:{minWidth:100},form:{component:{placeholder:"请输入经度"}},component:{props:{color:"auto"}}},latitude:{title:"纬度",type:"input",disabled:!0,column:{minWidth:100},form:{component:{placeholder:"请输入纬度"}},component:{props:{color:"auto"}}},login_type:{title:"登录类型",type:"dict-select",search:{disabled:!1},dict:y({data:[{label:"普通登录",value:1},{label:"微信扫码登录",value:2}]}),column:{minWidth:120},form:{component:{placeholder:"请选择登录类型"}}},os:{title:"操作系统",type:"input",column:{minWidth:120},form:{component:{placeholder:"请输入操作系统"}}},browser:{title:"浏览器名",type:"input",column:{minWidth:120},form:{component:{placeholder:"请输入浏览器名"}}},agent:{title:"agent信息",disabled:!0,type:"input",column:{minWidth:120},form:{component:{placeholder:"请输入agent信息"}}},...g({create_datetime:{search:!0}})}}}};export{L as createCrudOptions}; diff --git a/web/dist/assets/crud.CklDNTA7.js b/web/dist/assets/crud.CklDNTA7.js new file mode 100644 index 0000000000000000000000000000000000000000..8d63a3c2250fa0de012cd11c7393f3903172610f --- /dev/null +++ b/web/dist/assets/crud.CklDNTA7.js @@ -0,0 +1 @@ +import{r as s,d as h,t as f,c as i,g as l}from"./index.XK2ik2qb.js";import{a as r}from"./authFunction.CZ5a1pu0.js";import{d as w}from"./dictionary.DnyXy1XL.js";import"./vue.DmuWcDrn.js";const a="/api/FinishedProductModelViewSet/";function g(t){return s({url:a,method:"get",params:t})}function y(t){return s({url:a,method:"post",data:t})}function b(t){return s({url:a+t.id+"/",method:"put",data:t})}function x(t){return s({url:a+t+"/",method:"delete",data:{id:t}})}function q(t){return h({url:a+"export_data/",params:t,method:"get"})}function P({crudExpose:t}){const n=async e=>await g(e),u=async({form:e,row:o})=>(o.id&&(e.id=o.id),await b(e)),d=async({row:e})=>await x(e.id),c=async({form:e})=>await y(e),m=async e=>await q(e);return{crudOptions:{request:{pageRequest:n,addRequest:c,editRequest:u,delRequest:d},actionbar:{buttons:{export:{show:r("FinishedProductModelViewSet:Export"),text:"导出",title:"导出",click(){return m(t.getSearchFormData())}},add:{show:r("FinishedProductModelViewSet:Create")}}},rowHandle:{fixed:"right",width:130,buttons:{view:{type:"text",order:1,show:r("FinishedProductModelViewSet:Retrieve")},edit:{type:"text",order:2,show:r("FinishedProductModelViewSet:Update")},copy:{type:"text",order:3,show:r("FinishedProductModelViewSet:Copy")},remove:{type:"text",order:4,show:r("FinishedProductModelViewSet:Delete")}}},columns:{code:{title:"编号",type:"text",search:{show:!0},column:{sortable:"custom"},form:{show:!0,component:{placeholder:"编号自动生成,无需输入."}},addForm:{component:{disabled:!0}},editForm:{component:{disabled:!0}}},specification:{title:"规格",type:"text",search:{show:!0,component:{placeholder:"请输入规格"}},column:{sortable:"custom"},form:{rules:[{required:!0,message:"规格必填"}],component:{placeholder:"请输入规格"}}},name:{title:"名称",type:"text",search:{show:!0,component:{placeholder:"请输入名称"}},column:{sortable:"custom"},form:{rules:[{required:!0,message:"规格必填"}],component:{placeholder:"请输入名称"}}},number:{title:"数量",type:"number",search:{show:!1,component:{placeholder:"请输入数量"}},column:{sortable:"custom"},form:{value:1,rules:[{required:!0,message:"数量必填"}],component:{min:0,placeholder:"请输入数量"}}},transfer_unit:{title:"单位",type:"dict-radio",search:{show:!0,component:{placeholder:"请输入单位"}},dict:i({data:w("weight_unit")}),column:{sortable:"custom"},form:{rules:[{required:!0,message:"单位必选"}],component:{placeholder:"请输入单位"}}},price:{title:"单价",type:"",search:{show:!1,component:{placeholder:"请输入单价"}},column:{sortable:"custom"},form:{value:1,rules:[{required:!0,message:"单价必填"}],component:{min:0,max:10,step:.1,placeholder:"请输入单价"}}},stash:{title:"所属仓位",type:"dict-select",search:{show:!0,component:{placeholder:"请输入所属仓位"}},dict:i({url:"/api/StashManageModelViewSet/",label:"stash_position",value:"id"}),column:{sortable:"custom"},form:{rules:[{required:!0,message:"所属仓位必选"}],component:{placeholder:"请输入所属仓位"}}},note:{title:"备注",type:"textarea",search:{show:!1},column:{show:!1,sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入订单备注"}}},images:{title:"照片墙",type:"image-uploader",form:{col:{span:24},component:{limit:10,uploader:{type:"form"}},valueBuilder(e){e.mode!=="add"&&e.form.images!==null&&e.form.images.forEach((o,p)=>{e.form.images[p]=l(o)})},rules:f([{required:!1,message:"此项必传",trigger:"change"}]),helper:"最多可上传10个图片"},column:{component:{async buildUrl(e){return l(e)},async buildPreviewUrl({url:e,index:o}){return e+"?preview=600x600"}}}}}}}}export{P as default}; diff --git a/web/dist/assets/crud.CpmEdOyV.js b/web/dist/assets/crud.CpmEdOyV.js new file mode 100644 index 0000000000000000000000000000000000000000..4f778aa38fe655a0b6ff5f6392743e8522206de3 --- /dev/null +++ b/web/dist/assets/crud.CpmEdOyV.js @@ -0,0 +1 @@ +import{r as s,c as m,b as E,F as D,X as u}from"./index.XK2ik2qb.js";import{a as d}from"./authFunction.CZ5a1pu0.js";import{g as F,k as p,h,D as A}from"./vue.DmuWcDrn.js";const i="/api/system/menu_button/";function B(e){return s({url:i,method:"get",params:e})}function O(e){return s({url:i,method:"post",data:e})}function R(e){return s({url:i+e.id+"/",method:"put",data:e})}function q(e){return s({url:i+e+"/",method:"delete",data:{id:e}})}function x(e){return s({url:i+"batch_create/",method:"post",data:e})}function j(e){return s({url:i+"multiple_delete/",method:"delete",data:{keys:e}})}const C=function({crudExpose:e,context:c}){const f=async()=>{if(c.selectOptions.value.id)return await B({menu:c.selectOptions.value.id})},w=async({form:t,row:n})=>await R({...t,menu:n.menu}),b=async({row:t})=>await q(t.id),g=async({form:t})=>await O({...t,menu:c.selectOptions.value.id}),r=F([]),y=t=>{const o=e.getTableData().filter(a=>!t.includes(a));u.arrayEach(t,a=>{u.pluck(r.value,"id").includes(a.id)||(r.value=u.union(r.value,[a]))}),u.arrayEach(o,a=>{r.value=u.remove(r.value,l=>l.id!==a.id)})},v=()=>{const t=e.getBaseTableRef(),n=e.getTableData(),o=u.filter(n,a=>u.pluck(r.value,"id").includes(a.id));A(()=>{u.arrayEach(o,a=>{t.toggleRowSelection(a,!0)})})};return{selectedRows:r,crudOptions:{pagination:{show:!1},search:{container:{action:{col:{span:8}}}},actionbar:{buttons:{add:{show:d("btn:Create")},batchAdd:{show:!0,type:"primary",text:"批量生成",click:async()=>{if(c.selectOptions.value.id==null){E.error("请选择菜单");return}const t=await x({menu:c.selectOptions.value.id});t.code==2e3&&(D(t.msg),e.doRefresh())}}}},rowHandle:{fixed:"right",width:200,buttons:{view:{show:!1},edit:{icon:"",type:"primary",show:d("btn:Update")},remove:{show:d("btn:Delete")}}},request:{pageRequest:f,addRequest:g,editRequest:w,delRequest:b},table:{rowKey:"id",onSelectionChange:y,onRefreshed:()=>v()},form:{col:{span:24},labelWidth:"100px",wrapper:{is:"el-dialog",width:"600px"}},columns:{$checked:{title:"选择",form:{show:!1},column:{type:"selection",align:"center",width:"70px",columnSetDisabled:!0}},_index:{title:"序号",form:{show:!1},column:{type:"index",align:"center",width:"70px",columnSetDisabled:!0}},search:{title:"关键词",column:{show:!1},type:"text",search:{show:!0},form:{show:!1,component:{placeholder:"输入关键词搜索"}}},id:{title:"ID",type:"text",column:{show:!1},search:{show:!1},form:{show:!1}},name:{title:"权限名称",type:"text",search:{show:!0},column:{minWidth:120,sortable:!0},form:{rules:[{required:!0,message:"权限名称必填"}],component:{placeholder:"输入权限名称",props:{clearable:!0,allowCreate:!0,filterable:!0}},helper:{render(){return p(h("el-alert"),{title:"手动输入",type:"warning",description:"页面中按钮的名称或者自定义一个名称"},null)}}}},value:{title:"权限值",type:"text",search:{show:!1},column:{width:200,sortable:!0},form:{rules:[{required:!0,message:"权限标识必填"}],placeholder:"输入权限标识",helper:{render(){return p(h("el-alert"),{title:"唯一值",type:"warning",description:"用于判断前端按钮权限或接口权限"},null)}}}},method:{title:"请求方式",search:{show:!1},type:"dict-select",column:{width:120,sortable:!0},dict:m({data:[{label:"GET",value:0},{label:"POST",value:1,color:"success"},{label:"PUT",value:2,color:"warning"},{label:"DELETE",value:3,color:"danger"}]}),form:{rules:[{required:!0,message:"必填项"}]}},api:{title:"接口地址",search:{show:!1},type:"dict-select",dict:m({getData(){return s({url:"/swagger.json"}).then(t=>{const n=Object.keys(t.paths),o=[];for(const a of n){const l={};l.label=a,l.value=a,o.push(l)}return o})}}),column:{minWidth:250,sortable:!0},form:{rules:[{required:!0,message:"必填项"}],component:{props:{allowCreate:!0,filterable:!0,clearable:!0}},helper:{render(){return p(h("el-alert"),{title:"请正确填写,以免请求时被拦截。匹配单例使用正则,例如:/api/xx/.*?/",type:"warning"},null)}}}}}}}},k=Object.freeze(Object.defineProperty({__proto__:null,createCrudOptions:C},Symbol.toStringTag,{value:"Module"}));export{j as B,k as a,C as c}; diff --git a/web/dist/assets/crud.CwrFd0-n.js b/web/dist/assets/crud.CwrFd0-n.js new file mode 100644 index 0000000000000000000000000000000000000000..91d740917815637f4a4ced8e4d69ffbc5d2d4551 --- /dev/null +++ b/web/dist/assets/crud.CwrFd0-n.js @@ -0,0 +1 @@ +import{r as s,d as h,t as w,c as l,g as i}from"./index.XK2ik2qb.js";import{a as r}from"./authFunction.CZ5a1pu0.js";import{d as f}from"./dictionary.DnyXy1XL.js";import"./vue.DmuWcDrn.js";const a="/api/RawMaterialModelViewSet/";function g(t){return s({url:a,method:"get",params:t})}function y(t){return s({url:a,method:"post",data:t})}function b(t){return s({url:a+t.id+"/",method:"put",data:t})}function x(t){return s({url:a+t+"/",method:"delete",data:{id:t}})}function M(t){return h({url:a+"export_data/",params:t,method:"get"})}function V({crudExpose:t}){const n=async e=>await g(e),u=async({form:e,row:o})=>(o.id&&(e.id=o.id),await b(e)),c=async({row:e})=>await x(e.id),d=async({form:e})=>await y(e),m=async e=>await M(e);return{crudOptions:{request:{pageRequest:n,addRequest:d,editRequest:u,delRequest:c},actionbar:{buttons:{export:{show:r("RawMaterialModelViewSet:Export"),text:"导出",title:"导出",click(){return m(t.getSearchFormData())}},add:{show:r("RawMaterialModelViewSet:Create")}}},rowHandle:{fixed:"right",width:130,buttons:{view:{type:"text",order:1,show:r("RawMaterialModelViewSet:Retrieve")},edit:{type:"text",order:2,show:r("RawMaterialModelViewSet:Update")},copy:{type:"text",order:3,show:r("RawMaterialModelViewSet:Copy")},remove:{type:"text",order:4,show:r("RawMaterialModelViewSet:Delete")}}},columns:{code:{title:"编号",type:"text",search:{show:!0},column:{sortable:"custom"},form:{show:!0,component:{placeholder:"编号自动生成,无需输入."}},addForm:{component:{disabled:!0}},editForm:{component:{disabled:!0}}},specification:{title:"规格",type:"text",search:{show:!0,component:{placeholder:"请输入规格"}},column:{sortable:"custom"},form:{rules:[{required:!0,message:"规格必填"}],component:{placeholder:"请输入规格"}}},name:{title:"名称",type:"text",search:{show:!0,component:{placeholder:"请输入名称"}},column:{sortable:"custom"},form:{rules:[{required:!0,message:"规格必填"}],component:{placeholder:"请输入名称"}}},number:{title:"数量",type:"number",search:{show:!1,component:{placeholder:"请输入数量"}},column:{sortable:"custom"},form:{value:1,rules:[{required:!0,message:"数量必填"}],component:{min:0,placeholder:"请输入数量"}}},transfer_unit:{title:"单位",type:"dict-radio",search:{show:!0,component:{placeholder:"请输入单位"}},dict:l({data:f("weight_unit")}),column:{sortable:"custom"},form:{rules:[{required:!0,message:"单位必选"}],component:{placeholder:"请输入单位"}}},price:{title:"单价",type:"",search:{show:!1,component:{placeholder:"请输入单价"}},column:{sortable:"custom"},form:{value:1,rules:[{required:!0,message:"单价必填"}],component:{min:0,max:10,step:.1,placeholder:"请输入单价"}}},stash:{title:"所属仓位",type:"dict-select",search:{show:!0,component:{placeholder:"请输入所属仓位"}},dict:l({url:"/api/StashManageModelViewSet/",label:"stash_position",value:"id"}),column:{sortable:"custom"},form:{rules:[{required:!0,message:"所属仓位必选"}],component:{placeholder:"请输入所属仓位"}}},note:{title:"备注",type:"textarea",search:{show:!1},column:{show:!1,sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入订单备注"}}},images:{title:"照片墙",type:"image-uploader",form:{col:{span:24},component:{limit:10,uploader:{type:"form"}},valueBuilder(e){e.mode!=="add"&&e.form.images!==null&&e.form.images.forEach((o,p)=>{e.form.images[p]=i(o)})},rules:w([{required:!1,message:"此项必传",trigger:"change"}]),helper:"最多可上传10个图片"},column:{component:{async buildUrl(e){return i(e)},async buildPreviewUrl({url:e,index:o}){return e+"?preview=600x600"}}}}}}}}export{V as default}; diff --git a/web/dist/assets/crud.D1mGj6d7.js b/web/dist/assets/crud.D1mGj6d7.js new file mode 100644 index 0000000000000000000000000000000000000000..e40a9b12ddc3e0512393aa3f81d7e4aea15a6e85 --- /dev/null +++ b/web/dist/assets/crud.D1mGj6d7.js @@ -0,0 +1 @@ +import{r as u,c as w,X as r}from"./index.XK2ik2qb.js";import{g,D as b}from"./vue.DmuWcDrn.js";function y(a){return a.authorized=0,u({url:"/api/system/role/get_role_users/",method:"get",params:a})}function x(a,i){return u({url:`/api/system/role/${a}/add_role_users/`,method:"post",data:{users_id:i}})}const v=function({crudExpose:a,context:i}){const c=async e=>await y(e),d=async({form:e,row:o})=>{},f=async({row:e})=>{},m=async({form:e})=>{},s=g([]),p=e=>{const n=a.getTableData().filter(t=>!e.includes(t));r.arrayEach(e,t=>{r.pluck(s.value,"id").includes(t.id)||(s.value=r.union(s.value,[t]))}),r.arrayEach(n,t=>{s.value=r.remove(s.value,l=>l.id!==t.id)})},h=()=>{const e=a.getBaseTableRef(),o=a.getTableData(),n=r.filter(o,t=>r.pluck(s.value,"id").includes(t.id));b(()=>{r.arrayEach(n,t=>{e.toggleRowSelection(t,!0)})})};return{selectedRows:s,crudOptions:{request:{pageRequest:c,addRequest:m,editRequest:d,delRequest:f},actionbar:{show:!1,buttons:{add:{show:!1}}},rowHandle:{show:!1,fixed:"left",width:150,buttons:{view:{show:!1},edit:{show:!1},remove:{show:!1}}},table:{rowKey:"id",onSelectionChange:p,onRefreshed:()=>h()},columns:{$checked:{title:"选择",form:{show:!1},column:{show:!0,type:"selection",align:"center",width:"55px",columnSetDisabled:!0}},_index:{title:"序号",form:{show:!1},column:{align:"center",width:"70px",columnSetDisabled:!0,formatter:e=>{let o=e.index??1,n=a.crudBinding.value.pagination;return((n.currentPage??1)-1)*n.pageSize+o+1}}},name:{title:"用户名",search:{show:!0,component:{props:{clearable:!0}}},type:"text",form:{show:!1}},dept:{title:"部门",show:!0,type:"dict-tree",column:{name:"text",formatter({value:e,row:o,index:n}){return o.dept__name}},search:{show:!0,disabled:!0,col:{span:6},component:{multiple:!1,props:{checkStrictly:!0,clearable:!0,filterable:!0}}},form:{show:!1},dict:w({isTree:!0,url:"/api/system/dept/all_dept/",value:"id",label:"name"})}}}}},S=Object.freeze(Object.defineProperty({__proto__:null,createCrudOptions:v},Symbol.toStringTag,{value:"Module"}));export{x as a,S as b,v as c}; diff --git a/web/dist/assets/crud.DDy-ivzy.js b/web/dist/assets/crud.DDy-ivzy.js new file mode 100644 index 0000000000000000000000000000000000000000..ea7d3dcd62f46134812b69cd24e7bf80b60aef1a --- /dev/null +++ b/web/dist/assets/crud.DDy-ivzy.js @@ -0,0 +1 @@ +import{r as a,d as c}from"./index.XK2ik2qb.js";import{a as r}from"./authFunction.CZ5a1pu0.js";import"./vue.DmuWcDrn.js";const o="/api/CrudPatronAddressModelViewSet/";function p(e){return a({url:o,method:"get",params:e})}function m(e){return a({url:o,method:"post",data:e})}function h(e){return a({url:o+e.id+"/",method:"put",data:e})}function w(e){return a({url:o+e+"/",method:"delete",data:{id:e}})}function f(e){return c({url:o+"export_data/",params:e,method:"get"})}function q({crudExpose:e}){const d=async t=>await p(t),n=async({form:t,row:s})=>(s.id&&(t.id=s.id),await h(t)),u=async({row:t})=>await w(t.id),i=async({form:t})=>await m(t),l=async t=>await f(t);return{crudOptions:{request:{pageRequest:d,addRequest:i,editRequest:n,delRequest:u},actionbar:{buttons:{export:{show:r("CrudPatronAddressModelViewSet:Export"),text:"导出",title:"导出",click(){return l(e.getSearchFormData())}},add:{show:r("CrudPatronAddressModelViewSet:Create")}}},rowHandle:{fixed:"right",width:200,buttons:{view:{type:"text",order:1,show:r("CrudPatronAddressModelViewSet:Retrieve")},edit:{type:"text",order:2,show:r("CrudPatronAddressModelViewSet:Update")},copy:{type:"text",order:3,show:r("CrudPatronAddressModelViewSet:Copy")},remove:{type:"text",order:4,show:r("CrudPatronAddressModelViewSet:Delete")}}},columns:{name:{title:"收件人名称",type:"input",search:{show:!0},column:{minWidth:60,sortable:"custom"},form:{rules:[{required:!0,message:"收件人名称必填"}],component:{placeholder:"请输入收件人名称"}}},mobile:{title:"手机号码",type:"input",search:{show:!0},column:{minWidth:50},form:{component:{placeholder:"请输入"},rules:[{required:!0,message:"手机号码必填"},{max:11,message:"请输入正确的手机号码",trigger:"blur"},{pattern:/^1[3-9]\d{9}$/,message:"请输入正确的手机号码"}]}},address:{title:"详细地址",type:"textarea",search:{show:!0},column:{show:!1,minWidth:120,sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入详细地址"}}},note:{title:"备注",type:"textarea",search:{show:!0},column:{show:!1,minWidth:120,sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入备注"}}}}}}}export{q as default}; diff --git a/web/dist/assets/crud.DIBSrtw9.js b/web/dist/assets/crud.DIBSrtw9.js new file mode 100644 index 0000000000000000000000000000000000000000..16ebe7ca99089aa91a336d0af0ff554918503a9a --- /dev/null +++ b/web/dist/assets/crud.DIBSrtw9.js @@ -0,0 +1 @@ +import{r as a,c as o,w as p,s as m}from"./index.XK2ik2qb.js";import{d as i}from"./dictionary.DnyXy1XL.js";import{a as u}from"./authFunction.CZ5a1pu0.js";const l="/api/system/user/";function c(t){return a({url:l,method:"get",params:t})}function h(t){return a({url:l,method:"post",data:t})}function n(t){return a({url:l+t.id+"/",method:"put",data:t})}function f(t){return a({url:l+t+"/",method:"delete",data:{id:t}})}function O(t,e){return a({url:`/api/system/dept/dept_info/?dept_id=${t}&show_all=${e}`,method:"get"})}function D(t,e){return a({url:`/api/system/user/${t}/reset_password/`,method:"put",data:e})}const w=function({crudExpose:t,context:e}){return{crudOptions:{table:{remove:{confirmMessage:"是否删除该用户?"}},request:{pageRequest:async r=>{const s=e!=null&&e.isShowChildFlag.value?"1":"0";return await c({...r,show_all:s})},addRequest:async({form:r})=>{const s=await h(r);return e==null||e.getDeptInfo(),s},editRequest:async({form:r,row:s})=>(r.id=s.id,await n(r)),delRequest:async({row:r})=>{const s=await f(r.id);return e==null||e.getDeptInfo(),s}},search:{container:{layout:"multi-line",action:{col:{span:10}}}},rowHandle:{fixed:"right",width:250,buttons:{view:{show:!1},edit:{show:u("user:Update")},remove:{show:u("user:Delete")},custom:{text:"重设密码",type:"primary",show:u("user:ResetPassword"),tooltip:{placement:"top",content:"重设密码"},click:r=>e==null?void 0:e.handleResetPwdOpen(r.row)}}},columns:{_index:{title:"序号",form:{show:!1},column:{type:"index",align:"center",width:"70px",columnSetDisabled:!0}},search:{title:"关键词",column:{show:!1},search:{show:!0,component:{props:{clearable:!0},placeholder:"请输入关键词"}},form:{show:!1,component:{props:{clearable:!0}}}},username:{title:"账号",type:"input",column:{minWidth:100},form:{rules:[{required:!0,message:"账号必填项"}],component:{placeholder:"请输入账号"}}},password:{title:"密码",type:"input",column:{show:!1},editForm:{show:!1},form:{rules:[{required:!0,message:"密码必填项"}],component:{span:12,showPassword:!0,placeholder:"请输入密码"}}},name:{title:"姓名",type:"input",column:{minWidth:100},form:{rules:[{required:!0,message:"姓名必填项"}],component:{span:12,placeholder:"请输入姓名"}}},dept:{title:"部门",type:"dict-tree",dict:o({isTree:!0,url:"/api/system/dept/all_dept/",value:"id",label:"name"}),column:{minWidth:200,formatter({value:r,row:s,index:d}){return s.dept_name_all}},form:{rules:[{required:!0,message:"必填项"}],component:{filterable:!0,placeholder:"请选择",props:{props:{value:"id",label:"name"}}}}},role:{title:"角色",type:"dict-select",search:{show:!0},form:{rules:[{required:!0,message:"必填项"}],component:{multiple:!0,filterable:!0,placeholder:"请选择角色"}},dict:o({url:"/api/system/role/",value:"id",label:"name"}),column:{minWidth:200}},mobile:{title:"手机号码",type:"input",column:{minWidth:120},form:{rules:[{max:20,message:"请输入正确的手机号码",trigger:"blur"},{pattern:/^1[3-9]\d{9}$/,message:"请输入正确的手机号码"}],component:{placeholder:"请输入手机号码"}}},email:{title:"邮箱",column:{width:260},form:{rules:[{type:"email",message:"请输入正确的邮箱地址",trigger:["blur","change"]}],component:{placeholder:"请输入邮箱"}}},gender:{title:"性别",type:"dict-select",dict:o({data:i("gender")}),form:{value:1,component:{span:12}},component:{props:{color:"auto"}}},user_type:{title:"用户类型",search:{show:!0},type:"dict-select",dict:o({data:i("user_type")}),column:{minWidth:100},form:{show:!1,value:0,component:{span:12}}},is_active:{title:"锁定",search:{show:!0},type:"dict-radio",column:{component:{name:"fs-dict-switch",activeText:"",inactiveText:"",style:"--el-switch-on-color: var(--el-color-primary); --el-switch-off-color: #dcdfe6",onChange:p(r=>()=>{n(r.row).then(s=>{m(s.msg)})})}},dict:o({data:i("button_status_bool")})},avatar:{title:"头像",type:"avatar-uploader",form:{show:!1},column:{width:100,showOverflowTooltip:!0}}}}}},P=Object.freeze(Object.defineProperty({__proto__:null,createCrudOptions:w},Symbol.toStringTag,{value:"Module"}));export{P as a,w as c,O as g,D as r}; diff --git a/web/dist/assets/crud.DJ-x8cxk.js b/web/dist/assets/crud.DJ-x8cxk.js new file mode 100644 index 0000000000000000000000000000000000000000..ee990af507f0c77f5a166b8a825bc9d09c7e2531 --- /dev/null +++ b/web/dist/assets/crud.DJ-x8cxk.js @@ -0,0 +1 @@ +import{r as s,d as h,t as f,c as l,g as i}from"./index.XK2ik2qb.js";import{a as r}from"./authFunction.CZ5a1pu0.js";import{d as w}from"./dictionary.DnyXy1XL.js";import"./vue.DmuWcDrn.js";const a="/api/MaterielModelViewSet/";function g(t){return s({url:a,method:"get",params:t})}function y(t){return s({url:a,method:"post",data:t})}function b(t){return s({url:a+t.id+"/",method:"put",data:t})}function x(t){return s({url:a+t+"/",method:"delete",data:{id:t}})}function M(t){return h({url:a+"export_data/",params:t,method:"get"})}function R({crudExpose:t}){const n=async e=>await g(e),u=async({form:e,row:o})=>(o.id&&(e.id=o.id),await b(e)),c=async({row:e})=>await x(e.id),d=async({form:e})=>await y(e),m=async e=>await M(e);return{crudOptions:{request:{pageRequest:n,addRequest:d,editRequest:u,delRequest:c},actionbar:{buttons:{export:{show:r("MaterielModelViewSet:Export"),text:"导出",title:"导出",click(){return m(t.getSearchFormData())}},add:{show:r("MaterielModelViewSet:Create")}}},rowHandle:{fixed:"right",width:130,buttons:{view:{type:"text",order:1,show:r("MaterielModelViewSet:Retrieve")},edit:{type:"text",order:2,show:r("MaterielModelViewSet:Update")},copy:{type:"text",order:3,show:r("MaterielModelViewSet:Copy")},remove:{type:"text",order:4,show:r("MaterielModelViewSet:Delete")}}},columns:{code:{title:"编号",type:"text",search:{show:!0},column:{sortable:"custom"},form:{show:!0,component:{placeholder:"编号自动生成,无需输入."}},addForm:{component:{disabled:!0}},editForm:{component:{disabled:!0}}},specification:{title:"规格",type:"text",search:{show:!0,component:{placeholder:"请输入规格"}},column:{sortable:"custom"},form:{rules:[{required:!0,message:"规格必填"}],component:{placeholder:"请输入规格"}}},name:{title:"名称",type:"text",search:{show:!0,component:{placeholder:"请输入名称"}},column:{sortable:"custom"},form:{rules:[{required:!0,message:"规格必填"}],component:{placeholder:"请输入名称"}}},number:{title:"数量",type:"number",search:{show:!1,component:{placeholder:"请输入数量"}},column:{sortable:"custom"},form:{value:1,rules:[{required:!0,message:"数量必填"}],component:{min:0,placeholder:"请输入数量"}}},transfer_unit:{title:"单位",type:"dict-radio",search:{show:!0,component:{placeholder:"请输入单位"}},dict:l({data:w("weight_unit")}),column:{sortable:"custom"},form:{rules:[{required:!0,message:"单位必选"}],component:{placeholder:"请输入单位"}}},price:{title:"单价",type:"",search:{show:!1,component:{placeholder:"请输入单价"}},column:{sortable:"custom"},form:{value:1,rules:[{required:!0,message:"单价必填"}],component:{min:0,max:10,step:.1,placeholder:"请输入单价"}}},stash:{title:"所属仓位",type:"dict-select",search:{show:!0,component:{placeholder:"请输入所属仓位"}},dict:l({url:"/api/StashManageModelViewSet/",label:"stash_position",value:"id"}),column:{sortable:"custom"},form:{rules:[{required:!0,message:"所属仓位必选"}],component:{placeholder:"请输入所属仓位"}}},note:{title:"备注",type:"textarea",search:{show:!1},column:{show:!1,sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入订单备注"}}},images:{title:"照片墙",type:"image-uploader",form:{col:{span:24},component:{limit:10,uploader:{type:"form"}},valueBuilder(e){e.mode!=="add"&&e.form.images!==null&&e.form.images.forEach((o,p)=>{e.form.images[p]=i(o)})},rules:f([{required:!1,message:"此项必传",trigger:"change"}]),helper:"最多可上传10个图片"},column:{component:{async buildUrl(e){return i(e)},async buildPreviewUrl({url:e,index:o}){return e+"?preview=600x600"}}}}}}}}export{R as default}; diff --git a/web/dist/assets/crud.DQC96ooy.js b/web/dist/assets/crud.DQC96ooy.js new file mode 100644 index 0000000000000000000000000000000000000000..e0420ebfb36ed0c7f26f29c5562779d6bbe905f0 --- /dev/null +++ b/web/dist/assets/crud.DQC96ooy.js @@ -0,0 +1 @@ +import{r as o,ai as V,c as w}from"./index.XK2ik2qb.js";import{t as b}from"./index.BEdABa7j.js";import{d as C,g as q,C as M,h as x,a as _,o as h,G as R,H as L,b as O,w as k,m as S,K as T,c as v,Q as n}from"./vue.DmuWcDrn.js";import{_ as j}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{a as g}from"./authFunction.CZ5a1pu0.js";const s="/api/system/message_center/";function A(t){return o({url:s,method:"get",params:t})}function D(t){return o({url:s+t+"/",method:"get"})}function G(t){return o({url:s+"get_self_receive/",method:"get",params:t})}function B(t){return o({url:s,method:"post",data:t})}function F(t){return o({url:s+t.id+"/",method:"put",data:t})}function H(t){return o({url:s+t+"/",method:"delete",data:{id:t}})}const I=C({__name:"index",props:{modelValue:Array,bindValue:Array,displayLabel:{type:String,default:""}},setup(t){const c=t,r=q();M(()=>c.bindValue,u=>{const{displayLabel:p}=c,i=u?u.map(d=>d[p]):null;r.value=i},{immediate:!0});const m=["success","info","warning","danger"],f=()=>m[Math.floor(Math.random()*m.length)];return(u,p)=>{const i=x("el-tag");return h(),_("div",null,[(h(!0),_(R,null,L(r.value,(d,e)=>(h(),O(i,{class:"many-to-many-tag",type:f,key:e},{default:k(()=>[S(T(d),1)]),_:2},1024))),128))])}}}),y=j(I,[["__scopeId","data-v-0838bf04"]]),{compute:a}=V();function Q({crudExpose:t,context:c}){const{tabActivted:r}=c,m=async e=>r.value==="receive"?await G(e):await A(e),f=async({form:e,row:l})=>(e.id=l.id,await F(e)),u=async({row:e})=>await H(e.id),p=async({form:e})=>await B(e),i=async({row:e})=>await D(e.id),d=v(()=>r.value==="receive");return{crudOptions:{request:{pageRequest:m,addRequest:p,editRequest:f,delRequest:u},actionbar:{buttons:{add:{show:v(()=>r.value!=="receive"&&g("messageCenter:Create"))}}},rowHandle:{fixed:"right",width:150,buttons:{edit:{show:!1},view:{text:"查看",type:"text",iconRight:"View",show:g("messageCenter:Search"),click({index:e,row:l}){t.openView({index:e,row:l}),r.value==="receive"&&(i({row:l}),t.doRefresh())}},remove:{iconRight:"Delete",type:"text",show:g("messageCenter:Delete")}}},columns:{id:{title:"id",form:{show:!1}},title:{title:"标题",search:{show:!0},type:["text","colspan"],column:{minWidth:120},form:{rules:[{required:!0,message:"必填项"}],component:{span:24,placeholder:"请输入标题"}}},is_read:{title:"是否已读",type:"dict-select",column:{show:d.value},dict:w({data:[{label:"已读",value:!0,color:"success"},{label:"未读",value:!1,color:"danger"}]}),form:{show:!1}},target_type:{title:"目标类型",type:["dict-radio","colspan"],column:{minWidth:120},dict:w({data:[{value:0,label:"按用户"},{value:1,label:"按角色"},{value:2,label:"按部门"},{value:3,label:"通知公告"}]}),form:{component:{optionName:"el-radio-button"},rules:[{required:!0,message:"必选项",trigger:["blur","change"]}]}},target_user:{title:"目标用户",search:{disabled:!0},form:{component:{name:n(b),vModel:"modelValue",displayLabel:a(({row:e})=>e?e.user_info:null),tableConfig:{url:"/api/system/user/",label:"name",value:"id",isMultiple:!0,columns:[{prop:"name",label:"用户名称",width:120},{prop:"phone",label:"用户电话",width:120}]}},show:a(({form:e})=>e.target_type===0),rules:[{required:!0,message:"必填项"}]},column:{show:!1,component:{name:n(y),vModel:"modelValue",bindValue:a(({row:e})=>e.user_info),displayLabel:"name"}}},target_role:{title:"目标角色",search:{disabled:!0},width:130,form:{component:{name:n(b),vModel:"modelValue",displayLabel:a(({row:e})=>e?e.role_info:null),tableConfig:{url:"/api/system/role/",label:"name",value:"id",isMultiple:!0,columns:[{prop:"name",label:"角色名称"},{prop:"key",label:"权限标识"}]}},show:a(({form:e})=>e.target_type===1),rules:[{required:!0,message:"必填项"}]},column:{show:!1,component:{name:n(y),vModel:"modelValue",bindValue:a(({row:e})=>e.role_info),displayLabel:"name"}}},target_dept:{title:"目标部门",search:{disabled:!0},width:130,type:"table-selector",form:{component:{name:n(b),vModel:"modelValue",displayLabel:a(({form:e})=>e.dept_info),tableConfig:{url:"/api/system/dept/all_dept/",label:"name",value:"id",isTree:!0,isMultiple:!0,columns:[{prop:"name",label:"部门名称",width:150},{prop:"status_label",label:"状态"},{prop:"parent_name",label:"父级部门"}]}},show:a(({form:e})=>e.target_type===2),rules:[{required:!0,message:"必填项"}]},column:{show:!1,component:{name:n(y),vModel:"modelValue",bindValue:a(({row:e})=>e.dept_info),displayLabel:"name"}}},content:{title:"内容",column:{width:300,show:!1},type:["editor-wang5","colspan"],form:{rules:[{required:!0,message:"必填项"}],component:{disabled:!1,id:"1",editorConfig:{readOnly:a(e=>{const{mode:l}=e;return l!=="add"})},uploader:{type:"form",buildUrl(e){return e.url}}}}}}}}}export{Q as default}; diff --git a/web/dist/assets/crud.DZgBVAiY.js b/web/dist/assets/crud.DZgBVAiY.js new file mode 100644 index 0000000000000000000000000000000000000000..9667fcf9002e8d53c40fd0dcf83bb9050330c4cc --- /dev/null +++ b/web/dist/assets/crud.DZgBVAiY.js @@ -0,0 +1 @@ +import{r as o,c as l}from"./index.XK2ik2qb.js";import{c as p}from"./commonCrud.Ca1t2kUN.js";const n="/api/system/login_log/";function c(e){return o({url:n,method:"get",params:e})}function a(e){return o({url:n,method:"post",data:e})}function u(e){return o({url:n+e.id+"/",method:"put",data:e})}function d(e){return o({url:n+e+"/",method:"delete",data:{id:e}})}function W(){return o({url:n+"field_permission/",method:"get"})}const m=function({crudExpose:e}){return{crudOptions:{request:{pageRequest:async t=>await c(t),addRequest:async({form:t})=>await a(t),editRequest:async({form:t,row:r})=>(t.id=r.id,await u(t)),delRequest:async({row:t})=>await d(t.id)},actionbar:{buttons:{add:{show:!1}}},rowHandle:{fixed:"right",width:100,buttons:{view:{type:"text"},edit:{show:!1},remove:{show:!1}}},columns:{_index:{title:"序号",form:{show:!1},column:{align:"center",width:"70px",columnSetDisabled:!0,formatter:t=>{let r=t.index??1,i=e.crudBinding.value.pagination;return((i.currentPage??1)-1)*i.pageSize+r+1}}},search:{title:"关键词",column:{show:!1},search:{show:!0,component:{props:{clearable:!0},placeholder:"请输入关键词"}},form:{show:!1,component:{props:{clearable:!0}}}},username:{title:"登录用户名",search:{disabled:!1},type:"input",column:{minWidth:120},form:{disabled:!0,component:{placeholder:"请输入登录用户名"}}},ip:{title:"登录ip",search:{disabled:!1},type:"input",column:{minWidth:120},form:{disabled:!0,component:{placeholder:"请输入登录ip"}}},isp:{title:"运营商",search:{disabled:!0},disabled:!0,type:"input",column:{minWidth:120},form:{component:{placeholder:"请输入运营商"}}},continent:{title:"大州",type:"input",column:{minWidth:90},form:{disabled:!0,component:{placeholder:"请输入大州"}},component:{props:{color:"auto"}}},country:{title:"国家",type:"input",column:{minWidth:90},form:{component:{placeholder:"请输入国家"}},component:{props:{color:"auto"}}},province:{title:"省份",type:"input",column:{minWidth:80},form:{component:{placeholder:"请输入省份"}},component:{props:{color:"auto"}}},city:{title:"城市",type:"input",column:{minWidth:80},form:{component:{placeholder:"请输入城市"}},component:{props:{color:"auto"}}},district:{title:"县区",key:"",type:"input",column:{minWidth:80},form:{component:{placeholder:"请输入县区"}},component:{props:{color:"auto"}}},area_code:{title:"区域代码",type:"input",column:{minWidth:90},form:{component:{placeholder:"请输入区域代码"}},component:{props:{color:"auto"}}},country_english:{title:"英文全称",type:"input",column:{minWidth:120},form:{component:{placeholder:"请输入英文全称"}},component:{props:{color:"auto"}}},country_code:{title:"简称",type:"input",column:{minWidth:100},form:{component:{placeholder:"请输入简称"}},component:{props:{color:"auto"}}},longitude:{title:"经度",type:"input",disabled:!0,column:{minWidth:100},form:{component:{placeholder:"请输入经度"}},component:{props:{color:"auto"}}},latitude:{title:"纬度",type:"input",disabled:!0,column:{minWidth:100},form:{component:{placeholder:"请输入纬度"}},component:{props:{color:"auto"}}},login_type:{title:"登录类型",type:"dict-select",search:{disabled:!1},dict:l({data:[{label:"普通登录",value:1},{label:"微信扫码登录",value:2}]}),column:{minWidth:120},form:{component:{placeholder:"请选择登录类型"}}},os:{title:"操作系统",type:"input",column:{minWidth:120},form:{component:{placeholder:"请输入操作系统"}}},browser:{title:"浏览器名",type:"input",column:{minWidth:120},form:{component:{placeholder:"请输入浏览器名"}}},agent:{title:"agent信息",disabled:!0,type:"input",column:{minWidth:120},form:{component:{placeholder:"请输入agent信息"}}},...p({create_datetime:{search:!0}})}}}},w=Object.freeze(Object.defineProperty({__proto__:null,createCrudOptions:m},Symbol.toStringTag,{value:"Module"}));export{W as G,w as a,m as c}; diff --git a/web/dist/assets/crud.Dd1clT1a.js b/web/dist/assets/crud.Dd1clT1a.js new file mode 100644 index 0000000000000000000000000000000000000000..b0127d4b0377c0e98e9346158101f1b3af303479 --- /dev/null +++ b/web/dist/assets/crud.Dd1clT1a.js @@ -0,0 +1 @@ +import{DelObj as n,UpdateObj as l,AddObj as r,GetList as o}from"./api.Duj3eJXG.js";import{c as d}from"./index.XK2ik2qb.js";import{c}from"./commonCrud.Ca1t2kUN.js";import"./vue.DmuWcDrn.js";const b=function({crudExpose:a}){return{crudOptions:{request:{pageRequest:async e=>await o(e),addRequest:async({form:e})=>await r(e),editRequest:async({form:e,row:t})=>(e.id=t.id,await l(e)),delRequest:async({row:e})=>await n(e.id)},actionbar:{buttons:{add:{show:!1}}},rowHandle:{fixed:"right",width:80,buttons:{view:{show:!1},edit:{iconRight:"Edit",type:"text",show:!1},remove:{iconRight:"Delete",type:"text",show:!1}}},form:{col:{span:24},labelWidth:"110px",wrapper:{is:"el-dialog",width:"600px"}},columns:{_index:{title:"序号",form:{show:!1},column:{align:"center",width:"70px",columnSetDisabled:!0,formatter:e=>{let t=e.index??1,i=a.crudBinding.value.pagination;return((i.currentPage??1)-1)*i.pageSize+t+1}}},no:{title:"流水号",search:{show:!0,component:{props:{clearable:!0},placeholder:"请输入"}},column:{width:"160px",align:"center"}},name:{title:"名称",column:{width:"250px",align:"center"}},models_name:{title:"库表",column:{width:"140px",align:"center"}},start_user_name:{title:"发起人",column:{width:"120px",align:"center"}},"current_node.name":{title:"当前节点",column:{width:"160px",align:"center"}},pre_user:{title:"预处理人",column:{width:"160px",align:"center"}},pre_role:{title:"预处理角色",column:{width:"160px",align:"center"}},pre_dept:{title:"预处理部门",column:{width:"160px",align:"center"}},status:{title:"状态",type:"dict-select",column:{fixed:"right",width:"100px",align:"center"},dict:d({data:[{value:0,label:"进行中"},{value:1,label:"审核通过"},{value:2,label:"审核驳回"},{value:3,label:"审核撤销"}]})},completed_time:{title:"完成时间",column:{width:"160px",align:"center"}},...c({create_datetime:{search:!1,table:!0},update_datetime:{table:!0},dept_belong_id:{table:!1}})}}}};export{b as createCrudOptions}; diff --git a/web/dist/assets/crud.DheGQF1_.js b/web/dist/assets/crud.DheGQF1_.js new file mode 100644 index 0000000000000000000000000000000000000000..5fd2c329bede1dde92c7bd8778eb1a7daf9c2a95 --- /dev/null +++ b/web/dist/assets/crud.DheGQF1_.js @@ -0,0 +1 @@ +import{c as s}from"./index.XK2ik2qb.js";import{DelObj as o,UpdateObj as l,AddObj as u,GetList as i}from"./api.DG102jwl.js";import{a as t}from"./authFunction.CZ5a1pu0.js";import{c as d}from"./vue.DmuWcDrn.js";const y=function({crudExpose:c,context:n}){return{crudOptions:{request:{pageRequest:async e=>await i(e),addRequest:async({form:e})=>await u(e),editRequest:async({form:e,row:r})=>(e.id=r.id,await l(e)),delRequest:async({row:e})=>await o(e.id)},pagination:{show:!0},table:{show:!1},toolbar:{compact:!1},actionbar:{buttons:{add:{show:t("role:Create")}}},rowHandle:{align:"center",fixed:"right",width:d(()=>t("role:AuthorizedAdd")||t("role:AuthorizedSearch")?420:320),buttons:{view:{show:!0},edit:{show:t("role:Update")},remove:{show:t("role:Delete")}}},form:{col:{span:24},labelWidth:"100px",wrapper:{is:"el-dialog",width:"900px"}},columns:{_index:{title:"序号",form:{show:!1},column:{type:"index",align:"center",width:"70px",columnSetDisabled:!0}},id:{title:"ID",column:{show:!1},search:{show:!1},form:{show:!1}},name:{title:"任务名称",search:{show:!0},column:{minWidth:120,sortable:"custom"},form:{rules:[{required:!0,message:"任务名称必填"}],component:{placeholder:"请输入任务名称"}}},task:{title:"执行任务",type:"dict-select",dict:s({url:"/api/dvadmin_celery/task/job_list/?limit=999",value:"label",label:"label"}),search:{show:!0},column:{minWidth:120,sortable:"custom",columnSetDisabled:!0},form:{rules:[{required:!0,message:"执行任务必填"}],component:{placeholder:"输入执行任务"}},valueBuilder(e){const{row:r,key:a}=e;return r[a]}},last_run_at:{title:"最后运行时间",search:{show:!1},type:" datetime",form:{show:!1,rules:[{required:!0,message:"最后运行时间必填"}]}},description:{title:"备注",search:{show:!1},type:" datetime",form:{show:!1,rules:[{required:!0,message:"备注必填"}]}},cron:{title:"表达式",search:{show:!1},type:"number",column:{minWidth:90,sortable:"custom"},form:{rules:[{required:!0,message:"表达式必填"}],value:"1-15 1 * * *"}},kwargs:{title:"请求参数",search:{show:!1},type:"text",column:{minWidth:90,sortable:"custom"}},enabled:{title:"状态",search:{show:!0},type:"dict-radio",form:{rules:[{required:!0,message:"排序必填"}],value:!0},dict:s({data:[{label:"启用",value:!0,color:"success",effect:"dark"},{label:"禁用",value:!1,effect:"dark"}]})}}}}};export{y as createCrudOptions}; diff --git a/web/dist/assets/crud.DxrtcMz2.js b/web/dist/assets/crud.DxrtcMz2.js new file mode 100644 index 0000000000000000000000000000000000000000..7736908e22f9629a1f7f44a9891efea39b4808d0 --- /dev/null +++ b/web/dist/assets/crud.DxrtcMz2.js @@ -0,0 +1 @@ +import{r as s,d as h,t as f,c as i,g as l}from"./index.XK2ik2qb.js";import{a as r}from"./authFunction.CZ5a1pu0.js";import{d as w}from"./dictionary.DnyXy1XL.js";import"./vue.DmuWcDrn.js";const a="/api/SemiFinishedProductModelViewSet/";function g(t){return s({url:a,method:"get",params:t})}function y(t){return s({url:a,method:"post",data:t})}function b(t){return s({url:a+t.id+"/",method:"put",data:t})}function x(t){return s({url:a+t+"/",method:"delete",data:{id:t}})}function S(t){return h({url:a+"export_data/",params:t,method:"get"})}function P({crudExpose:t}){const n=async e=>await g(e),u=async({form:e,row:o})=>(o.id&&(e.id=o.id),await b(e)),d=async({row:e})=>await x(e.id),c=async({form:e})=>await y(e),m=async e=>await S(e);return{crudOptions:{request:{pageRequest:n,addRequest:c,editRequest:u,delRequest:d},actionbar:{buttons:{export:{show:r("SemiFinishedProductModelViewSet:Export"),text:"导出",title:"导出",click(){return m(t.getSearchFormData())}},add:{show:r("SemiFinishedProductModelViewSet:Create")}}},rowHandle:{fixed:"right",width:130,buttons:{view:{type:"text",order:1,show:r("SemiFinishedProductModelViewSet:Retrieve")},edit:{type:"text",order:2,show:r("SemiFinishedProductModelViewSet:Update")},copy:{type:"text",order:3,show:r("SemiFinishedProductModelViewSet:Copy")},remove:{type:"text",order:4,show:r("SemiFinishedProductModelViewSet:Delete")}}},columns:{code:{title:"编号",type:"text",search:{show:!0},column:{sortable:"custom"},form:{show:!0,component:{placeholder:"编号自动生成,无需输入."}},addForm:{component:{disabled:!0}},editForm:{component:{disabled:!0}}},specification:{title:"规格",type:"text",search:{show:!0,component:{placeholder:"请输入规格"}},column:{sortable:"custom"},form:{rules:[{required:!0,message:"规格必填"}],component:{placeholder:"请输入规格"}}},name:{title:"名称",type:"text",search:{show:!0,component:{placeholder:"请输入名称"}},column:{sortable:"custom"},form:{rules:[{required:!0,message:"规格必填"}],component:{placeholder:"请输入名称"}}},number:{title:"数量",type:"number",search:{show:!1,component:{placeholder:"请输入数量"}},column:{sortable:"custom"},form:{value:1,rules:[{required:!0,message:"数量必填"}],component:{min:0,placeholder:"请输入数量"}}},transfer_unit:{title:"单位",type:"dict-radio",search:{show:!0,component:{placeholder:"请输入单位"}},dict:i({data:w("weight_unit")}),column:{sortable:"custom"},form:{rules:[{required:!0,message:"单位必选"}],component:{placeholder:"请输入单位"}}},price:{title:"单价",type:"",search:{show:!1,component:{placeholder:"请输入单价"}},column:{sortable:"custom"},form:{value:1,rules:[{required:!0,message:"单价必填"}],component:{min:0,max:10,step:.1,placeholder:"请输入单价"}}},stash:{title:"所属仓位",type:"dict-select",search:{show:!0,component:{placeholder:"请输入所属仓位"}},dict:i({url:"/api/StashManageModelViewSet/",label:"stash_position",value:"id"}),column:{sortable:"custom"},form:{rules:[{required:!0,message:"所属仓位必选"}],component:{placeholder:"请输入所属仓位"}}},note:{title:"备注",type:"textarea",search:{show:!1},column:{show:!1,sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入订单备注"}}},images:{title:"照片墙",type:"image-uploader",form:{col:{span:24},component:{limit:10,uploader:{type:"form"}},valueBuilder(e){e.mode!=="add"&&e.form.images!==null&&e.form.images.forEach((o,p)=>{e.form.images[p]=l(o)})},rules:f([{required:!1,message:"此项必传",trigger:"change"}]),helper:"最多可上传10个图片"},column:{component:{async buildUrl(e){return l(e)},async buildPreviewUrl({url:e,index:o}){return e+"?preview=600x600"}}}}}}}}export{P as default}; diff --git a/web/dist/assets/crud.DzuWahSU.css b/web/dist/assets/crud.DzuWahSU.css new file mode 100644 index 0000000000000000000000000000000000000000..05fa2045c3603a040824734f5e875d96c17177eb --- /dev/null +++ b/web/dist/assets/crud.DzuWahSU.css @@ -0,0 +1 @@ +.el-select .el-input__wrapper .el-input__inner[data-v-d3d07a23]::-moz-placeholder{color:#0d84ff}.el-select .el-input__wrapper .el-input__inner[data-v-d3d07a23]::placeholder{color:#0d84ff}.el-select-v2 .el-select-v2__wrapper .el-select-v2__placeholder.is-transparent[data-v-d3d07a23]{color:#0d84ff} diff --git a/web/dist/assets/crud.LFoUayEs.js b/web/dist/assets/crud.LFoUayEs.js new file mode 100644 index 0000000000000000000000000000000000000000..6470422b2493b660c29eecb5d41c579479e5aebc --- /dev/null +++ b/web/dist/assets/crud.LFoUayEs.js @@ -0,0 +1 @@ +import{r as l,d as w,t as y,c as s,g as d}from"./index.XK2ik2qb.js";import _ from"./index.C9xcTXIE.js";import{a as o}from"./authFunction.CZ5a1pu0.js";import{d as n}from"./dictionary.DnyXy1XL.js";import{k as u,m as g,h as b}from"./vue.DmuWcDrn.js";import"./crud.CDRJ7Jbg.js";import"./_plugin-vue_export-helper.DlAUqK2U.js";const a="/api/SampleOrderModelViewSet/";function x(r){return l({url:a,method:"get",params:r})}function S(r){return l({url:a,method:"post",data:r})}function q(r){return l({url:a+r.id+"/",method:"put",data:r})}function v(r){return l({url:a+r+"/",method:"delete",data:{id:r}})}function O(r){return w({url:a+"export_data/",params:r,method:"get"})}function U({crudExpose:r}){const i=async e=>await x(e),c=async({form:e,row:t})=>(t.id&&(e.id=t.id),await q(e)),p=async({row:e})=>await v(e.id),m=async({form:e})=>await S(e),f=async e=>await O(e);return console.log("这个位置是全局数据:",r),{crudOptions:{request:{pageRequest:i,addRequest:m,editRequest:c,delRequest:p},actionbar:{buttons:{export:{show:o("SampleOrderModelViewSet:Export"),text:"导出",title:"导出",click(){return f(r.getSearchFormData())}},add:{show:o("SampleOrderModelViewSet:Create")}}},rowHandle:{fixed:"right",width:200,align:"center",buttons:{view:{type:"text",order:1,show:o("SampleOrderModelViewSet:Retrieve")},edit:{type:"text",order:2,show:o("SampleOrderModelViewSet:Update")},copy:{type:"text",order:3,show:o("SampleOrderModelViewSet:Copy")},remove:{type:"text",order:4,show:o("SampleOrderModelViewSet:Delete")}}},columns:{order_ids:{title:"样品单号",type:"text",search:{show:!0},column:{sortable:"custom"},form:{show:!0,component:{placeholder:"样品单号自动生成,无需输入."}},addForm:{component:{disabled:!0}},editForm:{component:{disabled:!0}}},order_type:{title:"类型",search:{show:!0},type:"dict-select",dict:s({data:n("order_type")}),form:{rules:[{required:!0,message:"类型必选",trigger:"change"}],component:{filterable:!0,placeholder:"请输入类型"}},component:{props:{color:"auto"}}},order_status:{title:"状态",search:{show:!0},type:"dict-select",dict:s({data:n("order_status")}),form:{component:{filterable:!0,placeholder:"请输入状态"}},component:{props:{color:"auto"}}},order_user:{title:"客户代号",search:{show:!0},type:"dict-select",dict:s({url:"/api/CrudPatronModelViewSet/",label:"code",value:"id"}),form:{component:{filterable:!0,placeholder:"请选择订单客户"},helper:{text:"未找到客户时,需先在销售管理->客户管理中添加客户"}},component:{props:{color:"auto"}}},order_payment_method:{title:"付款方式",type:"text",search:{show:!1},column:{sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入付款方式"}}},order_payment_remark:{title:"付款备注",type:"text",search:{show:!1},column:{sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入付款备注"}}},order_transport:{title:"运输方式",type:"text",search:{show:!1},column:{sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入运输方式"}}},order_file:{title:"上传附件",type:"file-uploader",form:{component:{limit:5,uploader:{type:"form"},accept:".pdf,.csv,.doc,.docx,.xls,.xlsx,.mp4,.zip,.7z,.rar"},valueBuilder(e){e.mode!=="add"&&e.form.order_file!==null&&e.form.order_file.forEach((t,h)=>{e.form.order_file[h]=d(t)})},rules:y([{required:!1,message:"此项必传",trigger:"change"}]),helper:"最大可上传5个文件"},column:{show:!1,component:{async buildUrl({value:e}){return d(e)}}}},order_product:{title:"样品信息",type:"textarea",search:{show:!1},column:{show:!1,sortable:"custom"},form:{rules:[{required:!0,message:"样品信息必填",trigger:"blur"}],component:{placeholder:"请输入样品信息"}}},order_remark:{title:"备注",type:"textarea",search:{show:!1},column:{show:!1,sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"备注"}}},order_sample:{title:"样品成本",type:"text",form:{component:{name:_,vModel:"modelValue",readonly:!0},col:{span:24}},column:{show:!1,formatter:({row:e})=>{var t;return((t=e.order_sample)==null?void 0:t.length)+"条数据"}}}},form:{display:"flex",wrapper:{width:"80%"},async beforeSubmit(){var t;if(await((t=r.getFormComponentRef("order_sample"))==null?void 0:t.validate())!==!0)return!1},row:{gutter:20},group:{groupType:"tabs",accordion:!1,groups:{base:{slots:{label:e=>u("span",{style:{color:e.hasError?"red":"green"}},[u(b("fs-icon"),{icon:"ion:checkmark-circle"},null),g("样品单信息基础")])},icon:"el-icon-goods",columns:["order_ids","order_type","order_status","order_transport","order_payment_method","order_payment_remark","order_product","order_remark","order_user","order_file"]},delivery:{label:"样品成本",icon:"el-icon-price-tag",columns:["order_sample"]}}}},toolbar:{buttons:{export:{show:!0}}}}}}export{U as default}; diff --git a/web/dist/assets/crud.Np48kvO6.js b/web/dist/assets/crud.Np48kvO6.js new file mode 100644 index 0000000000000000000000000000000000000000..cbcdadabb25ccce2f0ffba14f44df87ce207fc0f --- /dev/null +++ b/web/dist/assets/crud.Np48kvO6.js @@ -0,0 +1 @@ +import{r as d,d as _,t as w,c as o,g as n}from"./index.XK2ik2qb.js";import{a as r}from"./authFunction.CZ5a1pu0.js";import{d as c}from"./dictionary.DnyXy1XL.js";import{k as s,m as y,h as b}from"./vue.DmuWcDrn.js";const l="/api/SellOrderModelViewSet/";function g(t){return d({url:l,method:"get",params:t})}function x(t){return d({url:l,method:"post",data:t})}function S(t){return d({url:l+t.id+"/",method:"put",data:t})}function O(t){return d({url:l+t+"/",method:"delete",data:{id:t}})}function v(t){return _({url:l+"export_data/",params:t,method:"get"})}function F({crudExpose:t}){const i=async e=>await g(e),u=async({form:e,row:a})=>(a.id&&(e.id=a.id),await S(e)),p=async({row:e})=>await O(e.id),m=async({form:e})=>await x(e),h=async e=>await v(e);return{crudOptions:{request:{pageRequest:i,addRequest:m,editRequest:u,delRequest:p},actionbar:{buttons:{export:{show:r("SellOrderModelViewSet:Export"),text:"导出",title:"导出",click(){return h(t.getSearchFormData())}},add:{show:r("SellOrderModelViewSet:Create")}}},rowHandle:{fixed:"right",width:130,buttons:{view:{type:"text",order:1,show:r("SellOrderModelViewSet:Retrieve")},edit:{type:"text",order:2,show:r("SellOrderModelViewSet:Update")},copy:{type:"text",order:3,show:r("SellOrderModelViewSet:Copy")},remove:{type:"text",order:4,show:r("SellOrderModelViewSet:Delete")}}},columns:{order_ids:{title:"订单编号",type:"text",search:{show:!0},column:{sortable:"custom"},form:{show:!0,component:{placeholder:"订单编号自动生成,无需输入."}},addForm:{component:{disabled:!0}},editForm:{component:{disabled:!0}}},order_type:{title:"订单类型",search:{show:!0},type:"dict-select",dict:o({data:c("order_type")}),form:{rules:[{required:!0,message:"订单类型必选",trigger:"change"}],component:{filterable:!0,placeholder:"请输入订单类型"}},component:{props:{color:"auto"}}},order_contract:{title:"关联合同",search:{show:!0},type:"dict-select",dict:o({url:"/api/ContractModelViewSet/",label:"contract_ids",value:"id"}),form:{component:{filterable:!0,placeholder:"请选择合同"}},component:{props:{color:"auto"}}},order_status:{title:"订单状态",search:{show:!0},type:"dict-select",dict:o({data:c("order_status")}),form:{component:{filterable:!0,placeholder:"请输入订单状态"}},addForm:{show:!1,component:{disabled:!0}},editForm:{component:{disabled:!0}},component:{props:{color:"auto"}}},order_user:{title:"订单客户",search:{show:!0},type:"dict-select",dict:o({url:"/api/CrudPatronModelViewSet/",label:"code",value:"id"}),form:{component:{filterable:!0,placeholder:"请选择订单客户"},helper:{text:"未找到客户时,需先在销售管理->客户管理中添加客户"}},component:{props:{color:"auto"}}},order_payment_method:{title:"付款方式",type:"text",search:{show:!0,component:{placeholder:"请输入付款方式"}},column:{sortable:"custom"},form:{component:{placeholder:"请输入付款方式"}}},order_payment_remark:{title:"付款备注",type:"text",search:{show:!0,component:{placeholder:"请输入付款备注"}},column:{sortable:"custom"},form:{component:{placeholder:"请输入付款备注"}}},order_transport:{title:"运输方式",type:"dict-select",search:{show:!0,component:{filterable:!0,placeholder:"请选择运输方式"}},column:{sortable:"custom"},dict:o({data:c("transport")}),form:{component:{placeholder:"请选择运输方式"}}},order_discount:{title:"折扣",type:"number",column:{sortable:"custom"},form:{value:0,component:{min:0,max:10,step:.1}}},order_delivery_date:{title:"交货日期",type:"date",form:{component:{valueFormat:"YYYY-MM-DD HH:mm:ss",on:{change(e){console.log("选择的交货日期: ",e)}}}}},order_discount_reason:{title:"折扣理由",type:"text",search:{show:!0,component:{placeholder:"请输入折扣理由"}},column:{sortable:"custom"},form:{component:{placeholder:"请输入折扣理由"}}},order_remark:{title:"订单备注",type:"textarea",search:{show:!1},column:{show:!1,sortable:"custom"},form:{rules:[{required:!1}],component:{placeholder:"请输入订单备注"}}},order_file:{title:"上传附件",type:"file-uploader",form:{component:{limit:1,uploader:{type:"form"},accept:".pdf,.zip,.7z,.rar"},valueBuilder(e){e.mode!=="add"&&e.form.order_file.forEach((a,f)=>{e.form.order_file[f]=n(a)})},rules:w([{required:!1,message:"此项必传",trigger:"change"}]),helper:"最大可上传1个文件"},column:{show:!1,component:{async buildUrl(e){return n(e)}}}}},form:{row:{gutter:20},group:{groupType:"tabs",accordion:!1,groups:{base:{slots:{label:e=>s("span",{style:{color:e.hasError?"red":"green"}},[s(b("fs-icon"),{icon:"ion:checkmark-circle"},null),y("订单基础")])},icon:"el-icon-goods",columns:["order_ids","order_type","order_status","order_remark","order_user"]},delivery:{label:"交付条款",icon:"el-icon-price-tag",columns:["order_payment_method","order_payment_remark","order_transport","order_discount","order_discount_reason","order_delivery_date","order_contract"]},contract:{label:"附件",collapsed:!0,icon:"el-icon-warning-outline",columns:["order_file"]},bom:{label:"BOM",collapsed:!0,icon:"el-icon-warning-outline",columns:["order_product"]}}}}}}}export{F as default}; diff --git a/web/dist/assets/crud.PSC-ddJH.js b/web/dist/assets/crud.PSC-ddJH.js new file mode 100644 index 0000000000000000000000000000000000000000..4935ff443fb2b3d4a7e075a9d5eac33efc1b73b9 --- /dev/null +++ b/web/dist/assets/crud.PSC-ddJH.js @@ -0,0 +1 @@ +import{DelObj as r,UpdateObj as i,AddObj as o,GetList as d}from"./api.CgqMcKh6.js";import{c}from"./index.XK2ik2qb.js";import"./vue.DmuWcDrn.js";const k=function({crudExpose:l,context:s}){return{crudOptions:{actionbar:{show:!1},toolbar:{show:!1},request:{pageRequest:async e=>{var a;const t=(a=s==null?void 0:s.taskItem)==null?void 0:a.name;return t&&(e.periodic_task_name=t),await d({...e})},addRequest:async({form:e})=>await o(e),editRequest:async({form:e,row:t})=>(e.id=t.id,await i(e)),delRequest:async({row:e})=>await r(e.id)},rowHandle:{show:!1},form:{col:{span:24},labelWidth:"110px",wrapper:{is:"el-dialog",width:"600px"}},columns:{_index:{title:"序号",form:{show:!1},column:{align:"center",width:"60px",columnSetDisabled:!0,formatter:e=>{let t=e.index??1,a=l.crudBinding.value.pagination;return((a.currentPage??1)-1)*a.pageSize+t+1}}},task_id:{title:"任务ID",search:{show:!0},column:{width:200},type:"text"},task_name:{title:"任务名称",search:{show:!0},column:{minWidth:200},type:"text"},periodic_task_name:{title:"周期任务名称",search:{show:!1},column:{width:200},type:"text"},task_kwargs:{title:"请求参数",search:{show:!1},column:{width:120},type:"text"},status:{title:"执行状态",search:{show:!0},type:"dict-select",column:{width:100},dict:c({data:[{label:"执行成功",value:"SUCCESS",color:"success",effect:"dark"},{label:"已开始",value:"STARTED",effect:"dark"},{label:"已取消",value:"REVOKED",effect:"dark"},{label:"重试中",value:"RETRY",effect:"dark"},{label:"已收到",value:"RECEIVED",effect:"dark"},{label:"待定中",value:"PENDING",effect:"dark"},{label:"执行失败",value:"FAILURE",effect:"dark",color:"error"}]})},result:{title:"执行结果",search:{show:!1},column:{width:120},type:"text"},date_done:{title:"执行完成时间",type:"datetime",search:{show:!1,col:{span:8}},column:{width:160},form:{show:!1},viewForm:{show:!0}},date_created:{title:"创建时间",type:"datetime",search:{show:!1,col:{span:8}},column:{width:160},form:{show:!1},viewForm:{show:!0}}}}}};export{k as createCrudOptions}; diff --git a/web/dist/assets/crud.RRoXXYSH.js b/web/dist/assets/crud.RRoXXYSH.js new file mode 100644 index 0000000000000000000000000000000000000000..5a599139272c1127b94bdba5b7b0008f6be5f7bd --- /dev/null +++ b/web/dist/assets/crud.RRoXXYSH.js @@ -0,0 +1 @@ +import{DelObj as n,UpdateObj as l,AddObj as r,GetList as o}from"./api.Cpc88qFC.js";import{c as d}from"./index.XK2ik2qb.js";import{c}from"./commonCrud.Ca1t2kUN.js";import"./vue.DmuWcDrn.js";const b=function({crudExpose:i}){return{crudOptions:{request:{pageRequest:async e=>await o(e),addRequest:async({form:e})=>await r(e),editRequest:async({form:e,row:t})=>(e.id=t.id,await l(e)),delRequest:async({row:e})=>await n(e.id)},actionbar:{buttons:{add:{show:!1}}},rowHandle:{fixed:"right",width:80,buttons:{view:{show:!1},edit:{iconRight:"Edit",type:"text",show:!1},remove:{iconRight:"Delete",type:"text",show:!1}}},form:{col:{span:24},labelWidth:"110px",wrapper:{is:"el-dialog",width:"600px"}},columns:{_index:{title:"序号",form:{show:!1},column:{align:"center",width:"70px",columnSetDisabled:!0,formatter:e=>{let t=e.index??1,a=i.crudBinding.value.pagination;return((a.currentPage??1)-1)*a.pageSize+t+1}}},no:{title:"流水号",search:{show:!0,component:{props:{clearable:!0},placeholder:"请输入"}},column:{width:"160px",align:"center"}},name:{title:"名称",column:{width:"250px",align:"center"}},models_name:{title:"库表",column:{width:"140px",align:"center"}},start_user_name:{title:"发起人",column:{width:"120px",align:"center"}},"current_node.name":{title:"当前节点",column:{width:"160px",align:"center"}},pre_user:{title:"预处理人",column:{width:"160px",align:"center"}},pre_role:{title:"预处理角色",column:{width:"160px",align:"center"}},pre_dept:{title:"预处理部门",column:{width:"160px",align:"center"}},status:{title:"状态",type:"dict-select",column:{fixed:"right",width:"100px",align:"center"},dict:d({data:[{value:0,label:"进行中"},{value:1,label:"审核通过"},{value:2,label:"审核驳回"},{value:3,label:"审核撤销"}]})},...c({create_datetime:{search:!1,table:!0},update_datetime:{table:!0},dept_belong_id:{table:!1}})}}}};export{b as createCrudOptions}; diff --git a/web/dist/assets/crud.SOaVqUCc.js b/web/dist/assets/crud.SOaVqUCc.js new file mode 100644 index 0000000000000000000000000000000000000000..3f65597b37891342bf684eeb7d714ea32972ba0f --- /dev/null +++ b/web/dist/assets/crud.SOaVqUCc.js @@ -0,0 +1 @@ +import{r as s,c as l,w as p,s as m}from"./index.XK2ik2qb.js";import{d as h}from"./dictionary.DnyXy1XL.js";import{a as n}from"./authFunction.CZ5a1pu0.js";import"./vue.DmuWcDrn.js";const o="/api/system/api_white_list/";function b(t){return s({url:o,method:"get",params:t})}function w(t){return s({url:o,method:"post",data:t})}function d(t){return s({url:o+t.id+"/",method:"put",data:t})}function f(t){return s({url:o+t+"/",method:"delete",data:{id:t}})}const P=function({crudExpose:t}){return{crudOptions:{request:{pageRequest:async e=>await b(e),addRequest:async({form:e})=>await w(e),editRequest:async({form:e,row:a})=>(e.id=a.id,await d(e)),delRequest:async({row:e})=>await f(e.id)},actionbar:{buttons:{add:{show:n("api_white_list:Create")}}},rowHandle:{fixed:"right",width:150,buttons:{view:{show:!1},edit:{iconRight:"Edit",type:"text",show:n("api_white_list:Update")},remove:{iconRight:"Delete",type:"text",show:n("api_white_list:Delete")}}},form:{col:{span:24},labelWidth:"110px",wrapper:{is:"el-dialog",width:"600px"}},columns:{_index:{title:"序号",form:{show:!1},column:{align:"center",width:"70px",columnSetDisabled:!0,formatter:e=>{let a=e.index??1,r=t.crudBinding.value.pagination;return((r.currentPage??1)-1)*r.pageSize+a+1}}},search:{title:"关键词",column:{show:!1},search:{show:!0,component:{props:{clearable:!0},placeholder:"请输入关键词"}},form:{show:!1,component:{props:{clearable:!0}}}},method:{title:"请求方式",sortable:"custom",search:{disabled:!1},type:"dict-select",dict:l({data:[{label:"GET",value:0},{label:"POST",value:1},{label:"PUT",value:2},{label:"DELETE",value:3},{label:"PATCH",value:4}]}),column:{minWidth:120},form:{rules:[{required:!0,message:"必填项"}],component:{span:12},itemProps:{class:{yxtInput:!0}}}},url:{title:"接口地址",sortable:"custom",search:{disabled:!0},type:"dict-select",dict:l({async getData(e){return s("/swagger.json").then(a=>{const r=Object.keys(a.paths),u=[];for(const c of r){const i={label:"",value:""};i.label=c,i.value=c,u.push(i)}return u})}}),column:{minWidth:200},form:{rules:[{required:!0,message:"必填项"}],component:{span:24,props:{allowCreate:!0,filterable:!0,clearable:!0}},itemProps:{class:{yxtInput:!0}},helper:{position:"label",tooltip:{placement:"top-start"},text:"请正确填写,以免请求时被拦截。匹配单例使用正则,例如:/api/xx/.*?/"}}},enable_datasource:{title:"数据权限认证",search:{disabled:!1},type:"dict-radio",column:{minWidth:120,component:{name:"fs-dict-switch",activeText:"",inactiveText:"",style:"--el-switch-on-color: var(--el-color-primary); --el-switch-off-color: #dcdfe6",onChange:p(e=>()=>{d(e.row).then(a=>{m(a.msg)})})}},dict:l({data:h("button_status_bool")})}}}}};export{P as createCrudOptions}; diff --git a/web/dist/assets/crud.aIckV8z3.js b/web/dist/assets/crud.aIckV8z3.js new file mode 100644 index 0000000000000000000000000000000000000000..94b621d15735393a0bb4d1de0311e8607e2fc856 --- /dev/null +++ b/web/dist/assets/crud.aIckV8z3.js @@ -0,0 +1 @@ +import{DelObj as a,UpdateObj as l,AddObj as r,GetList as o}from"./api.CXQZ_GZz.js";import{c as d}from"./index.XK2ik2qb.js";import{c}from"./commonCrud.Ca1t2kUN.js";import"./vue.DmuWcDrn.js";const b=function({crudExpose:n}){return{crudOptions:{request:{pageRequest:async e=>await o(e),addRequest:async({form:e})=>await r(e),editRequest:async({form:e,row:t})=>(e.id=t.id,await l(e)),delRequest:async({row:e})=>await a(e.id)},actionbar:{buttons:{add:{show:!1}}},rowHandle:{fixed:"right",width:80,buttons:{view:{show:!1},edit:{iconRight:"Edit",type:"text",show:!1},remove:{iconRight:"Delete",type:"text",show:!1}}},form:{col:{span:24},labelWidth:"110px",wrapper:{is:"el-dialog",width:"600px"}},columns:{_index:{title:"序号",form:{show:!1},column:{align:"center",width:"70px",columnSetDisabled:!0,formatter:e=>{let t=e.index??1,i=n.crudBinding.value.pagination;return((i.currentPage??1)-1)*i.pageSize+t+1}}},no:{title:"流水号",search:{show:!0,component:{props:{clearable:!0},placeholder:"请输入"}},column:{width:"160px",align:"center"}},name:{title:"名称",column:{width:"250px",align:"center"}},models_name:{title:"库表",column:{width:"140px",align:"center"}},start_user_name:{title:"发起人",column:{width:"120px",align:"center"}},"current_node.name":{title:"当前节点",column:{width:"160px",align:"center"}},pre_user:{title:"预处理人",column:{width:"160px",align:"center"}},pre_role:{title:"预处理角色",column:{width:"160px",align:"center"}},pre_dept:{title:"预处理部门",column:{width:"160px",align:"center"}},status:{title:"状态",type:"dict-select",column:{fixed:"right",width:"100px",align:"center"},dict:d({data:[{value:0,label:"进行中"},{value:1,label:"审核通过"},{value:2,label:"审核驳回"},{value:3,label:"审核撤销"}]})},run_time:{title:"任务时间",column:{width:"160px",align:"center"}},...c({create_datetime:{search:!1,table:!0},update_datetime:{table:!0},dept_belong_id:{table:!1}})}}}};export{b as createCrudOptions}; diff --git a/web/dist/assets/crud.jJOAkYw9.js b/web/dist/assets/crud.jJOAkYw9.js new file mode 100644 index 0000000000000000000000000000000000000000..6f47e5f54909bc3bdbc0ea2ee21d284c72c0855a --- /dev/null +++ b/web/dist/assets/crud.jJOAkYw9.js @@ -0,0 +1 @@ +import{i as o}from"./vue.DmuWcDrn.js";function n({crudExpose:t}){const{crudBinding:s}=t,a=o("get:scope"),{index:r,row:l,form:i,mode:e}=a();return{crudOptions:{actionbar:{buttons:{add:{show:!1},addRow:{show:e!="view"}}},search:{show:!1},toolbar:{show:!1,buttons:{refresh:{show:!1},search:{show:!1}}},table:{editable:{enabled:!1,mode:"free",showAction:!1,activeDefault:!0}},pagination:{show:!1,pageSize:9999999},columns:{name:{title:"收件人名称",type:"text",column:{minWidth:50},form:{component:{placeholder:"请输入",disabled:e=="view"},rules:[{required:!0,message:"收件人名称必填项"}]}},mobile:{title:"手机号码",type:"text",column:{minWidth:50},form:{component:{placeholder:"请输入",disabled:e=="view"},rules:[{max:11,message:"请输入正确的手机号码",trigger:"blur"},{pattern:/^1[3-9]\d{9}$/,message:"请输入正确的手机号码"}]}},address:{title:"详细地址",type:"textarea",form:{component:{placeholder:"请输入",disabled:e=="view"},rules:[{required:!0,message:"详细地址必填项"}]}},note:{title:"备注",type:"textarea",form:{component:{placeholder:"请输入",disabled:e=="view"}}}},rowHandle:{fixed:"right",width:90,show:e!="view"}}}}export{n as default}; diff --git a/web/dist/assets/crudTable.BiDuz-Ax.js b/web/dist/assets/crudTable.BiDuz-Ax.js new file mode 100644 index 0000000000000000000000000000000000000000..a9da5bbe89330df898ca223762875b22cb53e105 --- /dev/null +++ b/web/dist/assets/crudTable.BiDuz-Ax.js @@ -0,0 +1 @@ +import{_ as o}from"./crudTable.vue_vue_type_script_setup_true_lang.CYM7VyF5.js";import"./index.XK2ik2qb.js";import"./vue.DmuWcDrn.js";export{o as default}; diff --git a/web/dist/assets/crudTable.vue_vue_type_script_setup_true_lang.CYM7VyF5.js b/web/dist/assets/crudTable.vue_vue_type_script_setup_true_lang.CYM7VyF5.js new file mode 100644 index 0000000000000000000000000000000000000000..bd675d6262e422e8773926ba4a2c0e5a32991210 --- /dev/null +++ b/web/dist/assets/crudTable.vue_vue_type_script_setup_true_lang.CYM7VyF5.js @@ -0,0 +1 @@ +import{e as c}from"./index.XK2ik2qb.js";import{d as m,C as p,h as i,a as f,o as h,k as _,L as w,u as b}from"./vue.DmuWcDrn.js";const k=m({__name:"crudTable",props:{modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],setup(o,{emit:a}){const s=function({crudExpose:r,context:l}){return{crudOptions:{mode:{name:"local",isMergeWhenUpdate:!0,isAppendWhenAdd:!0},actionbar:{buttons:{add:{show:!0},addRow:{show:!1}}},editable:{enabled:!0,mode:"row",activeDefault:!0},form:{wrapper:{width:"500px"},col:{span:24},afterSubmit({mode:t}){n("update:modelValue",e.value.data)}},toolbar:{show:!1},search:{disabled:!0,show:!1},pagination:{show:!1},columns:{title:{title:"标题",form:{component:{placeholder:"请输入标题"},rules:[{required:!0,message:"必须填写"}]}},key:{title:"键名",form:{component:{placeholder:"请输入键名"},rules:[{required:!0,message:"必须填写"}]}},value:{title:"键值",form:{component:{placeholder:"请输入键值"},rules:[{required:!0,message:"必须填写"}]}}}}}},{crudBinding:e,crudRef:u,crudExpose:g}=c({createCrudOptions:s}),d=o,n=a;return p(()=>d.modelValue,(r=[])=>{e.value.data=r},{immediate:!0}),(r,l)=>{const t=i("fs-crud");return h(),f("div",null,[_(t,w({ref_key:"crudRef",ref:u},b(e)),null,16)])}}});export{k as _}; diff --git a/web/dist/assets/day.DqBTVh5Q.js b/web/dist/assets/day.DqBTVh5Q.js new file mode 100644 index 0000000000000000000000000000000000000000..0afd2481c9fdc3e3c932e76bb96aa66a766f0f0d --- /dev/null +++ b/web/dist/assets/day.DqBTVh5Q.js @@ -0,0 +1 @@ +import{_ as m}from"./day.vue_vue_type_script_setup_true_lang.YLpwf3vE.js";import"./vue.DmuWcDrn.js";export{m as default}; diff --git a/web/dist/assets/day.vue_vue_type_script_setup_true_lang.YLpwf3vE.js b/web/dist/assets/day.vue_vue_type_script_setup_true_lang.YLpwf3vE.js new file mode 100644 index 0000000000000000000000000000000000000000..55f85e61dd0732c2fe38d406c942889dc5d411e1 --- /dev/null +++ b/web/dist/assets/day.vue_vue_type_script_setup_true_lang.YLpwf3vE.js @@ -0,0 +1 @@ +import{d as A,g as i,c as w,C as f,h as y,b as I,o as B,w as t,k as o,m as n,a as J,G as M,H as P,K as Q}from"./vue.DmuWcDrn.js";const X=A({__name:"day",props:{cron:{},check:{type:Function}},emits:["update"],setup(N,{expose:T,emit:D}){const d=D,O=N,a=i(1),k=i(1),m=i(1),p=i(2),s=i(0),V=i(1),x=i([]),b=O.check;T({cycle01:m,cycle02:p,average01:s,average02:V,checkboxList:x});const U=w(()=>(m.value=b(m.value,0,30),p.value=b(p.value,m.value?m.value+1:2,31,31),m.value+"-"+p.value)),C=w(()=>(s.value=b(s.value,0,30),V.value=b(V.value,1,31-s.value||0),s.value+"/"+V.value)),W=w(()=>(b(k.value,1,31),k)),L=w(()=>{let u=x.value.join();return u==""?"*":u});f(a,(u,e)=>{S()}),f(U,(u,e)=>{j()}),f(C,(u,e)=>{z()}),f(L,(u,e)=>{G()}),f(W,(u,e)=>{E()}),f(O,(u,e)=>{F(u.cron.day)});function F(u){u&&(u=="*"?a.value=1:u==="?"?a.value=2:typeof u=="string"&&u.indexOf("-")>-1?a.value=3:typeof u=="string"&&u.indexOf("/")>-1?a.value=4:typeof u=="string"&&u.indexOf("W")>-1?a.value=5:typeof u=="string"&&u.indexOf("L")>-1?a.value=6:a.value=7)}function S(){"day rachange";switch(a.value){case 1:d("update","day","*");break;case 2:d("update","day","?");break;case 3:d("update","day",U.value);break;case 4:d("update","day",C.value);break;case 5:d("update","day",k.value+"W");break;case 6:d("update","day","L");break;case 7:d("update","day",L.value);break}}function j(){a.value==3&&d("update","day",U.value)}function z(){a.value==4&&d("update","day",C.value)}function E(){a.value==5&&d("update","day",W.value+"W")}function G(){a.value==7&&d("update","day",L.value)}return(u,e)=>{const r=y("el-radio"),v=y("el-form-item"),g=y("el-input-number"),H=y("el-option"),K=y("el-select"),q=y("el-form");return B(),I(q,{size:"small"},{default:t(()=>[o(v,null,{default:t(()=>[o(r,{modelValue:a.value,"onUpdate:modelValue":e[0]||(e[0]=l=>a.value=l),label:1},{default:t(()=>e[13]||(e[13]=[n(" 日,允许的通配符[, - * ? / L W] ")])),_:1},8,["modelValue"])]),_:1}),o(v,null,{default:t(()=>[o(r,{modelValue:a.value,"onUpdate:modelValue":e[1]||(e[1]=l=>a.value=l),label:2},{default:t(()=>e[14]||(e[14]=[n("不指定")])),_:1},8,["modelValue"])]),_:1}),o(v,null,{default:t(()=>[o(r,{modelValue:a.value,"onUpdate:modelValue":e[4]||(e[4]=l=>a.value=l),label:3},{default:t(()=>[e[15]||(e[15]=n(" 周期从 ")),o(g,{modelValue:m.value,"onUpdate:modelValue":e[2]||(e[2]=l=>m.value=l),min:1,max:30},null,8,["modelValue"]),e[16]||(e[16]=n(" - ")),o(g,{modelValue:p.value,"onUpdate:modelValue":e[3]||(e[3]=l=>p.value=l),min:m.value?m.value+1:2,max:31},null,8,["modelValue","min"]),e[17]||(e[17]=n(" 日 "))]),_:1},8,["modelValue"])]),_:1}),o(v,null,{default:t(()=>[o(r,{modelValue:a.value,"onUpdate:modelValue":e[7]||(e[7]=l=>a.value=l),label:4},{default:t(()=>[e[18]||(e[18]=n(" 从 ")),o(g,{modelValue:s.value,"onUpdate:modelValue":e[5]||(e[5]=l=>s.value=l),min:1,max:30},null,8,["modelValue"]),e[19]||(e[19]=n(" 号开始,每 ")),o(g,{modelValue:V.value,"onUpdate:modelValue":e[6]||(e[6]=l=>V.value=l),min:1,max:31-s.value||1},null,8,["modelValue","max"]),e[20]||(e[20]=n(" 日执行一次 "))]),_:1},8,["modelValue"])]),_:1}),o(v,null,{default:t(()=>[o(r,{modelValue:a.value,"onUpdate:modelValue":e[9]||(e[9]=l=>a.value=l),label:5},{default:t(()=>[e[21]||(e[21]=n(" 每月 ")),o(g,{modelValue:k.value,"onUpdate:modelValue":e[8]||(e[8]=l=>k.value=l),min:1,max:31},null,8,["modelValue"]),e[22]||(e[22]=n(" 号最近的那个工作日 "))]),_:1},8,["modelValue"])]),_:1}),o(v,null,{default:t(()=>[o(r,{modelValue:a.value,"onUpdate:modelValue":e[10]||(e[10]=l=>a.value=l),label:6},{default:t(()=>e[23]||(e[23]=[n("本月最后一天")])),_:1},8,["modelValue"])]),_:1}),o(v,null,{default:t(()=>[o(r,{modelValue:a.value,"onUpdate:modelValue":e[12]||(e[12]=l=>a.value=l),label:7},{default:t(()=>[e[24]||(e[24]=n(" 指定 ")),o(K,{clearable:"",modelValue:x.value,"onUpdate:modelValue":e[11]||(e[11]=l=>x.value=l),placeholder:"可多选",multiple:"",style:{width:"100%"}},{default:t(()=>[(B(),J(M,null,P(31,l=>o(H,{key:l,value:l},{default:t(()=>[n(Q(l),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1})]),_:1})}}});export{X as _}; diff --git a/web/dist/assets/defaults.DZTid3wm.js b/web/dist/assets/defaults.DZTid3wm.js new file mode 100644 index 0000000000000000000000000000000000000000..0c3cc9e361bca7c80605bdf5e08624861f608ec0 --- /dev/null +++ b/web/dist/assets/defaults.DZTid3wm.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/aside.D4ng9uQr.js","assets/index.XK2ik2qb.js","assets/vue.DmuWcDrn.js","assets/index.JncG-tMh.css","assets/header.BQoAQuJ9.js","assets/main.BjGLKst8.js"])))=>i.map(i=>d[i]); +import{u as b,N as C,_ as a}from"./index.XK2ik2qb.js";import{d as p,g as _,s as k,T as L,x as g,C as i,h as f,b as w,o as x,w as s,k as e,u as n,q as r,D as E}from"./vue.DmuWcDrn.js";const M=p({name:"layoutDefaults"}),B=p({...M,setup(S){const d=r(()=>a(()=>import("./aside.D4ng9uQr.js"),__vite__mapDeps([0,1,2,3]))),m=r(()=>a(()=>import("./header.BQoAQuJ9.js"),__vite__mapDeps([4,1,2,3]))),y=r(()=>a(()=>import("./main.BjGLKst8.js"),__vite__mapDeps([5,1,2,3]))),o=_(""),t=_(),R=k(),T=b(),{themeConfig:h}=L(T),l=()=>{o.value.update(),t.value.layoutMainScrollbarRef.update()},c=()=>{E(()=>{setTimeout(()=>{l(),o.value.wrapRef.scrollTop=0,t.value.layoutMainScrollbarRef.wrapRef.scrollTop=0},500)})};return g(()=>{c(),C.done(600)}),i(()=>R.path,()=>{c()}),i(h,()=>{l()},{deep:!0}),(A,D)=>{const v=f("el-scrollbar"),u=f("el-container");return x(),w(u,{class:"layout-container"},{default:s(()=>[e(n(d)),e(u,{class:"layout-container-view h100"},{default:s(()=>[e(v,{ref_key:"layoutScrollbarRef",ref:o,class:"layout-backtop"},{default:s(()=>[e(n(m)),e(n(y),{ref_key:"layoutMainRef",ref:t},null,512)]),_:1},512)]),_:1})]),_:1})}}});export{B as default}; diff --git a/web/dist/assets/dictionary.DnyXy1XL.js b/web/dist/assets/dictionary.DnyXy1XL.js new file mode 100644 index 0000000000000000000000000000000000000000..bd7e094d639d620864b0436f4a19cbaca2e05a02 --- /dev/null +++ b/web/dist/assets/dictionary.DnyXy1XL.js @@ -0,0 +1 @@ +import{D as c}from"./index.XK2ik2qb.js";import{t as s}from"./vue.DmuWcDrn.js";const f=(t,o)=>{const a=c(),r=s(a.data);if(o!=null){const i=r[t].find(n=>n.value===o);return i?i.label:""}else return r[t]};export{f as d}; diff --git a/web/dist/assets/echarts.8mhZIf8A.js b/web/dist/assets/echarts.8mhZIf8A.js new file mode 100644 index 0000000000000000000000000000000000000000..aafdcaa5bb03d1e93b5ba673a9900d313f94c00d --- /dev/null +++ b/web/dist/assets/echarts.8mhZIf8A.js @@ -0,0 +1,74 @@ +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */var xp=function(r,e){return xp=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,a){t.__proto__=a}||function(t,a){for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(t[n]=a[n])},xp(r,e)};function N(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");xp(r,e);function t(){this.constructor=r}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var mL=function(){function r(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1}return r}(),_L=function(){function r(){this.browser=new mL,this.node=!1,this.wxa=!1,this.worker=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1,this.transformSupported=!1,this.transform3dSupported=!1,this.hasGlobalWindow=typeof window<"u"}return r}(),yt=new _L;typeof wx=="object"&&typeof wx.getSystemInfoSync=="function"?(yt.wxa=!0,yt.touchEventsSupported=!0):typeof document>"u"&&typeof self<"u"?yt.worker=!0:!yt.hasGlobalWindow||"Deno"in window?(yt.node=!0,yt.svgSupported=!0):SL(navigator.userAgent,yt);function SL(r,e){var t=e.browser,a=r.match(/Firefox\/([\d.]+)/),n=r.match(/MSIE\s([\d.]+)/)||r.match(/Trident\/.+?rv:(([\d.]+))/),i=r.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(r);a&&(t.firefox=!0,t.version=a[1]),n&&(t.ie=!0,t.version=n[1]),i&&(t.edge=!0,t.version=i[1],t.newEdge=+i[1].split(".")[0]>18),o&&(t.weChat=!0),e.svgSupported=typeof SVGRect<"u",e.touchEventsSupported="ontouchstart"in window&&!t.ie&&!t.edge,e.pointerEventsSupported="onpointerdown"in window&&(t.edge||t.ie&&+t.version>=11),e.domSupported=typeof document<"u";var s=document.documentElement.style;e.transform3dSupported=(t.ie&&"transition"in s||t.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),e.transformSupported=e.transform3dSupported||t.ie&&+t.version>=9}var hg=12,Mw="sans-serif",ja=hg+"px "+Mw,xL=20,bL=100,wL="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function TL(r){var e={};if(typeof JSON>"u")return e;for(var t=0;t=0)s=o*t.length;else for(var l=0;l>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",a[l]+":0",n[u]+":0",a[1-l]+":auto",n[1-u]+":auto",""].join("!important;"),r.appendChild(o),t.push(o)}return t}function XL(r,e,t){for(var a=t?"invTrans":"trans",n=e[a],i=e.srcCoords,o=[],s=[],l=!0,u=0;u<4;u++){var f=r[u].getBoundingClientRect(),h=2*u,v=f.left,c=f.top;o.push(v,c),l=l&&i&&v===i[h]&&c===i[h+1],s.push(r[u].offsetLeft,r[u].offsetTop)}return l&&n?n:(e.srcCoords=o,e[a]=t?km(s,o):km(o,s))}function Gw(r){return r.nodeName.toUpperCase()==="CANVAS"}var $L=/([&<>"'])/g,ZL={"&":"&","<":"<",">":">",'"':""","'":"'"};function Se(r){return r==null?"":(r+"").replace($L,function(e,t){return ZL[t]})}var qL=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ev=[],KL=yt.browser.firefox&&+yt.browser.version.split(".")[0]<39;function Dp(r,e,t,a){return t=t||{},a?Nm(r,e,t):KL&&e.layerX!=null&&e.layerX!==e.offsetX?(t.zrX=e.layerX,t.zrY=e.layerY):e.offsetX!=null?(t.zrX=e.offsetX,t.zrY=e.offsetY):Nm(r,e,t),t}function Nm(r,e,t){if(yt.domSupported&&r.getBoundingClientRect){var a=e.clientX,n=e.clientY;if(Gw(r)){var i=r.getBoundingClientRect();t.zrX=a-i.left,t.zrY=n-i.top;return}else if(Cp(ev,r,a,n)){t.zrX=ev[0],t.zrY=ev[1];return}}t.zrX=t.zrY=0}function mg(r){return r||window.event}function tr(r,e,t){if(e=mg(e),e.zrX!=null)return e;var a=e.type,n=a&&a.indexOf("touch")>=0;if(n){var o=a!=="touchend"?e.targetTouches[0]:e.changedTouches[0];o&&Dp(r,o,e,t)}else{Dp(r,e,e,t);var i=jL(e);e.zrDelta=i?i/120:-(e.detail||0)/3}var s=e.button;return e.which==null&&s!==void 0&&qL.test(e.type)&&(e.which=s&1?1:s&2?3:s&4?2:0),e}function jL(r){var e=r.wheelDelta;if(e)return e;var t=r.deltaX,a=r.deltaY;if(t==null||a==null)return e;var n=Math.abs(a!==0?a:t),i=a>0?-1:a<0?1:t>0?-1:1;return 3*n*i}function Mp(r,e,t,a){r.addEventListener(e,t,a)}function JL(r,e,t,a){r.removeEventListener(e,t,a)}var da=function(r){r.preventDefault(),r.stopPropagation(),r.cancelBubble=!0};function Bm(r){return r.which===2||r.which===3}var QL=function(){function r(){this._track=[]}return r.prototype.recognize=function(e,t,a){return this._doTrack(e,t,a),this._recognize(e)},r.prototype.clear=function(){return this._track.length=0,this},r.prototype._doTrack=function(e,t,a){var n=e.touches;if(n){for(var i={points:[],touches:[],target:t,event:e},o=0,s=n.length;o1&&a&&a.length>1){var i=Vm(a)/Vm(n);!isFinite(i)&&(i=1),e.pinchScale=i;var o=t2(a);return e.pinchX=o[0],e.pinchY=o[1],{type:"pinch",target:r[0].target,event:e}}}}};function Fe(){return[1,0,0,1,0,0]}function bl(r){return r[0]=1,r[1]=0,r[2]=0,r[3]=1,r[4]=0,r[5]=0,r}function ph(r,e){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r}function $r(r,e,t){var a=e[0]*t[0]+e[2]*t[1],n=e[1]*t[0]+e[3]*t[1],i=e[0]*t[2]+e[2]*t[3],o=e[1]*t[2]+e[3]*t[3],s=e[0]*t[4]+e[2]*t[5]+e[4],l=e[1]*t[4]+e[3]*t[5]+e[5];return r[0]=a,r[1]=n,r[2]=i,r[3]=o,r[4]=s,r[5]=l,r}function Ir(r,e,t){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4]+t[0],r[5]=e[5]+t[1],r}function nn(r,e,t,a){a===void 0&&(a=[0,0]);var n=e[0],i=e[2],o=e[4],s=e[1],l=e[3],u=e[5],f=Math.sin(t),h=Math.cos(t);return r[0]=n*h+s*f,r[1]=-n*f+s*h,r[2]=i*h+l*f,r[3]=-i*f+h*l,r[4]=h*(o-a[0])+f*(u-a[1])+a[0],r[5]=h*(u-a[1])-f*(o-a[0])+a[1],r}function dh(r,e,t){var a=t[0],n=t[1];return r[0]=e[0]*a,r[1]=e[1]*n,r[2]=e[2]*a,r[3]=e[3]*n,r[4]=e[4]*a,r[5]=e[5]*n,r}function di(r,e){var t=e[0],a=e[2],n=e[4],i=e[1],o=e[3],s=e[5],l=t*o-i*a;return l?(l=1/l,r[0]=o*l,r[1]=-i*l,r[2]=-a*l,r[3]=t*l,r[4]=(a*s-o*n)*l,r[5]=(i*n-t*s)*l,r):null}function Fw(r){var e=Fe();return ph(e,r),e}const e2=Object.freeze(Object.defineProperty({__proto__:null,clone:Fw,copy:ph,create:Fe,identity:bl,invert:di,mul:$r,rotate:nn,scale:dh,translate:Ir},Symbol.toStringTag,{value:"Module"}));var ft=function(){function r(e,t){this.x=e||0,this.y=t||0}return r.prototype.copy=function(e){return this.x=e.x,this.y=e.y,this},r.prototype.clone=function(){return new r(this.x,this.y)},r.prototype.set=function(e,t){return this.x=e,this.y=t,this},r.prototype.equal=function(e){return e.x===this.x&&e.y===this.y},r.prototype.add=function(e){return this.x+=e.x,this.y+=e.y,this},r.prototype.scale=function(e){this.x*=e,this.y*=e},r.prototype.scaleAndAdd=function(e,t){this.x+=e.x*t,this.y+=e.y*t},r.prototype.sub=function(e){return this.x-=e.x,this.y-=e.y,this},r.prototype.dot=function(e){return this.x*e.x+this.y*e.y},r.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},r.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},r.prototype.normalize=function(){var e=this.len();return this.x/=e,this.y/=e,this},r.prototype.distance=function(e){var t=this.x-e.x,a=this.y-e.y;return Math.sqrt(t*t+a*a)},r.prototype.distanceSquare=function(e){var t=this.x-e.x,a=this.y-e.y;return t*t+a*a},r.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},r.prototype.transform=function(e){if(e){var t=this.x,a=this.y;return this.x=e[0]*t+e[2]*a+e[4],this.y=e[1]*t+e[3]*a+e[5],this}},r.prototype.toArray=function(e){return e[0]=this.x,e[1]=this.y,e},r.prototype.fromArray=function(e){this.x=e[0],this.y=e[1]},r.set=function(e,t,a){e.x=t,e.y=a},r.copy=function(e,t){e.x=t.x,e.y=t.y},r.len=function(e){return Math.sqrt(e.x*e.x+e.y*e.y)},r.lenSquare=function(e){return e.x*e.x+e.y*e.y},r.dot=function(e,t){return e.x*t.x+e.y*t.y},r.add=function(e,t,a){e.x=t.x+a.x,e.y=t.y+a.y},r.sub=function(e,t,a){e.x=t.x-a.x,e.y=t.y-a.y},r.scale=function(e,t,a){e.x=t.x*a,e.y=t.y*a},r.scaleAndAdd=function(e,t,a,n){e.x=t.x+a.x*n,e.y=t.y+a.y*n},r.lerp=function(e,t,a,n){var i=1-n;e.x=i*t.x+n*a.x,e.y=i*t.y+n*a.y},r}(),Ul=Math.min,Yl=Math.max,fn=new ft,hn=new ft,vn=new ft,cn=new ft,Go=new ft,Fo=new ft,ht=function(){function r(e,t,a,n){a<0&&(e=e+a,a=-a),n<0&&(t=t+n,n=-n),this.x=e,this.y=t,this.width=a,this.height=n}return r.prototype.union=function(e){var t=Ul(e.x,this.x),a=Ul(e.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Yl(e.x+e.width,this.x+this.width)-t:this.width=e.width,isFinite(this.y)&&isFinite(this.height)?this.height=Yl(e.y+e.height,this.y+this.height)-a:this.height=e.height,this.x=t,this.y=a},r.prototype.applyTransform=function(e){r.applyTransform(this,this,e)},r.prototype.calculateTransform=function(e){var t=this,a=e.width/t.width,n=e.height/t.height,i=Fe();return Ir(i,i,[-t.x,-t.y]),dh(i,i,[a,n]),Ir(i,i,[e.x,e.y]),i},r.prototype.intersect=function(e,t){if(!e)return!1;e instanceof r||(e=r.create(e));var a=this,n=a.x,i=a.x+a.width,o=a.y,s=a.y+a.height,l=e.x,u=e.x+e.width,f=e.y,h=e.y+e.height,v=!(ip&&(p=_,dp&&(p=S,y=a.x&&e<=a.x+a.width&&t>=a.y&&t<=a.y+a.height},r.prototype.clone=function(){return new r(this.x,this.y,this.width,this.height)},r.prototype.copy=function(e){r.copy(this,e)},r.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},r.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},r.prototype.isZero=function(){return this.width===0||this.height===0},r.create=function(e){return new r(e.x,e.y,e.width,e.height)},r.copy=function(e,t){e.x=t.x,e.y=t.y,e.width=t.width,e.height=t.height},r.applyTransform=function(e,t,a){if(!a){e!==t&&r.copy(e,t);return}if(a[1]<1e-5&&a[1]>-1e-5&&a[2]<1e-5&&a[2]>-1e-5){var n=a[0],i=a[3],o=a[4],s=a[5];e.x=t.x*n+o,e.y=t.y*i+s,e.width=t.width*n,e.height=t.height*i,e.width<0&&(e.x+=e.width,e.width=-e.width),e.height<0&&(e.y+=e.height,e.height=-e.height);return}fn.x=vn.x=t.x,fn.y=cn.y=t.y,hn.x=cn.x=t.x+t.width,hn.y=vn.y=t.y+t.height,fn.transform(a),cn.transform(a),hn.transform(a),vn.transform(a),e.x=Ul(fn.x,hn.x,vn.x,cn.x),e.y=Ul(fn.y,hn.y,vn.y,cn.y);var l=Yl(fn.x,hn.x,vn.x,cn.x),u=Yl(fn.y,hn.y,vn.y,cn.y);e.width=l-e.x,e.height=u-e.y},r}(),Hw="silent";function r2(r,e,t){return{type:r,event:t,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:t.zrX,offsetY:t.zrY,gestureEvent:t.gestureEvent,pinchX:t.pinchX,pinchY:t.pinchY,pinchScale:t.pinchScale,wheelDelta:t.zrDelta,zrByTouch:t.zrByTouch,which:t.which,stop:a2}}function a2(){da(this.event)}var n2=function(r){Ft(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.handler=null,t}return e.prototype.dispose=function(){},e.prototype.setCursor=function(){},e}(hr),Ho=function(){function r(e,t){this.x=e,this.y=t}return r}(),i2=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],av=new ht(0,0,0,0),Ww=function(r){Ft(e,r);function e(t,a,n,i,o){var s=r.call(this)||this;return s._hovered=new Ho(0,0),s.storage=t,s.painter=a,s.painterRoot=i,s._pointerSize=o,n=n||new n2,s.proxy=null,s.setHandlerProxy(n),s._draggingMgr=new HL(s),s}return e.prototype.setHandlerProxy=function(t){this.proxy&&this.proxy.dispose(),t&&(D(i2,function(a){t.on&&t.on(a,this[a],this)},this),t.handler=this),this.proxy=t},e.prototype.mousemove=function(t){var a=t.zrX,n=t.zrY,i=Uw(this,a,n),o=this._hovered,s=o.target;s&&!s.__zr&&(o=this.findHover(o.x,o.y),s=o.target);var l=this._hovered=i?new Ho(a,n):this.findHover(a,n),u=l.target,f=this.proxy;f.setCursor&&f.setCursor(u?u.cursor:"default"),s&&u!==s&&this.dispatchToElement(o,"mouseout",t),this.dispatchToElement(l,"mousemove",t),u&&u!==s&&this.dispatchToElement(l,"mouseover",t)},e.prototype.mouseout=function(t){var a=t.zrEventControl;a!=="only_globalout"&&this.dispatchToElement(this._hovered,"mouseout",t),a!=="no_globalout"&&this.trigger("globalout",{type:"globalout",event:t})},e.prototype.resize=function(){this._hovered=new Ho(0,0)},e.prototype.dispatch=function(t,a){var n=this[t];n&&n.call(this,a)},e.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},e.prototype.setCursorStyle=function(t){var a=this.proxy;a.setCursor&&a.setCursor(t)},e.prototype.dispatchToElement=function(t,a,n){t=t||{};var i=t.target;if(!(i&&i.silent)){for(var o="on"+a,s=r2(a,t,n);i&&(i[o]&&(s.cancelBubble=!!i[o].call(i,s)),i.trigger(a,s),i=i.__hostTarget?i.__hostTarget:i.parent,!s.cancelBubble););s.cancelBubble||(this.trigger(a,s),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(l){typeof l[o]=="function"&&l[o].call(l,s),l.trigger&&l.trigger(a,s)}))}},e.prototype.findHover=function(t,a,n){var i=this.storage.getDisplayList(),o=new Ho(t,a);if(zm(i,o,t,a,n),this._pointerSize&&!o.target){for(var s=[],l=this._pointerSize,u=l/2,f=new ht(t-u,a-u,l,l),h=i.length-1;h>=0;h--){var v=i[h];v!==n&&!v.ignore&&!v.ignoreCoarsePointer&&(!v.parent||!v.parent.ignoreCoarsePointer)&&(av.copy(v.getBoundingRect()),v.transform&&av.applyTransform(v.transform),av.intersect(f)&&s.push(v))}if(s.length)for(var c=4,p=Math.PI/12,d=Math.PI*2,g=0;g4)return;this._downPoint=null}this.dispatchToElement(i,r,e)}});function o2(r,e,t){if(r[r.rectHover?"rectContain":"contain"](e,t)){for(var a=r,n=void 0,i=!1;a;){if(a.ignoreClip&&(i=!0),!i){var o=a.getClipPath();if(o&&!o.contain(e,t))return!1}a.silent&&(n=!0);var s=a.__hostTarget;a=s||a.parent}return n?Hw:!0}return!1}function zm(r,e,t,a,n){for(var i=r.length-1;i>=0;i--){var o=r[i],s=void 0;if(o!==n&&!o.ignore&&(s=o2(o,t,a))&&(!e.topTarget&&(e.topTarget=o),s!==Hw)){e.target=o;break}}}function Uw(r,e,t){var a=r.painter;return e<0||e>a.getWidth()||t<0||t>a.getHeight()}var Yw=32,Wo=7;function s2(r){for(var e=0;r>=Yw;)e|=r&1,r>>=1;return r+e}function Gm(r,e,t,a){var n=e+1;if(n===t)return 1;if(a(r[n++],r[e])<0){for(;n=0;)n++;return n-e}function l2(r,e,t){for(t--;e>>1,n(i,r[l])<0?s=l:o=l+1;var u=a-o;switch(u){case 3:r[o+3]=r[o+2];case 2:r[o+2]=r[o+1];case 1:r[o+1]=r[o];break;default:for(;u>0;)r[o+u]=r[o+u-1],u--}r[o]=i}}function nv(r,e,t,a,n,i){var o=0,s=0,l=1;if(i(r,e[t+n])>0){for(s=a-n;l0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=n,l+=n}else{for(s=n+1;ls&&(l=s);var u=o;o=n-l,l=n-u}for(o++;o>>1);i(r,e[t+f])>0?o=f+1:l=f}return l}function iv(r,e,t,a,n,i){var o=0,s=0,l=1;if(i(r,e[t+n])<0){for(s=n+1;ls&&(l=s);var u=o;o=n-l,l=n-u}else{for(s=a-n;l=0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=n,l+=n}for(o++;o>>1);i(r,e[t+f])<0?l=f:o=f+1}return l}function u2(r,e){var t=Wo,a,n,i=0,o=[];a=[],n=[];function s(c,p){a[i]=c,n[i]=p,i+=1}function l(){for(;i>1;){var c=i-2;if(c>=1&&n[c-1]<=n[c]+n[c+1]||c>=2&&n[c-2]<=n[c]+n[c-1])n[c-1]n[c+1])break;f(c)}}function u(){for(;i>1;){var c=i-2;c>0&&n[c-1]=Wo||w>=Wo);if(T)break;b<0&&(b=0),b+=2}if(t=b,t<1&&(t=1),p===1){for(y=0;y=0;y--)r[x+y]=r[b+y];r[S]=o[_];return}for(var w=t;;){var T=0,A=0,C=!1;do if(e(o[_],r[m])<0){if(r[S--]=r[m--],T++,A=0,--p===0){C=!0;break}}else if(r[S--]=o[_--],A++,T=0,--g===1){C=!0;break}while((T|A)=0;y--)r[x+y]=r[b+y];if(p===0){C=!0;break}}if(r[S--]=o[_--],--g===1){C=!0;break}if(A=g-nv(r[m],o,0,g,g-1,e),A!==0){for(S-=A,_-=A,g-=A,x=S+1,b=_+1,y=0;y=Wo||A>=Wo);if(C)break;w<0&&(w=0),w+=2}if(t=w,t<1&&(t=1),g===1){for(S-=p,m-=p,x=S+1,b=m+1,y=p-1;y>=0;y--)r[x+y]=r[b+y];r[S]=o[_]}else{if(g===0)throw new Error;for(b=S-(g-1),y=0;ys&&(l=s),Fm(r,t,t+l,t+i,e),i=l}o.pushRun(t,i),o.mergeRuns(),n-=i,t+=i}while(n!==0);o.forceMergeRuns()}}var Zr=1,Xu=2,ds=4,Hm=!1;function ov(){Hm||(Hm=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function Wm(r,e){return r.zlevel===e.zlevel?r.z===e.z?r.z2-e.z2:r.z-e.z:r.zlevel-e.zlevel}var f2=function(){function r(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=Wm}return r.prototype.traverse=function(e,t){for(var a=0;a0&&(f.__clipPaths=[]),isNaN(f.z)&&(ov(),f.z=0),isNaN(f.z2)&&(ov(),f.z2=0),isNaN(f.zlevel)&&(ov(),f.zlevel=0),this._displayList[this._displayListLen++]=f}var h=e.getDecalElement&&e.getDecalElement();h&&this._updateAndAddDisplayable(h,t,a);var v=e.getTextGuideLine();v&&this._updateAndAddDisplayable(v,t,a);var c=e.getTextContent();c&&this._updateAndAddDisplayable(c,t,a)}},r.prototype.addRoot=function(e){e.__zr&&e.__zr.storage===this||this._roots.push(e)},r.prototype.delRoot=function(e){if(e instanceof Array){for(var t=0,a=e.length;t=0&&this._roots.splice(n,1)},r.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},r.prototype.getRoots=function(){return this._roots},r.prototype.dispose=function(){this._displayList=null,this._roots=null},r}(),df;df=yt.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(r){return setTimeout(r,16)};var Ls={linear:function(r){return r},quadraticIn:function(r){return r*r},quadraticOut:function(r){return r*(2-r)},quadraticInOut:function(r){return(r*=2)<1?.5*r*r:-.5*(--r*(r-2)-1)},cubicIn:function(r){return r*r*r},cubicOut:function(r){return--r*r*r+1},cubicInOut:function(r){return(r*=2)<1?.5*r*r*r:.5*((r-=2)*r*r+2)},quarticIn:function(r){return r*r*r*r},quarticOut:function(r){return 1- --r*r*r*r},quarticInOut:function(r){return(r*=2)<1?.5*r*r*r*r:-.5*((r-=2)*r*r*r-2)},quinticIn:function(r){return r*r*r*r*r},quinticOut:function(r){return--r*r*r*r*r+1},quinticInOut:function(r){return(r*=2)<1?.5*r*r*r*r*r:.5*((r-=2)*r*r*r*r+2)},sinusoidalIn:function(r){return 1-Math.cos(r*Math.PI/2)},sinusoidalOut:function(r){return Math.sin(r*Math.PI/2)},sinusoidalInOut:function(r){return .5*(1-Math.cos(Math.PI*r))},exponentialIn:function(r){return r===0?0:Math.pow(1024,r-1)},exponentialOut:function(r){return r===1?1:1-Math.pow(2,-10*r)},exponentialInOut:function(r){return r===0?0:r===1?1:(r*=2)<1?.5*Math.pow(1024,r-1):.5*(-Math.pow(2,-10*(r-1))+2)},circularIn:function(r){return 1-Math.sqrt(1-r*r)},circularOut:function(r){return Math.sqrt(1- --r*r)},circularInOut:function(r){return(r*=2)<1?-.5*(Math.sqrt(1-r*r)-1):.5*(Math.sqrt(1-(r-=2)*r)+1)},elasticIn:function(r){var e,t=.1,a=.4;return r===0?0:r===1?1:(!t||t<1?(t=1,e=a/4):e=a*Math.asin(1/t)/(2*Math.PI),-(t*Math.pow(2,10*(r-=1))*Math.sin((r-e)*(2*Math.PI)/a)))},elasticOut:function(r){var e,t=.1,a=.4;return r===0?0:r===1?1:(!t||t<1?(t=1,e=a/4):e=a*Math.asin(1/t)/(2*Math.PI),t*Math.pow(2,-10*r)*Math.sin((r-e)*(2*Math.PI)/a)+1)},elasticInOut:function(r){var e,t=.1,a=.4;return r===0?0:r===1?1:(!t||t<1?(t=1,e=a/4):e=a*Math.asin(1/t)/(2*Math.PI),(r*=2)<1?-.5*(t*Math.pow(2,10*(r-=1))*Math.sin((r-e)*(2*Math.PI)/a)):t*Math.pow(2,-10*(r-=1))*Math.sin((r-e)*(2*Math.PI)/a)*.5+1)},backIn:function(r){var e=1.70158;return r*r*((e+1)*r-e)},backOut:function(r){var e=1.70158;return--r*r*((e+1)*r+e)+1},backInOut:function(r){var e=2.5949095;return(r*=2)<1?.5*(r*r*((e+1)*r-e)):.5*((r-=2)*r*((e+1)*r+e)+2)},bounceIn:function(r){return 1-Ls.bounceOut(1-r)},bounceOut:function(r){return r<1/2.75?7.5625*r*r:r<2/2.75?7.5625*(r-=1.5/2.75)*r+.75:r<2.5/2.75?7.5625*(r-=2.25/2.75)*r+.9375:7.5625*(r-=2.625/2.75)*r+.984375},bounceInOut:function(r){return r<.5?Ls.bounceIn(r*2)*.5:Ls.bounceOut(r*2-1)*.5+.5}},Xl=Math.pow,Ya=Math.sqrt,Xw=1e-8,$w=1e-4,Um=Ya(3),$l=1/3,Fr=an(),nr=an(),to=an();function Va(r){return r>-1e-8&&rXw||r<-1e-8}function re(r,e,t,a,n){var i=1-n;return i*i*(i*r+3*n*e)+n*n*(n*a+3*i*t)}function Ym(r,e,t,a,n){var i=1-n;return 3*(((e-r)*i+2*(t-e)*n)*i+(a-t)*n*n)}function gf(r,e,t,a,n,i){var o=a+3*(e-t)-r,s=3*(t-e*2+r),l=3*(e-r),u=r-n,f=s*s-3*o*l,h=s*l-9*o*u,v=l*l-3*s*u,c=0;if(Va(f)&&Va(h))if(Va(s))i[0]=0;else{var p=-l/s;p>=0&&p<=1&&(i[c++]=p)}else{var d=h*h-4*f*v;if(Va(d)){var g=h/f,p=-s/o+g,y=-g/2;p>=0&&p<=1&&(i[c++]=p),y>=0&&y<=1&&(i[c++]=y)}else if(d>0){var m=Ya(d),_=f*s+1.5*o*(-h+m),S=f*s+1.5*o*(-h-m);_<0?_=-Xl(-_,$l):_=Xl(_,$l),S<0?S=-Xl(-S,$l):S=Xl(S,$l);var p=(-s-(_+S))/(3*o);p>=0&&p<=1&&(i[c++]=p)}else{var b=(2*f*s-3*o*h)/(2*Ya(f*f*f)),x=Math.acos(b)/3,w=Ya(f),T=Math.cos(x),p=(-s-2*w*T)/(3*o),y=(-s+w*(T+Um*Math.sin(x)))/(3*o),A=(-s+w*(T-Um*Math.sin(x)))/(3*o);p>=0&&p<=1&&(i[c++]=p),y>=0&&y<=1&&(i[c++]=y),A>=0&&A<=1&&(i[c++]=A)}}return c}function qw(r,e,t,a,n){var i=6*t-12*e+6*r,o=9*e+3*a-3*r-9*t,s=3*e-3*r,l=0;if(Va(o)){if(Zw(i)){var u=-s/i;u>=0&&u<=1&&(n[l++]=u)}}else{var f=i*i-4*o*s;if(Va(f))n[0]=-i/(2*o);else if(f>0){var h=Ya(f),u=(-i+h)/(2*o),v=(-i-h)/(2*o);u>=0&&u<=1&&(n[l++]=u),v>=0&&v<=1&&(n[l++]=v)}}return l}function Ja(r,e,t,a,n,i){var o=(e-r)*n+r,s=(t-e)*n+e,l=(a-t)*n+t,u=(s-o)*n+o,f=(l-s)*n+s,h=(f-u)*n+u;i[0]=r,i[1]=o,i[2]=u,i[3]=h,i[4]=h,i[5]=f,i[6]=l,i[7]=a}function Kw(r,e,t,a,n,i,o,s,l,u,f){var h,v=.005,c=1/0,p,d,g,y;Fr[0]=l,Fr[1]=u;for(var m=0;m<1;m+=.05)nr[0]=re(r,t,n,o,m),nr[1]=re(e,a,i,s,m),g=Ua(Fr,nr),g=0&&g=0&&u<=1&&(n[l++]=u)}}else{var f=o*o-4*i*s;if(Va(f)){var u=-o/(2*i);u>=0&&u<=1&&(n[l++]=u)}else if(f>0){var h=Ya(f),u=(-o+h)/(2*i),v=(-o-h)/(2*i);u>=0&&u<=1&&(n[l++]=u),v>=0&&v<=1&&(n[l++]=v)}}return l}function jw(r,e,t){var a=r+t-2*e;return a===0?.5:(r-e)/a}function Xs(r,e,t,a,n){var i=(e-r)*a+r,o=(t-e)*a+e,s=(o-i)*a+i;n[0]=r,n[1]=i,n[2]=s,n[3]=s,n[4]=o,n[5]=t}function Jw(r,e,t,a,n,i,o,s,l){var u,f=.005,h=1/0;Fr[0]=o,Fr[1]=s;for(var v=0;v<1;v+=.05){nr[0]=ue(r,t,n,v),nr[1]=ue(e,a,i,v);var c=Ua(Fr,nr);c=0&&c=1?1:gf(0,a,i,1,l,s)&&re(0,n,o,1,s[0])}}}var d2=function(){function r(e){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=e.life||1e3,this._delay=e.delay||0,this.loop=e.loop||!1,this.onframe=e.onframe||Xt,this.ondestroy=e.ondestroy||Xt,this.onrestart=e.onrestart||Xt,e.easing&&this.setEasing(e.easing)}return r.prototype.step=function(e,t){if(this._inited||(this._startTime=e+this._delay,this._inited=!0),this._paused){this._pausedTime+=t;return}var a=this._life,n=e-this._startTime-this._pausedTime,i=n/a;i<0&&(i=0),i=Math.min(i,1);var o=this.easingFunc,s=o?o(i):i;if(this.onframe(s),i===1)if(this.loop){var l=n%a;this._startTime=e-l,this._pausedTime=0,this.onrestart()}else return!0;return!1},r.prototype.pause=function(){this._paused=!0},r.prototype.resume=function(){this._paused=!1},r.prototype.setEasing=function(e){this.easing=e,this.easingFunc=K(e)?e:Ls[e]||_g(e)},r}(),Qw=function(){function r(e){this.value=e}return r}(),g2=function(){function r(){this._len=0}return r.prototype.insert=function(e){var t=new Qw(e);return this.insertEntry(t),t},r.prototype.insertEntry=function(e){this.head?(this.tail.next=e,e.prev=this.tail,e.next=null,this.tail=e):this.head=this.tail=e,this._len++},r.prototype.remove=function(e){var t=e.prev,a=e.next;t?t.next=a:this.head=a,a?a.prev=t:this.tail=t,e.next=e.prev=null,this._len--},r.prototype.len=function(){return this._len},r.prototype.clear=function(){this.head=this.tail=null,this._len=0},r}(),wl=function(){function r(e){this._list=new g2,this._maxSize=10,this._map={},this._maxSize=e}return r.prototype.put=function(e,t){var a=this._list,n=this._map,i=null;if(n[e]==null){var o=a.len(),s=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var l=a.head;a.remove(l),delete n[l.key],i=l.value,this._lastRemovedEntry=l}s?s.value=t:s=new Qw(t),s.key=e,a.insertEntry(s),n[e]=s}return i},r.prototype.get=function(e){var t=this._map[e],a=this._list;if(t!=null)return t!==a.tail&&(a.remove(t),a.insertEntry(t)),t.value},r.prototype.clear=function(){this._list.clear(),this._map={}},r.prototype.len=function(){return this._list.len()},r}(),Xm={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Ar(r){return r=Math.round(r),r<0?0:r>255?255:r}function y2(r){return r=Math.round(r),r<0?0:r>360?360:r}function $s(r){return r<0?0:r>1?1:r}function sv(r){var e=r;return e.length&&e.charAt(e.length-1)==="%"?Ar(parseFloat(e)/100*255):Ar(parseInt(e,10))}function Jn(r){var e=r;return e.length&&e.charAt(e.length-1)==="%"?$s(parseFloat(e)/100):$s(parseFloat(e))}function lv(r,e,t){return t<0?t+=1:t>1&&(t-=1),t*6<1?r+(e-r)*t*6:t*2<1?e:t*3<2?r+(e-r)*(2/3-t)*6:r}function za(r,e,t){return r+(e-r)*t}function Qe(r,e,t,a,n){return r[0]=e,r[1]=t,r[2]=a,r[3]=n,r}function Lp(r,e){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r}var tT=new wl(20),Zl=null;function Ti(r,e){Zl&&Lp(Zl,e),Zl=tT.put(r,Zl||e.slice())}function Pe(r,e){if(r){e=e||[];var t=tT.get(r);if(t)return Lp(e,t);r=r+"";var a=r.replace(/ /g,"").toLowerCase();if(a in Xm)return Lp(e,Xm[a]),Ti(r,e),e;var n=a.length;if(a.charAt(0)==="#"){if(n===4||n===5){var i=parseInt(a.slice(1,4),16);if(!(i>=0&&i<=4095)){Qe(e,0,0,0,1);return}return Qe(e,(i&3840)>>4|(i&3840)>>8,i&240|(i&240)>>4,i&15|(i&15)<<4,n===5?parseInt(a.slice(4),16)/15:1),Ti(r,e),e}else if(n===7||n===9){var i=parseInt(a.slice(1,7),16);if(!(i>=0&&i<=16777215)){Qe(e,0,0,0,1);return}return Qe(e,(i&16711680)>>16,(i&65280)>>8,i&255,n===9?parseInt(a.slice(7),16)/255:1),Ti(r,e),e}return}var o=a.indexOf("("),s=a.indexOf(")");if(o!==-1&&s+1===n){var l=a.substr(0,o),u=a.substr(o+1,s-(o+1)).split(","),f=1;switch(l){case"rgba":if(u.length!==4)return u.length===3?Qe(e,+u[0],+u[1],+u[2],1):Qe(e,0,0,0,1);f=Jn(u.pop());case"rgb":if(u.length>=3)return Qe(e,sv(u[0]),sv(u[1]),sv(u[2]),u.length===3?f:Jn(u[3])),Ti(r,e),e;Qe(e,0,0,0,1);return;case"hsla":if(u.length!==4){Qe(e,0,0,0,1);return}return u[3]=Jn(u[3]),Pp(u,e),Ti(r,e),e;case"hsl":if(u.length!==3){Qe(e,0,0,0,1);return}return Pp(u,e),Ti(r,e),e;default:return}}Qe(e,0,0,0,1)}}function Pp(r,e){var t=(parseFloat(r[0])%360+360)%360/360,a=Jn(r[1]),n=Jn(r[2]),i=n<=.5?n*(a+1):n+a-n*a,o=n*2-i;return e=e||[],Qe(e,Ar(lv(o,i,t+1/3)*255),Ar(lv(o,i,t)*255),Ar(lv(o,i,t-1/3)*255),1),r.length===4&&(e[3]=r[3]),e}function m2(r){if(r){var e=r[0]/255,t=r[1]/255,a=r[2]/255,n=Math.min(e,t,a),i=Math.max(e,t,a),o=i-n,s=(i+n)/2,l,u;if(o===0)l=0,u=0;else{s<.5?u=o/(i+n):u=o/(2-i-n);var f=((i-e)/6+o/2)/o,h=((i-t)/6+o/2)/o,v=((i-a)/6+o/2)/o;e===i?l=v-h:t===i?l=1/3+f-v:a===i&&(l=2/3+h-f),l<0&&(l+=1),l>1&&(l-=1)}var c=[l*360,u,s];return r[3]!=null&&c.push(r[3]),c}}function yf(r,e){var t=Pe(r);if(t){for(var a=0;a<3;a++)e<0?t[a]=t[a]*(1-e)|0:t[a]=(255-t[a])*e+t[a]|0,t[a]>255?t[a]=255:t[a]<0&&(t[a]=0);return Cr(t,t.length===4?"rgba":"rgb")}}function _2(r){var e=Pe(r);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)}function Ps(r,e,t){if(!(!(e&&e.length)||!(r>=0&&r<=1))){t=t||[];var a=r*(e.length-1),n=Math.floor(a),i=Math.ceil(a),o=e[n],s=e[i],l=a-n;return t[0]=Ar(za(o[0],s[0],l)),t[1]=Ar(za(o[1],s[1],l)),t[2]=Ar(za(o[2],s[2],l)),t[3]=$s(za(o[3],s[3],l)),t}}var S2=Ps;function Sg(r,e,t){if(!(!(e&&e.length)||!(r>=0&&r<=1))){var a=r*(e.length-1),n=Math.floor(a),i=Math.ceil(a),o=Pe(e[n]),s=Pe(e[i]),l=a-n,u=Cr([Ar(za(o[0],s[0],l)),Ar(za(o[1],s[1],l)),Ar(za(o[2],s[2],l)),$s(za(o[3],s[3],l))],"rgba");return t?{color:u,leftIndex:n,rightIndex:i,value:a}:u}}var x2=Sg;function eo(r,e,t,a){var n=Pe(r);if(r)return n=m2(n),e!=null&&(n[0]=y2(e)),t!=null&&(n[1]=Jn(t)),a!=null&&(n[2]=Jn(a)),Cr(Pp(n),"rgba")}function Zs(r,e){var t=Pe(r);if(t&&e!=null)return t[3]=$s(e),Cr(t,"rgba")}function Cr(r,e){if(!(!r||!r.length)){var t=r[0]+","+r[1]+","+r[2];return(e==="rgba"||e==="hsva"||e==="hsla")&&(t+=","+r[3]),e+"("+t+")"}}function qs(r,e){var t=Pe(r);return t?(.299*t[0]+.587*t[1]+.114*t[2])*t[3]/255+(1-t[3])*e:0}function b2(){return Cr([Math.round(Math.random()*255),Math.round(Math.random()*255),Math.round(Math.random()*255)],"rgb")}var $m=new wl(100);function mf(r){if(Y(r)){var e=$m.get(r);return e||(e=yf(r,-.1),$m.put(r,e)),e}else if(Sl(r)){var t=V({},r);return t.colorStops=G(r.colorStops,function(a){return{offset:a.offset,color:yf(a.color,-.1)}}),t}return r}const w2=Object.freeze(Object.defineProperty({__proto__:null,fastLerp:Ps,fastMapToColor:S2,lerp:Sg,lift:yf,liftColor:mf,lum:qs,mapToColor:x2,modifyAlpha:Zs,modifyHSL:eo,parse:Pe,random:b2,stringify:Cr,toHex:_2},Symbol.toStringTag,{value:"Module"}));var _f=Math.round;function Ks(r){var e;if(!r||r==="transparent")r="none";else if(typeof r=="string"&&r.indexOf("rgba")>-1){var t=Pe(r);t&&(r="rgb("+t[0]+","+t[1]+","+t[2]+")",e=t[3])}return{color:r,opacity:e??1}}var T2=1e-4;function Ga(r){return r-1e-4}function ql(r){return _f(r*1e3)/1e3}function Rp(r){return _f(r*1e4)/1e4}function A2(r){return"matrix("+ql(r[0])+","+ql(r[1])+","+ql(r[2])+","+ql(r[3])+","+Rp(r[4])+","+Rp(r[5])+")"}var C2={left:"start",right:"end",center:"middle",middle:"middle"};function D2(r,e,t){return t==="top"?r+=e/2:t==="bottom"&&(r-=e/2),r}function M2(r){return r&&(r.shadowBlur||r.shadowOffsetX||r.shadowOffsetY)}function I2(r){var e=r.style,t=r.getGlobalScale();return[e.shadowColor,(e.shadowBlur||0).toFixed(2),(e.shadowOffsetX||0).toFixed(2),(e.shadowOffsetY||0).toFixed(2),t[0],t[1]].join(",")}function eT(r){return r&&!!r.image}function L2(r){return r&&!!r.svgElement}function xg(r){return eT(r)||L2(r)}function rT(r){return r.type==="linear"}function aT(r){return r.type==="radial"}function nT(r){return r&&(r.type==="linear"||r.type==="radial")}function gh(r){return"url(#"+r+")"}function iT(r){var e=r.getGlobalScale(),t=Math.max(e[0],e[1]);return Math.max(Math.ceil(Math.log(t)/Math.log(10)),1)}function oT(r){var e=r.x||0,t=r.y||0,a=(r.rotation||0)*Ds,n=st(r.scaleX,1),i=st(r.scaleY,1),o=r.skewX||0,s=r.skewY||0,l=[];return(e||t)&&l.push("translate("+e+"px,"+t+"px)"),a&&l.push("rotate("+a+")"),(n!==1||i!==1)&&l.push("scale("+n+","+i+")"),(o||s)&&l.push("skew("+_f(o*Ds)+"deg, "+_f(s*Ds)+"deg)"),l.join(" ")}var P2=function(){return yt.hasGlobalWindow&&K(window.btoa)?function(r){return window.btoa(unescape(encodeURIComponent(r)))}:typeof Buffer<"u"?function(r){return Buffer.from(r).toString("base64")}:function(r){return null}}(),Ep=Array.prototype.slice;function oa(r,e,t){return(e-r)*t+r}function uv(r,e,t,a){for(var n=e.length,i=0;ia?e:r,i=Math.min(t,a),o=n[i-1]||{color:[0,0,0,0],offset:0},s=i;so;if(s)a.length=o;else for(var l=i;l=1},r.prototype.getAdditiveTrack=function(){return this._additiveTrack},r.prototype.addKeyframe=function(e,t,a){this._needsSort=!0;var n=this.keyframes,i=n.length,o=!1,s=qm,l=t;if(ve(t)){var u=O2(t);s=u,(u===1&&!wt(t[0])||u===2&&!wt(t[0][0]))&&(o=!0)}else if(wt(t)&&!so(t))s=jl;else if(Y(t))if(!isNaN(+t))s=jl;else{var f=Pe(t);f&&(l=f,s=gs)}else if(Sl(t)){var h=V({},l);h.colorStops=G(t.colorStops,function(c){return{offset:c.offset,color:Pe(c.color)}}),rT(t)?s=kp:aT(t)&&(s=Op),l=h}i===0?this.valType=s:(s!==this.valType||s===qm)&&(o=!0),this.discrete=this.discrete||o;var v={time:e,value:l,rawValue:t,percent:0};return a&&(v.easing=a,v.easingFunc=K(a)?a:Ls[a]||_g(a)),n.push(v),v},r.prototype.prepare=function(e,t){var a=this.keyframes;this._needsSort&&a.sort(function(d,g){return d.time-g.time});for(var n=this.valType,i=a.length,o=a[i-1],s=this.discrete,l=Jl(n),u=Km(n),f=0;f=0&&!(o[f].percent<=t);f--);f=v(f,s-2)}else{for(f=h;ft);f++);f=v(f-1,s-2)}p=o[f+1],c=o[f]}if(c&&p){this._lastFr=f,this._lastFrP=t;var g=p.percent-c.percent,y=g===0?1:v((t-c.percent)/g,1);p.easingFunc&&(y=p.easingFunc(y));var m=a?this._additiveValue:u?Uo:e[l];if((Jl(i)||u)&&!m&&(m=this._additiveValue=[]),this.discrete)e[l]=y<1?c.rawValue:p.rawValue;else if(Jl(i))i===Zu?uv(m,c[n],p[n],y):R2(m,c[n],p[n],y);else if(Km(i)){var _=c[n],S=p[n],b=i===kp;e[l]={type:b?"linear":"radial",x:oa(_.x,S.x,y),y:oa(_.y,S.y,y),colorStops:G(_.colorStops,function(w,T){var A=S.colorStops[T];return{offset:oa(w.offset,A.offset,y),color:$u(uv([],w.color,A.color,y))}}),global:S.global},b?(e[l].x2=oa(_.x2,S.x2,y),e[l].y2=oa(_.y2,S.y2,y)):e[l].r=oa(_.r,S.r,y)}else if(u)uv(m,c[n],p[n],y),a||(e[l]=$u(m));else{var x=oa(c[n],p[n],y);a?this._additiveValue=x:e[l]=x}a&&this._addToTarget(e)}}},r.prototype._addToTarget=function(e){var t=this.valType,a=this.propName,n=this._additiveValue;t===jl?e[a]=e[a]+n:t===gs?(Pe(e[a],Uo),Kl(Uo,Uo,n,1),e[a]=$u(Uo)):t===Zu?Kl(e[a],e[a],n,1):t===sT&&Zm(e[a],e[a],n,1)},r}(),bg=function(){function r(e,t,a,n){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=e,this._loop=t,t&&n){fh("Can' use additive animation on looped animation.");return}this._additiveAnimators=n,this._allowDiscrete=a}return r.prototype.getMaxTime=function(){return this._maxTime},r.prototype.getDelay=function(){return this._delay},r.prototype.getLoop=function(){return this._loop},r.prototype.getTarget=function(){return this._target},r.prototype.changeTarget=function(e){this._target=e},r.prototype.when=function(e,t,a){return this.whenWithKeys(e,t,_t(t),a)},r.prototype.whenWithKeys=function(e,t,a,n){for(var i=this._tracks,o=0;o0&&l.addKeyframe(0,Rs(u),n),this._trackKeys.push(s)}l.addKeyframe(e,Rs(t[s]),n)}return this._maxTime=Math.max(this._maxTime,e),this},r.prototype.pause=function(){this._clip.pause(),this._paused=!0},r.prototype.resume=function(){this._clip.resume(),this._paused=!1},r.prototype.isPaused=function(){return!!this._paused},r.prototype.duration=function(e){return this._maxTime=e,this._force=!0,this},r.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var e=this._doneCbs;if(e)for(var t=e.length,a=0;a0)){this._started=1;for(var t=this,a=[],n=this._maxTime||0,i=0;i1){var s=o.pop();i.addKeyframe(s.time,e[n]),i.prepare(this._maxTime,i.getAdditiveTrack())}}}},r}();function qi(){return new Date().getTime()}var B2=function(r){Ft(e,r);function e(t){var a=r.call(this)||this;return a._running=!1,a._time=0,a._pausedTime=0,a._pauseStart=0,a._paused=!1,t=t||{},a.stage=t.stage||{},a}return e.prototype.addClip=function(t){t.animation&&this.removeClip(t),this._head?(this._tail.next=t,t.prev=this._tail,t.next=null,this._tail=t):this._head=this._tail=t,t.animation=this},e.prototype.addAnimator=function(t){t.animation=this;var a=t.getClip();a&&this.addClip(a)},e.prototype.removeClip=function(t){if(t.animation){var a=t.prev,n=t.next;a?a.next=n:this._head=n,n?n.prev=a:this._tail=a,t.next=t.prev=t.animation=null}},e.prototype.removeAnimator=function(t){var a=t.getClip();a&&this.removeClip(a),t.animation=null},e.prototype.update=function(t){for(var a=qi()-this._pausedTime,n=a-this._time,i=this._head;i;){var o=i.next,s=i.step(a,n);s&&(i.ondestroy(),this.removeClip(i)),i=o}this._time=a,t||(this.trigger("frame",n),this.stage.update&&this.stage.update())},e.prototype._startLoop=function(){var t=this;this._running=!0;function a(){t._running&&(df(a),!t._paused&&t.update())}df(a)},e.prototype.start=function(){this._running||(this._time=qi(),this._pausedTime=0,this._startLoop())},e.prototype.stop=function(){this._running=!1},e.prototype.pause=function(){this._paused||(this._pauseStart=qi(),this._paused=!0)},e.prototype.resume=function(){this._paused&&(this._pausedTime+=qi()-this._pauseStart,this._paused=!1)},e.prototype.clear=function(){for(var t=this._head;t;){var a=t.next;t.prev=t.next=t.animation=null,t=a}this._head=this._tail=null},e.prototype.isFinished=function(){return this._head==null},e.prototype.animate=function(t,a){a=a||{},this.start();var n=new bg(t,a.loop);return this.addAnimator(n),n},e}(hr),V2=300,fv=yt.domSupported,hv=function(){var r=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],e=["touchstart","touchend","touchmove"],t={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},a=G(r,function(n){var i=n.replace("mouse","pointer");return t.hasOwnProperty(i)?i:n});return{mouse:r,touch:e,pointer:a}}(),jm={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},Jm=!1;function Np(r){var e=r.pointerType;return e==="pen"||e==="touch"}function z2(r){r.touching=!0,r.touchTimer!=null&&(clearTimeout(r.touchTimer),r.touchTimer=null),r.touchTimer=setTimeout(function(){r.touching=!1,r.touchTimer=null},700)}function vv(r){r&&(r.zrByTouch=!0)}function G2(r,e){return tr(r.dom,new F2(r,e),!0)}function lT(r,e){for(var t=e,a=!1;t&&t.nodeType!==9&&!(a=t.domBelongToZr||t!==e&&t===r.painterRoot);)t=t.parentNode;return a}var F2=function(){function r(e,t){this.stopPropagation=Xt,this.stopImmediatePropagation=Xt,this.preventDefault=Xt,this.type=t.type,this.target=this.currentTarget=e.dom,this.pointerType=t.pointerType,this.clientX=t.clientX,this.clientY=t.clientY}return r}(),_r={mousedown:function(r){r=tr(this.dom,r),this.__mayPointerCapture=[r.zrX,r.zrY],this.trigger("mousedown",r)},mousemove:function(r){r=tr(this.dom,r);var e=this.__mayPointerCapture;e&&(r.zrX!==e[0]||r.zrY!==e[1])&&this.__togglePointerCapture(!0),this.trigger("mousemove",r)},mouseup:function(r){r=tr(this.dom,r),this.__togglePointerCapture(!1),this.trigger("mouseup",r)},mouseout:function(r){r=tr(this.dom,r);var e=r.toElement||r.relatedTarget;lT(this,e)||(this.__pointerCapturing&&(r.zrEventControl="no_globalout"),this.trigger("mouseout",r))},wheel:function(r){Jm=!0,r=tr(this.dom,r),this.trigger("mousewheel",r)},mousewheel:function(r){Jm||(r=tr(this.dom,r),this.trigger("mousewheel",r))},touchstart:function(r){r=tr(this.dom,r),vv(r),this.__lastTouchMoment=new Date,this.handler.processGesture(r,"start"),_r.mousemove.call(this,r),_r.mousedown.call(this,r)},touchmove:function(r){r=tr(this.dom,r),vv(r),this.handler.processGesture(r,"change"),_r.mousemove.call(this,r)},touchend:function(r){r=tr(this.dom,r),vv(r),this.handler.processGesture(r,"end"),_r.mouseup.call(this,r),+new Date-+this.__lastTouchMomentX2||r<-5e-5}var dn=[],Ai=[],pv=Fe(),dv=Math.abs,ha=function(){function r(){}return r.prototype.getLocalTransform=function(e){return r.getLocalTransform(this,e)},r.prototype.setPosition=function(e){this.x=e[0],this.y=e[1]},r.prototype.setScale=function(e){this.scaleX=e[0],this.scaleY=e[1]},r.prototype.setSkew=function(e){this.skewX=e[0],this.skewY=e[1]},r.prototype.setOrigin=function(e){this.originX=e[0],this.originY=e[1]},r.prototype.needLocalTransform=function(){return pn(this.rotation)||pn(this.x)||pn(this.y)||pn(this.scaleX-1)||pn(this.scaleY-1)||pn(this.skewX)||pn(this.skewY)},r.prototype.updateTransform=function(){var e=this.parent&&this.parent.transform,t=this.needLocalTransform(),a=this.transform;if(!(t||e)){a&&(t0(a),this.invTransform=null);return}a=a||Fe(),t?this.getLocalTransform(a):t0(a),e&&(t?$r(a,e,a):ph(a,e)),this.transform=a,this._resolveGlobalScaleRatio(a)},r.prototype._resolveGlobalScaleRatio=function(e){var t=this.globalScaleRatio;if(t!=null&&t!==1){this.getGlobalScale(dn);var a=dn[0]<0?-1:1,n=dn[1]<0?-1:1,i=((dn[0]-a)*t+a)/dn[0]||0,o=((dn[1]-n)*t+n)/dn[1]||0;e[0]*=i,e[1]*=i,e[2]*=o,e[3]*=o}this.invTransform=this.invTransform||Fe(),di(this.invTransform,e)},r.prototype.getComputedTransform=function(){for(var e=this,t=[];e;)t.push(e),e=e.parent;for(;e=t.pop();)e.updateTransform();return this.transform},r.prototype.setLocalTransform=function(e){if(e){var t=e[0]*e[0]+e[1]*e[1],a=e[2]*e[2]+e[3]*e[3],n=Math.atan2(e[1],e[0]),i=Math.PI/2+n-Math.atan2(e[3],e[2]);a=Math.sqrt(a)*Math.cos(i),t=Math.sqrt(t),this.skewX=i,this.skewY=0,this.rotation=-n,this.x=+e[4],this.y=+e[5],this.scaleX=t,this.scaleY=a,this.originX=0,this.originY=0}},r.prototype.decomposeTransform=function(){if(this.transform){var e=this.parent,t=this.transform;e&&e.transform&&(e.invTransform=e.invTransform||Fe(),$r(Ai,e.invTransform,t),t=Ai);var a=this.originX,n=this.originY;(a||n)&&(pv[4]=a,pv[5]=n,$r(Ai,t,pv),Ai[4]-=a,Ai[5]-=n,t=Ai),this.setLocalTransform(t)}},r.prototype.getGlobalScale=function(e){var t=this.transform;return e=e||[],t?(e[0]=Math.sqrt(t[0]*t[0]+t[1]*t[1]),e[1]=Math.sqrt(t[2]*t[2]+t[3]*t[3]),t[0]<0&&(e[0]=-e[0]),t[3]<0&&(e[1]=-e[1]),e):(e[0]=1,e[1]=1,e)},r.prototype.transformCoordToLocal=function(e,t){var a=[e,t],n=this.invTransform;return n&&fe(a,a,n),a},r.prototype.transformCoordToGlobal=function(e,t){var a=[e,t],n=this.transform;return n&&fe(a,a,n),a},r.prototype.getLineScale=function(){var e=this.transform;return e&&dv(e[0]-1)>1e-10&&dv(e[3]-1)>1e-10?Math.sqrt(dv(e[0]*e[3]-e[2]*e[1])):1},r.prototype.copyTransform=function(e){fT(this,e)},r.getLocalTransform=function(e,t){t=t||[];var a=e.originX||0,n=e.originY||0,i=e.scaleX,o=e.scaleY,s=e.anchorX,l=e.anchorY,u=e.rotation||0,f=e.x,h=e.y,v=e.skewX?Math.tan(e.skewX):0,c=e.skewY?Math.tan(-e.skewY):0;if(a||n||s||l){var p=a+s,d=n+l;t[4]=-p*i-v*d*o,t[5]=-d*o-c*p*i}else t[4]=t[5]=0;return t[0]=i,t[3]=o,t[1]=c*i,t[2]=v*o,u&&nn(t,t,u),t[4]+=a+f,t[5]+=n+h,t},r.initDefaultProps=function(){var e=r.prototype;e.scaleX=e.scaleY=e.globalScaleRatio=1,e.x=e.y=e.originX=e.originY=e.skewX=e.skewY=e.rotation=e.anchorX=e.anchorY=0}(),r}(),Kr=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function fT(r,e){for(var t=0;t=0?parseFloat(r)/100*e:parseFloat(r):r}function xf(r,e,t){var a=e.position||"inside",n=e.distance!=null?e.distance:5,i=t.height,o=t.width,s=i/2,l=t.x,u=t.y,f="left",h="top";if(a instanceof Array)l+=Lr(a[0],t.width),u+=Lr(a[1],t.height),f=null,h=null;else switch(a){case"left":l-=n,u+=s,f="right",h="middle";break;case"right":l+=n+o,u+=s,h="middle";break;case"top":l+=o/2,u-=n,f="center",h="bottom";break;case"bottom":l+=o/2,u+=i+n,f="center";break;case"inside":l+=o/2,u+=s,f="center",h="middle";break;case"insideLeft":l+=n,u+=s,h="middle";break;case"insideRight":l+=o-n,u+=s,f="right",h="middle";break;case"insideTop":l+=o/2,u+=n,f="center";break;case"insideBottom":l+=o/2,u+=i-n,f="center",h="bottom";break;case"insideTopLeft":l+=n,u+=n;break;case"insideTopRight":l+=o-n,u+=n,f="right";break;case"insideBottomLeft":l+=n,u+=i-n,h="bottom";break;case"insideBottomRight":l+=o-n,u+=i-n,f="right",h="bottom";break}return r=r||{},r.x=l,r.y=u,r.align=f,r.verticalAlign=h,r}var gv="__zr_normal__",yv=Kr.concat(["ignore"]),$2=ur(Kr,function(r,e){return r[e]=!0,r},{ignore:!1}),Ci={},Z2=new ht(0,0,0,0),mh=function(){function r(e){this.id=pg(),this.animators=[],this.currentStates=[],this.states={},this._init(e)}return r.prototype._init=function(e){this.attr(e)},r.prototype.drift=function(e,t,a){switch(this.draggable){case"horizontal":t=0;break;case"vertical":e=0;break}var n=this.transform;n||(n=this.transform=[1,0,0,1,0,0]),n[4]+=e,n[5]+=t,this.decomposeTransform(),this.markRedraw()},r.prototype.beforeUpdate=function(){},r.prototype.afterUpdate=function(){},r.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},r.prototype.updateInnerText=function(e){var t=this._textContent;if(t&&(!t.ignore||e)){this.textConfig||(this.textConfig={});var a=this.textConfig,n=a.local,i=t.innerTransformable,o=void 0,s=void 0,l=!1;i.parent=n?this:null;var u=!1;if(i.copyTransform(t),a.position!=null){var f=Z2;a.layoutRect?f.copy(a.layoutRect):f.copy(this.getBoundingRect()),n||f.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(Ci,a,f):xf(Ci,a,f),i.x=Ci.x,i.y=Ci.y,o=Ci.align,s=Ci.verticalAlign;var h=a.origin;if(h&&a.rotation!=null){var v=void 0,c=void 0;h==="center"?(v=f.width*.5,c=f.height*.5):(v=Lr(h[0],f.width),c=Lr(h[1],f.height)),u=!0,i.originX=-i.x+v+(n?0:f.x),i.originY=-i.y+c+(n?0:f.y)}}a.rotation!=null&&(i.rotation=a.rotation);var p=a.offset;p&&(i.x+=p[0],i.y+=p[1],u||(i.originX=-p[0],i.originY=-p[1]));var d=a.inside==null?typeof a.position=="string"&&a.position.indexOf("inside")>=0:a.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),y=void 0,m=void 0,_=void 0;d&&this.canBeInsideText()?(y=a.insideFill,m=a.insideStroke,(y==null||y==="auto")&&(y=this.getInsideTextFill()),(m==null||m==="auto")&&(m=this.getInsideTextStroke(y),_=!0)):(y=a.outsideFill,m=a.outsideStroke,(y==null||y==="auto")&&(y=this.getOutsideFill()),(m==null||m==="auto")&&(m=this.getOutsideStroke(y),_=!0)),y=y||"#000",(y!==g.fill||m!==g.stroke||_!==g.autoStroke||o!==g.align||s!==g.verticalAlign)&&(l=!0,g.fill=y,g.stroke=m,g.autoStroke=_,g.align=o,g.verticalAlign=s,t.setDefaultTextStyle(g)),t.__dirty|=Zr,l&&t.dirtyStyle(!0)}},r.prototype.canBeInsideText=function(){return!0},r.prototype.getInsideTextFill=function(){return"#fff"},r.prototype.getInsideTextStroke=function(e){return"#000"},r.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Gp:zp},r.prototype.getOutsideStroke=function(e){var t=this.__zr&&this.__zr.getBackgroundColor(),a=typeof t=="string"&&Pe(t);a||(a=[255,255,255,1]);for(var n=a[3],i=this.__zr.isDarkMode(),o=0;o<3;o++)a[o]=a[o]*n+(i?0:255)*(1-n);return a[3]=1,Cr(a,"rgba")},r.prototype.traverse=function(e,t){},r.prototype.attrKV=function(e,t){e==="textConfig"?this.setTextConfig(t):e==="textContent"?this.setTextContent(t):e==="clipPath"?this.setClipPath(t):e==="extra"?(this.extra=this.extra||{},V(this.extra,t)):this[e]=t},r.prototype.hide=function(){this.ignore=!0,this.markRedraw()},r.prototype.show=function(){this.ignore=!1,this.markRedraw()},r.prototype.attr=function(e,t){if(typeof e=="string")this.attrKV(e,t);else if(tt(e))for(var a=e,n=_t(a),i=0;i0},r.prototype.getState=function(e){return this.states[e]},r.prototype.ensureState=function(e){var t=this.states;return t[e]||(t[e]={}),t[e]},r.prototype.clearStates=function(e){this.useState(gv,!1,e)},r.prototype.useState=function(e,t,a,n){var i=e===gv,o=this.hasState();if(!(!o&&i)){var s=this.currentStates,l=this.stateTransition;if(!(vt(s,e)>=0&&(t||s.length===1))){var u;if(this.stateProxy&&!i&&(u=this.stateProxy(e)),u||(u=this.states&&this.states[e]),!u&&!i){fh("State "+e+" not exists.");return}i||this.saveCurrentToNormalState(u);var f=!!(u&&u.hoverLayer||n);f&&this._toggleHoverLayerFlag(!0),this._applyStateObj(e,u,this._normalState,t,!a&&!this.__inHover&&l&&l.duration>0,l);var h=this._textContent,v=this._textGuide;return h&&h.useState(e,t,a,f),v&&v.useState(e,t,a,f),i?(this.currentStates=[],this._normalState={}):t?this.currentStates.push(e):this.currentStates=[e],this._updateAnimationTargets(),this.markRedraw(),!f&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=-2),u}}},r.prototype.useStates=function(e,t,a){if(!e.length)this.clearStates();else{var n=[],i=this.currentStates,o=e.length,s=o===i.length;if(s){for(var l=0;l0,p);var d=this._textContent,g=this._textGuide;d&&d.useStates(e,t,v),g&&g.useStates(e,t,v),this._updateAnimationTargets(),this.currentStates=e.slice(),this.markRedraw(),!v&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=-2)}},r.prototype.isSilent=function(){for(var e=this.silent,t=this.parent;!e&&t;){if(t.silent){e=!0;break}t=t.parent}return e},r.prototype._updateAnimationTargets=function(){for(var e=0;e=0){var a=this.currentStates.slice();a.splice(t,1),this.useStates(a)}},r.prototype.replaceState=function(e,t,a){var n=this.currentStates.slice(),i=vt(n,e),o=vt(n,t)>=0;i>=0?o?n.splice(i,1):n[i]=t:a&&!o&&n.push(t),this.useStates(n)},r.prototype.toggleState=function(e,t){t?this.useState(e,!0):this.removeState(e)},r.prototype._mergeStates=function(e){for(var t={},a,n=0;n=0&&i.splice(o,1)}),this.animators.push(e),a&&a.animation.addAnimator(e),a&&a.wakeUp()},r.prototype.updateDuringAnimation=function(e){this.markRedraw()},r.prototype.stopAnimation=function(e,t){for(var a=this.animators,n=a.length,i=[],o=0;o0&&t.during&&i[0].during(function(p,d){t.during(d)});for(var v=0;v0||n.force&&!o.length){var T=void 0,A=void 0,C=void 0;if(s){A={},v&&(T={});for(var S=0;S<_;S++){var y=d[S];A[y]=t[y],v?T[y]=a[y]:t[y]=a[y]}}else if(v){C={};for(var S=0;S<_;S++){var y=d[S];C[y]=Rs(t[y]),K2(t,a,y)}}var b=new bg(t,!1,!1,h?At(p,function(I){return I.targetName===e}):null);b.targetName=e,n.scope&&(b.scope=n.scope),v&&T&&b.whenWithKeys(0,T,d),C&&b.whenWithKeys(0,C,d),b.whenWithKeys(u??500,s?A:a,d).delay(f||0),r.addAnimator(b,e),o.push(b)}}var at=function(r){Ft(e,r);function e(t){var a=r.call(this)||this;return a.isGroup=!0,a._children=[],a.attr(t),a}return e.prototype.childrenRef=function(){return this._children},e.prototype.children=function(){return this._children.slice()},e.prototype.childAt=function(t){return this._children[t]},e.prototype.childOfName=function(t){for(var a=this._children,n=0;n=0&&(n.splice(i,0,t),this._doAdd(t))}return this},e.prototype.replace=function(t,a){var n=vt(this._children,t);return n>=0&&this.replaceAt(a,n),this},e.prototype.replaceAt=function(t,a){var n=this._children,i=n[a];if(t&&t!==this&&t.parent!==this&&t!==i){n[a]=t,i.parent=null;var o=this.__zr;o&&i.removeSelfFromZr(o),this._doAdd(t)}return this},e.prototype._doAdd=function(t){t.parent&&t.parent.remove(t),t.parent=this;var a=this.__zr;a&&a!==t.__zr&&t.addSelfToZr(a),a&&a.refresh()},e.prototype.remove=function(t){var a=this.__zr,n=this._children,i=vt(n,t);return i<0?this:(n.splice(i,1),t.parent=null,a&&t.removeSelfFromZr(a),a&&a.refresh(),this)},e.prototype.removeAll=function(){for(var t=this._children,a=this.__zr,n=0;n0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},r.prototype.setSleepAfterStill=function(e){this._sleepAfterStill=e},r.prototype.wakeUp=function(){this._disposed||(this.animation.start(),this._stillFrameAccum=0)},r.prototype.refreshHover=function(){this._needsRefreshHover=!0},r.prototype.refreshHoverImmediately=function(){this._disposed||(this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.getType()==="canvas"&&this.painter.refreshHover())},r.prototype.resize=function(e){this._disposed||(e=e||{},this.painter.resize(e.width,e.height),this.handler.resize())},r.prototype.clearAnimation=function(){this._disposed||this.animation.clear()},r.prototype.getWidth=function(){if(!this._disposed)return this.painter.getWidth()},r.prototype.getHeight=function(){if(!this._disposed)return this.painter.getHeight()},r.prototype.setCursorStyle=function(e){this._disposed||this.handler.setCursorStyle(e)},r.prototype.findHover=function(e,t){if(!this._disposed)return this.handler.findHover(e,t)},r.prototype.on=function(e,t,a){return this._disposed||this.handler.on(e,t,a),this},r.prototype.off=function(e,t){this._disposed||this.handler.off(e,t)},r.prototype.trigger=function(e,t){this._disposed||this.handler.trigger(e,t)},r.prototype.clear=function(){if(!this._disposed){for(var e=this.storage.getRoots(),t=0;t0){if(r<=n)return o;if(r>=i)return s}else{if(r>=n)return o;if(r<=i)return s}else{if(r===n)return o;if(r===i)return s}return(r-n)/l*u+o}function W(r,e){switch(r){case"center":case"middle":r="50%";break;case"left":case"top":r="0%";break;case"right":case"bottom":r="100%";break}return Y(r)?lP(r).match(/%$/)?parseFloat(r)/100*e:parseFloat(r):r==null?NaN:+r}function Ut(r,e,t){return e==null&&(e=10),e=Math.min(Math.max(0,e),dT),r=(+r).toFixed(e),t?r:+r}function Ye(r){return r.sort(function(e,t){return e-t}),r}function br(r){if(r=+r,isNaN(r))return 0;if(r>1e-14){for(var e=1,t=0;t<15;t++,e*=10)if(Math.round(r*e)/e===r)return t}return gT(r)}function gT(r){var e=r.toString().toLowerCase(),t=e.indexOf("e"),a=t>0?+e.slice(t+1):0,n=t>0?t:e.length,i=e.indexOf("."),o=i<0?0:n-1-i;return Math.max(0,o-a)}function wg(r,e){var t=Math.log,a=Math.LN10,n=Math.floor(t(r[1]-r[0])/a),i=Math.round(t(Math.abs(e[1]-e[0]))/a),o=Math.min(Math.max(-n+i,0),20);return isFinite(o)?o:20}function uP(r,e,t){if(!r[e])return 0;var a=yT(r,t);return a[e]||0}function yT(r,e){var t=ur(r,function(c,p){return c+(isNaN(p)?0:p)},0);if(t===0)return[];for(var a=Math.pow(10,e),n=G(r,function(c){return(isNaN(c)?0:c)/t*a*100}),i=a*100,o=G(n,function(c){return Math.floor(c)}),s=ur(o,function(c,p){return c+p},0),l=G(n,function(c,p){return c-o[p]});su&&(u=l[h],f=h);++o[f],l[f]=0,++s}return G(o,function(c){return c/a})}function fP(r,e){var t=Math.max(br(r),br(e)),a=r+e;return t>dT?a:Ut(a,t)}var Wp=9007199254740991;function Tg(r){var e=Math.PI*2;return(r%e+e)%e}function uo(r){return r>-1e-4&&r=10&&e++,e}function Ag(r,e){var t=_h(r),a=Math.pow(10,t),n=r/a,i;return e?n<1.5?i=1:n<2.5?i=2:n<4?i=3:n<7?i=5:i=10:n<1?i=1:n<2?i=2:n<3?i=3:n<5?i=5:i=10,r=i*a,t>=-20?+r.toFixed(t<0?-t:0):r}function ju(r,e){var t=(r.length-1)*e+1,a=Math.floor(t),n=+r[a-1],i=t-a;return i?n+i*(r[a]-n):n}function Up(r){r.sort(function(l,u){return s(l,u,0)?-1:1});for(var e=-1/0,t=1,a=0;a=0||i&&vt(i,l)<0)){var u=a.getShallow(l,e);u!=null&&(o[r[s][0]]=u)}}return o}}var OP=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],NP=li(OP),BP=function(){function r(){}return r.prototype.getAreaStyle=function(e,t){return NP(this,e,t)},r}(),Xp=new wl(50);function VP(r){if(typeof r=="string"){var e=Xp.get(r);return e&&e.image}else return r}function Lg(r,e,t,a,n){if(r)if(typeof r=="string"){if(e&&e.__zrImageSrc===r||!t)return e;var i=Xp.get(r),o={hostEl:t,cb:a,cbPayload:n};return i?(e=i.image,!xh(e)&&i.pending.push(o)):(e=Mr.loadImage(r,o0,o0),e.__zrImageSrc=r,Xp.put(r,e.__cachedImgObj={image:e,pending:[o]})),e}else return r;else return e}function o0(){var r=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;e=o;l++)s-=o;var u=$e(t,e);return u>s&&(t="",u=0),s=r-u,n.ellipsis=t,n.ellipsisWidth=u,n.contentWidth=s,n.containerWidth=r,n}function PT(r,e,t){var a=t.containerWidth,n=t.font,i=t.contentWidth;if(!a){r.textLine="",r.isTruncated=!1;return}var o=$e(e,n);if(o<=a){r.textLine=e,r.isTruncated=!1;return}for(var s=0;;s++){if(o<=i||s>=t.maxIterations){e+=t.ellipsis;break}var l=s===0?GP(e,i,t.ascCharWidth,t.cnCharWidth):o>0?Math.floor(e.length*i/o):0;e=e.substr(0,l),o=$e(e,n)}e===""&&(e=t.placeholder),r.textLine=e,r.isTruncated=!0}function GP(r,e,t,a){for(var n=0,i=0,o=r.length;ip&&u){var d=Math.floor(p/s);f=f||v.length>d,v=v.slice(0,d)}if(r&&i&&h!=null)for(var g=LT(h,n,e.ellipsis,{minChar:e.truncateMinChar,placeholder:e.placeholder}),y={},m=0;ms&&xv(t,r.substring(s,u),e,o),xv(t,l[2],e,o,l[1]),s=Sv.lastIndex}sn){var L=t.lines.length;x>0?(_.tokens=_.tokens.slice(0,x),y(_,b,S),t.lines=t.lines.slice(0,m+1)):t.lines=t.lines.slice(0,m),t.isTruncated=t.isTruncated||t.lines.length0&&p+a.accumWidth>a.width&&(f=e.split(` +`),u=!0),a.accumWidth=p}else{var d=RT(e,l,a.width,a.breakAll,a.accumWidth);a.accumWidth=d.accumWidth+c,h=d.linesWidths,f=d.lines}}else f=e.split(` +`);for(var g=0;g=32&&e<=591||e>=880&&e<=4351||e>=4608&&e<=5119||e>=7680&&e<=8303}var XP=ur(",&?/;] ".split(""),function(r,e){return r[e]=!0,r},{});function $P(r){return YP(r)?!!XP[r]:!0}function RT(r,e,t,a,n){for(var i=[],o=[],s="",l="",u=0,f=0,h=0;ht:n+f+c>t){f?(s||l)&&(p?(s||(s=l,l="",u=0,f=u),i.push(s),o.push(f-u),l+=v,u+=c,s="",f=u):(l&&(s+=l,l="",u=0),i.push(s),o.push(f),s=v,f=c)):p?(i.push(l),o.push(u),l=v,u=c):(i.push(v),o.push(c));continue}f+=c,p?(l+=v,u+=c):(l&&(s+=l,l="",u=0),s+=v)}return!i.length&&!s&&(s=r,l="",u=0),l&&(s+=l),s&&(i.push(s),o.push(f)),i.length===1&&(f+=n),{accumWidth:f,lines:i,linesWidths:o}}var $p="__zr_style_"+Math.round(Math.random()*10),Qn={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},bh={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};Qn[$p]=!0;var l0=["z","z2","invisible"],ZP=["invisible"],fr=function(r){Ft(e,r);function e(t){return r.call(this,t)||this}return e.prototype._init=function(t){for(var a=_t(t),n=0;n1e-4){s[0]=r-t,s[1]=e-a,l[0]=r+t,l[1]=e+a;return}if(Ql[0]=Av(n)*t+r,Ql[1]=Tv(n)*a+e,tu[0]=Av(i)*t+r,tu[1]=Tv(i)*a+e,u(s,Ql,tu),f(l,Ql,tu),n=n%yn,n<0&&(n=n+yn),i=i%yn,i<0&&(i=i+yn),n>i&&!o?i+=yn:nn&&(eu[0]=Av(c)*t+r,eu[1]=Tv(c)*a+e,u(s,eu,s),f(l,eu,l))}var Ot={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},mn=[],_n=[],Er=[],Aa=[],kr=[],Or=[],Cv=Math.min,Dv=Math.max,Sn=Math.cos,xn=Math.sin,aa=Math.abs,Zp=Math.PI,Ea=Zp*2,Mv=typeof Float32Array<"u",Yo=[];function Iv(r){var e=Math.round(r/Zp*1e8)/1e8;return e%2*Zp}function Pg(r,e){var t=Iv(r[0]);t<0&&(t+=Ea);var a=t-r[0],n=r[1];n+=a,!e&&n-t>=Ea?n=t+Ea:e&&t-n>=Ea?n=t-Ea:!e&&t>n?n=t+(Ea-Iv(t-n)):e&&t0&&(this._ux=aa(a/Sf/e)||0,this._uy=aa(a/Sf/t)||0)},r.prototype.setDPR=function(e){this.dpr=e},r.prototype.setContext=function(e){this._ctx=e},r.prototype.getContext=function(){return this._ctx},r.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},r.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},r.prototype.moveTo=function(e,t){return this._drawPendingPt(),this.addData(Ot.M,e,t),this._ctx&&this._ctx.moveTo(e,t),this._x0=e,this._y0=t,this._xi=e,this._yi=t,this},r.prototype.lineTo=function(e,t){var a=aa(e-this._xi),n=aa(t-this._yi),i=a>this._ux||n>this._uy;if(this.addData(Ot.L,e,t),this._ctx&&i&&this._ctx.lineTo(e,t),i)this._xi=e,this._yi=t,this._pendingPtDist=0;else{var o=a*a+n*n;o>this._pendingPtDist&&(this._pendingPtX=e,this._pendingPtY=t,this._pendingPtDist=o)}return this},r.prototype.bezierCurveTo=function(e,t,a,n,i,o){return this._drawPendingPt(),this.addData(Ot.C,e,t,a,n,i,o),this._ctx&&this._ctx.bezierCurveTo(e,t,a,n,i,o),this._xi=i,this._yi=o,this},r.prototype.quadraticCurveTo=function(e,t,a,n){return this._drawPendingPt(),this.addData(Ot.Q,e,t,a,n),this._ctx&&this._ctx.quadraticCurveTo(e,t,a,n),this._xi=a,this._yi=n,this},r.prototype.arc=function(e,t,a,n,i,o){this._drawPendingPt(),Yo[0]=n,Yo[1]=i,Pg(Yo,o),n=Yo[0],i=Yo[1];var s=i-n;return this.addData(Ot.A,e,t,a,a,n,s,0,o?0:1),this._ctx&&this._ctx.arc(e,t,a,n,i,o),this._xi=Sn(i)*a+e,this._yi=xn(i)*a+t,this},r.prototype.arcTo=function(e,t,a,n,i){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(e,t,a,n,i),this},r.prototype.rect=function(e,t,a,n){return this._drawPendingPt(),this._ctx&&this._ctx.rect(e,t,a,n),this.addData(Ot.R,e,t,a,n),this},r.prototype.closePath=function(){this._drawPendingPt(),this.addData(Ot.Z);var e=this._ctx,t=this._x0,a=this._y0;return e&&e.closePath(),this._xi=t,this._yi=a,this},r.prototype.fill=function(e){e&&e.fill(),this.toStatic()},r.prototype.stroke=function(e){e&&e.stroke(),this.toStatic()},r.prototype.len=function(){return this._len},r.prototype.setData=function(e){var t=e.length;!(this.data&&this.data.length===t)&&Mv&&(this.data=new Float32Array(t));for(var a=0;af.length&&(this._expandData(),f=this.data);for(var h=0;h0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},r.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var e=[],t=0;t11&&(this.data=new Float32Array(e)))}},r.prototype.getBoundingRect=function(){Er[0]=Er[1]=kr[0]=kr[1]=Number.MAX_VALUE,Aa[0]=Aa[1]=Or[0]=Or[1]=-Number.MAX_VALUE;var e=this.data,t=0,a=0,n=0,i=0,o;for(o=0;oa||aa(_)>n||v===t-1)&&(d=Math.sqrt(m*m+_*_),i=g,o=y);break}case Ot.C:{var S=e[v++],b=e[v++],g=e[v++],y=e[v++],x=e[v++],w=e[v++];d=h2(i,o,S,b,g,y,x,w,10),i=x,o=w;break}case Ot.Q:{var S=e[v++],b=e[v++],g=e[v++],y=e[v++];d=c2(i,o,S,b,g,y,10),i=g,o=y;break}case Ot.A:var T=e[v++],A=e[v++],C=e[v++],M=e[v++],I=e[v++],L=e[v++],P=L+I;v+=1,p&&(s=Sn(I)*C+T,l=xn(I)*M+A),d=Dv(C,M)*Cv(Ea,Math.abs(L)),i=Sn(P)*C+T,o=xn(P)*M+A;break;case Ot.R:{s=i=e[v++],l=o=e[v++];var R=e[v++],E=e[v++];d=R*2+E*2;break}case Ot.Z:{var m=s-i,_=l-o;d=Math.sqrt(m*m+_*_),i=s,o=l;break}}d>=0&&(u[h++]=d,f+=d)}return this._pathLen=f,f},r.prototype.rebuildPath=function(e,t){var a=this.data,n=this._ux,i=this._uy,o=this._len,s,l,u,f,h,v,c=t<1,p,d,g=0,y=0,m,_=0,S,b;if(!(c&&(this._pathSegLen||this._calculateLength(),p=this._pathSegLen,d=this._pathLen,m=t*d,!m)))t:for(var x=0;x0&&(e.lineTo(S,b),_=0),w){case Ot.M:s=u=a[x++],l=f=a[x++],e.moveTo(u,f);break;case Ot.L:{h=a[x++],v=a[x++];var A=aa(h-u),C=aa(v-f);if(A>n||C>i){if(c){var M=p[y++];if(g+M>m){var I=(m-g)/M;e.lineTo(u*(1-I)+h*I,f*(1-I)+v*I);break t}g+=M}e.lineTo(h,v),u=h,f=v,_=0}else{var L=A*A+C*C;L>_&&(S=h,b=v,_=L)}break}case Ot.C:{var P=a[x++],R=a[x++],E=a[x++],O=a[x++],k=a[x++],B=a[x++];if(c){var M=p[y++];if(g+M>m){var I=(m-g)/M;Ja(u,P,E,k,I,mn),Ja(f,R,O,B,I,_n),e.bezierCurveTo(mn[1],_n[1],mn[2],_n[2],mn[3],_n[3]);break t}g+=M}e.bezierCurveTo(P,R,E,O,k,B),u=k,f=B;break}case Ot.Q:{var P=a[x++],R=a[x++],E=a[x++],O=a[x++];if(c){var M=p[y++];if(g+M>m){var I=(m-g)/M;Xs(u,P,E,I,mn),Xs(f,R,O,I,_n),e.quadraticCurveTo(mn[1],_n[1],mn[2],_n[2]);break t}g+=M}e.quadraticCurveTo(P,R,E,O),u=E,f=O;break}case Ot.A:var F=a[x++],H=a[x++],U=a[x++],j=a[x++],Q=a[x++],it=a[x++],Pt=a[x++],Yt=!a[x++],ct=U>j?U:j,et=aa(U-j)>.001,dt=Q+it,q=!1;if(c){var M=p[y++];g+M>m&&(dt=Q+it*(m-g)/M,q=!0),g+=M}if(et&&e.ellipse?e.ellipse(F,H,U,j,Pt,Q,dt,Yt):e.arc(F,H,ct,Q,dt,Yt),q)break t;T&&(s=Sn(Q)*U+F,l=xn(Q)*j+H),u=Sn(dt)*U+F,f=xn(dt)*j+H;break;case Ot.R:s=u=a[x],l=f=a[x+1],h=a[x++],v=a[x++];var ot=a[x++],Bt=a[x++];if(c){var M=p[y++];if(g+M>m){var It=m-g;e.moveTo(h,v),e.lineTo(h+Cv(It,ot),v),It-=ot,It>0&&e.lineTo(h+ot,v+Cv(It,Bt)),It-=Bt,It>0&&e.lineTo(h+Dv(ot-It,0),v+Bt),It-=ot,It>0&&e.lineTo(h,v+Dv(Bt-It,0));break t}g+=M}e.rect(h,v,ot,Bt);break;case Ot.Z:if(c){var M=p[y++];if(g+M>m){var I=(m-g)/M;e.lineTo(u*(1-I)+s*I,f*(1-I)+l*I);break t}g+=M}e.closePath(),u=s,f=l}}},r.prototype.clone=function(){var e=new r,t=this.data;return e.data=t.slice?t.slice():Array.prototype.slice.call(t),e._len=this._len,e},r.CMD=Ot,r.initDefaultProps=function(){var e=r.prototype;e._saveData=!0,e._ux=0,e._uy=0,e._pendingPtDist=0,e._version=0}(),r}();function Oa(r,e,t,a,n,i,o){if(n===0)return!1;var s=n,l=0,u=r;if(o>e+s&&o>a+s||or+s&&i>t+s||ie+h&&f>a+h&&f>i+h&&f>s+h||fr+h&&u>t+h&&u>n+h&&u>o+h||ue+u&&l>a+u&&l>i+u||lr+u&&s>t+u&&s>n+u||st||f+un&&(n+=Xo);var v=Math.atan2(l,s);return v<0&&(v+=Xo),v>=a&&v<=n||v+Xo>=a&&v+Xo<=n}function sa(r,e,t,a,n,i){if(i>e&&i>a||in?s:0}var Ca=Jr.CMD,bn=Math.PI*2,eR=1e-4;function rR(r,e){return Math.abs(r-e)e&&u>a&&u>i&&u>s||u1&&aR(),c=re(e,a,i,s,rr[0]),v>1&&(p=re(e,a,i,s,rr[1]))),v===2?ge&&s>a&&s>i||s=0&&u<=1){for(var f=0,h=ue(e,a,i,u),v=0;vt||s<-t)return 0;var l=Math.sqrt(t*t-s*s);Me[0]=-l,Me[1]=l;var u=Math.abs(a-n);if(u<1e-4)return 0;if(u>=bn-1e-4){a=0,n=bn;var f=i?1:-1;return o>=Me[0]+r&&o<=Me[1]+r?f:0}if(a>n){var h=a;a=n,n=h}a<0&&(a+=bn,n+=bn);for(var v=0,c=0;c<2;c++){var p=Me[c];if(p+r>o){var d=Math.atan2(s,p),f=i?1:-1;d<0&&(d=bn+d),(d>=a&&d<=n||d+bn>=a&&d+bn<=n)&&(d>Math.PI/2&&d1&&(t||(s+=sa(l,u,f,h,a,n))),g&&(l=i[p],u=i[p+1],f=l,h=u),d){case Ca.M:f=i[p++],h=i[p++],l=f,u=h;break;case Ca.L:if(t){if(Oa(l,u,i[p],i[p+1],e,a,n))return!0}else s+=sa(l,u,i[p],i[p+1],a,n)||0;l=i[p++],u=i[p++];break;case Ca.C:if(t){if(QP(l,u,i[p++],i[p++],i[p++],i[p++],i[p],i[p+1],e,a,n))return!0}else s+=nR(l,u,i[p++],i[p++],i[p++],i[p++],i[p],i[p+1],a,n)||0;l=i[p++],u=i[p++];break;case Ca.Q:if(t){if(ET(l,u,i[p++],i[p++],i[p],i[p+1],e,a,n))return!0}else s+=iR(l,u,i[p++],i[p++],i[p],i[p+1],a,n)||0;l=i[p++],u=i[p++];break;case Ca.A:var y=i[p++],m=i[p++],_=i[p++],S=i[p++],b=i[p++],x=i[p++];p+=1;var w=!!(1-i[p++]);v=Math.cos(b)*_+y,c=Math.sin(b)*S+m,g?(f=v,h=c):s+=sa(l,u,v,c,a,n);var T=(a-y)*S/_+y;if(t){if(tR(y,m,S,b,b+x,w,e,T,n))return!0}else s+=oR(y,m,S,b,b+x,w,T,n);l=Math.cos(b+x)*_+y,u=Math.sin(b+x)*S+m;break;case Ca.R:f=l=i[p++],h=u=i[p++];var A=i[p++],C=i[p++];if(v=f+A,c=h+C,t){if(Oa(f,h,v,h,e,a,n)||Oa(v,h,v,c,e,a,n)||Oa(v,c,f,c,e,a,n)||Oa(f,c,f,h,e,a,n))return!0}else s+=sa(v,h,v,c,a,n),s+=sa(f,c,f,h,a,n);break;case Ca.Z:if(t){if(Oa(l,u,f,h,e,a,n))return!0}else s+=sa(l,u,f,h,a,n);l=f,u=h;break}}return!t&&!rR(u,h)&&(s+=sa(l,u,f,h,a,n)||0),s!==0}function sR(r,e,t){return kT(r,0,!1,e,t)}function lR(r,e,t,a){return kT(r,e,!0,t,a)}var bf=J({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},Qn),uR={style:J({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},bh.style)},Lv=Kr.concat(["invisible","culling","z","z2","zlevel","parent"]),mt=function(r){Ft(e,r);function e(t){return r.call(this,t)||this}return e.prototype.update=function(){var t=this;r.prototype.update.call(this);var a=this.style;if(a.decal){var n=this._decalEl=this._decalEl||new e;n.buildPath===e.prototype.buildPath&&(n.buildPath=function(l){t.buildPath(l,t.shape)}),n.silent=!0;var i=n.style;for(var o in a)i[o]!==a[o]&&(i[o]=a[o]);i.fill=a.fill?a.decal:null,i.decal=null,i.shadowColor=null,a.strokeFirst&&(i.stroke=null);for(var s=0;s.5?zp:a>.2?Y2:Gp}else if(t)return Gp}return zp},e.prototype.getInsideTextStroke=function(t){var a=this.style.fill;if(Y(a)){var n=this.__zr,i=!!(n&&n.isDarkMode()),o=qs(t,0)0))},e.prototype.hasFill=function(){var t=this.style,a=t.fill;return a!=null&&a!=="none"},e.prototype.getBoundingRect=function(){var t=this._rect,a=this.style,n=!t;if(n){var i=!1;this.path||(i=!0,this.createPathProxy());var o=this.path;(i||this.__dirty&ds)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),t=o.getBoundingRect()}if(this._rect=t,this.hasStroke()&&this.path&&this.path.len()>0){var s=this._rectStroke||(this._rectStroke=t.clone());if(this.__dirty||n){s.copy(t);var l=a.strokeNoScale?this.getLineScale():1,u=a.lineWidth;if(!this.hasFill()){var f=this.strokeContainThreshold;u=Math.max(u,f??4)}l>1e-10&&(s.width+=u/l,s.height+=u/l,s.x-=u/l/2,s.y-=u/l/2)}return s}return t},e.prototype.contain=function(t,a){var n=this.transformCoordToLocal(t,a),i=this.getBoundingRect(),o=this.style;if(t=n[0],a=n[1],i.contain(t,a)){var s=this.path;if(this.hasStroke()){var l=o.lineWidth,u=o.strokeNoScale?this.getLineScale():1;if(u>1e-10&&(this.hasFill()||(l=Math.max(l,this.strokeContainThreshold)),lR(s,l/u,t,a)))return!0}if(this.hasFill())return sR(s,t,a)}return!1},e.prototype.dirtyShape=function(){this.__dirty|=ds,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},e.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},e.prototype.animateShape=function(t){return this.animate("shape",t)},e.prototype.updateDuringAnimation=function(t){t==="style"?this.dirtyStyle():t==="shape"?this.dirtyShape():this.markRedraw()},e.prototype.attrKV=function(t,a){t==="shape"?this.setShape(a):r.prototype.attrKV.call(this,t,a)},e.prototype.setShape=function(t,a){var n=this.shape;return n||(n=this.shape={}),typeof t=="string"?n[t]=a:V(n,t),this.dirtyShape(),this},e.prototype.shapeChanged=function(){return!!(this.__dirty&ds)},e.prototype.createStyle=function(t){return xl(bf,t)},e.prototype._innerSaveToNormal=function(t){r.prototype._innerSaveToNormal.call(this,t);var a=this._normalState;t.shape&&!a.shape&&(a.shape=V({},this.shape))},e.prototype._applyStateObj=function(t,a,n,i,o,s){r.prototype._applyStateObj.call(this,t,a,n,i,o,s);var l=!(a&&i),u;if(a&&a.shape?o?i?u=a.shape:(u=V({},n.shape),V(u,a.shape)):(u=V({},i?this.shape:n.shape),V(u,a.shape)):l&&(u=n.shape),u)if(o){this.shape=V({},this.shape);for(var f={},h=_t(u),v=0;v0},e.prototype.hasFill=function(){var t=this.style,a=t.fill;return a!=null&&a!=="none"},e.prototype.createStyle=function(t){return xl(fR,t)},e.prototype.setBoundingRect=function(t){this._rect=t},e.prototype.getBoundingRect=function(){var t=this.style;if(!this._rect){var a=t.text;a!=null?a+="":a="";var n=Tl(a,t.font,t.textAlign,t.textBaseline);if(n.x+=t.x||0,n.y+=t.y||0,this.hasStroke()){var i=t.lineWidth;n.x-=i/2,n.y-=i/2,n.width+=i,n.height+=i}this._rect=n}return this._rect},e.initDefaultProps=function(){var t=e.prototype;t.dirtyRectTolerance=10}(),e}(fr);fo.prototype.type="tspan";var hR=J({x:0,y:0},Qn),vR={style:J({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},bh.style)};function cR(r){return!!(r&&typeof r!="string"&&r.width&&r.height)}var le=function(r){Ft(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.createStyle=function(t){return xl(hR,t)},e.prototype._getSize=function(t){var a=this.style,n=a[t];if(n!=null)return n;var i=cR(a.image)?a.image:this.__image;if(!i)return 0;var o=t==="width"?"height":"width",s=a[o];return s==null?i[t]:i[t]/i[o]*s},e.prototype.getWidth=function(){return this._getSize("width")},e.prototype.getHeight=function(){return this._getSize("height")},e.prototype.getAnimationStyleProps=function(){return vR},e.prototype.getBoundingRect=function(){var t=this.style;return this._rect||(this._rect=new ht(t.x||0,t.y||0,this.getWidth(),this.getHeight())),this._rect},e}(fr);le.prototype.type="image";function pR(r,e){var t=e.x,a=e.y,n=e.width,i=e.height,o=e.r,s,l,u,f;n<0&&(t=t+n,n=-n),i<0&&(a=a+i,i=-i),typeof o=="number"?s=l=u=f=o:o instanceof Array?o.length===1?s=l=u=f=o[0]:o.length===2?(s=u=o[0],l=f=o[1]):o.length===3?(s=o[0],l=f=o[1],u=o[2]):(s=o[0],l=o[1],u=o[2],f=o[3]):s=l=u=f=0;var h;s+l>n&&(h=s+l,s*=n/h,l*=n/h),u+f>n&&(h=u+f,u*=n/h,f*=n/h),l+u>i&&(h=l+u,l*=i/h,u*=i/h),s+f>i&&(h=s+f,s*=i/h,f*=i/h),r.moveTo(t+s,a),r.lineTo(t+n-l,a),l!==0&&r.arc(t+n-l,a+l,l,-Math.PI/2,0),r.lineTo(t+n,a+i-u),u!==0&&r.arc(t+n-u,a+i-u,u,0,Math.PI/2),r.lineTo(t+f,a+i),f!==0&&r.arc(t+f,a+i-f,f,Math.PI/2,Math.PI),r.lineTo(t,a+s),s!==0&&r.arc(t+s,a+s,s,Math.PI,Math.PI*1.5)}var Ki=Math.round;function OT(r,e,t){if(e){var a=e.x1,n=e.x2,i=e.y1,o=e.y2;r.x1=a,r.x2=n,r.y1=i,r.y2=o;var s=t&&t.lineWidth;return s&&(Ki(a*2)===Ki(n*2)&&(r.x1=r.x2=Yn(a,s,!0)),Ki(i*2)===Ki(o*2)&&(r.y1=r.y2=Yn(i,s,!0))),r}}function NT(r,e,t){if(e){var a=e.x,n=e.y,i=e.width,o=e.height;r.x=a,r.y=n,r.width=i,r.height=o;var s=t&&t.lineWidth;return s&&(r.x=Yn(a,s,!0),r.y=Yn(n,s,!0),r.width=Math.max(Yn(a+i,s,!1)-r.x,i===0?0:1),r.height=Math.max(Yn(n+o,s,!1)-r.y,o===0?0:1)),r}}function Yn(r,e,t){if(!e)return r;var a=Ki(r*2);return(a+Ki(e))%2===0?a/2:(a+(t?1:-1))/2}var dR=function(){function r(){this.x=0,this.y=0,this.width=0,this.height=0}return r}(),gR={},xt=function(r){Ft(e,r);function e(t){return r.call(this,t)||this}return e.prototype.getDefaultShape=function(){return new dR},e.prototype.buildPath=function(t,a){var n,i,o,s;if(this.subPixelOptimize){var l=NT(gR,a,this.style);n=l.x,i=l.y,o=l.width,s=l.height,l.r=a.r,a=l}else n=a.x,i=a.y,o=a.width,s=a.height;a.r?pR(t,a):t.rect(n,i,o,s)},e.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},e}(mt);xt.prototype.type="rect";var c0={fill:"#000"},p0=2,yR={style:J({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},bh.style)},St=function(r){Ft(e,r);function e(t){var a=r.call(this)||this;return a.type="text",a._children=[],a._defaultStyle=c0,a.attr(t),a}return e.prototype.childrenRef=function(){return this._children},e.prototype.update=function(){r.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var t=0;t0,I=t.width!=null&&(t.overflow==="truncate"||t.overflow==="break"||t.overflow==="breakAll"),L=o.calculatedLineHeight,P=0;P=0&&(P=x[L],P.align==="right");)this._placeToken(P,t,T,y,I,"right",_),A-=P.width,I-=P.width,L--;for(M+=(i-(M-g)-(m-I)-A)/2;C<=L;)P=x[C],this._placeToken(P,t,T,y,M+P.width/2,"center",_),M+=P.width,C++;y+=T}},e.prototype._placeToken=function(t,a,n,i,o,s,l){var u=a.rich[t.styleName]||{};u.text=t.text;var f=t.verticalAlign,h=i+n/2;f==="top"?h=i+t.height/2:f==="bottom"&&(h=i+n-t.height/2);var v=!t.isLineHolder&&Pv(u);v&&this._renderBackground(u,a,s==="right"?o-t.width:s==="center"?o-t.width/2:o,h-t.height/2,t.width,t.height);var c=!!u.backgroundColor,p=t.textPadding;p&&(o=S0(o,s,p),h-=t.height/2-p[0]-t.innerHeight/2);var d=this._getOrCreateChild(fo),g=d.createStyle();d.useStyle(g);var y=this._defaultStyle,m=!1,_=0,S=_0("fill"in u?u.fill:"fill"in a?a.fill:(m=!0,y.fill)),b=m0("stroke"in u?u.stroke:"stroke"in a?a.stroke:!c&&!l&&(!y.autoStroke||m)?(_=p0,y.stroke):null),x=u.textShadowBlur>0||a.textShadowBlur>0;g.text=t.text,g.x=o,g.y=h,x&&(g.shadowBlur=u.textShadowBlur||a.textShadowBlur||0,g.shadowColor=u.textShadowColor||a.textShadowColor||"transparent",g.shadowOffsetX=u.textShadowOffsetX||a.textShadowOffsetX||0,g.shadowOffsetY=u.textShadowOffsetY||a.textShadowOffsetY||0),g.textAlign=s,g.textBaseline="middle",g.font=t.font||ja,g.opacity=Tr(u.opacity,a.opacity,1),g0(g,u),b&&(g.lineWidth=Tr(u.lineWidth,a.lineWidth,_),g.lineDash=st(u.lineDash,a.lineDash),g.lineDashOffset=a.lineDashOffset||0,g.stroke=b),S&&(g.fill=S);var w=t.contentWidth,T=t.contentHeight;d.setBoundingRect(new ht(ys(g.x,w,g.textAlign),Yi(g.y,T,g.textBaseline),w,T))},e.prototype._renderBackground=function(t,a,n,i,o,s){var l=t.backgroundColor,u=t.borderWidth,f=t.borderColor,h=l&&l.image,v=l&&!h,c=t.borderRadius,p=this,d,g;if(v||t.lineHeight||u&&f){d=this._getOrCreateChild(xt),d.useStyle(d.createStyle()),d.style.fill=null;var y=d.shape;y.x=n,y.y=i,y.width=o,y.height=s,y.r=c,d.dirtyShape()}if(v){var m=d.style;m.fill=l||null,m.fillOpacity=st(t.fillOpacity,1)}else if(h){g=this._getOrCreateChild(le),g.onload=function(){p.dirtyStyle()};var _=g.style;_.image=l.image,_.x=n,_.y=i,_.width=o,_.height=s}if(u&&f){var m=d.style;m.lineWidth=u,m.stroke=f,m.strokeOpacity=st(t.strokeOpacity,1),m.lineDash=t.borderDash,m.lineDashOffset=t.borderDashOffset||0,d.strokeContainThreshold=0,d.hasFill()&&d.hasStroke()&&(m.strokeFirst=!0,m.lineWidth*=2)}var S=(d||g).style;S.shadowBlur=t.shadowBlur||0,S.shadowColor=t.shadowColor||"transparent",S.shadowOffsetX=t.shadowOffsetX||0,S.shadowOffsetY=t.shadowOffsetY||0,S.opacity=Tr(t.opacity,a.opacity,1)},e.makeFont=function(t){var a="";return VT(t)&&(a=[t.fontStyle,t.fontWeight,BT(t.fontSize),t.fontFamily||"sans-serif"].join(" ")),a&&sr(a)||t.textFont||t.font},e}(fr),mR={left:!0,right:1,center:1},_R={top:1,bottom:1,middle:1},d0=["fontStyle","fontWeight","fontSize","fontFamily"];function BT(r){return typeof r=="string"&&(r.indexOf("px")!==-1||r.indexOf("rem")!==-1||r.indexOf("em")!==-1)?r:isNaN(+r)?hg+"px":r+"px"}function g0(r,e){for(var t=0;t=0,i=!1;if(r instanceof mt){var o=zT(r),s=n&&o.selectFill||o.normalFill,l=n&&o.selectStroke||o.normalStroke;if(Di(s)||Di(l)){a=a||{};var u=a.style||{};u.fill==="inherit"?(i=!0,a=V({},a),u=V({},u),u.fill=s):!Di(u.fill)&&Di(s)?(i=!0,a=V({},a),u=V({},u),u.fill=mf(s)):!Di(u.stroke)&&Di(l)&&(i||(a=V({},a),u=V({},u)),u.stroke=mf(l)),a.style=u}}if(a&&a.z2==null){i||(a=V({},a));var f=r.z2EmphasisLift;a.z2=r.z2+(f??bo)}return a}function CR(r,e,t){if(t&&t.z2==null){t=V({},t);var a=r.z2SelectLift;t.z2=r.z2+(a??xR)}return t}function DR(r,e,t){var a=vt(r.currentStates,e)>=0,n=r.style.opacity,i=a?null:TR(r,["opacity"],e,{opacity:1});t=t||{};var o=t.style||{};return o.opacity==null&&(t=V({},t),o=V({opacity:a?n:i.opacity*.1},o),t.style=o),t}function Rv(r,e){var t=this.states[r];if(this.style){if(r==="emphasis")return AR(this,r,e,t);if(r==="blur")return DR(this,r,t);if(r==="select")return CR(this,r,t)}return t}function ui(r){r.stateProxy=Rv;var e=r.getTextContent(),t=r.getTextGuideLine();e&&(e.stateProxy=Rv),t&&(t.stateProxy=Rv)}function A0(r,e){!XT(r,e)&&!r.__highByOuter&&wa(r,GT)}function C0(r,e){!XT(r,e)&&!r.__highByOuter&&wa(r,FT)}function ga(r,e){r.__highByOuter|=1<<(e||0),wa(r,GT)}function ya(r,e){!(r.__highByOuter&=~(1<<(e||0)))&&wa(r,FT)}function WT(r){wa(r,kg)}function Og(r){wa(r,HT)}function UT(r){wa(r,bR)}function YT(r){wa(r,wR)}function XT(r,e){return r.__highDownSilentOnTouch&&e.zrByTouch}function $T(r){var e=r.getModel(),t=[],a=[];e.eachComponent(function(n,i){var o=Rg(i),s=n==="series",l=s?r.getViewOfSeriesModel(i):r.getViewOfComponentModel(i);!s&&a.push(l),o.isBlured&&(l.group.traverse(function(u){HT(u)}),s&&t.push(i)),o.isBlured=!1}),D(a,function(n){n&&n.toggleBlurSeries&&n.toggleBlurSeries(t,!1,e)})}function Kp(r,e,t,a){var n=a.getModel();t=t||"coordinateSystem";function i(u,f){for(var h=0;h0){var s={dataIndex:o,seriesIndex:t.seriesIndex};i!=null&&(s.dataType=i),e.push(s)}})}),e}function Xa(r,e,t){Xn(r,!0),wa(r,ui),Jp(r,e,t)}function ER(r){Xn(r,!1)}function Wt(r,e,t,a){a?ER(r):Xa(r,e,t)}function Jp(r,e,t){var a=nt(r);e!=null?(a.focus=e,a.blurScope=t):a.focus&&(a.focus=null)}var M0=["emphasis","blur","select"],kR={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function ce(r,e,t,a){t=t||"itemStyle";for(var n=0;n1&&(o*=Ev(p),s*=Ev(p));var d=(n===i?-1:1)*Ev((o*o*(s*s)-o*o*(c*c)-s*s*(v*v))/(o*o*(c*c)+s*s*(v*v)))||0,g=d*o*c/s,y=d*-s*v/o,m=(r+t)/2+au(h)*g-ru(h)*y,_=(e+a)/2+ru(h)*g+au(h)*y,S=R0([1,0],[(v-g)/o,(c-y)/s]),b=[(v-g)/o,(c-y)/s],x=[(-1*v-g)/o,(-1*c-y)/s],w=R0(b,x);if(td(b,x)<=-1&&(w=$o),td(b,x)>=1&&(w=0),w<0){var T=Math.round(w/$o*1e6)/1e6;w=$o*2+T%2*$o}f.addData(u,m,_,o,s,S,w,h,i)}var GR=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,FR=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function HR(r){var e=new Jr;if(!r)return e;var t=0,a=0,n=t,i=a,o,s=Jr.CMD,l=r.match(GR);if(!l)return e;for(var u=0;uP*P+R*R&&(T=C,A=M),{cx:T,cy:A,x0:-f,y0:-h,x1:T*(n/b-1),y1:A*(n/b-1)}}function qR(r){var e;if(z(r)){var t=r.length;if(!t)return r;t===1?e=[r[0],r[0],0,0]:t===2?e=[r[0],r[0],r[1],r[1]]:t===3?e=r.concat(r[2]):e=r}else e=[r,r,r,r];return e}function KR(r,e){var t,a=ms(e.r,0),n=ms(e.r0||0,0),i=a>0,o=n>0;if(!(!i&&!o)){if(i||(a=n,n=0),n>a){var s=a;a=n,n=s}var l=e.startAngle,u=e.endAngle;if(!(isNaN(l)||isNaN(u))){var f=e.cx,h=e.cy,v=!!e.clockwise,c=k0(u-l),p=c>kv&&c%kv;if(p>mr&&(c=p),!(a>mr))r.moveTo(f,h);else if(c>kv-mr)r.moveTo(f+a*Ii(l),h+a*wn(l)),r.arc(f,h,a,l,u,!v),n>mr&&(r.moveTo(f+n*Ii(u),h+n*wn(u)),r.arc(f,h,n,u,l,v));else{var d=void 0,g=void 0,y=void 0,m=void 0,_=void 0,S=void 0,b=void 0,x=void 0,w=void 0,T=void 0,A=void 0,C=void 0,M=void 0,I=void 0,L=void 0,P=void 0,R=a*Ii(l),E=a*wn(l),O=n*Ii(u),k=n*wn(u),B=c>mr;if(B){var F=e.cornerRadius;F&&(t=qR(F),d=t[0],g=t[1],y=t[2],m=t[3]);var H=k0(a-n)/2;if(_=Nr(H,y),S=Nr(H,m),b=Nr(H,d),x=Nr(H,g),A=w=ms(_,S),C=T=ms(b,x),(w>mr||T>mr)&&(M=a*Ii(u),I=a*wn(u),L=n*Ii(l),P=n*wn(l),cmr){var et=Nr(y,A),dt=Nr(m,A),q=nu(L,P,R,E,a,et,v),ot=nu(M,I,O,k,a,dt,v);r.moveTo(f+q.cx+q.x0,h+q.cy+q.y0),A0&&r.arc(f+q.cx,h+q.cy,et,de(q.y0,q.x0),de(q.y1,q.x1),!v),r.arc(f,h,a,de(q.cy+q.y1,q.cx+q.x1),de(ot.cy+ot.y1,ot.cx+ot.x1),!v),dt>0&&r.arc(f+ot.cx,h+ot.cy,dt,de(ot.y1,ot.x1),de(ot.y0,ot.x0),!v))}else r.moveTo(f+R,h+E),r.arc(f,h,a,l,u,!v);if(!(n>mr)||!B)r.lineTo(f+O,h+k);else if(C>mr){var et=Nr(d,C),dt=Nr(g,C),q=nu(O,k,M,I,n,-dt,v),ot=nu(R,E,L,P,n,-et,v);r.lineTo(f+q.cx+q.x0,h+q.cy+q.y0),C0&&r.arc(f+q.cx,h+q.cy,dt,de(q.y0,q.x0),de(q.y1,q.x1),!v),r.arc(f,h,n,de(q.cy+q.y1,q.cx+q.x1),de(ot.cy+ot.y1,ot.cx+ot.x1),v),et>0&&r.arc(f+ot.cx,h+ot.cy,et,de(ot.y1,ot.x1),de(ot.y0,ot.x0),!v))}else r.lineTo(f+O,h+k),r.arc(f,h,n,u,l,v)}r.closePath()}}}var jR=function(){function r(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0,this.cornerRadius=0}return r}(),we=function(r){Ft(e,r);function e(t){return r.call(this,t)||this}return e.prototype.getDefaultShape=function(){return new jR},e.prototype.buildPath=function(t,a){KR(t,a)},e.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},e}(mt);we.prototype.type="sector";var JR=function(){function r(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return r}(),wo=function(r){Ft(e,r);function e(t){return r.call(this,t)||this}return e.prototype.getDefaultShape=function(){return new JR},e.prototype.buildPath=function(t,a){var n=a.cx,i=a.cy,o=Math.PI*2;t.moveTo(n+a.r,i),t.arc(n,i,a.r,0,o,!1),t.moveTo(n+a.r0,i),t.arc(n,i,a.r0,0,o,!0)},e}(mt);wo.prototype.type="ring";function QR(r,e,t,a){var n=[],i=[],o=[],s=[],l,u,f,h;if(a){f=[1/0,1/0],h=[-1/0,-1/0];for(var v=0,c=r.length;v=2){if(a){var i=QR(n,a,t,e.smoothConstraint);r.moveTo(n[0][0],n[0][1]);for(var o=n.length,s=0;s<(t?o:o-1);s++){var l=i[s*2],u=i[s*2+1],f=n[(s+1)%o];r.bezierCurveTo(l[0],l[1],u[0],u[1],f[0],f[1])}}else{r.moveTo(n[0][0],n[0][1]);for(var s=1,h=n.length;sAn[1]){if(s=!1,i)return s;var f=Math.abs(An[0]-Tn[1]),h=Math.abs(Tn[0]-An[1]);Math.min(f,h)>n.len()&&(f0){var h=f.duration,v=f.delay,c=f.easing,p={duration:h,delay:v||0,easing:c,done:i,force:!!i||!!o,setToFinal:!u,scope:r,during:o};s?e.animateFrom(t,p):e.animateTo(t,p)}else e.stopAnimation(),!s&&e.attr(t),o&&o(1),i&&i()}function Tt(r,e,t,a,n,i){zg("update",r,e,t,a,n,i)}function Gt(r,e,t,a,n,i){zg("enter",r,e,t,a,n,i)}function ro(r){if(!r.__zr)return!0;for(var e=0;eMath.abs(i[1])?i[0]>0?"right":"left":i[1]>0?"bottom":"top"}function B0(r){return!r.isGroup}function fE(r){return r.shape!=null}function Ll(r,e,t){if(!r||!e)return;function a(o){var s={};return o.traverse(function(l){B0(l)&&l.anid&&(s[l.anid]=l)}),s}function n(o){var s={x:o.x,y:o.y,rotation:o.rotation};return fE(o)&&(s.shape=V({},o.shape)),s}var i=a(r);e.traverse(function(o){if(B0(o)&&o.anid){var s=i[o.anid];if(s){var l=n(o);o.attr(n(s)),Tt(o,l,t,nt(o).dataIndex)}}})}function Hg(r,e){return G(r,function(t){var a=t[0];a=Af(a,e.x),a=Cf(a,e.x+e.width);var n=t[1];return n=Af(n,e.y),n=Cf(n,e.y+e.height),[a,n]})}function sA(r,e){var t=Af(r.x,e.x),a=Cf(r.x+r.width,e.x+e.width),n=Af(r.y,e.y),i=Cf(r.y+r.height,e.y+e.height);if(a>=t&&i>=n)return{x:t,y:n,width:a-t,height:i-n}}function Do(r,e,t){var a=V({rectHover:!0},e),n=a.style={strokeNoScale:!0};if(t=t||{x:-1,y:-1,width:2,height:2},r)return r.indexOf("image://")===0?(n.image=r.slice(8),J(n,t),new le(a)):Il(r.replace("path://",""),a,t,"center")}function _s(r,e,t,a,n){for(var i=0,o=n[n.length-1];i1)return!1;var g=Ov(c,p,f,h)/v;return!(g<0||g>1)}function Ov(r,e,t,a){return r*a-t*e}function hE(r){return r<=1e-6&&r>=-1e-6}function gi(r){var e=r.itemTooltipOption,t=r.componentModel,a=r.itemName,n=Y(e)?{formatter:e}:e,i=t.mainType,o=t.componentIndex,s={componentType:i,name:a,$vars:["name"]};s[i+"Index"]=o;var l=r.formatterParamsExtra;l&&D(_t(l),function(f){$(s,f)||(s[f]=l[f],s.$vars.push(f))});var u=nt(r.el);u.componentMainType=i,u.componentIndex=o,u.tooltipConfig={name:a,option:J({content:a,encodeHTMLContent:!0,formatterParams:s},n)}}function V0(r,e){var t;r.isGroup&&(t=e(r)),t||r.traverse(e)}function on(r,e){if(r)if(z(r))for(var t=0;t=0&&s.push(l)}),s}}function sn(r,e){return ut(ut({},r,!0),e,!0)}const wE={time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst",custom:"Custom chart",chart:"Chart"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}},TE={time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图",custom:"自定义图表",chart:"图表"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}};var Mf="ZH",Ug="EN",ao=Ug,ef={},Yg={},pA=yt.domSupported?function(){var r=(document.documentElement.lang||navigator.language||navigator.browserLanguage||ao).toUpperCase();return r.indexOf(Mf)>-1?Mf:ao}():ao;function Xg(r,e){r=r.toUpperCase(),Yg[r]=new Ct(e),ef[r]=e}function AE(r){if(Y(r)){var e=ef[r.toUpperCase()]||{};return r===Mf||r===Ug?rt(e):ut(rt(e),rt(ef[ao]),!1)}else return ut(rt(r),rt(ef[ao]),!1)}function ad(r){return Yg[r]}function CE(){return Yg[ao]}Xg(Ug,wE);Xg(Mf,TE);var $g=1e3,Zg=$g*60,Vs=Zg*60,or=Vs*24,W0=or*365,Ss={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},su="{yyyy}-{MM}-{dd}",U0={year:"{yyyy}",month:"{yyyy}-{MM}",day:su,hour:su+" "+Ss.hour,minute:su+" "+Ss.minute,second:su+" "+Ss.second,millisecond:Ss.none},Vv=["year","month","day","hour","minute","second","millisecond"],dA=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Ie(r,e){return r+="","0000".substr(0,e-r.length)+r}function no(r){switch(r){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return r}}function DE(r){return r===no(r)}function ME(r){switch(r){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function Pl(r,e,t,a){var n=Ze(r),i=n[qg(t)](),o=n[io(t)]()+1,s=Math.floor((o-1)/3)+1,l=n[Lh(t)](),u=n["get"+(t?"UTC":"")+"Day"](),f=n[el(t)](),h=(f-1)%12+1,v=n[Ph(t)](),c=n[Rh(t)](),p=n[Eh(t)](),d=f>=12?"pm":"am",g=d.toUpperCase(),y=a instanceof Ct?a:ad(a||pA)||CE(),m=y.getModel("time"),_=m.get("month"),S=m.get("monthAbbr"),b=m.get("dayOfWeek"),x=m.get("dayOfWeekAbbr");return(e||"").replace(/{a}/g,d+"").replace(/{A}/g,g+"").replace(/{yyyy}/g,i+"").replace(/{yy}/g,Ie(i%100+"",2)).replace(/{Q}/g,s+"").replace(/{MMMM}/g,_[o-1]).replace(/{MMM}/g,S[o-1]).replace(/{MM}/g,Ie(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,Ie(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,b[u]).replace(/{ee}/g,x[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Ie(f,2)).replace(/{H}/g,f+"").replace(/{hh}/g,Ie(h+"",2)).replace(/{h}/g,h+"").replace(/{mm}/g,Ie(v,2)).replace(/{m}/g,v+"").replace(/{ss}/g,Ie(c,2)).replace(/{s}/g,c+"").replace(/{SSS}/g,Ie(p,3)).replace(/{S}/g,p+"")}function IE(r,e,t,a,n){var i=null;if(Y(t))i=t;else if(K(t))i=t(r.value,e,{level:r.level});else{var o=V({},Ss);if(r.level>0)for(var s=0;s=0;--s)if(l[u]){i=l[u];break}i=i||o.none}if(z(i)){var h=r.level==null?0:r.level>=0?r.level:i.length+r.level;h=Math.min(h,i.length-1),i=i[h]}}return Pl(new Date(r.value),i,n,a)}function gA(r,e){var t=Ze(r),a=t[io(e)]()+1,n=t[Lh(e)](),i=t[el(e)](),o=t[Ph(e)](),s=t[Rh(e)](),l=t[Eh(e)](),u=l===0,f=u&&s===0,h=f&&o===0,v=h&&i===0,c=v&&n===1,p=c&&a===1;return p?"year":c?"month":v?"day":h?"hour":f?"minute":u?"second":"millisecond"}function Y0(r,e,t){var a=wt(r)?Ze(r):r;switch(e=e||gA(r,t),e){case"year":return a[qg(t)]();case"half-year":return a[io(t)]()>=6?1:0;case"quarter":return Math.floor((a[io(t)]()+1)/4);case"month":return a[io(t)]();case"day":return a[Lh(t)]();case"half-day":return a[el(t)]()/24;case"hour":return a[el(t)]();case"minute":return a[Ph(t)]();case"second":return a[Rh(t)]();case"millisecond":return a[Eh(t)]()}}function qg(r){return r?"getUTCFullYear":"getFullYear"}function io(r){return r?"getUTCMonth":"getMonth"}function Lh(r){return r?"getUTCDate":"getDate"}function el(r){return r?"getUTCHours":"getHours"}function Ph(r){return r?"getUTCMinutes":"getMinutes"}function Rh(r){return r?"getUTCSeconds":"getSeconds"}function Eh(r){return r?"getUTCMilliseconds":"getMilliseconds"}function LE(r){return r?"setUTCFullYear":"setFullYear"}function yA(r){return r?"setUTCMonth":"setMonth"}function mA(r){return r?"setUTCDate":"setDate"}function _A(r){return r?"setUTCHours":"setHours"}function SA(r){return r?"setUTCMinutes":"setMinutes"}function xA(r){return r?"setUTCSeconds":"setSeconds"}function bA(r){return r?"setUTCMilliseconds":"setMilliseconds"}function PE(r,e,t,a,n,i,o,s){var l=new St({style:{text:r,font:e,align:t,verticalAlign:a,padding:n,rich:i,overflow:o?"truncate":null,lineHeight:s}});return l.getBoundingRect()}function Kg(r){if(!Cg(r))return Y(r)?r:"-";var e=(r+"").split(".");return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:"")}function jg(r,e){return r=(r||"").toLowerCase().replace(/-(.)/g,function(t,a){return a.toUpperCase()}),e&&r&&(r=r.charAt(0).toUpperCase()+r.slice(1)),r}var mi=ch;function nd(r,e,t){var a="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function n(f){return f&&sr(f)?f:"-"}function i(f){return!!(f!=null&&!isNaN(f)&&isFinite(f))}var o=e==="time",s=r instanceof Date;if(o||s){var l=o?Ze(r):r;if(isNaN(+l)){if(s)return"-"}else return Pl(l,a,t)}if(e==="ordinal")return vf(r)?n(r):wt(r)&&i(r)?r+"":"-";var u=jr(r);return i(u)?Kg(u):vf(r)?n(r):typeof r=="boolean"?r+"":"-"}var X0=["a","b","c","d","e","f","g"],zv=function(r,e){return"{"+r+(e??"")+"}"};function Jg(r,e,t){z(e)||(e=[e]);var a=e.length;if(!a)return"";for(var n=e[0].$vars||[],i=0;i':'';var o=t.markerId||"markerX";return{renderMode:i,content:"{"+o+"|} ",style:n==="subItem"?{width:4,height:4,borderRadius:2,backgroundColor:a}:{width:10,height:10,borderRadius:5,backgroundColor:a}}}function EE(r,e,t){(r==="week"||r==="month"||r==="quarter"||r==="half-year"||r==="year")&&(r=`MM-dd +yyyy`);var a=Ze(e),n=t?"getUTC":"get",i=a[n+"FullYear"](),o=a[n+"Month"]()+1,s=a[n+"Date"](),l=a[n+"Hours"](),u=a[n+"Minutes"](),f=a[n+"Seconds"](),h=a[n+"Milliseconds"]();return r=r.replace("MM",Ie(o,2)).replace("M",o).replace("yyyy",i).replace("yy",Ie(i%100+"",2)).replace("dd",Ie(s,2)).replace("d",s).replace("hh",Ie(l,2)).replace("h",l).replace("mm",Ie(u,2)).replace("m",u).replace("ss",Ie(f,2)).replace("s",f).replace("SSS",Ie(h,3)),r}function kE(r){return r&&r.charAt(0).toUpperCase()+r.substr(1)}function fi(r,e){return e=e||"transparent",Y(r)?r:tt(r)&&r.colorStops&&(r.colorStops[0]||{}).color||e}function If(r,e){if(e==="_blank"||e==="blank"){var t=window.open();t.opener=null,t.location.href=r}else window.open(r,e)}var rf=D,TA=["left","right","top","bottom","width","height"],$n=[["width","left","right"],["height","top","bottom"]];function Qg(r,e,t,a,n){var i=0,o=0;a==null&&(a=1/0),n==null&&(n=1/0);var s=0;e.eachChild(function(l,u){var f=l.getBoundingRect(),h=e.childAt(u+1),v=h&&h.getBoundingRect(),c,p;if(r==="horizontal"){var d=f.width+(v?-v.x+f.x:0);c=i+d,c>a||l.newline?(i=0,c=d,o+=s+t,s=f.height):s=Math.max(s,f.height)}else{var g=f.height+(v?-v.y+f.y:0);p=o+g,p>n||l.newline?(i+=s+t,o=0,p=g,s=f.width):s=Math.max(s,f.width)}l.newline||(l.x=i,l.y=o,l.markRedraw(),r==="horizontal"?i=c+t:o=p+t)})}var ei=Qg;lt(Qg,"vertical");lt(Qg,"horizontal");function OE(r,e,t){var a=e.width,n=e.height,i=W(r.left,a),o=W(r.top,n),s=W(r.right,a),l=W(r.bottom,n);return(isNaN(i)||isNaN(parseFloat(r.left)))&&(i=0),(isNaN(s)||isNaN(parseFloat(r.right)))&&(s=a),(isNaN(o)||isNaN(parseFloat(r.top)))&&(o=0),(isNaN(l)||isNaN(parseFloat(r.bottom)))&&(l=n),t=mi(t||0),{width:Math.max(s-i-t[1]-t[3],0),height:Math.max(l-o-t[0]-t[2],0)}}function Jt(r,e,t){t=mi(t||0);var a=e.width,n=e.height,i=W(r.left,a),o=W(r.top,n),s=W(r.right,a),l=W(r.bottom,n),u=W(r.width,a),f=W(r.height,n),h=t[2]+t[0],v=t[1]+t[3],c=r.aspect;switch(isNaN(u)&&(u=a-s-v-i),isNaN(f)&&(f=n-l-h-o),c!=null&&(isNaN(u)&&isNaN(f)&&(c>a/n?u=a*.8:f=n*.8),isNaN(u)&&(u=c*f),isNaN(f)&&(f=u/c)),isNaN(i)&&(i=a-s-u-v),isNaN(o)&&(o=n-l-f-h),r.left||r.right){case"center":i=a/2-u/2-t[3];break;case"right":i=a-u-v;break}switch(r.top||r.bottom){case"middle":case"center":o=n/2-f/2-t[0];break;case"bottom":o=n-f-h;break}i=i||0,o=o||0,isNaN(u)&&(u=a-v-i-(s||0)),isNaN(f)&&(f=n-h-o-(l||0));var p=new ht(i+t[3],o+t[0],u,f);return p.margin=t,p}function kh(r,e,t,a,n,i){var o=!n||!n.hv||n.hv[0],s=!n||!n.hv||n.hv[1],l=n&&n.boundingMode||"all";if(i=i||r,i.x=r.x,i.y=r.y,!o&&!s)return!1;var u;if(l==="raw")u=r.type==="group"?new ht(0,0,+e.width||0,+e.height||0):r.getBoundingRect();else if(u=r.getBoundingRect(),r.needLocalTransform()){var f=r.getLocalTransform();u=u.clone(),u.applyTransform(f)}var h=Jt(J({width:u.width,height:u.height},e),t,a),v=o?h.x-u.x:0,c=s?h.y-u.y:0;return l==="raw"?(i.x=v,i.y=c):(i.x+=v,i.y+=c),i===r&&r.markRedraw(),!0}function NE(r,e){return r[$n[e][0]]!=null||r[$n[e][1]]!=null&&r[$n[e][2]]!=null}function rl(r){var e=r.layoutMode||r.constructor.layoutMode;return tt(e)?e:e?{type:e}:null}function tn(r,e,t){var a=t&&t.ignoreSize;!z(a)&&(a=[a,a]);var n=o($n[0],0),i=o($n[1],1);u($n[0],r,n),u($n[1],r,i);function o(f,h){var v={},c=0,p={},d=0,g=2;if(rf(f,function(_){p[_]=r[_]}),rf(f,function(_){s(e,_)&&(v[_]=p[_]=e[_]),l(v,_)&&c++,l(p,_)&&d++}),a[h])return l(e,f[1])?p[f[2]]=null:l(e,f[2])&&(p[f[1]]=null),p;if(d===g||!c)return p;if(c>=g)return v;for(var y=0;y=0;l--)s=ut(s,n[l],!0);a.defaultOption=s}return a.defaultOption},e.prototype.getReferringComponents=function(t,a){var n=t+"Index",i=t+"Id";return Al(this.ecModel,t,{index:this.get(n,!0),id:this.get(i,!0)},a)},e.prototype.getBoxLayoutParams=function(){var t=this;return{left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")}},e.prototype.getZLevelKey=function(){return""},e.prototype.setZLevel=function(t){this.option.zlevel=t},e.protoInitialize=function(){var t=e.prototype;t.type="component",t.id="",t.name="",t.mainType="",t.subType="",t.componentIndex=0}(),e}(Ct);MT(gt,Ct);Sh(gt);xE(gt);bE(gt,VE);function VE(r){var e=[];return D(gt.getClassesByMainType(r),function(t){e=e.concat(t.dependencies||t.prototype.dependencies||[])}),e=G(e,function(t){return Wr(t).main}),r!=="dataset"&&vt(e,"dataset")<=0&&e.unshift("dataset"),e}var CA="";typeof navigator<"u"&&(CA=navigator.platform||"");var Li="rgba(0, 0, 0, 0.2)";const zE={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:Li,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:Li,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:Li,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:Li,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:Li,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:Li,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:CA.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1};var DA=Z(["tooltip","label","itemName","itemId","itemGroupId","itemChildGroupId","seriesName"]),cr="original",Ae="arrayRows",pr="objectRows",ta="keyedColumns",Za="typedArray",MA="unknown",qr="column",Po="row",he={Must:1,Might:2,Not:3},IA=bt();function GE(r){IA(r).datasetMap=Z()}function LA(r,e,t){var a={},n=ey(e);if(!n||!r)return a;var i=[],o=[],s=e.ecModel,l=IA(s).datasetMap,u=n.uid+"_"+t.seriesLayoutBy,f,h;r=r.slice(),D(r,function(d,g){var y=tt(d)?d:r[g]={name:d};y.type==="ordinal"&&f==null&&(f=g,h=p(y)),a[y.name]=[]});var v=l.get(u)||l.set(u,{categoryWayDim:h,valueWayDim:0});D(r,function(d,g){var y=d.name,m=p(d);if(f==null){var _=v.valueWayDim;c(a[y],_,m),c(o,_,m),v.valueWayDim+=m}else if(f===g)c(a[y],0,m),c(i,0,m);else{var _=v.categoryWayDim;c(a[y],_,m),c(o,_,m),v.categoryWayDim+=m}});function c(d,g,y){for(var m=0;me)return r[a];return r[t-1]}function EA(r,e,t,a,n,i,o){i=i||r;var s=e(i),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(n))return u[n];var f=o==null||!a?t:YE(a,o);if(f=f||t,!(!f||!f.length)){var h=f[l];return n&&(u[n]=h),s.paletteIdx=(l+1)%f.length,h}}function XE(r,e){e(r).paletteIdx=0,e(r).paletteNameMap={}}var lu,Zo,Z0,q0="\0_ec_inner",$E=1,ay=function(r){N(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.init=function(t,a,n,i,o,s){i=i||{},this.option=null,this._theme=new Ct(i),this._locale=new Ct(o),this._optionManager=s},e.prototype.setOption=function(t,a,n){var i=J0(a);this._optionManager.setOption(t,n,i),this._resetOption(null,i)},e.prototype.resetOption=function(t,a){return this._resetOption(t,J0(a))},e.prototype._resetOption=function(t,a){var n=!1,i=this._optionManager;if(!t||t==="recreate"){var o=i.mountOption(t==="recreate");!this.option||t==="recreate"?Z0(this,o):(this.restoreData(),this._mergeOption(o,a)),n=!0}if((t==="timeline"||t==="media")&&this.restoreData(),!t||t==="recreate"||t==="timeline"){var s=i.getTimelineOption(this);s&&(n=!0,this._mergeOption(s,a))}if(!t||t==="recreate"||t==="media"){var l=i.getMediaOption(this);l.length&&D(l,function(u){n=!0,this._mergeOption(u,a)},this)}return n},e.prototype.mergeOption=function(t){this._mergeOption(t,null)},e.prototype._mergeOption=function(t,a){var n=this.option,i=this._componentsMap,o=this._componentsCount,s=[],l=Z(),u=a&&a.replaceMergeMainTypeMap;GE(this),D(t,function(h,v){h!=null&&(gt.hasClass(v)?v&&(s.push(v),l.set(v,!0)):n[v]=n[v]==null?rt(h):ut(n[v],h,!0))}),u&&u.each(function(h,v){gt.hasClass(v)&&!l.get(v)&&(s.push(v),l.set(v,!0))}),gt.topologicalTravel(s,gt.getAllClassMainTypes(),f,this);function f(h){var v=WE(this,h,Rt(t[h])),c=i.get(h),p=c?u&&u.get(h)?"replaceMerge":"normalMerge":"replaceAll",d=wT(c,v,p);SP(d,h,gt),n[h]=null,i.set(h,null),o.set(h,0);var g=[],y=[],m=0,_;D(d,function(S,b){var x=S.existing,w=S.newOption;if(!w)x&&(x.mergeOption({},this),x.optionUpdated({},!1));else{var T=h==="series",A=gt.getClass(h,S.keyInfo.subType,!T);if(!A)return;if(h==="tooltip"){if(_)return;_=!0}if(x&&x.constructor===A)x.name=S.keyInfo.name,x.mergeOption(w,this),x.optionUpdated(w,!1);else{var C=V({componentIndex:b},S.keyInfo);x=new A(w,this,this,C),V(x,C),S.brandNew&&(x.__requireNewView=!0),x.init(w,this,this),x.optionUpdated(null,!0)}}x?(g.push(x.option),y.push(x),m++):(g.push(void 0),y.push(void 0))},this),n[h]=g,i.set(h,y),o.set(h,m),h==="series"&&lu(this)}this._seriesIndices||lu(this)},e.prototype.getOption=function(){var t=rt(this.option);return D(t,function(a,n){if(gt.hasClass(n)){for(var i=Rt(a),o=i.length,s=!1,l=o-1;l>=0;l--)i[l]&&!js(i[l])?s=!0:(i[l]=null,!s&&o--);i.length=o,t[n]=i}}),delete t[q0],t},e.prototype.getTheme=function(){return this._theme},e.prototype.getLocaleModel=function(){return this._locale},e.prototype.setUpdatePayload=function(t){this._payload=t},e.prototype.getUpdatePayload=function(){return this._payload},e.prototype.getComponent=function(t,a){var n=this._componentsMap.get(t);if(n){var i=n[a||0];if(i)return i;if(a==null){for(var o=0;o=e:t==="max"?r<=e:r===e}function rk(r,e){return r.join(",")===e.join(",")}var gr=D,al=tt,Q0=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function Fv(r){var e=r&&r.itemStyle;if(e)for(var t=0,a=Q0.length;t=0;g--){var y=r[g];if(s||(p=y.data.rawIndexOf(y.stackedByDimension,c)),p>=0){var m=y.data.getByRawIndex(y.stackResultDimension,p);if(l==="all"||l==="positive"&&m>0||l==="negative"&&m<0||l==="samesign"&&v>=0&&m>0||l==="samesign"&&v<=0&&m<0){v=fP(v,m),d=m;break}}}return a[0]=v,a[1]=d,a})})}var Oh=function(){function r(e){this.data=e.data||(e.sourceFormat===ta?{}:[]),this.sourceFormat=e.sourceFormat||MA,this.seriesLayoutBy=e.seriesLayoutBy||qr,this.startIndex=e.startIndex||0,this.dimensionsDetectedCount=e.dimensionsDetectedCount,this.metaRawOption=e.metaRawOption;var t=this.dimensionsDefine=e.dimensionsDefine;if(t)for(var a=0;ad&&(d=_)}c[0]=p,c[1]=d}},n=function(){return this._data?this._data.length/this._dimSize:0};o_=(e={},e[Ae+"_"+qr]={pure:!0,appendData:i},e[Ae+"_"+Po]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},e[pr]={pure:!0,appendData:i},e[ta]={pure:!0,appendData:function(o){var s=this._data;D(o,function(l,u){for(var f=s[u]||(s[u]=[]),h=0;h<(l||[]).length;h++)f.push(l[h])})}},e[cr]={appendData:i},e[Za]={persistent:!1,pure:!0,appendData:function(o){this._data=o},clean:function(){this._offset+=this.count(),this._data=null}},e);function i(o){for(var s=0;s=0&&(d=o.interpolatedValue[g])}return d!=null?d+"":""})}},r.prototype.getRawValue=function(e,t){return vo(this.getData(t),e)},r.prototype.formatTooltip=function(e,t,a){},r}();function f_(r){var e,t;return tt(r)?r.type&&(t=r):e=r,{text:e,frag:t}}function zs(r){return new _k(r)}var _k=function(){function r(e){e=e||{},this._reset=e.reset,this._plan=e.plan,this._count=e.count,this._onDirty=e.onDirty,this._dirty=!0}return r.prototype.perform=function(e){var t=this._upstream,a=e&&e.skip;if(this._dirty&&t){var n=this.context;n.data=n.outputData=t.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var i;this._plan&&!a&&(i=this._plan(this.context));var o=f(this._modBy),s=this._modDataCount||0,l=f(e&&e.modBy),u=e&&e.modDataCount||0;(o!==l||s!==u)&&(i="reset");function f(m){return!(m>=1)&&(m=1),m}var h;(this._dirty||i==="reset")&&(this._dirty=!1,h=this._doReset(a)),this._modBy=l,this._modDataCount=u;var v=e&&e.step;if(t?this._dueEnd=t._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var c=this._dueIndex,p=Math.min(v!=null?this._dueIndex+v:1/0,this._dueEnd);if(!a&&(h||c1&&a>0?s:o}};return i;function o(){return e=r?null:le},gte:function(r,e){return r>=e}},xk=function(){function r(e,t){if(!wt(t)){var a="";Mt(a)}this._opFn=UA[e],this._rvalFloat=jr(t)}return r.prototype.evaluate=function(e){return wt(e)?this._opFn(e,this._rvalFloat):this._opFn(jr(e),this._rvalFloat)},r}(),YA=function(){function r(e,t){var a=e==="desc";this._resultLT=a?1:-1,t==null&&(t=a?"min":"max"),this._incomparable=t==="min"?-1/0:1/0}return r.prototype.evaluate=function(e,t){var a=wt(e)?e:jr(e),n=wt(t)?t:jr(t),i=isNaN(a),o=isNaN(n);if(i&&(a=this._incomparable),o&&(n=this._incomparable),i&&o){var s=Y(e),l=Y(t);s&&(a=l?e:0),l&&(n=s?t:0)}return an?-this._resultLT:0},r}(),bk=function(){function r(e,t){this._rval=t,this._isEQ=e,this._rvalTypeof=typeof t,this._rvalFloat=jr(t)}return r.prototype.evaluate=function(e){var t=e===this._rval;if(!t){var a=typeof e;a!==this._rvalTypeof&&(a==="number"||this._rvalTypeof==="number")&&(t=jr(e)===this._rvalFloat)}return this._isEQ?t:!t},r}();function wk(r,e){return r==="eq"||r==="ne"?new bk(r==="eq",e):$(UA,r)?new xk(r,e):null}var Tk=function(){function r(){}return r.prototype.getRawData=function(){throw new Error("not supported")},r.prototype.getRawDataItem=function(e){throw new Error("not supported")},r.prototype.cloneRawData=function(){},r.prototype.getDimensionInfo=function(e){},r.prototype.cloneAllDimensionInfo=function(){},r.prototype.count=function(){},r.prototype.retrieveValue=function(e,t){},r.prototype.retrieveValueFromItem=function(e,t){},r.prototype.convertValue=function(e,t){return qa(e,t)},r}();function Ak(r,e){var t=new Tk,a=r.data,n=t.sourceFormat=r.sourceFormat,i=r.startIndex,o="";r.seriesLayoutBy!==qr&&Mt(o);var s=[],l={},u=r.dimensionsDefine;if(u)D(u,function(d,g){var y=d.name,m={index:g,name:y,displayName:d.displayName};if(s.push(m),y!=null){var _="";$(l,y)&&Mt(_),l[y]=m}});else for(var f=0;f65535?Ek:kk}function Ri(){return[1/0,-1/0]}function Ok(r){var e=r.constructor;return e===Array?r.slice():new e(r)}function c_(r,e,t,a,n){var i=ZA[t||"float"];if(n){var o=r[e],s=o&&o.length;if(s!==a){for(var l=new i(a),u=0;ug[1]&&(g[1]=d)}return this._rawCount=this._count=l,{start:s,end:l}},r.prototype._initDataFromProvider=function(e,t,a){for(var n=this._provider,i=this._chunks,o=this._dimensions,s=o.length,l=this._rawExtent,u=G(o,function(m){return m.property}),f=0;fy[1]&&(y[1]=g)}}!n.persistent&&n.clean&&n.clean(),this._rawCount=this._count=t,this._extent=[]},r.prototype.count=function(){return this._count},r.prototype.get=function(e,t){if(!(t>=0&&t=0&&t=this._rawCount||e<0)return-1;if(!this._indices)return e;var t=this._indices,a=t[e];if(a!=null&&ae)i=o-1;else return o}return-1},r.prototype.indicesOfNearest=function(e,t,a){var n=this._chunks,i=n[e],o=[];if(!i)return o;a==null&&(a=1/0);for(var s=1/0,l=-1,u=0,f=0,h=this.count();f=0&&l<0)&&(s=p,l=c,u=0),c===l&&(o[u++]=f))}return o.length=u,o},r.prototype.getIndices=function(){var e,t=this._indices;if(t){var a=t.constructor,n=this._count;if(a===Array){e=new a(n);for(var i=0;i=h&&m<=v||isNaN(m))&&(l[u++]=d),d++}p=!0}else if(i===2){for(var g=c[n[0]],_=c[n[1]],S=e[n[1]][0],b=e[n[1]][1],y=0;y=h&&m<=v||isNaN(m))&&(x>=S&&x<=b||isNaN(x))&&(l[u++]=d),d++}p=!0}}if(!p)if(i===1)for(var y=0;y=h&&m<=v||isNaN(m))&&(l[u++]=w)}else for(var y=0;ye[C][1])&&(T=!1)}T&&(l[u++]=t.getRawIndex(y))}return uy[1]&&(y[1]=g)}}}},r.prototype.lttbDownSample=function(e,t){var a=this.clone([e],!0),n=a._chunks,i=n[e],o=this.count(),s=0,l=Math.floor(1/t),u=this.getRawIndex(0),f,h,v,c=new(Pi(this._rawCount))(Math.min((Math.ceil(o/l)+2)*2,o));c[s++]=u;for(var p=1;pf&&(f=h,v=S)}M>0&&Ms&&(d=s-f);for(var g=0;gp&&(p=m,c=f+g)}var _=this.getRawIndex(h),S=this.getRawIndex(c);hf-p&&(l=f-p,s.length=l);for(var d=0;dh[1]&&(h[1]=y),v[c++]=m}return i._count=c,i._indices=v,i._updateGetRawIdx(),i},r.prototype.each=function(e,t){if(this._count)for(var a=e.length,n=this._chunks,i=0,o=this.count();il&&(l=h)}return o=[s,l],this._extent[e]=o,o},r.prototype.getRawDataItem=function(e){var t=this.getRawIndex(e);if(this._provider.persistent)return this._provider.getItem(t);for(var a=[],n=this._chunks,i=0;i=0?this._indices[e]:-1},r.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},r.internalField=function(){function e(t,a,n,i){return qa(t[i],this._dimensions[i])}Uv={arrayRows:e,objectRows:function(t,a,n,i){return qa(t[a],this._dimensions[i])},keyedColumns:e,original:function(t,a,n,i){var o=t&&(t.value==null?t:t.value);return qa(o instanceof Array?o[i]:o,this._dimensions[i])},typedArray:function(t,a,n,i){return t[i]}}}(),r}(),qA=function(){function r(e){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=e}return r.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},r.prototype._setLocalSource=function(e,t){this._sourceList=e,this._upstreamSignList=t,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},r.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},r.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},r.prototype._createSource=function(){this._setLocalSource([],[]);var e=this._sourceHost,t=this._getUpstreamSourceManagers(),a=!!t.length,n,i;if(uu(e)){var o=e,s=void 0,l=void 0,u=void 0;if(a){var f=t[0];f.prepareSource(),u=f.getSource(),s=u.data,l=u.sourceFormat,i=[f._getVersionSign()]}else s=o.get("data",!0),l=Ee(s)?Za:cr,i=[];var h=this._getSourceMetaRawOption()||{},v=u&&u.metaRawOption||{},c=st(h.seriesLayoutBy,v.seriesLayoutBy)||null,p=st(h.sourceHeader,v.sourceHeader),d=st(h.dimensions,v.dimensions),g=c!==v.seriesLayoutBy||!!p!=!!v.sourceHeader||d;n=g?[sd(s,{seriesLayoutBy:c,sourceHeader:p,dimensions:d},l)]:[]}else{var y=e;if(a){var m=this._applyTransform(t);n=m.sourceList,i=m.upstreamSignList}else{var _=y.get("source",!0);n=[sd(_,this._getSourceMetaRawOption(),null)],i=[]}}this._setLocalSource(n,i)},r.prototype._applyTransform=function(e){var t=this._sourceHost,a=t.get("transform",!0),n=t.get("fromTransformResult",!0);if(n!=null){var i="";e.length!==1&&d_(i)}var o,s=[],l=[];return D(e,function(u){u.prepareSource();var f=u.getSource(n||0),h="";n!=null&&!f&&d_(h),s.push(f),l.push(u._getVersionSign())}),a?o=Pk(a,s,{datasetIndex:t.componentIndex}):n!=null&&(o=[vk(s[0])]),{sourceList:o,upstreamSignList:l}},r.prototype._isDirty=function(){if(this._dirty)return!0;for(var e=this._getUpstreamSourceManagers(),t=0;t1||t>0&&!r.noHeader;return D(r.blocks,function(n){var i=QA(n);i>=e&&(e=i+ +(a&&(!i||ud(n)&&!n.noHeader)))}),e}return 0}function zk(r,e,t,a){var n=e.noHeader,i=Fk(QA(e)),o=[],s=e.blocks||[];be(!s||z(s)),s=s||[];var l=r.orderMode;if(e.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if($(u,l)){var f=new YA(u[l],null);s.sort(function(d,g){return f.evaluate(d.sortParam,g.sortParam)})}else l==="seriesDesc"&&s.reverse()}D(s,function(d,g){var y=e.valueFormatter,m=JA(d)(y?V(V({},r),{valueFormatter:y}):r,d,g>0?i.html:0,a);m!=null&&o.push(m)});var h=r.renderMode==="richText"?o.join(i.richText):fd(a,o.join(""),n?t:i.html);if(n)return h;var v=nd(e.header,"ordinal",r.useUTC),c=jA(a,r.renderMode).nameStyle,p=KA(a);return r.renderMode==="richText"?tC(r,v,c)+i.richText+h:fd(a,'
'+Se(v)+"
"+h,t)}function Gk(r,e,t,a){var n=r.renderMode,i=e.noName,o=e.noValue,s=!e.markerType,l=e.name,u=r.useUTC,f=e.valueFormatter||r.valueFormatter||function(S){return S=z(S)?S:[S],G(S,function(b,x){return nd(b,z(c)?c[x]:c,u)})};if(!(i&&o)){var h=s?"":r.markupStyleCreator.makeTooltipMarker(e.markerType,e.markerColor||"#333",n),v=i?"":nd(l,"ordinal",u),c=e.valueType,p=o?[]:f(e.value,e.dataIndex),d=!s||!i,g=!s&&i,y=jA(a,n),m=y.nameStyle,_=y.valueStyle;return n==="richText"?(s?"":h)+(i?"":tC(r,v,m))+(o?"":Uk(r,p,d,g,_)):fd(a,(s?"":h)+(i?"":Hk(v,!s,m))+(o?"":Wk(p,d,g,_)),t)}}function g_(r,e,t,a,n,i){if(r){var o=JA(r),s={useUTC:n,renderMode:t,orderMode:a,markupStyleCreator:e,valueFormatter:r.valueFormatter};return o(s,r,0,i)}}function Fk(r){return{html:Bk[r],richText:Vk[r]}}function fd(r,e,t){var a='
',n="margin: "+t+"px 0 0",i=KA(r);return'
'+e+a+"
"}function Hk(r,e,t){var a=e?"margin-left:2px":"";return''+Se(r)+""}function Wk(r,e,t,a){var n=t?"10px":"20px",i=e?"float:right;margin-left:"+n:"";return r=z(r)?r:[r],''+G(r,function(o){return Se(o)}).join("  ")+""}function tC(r,e,t){return r.markupStyleCreator.wrapRichTextStyle(e,t)}function Uk(r,e,t,a,n){var i=[n],o=a?10:20;return t&&i.push({padding:[0,0,0,o],align:"right"}),r.markupStyleCreator.wrapRichTextStyle(z(e)?e.join(" "):e,i)}function eC(r,e){var t=r.getData().getItemVisual(e,"style"),a=t[r.visualDrawType];return fi(a)}function rC(r,e){var t=r.get("padding");return t??(e==="richText"?[8,10]:10)}var Yv=function(){function r(){this.richTextStyles={},this._nextStyleNameId=_T()}return r.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},r.prototype.makeTooltipMarker=function(e,t,a){var n=a==="richText"?this._generateStyleName():null,i=wA({color:t,type:e,renderMode:a,markerId:n});return Y(i)?i:(this.richTextStyles[n]=i.style,i.content)},r.prototype.wrapRichTextStyle=function(e,t){var a={};z(t)?D(t,function(i){return V(a,i)}):V(a,t);var n=this._generateStyleName();return this.richTextStyles[n]=a,"{"+n+"|"+e+"}"},r}();function aC(r){var e=r.series,t=r.dataIndex,a=r.multipleSeries,n=e.getData(),i=n.mapDimensionsAll("defaultedTooltip"),o=i.length,s=e.getRawValue(t),l=z(s),u=eC(e,t),f,h,v,c;if(o>1||l&&!o){var p=Yk(s,e,t,i,u);f=p.inlineValues,h=p.inlineValueTypes,v=p.blocks,c=p.inlineValues[0]}else if(o){var d=n.getDimensionInfo(i[0]);c=f=vo(n,t,i[0]),h=d.type}else c=f=l?s[0]:s;var g=Dg(e),y=g&&e.name||"",m=n.getName(t),_=a?y:m;return se("section",{header:y,noHeader:a||!g,sortParam:c,blocks:[se("nameValue",{markerType:"item",markerColor:u,name:_,noName:!sr(_),value:f,valueType:h,dataIndex:t})].concat(v||[])})}function Yk(r,e,t,a,n){var i=e.getData(),o=ur(r,function(h,v,c){var p=i.getDimensionInfo(c);return h=h||p&&p.tooltip!==!1&&p.displayName!=null},!1),s=[],l=[],u=[];a.length?D(a,function(h){f(vo(i,t,h),h)}):D(r,f);function f(h,v){var c=i.getDimensionInfo(v);!c||c.otherDims.tooltip===!1||(o?u.push(se("nameValue",{markerType:"subItem",markerColor:n,name:c.displayName,value:h,valueType:c.type})):(s.push(h),l.push(c.type)))}return{inlineValues:s,inlineValueTypes:l,blocks:u}}var Da=bt();function fu(r,e){return r.getName(e)||r.getId(e)}var af="__universalTransitionEnabled",Et=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t._selectedDataIndicesMap={},t}return e.prototype.init=function(t,a,n){this.seriesIndex=this.componentIndex,this.dataTask=zs({count:$k,reset:Zk}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(t,n);var i=Da(this).sourceManager=new qA(this);i.prepareSource();var o=this.getInitialData(t,n);m_(o,this),this.dataTask.context.data=o,Da(this).dataBeforeProcessed=o,y_(this),this._initSelectedMapFromData(o)},e.prototype.mergeDefaultAndTheme=function(t,a){var n=rl(this),i=n?Lo(t):{},o=this.subType;gt.hasClass(o)&&(o+="Series"),ut(t,a.getTheme().get(this.subType)),ut(t,this.getDefaultOption()),oi(t,"label",["show"]),this.fillDataTextStyle(t.data),n&&tn(t,i,n)},e.prototype.mergeOption=function(t,a){t=ut(this.option,t,!0),this.fillDataTextStyle(t.data);var n=rl(this);n&&tn(this.option,t,n);var i=Da(this).sourceManager;i.dirty(),i.prepareSource();var o=this.getInitialData(t,a);m_(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,Da(this).dataBeforeProcessed=o,y_(this),this._initSelectedMapFromData(o)},e.prototype.fillDataTextStyle=function(t){if(t&&!Ee(t))for(var a=["show"],n=0;nthis.getShallow("animationThreshold")&&(a=!1),!!a},e.prototype.restoreData=function(){this.dataTask.dirty()},e.prototype.getColorFromPalette=function(t,a,n){var i=this.ecModel,o=ry.prototype.getColorFromPalette.call(this,t,a,n);return o||(o=i.getColorFromPalette(t,a,n)),o},e.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},e.prototype.getProgressive=function(){return this.get("progressive")},e.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},e.prototype.select=function(t,a){this._innerSelect(this.getData(a),t)},e.prototype.unselect=function(t,a){var n=this.option.selectedMap;if(n){var i=this.option.selectedMode,o=this.getData(a);if(i==="series"||n==="all"){this.option.selectedMap={},this._selectedDataIndicesMap={};return}for(var s=0;s=0&&n.push(o)}return n},e.prototype.isSelected=function(t,a){var n=this.option.selectedMap;if(!n)return!1;var i=this.getData(a);return(n==="all"||n[fu(i,t)])&&!i.getItemModel(t).get(["select","disabled"])},e.prototype.isUniversalTransitionEnabled=function(){if(this[af])return!0;var t=this.option.universalTransition;return t?t===!0?!0:t&&t.enabled:!1},e.prototype._innerSelect=function(t,a){var n,i,o=this.option,s=o.selectedMode,l=a.length;if(!(!s||!l)){if(s==="series")o.selectedMap="all";else if(s==="multiple"){tt(o.selectedMap)||(o.selectedMap={});for(var u=o.selectedMap,f=0;f0&&this._innerSelect(t,a)}},e.registerClass=function(t){return gt.registerClass(t)},e.protoInitialize=function(){var t=e.prototype;t.type="series.__base__",t.seriesIndex=0,t.ignoreStyleOnData=!1,t.hasSymbolVisual=!1,t.defaultSymbol="circle",t.visualStyleAccessPath="itemStyle",t.visualDrawType="fill"}(),e}(gt);$t(Et,Nh);$t(Et,ry);MT(Et,gt);function y_(r){var e=r.name;Dg(r)||(r.name=Xk(r)||e)}function Xk(r){var e=r.getRawData(),t=e.mapDimensionsAll("seriesName"),a=[];return D(t,function(n){var i=e.getDimensionInfo(n);i.displayName&&a.push(i.displayName)}),a.join(" ")}function $k(r){return r.model.getRawData().count()}function Zk(r){var e=r.model;return e.setData(e.getRawData().cloneShallow()),qk}function qk(r,e){e.outputData&&r.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function m_(r,e){D(lo(r.CHANGABLE_METHODS,r.DOWNSAMPLE_METHODS),function(t){r.wrapMethod(t,lt(Kk,e))})}function Kk(r,e){var t=hd(r);return t&&t.setOutputEnd((e||this).count()),e}function hd(r){var e=(r.ecModel||{}).scheduler,t=e&&e.getPipeline(r.uid);if(t){var a=t.currentTask;if(a){var n=a.agentStubMap;n&&(a=n.get(r.uid))}return a}}var zt=function(){function r(){this.group=new at,this.uid=Io("viewComponent")}return r.prototype.init=function(e,t){},r.prototype.render=function(e,t,a,n){},r.prototype.dispose=function(e,t){},r.prototype.updateView=function(e,t,a,n){},r.prototype.updateLayout=function(e,t,a,n){},r.prototype.updateVisual=function(e,t,a,n){},r.prototype.toggleBlurSeries=function(e,t,a){},r.prototype.eachRendered=function(e){var t=this.group;t&&t.traverse(e)},r}();Ig(zt);Sh(zt);function Eo(){var r=bt();return function(e){var t=r(e),a=e.pipelineContext,n=!!t.large,i=!!t.progressiveRender,o=t.large=!!(a&&a.large),s=t.progressiveRender=!!(a&&a.progressiveRender);return(n!==o||i!==s)&&"reset"}}var nC=bt(),jk=Eo(),Lt=function(){function r(){this.group=new at,this.uid=Io("viewChart"),this.renderTask=zs({plan:Jk,reset:Qk}),this.renderTask.context={view:this}}return r.prototype.init=function(e,t){},r.prototype.render=function(e,t,a,n){},r.prototype.highlight=function(e,t,a,n){var i=e.getData(n&&n.dataType);i&&S_(i,n,"emphasis")},r.prototype.downplay=function(e,t,a,n){var i=e.getData(n&&n.dataType);i&&S_(i,n,"normal")},r.prototype.remove=function(e,t){this.group.removeAll()},r.prototype.dispose=function(e,t){},r.prototype.updateView=function(e,t,a,n){this.render(e,t,a,n)},r.prototype.updateLayout=function(e,t,a,n){this.render(e,t,a,n)},r.prototype.updateVisual=function(e,t,a,n){this.render(e,t,a,n)},r.prototype.eachRendered=function(e){on(this.group,e)},r.markUpdateMethod=function(e,t){nC(e).updateMethod=t},r.protoInitialize=function(){var e=r.prototype;e.type="chart"}(),r}();function __(r,e,t){r&&Qs(r)&&(e==="emphasis"?ga:ya)(r,t)}function S_(r,e,t){var a=si(r,e),n=e&&e.highlightKey!=null?NR(e.highlightKey):null;a!=null?D(Rt(a),function(i){__(r.getItemGraphicEl(i),t,n)}):r.eachItemGraphicEl(function(i){__(i,t,n)})}Ig(Lt);Sh(Lt);function Jk(r){return jk(r.model)}function Qk(r){var e=r.model,t=r.ecModel,a=r.api,n=r.payload,i=e.pipelineContext.progressiveRender,o=r.view,s=n&&nC(n).updateMethod,l=i?"incrementalPrepareRender":s&&o[s]?s:"render";return l!=="render"&&o[l](e,t,a,n),tO[l]}var tO={incrementalPrepareRender:{progress:function(r,e){e.view.incrementalRender(r,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(r,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},Lf="\0__throttleOriginMethod",x_="\0__throttleRate",b_="\0__throttleType";function Vh(r,e,t){var a,n=0,i=0,o=null,s,l,u,f;e=e||0;function h(){i=new Date().getTime(),o=null,r.apply(l,u||[])}var v=function(){for(var c=[],p=0;p=0?h():o=setTimeout(h,-s),n=a};return v.clear=function(){o&&(clearTimeout(o),o=null)},v.debounceNextCall=function(c){f=c},v}function ko(r,e,t,a){var n=r[e];if(n){var i=n[Lf]||n,o=n[b_],s=n[x_];if(s!==t||o!==a){if(t==null||!a)return r[e]=i;n=r[e]=Vh(i,t,a==="debounce"),n[Lf]=i,n[b_]=a,n[x_]=t}return n}}function nl(r,e){var t=r[e];t&&t[Lf]&&(t.clear&&t.clear(),r[e]=t[Lf])}var w_=bt(),T_={itemStyle:li(cA,!0),lineStyle:li(vA,!0)},eO={lineStyle:"stroke",itemStyle:"fill"};function iC(r,e){var t=r.visualStyleMapper||T_[e];return t||(console.warn("Unknown style type '"+e+"'."),T_.itemStyle)}function oC(r,e){var t=r.visualDrawType||eO[e];return t||(console.warn("Unknown style type '"+e+"'."),"fill")}var rO={createOnAllSeries:!0,performRawSeries:!0,reset:function(r,e){var t=r.getData(),a=r.visualStyleAccessPath||"itemStyle",n=r.getModel(a),i=iC(r,a),o=i(n),s=n.getShallow("decal");s&&(t.setVisual("decal",s),s.dirty=!0);var l=oC(r,a),u=o[l],f=K(u)?u:null,h=o.fill==="auto"||o.stroke==="auto";if(!o[l]||f||h){var v=r.getColorFromPalette(r.name,null,e.getSeriesCount());o[l]||(o[l]=v,t.setVisual("colorFromPalette",!0)),o.fill=o.fill==="auto"||K(o.fill)?v:o.fill,o.stroke=o.stroke==="auto"||K(o.stroke)?v:o.stroke}if(t.setVisual("style",o),t.setVisual("drawType",l),!e.isSeriesFiltered(r)&&f)return t.setVisual("colorFromPalette",!1),{dataEach:function(c,p){var d=r.getDataParams(p),g=V({},o);g[l]=f(d),c.setItemVisual(p,"style",g)}}}},Ko=new Ct,aO={createOnAllSeries:!0,performRawSeries:!0,reset:function(r,e){if(!(r.ignoreStyleOnData||e.isSeriesFiltered(r))){var t=r.getData(),a=r.visualStyleAccessPath||"itemStyle",n=iC(r,a),i=t.getVisual("drawType");return{dataEach:t.hasItemOption?function(o,s){var l=o.getRawDataItem(s);if(l&&l[a]){Ko.option=l[a];var u=n(Ko),f=o.ensureUniqueItemVisual(s,"style");V(f,u),Ko.option.decal&&(o.setItemVisual(s,"decal",Ko.option.decal),Ko.option.decal.dirty=!0),i in u&&o.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},nO={performRawSeries:!0,overallReset:function(r){var e=Z();r.eachSeries(function(t){var a=t.getColorBy();if(!t.isColorBySeries()){var n=t.type+"-"+a,i=e.get(n);i||(i={},e.set(n,i)),w_(t).scope=i}}),r.eachSeries(function(t){if(!(t.isColorBySeries()||r.isSeriesFiltered(t))){var a=t.getRawData(),n={},i=t.getData(),o=w_(t).scope,s=t.visualStyleAccessPath||"itemStyle",l=oC(t,s);i.each(function(u){var f=i.getRawIndex(u);n[f]=u}),a.each(function(u){var f=n[u],h=i.getItemVisual(f,"colorFromPalette");if(h){var v=i.ensureUniqueItemVisual(f,"style"),c=a.getName(u)||u+"",p=a.count();v[l]=t.getColorFromPalette(c,o,p)}})}})}},hu=Math.PI;function iO(r,e){e=e||{},J(e,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var t=new at,a=new xt({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4});t.add(a);var n=new St({style:{text:e.text,fill:e.textColor,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:e.fontFamily},zlevel:e.zlevel,z:10001}),i=new xt({style:{fill:"none"},textContent:n,textConfig:{position:"right",distance:10},zlevel:e.zlevel,z:10001});t.add(i);var o;return e.showSpinner&&(o=new Ml({shape:{startAngle:-hu/2,endAngle:-hu/2+.1,r:e.spinnerRadius},style:{stroke:e.color,lineCap:"round",lineWidth:e.lineWidth},zlevel:e.zlevel,z:10001}),o.animateShape(!0).when(1e3,{endAngle:hu*3/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:hu*3/2}).delay(300).start("circularInOut"),t.add(o)),t.resize=function(){var s=n.getBoundingRect().width,l=e.showSpinner?e.spinnerRadius:0,u=(r.getWidth()-l*2-(e.showSpinner&&s?10:0)-s)/2-(e.showSpinner&&s?0:5+s/2)+(e.showSpinner?0:s/2)+(s?0:l),f=r.getHeight()/2;e.showSpinner&&o.setShape({cx:u,cy:f}),i.setShape({x:u-l,y:f-l,width:l*2,height:l*2}),a.setShape({x:0,y:0,width:r.getWidth(),height:r.getHeight()})},t.resize(),t}var sC=function(){function r(e,t,a,n){this._stageTaskMap=Z(),this.ecInstance=e,this.api=t,a=this._dataProcessorHandlers=a.slice(),n=this._visualHandlers=n.slice(),this._allHandlers=a.concat(n)}return r.prototype.restoreData=function(e,t){e.restoreData(t),this._stageTaskMap.each(function(a){var n=a.overallTask;n&&n.dirty()})},r.prototype.getPerformArgs=function(e,t){if(e.__pipeline){var a=this._pipelineMap.get(e.__pipeline.id),n=a.context,i=!t&&a.progressiveEnabled&&(!n||n.progressiveRender)&&e.__idxInPipeline>a.blockIndex,o=i?a.step:null,s=n&&n.modDataCount,l=s!=null?Math.ceil(s/o):null;return{step:o,modBy:l,modDataCount:s}}},r.prototype.getPipeline=function(e){return this._pipelineMap.get(e)},r.prototype.updateStreamModes=function(e,t){var a=this._pipelineMap.get(e.uid),n=e.getData(),i=n.count(),o=a.progressiveEnabled&&t.incrementalPrepareRender&&i>=a.threshold,s=e.get("large")&&i>=e.get("largeThreshold"),l=e.get("progressiveChunkMode")==="mod"?i:null;e.pipelineContext=a.context={progressiveRender:o,modDataCount:l,large:s}},r.prototype.restorePipelines=function(e){var t=this,a=t._pipelineMap=Z();e.eachSeries(function(n){var i=n.getProgressive(),o=n.uid;a.set(o,{id:o,head:null,tail:null,threshold:n.getProgressiveThreshold(),progressiveEnabled:i&&!(n.preventIncremental&&n.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),t._pipe(n,n.dataTask)})},r.prototype.prepareStageTasks=function(){var e=this._stageTaskMap,t=this.api.getModel(),a=this.api;D(this._allHandlers,function(n){var i=e.get(n.uid)||e.set(n.uid,{}),o="";be(!(n.reset&&n.overallReset),o),n.reset&&this._createSeriesStageTask(n,i,t,a),n.overallReset&&this._createOverallStageTask(n,i,t,a)},this)},r.prototype.prepareView=function(e,t,a,n){var i=e.renderTask,o=i.context;o.model=t,o.ecModel=a,o.api=n,i.__block=!e.incrementalPrepareRender,this._pipe(t,i)},r.prototype.performDataProcessorTasks=function(e,t){this._performStageTasks(this._dataProcessorHandlers,e,t,{block:!0})},r.prototype.performVisualTasks=function(e,t,a){this._performStageTasks(this._visualHandlers,e,t,a)},r.prototype._performStageTasks=function(e,t,a,n){n=n||{};var i=!1,o=this;D(e,function(l,u){if(!(n.visualType&&n.visualType!==l.visualType)){var f=o._stageTaskMap.get(l.uid),h=f.seriesTaskMap,v=f.overallTask;if(v){var c,p=v.agentStubMap;p.each(function(g){s(n,g)&&(g.dirty(),c=!0)}),c&&v.dirty(),o.updatePayload(v,a);var d=o.getPerformArgs(v,n.block);p.each(function(g){g.perform(d)}),v.perform(d)&&(i=!0)}else h&&h.each(function(g,y){s(n,g)&&g.dirty();var m=o.getPerformArgs(g,n.block);m.skip=!l.performRawSeries&&t.isSeriesFiltered(g.context.model),o.updatePayload(g,a),g.perform(m)&&(i=!0)})}});function s(l,u){return l.setDirty&&(!l.dirtyMap||l.dirtyMap.get(u.__pipeline.id))}this.unfinished=i||this.unfinished},r.prototype.performSeriesTasks=function(e){var t;e.eachSeries(function(a){t=a.dataTask.perform()||t}),this.unfinished=t||this.unfinished},r.prototype.plan=function(){this._pipelineMap.each(function(e){var t=e.tail;do{if(t.__block){e.blockIndex=t.__idxInPipeline;break}t=t.getUpstream()}while(t)})},r.prototype.updatePayload=function(e,t){t!=="remain"&&(e.context.payload=t)},r.prototype._createSeriesStageTask=function(e,t,a,n){var i=this,o=t.seriesTaskMap,s=t.seriesTaskMap=Z(),l=e.seriesType,u=e.getTargetSeries;e.createOnAllSeries?a.eachRawSeries(f):l?a.eachRawSeriesByType(l,f):u&&u(a,n).each(f);function f(h){var v=h.uid,c=s.set(v,o&&o.get(v)||zs({plan:fO,reset:hO,count:cO}));c.context={model:h,ecModel:a,api:n,useClearVisual:e.isVisual&&!e.isLayout,plan:e.plan,reset:e.reset,scheduler:i},i._pipe(h,c)}},r.prototype._createOverallStageTask=function(e,t,a,n){var i=this,o=t.overallTask=t.overallTask||zs({reset:oO});o.context={ecModel:a,api:n,overallReset:e.overallReset,scheduler:i};var s=o.agentStubMap,l=o.agentStubMap=Z(),u=e.seriesType,f=e.getTargetSeries,h=!0,v=!1,c="";be(!e.createOnAllSeries,c),u?a.eachRawSeriesByType(u,p):f?f(a,n).each(p):(h=!1,D(a.getSeries(),p));function p(d){var g=d.uid,y=l.set(g,s&&s.get(g)||(v=!0,zs({reset:sO,onDirty:uO})));y.context={model:d,overallProgress:h},y.agent=o,y.__block=h,i._pipe(d,y)}v&&o.dirty()},r.prototype._pipe=function(e,t){var a=e.uid,n=this._pipelineMap.get(a);!n.head&&(n.head=t),n.tail&&n.tail.pipe(t),n.tail=t,t.__idxInPipeline=n.count++,t.__pipeline=n},r.wrapStageHandler=function(e,t){return K(e)&&(e={overallReset:e,seriesType:pO(e)}),e.uid=Io("stageHandler"),t&&(e.visualType=t),e},r}();function oO(r){r.overallReset(r.ecModel,r.api,r.payload)}function sO(r){return r.overallProgress&&lO}function lO(){this.agent.dirty(),this.getDownstream().dirty()}function uO(){this.agent&&this.agent.dirty()}function fO(r){return r.plan?r.plan(r.model,r.ecModel,r.api,r.payload):null}function hO(r){r.useClearVisual&&r.data.clearAllVisual();var e=r.resetDefines=Rt(r.reset(r.model,r.ecModel,r.api,r.payload));return e.length>1?G(e,function(t,a){return lC(a)}):vO}var vO=lC(0);function lC(r){return function(e,t){var a=t.data,n=t.resetDefines[r];if(n&&n.dataEach)for(var i=e.start;i0&&c===u.length-v.length){var p=u.slice(0,c);p!=="data"&&(t.mainType=p,t[v.toLowerCase()]=l,f=!0)}}s.hasOwnProperty(u)&&(a[u]=l,f=!0),f||(n[u]=l)})}return{cptQuery:t,dataQuery:a,otherQuery:n}},r.prototype.filter=function(e,t){var a=this.eventInfo;if(!a)return!0;var n=a.targetEl,i=a.packedEvent,o=a.model,s=a.view;if(!o||!s)return!0;var l=t.cptQuery,u=t.dataQuery;return f(l,o,"mainType")&&f(l,o,"subType")&&f(l,o,"index","componentIndex")&&f(l,o,"name")&&f(l,o,"id")&&f(u,i,"name")&&f(u,i,"dataIndex")&&f(u,i,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(e,t.otherQuery,n,i));function f(h,v,c,p){return h[c]==null||v[p||c]===h[c]}},r.prototype.afterTrigger=function(){this.eventInfo=null},r}(),vd=["symbol","symbolSize","symbolRotate","symbolOffset"],M_=vd.concat(["symbolKeepAspect"]),yO={createOnAllSeries:!0,performRawSeries:!0,reset:function(r,e){var t=r.getData();if(r.legendIcon&&t.setVisual("legendIcon",r.legendIcon),!r.hasSymbolVisual)return;for(var a={},n={},i=!1,o=0;o=0&&qn(l)?l:.5;var u=r.createRadialGradient(o,s,0,o,s,l);return u}function cd(r,e,t){for(var a=e.type==="radial"?RO(r,e,t):PO(r,e,t),n=e.colorStops,i=0;i0)?null:r==="dashed"?[4*e,2*e]:r==="dotted"?[e]:wt(r)?[r]:z(r)?r:null}function uy(r){var e=r.style,t=e.lineDash&&e.lineWidth>0&&kO(e.lineDash,e.lineWidth),a=e.lineDashOffset;if(t){var n=e.strokeNoScale&&r.getLineScale?r.getLineScale():1;n&&n!==1&&(t=G(t,function(i){return i/n}),a/=n)}return[t,a]}var OO=new Jr(!0);function Ef(r){var e=r.stroke;return!(e==null||e==="none"||!(r.lineWidth>0))}function I_(r){return typeof r=="string"&&r!=="none"}function kf(r){var e=r.fill;return e!=null&&e!=="none"}function L_(r,e){if(e.fillOpacity!=null&&e.fillOpacity!==1){var t=r.globalAlpha;r.globalAlpha=e.fillOpacity*e.opacity,r.fill(),r.globalAlpha=t}else r.fill()}function P_(r,e){if(e.strokeOpacity!=null&&e.strokeOpacity!==1){var t=r.globalAlpha;r.globalAlpha=e.strokeOpacity*e.opacity,r.stroke(),r.globalAlpha=t}else r.stroke()}function pd(r,e,t){var a=Lg(e.image,e.__image,t);if(xh(a)){var n=r.createPattern(a,e.repeat||"repeat");if(typeof DOMMatrix=="function"&&n&&n.setTransform){var i=new DOMMatrix;i.translateSelf(e.x||0,e.y||0),i.rotateSelf(0,0,(e.rotation||0)*Ds),i.scaleSelf(e.scaleX||1,e.scaleY||1),n.setTransform(i)}return n}}function NO(r,e,t,a){var n,i=Ef(t),o=kf(t),s=t.strokePercent,l=s<1,u=!e.path;(!e.silent||l)&&u&&e.createPathProxy();var f=e.path||OO,h=e.__dirty;if(!a){var v=t.fill,c=t.stroke,p=o&&!!v.colorStops,d=i&&!!c.colorStops,g=o&&!!v.image,y=i&&!!c.image,m=void 0,_=void 0,S=void 0,b=void 0,x=void 0;(p||d)&&(x=e.getBoundingRect()),p&&(m=h?cd(r,v,x):e.__canvasFillGradient,e.__canvasFillGradient=m),d&&(_=h?cd(r,c,x):e.__canvasStrokeGradient,e.__canvasStrokeGradient=_),g&&(S=h||!e.__canvasFillPattern?pd(r,v,e):e.__canvasFillPattern,e.__canvasFillPattern=S),y&&(b=h||!e.__canvasStrokePattern?pd(r,c,e):e.__canvasStrokePattern,e.__canvasStrokePattern=S),p?r.fillStyle=m:g&&(S?r.fillStyle=S:o=!1),d?r.strokeStyle=_:y&&(b?r.strokeStyle=b:i=!1)}var w=e.getGlobalScale();f.setScale(w[0],w[1],e.segmentIgnoreThreshold);var T,A;r.setLineDash&&t.lineDash&&(n=uy(e),T=n[0],A=n[1]);var C=!0;(u||h&ds)&&(f.setDPR(r.dpr),l?f.setContext(null):(f.setContext(r),C=!1),f.reset(),e.buildPath(f,e.shape,a),f.toStatic(),e.pathUpdated()),C&&f.rebuildPath(r,l?s:1),T&&(r.setLineDash(T),r.lineDashOffset=A),a||(t.strokeFirst?(i&&P_(r,t),o&&L_(r,t)):(o&&L_(r,t),i&&P_(r,t))),T&&r.setLineDash([])}function BO(r,e,t){var a=e.__image=Lg(t.image,e.__image,e,e.onload);if(!(!a||!xh(a))){var n=t.x||0,i=t.y||0,o=e.getWidth(),s=e.getHeight(),l=a.width/a.height;if(o==null&&s!=null?o=s*l:s==null&&o!=null?s=o/l:o==null&&s==null&&(o=a.width,s=a.height),t.sWidth&&t.sHeight){var u=t.sx||0,f=t.sy||0;r.drawImage(a,u,f,t.sWidth,t.sHeight,n,i,o,s)}else if(t.sx&&t.sy){var u=t.sx,f=t.sy,h=o-u,v=s-f;r.drawImage(a,u,f,h,v,n,i,o,s)}else r.drawImage(a,n,i,o,s)}}function VO(r,e,t){var a,n=t.text;if(n!=null&&(n+=""),n){r.font=t.font||ja,r.textAlign=t.textAlign,r.textBaseline=t.textBaseline;var i=void 0,o=void 0;r.setLineDash&&t.lineDash&&(a=uy(e),i=a[0],o=a[1]),i&&(r.setLineDash(i),r.lineDashOffset=o),t.strokeFirst?(Ef(t)&&r.strokeText(n,t.x,t.y),kf(t)&&r.fillText(n,t.x,t.y)):(kf(t)&&r.fillText(n,t.x,t.y),Ef(t)&&r.strokeText(n,t.x,t.y)),i&&r.setLineDash([])}}var R_=["shadowBlur","shadowOffsetX","shadowOffsetY"],E_=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function pC(r,e,t,a,n){var i=!1;if(!a&&(t=t||{},e===t))return!1;if(a||e.opacity!==t.opacity){Ge(r,n),i=!0;var o=Math.max(Math.min(e.opacity,1),0);r.globalAlpha=isNaN(o)?Qn.opacity:o}(a||e.blend!==t.blend)&&(i||(Ge(r,n),i=!0),r.globalCompositeOperation=e.blend||Qn.blend);for(var s=0;s0&&t.unfinished);t.unfinished||this._zr.flush()}}},e.prototype.getDom=function(){return this._dom},e.prototype.getId=function(){return this.id},e.prototype.getZr=function(){return this._zr},e.prototype.isSSR=function(){return this._ssr},e.prototype.setOption=function(t,a,n){if(!this[ge]){if(this._disposed){this.id;return}var i,o,s;if(tt(a)&&(n=a.lazyUpdate,i=a.silent,o=a.replaceMerge,s=a.transition,a=a.notMerge),this[ge]=!0,!this._model||a){var l=new JE(this._api),u=this._theme,f=this._model=new ay;f.scheduler=this._scheduler,f.ssr=this._ssr,f.init(null,null,null,u,this._locale,l)}this._model.setOption(t,{replaceMerge:o},gd);var h={seriesTransition:s,optionChanged:!0};if(n)this[Be]={silent:i,updateParams:h},this[ge]=!1,this.getZr().wakeUp();else{try{ki(this),Ma.update.call(this,null,h)}catch(v){throw this[Be]=null,this[ge]=!1,v}this._ssr||this._zr.flush(),this[Be]=null,this[ge]=!1,jo.call(this,i),Jo.call(this,i)}}},e.prototype.setTheme=function(){},e.prototype.getModel=function(){return this._model},e.prototype.getOption=function(){return this._model&&this._model.getOption()},e.prototype.getWidth=function(){return this._zr.getWidth()},e.prototype.getHeight=function(){return this._zr.getHeight()},e.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||yt.hasGlobalWindow&&window.devicePixelRatio||1},e.prototype.getRenderedCanvas=function(t){return this.renderToCanvas(t)},e.prototype.renderToCanvas=function(t){t=t||{};var a=this._zr.painter;return a.getRenderedCanvas({backgroundColor:t.backgroundColor||this._model.get("backgroundColor"),pixelRatio:t.pixelRatio||this.getDevicePixelRatio()})},e.prototype.renderToSVGString=function(t){t=t||{};var a=this._zr.painter;return a.renderToString({useViewBox:t.useViewBox})},e.prototype.getSvgDataURL=function(){if(yt.svgSupported){var t=this._zr,a=t.storage.getDisplayList();return D(a,function(n){n.stopAnimation(null,!0)}),t.painter.toDataURL()}},e.prototype.getDataURL=function(t){if(this._disposed){this.id;return}t=t||{};var a=t.excludeComponents,n=this._model,i=[],o=this;D(a,function(l){n.eachComponent({mainType:l},function(u){var f=o._componentsMap[u.__viewId];f.group.ignore||(i.push(f),f.group.ignore=!0)})});var s=this._zr.painter.getType()==="svg"?this.getSvgDataURL():this.renderToCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return D(i,function(l){l.group.ignore=!1}),s},e.prototype.getConnectedDataURL=function(t){if(this._disposed){this.id;return}var a=t.type==="svg",n=this.group,i=Math.min,o=Math.max,s=1/0;if(Vf[n]){var l=s,u=s,f=-s,h=-s,v=[],c=t&&t.pixelRatio||this.getDevicePixelRatio();D(ri,function(_,S){if(_.group===n){var b=a?_.getZr().painter.getSvgDom().innerHTML:_.renderToCanvas(rt(t)),x=_.getDom().getBoundingClientRect();l=i(x.left,l),u=i(x.top,u),f=o(x.right,f),h=o(x.bottom,h),v.push({dom:b,left:x.left,top:x.top})}}),l*=c,u*=c,f*=c,h*=c;var p=f-l,d=h-u,g=Mr.createCanvas(),y=Fp(g,{renderer:a?"svg":"canvas"});if(y.resize({width:p,height:d}),a){var m="";return D(v,function(_){var S=_.left-l,b=_.top-u;m+=''+_.dom+""}),y.painter.getSvgRoot().innerHTML=m,t.connectedBackgroundColor&&y.painter.setBackgroundColor(t.connectedBackgroundColor),y.refreshImmediately(),y.painter.toDataURL()}else return t.connectedBackgroundColor&&y.add(new xt({shape:{x:0,y:0,width:p,height:d},style:{fill:t.connectedBackgroundColor}})),D(v,function(_){var S=new le({style:{x:_.left*c-l,y:_.top*c-u,image:_.dom}});y.add(S)}),y.refreshImmediately(),g.toDataURL("image/"+(t&&t.type||"png"))}else return this.getDataURL(t)},e.prototype.convertToPixel=function(t,a){return Kv(this,"convertToPixel",t,a)},e.prototype.convertFromPixel=function(t,a){return Kv(this,"convertFromPixel",t,a)},e.prototype.containPixel=function(t,a){if(this._disposed){this.id;return}var n=this._model,i,o=ks(n,t);return D(o,function(s,l){l.indexOf("Models")>=0&&D(s,function(u){var f=u.coordinateSystem;if(f&&f.containPoint)i=i||!!f.containPoint(a);else if(l==="seriesModels"){var h=this._chartsMap[u.__viewId];h&&h.containPoint&&(i=i||h.containPoint(a,u))}},this)},this),!!i},e.prototype.getVisual=function(t,a){var n=this._model,i=ks(n,t,{defaultMainType:"series"}),o=i.seriesModel,s=o.getData(),l=i.hasOwnProperty("dataIndexInside")?i.dataIndexInside:i.hasOwnProperty("dataIndex")?s.indexOfRawIndex(i.dataIndex):null;return l!=null?ly(s,l,a):Rl(s,a)},e.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},e.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},e.prototype._initEvents=function(){var t=this;D(uN,function(a){var n=function(i){var o=t.getModel(),s=i.target,l,u=a==="globalout";if(u?l={}:s&&Zn(s,function(p){var d=nt(p);if(d&&d.dataIndex!=null){var g=d.dataModel||o.getSeriesByIndex(d.seriesIndex);return l=g&&g.getDataParams(d.dataIndex,d.dataType,s)||{},!0}else if(d.eventData)return l=V({},d.eventData),!0},!0),l){var f=l.componentType,h=l.componentIndex;(f==="markLine"||f==="markPoint"||f==="markArea")&&(f="series",h=l.seriesIndex);var v=f&&h!=null&&o.getComponent(f,h),c=v&&t[v.mainType==="series"?"_chartsMap":"_componentsMap"][v.__viewId];l.event=i,l.type=a,t._$eventProcessor.eventInfo={targetEl:s,packedEvent:l,model:v,view:c},t.trigger(a,l)}};n.zrEventfulCallAtLast=!0,t._zr.on(a,n,t)}),D(Gs,function(a,n){t._messageCenter.on(n,function(i){this.trigger(n,i)},t)}),D(["selectchanged"],function(a){t._messageCenter.on(a,function(n){this.trigger(a,n)},t)}),_O(this._messageCenter,this,this._api)},e.prototype.isDisposed=function(){return this._disposed},e.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},e.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0;var t=this.getDom();t&&AT(this.getDom(),cy,"");var a=this,n=a._api,i=a._model;D(a._componentsViews,function(o){o.dispose(i,n)}),D(a._chartsViews,function(o){o.dispose(i,n)}),a._zr.dispose(),a._dom=a._model=a._chartsMap=a._componentsMap=a._chartsViews=a._componentsViews=a._scheduler=a._api=a._zr=a._throttledZrFlush=a._theme=a._coordSysMgr=a._messageCenter=null,delete ri[a.id]},e.prototype.resize=function(t){if(!this[ge]){if(this._disposed){this.id;return}this._zr.resize(t);var a=this._model;if(this._loadingFX&&this._loadingFX.resize(),!!a){var n=a.resetOption("media"),i=t&&t.silent;this[Be]&&(i==null&&(i=this[Be].silent),n=!0,this[Be]=null),this[ge]=!0;try{n&&ki(this),Ma.update.call(this,{type:"resize",animation:V({duration:0},t&&t.animation)})}catch(o){throw this[ge]=!1,o}this[ge]=!1,jo.call(this,i),Jo.call(this,i)}}},e.prototype.showLoading=function(t,a){if(this._disposed){this.id;return}if(tt(t)&&(a=t,t=""),t=t||"default",this.hideLoading(),!!yd[t]){var n=yd[t](this._api,a),i=this._zr;this._loadingFX=n,i.add(n)}},e.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},e.prototype.makeActionFromEvent=function(t){var a=V({},t);return a.type=Gs[t.type],a},e.prototype.dispatchAction=function(t,a){if(this._disposed){this.id;return}if(tt(a)||(a={silent:!!a}),!!Nf[t.type]&&this._model){if(this[ge]){this._pendingActions.push(t);return}var n=a.silent;Jv.call(this,t,n);var i=a.flush;i?this._zr.flush():i!==!1&&yt.browser.weChat&&this._throttledZrFlush(),jo.call(this,n),Jo.call(this,n)}},e.prototype.updateLabelLayout=function(){Sr.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},e.prototype.appendData=function(t){if(this._disposed){this.id;return}var a=t.seriesIndex,n=this.getModel(),i=n.getSeriesByIndex(a);i.appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp()},e.internalField=function(){ki=function(h){var v=h._scheduler;v.restorePipelines(h._model),v.prepareStageTasks(),qv(h,!0),qv(h,!1),v.plan()},qv=function(h,v){for(var c=h._model,p=h._scheduler,d=v?h._componentsViews:h._chartsViews,g=v?h._componentsMap:h._chartsMap,y=h._zr,m=h._api,_=0;_v.get("hoverLayerThreshold")&&!yt.node&&!yt.worker&&v.eachSeries(function(g){if(!g.preventUsingHoverLayer){var y=h._chartsMap[g.__viewId];y.__alive&&y.eachRendered(function(m){m.states.emphasis&&(m.states.emphasis.hoverLayer=!0)})}})}function o(h,v){var c=h.get("blendMode")||null;v.eachRendered(function(p){p.isGroup||(p.style.blend=c)})}function s(h,v){if(!h.preventAutoZ){var c=h.get("z")||0,p=h.get("zlevel")||0;v.eachRendered(function(d){return l(d,c,p,-1/0),!0})}}function l(h,v,c,p){var d=h.getTextContent(),g=h.getTextGuideLine(),y=h.isGroup;if(y)for(var m=h.childrenRef(),_=0;_0?{duration:d,delay:c.get("delay"),easing:c.get("easing")}:null;v.eachRendered(function(y){if(y.states&&y.states.emphasis){if(ro(y))return;if(y instanceof mt&&BR(y),y.__dirty){var m=y.prevStates;m&&y.useStates(m)}if(p){y.stateTransition=g;var _=y.getTextContent(),S=y.getTextGuideLine();_&&(_.stateTransition=g),S&&(S.stateTransition=g)}y.__dirty&&n(y)}})}X_=function(h){return new(function(v){N(c,v);function c(){return v!==null&&v.apply(this,arguments)||this}return c.prototype.getCoordinateSystems=function(){return h._coordSysMgr.getCoordinateSystems()},c.prototype.getComponentByElement=function(p){for(;p;){var d=p.__ecComponentInfo;if(d!=null)return h._model.getComponent(d.mainType,d.index);p=p.parent}},c.prototype.enterEmphasis=function(p,d){ga(p,d),qe(h)},c.prototype.leaveEmphasis=function(p,d){ya(p,d),qe(h)},c.prototype.enterBlur=function(p){WT(p),qe(h)},c.prototype.leaveBlur=function(p){Og(p),qe(h)},c.prototype.enterSelect=function(p){UT(p),qe(h)},c.prototype.leaveSelect=function(p){YT(p),qe(h)},c.prototype.getModel=function(){return h.getModel()},c.prototype.getViewOfComponentModel=function(p){return h.getViewOfComponentModel(p)},c.prototype.getViewOfSeriesModel=function(p){return h.getViewOfSeriesModel(p)},c}(kA))(h)},LC=function(h){function v(c,p){for(var d=0;d=0)){Z_.push(t);var i=sC.wrapStageHandler(t,n);i.__prio=e,i.__raw=t,r.push(i)}}function _y(r,e){yd[r]=e}function mN(r){Iw({createCanvas:r})}function BC(r,e,t){var a=SC("registerMap");a&&a(r,e,t)}function _N(r){var e=SC("getMap");return e&&e(r)}var VC=Lk;ln(hy,rO);ln(zh,aO);ln(zh,nO);ln(hy,yO);ln(zh,mO);ln(wC,XO);gy(NA);yy(JO,fk);_y("default",iO);Rr({type:ti,event:ti,update:ti},Xt);Rr({type:Ju,event:Ju,update:Ju},Xt);Rr({type:Os,event:Os,update:Os},Xt);Rr({type:Qu,event:Qu,update:Qu},Xt);Rr({type:Ns,event:Ns,update:Ns},Xt);dy("light",dO);dy("dark",hC);var SN={},q_=[],xN={registerPreprocessor:gy,registerProcessor:yy,registerPostInit:EC,registerPostUpdate:kC,registerUpdateLifecycle:Gh,registerAction:Rr,registerCoordinateSystem:OC,registerLayout:NC,registerVisual:ln,registerTransform:VC,registerLoading:_y,registerMap:BC,registerImpl:$O,PRIORITY:TC,ComponentModel:gt,ComponentView:zt,SeriesModel:Et,ChartView:Lt,registerComponentModel:function(r){gt.registerClass(r)},registerComponentView:function(r){zt.registerClass(r)},registerSeriesModel:function(r){Et.registerClass(r)},registerChartView:function(r){Lt.registerClass(r)},registerSubTypeDefaulter:function(r,e){gt.registerSubTypeDefaulter(r,e)},registerPainter:function(r,e){vT(r,e)}};function pt(r){if(z(r)){D(r,function(e){pt(e)});return}vt(q_,r)>=0||(q_.push(r),K(r)&&(r={install:r}),r.install(xN))}function Qo(r){return r==null?0:r.length||1}function K_(r){return r}var ma=function(){function r(e,t,a,n,i,o){this._old=e,this._new=t,this._oldKeyGetter=a||K_,this._newKeyGetter=n||K_,this.context=i,this._diffModeMultiple=o==="multiple"}return r.prototype.add=function(e){return this._add=e,this},r.prototype.update=function(e){return this._update=e,this},r.prototype.updateManyToOne=function(e){return this._updateManyToOne=e,this},r.prototype.updateOneToMany=function(e){return this._updateOneToMany=e,this},r.prototype.updateManyToMany=function(e){return this._updateManyToMany=e,this},r.prototype.remove=function(e){return this._remove=e,this},r.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},r.prototype._executeOneToOne=function(){var e=this._old,t=this._new,a={},n=new Array(e.length),i=new Array(t.length);this._initIndexMap(e,null,n,"_oldKeyGetter"),this._initIndexMap(t,a,i,"_newKeyGetter");for(var o=0;o1){var f=l.shift();l.length===1&&(a[s]=l[0]),this._update&&this._update(f,o)}else u===1?(a[s]=null,this._update&&this._update(l,o)):this._remove&&this._remove(o)}this._performRestAdd(i,a)},r.prototype._executeMultiple=function(){var e=this._old,t=this._new,a={},n={},i=[],o=[];this._initIndexMap(e,a,i,"_oldKeyGetter"),this._initIndexMap(t,n,o,"_newKeyGetter");for(var s=0;s1&&v===1)this._updateManyToOne&&this._updateManyToOne(f,u),n[l]=null;else if(h===1&&v>1)this._updateOneToMany&&this._updateOneToMany(f,u),n[l]=null;else if(h===1&&v===1)this._update&&this._update(f,u),n[l]=null;else if(h>1&&v>1)this._updateManyToMany&&this._updateManyToMany(f,u),n[l]=null;else if(h>1)for(var c=0;c1)for(var s=0;s30}var ts=tt,Ia=G,DN=typeof Int32Array>"u"?Array:Int32Array,MN="e\0\0",j_=-1,IN=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],LN=["_approximateExtent"],J_,gu,es,rs,ec,as,rc,xe=function(){function r(e,t){this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","minmaxDownSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","minmaxDownSample","lttbDownSample"];var a,n=!1;GC(e)?(a=e.dimensions,this._dimOmitted=e.isDimensionOmitted(),this._schema=e):(n=!0,a=e),a=a||["x","y"];for(var i={},o=[],s={},l=!1,u={},f=0;f=t)){var a=this._store,n=a.getProvider();this._updateOrdinalMeta();var i=this._nameList,o=this._idList,s=n.getSource().sourceFormat,l=s===cr;if(l&&!n.pure)for(var u=[],f=e;f0},r.prototype.ensureUniqueItemVisual=function(e,t){var a=this._itemVisuals,n=a[e];n||(n=a[e]={});var i=n[t];return i==null&&(i=this.getVisual(t),z(i)?i=i.slice():ts(i)&&(i=V({},i)),n[t]=i),i},r.prototype.setItemVisual=function(e,t,a){var n=this._itemVisuals[e]||{};this._itemVisuals[e]=n,ts(t)?V(n,t):n[t]=a},r.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},r.prototype.setLayout=function(e,t){ts(e)?V(this._layout,e):this._layout[e]=t},r.prototype.getLayout=function(e){return this._layout[e]},r.prototype.getItemLayout=function(e){return this._itemLayouts[e]},r.prototype.setItemLayout=function(e,t,a){this._itemLayouts[e]=a?V(this._itemLayouts[e]||{},t):t},r.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},r.prototype.setItemGraphicEl=function(e,t){var a=this.hostModel&&this.hostModel.seriesIndex;qp(a,this.dataType,e,t),this._graphicEls[e]=t},r.prototype.getItemGraphicEl=function(e){return this._graphicEls[e]},r.prototype.eachItemGraphicEl=function(e,t){D(this._graphicEls,function(a,n){a&&e&&e.call(t,a,n)})},r.prototype.cloneShallow=function(e){return e||(e=new r(this._schema?this._schema:Ia(this.dimensions,this._getDimInfo,this),this.hostModel)),ec(e,this),e._store=this._store,e},r.prototype.wrapMethod=function(e,t){var a=this[e];K(a)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(e),this[e]=function(){var n=a.apply(this,arguments);return t.apply(this,[n].concat(vh(arguments)))})},r.internalField=function(){J_=function(e){var t=e._invertedIndicesMap;D(t,function(a,n){var i=e._dimInfos[n],o=i.ordinalMeta,s=e._store;if(o){a=t[n]=new DN(o.categories.length);for(var l=0;l1&&(l+="__ec__"+f),n[t]=l}}}(),r}();function PN(r,e){return No(r,e).dimensions}function No(r,e){ny(r)||(r=iy(r)),e=e||{};var t=e.coordDimensions||[],a=e.dimensionsDefine||r.dimensionsDefine||[],n=Z(),i=[],o=EN(r,t,a,e.dimensionsCount),s=e.canOmitUnusedDimensions&&WC(o),l=a===r.dimensionsDefine,u=l?HC(r):FC(a),f=e.encodeDefine;!f&&e.encodeDefaulter&&(f=e.encodeDefaulter(r,o));for(var h=Z(f),v=new $A(o),c=0;c0&&(a.name=n+(i-1)),i++,e.set(n,i)}}function EN(r,e,t,a){var n=Math.max(r.dimensionsDetectedCount||1,e.length,t.length,a||0);return D(e,function(i){var o;tt(i)&&(o=i.dimsDef)&&(n=Math.max(n,o.length))}),n}function kN(r,e,t){if(t||e.hasKey(r)){for(var a=0;e.hasKey(r+a);)a++;r+=a}return e.set(r,!0),r}var ON=function(){function r(e){this.coordSysDims=[],this.axisMap=Z(),this.categoryAxisMap=Z(),this.coordSysName=e}return r}();function NN(r){var e=r.get("coordinateSystem"),t=new ON(e),a=BN[e];if(a)return a(r,t,t.axisMap,t.categoryAxisMap),t}var BN={cartesian2d:function(r,e,t,a){var n=r.getReferringComponents("xAxis",jt).models[0],i=r.getReferringComponents("yAxis",jt).models[0];e.coordSysDims=["x","y"],t.set("x",n),t.set("y",i),Oi(n)&&(a.set("x",n),e.firstCategoryDimIndex=0),Oi(i)&&(a.set("y",i),e.firstCategoryDimIndex==null&&(e.firstCategoryDimIndex=1))},singleAxis:function(r,e,t,a){var n=r.getReferringComponents("singleAxis",jt).models[0];e.coordSysDims=["single"],t.set("single",n),Oi(n)&&(a.set("single",n),e.firstCategoryDimIndex=0)},polar:function(r,e,t,a){var n=r.getReferringComponents("polar",jt).models[0],i=n.findAxisModel("radiusAxis"),o=n.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],t.set("radius",i),t.set("angle",o),Oi(i)&&(a.set("radius",i),e.firstCategoryDimIndex=0),Oi(o)&&(a.set("angle",o),e.firstCategoryDimIndex==null&&(e.firstCategoryDimIndex=1))},geo:function(r,e,t,a){e.coordSysDims=["lng","lat"]},parallel:function(r,e,t,a){var n=r.ecModel,i=n.getComponent("parallel",r.get("parallelIndex")),o=e.coordSysDims=i.dimensions.slice();D(i.parallelAxisIndex,function(s,l){var u=n.getComponent("parallelAxis",s),f=o[l];t.set(f,u),Oi(u)&&(a.set(f,u),e.firstCategoryDimIndex==null&&(e.firstCategoryDimIndex=l))})}};function Oi(r){return r.get("type")==="category"}function UC(r,e,t){t=t||{};var a=t.byIndex,n=t.stackedCoordDimension,i,o,s;VN(e)?i=e:(o=e.schema,i=o.dimensions,s=e.store);var l=!!(r&&r.get("stack")),u,f,h,v;if(D(i,function(m,_){Y(m)&&(i[_]=m={name:m}),l&&!m.isExtraCoord&&(!a&&!u&&m.ordinalMeta&&(u=m),!f&&m.type!=="ordinal"&&m.type!=="time"&&(!n||n===m.coordDim)&&(f=m))}),f&&!a&&!u&&(a=!0),f){h="__\0ecstackresult_"+r.id,v="__\0ecstackedover_"+r.id,u&&(u.createInvertedIndices=!0);var c=f.coordDim,p=f.type,d=0;D(i,function(m){m.coordDim===c&&d++});var g={name:h,coordDim:c,coordDimIndex:d,type:p,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:i.length},y={name:v,coordDim:v,coordDimIndex:d+1,type:p,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:i.length+1};o?(s&&(g.storeDimIndex=s.ensureCalculationDimension(v,p),y.storeDimIndex=s.ensureCalculationDimension(h,p)),o.appendCalculationDimension(g),o.appendCalculationDimension(y)):(i.push(g),i.push(y))}return{stackedDimension:f&&f.name,stackedByDimension:u&&u.name,isStackedByIndex:a,stackedOverDimension:v,stackResultDimension:h}}function VN(r){return!GC(r.schema)}function _a(r,e){return!!e&&e===r.getCalculationInfo("stackedDimension")}function Sy(r,e){return _a(r,e)?r.getCalculationInfo("stackResultDimension"):e}function zN(r,e){var t=r.get("coordinateSystem"),a=Ro.get(t),n;return e&&e.coordSysDims&&(n=G(e.coordSysDims,function(i){var o={name:i},s=e.axisMap.get(i);if(s){var l=s.get("type");o.type=zf(l)}return o})),n||(n=a&&(a.getDimensionsInfo?a.getDimensionsInfo():a.dimensions.slice())||["x","y"]),n}function GN(r,e,t){var a,n;return t&&D(r,function(i,o){var s=i.coordDim,l=t.categoryAxisMap.get(s);l&&(a==null&&(a=o),i.ordinalMeta=l.getOrdinalMeta(),e&&(i.createInvertedIndices=!0)),i.otherDims.itemName!=null&&(n=!0)}),!n&&a!=null&&(r[a].otherDims.itemName=0),a}function ea(r,e,t){t=t||{};var a=e.getSourceManager(),n,i=!1;r?(i=!0,n=iy(r)):(n=a.getSource(),i=n.sourceFormat===cr);var o=NN(e),s=zN(e,o),l=t.useEncodeDefaulter,u=K(l)?l:l?lt(LA,s,e):null,f={coordDimensions:s,generateCoord:t.generateCoord,encodeDefine:e.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!i},h=No(n,f),v=GN(h.dimensions,t.createInvertedIndices,o),c=i?null:a.getSharedDataStore(h),p=UC(e,{schema:h,store:c}),d=new xe(h,e);d.setCalculationInfo(p);var g=v!=null&&FN(n)?function(y,m,_,S){return S===v?_:this.defaultDimValueGetter(y,m,_,S)}:null;return d.hasItemOption=!1,d.initData(i?n:c,null,g),d}function FN(r){if(r.sourceFormat===cr){var e=HN(r.data||[]);return!z(xo(e))}}function HN(r){for(var e=0;et[1]&&(t[1]=e[1])},r.prototype.unionExtentFromData=function(e,t){this.unionExtent(e.getApproximateExtent(t))},r.prototype.getExtent=function(){return this._extent.slice()},r.prototype.setExtent=function(e,t){var a=this._extent;isNaN(e)||(a[0]=e),isNaN(t)||(a[1]=t)},r.prototype.isInExtentRange=function(e){return this._extent[0]<=e&&this._extent[1]>=e},r.prototype.isBlank=function(){return this._isBlank},r.prototype.setBlank=function(e){this._isBlank=e},r}();Sh(ra);var WN=0,md=function(){function r(e){this.categories=e.categories||[],this._needCollect=e.needCollect,this._deduplication=e.deduplication,this.uid=++WN}return r.createByAxisModel=function(e){var t=e.option,a=t.data,n=a&&G(a,UN);return new r({categories:n,needCollect:!n,deduplication:t.dedplication!==!1})},r.prototype.getOrdinal=function(e){return this._getOrCreateMap().get(e)},r.prototype.parseAndCollect=function(e){var t,a=this._needCollect;if(!Y(e)&&!a)return e;if(a&&!this._deduplication)return t=this.categories.length,this.categories[t]=e,t;var n=this._getOrCreateMap();return t=n.get(e),t==null&&(a?(t=this.categories.length,this.categories[t]=e,n.set(e,t)):t=NaN),t},r.prototype._getOrCreateMap=function(){return this._map||(this._map=Z(this.categories))},r}();function UN(r){return tt(r)&&r.value!=null?r.value:r+""}function _d(r){return r.type==="interval"||r.type==="log"}function YN(r,e,t,a){var n={},i=r[1]-r[0],o=n.interval=Ag(i/e,!0);t!=null&&oa&&(o=n.interval=a);var s=n.intervalPrecision=YC(o),l=n.niceTickExtent=[Ut(Math.ceil(r[0]/o)*o,s),Ut(Math.floor(r[1]/o)*o,s)];return XN(l,r),n}function ac(r){var e=Math.pow(10,_h(r)),t=r/e;return t?t===2?t=3:t===3?t=5:t*=2:t=1,Ut(t*e)}function YC(r){return br(r)+2}function Q_(r,e,t){r[e]=Math.max(Math.min(r[e],t[1]),t[0])}function XN(r,e){!isFinite(r[0])&&(r[0]=e[0]),!isFinite(r[1])&&(r[1]=e[1]),Q_(r,0,e),Q_(r,1,e),r[0]>r[1]&&(r[0]=r[1])}function Fh(r,e){return r>=e[0]&&r<=e[1]}function Hh(r,e){return e[1]===e[0]?.5:(r-e[0])/(e[1]-e[0])}function Wh(r,e){return r*(e[1]-e[0])+e[0]}var Uh=function(r){N(e,r);function e(t){var a=r.call(this,t)||this;a.type="ordinal";var n=a.getSetting("ordinalMeta");return n||(n=new md({})),z(n)&&(n=new md({categories:G(n,function(i){return tt(i)?i.value:i})})),a._ordinalMeta=n,a._extent=a.getSetting("extent")||[0,n.categories.length-1],a}return e.prototype.parse=function(t){return t==null?NaN:Y(t)?this._ordinalMeta.getOrdinal(t):Math.round(t)},e.prototype.contain=function(t){return t=this.parse(t),Fh(t,this._extent)&&this._ordinalMeta.categories[t]!=null},e.prototype.normalize=function(t){return t=this._getTickNumber(this.parse(t)),Hh(t,this._extent)},e.prototype.scale=function(t){return t=Math.round(Wh(t,this._extent)),this.getRawOrdinalNumber(t)},e.prototype.getTicks=function(){for(var t=[],a=this._extent,n=a[0];n<=a[1];)t.push({value:n}),n++;return t},e.prototype.getMinorTicks=function(t){},e.prototype.setSortInfo=function(t){if(t==null){this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;return}for(var a=t.ordinalNumbers,n=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],o=0,s=this._ordinalMeta.categories.length,l=Math.min(s,a.length);o=0&&t=0&&t=t},e.prototype.getOrdinalMeta=function(){return this._ordinalMeta},e.prototype.calcNiceTicks=function(){},e.prototype.calcNiceExtent=function(){},e.type="ordinal",e}(ra);ra.registerClass(Uh);var In=Ut,Sa=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type="interval",t._interval=0,t._intervalPrecision=2,t}return e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return Fh(t,this._extent)},e.prototype.normalize=function(t){return Hh(t,this._extent)},e.prototype.scale=function(t){return Wh(t,this._extent)},e.prototype.setExtent=function(t,a){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(a)||(n[1]=parseFloat(a))},e.prototype.unionExtent=function(t){var a=this._extent;t[0]a[1]&&(a[1]=t[1]),this.setExtent(a[0],a[1])},e.prototype.getInterval=function(){return this._interval},e.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=YC(t)},e.prototype.getTicks=function(t){var a=this._interval,n=this._extent,i=this._niceExtent,o=this._intervalPrecision,s=[];if(!a)return s;var l=1e4;n[0]l)return[];var f=s.length?s[s.length-1].value:i[1];return n[1]>f&&(t?s.push({value:In(f+a,o)}):s.push({value:n[1]})),s},e.prototype.getMinorTicks=function(t){for(var a=this.getTicks(!0),n=[],i=this.getExtent(),o=1;oi[0]&&c0&&(i=i===null?s:Math.min(i,s))}t[a]=i}}return t}function qC(r){var e=qN(r),t=[];return D(r,function(a){var n=a.coordinateSystem,i=n.getBaseAxis(),o=i.getExtent(),s;if(i.type==="category")s=i.getBandWidth();else if(i.type==="value"||i.type==="time"){var l=i.dim+"_"+i.index,u=e[l],f=Math.abs(o[1]-o[0]),h=i.scale.getExtent(),v=Math.abs(h[1]-h[0]);s=u?f/v*u:f}else{var c=a.getData();s=Math.abs(o[1]-o[0])/c.count()}var p=W(a.get("barWidth"),s),d=W(a.get("barMaxWidth"),s),g=W(a.get("barMinWidth")||(tD(a)?.5:1),s),y=a.get("barGap"),m=a.get("barCategoryGap");t.push({bandWidth:s,barWidth:p,barMaxWidth:d,barMinWidth:g,barGap:y,barCategoryGap:m,axisKey:xy(i),stackId:$C(a)})}),KC(t)}function KC(r){var e={};D(r,function(a,n){var i=a.axisKey,o=a.bandWidth,s=e[i]||{bandWidth:o,remainedWidth:o,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},l=s.stacks;e[i]=s;var u=a.stackId;l[u]||s.autoWidthCount++,l[u]=l[u]||{width:0,maxWidth:0};var f=a.barWidth;f&&!l[u].width&&(l[u].width=f,f=Math.min(s.remainedWidth,f),s.remainedWidth-=f);var h=a.barMaxWidth;h&&(l[u].maxWidth=h);var v=a.barMinWidth;v&&(l[u].minWidth=v);var c=a.barGap;c!=null&&(s.gap=c);var p=a.barCategoryGap;p!=null&&(s.categoryGap=p)});var t={};return D(e,function(a,n){t[n]={};var i=a.stacks,o=a.bandWidth,s=a.categoryGap;if(s==null){var l=_t(i).length;s=Math.max(35-l*4,15)+"%"}var u=W(s,o),f=W(a.gap,1),h=a.remainedWidth,v=a.autoWidthCount,c=(h-u)/(v+(v-1)*f);c=Math.max(c,0),D(i,function(y){var m=y.maxWidth,_=y.minWidth;if(y.width){var S=y.width;m&&(S=Math.min(S,m)),_&&(S=Math.max(S,_)),y.width=S,h-=S+f*S,v--}else{var S=c;m&&mS&&(S=_),S!==c&&(y.width=S,h-=S+f*S,v--)}}),c=(h-u)/(v+(v-1)*f),c=Math.max(c,0);var p=0,d;D(i,function(y,m){y.width||(y.width=c),d=y,p+=y.width*(1+f)}),d&&(p-=d.width*f);var g=-p/2;D(i,function(y,m){t[n][m]=t[n][m]||{bandWidth:o,offset:g,width:y.width},g+=y.width*(1+f)})}),t}function KN(r,e,t){if(r&&e){var a=r[xy(e)];return a}}function jC(r,e){var t=ZC(r,e),a=qC(t);D(t,function(n){var i=n.getData(),o=n.coordinateSystem,s=o.getBaseAxis(),l=$C(n),u=a[xy(s)][l],f=u.offset,h=u.width;i.setLayout({bandWidth:u.bandWidth,offset:f,size:h})})}function JC(r){return{seriesType:r,plan:Eo(),reset:function(e){if(QC(e)){var t=e.getData(),a=e.coordinateSystem,n=a.getBaseAxis(),i=a.getOtherAxis(n),o=t.getDimensionIndex(t.mapDimension(i.dim)),s=t.getDimensionIndex(t.mapDimension(n.dim)),l=e.get("showBackground",!0),u=t.mapDimension(i.dim),f=t.getCalculationInfo("stackResultDimension"),h=_a(t,u)&&!!t.getCalculationInfo("stackedOnSeries"),v=i.isHorizontal(),c=jN(n,i),p=tD(e),d=e.get("barMinHeight")||0,g=f&&t.getDimensionIndex(f),y=t.getLayout("size"),m=t.getLayout("offset");return{progress:function(_,S){for(var b=_.count,x=p&&Ur(b*3),w=p&&l&&Ur(b*3),T=p&&Ur(b),A=a.master.getRect(),C=v?A.width:A.height,M,I=S.getStore(),L=0;(M=_.next())!=null;){var P=I.get(h?g:o,M),R=I.get(s,M),E=c,O=void 0;h&&(O=+P-I.get(o,M));var k=void 0,B=void 0,F=void 0,H=void 0;if(v){var U=a.dataToPoint([P,R]);if(h){var j=a.dataToPoint([O,R]);E=j[0]}k=E,B=U[1]+m,F=U[0]-E,H=y,Math.abs(F)0?t:1:t))}var JN=function(r,e,t,a){for(;t>>1;r[n][1]n&&(this._approxInterval=n);var s=yu.length,l=Math.min(JN(yu,this._approxInterval,0,s),s-1);this._interval=yu[l][1],this._minLevelUnit=yu[Math.max(l-1,0)][0]},e.prototype.parse=function(t){return wt(t)?t:+Ze(t)},e.prototype.contain=function(t){return Fh(this.parse(t),this._extent)},e.prototype.normalize=function(t){return Hh(this.parse(t),this._extent)},e.prototype.scale=function(t){return Wh(t,this._extent)},e.type="time",e}(Sa),yu=[["second",$g],["minute",Zg],["hour",Vs],["quarter-day",Vs*6],["half-day",Vs*12],["day",or*1.2],["half-week",or*3.5],["week",or*7],["month",or*31],["quarter",or*95],["half-year",W0/2],["year",W0]];function QN(r,e,t,a){var n=Ze(e),i=Ze(t),o=function(p){return Y0(n,p,a)===Y0(i,p,a)},s=function(){return o("year")},l=function(){return s()&&o("month")},u=function(){return l()&&o("day")},f=function(){return u()&&o("hour")},h=function(){return f()&&o("minute")},v=function(){return h()&&o("second")},c=function(){return v()&&o("millisecond")};switch(r){case"year":return s();case"month":return l();case"day":return u();case"hour":return f();case"minute":return h();case"second":return v();case"millisecond":return c()}}function tB(r,e){return r/=or,r>16?16:r>7.5?7:r>3.5?4:r>1.5?2:1}function eB(r){var e=30*or;return r/=e,r>6?6:r>3?3:r>2?2:1}function rB(r){return r/=Vs,r>12?12:r>6?6:r>3.5?4:r>2?2:1}function t1(r,e){return r/=e?Zg:$g,r>30?30:r>20?20:r>15?15:r>10?10:r>5?5:r>2?2:1}function aB(r){return Ag(r,!0)}function nB(r,e,t){var a=new Date(r);switch(no(e)){case"year":case"month":a[yA(t)](0);case"day":a[mA(t)](1);case"hour":a[_A(t)](0);case"minute":a[SA(t)](0);case"second":a[xA(t)](0),a[bA(t)](0)}return a.getTime()}function iB(r,e,t,a){var n=1e4,i=dA,o=0;function s(C,M,I,L,P,R,E){for(var O=new Date(M),k=M,B=O[L]();k1&&R===0&&I.unshift({value:I[0].value-k})}}for(var R=0;R=a[0]&&m<=a[1]&&h++)}var _=(a[1]-a[0])/e;if(h>_*1.5&&v>_/1.5||(u.push(g),h>_||r===i[c]))break}f=[]}}}for(var S=At(G(u,function(C){return At(C,function(M){return M.value>=a[0]&&M.value<=a[1]&&!M.notAdd})}),function(C){return C.length>0}),b=[],x=S.length-1,c=0;c0;)i*=10;var s=[Ut(lB(a[0]/i)*i),Ut(sB(a[1]/i)*i)];this._interval=i,this._niceExtent=s}},e.prototype.calcNiceExtent=function(t){Fs.calcNiceExtent.call(this,t),this._fixMin=t.fixMin,this._fixMax=t.fixMax},e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return t=yr(t)/yr(this.base),Fh(t,this._extent)},e.prototype.normalize=function(t){return t=yr(t)/yr(this.base),Hh(t,this._extent)},e.prototype.scale=function(t){return t=Wh(t,this._extent),mu(this.base,t)},e.type="log",e}(ra),eD=wy.prototype;eD.getMinorTicks=Fs.getMinorTicks;eD.getLabel=Fs.getLabel;function _u(r,e){return oB(r,br(e))}ra.registerClass(wy);var uB=function(){function r(e,t,a){this._prepareParams(e,t,a)}return r.prototype._prepareParams=function(e,t,a){a[1]0&&l>0&&!u&&(s=0),s<0&&l<0&&!f&&(l=0));var v=this._determinedMin,c=this._determinedMax;return v!=null&&(s=v,u=!0),c!=null&&(l=c,f=!0),{min:s,max:l,minFixed:u,maxFixed:f,isBlank:h}},r.prototype.modifyDataMinMax=function(e,t){this[hB[e]]=t},r.prototype.setDeterminedMinMax=function(e,t){var a=fB[e];this[a]=t},r.prototype.freeze=function(){this.frozen=!0},r}(),fB={min:"_determinedMin",max:"_determinedMax"},hB={min:"_dataMin",max:"_dataMax"};function rD(r,e,t){var a=r.rawExtentInfo;return a||(a=new uB(r,e,t),r.rawExtentInfo=a,a)}function Su(r,e){return e==null?null:so(e)?NaN:r.parse(e)}function aD(r,e){var t=r.type,a=rD(r,e,r.getExtent()).calculate();r.setBlank(a.isBlank);var n=a.min,i=a.max,o=e.ecModel;if(o&&t==="time"){var s=ZC("bar",o),l=!1;if(D(s,function(h){l=l||h.getBaseAxis()===e.axis}),l){var u=qC(s),f=vB(n,i,e,u);n=f.min,i=f.max}}return{extent:[n,i],fixMin:a.minFixed,fixMax:a.maxFixed}}function vB(r,e,t,a){var n=t.axis.getExtent(),i=Math.abs(n[1]-n[0]),o=KN(a,t.axis);if(o===void 0)return{min:r,max:e};var s=1/0;D(o,function(c){s=Math.min(c.offset,s)});var l=-1/0;D(o,function(c){l=Math.max(c.offset+c.width,l)}),s=Math.abs(s),l=Math.abs(l);var u=s+l,f=e-r,h=1-(s+l)/i,v=f/h-f;return e+=v*(l/u),r-=v*(s/u),{min:r,max:e}}function hi(r,e){var t=e,a=aD(r,t),n=a.extent,i=t.get("splitNumber");r instanceof wy&&(r.base=t.get("logBase"));var o=r.type,s=t.get("interval"),l=o==="interval"||o==="time";r.setExtent(n[0],n[1]),r.calcNiceExtent({splitNumber:i,fixMin:a.fixMin,fixMax:a.fixMax,minInterval:l?t.get("minInterval"):null,maxInterval:l?t.get("maxInterval"):null}),s!=null&&r.setInterval&&r.setInterval(s)}function El(r,e){if(e=e||r.get("type"),e)switch(e){case"category":return new Uh({ordinalMeta:r.getOrdinalMeta?r.getOrdinalMeta():r.getCategories(),extent:[1/0,-1/0]});case"time":return new by({locale:r.ecModel.getLocaleModel(),useUTC:r.ecModel.get("useUTC")});default:return new(ra.getClass(e)||Sa)}}function cB(r){var e=r.scale.getExtent(),t=e[0],a=e[1];return!(t>0&&a>0||t<0&&a<0)}function Bo(r){var e=r.getLabelModel().get("formatter"),t=r.type==="category"?r.scale.getExtent()[0]:null;return r.scale.type==="time"?function(a){return function(n,i){return r.scale.getFormattedLabel(n,i,a)}}(e):Y(e)?function(a){return function(n){var i=r.scale.getLabel(n),o=a.replace("{value}",i??"");return o}}(e):K(e)?function(a){return function(n,i){return t!=null&&(i=n.value-t),a(Ty(r,n),i,n.level!=null?{level:n.level}:null)}}(e):function(a){return r.scale.getLabel(a)}}function Ty(r,e){return r.type==="category"?r.scale.getLabel(e):e.value}function pB(r){var e=r.model,t=r.scale;if(!(!e.get(["axisLabel","show"])||t.isBlank())){var a,n,i=t.getExtent();t instanceof Uh?n=t.count():(a=t.getTicks(),n=a.length);var o=r.getLabelModel(),s=Bo(r),l,u=1;n>40&&(u=Math.ceil(n/40));for(var f=0;fr[1]&&(r[1]=n[1])})}var Vo=function(){function r(){}return r.prototype.getNeedCrossZero=function(){var e=this.option;return!e.scale},r.prototype.getCoordSysModel=function(){},r}();function yB(r){return ea(null,r)}var mB={isDimensionStacked:_a,enableDataStack:UC,getStackedDimension:Sy};function _B(r,e){var t=e;e instanceof Ct||(t=new Ct(e));var a=El(t);return a.setExtent(r[0],r[1]),hi(a,t),a}function SB(r){$t(r,Vo)}function xB(r,e){return e=e||{},Nt(r,null,null,e.state!=="normal")}const bB=Object.freeze(Object.defineProperty({__proto__:null,createDimensions:PN,createList:yB,createScale:_B,createSymbol:qt,createTextStyle:xB,dataStack:mB,enableHoverEmphasis:Xa,getECData:nt,getLayoutRect:Jt,mixinAxisModelCommonMethods:SB},Symbol.toStringTag,{value:"Module"}));var wB=1e-8;function r1(r,e){return Math.abs(r-e)n&&(a=o,n=l)}if(a)return AB(a.exterior);var u=this.getBoundingRect();return[u.x+u.width/2,u.y+u.height/2]},e.prototype.getBoundingRect=function(t){var a=this._rect;if(a&&!t)return a;var n=[1/0,1/0],i=[-1/0,-1/0],o=this.geometries;return D(o,function(s){s.type==="polygon"?a1(s.exterior,n,i,t):D(s.points,function(l){a1(l,n,i,t)})}),isFinite(n[0])&&isFinite(n[1])&&isFinite(i[0])&&isFinite(i[1])||(n[0]=n[1]=i[0]=i[1]=0),a=new ht(n[0],n[1],i[0]-n[0],i[1]-n[1]),t||(this._rect=a),a},e.prototype.contain=function(t){var a=this.getBoundingRect(),n=this.geometries;if(!a.contain(t[0],t[1]))return!1;t:for(var i=0,o=n.length;i>1^-(s&1),l=l>>1^-(l&1),s+=n,l+=i,n=s,i=l,a.push([s/t,l/t])}return a}function xd(r,e){return r=DB(r),G(At(r.features,function(t){return t.geometry&&t.properties&&t.geometry.coordinates.length>0}),function(t){var a=t.properties,n=t.geometry,i=[];switch(n.type){case"Polygon":var o=n.coordinates;i.push(new n1(o[0],o.slice(1)));break;case"MultiPolygon":D(n.coordinates,function(l){l[0]&&i.push(new n1(l[0],l.slice(1)))});break;case"LineString":i.push(new i1([n.coordinates]));break;case"MultiLineString":i.push(new i1(n.coordinates))}var s=new oD(a[e||"name"],i,a.cp);return s.properties=a,s})}const MB=Object.freeze(Object.defineProperty({__proto__:null,MAX_SAFE_INTEGER:Wp,asc:Ye,getPercentWithPrecision:uP,getPixelPrecision:wg,getPrecision:br,getPrecisionSafe:gT,isNumeric:Cg,isRadianAroundZero:uo,linearMap:Dt,nice:Ag,numericToNumber:jr,parseDate:Ze,quantile:ju,quantity:mT,quantityExponent:_h,reformIntervals:Up,remRadian:Tg,round:Ut},Symbol.toStringTag,{value:"Module"})),IB=Object.freeze(Object.defineProperty({__proto__:null,format:Pl,parse:Ze},Symbol.toStringTag,{value:"Module"})),LB=Object.freeze(Object.defineProperty({__proto__:null,Arc:Ml,BezierCurve:To,BoundingRect:ht,Circle:Qr,CompoundPath:Ch,Ellipse:Dl,Group:at,Image:le,IncrementalDisplayable:rA,Line:te,LinearGradient:Ao,Polygon:Te,Polyline:Ce,RadialGradient:Vg,Rect:xt,Ring:wo,Sector:we,Text:St,clipPointsByRect:Hg,clipRectByRect:sA,createIcon:Do,extendPath:iA,extendShape:nA,getShapeClass:Dh,getTransform:$a,initProps:Gt,makeImage:Gg,makePath:Il,mergePath:Ue,registerShape:vr,resizePath:Fg,updateProps:Tt},Symbol.toStringTag,{value:"Module"})),PB=Object.freeze(Object.defineProperty({__proto__:null,addCommas:Kg,capitalFirst:kE,encodeHTML:Se,formatTime:EE,formatTpl:Jg,getTextRect:PE,getTooltipMarker:wA,normalizeCssArray:mi,toCamelCase:jg,truncateText:zP},Symbol.toStringTag,{value:"Module"})),RB=Object.freeze(Object.defineProperty({__proto__:null,bind:X,clone:rt,curry:lt,defaults:J,each:D,extend:V,filter:At,indexOf:vt,inherits:dg,isArray:z,isFunction:K,isObject:tt,isString:Y,map:G,merge:ut,reduce:ur},Symbol.toStringTag,{value:"Module"}));var sl=bt();function lD(r,e){var t=G(e,function(a){return r.scale.parse(a)});return r.type==="time"&&t.length>0&&(t.sort(),t.unshift(t[0]),t.push(t[t.length-1])),t}function EB(r){var e=r.getLabelModel().get("customValues");if(e){var t=Bo(r),a=r.scale.getExtent(),n=lD(r,e),i=At(n,function(o){return o>=a[0]&&o<=a[1]});return{labels:G(i,function(o){var s={value:o};return{formattedLabel:t(s),rawLabel:r.scale.getLabel(s),tickValue:o}})}}return r.type==="category"?OB(r):BB(r)}function kB(r,e){var t=r.getTickModel().get("customValues");if(t){var a=r.scale.getExtent(),n=lD(r,t);return{ticks:At(n,function(i){return i>=a[0]&&i<=a[1]})}}return r.type==="category"?NB(r,e):{ticks:G(r.scale.getTicks(),function(i){return i.value})}}function OB(r){var e=r.getLabelModel(),t=uD(r,e);return!e.get("show")||r.scale.isBlank()?{labels:[],labelCategoryInterval:t.labelCategoryInterval}:t}function uD(r,e){var t=fD(r,"labels"),a=Ay(e),n=hD(t,a);if(n)return n;var i,o;return K(a)?i=pD(r,a):(o=a==="auto"?VB(r):a,i=cD(r,o)),vD(t,a,{labels:i,labelCategoryInterval:o})}function NB(r,e){var t=fD(r,"ticks"),a=Ay(e),n=hD(t,a);if(n)return n;var i,o;if((!e.get("show")||r.scale.isBlank())&&(i=[]),K(a))i=pD(r,a,!0);else if(a==="auto"){var s=uD(r,r.getLabelModel());o=s.labelCategoryInterval,i=G(s.labels,function(l){return l.tickValue})}else o=a,i=cD(r,o,!0);return vD(t,a,{ticks:i,tickCategoryInterval:o})}function BB(r){var e=r.scale.getTicks(),t=Bo(r);return{labels:G(e,function(a,n){return{level:a.level,formattedLabel:t(a,n),rawLabel:r.scale.getLabel(a),tickValue:a.value}})}}function fD(r,e){return sl(r)[e]||(sl(r)[e]=[])}function hD(r,e){for(var t=0;t40&&(s=Math.max(1,Math.floor(o/40)));for(var l=i[0],u=r.dataToCoord(l+1)-r.dataToCoord(l),f=Math.abs(u*Math.cos(a)),h=Math.abs(u*Math.sin(a)),v=0,c=0;l<=i[1];l+=s){var p=0,d=0,g=Tl(t({value:l}),e.font,"center","top");p=g.width*1.3,d=g.height*1.3,v=Math.max(v,p,7),c=Math.max(c,d,7)}var y=v/f,m=c/h;isNaN(y)&&(y=1/0),isNaN(m)&&(m=1/0);var _=Math.max(0,Math.floor(Math.min(y,m))),S=sl(r.model),b=r.getExtent(),x=S.lastAutoInterval,w=S.lastTickCount;return x!=null&&w!=null&&Math.abs(x-_)<=1&&Math.abs(w-o)<=1&&x>_&&S.axisExtent0===b[0]&&S.axisExtent1===b[1]?_=x:(S.lastTickCount=o,S.lastAutoInterval=_,S.axisExtent0=b[0],S.axisExtent1=b[1]),_}function GB(r){var e=r.getLabelModel();return{axisRotate:r.getRotate?r.getRotate():r.isHorizontal&&!r.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}function cD(r,e,t){var a=Bo(r),n=r.scale,i=n.getExtent(),o=r.getLabelModel(),s=[],l=Math.max((e||0)+1,1),u=i[0],f=n.count();u!==0&&l>1&&f/l>2&&(u=Math.round(Math.ceil(u/l)*l));var h=nD(r),v=o.get("showMinLabel")||h,c=o.get("showMaxLabel")||h;v&&u!==i[0]&&d(i[0]);for(var p=u;p<=i[1];p+=l)d(p);c&&p-l!==i[1]&&d(i[1]);function d(g){var y={value:g};s.push(t?g:{formattedLabel:a(y),rawLabel:n.getLabel(y),tickValue:g})}return s}function pD(r,e,t){var a=r.scale,n=Bo(r),i=[];return D(a.getTicks(),function(o){var s=a.getLabel(o),l=o.value;e(o.value,s)&&i.push(t?l:{formattedLabel:n(o),rawLabel:s,tickValue:l})}),i}var o1=[0,1],dr=function(){function r(e,t,a){this.onBand=!1,this.inverse=!1,this.dim=e,this.scale=t,this._extent=a||[0,0]}return r.prototype.contain=function(e){var t=this._extent,a=Math.min(t[0],t[1]),n=Math.max(t[0],t[1]);return e>=a&&e<=n},r.prototype.containData=function(e){return this.scale.contain(e)},r.prototype.getExtent=function(){return this._extent.slice()},r.prototype.getPixelPrecision=function(e){return wg(e||this.scale.getExtent(),this._extent)},r.prototype.setExtent=function(e,t){var a=this._extent;a[0]=e,a[1]=t},r.prototype.dataToCoord=function(e,t){var a=this._extent,n=this.scale;return e=n.normalize(e),this.onBand&&n.type==="ordinal"&&(a=a.slice(),s1(a,n.count())),Dt(e,o1,a,t)},r.prototype.coordToData=function(e,t){var a=this._extent,n=this.scale;this.onBand&&n.type==="ordinal"&&(a=a.slice(),s1(a,n.count()));var i=Dt(e,a,o1,t);return this.scale.scale(i)},r.prototype.pointToData=function(e,t){},r.prototype.getTicksCoords=function(e){e=e||{};var t=e.tickModel||this.getTickModel(),a=kB(this,t),n=a.ticks,i=G(n,function(s){return{coord:this.dataToCoord(this.scale.type==="ordinal"?this.scale.getRawOrdinalNumber(s):s),tickValue:s}},this),o=t.get("alignWithLabel");return FB(this,i,o,e.clamp),i},r.prototype.getMinorTicksCoords=function(){if(this.scale.type==="ordinal")return[];var e=this.model.getModel("minorTick"),t=e.get("splitNumber");t>0&&t<100||(t=5);var a=this.scale.getMinorTicks(t),n=G(a,function(i){return G(i,function(o){return{coord:this.dataToCoord(o),tickValue:o}},this)},this);return n},r.prototype.getViewLabels=function(){return EB(this).labels},r.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},r.prototype.getTickModel=function(){return this.model.getModel("axisTick")},r.prototype.getBandWidth=function(){var e=this._extent,t=this.scale.getExtent(),a=t[1]-t[0]+(this.onBand?1:0);a===0&&(a=1);var n=Math.abs(e[1]-e[0]);return Math.abs(n)/a},r.prototype.calculateCategoryInterval=function(){return zB(this)},r}();function s1(r,e){var t=r[1]-r[0],a=e,n=t/a/2;r[0]+=n,r[1]-=n}function FB(r,e,t,a){var n=e.length;if(!r.onBand||t||!n)return;var i=r.getExtent(),o,s;if(n===1)e[0].coord=i[0],o=e[1]={coord:i[1],tickValue:e[0].tickValue};else{var l=e[n-1].tickValue-e[0].tickValue,u=(e[n-1].coord-e[0].coord)/l;D(e,function(c){c.coord-=u/2});var f=r.scale.getExtent();s=1+f[1]-e[n-1].tickValue,o={coord:e[n-1].coord+u*s,tickValue:f[1]+1},e.push(o)}var h=i[0]>i[1];v(e[0].coord,i[0])&&(a?e[0].coord=i[0]:e.shift()),a&&v(i[0],e[0].coord)&&e.unshift({coord:i[0]}),v(i[1],o.coord)&&(a?o.coord=i[1]:e.pop()),a&&v(o.coord,i[1])&&e.push({coord:i[1]});function v(c,p){return c=Ut(c),p=Ut(p),h?c>p:cn&&(n+=ns);var c=Math.atan2(s,o);if(c<0&&(c+=ns),c>=a&&c<=n||c+ns>=a&&c+ns<=n)return l[0]=f,l[1]=h,u-t;var p=t*Math.cos(a)+r,d=t*Math.sin(a)+e,g=t*Math.cos(n)+r,y=t*Math.sin(n)+e,m=(p-o)*(p-o)+(d-s)*(d-s),_=(g-o)*(g-o)+(y-s)*(y-s);return m<_?(l[0]=p,l[1]=d,Math.sqrt(m)):(l[0]=g,l[1]=y,Math.sqrt(_))}function Ff(r,e,t,a,n,i,o,s){var l=n-r,u=i-e,f=t-r,h=a-e,v=Math.sqrt(f*f+h*h);f/=v,h/=v;var c=l*f+u*h,p=c/v;s&&(p=Math.min(Math.max(p,0),1)),p*=v;var d=o[0]=r+p*f,g=o[1]=e+p*h;return Math.sqrt((d-n)*(d-n)+(g-i)*(g-i))}function dD(r,e,t,a,n,i,o){t<0&&(r=r+t,t=-t),a<0&&(e=e+a,a=-a);var s=r+t,l=e+a,u=o[0]=Math.min(Math.max(n,r),s),f=o[1]=Math.min(Math.max(i,e),l);return Math.sqrt((u-n)*(u-n)+(f-i)*(f-i))}var xr=[];function qB(r,e,t){var a=dD(e.x,e.y,e.width,e.height,r.x,r.y,xr);return t.set(xr[0],xr[1]),a}function KB(r,e,t){for(var a=0,n=0,i=0,o=0,s,l,u=1/0,f=e.data,h=r.x,v=r.y,c=0;c0){e=e/180*Math.PI,wr.fromArray(r[0]),Vt.fromArray(r[1]),Zt.fromArray(r[2]),ft.sub(Yr,wr,Vt),ft.sub(Hr,Zt,Vt);var t=Yr.len(),a=Hr.len();if(!(t<.001||a<.001)){Yr.scale(1/t),Hr.scale(1/a);var n=Yr.dot(Hr),i=Math.cos(e);if(i1&&ft.copy(Le,Zt),Le.toArray(r[1])}}}}function jB(r,e,t){if(t<=180&&t>0){t=t/180*Math.PI,wr.fromArray(r[0]),Vt.fromArray(r[1]),Zt.fromArray(r[2]),ft.sub(Yr,Vt,wr),ft.sub(Hr,Zt,Vt);var a=Yr.len(),n=Hr.len();if(!(a<.001||n<.001)){Yr.scale(1/a),Hr.scale(1/n);var i=Yr.dot(e),o=Math.cos(t);if(i=l)ft.copy(Le,Zt);else{Le.scaleAndAdd(Hr,s/Math.tan(Math.PI/2-f));var h=Zt.x!==Vt.x?(Le.x-Vt.x)/(Zt.x-Vt.x):(Le.y-Vt.y)/(Zt.y-Vt.y);if(isNaN(h))return;h<0?ft.copy(Le,Vt):h>1&&ft.copy(Le,Zt)}Le.toArray(r[1])}}}}function oc(r,e,t,a){var n=t==="normal",i=n?r:r.ensureState(t);i.ignore=e;var o=a.get("smooth");o&&o===!0&&(o=.3),i.shape=i.shape||{},o>0&&(i.shape.smooth=o);var s=a.getModel("lineStyle").getLineStyle();n?r.useStyle(s):i.style=s}function JB(r,e){var t=e.smooth,a=e.points;if(a)if(r.moveTo(a[0][0],a[0][1]),t>0&&a.length>=3){var n=la(a[0],a[1]),i=la(a[1],a[2]);if(!n||!i){r.lineTo(a[1][0],a[1][1]),r.lineTo(a[2][0],a[2][1]);return}var o=Math.min(n,i)*t,s=Is([],a[1],a[0],o/n),l=Is([],a[1],a[2],o/i),u=Is([],s,l,.5);r.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),r.bezierCurveTo(l[0],l[1],l[0],l[1],a[2][0],a[2][1])}else for(var f=1;f0){_(A*T,0,o);var C=A+x;C<0&&S(-C*T,1)}else S(-x*T,1)}}function _(x,w,T){x!==0&&(u=!0);for(var A=w;A0)for(var C=0;C0;C--){var P=T[C-1]*L;_(-P,C,o)}}}function b(x){var w=x<0?-1:1;x=Math.abs(x);for(var T=Math.ceil(x/(o-1)),A=0;A0?_(T,0,A+1):_(-T,o-A-1,o),x-=T,x<=0)return}return u}function QB(r,e,t,a){return mD(r,"x","width",e,t)}function _D(r,e,t,a){return mD(r,"y","height",e,t)}function SD(r){var e=[];r.sort(function(d,g){return g.priority-d.priority});var t=new ht(0,0,0,0);function a(d){if(!d.ignore){var g=d.ensureState("emphasis");g.ignore==null&&(g.ignore=!1)}d.ignore=!0}for(var n=0;n=0&&a.attr(i.oldLayoutSelect),vt(v,"emphasis")>=0&&a.attr(i.oldLayoutEmphasis)),Tt(a,u,t,l)}else if(a.attr(u),!Mo(a).valueAnimation){var h=st(a.style.opacity,1);a.style.opacity=0,Gt(a,{style:{opacity:h}},t,l)}if(i.oldLayout=u,a.states.select){var c=i.oldLayoutSelect={};xu(c,u,bu),xu(c,a.states.select,bu)}if(a.states.emphasis){var p=i.oldLayoutEmphasis={};xu(p,u,bu),xu(p,a.states.emphasis,bu)}hA(a,l,f,t,t)}if(n&&!n.ignore&&!n.invisible){var i=rV(n),o=i.oldLayout,d={points:n.shape.points};o?(n.attr({shape:o}),Tt(n,{shape:d},t)):(n.setShape(d),n.style.strokePercent=0,Gt(n,{style:{strokePercent:1}},t)),i.oldLayout=d}},r}(),lc=bt();function nV(r){r.registerUpdateLifecycle("series:beforeupdate",function(e,t,a){var n=lc(t).labelManager;n||(n=lc(t).labelManager=new aV),n.clearLabels()}),r.registerUpdateLifecycle("series:layoutlabels",function(e,t,a){var n=lc(t).labelManager;a.updatedSeries.forEach(function(i){n.addLabelsOfSeries(t.getViewOfSeriesModel(i))}),n.updateLayoutConfig(t),n.layout(t),n.processLabelsOverall()})}var uc=Math.sin,fc=Math.cos,xD=Math.PI,Pn=Math.PI*2,iV=180/xD,bD=function(){function r(){}return r.prototype.reset=function(e){this._start=!0,this._d=[],this._str="",this._p=Math.pow(10,e||4)},r.prototype.moveTo=function(e,t){this._add("M",e,t)},r.prototype.lineTo=function(e,t){this._add("L",e,t)},r.prototype.bezierCurveTo=function(e,t,a,n,i,o){this._add("C",e,t,a,n,i,o)},r.prototype.quadraticCurveTo=function(e,t,a,n){this._add("Q",e,t,a,n)},r.prototype.arc=function(e,t,a,n,i,o){this.ellipse(e,t,a,a,0,n,i,o)},r.prototype.ellipse=function(e,t,a,n,i,o,s,l){var u=s-o,f=!l,h=Math.abs(u),v=Ga(h-Pn)||(f?u>=Pn:-u>=Pn),c=u>0?u%Pn:u%Pn+Pn,p=!1;v?p=!0:Ga(h)?p=!1:p=c>=xD==!!f;var d=e+a*fc(o),g=t+n*uc(o);this._start&&this._add("M",d,g);var y=Math.round(i*iV);if(v){var m=1/this._p,_=(f?1:-1)*(Pn-m);this._add("A",a,n,y,1,+f,e+a*fc(o+_),t+n*uc(o+_)),m>.01&&this._add("A",a,n,y,0,+f,d,g)}else{var S=e+a*fc(s),b=t+n*uc(s);this._add("A",a,n,y,+p,+f,S,b)}},r.prototype.rect=function(e,t,a,n){this._add("M",e,t),this._add("l",a,0),this._add("l",0,n),this._add("l",-a,0),this._add("Z")},r.prototype.closePath=function(){this._d.length>0&&this._add("Z")},r.prototype._add=function(e,t,a,n,i,o,s,l,u){for(var f=[],h=this._p,v=1;v"}function pV(r){return""}function Iy(r,e){e=e||{};var t=e.newline?` +`:"";function a(n){var i=n.children,o=n.tag,s=n.attrs,l=n.text;return cV(o,s)+(o!=="style"?Se(l):l||"")+(i?""+t+G(i,function(u){return a(u)}).join(t)+t:"")+pV(o)}return a(r)}function dV(r,e,t){t=t||{};var a=t.newline?` +`:"",n=" {"+a,i=a+"}",o=G(_t(r),function(l){return l+n+G(_t(r[l]),function(u){return u+":"+r[l][u]+";"}).join(a)+i}).join(a),s=G(_t(e),function(l){return"@keyframes "+l+n+G(_t(e[l]),function(u){return u+n+G(_t(e[l][u]),function(f){var h=e[l][u][f];return f==="d"&&(h='path("'+h+'")'),f+":"+h+";"}).join(a)+i}).join(a)+i}).join(a);return!o&&!s?"":[""].join(a)}function wd(r){return{zrId:r,shadowCache:{},patternCache:{},gradientCache:{},clipPathCache:{},defs:{},cssNodes:{},cssAnims:{},cssStyleCache:{},cssAnimIdx:0,shadowIdx:0,gradientIdx:0,patternIdx:0,clipPathIdx:0}}function h1(r,e,t,a){return ne("svg","root",{width:r,height:e,xmlns:wD,"xmlns:xlink":TD,version:"1.1",baseProfile:"full",viewBox:a?"0 0 "+r+" "+e:!1},t)}var gV=0;function CD(){return gV++}var v1={cubicIn:"0.32,0,0.67,0",cubicOut:"0.33,1,0.68,1",cubicInOut:"0.65,0,0.35,1",quadraticIn:"0.11,0,0.5,0",quadraticOut:"0.5,1,0.89,1",quadraticInOut:"0.45,0,0.55,1",quarticIn:"0.5,0,0.75,0",quarticOut:"0.25,1,0.5,1",quarticInOut:"0.76,0,0.24,1",quinticIn:"0.64,0,0.78,0",quinticOut:"0.22,1,0.36,1",quinticInOut:"0.83,0,0.17,1",sinusoidalIn:"0.12,0,0.39,0",sinusoidalOut:"0.61,1,0.88,1",sinusoidalInOut:"0.37,0,0.63,1",exponentialIn:"0.7,0,0.84,0",exponentialOut:"0.16,1,0.3,1",exponentialInOut:"0.87,0,0.13,1",circularIn:"0.55,0,1,0.45",circularOut:"0,0.55,0.45,1",circularInOut:"0.85,0,0.15,1"},kn="transform-origin";function yV(r,e,t){var a=V({},r.shape);V(a,e),r.buildPath(t,a);var n=new bD;return n.reset(iT(r)),t.rebuildPath(n,1),n.generateStr(),n.getStr()}function mV(r,e){var t=e.originX,a=e.originY;(t||a)&&(r[kn]=t+"px "+a+"px")}var _V={fill:"fill",opacity:"opacity",lineWidth:"stroke-width",lineDashOffset:"stroke-dashoffset"};function DD(r,e){var t=e.zrId+"-ani-"+e.cssAnimIdx++;return e.cssAnims[t]=r,t}function SV(r,e,t){var a=r.shape.paths,n={},i,o;if(D(a,function(l){var u=wd(t.zrId);u.animation=!0,Yh(l,{},u,!0);var f=u.cssAnims,h=u.cssNodes,v=_t(f),c=v.length;if(c){o=v[c-1];var p=f[o];for(var d in p){var g=p[d];n[d]=n[d]||{d:""},n[d].d+=g.d||""}for(var y in h){var m=h[y].animation;m.indexOf(o)>=0&&(i=m)}}}),!!i){e.d=!1;var s=DD(n,t);return i.replace(o,s)}}function c1(r){return Y(r)?v1[r]?"cubic-bezier("+v1[r]+")":_g(r)?r:"":""}function Yh(r,e,t,a){var n=r.animators,i=n.length,o=[];if(r instanceof Ch){var s=SV(r,e,t);if(s)o.push(s);else if(!i)return}else if(!i)return;for(var l={},u=0;u0}).length){var Yt=DD(w,t);return Yt+" "+m[0]+" both"}}for(var g in l){var s=d(l[g]);s&&o.push(s)}if(o.length){var y=t.zrId+"-cls-"+CD();t.cssNodes["."+y]={animation:o.join(",")},e.class=y}}function xV(r,e,t){if(!r.ignore)if(r.isSilent()){var a={"pointer-events":"none"};p1(a,e,t)}else{var n=r.states.emphasis&&r.states.emphasis.style?r.states.emphasis.style:{},i=n.fill;if(!i){var o=r.style&&r.style.fill,s=r.states.select&&r.states.select.style&&r.states.select.style.fill,l=r.currentStates.indexOf("select")>=0&&s||o;l&&(i=mf(l))}var u=n.lineWidth;if(u){var f=!n.strokeNoScale&&r.transform?r.transform[0]:1;u=u/f}var a={cursor:"pointer"};i&&(a.fill=i),n.stroke&&(a.stroke=n.stroke),u&&(a["stroke-width"]=u),p1(a,e,t)}}function p1(r,e,t,a){var n=JSON.stringify(r),i=t.cssStyleCache[n];i||(i=t.zrId+"-cls-"+CD(),t.cssStyleCache[n]=i,t.cssNodes["."+i+":hover"]=r),e.class=e.class?e.class+" "+i:i}var ll=Math.round;function MD(r){return r&&Y(r.src)}function ID(r){return r&&K(r.toDataURL)}function Ly(r,e,t,a){fV(function(n,i){var o=n==="fill"||n==="stroke";o&&nT(i)?PD(e,r,n,a):o&&xg(i)?RD(t,r,n,a):r[n]=i,o&&a.ssr&&i==="none"&&(r["pointer-events"]="visible")},e,t,!1),MV(t,r,a)}function Py(r,e){var t=cT(e);t&&(t.each(function(a,n){a!=null&&(r[(f1+n).toLowerCase()]=a+"")}),e.isSilent()&&(r[f1+"silent"]="true"))}function d1(r){return Ga(r[0]-1)&&Ga(r[1])&&Ga(r[2])&&Ga(r[3]-1)}function bV(r){return Ga(r[4])&&Ga(r[5])}function Ry(r,e,t){if(e&&!(bV(e)&&d1(e))){var a=1e4;r.transform=d1(e)?"translate("+ll(e[4]*a)/a+" "+ll(e[5]*a)/a+")":A2(e)}}function g1(r,e,t){for(var a=r.points,n=[],i=0;i"u"){var g="Image width/height must been given explictly in svg-ssr renderer.";be(v,g),be(c,g)}else if(v==null||c==null){var y=function(C,M){if(C){var I=C.elm,L=v||M.width,P=c||M.height;C.tag==="pattern"&&(u?(P=1,L/=i.width):f&&(L=1,P/=i.height)),C.attrs.width=L,C.attrs.height=P,I&&(I.setAttribute("width",L),I.setAttribute("height",P))}},m=Lg(p,null,r,function(C){l||y(x,C),y(h,C)});m&&m.width&&m.height&&(v=v||m.width,c=c||m.height)}h=ne("image","img",{href:p,width:v,height:c}),o.width=v,o.height=c}else n.svgElement&&(h=rt(n.svgElement),o.width=n.svgWidth,o.height=n.svgHeight);if(h){var _,S;l?_=S=1:u?(S=1,_=o.width/i.width):f?(_=1,S=o.height/i.height):o.patternUnits="userSpaceOnUse",_!=null&&!isNaN(_)&&(o.width=_),S!=null&&!isNaN(S)&&(o.height=S);var b=oT(n);b&&(o.patternTransform=b);var x=ne("pattern","",o,[h]),w=Iy(x),T=a.patternCache,A=T[w];A||(A=a.zrId+"-p"+a.patternIdx++,T[w]=A,o.id=A,x=a.defs[A]=ne("pattern",A,o,[h])),e[t]=gh(A)}}function IV(r,e,t){var a=t.clipPathCache,n=t.defs,i=a[r.id];if(!i){i=t.zrId+"-c"+t.clipPathIdx++;var o={id:i};a[r.id]=i,n[i]=ne("clipPath",i,o,[LD(r,t)])}e["clip-path"]=gh(i)}function _1(r){return document.createTextNode(r)}function Fn(r,e,t){r.insertBefore(e,t)}function S1(r,e){r.removeChild(e)}function x1(r,e){r.appendChild(e)}function ED(r){return r.parentNode}function kD(r){return r.nextSibling}function hc(r,e){r.textContent=e}var b1=58,LV=120,PV=ne("","");function Td(r){return r===void 0}function Gr(r){return r!==void 0}function RV(r,e,t){for(var a={},n=e;n<=t;++n){var i=r[n].key;i!==void 0&&(a[i]=n)}return a}function bs(r,e){var t=r.key===e.key,a=r.tag===e.tag;return a&&t}function ul(r){var e,t=r.children,a=r.tag;if(Gr(a)){var n=r.elm=AD(a);if(Ey(PV,r),z(t))for(e=0;ei?(p=t[l+1]==null?null:t[l+1].elm,OD(r,p,t,n,l)):Wf(r,e,a,i))}function Xi(r,e){var t=e.elm=r.elm,a=r.children,n=e.children;r!==e&&(Ey(r,e),Td(e.text)?Gr(a)&&Gr(n)?a!==n&&EV(t,a,n):Gr(n)?(Gr(r.text)&&hc(t,""),OD(t,null,n,0,n.length-1)):Gr(a)?Wf(t,a,0,a.length-1):Gr(r.text)&&hc(t,""):r.text!==e.text&&(Gr(a)&&Wf(t,a,0,a.length-1),hc(t,e.text)))}function kV(r,e){if(bs(r,e))Xi(r,e);else{var t=r.elm,a=ED(t);ul(e),a!==null&&(Fn(a,e.elm,kD(t)),Wf(a,[r],0,0))}return e}var OV=0,NV=function(){function r(e,t,a){if(this.type="svg",this.refreshHover=w1(),this.configLayer=w1(),this.storage=t,this._opts=a=V({},a),this.root=e,this._id="zr"+OV++,this._oldVNode=h1(a.width,a.height),e&&!a.ssr){var n=this._viewport=document.createElement("div");n.style.cssText="position:relative;overflow:hidden";var i=this._svgDom=this._oldVNode.elm=AD("svg");Ey(null,this._oldVNode),n.appendChild(i),e.appendChild(n)}this.resize(a.width,a.height)}return r.prototype.getType=function(){return this.type},r.prototype.getViewportRoot=function(){return this._viewport},r.prototype.getViewportRootOffset=function(){var e=this.getViewportRoot();if(e)return{offsetLeft:e.offsetLeft||0,offsetTop:e.offsetTop||0}},r.prototype.getSvgDom=function(){return this._svgDom},r.prototype.refresh=function(){if(this.root){var e=this.renderToVNode({willUpdate:!0});e.attrs.style="position:absolute;left:0;top:0;user-select:none",kV(this._oldVNode,e),this._oldVNode=e}},r.prototype.renderOneToVNode=function(e){return m1(e,wd(this._id))},r.prototype.renderToVNode=function(e){e=e||{};var t=this.storage.getDisplayList(!0),a=this._width,n=this._height,i=wd(this._id);i.animation=e.animation,i.willUpdate=e.willUpdate,i.compress=e.compress,i.emphasis=e.emphasis,i.ssr=this._opts.ssr;var o=[],s=this._bgVNode=BV(a,n,this._backgroundColor,i);s&&o.push(s);var l=e.compress?null:this._mainVNode=ne("g","main",{},[]);this._paintList(t,i,l?l.children:o),l&&o.push(l);var u=G(_t(i.defs),function(v){return i.defs[v]});if(u.length&&o.push(ne("defs","defs",{},u)),e.animation){var f=dV(i.cssNodes,i.cssAnims,{newline:!0});if(f){var h=ne("style","stl",{},[],f);o.push(h)}}return h1(a,n,o,e.useViewBox)},r.prototype.renderToString=function(e){return e=e||{},Iy(this.renderToVNode({animation:st(e.cssAnimation,!0),emphasis:st(e.cssEmphasis,!0),willUpdate:!1,compress:!0,useViewBox:st(e.useViewBox,!0)}),{newline:!0})},r.prototype.setBackgroundColor=function(e){this._backgroundColor=e},r.prototype.getSvgRoot=function(){return this._mainVNode&&this._mainVNode.elm},r.prototype._paintList=function(e,t,a){for(var n=e.length,i=[],o=0,s,l,u=0,f=0;f=0&&!(v&&l&&v[d]===l[d]);d--);for(var g=p-1;g>d;g--)o--,s=i[o-1];for(var y=d+1;y=s)}}for(var h=this.__startIndex;h15)break}}P.prevElClipPaths&&y.restore()};if(m)if(m.length===0)T=g.__endIndex;else for(var C=c.dpr,M=0;M0&&e>n[0]){for(l=0;le);l++);s=a[n[l]]}if(n.splice(l+1,0,e),a[e]=t,!t.virtual)if(s){var u=s.dom;u.nextSibling?o.insertBefore(t.dom,u.nextSibling):o.appendChild(t.dom)}else o.firstChild?o.insertBefore(t.dom,o.firstChild):o.appendChild(t.dom);t.painter||(t.painter=this)}},r.prototype.eachLayer=function(e,t){for(var a=this._zlevelList,n=0;n0?wu:0),this._needsManuallyCompositing),f.__builtin__||fh("ZLevel "+u+" has been used by unkown layer "+f.id),f!==i&&(f.__used=!0,f.__startIndex!==l&&(f.__dirty=!0),f.__startIndex=l,f.incremental?f.__drawIndex=-1:f.__drawIndex=l,t(l),i=f),n.__dirty&Zr&&!n.__inHover&&(f.__dirty=!0,f.incremental&&f.__drawIndex<0&&(f.__drawIndex=l))}t(l),this.eachBuiltinLayer(function(h,v){!h.__used&&h.getElementCount()>0&&(h.__dirty=!0,h.__startIndex=h.__endIndex=h.__drawIndex=0),h.__dirty&&h.__drawIndex<0&&(h.__drawIndex=h.__startIndex)})},r.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},r.prototype._clearLayer=function(e){e.clear()},r.prototype.setBackgroundColor=function(e){this._backgroundColor=e,D(this._layers,function(t){t.setUnpainted()})},r.prototype.configLayer=function(e,t){if(t){var a=this._layerConfig;a[e]?ut(a[e],t,!0):a[e]=t;for(var n=0;n-1&&(u.style.stroke=u.style.fill,u.style.fill="#fff",u.style.lineWidth=2),a},e.type="series.line",e.dependencies=["grid","polar"],e.defaultOption={z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0,universalTransition:{divideShape:"clone"},triggerLineEvent:!1},e}(Et);function po(r,e){var t=r.mapDimensionsAll("defaultedLabel"),a=t.length;if(a===1){var n=vo(r,e,t[0]);return n!=null?n+"":null}else if(a){for(var i=[],o=0;o=0&&a.push(e[i])}return a.join(" ")}var kl=function(r){N(e,r);function e(t,a,n,i){var o=r.call(this)||this;return o.updateData(t,a,n,i),o}return e.prototype._createSymbol=function(t,a,n,i,o){this.removeAll();var s=qt(t,-1,-1,2,2,null,o);s.attr({z2:100,culling:!0,scaleX:i[0]/2,scaleY:i[1]/2}),s.drift=YV,this._symbolType=t,this.add(s)},e.prototype.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(null,t)},e.prototype.getSymbolType=function(){return this._symbolType},e.prototype.getSymbolPath=function(){return this.childAt(0)},e.prototype.highlight=function(){ga(this.childAt(0))},e.prototype.downplay=function(){ya(this.childAt(0))},e.prototype.setZ=function(t,a){var n=this.childAt(0);n.zlevel=t,n.z=a},e.prototype.setDraggable=function(t,a){var n=this.childAt(0);n.draggable=t,n.cursor=!a&&t?"move":n.cursor},e.prototype.updateData=function(t,a,n,i){this.silent=!1;var o=t.getItemVisual(a,"symbol")||"circle",s=t.hostModel,l=e.getSymbolSize(t,a),u=o!==this._symbolType,f=i&&i.disableAnimation;if(u){var h=t.getItemVisual(a,"symbolKeepAspect");this._createSymbol(o,t,a,l,h)}else{var v=this.childAt(0);v.silent=!1;var c={scaleX:l[0]/2,scaleY:l[1]/2};f?v.attr(c):Tt(v,c,s,a),Pr(v)}if(this._updateCommon(t,a,l,n,i),u){var v=this.childAt(0);if(!f){var c={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:v.style.opacity}};v.scaleX=v.scaleY=0,v.style.opacity=0,Gt(v,c,s,a)}}f&&this.childAt(0).stopAnimation("leave")},e.prototype._updateCommon=function(t,a,n,i,o){var s=this.childAt(0),l=t.hostModel,u,f,h,v,c,p,d,g,y;if(i&&(u=i.emphasisItemStyle,f=i.blurItemStyle,h=i.selectItemStyle,v=i.focus,c=i.blurScope,d=i.labelStatesModels,g=i.hoverScale,y=i.cursorStyle,p=i.emphasisDisabled),!i||t.hasItemOption){var m=i&&i.itemModel?i.itemModel:t.getItemModel(a),_=m.getModel("emphasis");u=_.getModel("itemStyle").getItemStyle(),h=m.getModel(["select","itemStyle"]).getItemStyle(),f=m.getModel(["blur","itemStyle"]).getItemStyle(),v=_.get("focus"),c=_.get("blurScope"),p=_.get("disabled"),d=oe(m),g=_.getShallow("scale"),y=m.getShallow("cursor")}var S=t.getItemVisual(a,"symbolRotate");s.attr("rotation",(S||0)*Math.PI/180||0);var b=_i(t.getItemVisual(a,"symbolOffset"),n);b&&(s.x=b[0],s.y=b[1]),y&&s.attr("cursor",y);var x=t.getItemVisual(a,"style"),w=x.fill;if(s instanceof le){var T=s.style;s.useStyle(V({image:T.image,x:T.x,y:T.y,width:T.width,height:T.height},x))}else s.__isEmptyBrush?s.useStyle(V({},x)):s.useStyle(x),s.style.decal=null,s.setColor(w,o&&o.symbolInnerColor),s.style.strokeNoScale=!0;var A=t.getItemVisual(a,"liftZ"),C=this._z2;A!=null?C==null&&(this._z2=s.z2,s.z2+=A):C!=null&&(s.z2=C,this._z2=null);var M=o&&o.useNameLabel;pe(s,d,{labelFetcher:l,labelDataIndex:a,defaultText:I,inheritColor:w,defaultOpacity:x.opacity});function I(R){return M?t.getName(R):po(t,R)}this._sizeX=n[0]/2,this._sizeY=n[1]/2;var L=s.ensureState("emphasis");L.style=u,s.ensureState("select").style=h,s.ensureState("blur").style=f;var P=g==null||g===!0?Math.max(1.1,3/this._sizeY):isFinite(g)&&g>0?+g:1;L.scaleX=this._sizeX*P,L.scaleY=this._sizeY*P,this.setSymbolScale(1),Wt(this,v,c,p)},e.prototype.setSymbolScale=function(t){this.scaleX=this.scaleY=t},e.prototype.fadeOut=function(t,a,n){var i=this.childAt(0),o=nt(this).dataIndex,s=n&&n.animation;if(this.silent=i.silent=!0,n&&n.fadeLabel){var l=i.getTextContent();l&&Qa(l,{style:{opacity:0}},a,{dataIndex:o,removeOpt:s,cb:function(){i.removeTextContent()}})}else i.removeTextContent();Qa(i,{style:{opacity:0},scaleX:0,scaleY:0},a,{dataIndex:o,cb:t,removeOpt:s})},e.getSymbolSize=function(t,a){return Oo(t.getItemVisual(a,"symbolSize"))},e}(at);function YV(r,e){this.parent.drift(r,e)}function cc(r,e,t,a){return e&&!isNaN(e[0])&&!isNaN(e[1])&&!(a.isIgnore&&a.isIgnore(t))&&!(a.clipShape&&!a.clipShape.contain(e[0],e[1]))&&r.getItemVisual(t,"symbol")!=="none"}function C1(r){return r!=null&&!tt(r)&&(r={isIgnore:r}),r||{}}function D1(r){var e=r.hostModel,t=e.getModel("emphasis");return{emphasisItemStyle:t.getModel("itemStyle").getItemStyle(),blurItemStyle:e.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:e.getModel(["select","itemStyle"]).getItemStyle(),focus:t.get("focus"),blurScope:t.get("blurScope"),emphasisDisabled:t.get("disabled"),hoverScale:t.get("scale"),labelStatesModels:oe(e),cursorStyle:e.get("cursor")}}var Ol=function(){function r(e){this.group=new at,this._SymbolCtor=e||kl}return r.prototype.updateData=function(e,t){this._progressiveEls=null,t=C1(t);var a=this.group,n=e.hostModel,i=this._data,o=this._SymbolCtor,s=t.disableAnimation,l=D1(e),u={disableAnimation:s},f=t.getSymbolPoint||function(h){return e.getItemLayout(h)};i||a.removeAll(),e.diff(i).add(function(h){var v=f(h);if(cc(e,v,h,t)){var c=new o(e,h,l,u);c.setPosition(v),e.setItemGraphicEl(h,c),a.add(c)}}).update(function(h,v){var c=i.getItemGraphicEl(v),p=f(h);if(!cc(e,p,h,t)){a.remove(c);return}var d=e.getItemVisual(h,"symbol")||"circle",g=c&&c.getSymbolType&&c.getSymbolType();if(!c||g&&g!==d)a.remove(c),c=new o(e,h,l,u),c.setPosition(p);else{c.updateData(e,h,l,u);var y={x:p[0],y:p[1]};s?c.attr(y):Tt(c,y,n)}a.add(c),e.setItemGraphicEl(h,c)}).remove(function(h){var v=i.getItemGraphicEl(h);v&&v.fadeOut(function(){a.remove(v)},n)}).execute(),this._getSymbolPoint=f,this._data=e},r.prototype.updateLayout=function(){var e=this,t=this._data;t&&t.eachItemGraphicEl(function(a,n){var i=e._getSymbolPoint(n);a.setPosition(i),a.markRedraw()})},r.prototype.incrementalPrepareUpdate=function(e){this._seriesScope=D1(e),this._data=null,this.group.removeAll()},r.prototype.incrementalUpdate=function(e,t,a){this._progressiveEls=[],a=C1(a);function n(l){l.isGroup||(l.incremental=!0,l.ensureState("emphasis").hoverLayer=!0)}for(var i=e.start;i0?t=a[0]:a[1]<0&&(t=a[1]),t}function VD(r,e,t,a){var n=NaN;r.stacked&&(n=t.get(t.getCalculationInfo("stackedOverDimension"),a)),isNaN(n)&&(n=r.valueStart);var i=r.baseDataOffset,o=[];return o[i]=t.get(r.baseDim,a),o[1-i]=n,e.dataToPoint(o)}function $V(r,e){var t=[];return e.diff(r).add(function(a){t.push({cmd:"+",idx:a})}).update(function(a,n){t.push({cmd:"=",idx:n,idx1:a})}).remove(function(a){t.push({cmd:"-",idx:a})}).execute(),t}function ZV(r,e,t,a,n,i,o,s){for(var l=$V(r,e),u=[],f=[],h=[],v=[],c=[],p=[],d=[],g=BD(n,e,o),y=r.getLayout("points")||[],m=e.getLayout("points")||[],_=0;_=n||d<0)break;if(ai(y,m)){if(l){d+=i;continue}break}if(d===t)r[i>0?"moveTo":"lineTo"](y,m),h=y,v=m;else{var _=y-u,S=m-f;if(_*_+S*S<.5){d+=i;continue}if(o>0){for(var b=d+i,x=e[b*2],w=e[b*2+1];x===y&&w===m&&g=a||ai(x,w))c=y,p=m;else{C=x-u,M=w-f;var P=y-u,R=x-y,E=m-f,O=w-m,k=void 0,B=void 0;if(s==="x"){k=Math.abs(P),B=Math.abs(R);var F=C>0?1:-1;c=y-F*k*o,p=m,I=y+F*B*o,L=m}else if(s==="y"){k=Math.abs(E),B=Math.abs(O);var H=M>0?1:-1;c=y,p=m-H*k*o,I=y,L=m+H*B*o}else k=Math.sqrt(P*P+E*E),B=Math.sqrt(R*R+O*O),A=B/(B+k),c=y-C*o*(1-A),p=m-M*o*(1-A),I=y+C*o*A,L=m+M*o*A,I=La(I,Pa(x,y)),L=La(L,Pa(w,m)),I=Pa(I,La(x,y)),L=Pa(L,La(w,m)),C=I-y,M=L-m,c=y-C*k/B,p=m-M*k/B,c=La(c,Pa(u,y)),p=La(p,Pa(f,m)),c=Pa(c,La(u,y)),p=Pa(p,La(f,m)),C=y-c,M=m-p,I=y+C*B/k,L=m+M*B/k}r.bezierCurveTo(h,v,c,p,y,m),h=I,v=L}else r.lineTo(y,m)}u=y,f=m,d+=i}return g}var zD=function(){function r(){this.smooth=0,this.smoothConstraint=!0}return r}(),qV=function(r){N(e,r);function e(t){var a=r.call(this,t)||this;return a.type="ec-polyline",a}return e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new zD},e.prototype.buildPath=function(t,a){var n=a.points,i=0,o=n.length/2;if(a.connectNulls){for(;o>0&&ai(n[o*2-2],n[o*2-1]);o--);for(;i=0){var S=u?(p-l)*_+l:(c-s)*_+s;return u?[t,S]:[S,t]}s=c,l=p;break;case o.C:c=i[h++],p=i[h++],d=i[h++],g=i[h++],y=i[h++],m=i[h++];var b=u?gf(s,c,d,y,t,f):gf(l,p,g,m,t,f);if(b>0)for(var x=0;x=0){var S=u?re(l,p,g,m,w):re(s,c,d,y,w);return u?[t,S]:[S,t]}}s=y,l=m;break}}},e}(mt),KV=function(r){N(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e}(zD),GD=function(r){N(e,r);function e(t){var a=r.call(this,t)||this;return a.type="ec-polygon",a}return e.prototype.getDefaultShape=function(){return new KV},e.prototype.buildPath=function(t,a){var n=a.points,i=a.stackedOnPoints,o=0,s=n.length/2,l=a.smoothMonotone;if(a.connectNulls){for(;s>0&&ai(n[s*2-2],n[s*2-1]);s--);for(;oe){i?t.push(o(i,l,e)):n&&t.push(o(n,l,0),o(n,l,e));break}else n&&(t.push(o(n,l,0)),n=null),t.push(l),i=l}return t}function QV(r,e,t){var a=r.getVisual("visualMeta");if(!(!a||!a.length||!r.count())&&e.type==="cartesian2d"){for(var n,i,o=a.length-1;o>=0;o--){var s=r.getDimensionInfo(a[o].dimension);if(n=s&&s.coordDim,n==="x"||n==="y"){i=a[o];break}}if(i){var l=e.getAxis(n),u=G(i.stops,function(_){return{coord:l.toGlobalCoord(l.dataToCoord(_.value)),color:_.color}}),f=u.length,h=i.outerColors.slice();f&&u[0].coord>u[f-1].coord&&(u.reverse(),h.reverse());var v=JV(u,n==="x"?t.getWidth():t.getHeight()),c=v.length;if(!c&&f)return u[0].coord<0?h[1]?h[1]:u[f-1].color:h[0]?h[0]:u[0].color;var p=10,d=v[0].coord-p,g=v[c-1].coord+p,y=g-d;if(y<.001)return"transparent";D(v,function(_){_.offset=(_.coord-d)/y}),v.push({offset:c?v[c-1].offset:.5,color:h[1]||"transparent"}),v.unshift({offset:c?v[0].offset:.5,color:h[0]||"transparent"});var m=new Ao(0,0,0,0,v,!0);return m[n]=d,m[n+"2"]=g,m}}}function tz(r,e,t){var a=r.get("showAllSymbol"),n=a==="auto";if(!(a&&!n)){var i=t.getAxesByScale("ordinal")[0];if(i&&!(n&&ez(i,e))){var o=e.mapDimension(i.dim),s={};return D(i.getViewLabels(),function(l){var u=i.scale.getRawOrdinalNumber(l.tickValue);s[u]=1}),function(l){return!s.hasOwnProperty(e.get(o,l))}}}}function ez(r,e){var t=r.getExtent(),a=Math.abs(t[1]-t[0])/r.scale.count();isNaN(a)&&(a=0);for(var n=e.count(),i=Math.max(1,Math.round(n/5)),o=0;oa)return!1;return!0}function rz(r,e){return isNaN(r)||isNaN(e)}function az(r){for(var e=r.length/2;e>0&&rz(r[e*2-2],r[e*2-1]);e--);return e-1}function R1(r,e){return[r[e*2],r[e*2+1]]}function nz(r,e,t){for(var a=r.length/2,n=t==="x"?0:1,i,o,s=0,l=-1,u=0;u=e||i>=e&&o<=e){l=u;break}s=u,i=o}return{range:[s,l],t:(e-i)/(o-i)}}function WD(r){if(r.get(["endLabel","show"]))return!0;for(var e=0;e0&&t.get(["emphasis","lineStyle","width"])==="bolder"){var B=p.getState("emphasis").style;B.lineWidth=+p.style.lineWidth+1}nt(p).seriesIndex=t.seriesIndex,Wt(p,E,O,k);var F=P1(t.get("smooth")),H=t.get("smoothMonotone");if(p.setShape({smooth:F,smoothMonotone:H,connectNulls:w}),d){var U=s.getCalculationInfo("stackedOnSeries"),j=0;d.useStyle(J(u.getAreaStyle(),{fill:I,opacity:.7,lineJoin:"bevel",decal:s.getVisual("style").decal})),U&&(j=P1(U.get("smooth"))),d.setShape({smooth:F,stackedOnSmooth:j,smoothMonotone:H,connectNulls:w}),ce(d,t,"areaStyle"),nt(d).seriesIndex=t.seriesIndex,Wt(d,E,O,k)}var Q=this._changePolyState;s.eachItemGraphicEl(function(it){it&&(it.onHoverStateChange=Q)}),this._polyline.onHoverStateChange=Q,this._data=s,this._coordSys=i,this._stackedOnPoints=b,this._points=f,this._step=C,this._valueOrigin=_,t.get("triggerLineEvent")&&(this.packEventData(t,p),d&&this.packEventData(t,d))},e.prototype.packEventData=function(t,a){nt(a).eventData={componentType:"series",componentSubType:"line",componentIndex:t.componentIndex,seriesIndex:t.seriesIndex,seriesName:t.name,seriesType:"line"}},e.prototype.highlight=function(t,a,n,i){var o=t.getData(),s=si(o,i);if(this._changePolyState("emphasis"),!(s instanceof Array)&&s!=null&&s>=0){var l=o.getLayout("points"),u=o.getItemGraphicEl(s);if(!u){var f=l[s*2],h=l[s*2+1];if(isNaN(f)||isNaN(h)||this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(f,h))return;var v=t.get("zlevel")||0,c=t.get("z")||0;u=new kl(o,s),u.x=f,u.y=h,u.setZ(v,c);var p=u.getSymbolPath().getTextContent();p&&(p.zlevel=v,p.z=c,p.z2=this._polyline.z2+1),u.__temp=!0,o.setItemGraphicEl(s,u),u.stopSymbolAnimation(!0),this.group.add(u)}u.highlight()}else Lt.prototype.highlight.call(this,t,a,n,i)},e.prototype.downplay=function(t,a,n,i){var o=t.getData(),s=si(o,i);if(this._changePolyState("normal"),s!=null&&s>=0){var l=o.getItemGraphicEl(s);l&&(l.__temp?(o.setItemGraphicEl(s,null),this.group.remove(l)):l.downplay())}else Lt.prototype.downplay.call(this,t,a,n,i)},e.prototype._changePolyState=function(t){var a=this._polygon;wf(this._polyline,t),a&&wf(a,t)},e.prototype._newPolyline=function(t){var a=this._polyline;return a&&this._lineGroup.remove(a),a=new qV({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(a),this._polyline=a,a},e.prototype._newPolygon=function(t,a){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new GD({shape:{points:t,stackedOnPoints:a},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},e.prototype._initSymbolLabelAnimation=function(t,a,n){var i,o,s=a.getBaseAxis(),l=s.inverse;a.type==="cartesian2d"?(i=s.isHorizontal(),o=!1):a.type==="polar"&&(i=s.dim==="angle",o=!0);var u=t.hostModel,f=u.get("animationDuration");K(f)&&(f=f(null));var h=u.get("animationDelay")||0,v=K(h)?h(null):h;t.eachItemGraphicEl(function(c,p){var d=c;if(d){var g=[c.x,c.y],y=void 0,m=void 0,_=void 0;if(n)if(o){var S=n,b=a.pointToCoord(g);i?(y=S.startAngle,m=S.endAngle,_=-b[1]/180*Math.PI):(y=S.r0,m=S.r,_=b[0])}else{var x=n;i?(y=x.x,m=x.x+x.width,_=c.x):(y=x.y+x.height,m=x.y,_=c.y)}var w=m===y?0:(_-y)/(m-y);l&&(w=1-w);var T=K(h)?h(p):f*w+v,A=d.getSymbolPath(),C=A.getTextContent();d.attr({scaleX:0,scaleY:0}),d.animateTo({scaleX:1,scaleY:1},{duration:200,setToFinal:!0,delay:T}),C&&C.animateFrom({style:{opacity:0}},{duration:300,delay:T}),A.disableLabelAnimation=!0}})},e.prototype._initOrUpdateEndLabel=function(t,a,n){var i=t.getModel("endLabel");if(WD(t)){var o=t.getData(),s=this._polyline,l=o.getLayout("points");if(!l){s.removeTextContent(),this._endLabel=null;return}var u=this._endLabel;u||(u=this._endLabel=new St({z2:200}),u.ignoreClip=!0,s.setTextContent(this._endLabel),s.disableLabelAnimation=!0);var f=az(l);f>=0&&(pe(s,oe(t,"endLabel"),{inheritColor:n,labelFetcher:t,labelDataIndex:f,defaultText:function(h,v,c){return c!=null?ND(o,c):po(o,h)},enableTextSetter:!0},iz(i,a)),s.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},e.prototype._endLabelOnDuring=function(t,a,n,i,o,s,l){var u=this._endLabel,f=this._polyline;if(u){t<1&&i.originalX==null&&(i.originalX=u.x,i.originalY=u.y);var h=n.getLayout("points"),v=n.hostModel,c=v.get("connectNulls"),p=s.get("precision"),d=s.get("distance")||0,g=l.getBaseAxis(),y=g.isHorizontal(),m=g.inverse,_=a.shape,S=m?y?_.x:_.y+_.height:y?_.x+_.width:_.y,b=(y?d:0)*(m?-1:1),x=(y?0:-d)*(m?-1:1),w=y?"x":"y",T=nz(h,S,w),A=T.range,C=A[1]-A[0],M=void 0;if(C>=1){if(C>1&&!c){var I=R1(h,A[0]);u.attr({x:I[0]+b,y:I[1]+x}),o&&(M=v.getRawValue(A[0]))}else{var I=f.getPointOn(S,w);I&&u.attr({x:I[0]+b,y:I[1]+x});var L=v.getRawValue(A[0]),P=v.getRawValue(A[1]);o&&(M=CT(n,p,L,P,T.t))}i.lastFrameIndex=A[0]}else{var R=t===1||i.lastFrameIndex>0?A[0]:0,I=R1(h,R);o&&(M=v.getRawValue(R)),u.attr({x:I[0]+b,y:I[1]+x})}if(o){var E=Mo(u);typeof E.setLabelText=="function"&&E.setLabelText(M)}}},e.prototype._doUpdateAnimation=function(t,a,n,i,o,s,l){var u=this._polyline,f=this._polygon,h=t.hostModel,v=ZV(this._data,t,this._stackedOnPoints,a,this._coordSys,n,this._valueOrigin),c=v.current,p=v.stackedOnCurrent,d=v.next,g=v.stackedOnNext;if(o&&(p=Ra(v.stackedOnCurrent,v.current,n,o,l),c=Ra(v.current,null,n,o,l),g=Ra(v.stackedOnNext,v.next,n,o,l),d=Ra(v.next,null,n,o,l)),L1(c,d)>3e3||f&&L1(p,g)>3e3){u.stopAnimation(),u.setShape({points:d}),f&&(f.stopAnimation(),f.setShape({points:d,stackedOnPoints:g}));return}u.shape.__points=v.current,u.shape.points=c;var y={shape:{points:d}};v.current!==c&&(y.shape.__points=v.next),u.stopAnimation(),Tt(u,y,h),f&&(f.setShape({points:c,stackedOnPoints:p}),f.stopAnimation(),Tt(f,{shape:{stackedOnPoints:g}},h),u.shape.points!==f.shape.points&&(f.shape.points=u.shape.points));for(var m=[],_=v.status,S=0;S<_.length;S++){var b=_[S].cmd;if(b==="="){var x=t.getItemGraphicEl(_[S].idx1);x&&m.push({el:x,ptIdx:S})}}u.animators&&u.animators.length&&u.animators[0].during(function(){f&&f.dirtyShape();for(var w=u.shape.__points,T=0;Te&&(e=r[t]);return isFinite(e)?e:NaN},min:function(r){for(var e=1/0,t=0;t10&&o.type==="cartesian2d"&&i){var l=o.getBaseAxis(),u=o.getOtherAxis(l),f=l.getExtent(),h=a.getDevicePixelRatio(),v=Math.abs(f[1]-f[0])*(h||1),c=Math.round(s/v);if(isFinite(c)&&c>1){i==="lttb"?e.setData(n.lttbDownSample(n.mapDimension(u.dim),1/c)):i==="minmax"&&e.setData(n.minmaxDownSample(n.mapDimension(u.dim),1/c));var p=void 0;Y(i)?p=sz[i]:K(i)&&(p=i),p&&e.setData(n.downSample(n.mapDimension(u.dim),1/c,p,lz))}}}}}function uz(r){r.registerChartView(oz),r.registerSeriesModel(UV),r.registerLayout(Bl("line",!0)),r.registerVisual({seriesType:"line",reset:function(e){var t=e.getData(),a=e.getModel("lineStyle").getLineStyle();a&&!a.stroke&&(a.stroke=t.getVisual("style").fill),t.setVisual("legendLineStyle",a)}}),r.registerProcessor(r.PRIORITY.PROCESSOR.STATISTIC,UD("line"))}var fl=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.getInitialData=function(t,a){return ea(null,this,{useEncodeDefaulter:!0})},e.prototype.getMarkerPosition=function(t,a,n){var i=this.coordinateSystem;if(i&&i.clampData){var o=i.clampData(t),s=i.dataToPoint(o);if(n)D(i.getAxes(),function(v,c){if(v.type==="category"&&a!=null){var p=v.getTicksCoords(),d=v.getTickModel().get("alignWithLabel"),g=o[c],y=a[c]==="x1"||a[c]==="y1";if(y&&!d&&(g+=1),p.length<2)return;if(p.length===2){s[c]=v.toGlobalCoord(v.getExtent()[y?1:0]);return}for(var m=void 0,_=void 0,S=1,b=0;bg){_=(x+m)/2;break}b===1&&(S=w-p[0].tickValue)}_==null&&(m?m&&(_=p[p.length-1].coord):_=p[0].coord),s[c]=v.toGlobalCoord(_)}});else{var l=this.getData(),u=l.getLayout("offset"),f=l.getLayout("size"),h=i.getBaseAxis().isHorizontal()?0:1;s[h]+=u+f/2}return s}return[NaN,NaN]},e.type="series.__base_bar__",e.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},e}(Et);Et.registerClass(fl);var fz=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.getInitialData=function(){return ea(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},e.prototype.getProgressive=function(){return this.get("large")?this.get("progressive"):!1},e.prototype.getProgressiveThreshold=function(){var t=this.get("progressiveThreshold"),a=this.get("largeThreshold");return a>t&&(t=a),t},e.prototype.brushSelector=function(t,a,n){return n.rect(a.getItemLayout(t))},e.type="series.bar",e.dependencies=["grid","polar"],e.defaultOption=sn(fl.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),e}(fl),hz=function(){function r(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return r}(),Uf=function(r){N(e,r);function e(t){var a=r.call(this,t)||this;return a.type="sausage",a}return e.prototype.getDefaultShape=function(){return new hz},e.prototype.buildPath=function(t,a){var n=a.cx,i=a.cy,o=Math.max(a.r0||0,0),s=Math.max(a.r,0),l=(s-o)*.5,u=o+l,f=a.startAngle,h=a.endAngle,v=a.clockwise,c=Math.PI*2,p=v?h-fMath.PI/2&&fs)return!0;s=h}return!1},e.prototype._isOrderDifferentInView=function(t,a){for(var n=a.scale,i=n.getExtent(),o=Math.max(0,i[0]),s=Math.min(i[1],n.getOrdinalMeta().categories.length-1);o<=s;++o)if(t.ordinalNumbers[o]!==n.getRawOrdinalNumber(o))return!0},e.prototype._updateSortWithinSameData=function(t,a,n,i){if(this._isOrderChangedWithinSameData(t,a,n)){var o=this._dataSort(t,n,a);this._isOrderDifferentInView(o,n)&&(this._removeOnRenderedListener(i),i.dispatchAction({type:"changeAxisOrder",componentType:n.dim+"Axis",axisId:n.index,sortInfo:o}))}},e.prototype._dispatchInitSort=function(t,a,n){var i=a.baseAxis,o=this._dataSort(t,i,function(s){return t.get(t.mapDimension(a.otherAxis.dim),s)});n.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",isInitSort:!0,axisId:i.index,sortInfo:o})},e.prototype.remove=function(t,a){this._clear(this._model),this._removeOnRenderedListener(a)},e.prototype.dispose=function(t,a){this._removeOnRenderedListener(a)},e.prototype._removeOnRenderedListener=function(t){this._onRendered&&(t.getZr().off("rendered",this._onRendered),this._onRendered=null)},e.prototype._clear=function(t){var a=this.group,n=this._data;t&&t.isAnimationEnabled()&&n&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],n.eachItemGraphicEl(function(i){tl(i,t,nt(i).dataIndex)})):a.removeAll(),this._data=null,this._isFirstFrame=!0},e.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},e.type="bar",e}(Lt),E1={cartesian2d:function(r,e){var t=e.width<0?-1:1,a=e.height<0?-1:1;t<0&&(e.x+=e.width,e.width=-e.width),a<0&&(e.y+=e.height,e.height=-e.height);var n=r.x+r.width,i=r.y+r.height,o=dc(e.x,r.x),s=gc(e.x+e.width,n),l=dc(e.y,r.y),u=gc(e.y+e.height,i),f=sn?s:o,e.y=h&&l>i?u:l,e.width=f?0:s-o,e.height=h?0:u-l,t<0&&(e.x+=e.width,e.width=-e.width),a<0&&(e.y+=e.height,e.height=-e.height),f||h},polar:function(r,e){var t=e.r0<=e.r?1:-1;if(t<0){var a=e.r;e.r=e.r0,e.r0=a}var n=gc(e.r,r.r),i=dc(e.r0,r.r0);e.r=n,e.r0=i;var o=n-i<0;if(t<0){var a=e.r;e.r=e.r0,e.r0=a}return o}},k1={cartesian2d:function(r,e,t,a,n,i,o,s,l){var u=new xt({shape:V({},a),z2:1});if(u.__dataIndex=t,u.name="item",i){var f=u.shape,h=n?"height":"width";f[h]=0}return u},polar:function(r,e,t,a,n,i,o,s,l){var u=!n&&l?Uf:we,f=new u({shape:a,z2:1});f.name="item";var h=YD(n);if(f.calculateTextPosition=vz(h,{isRoundCap:u===Uf}),i){var v=f.shape,c=n?"r":"endAngle",p={};v[c]=n?a.r0:a.startAngle,p[c]=a[c],(s?Tt:Gt)(f,{shape:p},i)}return f}};function gz(r,e){var t=r.get("realtimeSort",!0),a=e.getBaseAxis();if(t&&a.type==="category"&&e.type==="cartesian2d")return{baseAxis:a,otherAxis:e.getOtherAxis(a)}}function O1(r,e,t,a,n,i,o,s){var l,u;i?(u={x:a.x,width:a.width},l={y:a.y,height:a.height}):(u={y:a.y,height:a.height},l={x:a.x,width:a.width}),s||(o?Tt:Gt)(t,{shape:l},e,n,null);var f=e?r.baseAxis.model:null;(o?Tt:Gt)(t,{shape:u},f,n)}function N1(r,e){for(var t=0;t0?1:-1,o=a.height>0?1:-1;return{x:a.x+i*n/2,y:a.y+o*n/2,width:a.width-i*n,height:a.height-o*n}},polar:function(r,e,t){var a=r.getItemLayout(e);return{cx:a.cx,cy:a.cy,r0:a.r0,r:a.r,startAngle:a.startAngle,endAngle:a.endAngle,clockwise:a.clockwise}}};function _z(r){return r.startAngle!=null&&r.endAngle!=null&&r.startAngle===r.endAngle}function YD(r){return function(e){var t=e?"Arc":"Angle";return function(a){switch(a){case"start":case"insideStart":case"end":case"insideEnd":return a+t;default:return a}}}(r)}function V1(r,e,t,a,n,i,o,s){var l=e.getItemVisual(t,"style");if(s){if(!i.get("roundCap")){var f=r.shape,h=jn(a.getModel("itemStyle"),f,!0);V(f,h),r.setShape(f)}}else{var u=a.get(["itemStyle","borderRadius"])||0;r.setShape("r",u)}r.useStyle(l);var v=a.getShallow("cursor");v&&r.attr("cursor",v);var c=s?o?n.r>=n.r0?"endArc":"startArc":n.endAngle>=n.startAngle?"endAngle":"startAngle":o?n.height>=0?"bottom":"top":n.width>=0?"right":"left",p=oe(a);pe(r,p,{labelFetcher:i,labelDataIndex:t,defaultText:po(i.getData(),t),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:c});var d=r.getTextContent();if(s&&d){var g=a.get(["label","position"]);r.textConfig.inside=g==="middle"?!0:null,cz(r,g==="outside"?c:g,YD(o),a.get(["label","rotate"]))}fA(d,p,i.getRawValue(t),function(m){return ND(e,m)});var y=a.getModel(["emphasis"]);Wt(r,y.get("focus"),y.get("blurScope"),y.get("disabled")),ce(r,a),_z(n)&&(r.style.fill="none",r.style.stroke="none",D(r.states,function(m){m.style&&(m.style.fill=m.style.stroke="none")}))}function Sz(r,e){var t=r.get(["itemStyle","borderColor"]);if(!t||t==="none")return 0;var a=r.get(["itemStyle","borderWidth"])||0,n=isNaN(e.width)?Number.MAX_VALUE:Math.abs(e.width),i=isNaN(e.height)?Number.MAX_VALUE:Math.abs(e.height);return Math.min(a,n,i)}var xz=function(){function r(){}return r}(),z1=function(r){N(e,r);function e(t){var a=r.call(this,t)||this;return a.type="largeBar",a}return e.prototype.getDefaultShape=function(){return new xz},e.prototype.buildPath=function(t,a){for(var n=a.points,i=this.baseDimIdx,o=1-this.baseDimIdx,s=[],l=[],u=this.barWidth,f=0;f=0?t:null},30,!1);function bz(r,e,t){for(var a=r.baseDimIdx,n=1-a,i=r.shape.points,o=r.largeDataIndices,s=[],l=[],u=r.barWidth,f=0,h=i.length/3;f=s[0]&&e<=s[0]+l[0]&&t>=s[1]&&t<=s[1]+l[1])return o[f]}return-1}function XD(r,e,t){if(Si(t,"cartesian2d")){var a=e,n=t.getArea();return{x:r?a.x:n.x,y:r?n.y:a.y,width:r?a.width:n.width,height:r?n.height:a.height}}else{var n=t.getArea(),i=e;return{cx:n.cx,cy:n.cy,r0:r?n.r0:i.r0,r:r?n.r:i.r,startAngle:r?i.startAngle:0,endAngle:r?i.endAngle:Math.PI*2}}}function wz(r,e,t){var a=r.type==="polar"?we:xt;return new a({shape:XD(e,t,r),silent:!0,z2:0})}function Tz(r){r.registerChartView(dz),r.registerSeriesModel(fz),r.registerLayout(r.PRIORITY.VISUAL.LAYOUT,lt(jC,"bar")),r.registerLayout(r.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,JC("bar")),r.registerProcessor(r.PRIORITY.PROCESSOR.STATISTIC,UD("bar")),r.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},function(e,t){var a=e.componentType||"series";t.eachComponent({mainType:a,query:e},function(n){e.sortInfo&&n.axis.setCategorySortInfo(e.sortInfo)})})}var H1=Math.PI*2,Du=Math.PI/180;function $D(r,e){return Jt(r.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function ZD(r,e){var t=$D(r,e),a=r.get("center"),n=r.get("radius");z(n)||(n=[0,n]);var i=W(t.width,e.getWidth()),o=W(t.height,e.getHeight()),s=Math.min(i,o),l=W(n[0],s/2),u=W(n[1],s/2),f,h,v=r.coordinateSystem;if(v){var c=v.dataToPoint(a);f=c[0]||0,h=c[1]||0}else z(a)||(a=[a,a]),f=W(a[0],i)+t.x,h=W(a[1],o)+t.y;return{cx:f,cy:h,r0:l,r:u}}function Az(r,e,t){e.eachSeriesByType(r,function(a){var n=a.getData(),i=n.mapDimension("value"),o=$D(a,t),s=ZD(a,t),l=s.cx,u=s.cy,f=s.r,h=s.r0,v=-a.get("startAngle")*Du,c=a.get("endAngle"),p=a.get("padAngle")*Du;c=c==="auto"?v-H1:-c*Du;var d=a.get("minAngle")*Du,g=d+p,y=0;n.each(i,function(O){!isNaN(O)&&y++});var m=n.getSum(i),_=Math.PI/(m||y)*2,S=a.get("clockwise"),b=a.get("roseType"),x=a.get("stillShowZeroSum"),w=n.getDataExtent(i);w[0]=0;var T=S?1:-1,A=[v,c],C=T*p/2;Pg(A,!S),v=A[0],c=A[1];var M=qD(a);M.startAngle=v,M.endAngle=c,M.clockwise=S;var I=Math.abs(c-v),L=I,P=0,R=v;if(n.setLayout({viewRect:o,r:f}),n.each(i,function(O,k){var B;if(isNaN(O)){n.setItemLayout(k,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:S,cx:l,cy:u,r0:h,r:b?NaN:f});return}b!=="area"?B=m===0&&x?_:O*_:B=I/y,BB?(H=R+T*B/2,U=H):(H=R+C,U=F-C),n.setItemLayout(k,{angle:B,startAngle:H,endAngle:U,clockwise:S,cx:l,cy:u,r0:h,r:b?Dt(O,w,[h,f]):f}),R=F}),Lt?y:g,b=Math.abs(_.label.y-t);if(b>=S.maxY){var x=_.label.x-e-_.len2*n,w=a+_.len,T=Math.abs(x)r.unconstrainedWidth?null:c:null;a.setStyle("width",p)}var d=a.getBoundingRect();i.width=d.width;var g=(a.style.margin||0)+2.1;i.height=d.height+g,i.y-=(i.height-h)/2}}}function yc(r){return r.position==="center"}function Mz(r){var e=r.getData(),t=[],a,n,i=!1,o=(r.get("minShowLabelAngle")||0)*Cz,s=e.getLayout("viewRect"),l=e.getLayout("r"),u=s.width,f=s.x,h=s.y,v=s.height;function c(x){x.ignore=!0}function p(x){if(!x.ignore)return!0;for(var w in x.states)if(x.states[w].ignore===!1)return!0;return!1}e.each(function(x){var w=e.getItemGraphicEl(x),T=w.shape,A=w.getTextContent(),C=w.getTextGuideLine(),M=e.getItemModel(x),I=M.getModel("label"),L=I.get("position")||M.get(["emphasis","label","position"]),P=I.get("distanceToLabelLine"),R=I.get("alignTo"),E=W(I.get("edgeDistance"),u),O=I.get("bleedMargin"),k=M.getModel("labelLine"),B=k.get("length");B=W(B,u);var F=k.get("length2");if(F=W(F,u),Math.abs(T.endAngle-T.startAngle)0?"right":"left":U>0?"left":"right"}var kt=Math.PI,Ht=0,ee=I.get("rotate");if(wt(ee))Ht=ee*(kt/180);else if(L==="center")Ht=0;else if(ee==="radial"||ee===!0){var He=U<0?-H+kt:-H;Ht=He}else if(ee==="tangential"&&L!=="outside"&&L!=="outer"){var Oe=Math.atan2(U,j);Oe<0&&(Oe=kt*2+Oe);var un=j>0;un&&(Oe=kt+Oe),Ht=Oe-kt}if(i=!!Ht,A.x=Q,A.y=it,A.rotation=Ht,A.setStyle({verticalAlign:"middle"}),ct){A.setStyle({align:Yt});var Qh=A.states.select;Qh&&(Qh.x+=A.x,Qh.y+=A.y)}else{var Ta=A.getBoundingRect().clone();Ta.applyTransform(A.getComputedTransform());var Rm=(A.style.margin||0)+2.1;Ta.y-=Rm/2,Ta.height+=Rm,t.push({label:A,labelLine:C,position:L,len:B,len2:F,minTurnAngle:k.get("minTurnAngle"),maxSurfaceAngle:k.get("maxSurfaceAngle"),surfaceNormal:new ft(U,j),linePoints:Pt,textAlign:Yt,labelDistance:P,labelAlignTo:R,edgeDistance:E,bleedMargin:O,rect:Ta,unconstrainedWidth:Ta.width,labelStyleWidth:A.style.width})}w.setTextConfig({inside:ct})}}),!i&&r.get("avoidLabelOverlap")&&Dz(t,a,n,l,u,v,f,h);for(var d=0;d0){for(var f=o.getItemLayout(0),h=1;isNaN(f&&f.startAngle)&&h=i.r0}},e.type="pie",e}(Lt);function zo(r,e,t){e=z(e)&&{coordDimensions:e}||V({encodeDefine:r.getEncode()},e);var a=r.getSource(),n=No(a,e).dimensions,i=new xe(n,r);return i.initData(a,t),i}var zl=function(){function r(e,t){this._getDataWithEncodedVisual=e,this._getRawData=t}return r.prototype.getAllNames=function(){var e=this._getRawData();return e.mapArray(e.getName)},r.prototype.containName=function(e){var t=this._getRawData();return t.indexOfName(e)>=0},r.prototype.indexOfName=function(e){var t=this._getDataWithEncodedVisual();return t.indexOfName(e)},r.prototype.getItemVisual=function(e,t){var a=this._getDataWithEncodedVisual();return a.getItemVisual(e,t)},r}(),Pz=bt(),Rz=function(r){N(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.init=function(t){r.prototype.init.apply(this,arguments),this.legendVisualProvider=new zl(X(this.getData,this),X(this.getRawData,this)),this._defaultLabelLine(t)},e.prototype.mergeOption=function(){r.prototype.mergeOption.apply(this,arguments)},e.prototype.getInitialData=function(){return zo(this,{coordDimensions:["value"],encodeDefaulter:lt(ty,this)})},e.prototype.getDataParams=function(t){var a=this.getData(),n=Pz(a),i=n.seats;if(!i){var o=[];a.each(a.mapDimension("value"),function(l){o.push(l)}),i=n.seats=yT(o,a.hostModel.get("percentPrecision"))}var s=r.prototype.getDataParams.call(this,t);return s.percent=i[t]||0,s.$vars.push("percent"),s},e.prototype._defaultLabelLine=function(t){oi(t,"labelLine",["show"]);var a=t.labelLine,n=t.emphasis.labelLine;a.show=a.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.type="series.pie",e.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,endAngle:"auto",padAngle:0,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},e}(Et);function Ez(r){return{seriesType:r,reset:function(e,t){var a=e.getData();a.filterSelf(function(n){var i=a.mapDimension("value"),o=a.get(i,n);return!(wt(o)&&!isNaN(o)&&o<0)})}}}function kz(r){r.registerChartView(Lz),r.registerSeriesModel(Rz),cC("pie",r.registerAction),r.registerLayout(lt(Az,"pie")),r.registerProcessor(Vl("pie")),r.registerProcessor(Ez("pie"))}var Oz=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.hasSymbolVisual=!0,t}return e.prototype.getInitialData=function(t,a){return ea(null,this,{useEncodeDefaulter:!0})},e.prototype.getProgressive=function(){var t=this.option.progressive;return t??(this.option.large?5e3:this.get("progressive"))},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return t??(this.option.large?1e4:this.get("progressiveThreshold"))},e.prototype.brushSelector=function(t,a,n){return n.point(a.getItemLayout(t))},e.prototype.getZLevelKey=function(){return this.getData().count()>this.getProgressiveThreshold()?this.id:""},e.type="series.scatter",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",z:2,legendHoverLink:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{opacity:.8},emphasis:{scale:!0},clip:!0,select:{itemStyle:{borderColor:"#212121"}},universalTransition:{divideShape:"clone"}},e}(Et),jD=4,Nz=function(){function r(){}return r}(),Bz=function(r){N(e,r);function e(t){var a=r.call(this,t)||this;return a._off=0,a.hoverDataIdx=-1,a}return e.prototype.getDefaultShape=function(){return new Nz},e.prototype.reset=function(){this.notClear=!1,this._off=0},e.prototype.buildPath=function(t,a){var n=a.points,i=a.size,o=this.symbolProxy,s=o.shape,l=t.getContext?t.getContext():t,u=l&&i[0]=0;u--){var f=u*2,h=i[f]-s/2,v=i[f+1]-l/2;if(t>=h&&a>=v&&t<=h+s&&a<=v+l)return u}return-1},e.prototype.contain=function(t,a){var n=this.transformCoordToLocal(t,a),i=this.getBoundingRect();if(t=n[0],a=n[1],i.contain(t,a)){var o=this.hoverDataIdx=this.findDataIndex(t,a);return o>=0}return this.hoverDataIdx=-1,!1},e.prototype.getBoundingRect=function(){var t=this._rect;if(!t){for(var a=this.shape,n=a.points,i=a.size,o=i[0],s=i[1],l=1/0,u=1/0,f=-1/0,h=-1/0,v=0;v=0&&(u.dataIndex=h+(e.startIndex||0))})},r.prototype.remove=function(){this._clear()},r.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},r}(),zz=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){var i=t.getData(),o=this._updateSymbolDraw(i,t);o.updateData(i,{clipShape:this._getClipShape(t)}),this._finished=!0},e.prototype.incrementalPrepareRender=function(t,a,n){var i=t.getData(),o=this._updateSymbolDraw(i,t);o.incrementalPrepareUpdate(i),this._finished=!1},e.prototype.incrementalRender=function(t,a,n){this._symbolDraw.incrementalUpdate(t,a.getData(),{clipShape:this._getClipShape(a)}),this._finished=t.end===a.getData().count()},e.prototype.updateTransform=function(t,a,n){var i=t.getData();if(this.group.dirty(),!this._finished||i.count()>1e4)return{update:!0};var o=Bl("").reset(t,a,n);o.progress&&o.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout(i)},e.prototype.eachRendered=function(t){this._symbolDraw&&this._symbolDraw.eachRendered(t)},e.prototype._getClipShape=function(t){if(t.get("clip",!0)){var a=t.coordinateSystem;return a&&a.getArea&&a.getArea(.1)}},e.prototype._updateSymbolDraw=function(t,a){var n=this._symbolDraw,i=a.pipelineContext,o=i.large;return(!n||o!==this._isLargeDraw)&&(n&&n.remove(),n=this._symbolDraw=o?new Vz:new Ol,this._isLargeDraw=o,this.group.removeAll()),this.group.add(n.group),n},e.prototype.remove=function(t,a){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},e.prototype.dispose=function(){},e.type="scatter",e}(Lt),Gz=function(r){N(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.type="grid",e.dependencies=["xAxis","yAxis"],e.layoutMode="box",e.defaultOption={show:!1,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},e}(gt),Cd=function(r){N(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",jt).models[0]},e.type="cartesian2dAxis",e}(gt);$t(Cd,Vo);var JD={show:!0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,showMinLine:!0,showMaxLine:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},Fz=ut({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},JD),ky=ut({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},JD),Hz=ut({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},ky),Wz=J({logBase:10},ky);const QD={category:Fz,value:ky,time:Hz,log:Wz};var Uz={value:1,category:1,time:1,log:1};function go(r,e,t,a){D(Uz,function(n,i){var o=ut(ut({},QD[i],!0),a,!0),s=function(l){N(u,l);function u(){var f=l!==null&&l.apply(this,arguments)||this;return f.type=e+"Axis."+i,f}return u.prototype.mergeDefaultAndTheme=function(f,h){var v=rl(this),c=v?Lo(f):{},p=h.getTheme();ut(f,p.get(i+"Axis")),ut(f,this.getDefaultOption()),f.type=U1(f),v&&tn(f,c,v)},u.prototype.optionUpdated=function(){var f=this.option;f.type==="category"&&(this.__ordinalMeta=md.createByAxisModel(this))},u.prototype.getCategories=function(f){var h=this.option;if(h.type==="category")return f?h.data:this.__ordinalMeta.categories},u.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},u.type=e+"Axis."+i,u.defaultOption=o,u}(t);r.registerComponentModel(s)}),r.registerSubTypeDefaulter(e+"Axis",U1)}function U1(r){return r.type||(r.data?"category":"value")}var Yz=function(){function r(e){this.type="cartesian",this._dimList=[],this._axes={},this.name=e||""}return r.prototype.getAxis=function(e){return this._axes[e]},r.prototype.getAxes=function(){return G(this._dimList,function(e){return this._axes[e]},this)},r.prototype.getAxesByScale=function(e){return e=e.toLowerCase(),At(this.getAxes(),function(t){return t.scale.type===e})},r.prototype.addAxis=function(e){var t=e.dim;this._axes[t]=e,this._dimList.push(t)},r}(),Dd=["x","y"];function Y1(r){return r.type==="interval"||r.type==="time"}var Xz=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type="cartesian2d",t.dimensions=Dd,t}return e.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var t=this.getAxis("x").scale,a=this.getAxis("y").scale;if(!(!Y1(t)||!Y1(a))){var n=t.getExtent(),i=a.getExtent(),o=this.dataToPoint([n[0],i[0]]),s=this.dataToPoint([n[1],i[1]]),l=n[1]-n[0],u=i[1]-i[0];if(!(!l||!u)){var f=(s[0]-o[0])/l,h=(s[1]-o[1])/u,v=o[0]-n[0]*f,c=o[1]-i[0]*h,p=this._transform=[f,0,0,h,v,c];this._invTransform=di([],p)}}},e.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},e.prototype.containPoint=function(t){var a=this.getAxis("x"),n=this.getAxis("y");return a.contain(a.toLocalCoord(t[0]))&&n.contain(n.toLocalCoord(t[1]))},e.prototype.containData=function(t){return this.getAxis("x").containData(t[0])&&this.getAxis("y").containData(t[1])},e.prototype.containZone=function(t,a){var n=this.dataToPoint(t),i=this.dataToPoint(a),o=this.getArea(),s=new ht(n[0],n[1],i[0]-n[0],i[1]-n[1]);return o.intersect(s)},e.prototype.dataToPoint=function(t,a,n){n=n||[];var i=t[0],o=t[1];if(this._transform&&i!=null&&isFinite(i)&&o!=null&&isFinite(o))return fe(n,t,this._transform);var s=this.getAxis("x"),l=this.getAxis("y");return n[0]=s.toGlobalCoord(s.dataToCoord(i,a)),n[1]=l.toGlobalCoord(l.dataToCoord(o,a)),n},e.prototype.clampData=function(t,a){var n=this.getAxis("x").scale,i=this.getAxis("y").scale,o=n.getExtent(),s=i.getExtent(),l=n.parse(t[0]),u=i.parse(t[1]);return a=a||[],a[0]=Math.min(Math.max(Math.min(o[0],o[1]),l),Math.max(o[0],o[1])),a[1]=Math.min(Math.max(Math.min(s[0],s[1]),u),Math.max(s[0],s[1])),a},e.prototype.pointToData=function(t,a){var n=[];if(this._invTransform)return fe(n,t,this._invTransform);var i=this.getAxis("x"),o=this.getAxis("y");return n[0]=i.coordToData(i.toLocalCoord(t[0]),a),n[1]=o.coordToData(o.toLocalCoord(t[1]),a),n},e.prototype.getOtherAxis=function(t){return this.getAxis(t.dim==="x"?"y":"x")},e.prototype.getArea=function(t){t=t||0;var a=this.getAxis("x").getGlobalExtent(),n=this.getAxis("y").getGlobalExtent(),i=Math.min(a[0],a[1])-t,o=Math.min(n[0],n[1])-t,s=Math.max(a[0],a[1])-i+t,l=Math.max(n[0],n[1])-o+t;return new ht(i,o,s,l)},e}(Yz),$z=function(r){N(e,r);function e(t,a,n,i,o){var s=r.call(this,t,a,n)||this;return s.index=0,s.type=i||"value",s.position=o||"bottom",s}return e.prototype.isHorizontal=function(){var t=this.position;return t==="top"||t==="bottom"},e.prototype.getGlobalExtent=function(t){var a=this.getExtent();return a[0]=this.toGlobalCoord(a[0]),a[1]=this.toGlobalCoord(a[1]),t&&a[0]>a[1]&&a.reverse(),a},e.prototype.pointToData=function(t,a){return this.coordToData(this.toLocalCoord(t[this.dim==="x"?0:1]),a)},e.prototype.setCategorySortInfo=function(t){if(this.type!=="category")return!1;this.model.option.categorySortInfo=t,this.scale.setSortInfo(t)},e}(dr);function Md(r,e,t){t=t||{};var a=r.coordinateSystem,n=e.axis,i={},o=n.getAxesOnZeroOf()[0],s=n.position,l=o?"onZero":s,u=n.dim,f=a.getRect(),h=[f.x,f.x+f.width,f.y,f.y+f.height],v={left:0,right:1,top:0,bottom:1,onZero:2},c=e.get("offset")||0,p=u==="x"?[h[2]-c,h[3]+c]:[h[0]-c,h[1]+c];if(o){var d=o.toGlobalCoord(o.dataToCoord(0));p[v.onZero]=Math.max(Math.min(d,p[1]),p[0])}i.position=[u==="y"?p[v[l]]:h[0],u==="x"?p[v[l]]:h[3]],i.rotation=Math.PI/2*(u==="x"?0:1);var g={top:-1,bottom:1,left:-1,right:1};i.labelDirection=i.tickDirection=i.nameDirection=g[s],i.labelOffset=o?p[v[s]]-p[v.onZero]:0,e.get(["axisTick","inside"])&&(i.tickDirection=-i.tickDirection),ae(t.labelInside,e.get(["axisLabel","inside"]))&&(i.labelDirection=-i.labelDirection);var y=e.get(["axisLabel","rotate"]);return i.labelRotate=l==="top"?-y:y,i.z2=1,i}function X1(r){return r.get("coordinateSystem")==="cartesian2d"}function $1(r){var e={xAxisModel:null,yAxisModel:null};return D(e,function(t,a){var n=a.replace(/Model$/,""),i=r.getReferringComponents(n,jt).models[0];e[a]=i}),e}var mc=Math.log;function tM(r,e,t){var a=Sa.prototype,n=a.getTicks.call(t),i=a.getTicks.call(t,!0),o=n.length-1,s=a.getInterval.call(t),l=aD(r,e),u=l.extent,f=l.fixMin,h=l.fixMax;if(r.type==="log"){var v=mc(r.base);u=[mc(u[0])/v,mc(u[1])/v]}r.setExtent(u[0],u[1]),r.calcNiceExtent({splitNumber:o,fixMin:f,fixMax:h});var c=a.getExtent.call(r);f&&(u[0]=c[0]),h&&(u[1]=c[1]);var p=a.getInterval.call(r),d=u[0],g=u[1];if(f&&h)p=(g-d)/o;else if(f)for(g=u[0]+p*o;gu[0]&&isFinite(d)&&isFinite(u[0]);)p=ac(p),d=u[1]-p*o;else{var y=r.getTicks().length-1;y>o&&(p=ac(p));var m=p*o;g=Math.ceil(u[1]/p)*p,d=Ut(g-m),d<0&&u[0]>=0?(d=0,g=Ut(m)):g>0&&u[1]<=0&&(g=0,d=-Ut(m))}var _=(n[0].value-i[0].value)/s,S=(n[o].value-i[o].value)/s;a.setExtent.call(r,d+p*_,g+p*S),a.setInterval.call(r,p),(_||S)&&a.setNiceExtent.call(r,d+p,g-p)}var Zz=function(){function r(e,t,a){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=Dd,this._initCartesian(e,t,a),this.model=e}return r.prototype.getRect=function(){return this._rect},r.prototype.update=function(e,t){var a=this._axesMap;this._updateScale(e,this.model);function n(o){var s,l=_t(o),u=l.length;if(u){for(var f=[],h=u-1;h>=0;h--){var v=+l[h],c=o[v],p=c.model,d=c.scale;_d(d)&&p.get("alignTicks")&&p.get("interval")==null?f.push(c):(hi(d,p),_d(d)&&(s=c))}f.length&&(s||(s=f.pop(),hi(s.scale,s.model)),D(f,function(g){tM(g.scale,g.model,s.scale)}))}}n(a.x),n(a.y);var i={};D(a.x,function(o){Z1(a,"y",o,i)}),D(a.y,function(o){Z1(a,"x",o,i)}),this.resize(this.model,t)},r.prototype.resize=function(e,t,a){var n=e.getBoxLayoutParams(),i=!a&&e.get("containLabel"),o=Jt(n,{width:t.getWidth(),height:t.getHeight()});this._rect=o;var s=this._axesList;l(),i&&(D(s,function(u){if(!u.model.get(["axisLabel","inside"])){var f=pB(u);if(f){var h=u.isHorizontal()?"height":"width",v=u.model.get(["axisLabel","margin"]);o[h]-=f[h]+v,u.position==="top"?o.y+=f.height+v:u.position==="left"&&(o.x+=f.width+v)}}}),l()),D(this._coordsList,function(u){u.calcAffineTransform()});function l(){D(s,function(u){var f=u.isHorizontal(),h=f?[0,o.width]:[0,o.height],v=u.inverse?1:0;u.setExtent(h[v],h[1-v]),qz(u,f?o.x:o.y)})}},r.prototype.getAxis=function(e,t){var a=this._axesMap[e];if(a!=null)return a[t||0]},r.prototype.getAxes=function(){return this._axesList.slice()},r.prototype.getCartesian=function(e,t){if(e!=null&&t!=null){var a="x"+e+"y"+t;return this._coordsMap[a]}tt(e)&&(t=e.yAxisIndex,e=e.xAxisIndex);for(var n=0,i=this._coordsList;n0?"top":"bottom",i="center"):uo(n-Fa)?(o=a>0?"bottom":"top",i="center"):(o="middle",n>0&&n0?"right":"left":i=a>0?"left":"right"),{rotation:n,textAlign:i,textVerticalAlign:o}},r.makeAxisEventDataBase=function(e){var t={componentType:e.mainType,componentIndex:e.componentIndex};return t[e.mainType+"Index"]=e.componentIndex,t},r.isLabelSilent=function(e){var t=e.get("tooltip");return e.get("silent")||!(e.get("triggerEvent")||t&&t.show)},r}(),K1={axisLine:function(r,e,t,a){var n=e.get(["axisLine","show"]);if(n==="auto"&&r.handleAutoShown&&(n=r.handleAutoShown("axisLine")),!!n){var i=e.axis.getExtent(),o=a.transform,s=[i[0],0],l=[i[1],0],u=s[0]>l[0];o&&(fe(s,s,o),fe(l,l,o));var f=V({lineCap:"round"},e.getModel(["axisLine","lineStyle"]).getLineStyle()),h=new te({shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:f,strokeContainThreshold:r.strokeContainThreshold||5,silent:!0,z2:1});ho(h.shape,h.style.lineWidth),h.anid="line",t.add(h);var v=e.get(["axisLine","symbol"]);if(v!=null){var c=e.get(["axisLine","symbolSize"]);Y(v)&&(v=[v,v]),(Y(c)||wt(c))&&(c=[c,c]);var p=_i(e.get(["axisLine","symbolOffset"])||0,c),d=c[0],g=c[1];D([{rotate:r.rotation+Math.PI/2,offset:p[0],r:0},{rotate:r.rotation-Math.PI/2,offset:p[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],function(y,m){if(v[m]!=="none"&&v[m]!=null){var _=qt(v[m],-d/2,-g/2,d,g,f.stroke,!0),S=y.r+y.offset,b=u?l:s;_.attr({rotation:y.rotate,x:b[0]+S*Math.cos(r.rotation),y:b[1]-S*Math.sin(r.rotation),silent:!0,z2:11}),t.add(_)}})}}},axisTickLabel:function(r,e,t,a){var n=Jz(t,a,e,r),i=t5(t,a,e,r);if(jz(e,i,n),Qz(t,a,e,r.tickDirection),e.get(["axisLabel","hideOverlap"])){var o=yD(G(i,function(s){return{label:s,priority:s.z2,defaultAttr:{ignore:s.ignore}}}));SD(o)}},axisName:function(r,e,t,a){var n=ae(r.axisName,e.get("name"));if(n){var i=e.get("nameLocation"),o=r.nameDirection,s=e.getModel("nameTextStyle"),l=e.get("nameGap")||0,u=e.axis.getExtent(),f=u[0]>u[1]?-1:1,h=[i==="start"?u[0]-f*l:i==="end"?u[1]+f*l:(u[0]+u[1])/2,J1(i)?r.labelOffset+o*l:0],v,c=e.get("nameRotate");c!=null&&(c=c*Fa/180);var p;J1(i)?v=Re.innerTextLayout(r.rotation,c??r.rotation,o):(v=Kz(r.rotation,i,c||0,u),p=r.axisNameAvailableWidth,p!=null&&(p=Math.abs(p/Math.sin(v.rotation)),!isFinite(p)&&(p=null)));var d=s.getFont(),g=e.get("nameTruncate",!0)||{},y=g.ellipsis,m=ae(r.nameTruncateMaxWidth,g.maxWidth,p),_=new St({x:h[0],y:h[1],rotation:v.rotation,silent:Re.isLabelSilent(e),style:Nt(s,{text:n,font:d,overflow:"truncate",width:m,ellipsis:y,fill:s.getTextColor()||e.get(["axisLine","lineStyle","color"]),align:s.get("align")||v.textAlign,verticalAlign:s.get("verticalAlign")||v.textVerticalAlign}),z2:1});if(gi({el:_,componentModel:e,itemName:n}),_.__fullText=n,_.anid="name",e.get("triggerEvent")){var S=Re.makeAxisEventDataBase(e);S.targetType="axisName",S.name=n,nt(_).eventData=S}a.add(_),_.updateTransform(),t.add(_),_.decomposeTransform()}}};function Kz(r,e,t,a){var n=Tg(t-r),i,o,s=a[0]>a[1],l=e==="start"&&!s||e!=="start"&&s;return uo(n-Fa/2)?(o=l?"bottom":"top",i="center"):uo(n-Fa*1.5)?(o=l?"top":"bottom",i="center"):(o="middle",nFa/2?i=l?"left":"right":i=l?"right":"left"),{rotation:n,textAlign:i,textVerticalAlign:o}}function jz(r,e,t){if(!nD(r.axis)){var a=r.get(["axisLabel","showMinLabel"]),n=r.get(["axisLabel","showMaxLabel"]);e=e||[],t=t||[];var i=e[0],o=e[1],s=e[e.length-1],l=e[e.length-2],u=t[0],f=t[1],h=t[t.length-1],v=t[t.length-2];a===!1?(Ke(i),Ke(u)):j1(i,o)&&(a?(Ke(o),Ke(f)):(Ke(i),Ke(u))),n===!1?(Ke(s),Ke(h)):j1(l,s)&&(n?(Ke(l),Ke(v)):(Ke(s),Ke(h)))}}function Ke(r){r&&(r.ignore=!0)}function j1(r,e){var t=r&&r.getBoundingRect().clone(),a=e&&e.getBoundingRect().clone();if(!(!t||!a)){var n=bl([]);return nn(n,n,-r.rotation),t.applyTransform($r([],n,r.getLocalTransform())),a.applyTransform($r([],n,e.getLocalTransform())),t.intersect(a)}}function J1(r){return r==="middle"||r==="center"}function eM(r,e,t,a,n){for(var i=[],o=[],s=[],l=0;l=0||r===e}function o5(r){var e=Oy(r);if(e){var t=e.axisPointerModel,a=e.axis.scale,n=t.option,i=t.get("status"),o=t.get("value");o!=null&&(o=a.parse(o));var s=Id(t);i==null&&(n.status=s?"show":"hide");var l=a.getExtent().slice();l[0]>l[1]&&l.reverse(),(o==null||o>l[1])&&(o=l[1]),o0&&!p.min?p.min=0:p.min!=null&&p.min<0&&!p.max&&(p.max=0);var d=l;p.color!=null&&(d=J({color:p.color},l));var g=ut(rt(p),{boundaryGap:t,splitNumber:a,scale:n,axisLine:i,axisTick:o,axisLabel:s,name:p.text,showName:u,nameLocation:"end",nameGap:h,nameTextStyle:d,triggerEvent:v},!1);if(Y(f)){var y=g.name;g.name=f.replace("{value}",y??"")}else K(f)&&(g.name=f(g.name,g));var m=new Ct(g,null,this.ecModel);return $t(m,Vo.prototype),m.mainType="radar",m.componentIndex=this.componentIndex,m},this);this._indicatorModels=c},e.prototype.getIndicatorModels=function(){return this._indicatorModels},e.type="radar",e.defaultOption={z:0,center:["50%","50%"],radius:"75%",startAngle:90,axisName:{show:!0},boundaryGap:[0,0],splitNumber:5,axisNameGap:15,scale:!1,shape:"polygon",axisLine:ut({lineStyle:{color:"#bbb"}},is.axisLine),axisLabel:Mu(is.axisLabel,!1),axisTick:Mu(is.axisTick,!1),splitLine:Mu(is.splitLine,!0),splitArea:Mu(is.splitArea,!0),indicator:[]},e}(gt),_5=["axisLine","axisTickLabel","axisName"],S5=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){var i=this.group;i.removeAll(),this._buildAxes(t),this._buildSplitLineAndArea(t)},e.prototype._buildAxes=function(t){var a=t.coordinateSystem,n=a.getIndicatorAxes(),i=G(n,function(o){var s=o.model.get("showName")?o.name:"",l=new Re(o.model,{axisName:s,position:[a.cx,a.cy],rotation:o.angle,labelDirection:-1,tickDirection:-1,nameDirection:1});return l});D(i,function(o){D(_5,o.add,o),this.group.add(o.getGroup())},this)},e.prototype._buildSplitLineAndArea=function(t){var a=t.coordinateSystem,n=a.getIndicatorAxes();if(!n.length)return;var i=t.get("shape"),o=t.getModel("splitLine"),s=t.getModel("splitArea"),l=o.getModel("lineStyle"),u=s.getModel("areaStyle"),f=o.get("show"),h=s.get("show"),v=l.get("color"),c=u.get("color"),p=z(v)?v:[v],d=z(c)?c:[c],g=[],y=[];function m(R,E,O){var k=O%E.length;return R[k]=R[k]||[],k}if(i==="circle")for(var _=n[0].getTicksCoords(),S=a.cx,b=a.cy,x=0;x<_.length;x++){if(f){var w=m(g,p,x);g[w].push(new Qr({shape:{cx:S,cy:b,r:_[x].coord}}))}if(h&&x<_.length-1){var w=m(y,d,x);y[w].push(new wo({shape:{cx:S,cy:b,r0:_[x].coord,r:_[x+1].coord}}))}}else for(var T,A=G(n,function(R,E){var O=R.getTicksCoords();return T=T==null?O.length-1:Math.min(O.length-1,T),G(O,function(k){return a.coordToPoint(k.coord,E)})}),C=[],x=0;x<=T;x++){for(var M=[],I=0;I3?1.4:o>1?1.2:1.1,f=i>0?u:1/u;xc(this,"zoom","zoomOnMouseWheel",t,{scale:f,originX:s,originY:l,isAvailableBehavior:null})}if(n){var h=Math.abs(i),v=(i>0?1:-1)*(h>3?.4:h>1?.15:.05);xc(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:v,originX:s,originY:l,isAvailableBehavior:null})}}},e.prototype._pinchHandler=function(t){if(!nS(this._zr,"globalPan")){var a=t.pinchScale>1?1.1:1/1.1;xc(this,"zoom",null,t,{scale:a,originX:t.pinchX,originY:t.pinchY,isAvailableBehavior:null})}},e}(hr);function xc(r,e,t,a,n){r.pointerChecker&&r.pointerChecker(a,n.originX,n.originY)&&(da(a.event),sM(r,e,t,a,n))}function sM(r,e,t,a,n){n.isAvailableBehavior=X(of,null,t,a),r.trigger(e,n)}function of(r,e,t){var a=t[r];return!r||a&&(!Y(a)||e.event[a+"Key"])}function By(r,e,t){var a=r.target;a.x+=e,a.y+=t,a.dirty()}function Vy(r,e,t,a){var n=r.target,i=r.zoomLimit,o=r.zoom=r.zoom||1;if(o*=e,i){var s=i.min||0,l=i.max||1/0;o=Math.max(Math.min(l,o),s)}var u=o/r.zoom;r.zoom=o,n.x-=(t-n.x)*(u-1),n.y-=(a-n.y)*(u-1),n.scaleX*=u,n.scaleY*=u,n.dirty()}var D5={axisPointer:1,tooltip:1,brush:1};function Xh(r,e,t){var a=e.getComponentByElement(r.topTarget),n=a&&a.coordinateSystem;return a&&a!==t&&!D5.hasOwnProperty(a.mainType)&&n&&n.model!==t}function lM(r){if(Y(r)){var e=new DOMParser;r=e.parseFromString(r,"text/xml")}var t=r;for(t.nodeType===9&&(t=t.firstChild);t.nodeName.toLowerCase()!=="svg"||t.nodeType!==1;)t=t.nextSibling;return t}var bc,Yf={fill:"fill",stroke:"stroke","stroke-width":"lineWidth",opacity:"opacity","fill-opacity":"fillOpacity","stroke-opacity":"strokeOpacity","stroke-dasharray":"lineDash","stroke-dashoffset":"lineDashOffset","stroke-linecap":"lineCap","stroke-linejoin":"lineJoin","stroke-miterlimit":"miterLimit","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","text-anchor":"textAlign",visibility:"visibility",display:"display"},iS=_t(Yf),Xf={"alignment-baseline":"textBaseline","stop-color":"stopColor"},oS=_t(Xf),M5=function(){function r(){this._defs={},this._root=null}return r.prototype.parse=function(e,t){t=t||{};var a=lM(e);this._defsUsePending=[];var n=new at;this._root=n;var i=[],o=a.getAttribute("viewBox")||"",s=parseFloat(a.getAttribute("width")||t.width),l=parseFloat(a.getAttribute("height")||t.height);isNaN(s)&&(s=null),isNaN(l)&&(l=null),We(a,n,null,!0,!1);for(var u=a.firstChild;u;)this._parseNode(u,n,i,null,!1,!1),u=u.nextSibling;P5(this._defs,this._defsUsePending),this._defsUsePending=[];var f,h;if(o){var v=$h(o);v.length>=4&&(f={x:parseFloat(v[0]||0),y:parseFloat(v[1]||0),width:parseFloat(v[2]),height:parseFloat(v[3])})}if(f&&s!=null&&l!=null&&(h=fM(f,{x:0,y:0,width:s,height:l}),!t.ignoreViewBox)){var c=n;n=new at,n.add(c),c.scaleX=c.scaleY=h.scale,c.x=h.x,c.y=h.y}return!t.ignoreRootClip&&s!=null&&l!=null&&n.setClipPath(new xt({shape:{x:0,y:0,width:s,height:l}})),{root:n,width:s,height:l,viewBoxRect:f,viewBoxTransform:h,named:i}},r.prototype._parseNode=function(e,t,a,n,i,o){var s=e.nodeName.toLowerCase(),l,u=n;if(s==="defs"&&(i=!0),s==="text"&&(o=!0),s==="defs"||s==="switch")l=t;else{if(!i){var f=bc[s];if(f&&$(bc,s)){l=f.call(this,e,t);var h=e.getAttribute("name");if(h){var v={name:h,namedFrom:null,svgNodeTagLower:s,el:l};a.push(v),s==="g"&&(u=v)}else n&&a.push({name:n.name,namedFrom:n,svgNodeTagLower:s,el:l});t.add(l)}}var c=sS[s];if(c&&$(sS,s)){var p=c.call(this,e),d=e.getAttribute("id");d&&(this._defs[d]=p)}}if(l&&l.isGroup)for(var g=e.firstChild;g;)g.nodeType===1?this._parseNode(g,l,a,u,i,o):g.nodeType===3&&o&&this._parseText(g,l),g=g.nextSibling},r.prototype._parseText=function(e,t){var a=new fo({style:{text:e.textContent},silent:!0,x:this._textX||0,y:this._textY||0});je(t,a),We(e,a,this._defsUsePending,!1,!1),I5(a,t);var n=a.style,i=n.fontSize;i&&i<9&&(n.fontSize=9,a.scaleX*=i/9,a.scaleY*=i/9);var o=(n.fontSize||n.fontFamily)&&[n.fontStyle,n.fontWeight,(n.fontSize||12)+"px",n.fontFamily||"sans-serif"].join(" ");n.font=o;var s=a.getBoundingRect();return this._textX+=s.width,t.add(a),a},r.internalField=function(){bc={g:function(e,t){var a=new at;return je(t,a),We(e,a,this._defsUsePending,!1,!1),a},rect:function(e,t){var a=new xt;return je(t,a),We(e,a,this._defsUsePending,!1,!1),a.setShape({x:parseFloat(e.getAttribute("x")||"0"),y:parseFloat(e.getAttribute("y")||"0"),width:parseFloat(e.getAttribute("width")||"0"),height:parseFloat(e.getAttribute("height")||"0")}),a.silent=!0,a},circle:function(e,t){var a=new Qr;return je(t,a),We(e,a,this._defsUsePending,!1,!1),a.setShape({cx:parseFloat(e.getAttribute("cx")||"0"),cy:parseFloat(e.getAttribute("cy")||"0"),r:parseFloat(e.getAttribute("r")||"0")}),a.silent=!0,a},line:function(e,t){var a=new te;return je(t,a),We(e,a,this._defsUsePending,!1,!1),a.setShape({x1:parseFloat(e.getAttribute("x1")||"0"),y1:parseFloat(e.getAttribute("y1")||"0"),x2:parseFloat(e.getAttribute("x2")||"0"),y2:parseFloat(e.getAttribute("y2")||"0")}),a.silent=!0,a},ellipse:function(e,t){var a=new Dl;return je(t,a),We(e,a,this._defsUsePending,!1,!1),a.setShape({cx:parseFloat(e.getAttribute("cx")||"0"),cy:parseFloat(e.getAttribute("cy")||"0"),rx:parseFloat(e.getAttribute("rx")||"0"),ry:parseFloat(e.getAttribute("ry")||"0")}),a.silent=!0,a},polygon:function(e,t){var a=e.getAttribute("points"),n;a&&(n=fS(a));var i=new Te({shape:{points:n||[]},silent:!0});return je(t,i),We(e,i,this._defsUsePending,!1,!1),i},polyline:function(e,t){var a=e.getAttribute("points"),n;a&&(n=fS(a));var i=new Ce({shape:{points:n||[]},silent:!0});return je(t,i),We(e,i,this._defsUsePending,!1,!1),i},image:function(e,t){var a=new le;return je(t,a),We(e,a,this._defsUsePending,!1,!1),a.setStyle({image:e.getAttribute("xlink:href")||e.getAttribute("href"),x:+e.getAttribute("x"),y:+e.getAttribute("y"),width:+e.getAttribute("width"),height:+e.getAttribute("height")}),a.silent=!0,a},text:function(e,t){var a=e.getAttribute("x")||"0",n=e.getAttribute("y")||"0",i=e.getAttribute("dx")||"0",o=e.getAttribute("dy")||"0";this._textX=parseFloat(a)+parseFloat(i),this._textY=parseFloat(n)+parseFloat(o);var s=new at;return je(t,s),We(e,s,this._defsUsePending,!1,!0),s},tspan:function(e,t){var a=e.getAttribute("x"),n=e.getAttribute("y");a!=null&&(this._textX=parseFloat(a)),n!=null&&(this._textY=parseFloat(n));var i=e.getAttribute("dx")||"0",o=e.getAttribute("dy")||"0",s=new at;return je(t,s),We(e,s,this._defsUsePending,!1,!0),this._textX+=parseFloat(i),this._textY+=parseFloat(o),s},path:function(e,t){var a=e.getAttribute("d")||"",n=JT(a);return je(t,n),We(e,n,this._defsUsePending,!1,!1),n.silent=!0,n}}}(),r}(),sS={lineargradient:function(r){var e=parseInt(r.getAttribute("x1")||"0",10),t=parseInt(r.getAttribute("y1")||"0",10),a=parseInt(r.getAttribute("x2")||"10",10),n=parseInt(r.getAttribute("y2")||"0",10),i=new Ao(e,t,a,n);return lS(r,i),uS(r,i),i},radialgradient:function(r){var e=parseInt(r.getAttribute("cx")||"0",10),t=parseInt(r.getAttribute("cy")||"0",10),a=parseInt(r.getAttribute("r")||"0",10),n=new Vg(e,t,a);return lS(r,n),uS(r,n),n}};function lS(r,e){var t=r.getAttribute("gradientUnits");t==="userSpaceOnUse"&&(e.global=!0)}function uS(r,e){for(var t=r.firstChild;t;){if(t.nodeType===1&&t.nodeName.toLocaleLowerCase()==="stop"){var a=t.getAttribute("offset"),n=void 0;a&&a.indexOf("%")>0?n=parseInt(a,10)/100:a?n=parseFloat(a):n=0;var i={};uM(t,i,i);var o=i.stopColor||t.getAttribute("stop-color")||"#000000";e.colorStops.push({offset:n,color:o})}t=t.nextSibling}}function je(r,e){r&&r.__inheritedStyle&&(e.__inheritedStyle||(e.__inheritedStyle={}),J(e.__inheritedStyle,r.__inheritedStyle))}function fS(r){for(var e=$h(r),t=[],a=0;a0;i-=2){var o=a[i],s=a[i-1],l=$h(o);switch(n=n||Fe(),s){case"translate":Ir(n,n,[parseFloat(l[0]),parseFloat(l[1]||"0")]);break;case"scale":dh(n,n,[parseFloat(l[0]),parseFloat(l[1]||l[0])]);break;case"rotate":nn(n,n,-parseFloat(l[0])*wc,[parseFloat(l[1]||"0"),parseFloat(l[2]||"0")]);break;case"skewX":var u=Math.tan(parseFloat(l[0])*wc);$r(n,[1,0,u,1,0,0],n);break;case"skewY":var f=Math.tan(parseFloat(l[0])*wc);$r(n,[1,f,0,1,0,0],n);break;case"matrix":n[0]=parseFloat(l[0]),n[1]=parseFloat(l[1]),n[2]=parseFloat(l[2]),n[3]=parseFloat(l[3]),n[4]=parseFloat(l[4]),n[5]=parseFloat(l[5]);break}}e.setLocalTransform(n)}}var vS=/([^\s:;]+)\s*:\s*([^:;]+)/g;function uM(r,e,t){var a=r.getAttribute("style");if(a){vS.lastIndex=0;for(var n;(n=vS.exec(a))!=null;){var i=n[1],o=$(Yf,i)?Yf[i]:null;o&&(e[o]=n[2]);var s=$(Xf,i)?Xf[i]:null;s&&(t[s]=n[2])}}}function O5(r,e,t){for(var a=0;a0,g={api:a,geo:l,mapOrGeoModel:e,data:s,isVisualEncodedByVisualMap:d,isGeo:o,transformInfoRaw:v};l.resourceType==="geoJSON"?this._buildGeoJSON(g):l.resourceType==="geoSVG"&&this._buildSVG(g),this._updateController(e,t,a),this._updateMapSelectHandler(e,u,a,n)},r.prototype._buildGeoJSON=function(e){var t=this._regionsGroupByName=Z(),a=Z(),n=this._regionsGroup,i=e.transformInfoRaw,o=e.mapOrGeoModel,s=e.data,l=e.geo.projection,u=l&&l.stream;function f(c,p){return p&&(c=p(c)),c&&[c[0]*i.scaleX+i.x,c[1]*i.scaleY+i.y]}function h(c){for(var p=[],d=!u&&l&&l.project,g=0;g=0)&&(v=n);var c=o?{normal:{align:"center",verticalAlign:"middle"}}:null;pe(e,oe(a),{labelFetcher:v,labelDataIndex:h,defaultText:t},c);var p=e.getTextContent();if(p&&(hM(p).ignore=p.ignore,e.textConfig&&o)){var d=e.getBoundingRect().clone();e.textConfig.layoutRect=d,e.textConfig.position=[(o[0]-d.x)/d.width*100+"%",(o[1]-d.y)/d.height*100+"%"]}e.disableLabelAnimation=!0}else e.removeTextContent(),e.removeTextConfig(),e.disableLabelAnimation=null}function yS(r,e,t,a,n,i){r.data?r.data.setItemGraphicEl(i,e):nt(e).eventData={componentType:"geo",componentIndex:n.componentIndex,geoIndex:n.componentIndex,name:t,region:a&&a.option||{}}}function mS(r,e,t,a,n){r.data||gi({el:e,componentModel:n,itemName:t,itemTooltipOption:a.get("tooltip")})}function _S(r,e,t,a,n){e.highDownSilentOnTouch=!!n.get("selectedMode");var i=a.getModel("emphasis"),o=i.get("focus");return Wt(e,o,i.get("blurScope"),i.get("disabled")),r.isGeo&&OR(e,n,t),o}function SS(r,e,t){var a=[],n;function i(){n=[]}function o(){n.length&&(a.push(n),n=[])}var s=e({polygonStart:i,polygonEnd:o,lineStart:i,lineEnd:o,point:function(l,u){isFinite(l)&&isFinite(u)&&n.push([l,u])},sphere:function(){}});return!t&&s.polygonStart(),D(r,function(l){s.lineStart();for(var u=0;u-1&&(n.style.stroke=n.style.fill,n.style.fill="#fff",n.style.lineWidth=2),n},e.type="series.map",e.dependencies=["geo"],e.layoutMode="box",e.defaultOption={z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:null,showLegendSymbol:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,selectedMode:!0,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}},select:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},nameProperty:"name"},e}(Et);function eG(r,e){var t={};return D(r,function(a){a.each(a.mapDimension("value"),function(n,i){var o="ec-"+a.getName(i);t[o]=t[o]||[],isNaN(n)||t[o].push(n)})}),r[0].map(r[0].mapDimension("value"),function(a,n){for(var i="ec-"+r[0].getName(n),o=0,s=1/0,l=-1/0,u=t[i].length,f=0;f1?(S.width=_,S.height=_/g):(S.height=_,S.width=_*g),S.y=m[1]-S.height/2,S.x=m[0]-S.width/2;else{var b=r.getBoxLayoutParams();b.aspect=g,S=Jt(b,{width:p,height:d})}this.setViewRect(S.x,S.y,S.width,S.height),this.setCenter(r.get("center"),e),this.setZoom(r.get("zoom"))}function iG(r,e){D(e.get("geoCoord"),function(t,a){r.addGeoCoord(a,t)})}var oG=function(){function r(){this.dimensions=cM}return r.prototype.create=function(e,t){var a=[];function n(o){return{nameProperty:o.get("nameProperty"),aspectScale:o.get("aspectScale"),projection:o.get("projection")}}e.eachComponent("geo",function(o,s){var l=o.get("map"),u=new Rd(l+s,l,V({nameMap:o.get("nameMap")},n(o)));u.zoomLimit=o.get("scaleLimit"),a.push(u),o.coordinateSystem=u,u.model=o,u.resize=TS,u.resize(o,t)}),e.eachSeries(function(o){var s=o.get("coordinateSystem");if(s==="geo"){var l=o.get("geoIndex")||0;o.coordinateSystem=a[l]}});var i={};return e.eachSeriesByType("map",function(o){if(!o.getHostGeoModel()){var s=o.getMapType();i[s]=i[s]||[],i[s].push(o)}}),D(i,function(o,s){var l=G(o,function(f){return f.get("nameMap")}),u=new Rd(s,s,V({nameMap:hh(l)},n(o[0])));u.zoomLimit=ae.apply(null,G(o,function(f){return f.get("scaleLimit")})),a.push(u),u.resize=TS,u.resize(o[0],t),D(o,function(f){f.coordinateSystem=u,iG(u,f)})}),a},r.prototype.getFilledRegions=function(e,t,a,n){for(var i=(e||[]).slice(),o=Z(),s=0;s=0;o--){var s=n[o];s.hierNode={defaultAncestor:null,ancestor:s,prelim:0,modifier:0,change:0,shift:0,i:o,thread:null},t.push(s)}}function vG(r,e){var t=r.isExpand?r.children:[],a=r.parentNode.children,n=r.hierNode.i?a[r.hierNode.i-1]:null;if(t.length){dG(r);var i=(t[0].hierNode.prelim+t[t.length-1].hierNode.prelim)/2;n?(r.hierNode.prelim=n.hierNode.prelim+e(r,n),r.hierNode.modifier=r.hierNode.prelim-i):r.hierNode.prelim=i}else n&&(r.hierNode.prelim=n.hierNode.prelim+e(r,n));r.parentNode.hierNode.defaultAncestor=gG(r,n,r.parentNode.hierNode.defaultAncestor||a[0],e)}function cG(r){var e=r.hierNode.prelim+r.parentNode.hierNode.modifier;r.setLayout({x:e},!0),r.hierNode.modifier+=r.parentNode.hierNode.modifier}function CS(r){return arguments.length?r:_G}function ws(r,e){return r-=Math.PI/2,{x:e*Math.cos(r),y:e*Math.sin(r)}}function pG(r,e){return Jt(r.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function dG(r){for(var e=r.children,t=e.length,a=0,n=0;--t>=0;){var i=e[t];i.hierNode.prelim+=a,i.hierNode.modifier+=a,n+=i.hierNode.change,a+=i.hierNode.shift+n}}function gG(r,e,t,a){if(e){for(var n=r,i=r,o=i.parentNode.children[0],s=e,l=n.hierNode.modifier,u=i.hierNode.modifier,f=o.hierNode.modifier,h=s.hierNode.modifier;s=Tc(s),i=Ac(i),s&&i;){n=Tc(n),o=Ac(o),n.hierNode.ancestor=r;var v=s.hierNode.prelim+h-i.hierNode.prelim-u+a(s,i);v>0&&(mG(yG(s,r,t),r,v),u+=v,l+=v),h+=s.hierNode.modifier,u+=i.hierNode.modifier,l+=n.hierNode.modifier,f+=o.hierNode.modifier}s&&!Tc(n)&&(n.hierNode.thread=s,n.hierNode.modifier+=h-l),i&&!Ac(o)&&(o.hierNode.thread=i,o.hierNode.modifier+=u-f,t=r)}return t}function Tc(r){var e=r.children;return e.length&&r.isExpand?e[e.length-1]:r.hierNode.thread}function Ac(r){var e=r.children;return e.length&&r.isExpand?e[0]:r.hierNode.thread}function yG(r,e,t){return r.hierNode.ancestor.parentNode===e.parentNode?r.hierNode.ancestor:t}function mG(r,e,t){var a=t/(e.hierNode.i-r.hierNode.i);e.hierNode.change-=a,e.hierNode.shift+=t,e.hierNode.modifier+=t,e.hierNode.prelim+=t,r.hierNode.change+=a}function _G(r,e){return r.parentNode===e.parentNode?1:2}var SG=function(){function r(){this.parentPoint=[],this.childPoints=[]}return r}(),xG=function(r){N(e,r);function e(t){return r.call(this,t)||this}return e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new SG},e.prototype.buildPath=function(t,a){var n=a.childPoints,i=n.length,o=a.parentPoint,s=n[0],l=n[i-1];if(i===1){t.moveTo(o[0],o[1]),t.lineTo(s[0],s[1]);return}var u=a.orient,f=u==="TB"||u==="BT"?0:1,h=1-f,v=W(a.forkPosition,1),c=[];c[f]=o[f],c[h]=o[h]+(l[h]-o[h])*v,t.moveTo(o[0],o[1]),t.lineTo(c[0],c[1]),t.moveTo(s[0],s[1]),c[f]=s[f],t.lineTo(c[0],c[1]),c[f]=l[f],t.lineTo(c[0],c[1]),t.lineTo(l[0],l[1]);for(var p=1;pm.x,b||(S=S-Math.PI));var w=b?"left":"right",T=s.getModel("label"),A=T.get("rotate"),C=A*(Math.PI/180),M=g.getTextContent();M&&(g.setTextConfig({position:T.get("position")||w,rotation:A==null?-S:C,origin:"center"}),M.setStyle("verticalAlign","middle"))}var I=s.get(["emphasis","focus"]),L=I==="relative"?lo(o.getAncestorsIndices(),o.getDescendantIndices()):I==="ancestor"?o.getAncestorsIndices():I==="descendant"?o.getDescendantIndices():null;L&&(nt(t).focus=L),wG(n,o,f,t,p,c,d,a),t.__edge&&(t.onHoverStateChange=function(P){if(P!=="blur"){var R=o.parentNode&&r.getItemGraphicEl(o.parentNode.dataIndex);R&&R.hoverState===Cl||wf(t.__edge,P)}})}function wG(r,e,t,a,n,i,o,s){var l=e.getModel(),u=r.get("edgeShape"),f=r.get("layout"),h=r.getOrient(),v=r.get(["lineStyle","curveness"]),c=r.get("edgeForkPosition"),p=l.getModel("lineStyle").getLineStyle(),d=a.__edge;if(u==="curve")e.parentNode&&e.parentNode!==t&&(d||(d=a.__edge=new To({shape:Ed(f,h,v,n,n)})),Tt(d,{shape:Ed(f,h,v,i,o)},r));else if(u==="polyline"&&f==="orthogonal"&&e!==t&&e.children&&e.children.length!==0&&e.isExpand===!0){for(var g=e.children,y=[],m=0;mt&&(t=n.height)}this.height=t+1},r.prototype.getNodeById=function(e){if(this.getId()===e)return this;for(var t=0,a=this.children,n=a.length;t=0&&this.hostTree.data.setItemLayout(this.dataIndex,e,t)},r.prototype.getLayout=function(){return this.hostTree.data.getItemLayout(this.dataIndex)},r.prototype.getModel=function(e){if(!(this.dataIndex<0)){var t=this.hostTree,a=t.data.getItemModel(this.dataIndex);return a.getModel(e)}},r.prototype.getLevelModel=function(){return(this.hostTree.levelModels||[])[this.depth]},r.prototype.setVisual=function(e,t){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,e,t)},r.prototype.getVisual=function(e){return this.hostTree.data.getItemVisual(this.dataIndex,e)},r.prototype.getRawIndex=function(){return this.hostTree.data.getRawIndex(this.dataIndex)},r.prototype.getId=function(){return this.hostTree.data.getId(this.dataIndex)},r.prototype.getChildIndex=function(){if(this.parentNode){for(var e=this.parentNode.children,t=0;t=0){var a=t.getData().tree.root,n=r.targetNode;if(Y(n)&&(n=a.getNodeById(n)),n&&a.contains(n))return{node:n};var i=r.targetNodeId;if(i!=null&&(n=a.getNodeById(i)))return{node:n}}}function _M(r){for(var e=[];r;)r=r.parentNode,r&&e.push(r);return e.reverse()}function Wy(r,e){var t=_M(r);return vt(t,e)>=0}function Zh(r,e){for(var t=[];r;){var a=r.dataIndex;t.push({name:r.name,dataIndex:a,value:e.getRawValue(a)}),r=r.parentNode}return t.reverse(),t}var RG=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.hasSymbolVisual=!0,t.ignoreStyleOnData=!0,t}return e.prototype.getInitialData=function(t){var a={name:t.name,children:t.data},n=t.leaves||{},i=new Ct(n,this,this.ecModel),o=Hy.createTree(a,this,s);function s(h){h.wrapMethod("getItemModel",function(v,c){var p=o.getNodeByDataIndex(c);return p&&p.children.length&&p.isExpand||(v.parentModel=i),v})}var l=0;o.eachNode("preorder",function(h){h.depth>l&&(l=h.depth)});var u=t.expandAndCollapse,f=u&&t.initialTreeDepth>=0?t.initialTreeDepth:l;return o.root.eachNode("preorder",function(h){var v=h.hostTree.data.getRawDataItem(h.dataIndex);h.isExpand=v&&v.collapsed!=null?!v.collapsed:h.depth<=f}),o.data},e.prototype.getOrient=function(){var t=this.get("orient");return t==="horizontal"?t="LR":t==="vertical"&&(t="TB"),t},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.formatTooltip=function(t,a,n){for(var i=this.getData().tree,o=i.root.children[0],s=i.getNodeByDataIndex(t),l=s.getValue(),u=s.name;s&&s!==o;)u=s.parentNode.name+"."+u,s=s.parentNode;return se("nameValue",{name:u,value:l,noValue:isNaN(l)||l==null})},e.prototype.getDataParams=function(t){var a=r.prototype.getDataParams.apply(this,arguments),n=this.getData().tree.getNodeByDataIndex(t);return a.treeAncestors=Zh(n,this),a.collapsed=!n.isExpand,a},e.type="series.tree",e.layoutMode="box",e.defaultOption={z:2,coordinateSystem:"view",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",edgeShape:"curve",edgeForkPosition:"50%",roam:!1,nodeScaleRatio:.4,center:null,zoom:1,orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderWidth:1.5},label:{show:!0},animationEasing:"linear",animationDuration:700,animationDurationUpdate:500},e}(Et);function EG(r,e,t){for(var a=[r],n=[],i;i=a.pop();)if(n.push(i),i.isExpand){var o=i.children;if(o.length)for(var s=0;s=0;i--)t.push(n[i])}}function kG(r,e){r.eachSeriesByType("tree",function(t){OG(t,e)})}function OG(r,e){var t=pG(r,e);r.layoutInfo=t;var a=r.get("layout"),n=0,i=0,o=null;a==="radial"?(n=2*Math.PI,i=Math.min(t.height,t.width)/2,o=CS(function(_,S){return(_.parentNode===S.parentNode?1:2)/_.depth})):(n=t.width,i=t.height,o=CS());var s=r.getData().tree.root,l=s.children[0];if(l){hG(s),EG(l,vG,o),s.hierNode.modifier=-l.hierNode.prelim,ss(l,cG);var u=l,f=l,h=l;ss(l,function(_){var S=_.getLayout().x;Sf.getLayout().x&&(f=_),_.depth>h.depth&&(h=_)});var v=u===f?1:o(u,f)/2,c=v-u.getLayout().x,p=0,d=0,g=0,y=0;if(a==="radial")p=n/(f.getLayout().x+v+c),d=i/(h.depth-1||1),ss(l,function(_){g=(_.getLayout().x+c)*p,y=(_.depth-1)*d;var S=ws(g,y);_.setLayout({x:S.x,y:S.y,rawX:g,rawY:y},!0)});else{var m=r.getOrient();m==="RL"||m==="LR"?(d=i/(f.getLayout().x+v+c),p=n/(h.depth-1||1),ss(l,function(_){y=(_.getLayout().x+c)*d,g=m==="LR"?(_.depth-1)*p:n-(_.depth-1)*p,_.setLayout({x:g,y},!0)})):(m==="TB"||m==="BT")&&(p=n/(f.getLayout().x+v+c),d=i/(h.depth-1||1),ss(l,function(_){g=(_.getLayout().x+c)*p,y=m==="TB"?(_.depth-1)*d:i-(_.depth-1)*d,_.setLayout({x:g,y},!0)}))}}}function NG(r){r.eachSeriesByType("tree",function(e){var t=e.getData(),a=t.tree;a.eachNode(function(n){var i=n.getModel(),o=i.getModel("itemStyle").getItemStyle(),s=t.ensureUniqueItemVisual(n.dataIndex,"style");V(s,o)})})}function BG(r){r.registerAction({type:"treeExpandAndCollapse",event:"treeExpandAndCollapse",update:"update"},function(e,t){t.eachComponent({mainType:"series",subType:"tree",query:e},function(a){var n=e.dataIndex,i=a.getData().tree,o=i.getNodeByDataIndex(n);o.isExpand=!o.isExpand})}),r.registerAction({type:"treeRoam",event:"treeRoam",update:"none"},function(e,t,a){t.eachComponent({mainType:"series",subType:"tree",query:e},function(n){var i=n.coordinateSystem,o=Gy(i,e,void 0,a);n.setCenter&&n.setCenter(o.center),n.setZoom&&n.setZoom(o.zoom)})})}function VG(r){r.registerChartView(bG),r.registerSeriesModel(RG),r.registerLayout(kG),r.registerVisual(NG),BG(r)}var PS=["treemapZoomToNode","treemapRender","treemapMove"];function zG(r){for(var e=0;e1;)i=i.parentNode;var o=od(r.ecModel,i.name||i.dataIndex+"",a);n.setVisual("decal",o)})}var GG=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.preventUsingHoverLayer=!0,t}return e.prototype.getInitialData=function(t,a){var n={name:t.name,children:t.data};xM(n);var i=t.levels||[],o=this.designatedVisualItemStyle={},s=new Ct({itemStyle:o},this,a);i=t.levels=FG(i,a);var l=G(i||[],function(h){return new Ct(h,s,a)},this),u=Hy.createTree(n,this,f);function f(h){h.wrapMethod("getItemModel",function(v,c){var p=u.getNodeByDataIndex(c),d=p?l[p.depth]:null;return v.parentModel=d||s,v})}return u.data},e.prototype.optionUpdated=function(){this.resetViewRoot()},e.prototype.formatTooltip=function(t,a,n){var i=this.getData(),o=this.getRawValue(t),s=i.getName(t);return se("nameValue",{name:s,value:o})},e.prototype.getDataParams=function(t){var a=r.prototype.getDataParams.apply(this,arguments),n=this.getData().tree.getNodeByDataIndex(t);return a.treeAncestors=Zh(n,this),a.treePathInfo=a.treeAncestors,a},e.prototype.setLayoutInfo=function(t){this.layoutInfo=this.layoutInfo||{},V(this.layoutInfo,t)},e.prototype.mapIdToIndex=function(t){var a=this._idIndexMap;a||(a=this._idIndexMap=Z(),this._idIndexMapCount=0);var n=a.get(t);return n==null&&a.set(t,n=this._idIndexMapCount++),n},e.prototype.getViewRoot=function(){return this._viewRoot},e.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var a=this.getRawData().tree.root;(!t||t!==a&&!a.contains(t))&&(this._viewRoot=a)},e.prototype.enableAriaDecal=function(){SM(this)},e.type="series.treemap",e.layoutMode="box",e.defaultOption={progressive:0,left:"center",top:"middle",width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.32*.32,scaleLimit:null,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",textStyle:{color:"#fff"}},emphasis:{itemStyle:{color:"rgba(0,0,0,0.9)"}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",overflow:"truncate"},upperLabel:{show:!1,position:[0,"50%"],height:20,overflow:"truncate",verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],overflow:"truncate",verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},e}(Et);function xM(r){var e=0;D(r.children,function(a){xM(a);var n=a.value;z(n)&&(n=n[0]),e+=n});var t=r.value;z(t)&&(t=t[0]),(t==null||isNaN(t))&&(t=e),t<0&&(t=0),z(r.value)?r.value[0]=t:r.value=t}function FG(r,e){var t=Rt(e.get("color")),a=Rt(e.get(["aria","decal","decals"]));if(t){r=r||[];var n,i;D(r,function(s){var l=new Ct(s),u=l.get("color"),f=l.get("decal");(l.get(["itemStyle","color"])||u&&u!=="none")&&(n=!0),(l.get(["itemStyle","decal"])||f&&f!=="none")&&(i=!0)});var o=r[0]||(r[0]={});return n||(o.color=t.slice()),!i&&a&&(o.decal=a.slice()),r}}var HG=8,RS=8,Cc=5,WG=function(){function r(e){this.group=new at,e.add(this.group)}return r.prototype.render=function(e,t,a,n){var i=e.getModel("breadcrumb"),o=this.group;if(o.removeAll(),!(!i.get("show")||!a)){var s=i.getModel("itemStyle"),l=i.getModel("emphasis"),u=s.getModel("textStyle"),f=l.getModel(["itemStyle","textStyle"]),h={pos:{left:i.get("left"),right:i.get("right"),top:i.get("top"),bottom:i.get("bottom")},box:{width:t.getWidth(),height:t.getHeight()},emptyItemWidth:i.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(a,h,u),this._renderContent(e,h,s,l,u,f,n),kh(o,h.pos,h.box)}},r.prototype._prepare=function(e,t,a){for(var n=e;n;n=n.parentNode){var i=Qt(n.getModel().get("name"),""),o=a.getTextRect(i),s=Math.max(o.width+HG*2,t.emptyItemWidth);t.totalWidth+=s+RS,t.renderList.push({node:n,text:i,width:s})}},r.prototype._renderContent=function(e,t,a,n,i,o,s){for(var l=0,u=t.emptyItemWidth,f=e.get(["breadcrumb","height"]),h=OE(t.pos,t.box),v=t.totalWidth,c=t.renderList,p=n.getModel("itemStyle").getItemStyle(),d=c.length-1;d>=0;d--){var g=c[d],y=g.node,m=g.width,_=g.text;v>h.width&&(v-=m-u,m=u,_=null);var S=new Te({shape:{points:UG(l,0,m,f,d===c.length-1,d===0)},style:J(a.getItemStyle(),{lineJoin:"bevel"}),textContent:new St({style:Nt(i,{text:_})}),textConfig:{position:"inside"},z2:bo*1e4,onclick:lt(s,y)});S.disableLabelAnimation=!0,S.getTextContent().ensureState("emphasis").style=Nt(o,{text:_}),S.ensureState("emphasis").style=p,Wt(S,n.get("focus"),n.get("blurScope"),n.get("disabled")),this.group.add(S),YG(S,e,y),l+=m+RS}},r.prototype.remove=function(){this.group.removeAll()},r}();function UG(r,e,t,a,n,i){var o=[[n?r:r-Cc,e],[r+t,e],[r+t,e+a],[n?r:r-Cc,e+a]];return!i&&o.splice(2,0,[r+t+Cc,e+a/2]),!n&&o.push([r,e+a/2]),o}function YG(r,e,t){nt(r).eventData={componentType:"series",componentSubType:"treemap",componentIndex:e.componentIndex,seriesIndex:e.seriesIndex,seriesName:e.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:t&&t.dataIndex,name:t&&t.name},treePathInfo:t&&Zh(t,e)}}var XG=function(){function r(){this._storage=[],this._elExistsMap={}}return r.prototype.add=function(e,t,a,n,i){return this._elExistsMap[e.id]?!1:(this._elExistsMap[e.id]=!0,this._storage.push({el:e,target:t,duration:a,delay:n,easing:i}),!0)},r.prototype.finished=function(e){return this._finishedCallback=e,this},r.prototype.start=function(){for(var e=this,t=this._storage.length,a=function(){t--,t<=0&&(e._storage.length=0,e._elExistsMap={},e._finishedCallback&&e._finishedCallback())},n=0,i=this._storage.length;nkS||Math.abs(t.dy)>kS)){var a=this.seriesModel.getData().tree.root;if(!a)return;var n=a.getLayout();if(!n)return;this.api.dispatchAction({type:"treemapMove",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:n.x+t.dx,y:n.y+t.dy,width:n.width,height:n.height}})}},e.prototype._onZoom=function(t){var a=t.originX,n=t.originY,i=t.scale;if(this._state!=="animating"){var o=this.seriesModel.getData().tree.root;if(!o)return;var s=o.getLayout();if(!s)return;var l=new ht(s.x,s.y,s.width,s.height),u=null,f=this._controllerHost;u=f.zoomLimit;var h=f.zoom=f.zoom||1;if(h*=i,u){var v=u.min||0,c=u.max||1/0;h=Math.max(Math.min(c,h),v)}var p=h/f.zoom;f.zoom=h;var d=this.seriesModel.layoutInfo;a-=d.x,n-=d.y;var g=Fe();Ir(g,g,[-a,-n]),dh(g,g,[p,p]),Ir(g,g,[a,n]),l.applyTransform(g),this.api.dispatchAction({type:"treemapRender",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:l.x,y:l.y,width:l.width,height:l.height}})}},e.prototype._initEvents=function(t){var a=this;t.on("click",function(n){if(a._state==="ready"){var i=a.seriesModel.get("nodeClick",!0);if(i){var o=a.findTarget(n.offsetX,n.offsetY);if(o){var s=o.node;if(s.getLayout().isLeafRoot)a._rootToNode(o);else if(i==="zoomToNode")a._zoomToNode(o);else if(i==="link"){var l=s.hostTree.data.getItemModel(s.dataIndex),u=l.get("link",!0),f=l.get("target",!0)||"blank";u&&If(u,f)}}}}},this)},e.prototype._renderBreadcrumb=function(t,a,n){var i=this;n||(n=t.get("leafDepth",!0)!=null?{node:t.getViewRoot()}:this.findTarget(a.getWidth()/2,a.getHeight()/2),n||(n={node:t.getData().tree.root})),(this._breadcrumb||(this._breadcrumb=new WG(this.group))).render(t,a,n.node,function(o){i._state!=="animating"&&(Wy(t.getViewRoot(),o)?i._rootToNode({node:o}):i._zoomToNode({node:o}))})},e.prototype.remove=function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage=ls(),this._state="ready",this._breadcrumb&&this._breadcrumb.remove()},e.prototype.dispose=function(){this._clearController()},e.prototype._zoomToNode=function(t){this.api.dispatchAction({type:"treemapZoomToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},e.prototype._rootToNode=function(t){this.api.dispatchAction({type:"treemapRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},e.prototype.findTarget=function(t,a){var n,i=this.seriesModel.getViewRoot();return i.eachNode({attr:"viewChildren",order:"preorder"},function(o){var s=this._storage.background[o.getRawIndex()];if(s){var l=s.transformCoordToLocal(t,a),u=s.shape;if(u.x<=l[0]&&l[0]<=u.x+u.width&&u.y<=l[1]&&l[1]<=u.y+u.height)n={node:o,offsetX:l[0],offsetY:l[1]};else return!1}},this),n},e.type="treemap",e}(Lt);function ls(){return{nodeGroup:[],background:[],content:[]}}function JG(r,e,t,a,n,i,o,s,l,u){if(!o)return;var f=o.getLayout(),h=r.getData(),v=o.getModel();if(h.setItemGraphicEl(o.dataIndex,null),!f||!f.isInView)return;var c=f.width,p=f.height,d=f.borderWidth,g=f.invisible,y=o.getRawIndex(),m=s&&s.getRawIndex(),_=o.viewChildren,S=f.upperHeight,b=_&&_.length,x=v.getModel("itemStyle"),w=v.getModel(["emphasis","itemStyle"]),T=v.getModel(["blur","itemStyle"]),A=v.getModel(["select","itemStyle"]),C=x.get("borderRadius")||0,M=it("nodeGroup",kd);if(!M)return;if(l.add(M),M.x=f.x||0,M.y=f.y||0,M.markRedraw(),$f(M).nodeWidth=c,$f(M).nodeHeight=p,f.isAboveViewRoot)return M;var I=it("background",ES,u,qG);I&&F(M,I,b&&f.upperLabelHeight);var L=v.getModel("emphasis"),P=L.get("focus"),R=L.get("blurScope"),E=L.get("disabled"),O=P==="ancestor"?o.getAncestorsIndices():P==="descendant"?o.getDescendantIndices():P;if(b)Qs(M)&&Xn(M,!1),I&&(Xn(I,!E),h.setItemGraphicEl(o.dataIndex,I),Jp(I,O,R));else{var k=it("content",ES,u,KG);k&&H(M,k),I.disableMorphing=!0,I&&Qs(I)&&Xn(I,!1),Xn(M,!E),h.setItemGraphicEl(o.dataIndex,M);var B=v.getShallow("cursor");B&&k.attr("cursor",B),Jp(M,O,R)}return M;function F(ct,et,dt){var q=nt(et);if(q.dataIndex=o.dataIndex,q.seriesIndex=r.seriesIndex,et.setShape({x:0,y:0,width:c,height:p,r:C}),g)U(et);else{et.invisible=!1;var ot=o.getVisual("style"),Bt=ot.stroke,It=BS(x);It.fill=Bt;var kt=Nn(w);kt.fill=w.get("borderColor");var Ht=Nn(T);Ht.fill=T.get("borderColor");var ee=Nn(A);if(ee.fill=A.get("borderColor"),dt){var He=c-2*d;j(et,Bt,ot.opacity,{x:d,y:0,width:He,height:S})}else et.removeTextContent();et.setStyle(It),et.ensureState("emphasis").style=kt,et.ensureState("blur").style=Ht,et.ensureState("select").style=ee,ui(et)}ct.add(et)}function H(ct,et){var dt=nt(et);dt.dataIndex=o.dataIndex,dt.seriesIndex=r.seriesIndex;var q=Math.max(c-2*d,0),ot=Math.max(p-2*d,0);if(et.culling=!0,et.setShape({x:d,y:d,width:q,height:ot,r:C}),g)U(et);else{et.invisible=!1;var Bt=o.getVisual("style"),It=Bt.fill,kt=BS(x);kt.fill=It,kt.decal=Bt.decal;var Ht=Nn(w),ee=Nn(T),He=Nn(A);j(et,It,Bt.opacity,null),et.setStyle(kt),et.ensureState("emphasis").style=Ht,et.ensureState("blur").style=ee,et.ensureState("select").style=He,ui(et)}ct.add(et)}function U(ct){!ct.invisible&&i.push(ct)}function j(ct,et,dt,q){var ot=v.getModel(q?NS:OS),Bt=Qt(v.get("name"),null),It=ot.getShallow("show");pe(ct,oe(v,q?NS:OS),{defaultText:It?Bt:null,inheritColor:et,defaultOpacity:dt,labelFetcher:r,labelDataIndex:o.dataIndex});var kt=ct.getTextContent();if(kt){var Ht=kt.style,ee=ch(Ht.padding||0);q&&(ct.setTextConfig({layoutRect:q}),kt.disableLabelLayout=!0),kt.beforeUpdate=function(){var Oe=Math.max((q?q.width:ct.shape.width)-ee[1]-ee[3],0),un=Math.max((q?q.height:ct.shape.height)-ee[0]-ee[2],0);(Ht.width!==Oe||Ht.height!==un)&&kt.setStyle({width:Oe,height:un})},Ht.truncateMinChar=2,Ht.lineOverflow="truncate",Q(Ht,q,f);var He=kt.getState("emphasis");Q(He?He.style:null,q,f)}}function Q(ct,et,dt){var q=ct?ct.text:null;if(!et&&dt.isLeafRoot&&q!=null){var ot=r.get("drillDownIcon",!0);ct.text=ot?ot+" "+q:q}}function it(ct,et,dt,q){var ot=m!=null&&t[ct][m],Bt=n[ct];return ot?(t[ct][m]=null,Pt(Bt,ot)):g||(ot=new et,ot instanceof fr&&(ot.z2=QG(dt,q)),Yt(Bt,ot)),e[ct][y]=ot}function Pt(ct,et){var dt=ct[y]={};et instanceof kd?(dt.oldX=et.x,dt.oldY=et.y):dt.oldShape=V({},et.shape)}function Yt(ct,et){var dt=ct[y]={},q=o.parentNode,ot=et instanceof at;if(q&&(!a||a.direction==="drillDown")){var Bt=0,It=0,kt=n.background[q.getRawIndex()];!a&&kt&&kt.oldShape&&(Bt=kt.oldShape.width,It=kt.oldShape.height),ot?(dt.oldX=0,dt.oldY=It):dt.oldShape={x:Bt,y:It,width:0,height:0}}dt.fadein=!ot}}function QG(r,e){return r*ZG+e}var cl=D,tF=tt,Zf=-1,ie=function(){function r(e){var t=e.mappingMethod,a=e.type,n=this.option=rt(e);this.type=a,this.mappingMethod=t,this._normalizeData=aF[t];var i=r.visualHandlers[a];this.applyVisual=i.applyVisual,this.getColorMapper=i.getColorMapper,this._normalizedToVisual=i._normalizedToVisual[t],t==="piecewise"?(Dc(n),eF(n)):t==="category"?n.categories?rF(n):Dc(n,!0):(be(t!=="linear"||n.dataExtent),Dc(n))}return r.prototype.mapValueToVisual=function(e){var t=this._normalizeData(e);return this._normalizedToVisual(t,e)},r.prototype.getNormalizer=function(){return X(this._normalizeData,this)},r.listVisualTypes=function(){return _t(r.visualHandlers)},r.isValidType=function(e){return r.visualHandlers.hasOwnProperty(e)},r.eachVisual=function(e,t,a){tt(e)?D(e,t,a):t.call(a,e)},r.mapVisual=function(e,t,a){var n,i=z(e)?[]:tt(e)?{}:(n=!0,null);return r.eachVisual(e,function(o,s){var l=t.call(a,o,s);n?i=l:i[s]=l}),i},r.retrieveVisuals=function(e){var t={},a;return e&&cl(r.visualHandlers,function(n,i){e.hasOwnProperty(i)&&(t[i]=e[i],a=!0)}),a?t:null},r.prepareVisualTypes=function(e){if(z(e))e=e.slice();else if(tF(e)){var t=[];cl(e,function(a,n){t.push(n)}),e=t}else return[];return e.sort(function(a,n){return n==="color"&&a!=="color"&&a.indexOf("color")===0?1:-1}),e},r.dependsOn=function(e,t){return t==="color"?!!(e&&e.indexOf(t)===0):e===t},r.findPieceIndex=function(e,t,a){for(var n,i=1/0,o=0,s=t.length;o=0;i--)a[i]==null&&(delete t[e[i]],e.pop())}function Dc(r,e){var t=r.visual,a=[];tt(t)?cl(t,function(i){a.push(i)}):t!=null&&a.push(t);var n={color:1,symbol:1};!e&&a.length===1&&!n.hasOwnProperty(r.type)&&(a[1]=a[0]),bM(r,a)}function Lu(r){return{applyVisual:function(e,t,a){var n=this.mapValueToVisual(e);a("color",r(t("color"),n))},_normalizedToVisual:Od([0,1])}}function VS(r){var e=this.option.visual;return e[Math.round(Dt(r,[0,1],[0,e.length-1],!0))]||{}}function us(r){return function(e,t,a){a(r,this.mapValueToVisual(e))}}function Ts(r){var e=this.option.visual;return e[this.option.loop&&r!==Zf?r%e.length:r]}function Bn(){return this.option.visual[0]}function Od(r){return{linear:function(e){return Dt(e,r,this.option.visual,!0)},category:Ts,piecewise:function(e,t){var a=Nd.call(this,t);return a==null&&(a=Dt(e,r,this.option.visual,!0)),a},fixed:Bn}}function Nd(r){var e=this.option,t=e.pieceList;if(e.hasSpecialVisual){var a=ie.findPieceIndex(r,t),n=t[a];if(n&&n.visual)return n.visual[this.type]}}function bM(r,e){return r.visual=e,r.type==="color"&&(r.parsedVisual=G(e,function(t){var a=Pe(t);return a||[0,0,0,1]})),e}var aF={linear:function(r){return Dt(r,this.option.dataExtent,[0,1],!0)},piecewise:function(r){var e=this.option.pieceList,t=ie.findPieceIndex(r,e,!0);if(t!=null)return Dt(t,[0,e.length-1],[0,1],!0)},category:function(r){var e=this.option.categories?this.option.categoryMap[r]:r;return e??Zf},fixed:Xt};function Pu(r,e,t){return r?e<=t:e=t.length||d===t[d.depth]){var y=uF(n,l,d,g,p,a);TM(d,y,t,a)}})}}}function oF(r,e,t){var a=V({},e),n=t.designatedVisualItemStyle;return D(["color","colorAlpha","colorSaturation"],function(i){n[i]=e[i];var o=r.get(i);n[i]=null,o!=null&&(a[i]=o)}),a}function zS(r){var e=Mc(r,"color");if(e){var t=Mc(r,"colorAlpha"),a=Mc(r,"colorSaturation");return a&&(e=eo(e,null,null,a)),t&&(e=Zs(e,t)),e}}function sF(r,e){return e!=null?eo(e,null,null,r):null}function Mc(r,e){var t=r[e];if(t!=null&&t!=="none")return t}function lF(r,e,t,a,n,i){if(!(!i||!i.length)){var o=Ic(e,"color")||n.color!=null&&n.color!=="none"&&(Ic(e,"colorAlpha")||Ic(e,"colorSaturation"));if(o){var s=e.get("visualMin"),l=e.get("visualMax"),u=t.dataExtent.slice();s!=null&&su[1]&&(u[1]=l);var f=e.get("colorMappingBy"),h={type:o.name,dataExtent:u,visual:o.range};h.type==="color"&&(f==="index"||f==="id")?(h.mappingMethod="category",h.loop=!0):h.mappingMethod="linear";var v=new ie(h);return wM(v).drColorMappingBy=f,v}}}function Ic(r,e){var t=r.get(e);return z(t)&&t.length?{name:e,range:t}:null}function uF(r,e,t,a,n,i){var o=V({},e);if(n){var s=n.type,l=s==="color"&&wM(n).drColorMappingBy,u=l==="index"?a:l==="id"?i.mapIdToIndex(t.getId()):t.getValue(r.get("visualDimension"));o[s]=n.mapValueToVisual(u)}return o}var pl=Math.max,qf=Math.min,GS=ae,Uy=D,AM=["itemStyle","borderWidth"],fF=["itemStyle","gapWidth"],hF=["upperLabel","show"],vF=["upperLabel","height"];const cF={seriesType:"treemap",reset:function(r,e,t,a){var n=t.getWidth(),i=t.getHeight(),o=r.option,s=Jt(r.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()}),l=o.size||[],u=W(GS(s.width,l[0]),n),f=W(GS(s.height,l[1]),i),h=a&&a.type,v=["treemapZoomToNode","treemapRootToNode"],c=vl(a,v,r),p=h==="treemapRender"||h==="treemapMove"?a.rootRect:null,d=r.getViewRoot(),g=_M(d);if(h!=="treemapMove"){var y=h==="treemapZoomToNode"?_F(r,c,d,u,f):p?[p.width,p.height]:[u,f],m=o.sort;m&&m!=="asc"&&m!=="desc"&&(m="desc");var _={squareRatio:o.squareRatio,sort:m,leafDepth:o.leafDepth};d.hostTree.clearLayouts();var S={x:0,y:0,width:y[0],height:y[1],area:y[0]*y[1]};d.setLayout(S),CM(d,_,!1,0),S=d.getLayout(),Uy(g,function(x,w){var T=(g[w+1]||d).getValue();x.setLayout(V({dataExtent:[T,T],borderWidth:0,upperHeight:0},S))})}var b=r.getData().tree.root;b.setLayout(SF(s,p,c),!0),r.setLayoutInfo(s),DM(b,new ht(-s.x,-s.y,n,i),g,d,0)}};function CM(r,e,t,a){var n,i;if(!r.isRemoved()){var o=r.getLayout();n=o.width,i=o.height;var s=r.getModel(),l=s.get(AM),u=s.get(fF)/2,f=MM(s),h=Math.max(l,f),v=l-u,c=h-u;r.setLayout({borderWidth:l,upperHeight:h,upperLabelHeight:f},!0),n=pl(n-2*v,0),i=pl(i-v-c,0);var p=n*i,d=pF(r,s,p,e,t,a);if(d.length){var g={x:v,y:c,width:n,height:i},y=qf(n,i),m=1/0,_=[];_.area=0;for(var S=0,b=d.length;S=0;l--){var u=n[a==="asc"?o-l-1:l].getValue();u/t*es[1]&&(s[1]=u)})),{sum:a,dataExtent:s}}function mF(r,e,t){for(var a=0,n=1/0,i=0,o=void 0,s=r.length;ia&&(a=o));var l=r.area*r.area,u=e*e*t;return l?pl(u*a/l,l/(u*n)):1/0}function FS(r,e,t,a,n){var i=e===t.width?0:1,o=1-i,s=["x","y"],l=["width","height"],u=t[s[i]],f=e?r.area/e:0;(n||f>t[l[o]])&&(f=t[l[o]]);for(var h=0,v=r.length;hWp&&(u=Wp),i=s}ua&&(a=e);var i=a%2?a+2:a+3;n=[];for(var o=0;o0&&(b[0]=-b[0],b[1]=-b[1]);var w=S[0]<0?-1:1;if(i.__position!=="start"&&i.__position!=="end"){var T=-Math.atan2(S[1],S[0]);h[0].8?"left":v[0]<-.8?"right":"center",d=v[1]>.8?"top":v[1]<-.8?"bottom":"middle";break;case"start":i.x=-v[0]*y+f[0],i.y=-v[1]*m+f[1],p=v[0]>.8?"right":v[0]<-.8?"left":"center",d=v[1]>.8?"bottom":v[1]<-.8?"top":"middle";break;case"insideStartTop":case"insideStart":case"insideStartBottom":i.x=y*w+f[0],i.y=f[1]+A,p=S[0]<0?"right":"left",i.originX=-y*w,i.originY=-A;break;case"insideMiddleTop":case"insideMiddle":case"insideMiddleBottom":case"middle":i.x=x[0],i.y=x[1]+A,p="center",i.originY=-A;break;case"insideEndTop":case"insideEnd":case"insideEndBottom":i.x=-y*w+h[0],i.y=h[1]+A,p=S[0]>=0?"right":"left",i.originX=y*w,i.originY=-A;break}i.scaleX=i.scaleY=o,i.setStyle({verticalAlign:i.__verticalAlign||d,align:i.__align||p})}},e}(at),qy=function(){function r(e){this.group=new at,this._LineCtor=e||Zy}return r.prototype.updateData=function(e){var t=this;this._progressiveEls=null;var a=this,n=a.group,i=a._lineData;a._lineData=e,i||n.removeAll();var o=$S(e);e.diff(i).add(function(s){t._doAdd(e,s,o)}).update(function(s,l){t._doUpdate(i,e,l,s,o)}).remove(function(s){n.remove(i.getItemGraphicEl(s))}).execute()},r.prototype.updateLayout=function(){var e=this._lineData;e&&e.eachItemGraphicEl(function(t,a){t.updateLayout(e,a)},this)},r.prototype.incrementalPrepareUpdate=function(e){this._seriesScope=$S(e),this._lineData=null,this.group.removeAll()},r.prototype.incrementalUpdate=function(e,t){this._progressiveEls=[];function a(s){!s.isGroup&&!VF(s)&&(s.incremental=!0,s.ensureState("emphasis").hoverLayer=!0)}for(var n=e.start;n0}function $S(r){var e=r.hostModel,t=e.getModel("emphasis");return{lineStyle:e.getModel("lineStyle").getLineStyle(),emphasisLineStyle:t.getModel(["lineStyle"]).getLineStyle(),blurLineStyle:e.getModel(["blur","lineStyle"]).getLineStyle(),selectLineStyle:e.getModel(["select","lineStyle"]).getLineStyle(),emphasisDisabled:t.get("disabled"),blurScope:t.get("blurScope"),focus:t.get("focus"),labelStatesModels:oe(e)}}function ZS(r){return isNaN(r[0])||isNaN(r[1])}function kc(r){return r&&!ZS(r[0])&&!ZS(r[1])}var Oc=[],Nc=[],Bc=[],Vi=ue,Vc=Ua,qS=Math.abs;function KS(r,e,t){for(var a=r[0],n=r[1],i=r[2],o=1/0,s,l=t*t,u=.1,f=.1;f<=.9;f+=.1){Oc[0]=Vi(a[0],n[0],i[0],f),Oc[1]=Vi(a[1],n[1],i[1],f);var h=qS(Vc(Oc,e)-l);h=0?s=s+u:s=s-u:p>=0?s=s-u:s=s+u}return s}function zc(r,e){var t=[],a=Xs,n=[[],[],[]],i=[[],[]],o=[];e/=2,r.eachEdge(function(s,l){var u=s.getLayout(),f=s.getVisual("fromSymbol"),h=s.getVisual("toSymbol");u.__original||(u.__original=[Xr(u[0]),Xr(u[1])],u[2]&&u.__original.push(Xr(u[2])));var v=u.__original;if(u[2]!=null){if(me(n[0],v[0]),me(n[1],v[2]),me(n[2],v[1]),f&&f!=="none"){var c=Cs(s.node1),p=KS(n,v[0],c*e);a(n[0][0],n[1][0],n[2][0],p,t),n[0][0]=t[3],n[1][0]=t[4],a(n[0][1],n[1][1],n[2][1],p,t),n[0][1]=t[3],n[1][1]=t[4]}if(h&&h!=="none"){var c=Cs(s.node2),p=KS(n,v[1],c*e);a(n[0][0],n[1][0],n[2][0],p,t),n[1][0]=t[1],n[2][0]=t[2],a(n[0][1],n[1][1],n[2][1],p,t),n[1][1]=t[1],n[2][1]=t[2]}me(u[0],n[0]),me(u[1],n[2]),me(u[2],n[1])}else{if(me(i[0],v[0]),me(i[1],v[1]),Ba(o,i[1],i[0]),pi(o,o),f&&f!=="none"){var c=Cs(s.node1);cf(i[0],i[0],o,c*e)}if(h&&h!=="none"){var c=Cs(s.node2);cf(i[1],i[1],o,-c*e)}me(u[0],i[0]),me(u[1],i[1])}})}function jS(r){return r.type==="view"}var zF=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(t,a){var n=new Ol,i=new qy,o=this.group;this._controller=new Gl(a.getZr()),this._controllerHost={target:o},o.add(n.group),o.add(i.group),this._symbolDraw=n,this._lineDraw=i,this._firstRender=!0},e.prototype.render=function(t,a,n){var i=this,o=t.coordinateSystem;this._model=t;var s=this._symbolDraw,l=this._lineDraw,u=this.group;if(jS(o)){var f={x:o.x,y:o.y,scaleX:o.scaleX,scaleY:o.scaleY};this._firstRender?u.attr(f):Tt(u,f,t)}zc(t.getGraph(),As(t));var h=t.getData();s.updateData(h);var v=t.getEdgeData();l.updateData(v),this._updateNodeAndLinkScale(),this._updateController(t,a,n),clearTimeout(this._layoutTimeout);var c=t.forceLayout,p=t.get(["force","layoutAnimation"]);c&&this._startForceLayoutIteration(c,p);var d=t.get("layout");h.graph.eachNode(function(_){var S=_.dataIndex,b=_.getGraphicEl(),x=_.getModel();if(b){b.off("drag").off("dragend");var w=x.get("draggable");w&&b.on("drag",function(A){switch(d){case"force":c.warmUp(),!i._layouting&&i._startForceLayoutIteration(c,p),c.setFixed(S),h.setItemLayout(S,[b.x,b.y]);break;case"circular":h.setItemLayout(S,[b.x,b.y]),_.setLayout({fixed:!0},!0),$y(t,"symbolSize",_,[A.offsetX,A.offsetY]),i.updateLayout(t);break;case"none":default:h.setItemLayout(S,[b.x,b.y]),Xy(t.getGraph(),t),i.updateLayout(t);break}}).on("dragend",function(){c&&c.setUnfixed(S)}),b.setDraggable(w,!!x.get("cursor"));var T=x.get(["emphasis","focus"]);T==="adjacency"&&(nt(b).focus=_.getAdjacentDataIndices())}}),h.graph.eachEdge(function(_){var S=_.getGraphicEl(),b=_.getModel().get(["emphasis","focus"]);S&&b==="adjacency"&&(nt(S).focus={edge:[_.dataIndex],node:[_.node1.dataIndex,_.node2.dataIndex]})});var g=t.get("layout")==="circular"&&t.get(["circular","rotateLabel"]),y=h.getLayout("cx"),m=h.getLayout("cy");h.graph.eachNode(function(_){RM(_,g,y,m)}),this._firstRender=!1},e.prototype.dispose=function(){this.remove(),this._controller&&this._controller.dispose(),this._controllerHost=null},e.prototype._startForceLayoutIteration=function(t,a){var n=this;(function i(){t.step(function(o){n.updateLayout(n._model),(n._layouting=!o)&&(a?n._layoutTimeout=setTimeout(i,16):i())})})()},e.prototype._updateController=function(t,a,n){var i=this,o=this._controller,s=this._controllerHost,l=this.group;if(o.setPointerChecker(function(u,f,h){var v=l.getBoundingRect();return v.applyTransform(l.transform),v.contain(f,h)&&!Xh(u,n,t)}),!jS(t.coordinateSystem)){o.disable();return}o.enable(t.get("roam")),s.zoomLimit=t.get("scaleLimit"),s.zoom=t.coordinateSystem.getZoom(),o.off("pan").off("zoom").on("pan",function(u){By(s,u.dx,u.dy),n.dispatchAction({seriesId:t.id,type:"graphRoam",dx:u.dx,dy:u.dy})}).on("zoom",function(u){Vy(s,u.scale,u.originX,u.originY),n.dispatchAction({seriesId:t.id,type:"graphRoam",zoom:u.scale,originX:u.originX,originY:u.originY}),i._updateNodeAndLinkScale(),zc(t.getGraph(),As(t)),i._lineDraw.updateLayout(),n.updateLabelLayout()})},e.prototype._updateNodeAndLinkScale=function(){var t=this._model,a=t.getData(),n=As(t);a.eachItemGraphicEl(function(i,o){i&&i.setSymbolScale(n)})},e.prototype.updateLayout=function(t){zc(t.getGraph(),As(t)),this._symbolDraw.updateLayout(),this._lineDraw.updateLayout()},e.prototype.remove=function(){clearTimeout(this._layoutTimeout),this._layouting=!1,this._layoutTimeout=null,this._symbolDraw&&this._symbolDraw.remove(),this._lineDraw&&this._lineDraw.remove()},e.type="graph",e}(Lt);function zi(r){return"_EC_"+r}var GF=function(){function r(e){this.type="graph",this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={},this._directed=e||!1}return r.prototype.isDirected=function(){return this._directed},r.prototype.addNode=function(e,t){e=e==null?""+t:""+e;var a=this._nodesMap;if(!a[zi(e)]){var n=new Vn(e,t);return n.hostGraph=this,this.nodes.push(n),a[zi(e)]=n,n}},r.prototype.getNodeByIndex=function(e){var t=this.data.getRawIndex(e);return this.nodes[t]},r.prototype.getNodeById=function(e){return this._nodesMap[zi(e)]},r.prototype.addEdge=function(e,t,a){var n=this._nodesMap,i=this._edgesMap;if(wt(e)&&(e=this.nodes[e]),wt(t)&&(t=this.nodes[t]),e instanceof Vn||(e=n[zi(e)]),t instanceof Vn||(t=n[zi(t)]),!(!e||!t)){var o=e.id+"-"+t.id,s=new kM(e,t,a);return s.hostGraph=this,this._directed&&(e.outEdges.push(s),t.inEdges.push(s)),e.edges.push(s),e!==t&&t.edges.push(s),this.edges.push(s),i[o]=s,s}},r.prototype.getEdgeByIndex=function(e){var t=this.edgeData.getRawIndex(e);return this.edges[t]},r.prototype.getEdge=function(e,t){e instanceof Vn&&(e=e.id),t instanceof Vn&&(t=t.id);var a=this._edgesMap;return this._directed?a[e+"-"+t]:a[e+"-"+t]||a[t+"-"+e]},r.prototype.eachNode=function(e,t){for(var a=this.nodes,n=a.length,i=0;i=0&&e.call(t,a[i],i)},r.prototype.eachEdge=function(e,t){for(var a=this.edges,n=a.length,i=0;i=0&&a[i].node1.dataIndex>=0&&a[i].node2.dataIndex>=0&&e.call(t,a[i],i)},r.prototype.breadthFirstTraverse=function(e,t,a,n){if(t instanceof Vn||(t=this._nodesMap[zi(t)]),!!t){for(var i=a==="out"?"outEdges":a==="in"?"inEdges":"edges",o=0;o=0&&l.node2.dataIndex>=0});for(var i=0,o=n.length;i=0&&this[r][e].setItemVisual(this.dataIndex,t,a)},getVisual:function(t){return this[r][e].getItemVisual(this.dataIndex,t)},setLayout:function(t,a){this.dataIndex>=0&&this[r][e].setItemLayout(this.dataIndex,t,a)},getLayout:function(){return this[r][e].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[r][e].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[r][e].getRawIndex(this.dataIndex)}}}$t(Vn,OM("hostGraph","data"));$t(kM,OM("hostGraph","edgeData"));function NM(r,e,t,a,n){for(var i=new GF(a),o=0;o "+v)),u++)}var c=t.get("coordinateSystem"),p;if(c==="cartesian2d"||c==="polar")p=ea(r,t);else{var d=Ro.get(c),g=d?d.dimensions||[]:[];vt(g,"value")<0&&g.concat(["value"]);var y=No(r,{coordDimensions:g,encodeDefine:t.getEncode()}).dimensions;p=new xe(y,t),p.initData(r)}var m=new xe(["value"],t);return m.initData(l,s),n&&n(p,m),yM({mainData:p,struct:i,structAttr:"graph",datas:{node:p,edge:m},datasAttr:{node:"data",edge:"edgeData"}}),i.update(),i}var FF=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.hasSymbolVisual=!0,t}return e.prototype.init=function(t){r.prototype.init.apply(this,arguments);var a=this;function n(){return a._categoriesData}this.legendVisualProvider=new zl(n,n),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},e.prototype.mergeOption=function(t){r.prototype.mergeOption.apply(this,arguments),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},e.prototype.mergeDefaultAndTheme=function(t){r.prototype.mergeDefaultAndTheme.apply(this,arguments),oi(t,"edgeLabel",["show"])},e.prototype.getInitialData=function(t,a){var n=t.edges||t.links||[],i=t.data||t.nodes||[],o=this;if(i&&n){DF(this);var s=NM(i,n,this,!0,l);return D(s.edges,function(u){MF(u.node1,u.node2,this,u.dataIndex)},this),s.data}function l(u,f){u.wrapMethod("getItemModel",function(p){var d=o._categoriesModels,g=p.getShallow("category"),y=d[g];return y&&(y.parentModel=p.parentModel,p.parentModel=y),p});var h=Ct.prototype.getModel;function v(p,d){var g=h.call(this,p,d);return g.resolveParentPath=c,g}f.wrapMethod("getItemModel",function(p){return p.resolveParentPath=c,p.getModel=v,p});function c(p){if(p&&(p[0]==="label"||p[1]==="label")){var d=p.slice();return p[0]==="label"?d[0]="edgeLabel":p[1]==="label"&&(d[1]="edgeLabel"),d}return p}}},e.prototype.getGraph=function(){return this.getData().graph},e.prototype.getEdgeData=function(){return this.getGraph().edgeData},e.prototype.getCategoriesData=function(){return this._categoriesData},e.prototype.formatTooltip=function(t,a,n){if(n==="edge"){var i=this.getData(),o=this.getDataParams(t,n),s=i.graph.getEdgeByIndex(t),l=i.getName(s.node1.dataIndex),u=i.getName(s.node2.dataIndex),f=[];return l!=null&&f.push(l),u!=null&&f.push(u),se("nameValue",{name:f.join(" > "),value:o.value,noValue:o.value==null})}var h=aC({series:this,dataIndex:t,multipleSeries:a});return h},e.prototype._updateCategoriesData=function(){var t=G(this.option.categories||[],function(n){return n.value!=null?n:V({value:0},n)}),a=new xe(["value"],this);a.initData(t),this._categoriesData=a,this._categoriesModels=a.mapArray(function(n){return a.getItemModel(n)})},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.isAnimationEnabled=function(){return r.prototype.isAnimationEnabled.call(this)&&!(this.get("layout")==="force"&&this.get(["force","layoutAnimation"]))},e.type="series.graph",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={z:2,coordinateSystem:"view",legendHoverLink:!0,layout:null,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,friction:.6,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{position:"middle",distance:5},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:"{b}"},itemStyle:{},lineStyle:{color:"#aaa",width:1,opacity:.5},emphasis:{scale:!0,label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},e}(Et),HF={type:"graphRoam",event:"graphRoam",update:"none"};function WF(r){r.registerChartView(zF),r.registerSeriesModel(FF),r.registerProcessor(bF),r.registerVisual(wF),r.registerVisual(TF),r.registerLayout(IF),r.registerLayout(r.PRIORITY.VISUAL.POST_CHART_LAYOUT,PF),r.registerLayout(EF),r.registerCoordinateSystem("graphView",{dimensions:Fl.dimensions,create:OF}),r.registerAction({type:"focusNodeAdjacency",event:"focusNodeAdjacency",update:"series:focusNodeAdjacency"},Xt),r.registerAction({type:"unfocusNodeAdjacency",event:"unfocusNodeAdjacency",update:"series:unfocusNodeAdjacency"},Xt),r.registerAction(HF,function(e,t,a){t.eachComponent({mainType:"series",query:e},function(n){var i=n.coordinateSystem,o=Gy(i,e,void 0,a);n.setCenter&&n.setCenter(o.center),n.setZoom&&n.setZoom(o.zoom)})})}var UF=function(){function r(){this.angle=0,this.width=10,this.r=10,this.x=0,this.y=0}return r}(),YF=function(r){N(e,r);function e(t){var a=r.call(this,t)||this;return a.type="pointer",a}return e.prototype.getDefaultShape=function(){return new UF},e.prototype.buildPath=function(t,a){var n=Math.cos,i=Math.sin,o=a.r,s=a.width,l=a.angle,u=a.x-n(l)*s*(s>=o/3?1:2),f=a.y-i(l)*s*(s>=o/3?1:2);l=a.angle-Math.PI/2,t.moveTo(u,f),t.lineTo(a.x+n(l)*s,a.y+i(l)*s),t.lineTo(a.x+n(a.angle)*o,a.y+i(a.angle)*o),t.lineTo(a.x-n(l)*s,a.y-i(l)*s),t.lineTo(u,f)},e}(mt);function XF(r,e){var t=r.get("center"),a=e.getWidth(),n=e.getHeight(),i=Math.min(a,n),o=W(t[0],e.getWidth()),s=W(t[1],e.getHeight()),l=W(r.get("radius"),i/2);return{cx:o,cy:s,r:l}}function Eu(r,e){var t=r==null?"":r+"";return e&&(Y(e)?t=e.replace("{value}",t):K(e)&&(t=e(r))),t}var $F=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){this.group.removeAll();var i=t.get(["axisLine","lineStyle","color"]),o=XF(t,n);this._renderMain(t,a,n,i,o),this._data=t.getData()},e.prototype.dispose=function(){},e.prototype._renderMain=function(t,a,n,i,o){var s=this.group,l=t.get("clockwise"),u=-t.get("startAngle")/180*Math.PI,f=-t.get("endAngle")/180*Math.PI,h=t.getModel("axisLine"),v=h.get("roundCap"),c=v?Uf:we,p=h.get("show"),d=h.getModel("lineStyle"),g=d.get("width"),y=[u,f];Pg(y,!l),u=y[0],f=y[1];for(var m=f-u,_=u,S=[],b=0;p&&b=A&&(C===0?0:i[C-1][0])Math.PI/2&&(Q+=Math.PI)):j==="tangential"?Q=-T-Math.PI/2:wt(j)&&(Q=j*Math.PI/180),Q===0?h.add(new St({style:Nt(_,{text:B,x:H,y:U,verticalAlign:R<-.8?"top":R>.8?"bottom":"middle",align:P<-.4?"left":P>.4?"right":"center"},{inheritColor:F}),silent:!0})):h.add(new St({style:Nt(_,{text:B,x:H,y:U,verticalAlign:"middle",align:"center"},{inheritColor:F}),silent:!0,originX:H,originY:U,rotation:Q}))}if(m.get("show")&&E!==S){var O=m.get("distance");O=O?O+f:f;for(var it=0;it<=b;it++){P=Math.cos(T),R=Math.sin(T);var Pt=new te({shape:{x1:P*(p-O)+v,y1:R*(p-O)+c,x2:P*(p-w-O)+v,y2:R*(p-w-O)+c},silent:!0,style:I});I.stroke==="auto"&&Pt.setStyle({stroke:i((E+it/b)/S)}),h.add(Pt),T+=C}T-=C}else T+=A}},e.prototype._renderPointer=function(t,a,n,i,o,s,l,u,f){var h=this.group,v=this._data,c=this._progressEls,p=[],d=t.get(["pointer","show"]),g=t.getModel("progress"),y=g.get("show"),m=t.getData(),_=m.mapDimension("value"),S=+t.get("min"),b=+t.get("max"),x=[S,b],w=[s,l];function T(C,M){var I=m.getItemModel(C),L=I.getModel("pointer"),P=W(L.get("width"),o.r),R=W(L.get("length"),o.r),E=t.get(["pointer","icon"]),O=L.get("offsetCenter"),k=W(O[0],o.r),B=W(O[1],o.r),F=L.get("keepAspect"),H;return E?H=qt(E,k-P/2,B-R,P,R,null,F):H=new YF({shape:{angle:-Math.PI/2,width:P,r:R,x:k,y:B}}),H.rotation=-(M+Math.PI/2),H.x=o.cx,H.y=o.cy,H}function A(C,M){var I=g.get("roundCap"),L=I?Uf:we,P=g.get("overlap"),R=P?g.get("width"):f/m.count(),E=P?o.r-R:o.r-(C+1)*R,O=P?o.r:o.r-C*R,k=new L({shape:{startAngle:s,endAngle:M,cx:o.cx,cy:o.cy,clockwise:u,r0:E,r:O}});return P&&(k.z2=Dt(m.get(_,C),[S,b],[100,0],!0)),k}(y||d)&&(m.diff(v).add(function(C){var M=m.get(_,C);if(d){var I=T(C,s);Gt(I,{rotation:-((isNaN(+M)?w[0]:Dt(M,x,w,!0))+Math.PI/2)},t),h.add(I),m.setItemGraphicEl(C,I)}if(y){var L=A(C,s),P=g.get("clip");Gt(L,{shape:{endAngle:Dt(M,x,w,P)}},t),h.add(L),qp(t.seriesIndex,m.dataType,C,L),p[C]=L}}).update(function(C,M){var I=m.get(_,C);if(d){var L=v.getItemGraphicEl(M),P=L?L.rotation:s,R=T(C,P);R.rotation=P,Tt(R,{rotation:-((isNaN(+I)?w[0]:Dt(I,x,w,!0))+Math.PI/2)},t),h.add(R),m.setItemGraphicEl(C,R)}if(y){var E=c[M],O=E?E.shape.endAngle:s,k=A(C,O),B=g.get("clip");Tt(k,{shape:{endAngle:Dt(I,x,w,B)}},t),h.add(k),qp(t.seriesIndex,m.dataType,C,k),p[C]=k}}).execute(),m.each(function(C){var M=m.getItemModel(C),I=M.getModel("emphasis"),L=I.get("focus"),P=I.get("blurScope"),R=I.get("disabled");if(d){var E=m.getItemGraphicEl(C),O=m.getItemVisual(C,"style"),k=O.fill;if(E instanceof le){var B=E.style;E.useStyle(V({image:B.image,x:B.x,y:B.y,width:B.width,height:B.height},O))}else E.useStyle(O),E.type!=="pointer"&&E.setColor(k);E.setStyle(M.getModel(["pointer","itemStyle"]).getItemStyle()),E.style.fill==="auto"&&E.setStyle("fill",i(Dt(m.get(_,C),x,[0,1],!0))),E.z2EmphasisLift=0,ce(E,M),Wt(E,L,P,R)}if(y){var F=p[C];F.useStyle(m.getItemVisual(C,"style")),F.setStyle(M.getModel(["progress","itemStyle"]).getItemStyle()),F.z2EmphasisLift=0,ce(F,M),Wt(F,L,P,R)}}),this._progressEls=p)},e.prototype._renderAnchor=function(t,a){var n=t.getModel("anchor"),i=n.get("show");if(i){var o=n.get("size"),s=n.get("icon"),l=n.get("offsetCenter"),u=n.get("keepAspect"),f=qt(s,a.cx-o/2+W(l[0],a.r),a.cy-o/2+W(l[1],a.r),o,o,null,u);f.z2=n.get("showAbove")?1:0,f.setStyle(n.getModel("itemStyle").getItemStyle()),this.group.add(f)}},e.prototype._renderTitleAndDetail=function(t,a,n,i,o){var s=this,l=t.getData(),u=l.mapDimension("value"),f=+t.get("min"),h=+t.get("max"),v=new at,c=[],p=[],d=t.isAnimationEnabled(),g=t.get(["pointer","showAbove"]);l.diff(this._data).add(function(y){c[y]=new St({silent:!0}),p[y]=new St({silent:!0})}).update(function(y,m){c[y]=s._titleEls[m],p[y]=s._detailEls[m]}).execute(),l.each(function(y){var m=l.getItemModel(y),_=l.get(u,y),S=new at,b=i(Dt(_,[f,h],[0,1],!0)),x=m.getModel("title");if(x.get("show")){var w=x.get("offsetCenter"),T=o.cx+W(w[0],o.r),A=o.cy+W(w[1],o.r),C=c[y];C.attr({z2:g?0:2,style:Nt(x,{x:T,y:A,text:l.getName(y),align:"center",verticalAlign:"middle"},{inheritColor:b})}),S.add(C)}var M=m.getModel("detail");if(M.get("show")){var I=M.get("offsetCenter"),L=o.cx+W(I[0],o.r),P=o.cy+W(I[1],o.r),R=W(M.get("width"),o.r),E=W(M.get("height"),o.r),O=t.get(["progress","show"])?l.getItemVisual(y,"style").fill:b,C=p[y],k=M.get("formatter");C.attr({z2:g?0:2,style:Nt(M,{x:L,y:P,text:Eu(_,k),width:isNaN(R)?null:R,height:isNaN(E)?null:E,align:"center",verticalAlign:"middle"},{inheritColor:O})}),fA(C,{normal:M},_,function(F){return Eu(F,k)}),d&&hA(C,y,l,t,{getFormattedLabel:function(F,H,U,j,Q,it){return Eu(it?it.interpolatedValue:_,k)}}),S.add(C)}v.add(S)}),this.group.add(v),this._titleEls=c,this._detailEls=p},e.type="gauge",e}(Lt),ZF=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.visualStyleAccessPath="itemStyle",t}return e.prototype.getInitialData=function(t,a){return zo(this,["value"])},e.type="series.gauge",e.defaultOption={z:2,colorBy:"data",center:["50%","50%"],legendHoverLink:!0,radius:"75%",startAngle:225,endAngle:-45,clockwise:!0,min:0,max:100,splitNumber:10,axisLine:{show:!0,roundCap:!1,lineStyle:{color:[[1,"#E6EBF8"]],width:10}},progress:{show:!1,overlap:!0,width:10,roundCap:!1,clip:!0},splitLine:{show:!0,length:10,distance:10,lineStyle:{color:"#63677A",width:3,type:"solid"}},axisTick:{show:!0,splitNumber:5,length:6,distance:10,lineStyle:{color:"#63677A",width:1,type:"solid"}},axisLabel:{show:!0,distance:15,color:"#464646",fontSize:12,rotate:0},pointer:{icon:null,offsetCenter:[0,0],show:!0,showAbove:!0,length:"60%",width:6,keepAspect:!1},anchor:{show:!1,showAbove:!1,size:6,icon:"circle",offsetCenter:[0,0],keepAspect:!1,itemStyle:{color:"#fff",borderWidth:0,borderColor:"#5470c6"}},title:{show:!0,offsetCenter:[0,"20%"],color:"#464646",fontSize:16,valueAnimation:!1},detail:{show:!0,backgroundColor:"rgba(0,0,0,0)",borderWidth:0,borderColor:"#ccc",width:100,height:null,padding:[5,10],offsetCenter:[0,"40%"],color:"#464646",fontSize:30,fontWeight:"bold",lineHeight:30,valueAnimation:!1}},e}(Et);function qF(r){r.registerChartView($F),r.registerSeriesModel(ZF)}var KF=["itemStyle","opacity"],jF=function(r){N(e,r);function e(t,a){var n=r.call(this)||this,i=n,o=new Ce,s=new St;return i.setTextContent(s),n.setTextGuideLine(o),n.updateData(t,a,!0),n}return e.prototype.updateData=function(t,a,n){var i=this,o=t.hostModel,s=t.getItemModel(a),l=t.getItemLayout(a),u=s.getModel("emphasis"),f=s.get(KF);f=f??1,n||Pr(i),i.useStyle(t.getItemVisual(a,"style")),i.style.lineJoin="round",n?(i.setShape({points:l.points}),i.style.opacity=0,Gt(i,{style:{opacity:f}},o,a)):Tt(i,{style:{opacity:f},shape:{points:l.points}},o,a),ce(i,s),this._updateLabel(t,a),Wt(this,u.get("focus"),u.get("blurScope"),u.get("disabled"))},e.prototype._updateLabel=function(t,a){var n=this,i=this.getTextGuideLine(),o=n.getTextContent(),s=t.hostModel,l=t.getItemModel(a),u=t.getItemLayout(a),f=u.label,h=t.getItemVisual(a,"style"),v=h.fill;pe(o,oe(l),{labelFetcher:t.hostModel,labelDataIndex:a,defaultOpacity:h.opacity,defaultText:t.getName(a)},{normal:{align:f.textAlign,verticalAlign:f.verticalAlign}}),n.setTextConfig({local:!0,inside:!!f.inside,insideStroke:v,outsideFill:v});var c=f.linePoints;i.setShape({points:c}),n.textGuideLineConfig={anchor:c?new ft(c[0][0],c[0][1]):null},Tt(o,{style:{x:f.x,y:f.y}},s,a),o.attr({rotation:f.rotation,originX:f.x,originY:f.y,z2:10}),Cy(n,Dy(l),{stroke:v})},e}(Te),JF=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.ignoreLabelLineUpdate=!0,t}return e.prototype.render=function(t,a,n){var i=t.getData(),o=this._data,s=this.group;i.diff(o).add(function(l){var u=new jF(i,l);i.setItemGraphicEl(l,u),s.add(u)}).update(function(l,u){var f=o.getItemGraphicEl(u);f.updateData(i,l),s.add(f),i.setItemGraphicEl(l,f)}).remove(function(l){var u=o.getItemGraphicEl(l);tl(u,t,l)}).execute(),this._data=i},e.prototype.remove=function(){this.group.removeAll(),this._data=null},e.prototype.dispose=function(){},e.type="funnel",e}(Lt),QF=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(t){r.prototype.init.apply(this,arguments),this.legendVisualProvider=new zl(X(this.getData,this),X(this.getRawData,this)),this._defaultLabelLine(t)},e.prototype.getInitialData=function(t,a){return zo(this,{coordDimensions:["value"],encodeDefaulter:lt(ty,this)})},e.prototype._defaultLabelLine=function(t){oi(t,"labelLine",["show"]);var a=t.labelLine,n=t.emphasis.labelLine;a.show=a.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.prototype.getDataParams=function(t){var a=this.getData(),n=r.prototype.getDataParams.call(this,t),i=a.mapDimension("value"),o=a.getSum(i);return n.percent=o?+(a.get(i,t)/o*100).toFixed(2):0,n.$vars.push("percent"),n},e.type="series.funnel",e.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",left:80,top:60,right:80,bottom:60,minSize:"0%",maxSize:"100%",sort:"descending",orient:"vertical",gap:0,funnelAlign:"center",label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1}},itemStyle:{borderColor:"#fff",borderWidth:1},emphasis:{label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},e}(Et);function t3(r,e){return Jt(r.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function e3(r,e){for(var t=r.mapDimension("value"),a=r.mapArray(t,function(l){return l}),n=[],i=e==="ascending",o=0,s=r.count();oy3)return;var n=this._model.coordinateSystem.getSlidedAxisExpandWindow([r.offsetX,r.offsetY]);n.behavior!=="none"&&this._dispatchExpand({axisExpandWindow:n.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(r){if(!(this._mouseDownPoint||!Fc(this,"mousemove"))){var e=this._model,t=e.coordinateSystem.getSlidedAxisExpandWindow([r.offsetX,r.offsetY]),a=t.behavior;a==="jump"&&this._throttledDispatchExpand.debounceNextCall(e.get("axisExpandDebounce")),this._throttledDispatchExpand(a==="none"?null:{axisExpandWindow:t.axisExpandWindow,animation:a==="jump"?null:{duration:0}})}}};function Fc(r,e){var t=r._model;return t.get("axisExpandable")&&t.get("axisExpandTriggerOn")===e}var S3=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(){r.prototype.init.apply(this,arguments),this.mergeOption({})},e.prototype.mergeOption=function(t){var a=this.option;t&&ut(a,t,!0),this._initDimensions()},e.prototype.contains=function(t,a){var n=t.get("parallelIndex");return n!=null&&a.getComponent("parallel",n)===this},e.prototype.setAxisExpand=function(t){D(["axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandWindow"],function(a){t.hasOwnProperty(a)&&(this.option[a]=t[a])},this)},e.prototype._initDimensions=function(){var t=this.dimensions=[],a=this.parallelAxisIndex=[],n=At(this.ecModel.queryComponents({mainType:"parallelAxis"}),function(i){return(i.get("parallelIndex")||0)===this.componentIndex},this);D(n,function(i){t.push("dim"+i.get("dim")),a.push(i.componentIndex)})},e.type="parallel",e.dependencies=["parallelAxis"],e.layoutMode="box",e.defaultOption={z:0,left:80,top:60,right:80,bottom:60,layout:"horizontal",axisExpandable:!1,axisExpandCenter:null,axisExpandCount:0,axisExpandWidth:50,axisExpandRate:17,axisExpandDebounce:50,axisExpandSlideTriggerArea:[-.15,.05,.4],axisExpandTriggerOn:"click",parallelAxisDefault:null},e}(gt),x3=function(r){N(e,r);function e(t,a,n,i,o){var s=r.call(this,t,a,n)||this;return s.type=i||"value",s.axisIndex=o,s}return e.prototype.isHorizontal=function(){return this.coordinateSystem.getModel().get("layout")!=="horizontal"},e}(dr);function bi(r,e,t,a,n,i){r=r||0;var o=t[1]-t[0];if(n!=null&&(n=Gi(n,[0,o])),i!=null&&(i=Math.max(i,n??0)),a==="all"){var s=Math.abs(e[1]-e[0]);s=Gi(s,[0,o]),n=i=Gi(s,[n,i]),a=0}e[0]=Gi(e[0],t),e[1]=Gi(e[1],t);var l=Hc(e,a);e[a]+=r;var u=n||0,f=t.slice();l.sign<0?f[0]+=u:f[1]-=u,e[a]=Gi(e[a],f);var h;return h=Hc(e,a),n!=null&&(h.sign!==l.sign||h.spani&&(e[1-a]=e[a]+h.sign*i),e}function Hc(r,e){var t=r[e]-r[1-e];return{span:Math.abs(t),sign:t>0?-1:t<0?1:e?-1:1}}function Gi(r,e){return Math.min(e[1]!=null?e[1]:1/0,Math.max(e[0]!=null?e[0]:-1/0,r))}var Wc=D,VM=Math.min,zM=Math.max,tx=Math.floor,b3=Math.ceil,ex=Ut,w3=Math.PI,T3=function(){function r(e,t,a){this.type="parallel",this._axesMap=Z(),this._axesLayout={},this.dimensions=e.dimensions,this._model=e,this._init(e,t,a)}return r.prototype._init=function(e,t,a){var n=e.dimensions,i=e.parallelAxisIndex;Wc(n,function(o,s){var l=i[s],u=t.getComponent("parallelAxis",l),f=this._axesMap.set(o,new x3(o,El(u),[0,0],u.get("type"),l)),h=f.type==="category";f.onBand=h&&u.get("boundaryGap"),f.inverse=u.get("inverse"),u.axis=f,f.model=u,f.coordinateSystem=u.coordinateSystem=this},this)},r.prototype.update=function(e,t){this._updateAxesFromSeries(this._model,e)},r.prototype.containPoint=function(e){var t=this._makeLayoutInfo(),a=t.axisBase,n=t.layoutBase,i=t.pixelDimIndex,o=e[1-i],s=e[i];return o>=a&&o<=a+t.axisLength&&s>=n&&s<=n+t.layoutLength},r.prototype.getModel=function(){return this._model},r.prototype._updateAxesFromSeries=function(e,t){t.eachSeries(function(a){if(e.contains(a,t)){var n=a.getData();Wc(this.dimensions,function(i){var o=this._axesMap.get(i);o.scale.unionExtentFromData(n,n.mapDimension(i)),hi(o.scale,o.model)},this)}},this)},r.prototype.resize=function(e,t){this._rect=Jt(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()}),this._layoutAxes()},r.prototype.getRect=function(){return this._rect},r.prototype._makeLayoutInfo=function(){var e=this._model,t=this._rect,a=["x","y"],n=["width","height"],i=e.get("layout"),o=i==="horizontal"?0:1,s=t[n[o]],l=[0,s],u=this.dimensions.length,f=ku(e.get("axisExpandWidth"),l),h=ku(e.get("axisExpandCount")||0,[0,u]),v=e.get("axisExpandable")&&u>3&&u>h&&h>1&&f>0&&s>0,c=e.get("axisExpandWindow"),p;if(c)p=ku(c[1]-c[0],l),c[1]=c[0]+p;else{p=ku(f*(h-1),l);var d=e.get("axisExpandCenter")||tx(u/2);c=[f*d-p/2],c[1]=c[0]+p}var g=(s-p)/(u-h);g<3&&(g=0);var y=[tx(ex(c[0]/f,1))+1,b3(ex(c[1]/f,1))-1],m=g/f*c[0];return{layout:i,pixelDimIndex:o,layoutBase:t[a[o]],layoutLength:s,axisBase:t[a[1-o]],axisLength:t[n[1-o]],axisExpandable:v,axisExpandWidth:f,axisCollapseWidth:g,axisExpandWindow:c,axisCount:u,winInnerIndices:y,axisExpandWindow0Pos:m}},r.prototype._layoutAxes=function(){var e=this._rect,t=this._axesMap,a=this.dimensions,n=this._makeLayoutInfo(),i=n.layout;t.each(function(o){var s=[0,n.axisLength],l=o.inverse?1:0;o.setExtent(s[l],s[1-l])}),Wc(a,function(o,s){var l=(n.axisExpandable?C3:A3)(s,n),u={horizontal:{x:l.position,y:n.axisLength},vertical:{x:0,y:l.position}},f={horizontal:w3/2,vertical:0},h=[u[i].x+e.x,u[i].y+e.y],v=f[i],c=Fe();nn(c,c,v),Ir(c,c,h),this._axesLayout[o]={position:h,rotation:v,transform:c,axisNameAvailableWidth:l.axisNameAvailableWidth,axisLabelShow:l.axisLabelShow,nameTruncateMaxWidth:l.nameTruncateMaxWidth,tickDirection:1,labelDirection:1}},this)},r.prototype.getAxis=function(e){return this._axesMap.get(e)},r.prototype.dataToPoint=function(e,t){return this.axisCoordToPoint(this._axesMap.get(t).dataToCoord(e),t)},r.prototype.eachActiveState=function(e,t,a,n){a==null&&(a=0),n==null&&(n=e.count());var i=this._axesMap,o=this.dimensions,s=[],l=[];D(o,function(g){s.push(e.mapDimension(g)),l.push(i.get(g).model)});for(var u=this.hasAxisBrushed(),f=a;fi*(1-h[0])?(u="jump",l=s-i*(1-h[2])):(l=s-i*h[1])>=0&&(l=s-i*(1-h[1]))<=0&&(l=0),l*=t.axisExpandWidth/f,l?bi(l,n,o,"all"):u="none";else{var c=n[1]-n[0],p=o[1]*s/c;n=[zM(0,p-c/2)],n[1]=VM(o[1],n[0]+c),n[0]=n[1]-c}return{axisExpandWindow:n,behavior:u}},r}();function ku(r,e){return VM(zM(r,e[0]),e[1])}function A3(r,e){var t=e.layoutLength/(e.axisCount-1);return{position:t*r,axisNameAvailableWidth:t,axisLabelShow:!0}}function C3(r,e){var t=e.layoutLength,a=e.axisExpandWidth,n=e.axisCount,i=e.axisCollapseWidth,o=e.winInnerIndices,s,l=i,u=!1,f;return r=0;n--)Ye(a[n])},e.prototype.getActiveState=function(t){var a=this.activeIntervals;if(!a.length)return"normal";if(t==null||isNaN(+t))return"inactive";if(a.length===1){var n=a[0];if(n[0]<=t&&t<=n[1])return"active"}else for(var i=0,o=a.length;iP3}function YM(r){var e=r.length-1;return e<0&&(e=0),[r[0],r[e]]}function XM(r,e,t,a){var n=new at;return n.add(new xt({name:"main",style:tm(t),silent:!0,draggable:!0,cursor:"move",drift:lt(nx,r,e,n,["n","s","w","e"]),ondragend:lt(ci,e,{isEnd:!0})})),D(a,function(i){n.add(new xt({name:i.join(""),style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:lt(nx,r,e,n,i),ondragend:lt(ci,e,{isEnd:!0})}))}),n}function $M(r,e,t,a){var n=a.brushStyle.lineWidth||0,i=yo(n,R3),o=t[0][0],s=t[1][0],l=o-n/2,u=s-n/2,f=t[0][1],h=t[1][1],v=f-i+n/2,c=h-i+n/2,p=f-o,d=h-s,g=p+n,y=d+n;ia(r,e,"main",o,s,p,d),a.transformable&&(ia(r,e,"w",l,u,i,y),ia(r,e,"e",v,u,i,y),ia(r,e,"n",l,u,g,i),ia(r,e,"s",l,c,g,i),ia(r,e,"nw",l,u,i,i),ia(r,e,"ne",v,u,i,i),ia(r,e,"sw",l,c,i,i),ia(r,e,"se",v,c,i,i))}function Hd(r,e){var t=e.__brushOption,a=t.transformable,n=e.childAt(0);n.useStyle(tm(t)),n.attr({silent:!a,cursor:a?"move":"default"}),D([["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]],function(i){var o=e.childOfName(i.join("")),s=i.length===1?Wd(r,i[0]):V3(r,i);o&&o.attr({silent:!a,invisible:!a,cursor:a?k3[s]+"-resize":null})})}function ia(r,e,t,a,n,i,o){var s=e.childOfName(t);s&&s.setShape(G3(em(r,e,[[a,n],[a+i,n+o]])))}function tm(r){return J({strokeNoScale:!0},r.brushStyle)}function ZM(r,e,t,a){var n=[gl(r,t),gl(e,a)],i=[yo(r,t),yo(e,a)];return[[n[0],i[0]],[n[1],i[1]]]}function B3(r){return $a(r.group)}function Wd(r,e){var t={w:"left",e:"right",n:"top",s:"bottom"},a={left:"w",right:"e",top:"n",bottom:"s"},n=Mh(t[e],B3(r));return a[n]}function V3(r,e){var t=[Wd(r,e[0]),Wd(r,e[1])];return(t[0]==="e"||t[0]==="w")&&t.reverse(),t.join("")}function nx(r,e,t,a,n,i){var o=t.__brushOption,s=r.toRectRange(o.range),l=qM(e,n,i);D(a,function(u){var f=E3[u];s[f[0]][f[1]]+=l[f[0]]}),o.range=r.fromRectRange(ZM(s[0][0],s[1][0],s[0][1],s[1][1])),jy(e,t),ci(e,{isEnd:!1})}function z3(r,e,t,a){var n=e.__brushOption.range,i=qM(r,t,a);D(n,function(o){o[0]+=i[0],o[1]+=i[1]}),jy(r,e),ci(r,{isEnd:!1})}function qM(r,e,t){var a=r.group,n=a.transformCoordToLocal(e,t),i=a.transformCoordToLocal(0,0);return[n[0]-i[0],n[1]-i[1]]}function em(r,e,t){var a=UM(r,e);return a&&a!==vi?a.clipPath(t,r._transform):rt(t)}function G3(r){var e=gl(r[0][0],r[1][0]),t=gl(r[0][1],r[1][1]),a=yo(r[0][0],r[1][0]),n=yo(r[0][1],r[1][1]);return{x:e,y:t,width:a-e,height:n-t}}function F3(r,e,t){if(!(!r._brushType||W3(r,e.offsetX,e.offsetY))){var a=r._zr,n=r._covers,i=Qy(r,e,t);if(!r._dragging)for(var o=0;oa.getWidth()||t<0||t>a.getHeight()}var Kh={lineX:sx(0),lineY:sx(1),rect:{createCover:function(r,e){function t(a){return a}return XM({toRectRange:t,fromRectRange:t},r,e,[["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]])},getCreatingRange:function(r){var e=YM(r);return ZM(e[1][0],e[1][1],e[0][0],e[0][1])},updateCoverShape:function(r,e,t,a){$M(r,e,t,a)},updateCommon:Hd,contain:Yd},polygon:{createCover:function(r,e){var t=new at;return t.add(new Ce({name:"main",style:tm(e),silent:!0})),t},getCreatingRange:function(r){return r},endCreating:function(r,e){e.remove(e.childAt(0)),e.add(new Te({name:"main",draggable:!0,drift:lt(z3,r,e),ondragend:lt(ci,r,{isEnd:!0})}))},updateCoverShape:function(r,e,t,a){e.childAt(0).setShape({points:em(r,e,t)})},updateCommon:Hd,contain:Yd}};function sx(r){return{createCover:function(e,t){return XM({toRectRange:function(a){var n=[a,[0,100]];return r&&n.reverse(),n},fromRectRange:function(a){return a[r]}},e,t,[[["w"],["e"]],[["n"],["s"]]][r])},getCreatingRange:function(e){var t=YM(e),a=gl(t[0][r],t[1][r]),n=yo(t[0][r],t[1][r]);return[a,n]},updateCoverShape:function(e,t,a,n){var i,o=UM(e,t);if(o!==vi&&o.getLinearBrushOtherExtent)i=o.getLinearBrushOtherExtent(r);else{var s=e._zr;i=[0,[s.getWidth(),s.getHeight()][1-r]]}var l=[a,i];r&&l.reverse(),$M(e,t,l,n)},updateCommon:Hd,contain:Yd}}function jM(r){return r=rm(r),function(e){return Hg(e,r)}}function JM(r,e){return r=rm(r),function(t){var a=e??t,n=a?r.width:r.height,i=a?r.x:r.y;return[i,i+(n||0)]}}function QM(r,e,t){var a=rm(r);return function(n,i){return a.contain(i[0],i[1])&&!Xh(n,e,t)}}function rm(r){return ht.create(r)}var U3=["axisLine","axisTickLabel","axisName"],Y3=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(t,a){r.prototype.init.apply(this,arguments),(this._brushController=new Ky(a.getZr())).on("brush",X(this._onBrush,this))},e.prototype.render=function(t,a,n,i){if(!X3(t,a,i)){this.axisModel=t,this.api=n,this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new at,this.group.add(this._axisGroup),!!t.get("show")){var s=Z3(t,a),l=s.coordinateSystem,u=t.getAreaSelectStyle(),f=u.width,h=t.axis.dim,v=l.getAxisLayout(h),c=V({strokeContainThreshold:f},v),p=new Re(t,c);D(U3,p.add,p),this._axisGroup.add(p.getGroup()),this._refreshBrushController(c,u,t,s,f,n),Ll(o,this._axisGroup,t)}}},e.prototype._refreshBrushController=function(t,a,n,i,o,s){var l=n.axis.getExtent(),u=l[1]-l[0],f=Math.min(30,Math.abs(u)*.1),h=ht.create({x:l[0],y:-o/2,width:u,height:o});h.x-=f,h.width+=2*f,this._brushController.mount({enableGlobalPan:!0,rotation:t.rotation,x:t.position[0],y:t.position[1]}).setPanels([{panelId:"pl",clipPath:jM(h),isTargetByCursor:QM(h,s,i),getLinearBrushOtherExtent:JM(h,0)}]).enableBrush({brushType:"lineX",brushStyle:a,removeOnClick:!0}).updateCovers($3(n))},e.prototype._onBrush=function(t){var a=t.areas,n=this.axisModel,i=n.axis,o=G(a,function(s){return[i.coordToData(s.range[0],!0),i.coordToData(s.range[1],!0)]});(!n.option.realtime===t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"axisAreaSelect",parallelAxisId:n.id,intervals:o})},e.prototype.dispose=function(){this._brushController.dispose()},e.type="parallelAxis",e}(zt);function X3(r,e,t){return t&&t.type==="axisAreaSelect"&&e.findComponents({mainType:"parallelAxis",query:t})[0]===r}function $3(r){var e=r.axis;return G(r.activeIntervals,function(t){return{brushType:"lineX",panelId:"pl",range:[e.dataToCoord(t[0],!0),e.dataToCoord(t[1],!0)]}})}function Z3(r,e){return e.getComponent("parallel",r.get("parallelIndex"))}var q3={type:"axisAreaSelect",event:"axisAreaSelected"};function K3(r){r.registerAction(q3,function(e,t){t.eachComponent({mainType:"parallelAxis",query:e},function(a){a.axis.model.setActiveIntervals(e.intervals)})}),r.registerAction("parallelAxisExpand",function(e,t){t.eachComponent({mainType:"parallel",query:e},function(a){a.setAxisExpand(e)})})}var j3={type:"value",areaSelectStyle:{width:20,borderWidth:1,borderColor:"rgba(160,197,232)",color:"rgba(160,197,232)",opacity:.3},realtime:!0,z:10};function tI(r){r.registerComponentView(m3),r.registerComponentModel(S3),r.registerCoordinateSystem("parallel",M3),r.registerPreprocessor(p3),r.registerComponentModel(Gd),r.registerComponentView(Y3),go(r,"parallel",Gd,j3),K3(r)}function J3(r){pt(tI),r.registerChartView(o3),r.registerSeriesModel(u3),r.registerVisual(r.PRIORITY.VISUAL.BRUSH,c3)}var Q3=function(){function r(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.cpx2=0,this.cpy2=0,this.extent=0}return r}(),tH=function(r){N(e,r);function e(t){return r.call(this,t)||this}return e.prototype.getDefaultShape=function(){return new Q3},e.prototype.buildPath=function(t,a){var n=a.extent;t.moveTo(a.x1,a.y1),t.bezierCurveTo(a.cpx1,a.cpy1,a.cpx2,a.cpy2,a.x2,a.y2),a.orient==="vertical"?(t.lineTo(a.x2+n,a.y2),t.bezierCurveTo(a.cpx2+n,a.cpy2,a.cpx1+n,a.cpy1,a.x1+n,a.y1)):(t.lineTo(a.x2,a.y2+n),t.bezierCurveTo(a.cpx2,a.cpy2+n,a.cpx1,a.cpy1+n,a.x1,a.y1+n)),t.closePath()},e.prototype.highlight=function(){ga(this)},e.prototype.downplay=function(){ya(this)},e}(mt),eH=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t._focusAdjacencyDisabled=!1,t}return e.prototype.render=function(t,a,n){var i=this,o=t.getGraph(),s=this.group,l=t.layoutInfo,u=l.width,f=l.height,h=t.getData(),v=t.getData("edge"),c=t.get("orient");this._model=t,s.removeAll(),s.x=l.x,s.y=l.y,o.eachEdge(function(p){var d=new tH,g=nt(d);g.dataIndex=p.dataIndex,g.seriesIndex=t.seriesIndex,g.dataType="edge";var y=p.getModel(),m=y.getModel("lineStyle"),_=m.get("curveness"),S=p.node1.getLayout(),b=p.node1.getModel(),x=b.get("localX"),w=b.get("localY"),T=p.node2.getLayout(),A=p.node2.getModel(),C=A.get("localX"),M=A.get("localY"),I=p.getLayout(),L,P,R,E,O,k,B,F;d.shape.extent=Math.max(1,I.dy),d.shape.orient=c,c==="vertical"?(L=(x!=null?x*u:S.x)+I.sy,P=(w!=null?w*f:S.y)+S.dy,R=(C!=null?C*u:T.x)+I.ty,E=M!=null?M*f:T.y,O=L,k=P*(1-_)+E*_,B=R,F=P*_+E*(1-_)):(L=(x!=null?x*u:S.x)+S.dx,P=(w!=null?w*f:S.y)+I.sy,R=C!=null?C*u:T.x,E=(M!=null?M*f:T.y)+I.ty,O=L*(1-_)+R*_,k=P,B=L*_+R*(1-_),F=E),d.setShape({x1:L,y1:P,x2:R,y2:E,cpx1:O,cpy1:k,cpx2:B,cpy2:F}),d.useStyle(m.getItemStyle()),lx(d.style,c,p);var H=""+y.get("value"),U=oe(y,"edgeLabel");pe(d,U,{labelFetcher:{getFormattedLabel:function(it,Pt,Yt,ct,et,dt){return t.getFormattedLabel(it,Pt,"edge",ct,Tr(et,U.normal&&U.normal.get("formatter"),H),dt)}},labelDataIndex:p.dataIndex,defaultText:H}),d.setTextConfig({position:"inside"});var j=y.getModel("emphasis");ce(d,y,"lineStyle",function(it){var Pt=it.getItemStyle();return lx(Pt,c,p),Pt}),s.add(d),v.setItemGraphicEl(p.dataIndex,d);var Q=j.get("focus");Wt(d,Q==="adjacency"?p.getAdjacentDataIndices():Q==="trajectory"?p.getTrajectoryDataIndices():Q,j.get("blurScope"),j.get("disabled"))}),o.eachNode(function(p){var d=p.getLayout(),g=p.getModel(),y=g.get("localX"),m=g.get("localY"),_=g.getModel("emphasis"),S=g.get(["itemStyle","borderRadius"])||0,b=new xt({shape:{x:y!=null?y*u:d.x,y:m!=null?m*f:d.y,width:d.dx,height:d.dy,r:S},style:g.getModel("itemStyle").getItemStyle(),z2:10});pe(b,oe(g),{labelFetcher:{getFormattedLabel:function(w,T){return t.getFormattedLabel(w,T,"node")}},labelDataIndex:p.dataIndex,defaultText:p.id}),b.disableLabelAnimation=!0,b.setStyle("fill",p.getVisual("color")),b.setStyle("decal",p.getVisual("style").decal),ce(b,g),s.add(b),h.setItemGraphicEl(p.dataIndex,b),nt(b).dataType="node";var x=_.get("focus");Wt(b,x==="adjacency"?p.getAdjacentDataIndices():x==="trajectory"?p.getTrajectoryDataIndices():x,_.get("blurScope"),_.get("disabled"))}),h.eachItemGraphicEl(function(p,d){var g=h.getItemModel(d);g.get("draggable")&&(p.drift=function(y,m){i._focusAdjacencyDisabled=!0,this.shape.x+=y,this.shape.y+=m,this.dirty(),n.dispatchAction({type:"dragNode",seriesId:t.id,dataIndex:h.getRawIndex(d),localX:this.shape.x/u,localY:this.shape.y/f})},p.ondragend=function(){i._focusAdjacencyDisabled=!1},p.draggable=!0,p.cursor="move")}),!this._data&&t.isAnimationEnabled()&&s.setClipPath(rH(s.getBoundingRect(),t,function(){s.removeClipPath()})),this._data=t.getData()},e.prototype.dispose=function(){},e.type="sankey",e}(Lt);function lx(r,e,t){switch(r.fill){case"source":r.fill=t.node1.getVisual("color"),r.decal=t.node1.getVisual("style").decal;break;case"target":r.fill=t.node2.getVisual("color"),r.decal=t.node2.getVisual("style").decal;break;case"gradient":var a=t.node1.getVisual("color"),n=t.node2.getVisual("color");Y(a)&&Y(n)&&(r.fill=new Ao(0,0,+(e==="horizontal"),+(e==="vertical"),[{color:a,offset:0},{color:n,offset:1}]))}}function rH(r,e,t){var a=new xt({shape:{x:r.x-10,y:r.y-10,width:0,height:r.height+20}});return Gt(a,{shape:{width:r.width+20}},e,t),a}var aH=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.getInitialData=function(t,a){var n=t.edges||t.links||[],i=t.data||t.nodes||[],o=t.levels||[];this.levelModels=[];for(var s=this.levelModels,l=0;l=0&&(s[o[l].depth]=new Ct(o[l],this,a));var u=NM(i,n,this,!0,f);return u.data;function f(h,v){h.wrapMethod("getItemModel",function(c,p){var d=c.parentModel,g=d.getData().getItemLayout(p);if(g){var y=g.depth,m=d.levelModels[y];m&&(c.parentModel=m)}return c}),v.wrapMethod("getItemModel",function(c,p){var d=c.parentModel,g=d.getGraph().getEdgeByIndex(p),y=g.node1.getLayout();if(y){var m=y.depth,_=d.levelModels[m];_&&(c.parentModel=_)}return c})}},e.prototype.setNodePosition=function(t,a){var n=this.option.data||this.option.nodes,i=n[t];i.localX=a[0],i.localY=a[1]},e.prototype.getGraph=function(){return this.getData().graph},e.prototype.getEdgeData=function(){return this.getGraph().edgeData},e.prototype.formatTooltip=function(t,a,n){function i(c){return isNaN(c)||c==null}if(n==="edge"){var o=this.getDataParams(t,n),s=o.data,l=o.value,u=s.source+" -- "+s.target;return se("nameValue",{name:u,value:l,noValue:i(l)})}else{var f=this.getGraph().getNodeByIndex(t),h=f.getLayout().value,v=this.getDataParams(t,n).data.name;return se("nameValue",{name:v!=null?v+"":null,value:h,noValue:i(h)})}},e.prototype.optionUpdated=function(){},e.prototype.getDataParams=function(t,a){var n=r.prototype.getDataParams.call(this,t,a);if(n.value==null&&a==="node"){var i=this.getGraph().getNodeByIndex(t),o=i.getLayout().value;n.value=o}return n},e.type="series.sankey",e.defaultOption={z:2,coordinateSystem:"view",left:"5%",top:"5%",right:"20%",bottom:"5%",orient:"horizontal",nodeWidth:20,nodeGap:8,draggable:!0,layoutIterations:32,label:{show:!0,position:"right",fontSize:12},edgeLabel:{show:!1,fontSize:12},levels:[],nodeAlign:"justify",lineStyle:{color:"#314656",opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.5}},select:{itemStyle:{borderColor:"#212121"}},animationEasing:"linear",animationDuration:1e3},e}(Et);function nH(r,e){r.eachSeriesByType("sankey",function(t){var a=t.get("nodeWidth"),n=t.get("nodeGap"),i=iH(t,e);t.layoutInfo=i;var o=i.width,s=i.height,l=t.getGraph(),u=l.nodes,f=l.edges;sH(u);var h=At(u,function(d){return d.getLayout().value===0}),v=h.length!==0?0:t.get("layoutIterations"),c=t.get("orient"),p=t.get("nodeAlign");oH(u,f,a,n,o,s,v,c,p)})}function iH(r,e){return Jt(r.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function oH(r,e,t,a,n,i,o,s,l){lH(r,e,t,n,i,s,l),vH(r,e,i,n,a,o,s),xH(r,s)}function sH(r){D(r,function(e){var t=Ka(e.outEdges,Kf),a=Ka(e.inEdges,Kf),n=e.getValue()||0,i=Math.max(t,a,n);e.setLayout({value:i},!0)})}function lH(r,e,t,a,n,i,o){for(var s=[],l=[],u=[],f=[],h=0,v=0;v=0;y&&g.depth>c&&(c=g.depth),d.setLayout({depth:y?g.depth:h},!0),i==="vertical"?d.setLayout({dy:t},!0):d.setLayout({dx:t},!0);for(var m=0;mh-1?c:h-1;o&&o!=="left"&&uH(r,o,i,w);var T=i==="vertical"?(n-t)/w:(a-t)/w;hH(r,T,i)}function eI(r){var e=r.hostGraph.data.getRawDataItem(r.dataIndex);return e.depth!=null&&e.depth>=0}function uH(r,e,t,a){if(e==="right"){for(var n=[],i=r,o=0;i.length;){for(var s=0;s0;i--)l*=.99,dH(s,l,o),Uc(s,n,t,a,o),SH(s,l,o),Uc(s,n,t,a,o)}function cH(r,e){var t=[],a=e==="vertical"?"y":"x",n=Yp(r,function(i){return i.getLayout()[a]});return n.keys.sort(function(i,o){return i-o}),D(n.keys,function(i){t.push(n.buckets.get(i))}),t}function pH(r,e,t,a,n,i){var o=1/0;D(r,function(s){var l=s.length,u=0;D(s,function(h){u+=h.getLayout().value});var f=i==="vertical"?(a-(l-1)*n)/u:(t-(l-1)*n)/u;f0&&(s=l.getLayout()[i]+u,n==="vertical"?l.setLayout({x:s},!0):l.setLayout({y:s},!0)),f=l.getLayout()[i]+l.getLayout()[v]+e;var p=n==="vertical"?a:t;if(u=f-e-p,u>0){s=l.getLayout()[i]-u,n==="vertical"?l.setLayout({x:s},!0):l.setLayout({y:s},!0),f=s;for(var c=h-2;c>=0;--c)l=o[c],u=l.getLayout()[i]+l.getLayout()[v]+e-f,u>0&&(s=l.getLayout()[i]-u,n==="vertical"?l.setLayout({x:s},!0):l.setLayout({y:s},!0)),f=l.getLayout()[i]}})}function dH(r,e,t){D(r.slice().reverse(),function(a){D(a,function(n){if(n.outEdges.length){var i=Ka(n.outEdges,gH,t)/Ka(n.outEdges,Kf);if(isNaN(i)){var o=n.outEdges.length;i=o?Ka(n.outEdges,yH,t)/o:0}if(t==="vertical"){var s=n.getLayout().x+(i-en(n,t))*e;n.setLayout({x:s},!0)}else{var l=n.getLayout().y+(i-en(n,t))*e;n.setLayout({y:l},!0)}}})})}function gH(r,e){return en(r.node2,e)*r.getValue()}function yH(r,e){return en(r.node2,e)}function mH(r,e){return en(r.node1,e)*r.getValue()}function _H(r,e){return en(r.node1,e)}function en(r,e){return e==="vertical"?r.getLayout().x+r.getLayout().dx/2:r.getLayout().y+r.getLayout().dy/2}function Kf(r){return r.getValue()}function Ka(r,e,t){for(var a=0,n=r.length,i=-1;++io&&(o=l)}),D(a,function(s){var l=new ie({type:"color",mappingMethod:"linear",dataExtent:[i,o],visual:e.get("color")}),u=l.mapValueToVisual(s.getLayout().value),f=s.getModel().get(["itemStyle","color"]);f!=null?(s.setVisual("color",f),s.setVisual("style",{fill:f})):(s.setVisual("color",u),s.setVisual("style",{fill:u}))})}n.length&&D(n,function(s){var l=s.getModel().get("lineStyle");s.setVisual("style",l)})})}function wH(r){r.registerChartView(eH),r.registerSeriesModel(aH),r.registerLayout(nH),r.registerVisual(bH),r.registerAction({type:"dragNode",event:"dragnode",update:"update"},function(e,t){t.eachComponent({mainType:"series",subType:"sankey",query:e},function(a){a.setNodePosition(e.dataIndex,[e.localX,e.localY])})})}var rI=function(){function r(){}return r.prototype._hasEncodeRule=function(e){var t=this.getEncode();return t&&t.get(e)!=null},r.prototype.getInitialData=function(e,t){var a,n=t.getComponent("xAxis",this.get("xAxisIndex")),i=t.getComponent("yAxis",this.get("yAxisIndex")),o=n.get("type"),s=i.get("type"),l;o==="category"?(e.layout="horizontal",a=n.getOrdinalMeta(),l=!this._hasEncodeRule("x")):s==="category"?(e.layout="vertical",a=i.getOrdinalMeta(),l=!this._hasEncodeRule("y")):e.layout=e.layout||"horizontal";var u=["x","y"],f=e.layout==="horizontal"?0:1,h=this._baseAxisDim=u[f],v=u[1-f],c=[n,i],p=c[f].get("type"),d=c[1-f].get("type"),g=e.data;if(g&&l){var y=[];D(g,function(S,b){var x;z(S)?(x=S.slice(),S.unshift(b)):z(S.value)?(x=V({},S),x.value=x.value.slice(),S.value.unshift(b)):x=S,y.push(x)}),e.data=y}var m=this.defaultValueDimensions,_=[{name:h,type:zf(p),ordinalMeta:a,otherDims:{tooltip:!1,itemName:0},dimsDef:["base"]},{name:v,type:zf(d),dimsDef:m.slice()}];return zo(this,{coordDimensions:_,dimensionsCount:m.length+1,encodeDefaulter:lt(LA,_,this)})},r.prototype.getBaseAxis=function(){var e=this._baseAxisDim;return this.ecModel.getComponent(e+"Axis",this.get(e+"AxisIndex")).axis},r}(),aI=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.defaultValueDimensions=[{name:"min",defaultTooltip:!0},{name:"Q1",defaultTooltip:!0},{name:"median",defaultTooltip:!0},{name:"Q3",defaultTooltip:!0},{name:"max",defaultTooltip:!0}],t.visualDrawType="stroke",t}return e.type="series.boxplot",e.dependencies=["xAxis","yAxis","grid"],e.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,boxWidth:[7,50],itemStyle:{color:"#fff",borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2,shadowBlur:5,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0,0,0,0.2)"}},animationDuration:800},e}(Et);$t(aI,rI,!0);var TH=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){var i=t.getData(),o=this.group,s=this._data;this._data||o.removeAll();var l=t.get("layout")==="horizontal"?1:0;i.diff(s).add(function(u){if(i.hasValue(u)){var f=i.getItemLayout(u),h=ux(f,i,u,l,!0);i.setItemGraphicEl(u,h),o.add(h)}}).update(function(u,f){var h=s.getItemGraphicEl(f);if(!i.hasValue(u)){o.remove(h);return}var v=i.getItemLayout(u);h?(Pr(h),nI(v,h,i,u)):h=ux(v,i,u,l),o.add(h),i.setItemGraphicEl(u,h)}).remove(function(u){var f=s.getItemGraphicEl(u);f&&o.remove(f)}).execute(),this._data=i},e.prototype.remove=function(t){var a=this.group,n=this._data;this._data=null,n&&n.eachItemGraphicEl(function(i){i&&a.remove(i)})},e.type="boxplot",e}(Lt),AH=function(){function r(){}return r}(),CH=function(r){N(e,r);function e(t){var a=r.call(this,t)||this;return a.type="boxplotBoxPath",a}return e.prototype.getDefaultShape=function(){return new AH},e.prototype.buildPath=function(t,a){var n=a.points,i=0;for(t.moveTo(n[i][0],n[i][1]),i++;i<4;i++)t.lineTo(n[i][0],n[i][1]);for(t.closePath();id){var S=[y,_];a.push(S)}}}return{boxData:t,outliers:a}}var EH={type:"echarts:boxplot",transform:function(e){var t=e.upstream;if(t.sourceFormat!==Ae){var a="";Mt(a)}var n=RH(t.getRawData(),e.config);return[{dimensions:["ItemName","Low","Q1","Q2","Q3","High"],data:n.boxData},{data:n.outliers}]}};function kH(r){r.registerSeriesModel(aI),r.registerChartView(TH),r.registerLayout(MH),r.registerTransform(EH)}var OH=["itemStyle","borderColor"],NH=["itemStyle","borderColor0"],BH=["itemStyle","borderColorDoji"],VH=["itemStyle","color"],zH=["itemStyle","color0"];function am(r,e){return e.get(r>0?VH:zH)}function nm(r,e){return e.get(r===0?BH:r>0?OH:NH)}var GH={seriesType:"candlestick",plan:Eo(),performRawSeries:!0,reset:function(r,e){if(!e.isSeriesFiltered(r)){var t=r.pipelineContext.large;return!t&&{progress:function(a,n){for(var i;(i=a.next())!=null;){var o=n.getItemModel(i),s=n.getItemLayout(i).sign,l=o.getItemStyle();l.fill=am(s,o),l.stroke=nm(s,o)||l.fill;var u=n.ensureUniqueItemVisual(i,"style");V(u,l)}}}}}},FH=["color","borderColor"],HH=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){this.group.removeClipPath(),this._progressiveEls=null,this._updateDrawMode(t),this._isLargeDraw?this._renderLarge(t):this._renderNormal(t)},e.prototype.incrementalPrepareRender=function(t,a,n){this._clear(),this._updateDrawMode(t)},e.prototype.incrementalRender=function(t,a,n,i){this._progressiveEls=[],this._isLargeDraw?this._incrementalRenderLarge(t,a):this._incrementalRenderNormal(t,a)},e.prototype.eachRendered=function(t){on(this._progressiveEls||this.group,t)},e.prototype._updateDrawMode=function(t){var a=t.pipelineContext.large;(this._isLargeDraw==null||a!==this._isLargeDraw)&&(this._isLargeDraw=a,this._clear())},e.prototype._renderNormal=function(t){var a=t.getData(),n=this._data,i=this.group,o=a.getLayout("isSimpleBox"),s=t.get("clip",!0),l=t.coordinateSystem,u=l.getArea&&l.getArea();this._data||i.removeAll(),a.diff(n).add(function(f){if(a.hasValue(f)){var h=a.getItemLayout(f);if(s&&fx(u,h))return;var v=Yc(h,f,!0);Gt(v,{shape:{points:h.ends}},t,f),Xc(v,a,f,o),i.add(v),a.setItemGraphicEl(f,v)}}).update(function(f,h){var v=n.getItemGraphicEl(h);if(!a.hasValue(f)){i.remove(v);return}var c=a.getItemLayout(f);if(s&&fx(u,c)){i.remove(v);return}v?(Tt(v,{shape:{points:c.ends}},t,f),Pr(v)):v=Yc(c),Xc(v,a,f,o),i.add(v),a.setItemGraphicEl(f,v)}).remove(function(f){var h=n.getItemGraphicEl(f);h&&i.remove(h)}).execute(),this._data=a},e.prototype._renderLarge=function(t){this._clear(),hx(t,this.group);var a=t.get("clip",!0)?Nl(t.coordinateSystem,!1,t):null;a?this.group.setClipPath(a):this.group.removeClipPath()},e.prototype._incrementalRenderNormal=function(t,a){for(var n=a.getData(),i=n.getLayout("isSimpleBox"),o;(o=t.next())!=null;){var s=n.getItemLayout(o),l=Yc(s);Xc(l,n,o,i),l.incremental=!0,this.group.add(l),this._progressiveEls.push(l)}},e.prototype._incrementalRenderLarge=function(t,a){hx(a,this.group,this._progressiveEls,!0)},e.prototype.remove=function(t){this._clear()},e.prototype._clear=function(){this.group.removeAll(),this._data=null},e.type="candlestick",e}(Lt),WH=function(){function r(){}return r}(),UH=function(r){N(e,r);function e(t){var a=r.call(this,t)||this;return a.type="normalCandlestickBox",a}return e.prototype.getDefaultShape=function(){return new WH},e.prototype.buildPath=function(t,a){var n=a.points;this.__simpleBox?(t.moveTo(n[4][0],n[4][1]),t.lineTo(n[6][0],n[6][1])):(t.moveTo(n[0][0],n[0][1]),t.lineTo(n[1][0],n[1][1]),t.lineTo(n[2][0],n[2][1]),t.lineTo(n[3][0],n[3][1]),t.closePath(),t.moveTo(n[4][0],n[4][1]),t.lineTo(n[5][0],n[5][1]),t.moveTo(n[6][0],n[6][1]),t.lineTo(n[7][0],n[7][1]))},e}(mt);function Yc(r,e,t){var a=r.ends;return new UH({shape:{points:t?YH(a,r):a},z2:100})}function fx(r,e){for(var t=!0,a=0;ab?M[i]:C[i],ends:P,brushRect:B(x,w,_)})}function O(H,U){var j=[];return j[n]=U,j[i]=H,isNaN(U)||isNaN(H)?[NaN,NaN]:e.dataToPoint(j)}function k(H,U,j){var Q=U.slice(),it=U.slice();Q[n]=tf(Q[n]+a/2,1,!1),it[n]=tf(it[n]-a/2,1,!0),j?H.push(Q,it):H.push(it,Q)}function B(H,U,j){var Q=O(H,j),it=O(U,j);return Q[n]-=a/2,it[n]-=a/2,{x:Q[0],y:Q[1],width:a,height:it[1]-Q[1]}}function F(H){return H[n]=tf(H[n],1),H}}function p(d,g){for(var y=Ur(d.count*4),m=0,_,S=[],b=[],x,w=g.getStore(),T=!!r.get(["itemStyle","borderColorDoji"]);(x=d.next())!=null;){var A=w.get(s,x),C=w.get(u,x),M=w.get(f,x),I=w.get(h,x),L=w.get(v,x);if(isNaN(A)||isNaN(I)||isNaN(L)){y[m++]=NaN,m+=3;continue}y[m++]=vx(w,x,C,M,f,T),S[n]=A,S[i]=I,_=e.dataToPoint(S,null,b),y[m++]=_?_[0]:NaN,y[m++]=_?_[1]:NaN,S[i]=L,_=e.dataToPoint(S,null,b),y[m++]=_?_[1]:NaN}g.setLayout("largePoints",y)}}};function vx(r,e,t,a,n,i){var o;return t>a?o=-1:t0?r.get(n,e-1)<=a?1:-1:1,o}function qH(r,e){var t=r.getBaseAxis(),a,n=t.type==="category"?t.getBandWidth():(a=t.getExtent(),Math.abs(a[1]-a[0])/e.count()),i=W(st(r.get("barMaxWidth"),n),n),o=W(st(r.get("barMinWidth"),1),n),s=r.get("barWidth");return s!=null?W(s,n):Math.max(Math.min(n/2,i),o)}function KH(r){r.registerChartView(HH),r.registerSeriesModel(iI),r.registerPreprocessor($H),r.registerVisual(GH),r.registerLayout(ZH)}function cx(r,e){var t=e.rippleEffectColor||e.color;r.eachChild(function(a){a.attr({z:e.z,zlevel:e.zlevel,style:{stroke:e.brushType==="stroke"?t:null,fill:e.brushType==="fill"?t:null}})})}var jH=function(r){N(e,r);function e(t,a){var n=r.call(this)||this,i=new kl(t,a),o=new at;return n.add(i),n.add(o),n.updateData(t,a),n}return e.prototype.stopEffectAnimation=function(){this.childAt(1).removeAll()},e.prototype.startEffectAnimation=function(t){for(var a=t.symbolType,n=t.color,i=t.rippleNumber,o=this.childAt(1),s=0;s0&&(s=this._getLineLength(i)/f*1e3),s!==this._period||l!==this._loop||u!==this._roundTrip){i.stopAnimation();var v=void 0;K(h)?v=h(n):v=h,i.__t>0&&(v=-s*i.__t),this._animateSymbol(i,s,v,l,u)}this._period=s,this._loop=l,this._roundTrip=u}},e.prototype._animateSymbol=function(t,a,n,i,o){if(a>0){t.__t=0;var s=this,l=t.animate("",i).when(o?a*2:a,{__t:o?2:1}).delay(n).during(function(){s._updateSymbolPosition(t)});i||l.done(function(){s.remove(t)}),l.start()}},e.prototype._getLineLength=function(t){return la(t.__p1,t.__cp1)+la(t.__cp1,t.__p2)},e.prototype._updateAnimationPoints=function(t,a){t.__p1=a[0],t.__p2=a[1],t.__cp1=a[2]||[(a[0][0]+a[1][0])/2,(a[0][1]+a[1][1])/2]},e.prototype.updateData=function(t,a,n){this.childAt(0).updateData(t,a,n),this._updateEffectSymbol(t,a)},e.prototype._updateSymbolPosition=function(t){var a=t.__p1,n=t.__p2,i=t.__cp1,o=t.__t<1?t.__t:2-t.__t,s=[t.x,t.y],l=s.slice(),u=ue,f=Ip;s[0]=u(a[0],i[0],n[0],o),s[1]=u(a[1],i[1],n[1],o);var h=t.__t<1?f(a[0],i[0],n[0],o):f(n[0],i[0],a[0],1-o),v=t.__t<1?f(a[1],i[1],n[1],o):f(n[1],i[1],a[1],1-o);t.rotation=-Math.atan2(v,h)-Math.PI/2,(this._symbolType==="line"||this._symbolType==="rect"||this._symbolType==="roundRect")&&(t.__lastT!==void 0&&t.__lastT=0&&!(i[l]<=a);l--);l=Math.min(l,o-2)}else{for(l=s;la);l++);l=Math.min(l-1,o-2)}var f=(a-i[l])/(i[l+1]-i[l]),h=n[l],v=n[l+1];t.x=h[0]*(1-f)+f*v[0],t.y=h[1]*(1-f)+f*v[1];var c=t.__t<1?v[0]-h[0]:h[0]-v[0],p=t.__t<1?v[1]-h[1]:h[1]-v[1];t.rotation=-Math.atan2(p,c)-Math.PI/2,this._lastFrame=l,this._lastFramePercent=a,t.ignore=!1}},e}(oI),r4=function(){function r(){this.polyline=!1,this.curveness=0,this.segs=[]}return r}(),a4=function(r){N(e,r);function e(t){var a=r.call(this,t)||this;return a._off=0,a.hoverDataIdx=-1,a}return e.prototype.reset=function(){this.notClear=!1,this._off=0},e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new r4},e.prototype.buildPath=function(t,a){var n=a.segs,i=a.curveness,o;if(a.polyline)for(o=this._off;o0){t.moveTo(n[o++],n[o++]);for(var l=1;l0){var c=(u+h)/2-(f-v)*i,p=(f+v)/2-(h-u)*i;t.quadraticCurveTo(c,p,h,v)}else t.lineTo(h,v)}this.incremental&&(this._off=o,this.notClear=!0)},e.prototype.findDataIndex=function(t,a){var n=this.shape,i=n.segs,o=n.curveness,s=this.style.lineWidth;if(n.polyline)for(var l=0,u=0;u0)for(var h=i[u++],v=i[u++],c=1;c0){var g=(h+p)/2-(v-d)*o,y=(v+d)/2-(p-h)*o;if(ET(h,v,g,y,p,d,s,t,a))return l}else if(Oa(h,v,p,d,s,t,a))return l;l++}return-1},e.prototype.contain=function(t,a){var n=this.transformCoordToLocal(t,a),i=this.getBoundingRect();if(t=n[0],a=n[1],i.contain(t,a)){var o=this.hoverDataIdx=this.findDataIndex(t,a);return o>=0}return this.hoverDataIdx=-1,!1},e.prototype.getBoundingRect=function(){var t=this._rect;if(!t){for(var a=this.shape,n=a.segs,i=1/0,o=1/0,s=-1/0,l=-1/0,u=0;u0&&(o.dataIndex=l+e.__startIndex)})},r.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},r}(),lI={seriesType:"lines",plan:Eo(),reset:function(r){var e=r.coordinateSystem;if(e){var t=r.get("polyline"),a=r.pipelineContext.large;return{progress:function(n,i){var o=[];if(a){var s=void 0,l=n.end-n.start;if(t){for(var u=0,f=n.start;f0&&(f||u.configLayer(s,{motionBlur:!0,lastFrameAlpha:Math.max(Math.min(l/10+.9,1),0)})),o.updateData(i);var h=t.get("clip",!0)&&Nl(t.coordinateSystem,!1,t);h?this.group.setClipPath(h):this.group.removeClipPath(),this._lastZlevel=s,this._finished=!0},e.prototype.incrementalPrepareRender=function(t,a,n){var i=t.getData(),o=this._updateLineDraw(i,t);o.incrementalPrepareUpdate(i),this._clearLayer(n),this._finished=!1},e.prototype.incrementalRender=function(t,a,n){this._lineDraw.incrementalUpdate(t,a.getData()),this._finished=t.end===a.getData().count()},e.prototype.eachRendered=function(t){this._lineDraw&&this._lineDraw.eachRendered(t)},e.prototype.updateTransform=function(t,a,n){var i=t.getData(),o=t.pipelineContext;if(!this._finished||o.large||o.progressiveRender)return{update:!0};var s=lI.reset(t,a,n);s.progress&&s.progress({start:0,end:i.count(),count:i.count()},i),this._lineDraw.updateLayout(),this._clearLayer(n)},e.prototype._updateLineDraw=function(t,a){var n=this._lineDraw,i=this._showEffect(a),o=!!a.get("polyline"),s=a.pipelineContext,l=s.large;return(!n||i!==this._hasEffet||o!==this._isPolyline||l!==this._isLargeDraw)&&(n&&n.remove(),n=this._lineDraw=l?new n4:new qy(o?i?e4:sI:i?oI:Zy),this._hasEffet=i,this._isPolyline=o,this._isLargeDraw=l),this.group.add(n.group),n},e.prototype._showEffect=function(t){return!!t.get(["effect","show"])},e.prototype._clearLayer=function(t){var a=t.getZr(),n=a.painter.getType()==="svg";!n&&this._lastZlevel!=null&&a.painter.getLayer(this._lastZlevel).clear(!0)},e.prototype.remove=function(t,a){this._lineDraw&&this._lineDraw.remove(),this._lineDraw=null,this._clearLayer(a)},e.prototype.dispose=function(t,a){this.remove(t,a)},e.type="lines",e}(Lt),o4=typeof Uint32Array>"u"?Array:Uint32Array,s4=typeof Float64Array>"u"?Array:Float64Array;function px(r){var e=r.data;e&&e[0]&&e[0][0]&&e[0][0].coord&&(r.data=G(e,function(t){var a=[t[0].coord,t[1].coord],n={coords:a};return t[0].name&&(n.fromName=t[0].name),t[1].name&&(n.toName=t[1].name),hh([n,t[0],t[1]])}))}var l4=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.visualStyleAccessPath="lineStyle",t.visualDrawType="stroke",t}return e.prototype.init=function(t){t.data=t.data||[],px(t);var a=this._processFlatCoordsArray(t.data);this._flatCoords=a.flatCoords,this._flatCoordsOffset=a.flatCoordsOffset,a.flatCoords&&(t.data=new Float32Array(a.count)),r.prototype.init.apply(this,arguments)},e.prototype.mergeOption=function(t){if(px(t),t.data){var a=this._processFlatCoordsArray(t.data);this._flatCoords=a.flatCoords,this._flatCoordsOffset=a.flatCoordsOffset,a.flatCoords&&(t.data=new Float32Array(a.count))}r.prototype.mergeOption.apply(this,arguments)},e.prototype.appendData=function(t){var a=this._processFlatCoordsArray(t.data);a.flatCoords&&(this._flatCoords?(this._flatCoords=lo(this._flatCoords,a.flatCoords),this._flatCoordsOffset=lo(this._flatCoordsOffset,a.flatCoordsOffset)):(this._flatCoords=a.flatCoords,this._flatCoordsOffset=a.flatCoordsOffset),t.data=new Float32Array(a.count)),this.getRawData().appendData(t.data)},e.prototype._getCoordsFromItemModel=function(t){var a=this.getData().getItemModel(t),n=a.option instanceof Array?a.option:a.getShallow("coords");return n},e.prototype.getLineCoordsCount=function(t){return this._flatCoordsOffset?this._flatCoordsOffset[t*2+1]:this._getCoordsFromItemModel(t).length},e.prototype.getLineCoords=function(t,a){if(this._flatCoordsOffset){for(var n=this._flatCoordsOffset[t*2],i=this._flatCoordsOffset[t*2+1],o=0;o ")})},e.prototype.preventIncremental=function(){return!!this.get(["effect","show"])},e.prototype.getProgressive=function(){var t=this.option.progressive;return t??(this.option.large?1e4:this.get("progressive"))},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return t??(this.option.large?2e4:this.get("progressiveThreshold"))},e.prototype.getZLevelKey=function(){var t=this.getModel("effect"),a=t.get("trailLength");return this.getData().count()>this.getProgressiveThreshold()?this.id:t.get("show")&&a>0?a+"":""},e.type="series.lines",e.dependencies=["grid","polar","geo","calendar"],e.defaultOption={coordinateSystem:"geo",z:2,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:"end"},lineStyle:{opacity:.5}},e}(Et);function Ou(r){return r instanceof Array||(r=[r,r]),r}var u4={seriesType:"lines",reset:function(r){var e=Ou(r.get("symbol")),t=Ou(r.get("symbolSize")),a=r.getData();a.setVisual("fromSymbol",e&&e[0]),a.setVisual("toSymbol",e&&e[1]),a.setVisual("fromSymbolSize",t&&t[0]),a.setVisual("toSymbolSize",t&&t[1]);function n(i,o){var s=i.getItemModel(o),l=Ou(s.getShallow("symbol",!0)),u=Ou(s.getShallow("symbolSize",!0));l[0]&&i.setItemVisual(o,"fromSymbol",l[0]),l[1]&&i.setItemVisual(o,"toSymbol",l[1]),u[0]&&i.setItemVisual(o,"fromSymbolSize",u[0]),u[1]&&i.setItemVisual(o,"toSymbolSize",u[1])}return{dataEach:a.hasItemOption?n:null}}};function f4(r){r.registerChartView(i4),r.registerSeriesModel(l4),r.registerLayout(lI),r.registerVisual(u4)}var h4=256,v4=function(){function r(){this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={inRange:null,outOfRange:null};var e=Mr.createCanvas();this.canvas=e}return r.prototype.update=function(e,t,a,n,i,o){var s=this._getBrush(),l=this._getGradient(i,"inRange"),u=this._getGradient(i,"outOfRange"),f=this.pointSize+this.blurSize,h=this.canvas,v=h.getContext("2d"),c=e.length;h.width=t,h.height=a;for(var p=0;p0){var I=o(_)?l:u;_>0&&(_=_*C+T),b[x++]=I[M],b[x++]=I[M+1],b[x++]=I[M+2],b[x++]=I[M+3]*_*256}else x+=4}return v.putImageData(S,0,0),h},r.prototype._getBrush=function(){var e=this._brushCanvas||(this._brushCanvas=Mr.createCanvas()),t=this.pointSize+this.blurSize,a=t*2;e.width=a,e.height=a;var n=e.getContext("2d");return n.clearRect(0,0,a,a),n.shadowOffsetX=a,n.shadowBlur=this.blurSize,n.shadowColor="#000",n.beginPath(),n.arc(-t,t,this.pointSize,0,Math.PI*2,!0),n.closePath(),n.fill(),e},r.prototype._getGradient=function(e,t){for(var a=this._gradientPixels,n=a[t]||(a[t]=new Uint8ClampedArray(256*4)),i=[0,0,0,0],o=0,s=0;s<256;s++)e[t](s/255,!0,i),n[o++]=i[0],n[o++]=i[1],n[o++]=i[2],n[o++]=i[3];return n},r}();function c4(r,e,t){var a=r[1]-r[0];e=G(e,function(o){return{interval:[(o.interval[0]-r[0])/a,(o.interval[1]-r[0])/a]}});var n=e.length,i=0;return function(o){var s;for(s=i;s=0;s--){var l=e[s].interval;if(l[0]<=o&&o<=l[1]){i=s;break}}return s>=0&&s=e[0]&&a<=e[1]}}function dx(r){var e=r.dimensions;return e[0]==="lng"&&e[1]==="lat"}var d4=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){var i;a.eachComponent("visualMap",function(s){s.eachTargetSeries(function(l){l===t&&(i=s)})}),this._progressiveEls=null,this.group.removeAll();var o=t.coordinateSystem;o.type==="cartesian2d"||o.type==="calendar"?this._renderOnCartesianAndCalendar(t,n,0,t.getData().count()):dx(o)&&this._renderOnGeo(o,t,i,n)},e.prototype.incrementalPrepareRender=function(t,a,n){this.group.removeAll()},e.prototype.incrementalRender=function(t,a,n,i){var o=a.coordinateSystem;o&&(dx(o)?this.render(a,n,i):(this._progressiveEls=[],this._renderOnCartesianAndCalendar(a,i,t.start,t.end,!0)))},e.prototype.eachRendered=function(t){on(this._progressiveEls||this.group,t)},e.prototype._renderOnCartesianAndCalendar=function(t,a,n,i,o){var s=t.coordinateSystem,l=Si(s,"cartesian2d"),u,f,h,v;if(l){var c=s.getAxis("x"),p=s.getAxis("y");u=c.getBandWidth()+.5,f=p.getBandWidth()+.5,h=c.scale.getExtent(),v=p.scale.getExtent()}for(var d=this.group,g=t.getData(),y=t.getModel(["emphasis","itemStyle"]).getItemStyle(),m=t.getModel(["blur","itemStyle"]).getItemStyle(),_=t.getModel(["select","itemStyle"]).getItemStyle(),S=t.get(["itemStyle","borderRadius"]),b=oe(t),x=t.getModel("emphasis"),w=x.get("focus"),T=x.get("blurScope"),A=x.get("disabled"),C=l?[g.mapDimension("x"),g.mapDimension("y"),g.mapDimension("value")]:[g.mapDimension("time"),g.mapDimension("value")],M=n;Mh[1]||Rv[1])continue;var E=s.dataToPoint([P,R]);I=new xt({shape:{x:E[0]-u/2,y:E[1]-f/2,width:u,height:f},style:L})}else{if(isNaN(g.get(C[1],M)))continue;I=new xt({z2:1,shape:s.dataToRect([g.get(C[0],M)]).contentShape,style:L})}if(g.hasItemOption){var O=g.getItemModel(M),k=O.getModel("emphasis");y=k.getModel("itemStyle").getItemStyle(),m=O.getModel(["blur","itemStyle"]).getItemStyle(),_=O.getModel(["select","itemStyle"]).getItemStyle(),S=O.get(["itemStyle","borderRadius"]),w=k.get("focus"),T=k.get("blurScope"),A=k.get("disabled"),b=oe(O)}I.shape.r=S;var B=t.getRawValue(M),F="-";B&&B[2]!=null&&(F=B[2]+""),pe(I,b,{labelFetcher:t,labelDataIndex:M,defaultOpacity:L.opacity,defaultText:F}),I.ensureState("emphasis").style=y,I.ensureState("blur").style=m,I.ensureState("select").style=_,Wt(I,w,T,A),I.incremental=o,o&&(I.states.emphasis.hoverLayer=!0),d.add(I),g.setItemGraphicEl(M,I),this._progressiveEls&&this._progressiveEls.push(I)}},e.prototype._renderOnGeo=function(t,a,n,i){var o=n.targetVisuals.inRange,s=n.targetVisuals.outOfRange,l=a.getData(),u=this._hmLayer||this._hmLayer||new v4;u.blurSize=a.get("blurSize"),u.pointSize=a.get("pointSize"),u.minOpacity=a.get("minOpacity"),u.maxOpacity=a.get("maxOpacity");var f=t.getViewRect().clone(),h=t.getRoamTransform();f.applyTransform(h);var v=Math.max(f.x,0),c=Math.max(f.y,0),p=Math.min(f.width+f.x,i.getWidth()),d=Math.min(f.height+f.y,i.getHeight()),g=p-v,y=d-c,m=[l.mapDimension("lng"),l.mapDimension("lat"),l.mapDimension("value")],_=l.mapArray(m,function(w,T,A){var C=t.dataToPoint([w,T]);return C[0]-=v,C[1]-=c,C.push(A),C}),S=n.getExtent(),b=n.type==="visualMap.continuous"?p4(S,n.option.range):c4(S,n.getPieceList(),n.option.selected);u.update(_,g,y,o.color.getNormalizer(),{inRange:o.color.getColorMapper(),outOfRange:s.color.getColorMapper()},b);var x=new le({style:{width:g,height:y,x:v,y:c,image:u.canvas},silent:!0});this.group.add(x)},e.type="heatmap",e}(Lt),g4=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.getInitialData=function(t,a){return ea(null,this,{generateCoord:"value"})},e.prototype.preventIncremental=function(){var t=Ro.get(this.get("coordinateSystem"));if(t&&t.dimensions)return t.dimensions[0]==="lng"&&t.dimensions[1]==="lat"},e.type="series.heatmap",e.dependencies=["grid","geo","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",z:2,geoIndex:0,blurSize:30,pointSize:20,maxOpacity:1,minOpacity:0,select:{itemStyle:{borderColor:"#212121"}}},e}(Et);function y4(r){r.registerChartView(d4),r.registerSeriesModel(g4)}var m4=["itemStyle","borderWidth"],gx=[{xy:"x",wh:"width",index:0,posDesc:["left","right"]},{xy:"y",wh:"height",index:1,posDesc:["top","bottom"]}],qc=new Qr,_4=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){var i=this.group,o=t.getData(),s=this._data,l=t.coordinateSystem,u=l.getBaseAxis(),f=u.isHorizontal(),h=l.master.getRect(),v={ecSize:{width:n.getWidth(),height:n.getHeight()},seriesModel:t,coordSys:l,coordSysExtent:[[h.x,h.x+h.width],[h.y,h.y+h.height]],isHorizontal:f,valueDim:gx[+f],categoryDim:gx[1-+f]};o.diff(s).add(function(p){if(o.hasValue(p)){var d=mx(o,p),g=yx(o,p,d,v),y=_x(o,v,g);o.setItemGraphicEl(p,y),i.add(y),xx(y,v,g)}}).update(function(p,d){var g=s.getItemGraphicEl(d);if(!o.hasValue(p)){i.remove(g);return}var y=mx(o,p),m=yx(o,p,y,v),_=pI(o,m);g&&_!==g.__pictorialShapeStr&&(i.remove(g),o.setItemGraphicEl(p,null),g=null),g?C4(g,v,m):g=_x(o,v,m,!0),o.setItemGraphicEl(p,g),g.__pictorialSymbolMeta=m,i.add(g),xx(g,v,m)}).remove(function(p){var d=s.getItemGraphicEl(p);d&&Sx(s,p,d.__pictorialSymbolMeta.animationModel,d)}).execute();var c=t.get("clip",!0)?Nl(t.coordinateSystem,!1,t):null;return c?i.setClipPath(c):i.removeClipPath(),this._data=o,this.group},e.prototype.remove=function(t,a){var n=this.group,i=this._data;t.get("animation")?i&&i.eachItemGraphicEl(function(o){Sx(i,nt(o).dataIndex,t,o)}):n.removeAll()},e.type="pictorialBar",e}(Lt);function yx(r,e,t,a){var n=r.getItemLayout(e),i=t.get("symbolRepeat"),o=t.get("symbolClip"),s=t.get("symbolPosition")||"start",l=t.get("symbolRotate"),u=(l||0)*Math.PI/180||0,f=t.get("symbolPatternSize")||2,h=t.isAnimationEnabled(),v={dataIndex:e,layout:n,itemModel:t,symbolType:r.getItemVisual(e,"symbol")||"circle",style:r.getItemVisual(e,"style"),symbolClip:o,symbolRepeat:i,symbolRepeatDirection:t.get("symbolRepeatDirection"),symbolPatternSize:f,rotation:u,animationModel:h?t:null,hoverScale:h&&t.get(["emphasis","scale"]),z2:t.getShallow("z",!0)||0};S4(t,i,n,a,v),x4(r,e,n,i,o,v.boundingLength,v.pxSign,f,a,v),b4(t,v.symbolScale,u,a,v);var c=v.symbolSize,p=_i(t.get("symbolOffset"),c);return w4(t,c,n,i,o,p,s,v.valueLineWidth,v.boundingLength,v.repeatCutLength,a,v),v}function S4(r,e,t,a,n){var i=a.valueDim,o=r.get("symbolBoundingData"),s=a.coordSys.getOtherAxis(a.coordSys.getBaseAxis()),l=s.toGlobalCoord(s.dataToCoord(0)),u=1-+(t[i.wh]<=0),f;if(z(o)){var h=[Kc(s,o[0])-l,Kc(s,o[1])-l];h[1]=0?1:-1:f>0?1:-1}function Kc(r,e){return r.toGlobalCoord(r.dataToCoord(r.scale.parse(e)))}function x4(r,e,t,a,n,i,o,s,l,u){var f=l.valueDim,h=l.categoryDim,v=Math.abs(t[h.wh]),c=r.getItemVisual(e,"symbolSize"),p;z(c)?p=c.slice():c==null?p=["100%","100%"]:p=[c,c],p[h.index]=W(p[h.index],v),p[f.index]=W(p[f.index],a?v:Math.abs(i)),u.symbolSize=p;var d=u.symbolScale=[p[0]/s,p[1]/s];d[f.index]*=(l.isHorizontal?-1:1)*o}function b4(r,e,t,a,n){var i=r.get(m4)||0;i&&(qc.attr({scaleX:e[0],scaleY:e[1],rotation:t}),qc.updateTransform(),i/=qc.getLineScale(),i*=e[a.valueDim.index]),n.valueLineWidth=i||0}function w4(r,e,t,a,n,i,o,s,l,u,f,h){var v=f.categoryDim,c=f.valueDim,p=h.pxSign,d=Math.max(e[c.index]+s,0),g=d;if(a){var y=Math.abs(l),m=ae(r.get("symbolMargin"),"15%")+"",_=!1;m.lastIndexOf("!")===m.length-1&&(_=!0,m=m.slice(0,m.length-1));var S=W(m,e[c.index]),b=Math.max(d+S*2,0),x=_?0:S*2,w=Cg(a),T=w?a:bx((y+x)/b),A=y-T*d;S=A/2/(_?T:Math.max(T-1,1)),b=d+S*2,x=_?0:S*2,!w&&a!=="fixed"&&(T=u?bx((Math.abs(u)+x)/b):0),g=T*b-x,h.repeatTimes=T,h.symbolMargin=S}var C=p*(g/2),M=h.pathPosition=[];M[v.index]=t[v.wh]/2,M[c.index]=o==="start"?C:o==="end"?l-C:l/2,i&&(M[0]+=i[0],M[1]+=i[1]);var I=h.bundlePosition=[];I[v.index]=t[v.xy],I[c.index]=t[c.xy];var L=h.barRectShape=V({},t);L[c.wh]=p*Math.max(Math.abs(t[c.wh]),Math.abs(M[c.index]+C)),L[v.wh]=t[v.wh];var P=h.clipShape={};P[v.xy]=-t[v.xy],P[v.wh]=f.ecSize[v.wh],P[c.xy]=0,P[c.wh]=t[c.wh]}function uI(r){var e=r.symbolPatternSize,t=qt(r.symbolType,-e/2,-e/2,e,e);return t.attr({culling:!0}),t.type!=="image"&&t.setStyle({strokeNoScale:!0}),t}function fI(r,e,t,a){var n=r.__pictorialBundle,i=t.symbolSize,o=t.valueLineWidth,s=t.pathPosition,l=e.valueDim,u=t.repeatTimes||0,f=0,h=i[e.valueDim.index]+o+t.symbolMargin*2;for(im(r,function(d){d.__pictorialAnimationIndex=f,d.__pictorialRepeatTimes=u,f0:y<0)&&(m=u-1-d),g[l.index]=h*(m-u/2+.5)+s[l.index],{x:g[0],y:g[1],scaleX:t.symbolScale[0],scaleY:t.symbolScale[1],rotation:t.rotation}}}function hI(r,e,t,a){var n=r.__pictorialBundle,i=r.__pictorialMainPath;i?oo(i,null,{x:t.pathPosition[0],y:t.pathPosition[1],scaleX:t.symbolScale[0],scaleY:t.symbolScale[1],rotation:t.rotation},t,a):(i=r.__pictorialMainPath=uI(t),n.add(i),oo(i,{x:t.pathPosition[0],y:t.pathPosition[1],scaleX:0,scaleY:0,rotation:t.rotation},{scaleX:t.symbolScale[0],scaleY:t.symbolScale[1]},t,a))}function vI(r,e,t){var a=V({},e.barRectShape),n=r.__pictorialBarRect;n?oo(n,null,{shape:a},e,t):(n=r.__pictorialBarRect=new xt({z2:2,shape:a,silent:!0,style:{stroke:"transparent",fill:"transparent",lineWidth:0}}),n.disableMorphing=!0,r.add(n))}function cI(r,e,t,a){if(t.symbolClip){var n=r.__pictorialClipPath,i=V({},t.clipShape),o=e.valueDim,s=t.animationModel,l=t.dataIndex;if(n)Tt(n,{shape:i},s,l);else{i[o.wh]=0,n=new xt({shape:i}),r.__pictorialBundle.setClipPath(n),r.__pictorialClipPath=n;var u={};u[o.wh]=t.clipShape[o.wh],yi[a?"updateProps":"initProps"](n,{shape:u},s,l)}}}function mx(r,e){var t=r.getItemModel(e);return t.getAnimationDelayParams=T4,t.isAnimationEnabled=A4,t}function T4(r){return{index:r.__pictorialAnimationIndex,count:r.__pictorialRepeatTimes}}function A4(){return this.parentModel.isAnimationEnabled()&&!!this.getShallow("animation")}function _x(r,e,t,a){var n=new at,i=new at;return n.add(i),n.__pictorialBundle=i,i.x=t.bundlePosition[0],i.y=t.bundlePosition[1],t.symbolRepeat?fI(n,e,t):hI(n,e,t),vI(n,t,a),cI(n,e,t,a),n.__pictorialShapeStr=pI(r,t),n.__pictorialSymbolMeta=t,n}function C4(r,e,t){var a=t.animationModel,n=t.dataIndex,i=r.__pictorialBundle;Tt(i,{x:t.bundlePosition[0],y:t.bundlePosition[1]},a,n),t.symbolRepeat?fI(r,e,t,!0):hI(r,e,t,!0),vI(r,t,!0),cI(r,e,t,!0)}function Sx(r,e,t,a){var n=a.__pictorialBarRect;n&&n.removeTextContent();var i=[];im(a,function(o){i.push(o)}),a.__pictorialMainPath&&i.push(a.__pictorialMainPath),a.__pictorialClipPath&&(t=null),D(i,function(o){Qa(o,{scaleX:0,scaleY:0},t,e,function(){a.parent&&a.parent.remove(a)})}),r.setItemGraphicEl(e,null)}function pI(r,e){return[r.getItemVisual(e.dataIndex,"symbol")||"none",!!e.symbolRepeat,!!e.symbolClip].join(":")}function im(r,e,t){D(r.__pictorialBundle.children(),function(a){a!==r.__pictorialBarRect&&e.call(t,a)})}function oo(r,e,t,a,n,i){e&&r.attr(e),a.symbolClip&&!n?t&&r.attr(t):t&&yi[n?"updateProps":"initProps"](r,t,a.animationModel,a.dataIndex,i)}function xx(r,e,t){var a=t.dataIndex,n=t.itemModel,i=n.getModel("emphasis"),o=i.getModel("itemStyle").getItemStyle(),s=n.getModel(["blur","itemStyle"]).getItemStyle(),l=n.getModel(["select","itemStyle"]).getItemStyle(),u=n.getShallow("cursor"),f=i.get("focus"),h=i.get("blurScope"),v=i.get("scale");im(r,function(d){if(d instanceof le){var g=d.style;d.useStyle(V({image:g.image,x:g.x,y:g.y,width:g.width,height:g.height},t.style))}else d.useStyle(t.style);var y=d.ensureState("emphasis");y.style=o,v&&(y.scaleX=d.scaleX*1.1,y.scaleY=d.scaleY*1.1),d.ensureState("blur").style=s,d.ensureState("select").style=l,u&&(d.cursor=u),d.z2=t.z2});var c=e.valueDim.posDesc[+(t.boundingLength>0)],p=r.__pictorialBarRect;p.ignoreClip=!0,pe(p,oe(n),{labelFetcher:e.seriesModel,labelDataIndex:a,defaultText:po(e.seriesModel.getData(),a),inheritColor:t.style.fill,defaultOpacity:t.style.opacity,defaultOutsidePosition:c}),Wt(r,f,h,i.get("disabled"))}function bx(r){var e=Math.round(r);return Math.abs(r-e)<1e-4?e:Math.ceil(r)}var D4=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.hasSymbolVisual=!0,t.defaultSymbol="roundRect",t}return e.prototype.getInitialData=function(t){return t.stack=null,r.prototype.getInitialData.apply(this,arguments)},e.type="series.pictorialBar",e.dependencies=["grid"],e.defaultOption=sn(fl.defaultOption,{symbol:"circle",symbolSize:null,symbolRotate:null,symbolPosition:null,symbolOffset:null,symbolMargin:null,symbolRepeat:!1,symbolRepeatDirection:"end",symbolClip:!1,symbolBoundingData:null,symbolPatternSize:400,barGap:"-100%",clip:!1,progressive:0,emphasis:{scale:!1},select:{itemStyle:{borderColor:"#212121"}}}),e}(fl);function M4(r){r.registerChartView(_4),r.registerSeriesModel(D4),r.registerLayout(r.PRIORITY.VISUAL.LAYOUT,lt(jC,"pictorialBar")),r.registerLayout(r.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,JC("pictorialBar"))}var I4=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t._layers=[],t}return e.prototype.render=function(t,a,n){var i=t.getData(),o=this,s=this.group,l=t.getLayerSeries(),u=i.getLayout("layoutInfo"),f=u.rect,h=u.boundaryGap;s.x=0,s.y=f.y+h[0];function v(g){return g.name}var c=new ma(this._layersSeries||[],l,v,v),p=[];c.add(X(d,this,"add")).update(X(d,this,"update")).remove(X(d,this,"remove")).execute();function d(g,y,m){var _=o._layers;if(g==="remove"){s.remove(_[y]);return}for(var S=[],b=[],x,w=l[y].indices,T=0;Ti&&(i=s),a.push(s)}for(var u=0;ui&&(i=h)}return{y0:n,max:i}}function k4(r){r.registerChartView(I4),r.registerSeriesModel(P4),r.registerLayout(R4),r.registerProcessor(Vl("themeRiver"))}var O4=2,N4=4,Ax=function(r){N(e,r);function e(t,a,n,i){var o=r.call(this)||this;o.z2=O4,o.textConfig={inside:!0},nt(o).seriesIndex=a.seriesIndex;var s=new St({z2:N4,silent:t.getModel().get(["label","silent"])});return o.setTextContent(s),o.updateData(!0,t,a,n,i),o}return e.prototype.updateData=function(t,a,n,i,o){this.node=a,a.piece=this,n=n||this._seriesModel,i=i||this._ecModel;var s=this;nt(s).dataIndex=a.dataIndex;var l=a.getModel(),u=l.getModel("emphasis"),f=a.getLayout(),h=V({},f);h.label=null;var v=a.getVisual("style");v.lineJoin="bevel";var c=a.getVisual("decal");c&&(v.decal=co(c,o));var p=jn(l.getModel("itemStyle"),h,!0);V(h,p),D(ke,function(m){var _=s.ensureState(m),S=l.getModel([m,"itemStyle"]);_.style=S.getItemStyle();var b=jn(S,h);b&&(_.shape=b)}),t?(s.setShape(h),s.shape.r=f.r0,Gt(s,{shape:{r:f.r}},n,a.dataIndex)):(Tt(s,{shape:h},n),Pr(s)),s.useStyle(v),this._updateLabel(n);var d=l.getShallow("cursor");d&&s.attr("cursor",d),this._seriesModel=n||this._seriesModel,this._ecModel=i||this._ecModel;var g=u.get("focus"),y=g==="relative"?lo(a.getAncestorsIndices(),a.getDescendantIndices()):g==="ancestor"?a.getAncestorsIndices():g==="descendant"?a.getDescendantIndices():g;Wt(this,y,u.get("blurScope"),u.get("disabled"))},e.prototype._updateLabel=function(t){var a=this,n=this.node.getModel(),i=n.getModel("label"),o=this.node.getLayout(),s=o.endAngle-o.startAngle,l=(o.startAngle+o.endAngle)/2,u=Math.cos(l),f=Math.sin(l),h=this,v=h.getTextContent(),c=this.node.dataIndex,p=i.get("minAngle")/180*Math.PI,d=i.get("show")&&!(p!=null&&Math.abs(s)P&&!uo(E-P)&&E0?(o.virtualPiece?o.virtualPiece.updateData(!1,m,t,a,n):(o.virtualPiece=new Ax(m,t,a,n),f.add(o.virtualPiece)),_.piece.off("click"),o.virtualPiece.on("click",function(S){o._rootToNode(_.parentNode)})):o.virtualPiece&&(f.remove(o.virtualPiece),o.virtualPiece=null)}},e.prototype._initEvents=function(){var t=this;this.group.off("click"),this.group.on("click",function(a){var n=!1,i=t.seriesModel.getViewRoot();i.eachNode(function(o){if(!n&&o.piece&&o.piece===a.target){var s=o.getModel().get("nodeClick");if(s==="rootToNode")t._rootToNode(o);else if(s==="link"){var l=o.getModel(),u=l.get("link");if(u){var f=l.get("target",!0)||"_blank";If(u,f)}}n=!0}})})},e.prototype._rootToNode=function(t){t!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:Xd,from:this.uid,seriesId:this.seriesModel.id,targetNode:t})},e.prototype.containPoint=function(t,a){var n=a.getData(),i=n.getItemLayout(0);if(i){var o=t[0]-i.cx,s=t[1]-i.cy,l=Math.sqrt(o*o+s*s);return l<=i.r&&l>=i.r0}},e.type="sunburst",e}(Lt),G4=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.ignoreStyleOnData=!0,t}return e.prototype.getInitialData=function(t,a){var n={name:t.name,children:t.data};dI(n);var i=this._levelModels=G(t.levels||[],function(l){return new Ct(l,this,a)},this),o=Hy.createTree(n,this,s);function s(l){l.wrapMethod("getItemModel",function(u,f){var h=o.getNodeByDataIndex(f),v=i[h.depth];return v&&(u.parentModel=v),u})}return o.data},e.prototype.optionUpdated=function(){this.resetViewRoot()},e.prototype.getDataParams=function(t){var a=r.prototype.getDataParams.apply(this,arguments),n=this.getData().tree.getNodeByDataIndex(t);return a.treePathInfo=Zh(n,this),a},e.prototype.getLevelModel=function(t){return this._levelModels&&this._levelModels[t.depth]},e.prototype.getViewRoot=function(){return this._viewRoot},e.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var a=this.getRawData().tree.root;(!t||t!==a&&!a.contains(t))&&(this._viewRoot=a)},e.prototype.enableAriaDecal=function(){SM(this)},e.type="series.sunburst",e.defaultOption={z:2,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,stillShowZeroSum:!0,nodeClick:"rootToNode",renderLabelForZeroData:!1,label:{rotate:"radial",show:!0,opacity:1,align:"center",position:"inside",distance:5,silent:!0},itemStyle:{borderWidth:1,borderColor:"white",borderType:"solid",shadowBlur:0,shadowColor:"rgba(0, 0, 0, 0.2)",shadowOffsetX:0,shadowOffsetY:0,opacity:1},emphasis:{focus:"descendant"},blur:{itemStyle:{opacity:.2},label:{opacity:.1}},animationType:"expansion",animationDuration:1e3,animationDurationUpdate:500,data:[],sort:"desc"},e}(Et);function dI(r){var e=0;D(r.children,function(a){dI(a);var n=a.value;z(n)&&(n=n[0]),e+=n});var t=r.value;z(t)&&(t=t[0]),(t==null||isNaN(t))&&(t=e),t<0&&(t=0),z(r.value)?r.value[0]=t:r.value=t}var Dx=Math.PI/180;function F4(r,e,t){e.eachSeriesByType(r,function(a){var n=a.get("center"),i=a.get("radius");z(i)||(i=[0,i]),z(n)||(n=[n,n]);var o=t.getWidth(),s=t.getHeight(),l=Math.min(o,s),u=W(n[0],o),f=W(n[1],s),h=W(i[0],l/2),v=W(i[1],l/2),c=-a.get("startAngle")*Dx,p=a.get("minAngle")*Dx,d=a.getData().tree.root,g=a.getViewRoot(),y=g.depth,m=a.get("sort");m!=null&&gI(g,m);var _=0;D(g.children,function(E){!isNaN(E.getValue())&&_++});var S=g.getValue(),b=Math.PI/(S||_)*2,x=g.depth>0,w=g.height-(x?-1:1),T=(v-h)/(w||1),A=a.get("clockwise"),C=a.get("stillShowZeroSum"),M=A?1:-1,I=function(E,O){if(E){var k=O;if(E!==d){var B=E.getValue(),F=S===0&&C?b:B*b;F1;)o=o.parentNode;var s=n.getColorFromPalette(o.name||o.dataIndex+"",e);return a.depth>1&&Y(s)&&(s=yf(s,(a.depth-1)/(i-1)*.5)),s}r.eachSeriesByType("sunburst",function(a){var n=a.getData(),i=n.tree;i.eachNode(function(o){var s=o.getModel(),l=s.getModel("itemStyle").getItemStyle();l.fill||(l.fill=t(o,a,i.root.height));var u=n.ensureUniqueItemVisual(o.dataIndex,"style");V(u,l)})})}function U4(r){r.registerChartView(z4),r.registerSeriesModel(G4),r.registerLayout(lt(F4,"sunburst")),r.registerProcessor(lt(Vl,"sunburst")),r.registerVisual(W4),V4(r)}var Mx={color:"fill",borderColor:"stroke"},Y4={symbol:1,symbolSize:1,symbolKeepAspect:1,legendIcon:1,visualMeta:1,liftZ:1,decal:1},ca=bt(),X4=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.optionUpdated=function(){this.currentZLevel=this.get("zlevel",!0),this.currentZ=this.get("z",!0)},e.prototype.getInitialData=function(t,a){return ea(null,this)},e.prototype.getDataParams=function(t,a,n){var i=r.prototype.getDataParams.call(this,t,a);return n&&(i.info=ca(n).info),i},e.type="series.custom",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",z:2,legendHoverLink:!0,clip:!1},e}(Et);function $4(r,e){return e=e||[0,0],G(["x","y"],function(t,a){var n=this.getAxis(t),i=e[a],o=r[a]/2;return n.type==="category"?n.getBandWidth():Math.abs(n.dataToCoord(i-o)-n.dataToCoord(i+o))},this)}function Z4(r){var e=r.master.getRect();return{coordSys:{type:"cartesian2d",x:e.x,y:e.y,width:e.width,height:e.height},api:{coord:function(t){return r.dataToPoint(t)},size:X($4,r)}}}function q4(r,e){return e=e||[0,0],G([0,1],function(t){var a=e[t],n=r[t]/2,i=[],o=[];return i[t]=a-n,o[t]=a+n,i[1-t]=o[1-t]=e[1-t],Math.abs(this.dataToPoint(i)[t]-this.dataToPoint(o)[t])},this)}function K4(r){var e=r.getBoundingRect();return{coordSys:{type:"geo",x:e.x,y:e.y,width:e.width,height:e.height,zoom:r.getZoom()},api:{coord:function(t){return r.dataToPoint(t)},size:X(q4,r)}}}function j4(r,e){var t=this.getAxis(),a=e instanceof Array?e[0]:e,n=(r instanceof Array?r[0]:r)/2;return t.type==="category"?t.getBandWidth():Math.abs(t.dataToCoord(a-n)-t.dataToCoord(a+n))}function J4(r){var e=r.getRect();return{coordSys:{type:"singleAxis",x:e.x,y:e.y,width:e.width,height:e.height},api:{coord:function(t){return r.dataToPoint(t)},size:X(j4,r)}}}function Q4(r,e){return e=e||[0,0],G(["Radius","Angle"],function(t,a){var n="get"+t+"Axis",i=this[n](),o=e[a],s=r[a]/2,l=i.type==="category"?i.getBandWidth():Math.abs(i.dataToCoord(o-s)-i.dataToCoord(o+s));return t==="Angle"&&(l=l*Math.PI/180),l},this)}function tW(r){var e=r.getRadiusAxis(),t=r.getAngleAxis(),a=e.getExtent();return a[0]>a[1]&&a.reverse(),{coordSys:{type:"polar",cx:r.cx,cy:r.cy,r:a[1],r0:a[0]},api:{coord:function(n){var i=e.dataToRadius(n[0]),o=t.dataToAngle(n[1]),s=r.coordToPoint([i,o]);return s.push(i,o*Math.PI/180),s},size:X(Q4,r)}}}function eW(r){var e=r.getRect(),t=r.getRangeInfo();return{coordSys:{type:"calendar",x:e.x,y:e.y,width:e.width,height:e.height,cellWidth:r.getCellWidth(),cellHeight:r.getCellHeight(),rangeInfo:{start:t.start,end:t.end,weeks:t.weeks,dayCount:t.allDay}},api:{coord:function(a,n){return r.dataToPoint(a,n)}}}}function yI(r,e,t,a){return r&&(r.legacy||r.legacy!==!1&&!t&&!a&&e!=="tspan"&&(e==="text"||$(r,"text")))}function mI(r,e,t){var a=r,n,i,o;if(e==="text")o=a;else{o={},$(a,"text")&&(o.text=a.text),$(a,"rich")&&(o.rich=a.rich),$(a,"textFill")&&(o.fill=a.textFill),$(a,"textStroke")&&(o.stroke=a.textStroke),$(a,"fontFamily")&&(o.fontFamily=a.fontFamily),$(a,"fontSize")&&(o.fontSize=a.fontSize),$(a,"fontStyle")&&(o.fontStyle=a.fontStyle),$(a,"fontWeight")&&(o.fontWeight=a.fontWeight),i={type:"text",style:o,silent:!0},n={};var s=$(a,"textPosition");t?n.position=s?a.textPosition:"inside":s&&(n.position=a.textPosition),$(a,"textPosition")&&(n.position=a.textPosition),$(a,"textOffset")&&(n.offset=a.textOffset),$(a,"textRotation")&&(n.rotation=a.textRotation),$(a,"textDistance")&&(n.distance=a.textDistance)}return Ix(o,r),D(o.rich,function(l){Ix(l,l)}),{textConfig:n,textContent:i}}function Ix(r,e){e&&(e.font=e.textFont||e.font,$(e,"textStrokeWidth")&&(r.lineWidth=e.textStrokeWidth),$(e,"textAlign")&&(r.align=e.textAlign),$(e,"textVerticalAlign")&&(r.verticalAlign=e.textVerticalAlign),$(e,"textLineHeight")&&(r.lineHeight=e.textLineHeight),$(e,"textWidth")&&(r.width=e.textWidth),$(e,"textHeight")&&(r.height=e.textHeight),$(e,"textBackgroundColor")&&(r.backgroundColor=e.textBackgroundColor),$(e,"textPadding")&&(r.padding=e.textPadding),$(e,"textBorderColor")&&(r.borderColor=e.textBorderColor),$(e,"textBorderWidth")&&(r.borderWidth=e.textBorderWidth),$(e,"textBorderRadius")&&(r.borderRadius=e.textBorderRadius),$(e,"textBoxShadowColor")&&(r.shadowColor=e.textBoxShadowColor),$(e,"textBoxShadowBlur")&&(r.shadowBlur=e.textBoxShadowBlur),$(e,"textBoxShadowOffsetX")&&(r.shadowOffsetX=e.textBoxShadowOffsetX),$(e,"textBoxShadowOffsetY")&&(r.shadowOffsetY=e.textBoxShadowOffsetY))}function Lx(r,e,t){var a=r;a.textPosition=a.textPosition||t.position||"inside",t.offset!=null&&(a.textOffset=t.offset),t.rotation!=null&&(a.textRotation=t.rotation),t.distance!=null&&(a.textDistance=t.distance);var n=a.textPosition.indexOf("inside")>=0,i=r.fill||"#000";Px(a,e);var o=a.textFill==null;return n?o&&(a.textFill=t.insideFill||"#fff",!a.textStroke&&t.insideStroke&&(a.textStroke=t.insideStroke),!a.textStroke&&(a.textStroke=i),a.textStrokeWidth==null&&(a.textStrokeWidth=2)):(o&&(a.textFill=r.fill||t.outsideFill||"#000"),!a.textStroke&&t.outsideStroke&&(a.textStroke=t.outsideStroke)),a.text=e.text,a.rich=e.rich,D(e.rich,function(s){Px(s,s)}),a}function Px(r,e){e&&($(e,"fill")&&(r.textFill=e.fill),$(e,"stroke")&&(r.textStroke=e.fill),$(e,"lineWidth")&&(r.textStrokeWidth=e.lineWidth),$(e,"font")&&(r.font=e.font),$(e,"fontStyle")&&(r.fontStyle=e.fontStyle),$(e,"fontWeight")&&(r.fontWeight=e.fontWeight),$(e,"fontSize")&&(r.fontSize=e.fontSize),$(e,"fontFamily")&&(r.fontFamily=e.fontFamily),$(e,"align")&&(r.textAlign=e.align),$(e,"verticalAlign")&&(r.textVerticalAlign=e.verticalAlign),$(e,"lineHeight")&&(r.textLineHeight=e.lineHeight),$(e,"width")&&(r.textWidth=e.width),$(e,"height")&&(r.textHeight=e.height),$(e,"backgroundColor")&&(r.textBackgroundColor=e.backgroundColor),$(e,"padding")&&(r.textPadding=e.padding),$(e,"borderColor")&&(r.textBorderColor=e.borderColor),$(e,"borderWidth")&&(r.textBorderWidth=e.borderWidth),$(e,"borderRadius")&&(r.textBorderRadius=e.borderRadius),$(e,"shadowColor")&&(r.textBoxShadowColor=e.shadowColor),$(e,"shadowBlur")&&(r.textBoxShadowBlur=e.shadowBlur),$(e,"shadowOffsetX")&&(r.textBoxShadowOffsetX=e.shadowOffsetX),$(e,"shadowOffsetY")&&(r.textBoxShadowOffsetY=e.shadowOffsetY),$(e,"textShadowColor")&&(r.textShadowColor=e.textShadowColor),$(e,"textShadowBlur")&&(r.textShadowBlur=e.textShadowBlur),$(e,"textShadowOffsetX")&&(r.textShadowOffsetX=e.textShadowOffsetX),$(e,"textShadowOffsetY")&&(r.textShadowOffsetY=e.textShadowOffsetY))}var _I={position:["x","y"],scale:["scaleX","scaleY"],origin:["originX","originY"]},Rx=_t(_I);ur(Kr,function(r,e){return r[e]=1,r},{});Kr.join(", ");var jf=["","style","shape","extra"],mo=bt();function om(r,e,t,a,n){var i=r+"Animation",o=Co(r,a,n)||{},s=mo(e).userDuring;return o.duration>0&&(o.during=s?X(oW,{el:e,userDuring:s}):null,o.setToFinal=!0,o.scope=r),V(o,t[i]),o}function sf(r,e,t,a){a=a||{};var n=a.dataIndex,i=a.isInit,o=a.clearStyle,s=t.isAnimationEnabled(),l=mo(r),u=e.style;l.userDuring=e.during;var f={},h={};if(lW(r,e,h),kx("shape",e,h),kx("extra",e,h),!i&&s&&(sW(r,e,f),Ex("shape",r,e,f),Ex("extra",r,e,f),uW(r,e,u,f)),h.style=u,rW(r,h,o),nW(r,e),s)if(i){var v={};D(jf,function(p){var d=p?e[p]:e;d&&d.enterFrom&&(p&&(v[p]=v[p]||{}),V(p?v[p]:v,d.enterFrom))});var c=om("enter",r,e,t,n);c.duration>0&&r.animateFrom(v,c)}else aW(r,e,n||0,t,f);SI(r,e),u?r.dirty():r.markRedraw()}function SI(r,e){for(var t=mo(r).leaveToProps,a=0;a0&&r.animateFrom(n,i)}}function nW(r,e){$(e,"silent")&&(r.silent=e.silent),$(e,"ignore")&&(r.ignore=e.ignore),r instanceof fr&&$(e,"invisible")&&(r.invisible=e.invisible),r instanceof mt&&$(e,"autoBatch")&&(r.autoBatch=e.autoBatch)}var Vr={},iW={setTransform:function(r,e){return Vr.el[r]=e,this},getTransform:function(r){return Vr.el[r]},setShape:function(r,e){var t=Vr.el,a=t.shape||(t.shape={});return a[r]=e,t.dirtyShape&&t.dirtyShape(),this},getShape:function(r){var e=Vr.el.shape;if(e)return e[r]},setStyle:function(r,e){var t=Vr.el,a=t.style;return a&&(a[r]=e,t.dirtyStyle&&t.dirtyStyle()),this},getStyle:function(r){var e=Vr.el.style;if(e)return e[r]},setExtra:function(r,e){var t=Vr.el.extra||(Vr.el.extra={});return t[r]=e,this},getExtra:function(r){var e=Vr.el.extra;if(e)return e[r]}};function oW(){var r=this,e=r.el;if(e){var t=mo(e).userDuring,a=r.userDuring;if(t!==a){r.el=r.userDuring=null;return}Vr.el=e,a(iW)}}function Ex(r,e,t,a){var n=t[r];if(n){var i=e[r],o;if(i){var s=t.transition,l=n.transition;if(l)if(!o&&(o=a[r]={}),ni(l))V(o,i);else for(var u=Rt(l),f=0;f=0){!o&&(o=a[r]={});for(var c=_t(i),f=0;f=0)){var v=r.getAnimationStyleProps(),c=v?v.style:null;if(c){!i&&(i=a.style={});for(var p=_t(t),u=0;u=0?e.getStore().get(O,R):void 0}var k=e.get(E.name,R),B=E&&E.ordinalMeta;return B?B.categories[k]:k}function x(P,R){R==null&&(R=u);var E=e.getItemVisual(R,"style"),O=E&&E.fill,k=E&&E.opacity,B=m(R,Ha).getItemStyle();O!=null&&(B.fill=O),k!=null&&(B.opacity=k);var F={inheritColor:Y(O)?O:"#000"},H=_(R,Ha),U=Nt(H,null,F,!1,!0);U.text=H.getShallow("show")?st(r.getFormattedLabel(R,Ha),po(e,R)):null;var j=Df(H,F,!1);return A(P,B),B=Lx(B,U,j),P&&T(B,P),B.legacy=!0,B}function w(P,R){R==null&&(R=u);var E=m(R,pa).getItemStyle(),O=_(R,pa),k=Nt(O,null,null,!0,!0);k.text=O.getShallow("show")?Tr(r.getFormattedLabel(R,pa),r.getFormattedLabel(R,Ha),po(e,R)):null;var B=Df(O,null,!0);return A(P,E),E=Lx(E,k,B),P&&T(E,P),E.legacy=!0,E}function T(P,R){for(var E in R)$(R,E)&&(P[E]=R[E])}function A(P,R){P&&(P.textFill&&(R.textFill=P.textFill),P.textPosition&&(R.textPosition=P.textPosition))}function C(P,R){if(R==null&&(R=u),$(Mx,P)){var E=e.getItemVisual(R,"style");return E?E[Mx[P]]:null}if($(Y4,P))return e.getItemVisual(R,P)}function M(P){if(i.type==="cartesian2d"){var R=i.getBaseAxis();return ZN(J({axis:R},P))}}function I(){return t.getCurrentSeriesIndices()}function L(P){return Wg(P,t)}}function _W(r){var e={};return D(r.dimensions,function(t){var a=r.getDimensionInfo(t);if(!a.isExtraCoord){var n=a.coordDim,i=e[n]=e[n]||[];i[a.coordDimIndex]=r.getDimensionIndex(t)}}),e}function tp(r,e,t,a,n,i,o){if(!a){i.remove(e);return}var s=hm(r,e,t,a,n,i);return s&&o.setItemGraphicEl(t,s),s&&Wt(s,a.focus,a.blurScope,a.emphasisDisabled),s}function hm(r,e,t,a,n,i){var o=-1,s=e;e&&TI(e,a,n)&&(o=vt(i.childrenRef(),e),e=null);var l=!e,u=e;u?u.clearStates():(u=um(a),s&&dW(s,u)),a.morph===!1?u.disableMorphing=!0:u.disableMorphing&&(u.disableMorphing=!1),Je.normal.cfg=Je.normal.conOpt=Je.emphasis.cfg=Je.emphasis.conOpt=Je.blur.cfg=Je.blur.conOpt=Je.select.cfg=Je.select.conOpt=null,Je.isLegacy=!1,xW(u,t,a,n,l,Je),SW(u,t,a,n,l),fm(r,u,t,a,Je,n,l),$(a,"info")&&(ca(u).info=a.info);for(var f=0;f=0?i.replaceAt(u,o):i.add(u),u}function TI(r,e,t){var a=ca(r),n=e.type,i=e.shape,o=e.style;return t.isUniversalTransitionEnabled()||n!=null&&n!==a.customGraphicType||n==="path"&&CW(i)&&AI(i)!==a.customPathData||n==="image"&&$(o,"image")&&o.image!==a.customImagePath}function SW(r,e,t,a,n){var i=t.clipPath;if(i===!1)r&&r.getClipPath()&&r.removeClipPath();else if(i){var o=r.getClipPath();o&&TI(o,i,a)&&(o=null),o||(o=um(i),r.setClipPath(o)),fm(null,o,e,i,null,a,n)}}function xW(r,e,t,a,n,i){if(!r.isGroup){Nx(t,null,i),Nx(t,pa,i);var o=i.normal.conOpt,s=i.emphasis.conOpt,l=i.blur.conOpt,u=i.select.conOpt;if(o!=null||s!=null||u!=null||l!=null){var f=r.getTextContent();if(o===!1)f&&r.removeTextContent();else{o=i.normal.conOpt=o||{type:"text"},f?f.clearStates():(f=um(o),r.setTextContent(f)),fm(null,f,e,o,null,a,n);for(var h=o&&o.style,v=0;v=f;c--){var p=e.childAt(c);wW(e,p,n)}}}function wW(r,e,t){e&&jh(e,ca(r).option,t)}function TW(r){new ma(r.oldChildren,r.newChildren,Bx,Bx,r).add(Vx).update(Vx).remove(AW).execute()}function Bx(r,e){var t=r&&r.name;return t??cW+e}function Vx(r,e){var t=this.context,a=r!=null?t.newChildren[r]:null,n=e!=null?t.oldChildren[e]:null;hm(t.api,n,t.dataIndex,a,t.seriesModel,t.group)}function AW(r){var e=this.context,t=e.oldChildren[r];t&&jh(t,ca(t).option,e.seriesModel)}function AI(r){return r&&(r.pathData||r.d)}function CW(r){return r&&($(r,"pathData")||$(r,"d"))}function DW(r){r.registerChartView(gW),r.registerSeriesModel(X4)}var Hn=bt(),zx=rt,ep=X,cm=function(){function r(){this._dragging=!1,this.animationThreshold=15}return r.prototype.render=function(e,t,a,n){var i=t.get("value"),o=t.get("status");if(this._axisModel=e,this._axisPointerModel=t,this._api=a,!(!n&&this._lastValue===i&&this._lastStatus===o)){this._lastValue=i,this._lastStatus=o;var s=this._group,l=this._handle;if(!o||o==="hide"){s&&s.hide(),l&&l.hide();return}s&&s.show(),l&&l.show();var u={};this.makeElOption(u,i,e,t,a);var f=u.graphicKey;f!==this._lastGraphicKey&&this.clear(a),this._lastGraphicKey=f;var h=this._moveAnimation=this.determineAnimation(e,t);if(!s)s=this._group=new at,this.createPointerEl(s,u,e,t),this.createLabelEl(s,u,e,t),a.getZr().add(s);else{var v=lt(Gx,t,h);this.updatePointerEl(s,u,v),this.updateLabelEl(s,u,v,t)}Hx(s,t,!0),this._renderHandle(i)}},r.prototype.remove=function(e){this.clear(e)},r.prototype.dispose=function(e){this.clear(e)},r.prototype.determineAnimation=function(e,t){var a=t.get("animation"),n=e.axis,i=n.type==="category",o=t.get("snap");if(!o&&!i)return!1;if(a==="auto"||a==null){var s=this.animationThreshold;if(i&&n.getBandWidth()>s)return!0;if(o){var l=Oy(e).seriesDataCount,u=n.getExtent();return Math.abs(u[0]-u[1])/l>s}return!1}return a===!0},r.prototype.makeElOption=function(e,t,a,n,i){},r.prototype.createPointerEl=function(e,t,a,n){var i=t.pointer;if(i){var o=Hn(e).pointerEl=new yi[i.type](zx(t.pointer));e.add(o)}},r.prototype.createLabelEl=function(e,t,a,n){if(t.label){var i=Hn(e).labelEl=new St(zx(t.label));e.add(i),Fx(i,n)}},r.prototype.updatePointerEl=function(e,t,a){var n=Hn(e).pointerEl;n&&t.pointer&&(n.setStyle(t.pointer.style),a(n,{shape:t.pointer.shape}))},r.prototype.updateLabelEl=function(e,t,a,n){var i=Hn(e).labelEl;i&&(i.setStyle(t.label.style),a(i,{x:t.label.x,y:t.label.y}),Fx(i,n))},r.prototype._renderHandle=function(e){if(!(this._dragging||!this.updateHandleTransform)){var t=this._axisPointerModel,a=this._api.getZr(),n=this._handle,i=t.getModel("handle"),o=t.get("status");if(!i.get("show")||!o||o==="hide"){n&&a.remove(n),this._handle=null;return}var s;this._handle||(s=!0,n=this._handle=Do(i.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){da(u.event)},onmousedown:ep(this._onHandleDragMove,this,0,0),drift:ep(this._onHandleDragMove,this),ondragend:ep(this._onHandleDragEnd,this)}),a.add(n)),Hx(n,t,!1),n.setStyle(i.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=i.get("size");z(l)||(l=[l,l]),n.scaleX=l[0]/2,n.scaleY=l[1]/2,ko(this,"_doDispatchAxisPointer",i.get("throttle")||0,"fixRate"),this._moveHandleToValue(e,s)}},r.prototype._moveHandleToValue=function(e,t){Gx(this._axisPointerModel,!t&&this._moveAnimation,this._handle,rp(this.getHandleTransform(e,this._axisModel,this._axisPointerModel)))},r.prototype._onHandleDragMove=function(e,t){var a=this._handle;if(a){this._dragging=!0;var n=this.updateHandleTransform(rp(a),[e,t],this._axisModel,this._axisPointerModel);this._payloadInfo=n,a.stopAnimation(),a.attr(rp(n)),Hn(a).lastProp=null,this._doDispatchAxisPointer()}},r.prototype._doDispatchAxisPointer=function(){var e=this._handle;if(e){var t=this._payloadInfo,a=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:a.axis.dim,axisIndex:a.componentIndex}]})}},r.prototype._onHandleDragEnd=function(){this._dragging=!1;var e=this._handle;if(e){var t=this._axisPointerModel.get("value");this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"})}},r.prototype.clear=function(e){this._lastValue=null,this._lastStatus=null;var t=e.getZr(),a=this._group,n=this._handle;t&&a&&(this._lastGraphicKey=null,a&&t.remove(a),n&&t.remove(n),this._group=null,this._handle=null,this._payloadInfo=null),nl(this,"_doDispatchAxisPointer")},r.prototype.doClear=function(){},r.prototype.buildLabel=function(e,t,a){return a=a||0,{x:e[a],y:e[1-a],width:t[a],height:t[1-a]}},r}();function Gx(r,e,t,a){CI(Hn(t).lastProp,a)||(Hn(t).lastProp=a,e?Tt(t,a,r):(t.stopAnimation(),t.attr(a)))}function CI(r,e){if(tt(r)&&tt(e)){var t=!0;return D(e,function(a,n){t=t&&CI(r[n],a)}),!!t}else return r===e}function Fx(r,e){r[e.get(["label","show"])?"show":"hide"]()}function rp(r){return{x:r.x||0,y:r.y||0,rotation:r.rotation||0}}function Hx(r,e,t){var a=e.get("z"),n=e.get("zlevel");r&&r.traverse(function(i){i.type!=="group"&&(a!=null&&(i.z=a),n!=null&&(i.zlevel=n),i.silent=t)})}function pm(r){var e=r.get("type"),t=r.getModel(e+"Style"),a;return e==="line"?(a=t.getLineStyle(),a.fill=null):e==="shadow"&&(a=t.getAreaStyle(),a.stroke=null),a}function DI(r,e,t,a,n){var i=t.get("value"),o=MI(i,e.axis,e.ecModel,t.get("seriesDataIndices"),{precision:t.get(["label","precision"]),formatter:t.get(["label","formatter"])}),s=t.getModel("label"),l=mi(s.get("padding")||0),u=s.getFont(),f=Tl(o,u),h=n.position,v=f.width+l[1]+l[3],c=f.height+l[0]+l[2],p=n.align;p==="right"&&(h[0]-=v),p==="center"&&(h[0]-=v/2);var d=n.verticalAlign;d==="bottom"&&(h[1]-=c),d==="middle"&&(h[1]-=c/2),MW(h,v,c,a);var g=s.get("backgroundColor");(!g||g==="auto")&&(g=e.get(["axisLine","lineStyle","color"])),r.label={x:h[0],y:h[1],style:Nt(s,{text:o,font:u,fill:s.getTextColor(),padding:l,backgroundColor:g}),z2:10}}function MW(r,e,t,a){var n=a.getWidth(),i=a.getHeight();r[0]=Math.min(r[0]+e,n)-e,r[1]=Math.min(r[1]+t,i)-t,r[0]=Math.max(r[0],0),r[1]=Math.max(r[1],0)}function MI(r,e,t,a,n){r=e.scale.parse(r);var i=e.scale.getLabel({value:r},{precision:n.precision}),o=n.formatter;if(o){var s={value:Ty(e,{value:r}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]};D(a,function(l){var u=t.getSeriesByIndex(l.seriesIndex),f=l.dataIndexInside,h=u&&u.getDataParams(f);h&&s.seriesData.push(h)}),Y(o)?i=o.replace("{value}",i):K(o)&&(i=o(s))}return i}function dm(r,e,t){var a=Fe();return nn(a,a,t.rotation),Ir(a,a,t.position),Dr([r.dataToCoord(e),(t.labelOffset||0)+(t.labelDirection||1)*(t.labelMargin||0)],a)}function II(r,e,t,a,n,i){var o=Re.innerTextLayout(t.rotation,0,t.labelDirection);t.labelMargin=n.get(["label","margin"]),DI(e,a,n,i,{position:dm(a.axis,r,t),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function gm(r,e,t){return t=t||0,{x1:r[t],y1:r[1-t],x2:e[t],y2:e[1-t]}}function LI(r,e,t){return t=t||0,{x:r[t],y:r[1-t],width:e[t],height:e[1-t]}}function Wx(r,e,t,a,n,i){return{cx:r,cy:e,r0:t,r:a,startAngle:n,endAngle:i,clockwise:!0}}var IW=function(r){N(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.makeElOption=function(t,a,n,i,o){var s=n.axis,l=s.grid,u=i.get("type"),f=Ux(l,s).getOtherAxis(s).getGlobalExtent(),h=s.toGlobalCoord(s.dataToCoord(a,!0));if(u&&u!=="none"){var v=pm(i),c=LW[u](s,h,f);c.style=v,t.graphicKey=c.type,t.pointer=c}var p=Md(l.model,n);II(a,t,p,n,i,o)},e.prototype.getHandleTransform=function(t,a,n){var i=Md(a.axis.grid.model,a,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var o=dm(a.axis,t,i);return{x:o[0],y:o[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,a,n,i){var o=n.axis,s=o.grid,l=o.getGlobalExtent(!0),u=Ux(s,o).getOtherAxis(o).getGlobalExtent(),f=o.dim==="x"?0:1,h=[t.x,t.y];h[f]+=a[f],h[f]=Math.min(l[1],h[f]),h[f]=Math.max(l[0],h[f]);var v=(u[1]+u[0])/2,c=[v,v];c[f]=h[f];var p=[{verticalAlign:"middle"},{align:"center"}];return{x:h[0],y:h[1],rotation:t.rotation,cursorPoint:c,tooltipOption:p[f]}},e}(cm);function Ux(r,e){var t={};return t[e.dim+"AxisIndex"]=e.index,r.getCartesian(t)}var LW={line:function(r,e,t){var a=gm([e,t[0]],[e,t[1]],Yx(r));return{type:"Line",subPixelOptimize:!0,shape:a}},shadow:function(r,e,t){var a=Math.max(1,r.getBandWidth()),n=t[1]-t[0];return{type:"Rect",shape:LI([e-a/2,t[0]],[a,n],Yx(r))}}};function Yx(r){return r.dim==="x"?0:1}var PW=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.type="axisPointer",e.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,triggerEmphasis:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},e}(gt),va=bt(),RW=D;function PI(r,e,t){if(!yt.node){var a=e.getZr();va(a).records||(va(a).records={}),EW(a,e);var n=va(a).records[r]||(va(a).records[r]={});n.handler=t}}function EW(r,e){if(va(r).initialized)return;va(r).initialized=!0,t("click",lt(Xx,"click")),t("mousemove",lt(Xx,"mousemove")),t("globalout",OW);function t(a,n){r.on(a,function(i){var o=NW(e);RW(va(r).records,function(s){s&&n(s,i,o.dispatchAction)}),kW(o.pendings,e)})}}function kW(r,e){var t=r.showTip.length,a=r.hideTip.length,n;t?n=r.showTip[t-1]:a&&(n=r.hideTip[a-1]),n&&(n.dispatchAction=null,e.dispatchAction(n))}function OW(r,e,t){r.handler("leave",null,t)}function Xx(r,e,t,a){e.handler(r,t,a)}function NW(r){var e={showTip:[],hideTip:[]},t=function(a){var n=e[a.type];n?n.push(a):(a.dispatchAction=t,r.dispatchAction(a))};return{dispatchAction:t,pendings:e}}function qd(r,e){if(!yt.node){var t=e.getZr(),a=(va(t).records||{})[r];a&&(va(t).records[r]=null)}}var BW=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){var i=a.getComponent("tooltip"),o=t.get("triggerOn")||i&&i.get("triggerOn")||"mousemove|click";PI("axisPointer",n,function(s,l,u){o!=="none"&&(s==="leave"||o.indexOf(s)>=0)&&u({type:"updateAxisPointer",currTrigger:s,x:l&&l.offsetX,y:l&&l.offsetY})})},e.prototype.remove=function(t,a){qd("axisPointer",a)},e.prototype.dispose=function(t,a){qd("axisPointer",a)},e.type="axisPointer",e}(zt);function RI(r,e){var t=[],a=r.seriesIndex,n;if(a==null||!(n=e.getSeriesByIndex(a)))return{point:[]};var i=n.getData(),o=si(i,r);if(o==null||o<0||z(o))return{point:[]};var s=i.getItemGraphicEl(o),l=n.coordinateSystem;if(n.getTooltipPosition)t=n.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)if(r.isStacked){var u=l.getBaseAxis(),f=l.getOtherAxis(u),h=f.dim,v=u.dim,c=h==="x"||h==="radius"?1:0,p=i.mapDimension(v),d=[];d[c]=i.get(p,o),d[1-c]=i.get(i.getCalculationInfo("stackResultDimension"),o),t=l.dataToPoint(d)||[]}else t=l.dataToPoint(i.getValues(G(l.dimensions,function(y){return i.mapDimension(y)}),o))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),t=[g.x+g.width/2,g.y+g.height/2]}return{point:t,el:s}}var $x=bt();function VW(r,e,t){var a=r.currTrigger,n=[r.x,r.y],i=r,o=r.dispatchAction||X(t.dispatchAction,t),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){lf(n)&&(n=RI({seriesIndex:i.seriesIndex,dataIndex:i.dataIndex},e).point);var l=lf(n),u=i.axesInfo,f=s.axesInfo,h=a==="leave"||lf(n),v={},c={},p={list:[],map:{}},d={showPointer:lt(GW,c),showTooltip:lt(FW,p)};D(s.coordSysMap,function(y,m){var _=l||y.containPoint(n);D(s.coordSysAxesInfo[m],function(S,b){var x=S.axis,w=YW(u,S);if(!h&&_&&(!u||w)){var T=w&&w.value;T==null&&!l&&(T=x.pointToData(n)),T!=null&&Zx(S,T,d,!1,v)}})});var g={};return D(f,function(y,m){var _=y.linkGroup;_&&!c[m]&&D(_.axesInfo,function(S,b){var x=c[b];if(S!==y&&x){var w=x.value;_.mapper&&(w=y.axis.scale.parse(_.mapper(w,qx(S),qx(y)))),g[y.key]=w}})}),D(g,function(y,m){Zx(f[m],y,d,!0,v)}),HW(c,f,v),WW(p,n,r,o),UW(f,o,t),v}}function Zx(r,e,t,a,n){var i=r.axis;if(!(i.scale.isBlank()||!i.containData(e))){if(!r.involveSeries){t.showPointer(r,e);return}var o=zW(e,r),s=o.payloadBatch,l=o.snapToValue;s[0]&&n.seriesIndex==null&&V(n,s[0]),!a&&r.snap&&i.containData(l)&&l!=null&&(e=l),t.showPointer(r,e,s),t.showTooltip(r,o,l)}}function zW(r,e){var t=e.axis,a=t.dim,n=r,i=[],o=Number.MAX_VALUE,s=-1;return D(e.seriesModels,function(l,u){var f=l.getData().mapDimensionsAll(a),h,v;if(l.getAxisTooltipData){var c=l.getAxisTooltipData(f,r,t);v=c.dataIndices,h=c.nestestValue}else{if(v=l.getData().indicesOfNearest(f[0],r,t.type==="category"?.5:null),!v.length)return;h=l.getData().get(f[0],v[0])}if(!(h==null||!isFinite(h))){var p=r-h,d=Math.abs(p);d<=o&&((d=0&&s<0)&&(o=d,s=p,n=h,i.length=0),D(v,function(g){i.push({seriesIndex:l.seriesIndex,dataIndexInside:g,dataIndex:l.getData().getRawIndex(g)})}))}}),{payloadBatch:i,snapToValue:n}}function GW(r,e,t,a){r[e.key]={value:t,payloadBatch:a}}function FW(r,e,t,a){var n=t.payloadBatch,i=e.axis,o=i.model,s=e.axisPointerModel;if(!(!e.triggerTooltip||!n.length)){var l=e.coordSys.model,u=hl(l),f=r.map[u];f||(f=r.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},r.list.push(f)),f.dataByAxis.push({axisDim:i.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:a,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:n.slice()})}}function HW(r,e,t){var a=t.axesInfo=[];D(e,function(n,i){var o=n.axisPointerModel.option,s=r[i];s?(!n.useHandle&&(o.status="show"),o.value=s.value,o.seriesDataIndices=(s.payloadBatch||[]).slice()):!n.useHandle&&(o.status="hide"),o.status==="show"&&a.push({axisDim:n.axis.dim,axisIndex:n.axis.model.componentIndex,value:o.value})})}function WW(r,e,t,a){if(lf(e)||!r.list.length){a({type:"hideTip"});return}var n=((r.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};a({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:t.tooltipOption,position:t.position,dataIndexInside:n.dataIndexInside,dataIndex:n.dataIndex,seriesIndex:n.seriesIndex,dataByCoordSys:r.list})}function UW(r,e,t){var a=t.getZr(),n="axisPointerLastHighlights",i=$x(a)[n]||{},o=$x(a)[n]={};D(r,function(u,f){var h=u.axisPointerModel.option;h.status==="show"&&u.triggerEmphasis&&D(h.seriesDataIndices,function(v){var c=v.seriesIndex+" | "+v.dataIndex;o[c]=v})});var s=[],l=[];D(i,function(u,f){!o[f]&&l.push(u)}),D(o,function(u,f){!i[f]&&s.push(u)}),l.length&&t.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&t.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function YW(r,e){for(var t=0;t<(r||[]).length;t++){var a=r[t];if(e.axis.dim===a.axisDim&&e.axis.model.componentIndex===a.axisIndex)return a}}function qx(r){var e=r.axis.model,t={},a=t.axisDim=r.axis.dim;return t.axisIndex=t[a+"AxisIndex"]=e.componentIndex,t.axisName=t[a+"AxisName"]=e.name,t.axisId=t[a+"AxisId"]=e.id,t}function lf(r){return!r||r[0]==null||isNaN(r[0])||r[1]==null||isNaN(r[1])}function Hl(r){xi.registerAxisPointerClass("CartesianAxisPointer",IW),r.registerComponentModel(PW),r.registerComponentView(BW),r.registerPreprocessor(function(e){if(e){(!e.axisPointer||e.axisPointer.length===0)&&(e.axisPointer={});var t=e.axisPointer.link;t&&!z(t)&&(e.axisPointer.link=[t])}}),r.registerProcessor(r.PRIORITY.PROCESSOR.STATISTIC,function(e,t){e.getComponent("axisPointer").coordSysAxesInfo=e5(e,t)}),r.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},VW)}function XW(r){pt(oM),pt(Hl)}var $W=function(r){N(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.makeElOption=function(t,a,n,i,o){var s=n.axis;s.dim==="angle"&&(this.animationThreshold=Math.PI/18);var l=s.polar,u=l.getOtherAxis(s),f=u.getExtent(),h=s.dataToCoord(a),v=i.get("type");if(v&&v!=="none"){var c=pm(i),p=qW[v](s,l,h,f);p.style=c,t.graphicKey=p.type,t.pointer=p}var d=i.get(["label","margin"]),g=ZW(a,n,i,l,d);DI(t,n,i,o,g)},e}(cm);function ZW(r,e,t,a,n){var i=e.axis,o=i.dataToCoord(r),s=a.getAngleAxis().getExtent()[0];s=s/180*Math.PI;var l=a.getRadiusAxis().getExtent(),u,f,h;if(i.dim==="radius"){var v=Fe();nn(v,v,s),Ir(v,v,[a.cx,a.cy]),u=Dr([o,-n],v);var c=e.getModel("axisLabel").get("rotate")||0,p=Re.innerTextLayout(s,c*Math.PI/180,-1);f=p.textAlign,h=p.textVerticalAlign}else{var d=l[1];u=a.coordToPoint([d+n,o]);var g=a.cx,y=a.cy;f=Math.abs(u[0]-g)/d<.3?"center":u[0]>g?"left":"right",h=Math.abs(u[1]-y)/d<.3?"middle":u[1]>y?"top":"bottom"}return{position:u,align:f,verticalAlign:h}}var qW={line:function(r,e,t,a){return r.dim==="angle"?{type:"Line",shape:gm(e.coordToPoint([a[0],t]),e.coordToPoint([a[1],t]))}:{type:"Circle",shape:{cx:e.cx,cy:e.cy,r:t}}},shadow:function(r,e,t,a){var n=Math.max(1,r.getBandWidth()),i=Math.PI/180;return r.dim==="angle"?{type:"Sector",shape:Wx(e.cx,e.cy,a[0],a[1],(-t-n/2)*i,(-t+n/2)*i)}:{type:"Sector",shape:Wx(e.cx,e.cy,t-n/2,t+n/2,0,Math.PI*2)}}},KW=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.findAxisModel=function(t){var a,n=this.ecModel;return n.eachComponent(t,function(i){i.getCoordSysModel()===this&&(a=i)},this),a},e.type="polar",e.dependencies=["radiusAxis","angleAxis"],e.defaultOption={z:0,center:["50%","50%"],radius:"80%"},e}(gt),ym=function(r){N(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.getCoordSysModel=function(){return this.getReferringComponents("polar",jt).models[0]},e.type="polarAxis",e}(gt);$t(ym,Vo);var jW=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.type="angleAxis",e}(ym),JW=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.type="radiusAxis",e}(ym),mm=function(r){N(e,r);function e(t,a){return r.call(this,"radius",t,a)||this}return e.prototype.pointToData=function(t,a){return this.polar.pointToData(t,a)[this.dim==="radius"?0:1]},e}(dr);mm.prototype.dataToRadius=dr.prototype.dataToCoord;mm.prototype.radiusToData=dr.prototype.coordToData;var QW=bt(),_m=function(r){N(e,r);function e(t,a){return r.call(this,"angle",t,a||[0,360])||this}return e.prototype.pointToData=function(t,a){return this.polar.pointToData(t,a)[this.dim==="radius"?0:1]},e.prototype.calculateCategoryInterval=function(){var t=this,a=t.getLabelModel(),n=t.scale,i=n.getExtent(),o=n.count();if(i[1]-i[0]<1)return 0;var s=i[0],l=t.dataToCoord(s+1)-t.dataToCoord(s),u=Math.abs(l),f=Tl(s==null?"":s+"",a.getFont(),"center","top"),h=Math.max(f.height,7),v=h/u;isNaN(v)&&(v=1/0);var c=Math.max(0,Math.floor(v)),p=QW(t.model),d=p.lastAutoInterval,g=p.lastTickCount;return d!=null&&g!=null&&Math.abs(d-c)<=1&&Math.abs(g-o)<=1&&d>c?c=d:(p.lastTickCount=o,p.lastAutoInterval=c),c},e}(dr);_m.prototype.dataToAngle=dr.prototype.dataToCoord;_m.prototype.angleToData=dr.prototype.coordToData;var EI=["radius","angle"],t6=function(){function r(e){this.dimensions=EI,this.type="polar",this.cx=0,this.cy=0,this._radiusAxis=new mm,this._angleAxis=new _m,this.axisPointerEnabled=!0,this.name=e||"",this._radiusAxis.polar=this._angleAxis.polar=this}return r.prototype.containPoint=function(e){var t=this.pointToCoord(e);return this._radiusAxis.contain(t[0])&&this._angleAxis.contain(t[1])},r.prototype.containData=function(e){return this._radiusAxis.containData(e[0])&&this._angleAxis.containData(e[1])},r.prototype.getAxis=function(e){var t="_"+e+"Axis";return this[t]},r.prototype.getAxes=function(){return[this._radiusAxis,this._angleAxis]},r.prototype.getAxesByScale=function(e){var t=[],a=this._angleAxis,n=this._radiusAxis;return a.scale.type===e&&t.push(a),n.scale.type===e&&t.push(n),t},r.prototype.getAngleAxis=function(){return this._angleAxis},r.prototype.getRadiusAxis=function(){return this._radiusAxis},r.prototype.getOtherAxis=function(e){var t=this._angleAxis;return e===t?this._radiusAxis:t},r.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},r.prototype.getTooltipAxes=function(e){var t=e!=null&&e!=="auto"?this.getAxis(e):this.getBaseAxis();return{baseAxes:[t],otherAxes:[this.getOtherAxis(t)]}},r.prototype.dataToPoint=function(e,t){return this.coordToPoint([this._radiusAxis.dataToRadius(e[0],t),this._angleAxis.dataToAngle(e[1],t)])},r.prototype.pointToData=function(e,t){var a=this.pointToCoord(e);return[this._radiusAxis.radiusToData(a[0],t),this._angleAxis.angleToData(a[1],t)]},r.prototype.pointToCoord=function(e){var t=e[0]-this.cx,a=e[1]-this.cy,n=this.getAngleAxis(),i=n.getExtent(),o=Math.min(i[0],i[1]),s=Math.max(i[0],i[1]);n.inverse?o=s-360:s=o+360;var l=Math.sqrt(t*t+a*a);t/=l,a/=l;for(var u=Math.atan2(-a,t)/Math.PI*180,f=us;)u+=f*360;return[l,u]},r.prototype.coordToPoint=function(e){var t=e[0],a=e[1]/180*Math.PI,n=Math.cos(a)*t+this.cx,i=-Math.sin(a)*t+this.cy;return[n,i]},r.prototype.getArea=function(){var e=this.getAngleAxis(),t=this.getRadiusAxis(),a=t.getExtent().slice();a[0]>a[1]&&a.reverse();var n=e.getExtent(),i=Math.PI/180,o=1e-4;return{cx:this.cx,cy:this.cy,r0:a[0],r:a[1],startAngle:-n[0]*i,endAngle:-n[1]*i,clockwise:e.inverse,contain:function(s,l){var u=s-this.cx,f=l-this.cy,h=u*u+f*f,v=this.r,c=this.r0;return v!==c&&h-o<=v*v&&h+o>=c*c}}},r.prototype.convertToPixel=function(e,t,a){var n=Kx(t);return n===this?this.dataToPoint(a):null},r.prototype.convertFromPixel=function(e,t,a){var n=Kx(t);return n===this?this.pointToData(a):null},r}();function Kx(r){var e=r.seriesModel,t=r.polarModel;return t&&t.coordinateSystem||e&&e.coordinateSystem}function e6(r,e,t){var a=e.get("center"),n=t.getWidth(),i=t.getHeight();r.cx=W(a[0],n),r.cy=W(a[1],i);var o=r.getRadiusAxis(),s=Math.min(n,i)/2,l=e.get("radius");l==null?l=[0,"100%"]:z(l)||(l=[0,l]);var u=[W(l[0],s),W(l[1],s)];o.inverse?o.setExtent(u[1],u[0]):o.setExtent(u[0],u[1])}function r6(r,e){var t=this,a=t.getAngleAxis(),n=t.getRadiusAxis();if(a.scale.setExtent(1/0,-1/0),n.scale.setExtent(1/0,-1/0),r.eachSeries(function(s){if(s.coordinateSystem===t){var l=s.getData();D(Gf(l,"radius"),function(u){n.scale.unionExtentFromData(l,u)}),D(Gf(l,"angle"),function(u){a.scale.unionExtentFromData(l,u)})}}),hi(a.scale,a.model),hi(n.scale,n.model),a.type==="category"&&!a.onBand){var i=a.getExtent(),o=360/a.scale.count();a.inverse?i[1]+=o:i[1]-=o,a.setExtent(i[0],i[1])}}function a6(r){return r.mainType==="angleAxis"}function jx(r,e){var t;if(r.type=e.get("type"),r.scale=El(e),r.onBand=e.get("boundaryGap")&&r.type==="category",r.inverse=e.get("inverse"),a6(e)){r.inverse=r.inverse!==e.get("clockwise");var a=e.get("startAngle"),n=(t=e.get("endAngle"))!==null&&t!==void 0?t:a+(r.inverse?-360:360);r.setExtent(a,n)}e.axis=r,r.model=e}var n6={dimensions:EI,create:function(r,e){var t=[];return r.eachComponent("polar",function(a,n){var i=new t6(n+"");i.update=r6;var o=i.getRadiusAxis(),s=i.getAngleAxis(),l=a.findAxisModel("radiusAxis"),u=a.findAxisModel("angleAxis");jx(o,l),jx(s,u),e6(i,a,e),t.push(i),a.coordinateSystem=i,i.model=a}),r.eachSeries(function(a){if(a.get("coordinateSystem")==="polar"){var n=a.getReferringComponents("polar",jt).models[0];a.coordinateSystem=n.coordinateSystem}}),t}},i6=["axisLine","axisLabel","axisTick","minorTick","splitLine","minorSplitLine","splitArea"];function Nu(r,e,t){e[1]>e[0]&&(e=e.slice().reverse());var a=r.coordToPoint([e[0],t]),n=r.coordToPoint([e[1],t]);return{x1:a[0],y1:a[1],x2:n[0],y2:n[1]}}function Bu(r){var e=r.getRadiusAxis();return e.inverse?0:1}function Jx(r){var e=r[0],t=r[r.length-1];e&&t&&Math.abs(Math.abs(e.coord-t.coord)-360)<1e-4&&r.pop()}var o6=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.axisPointerClass="PolarAxisPointer",t}return e.prototype.render=function(t,a){if(this.group.removeAll(),!!t.get("show")){var n=t.axis,i=n.polar,o=i.getRadiusAxis().getExtent(),s=n.getTicksCoords(),l=n.getMinorTicksCoords(),u=G(n.getViewLabels(),function(f){f=rt(f);var h=n.scale,v=h.type==="ordinal"?h.getRawOrdinalNumber(f.tickValue):f.tickValue;return f.coord=n.dataToCoord(v),f});Jx(u),Jx(s),D(i6,function(f){t.get([f,"show"])&&(!n.scale.isBlank()||f==="axisLine")&&s6[f](this.group,t,i,s,l,o,u)},this)}},e.type="angleAxis",e}(xi),s6={axisLine:function(r,e,t,a,n,i){var o=e.getModel(["axisLine","lineStyle"]),s=t.getAngleAxis(),l=Math.PI/180,u=s.getExtent(),f=Bu(t),h=f?0:1,v,c=Math.abs(u[1]-u[0])===360?"Circle":"Arc";i[h]===0?v=new yi[c]({shape:{cx:t.cx,cy:t.cy,r:i[f],startAngle:-u[0]*l,endAngle:-u[1]*l,clockwise:s.inverse},style:o.getLineStyle(),z2:1,silent:!0}):v=new wo({shape:{cx:t.cx,cy:t.cy,r:i[f],r0:i[h]},style:o.getLineStyle(),z2:1,silent:!0}),v.style.fill=null,r.add(v)},axisTick:function(r,e,t,a,n,i){var o=e.getModel("axisTick"),s=(o.get("inside")?-1:1)*o.get("length"),l=i[Bu(t)],u=G(a,function(f){return new te({shape:Nu(t,[l,l+s],f.coord)})});r.add(Ue(u,{style:J(o.getModel("lineStyle").getLineStyle(),{stroke:e.get(["axisLine","lineStyle","color"])})}))},minorTick:function(r,e,t,a,n,i){if(n.length){for(var o=e.getModel("axisTick"),s=e.getModel("minorTick"),l=(o.get("inside")?-1:1)*s.get("length"),u=i[Bu(t)],f=[],h=0;hy?"left":"right",S=Math.abs(g[1]-m)/d<.3?"middle":g[1]>m?"top":"bottom";if(s&&s[p]){var b=s[p];tt(b)&&b.textStyle&&(c=new Ct(b.textStyle,l,l.ecModel))}var x=new St({silent:Re.isLabelSilent(e),style:Nt(c,{x:g[0],y:g[1],fill:c.getTextColor()||e.get(["axisLine","lineStyle","color"]),text:h.formattedLabel,align:_,verticalAlign:S})});if(r.add(x),f){var w=Re.makeAxisEventDataBase(e);w.targetType="axisLabel",w.value=h.rawLabel,nt(x).eventData=w}},this)},splitLine:function(r,e,t,a,n,i){var o=e.getModel("splitLine"),s=o.getModel("lineStyle"),l=s.get("color"),u=0;l=l instanceof Array?l:[l];for(var f=[],h=0;h=0?"p":"n",R=A;b&&(a[f][L]||(a[f][L]={p:A,n:A}),R=a[f][L][P]);var E=void 0,O=void 0,k=void 0,B=void 0;if(p.dim==="radius"){var F=p.dataToCoord(I)-A,H=l.dataToCoord(L);Math.abs(F)=B})}}})}function p6(r){var e={};D(r,function(a,n){var i=a.getData(),o=a.coordinateSystem,s=o.getBaseAxis(),l=OI(o,s),u=s.getExtent(),f=s.type==="category"?s.getBandWidth():Math.abs(u[1]-u[0])/i.count(),h=e[l]||{bandWidth:f,remainedWidth:f,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},v=h.stacks;e[l]=h;var c=kI(a);v[c]||h.autoWidthCount++,v[c]=v[c]||{width:0,maxWidth:0};var p=W(a.get("barWidth"),f),d=W(a.get("barMaxWidth"),f),g=a.get("barGap"),y=a.get("barCategoryGap");p&&!v[c].width&&(p=Math.min(h.remainedWidth,p),v[c].width=p,h.remainedWidth-=p),d&&(v[c].maxWidth=d),g!=null&&(h.gap=g),y!=null&&(h.categoryGap=y)});var t={};return D(e,function(a,n){t[n]={};var i=a.stacks,o=a.bandWidth,s=W(a.categoryGap,o),l=W(a.gap,1),u=a.remainedWidth,f=a.autoWidthCount,h=(u-s)/(f+(f-1)*l);h=Math.max(h,0),D(i,function(d,g){var y=d.maxWidth;y&&y=t.y&&e[1]<=t.y+t.height:a.contain(a.toLocalCoord(e[1]))&&e[0]>=t.y&&e[0]<=t.y+t.height},r.prototype.pointToData=function(e){var t=this.getAxis();return[t.coordToData(t.toLocalCoord(e[t.orient==="horizontal"?0:1]))]},r.prototype.dataToPoint=function(e){var t=this.getAxis(),a=this.getRect(),n=[],i=t.orient==="horizontal"?0:1;return e instanceof Array&&(e=e[0]),n[i]=t.toGlobalCoord(t.dataToCoord(+e)),n[1-i]=i===0?a.y+a.height/2:a.x+a.width/2,n},r.prototype.convertToPixel=function(e,t,a){var n=Qx(t);return n===this?this.dataToPoint(a):null},r.prototype.convertFromPixel=function(e,t,a){var n=Qx(t);return n===this?this.pointToData(a):null},r}();function Qx(r){var e=r.seriesModel,t=r.singleAxisModel;return t&&t.coordinateSystem||e&&e.coordinateSystem}function A6(r,e){var t=[];return r.eachComponent("singleAxis",function(a,n){var i=new T6(a,r,e);i.name="single_"+n,i.resize(a,e),a.coordinateSystem=i,t.push(i)}),r.eachSeries(function(a){if(a.get("coordinateSystem")==="singleAxis"){var n=a.getReferringComponents("singleAxis",jt).models[0];a.coordinateSystem=n&&n.coordinateSystem}}),t}var C6={create:A6,dimensions:NI},tb=["x","y"],D6=["width","height"],M6=function(r){N(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.makeElOption=function(t,a,n,i,o){var s=n.axis,l=s.coordinateSystem,u=ap(l,1-th(s)),f=l.dataToPoint(a)[0],h=i.get("type");if(h&&h!=="none"){var v=pm(i),c=I6[h](s,f,u);c.style=v,t.graphicKey=c.type,t.pointer=c}var p=Kd(n);II(a,t,p,n,i,o)},e.prototype.getHandleTransform=function(t,a,n){var i=Kd(a,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var o=dm(a.axis,t,i);return{x:o[0],y:o[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,a,n,i){var o=n.axis,s=o.coordinateSystem,l=th(o),u=ap(s,l),f=[t.x,t.y];f[l]+=a[l],f[l]=Math.min(u[1],f[l]),f[l]=Math.max(u[0],f[l]);var h=ap(s,1-l),v=(h[1]+h[0])/2,c=[v,v];return c[l]=f[l],{x:f[0],y:f[1],rotation:t.rotation,cursorPoint:c,tooltipOption:{verticalAlign:"middle"}}},e}(cm),I6={line:function(r,e,t){var a=gm([e,t[0]],[e,t[1]],th(r));return{type:"Line",subPixelOptimize:!0,shape:a}},shadow:function(r,e,t){var a=r.getBandWidth(),n=t[1]-t[0];return{type:"Rect",shape:LI([e-a/2,t[0]],[a,n],th(r))}}};function th(r){return r.isHorizontal()?0:1}function ap(r,e){var t=r.getRect();return[t[tb[e]],t[tb[e]]+t[D6[e]]]}var L6=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.type="single",e}(zt);function P6(r){pt(Hl),xi.registerAxisPointerClass("SingleAxisPointer",M6),r.registerComponentView(L6),r.registerComponentView(x6),r.registerComponentModel(uf),go(r,"single",uf,uf.defaultOption),r.registerCoordinateSystem("single",C6)}var R6=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(t,a,n){var i=Lo(t);r.prototype.init.apply(this,arguments),eb(t,i)},e.prototype.mergeOption=function(t){r.prototype.mergeOption.apply(this,arguments),eb(this.option,t)},e.prototype.getCellSize=function(){return this.option.cellSize},e.type="calendar",e.defaultOption={z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},e}(gt);function eb(r,e){var t=r.cellSize,a;z(t)?a=t:a=r.cellSize=[t,t],a.length===1&&(a[1]=a[0]);var n=G([0,1],function(i){return NE(e,i)&&(a[i]="auto"),a[i]!=null&&a[i]!=="auto"});tn(r,e,{type:"box",ignoreSize:n})}var E6=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){var i=this.group;i.removeAll();var o=t.coordinateSystem,s=o.getRangeInfo(),l=o.getOrient(),u=a.getLocaleModel();this._renderDayRect(t,s,i),this._renderLines(t,s,l,i),this._renderYearText(t,s,l,i),this._renderMonthText(t,u,l,i),this._renderWeekText(t,u,s,l,i)},e.prototype._renderDayRect=function(t,a,n){for(var i=t.coordinateSystem,o=t.getModel("itemStyle").getItemStyle(),s=i.getCellWidth(),l=i.getCellHeight(),u=a.start.time;u<=a.end.time;u=i.getNextNDay(u,1).time){var f=i.dataToRect([u],!1).tl,h=new xt({shape:{x:f[0],y:f[1],width:s,height:l},cursor:"default",style:o});n.add(h)}},e.prototype._renderLines=function(t,a,n,i){var o=this,s=t.coordinateSystem,l=t.getModel(["splitLine","lineStyle"]).getLineStyle(),u=t.get(["splitLine","show"]),f=l.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var h=a.start,v=0;h.time<=a.end.time;v++){p(h.formatedDate),v===0&&(h=s.getDateInfo(a.start.y+"-"+a.start.m));var c=h.date;c.setMonth(c.getMonth()+1),h=s.getDateInfo(c)}p(s.getNextNDay(a.end.time,1).formatedDate);function p(d){o._firstDayOfMonth.push(s.getDateInfo(d)),o._firstDayPoints.push(s.dataToRect([d],!1).tl);var g=o._getLinePointsOfOneWeek(t,d,n);o._tlpoints.push(g[0]),o._blpoints.push(g[g.length-1]),u&&o._drawSplitline(g,l,i)}u&&this._drawSplitline(o._getEdgesPoints(o._tlpoints,f,n),l,i),u&&this._drawSplitline(o._getEdgesPoints(o._blpoints,f,n),l,i)},e.prototype._getEdgesPoints=function(t,a,n){var i=[t[0].slice(),t[t.length-1].slice()],o=n==="horizontal"?0:1;return i[0][o]=i[0][o]-a/2,i[1][o]=i[1][o]+a/2,i},e.prototype._drawSplitline=function(t,a,n){var i=new Ce({z2:20,shape:{points:t},style:a});n.add(i)},e.prototype._getLinePointsOfOneWeek=function(t,a,n){for(var i=t.coordinateSystem,o=i.getDateInfo(a),s=[],l=0;l<7;l++){var u=i.getNextNDay(o.time,l),f=i.dataToRect([u.time],!1);s[2*u.day]=f.tl,s[2*u.day+1]=f[n==="horizontal"?"bl":"tr"]}return s},e.prototype._formatterLabel=function(t,a){return Y(t)&&t?RE(t,a):K(t)?t(a):a.nameMap},e.prototype._yearTextPositionControl=function(t,a,n,i,o){var s=a[0],l=a[1],u=["center","bottom"];i==="bottom"?(l+=o,u=["center","top"]):i==="left"?s-=o:i==="right"?(s+=o,u=["center","top"]):l-=o;var f=0;return(i==="left"||i==="right")&&(f=Math.PI/2),{rotation:f,x:s,y:l,style:{align:u[0],verticalAlign:u[1]}}},e.prototype._renderYearText=function(t,a,n,i){var o=t.getModel("yearLabel");if(o.get("show")){var s=o.get("margin"),l=o.get("position");l||(l=n!=="horizontal"?"top":"left");var u=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],f=(u[0][0]+u[1][0])/2,h=(u[0][1]+u[1][1])/2,v=n==="horizontal"?0:1,c={top:[f,u[v][1]],bottom:[f,u[1-v][1]],left:[u[1-v][0],h],right:[u[v][0],h]},p=a.start.y;+a.end.y>+a.start.y&&(p=p+"-"+a.end.y);var d=o.get("formatter"),g={start:a.start.y,end:a.end.y,nameMap:p},y=this._formatterLabel(d,g),m=new St({z2:30,style:Nt(o,{text:y}),silent:o.get("silent")});m.attr(this._yearTextPositionControl(m,c[l],n,l,s)),i.add(m)}},e.prototype._monthTextPositionControl=function(t,a,n,i,o){var s="left",l="top",u=t[0],f=t[1];return n==="horizontal"?(f=f+o,a&&(s="center"),i==="start"&&(l="bottom")):(u=u+o,a&&(l="middle"),i==="start"&&(s="right")),{x:u,y:f,align:s,verticalAlign:l}},e.prototype._renderMonthText=function(t,a,n,i){var o=t.getModel("monthLabel");if(o.get("show")){var s=o.get("nameMap"),l=o.get("margin"),u=o.get("position"),f=o.get("align"),h=[this._tlpoints,this._blpoints];(!s||Y(s))&&(s&&(a=ad(s)||a),s=a.get(["time","monthAbbr"])||[]);var v=u==="start"?0:1,c=n==="horizontal"?0:1;l=u==="start"?-l:l;for(var p=f==="center",d=o.get("silent"),g=0;g=n.start.time&&a.times.end.time&&t.reverse(),t},r.prototype._getRangeInfo=function(e){var t=[this.getDateInfo(e[0]),this.getDateInfo(e[1])],a;t[0].time>t[1].time&&(a=!0,t.reverse());var n=Math.floor(t[1].time/np)-Math.floor(t[0].time/np)+1,i=new Date(t[0].time),o=i.getDate(),s=t[1].date.getDate();i.setDate(o+n-1);var l=i.getDate();if(l!==s)for(var u=i.getTime()-t[1].time>0?1:-1;(l=i.getDate())!==s&&(i.getTime()-t[1].time)*u>0;)n-=u,i.setDate(l-u);var f=Math.floor((n+t[0].day+6)/7),h=a?-f+1:f-1;return a&&t.reverse(),{range:[t[0].formatedDate,t[1].formatedDate],start:t[0],end:t[1],allDay:n,weeks:f,nthWeek:h,fweek:t[0].day,lweek:t[1].day}},r.prototype._getDateByWeeksAndDay=function(e,t,a){var n=this._getRangeInfo(a);if(e>n.weeks||e===0&&tn.lweek)return null;var i=(e-1)*7-n.fweek+t,o=new Date(n.start.time);return o.setDate(+n.start.d+i),this.getDateInfo(o)},r.create=function(e,t){var a=[];return e.eachComponent("calendar",function(n){var i=new r(n);a.push(i),n.coordinateSystem=i}),e.eachSeries(function(n){n.get("coordinateSystem")==="calendar"&&(n.coordinateSystem=a[n.get("calendarIndex")||0])}),a},r.dimensions=["time","value"],r}();function rb(r){var e=r.calendarModel,t=r.seriesModel,a=e?e.coordinateSystem:t?t.coordinateSystem:null;return a}function O6(r){r.registerComponentModel(R6),r.registerComponentView(E6),r.registerCoordinateSystem("calendar",k6)}function N6(r,e){var t=r.existing;if(e.id=r.keyInfo.id,!e.type&&t&&(e.type=t.type),e.parentId==null){var a=e.parentOption;a?e.parentId=a.id:t&&(e.parentId=t.parentId)}e.parentOption=null}function ab(r,e){var t;return D(e,function(a){r[a]!=null&&r[a]!=="auto"&&(t=!0)}),t}function B6(r,e,t){var a=V({},t),n=r[e],i=t.$action||"merge";i==="merge"?n?(ut(n,a,!0),tn(n,a,{ignoreSize:!0}),AA(t,n),Vu(t,n),Vu(t,n,"shape"),Vu(t,n,"style"),Vu(t,n,"extra"),t.clipPath=n.clipPath):r[e]=a:i==="replace"?r[e]=a:i==="remove"&&n&&(r[e]=null)}var BI=["transition","enterFrom","leaveTo"],V6=BI.concat(["enterAnimation","updateAnimation","leaveAnimation"]);function Vu(r,e,t){if(t&&(!r[t]&&e[t]&&(r[t]={}),r=r[t],e=e[t]),!(!r||!e))for(var a=t?BI:V6,n=0;n=0;f--){var h=n[f],v=Qt(h.id,null),c=v!=null?o.get(v):null;if(c){var p=c.parent,y=ar(p),m=p===i?{width:s,height:l}:{width:y.width,height:y.height},_={},S=kh(c,h,m,null,{hv:h.hv,boundingMode:h.bounding},_);if(!ar(c).isNew&&S){for(var b=h.transition,x={},w=0;w=0)?x[T]=A:c[T]=A}Tt(c,x,t,0)}else c.attr(_)}}},e.prototype._clear=function(){var t=this,a=this._elMap;a.each(function(n){ff(n,ar(n).option,a,t._lastGraphicModel)}),this._elMap=Z()},e.prototype.dispose=function(){this._clear()},e.type="graphic",e}(zt);function jd(r){var e=$(nb,r)?nb[r]:Dh(r),t=new e({});return ar(t).type=r,t}function ib(r,e,t,a){var n=jd(t);return e.add(n),a.set(r,n),ar(n).id=r,ar(n).isNew=!0,n}function ff(r,e,t,a){var n=r&&r.parent;n&&(r.type==="group"&&r.traverse(function(i){ff(i,e,t,a)}),jh(r,e,a),t.removeKey(ar(r).id))}function ob(r,e,t,a){r.isGroup||D([["cursor",fr.prototype.cursor],["zlevel",a||0],["z",t||0],["z2",0]],function(n){var i=n[0];$(e,i)?r[i]=st(e[i],n[1]):r[i]==null&&(r[i]=n[1])}),D(_t(e),function(n){if(n.indexOf("on")===0){var i=e[n];r[n]=K(i)?i:null}}),$(e,"draggable")&&(r.draggable=e.draggable),e.name!=null&&(r.name=e.name),e.id!=null&&(r.id=e.id)}function H6(r){return r=V({},r),D(["id","parentId","$action","hv","bounding","textContent","clipPath"].concat(TA),function(e){delete r[e]}),r}function W6(r,e,t){var a=nt(r).eventData;!r.silent&&!r.ignore&&!a&&(a=nt(r).eventData={componentType:"graphic",componentIndex:e.componentIndex,name:r.name}),a&&(a.info=t.info)}function U6(r){r.registerComponentModel(G6),r.registerComponentView(F6),r.registerPreprocessor(function(e){var t=e.graphic;z(t)?!t[0]||!t[0].elements?e.graphic=[{elements:t}]:e.graphic=[e.graphic[0]]:t&&!t.elements&&(e.graphic=[{elements:[t]}])})}var sb=["x","y","radius","angle","single"],Y6=["cartesian2d","polar","singleAxis"];function X6(r){var e=r.get("coordinateSystem");return vt(Y6,e)>=0}function Wa(r){return r+"Axis"}function $6(r,e){var t=Z(),a=[],n=Z();r.eachComponent({mainType:"dataZoom",query:e},function(f){n.get(f.uid)||s(f)});var i;do i=!1,r.eachComponent("dataZoom",o);while(i);function o(f){!n.get(f.uid)&&l(f)&&(s(f),i=!0)}function s(f){n.set(f.uid,!0),a.push(f),u(f)}function l(f){var h=!1;return f.eachTargetAxis(function(v,c){var p=t.get(v);p&&p[c]&&(h=!0)}),h}function u(f){f.eachTargetAxis(function(h,v){(t.get(h)||t.set(h,[]))[v]=!0})}return a}function VI(r){var e=r.ecModel,t={infoList:[],infoMap:Z()};return r.eachTargetAxis(function(a,n){var i=e.getComponent(Wa(a),n);if(i){var o=i.getCoordSysModel();if(o){var s=o.uid,l=t.infoMap.get(s);l||(l={model:o,axisModels:[]},t.infoList.push(l),t.infoMap.set(s,l)),l.axisModels.push(i)}}}),t}var ip=function(){function r(){this.indexList=[],this.indexMap=[]}return r.prototype.add=function(e){this.indexMap[e]||(this.indexList.push(e),this.indexMap[e]=!0)},r}(),yl=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t._autoThrottle=!0,t._noTarget=!0,t._rangePropMode=["percent","percent"],t}return e.prototype.init=function(t,a,n){var i=lb(t);this.settledOption=i,this.mergeDefaultAndTheme(t,n),this._doInit(i)},e.prototype.mergeOption=function(t){var a=lb(t);ut(this.option,t,!0),ut(this.settledOption,a,!0),this._doInit(a)},e.prototype._doInit=function(t){var a=this.option;this._setDefaultThrottle(t),this._updateRangeUse(t);var n=this.settledOption;D([["start","startValue"],["end","endValue"]],function(i,o){this._rangePropMode[o]==="value"&&(a[i[0]]=n[i[0]]=null)},this),this._resetTarget()},e.prototype._resetTarget=function(){var t=this.get("orient",!0),a=this._targetAxisInfoMap=Z(),n=this._fillSpecifiedTargetAxis(a);n?this._orient=t||this._makeAutoOrientByTargetAxis():(this._orient=t||"horizontal",this._fillAutoTargetAxisByOrient(a,this._orient)),this._noTarget=!0,a.each(function(i){i.indexList.length&&(this._noTarget=!1)},this)},e.prototype._fillSpecifiedTargetAxis=function(t){var a=!1;return D(sb,function(n){var i=this.getReferringComponents(Wa(n),TP);if(i.specified){a=!0;var o=new ip;D(i.models,function(s){o.add(s.componentIndex)}),t.set(n,o)}},this),a},e.prototype._fillAutoTargetAxisByOrient=function(t,a){var n=this.ecModel,i=!0;if(i){var o=a==="vertical"?"y":"x",s=n.findComponents({mainType:o+"Axis"});l(s,o)}if(i){var s=n.findComponents({mainType:"singleAxis",filter:function(f){return f.get("orient",!0)===a}});l(s,"single")}function l(u,f){var h=u[0];if(h){var v=new ip;if(v.add(h.componentIndex),t.set(f,v),i=!1,f==="x"||f==="y"){var c=h.getReferringComponents("grid",jt).models[0];c&&D(u,function(p){h.componentIndex!==p.componentIndex&&c===p.getReferringComponents("grid",jt).models[0]&&v.add(p.componentIndex)})}}}i&&D(sb,function(u){if(i){var f=n.findComponents({mainType:Wa(u),filter:function(v){return v.get("type",!0)==="category"}});if(f[0]){var h=new ip;h.add(f[0].componentIndex),t.set(u,h),i=!1}}},this)},e.prototype._makeAutoOrientByTargetAxis=function(){var t;return this.eachTargetAxis(function(a){!t&&(t=a)},this),t==="y"?"vertical":"horizontal"},e.prototype._setDefaultThrottle=function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var a=this.ecModel.option;this.option.throttle=a.animation&&a.animationDurationUpdate>0?100:20}},e.prototype._updateRangeUse=function(t){var a=this._rangePropMode,n=this.get("rangeMode");D([["start","startValue"],["end","endValue"]],function(i,o){var s=t[i[0]]!=null,l=t[i[1]]!=null;s&&!l?a[o]="percent":!s&&l?a[o]="value":n?a[o]=n[o]:s&&(a[o]="percent")})},e.prototype.noTarget=function(){return this._noTarget},e.prototype.getFirstTargetAxisModel=function(){var t;return this.eachTargetAxis(function(a,n){t==null&&(t=this.ecModel.getComponent(Wa(a),n))},this),t},e.prototype.eachTargetAxis=function(t,a){this._targetAxisInfoMap.each(function(n,i){D(n.indexList,function(o){t.call(a,i,o)})})},e.prototype.getAxisProxy=function(t,a){var n=this.getAxisModel(t,a);if(n)return n.__dzAxisProxy},e.prototype.getAxisModel=function(t,a){var n=this._targetAxisInfoMap.get(t);if(n&&n.indexMap[a])return this.ecModel.getComponent(Wa(t),a)},e.prototype.setRawRange=function(t){var a=this.option,n=this.settledOption;D([["start","startValue"],["end","endValue"]],function(i){(t[i[0]]!=null||t[i[1]]!=null)&&(a[i[0]]=n[i[0]]=t[i[0]],a[i[1]]=n[i[1]]=t[i[1]])},this),this._updateRangeUse(t)},e.prototype.setCalculatedRange=function(t){var a=this.option;D(["start","startValue","end","endValue"],function(n){a[n]=t[n]})},e.prototype.getPercentRange=function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},e.prototype.getValueRange=function(t,a){if(t==null&&a==null){var n=this.findRepresentativeAxisProxy();if(n)return n.getDataValueWindow()}else return this.getAxisProxy(t,a).getDataValueWindow()},e.prototype.findRepresentativeAxisProxy=function(t){if(t)return t.__dzAxisProxy;for(var a,n=this._targetAxisInfoMap.keys(),i=0;io[1];if(_&&!S&&!b)return!0;_&&(g=!0),S&&(p=!0),b&&(d=!0)}return g&&p&&d})}else $i(f,function(c){if(i==="empty")l.setData(u=u.map(c,function(d){return s(d)?d:NaN}));else{var p={};p[c]=o,u.selectRange(p)}});$i(f,function(c){u.setApproximateExtent(o,c)})}});function s(l){return l>=o[0]&&l<=o[1]}},r.prototype._updateMinMaxSpan=function(){var e=this._minMaxSpan={},t=this._dataZoomModel,a=this._dataExtent;$i(["min","max"],function(n){var i=t.get(n+"Span"),o=t.get(n+"ValueSpan");o!=null&&(o=this.getAxisModel().axis.scale.parse(o)),o!=null?i=Dt(a[0]+o,a,[0,100],!0):i!=null&&(o=Dt(i,[0,100],a,!0)-a[0]),e[n+"Span"]=i,e[n+"ValueSpan"]=o},this)},r.prototype._setAxisModel=function(){var e=this.getAxisModel(),t=this._percentWindow,a=this._valueWindow;if(t){var n=wg(a,[0,500]);n=Math.min(n,20);var i=e.axis.scale.rawExtentInfo;t[0]!==0&&i.setDeterminedMinMax("min",+a[0].toFixed(n)),t[1]!==100&&i.setDeterminedMinMax("max",+a[1].toFixed(n)),i.freeze()}},r}();function j6(r,e,t){var a=[1/0,-1/0];$i(t,function(o){gB(a,o.getData(),e)});var n=r.getAxisModel(),i=rD(n.axis.scale,n,a).calculate();return[i.min,i.max]}var J6={getTargetSeries:function(r){function e(n){r.eachComponent("dataZoom",function(i){i.eachTargetAxis(function(o,s){var l=r.getComponent(Wa(o),s);n(o,s,l,i)})})}e(function(n,i,o,s){o.__dzAxisProxy=null});var t=[];e(function(n,i,o,s){o.__dzAxisProxy||(o.__dzAxisProxy=new K6(n,i,s,r),t.push(o.__dzAxisProxy))});var a=Z();return D(t,function(n){D(n.getTargetSeriesModels(),function(i){a.set(i.uid,i)})}),a},overallReset:function(r,e){r.eachComponent("dataZoom",function(t){t.eachTargetAxis(function(a,n){t.getAxisProxy(a,n).reset(t)}),t.eachTargetAxis(function(a,n){t.getAxisProxy(a,n).filterData(t,e)})}),r.eachComponent("dataZoom",function(t){var a=t.findRepresentativeAxisProxy();if(a){var n=a.getDataPercentWindow(),i=a.getDataValueWindow();t.setCalculatedRange({start:n[0],end:n[1],startValue:i[0],endValue:i[1]})}})}};function Q6(r){r.registerAction("dataZoom",function(e,t){var a=$6(t,e);D(a,function(n){n.setRawRange({start:e.start,end:e.end,startValue:e.startValue,endValue:e.endValue})})})}var fb=!1;function xm(r){fb||(fb=!0,r.registerProcessor(r.PRIORITY.PROCESSOR.FILTER,J6),Q6(r),r.registerSubTypeDefaulter("dataZoom",function(){return"slider"}))}function tU(r){r.registerComponentModel(Z6),r.registerComponentView(q6),xm(r)}var ir=function(){function r(){}return r}(),zI={};function Zi(r,e){zI[r]=e}function GI(r){return zI[r]}var eU=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.optionUpdated=function(){r.prototype.optionUpdated.apply(this,arguments);var t=this.ecModel;D(this.option.feature,function(a,n){var i=GI(n);i&&(i.getDefaultOption&&(i.defaultOption=i.getDefaultOption(t)),ut(a,i.defaultOption))})},e.type="toolbox",e.layoutMode={type:"box",ignoreSize:!0},e.defaultOption={show:!0,z:6,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{borderColor:"#666",color:"none"},emphasis:{iconStyle:{borderColor:"#3E98C5"}},tooltip:{show:!1,position:"bottom"}},e}(gt);function rU(r,e,t){var a=e.getBoxLayoutParams(),n=e.get("padding"),i={width:t.getWidth(),height:t.getHeight()},o=Jt(a,i,n);ei(e.get("orient"),r,e.get("itemGap"),o.width,o.height),kh(r,a,i,n)}function FI(r,e){var t=mi(e.get("padding")),a=e.getItemStyle(["color","opacity"]);return a.fill=e.get("backgroundColor"),r=new xt({shape:{x:r.x-t[3],y:r.y-t[0],width:r.width+t[1]+t[3],height:r.height+t[0]+t[2],r:e.get("borderRadius")},style:a,silent:!0,z2:-1}),r}var aU=function(r){N(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.render=function(t,a,n,i){var o=this.group;if(o.removeAll(),!t.get("show"))return;var s=+t.get("itemSize"),l=t.get("orient")==="vertical",u=t.get("feature")||{},f=this._features||(this._features={}),h=[];D(u,function(p,d){h.push(d)}),new ma(this._featureNames||[],h).add(v).update(v).remove(lt(v,null)).execute(),this._featureNames=h;function v(p,d){var g=h[p],y=h[d],m=u[g],_=new Ct(m,t,t.ecModel),S;if(i&&i.newTitle!=null&&i.featureName===g&&(m.title=i.newTitle),g&&!y){if(nU(g))S={onclick:_.option.onclick,featureName:g};else{var b=GI(g);if(!b)return;S=new b}f[g]=S}else if(S=f[y],!S)return;S.uid=Io("toolbox-feature"),S.model=_,S.ecModel=a,S.api=n;var x=S instanceof ir;if(!g&&y){x&&S.dispose&&S.dispose(a,n);return}if(!_.get("show")||x&&S.unusable){x&&S.remove&&S.remove(a,n);return}c(_,S,g),_.setIconStatus=function(w,T){var A=this.option,C=this.iconPaths;A.iconStatus=A.iconStatus||{},A.iconStatus[w]=T,C[w]&&(T==="emphasis"?ga:ya)(C[w])},S instanceof ir&&S.render&&S.render(_,a,n,i)}function c(p,d,g){var y=p.getModel("iconStyle"),m=p.getModel(["emphasis","iconStyle"]),_=d instanceof ir&&d.getIcons?d.getIcons():p.get("icon"),S=p.get("title")||{},b,x;Y(_)?(b={},b[g]=_):b=_,Y(S)?(x={},x[g]=S):x=S;var w=p.iconPaths={};D(b,function(T,A){var C=Do(T,{},{x:-s/2,y:-s/2,width:s,height:s});C.setStyle(y.getItemStyle());var M=C.ensureState("emphasis");M.style=m.getItemStyle();var I=new St({style:{text:x[A],align:m.get("textAlign"),borderRadius:m.get("textBorderRadius"),padding:m.get("textPadding"),fill:null,font:Wg({fontStyle:m.get("textFontStyle"),fontFamily:m.get("textFontFamily"),fontSize:m.get("textFontSize"),fontWeight:m.get("textFontWeight")},a)},ignore:!0});C.setTextContent(I),gi({el:C,componentModel:t,itemName:A,formatterParamsExtra:{title:x[A]}}),C.__title=x[A],C.on("mouseover",function(){var L=m.getItemStyle(),P=l?t.get("right")==null&&t.get("left")!=="right"?"right":"left":t.get("bottom")==null&&t.get("top")!=="bottom"?"bottom":"top";I.setStyle({fill:m.get("textFill")||L.fill||L.stroke||"#000",backgroundColor:m.get("textBackgroundColor")}),C.setTextConfig({position:m.get("textPosition")||P}),I.ignore=!t.get("showTitle"),n.enterEmphasis(this)}).on("mouseout",function(){p.get(["iconStatus",A])!=="emphasis"&&n.leaveEmphasis(this),I.hide()}),(p.get(["iconStatus",A])==="emphasis"?ga:ya)(C),o.add(C),C.on("click",X(d.onclick,d,a,n,A)),w[A]=C})}rU(o,t,n),o.add(FI(o.getBoundingRect(),t)),l||o.eachChild(function(p){var d=p.__title,g=p.ensureState("emphasis"),y=g.textConfig||(g.textConfig={}),m=p.getTextContent(),_=m&&m.ensureState("emphasis");if(_&&!K(_)&&d){var S=_.style||(_.style={}),b=Tl(d,St.makeFont(S)),x=p.x+o.x,w=p.y+o.y+s,T=!1;w+b.height>n.getHeight()&&(y.position="top",T=!0);var A=T?-5-b.height:s+10;x+b.width/2>n.getWidth()?(y.position=["100%",A],S.align="right"):x-b.width/2<0&&(y.position=[0,A],S.align="left")}})},e.prototype.updateView=function(t,a,n,i){D(this._features,function(o){o instanceof ir&&o.updateView&&o.updateView(o.model,a,n,i)})},e.prototype.remove=function(t,a){D(this._features,function(n){n instanceof ir&&n.remove&&n.remove(t,a)}),this.group.removeAll()},e.prototype.dispose=function(t,a){D(this._features,function(n){n instanceof ir&&n.dispose&&n.dispose(t,a)})},e.type="toolbox",e}(zt);function nU(r){return r.indexOf("my")===0}var iU=function(r){N(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.onclick=function(t,a){var n=this.model,i=n.get("name")||t.get("title.0.text")||"echarts",o=a.getZr().painter.getType()==="svg",s=o?"svg":n.get("type",!0)||"png",l=a.getConnectedDataURL({type:s,backgroundColor:n.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:n.get("connectedBackgroundColor"),excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")}),u=yt.browser;if(typeof MouseEvent=="function"&&(u.newEdge||!u.ie&&!u.edge)){var f=document.createElement("a");f.download=i+"."+s,f.target="_blank",f.href=l;var h=new MouseEvent("click",{view:document.defaultView,bubbles:!0,cancelable:!1});f.dispatchEvent(h)}else if(window.navigator.msSaveOrOpenBlob||o){var v=l.split(","),c=v[0].indexOf("base64")>-1,p=o?decodeURIComponent(v[1]):v[1];c&&(p=window.atob(p));var d=i+"."+s;if(window.navigator.msSaveOrOpenBlob){for(var g=p.length,y=new Uint8Array(g);g--;)y[g]=p.charCodeAt(g);var m=new Blob([y]);window.navigator.msSaveOrOpenBlob(m,d)}else{var _=document.createElement("iframe");document.body.appendChild(_);var S=_.contentWindow,b=S.document;b.open("image/svg+xml","replace"),b.write(p),b.close(),S.focus(),b.execCommand("SaveAs",!0,d),document.body.removeChild(_)}}else{var x=n.get("lang"),w='',T=window.open();T.document.write(w),T.document.title=i}},e.getDefaultOption=function(t){var a={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:t.getLocaleModel().get(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],lang:t.getLocaleModel().get(["toolbox","saveAsImage","lang"])};return a},e}(ir),hb="__ec_magicType_stack__",oU=[["line","bar"],["stack"]],sU=function(r){N(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.getIcons=function(){var t=this.model,a=t.get("icon"),n={};return D(t.get("type"),function(i){a[i]&&(n[i]=a[i])}),n},e.getDefaultOption=function(t){var a={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:t.getLocaleModel().get(["toolbox","magicType","title"]),option:{},seriesIndex:{}};return a},e.prototype.onclick=function(t,a,n){var i=this.model,o=i.get(["seriesIndex",n]);if(vb[n]){var s={series:[]},l=function(h){var v=h.subType,c=h.id,p=vb[n](v,c,h,i);p&&(J(p,h.option),s.series.push(p));var d=h.coordinateSystem;if(d&&d.type==="cartesian2d"&&(n==="line"||n==="bar")){var g=d.getAxesByScale("ordinal")[0];if(g){var y=g.dim,m=y+"Axis",_=h.getReferringComponents(m,jt).models[0],S=_.componentIndex;s[m]=s[m]||[];for(var b=0;b<=S;b++)s[m][S]=s[m][S]||{};s[m][S].boundaryGap=n==="bar"}}};D(oU,function(h){vt(h,n)>=0&&D(h,function(v){i.setIconStatus(v,"normal")})}),i.setIconStatus(n,"emphasis"),t.eachComponent({mainType:"series",query:o==null?null:{seriesIndex:o}},l);var u,f=n;n==="stack"&&(u=ut({stack:i.option.title.tiled,tiled:i.option.title.stack},i.option.title),i.get(["iconStatus",n])!=="emphasis"&&(f="tiled")),a.dispatchAction({type:"changeMagicType",currentType:f,newOption:s,newTitle:u,featureName:"magicType"})}},e}(ir),vb={line:function(r,e,t,a){if(r==="bar")return ut({id:e,type:"line",data:t.get("data"),stack:t.get("stack"),markPoint:t.get("markPoint"),markLine:t.get("markLine")},a.get(["option","line"])||{},!0)},bar:function(r,e,t,a){if(r==="line")return ut({id:e,type:"bar",data:t.get("data"),stack:t.get("stack"),markPoint:t.get("markPoint"),markLine:t.get("markLine")},a.get(["option","bar"])||{},!0)},stack:function(r,e,t,a){var n=t.get("stack")===hb;if(r==="line"||r==="bar")return a.setIconStatus("stack",n?"normal":"emphasis"),ut({id:e,stack:n?"":hb},a.get(["option","stack"])||{},!0)}};Rr({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(r,e){e.mergeOption(r.newOption)});var Jh=new Array(60).join("-"),_o=" ";function lU(r){var e={},t=[],a=[];return r.eachRawSeries(function(n){var i=n.coordinateSystem;if(i&&(i.type==="cartesian2d"||i.type==="polar")){var o=i.getBaseAxis();if(o.type==="category"){var s=o.dim+"_"+o.index;e[s]||(e[s]={categoryAxis:o,valueAxis:i.getOtherAxis(o),series:[]},a.push({axisDim:o.dim,axisIndex:o.index})),e[s].series.push(n)}else t.push(n)}else t.push(n)}),{seriesGroupByCategoryAxis:e,other:t,meta:a}}function uU(r){var e=[];return D(r,function(t,a){var n=t.categoryAxis,i=t.valueAxis,o=i.dim,s=[" "].concat(G(t.series,function(c){return c.name})),l=[n.model.getCategories()];D(t.series,function(c){var p=c.getRawData();l.push(c.getRawData().mapArray(p.mapDimension(o),function(d){return d}))});for(var u=[s.join(_o)],f=0;f=0)return!0}var Jd=new RegExp("["+_o+"]+","g");function cU(r){for(var e=r.split(/\n+/g),t=eh(e.shift()).split(Jd),a=[],n=G(t,function(l){return{name:l,data:[]}}),i=0;i=0;i--){var o=t[i];if(o[n])break}if(i<0){var s=r.queryComponents({mainType:"dataZoom",subType:"select",id:n})[0];if(s){var l=s.getPercentRange();t[0][n]={dataZoomId:n,start:l[0],end:l[1]}}}}),t.push(e)}function _U(r){var e=bm(r),t=e[e.length-1];e.length>1&&e.pop();var a={};return HI(t,function(n,i){for(var o=e.length-1;o>=0;o--)if(n=e[o][i],n){a[i]=n;break}}),a}function SU(r){WI(r).snapshots=null}function xU(r){return bm(r).length}function bm(r){var e=WI(r);return e.snapshots||(e.snapshots=[{}]),e.snapshots}var bU=function(r){N(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.onclick=function(t,a){SU(t),a.dispatchAction({type:"restore",from:this.uid})},e.getDefaultOption=function(t){var a={show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:t.getLocaleModel().get(["toolbox","restore","title"])};return a},e}(ir);Rr({type:"restore",event:"restore",update:"prepareAndUpdate"},function(r,e){e.resetOption("recreate")});var wU=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"],wm=function(){function r(e,t,a){var n=this;this._targetInfoList=[];var i=cb(t,e);D(TU,function(o,s){(!a||!a.include||vt(a.include,s)>=0)&&o(i,n._targetInfoList)})}return r.prototype.setOutputRanges=function(e,t){return this.matchOutputRanges(e,t,function(a,n,i){if((a.coordRanges||(a.coordRanges=[])).push(n),!a.coordRange){a.coordRange=n;var o=op[a.brushType](0,i,n);a.__rangeOffset={offset:yb[a.brushType](o.values,a.range,[1,1]),xyMinMax:o.xyMinMax}}}),e},r.prototype.matchOutputRanges=function(e,t,a){D(e,function(n){var i=this.findTargetInfo(n,t);i&&i!==!0&&D(i.coordSyses,function(o){var s=op[n.brushType](1,o,n.range,!0);a(n,s.values,o,t)})},this)},r.prototype.setInputRanges=function(e,t){D(e,function(a){var n=this.findTargetInfo(a,t);if(a.range=a.range||[],n&&n!==!0){a.panelId=n.panelId;var i=op[a.brushType](0,n.coordSys,a.coordRange),o=a.__rangeOffset;a.range=o?yb[a.brushType](i.values,o.offset,AU(i.xyMinMax,o.xyMinMax)):i.values}},this)},r.prototype.makePanelOpts=function(e,t){return G(this._targetInfoList,function(a){var n=a.getPanelRect();return{panelId:a.panelId,defaultBrushType:t?t(a):null,clipPath:jM(n),isTargetByCursor:QM(n,e,a.coordSysModel),getLinearBrushOtherExtent:JM(n)}})},r.prototype.controlSeries=function(e,t,a){var n=this.findTargetInfo(e,a);return n===!0||n&&vt(n.coordSyses,t.coordinateSystem)>=0},r.prototype.findTargetInfo=function(e,t){for(var a=this._targetInfoList,n=cb(t,e),i=0;ir[1]&&r.reverse(),r}function cb(r,e){return ks(r,e,{includeMainTypes:wU})}var TU={grid:function(r,e){var t=r.xAxisModels,a=r.yAxisModels,n=r.gridModels,i=Z(),o={},s={};!t&&!a&&!n||(D(t,function(l){var u=l.axis.grid.model;i.set(u.id,u),o[u.id]=!0}),D(a,function(l){var u=l.axis.grid.model;i.set(u.id,u),s[u.id]=!0}),D(n,function(l){i.set(l.id,l),o[l.id]=!0,s[l.id]=!0}),i.each(function(l){var u=l.coordinateSystem,f=[];D(u.getCartesians(),function(h,v){(vt(t,h.getAxis("x").model)>=0||vt(a,h.getAxis("y").model)>=0)&&f.push(h)}),e.push({panelId:"grid--"+l.id,gridModel:l,coordSysModel:l,coordSys:f[0],coordSyses:f,getPanelRect:db.grid,xAxisDeclared:o[l.id],yAxisDeclared:s[l.id]})}))},geo:function(r,e){D(r.geoModels,function(t){var a=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:a,coordSyses:[a],getPanelRect:db.geo})})}},pb=[function(r,e){var t=r.xAxisModel,a=r.yAxisModel,n=r.gridModel;return!n&&t&&(n=t.axis.grid.model),!n&&a&&(n=a.axis.grid.model),n&&n===e.gridModel},function(r,e){var t=r.geoModel;return t&&t===e.geoModel}],db={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var r=this.coordSys,e=r.getBoundingRect().clone();return e.applyTransform($a(r)),e}},op={lineX:lt(gb,0),lineY:lt(gb,1),rect:function(r,e,t,a){var n=r?e.pointToData([t[0][0],t[1][0]],a):e.dataToPoint([t[0][0],t[1][0]],a),i=r?e.pointToData([t[0][1],t[1][1]],a):e.dataToPoint([t[0][1],t[1][1]],a),o=[Qd([n[0],i[0]]),Qd([n[1],i[1]])];return{values:o,xyMinMax:o}},polygon:function(r,e,t,a){var n=[[1/0,-1/0],[1/0,-1/0]],i=G(t,function(o){var s=r?e.pointToData(o,a):e.dataToPoint(o,a);return n[0][0]=Math.min(n[0][0],s[0]),n[1][0]=Math.min(n[1][0],s[1]),n[0][1]=Math.max(n[0][1],s[0]),n[1][1]=Math.max(n[1][1],s[1]),s});return{values:i,xyMinMax:n}}};function gb(r,e,t,a){var n=t.getAxis(["x","y"][r]),i=Qd(G([0,1],function(s){return e?n.coordToData(n.toLocalCoord(a[s]),!0):n.toGlobalCoord(n.dataToCoord(a[s]))})),o=[];return o[r]=i,o[1-r]=[NaN,NaN],{values:i,xyMinMax:o}}var yb={lineX:lt(mb,0),lineY:lt(mb,1),rect:function(r,e,t){return[[r[0][0]-t[0]*e[0][0],r[0][1]-t[0]*e[0][1]],[r[1][0]-t[1]*e[1][0],r[1][1]-t[1]*e[1][1]]]},polygon:function(r,e,t){return G(r,function(a,n){return[a[0]-t[0]*e[n][0],a[1]-t[1]*e[n][1]]})}};function mb(r,e,t,a){return[e[0]-a[r]*t[0],e[1]-a[r]*t[1]]}function AU(r,e){var t=_b(r),a=_b(e),n=[t[0]/a[0],t[1]/a[1]];return isNaN(n[0])&&(n[0]=1),isNaN(n[1])&&(n[1]=1),n}function _b(r){return r?[r[0][1]-r[0][0],r[1][1]-r[1][0]]:[NaN,NaN]}var tg=D,CU=_P("toolbox-dataZoom_"),DU=function(r){N(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.render=function(t,a,n,i){this._brushController||(this._brushController=new Ky(n.getZr()),this._brushController.on("brush",X(this._onBrush,this)).mount()),LU(t,a,this,i,n),IU(t,a)},e.prototype.onclick=function(t,a,n){MU[n].call(this)},e.prototype.remove=function(t,a){this._brushController&&this._brushController.unmount()},e.prototype.dispose=function(t,a){this._brushController&&this._brushController.dispose()},e.prototype._onBrush=function(t){var a=t.areas;if(!t.isEnd||!a.length)return;var n={},i=this.ecModel;this._brushController.updateCovers([]);var o=new wm(Tm(this.model),i,{include:["grid"]});o.matchOutputRanges(a,i,function(u,f,h){if(h.type==="cartesian2d"){var v=u.brushType;v==="rect"?(s("x",h,f[0]),s("y",h,f[1])):s({lineX:"x",lineY:"y"}[v],h,f)}}),mU(i,n),this._dispatchZoomAction(n);function s(u,f,h){var v=f.getAxis(u),c=v.model,p=l(u,c,i),d=p.findRepresentativeAxisProxy(c).getMinMaxSpan();(d.minValueSpan!=null||d.maxValueSpan!=null)&&(h=bi(0,h.slice(),v.scale.getExtent(),0,d.minValueSpan,d.maxValueSpan)),p&&(n[p.id]={dataZoomId:p.id,startValue:h[0],endValue:h[1]})}function l(u,f,h){var v;return h.eachComponent({mainType:"dataZoom",subType:"select"},function(c){var p=c.getAxisModel(u,f.componentIndex);p&&(v=c)}),v}},e.prototype._dispatchZoomAction=function(t){var a=[];tg(t,function(n,i){a.push(rt(n))}),a.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:a})},e.getDefaultOption=function(t){var a={show:!0,filterMode:"filter",icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:t.getLocaleModel().get(["toolbox","dataZoom","title"]),brushStyle:{borderWidth:0,color:"rgba(210,219,238,0.2)"}};return a},e}(ir),MU={zoom:function(){var r=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:r})},back:function(){this._dispatchZoomAction(_U(this.ecModel))}};function Tm(r){var e={xAxisIndex:r.get("xAxisIndex",!0),yAxisIndex:r.get("yAxisIndex",!0),xAxisId:r.get("xAxisId",!0),yAxisId:r.get("yAxisId",!0)};return e.xAxisIndex==null&&e.xAxisId==null&&(e.xAxisIndex="all"),e.yAxisIndex==null&&e.yAxisId==null&&(e.yAxisIndex="all"),e}function IU(r,e){r.setIconStatus("back",xU(e)>1?"emphasis":"normal")}function LU(r,e,t,a,n){var i=t._isZoomActive;a&&a.type==="takeGlobalCursor"&&(i=a.key==="dataZoomSelect"?a.dataZoomSelectActive:!1),t._isZoomActive=i,r.setIconStatus("zoom",i?"emphasis":"normal");var o=new wm(Tm(r),e,{include:["grid"]}),s=o.makePanelOpts(n,function(l){return l.xAxisDeclared&&!l.yAxisDeclared?"lineX":!l.xAxisDeclared&&l.yAxisDeclared?"lineY":"rect"});t._brushController.setPanels(s).enableBrush(i&&s.length?{brushType:"auto",brushStyle:r.getModel("brushStyle").getItemStyle()}:!1)}HE("dataZoom",function(r){var e=r.getComponent("toolbox",0),t=["feature","dataZoom"];if(!e||e.get(t)==null)return;var a=e.getModel(t),n=[],i=Tm(a),o=ks(r,i);tg(o.xAxisModels,function(l){return s(l,"xAxis","xAxisIndex")}),tg(o.yAxisModels,function(l){return s(l,"yAxis","yAxisIndex")});function s(l,u,f){var h=l.componentIndex,v={type:"select",$fromToolbox:!0,filterMode:a.get("filterMode",!0)||"filter",id:CU+u+h};v[f]=h,n.push(v)}return n});function PU(r){r.registerComponentModel(eU),r.registerComponentView(aU),Zi("saveAsImage",iU),Zi("magicType",sU),Zi("dataView",gU),Zi("dataZoom",DU),Zi("restore",bU),pt(tU)}var RU=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.type="tooltip",e.dependencies=["axisPointer"],e.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},e}(gt);function UI(r){var e=r.get("confine");return e!=null?!!e:r.get("renderMode")==="richText"}function YI(r){if(yt.domSupported){for(var e=document.documentElement.style,t=0,a=r.length;t-1?(s+="top:50%",l+="translateY(-50%) rotate("+(u=i==="left"?-225:-45)+"deg)"):(s+="left:50%",l+="translateX(-50%) rotate("+(u=i==="top"?225:45)+"deg)");var f=u*Math.PI/180,h=o+n,v=h*Math.abs(Math.cos(f))+h*Math.abs(Math.sin(f)),c=Math.round(((v-Math.SQRT2*n)/2+Math.SQRT2*n-(v-h)/2)*100)/100;s+=";"+i+":-"+c+"px";var p=e+" solid "+n+"px;",d=["position:absolute;width:"+o+"px;height:"+o+"px;z-index:-1;",s+";"+l+";","border-bottom:"+p,"border-right:"+p,"background-color:"+a+";"];return'
'}function zU(r,e){var t="cubic-bezier(0.23,1,0.32,1)",a=" "+r/2+"s "+t,n="opacity"+a+",visibility"+a;return e||(a=" "+r+"s "+t,n+=yt.transformSupported?","+Am+a:",left"+a+",top"+a),OU+":"+n}function Sb(r,e,t){var a=r.toFixed(0)+"px",n=e.toFixed(0)+"px";if(!yt.transformSupported)return t?"top:"+n+";left:"+a+";":[["top",n],["left",a]];var i=yt.transform3dSupported,o="translate"+(i?"3d":"")+"("+a+","+n+(i?",0":"")+")";return t?"top:0;left:0;"+Am+":"+o+";":[["top",0],["left",0],[XI,o]]}function GU(r){var e=[],t=r.get("fontSize"),a=r.getTextColor();a&&e.push("color:"+a),e.push("font:"+r.getFont());var n=st(r.get("lineHeight"),Math.round(t*3/2));t&&e.push("line-height:"+n+"px");var i=r.get("textShadowColor"),o=r.get("textShadowBlur")||0,s=r.get("textShadowOffsetX")||0,l=r.get("textShadowOffsetY")||0;return i&&o&&e.push("text-shadow:"+s+"px "+l+"px "+o+"px "+i),D(["decoration","align"],function(u){var f=r.get(u);f&&e.push("text-"+u+":"+f)}),e.join(";")}function FU(r,e,t){var a=[],n=r.get("transitionDuration"),i=r.get("backgroundColor"),o=r.get("shadowBlur"),s=r.get("shadowColor"),l=r.get("shadowOffsetX"),u=r.get("shadowOffsetY"),f=r.getModel("textStyle"),h=rC(r,"html"),v=l+"px "+u+"px "+o+"px "+s;return a.push("box-shadow:"+v),e&&n&&a.push(zU(n,t)),i&&a.push("background-color:"+i),D(["width","color","radius"],function(c){var p="border-"+c,d=jg(p),g=r.get(d);g!=null&&a.push(p+":"+g+(c==="color"?"":"px"))}),a.push(GU(f)),h!=null&&a.push("padding:"+mi(h).join("px ")+"px"),a.join(";")+";"}function xb(r,e,t,a,n){var i=e&&e.painter;if(t){var o=i&&i.getViewportRoot();o&&UL(r,o,t,a,n)}else{r[0]=a,r[1]=n;var s=i&&i.getViewportRootOffset();s&&(r[0]+=s.offsetLeft,r[1]+=s.offsetTop)}r[2]=r[0]/e.getWidth(),r[3]=r[1]/e.getHeight()}var HU=function(){function r(e,t){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._alwaysShowContent=!1,this._firstShow=!0,this._longHide=!0,yt.wxa)return null;var a=document.createElement("div");a.domBelongToZr=!0,this.el=a;var n=this._zr=e.getZr(),i=t.appendTo,o=i&&(Y(i)?document.querySelector(i):ii(i)?i:K(i)&&i(e.getDom()));xb(this._styleCoord,n,o,e.getWidth()/2,e.getHeight()/2),(o||e.getDom()).appendChild(a),this._api=e,this._container=o;var s=this;a.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},a.onmousemove=function(l){if(l=l||window.event,!s._enterable){var u=n.handler,f=n.painter.getViewportRoot();tr(f,l,!0),u.dispatch("mousemove",l)}},a.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return r.prototype.update=function(e){if(!this._container){var t=this._api.getDom(),a=kU(t,"position"),n=t.style;n.position!=="absolute"&&a!=="absolute"&&(n.position="relative")}var i=e.get("alwaysShowContent");i&&this._moveIfResized(),this._alwaysShowContent=i,this.el.className=e.get("className")||""},r.prototype.show=function(e,t){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var a=this.el,n=a.style,i=this._styleCoord;a.innerHTML?n.cssText=NU+FU(e,!this._firstShow,this._longHide)+Sb(i[0],i[1],!0)+("border-color:"+fi(t)+";")+(e.get("extraCssText")||"")+(";pointer-events:"+(this._enterable?"auto":"none")):n.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},r.prototype.setContent=function(e,t,a,n,i){var o=this.el;if(e==null){o.innerHTML="";return}var s="";if(Y(i)&&a.get("trigger")==="item"&&!UI(a)&&(s=VU(a,n,i)),Y(e))o.innerHTML=e+s;else if(e){o.innerHTML="",z(e)||(e=[e]);for(var l=0;l=0?this._tryShow(i,o):n==="leave"&&this._hide(o))},this))},e.prototype._keepShow=function(){var t=this._tooltipModel,a=this._ecModel,n=this._api,i=t.get("triggerOn");if(this._lastX!=null&&this._lastY!=null&&i!=="none"&&i!=="click"){var o=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!n.isDisposed()&&o.manuallyShowTip(t,a,n,{x:o._lastX,y:o._lastY,dataByCoordSys:o._lastDataByCoordSys})})}},e.prototype.manuallyShowTip=function(t,a,n,i){if(!(i.from===this.uid||yt.node||!n.getDom())){var o=Tb(i,n);this._ticket="";var s=i.dataByCoordSys,l=qU(i,a,n);if(l){var u=l.el.getBoundingRect().clone();u.applyTransform(l.el.transform),this._tryShow({offsetX:u.x+u.width/2,offsetY:u.y+u.height/2,target:l.el,position:i.position,positionDefault:"bottom"},o)}else if(i.tooltip&&i.x!=null&&i.y!=null){var f=UU;f.x=i.x,f.y=i.y,f.update(),nt(f).tooltipConfig={name:null,option:i.tooltip},this._tryShow({offsetX:i.x,offsetY:i.y,target:f},o)}else if(s)this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,dataByCoordSys:s,tooltipOption:i.tooltipOption},o);else if(i.seriesIndex!=null){if(this._manuallyAxisShowTip(t,a,n,i))return;var h=RI(i,a),v=h.point[0],c=h.point[1];v!=null&&c!=null&&this._tryShow({offsetX:v,offsetY:c,target:h.el,position:i.position,positionDefault:"bottom"},o)}else i.x!=null&&i.y!=null&&(n.dispatchAction({type:"updateAxisPointer",x:i.x,y:i.y}),this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,target:n.getZr().findHover(i.x,i.y).target},o))}},e.prototype.manuallyHideTip=function(t,a,n,i){var o=this._tooltipContent;this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,i.from!==this.uid&&this._hide(Tb(i,n))},e.prototype._manuallyAxisShowTip=function(t,a,n,i){var o=i.seriesIndex,s=i.dataIndex,l=a.getComponent("axisPointer").coordSysAxesInfo;if(!(o==null||s==null||l==null)){var u=a.getSeriesByIndex(o);if(u){var f=u.getData(),h=fs([f.getItemModel(s),u,(u.coordinateSystem||{}).model],this._tooltipModel);if(h.get("trigger")==="axis")return n.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:s,position:i.position}),!0}}},e.prototype._tryShow=function(t,a){var n=t.target,i=this._tooltipModel;if(i){this._lastX=t.offsetX,this._lastY=t.offsetY;var o=t.dataByCoordSys;if(o&&o.length)this._showAxisTooltip(o,t);else if(n){var s=nt(n);if(s.ssrType==="legend")return;this._lastDataByCoordSys=null;var l,u;Zn(n,function(f){if(nt(f).dataIndex!=null)return l=f,!0;if(nt(f).tooltipConfig!=null)return u=f,!0},!0),l?this._showSeriesItemTooltip(t,l,a):u?this._showComponentItemTooltip(t,u,a):this._hide(a)}else this._lastDataByCoordSys=null,this._hide(a)}},e.prototype._showOrMove=function(t,a){var n=t.get("showDelay");a=X(a,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(a,n):a()},e.prototype._showAxisTooltip=function(t,a){var n=this._ecModel,i=this._tooltipModel,o=[a.offsetX,a.offsetY],s=fs([a.tooltipOption],i),l=this._renderMode,u=[],f=se("section",{blocks:[],noHeader:!0}),h=[],v=new Yv;D(t,function(m){D(m.dataByAxis,function(_){var S=n.getComponent(_.axisDim+"Axis",_.axisIndex),b=_.value;if(!(!S||b==null)){var x=MI(b,S.axis,n,_.seriesDataIndices,_.valueLabelOpt),w=se("section",{header:x,noHeader:!sr(x),sortBlocks:!0,blocks:[]});f.blocks.push(w),D(_.seriesDataIndices,function(T){var A=n.getSeriesByIndex(T.seriesIndex),C=T.dataIndexInside,M=A.getDataParams(C);if(!(M.dataIndex<0)){M.axisDim=_.axisDim,M.axisIndex=_.axisIndex,M.axisType=_.axisType,M.axisId=_.axisId,M.axisValue=Ty(S.axis,{value:b}),M.axisValueLabel=x,M.marker=v.makeTooltipMarker("item",fi(M.color),l);var I=f_(A.formatTooltip(C,!0,null)),L=I.frag;if(L){var P=fs([A],i).get("valueFormatter");w.blocks.push(P?V({valueFormatter:P},L):L)}I.text&&h.push(I.text),u.push(M)}})}})}),f.blocks.reverse(),h.reverse();var c=a.position,p=s.get("order"),d=g_(f,v,l,p,n.get("useUTC"),s.get("textStyle"));d&&h.unshift(d);var g=l==="richText"?` + +`:"
",y=h.join(g);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(t,u)?this._updatePosition(s,c,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(s,y,u,Math.random()+"",o[0],o[1],c,null,v)})},e.prototype._showSeriesItemTooltip=function(t,a,n){var i=this._ecModel,o=nt(a),s=o.seriesIndex,l=i.getSeriesByIndex(s),u=o.dataModel||l,f=o.dataIndex,h=o.dataType,v=u.getData(h),c=this._renderMode,p=t.positionDefault,d=fs([v.getItemModel(f),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,p?{position:p}:null),g=d.get("trigger");if(!(g!=null&&g!=="item")){var y=u.getDataParams(f,h),m=new Yv;y.marker=m.makeTooltipMarker("item",fi(y.color),c);var _=f_(u.formatTooltip(f,!1,h)),S=d.get("order"),b=d.get("valueFormatter"),x=_.frag,w=x?g_(b?V({valueFormatter:b},x):x,m,c,S,i.get("useUTC"),d.get("textStyle")):_.text,T="item_"+u.name+"_"+f;this._showOrMove(d,function(){this._showTooltipContent(d,w,y,T,t.offsetX,t.offsetY,t.position,t.target,m)}),n({type:"showTip",dataIndexInside:f,dataIndex:v.getRawIndex(f),seriesIndex:s,from:this.uid})}},e.prototype._showComponentItemTooltip=function(t,a,n){var i=this._renderMode==="html",o=nt(a),s=o.tooltipConfig,l=s.option||{},u=l.encodeHTMLContent;if(Y(l)){var f=l;l={content:f,formatter:f},u=!0}u&&i&&l.content&&(l=rt(l),l.content=Se(l.content));var h=[l],v=this._ecModel.getComponent(o.componentMainType,o.componentIndex);v&&h.push(v),h.push({formatter:l.content});var c=t.positionDefault,p=fs(h,this._tooltipModel,c?{position:c}:null),d=p.get("content"),g=Math.random()+"",y=new Yv;this._showOrMove(p,function(){var m=rt(p.get("formatterParams")||{});this._showTooltipContent(p,d,m,g,t.offsetX,t.offsetY,t.position,a,y)}),n({type:"showTip",from:this.uid})},e.prototype._showTooltipContent=function(t,a,n,i,o,s,l,u,f){if(this._ticket="",!(!t.get("showContent")||!t.get("show"))){var h=this._tooltipContent;h.setEnterable(t.get("enterable"));var v=t.get("formatter");l=l||t.get("position");var c=a,p=this._getNearestPoint([o,s],n,t.get("trigger"),t.get("borderColor")),d=p.color;if(v)if(Y(v)){var g=t.ecModel.get("useUTC"),y=z(n)?n[0]:n,m=y&&y.axisType&&y.axisType.indexOf("time")>=0;c=v,m&&(c=Pl(y.axisValue,c,g)),c=Jg(c,n,!0)}else if(K(v)){var _=X(function(S,b){S===this._ticket&&(h.setContent(b,f,t,d,l),this._updatePosition(t,l,o,s,h,n,u))},this);this._ticket=i,c=v(n,i,_)}else c=v;h.setContent(c,f,t,d,l),h.show(t,d),this._updatePosition(t,l,o,s,h,n,u)}},e.prototype._getNearestPoint=function(t,a,n,i){if(n==="axis"||z(a))return{color:i||(this._renderMode==="html"?"#fff":"none")};if(!z(a))return{color:i||a.color||a.borderColor}},e.prototype._updatePosition=function(t,a,n,i,o,s,l){var u=this._api.getWidth(),f=this._api.getHeight();a=a||t.get("position");var h=o.getSize(),v=t.get("align"),c=t.get("verticalAlign"),p=l&&l.getBoundingRect().clone();if(l&&p.applyTransform(l.transform),K(a)&&(a=a([n,i],s,o.el,p,{viewSize:[u,f],contentSize:h.slice()})),z(a))n=W(a[0],u),i=W(a[1],f);else if(tt(a)){var d=a;d.width=h[0],d.height=h[1];var g=Jt(d,{width:u,height:f});n=g.x,i=g.y,v=null,c=null}else if(Y(a)&&l){var y=ZU(a,p,h,t.get("borderWidth"));n=y[0],i=y[1]}else{var y=XU(n,i,o,u,f,v?null:20,c?null:20);n=y[0],i=y[1]}if(v&&(n-=Ab(v)?h[0]/2:v==="right"?h[0]:0),c&&(i-=Ab(c)?h[1]/2:c==="bottom"?h[1]:0),UI(t)){var y=$U(n,i,o,u,f);n=y[0],i=y[1]}o.moveTo(n,i)},e.prototype._updateContentNotChangedOnAxis=function(t,a){var n=this._lastDataByCoordSys,i=this._cbParamsList,o=!!n&&n.length===t.length;return o&&D(n,function(s,l){var u=s.dataByAxis||[],f=t[l]||{},h=f.dataByAxis||[];o=o&&u.length===h.length,o&&D(u,function(v,c){var p=h[c]||{},d=v.seriesDataIndices||[],g=p.seriesDataIndices||[];o=o&&v.value===p.value&&v.axisType===p.axisType&&v.axisId===p.axisId&&d.length===g.length,o&&D(d,function(y,m){var _=g[m];o=o&&y.seriesIndex===_.seriesIndex&&y.dataIndex===_.dataIndex}),i&&D(v.seriesDataIndices,function(y){var m=y.seriesIndex,_=a[m],S=i[m];_&&S&&S.data!==_.data&&(o=!1)})})}),this._lastDataByCoordSys=t,this._cbParamsList=a,!!o},e.prototype._hide=function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},e.prototype.dispose=function(t,a){yt.node||!a.getDom()||(nl(this,"_updatePosition"),this._tooltipContent.dispose(),qd("itemTooltip",a))},e.type="tooltip",e}(zt);function fs(r,e,t){var a=e.ecModel,n;t?(n=new Ct(t,a,a),n=new Ct(e.option,n,a)):n=e;for(var i=r.length-1;i>=0;i--){var o=r[i];o&&(o instanceof Ct&&(o=o.get("tooltip",!0)),Y(o)&&(o={formatter:o}),o&&(n=new Ct(o,n,a)))}return n}function Tb(r,e){return r.dispatchAction||X(e.dispatchAction,e)}function XU(r,e,t,a,n,i,o){var s=t.getSize(),l=s[0],u=s[1];return i!=null&&(r+l+i+2>a?r-=l+i:r+=i),o!=null&&(e+u+o>n?e-=u+o:e+=o),[r,e]}function $U(r,e,t,a,n){var i=t.getSize(),o=i[0],s=i[1];return r=Math.min(r+o,a)-o,e=Math.min(e+s,n)-s,r=Math.max(r,0),e=Math.max(e,0),[r,e]}function ZU(r,e,t,a){var n=t[0],i=t[1],o=Math.ceil(Math.SQRT2*a)+8,s=0,l=0,u=e.width,f=e.height;switch(r){case"inside":s=e.x+u/2-n/2,l=e.y+f/2-i/2;break;case"top":s=e.x+u/2-n/2,l=e.y-i-o;break;case"bottom":s=e.x+u/2-n/2,l=e.y+f+o;break;case"left":s=e.x-n-o,l=e.y+f/2-i/2;break;case"right":s=e.x+u+o,l=e.y+f/2-i/2}return[s,l]}function Ab(r){return r==="center"||r==="middle"}function qU(r,e,t){var a=Mg(r).queryOptionMap,n=a.keys()[0];if(!(!n||n==="series")){var i=Al(e,n,a.get(n),{useDefault:!1,enableAll:!1,enableNone:!1}),o=i.models[0];if(o){var s=t.getViewOfComponentModel(o),l;if(s.group.traverse(function(u){var f=nt(u).tooltipConfig;if(f&&f.name===r.name)return l=u,!0}),l)return{componentMainType:n,componentIndex:o.componentIndex,el:l}}}}function KU(r){pt(Hl),r.registerComponentModel(RU),r.registerComponentView(YU),r.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},Xt),r.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},Xt)}var jU=["rect","polygon","keep","clear"];function JU(r,e){var t=Rt(r?r.brush:[]);if(t.length){var a=[];D(t,function(l){var u=l.hasOwnProperty("toolbox")?l.toolbox:[];u instanceof Array&&(a=a.concat(u))});var n=r&&r.toolbox;z(n)&&(n=n[0]),n||(n={feature:{}},r.toolbox=[n]);var i=n.feature||(n.feature={}),o=i.brush||(i.brush={}),s=o.type||(o.type=[]);s.push.apply(s,a),QU(s),e&&!s.length&&s.push.apply(s,jU)}}function QU(r){var e={};D(r,function(t){e[t]=1}),r.length=0,D(e,function(t,a){r.push(a)})}var Cb=D;function Db(r){if(r){for(var e in r)if(r.hasOwnProperty(e))return!0}}function eg(r,e,t){var a={};return Cb(e,function(i){var o=a[i]=n();Cb(r[i],function(s,l){if(ie.isValidType(l)){var u={type:l,visual:s};t&&t(u,i),o[l]=new ie(u),l==="opacity"&&(u=rt(u),u.type="colorAlpha",o.__hidden.__alphaForOpacity=new ie(u))}})}),a;function n(){var i=function(){};i.prototype.__hidden=i.prototype;var o=new i;return o}}function ZI(r,e,t){var a;D(t,function(n){e.hasOwnProperty(n)&&Db(e[n])&&(a=!0)}),a&&D(t,function(n){e.hasOwnProperty(n)&&Db(e[n])?r[n]=rt(e[n]):delete r[n]})}function t8(r,e,t,a,n,i){var o={};D(r,function(h){var v=ie.prepareVisualTypes(e[h]);o[h]=v});var s;function l(h){return ly(t,s,h)}function u(h,v){vC(t,s,h,v)}t.each(f);function f(h,v){s=h;var c=t.getRawDataItem(s);if(!(c&&c.visualMap===!1))for(var p=a.call(n,h),d=e[p],g=o[p],y=0,m=g.length;ye[0][1]&&(e[0][1]=i[0]),i[1]e[1][1]&&(e[1][1]=i[1])}return e&&Rb(e)}};function Rb(r){return new ht(r[0][0],r[1][0],r[0][1]-r[0][0],r[1][1]-r[1][0])}var l8=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(t,a){this.ecModel=t,this.api=a,this.model,(this._brushController=new Ky(a.getZr())).on("brush",X(this._onBrush,this)).mount()},e.prototype.render=function(t,a,n,i){this.model=t,this._updateController(t,a,n,i)},e.prototype.updateTransform=function(t,a,n,i){qI(a),this._updateController(t,a,n,i)},e.prototype.updateVisual=function(t,a,n,i){this.updateTransform(t,a,n,i)},e.prototype.updateView=function(t,a,n,i){this._updateController(t,a,n,i)},e.prototype._updateController=function(t,a,n,i){(!i||i.$from!==t.id)&&this._brushController.setPanels(t.brushTargetManager.makePanelOpts(n)).enableBrush(t.brushOption).updateCovers(t.areas.slice())},e.prototype.dispose=function(){this._brushController.dispose()},e.prototype._onBrush=function(t){var a=this.model.id,n=this.model.brushTargetManager.setOutputRanges(t.areas,this.ecModel);(!t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:a,areas:rt(n),$from:a}),t.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:a,areas:rt(n),$from:a})},e.type="brush",e}(zt),u8="#ddd",f8=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.areas=[],t.brushOption={},t}return e.prototype.optionUpdated=function(t,a){var n=this.option;!a&&ZI(n,t,["inBrush","outOfBrush"]);var i=n.inBrush=n.inBrush||{};n.outOfBrush=n.outOfBrush||{color:u8},i.hasOwnProperty("liftZ")||(i.liftZ=5)},e.prototype.setAreas=function(t){t&&(this.areas=G(t,function(a){return Eb(this.option,a)},this))},e.prototype.setBrushOption=function(t){this.brushOption=Eb(this.option,t),this.brushType=this.brushOption.brushType},e.type="brush",e.dependencies=["geo","grid","xAxis","yAxis","parallel","series"],e.defaultOption={seriesIndex:"all",brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(210,219,238,0.3)",borderColor:"#D2DBEE"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},e}(gt);function Eb(r,e){return ut({brushType:r.brushType,brushMode:r.brushMode,transformable:r.transformable,brushStyle:new Ct(r.brushStyle).getItemStyle(),removeOnClick:r.removeOnClick,z:r.z},e,!0)}var h8=["rect","polygon","lineX","lineY","keep","clear"],v8=function(r){N(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.render=function(t,a,n){var i,o,s;a.eachComponent({mainType:"brush"},function(l){i=l.brushType,o=l.brushOption.brushMode||"single",s=s||!!l.areas.length}),this._brushType=i,this._brushMode=o,D(t.get("type",!0),function(l){t.setIconStatus(l,(l==="keep"?o==="multiple":l==="clear"?s:l===i)?"emphasis":"normal")})},e.prototype.updateView=function(t,a,n){this.render(t,a,n)},e.prototype.getIcons=function(){var t=this.model,a=t.get("icon",!0),n={};return D(t.get("type",!0),function(i){a[i]&&(n[i]=a[i])}),n},e.prototype.onclick=function(t,a,n){var i=this._brushType,o=this._brushMode;n==="clear"?(a.dispatchAction({type:"axisAreaSelect",intervals:[]}),a.dispatchAction({type:"brush",command:"clear",areas:[]})):a.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:n==="keep"?i:i===n?!1:n,brushMode:n==="keep"?o==="multiple"?"single":"multiple":o}})},e.getDefaultOption=function(t){var a={show:!0,type:h8.slice(),icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:t.getLocaleModel().get(["toolbox","brush","title"])};return a},e}(ir);function c8(r){r.registerComponentView(l8),r.registerComponentModel(f8),r.registerPreprocessor(JU),r.registerVisual(r.PRIORITY.VISUAL.BRUSH,a8),r.registerAction({type:"brush",event:"brush",update:"updateVisual"},function(e,t){t.eachComponent({mainType:"brush",query:e},function(a){a.setAreas(e.areas)})}),r.registerAction({type:"brushSelect",event:"brushSelected",update:"none"},Xt),r.registerAction({type:"brushEnd",event:"brushEnd",update:"none"},Xt),Zi("brush",v8)}var p8=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.layoutMode={type:"box",ignoreSize:!0},t}return e.type="title",e.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},e}(gt),d8=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.render=function(t,a,n){if(this.group.removeAll(),!!t.get("show")){var i=this.group,o=t.getModel("textStyle"),s=t.getModel("subtextStyle"),l=t.get("textAlign"),u=st(t.get("textBaseline"),t.get("textVerticalAlign")),f=new St({style:Nt(o,{text:t.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),h=f.getBoundingRect(),v=t.get("subtext"),c=new St({style:Nt(s,{text:v,fill:s.getTextColor(),y:h.height+t.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),p=t.get("link"),d=t.get("sublink"),g=t.get("triggerEvent",!0);f.silent=!p&&!g,c.silent=!d&&!g,p&&f.on("click",function(){If(p,"_"+t.get("target"))}),d&&c.on("click",function(){If(d,"_"+t.get("subtarget"))}),nt(f).eventData=nt(c).eventData=g?{componentType:"title",componentIndex:t.componentIndex}:null,i.add(f),v&&i.add(c);var y=i.getBoundingRect(),m=t.getBoxLayoutParams();m.width=y.width,m.height=y.height;var _=Jt(m,{width:n.getWidth(),height:n.getHeight()},t.get("padding"));l||(l=t.get("left")||t.get("right"),l==="middle"&&(l="center"),l==="right"?_.x+=_.width:l==="center"&&(_.x+=_.width/2)),u||(u=t.get("top")||t.get("bottom"),u==="center"&&(u="middle"),u==="bottom"?_.y+=_.height:u==="middle"&&(_.y+=_.height/2),u=u||"top"),i.x=_.x,i.y=_.y,i.markRedraw();var S={align:l,verticalAlign:u};f.setStyle(S),c.setStyle(S),y=i.getBoundingRect();var b=_.margin,x=t.getItemStyle(["color","opacity"]);x.fill=t.get("backgroundColor");var w=new xt({shape:{x:y.x-b[3],y:y.y-b[0],width:y.width+b[1]+b[3],height:y.height+b[0]+b[2],r:t.get("borderRadius")},style:x,subPixelOptimize:!0,silent:!0});i.add(w)}},e.type="title",e}(zt);function g8(r){r.registerComponentModel(p8),r.registerComponentView(d8)}var kb=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.layoutMode="box",t}return e.prototype.init=function(t,a,n){this.mergeDefaultAndTheme(t,n),this._initData()},e.prototype.mergeOption=function(t){r.prototype.mergeOption.apply(this,arguments),this._initData()},e.prototype.setCurrentIndex=function(t){t==null&&(t=this.option.currentIndex);var a=this._data.count();this.option.loop?t=(t%a+a)%a:(t>=a&&(t=a-1),t<0&&(t=0)),this.option.currentIndex=t},e.prototype.getCurrentIndex=function(){return this.option.currentIndex},e.prototype.isIndexMax=function(){return this.getCurrentIndex()>=this._data.count()-1},e.prototype.setPlayState=function(t){this.option.autoPlay=!!t},e.prototype.getPlayState=function(){return!!this.option.autoPlay},e.prototype._initData=function(){var t=this.option,a=t.data||[],n=t.axisType,i=this._names=[],o;n==="category"?(o=[],D(a,function(u,f){var h=Qt(xo(u),""),v;tt(u)?(v=rt(u),v.value=f):v=f,o.push(v),i.push(h)})):o=a;var s={category:"ordinal",time:"time",value:"number"}[n]||"number",l=this._data=new xe([{name:"value",type:s}],this);l.initData(o,i)},e.prototype.getData=function(){return this._data},e.prototype.getCategories=function(){if(this.get("axisType")==="category")return this._names.slice()},e.type="timeline",e.defaultOption={z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},e}(gt),KI=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.type="timeline.slider",e.defaultOption=sn(kb.defaultOption,{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"circle",symbolSize:12,lineStyle:{show:!0,width:2,color:"#DAE1F5"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#A4B1D7"},itemStyle:{color:"#A4B1D7",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:15,color:"#316bf3",borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0, 0, 0, 0.3)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:24,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z",prevIcon:"M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z",prevBtnSize:18,nextBtnSize:18,color:"#A4B1D7",borderColor:"#A4B1D7",borderWidth:1},emphasis:{label:{show:!0,color:"#6f778d"},itemStyle:{color:"#316BF3"},controlStyle:{color:"#316BF3",borderColor:"#316BF3",borderWidth:2}},progress:{lineStyle:{color:"#316BF3"},itemStyle:{color:"#316BF3"},label:{color:"#6f778d"}},data:[]}),e}(kb);$t(KI,Nh.prototype);var y8=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.type="timeline",e}(zt),m8=function(r){N(e,r);function e(t,a,n,i){var o=r.call(this,t,a,n)||this;return o.type=i||"value",o}return e.prototype.getLabelModel=function(){return this.model.getModel("label")},e.prototype.isHorizontal=function(){return this.model.get("orient")==="horizontal"},e}(dr),lp=Math.PI,Ob=bt(),_8=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(t,a){this.api=a},e.prototype.render=function(t,a,n){if(this.model=t,this.api=n,this.ecModel=a,this.group.removeAll(),t.get("show",!0)){var i=this._layout(t,n),o=this._createGroup("_mainGroup"),s=this._createGroup("_labelGroup"),l=this._axis=this._createAxis(i,t);t.formatTooltip=function(u){var f=l.scale.getLabel({value:u});return se("nameValue",{noName:!0,value:f})},D(["AxisLine","AxisTick","Control","CurrentPointer"],function(u){this["_render"+u](i,o,l,t)},this),this._renderAxisLabel(i,s,l,t),this._position(i,t)}this._doPlayStop(),this._updateTicksStatus()},e.prototype.remove=function(){this._clearTimer(),this.group.removeAll()},e.prototype.dispose=function(){this._clearTimer()},e.prototype._layout=function(t,a){var n=t.get(["label","position"]),i=t.get("orient"),o=x8(t,a),s;n==null||n==="auto"?s=i==="horizontal"?o.y+o.height/2=0||s==="+"?"left":"right"},u={horizontal:s>=0||s==="+"?"top":"bottom",vertical:"middle"},f={horizontal:0,vertical:lp/2},h=i==="vertical"?o.height:o.width,v=t.getModel("controlStyle"),c=v.get("show",!0),p=c?v.get("itemSize"):0,d=c?v.get("itemGap"):0,g=p+d,y=t.get(["label","rotate"])||0;y=y*lp/180;var m,_,S,b=v.get("position",!0),x=c&&v.get("showPlayBtn",!0),w=c&&v.get("showPrevBtn",!0),T=c&&v.get("showNextBtn",!0),A=0,C=h;b==="left"||b==="bottom"?(x&&(m=[0,0],A+=g),w&&(_=[A,0],A+=g),T&&(S=[C-p,0],C-=g)):(x&&(m=[C-p,0],C-=g),w&&(_=[0,0],A+=g),T&&(S=[C-p,0],C-=g));var M=[A,C];return t.get("inverse")&&M.reverse(),{viewRect:o,mainLength:h,orient:i,rotation:f[i],labelRotation:y,labelPosOpt:s,labelAlign:t.get(["label","align"])||l[i],labelBaseline:t.get(["label","verticalAlign"])||t.get(["label","baseline"])||u[i],playPosition:m,prevBtnPosition:_,nextBtnPosition:S,axisExtent:M,controlSize:p,controlGap:d}},e.prototype._position=function(t,a){var n=this._mainGroup,i=this._labelGroup,o=t.viewRect;if(t.orient==="vertical"){var s=Fe(),l=o.x,u=o.y+o.height;Ir(s,s,[-l,-u]),nn(s,s,-lp/2),Ir(s,s,[l,u]),o=o.clone(),o.applyTransform(s)}var f=m(o),h=m(n.getBoundingRect()),v=m(i.getBoundingRect()),c=[n.x,n.y],p=[i.x,i.y];p[0]=c[0]=f[0][0];var d=t.labelPosOpt;if(d==null||Y(d)){var g=d==="+"?0:1;_(c,h,f,1,g),_(p,v,f,1,1-g)}else{var g=d>=0?0:1;_(c,h,f,1,g),p[1]=c[1]+d}n.setPosition(c),i.setPosition(p),n.rotation=i.rotation=t.rotation,y(n),y(i);function y(S){S.originX=f[0][0]-S.x,S.originY=f[1][0]-S.y}function m(S){return[[S.x,S.x+S.width],[S.y,S.y+S.height]]}function _(S,b,x,w,T){S[w]+=x[w][T]-b[w][T]}},e.prototype._createAxis=function(t,a){var n=a.getData(),i=a.get("axisType"),o=S8(a,i);o.getTicks=function(){return n.mapArray(["value"],function(u){return{value:u}})};var s=n.getDataExtent("value");o.setExtent(s[0],s[1]),o.calcNiceTicks();var l=new m8("value",o,t.axisExtent,i);return l.model=a,l},e.prototype._createGroup=function(t){var a=this[t]=new at;return this.group.add(a),a},e.prototype._renderAxisLine=function(t,a,n,i){var o=n.getExtent();if(i.get(["lineStyle","show"])){var s=new te({shape:{x1:o[0],y1:0,x2:o[1],y2:0},style:V({lineCap:"round"},i.getModel("lineStyle").getLineStyle()),silent:!0,z2:1});a.add(s);var l=this._progressLine=new te({shape:{x1:o[0],x2:this._currentPointer?this._currentPointer.x:o[0],y1:0,y2:0},style:J({lineCap:"round",lineWidth:s.style.lineWidth},i.getModel(["progress","lineStyle"]).getLineStyle()),silent:!0,z2:1});a.add(l)}},e.prototype._renderAxisTick=function(t,a,n,i){var o=this,s=i.getData(),l=n.scale.getTicks();this._tickSymbols=[],D(l,function(u){var f=n.dataToCoord(u.value),h=s.getItemModel(u.value),v=h.getModel("itemStyle"),c=h.getModel(["emphasis","itemStyle"]),p=h.getModel(["progress","itemStyle"]),d={x:f,y:0,onclick:X(o._changeTimeline,o,u.value)},g=Nb(h,v,a,d);g.ensureState("emphasis").style=c.getItemStyle(),g.ensureState("progress").style=p.getItemStyle(),Xa(g);var y=nt(g);h.get("tooltip")?(y.dataIndex=u.value,y.dataModel=i):y.dataIndex=y.dataModel=null,o._tickSymbols.push(g)})},e.prototype._renderAxisLabel=function(t,a,n,i){var o=this,s=n.getLabelModel();if(s.get("show")){var l=i.getData(),u=n.getViewLabels();this._tickLabels=[],D(u,function(f){var h=f.tickValue,v=l.getItemModel(h),c=v.getModel("label"),p=v.getModel(["emphasis","label"]),d=v.getModel(["progress","label"]),g=n.dataToCoord(f.tickValue),y=new St({x:g,y:0,rotation:t.labelRotation-t.rotation,onclick:X(o._changeTimeline,o,h),silent:!1,style:Nt(c,{text:f.formattedLabel,align:t.labelAlign,verticalAlign:t.labelBaseline})});y.ensureState("emphasis").style=Nt(p),y.ensureState("progress").style=Nt(d),a.add(y),Xa(y),Ob(y).dataIndex=h,o._tickLabels.push(y)})}},e.prototype._renderControl=function(t,a,n,i){var o=t.controlSize,s=t.rotation,l=i.getModel("controlStyle").getItemStyle(),u=i.getModel(["emphasis","controlStyle"]).getItemStyle(),f=i.getPlayState(),h=i.get("inverse",!0);v(t.nextBtnPosition,"next",X(this._changeTimeline,this,h?"-":"+")),v(t.prevBtnPosition,"prev",X(this._changeTimeline,this,h?"+":"-")),v(t.playPosition,f?"stop":"play",X(this._handlePlayClick,this,!f),!0);function v(c,p,d,g){if(c){var y=Lr(st(i.get(["controlStyle",p+"BtnSize"]),o),o),m=[0,-y/2,y,y],_=b8(i,p+"Icon",m,{x:c[0],y:c[1],originX:o/2,originY:0,rotation:g?-s:0,rectHover:!0,style:l,onclick:d});_.ensureState("emphasis").style=u,a.add(_),Xa(_)}}},e.prototype._renderCurrentPointer=function(t,a,n,i){var o=i.getData(),s=i.getCurrentIndex(),l=o.getItemModel(s).getModel("checkpointStyle"),u=this,f={onCreate:function(h){h.draggable=!0,h.drift=X(u._handlePointerDrag,u),h.ondragend=X(u._handlePointerDragend,u),Bb(h,u._progressLine,s,n,i,!0)},onUpdate:function(h){Bb(h,u._progressLine,s,n,i)}};this._currentPointer=Nb(l,l,this._mainGroup,{},this._currentPointer,f)},e.prototype._handlePlayClick=function(t){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:t,from:this.uid})},e.prototype._handlePointerDrag=function(t,a,n){this._clearTimer(),this._pointerChangeTimeline([n.offsetX,n.offsetY])},e.prototype._handlePointerDragend=function(t){this._pointerChangeTimeline([t.offsetX,t.offsetY],!0)},e.prototype._pointerChangeTimeline=function(t,a){var n=this._toAxisCoord(t)[0],i=this._axis,o=Ye(i.getExtent().slice());n>o[1]&&(n=o[1]),n=0&&(o[i]=+o[i].toFixed(v)),[o,h]}var up={min:lt(Fu,"min"),max:lt(Fu,"max"),average:lt(Fu,"average"),median:lt(Fu,"median")};function ml(r,e){if(e){var t=r.getData(),a=r.coordinateSystem,n=a&&a.dimensions;if(!M8(e)&&!z(e.coord)&&z(n)){var i=jI(e,t,a,r);if(e=rt(e),e.type&&up[e.type]&&i.baseAxis&&i.valueAxis){var o=vt(n,i.baseAxis.dim),s=vt(n,i.valueAxis.dim),l=up[e.type](t,i.baseDataDim,i.valueDataDim,o,s);e.coord=l[0],e.value=l[1]}else e.coord=[e.xAxis!=null?e.xAxis:e.radiusAxis,e.yAxis!=null?e.yAxis:e.angleAxis]}if(e.coord==null||!z(n))e.coord=[];else for(var u=e.coord,f=0;f<2;f++)up[u[f]]&&(u[f]=Dm(t,t.mapDimension(n[f]),u[f]));return e}}function jI(r,e,t,a){var n={};return r.valueIndex!=null||r.valueDim!=null?(n.valueDataDim=r.valueIndex!=null?e.getDimension(r.valueIndex):r.valueDim,n.valueAxis=t.getAxis(I8(a,n.valueDataDim)),n.baseAxis=t.getOtherAxis(n.valueAxis),n.baseDataDim=e.mapDimension(n.baseAxis.dim)):(n.baseAxis=a.getBaseAxis(),n.valueAxis=t.getOtherAxis(n.baseAxis),n.baseDataDim=e.mapDimension(n.baseAxis.dim),n.valueDataDim=e.mapDimension(n.valueAxis.dim)),n}function I8(r,e){var t=r.getData().getDimensionInfo(e);return t&&t.coordDim}function _l(r,e){return r&&r.containData&&e.coord&&!ag(e)?r.containData(e.coord):!0}function L8(r,e,t){return r&&r.containZone&&e.coord&&t.coord&&!ag(e)&&!ag(t)?r.containZone(e.coord,t.coord):!0}function JI(r,e){return r?function(t,a,n,i){var o=i<2?t.coord&&t.coord[i]:t.value;return qa(o,e[i])}:function(t,a,n,i){return qa(t.value,e[i])}}function Dm(r,e,t){if(t==="average"){var a=0,n=0;return r.each(e,function(i,o){isNaN(i)||(a+=i,n++)}),a/n}else return t==="median"?r.getMedian(e):r.getDataExtent(e)[t==="max"?1:0]}var fp=bt(),Mm=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.init=function(){this.markerGroupMap=Z()},e.prototype.render=function(t,a,n){var i=this,o=this.markerGroupMap;o.each(function(s){fp(s).keep=!1}),a.eachSeries(function(s){var l=ba.getMarkerModelFromSeries(s,i.type);l&&i.renderSeries(s,l,a,n)}),o.each(function(s){!fp(s).keep&&i.group.remove(s.group)})},e.prototype.markKeep=function(t){fp(t).keep=!0},e.prototype.toggleBlurSeries=function(t,a){var n=this;D(t,function(i){var o=ba.getMarkerModelFromSeries(i,n.type);if(o){var s=o.getData();s.eachItemGraphicEl(function(l){l&&(a?WT(l):Og(l))})}})},e.type="marker",e}(zt);function zb(r,e,t){var a=e.coordinateSystem;r.each(function(n){var i=r.getItemModel(n),o,s=W(i.get("x"),t.getWidth()),l=W(i.get("y"),t.getHeight());if(!isNaN(s)&&!isNaN(l))o=[s,l];else if(e.getMarkerPosition)o=e.getMarkerPosition(r.getValues(r.dimensions,n));else if(a){var u=r.get(a.dimensions[0],n),f=r.get(a.dimensions[1],n);o=a.dataToPoint([u,f])}isNaN(s)||(o[0]=s),isNaN(l)||(o[1]=l),r.setItemLayout(n,o)})}var P8=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.updateTransform=function(t,a,n){a.eachSeries(function(i){var o=ba.getMarkerModelFromSeries(i,"markPoint");o&&(zb(o.getData(),i,n),this.markerGroupMap.get(i.id).updateLayout())},this)},e.prototype.renderSeries=function(t,a,n,i){var o=t.coordinateSystem,s=t.id,l=t.getData(),u=this.markerGroupMap,f=u.get(s)||u.set(s,new Ol),h=R8(o,t,a);a.setData(h),zb(a.getData(),t,i),h.each(function(v){var c=h.getItemModel(v),p=c.getShallow("symbol"),d=c.getShallow("symbolSize"),g=c.getShallow("symbolRotate"),y=c.getShallow("symbolOffset"),m=c.getShallow("symbolKeepAspect");if(K(p)||K(d)||K(g)||K(y)){var _=a.getRawValue(v),S=a.getDataParams(v);K(p)&&(p=p(_,S)),K(d)&&(d=d(_,S)),K(g)&&(g=g(_,S)),K(y)&&(y=y(_,S))}var b=c.getModel("itemStyle").getItemStyle(),x=Rl(l,"color");b.fill||(b.fill=x),h.setItemVisual(v,{symbol:p,symbolSize:d,symbolRotate:g,symbolOffset:y,symbolKeepAspect:m,style:b})}),f.updateData(h),this.group.add(f.group),h.eachItemGraphicEl(function(v){v.traverse(function(c){nt(c).dataModel=a})}),this.markKeep(f),f.group.silent=a.get("silent")||t.get("silent")},e.type="markPoint",e}(Mm);function R8(r,e,t){var a;r?a=G(r&&r.dimensions,function(s){var l=e.getData().getDimensionInfo(e.getData().mapDimension(s))||{};return V(V({},l),{name:s,ordinalMeta:null})}):a=[{name:"value",type:"float"}];var n=new xe(a,t),i=G(t.get("data"),lt(ml,e));r&&(i=At(i,lt(_l,r)));var o=JI(!!r,a);return n.initData(i,null,o),n}function E8(r){r.registerComponentModel(D8),r.registerComponentView(P8),r.registerPreprocessor(function(e){Cm(e.series,"markPoint")&&(e.markPoint=e.markPoint||{})})}var k8=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.createMarkerModelFromSeries=function(t,a,n){return new e(t,a,n)},e.type="markLine",e.defaultOption={z:5,symbol:["circle","arrow"],symbolSize:[8,16],symbolOffset:0,precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end",distance:5},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"},e}(ba),Hu=bt(),O8=function(r,e,t,a){var n=r.getData(),i;if(z(a))i=a;else{var o=a.type;if(o==="min"||o==="max"||o==="average"||o==="median"||a.xAxis!=null||a.yAxis!=null){var s=void 0,l=void 0;if(a.yAxis!=null||a.xAxis!=null)s=e.getAxis(a.yAxis!=null?"y":"x"),l=ae(a.yAxis,a.xAxis);else{var u=jI(a,n,e,r);s=u.valueAxis;var f=Sy(n,u.valueDataDim);l=Dm(n,f,o)}var h=s.dim==="x"?0:1,v=1-h,c=rt(a),p={coord:[]};c.type=null,c.coord=[],c.coord[v]=-1/0,p.coord[v]=1/0;var d=t.get("precision");d>=0&&wt(l)&&(l=+l.toFixed(Math.min(d,20))),c.coord[h]=p.coord[h]=l,i=[c,p,{type:o,valueIndex:a.valueIndex,value:l}]}else i=[]}var g=[ml(r,i[0]),ml(r,i[1]),V({},i[2])];return g[2].type=g[2].type||null,ut(g[2],g[0]),ut(g[2],g[1]),g};function rh(r){return!isNaN(r)&&!isFinite(r)}function Gb(r,e,t,a){var n=1-r,i=a.dimensions[r];return rh(e[n])&&rh(t[n])&&e[r]===t[r]&&a.getAxis(i).containData(e[r])}function N8(r,e){if(r.type==="cartesian2d"){var t=e[0].coord,a=e[1].coord;if(t&&a&&(Gb(1,t,a,r)||Gb(0,t,a,r)))return!0}return _l(r,e[0])&&_l(r,e[1])}function hp(r,e,t,a,n){var i=a.coordinateSystem,o=r.getItemModel(e),s,l=W(o.get("x"),n.getWidth()),u=W(o.get("y"),n.getHeight());if(!isNaN(l)&&!isNaN(u))s=[l,u];else{if(a.getMarkerPosition)s=a.getMarkerPosition(r.getValues(r.dimensions,e));else{var f=i.dimensions,h=r.get(f[0],e),v=r.get(f[1],e);s=i.dataToPoint([h,v])}if(Si(i,"cartesian2d")){var c=i.getAxis("x"),p=i.getAxis("y"),f=i.dimensions;rh(r.get(f[0],e))?s[0]=c.toGlobalCoord(c.getExtent()[t?0:1]):rh(r.get(f[1],e))&&(s[1]=p.toGlobalCoord(p.getExtent()[t?0:1]))}isNaN(l)||(s[0]=l),isNaN(u)||(s[1]=u)}r.setItemLayout(e,s)}var B8=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.updateTransform=function(t,a,n){a.eachSeries(function(i){var o=ba.getMarkerModelFromSeries(i,"markLine");if(o){var s=o.getData(),l=Hu(o).from,u=Hu(o).to;l.each(function(f){hp(l,f,!0,i,n),hp(u,f,!1,i,n)}),s.each(function(f){s.setItemLayout(f,[l.getItemLayout(f),u.getItemLayout(f)])}),this.markerGroupMap.get(i.id).updateLayout()}},this)},e.prototype.renderSeries=function(t,a,n,i){var o=t.coordinateSystem,s=t.id,l=t.getData(),u=this.markerGroupMap,f=u.get(s)||u.set(s,new qy);this.group.add(f.group);var h=V8(o,t,a),v=h.from,c=h.to,p=h.line;Hu(a).from=v,Hu(a).to=c,a.setData(p);var d=a.get("symbol"),g=a.get("symbolSize"),y=a.get("symbolRotate"),m=a.get("symbolOffset");z(d)||(d=[d,d]),z(g)||(g=[g,g]),z(y)||(y=[y,y]),z(m)||(m=[m,m]),h.from.each(function(S){_(v,S,!0),_(c,S,!1)}),p.each(function(S){var b=p.getItemModel(S).getModel("lineStyle").getLineStyle();p.setItemLayout(S,[v.getItemLayout(S),c.getItemLayout(S)]),b.stroke==null&&(b.stroke=v.getItemVisual(S,"style").fill),p.setItemVisual(S,{fromSymbolKeepAspect:v.getItemVisual(S,"symbolKeepAspect"),fromSymbolOffset:v.getItemVisual(S,"symbolOffset"),fromSymbolRotate:v.getItemVisual(S,"symbolRotate"),fromSymbolSize:v.getItemVisual(S,"symbolSize"),fromSymbol:v.getItemVisual(S,"symbol"),toSymbolKeepAspect:c.getItemVisual(S,"symbolKeepAspect"),toSymbolOffset:c.getItemVisual(S,"symbolOffset"),toSymbolRotate:c.getItemVisual(S,"symbolRotate"),toSymbolSize:c.getItemVisual(S,"symbolSize"),toSymbol:c.getItemVisual(S,"symbol"),style:b})}),f.updateData(p),h.line.eachItemGraphicEl(function(S){nt(S).dataModel=a,S.traverse(function(b){nt(b).dataModel=a})});function _(S,b,x){var w=S.getItemModel(b);hp(S,b,x,t,i);var T=w.getModel("itemStyle").getItemStyle();T.fill==null&&(T.fill=Rl(l,"color")),S.setItemVisual(b,{symbolKeepAspect:w.get("symbolKeepAspect"),symbolOffset:st(w.get("symbolOffset",!0),m[x?0:1]),symbolRotate:st(w.get("symbolRotate",!0),y[x?0:1]),symbolSize:st(w.get("symbolSize"),g[x?0:1]),symbol:st(w.get("symbol",!0),d[x?0:1]),style:T})}this.markKeep(f),f.group.silent=a.get("silent")||t.get("silent")},e.type="markLine",e}(Mm);function V8(r,e,t){var a;r?a=G(r&&r.dimensions,function(u){var f=e.getData().getDimensionInfo(e.getData().mapDimension(u))||{};return V(V({},f),{name:u,ordinalMeta:null})}):a=[{name:"value",type:"float"}];var n=new xe(a,t),i=new xe(a,t),o=new xe([],t),s=G(t.get("data"),lt(O8,e,r,t));r&&(s=At(s,lt(N8,r)));var l=JI(!!r,a);return n.initData(G(s,function(u){return u[0]}),null,l),i.initData(G(s,function(u){return u[1]}),null,l),o.initData(G(s,function(u){return u[2]})),o.hasItemOption=!0,{from:n,to:i,line:o}}function z8(r){r.registerComponentModel(k8),r.registerComponentView(B8),r.registerPreprocessor(function(e){Cm(e.series,"markLine")&&(e.markLine=e.markLine||{})})}var G8=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.createMarkerModelFromSeries=function(t,a,n){return new e(t,a,n)},e.type="markArea",e.defaultOption={z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}},e}(ba),Wu=bt(),F8=function(r,e,t,a){var n=a[0],i=a[1];if(!(!n||!i)){var o=ml(r,n),s=ml(r,i),l=o.coord,u=s.coord;l[0]=ae(l[0],-1/0),l[1]=ae(l[1],-1/0),u[0]=ae(u[0],1/0),u[1]=ae(u[1],1/0);var f=hh([{},o,s]);return f.coord=[o.coord,s.coord],f.x0=o.x,f.y0=o.y,f.x1=s.x,f.y1=s.y,f}};function ah(r){return!isNaN(r)&&!isFinite(r)}function Fb(r,e,t,a){var n=1-r;return ah(e[n])&&ah(t[n])}function H8(r,e){var t=e.coord[0],a=e.coord[1],n={coord:t,x:e.x0,y:e.y0},i={coord:a,x:e.x1,y:e.y1};return Si(r,"cartesian2d")?t&&a&&(Fb(1,t,a)||Fb(0,t,a))?!0:L8(r,n,i):_l(r,n)||_l(r,i)}function Hb(r,e,t,a,n){var i=a.coordinateSystem,o=r.getItemModel(e),s,l=W(o.get(t[0]),n.getWidth()),u=W(o.get(t[1]),n.getHeight());if(!isNaN(l)&&!isNaN(u))s=[l,u];else{if(a.getMarkerPosition){var f=r.getValues(["x0","y0"],e),h=r.getValues(["x1","y1"],e),v=i.clampData(f),c=i.clampData(h),p=[];t[0]==="x0"?p[0]=v[0]>c[0]?h[0]:f[0]:p[0]=v[0]>c[0]?f[0]:h[0],t[1]==="y0"?p[1]=v[1]>c[1]?h[1]:f[1]:p[1]=v[1]>c[1]?f[1]:h[1],s=a.getMarkerPosition(p,t,!0)}else{var d=r.get(t[0],e),g=r.get(t[1],e),y=[d,g];i.clampData&&i.clampData(y,y),s=i.dataToPoint(y,!0)}if(Si(i,"cartesian2d")){var m=i.getAxis("x"),_=i.getAxis("y"),d=r.get(t[0],e),g=r.get(t[1],e);ah(d)?s[0]=m.toGlobalCoord(m.getExtent()[t[0]==="x0"?0:1]):ah(g)&&(s[1]=_.toGlobalCoord(_.getExtent()[t[1]==="y0"?0:1]))}isNaN(l)||(s[0]=l),isNaN(u)||(s[1]=u)}return s}var Wb=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]],W8=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.updateTransform=function(t,a,n){a.eachSeries(function(i){var o=ba.getMarkerModelFromSeries(i,"markArea");if(o){var s=o.getData();s.each(function(l){var u=G(Wb,function(h){return Hb(s,l,h,i,n)});s.setItemLayout(l,u);var f=s.getItemGraphicEl(l);f.setShape("points",u)})}},this)},e.prototype.renderSeries=function(t,a,n,i){var o=t.coordinateSystem,s=t.id,l=t.getData(),u=this.markerGroupMap,f=u.get(s)||u.set(s,{group:new at});this.group.add(f.group),this.markKeep(f);var h=U8(o,t,a);a.setData(h),h.each(function(v){var c=G(Wb,function(T){return Hb(h,v,T,t,i)}),p=o.getAxis("x").scale,d=o.getAxis("y").scale,g=p.getExtent(),y=d.getExtent(),m=[p.parse(h.get("x0",v)),p.parse(h.get("x1",v))],_=[d.parse(h.get("y0",v)),d.parse(h.get("y1",v))];Ye(m),Ye(_);var S=!(g[0]>m[1]||g[1]_[1]||y[1]<_[0]),b=!S;h.setItemLayout(v,{points:c,allClipped:b});var x=h.getItemModel(v).getModel("itemStyle").getItemStyle(),w=Rl(l,"color");x.fill||(x.fill=w,Y(x.fill)&&(x.fill=Zs(x.fill,.4))),x.stroke||(x.stroke=w),h.setItemVisual(v,"style",x)}),h.diff(Wu(f).data).add(function(v){var c=h.getItemLayout(v);if(!c.allClipped){var p=new Te({shape:{points:c.points}});h.setItemGraphicEl(v,p),f.group.add(p)}}).update(function(v,c){var p=Wu(f).data.getItemGraphicEl(c),d=h.getItemLayout(v);d.allClipped?p&&f.group.remove(p):(p?Tt(p,{shape:{points:d.points}},a,v):p=new Te({shape:{points:d.points}}),h.setItemGraphicEl(v,p),f.group.add(p))}).remove(function(v){var c=Wu(f).data.getItemGraphicEl(v);f.group.remove(c)}).execute(),h.eachItemGraphicEl(function(v,c){var p=h.getItemModel(c),d=h.getItemVisual(c,"style");v.useStyle(h.getItemVisual(c,"style")),pe(v,oe(p),{labelFetcher:a,labelDataIndex:c,defaultText:h.getName(c)||"",inheritColor:Y(d.fill)?Zs(d.fill,1):"#000"}),ce(v,p),Wt(v,null,null,p.get(["emphasis","disabled"])),nt(v).dataModel=a}),Wu(f).data=h,f.group.silent=a.get("silent")||t.get("silent")},e.type="markArea",e}(Mm);function U8(r,e,t){var a,n,i=["x0","y0","x1","y1"];if(r){var o=G(r&&r.dimensions,function(u){var f=e.getData(),h=f.getDimensionInfo(f.mapDimension(u))||{};return V(V({},h),{name:u,ordinalMeta:null})});n=G(i,function(u,f){return{name:u,type:o[f%2].type}}),a=new xe(n,t)}else n=[{name:"value",type:"float"}],a=new xe(n,t);var s=G(t.get("data"),lt(F8,e,r,t));r&&(s=At(s,lt(H8,r)));var l=r?function(u,f,h,v){var c=u.coord[Math.floor(v/2)][v%2];return qa(c,n[v])}:function(u,f,h,v){return qa(u.value,n[v])};return a.initData(s,null,l),a.hasItemOption=!0,a}function Y8(r){r.registerComponentModel(G8),r.registerComponentView(W8),r.registerPreprocessor(function(e){Cm(e.series,"markArea")&&(e.markArea=e.markArea||{})})}var X8=function(r,e){if(e==="all")return{type:"all",title:r.getLocaleModel().get(["legend","selector","all"])};if(e==="inverse")return{type:"inverse",title:r.getLocaleModel().get(["legend","selector","inverse"])}},ng=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.layoutMode={type:"box",ignoreSize:!0},t}return e.prototype.init=function(t,a,n){this.mergeDefaultAndTheme(t,n),t.selected=t.selected||{},this._updateSelector(t)},e.prototype.mergeOption=function(t,a){r.prototype.mergeOption.call(this,t,a),this._updateSelector(t)},e.prototype._updateSelector=function(t){var a=t.selector,n=this.ecModel;a===!0&&(a=t.selector=["all","inverse"]),z(a)&&D(a,function(i,o){Y(i)&&(i={type:i}),a[o]=ut(i,X8(n,i.type))})},e.prototype.optionUpdated=function(){this._updateData(this.ecModel);var t=this._data;if(t[0]&&this.get("selectedMode")==="single"){for(var a=!1,n=0;n=0},e.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},e.type="legend.plain",e.dependencies=["series"],e.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},e}(gt),Fi=lt,ig=D,Uu=at,QI=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.newlineDisabled=!1,t}return e.prototype.init=function(){this.group.add(this._contentGroup=new Uu),this.group.add(this._selectorGroup=new Uu),this._isFirstRender=!0},e.prototype.getContentGroup=function(){return this._contentGroup},e.prototype.getSelectorGroup=function(){return this._selectorGroup},e.prototype.render=function(t,a,n){var i=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!t.get("show",!0)){var o=t.get("align"),s=t.get("orient");(!o||o==="auto")&&(o=t.get("left")==="right"&&s==="vertical"?"right":"left");var l=t.get("selector",!0),u=t.get("selectorPosition",!0);l&&(!u||u==="auto")&&(u=s==="horizontal"?"end":"start"),this.renderInner(o,t,a,n,l,s,u);var f=t.getBoxLayoutParams(),h={width:n.getWidth(),height:n.getHeight()},v=t.get("padding"),c=Jt(f,h,v),p=this.layoutInner(t,o,c,i,l,u),d=Jt(J({width:p.width,height:p.height},f),h,v);this.group.x=d.x-p.x,this.group.y=d.y-p.y,this.group.markRedraw(),this.group.add(this._backgroundEl=FI(p,t))}},e.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},e.prototype.renderInner=function(t,a,n,i,o,s,l){var u=this.getContentGroup(),f=Z(),h=a.get("selectedMode"),v=[];n.eachRawSeries(function(c){!c.get("legendHoverLink")&&v.push(c.id)}),ig(a.getData(),function(c,p){var d=c.get("name");if(!this.newlineDisabled&&(d===""||d===` +`)){var g=new Uu;g.newline=!0,u.add(g);return}var y=n.getSeriesByName(d)[0];if(!f.get(d))if(y){var m=y.getData(),_=m.getVisual("legendLineStyle")||{},S=m.getVisual("legendIcon"),b=m.getVisual("style"),x=this._createItem(y,d,p,c,a,t,_,b,S,h,i);x.on("click",Fi(Ub,d,null,i,v)).on("mouseover",Fi(og,y.name,null,i,v)).on("mouseout",Fi(sg,y.name,null,i,v)),n.ssr&&x.eachChild(function(w){var T=nt(w);T.seriesIndex=y.seriesIndex,T.dataIndex=p,T.ssrType="legend"}),f.set(d,!0)}else n.eachRawSeries(function(w){if(!f.get(d)&&w.legendVisualProvider){var T=w.legendVisualProvider;if(!T.containName(d))return;var A=T.indexOfName(d),C=T.getItemVisual(A,"style"),M=T.getItemVisual(A,"legendIcon"),I=Pe(C.fill);I&&I[3]===0&&(I[3]=.2,C=V(V({},C),{fill:Cr(I,"rgba")}));var L=this._createItem(w,d,p,c,a,t,{},C,M,h,i);L.on("click",Fi(Ub,null,d,i,v)).on("mouseover",Fi(og,null,d,i,v)).on("mouseout",Fi(sg,null,d,i,v)),n.ssr&&L.eachChild(function(P){var R=nt(P);R.seriesIndex=w.seriesIndex,R.dataIndex=p,R.ssrType="legend"}),f.set(d,!0)}},this)},this),o&&this._createSelector(o,a,i,s,l)},e.prototype._createSelector=function(t,a,n,i,o){var s=this.getSelectorGroup();ig(t,function(u){var f=u.type,h=new St({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){n.dispatchAction({type:f==="all"?"legendAllSelect":"legendInverseSelect",legendId:a.id})}});s.add(h);var v=a.getModel("selectorLabel"),c=a.getModel(["emphasis","selectorLabel"]);pe(h,{normal:v,emphasis:c},{defaultText:u.title}),Xa(h)})},e.prototype._createItem=function(t,a,n,i,o,s,l,u,f,h,v){var c=t.visualDrawType,p=o.get("itemWidth"),d=o.get("itemHeight"),g=o.isSelected(a),y=i.get("symbolRotate"),m=i.get("symbolKeepAspect"),_=i.get("icon");f=_||f||"roundRect";var S=$8(f,i,l,u,c,g,v),b=new Uu,x=i.getModel("textStyle");if(K(t.getLegendIcon)&&(!_||_==="inherit"))b.add(t.getLegendIcon({itemWidth:p,itemHeight:d,icon:f,iconRotate:y,itemStyle:S.itemStyle,lineStyle:S.lineStyle,symbolKeepAspect:m}));else{var w=_==="inherit"&&t.getData().getVisual("symbol")?y==="inherit"?t.getData().getVisual("symbolRotate"):y:0;b.add(Z8({itemWidth:p,itemHeight:d,icon:f,iconRotate:w,itemStyle:S.itemStyle,symbolKeepAspect:m}))}var T=s==="left"?p+5:-5,A=s,C=o.get("formatter"),M=a;Y(C)&&C?M=C.replace("{name}",a??""):K(C)&&(M=C(a));var I=g?x.getTextColor():i.get("inactiveColor");b.add(new St({style:Nt(x,{text:M,x:T,y:d/2,fill:I,align:A,verticalAlign:"middle"},{inheritColor:I})}));var L=new xt({shape:b.getBoundingRect(),style:{fill:"transparent"}}),P=i.getModel("tooltip");return P.get("show")&&gi({el:L,componentModel:o,itemName:a,itemTooltipOption:P.option}),b.add(L),b.eachChild(function(R){R.silent=!0}),L.silent=!h,this.getContentGroup().add(b),Xa(b),b.__legendDataIndex=n,b},e.prototype.layoutInner=function(t,a,n,i,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();ei(t.get("orient"),l,t.get("itemGap"),n.width,n.height);var f=l.getBoundingRect(),h=[-f.x,-f.y];if(u.markRedraw(),l.markRedraw(),o){ei("horizontal",u,t.get("selectorItemGap",!0));var v=u.getBoundingRect(),c=[-v.x,-v.y],p=t.get("selectorButtonGap",!0),d=t.getOrient().index,g=d===0?"width":"height",y=d===0?"height":"width",m=d===0?"y":"x";s==="end"?c[d]+=f[g]+p:h[d]+=v[g]+p,c[1-d]+=f[y]/2-v[y]/2,u.x=c[0],u.y=c[1],l.x=h[0],l.y=h[1];var _={x:0,y:0};return _[g]=f[g]+p+v[g],_[y]=Math.max(f[y],v[y]),_[m]=Math.min(0,v[m]+c[1-d]),_}else return l.x=h[0],l.y=h[1],this.group.getBoundingRect()},e.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},e.type="legend.plain",e}(zt);function $8(r,e,t,a,n,i,o){function s(g,y){g.lineWidth==="auto"&&(g.lineWidth=y.lineWidth>0?2:0),ig(g,function(m,_){g[_]==="inherit"&&(g[_]=y[_])})}var l=e.getModel("itemStyle"),u=l.getItemStyle(),f=r.lastIndexOf("empty",0)===0?"fill":"stroke",h=l.getShallow("decal");u.decal=!h||h==="inherit"?a.decal:co(h,o),u.fill==="inherit"&&(u.fill=a[n]),u.stroke==="inherit"&&(u.stroke=a[f]),u.opacity==="inherit"&&(u.opacity=(n==="fill"?a:t).opacity),s(u,a);var v=e.getModel("lineStyle"),c=v.getLineStyle();if(s(c,t),u.fill==="auto"&&(u.fill=a.fill),u.stroke==="auto"&&(u.stroke=a.fill),c.stroke==="auto"&&(c.stroke=a.fill),!i){var p=e.get("inactiveBorderWidth"),d=u[f];u.lineWidth=p==="auto"?a.lineWidth>0&&d?2:0:u.lineWidth,u.fill=e.get("inactiveColor"),u.stroke=e.get("inactiveBorderColor"),c.stroke=v.get("inactiveColor"),c.lineWidth=v.get("inactiveWidth")}return{itemStyle:u,lineStyle:c}}function Z8(r){var e=r.icon||"roundRect",t=qt(e,0,0,r.itemWidth,r.itemHeight,r.itemStyle.fill,r.symbolKeepAspect);return t.setStyle(r.itemStyle),t.rotation=(r.iconRotate||0)*Math.PI/180,t.setOrigin([r.itemWidth/2,r.itemHeight/2]),e.indexOf("empty")>-1&&(t.style.stroke=t.style.fill,t.style.fill="#fff",t.style.lineWidth=2),t}function Ub(r,e,t,a){sg(r,e,t,a),t.dispatchAction({type:"legendToggleSelect",name:r??e}),og(r,e,t,a)}function tL(r){for(var e=r.getZr().storage.getDisplayList(),t,a=0,n=e.length;an[o],g=[-c.x,-c.y];a||(g[i]=f[u]);var y=[0,0],m=[-p.x,-p.y],_=st(t.get("pageButtonGap",!0),t.get("itemGap",!0));if(d){var S=t.get("pageButtonPosition",!0);S==="end"?m[i]+=n[o]-p[o]:y[i]+=p[o]+_}m[1-i]+=c[s]/2-p[s]/2,f.setPosition(g),h.setPosition(y),v.setPosition(m);var b={x:0,y:0};if(b[o]=d?n[o]:c[o],b[s]=Math.max(c[s],p[s]),b[l]=Math.min(0,p[l]+m[1-i]),h.__rectSize=n[o],d){var x={x:0,y:0};x[o]=Math.max(n[o]-p[o]-_,0),x[s]=b[s],h.setClipPath(new xt({shape:x})),h.__rectSize=x[o]}else v.eachChild(function(T){T.attr({invisible:!0,silent:!0})});var w=this._getPageInfo(t);return w.pageIndex!=null&&Tt(f,{x:w.contentPosition[0],y:w.contentPosition[1]},d?t:null),this._updatePageInfoView(t,w),b},e.prototype._pageGo=function(t,a,n){var i=this._getPageInfo(a)[t];i!=null&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:a.id})},e.prototype._updatePageInfoView=function(t,a){var n=this._controllerGroup;D(["pagePrev","pageNext"],function(f){var h=f+"DataIndex",v=a[h]!=null,c=n.childOfName(f);c&&(c.setStyle("fill",v?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),c.cursor=v?"pointer":"default")});var i=n.childOfName("pageText"),o=t.get("pageFormatter"),s=a.pageIndex,l=s!=null?s+1:0,u=a.pageCount;i&&o&&i.setStyle("text",Y(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},e.prototype._getPageInfo=function(t){var a=t.get("scrollDataIndex",!0),n=this.getContentGroup(),i=this._containerGroup.__rectSize,o=t.getOrient().index,s=vp[o],l=cp[o],u=this._findTargetItemIndex(a),f=n.children(),h=f[u],v=f.length,c=v?1:0,p={contentPosition:[n.x,n.y],pageCount:c,pageIndex:c-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!h)return p;var d=S(h);p.contentPosition[o]=-d.s;for(var g=u+1,y=d,m=d,_=null;g<=v;++g)_=S(f[g]),(!_&&m.e>y.s+i||_&&!b(_,y.s))&&(m.i>y.i?y=m:y=_,y&&(p.pageNextDataIndex==null&&(p.pageNextDataIndex=y.i),++p.pageCount)),m=_;for(var g=u-1,y=d,m=d,_=null;g>=-1;--g)_=S(f[g]),(!_||!b(m,_.s))&&y.i=w&&x.s<=w+i}},e.prototype._findTargetItemIndex=function(t){if(!this._showController)return 0;var a,n=this.getContentGroup(),i;return n.eachChild(function(o,s){var l=o.__legendDataIndex;i==null&&l!=null&&(i=s),l===t&&(a=s)}),a??i},e.type="legend.scroll",e}(QI);function Q8(r){r.registerAction("legendScroll","legendscroll",function(e,t){var a=e.scrollDataIndex;a!=null&&t.eachComponent({mainType:"legend",subType:"scroll",query:e},function(n){n.setScrollDataIndex(a)})})}function tY(r){pt(eL),r.registerComponentModel(j8),r.registerComponentView(J8),Q8(r)}function eY(r){pt(eL),pt(tY)}var rY=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.type="dataZoom.inside",e.defaultOption=sn(yl.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),e}(yl),Im=bt();function aY(r,e,t){Im(r).coordSysRecordMap.each(function(a){var n=a.dataZoomInfoMap.get(e.uid);n&&(n.getRange=t)})}function nY(r,e){for(var t=Im(r).coordSysRecordMap,a=t.keys(),n=0;na[t+e]&&(e=s),n=n&&o.get("preventDefaultMouseMove",!0)}),{controlType:e,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!n}}}function uY(r){r.registerProcessor(r.PRIORITY.PROCESSOR.FILTER,function(e,t){var a=Im(t),n=a.coordSysRecordMap||(a.coordSysRecordMap=Z());n.each(function(i){i.dataZoomInfoMap=null}),e.eachComponent({mainType:"dataZoom",subType:"inside"},function(i){var o=VI(i);D(o.infoList,function(s){var l=s.model.uid,u=n.get(l)||n.set(l,iY(t,s.model)),f=u.dataZoomInfoMap||(u.dataZoomInfoMap=Z());f.set(i.uid,{dzReferCoordSysInfo:s,model:i,getRange:null})})}),n.each(function(i){var o=i.controller,s,l=i.dataZoomInfoMap;if(l){var u=l.keys()[0];u!=null&&(s=l.get(u))}if(!s){rL(n,i);return}var f=lY(l);o.enable(f.controlType,f.opt),o.setPointerChecker(i.containsPoint),ko(i,"dispatchAction",s.model.get("throttle",!0),"fixRate")})})}var fY=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type="dataZoom.inside",t}return e.prototype.render=function(t,a,n){if(r.prototype.render.apply(this,arguments),t.noTarget()){this._clear();return}this.range=t.getPercentRange(),aY(n,t,{pan:X(pp.pan,this),zoom:X(pp.zoom,this),scrollMove:X(pp.scrollMove,this)})},e.prototype.dispose=function(){this._clear(),r.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){nY(this.api,this.dataZoomModel),this.range=null},e.type="dataZoom.inside",e}(Sm),pp={zoom:function(r,e,t,a){var n=this.range,i=n.slice(),o=r.axisModels[0];if(o){var s=dp[e](null,[a.originX,a.originY],o,t,r),l=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(i[1]-i[0])+i[0],u=Math.max(1/a.scale,0);i[0]=(i[0]-l)*u+l,i[1]=(i[1]-l)*u+l;var f=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();if(bi(0,i,[0,100],0,f.minSpan,f.maxSpan),this.range=i,n[0]!==i[0]||n[1]!==i[1])return i}},pan:Zb(function(r,e,t,a,n,i){var o=dp[a]([i.oldX,i.oldY],[i.newX,i.newY],e,n,t);return o.signal*(r[1]-r[0])*o.pixel/o.pixelLength}),scrollMove:Zb(function(r,e,t,a,n,i){var o=dp[a]([0,0],[i.scrollDelta,i.scrollDelta],e,n,t);return o.signal*(r[1]-r[0])*i.scrollDelta})};function Zb(r){return function(e,t,a,n){var i=this.range,o=i.slice(),s=e.axisModels[0];if(s){var l=r(o,s,e,t,a,n);if(bi(l,o,[0,100],"all"),this.range=o,i[0]!==o[0]||i[1]!==o[1])return o}}}var dp={grid:function(r,e,t,a,n){var i=t.axis,o={},s=n.model.coordinateSystem.getRect();return r=r||[0,0],i.dim==="x"?(o.pixel=e[0]-r[0],o.pixelLength=s.width,o.pixelStart=s.x,o.signal=i.inverse?1:-1):(o.pixel=e[1]-r[1],o.pixelLength=s.height,o.pixelStart=s.y,o.signal=i.inverse?-1:1),o},polar:function(r,e,t,a,n){var i=t.axis,o={},s=n.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return r=r?s.pointToCoord(r):[0,0],e=s.pointToCoord(e),t.mainType==="radiusAxis"?(o.pixel=e[0]-r[0],o.pixelLength=l[1]-l[0],o.pixelStart=l[0],o.signal=i.inverse?1:-1):(o.pixel=e[1]-r[1],o.pixelLength=u[1]-u[0],o.pixelStart=u[0],o.signal=i.inverse?-1:1),o},singleAxis:function(r,e,t,a,n){var i=t.axis,o=n.model.coordinateSystem.getRect(),s={};return r=r||[0,0],i.orient==="horizontal"?(s.pixel=e[0]-r[0],s.pixelLength=o.width,s.pixelStart=o.x,s.signal=i.inverse?1:-1):(s.pixel=e[1]-r[1],s.pixelLength=o.height,s.pixelStart=o.y,s.signal=i.inverse?-1:1),s}};function aL(r){xm(r),r.registerComponentModel(rY),r.registerComponentView(fY),uY(r)}var hY=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.type="dataZoom.slider",e.layoutMode="box",e.defaultOption=sn(yl.defaultOption,{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},fillerColor:"rgba(135,175,274,0.2)",handleIcon:"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z",handleSize:"100%",handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleSize:7,moveHandleIcon:"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z",moveHandleStyle:{color:"#D2DBEE",opacity:.7},showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#6E7079"},brushSelect:!0,brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleLabel:{show:!0},handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7"}}}),e}(yl),cs=xt,qb=7,vY=1,gp=30,cY=7,ps="horizontal",Kb="vertical",pY=5,dY=["line","bar","candlestick","scatter"],gY={easing:"cubicOut",duration:100,delay:0},yY=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t._displayables={},t}return e.prototype.init=function(t,a){this.api=a,this._onBrush=X(this._onBrush,this),this._onBrushEnd=X(this._onBrushEnd,this)},e.prototype.render=function(t,a,n,i){if(r.prototype.render.apply(this,arguments),ko(this,"_dispatchZoomAction",t.get("throttle"),"fixRate"),this._orient=t.getOrient(),t.get("show")===!1){this.group.removeAll();return}if(t.noTarget()){this._clear(),this.group.removeAll();return}(!i||i.type!=="dataZoom"||i.from!==this.uid)&&this._buildView(),this._updateView()},e.prototype.dispose=function(){this._clear(),r.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){nl(this,"_dispatchZoomAction");var t=this.api.getZr();t.off("mousemove",this._onBrush),t.off("mouseup",this._onBrushEnd)},e.prototype._buildView=function(){var t=this.group;t.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var a=this._displayables.sliderGroup=new at;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(a),this._positionGroup()},e.prototype._resetLocation=function(){var t=this.dataZoomModel,a=this.api,n=t.get("brushSelect"),i=n?cY:0,o=this._findCoordRect(),s={width:a.getWidth(),height:a.getHeight()},l=this._orient===ps?{right:s.width-o.x-o.width,top:s.height-gp-qb-i,width:o.width,height:gp}:{right:qb,top:o.y,width:gp,height:o.height},u=Lo(t.option);D(["right","top","width","height"],function(h){u[h]==="ph"&&(u[h]=l[h])});var f=Jt(u,s);this._location={x:f.x,y:f.y},this._size=[f.width,f.height],this._orient===Kb&&this._size.reverse()},e.prototype._positionGroup=function(){var t=this.group,a=this._location,n=this._orient,i=this.dataZoomModel.getFirstTargetAxisModel(),o=i&&i.get("inverse"),s=this._displayables.sliderGroup,l=(this._dataShadowInfo||{}).otherAxisInverse;s.attr(n===ps&&!o?{scaleY:l?1:-1,scaleX:1}:n===ps&&o?{scaleY:l?1:-1,scaleX:-1}:n===Kb&&!o?{scaleY:l?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:l?-1:1,scaleX:-1,rotation:Math.PI/2});var u=t.getBoundingRect([s]);t.x=a.x-u.x,t.y=a.y-u.y,t.markRedraw()},e.prototype._getViewExtent=function(){return[0,this._size[0]]},e.prototype._renderBackground=function(){var t=this.dataZoomModel,a=this._size,n=this._displayables.sliderGroup,i=t.get("brushSelect");n.add(new cs({silent:!0,shape:{x:0,y:0,width:a[0],height:a[1]},style:{fill:t.get("backgroundColor")},z2:-40}));var o=new cs({shape:{x:0,y:0,width:a[0],height:a[1]},style:{fill:"transparent"},z2:0,onclick:X(this._onClickPanel,this)}),s=this.api.getZr();i?(o.on("mousedown",this._onBrushStart,this),o.cursor="crosshair",s.on("mousemove",this._onBrush),s.on("mouseup",this._onBrushEnd)):(s.off("mousemove",this._onBrush),s.off("mouseup",this._onBrushEnd)),n.add(o)},e.prototype._renderDataShadow=function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],!t)return;var a=this._size,n=this._shadowSize||[],i=t.series,o=i.getRawData(),s=i.getShadowDim&&i.getShadowDim(),l=s&&o.getDimensionInfo(s)?i.getShadowDim():t.otherDim;if(l==null)return;var u=this._shadowPolygonPts,f=this._shadowPolylinePts;if(o!==this._shadowData||l!==this._shadowDim||a[0]!==n[0]||a[1]!==n[1]){var h=o.getDataExtent(l),v=(h[1]-h[0])*.3;h=[h[0]-v,h[1]+v];var c=[0,a[1]],p=[0,a[0]],d=[[a[0],0],[0,0]],g=[],y=p[1]/(o.count()-1),m=0,_=Math.round(o.count()/a[0]),S;o.each([l],function(A,C){if(_>0&&C%_){m+=y;return}var M=A==null||isNaN(A)||A==="",I=M?0:Dt(A,h,c,!0);M&&!S&&C?(d.push([d[d.length-1][0],0]),g.push([g[g.length-1][0],0])):!M&&S&&(d.push([m,0]),g.push([m,0])),d.push([m,I]),g.push([m,I]),m+=y,S=M}),u=this._shadowPolygonPts=d,f=this._shadowPolylinePts=g}this._shadowData=o,this._shadowDim=l,this._shadowSize=[a[0],a[1]];var b=this.dataZoomModel;function x(A){var C=b.getModel(A?"selectedDataBackground":"dataBackground"),M=new at,I=new Te({shape:{points:u},segmentIgnoreThreshold:1,style:C.getModel("areaStyle").getAreaStyle(),silent:!0,z2:-20}),L=new Ce({shape:{points:f},segmentIgnoreThreshold:1,style:C.getModel("lineStyle").getLineStyle(),silent:!0,z2:-19});return M.add(I),M.add(L),M}for(var w=0;w<3;w++){var T=x(w===1);this._displayables.sliderGroup.add(T),this._displayables.dataShadowSegs.push(T)}},e.prototype._prepareDataShadowInfo=function(){var t=this.dataZoomModel,a=t.get("showDataShadow");if(a!==!1){var n,i=this.ecModel;return t.eachTargetAxis(function(o,s){var l=t.getAxisProxy(o,s).getTargetSeriesModels();D(l,function(u){if(!n&&!(a!==!0&&vt(dY,u.get("type"))<0)){var f=i.getComponent(Wa(o),s).axis,h=mY(o),v,c=u.coordinateSystem;h!=null&&c.getOtherAxis&&(v=c.getOtherAxis(f).inverse),h=u.getData().mapDimension(h),n={thisAxis:f,series:u,thisDim:o,otherDim:h,otherAxisInverse:v}}},this)},this),n}},e.prototype._renderHandle=function(){var t=this.group,a=this._displayables,n=a.handles=[null,null],i=a.handleLabels=[null,null],o=this._displayables.sliderGroup,s=this._size,l=this.dataZoomModel,u=this.api,f=l.get("borderRadius")||0,h=l.get("brushSelect"),v=a.filler=new cs({silent:h,style:{fill:l.get("fillerColor")},textConfig:{position:"inside"}});o.add(v),o.add(new cs({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:s[0],height:s[1],r:f},style:{stroke:l.get("dataBackgroundColor")||l.get("borderColor"),lineWidth:vY,fill:"rgba(0,0,0,0)"}})),D([0,1],function(_){var S=l.get("handleIcon");!Rf[S]&&S.indexOf("path://")<0&&S.indexOf("image://")<0&&(S="path://"+S);var b=qt(S,-1,0,2,2,null,!0);b.attr({cursor:jb(this._orient),draggable:!0,drift:X(this._onDragMove,this,_),ondragend:X(this._onDragEnd,this),onmouseover:X(this._showDataInfo,this,!0),onmouseout:X(this._showDataInfo,this,!1),z2:5});var x=b.getBoundingRect(),w=l.get("handleSize");this._handleHeight=W(w,this._size[1]),this._handleWidth=x.width/x.height*this._handleHeight,b.setStyle(l.getModel("handleStyle").getItemStyle()),b.style.strokeNoScale=!0,b.rectHover=!0,b.ensureState("emphasis").style=l.getModel(["emphasis","handleStyle"]).getItemStyle(),Xa(b);var T=l.get("handleColor");T!=null&&(b.style.fill=T),o.add(n[_]=b);var A=l.getModel("textStyle"),C=l.get("handleLabel")||{},M=C.show||!1;t.add(i[_]=new St({silent:!0,invisible:!M,style:Nt(A,{x:0,y:0,text:"",verticalAlign:"middle",align:"center",fill:A.getTextColor(),font:A.getFont()}),z2:10}))},this);var c=v;if(h){var p=W(l.get("moveHandleSize"),s[1]),d=a.moveHandle=new xt({style:l.getModel("moveHandleStyle").getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:s[1]-.5,height:p}}),g=p*.8,y=a.moveHandleIcon=qt(l.get("moveHandleIcon"),-g/2,-g/2,g,g,"#fff",!0);y.silent=!0,y.y=s[1]+p/2-.5,d.ensureState("emphasis").style=l.getModel(["emphasis","moveHandleStyle"]).getItemStyle();var m=Math.min(s[1]/2,Math.max(p,10));c=a.moveZone=new xt({invisible:!0,shape:{y:s[1]-m,height:p+m}}),c.on("mouseover",function(){u.enterEmphasis(d)}).on("mouseout",function(){u.leaveEmphasis(d)}),o.add(d),o.add(y),o.add(c)}c.attr({draggable:!0,cursor:jb(this._orient),drift:X(this._onDragMove,this,"all"),ondragstart:X(this._showDataInfo,this,!0),ondragend:X(this._onDragEnd,this),onmouseover:X(this._showDataInfo,this,!0),onmouseout:X(this._showDataInfo,this,!1)})},e.prototype._resetInterval=function(){var t=this._range=this.dataZoomModel.getPercentRange(),a=this._getViewExtent();this._handleEnds=[Dt(t[0],[0,100],a,!0),Dt(t[1],[0,100],a,!0)]},e.prototype._updateInterval=function(t,a){var n=this.dataZoomModel,i=this._handleEnds,o=this._getViewExtent(),s=n.findRepresentativeAxisProxy().getMinMaxSpan(),l=[0,100];bi(a,i,o,n.get("zoomLock")?"all":t,s.minSpan!=null?Dt(s.minSpan,l,o,!0):null,s.maxSpan!=null?Dt(s.maxSpan,l,o,!0):null);var u=this._range,f=this._range=Ye([Dt(i[0],o,l,!0),Dt(i[1],o,l,!0)]);return!u||u[0]!==f[0]||u[1]!==f[1]},e.prototype._updateView=function(t){var a=this._displayables,n=this._handleEnds,i=Ye(n.slice()),o=this._size;D([0,1],function(c){var p=a.handles[c],d=this._handleHeight;p.attr({scaleX:d/2,scaleY:d/2,x:n[c]+(c?-1:1),y:o[1]/2-d/2})},this),a.filler.setShape({x:i[0],y:0,width:i[1]-i[0],height:o[1]});var s={x:i[0],width:i[1]-i[0]};a.moveHandle&&(a.moveHandle.setShape(s),a.moveZone.setShape(s),a.moveZone.getBoundingRect(),a.moveHandleIcon&&a.moveHandleIcon.attr("x",s.x+s.width/2));for(var l=a.dataShadowSegs,u=[0,i[0],i[1],o[0]],f=0;fa[0]||n[1]<0||n[1]>a[1])){var i=this._handleEnds,o=(i[0]+i[1])/2,s=this._updateInterval("all",n[0]-o);this._updateView(),s&&this._dispatchZoomAction(!1)}},e.prototype._onBrushStart=function(t){var a=t.offsetX,n=t.offsetY;this._brushStart=new ft(a,n),this._brushing=!0,this._brushStartTime=+new Date},e.prototype._onBrushEnd=function(t){if(this._brushing){var a=this._displayables.brushRect;if(this._brushing=!1,!!a){a.attr("ignore",!0);var n=a.shape,i=+new Date;if(!(i-this._brushStartTime<200&&Math.abs(n.width)<5)){var o=this._getViewExtent(),s=[0,100];this._range=Ye([Dt(n.x,o,s,!0),Dt(n.x+n.width,o,s,!0)]),this._handleEnds=[n.x,n.x+n.width],this._updateView(),this._dispatchZoomAction(!1)}}}},e.prototype._onBrush=function(t){this._brushing&&(da(t.event),this._updateBrushRect(t.offsetX,t.offsetY))},e.prototype._updateBrushRect=function(t,a){var n=this._displayables,i=this.dataZoomModel,o=n.brushRect;o||(o=n.brushRect=new cs({silent:!0,style:i.getModel("brushStyle").getItemStyle()}),n.sliderGroup.add(o)),o.attr("ignore",!1);var s=this._brushStart,l=this._displayables.sliderGroup,u=l.transformCoordToLocal(t,a),f=l.transformCoordToLocal(s.x,s.y),h=this._size;u[0]=Math.max(Math.min(h[0],u[0]),0),o.setShape({x:f[0],y:0,width:u[0]-f[0],height:h[1]})},e.prototype._dispatchZoomAction=function(t){var a=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:t?gY:null,start:a[0],end:a[1]})},e.prototype._findCoordRect=function(){var t,a=VI(this.dataZoomModel).infoList;if(!t&&a.length){var n=a[0].model.coordinateSystem;t=n.getRect&&n.getRect()}if(!t){var i=this.api.getWidth(),o=this.api.getHeight();t={x:i*.2,y:o*.2,width:i*.6,height:o*.6}}return t},e.type="dataZoom.slider",e}(Sm);function mY(r){var e={x:"y",y:"x",radius:"angle",angle:"radius"};return e[r]}function jb(r){return r==="vertical"?"ns-resize":"ew-resize"}function nL(r){r.registerComponentModel(hY),r.registerComponentView(yY),xm(r)}function _Y(r){pt(aL),pt(nL)}var iL={get:function(r,e,t){var a=rt((SY[r]||{})[e]);return t&&z(a)?a[a.length-1]:a}},SY={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}},Jb=ie.mapVisual,xY=ie.eachVisual,bY=z,Qb=D,wY=Ye,TY=Dt,nh=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t.stateList=["inRange","outOfRange"],t.replacableOptionKeys=["inRange","outOfRange","target","controller","color"],t.layoutMode={type:"box",ignoreSize:!0},t.dataBound=[-1/0,1/0],t.targetVisuals={},t.controllerVisuals={},t}return e.prototype.init=function(t,a,n){this.mergeDefaultAndTheme(t,n)},e.prototype.optionUpdated=function(t,a){var n=this.option;!a&&ZI(n,t,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},e.prototype.resetVisual=function(t){var a=this.stateList;t=X(t,this),this.controllerVisuals=eg(this.option.controller,a,t),this.targetVisuals=eg(this.option.target,a,t)},e.prototype.getItemSymbol=function(){return null},e.prototype.getTargetSeriesIndices=function(){var t=this.option.seriesIndex,a=[];return t==null||t==="all"?this.ecModel.eachSeries(function(n,i){a.push(i)}):a=Rt(t),a},e.prototype.eachTargetSeries=function(t,a){D(this.getTargetSeriesIndices(),function(n){var i=this.ecModel.getSeriesByIndex(n);i&&t.call(a,i)},this)},e.prototype.isTargetSeries=function(t){var a=!1;return this.eachTargetSeries(function(n){n===t&&(a=!0)}),a},e.prototype.formatValueText=function(t,a,n){var i=this.option,o=i.precision,s=this.dataBound,l=i.formatter,u;n=n||["<",">"],z(t)&&(t=t.slice(),u=!0);var f=a?t:u?[h(t[0]),h(t[1])]:h(t);if(Y(l))return l.replace("{value}",u?f[0]:f).replace("{value2}",u?f[1]:f);if(K(l))return u?l(t[0],t[1]):l(t);if(u)return t[0]===s[0]?n[0]+" "+f[1]:t[1]===s[1]?n[1]+" "+f[0]:f[0]+" - "+f[1];return f;function h(v){return v===s[0]?"min":v===s[1]?"max":(+v).toFixed(Math.min(o,20))}},e.prototype.resetExtent=function(){var t=this.option,a=wY([t.min,t.max]);this._dataExtent=a},e.prototype.getDataDimensionIndex=function(t){var a=this.option.dimension;if(a!=null)return t.getDimensionIndex(a);for(var n=t.dimensions,i=n.length-1;i>=0;i--){var o=n[i],s=t.getDimensionInfo(o);if(!s.isCalculationCoord)return s.storeDimIndex}},e.prototype.getExtent=function(){return this._dataExtent.slice()},e.prototype.completeVisualOption=function(){var t=this.ecModel,a=this.option,n={inRange:a.inRange,outOfRange:a.outOfRange},i=a.target||(a.target={}),o=a.controller||(a.controller={});ut(i,n),ut(o,n);var s=this.isCategory();l.call(this,i),l.call(this,o),u.call(this,i,"inRange","outOfRange"),f.call(this,o);function l(h){bY(a.color)&&!h.inRange&&(h.inRange={color:a.color.slice().reverse()}),h.inRange=h.inRange||{color:t.get("gradientColor")}}function u(h,v,c){var p=h[v],d=h[c];p&&!d&&(d=h[c]={},Qb(p,function(g,y){if(ie.isValidType(y)){var m=iL.get(y,"inactive",s);m!=null&&(d[y]=m,y==="color"&&!d.hasOwnProperty("opacity")&&!d.hasOwnProperty("colorAlpha")&&(d.opacity=[0,0]))}}))}function f(h){var v=(h.inRange||{}).symbol||(h.outOfRange||{}).symbol,c=(h.inRange||{}).symbolSize||(h.outOfRange||{}).symbolSize,p=this.get("inactiveColor"),d=this.getItemSymbol(),g=d||"roundRect";Qb(this.stateList,function(y){var m=this.itemSize,_=h[y];_||(_=h[y]={color:s?p:[p]}),_.symbol==null&&(_.symbol=v&&rt(v)||(s?g:[g])),_.symbolSize==null&&(_.symbolSize=c&&rt(c)||(s?m[0]:[m[0],m[0]])),_.symbol=Jb(_.symbol,function(x){return x==="none"?g:x});var S=_.symbolSize;if(S!=null){var b=-1/0;xY(S,function(x){x>b&&(b=x)}),_.symbolSize=Jb(S,function(x){return TY(x,[0,b],[0,m[0]],!0)})}},this)}},e.prototype.resetItemSize=function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},e.prototype.isCategory=function(){return!!this.option.categories},e.prototype.setSelected=function(t){},e.prototype.getSelected=function(){return null},e.prototype.getValueState=function(t){return null},e.prototype.getVisualMeta=function(t){return null},e.type="visualMap",e.dependencies=["series"],e.defaultOption={show:!0,z:4,seriesIndex:"all",min:0,max:200,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,textStyle:{color:"#333"}},e}(gt),tw=[20,140],AY=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.optionUpdated=function(t,a){r.prototype.optionUpdated.apply(this,arguments),this.resetExtent(),this.resetVisual(function(n){n.mappingMethod="linear",n.dataExtent=this.getExtent()}),this._resetRange()},e.prototype.resetItemSize=function(){r.prototype.resetItemSize.apply(this,arguments);var t=this.itemSize;(t[0]==null||isNaN(t[0]))&&(t[0]=tw[0]),(t[1]==null||isNaN(t[1]))&&(t[1]=tw[1])},e.prototype._resetRange=function(){var t=this.getExtent(),a=this.option.range;!a||a.auto?(t.auto=1,this.option.range=t):z(a)&&(a[0]>a[1]&&a.reverse(),a[0]=Math.max(a[0],t[0]),a[1]=Math.min(a[1],t[1]))},e.prototype.completeVisualOption=function(){r.prototype.completeVisualOption.apply(this,arguments),D(this.stateList,function(t){var a=this.option.controller[t].symbolSize;a&&a[0]!==a[1]&&(a[0]=a[1]/3)},this)},e.prototype.setSelected=function(t){this.option.range=t.slice(),this._resetRange()},e.prototype.getSelected=function(){var t=this.getExtent(),a=Ye((this.get("range")||[]).slice());return a[0]>t[1]&&(a[0]=t[1]),a[1]>t[1]&&(a[1]=t[1]),a[0]=n[1]||t<=a[1])?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var a=[];return this.eachTargetSeries(function(n){var i=[],o=n.getData();o.each(this.getDataDimensionIndex(o),function(s,l){t[0]<=s&&s<=t[1]&&i.push(l)},this),a.push({seriesId:n.id,dataIndex:i})},this),a},e.prototype.getVisualMeta=function(t){var a=ew(this,"outOfRange",this.getExtent()),n=ew(this,"inRange",this.option.range.slice()),i=[];function o(c,p){i.push({value:c,color:t(c,p)})}for(var s=0,l=0,u=n.length,f=a.length;lt[1])break;i.push({color:this.getControllerVisual(l,"color",a),offset:s/n})}return i.push({color:this.getControllerVisual(t[1],"color",a),offset:1}),i},e.prototype._createBarPoints=function(t,a){var n=this.visualMapModel.itemSize;return[[n[0]-a[0],t[0]],[n[0],t[0]],[n[0],t[1]],[n[0]-a[1],t[1]]]},e.prototype._createBarGroup=function(t){var a=this._orient,n=this.visualMapModel.get("inverse");return new at(a==="horizontal"&&!n?{scaleX:t==="bottom"?1:-1,rotation:Math.PI/2}:a==="horizontal"&&n?{scaleX:t==="bottom"?-1:1,rotation:-Math.PI/2}:a==="vertical"&&!n?{scaleX:t==="left"?1:-1,scaleY:-1}:{scaleX:t==="left"?1:-1})},e.prototype._updateHandle=function(t,a){if(this._useHandle){var n=this._shapes,i=this.visualMapModel,o=n.handleThumbs,s=n.handleLabels,l=i.itemSize,u=i.getExtent(),f=this._applyTransform("left",n.mainGroup);CY([0,1],function(h){var v=o[h];v.setStyle("fill",a.handlesColor[h]),v.y=t[h];var c=zr(t[h],[0,l[1]],u,!0),p=this.getControllerVisual(c,"symbolSize");v.scaleX=v.scaleY=p/l[0],v.x=l[0]-p/2;var d=Dr(n.handleLabelPoints[h],$a(v,this.group));if(this._orient==="horizontal"){var g=f==="left"||f==="top"?(l[0]-p)/2:(l[0]-p)/-2;d[1]+=g}s[h].setStyle({x:d[0],y:d[1],text:i.formatValueText(this._dataInterval[h]),verticalAlign:"middle",align:this._orient==="vertical"?this._applyTransform("left",n.mainGroup):"center"})},this)}},e.prototype._showIndicator=function(t,a,n,i){var o=this.visualMapModel,s=o.getExtent(),l=o.itemSize,u=[0,l[1]],f=this._shapes,h=f.indicator;if(h){h.attr("invisible",!1);var v={convertOpacityToAlpha:!0},c=this.getControllerVisual(t,"color",v),p=this.getControllerVisual(t,"symbolSize"),d=zr(t,s,u,!0),g=l[0]-p/2,y={x:h.x,y:h.y};h.y=d,h.x=g;var m=Dr(f.indicatorLabelPoint,$a(h,this.group)),_=f.indicatorLabel;_.attr("invisible",!1);var S=this._applyTransform("left",f.mainGroup),b=this._orient,x=b==="horizontal";_.setStyle({text:(n||"")+o.formatValueText(a),verticalAlign:x?S:"middle",align:x?"center":S});var w={x:g,y:d,style:{fill:c}},T={style:{x:m[0],y:m[1]}};if(o.ecModel.isAnimationEnabled()&&!this._firstShowIndicator){var A={duration:100,easing:"cubicInOut",additive:!0};h.x=y.x,h.y=y.y,h.animateTo(w,A),_.animateTo(T,A)}else h.attr(w),_.attr(T);this._firstShowIndicator=!1;var C=this._shapes.handleLabels;if(C)for(var M=0;Mo[1]&&(h[1]=1/0),a&&(h[0]===-1/0?this._showIndicator(f,h[1],"< ",l):h[1]===1/0?this._showIndicator(f,h[0],"> ",l):this._showIndicator(f,f,"≈ ",l));var v=this._hoverLinkDataIndices,c=[];(a||iw(n))&&(c=this._hoverLinkDataIndices=n.findTargetDataIndices(h));var p=bP(v,c);this._dispatchHighDown("downplay",hf(p[0],n)),this._dispatchHighDown("highlight",hf(p[1],n))}},e.prototype._hoverLinkFromSeriesMouseOver=function(t){var a;if(Zn(t.target,function(l){var u=nt(l);if(u.dataIndex!=null)return a=u,!0},!0),!!a){var n=this.ecModel.getSeriesByIndex(a.seriesIndex),i=this.visualMapModel;if(i.isTargetSeries(n)){var o=n.getData(a.dataType),s=o.getStore().get(i.getDataDimensionIndex(o),a.dataIndex);isNaN(s)||this._showIndicator(s,s)}}},e.prototype._hideIndicator=function(){var t=this._shapes;t.indicator&&t.indicator.attr("invisible",!0),t.indicatorLabel&&t.indicatorLabel.attr("invisible",!0);var a=this._shapes.handleLabels;if(a)for(var n=0;n=0&&(i.dimension=o,a.push(i))}}),r.getData().setVisual("visualMeta",a)}}];function kY(r,e,t,a){for(var n=e.targetVisuals[a],i=ie.prepareVisualTypes(n),o={color:Rl(r.getData(),"color")},s=0,l=i.length;s0:e.splitNumber>0)||e.calculable)?"continuous":"piecewise"}),r.registerAction(PY,RY),D(EY,function(e){r.registerVisual(r.PRIORITY.VISUAL.COMPONENT,e)}),r.registerPreprocessor(OY))}function uL(r){r.registerComponentModel(AY),r.registerComponentView(IY),lL(r)}var NY=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t._pieceList=[],t}return e.prototype.optionUpdated=function(t,a){r.prototype.optionUpdated.apply(this,arguments),this.resetExtent();var n=this._mode=this._determineMode();this._pieceList=[],BY[this._mode].call(this,this._pieceList),this._resetSelected(t,a);var i=this.option.categories;this.resetVisual(function(o,s){n==="categories"?(o.mappingMethod="category",o.categories=rt(i)):(o.dataExtent=this.getExtent(),o.mappingMethod="piecewise",o.pieceList=G(this._pieceList,function(l){return l=rt(l),s!=="inRange"&&(l.visual=null),l}))})},e.prototype.completeVisualOption=function(){var t=this.option,a={},n=ie.listVisualTypes(),i=this.isCategory();D(t.pieces,function(s){D(n,function(l){s.hasOwnProperty(l)&&(a[l]=1)})}),D(a,function(s,l){var u=!1;D(this.stateList,function(f){u=u||o(t,f,l)||o(t.target,f,l)},this),!u&&D(this.stateList,function(f){(t[f]||(t[f]={}))[l]=iL.get(l,f==="inRange"?"active":"inactive",i)})},this);function o(s,l,u){return s&&s[l]&&s[l].hasOwnProperty(u)}r.prototype.completeVisualOption.apply(this,arguments)},e.prototype._resetSelected=function(t,a){var n=this.option,i=this._pieceList,o=(a?n:t).selected||{};if(n.selected=o,D(i,function(l,u){var f=this.getSelectedMapKey(l);o.hasOwnProperty(f)||(o[f]=!0)},this),n.selectedMode==="single"){var s=!1;D(i,function(l,u){var f=this.getSelectedMapKey(l);o[f]&&(s?o[f]=!1:s=!0)},this)}},e.prototype.getItemSymbol=function(){return this.get("itemSymbol")},e.prototype.getSelectedMapKey=function(t){return this._mode==="categories"?t.value+"":t.index+""},e.prototype.getPieceList=function(){return this._pieceList},e.prototype._determineMode=function(){var t=this.option;return t.pieces&&t.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},e.prototype.setSelected=function(t){this.option.selected=rt(t)},e.prototype.getValueState=function(t){var a=ie.findPieceIndex(t,this._pieceList);return a!=null&&this.option.selected[this.getSelectedMapKey(this._pieceList[a])]?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var a=[],n=this._pieceList;return this.eachTargetSeries(function(i){var o=[],s=i.getData();s.each(this.getDataDimensionIndex(s),function(l,u){var f=ie.findPieceIndex(l,n);f===t&&o.push(u)},this),a.push({seriesId:i.id,dataIndex:o})},this),a},e.prototype.getRepresentValue=function(t){var a;if(this.isCategory())a=t.value;else if(t.value!=null)a=t.value;else{var n=t.interval||[];a=n[0]===-1/0&&n[1]===1/0?0:(n[0]+n[1])/2}return a},e.prototype.getVisualMeta=function(t){if(this.isCategory())return;var a=[],n=["",""],i=this;function o(f,h){var v=i.getRepresentValue({interval:f});h||(h=i.getValueState(v));var c=t(v,h);f[0]===-1/0?n[0]=c:f[1]===1/0?n[1]=c:a.push({value:f[0],color:c},{value:f[1],color:c})}var s=this._pieceList.slice();if(!s.length)s.push({interval:[-1/0,1/0]});else{var l=s[0].interval[0];l!==-1/0&&s.unshift({interval:[-1/0,l]}),l=s[s.length-1].interval[1],l!==1/0&&s.push({interval:[l,1/0]})}var u=-1/0;return D(s,function(f){var h=f.interval;h&&(h[0]>u&&o([u,h[0]],"outOfRange"),o(h.slice()),u=h[1])},this),{stops:a,outerColors:n}},e.type="visualMap.piecewise",e.defaultOption=sn(nh.defaultOption,{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieces:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0}),e}(nh),BY={splitNumber:function(r){var e=this.option,t=Math.min(e.precision,20),a=this.getExtent(),n=e.splitNumber;n=Math.max(parseInt(n,10),1),e.splitNumber=n;for(var i=(a[1]-a[0])/n;+i.toFixed(t)!==i&&t<5;)t++;e.precision=t,i=+i.toFixed(t),e.minOpen&&r.push({interval:[-1/0,a[0]],close:[0,0]});for(var o=0,s=a[0];o","≥"][a[0]]];t.text=t.text||this.formatValueText(t.value!=null?t.value:t.interval,!1,n)},this)}};function uw(r,e){var t=r.inverse;(r.orient==="vertical"?!t:t)&&e.reverse()}var VY=function(r){N(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.type=e.type,t}return e.prototype.doRender=function(){var t=this.group;t.removeAll();var a=this.visualMapModel,n=a.get("textGap"),i=a.textStyleModel,o=i.getFont(),s=i.getTextColor(),l=this._getItemAlign(),u=a.itemSize,f=this._getViewData(),h=f.endsText,v=ae(a.get("showLabel",!0),!h),c=!a.get("selectedMode");h&&this._renderEndsText(t,h[0],u,v,l),D(f.viewPieceList,function(p){var d=p.piece,g=new at;g.onclick=X(this._onItemClick,this,d),this._enableHoverLink(g,p.indexInModelPieceList);var y=a.getRepresentValue(d);if(this._createItemSymbol(g,y,[0,0,u[0],u[1]],c),v){var m=this.visualMapModel.getValueState(y);g.add(new St({style:{x:l==="right"?-n:u[0]+n,y:u[1]/2,text:d.text,verticalAlign:"middle",align:l,font:o,fill:s,opacity:m==="outOfRange"?.5:1},silent:c}))}t.add(g)},this),h&&this._renderEndsText(t,h[1],u,v,l),ei(a.get("orient"),t,a.get("itemGap")),this.renderBackground(t),this.positionGroup(t)},e.prototype._enableHoverLink=function(t,a){var n=this;t.on("mouseover",function(){return i("highlight")}).on("mouseout",function(){return i("downplay")});var i=function(o){var s=n.visualMapModel;s.option.hoverLink&&n.api.dispatchAction({type:o,batch:hf(s.findTargetDataIndices(a),s)})}},e.prototype._getItemAlign=function(){var t=this.visualMapModel,a=t.option;if(a.orient==="vertical")return sL(t,this.api,t.itemSize);var n=a.align;return(!n||n==="auto")&&(n="left"),n},e.prototype._renderEndsText=function(t,a,n,i,o){if(a){var s=new at,l=this.visualMapModel.textStyleModel;s.add(new St({style:Nt(l,{x:i?o==="right"?n[0]:0:n[0]/2,y:n[1]/2,verticalAlign:"middle",align:i?o:"center",text:a})})),t.add(s)}},e.prototype._getViewData=function(){var t=this.visualMapModel,a=G(t.getPieceList(),function(s,l){return{piece:s,indexInModelPieceList:l}}),n=t.get("text"),i=t.get("orient"),o=t.get("inverse");return(i==="horizontal"?o:!o)?a.reverse():n&&(n=n.slice().reverse()),{viewPieceList:a,endsText:n}},e.prototype._createItemSymbol=function(t,a,n,i){var o=qt(this.getControllerVisual(a,"symbol"),n[0],n[1],n[2],n[3],this.getControllerVisual(a,"color"));o.silent=i,t.add(o)},e.prototype._onItemClick=function(t){var a=this.visualMapModel,n=a.option,i=n.selectedMode;if(i){var o=rt(n.selected),s=a.getSelectedMapKey(t);i==="single"||i===!0?(o[s]=!0,D(o,function(l,u){o[u]=u===s})):o[s]=!o[s],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:o})}},e.type="visualMap.piecewise",e}(oL);function fL(r){r.registerComponentModel(NY),r.registerComponentView(VY),lL(r)}function zY(r){pt(uL),pt(fL)}var GY={label:{enabled:!0},decal:{show:!1}},fw=bt(),FY={};function HY(r,e){var t=r.getModel("aria");if(!t.get("enabled"))return;var a=rt(GY);ut(a.label,r.getLocaleModel().get("aria"),!1),ut(t.option,a,!1),n(),i();function n(){var u=t.getModel("decal"),f=u.get("show");if(f){var h=Z();r.eachSeries(function(v){if(!v.isColorBySeries()){var c=h.get(v.type);c||(c={},h.set(v.type,c)),fw(v).scope=c}}),r.eachRawSeries(function(v){if(r.isSeriesFiltered(v))return;if(K(v.enableAriaDecal)){v.enableAriaDecal();return}var c=v.getData();if(v.isColorBySeries()){var m=od(v.ecModel,v.name,FY,r.getSeriesCount()),_=c.getVisual("decal");c.setVisual("decal",S(_,m))}else{var p=v.getRawData(),d={},g=fw(v).scope;c.each(function(b){var x=c.getRawIndex(b);d[x]=b});var y=p.count();p.each(function(b){var x=d[b],w=p.getName(b)||b+"",T=od(v.ecModel,w,g,y),A=c.getItemVisual(x,"decal");c.setItemVisual(x,"decal",S(A,T))})}function S(b,x){var w=b?V(V({},x),b):x;return w.dirty=!0,w}})}}function i(){var u=e.getZr().dom;if(u){var f=r.getLocaleModel().get("aria"),h=t.getModel("label");if(h.option=J(h.option,f),!!h.get("enabled")){if(u.setAttribute("role","img"),h.get("description")){u.setAttribute("aria-label",h.get("description"));return}var v=r.getSeriesCount(),c=h.get(["data","maxCount"])||10,p=h.get(["series","maxCount"])||10,d=Math.min(v,p),g;if(!(v<1)){var y=s();if(y){var m=h.get(["general","withTitle"]);g=o(m,{title:y})}else g=h.get(["general","withoutTitle"]);var _=[],S=v>1?h.get(["series","multiple","prefix"]):h.get(["series","single","prefix"]);g+=o(S,{seriesCount:v}),r.eachSeries(function(T,A){if(A1?h.get(["series","multiple",I]):h.get(["series","single",I]),C=o(C,{seriesId:T.seriesIndex,seriesName:T.get("name"),seriesType:l(T.subType)});var L=T.getData();if(L.count()>c){var P=h.get(["data","partialData"]);C+=o(P,{displayCnt:c})}else C+=h.get(["data","allData"]);for(var R=h.get(["data","separator","middle"]),E=h.get(["data","separator","end"]),O=h.get(["data","excludeDimensionId"]),k=[],B=0;B":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},YY=function(){function r(e){var t=this._condVal=Y(e)?new RegExp(e):kw(e)?e:null;if(t==null){var a="";Mt(a)}}return r.prototype.evaluate=function(e){var t=typeof e;return Y(t)?this._condVal.test(e):wt(t)?this._condVal.test(e+""):!1},r}(),XY=function(){function r(){}return r.prototype.evaluate=function(){return this.value},r}(),$Y=function(){function r(){}return r.prototype.evaluate=function(){for(var e=this.children,t=0;t2&&a.push(n),n=[L,P]}function f(L,P,R,E){Ji(L,R)&&Ji(P,E)||n.push(L,P,R,E,R,E)}function h(L,P,R,E,O,k){var B=Math.abs(P-L),F=Math.tan(B/4)*4/3,H=PT:M2&&a.push(n),a}function ug(r,e,t,a,n,i,o,s,l,u){if(Ji(r,t)&&Ji(e,a)&&Ji(n,o)&&Ji(i,s)){l.push(o,s);return}var f=2/u,h=f*f,v=o-r,c=s-e,p=Math.sqrt(v*v+c*c);v/=p,c/=p;var d=t-r,g=a-e,y=n-o,m=i-s,_=d*d+g*g,S=y*y+m*m;if(_=0&&T=0){l.push(o,s);return}var A=[],C=[];Ja(r,t,n,o,.5,A),Ja(e,a,i,s,.5,C),ug(A[0],C[0],A[1],C[1],A[2],C[2],A[3],C[3],l,u),ug(A[4],C[4],A[5],C[5],A[6],C[6],A[7],C[7],l,u)}function s7(r,e){var t=lg(r),a=[];e=e||1;for(var n=0;n0)for(var u=0;uMath.abs(u),h=vL([l,u],f?0:1,e),v=(f?s:u)/h.length,c=0;cn,o=vL([a,n],i?0:1,e),s=i?"width":"height",l=i?"height":"width",u=i?"x":"y",f=i?"y":"x",h=r[s]/o.length,v=0;v1?null:new ft(d*l+r,d*u+e)}function f7(r,e,t){var a=new ft;ft.sub(a,t,e),a.normalize();var n=new ft;ft.sub(n,r,e);var i=n.dot(a);return i}function Wi(r,e){var t=r[r.length-1];t&&t[0]===e[0]&&t[1]===e[1]||r.push(e)}function h7(r,e,t){for(var a=r.length,n=[],i=0;io?(u.x=f.x=s+i/2,u.y=l,f.y=l+o):(u.y=f.y=l+o/2,u.x=s,f.x=s+i),h7(e,u,f)}function ih(r,e,t,a){if(t===1)a.push(e);else{var n=Math.floor(t/2),i=r(e);ih(r,i[0],n,a),ih(r,i[1],t-n,a)}return a}function v7(r,e){for(var t=[],a=0;a0;u/=2){var f=0,h=0;(r&u)>0&&(f=1),(e&u)>0&&(h=1),s+=u*u*(3*f^h),h===0&&(f===1&&(r=u-1-r,e=u-1-e),l=r,r=e,e=l)}return s}function lh(r){var e=1/0,t=1/0,a=-1/0,n=-1/0,i=G(r,function(s){var l=s.getBoundingRect(),u=s.getComputedTransform(),f=l.x+l.width/2+(u?u[4]:0),h=l.y+l.height/2+(u?u[5]:0);return e=Math.min(f,e),t=Math.min(h,t),a=Math.max(f,a),n=Math.max(h,n),[f,h]}),o=G(i,function(s,l){return{cp:s,z:x7(s[0],s[1],e,t,a,n),path:r[l]}});return o.sort(function(s,l){return s.z-l.z}).map(function(s){return s.path})}function dL(r){return d7(r.path,r.count)}function fg(){return{fromIndividuals:[],toIndividuals:[],count:0}}function b7(r,e,t){var a=[];function n(b){for(var x=0;x=0;n--)if(!t[n].many.length){var l=t[s].many;if(l.length<=1)if(s)s=0;else return t;var i=l.length,u=Math.ceil(i/2);t[n].many=l.slice(u,i),t[s].many=l.slice(0,u),s++}return t}var T7={clone:function(r){for(var e=[],t=1-Math.pow(1-r.path.style.opacity,1/r.count),a=0;a0))return;var s=a.getModel("universalTransition").get("delay"),l=Object.assign({setToFinal:!0},o),u,f;_w(r)&&(u=r,f=e),_w(e)&&(u=e,f=r);function h(y,m,_,S,b){var x=y.many,w=y.one;if(x.length===1&&!b){var T=m?x[0]:w,A=m?w:x[0];if(oh(T))h({many:[T],one:A},!0,_,S,!0);else{var C=s?J({delay:s(_,S)},l):l;Pm(T,A,C),i(T,A,T,A,C)}}else for(var M=J({dividePath:T7[t],individualDelay:s&&function(O,k,B,F){return s(O+_,S)}},l),I=m?b7(x,w,M):w7(w,x,M),L=I.fromIndividuals,P=I.toIndividuals,R=L.length,E=0;Ee.length,c=u?Sw(f,u):Sw(v?e:r,[v?r:e]),p=0,d=0;dgL))for(var i=a.getIndices(),o=0;o0&&x.group.traverse(function(T){T instanceof mt&&!T.animators.length&&T.animateFrom({style:{opacity:0}},w)})})}function Aw(r){var e=r.getModel("universalTransition").get("seriesKey");return e||r.id}function Cw(r){return z(r)?r.sort().join(","):r}function Na(r){if(r.hostModel)return r.hostModel.getModel("universalTransition").get("divideShape")}function P7(r,e){var t=Z(),a=Z(),n=Z();return D(r.oldSeries,function(i,o){var s=r.oldDataGroupIds[o],l=r.oldData[o],u=Aw(i),f=Cw(u);a.set(f,{dataGroupId:s,data:l}),z(u)&&D(u,function(h){n.set(h,{key:f,dataGroupId:s,data:l})})}),D(e.updatedSeries,function(i){if(i.isUniversalTransitionEnabled()&&i.isAnimationEnabled()){var o=i.get("dataGroupId"),s=i.getData(),l=Aw(i),u=Cw(l),f=a.get(u);if(f)t.set(u,{oldSeries:[{dataGroupId:f.dataGroupId,divide:Na(f.data),data:f.data}],newSeries:[{dataGroupId:o,divide:Na(s),data:s}]});else if(z(l)){var h=[];D(l,function(p){var d=a.get(p);d.data&&h.push({dataGroupId:d.dataGroupId,divide:Na(d.data),data:d.data})}),h.length&&t.set(u,{oldSeries:h,newSeries:[{dataGroupId:o,data:s,divide:Na(s)}]})}else{var v=n.get(l);if(v){var c=t.get(v.key);c||(c={oldSeries:[{dataGroupId:v.dataGroupId,data:v.data,divide:Na(v.data)}],newSeries:[]},t.set(v.key,c)),c.newSeries.push({dataGroupId:o,data:s,divide:Na(s)})}}}}),t}function Dw(r,e){for(var t=0;t=0&&n.push({dataGroupId:e.oldDataGroupIds[s],data:e.oldData[s],divide:Na(e.oldData[s]),groupIdDim:o.dimension})}),D(Rt(r.to),function(o){var s=Dw(t.updatedSeries,o);if(s>=0){var l=t.updatedSeries[s].getData();i.push({dataGroupId:e.oldDataGroupIds[s],data:l,divide:Na(l),groupIdDim:o.dimension})}}),n.length>0&&i.length>0&&yL(n,i,a)}function E7(r){r.registerUpdateLifecycle("series:beforeupdate",function(e,t,a){D(Rt(a.seriesTransition),function(n){D(Rt(n.to),function(i){for(var o=a.updatedSeries,s=0;s{B({url:`/api/dvadmin3_flow/flow_info/${a.mainId}/`,method:"get"}).then(o=>{const{data:e}=o;s.value=e})},i=()=>{t("close")};return w(()=>{u()}),(o,e)=>{const c=C("el-drawer");return D(),k("div",null,[d(c,{modelValue:n.value,"onUpdate:modelValue":e[1]||(e[1]=l=>n.value=l),size:"80%",title:"流程配置","append-to-body":"","close-on-click-modal":!1,"close-on-press-escape":!1,onClose:i},{default:x(()=>[d(p,{modelValue:s.value,"onUpdate:modelValue":e[0]||(e[0]=l=>s.value=l),"destroy-on-close":""},null,8,["modelValue"])]),_:1},8,["modelValue"])])}}});export{I as _}; diff --git a/web/dist/assets/flowProcess.Cf0JoXnz.js b/web/dist/assets/flowProcess.Cf0JoXnz.js new file mode 100644 index 0000000000000000000000000000000000000000..edd4f2a599ff364453408e5a0e8e24ddaccd1e09 --- /dev/null +++ b/web/dist/assets/flowProcess.Cf0JoXnz.js @@ -0,0 +1 @@ +import{_ as o}from"./flowProcess.vue_vue_type_script_setup_true_lang.BnIifrfm.js";import"./ProcessRender.C3vTPZCi.js";import"./ProcessNodes.r7PbQ_Ri.js";import"./index.XK2ik2qb.js";import"./vue.DmuWcDrn.js";import"./ProcessUtil.B7gNiVp1.js";import"./_plugin-vue_export-helper.DlAUqK2U.js";import"./request.FMdsBF9A.js";export{o as default}; diff --git a/web/dist/assets/flowProcess.vue_vue_type_script_setup_true_lang.BnIifrfm.js b/web/dist/assets/flowProcess.vue_vue_type_script_setup_true_lang.BnIifrfm.js new file mode 100644 index 0000000000000000000000000000000000000000..acf22ea5d1b8356cdc1ec56f859d08d2d1630a34 --- /dev/null +++ b/web/dist/assets/flowProcess.vue_vue_type_script_setup_true_lang.BnIifrfm.js @@ -0,0 +1 @@ +import i from"./ProcessRender.C3vTPZCi.js";import{s as f}from"./request.FMdsBF9A.js";import{d as V,c as _,g as n,x as v,h as w,b as g,o as x,w as y,k as h,n as k}from"./vue.DmuWcDrn.js";const b=V({__name:"flowProcess",props:{modelValue:Boolean,mainId:Object},emits:["update:modelValue"],setup(r,{emit:d}){const a=r,m=d,s=_({get(){return a.modelValue},set(o){m("update:modelValue",o)}}),u=n(100),t=n(),p=()=>f({url:`/api/dvadmin3_flow/flow_info/${a.mainId}/get_flow_process/`,method:"get"}).then(o=>{const{data:e}=o;t.value=e});return v(()=>{p()}),(o,e)=>{const c=w("el-dialog");return x(),g(c,{modelValue:s.value,"onUpdate:modelValue":e[1]||(e[1]=l=>s.value=l),width:"80%",title:"流程图"},{default:y(()=>[h(i,{ref:"processRender",style:k(`transform: scale(${u.value/100})`),modelValue:t.value,"onUpdate:modelValue":e[0]||(e[0]=l=>t.value=l),readonly:!0},null,8,["style","modelValue"])]),_:1},8,["modelValue"])}}});export{b as _}; diff --git a/web/dist/assets/flowRecord.DLRyFvfC.css b/web/dist/assets/flowRecord.DLRyFvfC.css new file mode 100644 index 0000000000000000000000000000000000000000..6dcdb7ecc197c54226150f4546f94cee2b302e8f --- /dev/null +++ b/web/dist/assets/flowRecord.DLRyFvfC.css @@ -0,0 +1 @@ +.header-title[data-v-61df516c]{font-size:1.2em;color:#686868} diff --git a/web/dist/assets/flowRecord.oyBwBcUm.js b/web/dist/assets/flowRecord.oyBwBcUm.js new file mode 100644 index 0000000000000000000000000000000000000000..f849080bcc64e326520a8e1894577dcdc1257627 --- /dev/null +++ b/web/dist/assets/flowRecord.oyBwBcUm.js @@ -0,0 +1 @@ +import{d as V,c as j,h as c,a as s,o as t,k as p,w as a,b as v,J as d,G as i,H as _,e as n,K as o,m as g}from"./vue.DmuWcDrn.js";import{_ as U}from"./_plugin-vue_export-helper.DlAUqK2U.js";const b={style:{"padding-left":"10px"}},B={class:"header-title"},I={key:0,style:{"margin-top":"5px"}},S={key:0},T={key:1},z={class:"flex justify-start gap-3"},M={class:"flex justify-start gap-3 mt-2.5"},R={key:2},A={class:"flex justify-start gap-3 mt-2.5"},O=V({__name:"flowRecord",props:{status:Number,modelValue:Object},setup(k){const m=k,h=j(()=>m.modelValue),D=r=>({OR:"或签"})[r],x=r=>r==1?"Check":"More",w=r=>r==1?"success":"warning";return(r,l)=>{const y=c("el-tag"),C=c("el-card"),f=c("el-timeline-item"),N=c("el-timeline");return t(),s("div",b,[p(N,null,{default:a(()=>[(t(!0),s(i,null,_(h.value,e=>(t(),v(f,{timestamp:e.create_datetime,placement:"top",size:"large",icon:x(e.nodeStatus),type:w(e.nodeStatus)},{default:a(()=>[p(C,null,{header:a(()=>[n("div",B,[n("span",null,o(e.nodeData.name),1)]),e.nodeData.node_type=="Approval"?(t(),s("div",I,[l[0]||(l[0]=n("span",null,"审批模式",-1)),p(y,null,{default:a(()=>[g(o(D(e.nodeData.props.taskMode.type)),1)]),_:2},1024)])):d("",!0)]),default:a(()=>[e.nodeData.node_type=="Start"?(t(),s("div",S,o(e.startUserName)+"(发起流程) ",1)):d("",!0),e.nodeData.node_type=="Approval"?(t(),s("div",T,[n("div",z,[n("div",null,"审核人员("+o(e.preInfo.pre_user.length)+"人):",1),(t(!0),s(i,null,_(e.preInfo.pre_user,u=>(t(),s("div",null,[n("span",null,o(u.name),1)]))),256))]),n("div",M,[n("div",null,"审核完成("+o(e.auditUsers.length)+"人):",1),(t(!0),s(i,null,_(e.auditUsers,u=>(t(),s("div",null,[p(y,{type:"success"},{default:a(()=>[g(o(u.name),1)]),_:2},1024)]))),256))])])):d("",!0),e.nodeData.node_type=="Cc"?(t(),s("div",R,[n("div",A,[n("div",null,"抄送("+o(e.nodeData.props.assignUser.length)+"人):",1),(t(!0),s(i,null,_(e.nodeData.props.assignUser,u=>(t(),s("div",null,[p(y,{type:"success"},{default:a(()=>[g(o(u.name),1)]),_:2},1024)]))),256))])])):d("",!0)]),_:2},1024)]),_:2},1032,["timestamp","icon","type"]))),256)),m.status==0?(t(),v(f,{key:0,timestamp:"",placement:"top",size:"large",icon:"loading",type:"warning"},{default:a(()=>l[1]||(l[1]=[n("div",null," 进行中 ",-1)])),_:1})):d("",!0),m.status==1?(t(),v(f,{key:1,timestamp:"",placement:"top",size:"large",icon:"check",type:"success"},{default:a(()=>l[2]||(l[2]=[n("div",null," 审批通过 ",-1)])),_:1})):d("",!0)]),_:1})])}}}),G=U(O,[["__scopeId","data-v-61df516c"]]);export{G as default}; diff --git a/web/dist/assets/fontawesome-webfont.B-jkhYfk.woff2 b/web/dist/assets/fontawesome-webfont.B-jkhYfk.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4d13fc60404b91e398a37200c4a77b645cfd9586 Binary files /dev/null and b/web/dist/assets/fontawesome-webfont.B-jkhYfk.woff2 differ diff --git a/web/dist/assets/fontawesome-webfont.CDK5bt4p.woff b/web/dist/assets/fontawesome-webfont.CDK5bt4p.woff new file mode 100644 index 0000000000000000000000000000000000000000..400014a4b06eee3d0c0d54402a47ab2601b2862b Binary files /dev/null and b/web/dist/assets/fontawesome-webfont.CDK5bt4p.woff differ diff --git a/web/dist/assets/fontawesome-webfont.CQDK8MU3.ttf b/web/dist/assets/fontawesome-webfont.CQDK8MU3.ttf new file mode 100644 index 0000000000000000000000000000000000000000..35acda2fa1196aad98c2adf4378a7611dd713aa3 Binary files /dev/null and b/web/dist/assets/fontawesome-webfont.CQDK8MU3.ttf differ diff --git a/web/dist/assets/fontawesome-webfont.D13rzr4g.svg b/web/dist/assets/fontawesome-webfont.D13rzr4g.svg new file mode 100644 index 0000000000000000000000000000000000000000..855c845e538b65548118279537a04eab2ec6ef0d --- /dev/null +++ b/web/dist/assets/fontawesome-webfont.D13rzr4g.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/dist/assets/fontawesome-webfont.G5YE5S7X.eot b/web/dist/assets/fontawesome-webfont.G5YE5S7X.eot new file mode 100644 index 0000000000000000000000000000000000000000..e9f60ca953f93e35eab4108bd414bc02ddcf3928 Binary files /dev/null and b/web/dist/assets/fontawesome-webfont.G5YE5S7X.eot differ diff --git a/web/dist/assets/formContent.B3OsGQeK.css b/web/dist/assets/formContent.B3OsGQeK.css new file mode 100644 index 0000000000000000000000000000000000000000..8f731fb5034ba62d5036fb77263ffec1f17cbe37 --- /dev/null +++ b/web/dist/assets/formContent.B3OsGQeK.css @@ -0,0 +1 @@ +[data-v-3e69e1a0] .el-upload-list--picture-card{text-align:center} diff --git a/web/dist/assets/formContent.U3zr-VRA.js b/web/dist/assets/formContent.U3zr-VRA.js new file mode 100644 index 0000000000000000000000000000000000000000..fac7a8f9ec5bd6f5759d1144e4aa0542c66a7ec5 --- /dev/null +++ b/web/dist/assets/formContent.U3zr-VRA.js @@ -0,0 +1 @@ +import{G as ue,s as pe,D as ie,U as ce}from"./api.BZTxDs4c.js";import{d as E}from"./dictionary.DnyXy1XL.js";import{g as X,S as _e,G as x,s as fe,V as me,W as ye,h as ke}from"./index.XK2ik2qb.js";import{_ as ve}from"./crudTable.vue_vue_type_script_setup_true_lang.CYM7VyF5.js";import{d as be,g as v,i as ge,C as Ve,h as c,a as m,o as r,k as d,w as s,m as y,G as S,H as j,u as a,b as _,K as U,e as b,J as he}from"./vue.DmuWcDrn.js";import{_ as Ue}from"./_plugin-vue_export-helper.DlAUqK2U.js";const we={key:1},xe={slot:"prepend"},Ce={style:{padding:"0px 5px"}},Oe={key:1},Ie=["src"],Se=["src"],je=be({__name:"formContent",props:["options","editableTabsItem"],setup(L){const J=L;let n=v({}),k=v([]);const R=v();let T=v(X()+"api/system/file/"),$=v({Authorization:"JWT "+_e.get("token")}),W=v(""),D=v(!1);v(null);const Y=()=>{ue({parent:J.options.id,limit:999}).then(t=>{let o=t.data;k.value=o;const u={};for(const p of o){const i=p.key;p.value?u[i]=p.value:[5,12,11,14].indexOf(p.form_item_type)!==-1?u[i]=p.value||[]:u[i]=p.value}n.value=Object.assign({},u)})},Z=t=>{const o=Object.keys(n.value),u=Object.values(n.value);for(const p in k.value){const i=k.value[p];o.forEach((g,w)=>{if(g===i.key&&(i.value=u[w],["img","imgs"].indexOf(i.form_item_type_label)>-1)){for(const h of i.rule)if(h.required&&i.value===null){x(i.title+"不能为空");return}}})}t&&t.validate(p=>{if(p)pe(k.value).then(i=>{fe("保存成功"),C&&C()});else return console.log("error submit!!"),!1})},z=t=>{W=t.url,D.value=!0},ee=t=>{if(typeof t!="string")return;const o=t.toLowerCase();return o.endsWith(".png")||o.endsWith(".jpeg")||o.endsWith(".jpg")||o.endsWith(".png")||o.endsWith(".bmp")},G=(t,o,u,p)=>{const{code:i,msg:g}=t;if(i===2e3){const{url:w}=t.data,{name:h}=o;if(!ee(h))x("只允许上传图片");else{const O=n[p];(!O||O==="")&&(n[p]=[]);const N={name:h,url:X()+w};n[p].push(N)}}else x("上传失败,"+JSON.stringify(g))},F=()=>{x("上传失败")},H=()=>{x("超过文件上传数量")},M=(t,o,u)=>{var p=0;n[u].map((i,g)=>{i.uid===t.uid&&(p=g)}),n[u].splice(p,1)},le=t=>{ie(t.id).then(o=>{})},oe=t=>{k.value[t].edit=!0,k.value[t].new_key=k.value[t].key},C=ge("refreshView"),ae=t=>{t.key=JSON.parse(JSON.stringify(t.new_key)),ce(t).then(o=>{C&&C()})};return Ve(J.options,t=>{t&&t.id&&Y()},{immediate:!0}),(t,o)=>{const u=c("el-col"),p=c("el-row"),i=c("el-input"),g=c("el-input-number"),w=c("el-date-picker"),h=c("el-option"),P=c("el-select"),O=c("el-checkbox"),N=c("el-checkbox-group"),te=c("el-radio"),ne=c("el-radio-group"),q=c("el-switch"),A=c("el-upload"),K=c("el-dialog"),se=c("table-selector"),I=c("el-button"),re=c("el-popconfirm"),Q=c("el-form-item"),de=c("el-form");return r(),m("div",null,[d(p,{gutter:20},{default:s(()=>[d(u,{span:4},{default:s(()=>o[1]||(o[1]=[y("变量标题")])),_:1}),d(u,{span:4},{default:s(()=>o[2]||(o[2]=[y("变量名")])),_:1}),d(u,{span:10},{default:s(()=>o[3]||(o[3]=[y("变量值")])),_:1}),d(u,{span:2,offset:1},{default:s(()=>o[4]||(o[4]=[y("是否前端配置")])),_:1}),d(u,{span:3},{default:s(()=>o[5]||(o[5]=[y("操作")])),_:1})]),_:1}),d(de,{ref_key:"formRef",ref:R,model:a(n),"label-width":"0px","label-position":"left",style:{"margin-top":"20px"}},{default:s(()=>[(r(!0),m(S,null,j(a(k),(e,f)=>(r(),_(Q,{prop:["array"].indexOf(e.form_item_type_label)>-1?"":e.key,key:f,rules:e.rule||[]},{default:s(()=>[d(u,{span:4},{default:s(()=>[e.edit?(r(),_(i,{key:0,modelValue:e.title,"onUpdate:modelValue":l=>e.title=l,style:{display:"inline-block",width:"200px"},placeholder:"请输入标题"},null,8,["modelValue","onUpdate:modelValue"])):(r(),m("span",we,U(e.title),1))]),_:2},1024),d(u,{span:4},{default:s(()=>[e.edit?(r(),_(i,{key:0,modelValue:e.new_key,"onUpdate:modelValue":l=>e.new_key=l,style:{width:"200px"},placeholder:"请输入变量key"},{default:s(()=>[b("template",xe,[b("span",Ce,U(L.editableTabsItem.key),1)])]),_:2},1032,["modelValue","onUpdate:modelValue"])):(r(),m("span",Oe,U(L.editableTabsItem.key)+"."+U(e.key),1))]),_:2},1024),d(u,{span:10},{default:s(()=>[["text","textarea"].indexOf(e.form_item_type_label)>-1?(r(),_(i,{key:f,type:e.form_item_type_label,modelValue:a(n)[e.key],"onUpdate:modelValue":l=>a(n)[e.key]=l,placeholder:e.placeholder,clearable:""},null,8,["type","modelValue","onUpdate:modelValue","placeholder"])):e.form_item_type_label==="number"?(r(),_(g,{key:f+1,modelValue:a(n)[e.key],"onUpdate:modelValue":l=>a(n)[e.key]=l,min:0},null,8,["modelValue","onUpdate:modelValue"])):["datetime","date","time"].indexOf(e.form_item_type_label)>-1?(r(),_(w,{modelValue:a(n)[e.key],"onUpdate:modelValue":l=>a(n)[e.key]=l,key:f+2,type:e.form_item_type_label,placeholder:e.placeholder},null,8,["modelValue","onUpdate:modelValue","type","placeholder"])):e.form_item_type_label==="select"?(r(),_(P,{key:f+3,modelValue:a(n)[e.key],"onUpdate:modelValue":l=>a(n)[e.key]=l,placeholder:e.placeholder,clearable:""},{default:s(()=>[(r(!0),m(S,null,j(a(E)(e.setting)||[],l=>(r(),_(h,{key:l.value,label:l.label,value:l.value},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","placeholder"])):e.form_item_type_label==="checkbox"?(r(),_(N,{key:f+4,modelValue:a(n)[e.key],"onUpdate:modelValue":l=>a(n)[e.key]=l,placeholder:e.placeholder},{default:s(()=>[(r(!0),m(S,null,j(a(E)(e.setting)||[],l=>(r(),_(O,{key:l.value,label:l.value,value:l.value},{default:s(()=>[y(U(l.label),1)]),_:2},1032,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","placeholder"])):e.form_item_type_label==="radio"?(r(),_(ne,{key:f+5,modelValue:a(n)[e.key],"onUpdate:modelValue":l=>a(n)[e.key]=l,placeholder:e.placeholder,clearable:""},{default:s(()=>[(r(!0),m(S,null,j(a(E)(e.setting)||[],l=>(r(),_(te,{key:l.value,label:l.value,value:l.value},{default:s(()=>[y(U(l.label),1)]),_:2},1032,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","placeholder"])):e.form_item_type_label==="switch"?(r(),_(q,{key:f+6,modelValue:a(n)[e.key],"onUpdate:modelValue":l=>a(n)[e.key]=l,"inactive-value":!1,"active-color":"#13ce66","inactive-color":"#ff4949"},null,8,["modelValue","onUpdate:modelValue"])):["img","imgs"].indexOf(e.form_item_type_label)>-1?(r(),m("div",{key:f+7},[d(A,{action:a(T),headers:a($),name:"file",accept:"image/*","on-preview":z,"on-success":(l,V,B)=>{G(l,V,B,e.key)},"on-error":F,"on-exceed":H,"before-remove":(l,V)=>{M(l,V,e.key)},multiple:e.form_item_type_label!=="img",limit:e.form_item_type_label==="img"?1:5,ref_for:!0,ref:"imgUpload_"+e.key,"data-keyname":e.key,"file-list":e.value?e.value:[],"list-type":"picture-card"},{default:s(()=>o[6]||(o[6]=[b("i",{class:"el-icon-plus"},null,-1),b("div",{slot:"tip",class:"el-upload__tip"},"请选取图片,并且只能上传jpg/png文件",-1)])),_:2},1032,["action","headers","on-success","before-remove","multiple","limit","data-keyname","file-list"]),d(K,{visible:a(D)},{default:s(()=>[b("img",{width:"100%",src:a(W),alt:""},null,8,Ie)]),_:1},8,["visible"])])):["file"].indexOf(e.form_item_type_label)>-1?(r(),m("div",{key:f+8},[d(A,{action:a(T),headers:a($),name:"file","on-preview":z,"on-success":(l,V,B)=>{G(l,V,B,e.key)},"on-error":F,"on-exceed":H,"before-remove":(l,V)=>{M(l,V,e.key)},limit:5,ref_for:!0,ref:"fileUpload_"+e.key,"data-keyname":e.key,"file-list":e.value,"list-type":"picture-card"},{default:s(()=>o[7]||(o[7]=[b("i",{class:"el-icon-plus"},null,-1),b("div",{slot:"tip",class:"el-upload__tip"},"请选取图片,并且只能上传jpg/png文件",-1)])),_:2},1032,["action","headers","on-success","before-remove","data-keyname","file-list"]),d(K,{visible:a(D)},{default:s(()=>[b("img",{width:"100%",src:a(W),alt:""},null,8,Se)]),_:1},8,["visible"])])):["foreignkey","manytomany"].indexOf(e.form_item_type_label)>-1?(r(),m("div",{key:f+9},[d(se,{modelValue:a(n)[e.key],"onUpdate:modelValue":l=>a(n)[e.key]=l,"el-props":{pagination:!0,columns:e.setting.searchField},dict:{url:"/api/system/system_config/get_table_data/"+e.id+"/",value:e.setting.primarykey,label:e.setting.field},pagination:!0,multiple:e.form_item_type_label==="manytomany"},null,8,["modelValue","onUpdate:modelValue","el-props","dict","multiple"])])):e.form_item_type_label==="array"?(r(),m("div",{key:f+10},[d(ve,{modelValue:a(n)[e.key],"onUpdate:modelValue":l=>a(n)[e.key]=l},null,8,["modelValue","onUpdate:modelValue"])])):he("",!0)]),_:2},1024),d(u,{span:2,offset:1},{default:s(()=>[d(q,{modelValue:e.status,"onUpdate:modelValue":l=>e.status=l,"active-color":"#13ce66","inactive-color":"#ff4949"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),d(u,{span:3},{default:s(()=>[e.edit?(r(),_(I,{key:0,size:"mini",type:"primary",icon:a(me),onClick:l=>ae(e)},{default:s(()=>o[8]||(o[8]=[y("保存")])),_:2},1032,["icon","onClick"])):(r(),_(I,{key:1,size:"mini",type:"primary",icon:a(ye),onClick:l=>oe(f)},null,8,["icon","onClick"])),d(re,{title:"确定删除该条数据吗?",onConfirm:l=>le(e)},{reference:s(()=>[d(I,{size:"mini",type:"danger",icon:a(ke)},null,8,["icon"])]),_:2},1032,["onConfirm"])]),_:2},1024)]),_:2},1032,["prop","rules"]))),128)),d(Q,null,{default:s(()=>[d(I,{type:"primary",onClick:o[0]||(o[0]=e=>Z(R.value))},{default:s(()=>o[9]||(o[9]=[y("确定")])),_:1})]),_:1})]),_:1},8,["model"])])}}}),Je=Ue(je,[["__scopeId","data-v-3e69e1a0"]]);export{Je as default}; diff --git a/web/dist/assets/formatTime.in1fXasu.js b/web/dist/assets/formatTime.in1fXasu.js new file mode 100644 index 0000000000000000000000000000000000000000..e623a2cc1414898d516428f1b20dd1f67d81ebb5 --- /dev/null +++ b/web/dist/assets/formatTime.in1fXasu.js @@ -0,0 +1 @@ +function c(t,e){let r=t.getDay(),l=a(t),n=Math.floor((t.getMonth()+3)/3).toString();const g={"Y+":t.getFullYear().toString(),"m+":(t.getMonth()+1).toString(),"d+":t.getDate().toString(),"H+":t.getHours().toString(),"M+":t.getMinutes().toString(),"S+":t.getSeconds().toString(),"q+":n},i={0:"日",1:"一",2:"二",3:"三",4:"四",5:"五",6:"六"},u={1:"一",2:"二",3:"三",4:"四"};/(W+)/.test(e)&&(e=e.replace(RegExp.$1,RegExp.$1.length>1?RegExp.$1.length>2?"星期"+i[r]:"周"+i[r]:i[r])),/(Q+)/.test(e)&&(e=e.replace(RegExp.$1,RegExp.$1.length==4?"第"+u[n]+"季度":u[n])),/(Z+)/.test(e)&&(e=e.replace(RegExp.$1,RegExp.$1.length==3?"第"+l+"周":l+""));for(let s in g){let p=new RegExp("("+s+")").exec(e);p&&(e=e.replace(p[1],RegExp.$1.length==1?g[s]:g[s].padStart(RegExp.$1.length,"0")))}return e}function a(t){let e=new Date(t.getTime()),r=e.getDay()||7;e.setDate(e.getDate()-r+1+5);let l=new Date(e.getFullYear(),0,1),n=l.getDay(),g=1;n!=0&&(g=7-n+1),l=new Date(e.getFullYear(),0,1+g);let i=Math.ceil((e.valueOf()-l.valueOf())/864e5);return Math.ceil(i/7)}function o(t){let e=new Date(t).getHours();return e<6?"凌晨好":e<9?"早上好":e<12?"上午好":e<14?"中午好":e<17?"下午好":e<19?"傍晚好":e<22?"晚上好":"夜里好"}export{o as a,c as f}; diff --git a/web/dist/assets/fs-cropper-8eb4add2.BZucq3nl.js b/web/dist/assets/fs-cropper-8eb4add2.BZucq3nl.js new file mode 100644 index 0000000000000000000000000000000000000000..451643fce2bfebf6a557f83b05b17c26500cd142 --- /dev/null +++ b/web/dist/assets/fs-cropper-8eb4add2.BZucq3nl.js @@ -0,0 +1,11 @@ +import{d as Ie,h as Gt,b as St,o as Ct,w as Wt,e as X,p as Et,N as Rt,k as Dt,K as te,L as Ht,r as ee,a as Pe,G as Ue,H as _e,f as $e,g as F,c as Mt,A as ie}from"./vue.DmuWcDrn.js";import{k as qe,l as Fe,n as Qe}from"./index.XK2ik2qb.js";/*! +* Cropper.js v1.6.2 +* https://fengyuanchen.github.io/cropperjs +* +* Copyright 2015-present Chen Fengyuan +* Released under the MIT license +* +* Date: 2024-04-21T07:43:05.335Z +*/function ae(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),i.push.apply(i,a)}return i}function be(t){for(var e=1;et.length)&&(e=t.length);for(var i=0,a=new Array(e);i
',ui=Number.isNaN||_.isNaN;function f(t){return typeof t=="number"&&!ui(t)}var ge=function(t){return t>0&&t<1/0};function Lt(t){return typeof t>"u"}function G(t){return Xt(t)==="object"&&t!==null}var di=Object.prototype.hasOwnProperty;function rt(t){if(!G(t))return!1;try{var e=t.constructor,i=e.prototype;return e&&i&&di.call(i,"isPrototypeOf")}catch{return!1}}function S(t){return typeof t=="function"}var mi=Array.prototype.slice;function ze(t){return Array.from?Array.from(t):mi.call(t)}function O(t,e){return t&&S(e)&&(Array.isArray(t)||f(t.length)?ze(t).forEach(function(i,a){e.call(t,i,a,t)}):G(t)&&Object.keys(t).forEach(function(i){e.call(t,t[i],i,t)})),t}var C=Object.assign||function(t){for(var e=arguments.length,i=new Array(e>1?e-1:0),a=1;a0&&i.forEach(function(r){G(r)&&Object.keys(r).forEach(function(n){t[n]=r[n]})}),t},fi=/\.\d*(?:0|9){12}\d*$/;function ot(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e11;return fi.test(t)?Math.round(t*e)/e:t}var gi=/^width|height|left|top|marginLeft|marginTop$/;function V(t,e){var i=t.style;O(e,function(a,r){gi.test(r)&&f(a)&&(a="".concat(a,"px")),i[r]=a})}function vi(t,e){return t.classList?t.classList.contains(e):t.className.indexOf(e)>-1}function z(t,e){if(e){if(f(t.length)){O(t,function(a){z(a,e)});return}if(t.classList){t.classList.add(e);return}var i=t.className.trim();i?i.indexOf(e)<0&&(t.className="".concat(i," ").concat(e)):t.className=e}}function U(t,e){if(e){if(f(t.length)){O(t,function(i){U(i,e)});return}if(t.classList){t.classList.remove(e);return}t.className.indexOf(e)>=0&&(t.className=t.className.replace(e,""))}}function nt(t,e,i){if(e){if(f(t.length)){O(t,function(a){nt(a,e,i)});return}i?z(t,e):U(t,e)}}var wi=/([a-z\d])([A-Z])/g;function Jt(t){return t.replace(wi,"$1-$2").toLowerCase()}function Ft(t,e){return G(t[e])?t[e]:t.dataset?t.dataset[e]:t.getAttribute("data-".concat(Jt(e)))}function wt(t,e,i){G(i)?t[e]=i:t.dataset?t.dataset[e]=i:t.setAttribute("data-".concat(Jt(e)),i)}function bi(t,e){if(G(t[e]))try{delete t[e]}catch{t[e]=void 0}else if(t.dataset)try{delete t.dataset[e]}catch{t.dataset[e]=void 0}else t.removeAttribute("data-".concat(Jt(e)))}var Ne=/\s\s*/,Se=function(){var t=!1;if(Tt){var e=!1,i=function(){},a=Object.defineProperty({},"once",{get:function(){return t=!0,e},set:function(r){e=r}});_.addEventListener("test",i,a),_.removeEventListener("test",i,a)}return t}();function I(t,e,i){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},r=i;e.trim().split(Ne).forEach(function(n){if(!Se){var o=t.listeners;o&&o[n]&&o[n][i]&&(r=o[n][i],delete o[n][i],Object.keys(o[n]).length===0&&delete o[n],Object.keys(o).length===0&&delete t.listeners)}t.removeEventListener(n,r,a)})}function A(t,e,i){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},r=i;e.trim().split(Ne).forEach(function(n){if(a.once&&!Se){var o=t.listeners,l=o===void 0?{}:o;r=function(){delete l[n][i],t.removeEventListener(n,r,a);for(var c=arguments.length,s=new Array(c),h=0;hMath.abs(i)&&(i=g)})}),i}function kt(t,e){var i=t.pageX,a=t.pageY,r={endX:i,endY:a};return e?r:be({startX:i,startY:a},r)}function Ci(t){var e=0,i=0,a=0;return O(t,function(r){var n=r.startX,o=r.startY;e+=n,i+=o,a+=1}),e/=a,i/=a,{pageX:e,pageY:i}}function Z(t){var e=t.aspectRatio,i=t.height,a=t.width,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"contain",n=ge(a),o=ge(i);if(n&&o){var l=i*e;r==="contain"&&l>a||r==="cover"&&l90?{width:c,height:l}:{width:l,height:c}}function Mi(t,e,i,a){var r=e.aspectRatio,n=e.naturalWidth,o=e.naturalHeight,l=e.rotate,c=l===void 0?0:l,s=e.scaleX,h=s===void 0?1:s,p=e.scaleY,g=p===void 0?1:p,m=i.aspectRatio,b=i.naturalWidth,w=i.naturalHeight,M=a.fillColor,k=M===void 0?"transparent":M,y=a.imageSmoothingEnabled,R=y===void 0?!0:y,N=a.imageSmoothingQuality,u=N===void 0?"low":N,v=a.maxWidth,B=v===void 0?1/0:v,E=a.maxHeight,H=E===void 0?1/0:E,P=a.minWidth,$=P===void 0?0:P,L=a.minHeight,Y=L===void 0?0:L,j=document.createElement("canvas"),T=j.getContext("2d"),tt=Z({aspectRatio:m,width:B,height:H}),ht=Z({aspectRatio:m,width:$,height:Y},"cover"),et=Math.min(tt.width,Math.max(ht.width,b)),lt=Math.min(tt.height,Math.max(ht.height,w)),bt=Z({aspectRatio:r,width:B,height:H}),yt=Z({aspectRatio:r,width:$,height:Y},"cover"),ct=Math.min(bt.width,Math.max(yt.width,n)),it=Math.min(bt.height,Math.max(yt.height,o)),zt=[-ct/2,-it/2,ct,it];return j.width=ot(et),j.height=ot(lt),T.fillStyle=k,T.fillRect(0,0,et,lt),T.save(),T.translate(et/2,lt/2),T.rotate(c*Math.PI/180),T.scale(h,g),T.imageSmoothingEnabled=R,T.imageSmoothingQuality=u,T.drawImage.apply(T,[t].concat(xe(zt.map(function(Nt){return Math.floor(ot(Nt))})))),T.restore(),j}var Ee=String.fromCharCode;function Bi(t,e,i){var a="";i+=e;for(var r=e;r0;)i.push(Ee.apply(null,ze(r.subarray(0,a)))),r=r.subarray(a);return"data:".concat(e,";base64,").concat(btoa(i.join("")))}function zi(t){var e=new DataView(t),i;try{var a,r,n;if(e.getUint8(0)===255&&e.getUint8(1)===216)for(var o=e.byteLength,l=2;l+1=8&&(n=s+p)}}}if(n){var g=e.getUint16(n,a),m,b;for(b=0;b=0?r:Oe),height:Math.max(i.offsetHeight,n>=0?n:Te)};this.containerData=o,V(a,{width:o.width,height:o.height}),z(t,W),U(a,W)},initCanvas:function(){var t=this.containerData,e=this.imageData,i=this.options.viewMode,a=Math.abs(e.rotate)%180===90,r=a?e.naturalHeight:e.naturalWidth,n=a?e.naturalWidth:e.naturalHeight,o=r/n,l=t.width,c=t.height;t.height*o>t.width?i===3?l=t.height*o:c=t.width/o:i===3?c=t.width/o:l=t.height*o;var s={aspectRatio:o,naturalWidth:r,naturalHeight:n,width:l,height:c};this.canvasData=s,this.limited=i===1||i===2,this.limitCanvas(!0,!0),s.width=Math.min(Math.max(s.width,s.minWidth),s.maxWidth),s.height=Math.min(Math.max(s.height,s.minHeight),s.maxHeight),s.left=(t.width-s.width)/2,s.top=(t.height-s.height)/2,s.oldLeft=s.left,s.oldTop=s.top,this.initialCanvasData=C({},s)},limitCanvas:function(t,e){var i=this.options,a=this.containerData,r=this.canvasData,n=this.cropBoxData,o=i.viewMode,l=r.aspectRatio,c=this.cropped&&n;if(t){var s=Number(i.minCanvasWidth)||0,h=Number(i.minCanvasHeight)||0;o>1?(s=Math.max(s,a.width),h=Math.max(h,a.height),o===3&&(h*l>s?s=h*l:h=s/l)):o>0&&(s?s=Math.max(s,c?n.width:0):h?h=Math.max(h,c?n.height:0):c&&(s=n.width,h=n.height,h*l>s?s=h*l:h=s/l));var p=Z({aspectRatio:l,width:s,height:h});s=p.width,h=p.height,r.minWidth=s,r.minHeight=h,r.maxWidth=1/0,r.maxHeight=1/0}if(e)if(o>(c?0:1)){var g=a.width-r.width,m=a.height-r.height;r.minLeft=Math.min(0,g),r.minTop=Math.min(0,m),r.maxLeft=Math.max(0,g),r.maxTop=Math.max(0,m),c&&this.limited&&(r.minLeft=Math.min(n.left,n.left+(n.width-r.width)),r.minTop=Math.min(n.top,n.top+(n.height-r.height)),r.maxLeft=n.left,r.maxTop=n.top,o===2&&(r.width>=a.width&&(r.minLeft=Math.min(0,g),r.maxLeft=Math.max(0,g)),r.height>=a.height&&(r.minTop=Math.min(0,m),r.maxTop=Math.max(0,m))))}else r.minLeft=-r.width,r.minTop=-r.height,r.maxLeft=a.width,r.maxTop=a.height},renderCanvas:function(t,e){var i=this.canvasData,a=this.imageData;if(e){var r=Di({width:a.naturalWidth*Math.abs(a.scaleX||1),height:a.naturalHeight*Math.abs(a.scaleY||1),degree:a.rotate||0}),n=r.width,o=r.height,l=i.width*(n/i.naturalWidth),c=i.height*(o/i.naturalHeight);i.left-=(l-i.width)/2,i.top-=(c-i.height)/2,i.width=l,i.height=c,i.aspectRatio=n/o,i.naturalWidth=n,i.naturalHeight=o,this.limitCanvas(!0,!1)}(i.width>i.maxWidth||i.widthi.maxHeight||i.heighte.width?r.height=r.width/i:r.width=r.height*i),this.cropBoxData=r,this.limitCropBox(!0,!0),r.width=Math.min(Math.max(r.width,r.minWidth),r.maxWidth),r.height=Math.min(Math.max(r.height,r.minHeight),r.maxHeight),r.width=Math.max(r.minWidth,r.width*a),r.height=Math.max(r.minHeight,r.height*a),r.left=e.left+(e.width-r.width)/2,r.top=e.top+(e.height-r.height)/2,r.oldLeft=r.left,r.oldTop=r.top,this.initialCropBoxData=C({},r)},limitCropBox:function(t,e){var i=this.options,a=this.containerData,r=this.canvasData,n=this.cropBoxData,o=this.limited,l=i.aspectRatio;if(t){var c=Number(i.minCropBoxWidth)||0,s=Number(i.minCropBoxHeight)||0,h=o?Math.min(a.width,r.width,r.width+r.left,a.width-r.left):a.width,p=o?Math.min(a.height,r.height,r.height+r.top,a.height-r.top):a.height;c=Math.min(c,a.width),s=Math.min(s,a.height),l&&(c&&s?s*l>c?s=c/l:c=s*l:c?s=c/l:s&&(c=s*l),p*l>h?p=h/l:h=p*l),n.minWidth=Math.min(c,h),n.minHeight=Math.min(s,p),n.maxWidth=h,n.maxHeight=p}e&&(o?(n.minLeft=Math.max(0,r.left),n.minTop=Math.max(0,r.top),n.maxLeft=Math.min(a.width,r.left+r.width)-n.width,n.maxTop=Math.min(a.height,r.top+r.height)-n.height):(n.minLeft=0,n.minTop=0,n.maxLeft=a.width-n.width,n.maxTop=a.height-n.height))},renderCropBox:function(){var t=this.options,e=this.containerData,i=this.cropBoxData;(i.width>i.maxWidth||i.widthi.maxHeight||i.height=e.width&&i.height>=e.height?De:Zt),V(this.cropBox,C({width:i.width,height:i.height},gt({translateX:i.left,translateY:i.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),st(this.element,Pt,this.getData())}},Wi={initPreview:function(){var t=this.element,e=this.crossOrigin,i=this.options.preview,a=e?this.crossOriginUrl:this.url,r=t.alt||"The image to preview",n=document.createElement("img");if(e&&(n.crossOrigin=e),n.src=a,n.alt=r,this.viewBox.appendChild(n),this.viewBoxImage=n,!!i){var o=i;typeof i=="string"?o=t.ownerDocument.querySelectorAll(i):i.querySelector&&(o=[i]),this.previews=o,O(o,function(l){var c=document.createElement("img");wt(l,Bt,{width:l.offsetWidth,height:l.offsetHeight,html:l.innerHTML}),e&&(c.crossOrigin=e),c.src=a,c.alt=r,c.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',l.innerHTML="",l.appendChild(c)})}},resetPreview:function(){O(this.previews,function(t){var e=Ft(t,Bt);V(t,{width:e.width,height:e.height}),t.innerHTML=e.html,bi(t,Bt)})},preview:function(){var t=this.imageData,e=this.canvasData,i=this.cropBoxData,a=i.width,r=i.height,n=t.width,o=t.height,l=i.left-e.left-t.left,c=i.top-e.top-t.top;!this.cropped||this.disabled||(V(this.viewBoxImage,C({width:n,height:o},gt(C({translateX:-l,translateY:-c},t)))),O(this.previews,function(s){var h=Ft(s,Bt),p=h.width,g=h.height,m=p,b=g,w=1;a&&(w=p/a,b=r*w),r&&b>g&&(w=g/r,m=a*w,b=g),V(s,{width:m,height:b}),V(s.getElementsByTagName("img")[0],C({width:n*w,height:o*w},gt(C({translateX:-l*w,translateY:-c*w},t))))}))}},Ei={bind:function(){var t=this.element,e=this.options,i=this.cropper;S(e.cropstart)&&A(t,$t,e.cropstart),S(e.cropmove)&&A(t,_t,e.cropmove),S(e.cropend)&&A(t,Ut,e.cropend),S(e.crop)&&A(t,Pt,e.crop),S(e.zoom)&&A(t,qt,e.zoom),A(i,he,this.onCropStart=this.cropStart.bind(this)),e.zoomable&&e.zoomOnWheel&&A(i,de,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),e.toggleDragModeOnDblclick&&A(i,se,this.onDblclick=this.dblclick.bind(this)),A(t.ownerDocument,le,this.onCropMove=this.cropMove.bind(this)),A(t.ownerDocument,ce,this.onCropEnd=this.cropEnd.bind(this)),e.responsive&&A(window,ue,this.onResize=this.resize.bind(this))},unbind:function(){var t=this.element,e=this.options,i=this.cropper;S(e.cropstart)&&I(t,$t,e.cropstart),S(e.cropmove)&&I(t,_t,e.cropmove),S(e.cropend)&&I(t,Ut,e.cropend),S(e.crop)&&I(t,Pt,e.crop),S(e.zoom)&&I(t,qt,e.zoom),I(i,he,this.onCropStart),e.zoomable&&e.zoomOnWheel&&I(i,de,this.onWheel,{passive:!1,capture:!0}),e.toggleDragModeOnDblclick&&I(i,se,this.onDblclick),I(t.ownerDocument,le,this.onCropMove),I(t.ownerDocument,ce,this.onCropEnd),e.responsive&&I(window,ue,this.onResize)}},Ri={resize:function(){if(!this.disabled){var t=this.options,e=this.container,i=this.containerData,a=e.offsetWidth/i.width,r=e.offsetHeight/i.height,n=Math.abs(a-1)>Math.abs(r-1)?a:r;if(n!==1){var o,l;t.restore&&(o=this.getCanvasData(),l=this.getCropBoxData()),this.render(),t.restore&&(this.setCanvasData(O(o,function(c,s){o[s]=c*n})),this.setCropBoxData(O(l,function(c,s){l[s]=c*n})))}}},dblclick:function(){this.disabled||this.options.dragMode===ke||this.setDragMode(vi(this.dragBox,jt)?Be:Kt)},wheel:function(t){var e=this,i=Number(this.options.wheelZoomRatio)||.1,a=1;this.disabled||(t.preventDefault(),!this.wheeling&&(this.wheeling=!0,setTimeout(function(){e.wheeling=!1},50),t.deltaY?a=t.deltaY>0?1:-1:t.wheelDelta?a=-t.wheelDelta/120:t.detail&&(a=t.detail>0?1:-1),this.zoom(-a*i,t)))},cropStart:function(t){var e=t.buttons,i=t.button;if(!(this.disabled||(t.type==="mousedown"||t.type==="pointerdown"&&t.pointerType==="mouse")&&(f(e)&&e!==1||f(i)&&i!==0||t.ctrlKey))){var a=this.options,r=this.pointers,n;t.changedTouches?O(t.changedTouches,function(o){r[o.identifier]=kt(o)}):r[t.pointerId||0]=kt(t),Object.keys(r).length>1&&a.zoomable&&a.zoomOnTouch?n=Me:n=Ft(t.target,vt),si.test(n)&&st(this.element,$t,{originalEvent:t,action:n})!==!1&&(t.preventDefault(),this.action=n,this.cropping=!1,n===Ce&&(this.cropping=!0,z(this.dragBox,Ot)))}},cropMove:function(t){var e=this.action;if(!(this.disabled||!e)){var i=this.pointers;t.preventDefault(),st(this.element,_t,{originalEvent:t,action:e})!==!1&&(t.changedTouches?O(t.changedTouches,function(a){C(i[a.identifier]||{},kt(a,!0))}):C(i[t.pointerId||0]||{},kt(t,!0)),this.change(t))}},cropEnd:function(t){if(!this.disabled){var e=this.action,i=this.pointers;t.changedTouches?O(t.changedTouches,function(a){delete i[a.identifier]}):delete i[t.pointerId||0],e&&(t.preventDefault(),Object.keys(i).length||(this.action=""),this.cropping&&(this.cropping=!1,nt(this.dragBox,Ot,this.cropped&&this.options.modal)),st(this.element,Ut,{originalEvent:t,action:e}))}}},Hi={change:function(t){var e=this.options,i=this.canvasData,a=this.containerData,r=this.cropBoxData,n=this.pointers,o=this.action,l=e.aspectRatio,c=r.left,s=r.top,h=r.width,p=r.height,g=c+h,m=s+p,b=0,w=0,M=a.width,k=a.height,y=!0,R;!l&&t.shiftKey&&(l=h&&p?h/p:1),this.limited&&(b=r.minLeft,w=r.minTop,M=b+Math.min(a.width,i.width,i.left+i.width),k=w+Math.min(a.height,i.height,i.top+i.height));var N=n[Object.keys(n)[0]],u={x:N.endX-N.startX,y:N.endY-N.startY},v=function(B){switch(B){case K:g+u.x>M&&(u.x=M-g);break;case J:c+u.xk&&(u.y=k-m);break}};switch(o){case Zt:c+=u.x,s+=u.y;break;case K:if(u.x>=0&&(g>=M||l&&(s<=w||m>=k))){y=!1;break}v(K),h+=u.x,h<0&&(o=J,h=-h,c-=h),l&&(p=h/l,s+=(r.height-p)/2);break;case Q:if(u.y<=0&&(s<=w||l&&(c<=b||g>=M))){y=!1;break}v(Q),p-=u.y,s+=u.y,p<0&&(o=at,p=-p,s-=p),l&&(h=p*l,c+=(r.width-h)/2);break;case J:if(u.x<=0&&(c<=b||l&&(s<=w||m>=k))){y=!1;break}v(J),h-=u.x,c+=u.x,h<0&&(o=K,h=-h,c-=h),l&&(p=h/l,s+=(r.height-p)/2);break;case at:if(u.y>=0&&(m>=k||l&&(c<=b||g>=M))){y=!1;break}v(at),p+=u.y,p<0&&(o=Q,p=-p,s-=p),l&&(h=p*l,c+=(r.width-h)/2);break;case ut:if(l){if(u.y<=0&&(s<=w||g>=M)){y=!1;break}v(Q),p-=u.y,s+=u.y,h=p*l}else v(Q),v(K),u.x>=0?gw&&(p-=u.y,s+=u.y):(p-=u.y,s+=u.y);h<0&&p<0?(o=ft,p=-p,h=-h,s-=p,c-=h):h<0?(o=dt,h=-h,c-=h):p<0&&(o=mt,p=-p,s-=p);break;case dt:if(l){if(u.y<=0&&(s<=w||c<=b)){y=!1;break}v(Q),p-=u.y,s+=u.y,h=p*l,c+=r.width-h}else v(Q),v(J),u.x<=0?c>b?(h-=u.x,c+=u.x):u.y<=0&&s<=w&&(y=!1):(h-=u.x,c+=u.x),u.y<=0?s>w&&(p-=u.y,s+=u.y):(p-=u.y,s+=u.y);h<0&&p<0?(o=mt,p=-p,h=-h,s-=p,c-=h):h<0?(o=ut,h=-h,c-=h):p<0&&(o=ft,p=-p,s-=p);break;case ft:if(l){if(u.x<=0&&(c<=b||m>=k)){y=!1;break}v(J),h-=u.x,c+=u.x,p=h/l}else v(at),v(J),u.x<=0?c>b?(h-=u.x,c+=u.x):u.y>=0&&m>=k&&(y=!1):(h-=u.x,c+=u.x),u.y>=0?m=0&&(g>=M||m>=k)){y=!1;break}v(K),h+=u.x,p=h/l}else v(at),v(K),u.x>=0?g=0&&m>=k&&(y=!1):h+=u.x,u.y>=0?m0?o=u.y>0?mt:ut:u.x<0&&(c-=h,o=u.y>0?ft:dt),u.y<0&&(s-=p),this.cropped||(U(this.cropBox,W),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0));break}y&&(r.width=h,r.height=p,r.left=c,r.top=s,this.action=o,this.renderCropBox()),O(n,function(B){B.startX=B.endX,B.startY=B.endY})}},Li={crop:function(){return this.ready&&!this.cropped&&!this.disabled&&(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&z(this.dragBox,Ot),U(this.cropBox,W),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=C({},this.initialImageData),this.canvasData=C({},this.initialCanvasData),this.cropBoxData=C({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(C(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),U(this.dragBox,Ot),z(this.cropBox,W)),this},replace:function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return!this.disabled&&t&&(this.isImg&&(this.element.src=t),e?(this.url=t,this.image.src=t,this.ready&&(this.viewBoxImage.src=t,O(this.previews,function(i){i.getElementsByTagName("img")[0].src=t}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(t))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,U(this.cropper,ne)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,z(this.cropper,ne)),this},destroy:function(){var t=this.element;return t[x]?(t[x]=void 0,this.isImg&&this.replaced&&(t.src=this.originalUrl),this.uncreate(),this):this},move:function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t,i=this.canvasData,a=i.left,r=i.top;return this.moveTo(Lt(t)?t:a+Number(t),Lt(e)?e:r+Number(e))},moveTo:function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t,i=this.canvasData,a=!1;return t=Number(t),e=Number(e),this.ready&&!this.disabled&&this.options.movable&&(f(t)&&(i.left=t,a=!0),f(e)&&(i.top=e,a=!0),a&&this.renderCanvas(!0)),this},zoom:function(t,e){var i=this.canvasData;return t=Number(t),t<0?t=1/(1-t):t=1+t,this.zoomTo(i.width*t/i.naturalWidth,null,e)},zoomTo:function(t,e,i){var a=this.options,r=this.canvasData,n=r.width,o=r.height,l=r.naturalWidth,c=r.naturalHeight;if(t=Number(t),t>=0&&this.ready&&!this.disabled&&a.zoomable){var s=l*t,h=c*t;if(st(this.element,qt,{ratio:t,oldRatio:n/l,originalEvent:i})===!1)return this;if(i){var p=this.pointers,g=We(this.cropper),m=p&&Object.keys(p).length?Ci(p):{pageX:i.pageX,pageY:i.pageY};r.left-=(s-n)*((m.pageX-g.left-r.left)/n),r.top-=(h-o)*((m.pageY-g.top-r.top)/o)}else rt(e)&&f(e.x)&&f(e.y)?(r.left-=(s-n)*((e.x-r.left)/n),r.top-=(h-o)*((e.y-r.top)/o)):(r.left-=(s-n)/2,r.top-=(h-o)/2);r.width=s,r.height=h,this.renderCanvas(!0)}return this},rotate:function(t){return this.rotateTo((this.imageData.rotate||0)+Number(t))},rotateTo:function(t){return t=Number(t),f(t)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=t%360,this.renderCanvas(!0,!0)),this},scaleX:function(t){var e=this.imageData.scaleY;return this.scale(t,f(e)?e:1)},scaleY:function(t){var e=this.imageData.scaleX;return this.scale(f(e)?e:1,t)},scale:function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t,i=this.imageData,a=!1;return t=Number(t),e=Number(e),this.ready&&!this.disabled&&this.options.scalable&&(f(t)&&(i.scaleX=t,a=!0),f(e)&&(i.scaleY=e,a=!0),a&&this.renderCanvas(!0,!0)),this},getData:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.options,i=this.imageData,a=this.canvasData,r=this.cropBoxData,n;if(this.ready&&this.cropped){n={x:r.left-a.left,y:r.top-a.top,width:r.width,height:r.height};var o=i.width/i.naturalWidth;if(O(n,function(s,h){n[h]=s/o}),t){var l=Math.round(n.y+n.height),c=Math.round(n.x+n.width);n.x=Math.round(n.x),n.y=Math.round(n.y),n.width=c-n.x,n.height=l-n.y}}else n={x:0,y:0,width:0,height:0};return e.rotatable&&(n.rotate=i.rotate||0),e.scalable&&(n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1),n},setData:function(t){var e=this.options,i=this.imageData,a=this.canvasData,r={};if(this.ready&&!this.disabled&&rt(t)){var n=!1;e.rotatable&&f(t.rotate)&&t.rotate!==i.rotate&&(i.rotate=t.rotate,n=!0),e.scalable&&(f(t.scaleX)&&t.scaleX!==i.scaleX&&(i.scaleX=t.scaleX,n=!0),f(t.scaleY)&&t.scaleY!==i.scaleY&&(i.scaleY=t.scaleY,n=!0)),n&&this.renderCanvas(!0,!0);var o=i.width/i.naturalWidth;f(t.x)&&(r.left=t.x*o+a.left),f(t.y)&&(r.top=t.y*o+a.top),f(t.width)&&(r.width=t.width*o),f(t.height)&&(r.height=t.height*o),this.setCropBoxData(r)}return this},getContainerData:function(){return this.ready?C({},this.containerData):{}},getImageData:function(){return this.sized?C({},this.imageData):{}},getCanvasData:function(){var t=this.canvasData,e={};return this.ready&&O(["left","top","width","height","naturalWidth","naturalHeight"],function(i){e[i]=t[i]}),e},setCanvasData:function(t){var e=this.canvasData,i=e.aspectRatio;return this.ready&&!this.disabled&&rt(t)&&(f(t.left)&&(e.left=t.left),f(t.top)&&(e.top=t.top),f(t.width)?(e.width=t.width,e.height=t.width/i):f(t.height)&&(e.height=t.height,e.width=t.height*i),this.renderCanvas(!0)),this},getCropBoxData:function(){var t=this.cropBoxData,e;return this.ready&&this.cropped&&(e={left:t.left,top:t.top,width:t.width,height:t.height}),e||{}},setCropBoxData:function(t){var e=this.cropBoxData,i=this.options.aspectRatio,a,r;return this.ready&&this.cropped&&!this.disabled&&rt(t)&&(f(t.left)&&(e.left=t.left),f(t.top)&&(e.top=t.top),f(t.width)&&t.width!==e.width&&(a=!0,e.width=t.width),f(t.height)&&t.height!==e.height&&(r=!0,e.height=t.height),i&&(a?e.height=e.width/i:r&&(e.width=e.height*i)),this.renderCropBox()),this},getCroppedCanvas:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var e=this.canvasData,i=Mi(this.image,this.imageData,e,t);if(!this.cropped)return i;var a=this.getData(t.rounded),r=a.x,n=a.y,o=a.width,l=a.height,c=i.width/Math.floor(e.naturalWidth);c!==1&&(r*=c,n*=c,o*=c,l*=c);var s=o/l,h=Z({aspectRatio:s,width:t.maxWidth||1/0,height:t.maxHeight||1/0}),p=Z({aspectRatio:s,width:t.minWidth||0,height:t.minHeight||0},"cover"),g=Z({aspectRatio:s,width:t.width||(c!==1?i.width:o),height:t.height||(c!==1?i.height:l)}),m=g.width,b=g.height;m=Math.min(h.width,Math.max(p.width,m)),b=Math.min(h.height,Math.max(p.height,b));var w=document.createElement("canvas"),M=w.getContext("2d");w.width=ot(m),w.height=ot(b),M.fillStyle=t.fillColor||"transparent",M.fillRect(0,0,m,b);var k=t.imageSmoothingEnabled,y=k===void 0?!0:k,R=t.imageSmoothingQuality;M.imageSmoothingEnabled=y,R&&(M.imageSmoothingQuality=R);var N=i.width,u=i.height,v=r,B=n,E,H,P,$,L,Y;v<=-o||v>N?(v=0,E=0,P=0,L=0):v<=0?(P=-v,v=0,E=Math.min(N,o+v),L=E):v<=N&&(P=0,E=Math.min(o,N-v),L=E),E<=0||B<=-l||B>u?(B=0,H=0,$=0,Y=0):B<=0?($=-B,B=0,H=Math.min(u,l+B),Y=H):B<=u&&($=0,H=Math.min(l,u-B),Y=H);var j=[v,B,E,H];if(L>0&&Y>0){var T=m/o;j.push(P*T,$*T,L*T,Y*T)}return M.drawImage.apply(M,[i].concat(xe(j.map(function(tt){return Math.floor(ot(tt))})))),w},setAspectRatio:function(t){var e=this.options;return!this.disabled&&!Lt(t)&&(e.aspectRatio=Math.max(0,t)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(t){var e=this.options,i=this.dragBox,a=this.face;if(this.ready&&!this.disabled){var r=t===Kt,n=e.movable&&t===Be;t=r||n?t:ke,e.dragMode=t,wt(i,vt,t),nt(i,jt,r),nt(i,It,n),e.cropBoxMovable||(wt(a,vt,t),nt(a,jt,r),nt(a,It,n))}return this}},Yi=_.Cropper,Re=function(){function t(e){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(Ze(this,t),!e||!ci.test(e.tagName))throw new Error("The first argument is required and must be an or element.");this.element=e,this.options=C({},fe,rt(i)&&i),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return Ke(t,[{key:"init",value:function(){var e=this.element,i=e.tagName.toLowerCase(),a;if(!e[x]){if(e[x]=this,i==="img"){if(this.isImg=!0,a=e.getAttribute("src")||"",this.originalUrl=a,!a)return;a=e.src}else i==="canvas"&&window.HTMLCanvasElement&&(a=e.toDataURL());this.load(a)}}},{key:"load",value:function(e){var i=this;if(e){this.url=e,this.imageData={};var a=this.element,r=this.options;if(!r.rotatable&&!r.scalable&&(r.checkOrientation=!1),!r.checkOrientation||!window.ArrayBuffer){this.clone();return}if(hi.test(e)){li.test(e)?this.read(Oi(e)):this.clone();return}var n=new XMLHttpRequest,o=this.clone.bind(this);this.reloading=!0,this.xhr=n,n.onabort=o,n.onerror=o,n.ontimeout=o,n.onprogress=function(){n.getResponseHeader("content-type")!==me&&n.abort()},n.onload=function(){i.read(n.response)},n.onloadend=function(){i.reloading=!1,i.xhr=null},r.checkCrossOrigin&&ve(e)&&a.crossOrigin&&(e=we(e)),n.open("GET",e,!0),n.responseType="arraybuffer",n.withCredentials=a.crossOrigin==="use-credentials",n.send()}}},{key:"read",value:function(e){var i=this.options,a=this.imageData,r=zi(e),n=0,o=1,l=1;if(r>1){this.url=Ti(e,me);var c=Ni(r);n=c.rotate,o=c.scaleX,l=c.scaleY}i.rotatable&&(a.rotate=n),i.scalable&&(a.scaleX=o,a.scaleY=l),this.clone()}},{key:"clone",value:function(){var e=this.element,i=this.url,a=e.crossOrigin,r=i;this.options.checkCrossOrigin&&ve(i)&&(a||(a="anonymous"),r=we(i)),this.crossOrigin=a,this.crossOriginUrl=r;var n=document.createElement("img");a&&(n.crossOrigin=a),n.src=r||i,n.alt=e.alt||"The image to crop",this.image=n,n.onload=this.start.bind(this),n.onerror=this.stop.bind(this),z(n,oe),e.parentNode.insertBefore(n,e.nextSibling)}},{key:"start",value:function(){var e=this,i=this.image;i.onload=null,i.onerror=null,this.sizing=!0;var a=_.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(_.navigator.userAgent),r=function(l,c){C(e.imageData,{naturalWidth:l,naturalHeight:c,aspectRatio:l/c}),e.initialImageData=C({},e.imageData),e.sizing=!1,e.sized=!0,e.build()};if(i.naturalWidth&&!a){r(i.naturalWidth,i.naturalHeight);return}var n=document.createElement("img"),o=document.body||document.documentElement;this.sizingImage=n,n.onload=function(){r(n.width,n.height),a||o.removeChild(n)},n.src=i.src,a||(n.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",o.appendChild(n))}},{key:"stop",value:function(){var e=this.image;e.onload=null,e.onerror=null,e.parentNode.removeChild(e),this.image=null}},{key:"build",value:function(){if(!(!this.sized||this.ready)){var e=this.element,i=this.options,a=this.image,r=e.parentNode,n=document.createElement("div");n.innerHTML=pi;var o=n.querySelector(".".concat(x,"-container")),l=o.querySelector(".".concat(x,"-canvas")),c=o.querySelector(".".concat(x,"-drag-box")),s=o.querySelector(".".concat(x,"-crop-box")),h=s.querySelector(".".concat(x,"-face"));this.container=r,this.cropper=o,this.canvas=l,this.dragBox=c,this.cropBox=s,this.viewBox=o.querySelector(".".concat(x,"-view-box")),this.face=h,l.appendChild(a),z(e,W),r.insertBefore(o,e.nextSibling),U(a,oe),this.initPreview(),this.bind(),i.initialAspectRatio=Math.max(0,i.initialAspectRatio)||NaN,i.aspectRatio=Math.max(0,i.aspectRatio)||NaN,i.viewMode=Math.max(0,Math.min(3,Math.round(i.viewMode)))||0,z(s,W),i.guides||z(s.getElementsByClassName("".concat(x,"-dashed")),W),i.center||z(s.getElementsByClassName("".concat(x,"-center")),W),i.background&&z(o,"".concat(x,"-bg")),i.highlight||z(h,ai),i.cropBoxMovable&&(z(h,It),wt(h,vt,Zt)),i.cropBoxResizable||(z(s.getElementsByClassName("".concat(x,"-line")),W),z(s.getElementsByClassName("".concat(x,"-point")),W)),this.render(),this.ready=!0,this.setDragMode(i.dragMode),i.autoCrop&&this.crop(),this.setData(i.data),S(i.ready)&&A(e,pe,i.ready,{once:!0}),st(e,pe)}}},{key:"unbuild",value:function(){if(this.ready){this.ready=!1,this.unbind(),this.resetPreview();var e=this.cropper.parentNode;e&&e.removeChild(this.cropper),U(this.element,W)}}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=Yi,t}},{key:"setDefaults",value:function(e){C(fe,rt(e)&&e)}}])}();C(Re.prototype,Si,Wi,Ei,Ri,Hi,Li);const Xi=typeof window>"u"?[String,Array]:[String,Array,Element,NodeList],Ai={render(){const t=this.crossorigin||void 0;return ie("div",{style:this.containerStyle},[ie("img",{ref:"img",src:this.src,alt:this.alt||"image",style:[{"max-width":"100%"},this.imgStyle],crossorigin:t})])},props:{containerStyle:Object,src:{type:String,default:""},alt:String,imgStyle:Object,viewMode:Number,dragMode:String,initialAspectRatio:Number,aspectRatio:Number,data:Object,preview:Xi,responsive:{type:Boolean,default:!0},restore:{type:Boolean,default:!0},checkCrossOrigin:{type:Boolean,default:!0},checkOrientation:{type:Boolean,default:!0},crossorigin:{type:String},modal:{type:Boolean,default:!0},guides:{type:Boolean,default:!0},center:{type:Boolean,default:!0},highlight:{type:Boolean,default:!0},background:{type:Boolean,default:!0},autoCrop:{type:Boolean,default:!0},autoCropArea:Number,movable:{type:Boolean,default:!0},rotatable:{type:Boolean,default:!0},scalable:{type:Boolean,default:!0},zoomable:{type:Boolean,default:!0},zoomOnTouch:{type:Boolean,default:!0},zoomOnWheel:{type:Boolean,default:!0},wheelZoomRatio:Number,cropBoxMovable:{type:Boolean,default:!0},cropBoxResizable:{type:Boolean,default:!0},toggleDragModeOnDblclick:{type:Boolean,default:!0},minCanvasWidth:Number,minCanvasHeight:Number,minCropBoxWidth:Number,minCropBoxHeight:Number,minContainerWidth:Number,minContainerHeight:Number,ready:Function,cropstart:Function,cropmove:Function,cropend:Function,crop:Function,zoom:Function},mounted(){const{containerStyle:t,src:e,alt:i,imgStyle:a,...r}=this.$options.props,n={};for(const o in r)this[o]!==void 0&&(n[o]=this[o]);this.cropper=new Re(this.$refs.img,n)},methods:{reset(){return this.cropper.reset()},clear(){return this.cropper.clear()},initCrop(){return this.cropper.crop()},replace(t,e=!1){return this.cropper.replace(t,e)},enable(){return this.cropper.enable()},disable(){return this.cropper.disable()},destroy(){return this.cropper.destroy()},move(t,e){return this.cropper.move(t,e)},moveTo(t,e=t){return this.cropper.moveTo(t,e)},relativeZoom(t,e){return this.cropper.zoom(t,e)},zoomTo(t,e){return this.cropper.zoomTo(t,e)},rotate(t){return this.cropper.rotate(t)},rotateTo(t){return this.cropper.rotateTo(t)},scaleX(t){return this.cropper.scaleX(t)},scaleY(t){return this.cropper.scaleY(t)},scale(t,e=t){return this.cropper.scale(t,e)},getData(t=!1){return this.cropper.getData(t)},setData(t){return this.cropper.setData(t)},getContainerData(){return this.cropper.getContainerData()},getImageData(){return this.cropper.getImageData()},getCanvasData(){return this.cropper.getCanvasData()},setCanvasData(t){return this.cropper.setCanvasData(t)},getCropBoxData(){return this.cropper.getCropBoxData()},setCropBoxData(t){return this.cropper.setCropBoxData(t)},getCroppedCanvas(t={}){return this.cropper.getCroppedCanvas(t)},setAspectRatio(t){return this.cropper.setAspectRatio(t)},setDragMode(t){return this.cropper.setDragMode(t)}}},ji=Ie({name:"FsCropper",components:{VueCropper:Ai},props:{title:{type:String},cropperHeight:{type:[String,Number]},dialogWidth:{type:[String,Number],default:"50%"},maxSize:{type:Number,default:5},uploadTip:{type:String},cropper:{type:Object},accept:{type:String,default:".jpg, .jpeg, .png, .gif, .webp"},output:{type:String,default:"blob"},compressQuality:{type:Number,default:.8}},emits:["cancel","done","ready"],setup(t,e){const{ui:i}=Fe(),{t:a}=Qe(),r=F(!1),n=F(),o=F(),l=F(!1),c=F(),s=F(),h=F(),p=F({x:1,y:1});function g(){r.value=!1}function m(){R(),e.emit("cancel")}const b=i.dialog.buildOnClosedBind(m),w=i.dialog.customClass,M=Mt(()=>({...b,[w]:"fs-cropper-dialog",...i.formWrapper.buildWidthBind(i.dialog.name,"960px"),...i.formWrapper.buildInitBind(i.dialog.name),title:t.title||a("fs.extends.cropper.title")}));function k(d){r.value=!0,d!=null&&d!==""&&(c.value=d)}function y(){r.value=!1}function R(){l.value=!1,o.value!=null&&(o.value.value=null,o.value=null),n.value!=null&&n.value.clear()}function N(){return n.value}const u={cropper:N(),zoom:xt,clear:R,close:y,open:k};function v(d){e.emit("ready",{event:d,...u})}function B(d){return d.preventDefault(),!1}function E(){o.value.click()}function H(d){return d.type.indexOf("image")===-1?(i.message.warn("请选择合适的文件类型"),!1):t.maxSize>0&&d.size/1024/1024>t.maxSize?(i.message.warn(`图片大小超出最大限制(${t.maxSize}MB),请重新选择.`),!1):!0}function P(d){const D=d.target.files[0];if(D.type.indexOf("image/")===-1){i.message.warn("Please select an image file");return}if(typeof FileReader=="function"){const q=new FileReader;q.onload=pt=>{c.value=pt.target.result,n.value.replace(pt.target.result)},q.readAsDataURL(D)}else i.message.error("Sorry, FileReader API not supported")}function $(d){d.preventDefault();const D=d.target.files||d.dataTransfer.files;if(D==null)return;l.value=!0;const q=D[0];H(q)&&(h.value=q,P(d))}function L(d,D){return D==null&&(D=t.compressQuality),n.value.getCroppedCanvas().toDataURL(d,D)}async function Y(d,D){return D==null&&(D=t.compressQuality),new Promise((q,pt)=>{function Ae(je){q(je)}n.value.getCroppedCanvas().toBlob(Ae,d,D)})}function j(d){e.emit("done",d)}async function T(d){const D={file:d};if(t.output==="all"){const q=await Y(d.type),pt=L(d.type);D.blob=q,D.dataUrl=pt,j(D);return}if(t.output==="blob"){D.blob=await Y(d.type),j(D);return}t.output==="dataUrl"&&(D.dataUrl=L(d.type),j(D))}async function tt(){if(!l.value){i.message.warn("请先选择图片");return}await T(h.value),r.value=!1}function ht(){n.value.scaleX(p.value.x*=-1)}function et(){n.value.scaleY(p.value.y*=-1)}function lt(){s.value=JSON.stringify(n.value.getCropBoxData(),null,4)}function bt(){s.value=JSON.stringify(n.value.getData(),null,4)}function yt(d,D){n.value.move(d,D)}function ct(){n.value.reset()}function it(d){n.value.rotate(d)}function zt(){n.value.setCropBoxData(JSON.parse(s.value))}function Nt(){n.value.setData(JSON.parse(s.value))}function He(){o.value.click()}function xt(d){n.value.relativeZoom(d)}const Le=Mt(()=>{const d="small";return[{size:d,round:!0,icon:i.icons.edit,text:a("fs.extends.cropper.reChoose"),onClick(){E()}},{size:d,round:!0,text:a("fs.extends.cropper.flipX"),onClick(){ht()}},{size:d,round:!0,text:a("fs.extends.cropper.flipY"),onClick(){et()}},{size:d,round:!0,icon:i.icons.zoomIn,onClick(){xt(.1)}},{size:d,round:!0,icon:i.icons.zoomOut,onClick(){xt(-.1)}},{size:d,round:!0,icon:i.icons.refreshLeft,onClick(){it(90)}},{size:d,round:!0,icon:i.icons.refreshRight,onClick(){it(-90)}},{size:d,round:!0,icon:i.icons.refresh,text:a("fs.extends.cropper.reset"),onClick(){ct()}}]}),Ye=Mt(()=>({title:a("fs.extends.cropper.title"),preview:a("fs.extends.cropper.preview"),cancel:a("fs.extends.cropper.cancel"),confirm:a("fs.extends.cropper.confirm"),chooseImage:a("fs.extends.cropper.chooseImage")})),Xe=Mt(()=>t.uploadTip!=null&&t.uploadTip!==""?t.uploadTip:t.maxSize>0?`${a("fs.extends.cropper.onlySupport")} ${t.accept.replace(/,/g,"、")}, + ${a("fs.extends.cropper.sizeLimit")} ${t.maxSize}M`:`${a("fs.extends.cropper.onlySupport")}${t.accept},${a("fs.extends.cropper.sizeNoLimit")}`);return{ui:i,cropperRef:n,fileInputRef:o,dialogVisible:r,dialogBinding:M,isLoaded:l,imgSrc:c,data:s,file:h,scale:p,computedButtons:Le,handleClose:g,setData:Nt,handleClosed:m,close:y,showFileChooser:He,zoom:xt,setCropBoxData:zt,rotate:it,reset:ct,move:yt,getData:bt,getCropBoxData:lt,flipY:et,flipX:ht,doCropper:tt,doOutput:T,getCropImageBlob:Y,getCropImageDataUrl:L,handleChange:$,setImage:P,checkFile:H,handleClick:E,preventDefault:B,open:k,clear:R,getCropperRef:N,ready:v,computedTexts:Ye,computedUploadTip:Xe}},data(){return{}},computed:{_cropper(){const t={aspectRatio:1,ready:this.ready};return this.cropper==null?t:Object.assign(t,this.cropper)},_cropperHeight(){let t=this.cropperHeight;return t==null&&(t=document.documentElement.clientHeight*.55,t<270&&(t=270)),typeof t=="number"?t+"px":t},_dialogWidth(){let t=this.dialogWidth;return t==null&&(t="50%"),typeof t=="number"?t+"px":t}}}),Ii={class:"fs-cropper-dialog-wrap"},Pi=["accept"],Ui={class:"fs-cropper-dialog__choose fs-cropper-dialog_left"},_i={class:"fs-cropper-dialog__edit fs-cropper-dialog_left"},$i={class:"fs-cropper-dialog__edit-area"},qi={class:"tool-bar"},Fi={class:"fs-cropper-dialog__preview"},Qi={class:"fs-cropper-dialog__preview-title"},Vi={class:"dialog-footer"};function Zi(t,e,i,a,r,n){const o=Gt("fs-button"),l=Gt("vue-cropper");return Ct(),St(ee(t.ui.dialog.name),Ht({ref:"cropperDialogRef",[t.ui.dialog.visible]:t.dialogVisible,["onUpdate:"+t.ui.dialog.visible]:e[2]||(e[2]=c=>t.dialogVisible=c),"append-to-body":"",width:"900px","close-on-click-modal":!0},t.dialogBinding,{"destroy-on-close":!1}),{footer:Wt(()=>[X("div",Vi,[Dt(o,{size:"small",text:t.computedTexts.cancel,onClick:t.handleClose},null,8,["text","onClick"]),Dt(o,{type:"primary",size:"small",text:t.computedTexts.confirm,onClick:e[1]||(e[1]=c=>t.doCropper())},null,8,["text"])])]),default:Wt(()=>[X("div",Ii,[Et(X("input",{ref:"fileInputRef",type:"file",accept:t.accept,onChange:e[0]||(e[0]=(...c)=>t.handleChange&&t.handleChange(...c))},null,40,Pi),[[Rt,!1]]),Et(X("div",Ui,[Dt(o,{round:"",text:t.computedTexts.chooseImage,onClick:t.showFileChooser},null,8,["text","onClick"]),X("p",null,te(t.computedUploadTip),1)],512),[[Rt,!t.isLoaded]]),Et(X("div",_i,[X("div",$i,[Dt(l,Ht({ref:"cropperRef",src:t.imgSrc,preview:".preview",style:{height:t._cropperHeight}},t._cropper),null,16,["src","style"])]),X("div",qi,[(Ct(),St(ee(t.ui.buttonGroup.name),null,{default:Wt(()=>[(Ct(!0),Pe(Ue,null,_e(t.computedButtons,(c,s)=>(Ct(),St(o,Ht({key:s,ref_for:!0},c),null,16))),128))]),_:1}))])],512),[[Rt,t.isLoaded]]),X("div",Fi,[X("span",Qi,te(t.computedTexts.preview),1),e[3]||(e[3]=X("div",{class:"fs-cropper-dialog__preview-120 preview"},null,-1)),X("div",{class:$e(["fs-cropper-dialog__preview-65 preview",{round:t._cropper.aspectRatio===1}])},null,2)])])]),_:1},16)}const Gi=qe(ji,[["render",Zi]]);export{Gi as default}; diff --git a/web/dist/assets/fs-cropper-uploader-a4003ae3.DQrYaZaX.js b/web/dist/assets/fs-cropper-uploader-a4003ae3.DQrYaZaX.js new file mode 100644 index 0000000000000000000000000000000000000000..11d7971b0bd1887b5183b7cac57957e84dd5097b --- /dev/null +++ b/web/dist/assets/fs-cropper-uploader-a4003ae3.DQrYaZaX.js @@ -0,0 +1 @@ +import{k as G,l as $,i as J}from"./index.XK2ik2qb.js";import{d as K,h as R,a as c,o as l,e as m,k as g,b as w,w as z,J as h,G as M,H as X,r as S,L as Y,f as F,g as d,C as Z,c as ee,z as te,B as ae}from"./vue.DmuWcDrn.js";const oe=K({name:"FsCropperUploader",props:{disabled:{},modelValue:{type:[String,Object,Array]},img:{},type:{type:String},uploadTip:{type:String},title:String,cropperHeight:{type:[String,Number]},dialogWidth:{type:[String,Number],default:"50%"},maxSize:{type:Number,default:5},limit:{type:Number,default:1},accept:{type:String,default:".jpg, .jpeg, .png, .gif, .webp"},cropper:{type:Object},uploader:{type:Object},compressQuality:{type:Number,default:.8},buildUrl:{type:Function,default:async function(e){return typeof e=="object"?e.url:e}},valueType:{type:String,default:"url"}},emits:["update:modelValue","change","ready"],setup(e,n){const{ui:b}=$(),f=d(),I=d(),C=d(),s=d([]),p=b.formItem.injectFormItemContext();let y=e.modelValue;r(e.modelValue);async function r(t){const a=[];if(t==null||t===""){s.value=a;return}if(typeof t=="string")a.push({url:await e.buildUrl(t),value:t,status:"done"});else if(Array.isArray(t))for(const o of t)a.push({url:await e.buildUrl(o),value:o,status:"done"});else if(typeof t=="object")a.push({url:await e.buildUrl(t),value:t,status:"done"});else for(const o of t)a.push({url:await e.buildUrl(o),value:o,status:"done"});s.value=a}function v(){e.disabled||(C.value=void 0,f.value.clear(),f.value.open())}function P(t){s.value.splice(t,1),j()}function A(){const t=s.value;if(t&&t.length>0){for(const a of t)if(a.status==="uploading")return!0}return!1}async function D(t){const a=t.blob,o=t.dataUrl,B=t.file.name,L=new File([a],B,{type:a.type}),u=te({url:void 0,dataUrl:o,status:"uploading",progress:0}),Q=i=>{u.progress=i.percent},T=i=>{u.status="error",u.message="文件上传出错:"+i.message,console.error(i)},W={file:L,onProgress:Q,onError:T,fileName:B};s.value.push(u);try{const i=await V(W);let N=i;e.valueType!=="object"&&(N=i[e.valueType]),u.url=await e.buildUrl(N),u.value=N,u.status="done",j()}catch(i){T(i)}}async function V(t){t.options=e.uploader||{};const{getUploaderImpl:a}=J();let o=await a(t.options.type);if(o==null)throw new Error("Sorry,The component is not ready yet");return await(o==null?void 0:o.upload(t))}async function j(){const t=[];for(const o of s.value)typeof o=="string"?t.push(o):t.push(o.value);let a=t;e.limit===1&&(a=t&&t.length>0?t[0]:void 0),y=a,n.emit("update:modelValue",a),await p.onChange(),await p.onBlur()}function x(t){return t.dataUrl?t.dataUrl:t.url}const k=d(!1),U=d();function H(t){k.value=!0,U.value=x(t)}function O(){k.value=!1,U.value=null}Z(()=>e.modelValue,async t=>{n.emit("change",t),t!==y&&await r(t)});const _=ae();function q(t){n.emit("ready",{uploaderRef:_,...t})}const E=ee(()=>({...e}));return{ui:b,cropperRef:f,uploaderImplRef:I,indexRef:C,listRef:s,addNewImage:v,hasUploading:A,cropComplete:D,doUpload:V,removeImage:P,getImageSrc:x,previewUrl:U,previewVisible:k,preview:H,closePreview:O,doReady:q,computedProps:E}}}),re={class:"image-list"},le={class:"image-slot"},se={class:"delete"},ie={key:0,class:"status-uploading"},ne={key:1,class:"status-done"},pe={class:"fs-cropper-preview-content"},ue=["src"];function ce(e,n,b,f,I,C){const s=R("fs-loading"),p=R("fs-icon"),y=R("fs-cropper");return l(),c("div",{class:F(["fs-cropper-uploader",{"is-disabled":e.computedProps.disabled}])},[m("div",re,[(l(),w(S(e.ui.imageGroup.name),null,{default:z(()=>[(l(!0),c(M,null,X(e.listRef,(r,v)=>(l(),c("div",{key:v,class:"image-item"},[(l(),w(S(e.ui.image.name),Y({class:"image",src:e.getImageSrc(r),ref_for:!0},e.computedProps.img),{placeholder:z(()=>[m("div",le,[g(s,{loading:!0})])]),_:2},1040,["src"])),m("div",se,[e.computedProps.disabled?h("",!0):(l(),w(p,{key:0,icon:e.ui.icons.remove,onClick:P=>e.removeImage(v)},null,8,["icon","onClick"])),g(p,{icon:e.ui.icons.search,onClick:P=>e.preview(r)},null,8,["icon","onClick"])]),r.status==="uploading"?(l(),c("div",ie,[(l(),w(S(e.ui.progress.name),{type:"circle",percentage:r.progress,width:70},null,8,["percentage"]))])):r.status==="done"?(l(),c("div",ne,[g(p,{icon:e.ui.icons.check,class:"status-down-icon"},null,8,["icon"])])):h("",!0)]))),128)),e.computedProps.limit<=0||e.computedProps.limit>e.listRef.length?(l(),c("div",{key:0,class:"image-item image-plus",onClick:n[0]||(n[0]=(...r)=>e.addNewImage&&e.addNewImage(...r))},[g(p,{icon:e.ui.icons.plus,class:"cropper-uploader-icon"},null,8,["icon"])])):h("",!0)]),_:1}))]),g(y,{ref:"cropperRef",title:e.computedProps.title,"cropper-height":e.computedProps.cropperHeight,"dialog-width":e.computedProps.dialogWidth,accept:e.computedProps.accept,"upload-tip":e.computedProps.uploadTip,"max-size":e.computedProps.maxSize,cropper:e.computedProps.cropper,"compress-quality":e.computedProps.compressQuality,output:"all",onDone:e.cropComplete,onReady:e.doReady},null,8,["title","cropper-height","dialog-width","accept","upload-tip","max-size","cropper","compress-quality","onDone","onReady"]),m("div",{class:F(["fs-cropper-preview",{open:e.previewVisible}]),onClick:n[1]||(n[1]=(...r)=>e.closePreview&&e.closePreview(...r))},[m("div",pe,[e.previewUrl?(l(),c("img",{key:0,src:e.previewUrl,class:"preview-image"},null,8,ue)):h("",!0)])],2)],2)}const ge=G(oe,[["render",ce]]);export{ge as default}; diff --git a/web/dist/assets/fs-file-uploader-1c0076b5.Csi0yJRC.js b/web/dist/assets/fs-file-uploader-1c0076b5.Csi0yJRC.js new file mode 100644 index 0000000000000000000000000000000000000000..3a0871e74e22685a8f8a214c8d3bb7800b4d03a9 --- /dev/null +++ b/web/dist/assets/fs-file-uploader-1c0076b5.Csi0yJRC.js @@ -0,0 +1 @@ +import{k as pe,l as de,n as me,m as P,j as ye,i as we}from"./index.XK2ik2qb.js";import{d as ve,a as ge,o as w,b as C,J as he,w as J,r as z,O as be,P as xe,L as K,e as Le,f as Ue,g as y,c as v,C as Te,D as Fe}from"./vue.DmuWcDrn.js";const Re=ve({name:"FsFileUploader",inheritAttrs:!1,props:{modelValue:{},limit:{type:Number},sizeLimit:{type:[Number,Object]},pixelLimit:{type:Object,required:!1},showLimitTip:{type:Boolean,default:!0},buildUrl:{default(){return l=>l}},buildUrls:{},button:{type:Object},listType:{type:String},beforeUpload:{type:Function},beforeUploadRequest:{type:Function},uploader:{type:Object},preview:{type:Object},valueType:{type:String,default:"url"},getFileName:{}},emits:["change","update:modelValue","success","exceed","remove"],setup(l,r){const{ui:s}=de(),{t:c}=me(),n=y([]),g=y(),p=y(),$=v(()=>l.getFileName||(async e=>{if(typeof e!="string")return console.warn("获取文件名失败,请配置getFileName"),e;const t=e.substring(e.lastIndexOf("/")+1),i=t.indexOf("?");return i>=0?t.substring(0,i):t}));function h(e){return l.valueType==="object"?e:e[l.valueType]}function G(e){const t=[];for(let i of e)t.push(h(i));return t}async function H(e){const t=[];for(let i of e){let o;typeof i=="string"||typeof i=="number"||typeof i=="boolean"||i instanceof Date?(o={url:void 0,key:i,value:i},l.valueType!=="object"&&(o[l.valueType]=i)):o=i,o[s.upload.id]||(o[s.upload.id]=Math.random()+""),o.status||(o.status=s.upload.status.success),t.push(o)}await V(t);for(const i of t)if(!i.name){const o=i.url||i.value;i.name=await $.value(o,i)}return t}async function B(e){const t=[];for(let i of e){const o=i.response||i.fsRes,a={size:i.size,name:i.name,uid:i.uid,...o??i};t.push(a)}return await V(t),G(t)}async function b(e){const t=[];if(e==null||e.length===0){n.value=t;return}if(e instanceof Array)for(let o of e)t.push(o);else t.push(e);const i=await H(t);N(i)}async function Q(){await k.onChange(),await k.onBlur()}async function j(e){let t=await W(e);O(t),Fe(async()=>{await Q()})}async function W(e){if(e==null||e.length===0)return l.limit===1?null:[];if(l.limit===1)return(await B(e))[0];const t=[];for(let i of e)s.upload.isSuccess(i)&&t.push(i);return await B(t)}async function V(e){let t=e.filter(i=>i.url==null);if(l.buildUrls){const i=t.map(a=>h(a)),o=await l.buildUrls(i);for(let a=0;al.modelValue,async e=>{I(e),e!==g.value&&await b(e)}),b(l.modelValue);function X(){return n.value.filter(e=>e.status===s.upload.status.uploading).length>0}function d(e,t){N(t),j(t)}function x(e,t,i){r.emit("success",{res:e,file:t,fileList:i}),d(t,i)}function S(e){let t;return e>1024*1024*1024?t=(e/(1024*1024*1024)).toFixed(2)+"G":e>1024*1024?t=(e/(1024*1024)).toFixed(2)+"M":t=Math.round(e/1024)+"K",t}const E=(e=!1)=>{const t=e?s.upload.limitAdd:0;return l.limit>0&&n.value.length>=l.limit+t};function Y(){l.showLimitTip&&s.message.warn(c("fs.extends.fileUploader.limitTip",[l.limit]))}function Z(){if(E(!0))throw Y(),r.emit("exceed",{fileList:n.value,limit:l.limit}),new Error("文件数量超限")}function ee(e){if(l.sizeLimit!=null){let t=l.sizeLimit,i=null;if(typeof l.sizeLimit=="number"?i=(o,a)=>{const f=S(a),u=S(e.size);s.message.warn(c("fs.extends.fileUploader.sizeLimitTip",[f,u]))}:(t=l.sizeLimit.limit,i=l.sizeLimit.tip),e.size>t){let o="文件大小超过限制,当前文件大小:"+e.size/1024+"k";throw i(e.size,t),new Error(o)}}}const te=e=>{let t=0,i=0,o="";if(l.pixelLimit)Array.isArray(l.pixelLimit)?(t=l.pixelLimit[0],i=l.pixelLimit[1]||l.pixelLimit[0]||0,o=l.pixelLimit[2]||""):typeof l.pixelLimit=="object"&&(t=l.pixelLimit.width||0,i=l.pixelLimit.height||0,o=l.pixelLimit.tip||"");else return Promise.resolve(!0);let a=o||c("fs.extends.fileUploader.pixelLimitTip",[t,i]);return new Promise((f,u)=>{let D=new FileReader;D.onload=fe=>{var M;let _=(M=fe.target)==null?void 0:M.result,m=new Image;m.onload=function(){t&&m.width>t||i&&m.height>i?(s.message.warn(a),u(a)):f(!0)},m.onerror=function(ze){s.message.warn(c("fs.extends.fileUploader.loadError")),u(c("fs.extends.fileUploader.loadError"))},_&&(m.src=_)},D.readAsDataURL(e)})},L=async(e,t=n.value)=>{if(l.beforeUpload&&await l.beforeUpload({file:e,fileList:n.value})===!1)return!1;try{Z(),ee(e),T()&&await te(e)}catch{return!1}};function N(e){n.value=e}async function ie(e){e.options=l.uploader||{};const{getUploaderImpl:t}=we();let i=await t(e.options.type);if(i==null)throw s.message.warn("Sorry,The uploader component is not ready yet"),new Error("Sorry,The component is not ready yet");return await(i==null?void 0:i.upload(e))}async function U(e){l.beforeUploadRequest&&await l.beforeUploadRequest(e);const{file:t,onProgress:i,onSuccess:o,onError:a}=e,f={file:t,fileName:t.name,onProgress:i};try{const u=await ie(f);o(u)}catch(u){console.error("上传失败",u),a(u)}}const le=v(()=>ae()?{is:"FsIcon",icon:s.icons.plus}:{is:"FsButton",icon:s.icons.upload,text:c("fs.extends.fileUploader.text"),...l.button}),q=y(!1),A=y(),oe=v(()=>({...s.dialog.footer(),...l.preview}));function se(e){return new Promise((t,i)=>{const o=new FileReader;o.readAsDataURL(e),o.onload=()=>t(o.result),o.onerror=a=>i(a)})}function T(){return l.listType===s.upload.typeImageCard||l.listType===s.upload.typeImage}function ae(){return l.listType===s.upload.typeImageCard}const F=async e=>{var t,i;if(!T()){let o;e.url?o=e.url:s.type==="antdv"?o=(t=e.response)==null?void 0:t.url:s.type==="element"?o=(i=e.fsRes)==null?void 0:i.url:o=e.url,window.open(o,"_blank")}!e.url&&!e.preview&&e.originFileObj&&(e.preview=await se(e.originFileObj)),A.value=e.url||e.preview,q.value=!0};function re(){const e={customRequest:U,beforeUpload:L,limit:l.limit,listType:l.listType,onChange:t=>{const{file:i,fileList:o}=t;d(i,o),i.status==="done"&&x(i.response,i,o)},onPreview:F};return l.limit!=null&&r.attrs.maxCount==null&&(e.maxCount=l.limit),e}function ne(){return{action:"",listType:l.listType,limit:l.limit,beforeUpload:L,httpRequest:U,onExceed:e=>{r.emit("exceed",e,n)},onRemove:(e,t)=>{d(e,t),r.emit("remove",e,t)},onChange:(e,t)=>{d(e,t)},onSuccess:(e,t,i)=>{e!=null&&(t.response=e,t.fsRes=e,x(e,t,i))},onPreview:F}}const R={};function ue(){function e(t){let i=t.value||t;i=ye(i);for(let o of i){const a=R[o.id];a&&P(o,a)}return i}return{action:"",limit:l.limit,listType:l.listType,onBeforeUpload:async({file:t,fileList:i})=>L(t,i),customRequest:t=>{const i=t.file;U({...t,file:i.file,onSuccess:async o=>{const a=l.valueType==="object"?o:o[l.valueType];o.url=await l.buildUrl(a),P(i,o),R[i.id]={...o,fsRes:o},t.onFinish(i)},onProgress:o=>{t.onProgress(o)}})},onExceed:t=>{r.emit("exceed",t)},onRemove:t=>{r.emit("remove",t)},onChange:t=>{const{event:i,file:o,fileList:a}=t,f=e(a);d(o,[...f])},onFinish:t=>{const i=R[t.id];i&&P(t,i);const o=e(n);x(i,t,o)},onPreview:F}}const ce=v(()=>{let e=null;return s.type==="antdv"?e=re():s.type==="element"?e=ne():e=ue(),{...e,...r.attrs}});return{ui:s,fileList:n,fileUploaderRef:p,initValue:b,onChange:I,onInput:O,hasUploading:X,isPicture:T,computedFileSelectBtn:le,previewVisible:q,previewImage:A,computedPreview:oe,computedOnLimit:E,computedBinding:ce,emitValue:j}}}),Pe=["src"];function Ce(l,r,s,c,n,g){return w(),ge("div",{class:Ue(["fs-file-uploader",{"fs-file-uploader-limit":l.computedOnLimit()}])},[(w(),C(z(l.ui.upload.name),K({ref:"fileUploaderRef","file-list":l.fileList,"onUpdate:fileList":r[0]||(r[0]=p=>l.fileList=p)},l.computedBinding),{default:J(()=>[(w(),C(z(l.computedFileSelectBtn.is),be(xe(l.computedFileSelectBtn)),null,16))]),_:1},16,["file-list"])),l.isPicture()?(w(),C(z(l.ui.dialog.name),K({key:0,[l.ui.dialog.visible]:l.previewVisible,["onUpdate:"+l.ui.dialog.visible]:r[1]||(r[1]=p=>l.previewVisible=p)},l.computedPreview),{default:J(()=>[Le("img",{style:{"max-width":"100%","max-height":"100%"},src:l.previewImage},null,8,Pe)]),_:1},16)):he("",!0)],2)}const Ve=pe(Re,[["render",Ce]]);export{Ve as default}; diff --git a/web/dist/assets/fs-files-format-d3f2439b.CQTDs3Df.js b/web/dist/assets/fs-files-format-d3f2439b.CQTDs3Df.js new file mode 100644 index 0000000000000000000000000000000000000000..e31abeebdff74c182cdadb14c9515018567a6500 --- /dev/null +++ b/web/dist/assets/fs-files-format-d3f2439b.CQTDs3Df.js @@ -0,0 +1 @@ +import{k as F,l as V}from"./index.XK2ik2qb.js";import{d as w,a as s,o as t,G as d,H as p,e as g,K as y,L as n,b as x,w as B,r as P,c as b,g as U,C as _}from"./vue.DmuWcDrn.js";const C=w({name:"FsFilesFormat",props:{modelValue:{},color:{default:""},type:{default:"tag"},a:{},tag:{},buildUrl:{},buildUrls:{},getFileName:{}},setup(a,v){const{ui:i}=V(),f=b(()=>a.getFileName||function(e){return typeof e!="string"?(console.warn("获取文件名失败,请配置getFileName"),e):(e==null?void 0:e.lastIndexOf("/"))>=0?e.substring(e.lastIndexOf("/")+1):e});function u(e){return{url:void 0,value:e,name:f.value(e),color:a.color}}async function m(e){if(a.buildUrls){const r=e.map(o=>o.value),h=await a.buildUrls(r);for(let o=0;oa.modelValue,async()=>{c.value=await l()},{immediate:!0});const k=b(()=>({...a}));return{ui:i,itemsRef:c,computedProps:k}}}),N={class:"fs-files-format"},R=["href"],O=["href"];function D(a,v,i,f,u,m){return t(),s("div",N,[a.computedProps.type==="text"?(t(!0),s(d,{key:0},p(a.itemsRef,l=>(t(),s("span",{key:l.url,class:"fs-files-item"},[g("a",n({href:l.url,target:"_blank",ref_for:!0},a.computedProps.a),y(l.name),17,R)]))),128)):(t(!0),s(d,{key:1},p(a.itemsRef,l=>(t(),x(P(a.ui.tag.name),n({key:l.url,class:"fs-tag-item",color:l.color,ref_for:!0},a.computedProps.tag),{default:B(()=>[g("a",n({href:l.url,target:"_blank",ref_for:!0},a.computedProps.a),y(l.name),17,O)]),_:2},1040,["color"]))),128))])}const $=F(C,[["render",D]]);export{$ as default}; diff --git a/web/dist/assets/fs-uploader-070ca0b5.CZqbYbzt.js b/web/dist/assets/fs-uploader-070ca0b5.CZqbYbzt.js new file mode 100644 index 0000000000000000000000000000000000000000..224087b31dfafaa5366e2ac90d9aa6988d8c6cd2 --- /dev/null +++ b/web/dist/assets/fs-uploader-070ca0b5.CZqbYbzt.js @@ -0,0 +1 @@ +import{i as a,A as r}from"./index.XK2ik2qb.js";import{d as n}from"./vue.DmuWcDrn.js";const i=n({name:"FsUploader",props:{type:{}},setup(e){async function t(){const{getDefaultType:o}=a(),p=e.type||o();return await r(p)}return{getUploaderRef:t}}});export{i as default}; diff --git a/web/dist/assets/header.BQoAQuJ9.js b/web/dist/assets/header.BQoAQuJ9.js new file mode 100644 index 0000000000000000000000000000000000000000..c5e6fff99a254b4ab4ce7a8a1d96ea1fa4df5929 --- /dev/null +++ b/web/dist/assets/header.BQoAQuJ9.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index.YBPnVDRQ.js","assets/index.XK2ik2qb.js","assets/vue.DmuWcDrn.js","assets/index.JncG-tMh.css","assets/_plugin-vue_export-helper.DlAUqK2U.js","assets/index.DPJ4CiP8.css"])))=>i.map(i=>d[i]); +import{O as n,_}from"./index.XK2ik2qb.js";import{d as s,T as c,h as i,p as u,N as d,u as e,b as l,o as p,w as m,k as f,q as h}from"./vue.DmuWcDrn.js";const w=s({name:"layoutHeader"}),R=s({...w,setup(v){const o=h(()=>_(()=>import("./index.YBPnVDRQ.js"),__vite__mapDeps([0,1,2,3,4,5]))),a=n(),{isTagsViewCurrenFull:t}=c(a);return(T,C)=>{const r=i("el-header");return u((p(),l(r,{class:"layout-header"},{default:m(()=>[f(e(o))]),_:1},512)),[[d,!e(t)]])}}});export{R as default}; diff --git a/web/dist/assets/headerImage.BUBciz5F.png b/web/dist/assets/headerImage.BUBciz5F.png new file mode 100644 index 0000000000000000000000000000000000000000..d3eb252d438ae5228742ca42639018f440513111 Binary files /dev/null and b/web/dist/assets/headerImage.BUBciz5F.png differ diff --git a/web/dist/assets/horizontal.Ca6WNWsW.js b/web/dist/assets/horizontal.Ca6WNWsW.js new file mode 100644 index 0000000000000000000000000000000000000000..1c970bdf1a4d16fea83a39387936712a429d3f91 --- /dev/null +++ b/web/dist/assets/horizontal.Ca6WNWsW.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/subItem.qTCEXAcU.js","assets/vue.DmuWcDrn.js","assets/index.XK2ik2qb.js","assets/index.JncG-tMh.css"])))=>i.map(i=>d[i]); +import{M as F,u as N,_ as j,Q as q,p as G}from"./index.XK2ik2qb.js";import{d as z,v as K,z as Q,g as I,T as S,s as W,c as Y,I as Z,x as J,h as u,a as d,o as a,k as r,w as c,G as v,H as U,b as R,u as X,q as ee,e as M,K as h,Z as te,m as T,Y as ne,D as se}from"./vue.DmuWcDrn.js";import{_ as ie}from"./_plugin-vue_export-helper.DlAUqK2U.js";const oe={class:"el-menu-horizontal-warp"},le=["onClick"],ae=z({name:"navMenuHorizontal"}),re=z({...ae,props:{menuList:{type:Array,default:()=>[]}},setup($){const m=K(),b=ee(()=>j(()=>import("./subItem.qTCEXAcU.js"),__vite__mapDeps([0,1,2,3])));Q({menuList:[],clientWidth:0});const f=$,w=I(),D=F(),H=N(),{routesList:p}=S(D),{themeConfig:_}=S(H),k=W(),o=I(""),C=Y(()=>(f.menuList.shift(),f.menuList)),g=(t,i)=>{for(let e=0;e0&&(n.children.findIndex(s=>s.path===i)!==-1||g(n.children,i)!==null))return e}return null},A=()=>{se(()=>{let t=document.querySelector(".el-menu.el-menu--horizontal li.is-active");if(!t)return!1;w.value.$refs.wrapRef.scrollLeft=t.offsetLeft})},L=t=>t.filter(i=>{var e;return!((e=i.meta)!=null&&e.isHide)}).map(i=>(i=Object.assign({},i),i.children&&(i.children=L(i.children)),i)),B=t=>{const i=t.split("/");let e={children:[]};return L(p.value).map((n,l)=>{n.path===`/${i[1]}`&&(n.k=l,e.item={...n},e.children=[{...n}],n.children&&(e.children=n.children))}),e},E=t=>{const{path:i,meta:e}=t;if(_.value.layout==="classic"){let n=(g(p.value,k.path)||0)-1;o.value=n<0?o.value:C.value[n].path}else{const n=e!=null&&e.isDynamic?e.isDynamicPath.split("/"):i.split("/");n.length>=4&&(e!=null&&e.isHide)?o.value=n.splice(0,3).join("/"):o.value=i}},O=t=>{q.handleOpenLink(t)},x=(t,i)=>{let e=t.children;if(e===void 0&&(o.value=t.path,e=B(t.path).children),e.length>=1){if(e[0].is_catalog){x(e[0]);return}m.push(e[0].path);let{layout:n,isClassicSplitMenu:l}=_.value;n==="classic"&&l&&G.emit("setSendClassicChildren",e[0])}else m.push("/home")};return Z(()=>{E(k)}),J(()=>{A()}),(t,i)=>{const e=u("SvgIcon"),n=u("el-sub-menu"),l=u("el-menu-item"),y=u("el-menu");return a(),d("div",oe,[r(y,{"default-active":o.value,"background-color":"transparent",mode:"horizontal"},{default:c(()=>[(a(!0),d(v,null,U(C.value,(s,P)=>(a(),d(v,null,[s.children&&s.children.length>0?(a(),R(n,{index:s.path,key:s.path},{title:c(()=>[r(e,{name:s.meta.icon},null,8,["name"]),M("span",null,h(t.$t(s.meta.title)),1)]),default:c(()=>[r(X(b),{chil:s.children},null,8,["chil"])]),_:2},1032,["index"])):(a(),R(l,{index:s.path,key:s.path,style:{"--el-menu-active-color":"#fff"},onClick:V=>x(s,P)},te({_:2},[!s.meta.isLink||s.meta.isLink&&s.meta.isIframe?{name:"title",fn:c(()=>[r(e,{name:s.meta.icon},null,8,["name"]),T(" "+h(t.$t(s.meta.title)),1)]),key:"0"}:{name:"title",fn:c(()=>[M("a",{class:"w100",onClick:ne(V=>O(s),["prevent"])},[r(e,{name:s.meta.icon},null,8,["name"]),T(" "+h(t.$t(s.meta.title)),1)],8,le)]),key:"1"}]),1032,["index","onClick"]))],64))),256))]),_:1},8,["default-active"])])}}}),he=ie(re,[["__scopeId","data-v-593d995c"]]);export{he as default}; diff --git a/web/dist/assets/horizontal.jmWcI8YP.css b/web/dist/assets/horizontal.jmWcI8YP.css new file mode 100644 index 0000000000000000000000000000000000000000..e186d134f83fd1be0faf83eddbdebcef8d1f49a0 --- /dev/null +++ b/web/dist/assets/horizontal.jmWcI8YP.css @@ -0,0 +1 @@ +.el-menu-horizontal-warp[data-v-593d995c]{flex:1;overflow:hidden;margin-right:30px}.el-menu-horizontal-warp[data-v-593d995c] .el-scrollbar__bar.is-vertical{display:none}.el-menu-horizontal-warp[data-v-593d995c] a{width:100%}.el-menu-horizontal-warp .el-menu.el-menu--horizontal[data-v-593d995c]{display:flex;height:100%;width:100%;box-sizing:border-box} diff --git a/web/dist/assets/hour.sTApfnsu.js b/web/dist/assets/hour.sTApfnsu.js new file mode 100644 index 0000000000000000000000000000000000000000..30fcbf739c8577bcbc5824b35fc02b126e83b411 --- /dev/null +++ b/web/dist/assets/hour.sTApfnsu.js @@ -0,0 +1 @@ +import{_ as m}from"./hour.vue_vue_type_script_setup_true_lang.CQYhc03P.js";import"./vue.DmuWcDrn.js";export{m as default}; diff --git a/web/dist/assets/hour.vue_vue_type_script_setup_true_lang.CQYhc03P.js b/web/dist/assets/hour.vue_vue_type_script_setup_true_lang.CQYhc03P.js new file mode 100644 index 0000000000000000000000000000000000000000..b7e68eba54367b13844556943a4df8535abdf09a --- /dev/null +++ b/web/dist/assets/hour.vue_vue_type_script_setup_true_lang.CQYhc03P.js @@ -0,0 +1 @@ +import{d as G,g as i,c as U,C as V,h as p,b as H,o as _,w as n,k as o,m as r,a as K,G as q,H as A,K as I}from"./vue.DmuWcDrn.js";const M=G({__name:"hour",props:{cron:{},check:{type:Function}},emits:["update"],setup(B,{expose:N,emit:T}){const d=T,f=B,u=i(1),t=i(0),s=i(1),m=i(0),v=i(1),b=i([]),k=f.check;N({cycle01:t,cycle02:s,average01:m,average02:v,checkboxList:b});const y=U(()=>(t.value=k(t.value,0,22),s.value=k(s.value,t.value?t.value+1:1,23),t.value+"-"+s.value)),w=U(()=>(m.value=k(m.value,0,22),v.value=k(v.value,1,23-m.value||0),m.value+"/"+v.value)),C=U(()=>{let a=b.value.join();return a==""?"*":a});V(u,(a,e)=>{F()}),V(y,(a,e)=>{L()}),V(w,(a,e)=>{O()}),V(C,(a,e)=>{S()}),V(f,(a,e)=>{D(a.cron.hour)});function D(a){a&&(a=="*"?u.value=1:typeof a=="string"&&a.indexOf("-")>-1?u.value=2:typeof a=="string"&&a.indexOf("/")>-1?u.value=3:u.value=4)}function F(){switch(f.cron.min==="*"&&d("update","min","0","hour"),f.cron.second==="*"&&d("update","second","0","hour"),u.value){case 1:d("update","hour","*");break;case 2:d("update","hour",y.value);break;case 3:d("update","hour",w.value);break;case 4:d("update","hour",C.value);break}}function L(){u.value==2&&d("update","hour",y.value)}function O(){u.value==3&&d("update","hour",w.value)}function S(){u.value==4&&d("update","hour",C.value)}return(a,e)=>{const x=p("el-radio"),g=p("el-form-item"),c=p("el-input-number"),j=p("el-option"),z=p("el-select"),E=p("el-form");return _(),H(E,{size:"small"},{default:n(()=>[o(g,null,{default:n(()=>[o(x,{modelValue:u.value,"onUpdate:modelValue":e[0]||(e[0]=l=>u.value=l),label:1},{default:n(()=>e[9]||(e[9]=[r(" 小时,允许的通配符[, - * /] ")])),_:1},8,["modelValue"])]),_:1}),o(g,null,{default:n(()=>[o(x,{modelValue:u.value,"onUpdate:modelValue":e[3]||(e[3]=l=>u.value=l),label:2},{default:n(()=>[e[10]||(e[10]=r(" 周期从 ")),o(c,{modelValue:t.value,"onUpdate:modelValue":e[1]||(e[1]=l=>t.value=l),min:0,max:22},null,8,["modelValue"]),e[11]||(e[11]=r(" - ")),o(c,{modelValue:s.value,"onUpdate:modelValue":e[2]||(e[2]=l=>s.value=l),min:t.value?t.value+1:1,max:23},null,8,["modelValue","min"]),e[12]||(e[12]=r(" 小时 "))]),_:1},8,["modelValue"])]),_:1}),o(g,null,{default:n(()=>[o(x,{modelValue:u.value,"onUpdate:modelValue":e[6]||(e[6]=l=>u.value=l),label:3},{default:n(()=>[e[13]||(e[13]=r(" 从 ")),o(c,{modelValue:m.value,"onUpdate:modelValue":e[4]||(e[4]=l=>m.value=l),min:0,max:22},null,8,["modelValue"]),e[14]||(e[14]=r(" 小时开始,每 ")),o(c,{modelValue:v.value,"onUpdate:modelValue":e[5]||(e[5]=l=>v.value=l),min:1,max:23-m.value||0},null,8,["modelValue","max"]),e[15]||(e[15]=r(" 小时执行一次 "))]),_:1},8,["modelValue"])]),_:1}),o(g,null,{default:n(()=>[o(x,{modelValue:u.value,"onUpdate:modelValue":e[8]||(e[8]=l=>u.value=l),label:4},{default:n(()=>[e[16]||(e[16]=r(" 指定 ")),o(z,{clearable:"",modelValue:b.value,"onUpdate:modelValue":e[7]||(e[7]=l=>b.value=l),placeholder:"可多选",multiple:"",style:{width:"100%"}},{default:n(()=>[(_(),K(q,null,A(24,l=>o(j,{key:l,value:l-1},{default:n(()=>[r(I(l-1),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1})]),_:1})}}});export{M as _}; diff --git a/web/dist/assets/iconfont.1741744105265.CEnVhfJy.ttf b/web/dist/assets/iconfont.1741744105265.CEnVhfJy.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4586c5f4f039c7472d89a2db0733361ac0cef4aa Binary files /dev/null and b/web/dist/assets/iconfont.1741744105265.CEnVhfJy.ttf differ diff --git a/web/dist/assets/iconfont.1741744105265.Dp-KMXjm.woff b/web/dist/assets/iconfont.1741744105265.Dp-KMXjm.woff new file mode 100644 index 0000000000000000000000000000000000000000..f8cfe784443aa1434b919b8ea3857df5f1604a33 Binary files /dev/null and b/web/dist/assets/iconfont.1741744105265.Dp-KMXjm.woff differ diff --git a/web/dist/assets/iconfont.CV5FmyBR.ttf b/web/dist/assets/iconfont.CV5FmyBR.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c82be20bba2eea2c3b290b01b698c3c36b46480a Binary files /dev/null and b/web/dist/assets/iconfont.CV5FmyBR.ttf differ diff --git a/web/dist/assets/iframes.CcKcwRP_.js b/web/dist/assets/iframes.CcKcwRP_.js new file mode 100644 index 0000000000000000000000000000000000000000..9f52387cf4751a69dab38a76d8f63b48597bd1c3 --- /dev/null +++ b/web/dist/assets/iframes.CcKcwRP_.js @@ -0,0 +1 @@ +import{d as h,g as k,s as y,c as d,C as c,j as I,a as n,o,e as w,G as O,H as x,D as L,p,k as R,w as b,N as v,U as B}from"./vue.DmuWcDrn.js";import{x as C}from"./index.XK2ik2qb.js";const D={class:"layout-padding layout-padding-unset layout-iframe"},E={class:"layout-padding-auto layout-padding-view"},N=["src","data-url"],P=h({name:"layoutIframeView"}),V=h({...P,props:{refreshKey:{type:String,default:()=>""},name:{type:String,default:()=>"slide-right"},list:{type:Array,default:()=>[]}},setup(f){const i=f,l=k(),r=y(),g=d(()=>i.list.filter(e=>{var t,s,a;if((t=e.meta)!=null&&t.isIframeOpen){const m=((s=e.meta)==null?void 0:s.isLink)||"";m.includes("{{token}}")&&(e.meta.isLink=m.replace("{{token}}",C.cookie.get("token")))}return(a=e.meta)==null?void 0:a.isIframeOpen})),_=d(()=>r.path),u=(e,t)=>{L(()=>{if(!l.value)return!1;l.value.forEach(s=>{s.dataset.url===e&&(s.onload=()=>{var a;(a=t.meta)!=null&&a.isIframeOpen&&t.meta.loading&&(t.meta.loading=!1)})})})};return c(()=>r.fullPath,e=>{const t=i.list.find(s=>s.path===e);if(!t)return!1;t.meta.isIframeOpen||(t.meta.isIframeOpen=!0),u(e,t)},{immediate:!0}),c(()=>i.refreshKey,()=>{const e=i.list.find(t=>t.path===r.path);if(!e)return!1;e.meta.isIframeOpen&&(e.meta.isIframeOpen=!1),setTimeout(()=>{e.meta.isIframeOpen=!0,e.meta.loading=!0,u(r.fullPath,e)})},{deep:!0}),(e,t)=>{const s=I("loading");return o(),n("div",D,[w("div",E,[(o(!0),n(O,null,x(g.value,a=>p((o(),n("div",{class:"w100",key:a.path,"element-loading-background":"white"},[R(B,{name:f.name,mode:"out-in"},{default:b(()=>[p((o(),n("iframe",{src:a.meta.isLink,key:a.path,frameborder:"0",height:"100%",width:"100%",style:{position:"absolute"},"data-url":a.path,ref_for:!0,ref_key:"iframeRef",ref:l},null,8,N)),[[v,_.value===a.path]])]),_:2},1032,["name"])])),[[s,a.meta.loading]])),128))])])}}});export{V as default}; diff --git a/web/dist/assets/img404.DizYJBZK.png b/web/dist/assets/img404.DizYJBZK.png new file mode 100644 index 0000000000000000000000000000000000000000..dc48c7502ce11c5b52cd791e0b366a82b817c236 Binary files /dev/null and b/web/dist/assets/img404.DizYJBZK.png differ diff --git a/web/dist/assets/index-03e6f703.25hsFXXE.js b/web/dist/assets/index-03e6f703.25hsFXXE.js new file mode 100644 index 0000000000000000000000000000000000000000..6b9eea6f2a16d6222537552ad330ec5e76344d7e --- /dev/null +++ b/web/dist/assets/index-03e6f703.25hsFXXE.js @@ -0,0 +1,181 @@ +import{k as $z,m as VC,o as WC,l as Hz,i as Uz}from"./index.XK2ik2qb.js";import{d as O3,h as GC,a as B3,o as k3,k as qC,L as Sy,Q as $_,g as il,C as Ww,c as KC,R as Vz,x as H_,t as Wz,S as Gz}from"./vue.DmuWcDrn.js";var at=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function qz(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Zu(e){var t={exports:{}};return e(t,t.exports),t.exports}var mi,Sg,yh=function(e){return e&&e.Math==Math&&e},Be=yh(typeof globalThis=="object"&&globalThis)||yh(typeof window=="object"&&window)||yh(typeof self=="object"&&self)||yh(typeof at=="object"&&at)||function(){return this}()||Function("return this")(),F3=Function.prototype,XC=F3.apply,Kz=F3.bind,YC=F3.call,U_=typeof Reflect=="object"&&Reflect.apply||(Kz?YC.bind(XC):function(){return YC.apply(XC,arguments)}),V_=Function.prototype,Gw=V_.bind,qw=V_.call,Xz=Gw&&Gw.bind(qw),pt=Gw?function(e){return e&&Xz(qw,e)}:function(e){return e&&function(){return qw.apply(e,arguments)}},dr=function(e){return typeof e=="function"},Vr=function(e){try{return!!e()}catch{return!0}},zr=!Vr(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7}),yc=Function.prototype.call,Qr=yc.bind?yc.bind(yc):function(){return yc.apply(yc,arguments)},JC={}.propertyIsEnumerable,ZC=Object.getOwnPropertyDescriptor,Yz=ZC&&!JC.call({1:2},1)?function(e){var t=ZC(this,e);return!!t&&t.enumerable}:JC,T3={f:Yz},Vn=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},Jz=pt({}.toString),Zz=pt("".slice),du=function(e){return Zz(Jz(e),8,-1)},xy=Be.Object,Qz=pt("".split),W_=Vr(function(){return!xy("z").propertyIsEnumerable(0)})?function(e){return du(e)=="String"?Qz(e,""):xy(e)}:xy,e$=Be.TypeError,_3=function(e){if(e==null)throw e$("Can't call method on "+e);return e},To=function(e){return W_(_3(e))},wn=function(e){return typeof e=="object"?e!==null:dr(e)},Jr={},QC=function(e){return dr(e)?e:void 0},Kl=function(e,t){return arguments.length<2?QC(Jr[e])||QC(Be[e]):Jr[e]&&Jr[e][t]||Be[e]&&Be[e][t]},wd=pt({}.isPrototypeOf),Ay=Kl("navigator","userAgent")||"",eS=Be.process,tS=Be.Deno,rS=eS&&eS.versions||tS&&tS.version,nS=rS&&rS.v8;nS&&(Sg=(mi=nS.split("."))[0]>0&&mi[0]<4?1:+(mi[0]+mi[1])),!Sg&&Ay&&(!(mi=Ay.match(/Edge\/(\d+)/))||mi[1]>=74)&&(mi=Ay.match(/Chrome\/(\d+)/))&&(Sg=+mi[1]);var bh,ov=Sg,uo=!!Object.getOwnPropertySymbols&&!Vr(function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&ov&&ov<41}),j3=uo&&!Symbol.sham&&typeof Symbol.iterator=="symbol",t$=Be.Object,al=j3?function(e){return typeof e=="symbol"}:function(e){var t=Kl("Symbol");return dr(t)&&wd(t.prototype,t$(e))},r$=Be.String,Kw=function(e){try{return r$(e)}catch{return"Object"}},n$=Be.TypeError,P3=function(e){if(dr(e))return e;throw n$(Kw(e)+" is not a function")},iv=function(e,t){var r=e[t];return r==null?void 0:P3(r)},o$=Be.TypeError,i$=Object.defineProperty,Gi=Be["__core-js_shared__"]||function(e,t){try{i$(Be,e,{value:t,configurable:!0,writable:!0})}catch{Be[e]=t}return t}("__core-js_shared__",{}),Qu=Zu(function(e){(e.exports=function(t,r){return Gi[t]||(Gi[t]=r!==void 0?r:{})})("versions",[]).push({version:"3.19.3",mode:"pure",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})}),a$=Be.Object,yp=function(e){return a$(_3(e))},u$=pt({}.hasOwnProperty),Ue=Object.hasOwn||function(e,t){return u$(yp(e),t)},s$=0,l$=Math.random(),c$=pt(1 .toString),av=function(e){return"Symbol("+(e===void 0?"":e)+")_"+c$(++s$+l$,36)},bc=Qu("wks"),pu=Be.Symbol,oS=pu&&pu.for,f$=j3?pu:pu&&pu.withoutSetter||av,Or=function(e){if(!Ue(bc,e)||!uo&&typeof bc[e]!="string"){var t="Symbol."+e;uo&&Ue(pu,e)?bc[e]=pu[e]:bc[e]=j3&&oS?oS(t):f$(t)}return bc[e]},d$=Be.TypeError,p$=Or("toPrimitive"),h$=function(e,t){if(!wn(e)||al(e))return e;var r,n=iv(e,p$);if(n){if(r=Qr(n,e,t),!wn(r)||al(r))return r;throw d$("Can't convert object to primitive value")}return function(o,i){var a,u;if(dr(a=o.toString)&&!wn(u=Qr(a,o))||dr(a=o.valueOf)&&!wn(u=Qr(a,o))||i!=="string")return u;throw o$("Can't convert object to primitive value")}(e,t)},Xl=function(e){var t=h$(e,"string");return al(t)?t:t+""},Xw=Be.document,g$=wn(Xw)&&wn(Xw.createElement),G_=function(e){return g$?Xw.createElement(e):{}},q_=!zr&&!Vr(function(){return Object.defineProperty(G_("div"),"a",{get:function(){return 7}}).a!=7}),iS=Object.getOwnPropertyDescriptor,v$=zr?iS:function(e,t){if(e=To(e),t=Xl(t),q_)try{return iS(e,t)}catch{}if(Ue(e,t))return Vn(!Qr(T3.f,e,t),e[t])},gm={f:v$},m$=/#|\.prototype\./,bp=function(e,t){var r=b$[y$(e)];return r==E$||r!=w$&&(dr(t)?Vr(t):!!t)},y$=bp.normalize=function(e){return String(e).replace(m$,".").toLowerCase()},b$=bp.data={},w$=bp.NATIVE="N",E$=bp.POLYFILL="P",D$=bp,aS=pt(pt.bind),N3=function(e,t){return P3(e),t===void 0?e:aS?aS(e,t):function(){return e.apply(t,arguments)}},C$=Be.String,S$=Be.TypeError,rn=function(e){if(wn(e))return e;throw S$(C$(e)+" is not an object")},x$=Be.TypeError,uS=Object.defineProperty,A$=zr?uS:function(e,t,r){if(rn(e),t=Xl(t),rn(r),q_)try{return uS(e,t,r)}catch{}if("get"in r||"set"in r)throw x$("Accessors not supported");return"value"in r&&(e[t]=r.value),e},xa={f:A$},Fr=zr?function(e,t,r){return xa.f(e,t,Vn(1,r))}:function(e,t,r){return e[t]=r,e},O$=gm.f,B$=function(e){var t=function(r,n,o){if(this instanceof t){switch(arguments.length){case 0:return new e;case 1:return new e(r);case 2:return new e(r,n)}return new e(r,n,o)}return U_(e,this,arguments)};return t.prototype=e.prototype,t},Wo=function(e,t){var r,n,o,i,a,u,s,l,c=e.target,f=e.global,d=e.stat,p=e.proto,v=f?Be:d?Be[c]:(Be[c]||{}).prototype,m=f?Jr:Jr[c]||Fr(Jr,c,{})[c],g=m.prototype;for(o in t)r=!D$(f?o:c+(d?".":"#")+o,e.forced)&&v&&Ue(v,o),a=m[o],r&&(u=e.noTargetGet?(l=O$(v,o))&&l.value:v[o]),i=r&&u?u:t[o],r&&typeof a==typeof i||(s=e.bind&&r?N3(i,Be):e.wrap&&r?B$(i):p&&dr(i)?pt(i):i,(e.sham||i&&i.sham||a&&a.sham)&&Fr(s,"sham",!0),Fr(m,o,s),p&&(Ue(Jr,n=c+"Prototype")||Fr(Jr,n,{}),Fr(Jr[n],o,i),e.real&&g&&!g[o]&&Fr(g,o,i)))},sS=Qu("keys"),vm=function(e){return sS[e]||(sS[e]=av(e))},k$=!Vr(function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}),lS=vm("IE_PROTO"),Yw=Be.Object,F$=Yw.prototype,uv=k$?Yw.getPrototypeOf:function(e){var t=yp(e);if(Ue(t,lS))return t[lS];var r=t.constructor;return dr(r)&&t instanceof r?r.prototype:t instanceof Yw?F$:null},T$=Be.String,_$=Be.TypeError,sv=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,r={};try{(e=pt(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(r,[]),t=r instanceof Array}catch{}return function(n,o){return rn(n),function(i){if(typeof i=="object"||dr(i))return i;throw _$("Can't set "+T$(i)+" as a prototype")}(o),t?e(n,o):n.__proto__=o,n}}():void 0),j$=Math.ceil,P$=Math.floor,I3=function(e){var t=+e;return t!=t||t===0?0:(t>0?P$:j$)(t)},N$=Math.max,I$=Math.min,Jw=function(e,t){var r=I3(e);return r<0?N$(r+t,0):I$(r,t)},R$=Math.min,wp=function(e){return(t=e.length)>0?R$(I3(t),9007199254740991):0;var t},L$=function(e){return function(t,r,n){var o,i=To(t),a=wp(i),u=Jw(n,a);if(e&&r!=r){for(;a>u;)if((o=i[u++])!=o)return!0}else for(;a>u;u++)if((e||u in i)&&i[u]===r)return e||u||0;return!e&&-1}},M$={indexOf:L$(!1)},Ep={},z$=M$.indexOf,cS=pt([].push),K_=function(e,t){var r,n=To(e),o=0,i=[];for(r in n)!Ue(Ep,r)&&Ue(n,r)&&cS(i,r);for(;t.length>o;)Ue(n,r=t[o++])&&(~z$(i,r)||cS(i,r));return i},lv=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],$$=lv.concat("length","prototype"),H$=Object.getOwnPropertyNames||function(e){return K_(e,$$)},R3={f:H$},xg={f:Object.getOwnPropertySymbols},U$=pt([].concat),V$=Kl("Reflect","ownKeys")||function(e){var t=R3.f(rn(e)),r=xg.f;return r?U$(t,r(e)):t},L3=Object.keys||function(e){return K_(e,lv)},W$=zr?Object.defineProperties:function(e,t){rn(e);for(var r,n=To(t),o=L3(t),i=o.length,a=0;i>a;)xa.f(e,r=o[a++],n[r]);return e},G$=Kl("document","documentElement"),X_=vm("IE_PROTO"),Oy=function(){},Y_=function(e){return" + + + + +
+ + + diff --git a/web/dist/version-build b/web/dist/version-build new file mode 100644 index 0000000000000000000000000000000000000000..9d4faeae394ac91b9bc183d81e50939fc900313d --- /dev/null +++ b/web/dist/version-build @@ -0,0 +1 @@ +3.1.0.1745228189297 \ No newline at end of file diff --git a/web/package.json b/web/package.json index 61d8bc49da6b53bce7b88b574d4b192e8c89414f..4c52c2b3af03c2267a1071e816fb51a4299fa703 100644 --- a/web/package.json +++ b/web/package.json @@ -5,14 +5,14 @@ "license": "MIT", "scripts": { "dev": "vite --force", - "build:dev":"vite build --mode development", + "build:dev": "vite build --mode development", "build": "vite build", "build:local": "vite build --mode local_prod", "lint-fix": "eslint --fix --ext .js --ext .jsx --ext .vue src/" }, "dependencies": { "@element-plus/icons-vue": "^2.3.1", - "@fast-crud/fast-crud": "^1.21.2", + "@fast-crud/fast-crud": "^1.14.1", "@fast-crud/fast-extends": "^1.21.2", "@fast-crud/ui-element": "^1.21.2", "@fast-crud/ui-interface": "^1.21.2", @@ -54,11 +54,13 @@ "vue": "^3.4.38", "vue-clipboard3": "^2.0.0", "vue-cropper": "^1.0.8", + "vue-draggable-plus": "^0.6.0", "vue-grid-layout": "^3.0.0-beta1", "vue-i18n": "^9.14.0", "vue-router": "^4.4.3", "vxe-table": "^4.6.18", - "xe-utils": "^3.5.30" + "xe-utils": "^3.5.30", + "yarn": "^1.22.22" }, "devDependencies": { "@types/node": "^18.19.42", @@ -70,10 +72,11 @@ "@vue/compiler-sfc": "^3.4.38", "eslint": "^9.9.0", "eslint-plugin-vue": "^9.27.0", + "less": "^4.3.0", "prettier": "^2.8.1", "sass": "^1.56.2", "typescript": "^4.9.4", - "vite": "^5.4.1", + "vite": "^6.2.1", "vite-plugin-vue-setup-extend": "^0.4.0", "vue-eslint-parser": "^9.4.3" }, diff --git a/web/src/assets/logo-mini.svg b/web/src/assets/logo-mini-bak.svg similarity index 100% rename from web/src/assets/logo-mini.svg rename to web/src/assets/logo-mini-bak.svg diff --git a/web/src/assets/logo-mini.png b/web/src/assets/logo-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..b64d6990b0c48877fac54c2f94ff87c2a7469a62 Binary files /dev/null and b/web/src/assets/logo-mini.png differ diff --git a/web/src/layout/footer/index.vue b/web/src/layout/footer/index.vue index 67e6e5c07b00a4a9be9f1c42449528f7a3892a22..e94752d26a0f8410e0a872832b6509f1158217b0 100644 --- a/web/src/layout/footer/index.vue +++ b/web/src/layout/footer/index.vue @@ -1,7 +1,7 @@ diff --git a/web/src/layout/logo/index.vue b/web/src/layout/logo/index.vue index 1a656bbf4eb1e9cd3837f48e058462699e4b478a..1f1c5046961bf211b48fe405c95f133fee51da64 100644 --- a/web/src/layout/logo/index.vue +++ b/web/src/layout/logo/index.vue @@ -12,7 +12,7 @@ import { computed } from 'vue'; import { storeToRefs } from 'pinia'; import { useThemeConfig } from '/@/stores/themeConfig'; -import logoMini from '/@/assets/logo-mini.svg'; +import logoMini from '/@/assets/logo-mini.png'; import { SystemConfigStore } from "/@/stores/systemConfig"; import _ from "lodash-es"; // 定义变量内容 diff --git a/web/src/layout/navBars/breadcrumb/user.vue b/web/src/layout/navBars/breadcrumb/user.vue index 351bf259095fb9d00ac43ccd659dc0c73248d878..033bac852d6daddd2eb9698df9ad3ee7203dc18d 100644 --- a/web/src/layout/navBars/breadcrumb/user.vue +++ b/web/src/layout/navBars/breadcrumb/user.vue @@ -12,7 +12,8 @@ - + +
diff --git a/web/src/views/crud_patron/ContractModelViewSet/api.ts b/web/src/views/crud_patron/ContractModelViewSet/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..7d05901cd823f0c6ad746167b92111a35b8a6d5e --- /dev/null +++ b/web/src/views/crud_patron/ContractModelViewSet/api.ts @@ -0,0 +1,50 @@ +import { request,downloadFile } from '/@/utils/service'; +import { PageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/ContractModelViewSet/'; + +export function GetList(query: PageQuery) { + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} + +export function exportData(params:any){ + return downloadFile({ + url: apiPrefix + 'export_data/', + params: params, + method: 'get' + }) +} \ No newline at end of file diff --git a/web/src/views/crud_patron/ContractModelViewSet/crud.tsx b/web/src/views/crud_patron/ContractModelViewSet/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..579a6431b7e45e7af4269eba22d732aaa1c97163 --- /dev/null +++ b/web/src/views/crud_patron/ContractModelViewSet/crud.tsx @@ -0,0 +1,188 @@ +import { CrudOptions, AddReq, DelReq, EditReq, dict, CrudExpose, UserPageQuery, CreateCrudOptionsRet} from '@fast-crud/fast-crud'; +import _ from 'lodash-es'; +import * as api from './api'; +import { getBaseURL } from '/@/utils/baseUrl'; +import { createUploaderRules } from "@fast-crud/fast-extends"; +import { request } from '/@/utils/service'; +import {auth} from "/@/utils/authFunction"; +import { dictionary } from '/@/utils/dictionary'; + +//此处为crudOptions配置 +export default function ({ crudExpose}: { crudExpose: CrudExpose}): CreateCrudOptionsRet { + const pageRequest = async (query: any) => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + if (row.id) { + form.id = row.id; + } + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + const exportRequest = async (query: UserPageQuery) => { + return await api.exportData(query) + }; + + return { // 合同 + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + export:{ + // 注释编号:django-vue3-admin-crud210716:注意这个auth里面的值,最好是使用index.vue文件里面的name值并加上请求动作的单词 + show: auth('ContractModelViewSet:Export'), + text:"导出",//按钮文字 + title:"导出",//鼠标停留显示的信息 + click(){ + return exportRequest(crudExpose.getSearchFormData()) + // return exportRequest(crudExpose!.getSearchFormData()) // 注意这个crudExpose!.getSearchFormData(),一些低版本的环境是需要添加!的 + } + }, + add: { + show: auth('ContractModelViewSet:Create'), + }, + } + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 130, + buttons: { + view: { + type: 'text', + order: 1, + show: auth('ContractModelViewSet:Retrieve') + }, + edit: { + type: 'text', + order: 2, + show: auth('ContractModelViewSet:Update') + }, + copy: { + type: 'text', + order: 3, + show: auth('ContractModelViewSet:Copy') + }, + remove: { + type: 'text', + order: 4, + show: auth('ContractModelViewSet:Delete') + }, + }, + }, + columns: { + contract_ids: { + title: '合同编号', + type: 'text', + search: { + show: true + }, + column: { + sortable: 'custom', + }, + form: { + show: true, + component: { + placeholder: '合同编号自动生成,无需输入.', + }, + }, + addForm: { + component: { + disabled: true + } + }, + editForm: { + component: { + disabled: true + } + } + }, + contract_type: { + title: '合同类型', + search: { + show: true, + }, + type: 'dict-select', + dict: dict({ + data: dictionary('contract_type'), + }), + form: { + rules: [{ required: true, message: '合同类型必选', trigger: 'change' }], + component: { + filterable: true, + placeholder: '请输入合同类型', + }, + }, + component: { props: { color: 'auto' } }, // 自动染色 + }, + contract_remark: { + title: '合同备注', + type: 'textarea', + search: { show: false }, + column: { + show: false, + sortable: 'custom', + }, + form: { + component: { + placeholder: '请输入合同备注', + }, + }, + }, + contract_user: { + title: '合同客户', + search: { + show: true, + }, + type: 'dict-select', + dict: dict({ + url: '/api/CrudPatronModelViewSet/', + label: 'username', + value: 'id' + }), + form: { + component: { + filterable: true, + placeholder: '请选择合同客户', + }, + }, + component: { props: { color: 'auto' } }, // 自动染色 + }, + contract_file: { + title: "上传合同", + type: "file-uploader", + form: { + component: { + limit: 1, + uploader: { + type: "form", + }, + accept: ".pdf,.zip,.7z,.rar", + }, + rules: createUploaderRules([{ required: false, message: "此项必传", trigger: "change" }]), + helper: "最大可上传1个文件(建议使用密码加密后上传)" + }, + column: { + show: false, + component: { + async buildUrl(value) { + return getBaseURL(value); + }, + } + } + }, + }, + }, + }; +} \ No newline at end of file diff --git a/web/src/views/crud_patron/ContractModelViewSet/index.vue b/web/src/views/crud_patron/ContractModelViewSet/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..1f7f4598141ccb99a8c28b99849225bed18db60d --- /dev/null +++ b/web/src/views/crud_patron/ContractModelViewSet/index.vue @@ -0,0 +1,56 @@ + + + \ No newline at end of file diff --git a/web/src/views/crud_patron/CrudPatronAddressModelViewSet/api.ts b/web/src/views/crud_patron/CrudPatronAddressModelViewSet/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..8e939d4b7e550b4049a793008f233af2fc1d63d6 --- /dev/null +++ b/web/src/views/crud_patron/CrudPatronAddressModelViewSet/api.ts @@ -0,0 +1,50 @@ +import { request,downloadFile } from '/@/utils/service'; +import { PageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/CrudPatronAddressModelViewSet/'; + +export function GetList(query: PageQuery) { + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} + +export function exportData(params:any){ + return downloadFile({ + url: apiPrefix + 'export_data/', + params: params, + method: 'get' + }) +} \ No newline at end of file diff --git a/web/src/views/crud_patron/CrudPatronAddressModelViewSet/crud.tsx b/web/src/views/crud_patron/CrudPatronAddressModelViewSet/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..659466e14ced219237e995c4eb37295c8b282c51 --- /dev/null +++ b/web/src/views/crud_patron/CrudPatronAddressModelViewSet/crud.tsx @@ -0,0 +1,169 @@ +import { CrudOptions, AddReq, DelReq, EditReq, dict, CrudExpose, UserPageQuery, CreateCrudOptionsRet } from '@fast-crud/fast-crud'; +import _ from 'lodash-es'; +import * as api from './api'; +import { request } from '/@/utils/service'; +import { auth } from "/@/utils/authFunction"; + +//此处为crudOptions配置 +export default function ({ crudExpose }: { crudExpose: CrudExpose }): CreateCrudOptionsRet { + const pageRequest = async (query: any) => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + if (row.id) { + form.id = row.id; + } + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + const exportRequest = async (query: UserPageQuery) => { + return await api.exportData(query) + }; + + return { // 客户地址管理 + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + export: { + // 注释编号:django-vue3-admin-crud210716:注意这个auth里面的值,最好是使用index.vue文件里面的name值并加上请求动作的单词 + show: auth('CrudPatronAddressModelViewSet:Export'), + text: "导出",//按钮文字 + title: "导出",//鼠标停留显示的信息 + click() { + return exportRequest(crudExpose.getSearchFormData()) + // return exportRequest(crudExpose!.getSearchFormData()) // 注意这个crudExpose!.getSearchFormData(),一些低版本的环境是需要添加!的 + } + }, + add: { + show: auth('CrudPatronAddressModelViewSet:Create'), + }, + } + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 200, + buttons: { + view: { + type: 'text', + order: 1, + show: auth('CrudPatronAddressModelViewSet:Retrieve') + }, + edit: { + type: 'text', + order: 2, + show: auth('CrudPatronAddressModelViewSet:Update') + }, + copy: { + type: 'text', + order: 3, + show: auth('CrudPatronAddressModelViewSet:Copy') + }, + remove: { + type: 'text', + order: 4, + show: auth('CrudPatronAddressModelViewSet:Delete') + }, + }, + }, + columns: { + name: { + title: '收件人名称', + type: 'input', + search: { show: true }, + column: { + minWidth: 60, + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '收件人名称必填' }], + component: { + placeholder: '请输入收件人名称', + }, + }, + }, + mobile: { + title: '手机号码', + type: 'input', + search: { show: true }, + column: { + minWidth: 50, //最小列宽 + }, + form: { + component: { + placeholder: "请输入", + }, + rules: [ + { required: true, message: '手机号码必填' }, + { + max: 11, + message: '请输入正确的手机号码', + trigger: 'blur', + }, + { + pattern: /^1[3-9]\d{9}$/, + message: '请输入正确的手机号码', + }, + ], + }, + }, + // territory: { + // title: "地域", + // search: { show: true }, + // type: "dict-cascader", + // dict: dict({ + // isTree: true, + // url: "/api/system/area/?page=1&limit=999", + // value: "id", + // label: "name", + // }) + // }, + address: { + title: '详细地址', + type: 'textarea', + search: { show: true }, + column: { + show: false, + minWidth: 120, + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入详细地址', + }, + }, + }, + note: { + title: '备注', + type: 'textarea', + search: { show: true }, + column: { + show: false, + minWidth: 120, + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入备注', + }, + }, + }, + + }, + }, + }; +} \ No newline at end of file diff --git a/web/src/views/crud_patron/CrudPatronAddressModelViewSet/index.vue b/web/src/views/crud_patron/CrudPatronAddressModelViewSet/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..d76a3c8c9339db1879723cd450c4dea2fe681a9b --- /dev/null +++ b/web/src/views/crud_patron/CrudPatronAddressModelViewSet/index.vue @@ -0,0 +1,56 @@ + + + \ No newline at end of file diff --git a/web/src/views/crud_patron/CrudPatronModelViewSet/api.ts b/web/src/views/crud_patron/CrudPatronModelViewSet/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..698d0d8da53638907a1ba92dbe5f8f1a89b11bf2 --- /dev/null +++ b/web/src/views/crud_patron/CrudPatronModelViewSet/api.ts @@ -0,0 +1,50 @@ +import { request, downloadFile } from '/@/utils/service'; +import { PageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/CrudPatronModelViewSet/'; + +export function GetList(query: PageQuery) { + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} + +export function exportData(params: any) { + return downloadFile({ + url: apiPrefix + 'export_data/', + params: params, + method: 'get' + }) +} \ No newline at end of file diff --git a/web/src/views/crud_patron/CrudPatronModelViewSet/crud.tsx b/web/src/views/crud_patron/CrudPatronModelViewSet/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..ab3e7fa20e48467c32e4e7d220184466f447fa03 --- /dev/null +++ b/web/src/views/crud_patron/CrudPatronModelViewSet/crud.tsx @@ -0,0 +1,438 @@ +import { CrudOptions, AddReq, DelReq, EditReq, dict, CrudExpose, UserPageQuery, CreateCrudOptionsRet } from '@fast-crud/fast-crud'; +import _, { get } from 'lodash-es'; +import * as api from './api'; +import { getBaseURL } from '/@/utils/baseUrl'; +import { createUploaderRules } from "@fast-crud/fast-extends"; +import EditableFreeSub from "./free/index.vue"; +import { request } from '/@/utils/service'; +import { auth } from "/@/utils/authFunction"; +import { dictionary } from '/@/utils/dictionary'; + +//此处为crudOptions配置 +export default function ({ crudExpose }: { crudExpose: CrudExpose }): CreateCrudOptionsRet { + const pageRequest = async (query: any) => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + if (row.id) { + form.id = row.id; + } + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + const exportRequest = async (query: UserPageQuery) => { + return await api.exportData(query) + }; + + console.log('这个位置是全局数据:', crudExpose) + + return { // 客户管理 + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + export: { + show: auth('CrudPatronModelViewSet:Export'), + text: "导出",//按钮文字 + title: "导出",//鼠标停留显示的信息 + click() { + return exportRequest(crudExpose.getSearchFormData()) + } + }, + add: { + show: auth('CrudPatronModelViewSet:Create'), + }, + } + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 200, + align: 'center', + buttons: { + view: { + type: 'text', + order: 1, + show: auth('CrudPatronModelViewSet:Retrieve'), + }, + edit: { + type: 'text', + order: 2, + show: auth('CrudPatronModelViewSet:Update'), + }, + copy: { + type: 'text', + order: 3, + show: auth('CrudPatronModelViewSet:Copy') + }, + remove: { + type: 'text', + order: 4, + show: auth('CrudPatronModelViewSet:Delete') + }, + }, + }, + columns: { + username: { + title: '客户名称', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入客户名称', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入客户名称', + }, + }, + }, + code: { + title: '客户代号', + type: 'text', + search: { + show: true, + component: { + placeholder: '客户代号', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '客户代号', + }, + }, + }, + open_order_name: { + title: '开单名称', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入开单名称', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '开单名称必填' }], + component: { + placeholder: '请输入开单名称', + }, + }, + }, + phone: { + title: '联系电话', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入联系电话', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入联系电话', + }, + }, + }, + email: { + title: '邮箱', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入邮箱地址', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [ + { + type: 'email', + message: '请输入正确的邮箱地址', + trigger: ['blur', 'change'], + }, + ], + component: { + placeholder: '请输入邮箱', + }, + }, + }, + age: { + title: '年龄', + type: 'number', + column: { + sortable: 'custom', + }, + form: { + value: 0, + component: { + min: 0, + placeholder: '请输入客户年龄', + }, + }, + }, + sex: { + title: '性别', + type: 'dict-radio', + search: { + show: true, + component: { + placeholder: '请选择性别', + }, + }, + column: { + sortable: 'custom', + }, + dict: dict({ + data: dictionary('gender'), + }), + form: { + value: 1, + component: { + optionName: 'el-radio', + }, + }, + component: { props: { color: 'auto' } }, // 自动染色 + }, + my_remark: { + title: '我方备注', + type: 'textarea', + search: { show: false }, + column: { + show: false, + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入我方备注', + }, + }, + }, + tags: { + title: '客户标签', + search: { + show: false, + component: { + props: { + name: 'fs-dict-select', + clearable: true, + }, + }, + }, + type: 'dict-select', + dict: dict({ + value: 'id', + label: 'label', + data: dictionary('patron_tag'), + }), + form: { + rules: [ + // 表单校验规则 + { + required: false, + }, + ], + component: { + multiple: true, + filterable: true, + placeholder: '请选择标签', + }, + }, + component: { props: { color: 'auto' } }, // 自动染色 + }, + express: { + title: '默认物流', + search: { + show: true, + }, + type: 'dict-select', + dict: dict({ + data: dictionary('express'), + }), + form: { + component: { + filterable: true, + placeholder: '请输入默认物流', + }, + }, + component: { props: { color: 'auto' } }, // 自动染色 + }, + salesman: { + title: '业务员', + search: { + show: false, + }, + type: 'dict-select', + dict: dict({ + url: '/api/system/user/', + value: 'id', + label: 'name', + }), + form: { + component: { + multiple: true, + filterable: true, + placeholder: '请选择业务员', + }, + }, + component: { props: { color: 'auto' } }, // 自动染色 + }, + hierarchy: { + title: '客户等级', + search: { + show: true, + component: { + placeholder: '请选择客户等级', + }, + }, + type: ['dict-radio', 'colspan'], + dict: dict({ + data: dictionary('patron'), + }), + form: { + value: 0, + component: { + optionName: 'el-radio-button', + }, + }, + component: { props: { color: 'auto' } }, // 自动染色 + }, + images: { + title: "照片墙", + type: "image-uploader", + form: { + component: { + limit: 10, + uploader: { + type: "form", + }, + }, + //如果配置在form下,则表示将行数据的值转化为表单组件所需要的值 + valueBuilder(context) { // 将行数据转化为表单组件所需要的值 + if (context.mode !== 'add' && context.form.images !== null) { + context.form.images.forEach((item: any, index: any) => { + context.form.images[index] = getBaseURL(item) // 拼接图片地址 + }) + } + }, + rules: createUploaderRules([{ required: false, message: "此项必传", trigger: "change" }]), + helper: "最多可上传10个图片" + }, + column: { + component: { + // 列显示 + async buildUrl(value: any) { + return getBaseURL(value); + }, + // 列放大预览 + async buildPreviewUrl({ url, index }: any) { + return url + "?preview=600x600"; + } + } + } + }, + files: { + title: "上传附件", + type: "file-uploader", + form: { + component: { + limit: 5, + uploader: { + type: "form", + }, + accept: ".pdf,.csv,.doc,.docx,.xls,.xlsx,.mp4,.zip,.7z,.rar", + }, + //如果配置在form下,则表示将行数据的值转化为表单组件所需要的值 + valueBuilder(context) { // 将行数据转化为表单组件所需要的值 + if (context.mode !== 'add' && context.form.files !== null) { + context.form.files.forEach((item: any, index: any) => { + context.form.files[index] = getBaseURL(item) // 拼接图片地址 + }) + } + }, + rules: createUploaderRules([{ required: false, message: "此项必传", trigger: "change" }]), + helper: "最大可上传5个文件" + }, + column: { + show: false, + component: { + async buildUrl(value: any) { + return getBaseURL(value); + }, + } + } + }, + addressee: { + title: "收件人信息", + type: "text", + form: { + component: { + name: EditableFreeSub, + vModel: "modelValue", + readonly: true, + }, + col: { + span: 24 + } + }, + column: { + show: false, + formatter: ({ row }) => { + return row.addressee?.length + "条数据"; + } + } + }, + + }, + form: { + // 具体可配置请参考 grid 布局: http://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html + display: "flex", + wrapper: { + width: "80%", + }, + async beforeSubmit() { + const validate = await crudExpose.getFormComponentRef("addressee")?.validate(); + if (validate !== true) { + return false; + } + }, + }, + toolbar: { + buttons: { + export: { + show: true + } + } + } + }, + }; +} \ No newline at end of file diff --git a/web/src/views/crud_patron/CrudPatronModelViewSet/free/crud.tsx b/web/src/views/crud_patron/CrudPatronModelViewSet/free/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..3a274628d3a51aa339da464656f5aeb69375830d --- /dev/null +++ b/web/src/views/crud_patron/CrudPatronModelViewSet/free/crud.tsx @@ -0,0 +1,126 @@ +import { CreateCrudOptionsProps, CreateCrudOptionsRet, dict } from "@fast-crud/fast-crud"; +import { inject } from "vue"; + +export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOptionsRet { + const { crudBinding } = crudExpose; + + const getScope = inject('get:scope') + const { index, row, form, mode} = getScope() + // console.log('当前上下文',index, row, form, mode) + + return { + crudOptions: { + actionbar: { + buttons: { + add: { + show: false + }, + addRow: { + show: mode == 'view'?false:true + } + } + }, + search: { + show: false + }, + toolbar: { + show: false, + buttons: { + refresh: { + show: false + }, + search: { + show: false + } + } + }, + table: { + editable: { + enabled: false, + mode: "free", + showAction: false, + activeDefault: true + } + }, + pagination: { show: false, pageSize: 9999999 }, + columns: { + name: { + title: '收件人名称', + type: 'text', + column: { + minWidth: 50, //最小列宽 + }, + form: { + component:{ + placeholder:"请输入", + disabled:mode == 'view'?true:false, + }, + rules: [ + // 表单校验规则 + { + required: true, + message: '收件人名称必填项', + }, + ], + }, + }, + mobile: { + title: '手机号码', + type: 'text', + column: { + minWidth: 50, //最小列宽 + }, + form: { + component:{ + placeholder:"请输入", + disabled:mode == 'view'?true:false, + }, + rules: [ + { + max: 11, + message: '请输入正确的手机号码', + trigger: 'blur', + }, + { + pattern: /^1[3-9]\d{9}$/, + message: '请输入正确的手机号码', + }, + ], + }, + }, + address: { + title: '详细地址', + type: 'textarea', + form: { + component:{ + placeholder:"请输入", + disabled:mode == 'view'?true:false, + }, + rules: [ + { + required: true, + message: '详细地址必填项', + }, + ], + }, + }, + note: { + title: '备注', + type: 'textarea', + form: { + component:{ + placeholder:"请输入", + disabled:mode == 'view'?true:false, + }, + }, + }, + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 90, + show: mode == 'view'?false:true + }, + } + }; +} diff --git a/web/src/views/crud_patron/CrudPatronModelViewSet/free/index.vue b/web/src/views/crud_patron/CrudPatronModelViewSet/free/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..759423ec01210bdfbe070e97959f88b7c8b43b1d --- /dev/null +++ b/web/src/views/crud_patron/CrudPatronModelViewSet/free/index.vue @@ -0,0 +1,70 @@ + + + + \ No newline at end of file diff --git a/web/src/views/crud_patron/CrudPatronModelViewSet/index.vue b/web/src/views/crud_patron/CrudPatronModelViewSet/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..bf92c144cbc07b1616d5e43f46e3b37868bdd174 --- /dev/null +++ b/web/src/views/crud_patron/CrudPatronModelViewSet/index.vue @@ -0,0 +1,55 @@ + + + \ No newline at end of file diff --git a/web/src/views/crud_patron/SampleOrderModelViewSet/api.ts b/web/src/views/crud_patron/SampleOrderModelViewSet/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..ce478e4d6f20c9ef446bce5190bbb2cc1cbe1fe4 --- /dev/null +++ b/web/src/views/crud_patron/SampleOrderModelViewSet/api.ts @@ -0,0 +1,50 @@ +import { request, downloadFile } from '/@/utils/service'; +import { PageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/SampleOrderModelViewSet/'; + +export function GetList(query: PageQuery) { + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} + +export function exportData(params: any) { + return downloadFile({ + url: apiPrefix + 'export_data/', + params: params, + method: 'get' + }) +} \ No newline at end of file diff --git a/web/src/views/crud_patron/SampleOrderModelViewSet/crud.tsx b/web/src/views/crud_patron/SampleOrderModelViewSet/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..38fae71f08c7988472c7b90c2b78d6679259a503 --- /dev/null +++ b/web/src/views/crud_patron/SampleOrderModelViewSet/crud.tsx @@ -0,0 +1,350 @@ +import { CrudOptions, AddReq, DelReq, EditReq, dict, CrudExpose, UserPageQuery, CreateCrudOptionsRet } from '@fast-crud/fast-crud'; +import _, { get } from 'lodash-es'; +import * as api from './api'; +import { getBaseURL } from '/@/utils/baseUrl'; +import { createUploaderRules } from "@fast-crud/fast-extends"; +import EditableFreeSub from "./free/index.vue"; +import { request } from '/@/utils/service'; +import { auth } from "/@/utils/authFunction"; +import { dictionary } from '/@/utils/dictionary'; + +//此处为crudOptions配置 +export default function ({ crudExpose }: { crudExpose: CrudExpose }): CreateCrudOptionsRet { + const pageRequest = async (query: any) => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + if (row.id) { + form.id = row.id; + } + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + const exportRequest = async (query: UserPageQuery) => { + return await api.exportData(query) + }; + + console.log('这个位置是全局数据:', crudExpose) + + return { // 客户管理 + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + export: { + show: auth('SampleOrderModelViewSet:Export'), + text: "导出",//按钮文字 + title: "导出",//鼠标停留显示的信息 + click() { + return exportRequest(crudExpose.getSearchFormData()) + } + }, + add: { + show: auth('SampleOrderModelViewSet:Create'), + }, + } + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 200, + align: 'center', + buttons: { + view: { + type: 'text', + order: 1, + show: auth('SampleOrderModelViewSet:Retrieve'), + }, + edit: { + type: 'text', + order: 2, + show: auth('SampleOrderModelViewSet:Update'), + }, + copy: { + type: 'text', + order: 3, + show: auth('SampleOrderModelViewSet:Copy') + }, + remove: { + type: 'text', + order: 4, + show: auth('SampleOrderModelViewSet:Delete') + }, + }, + }, + columns: { + + order_ids: { + title: '样品单号', + type: 'text', + search: { + show: true + }, + column: { + sortable: 'custom', + }, + form: { + show: true, + component: { + placeholder: '样品单号自动生成,无需输入.', + }, + }, + addForm: { + component: { + disabled: true + } + }, + editForm: { + component: { + disabled: true + } + } + }, + order_type: { + title: '类型', + search: { + show: true, + }, + type: 'dict-select', + dict: dict({ + data: dictionary('order_type'), + }), + form: { + rules: [{ required: true, message: '类型必选', trigger: 'change' }], + component: { + filterable: true, + placeholder: '请输入类型', + }, + }, + component: { props: { color: 'auto' } }, // 自动染色 + }, + order_status: { + title: '状态', + search: { + show: true, + }, + type: 'dict-select', + dict: dict({ + data: dictionary('order_status'), + }), + form: { + component: { + filterable: true, + placeholder: '请输入状态', + }, + }, + component: { props: { color: 'auto' } }, // 自动染色 + }, + order_user: { + title: '客户代号', + search: { + show: true, + }, + type: 'dict-select', + dict: dict({ + url: '/api/CrudPatronModelViewSet/', + label: 'code', + value: 'id' + }), + form: { + component: { + filterable: true, + placeholder: '请选择订单客户', + }, + helper: { + text: "未找到客户时,需先在销售管理->客户管理中添加客户", + } + }, + component: { props: { color: 'auto' } }, // 自动染色 + }, + order_payment_method: { + title: '付款方式', + type: 'text', + search: { + show: false + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入付款方式', + }, + }, + }, + order_payment_remark: { + title: '付款备注', + type: 'text', + search: { + show: false + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入付款备注', + }, + }, + }, + order_transport: { + title: '运输方式', + type: 'text', + search: { + show: false + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入运输方式', + }, + }, + }, + order_file: { + title: "上传附件", + type: "file-uploader", + form: { + component: { + limit: 5, + uploader: { + type: "form", + }, + accept: ".pdf,.csv,.doc,.docx,.xls,.xlsx,.mp4,.zip,.7z,.rar", + }, + //如果配置在form下,则表示将行数据的值转化为表单组件所需要的值 + valueBuilder(context) { // 将行数据转化为表单组件所需要的值 + if (context.mode !== 'add' && context.form.order_file !== null) { + context.form.order_file.forEach((item: any, index: any) => { + context.form.order_file[index] = getBaseURL(item) // 拼接图片地址 + }) + } + }, + rules: createUploaderRules([{ required: false, message: "此项必传", trigger: "change" }]), + helper: "最大可上传5个文件" + }, + column: { + show: false, + component: { + async buildUrl({value}: { value: any }) { + return getBaseURL(value); + }, + } + } + }, + order_product: { + title: '样品信息', + type: 'textarea', + search: { show: false }, + column: { + show: false, + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: "样品信息必填", trigger: "blur" }], + component: { + placeholder: '请输入样品信息', + }, + }, + }, + order_remark: { + title: '备注', + type: 'textarea', + search: { show: false }, + column: { + show: false, + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '备注', + }, + }, + }, + order_sample: { + title: "样品成本", + type: "text", + form: { + component: { + name: EditableFreeSub, + vModel: "modelValue", + readonly: true, + }, + col: { + span: 24 + } + }, + column: { + show: false, + formatter: ({ row }) => { + return row.order_sample?.length + "条数据"; + } + } + }, + + }, + form: { + // 具体可配置请参考 grid 布局: http://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html + display: "flex", + wrapper: { + width: "80%", + }, + async beforeSubmit() { + const validate = await crudExpose.getFormComponentRef("order_sample")?.validate(); + if (validate !== true) { + return false; + } + }, + row: { gutter: 20 }, + group: { + groupType: "tabs", //collapse, tabs + accordion: false, + groups: { + base: { + slots: { + label: (scope) => { + return ( + + + 样品单信息基础 + + ); + } + }, + icon: "el-icon-goods", + columns: ["order_ids", "order_type", "order_status", "order_transport", "order_payment_method", "order_payment_remark", "order_product", "order_remark", "order_user", "order_file"] + }, + delivery: { + label: "样品成本", + icon: "el-icon-price-tag", + columns: ["order_sample"] + } + } + } + }, + toolbar: { + buttons: { + export: { + show: true + } + } + } + }, + }; +} \ No newline at end of file diff --git a/web/src/views/crud_patron/SampleOrderModelViewSet/free/crud.tsx b/web/src/views/crud_patron/SampleOrderModelViewSet/free/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..00d7705eeb548d8a5c8731b412cb6e8b0d1176f9 --- /dev/null +++ b/web/src/views/crud_patron/SampleOrderModelViewSet/free/crud.tsx @@ -0,0 +1,145 @@ +import { CreateCrudOptionsProps, CreateCrudOptionsRet, dict } from "@fast-crud/fast-crud"; +import { inject } from "vue"; + +export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOptionsRet { + const { crudBinding } = crudExpose; + + // const getScope = inject('get:scope') + // const { index, row, form, mode } = getScope() + const getScope = inject('get:scope', () => ({ + index: null, + row: null, + form: null, + mode: 'edit' + })); + const { index, row, form, mode } = getScope() + // console.log('当前上下文',index, row, form, mode) + + return { + crudOptions: { + actionbar: { + buttons: { + add: { + show: false + }, + addRow: { + show: mode != 'view' + } + } + }, + search: { + show: false + }, + toolbar: { + show: false, + buttons: { + refresh: { + show: false + }, + search: { + show: false + } + } + }, + table: { + editable: { + enabled: false, + mode: "free", + showAction: false, + activeDefault: true + } + }, + pagination: { show: false, pageSize: 9999999 }, + columns: { + sample_name: { + title: '名称', + type: 'text', + column: { + minWidth: 50, //最小列宽 + }, + form: { + component:{ + placeholder:"请输入", + disabled:mode == 'view', + }, + rules: [ + // 表单校验规则 + { + required: true, + message: '名称必填项', + }, + ], + }, + }, + sample_specification: { + title: '规格', + type: 'text', + form: { + component:{ + placeholder:"请输入", + disabled:mode == 'view', + }, + rules: [ + // 表单校验规则 + { + required: true, + message: '规格必填项', + }, + ], + }, + }, + sample_number: { + title: '数量', + type: 'number', + column: { + minWidth: 70, //最小列宽 + }, + form: { + component:{ + disabled:mode == 'view', + }, + rules: [ + { + required: true, + message: '数量必填项', + }, + ], + }, + }, + sample_price: { + title: '单价', + type: 'number', + form: { + component:{ + min: 0, + step: 0.1, + disabled:mode == 'view', + }, + rules: [ + { + required: true, + message: '单价必填项', + }, + ], + }, + }, + note: { + title: '备注', + type: 'textarea', + form: { + component:{ + placeholder:"请输入", + disabled:mode == 'view', + }, + }, + }, + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 90, + show: mode != 'view' + }, + } + }; +} diff --git a/web/src/views/crud_patron/SampleOrderModelViewSet/free/index.vue b/web/src/views/crud_patron/SampleOrderModelViewSet/free/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..759423ec01210bdfbe070e97959f88b7c8b43b1d --- /dev/null +++ b/web/src/views/crud_patron/SampleOrderModelViewSet/free/index.vue @@ -0,0 +1,70 @@ + + + + \ No newline at end of file diff --git a/web/src/views/crud_patron/SampleOrderModelViewSet/index.vue b/web/src/views/crud_patron/SampleOrderModelViewSet/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..fbe0e68153e950cda344d59d85d9fdcbaf80c8c6 --- /dev/null +++ b/web/src/views/crud_patron/SampleOrderModelViewSet/index.vue @@ -0,0 +1,55 @@ + + + \ No newline at end of file diff --git a/web/src/views/crud_patron/SellOrderModelViewSet/api.ts b/web/src/views/crud_patron/SellOrderModelViewSet/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..6b5e8237044098615a766ecaab8046f5ea94cf12 --- /dev/null +++ b/web/src/views/crud_patron/SellOrderModelViewSet/api.ts @@ -0,0 +1,50 @@ +import { request,downloadFile } from '/@/utils/service'; +import { PageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/SellOrderModelViewSet/'; + +export function GetList(query: PageQuery) { + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} + +export function exportData(params:any){ + return downloadFile({ + url: apiPrefix + 'export_data/', + params: params, + method: 'get' + }) +} \ No newline at end of file diff --git a/web/src/views/crud_patron/SellOrderModelViewSet/crud.tsx b/web/src/views/crud_patron/SellOrderModelViewSet/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..fd2ca2de940760692a5abddff3ff2793901310aa --- /dev/null +++ b/web/src/views/crud_patron/SellOrderModelViewSet/crud.tsx @@ -0,0 +1,394 @@ +import { CrudOptions, AddReq, DelReq, EditReq, dict, CrudExpose, UserPageQuery, CreateCrudOptionsRet } from '@fast-crud/fast-crud'; +import _ from 'lodash-es'; +import * as api from './api'; +import { getBaseURL } from '/@/utils/baseUrl'; +import { createUploaderRules } from "@fast-crud/fast-extends"; +import { request } from '/@/utils/service'; +import { auth } from "/@/utils/authFunction"; +import { dictionary } from '/@/utils/dictionary'; +import { url } from 'inspector'; + +//此处为crudOptions配置 +export default function ({ crudExpose }: { crudExpose: CrudExpose }): CreateCrudOptionsRet { + const pageRequest = async (query: any) => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + if (row.id) { + form.id = row.id; + } + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + const exportRequest = async (query: UserPageQuery) => { + return await api.exportData(query) + }; + + return { // 销售订单 + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + export: { + // 注释编号:django-vue3-admin-crud210716:注意这个auth里面的值,最好是使用index.vue文件里面的name值并加上请求动作的单词 + show: auth('SellOrderModelViewSet:Export'), + text: "导出",//按钮文字 + title: "导出",//鼠标停留显示的信息 + click() { + return exportRequest(crudExpose.getSearchFormData()) + // return exportRequest(crudExpose!.getSearchFormData()) // 注意这个crudExpose!.getSearchFormData(),一些低版本的环境是需要添加!的 + } + }, + add: { + show: auth('SellOrderModelViewSet:Create'), + }, + } + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 130, + buttons: { + view: { + type: 'text', + order: 1, + show: auth('SellOrderModelViewSet:Retrieve') + }, + edit: { + type: 'text', + order: 2, + show: auth('SellOrderModelViewSet:Update') + }, + copy: { + type: 'text', + order: 3, + show: auth('SellOrderModelViewSet:Copy') + }, + remove: { + type: 'text', + order: 4, + show: auth('SellOrderModelViewSet:Delete') + }, + }, + }, + columns: { + order_ids: { + title: '订单编号', + type: 'text', + search: { + show: true + }, + column: { + sortable: 'custom', + }, + form: { + show: true, + component: { + placeholder: '订单编号自动生成,无需输入.', + }, + }, + addForm: { + component: { + disabled: true + } + }, + editForm: { + component: { + disabled: true + } + } + }, + order_type: { + title: '订单类型', + search: { + show: true, + }, + type: 'dict-select', + dict: dict({ + data: dictionary('order_type'), + }), + form: { + rules: [{ required: true, message: '订单类型必选', trigger: 'change' }], + component: { + filterable: true, + placeholder: '请输入订单类型', + }, + }, + component: { props: { color: 'auto' } }, // 自动染色 + }, + order_contract: { + title: '关联合同', + search: { + show: true, + }, + type: 'dict-select', + dict: dict({ + url: '/api/ContractModelViewSet/', + label: 'contract_ids', + value: 'id' + }), + form: { + component: { + filterable: true, + placeholder: '请选择合同', + }, + }, + component: { props: { color: 'auto' } }, // 自动染色 + }, + order_status: { + title: '订单状态', + search: { + show: true, + }, + type: 'dict-select', + dict: dict({ + data: dictionary('order_status'), + }), + form: { + component: { + filterable: true, + placeholder: '请输入订单状态', + }, + }, + addForm: { + show: false, + component: { + disabled: true + } + }, + editForm: { + component: { + disabled: true + } + }, + component: { props: { color: 'auto' } }, // 自动染色 + }, + order_user: { + title: '订单客户', + search: { + show: true, + }, + type: 'dict-select', + dict: dict({ + url: '/api/CrudPatronModelViewSet/', + label: 'code', + value: 'id' + }), + form: { + component: { + filterable: true, + placeholder: '请选择订单客户', + }, + helper: { + text: "未找到客户时,需先在销售管理->客户管理中添加客户", + } + }, + component: { props: { color: 'auto' } }, // 自动染色 + }, + order_payment_method: { + title: '付款方式', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入付款方式', + }, + }, + column: { + sortable: 'custom', + }, + form: { + component: { + placeholder: '请输入付款方式', + }, + }, + }, + order_payment_remark: { + title: '付款备注', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入付款备注', + }, + }, + column: { + sortable: 'custom', + }, + form: { + component: { + placeholder: '请输入付款备注', + }, + }, + }, + order_transport: { + title: '运输方式', + type: 'dict-select', + search: { + show: true, + component: { + filterable: true, + placeholder: '请选择运输方式', + }, + }, + column: { + sortable: 'custom', + }, + dict: dict({ + data: dictionary('transport'), + }), + form: { + component: { + placeholder: '请选择运输方式', + }, + }, + }, + order_discount: { + title: "折扣", + type: "number", + column: { + sortable: 'custom', + }, + form: { + value: 0, + component: { + min: 0, + max: 10, + step: 0.1 + } + } + }, + order_delivery_date: { + title: "交货日期", + type: "date", + form: { + component: { + //输入输出值格式化 + valueFormat: "YYYY-MM-DD HH:mm:ss", + on: { + change(context) { + console.log("选择的交货日期: ", context); + } + } + } + } + }, + order_discount_reason: { + title: '折扣理由', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入折扣理由', + }, + }, + column: { + sortable: 'custom', + }, + form: { + component: { + placeholder: '请输入折扣理由', + }, + }, + }, + order_remark: { + title: '订单备注', + type: 'textarea', + search: { show: false }, + column: { + show: false, + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入订单备注', + }, + }, + }, + order_file: { + title: "上传附件", + type: "file-uploader", + form: { + component: { + limit: 1, + uploader: { + type: "form", + }, + accept: ".pdf,.zip,.7z,.rar", + }, + //如果配置在form下,则表示将行数据的值转化为表单组件所需要的值 + valueBuilder(context) { // 将行数据转化为表单组件所需要的值 + if (context.mode !== 'add') { + context.form.order_file.forEach((item: any, index: any) => { + context.form.order_file[index] = getBaseURL(item) // 拼接图片地址 + }) + } + }, + rules: createUploaderRules([{ required: false, message: "此项必传", trigger: "change" }]), + helper: "最大可上传1个文件" + }, + column: { + show: false, + component: { + async buildUrl(value: any) { + return getBaseURL(value); + }, + } + } + }, + }, + form: { + row: { gutter: 20 }, + group: { + groupType: "tabs", //collapse, tabs + accordion: false, + groups: { + base: { + slots: { + label: (scope) => { + return ( + + + 订单基础 + + ); + } + }, + icon: "el-icon-goods", + columns: ["order_ids", "order_type", "order_status", "order_remark", "order_user"] + }, + delivery: { + label: "交付条款", + icon: "el-icon-price-tag", + columns: ["order_payment_method", "order_payment_remark", "order_transport", "order_discount", "order_discount_reason", "order_delivery_date", "order_contract"] + }, + contract: { + label: "附件", + collapsed: true, //默认折叠 + icon: "el-icon-warning-outline", + columns: ["order_file"] + }, + bom: { + label: "BOM", + collapsed: true, //默认折叠 + icon: "el-icon-warning-outline", + columns: ["order_product"] + } + } + } + } + }, + }; +} \ No newline at end of file diff --git a/web/src/views/crud_patron/SellOrderModelViewSet/index.vue b/web/src/views/crud_patron/SellOrderModelViewSet/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..b5eddb9829d6e629643b2b76c3544536a1000b6e --- /dev/null +++ b/web/src/views/crud_patron/SellOrderModelViewSet/index.vue @@ -0,0 +1,56 @@ + + + \ No newline at end of file diff --git a/web/src/views/inventory/FinishedProductModelViewSet/api.ts b/web/src/views/inventory/FinishedProductModelViewSet/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..8a8d57db62ff3e08ee59f190499d2b9c868fc20d --- /dev/null +++ b/web/src/views/inventory/FinishedProductModelViewSet/api.ts @@ -0,0 +1,50 @@ +import { request,downloadFile } from '/@/utils/service'; +import { PageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/FinishedProductModelViewSet/'; + +export function GetList(query: PageQuery) { + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} + +export function exportData(params:any){ + return downloadFile({ + url: apiPrefix + 'export_data/', + params: params, + method: 'get' + }) +} \ No newline at end of file diff --git a/web/src/views/inventory/FinishedProductModelViewSet/crud.tsx b/web/src/views/inventory/FinishedProductModelViewSet/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..9efae51b022d924114bad8ed8b770d8b5d1a560f --- /dev/null +++ b/web/src/views/inventory/FinishedProductModelViewSet/crud.tsx @@ -0,0 +1,293 @@ +import { CrudOptions, AddReq, DelReq, EditReq, dict, CrudExpose, UserPageQuery, CreateCrudOptionsRet } from '@fast-crud/fast-crud'; +import _ from 'lodash-es'; +import * as api from './api'; +import { getBaseURL } from '/@/utils/baseUrl'; +import { createUploaderRules } from "@fast-crud/fast-extends"; +import { request } from '/@/utils/service'; +import { auth } from "/@/utils/authFunction"; +import { dictionary } from '/@/utils/dictionary'; +import { url } from 'inspector'; + +//此处为crudOptions配置 +export default function ({ crudExpose }: { crudExpose: CrudExpose }): CreateCrudOptionsRet { + const pageRequest = async (query: any) => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + if (row.id) { + form.id = row.id; + } + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + const exportRequest = async (query: UserPageQuery) => { + return await api.exportData(query) + }; + + return { // 销售订单 + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + export: { + // 注释编号:django-vue3-admin-crud210716:注意这个auth里面的值,最好是使用index.vue文件里面的name值并加上请求动作的单词 + show: auth('FinishedProductModelViewSet:Export'), + text: "导出",//按钮文字 + title: "导出",//鼠标停留显示的信息 + click() { + return exportRequest(crudExpose.getSearchFormData()) + // return exportRequest(crudExpose!.getSearchFormData()) // 注意这个crudExpose!.getSearchFormData(),一些低版本的环境是需要添加!的 + } + }, + add: { + show: auth('FinishedProductModelViewSet:Create'), + }, + } + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 130, + buttons: { + view: { + type: 'text', + order: 1, + show: auth('FinishedProductModelViewSet:Retrieve') + }, + edit: { + type: 'text', + order: 2, + show: auth('FinishedProductModelViewSet:Update') + }, + copy: { + type: 'text', + order: 3, + show: auth('FinishedProductModelViewSet:Copy') + }, + remove: { + type: 'text', + order: 4, + show: auth('FinishedProductModelViewSet:Delete') + }, + }, + }, + columns: { + code: { + title: '编号', + type: 'text', + search: { + show: true + }, + column: { + sortable: 'custom', + }, + form: { + show: true, + component: { + placeholder: '编号自动生成,无需输入.', + }, + }, + addForm: { + component: { + disabled: true + } + }, + editForm: { + component: { + disabled: true + } + } + }, + specification: { + title: '规格', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入规格', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '规格必填' }], + component: { + placeholder: '请输入规格', + }, + }, + }, + name: { + title: '名称', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入名称', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '规格必填' }], + component: { + placeholder: '请输入名称', + }, + }, + }, + number: { + title: '数量', + type: 'number', + search: { + show: false, + component: { + placeholder: '请输入数量', + }, + }, + column: { + sortable: 'custom', + }, + form: { + value: 1, + rules: [{ required: true, message: '数量必填' }], + component: { + min: 0, + placeholder: '请输入数量', + }, + }, + }, + transfer_unit: { + title: '单位', + type: 'dict-radio', + search: { + show: true, + component: { + placeholder: '请输入单位', + }, + }, + dict: dict({ + data:dictionary('weight_unit'), + }), + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '单位必选' }], + component: { + placeholder: '请输入单位', + }, + }, + }, + price: { + title: '单价', + type: '', + search: { + show: false, + component: { + placeholder: '请输入单价', + }, + }, + column: { + sortable: 'custom', + }, + form: { + value: 1, + rules: [{ required: true, message: '单价必填' }], + component: { + min: 0, + max: 10, + step: 0.1, + placeholder: '请输入单价', + }, + }, + }, + stash: { + title: '所属仓位', + type: 'dict-select', + search: { + show: true, + component: { + placeholder: '请输入所属仓位', + }, + }, + dict: dict({ + url: '/api/StashManageModelViewSet/', + label: 'stash_position', + value: 'id', + }), + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '所属仓位必选' }], + component: { + placeholder: '请输入所属仓位', + }, + }, + }, + note: { + title: '备注', + type: 'textarea', + search: { show: false }, + column: { + show: false, + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入订单备注', + }, + }, + }, + images: { + title: "照片墙", + type: "image-uploader", + form: { + col:{span:24}, + component: { + limit: 10, + uploader: { + type: "form", + }, + }, + //如果配置在form下,则表示将行数据的值转化为表单组件所需要的值 + valueBuilder(context) { // 将行数据转化为表单组件所需要的值 + if (context.mode !== 'add' && context.form.images !== null) { + context.form.images.forEach((item, index) => { + context.form.images[index] = getBaseURL(item) // 拼接图片地址 + }) + } + }, + rules: createUploaderRules([{ required: false, message: "此项必传", trigger: "change" }]), + helper: "最多可上传10个图片" + }, + column: { + component: { + // 列显示 + async buildUrl(value) { + return getBaseURL(value); + }, + // 列放大预览 + async buildPreviewUrl({ url, index }: any) { + return url + "?preview=600x600"; + } + } + } + }, + }, + }, + }; +} \ No newline at end of file diff --git a/web/src/views/inventory/FinishedProductModelViewSet/index.vue b/web/src/views/inventory/FinishedProductModelViewSet/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..5b2e1daeac19f63735e073819e70c3f29d205389 --- /dev/null +++ b/web/src/views/inventory/FinishedProductModelViewSet/index.vue @@ -0,0 +1,56 @@ + + + \ No newline at end of file diff --git a/web/src/views/inventory/InAndOutRecordModelViewSet/api.ts b/web/src/views/inventory/InAndOutRecordModelViewSet/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..ef52c511c81c5ff04e26708fec20fa2f926ecf21 --- /dev/null +++ b/web/src/views/inventory/InAndOutRecordModelViewSet/api.ts @@ -0,0 +1,50 @@ +import { request,downloadFile } from '/@/utils/service'; +import { PageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/InAndOutRecordModelViewSet/'; + +export function GetList(query: PageQuery) { + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} + +export function exportData(params:any){ + return downloadFile({ + url: apiPrefix + 'export_data/', + params: params, + method: 'get' + }) +} \ No newline at end of file diff --git a/web/src/views/inventory/InAndOutRecordModelViewSet/crud.tsx b/web/src/views/inventory/InAndOutRecordModelViewSet/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..96c09b5caf40636497aae37551df1d8484adb58c --- /dev/null +++ b/web/src/views/inventory/InAndOutRecordModelViewSet/crud.tsx @@ -0,0 +1,273 @@ +import { CrudOptions, AddReq, DelReq, EditReq, dict, CrudExpose, UserPageQuery, CreateCrudOptionsRet} from '@fast-crud/fast-crud'; +import _ from 'lodash-es'; +import * as api from './api'; +import { request } from '/@/utils/service'; +import {auth} from "/@/utils/authFunction"; +import { dictionary } from '/@/utils/dictionary'; + +//此处为crudOptions配置 +export default function ({ crudExpose}: { crudExpose: CrudExpose}): CreateCrudOptionsRet { + const pageRequest = async (query: any) => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + if (row.id) { + form.id = row.id; + } + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + const exportRequest = async (query: UserPageQuery) => { + return await api.exportData(query) + }; + + return { + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + export:{ + // 注释编号:django-vue3-admin-crud210716:注意这个auth里面的值,最好是使用index.vue文件里面的name值并加上请求动作的单词 + show: auth('InAndOutRecordModelViewSet:Export'), + text:"导出",//按钮文字 + title:"导出",//鼠标停留显示的信息 + click(){ + return exportRequest(crudExpose.getSearchFormData()) + // return exportRequest(crudExpose!.getSearchFormData()) // 注意这个crudExpose!.getSearchFormData(),一些低版本的环境是需要添加!的 + } + }, + add: { + show: auth('InAndOutRecordModelViewSet:Create'), + }, + } + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 200, + buttons: { + view: { + type: 'text', + order: 1, + show: auth('InAndOutRecordModelViewSet:Retrieve') + }, + edit: { + type: 'text', + order: 2, + show: auth('InAndOutRecordModelViewSet:Update') + }, + copy: { + type: 'text', + order: 3, + show: auth('InAndOutRecordModelViewSet:Copy') + }, + remove: { + type: 'text', + order: 4, + show: auth('InAndOutRecordModelViewSet:Delete') + }, + }, + }, + columns: { + in_or_out: { + title: '出入库类型', + type: 'dict-radio', + search: { + show: true, + component: { + placeholder: '请选择出入库类型', + }, + }, + dict: dict({ + data:dictionary('in_or_out_type'), + }), + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '出入库类型必选' }], + component: { + placeholder: '请选择出入库类型', + }, + }, + }, + in_or_out_aim: { + title: '进出来源与目的', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入进出来源与目的', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '进出来源与目的必填' }], + component: { + placeholder: '请输入进出来源与目的', + }, + }, + }, + in_or_out_code: { + title: '商品编号', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入商品编号', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '商品编号必填' }], + component: { + placeholder: '请输入商品编号', + }, + }, + }, + in_or_out_name: { + title: '商品名称', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入商品名称', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入商品名称', + }, + }, + }, + in_or_out_type: { + title: '商品类型', + type: 'dict-select', + search: { + show: true, + component: { + placeholder: '请输入商品类型', + }, + }, + dict: dict({ + data:dictionary('product_type'), + }), + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入商品类型', + }, + }, + }, + in_or_out_number: { + title: '出入库数量', + type: 'number', + search: { + show: false, + component: { + placeholder: '请输入出入库数量', + }, + }, + column: { + sortable: 'custom', + }, + form: { + value: 1, + rules: [{ required: true, message: '出入库数量必填' }], + component: { + min: 0, + placeholder: '请输入出入库数量', + }, + }, + }, + in_or_out_unit: { + title: '单位', + type: 'dict-radio', + search: { + show: true, + component: { + placeholder: '请输入单位', + }, + }, + dict: dict({ + data:dictionary('weight_unit'), + }), + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '单位必选' }], + component: { + placeholder: '请输入单位', + }, + }, + }, + in_or_out_stash: { + title: '仓位', + type: 'dict-select', + search: { + show: true, + component: { + placeholder: '请输入仓位', + }, + }, + dict: dict({ + url: '/api/StashManageModelViewSet/', + label: 'stash_position', + value: 'id', + }), + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入仓位', + }, + }, + }, + in_or_out_note: { + title: '备注', + type: 'textarea', + search: { + show: false, + component: { + placeholder: '请输入备注', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入备注', + }, + }, + }, + }, + }, + }; +} \ No newline at end of file diff --git a/web/src/views/inventory/InAndOutRecordModelViewSet/index.vue b/web/src/views/inventory/InAndOutRecordModelViewSet/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..4bbe0c2d7bdb383b391b7ba4719030cf3b095881 --- /dev/null +++ b/web/src/views/inventory/InAndOutRecordModelViewSet/index.vue @@ -0,0 +1,56 @@ + + + \ No newline at end of file diff --git a/web/src/views/inventory/MaterielModelViewSet/api.ts b/web/src/views/inventory/MaterielModelViewSet/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..4e221d9ac91dbed635dbcb3061f463ad98a4702c --- /dev/null +++ b/web/src/views/inventory/MaterielModelViewSet/api.ts @@ -0,0 +1,50 @@ +import { request,downloadFile } from '/@/utils/service'; +import { PageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/MaterielModelViewSet/'; + +export function GetList(query: PageQuery) { + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} + +export function exportData(params:any){ + return downloadFile({ + url: apiPrefix + 'export_data/', + params: params, + method: 'get' + }) +} \ No newline at end of file diff --git a/web/src/views/inventory/MaterielModelViewSet/crud.tsx b/web/src/views/inventory/MaterielModelViewSet/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..e063bcc548eb75954ee4eb407038bccbde049886 --- /dev/null +++ b/web/src/views/inventory/MaterielModelViewSet/crud.tsx @@ -0,0 +1,293 @@ +import { CrudOptions, AddReq, DelReq, EditReq, dict, CrudExpose, UserPageQuery, CreateCrudOptionsRet } from '@fast-crud/fast-crud'; +import _ from 'lodash-es'; +import * as api from './api'; +import { getBaseURL } from '/@/utils/baseUrl'; +import { createUploaderRules } from "@fast-crud/fast-extends"; +import { request } from '/@/utils/service'; +import { auth } from "/@/utils/authFunction"; +import { dictionary } from '/@/utils/dictionary'; +import { url } from 'inspector'; + +//此处为crudOptions配置 +export default function ({ crudExpose }: { crudExpose: CrudExpose }): CreateCrudOptionsRet { + const pageRequest = async (query: any) => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + if (row.id) { + form.id = row.id; + } + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + const exportRequest = async (query: UserPageQuery) => { + return await api.exportData(query) + }; + + return { // 销售订单 + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + export: { + // 注释编号:django-vue3-admin-crud210716:注意这个auth里面的值,最好是使用index.vue文件里面的name值并加上请求动作的单词 + show: auth('MaterielModelViewSet:Export'), + text: "导出",//按钮文字 + title: "导出",//鼠标停留显示的信息 + click() { + return exportRequest(crudExpose.getSearchFormData()) + // return exportRequest(crudExpose!.getSearchFormData()) // 注意这个crudExpose!.getSearchFormData(),一些低版本的环境是需要添加!的 + } + }, + add: { + show: auth('MaterielModelViewSet:Create'), + }, + } + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 130, + buttons: { + view: { + type: 'text', + order: 1, + show: auth('MaterielModelViewSet:Retrieve') + }, + edit: { + type: 'text', + order: 2, + show: auth('MaterielModelViewSet:Update') + }, + copy: { + type: 'text', + order: 3, + show: auth('MaterielModelViewSet:Copy') + }, + remove: { + type: 'text', + order: 4, + show: auth('MaterielModelViewSet:Delete') + }, + }, + }, + columns: { + code: { + title: '编号', + type: 'text', + search: { + show: true + }, + column: { + sortable: 'custom', + }, + form: { + show: true, + component: { + placeholder: '编号自动生成,无需输入.', + }, + }, + addForm: { + component: { + disabled: true + } + }, + editForm: { + component: { + disabled: true + } + } + }, + specification: { + title: '规格', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入规格', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '规格必填' }], + component: { + placeholder: '请输入规格', + }, + }, + }, + name: { + title: '名称', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入名称', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '规格必填' }], + component: { + placeholder: '请输入名称', + }, + }, + }, + number: { + title: '数量', + type: 'number', + search: { + show: false, + component: { + placeholder: '请输入数量', + }, + }, + column: { + sortable: 'custom', + }, + form: { + value: 1, + rules: [{ required: true, message: '数量必填' }], + component: { + min: 0, + placeholder: '请输入数量', + }, + }, + }, + transfer_unit: { + title: '单位', + type: 'dict-radio', + search: { + show: true, + component: { + placeholder: '请输入单位', + }, + }, + dict: dict({ + data:dictionary('weight_unit'), + }), + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '单位必选' }], + component: { + placeholder: '请输入单位', + }, + }, + }, + price: { + title: '单价', + type: '', + search: { + show: false, + component: { + placeholder: '请输入单价', + }, + }, + column: { + sortable: 'custom', + }, + form: { + value: 1, + rules: [{ required: true, message: '单价必填' }], + component: { + min: 0, + max: 10, + step: 0.1, + placeholder: '请输入单价', + }, + }, + }, + stash: { + title: '所属仓位', + type: 'dict-select', + search: { + show: true, + component: { + placeholder: '请输入所属仓位', + }, + }, + dict: dict({ + url: '/api/StashManageModelViewSet/', + label: 'stash_position', + value: 'id', + }), + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '所属仓位必选' }], + component: { + placeholder: '请输入所属仓位', + }, + }, + }, + note: { + title: '备注', + type: 'textarea', + search: { show: false }, + column: { + show: false, + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入订单备注', + }, + }, + }, + images: { + title: "照片墙", + type: "image-uploader", + form: { + col:{span:24}, + component: { + limit: 10, + uploader: { + type: "form", + }, + }, + //如果配置在form下,则表示将行数据的值转化为表单组件所需要的值 + valueBuilder(context) { // 将行数据转化为表单组件所需要的值 + if (context.mode !== 'add' && context.form.images !== null) { + context.form.images.forEach((item, index) => { + context.form.images[index] = getBaseURL(item) // 拼接图片地址 + }) + } + }, + rules: createUploaderRules([{ required: false, message: "此项必传", trigger: "change" }]), + helper: "最多可上传10个图片" + }, + column: { + component: { + // 列显示 + async buildUrl(value) { + return getBaseURL(value); + }, + // 列放大预览 + async buildPreviewUrl({ url, index }: any) { + return url + "?preview=600x600"; + } + } + } + }, + }, + }, + }; +} \ No newline at end of file diff --git a/web/src/views/inventory/MaterielModelViewSet/index.vue b/web/src/views/inventory/MaterielModelViewSet/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..be4a21496b906051ede052295d174c1f9d2caa2f --- /dev/null +++ b/web/src/views/inventory/MaterielModelViewSet/index.vue @@ -0,0 +1,56 @@ + + + \ No newline at end of file diff --git a/web/src/views/inventory/ProductAssemblyModelViewSet/api.ts b/web/src/views/inventory/ProductAssemblyModelViewSet/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..e44df6c65a682fff9bc021bbbf12e34589248c73 --- /dev/null +++ b/web/src/views/inventory/ProductAssemblyModelViewSet/api.ts @@ -0,0 +1,50 @@ +import { request,downloadFile } from '/@/utils/service'; +import { PageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/ProductAssemblyModelViewSet/'; + +export function GetList(query: PageQuery) { + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} + +export function exportData(params:any){ + return downloadFile({ + url: apiPrefix + 'export_data/', + params: params, + method: 'get' + }) +} \ No newline at end of file diff --git a/web/src/views/inventory/ProductAssemblyModelViewSet/crud.tsx b/web/src/views/inventory/ProductAssemblyModelViewSet/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..0a9c1dad5ad4abb0d32efe6702a3844fe9f4ff84 --- /dev/null +++ b/web/src/views/inventory/ProductAssemblyModelViewSet/crud.tsx @@ -0,0 +1,293 @@ +import { CrudOptions, AddReq, DelReq, EditReq, dict, CrudExpose, UserPageQuery, CreateCrudOptionsRet } from '@fast-crud/fast-crud'; +import _ from 'lodash-es'; +import * as api from './api'; +import { getBaseURL } from '/@/utils/baseUrl'; +import { createUploaderRules } from "@fast-crud/fast-extends"; +import { request } from '/@/utils/service'; +import { auth } from "/@/utils/authFunction"; +import { dictionary } from '/@/utils/dictionary'; +import { url } from 'inspector'; + +//此处为crudOptions配置 +export default function ({ crudExpose }: { crudExpose: CrudExpose }): CreateCrudOptionsRet { + const pageRequest = async (query: any) => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + if (row.id) { + form.id = row.id; + } + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + const exportRequest = async (query: UserPageQuery) => { + return await api.exportData(query) + }; + + return { // 销售订单 + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + export: { + // 注释编号:django-vue3-admin-crud210716:注意这个auth里面的值,最好是使用index.vue文件里面的name值并加上请求动作的单词 + show: auth('ProductAssemblyModelViewSet:Export'), + text: "导出",//按钮文字 + title: "导出",//鼠标停留显示的信息 + click() { + return exportRequest(crudExpose.getSearchFormData()) + // return exportRequest(crudExpose!.getSearchFormData()) // 注意这个crudExpose!.getSearchFormData(),一些低版本的环境是需要添加!的 + } + }, + add: { + show: auth('ProductAssemblyModelViewSet:Create'), + }, + } + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 130, + buttons: { + view: { + type: 'text', + order: 1, + show: auth('ProductAssemblyModelViewSet:Retrieve') + }, + edit: { + type: 'text', + order: 2, + show: auth('ProductAssemblyModelViewSet:Update') + }, + copy: { + type: 'text', + order: 3, + show: auth('ProductAssemblyModelViewSet:Copy') + }, + remove: { + type: 'text', + order: 4, + show: auth('ProductAssemblyModelViewSet:Delete') + }, + }, + }, + columns: { + code: { + title: '编号', + type: 'text', + search: { + show: true + }, + column: { + sortable: 'custom', + }, + form: { + show: true, + component: { + placeholder: '编号自动生成,无需输入.', + }, + }, + addForm: { + component: { + disabled: true + } + }, + editForm: { + component: { + disabled: true + } + } + }, + specification: { + title: '规格', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入规格', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '规格必填' }], + component: { + placeholder: '请输入规格', + }, + }, + }, + name: { + title: '名称', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入名称', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '规格必填' }], + component: { + placeholder: '请输入名称', + }, + }, + }, + number: { + title: '数量', + type: 'number', + search: { + show: false, + component: { + placeholder: '请输入数量', + }, + }, + column: { + sortable: 'custom', + }, + form: { + value: 1, + rules: [{ required: true, message: '数量必填' }], + component: { + min: 0, + placeholder: '请输入数量', + }, + }, + }, + transfer_unit: { + title: '单位', + type: 'dict-radio', + search: { + show: true, + component: { + placeholder: '请输入单位', + }, + }, + dict: dict({ + data:dictionary('weight_unit'), + }), + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '单位必选' }], + component: { + placeholder: '请输入单位', + }, + }, + }, + price: { + title: '单价', + type: '', + search: { + show: false, + component: { + placeholder: '请输入单价', + }, + }, + column: { + sortable: 'custom', + }, + form: { + value: 1, + rules: [{ required: true, message: '单价必填' }], + component: { + min: 0, + max: 10, + step: 0.1, + placeholder: '请输入单价', + }, + }, + }, + stash: { + title: '所属仓位', + type: 'dict-select', + search: { + show: true, + component: { + placeholder: '请输入所属仓位', + }, + }, + dict: dict({ + url: '/api/StashManageModelViewSet/', + label: 'stash_position', + value: 'id', + }), + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '所属仓位必选' }], + component: { + placeholder: '请输入所属仓位', + }, + }, + }, + note: { + title: '备注', + type: 'textarea', + search: { show: false }, + column: { + show: false, + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入订单备注', + }, + }, + }, + images: { + title: "照片墙", + type: "image-uploader", + form: { + col:{span:24}, + component: { + limit: 10, + uploader: { + type: "form", + }, + }, + //如果配置在form下,则表示将行数据的值转化为表单组件所需要的值 + valueBuilder(context) { // 将行数据转化为表单组件所需要的值 + if (context.mode !== 'add' && context.form.images !== null) { + context.form.images.forEach((item, index) => { + context.form.images[index] = getBaseURL(item) // 拼接图片地址 + }) + } + }, + rules: createUploaderRules([{ required: false, message: "此项必传", trigger: "change" }]), + helper: "最多可上传10个图片" + }, + column: { + component: { + // 列显示 + async buildUrl(value) { + return getBaseURL(value); + }, + // 列放大预览 + async buildPreviewUrl({ url, index }: any) { + return url + "?preview=600x600"; + } + } + } + }, + }, + }, + }; +} \ No newline at end of file diff --git a/web/src/views/inventory/ProductAssemblyModelViewSet/index.vue b/web/src/views/inventory/ProductAssemblyModelViewSet/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..fd7a514251ec8b00ba27e62b56e640509368fbb3 --- /dev/null +++ b/web/src/views/inventory/ProductAssemblyModelViewSet/index.vue @@ -0,0 +1,56 @@ + + + \ No newline at end of file diff --git a/web/src/views/inventory/RawMaterialModelViewSet/api.ts b/web/src/views/inventory/RawMaterialModelViewSet/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..834ca47865e2e7f0b10758c61e59d41cbe743779 --- /dev/null +++ b/web/src/views/inventory/RawMaterialModelViewSet/api.ts @@ -0,0 +1,50 @@ +import { request,downloadFile } from '/@/utils/service'; +import { PageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/RawMaterialModelViewSet/'; + +export function GetList(query: PageQuery) { + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} + +export function exportData(params:any){ + return downloadFile({ + url: apiPrefix + 'export_data/', + params: params, + method: 'get' + }) +} \ No newline at end of file diff --git a/web/src/views/inventory/RawMaterialModelViewSet/crud.tsx b/web/src/views/inventory/RawMaterialModelViewSet/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..07d6d64e700f86883f73d3a6287cd1222aa7d1dd --- /dev/null +++ b/web/src/views/inventory/RawMaterialModelViewSet/crud.tsx @@ -0,0 +1,293 @@ +import { CrudOptions, AddReq, DelReq, EditReq, dict, CrudExpose, UserPageQuery, CreateCrudOptionsRet } from '@fast-crud/fast-crud'; +import _ from 'lodash-es'; +import * as api from './api'; +import { getBaseURL } from '/@/utils/baseUrl'; +import { createUploaderRules } from "@fast-crud/fast-extends"; +import { request } from '/@/utils/service'; +import { auth } from "/@/utils/authFunction"; +import { dictionary } from '/@/utils/dictionary'; +import { url } from 'inspector'; + +//此处为crudOptions配置 +export default function ({ crudExpose }: { crudExpose: CrudExpose }): CreateCrudOptionsRet { + const pageRequest = async (query: any) => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + if (row.id) { + form.id = row.id; + } + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + const exportRequest = async (query: UserPageQuery) => { + return await api.exportData(query) + }; + + return { // 销售订单 + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + export: { + // 注释编号:django-vue3-admin-crud210716:注意这个auth里面的值,最好是使用index.vue文件里面的name值并加上请求动作的单词 + show: auth('RawMaterialModelViewSet:Export'), + text: "导出",//按钮文字 + title: "导出",//鼠标停留显示的信息 + click() { + return exportRequest(crudExpose.getSearchFormData()) + // return exportRequest(crudExpose!.getSearchFormData()) // 注意这个crudExpose!.getSearchFormData(),一些低版本的环境是需要添加!的 + } + }, + add: { + show: auth('RawMaterialModelViewSet:Create'), + }, + } + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 130, + buttons: { + view: { + type: 'text', + order: 1, + show: auth('RawMaterialModelViewSet:Retrieve') + }, + edit: { + type: 'text', + order: 2, + show: auth('RawMaterialModelViewSet:Update') + }, + copy: { + type: 'text', + order: 3, + show: auth('RawMaterialModelViewSet:Copy') + }, + remove: { + type: 'text', + order: 4, + show: auth('RawMaterialModelViewSet:Delete') + }, + }, + }, + columns: { + code: { + title: '编号', + type: 'text', + search: { + show: true + }, + column: { + sortable: 'custom', + }, + form: { + show: true, + component: { + placeholder: '编号自动生成,无需输入.', + }, + }, + addForm: { + component: { + disabled: true + } + }, + editForm: { + component: { + disabled: true + } + } + }, + specification: { + title: '规格', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入规格', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '规格必填' }], + component: { + placeholder: '请输入规格', + }, + }, + }, + name: { + title: '名称', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入名称', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '规格必填' }], + component: { + placeholder: '请输入名称', + }, + }, + }, + number: { + title: '数量', + type: 'number', + search: { + show: false, + component: { + placeholder: '请输入数量', + }, + }, + column: { + sortable: 'custom', + }, + form: { + value: 1, + rules: [{ required: true, message: '数量必填' }], + component: { + min: 0, + placeholder: '请输入数量', + }, + }, + }, + transfer_unit: { + title: '单位', + type: 'dict-radio', + search: { + show: true, + component: { + placeholder: '请输入单位', + }, + }, + dict: dict({ + data:dictionary('weight_unit'), + }), + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '单位必选' }], + component: { + placeholder: '请输入单位', + }, + }, + }, + price: { + title: '单价', + type: '', + search: { + show: false, + component: { + placeholder: '请输入单价', + }, + }, + column: { + sortable: 'custom', + }, + form: { + value: 1, + rules: [{ required: true, message: '单价必填' }], + component: { + min: 0, + max: 10, + step: 0.1, + placeholder: '请输入单价', + }, + }, + }, + stash: { + title: '所属仓位', + type: 'dict-select', + search: { + show: true, + component: { + placeholder: '请输入所属仓位', + }, + }, + dict: dict({ + url: '/api/StashManageModelViewSet/', + label: 'stash_position', + value: 'id', + }), + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '所属仓位必选' }], + component: { + placeholder: '请输入所属仓位', + }, + }, + }, + note: { + title: '备注', + type: 'textarea', + search: { show: false }, + column: { + show: false, + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入订单备注', + }, + }, + }, + images: { + title: "照片墙", + type: "image-uploader", + form: { + col:{span:24}, + component: { + limit: 10, + uploader: { + type: "form", + }, + }, + //如果配置在form下,则表示将行数据的值转化为表单组件所需要的值 + valueBuilder(context) { // 将行数据转化为表单组件所需要的值 + if (context.mode !== 'add' && context.form.images !== null) { + context.form.images.forEach((item, index) => { + context.form.images[index] = getBaseURL(item) // 拼接图片地址 + }) + } + }, + rules: createUploaderRules([{ required: false, message: "此项必传", trigger: "change" }]), + helper: "最多可上传10个图片" + }, + column: { + component: { + // 列显示 + async buildUrl(value) { + return getBaseURL(value); + }, + // 列放大预览 + async buildPreviewUrl({ url, index }: any) { + return url + "?preview=600x600"; + } + } + } + }, + }, + }, + }; +} \ No newline at end of file diff --git a/web/src/views/inventory/RawMaterialModelViewSet/index.vue b/web/src/views/inventory/RawMaterialModelViewSet/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..66d99be1b57ee189e50666dc4d9f8f6478507a34 --- /dev/null +++ b/web/src/views/inventory/RawMaterialModelViewSet/index.vue @@ -0,0 +1,56 @@ + + + \ No newline at end of file diff --git a/web/src/views/inventory/SemiFinishedProductModelViewSet/api.ts b/web/src/views/inventory/SemiFinishedProductModelViewSet/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..b9fde5bfb6a16c8bc9a7e91ffcb48bbf27033c46 --- /dev/null +++ b/web/src/views/inventory/SemiFinishedProductModelViewSet/api.ts @@ -0,0 +1,50 @@ +import { request,downloadFile } from '/@/utils/service'; +import { PageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/SemiFinishedProductModelViewSet/'; + +export function GetList(query: PageQuery) { + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} + +export function exportData(params:any){ + return downloadFile({ + url: apiPrefix + 'export_data/', + params: params, + method: 'get' + }) +} \ No newline at end of file diff --git a/web/src/views/inventory/SemiFinishedProductModelViewSet/crud.tsx b/web/src/views/inventory/SemiFinishedProductModelViewSet/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..277a6d00dccc6d950f9bb558737902f26b2a2fdd --- /dev/null +++ b/web/src/views/inventory/SemiFinishedProductModelViewSet/crud.tsx @@ -0,0 +1,293 @@ +import { CrudOptions, AddReq, DelReq, EditReq, dict, CrudExpose, UserPageQuery, CreateCrudOptionsRet } from '@fast-crud/fast-crud'; +import _ from 'lodash-es'; +import * as api from './api'; +import { getBaseURL } from '/@/utils/baseUrl'; +import { createUploaderRules } from "@fast-crud/fast-extends"; +import { request } from '/@/utils/service'; +import { auth } from "/@/utils/authFunction"; +import { dictionary } from '/@/utils/dictionary'; +import { url } from 'inspector'; + +//此处为crudOptions配置 +export default function ({ crudExpose }: { crudExpose: CrudExpose }): CreateCrudOptionsRet { + const pageRequest = async (query: any) => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + if (row.id) { + form.id = row.id; + } + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + const exportRequest = async (query: UserPageQuery) => { + return await api.exportData(query) + }; + + return { // 销售订单 + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + export: { + // 注释编号:django-vue3-admin-crud210716:注意这个auth里面的值,最好是使用index.vue文件里面的name值并加上请求动作的单词 + show: auth('SemiFinishedProductModelViewSet:Export'), + text: "导出",//按钮文字 + title: "导出",//鼠标停留显示的信息 + click() { + return exportRequest(crudExpose.getSearchFormData()) + // return exportRequest(crudExpose!.getSearchFormData()) // 注意这个crudExpose!.getSearchFormData(),一些低版本的环境是需要添加!的 + } + }, + add: { + show: auth('SemiFinishedProductModelViewSet:Create'), + }, + } + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 130, + buttons: { + view: { + type: 'text', + order: 1, + show: auth('SemiFinishedProductModelViewSet:Retrieve') + }, + edit: { + type: 'text', + order: 2, + show: auth('SemiFinishedProductModelViewSet:Update') + }, + copy: { + type: 'text', + order: 3, + show: auth('SemiFinishedProductModelViewSet:Copy') + }, + remove: { + type: 'text', + order: 4, + show: auth('SemiFinishedProductModelViewSet:Delete') + }, + }, + }, + columns: { + code: { + title: '编号', + type: 'text', + search: { + show: true + }, + column: { + sortable: 'custom', + }, + form: { + show: true, + component: { + placeholder: '编号自动生成,无需输入.', + }, + }, + addForm: { + component: { + disabled: true + } + }, + editForm: { + component: { + disabled: true + } + } + }, + specification: { + title: '规格', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入规格', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '规格必填' }], + component: { + placeholder: '请输入规格', + }, + }, + }, + name: { + title: '名称', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入名称', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '规格必填' }], + component: { + placeholder: '请输入名称', + }, + }, + }, + number: { + title: '数量', + type: 'number', + search: { + show: false, + component: { + placeholder: '请输入数量', + }, + }, + column: { + sortable: 'custom', + }, + form: { + value: 1, + rules: [{ required: true, message: '数量必填' }], + component: { + min: 0, + placeholder: '请输入数量', + }, + }, + }, + transfer_unit: { + title: '单位', + type: 'dict-radio', + search: { + show: true, + component: { + placeholder: '请输入单位', + }, + }, + dict: dict({ + data:dictionary('weight_unit'), + }), + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '单位必选' }], + component: { + placeholder: '请输入单位', + }, + }, + }, + price: { + title: '单价', + type: '', + search: { + show: false, + component: { + placeholder: '请输入单价', + }, + }, + column: { + sortable: 'custom', + }, + form: { + value: 1, + rules: [{ required: true, message: '单价必填' }], + component: { + min: 0, + max: 10, + step: 0.1, + placeholder: '请输入单价', + }, + }, + }, + stash: { + title: '所属仓位', + type: 'dict-select', + search: { + show: true, + component: { + placeholder: '请输入所属仓位', + }, + }, + dict: dict({ + url: '/api/StashManageModelViewSet/', + label: 'stash_position', + value: 'id', + }), + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '所属仓位必选' }], + component: { + placeholder: '请输入所属仓位', + }, + }, + }, + note: { + title: '备注', + type: 'textarea', + search: { show: false }, + column: { + show: false, + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入订单备注', + }, + }, + }, + images: { + title: "照片墙", + type: "image-uploader", + form: { + col:{span:24}, + component: { + limit: 10, + uploader: { + type: "form", + }, + }, + //如果配置在form下,则表示将行数据的值转化为表单组件所需要的值 + valueBuilder(context) { // 将行数据转化为表单组件所需要的值 + if (context.mode !== 'add' && context.form.images !== null) { + context.form.images.forEach((item, index) => { + context.form.images[index] = getBaseURL(item) // 拼接图片地址 + }) + } + }, + rules: createUploaderRules([{ required: false, message: "此项必传", trigger: "change" }]), + helper: "最多可上传10个图片" + }, + column: { + component: { + // 列显示 + async buildUrl(value) { + return getBaseURL(value); + }, + // 列放大预览 + async buildPreviewUrl({ url, index }: any) { + return url + "?preview=600x600"; + } + } + } + }, + }, + }, + }; +} \ No newline at end of file diff --git a/web/src/views/inventory/SemiFinishedProductModelViewSet/index.vue b/web/src/views/inventory/SemiFinishedProductModelViewSet/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..9d1f8a16bc352b3236361dde9e6e26bcc0f8bba7 --- /dev/null +++ b/web/src/views/inventory/SemiFinishedProductModelViewSet/index.vue @@ -0,0 +1,56 @@ + + + \ No newline at end of file diff --git a/web/src/views/inventory/StashManageModelViewSet/api.ts b/web/src/views/inventory/StashManageModelViewSet/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..50308686deb356a4ab63558192448a244dfcfaff --- /dev/null +++ b/web/src/views/inventory/StashManageModelViewSet/api.ts @@ -0,0 +1,50 @@ +import { request,downloadFile } from '/@/utils/service'; +import { PageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/StashManageModelViewSet/'; + +export function GetList(query: PageQuery) { + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} + +export function exportData(params:any){ + return downloadFile({ + url: apiPrefix + 'export_data/', + params: params, + method: 'get' + }) +} \ No newline at end of file diff --git a/web/src/views/inventory/StashManageModelViewSet/crud.tsx b/web/src/views/inventory/StashManageModelViewSet/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..88612f4659fa7f48d4fe966cf130d57f3f96f81c --- /dev/null +++ b/web/src/views/inventory/StashManageModelViewSet/crud.tsx @@ -0,0 +1,161 @@ +import { CrudOptions, AddReq, DelReq, EditReq, dict, CrudExpose, UserPageQuery, CreateCrudOptionsRet} from '@fast-crud/fast-crud'; +import _ from 'lodash-es'; +import * as api from './api'; +import { request } from '/@/utils/service'; +import {auth} from "/@/utils/authFunction"; + +//此处为crudOptions配置 +export default function ({ crudExpose}: { crudExpose: CrudExpose}): CreateCrudOptionsRet { + const pageRequest = async (query: any) => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + if (row.id) { + form.id = row.id; + } + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + const exportRequest = async (query: UserPageQuery) => { + return await api.exportData(query) + }; + + return { + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + export:{ + // 注释编号:django-vue3-admin-crud210716:注意这个auth里面的值,最好是使用index.vue文件里面的name值并加上请求动作的单词 + show: auth('StashManageModelViewSet:Export'), + text:"导出",//按钮文字 + title:"导出",//鼠标停留显示的信息 + click(){ + return exportRequest(crudExpose.getSearchFormData()) + // return exportRequest(crudExpose!.getSearchFormData()) // 注意这个crudExpose!.getSearchFormData(),一些低版本的环境是需要添加!的 + } + }, + add: { + show: auth('StashManageModelViewSet:Create'), + }, + } + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 200, + buttons: { + view: { + type: 'text', + order: 1, + show: auth('StashManageModelViewSet:Retrieve') + }, + edit: { + type: 'text', + order: 2, + show: auth('StashManageModelViewSet:Update') + }, + copy: { + type: 'text', + order: 3, + show: auth('StashManageModelViewSet:Copy') + }, + remove: { + type: 'text', + order: 4, + show: auth('StashManageModelViewSet:Delete') + }, + }, + }, + columns: { + stash_name: { + title: '仓库名称', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入仓库名称', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true }], + component: { + placeholder: '请输入仓库名称', + }, + }, + }, + stash_address: { + title: '仓库地址', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入仓库地址', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入仓库地址', + }, + }, + }, + stash_position: { + title: '仓位', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入仓位', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入仓位', + }, + }, + }, + stash_note: { + title: '备注', + type: 'textarea', + search: { + show: false, + component: { + placeholder: '请输入备注', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入备注', + }, + }, + }, + }, + }, + }; +} \ No newline at end of file diff --git a/web/src/views/inventory/StashManageModelViewSet/index.vue b/web/src/views/inventory/StashManageModelViewSet/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..b4fc42e323cf582bbe4c1c07ee187044a135fe53 --- /dev/null +++ b/web/src/views/inventory/StashManageModelViewSet/index.vue @@ -0,0 +1,56 @@ + + + \ No newline at end of file diff --git a/web/src/views/inventory/TransferRecordModelViewSet/api.ts b/web/src/views/inventory/TransferRecordModelViewSet/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..dcd91ae25e5d0e9bd06a1a86b19e173a3cd6e637 --- /dev/null +++ b/web/src/views/inventory/TransferRecordModelViewSet/api.ts @@ -0,0 +1,50 @@ +import { request,downloadFile } from '/@/utils/service'; +import { PageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/TransferRecordModelViewSet/'; + +export function GetList(query: PageQuery) { + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} + +export function exportData(params:any){ + return downloadFile({ + url: apiPrefix + 'export_data/', + params: params, + method: 'get' + }) +} \ No newline at end of file diff --git a/web/src/views/inventory/TransferRecordModelViewSet/crud.tsx b/web/src/views/inventory/TransferRecordModelViewSet/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..0ff20ff49074d449a37b81c3dc1cb7618292d9c0 --- /dev/null +++ b/web/src/views/inventory/TransferRecordModelViewSet/crud.tsx @@ -0,0 +1,275 @@ +import { CrudOptions, AddReq, DelReq, EditReq, dict, CrudExpose, UserPageQuery, CreateCrudOptionsRet} from '@fast-crud/fast-crud'; +import _ from 'lodash-es'; +import * as api from './api'; +import { request } from '/@/utils/service'; +import {auth} from "/@/utils/authFunction"; +import { dictionary } from '/@/utils/dictionary'; + +//此处为crudOptions配置 +export default function ({ crudExpose}: { crudExpose: CrudExpose}): CreateCrudOptionsRet { + const pageRequest = async (query: any) => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + if (row.id) { + form.id = row.id; + } + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + const exportRequest = async (query: UserPageQuery) => { + return await api.exportData(query) + }; + + return { + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + export:{ + // 注释编号:django-vue3-admin-crud210716:注意这个auth里面的值,最好是使用index.vue文件里面的name值并加上请求动作的单词 + show: auth('TransferRecordModelViewSet:Export'), + text:"导出",//按钮文字 + title:"导出",//鼠标停留显示的信息 + click(){ + return exportRequest(crudExpose.getSearchFormData()) + // return exportRequest(crudExpose!.getSearchFormData()) // 注意这个crudExpose!.getSearchFormData(),一些低版本的环境是需要添加!的 + } + }, + add: { + show: auth('TransferRecordModelViewSet:Create'), + }, + } + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 200, + buttons: { + view: { + type: 'text', + order: 1, + show: auth('TransferRecordModelViewSet:Retrieve') + }, + edit: { + type: 'text', + order: 2, + show: auth('TransferRecordModelViewSet:Update') + }, + copy: { + type: 'text', + order: 3, + show: auth('TransferRecordModelViewSet:Copy') + }, + remove: { + type: 'text', + order: 4, + show: auth('TransferRecordModelViewSet:Delete') + }, + }, + }, + columns: { + transfer_aim: { + title: '调拨来源与目的', + type: 'text', + search: { + show: false, + component: { + placeholder: '请输入调拨来源与目的', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '调拨来源与目的必填' }], + component: { + placeholder: '请输入调拨来源与目的', + }, + }, + }, + transfer_out_stash: { + title: '调出仓名称', + type: 'dict-select', + search: { + show: true, + component: { + placeholder: '请输入调出仓名称', + }, + }, + dict: dict({ + url: '/api/StashManageModelViewSet/', + label: 'stash_position', + value: 'id', + }), + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '调出仓名称必选' }], + component: { + placeholder: '请输入调出仓名称', + }, + }, + }, + transfer_code: { + title: '商品编号', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入商品编号', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '商品编号必填' }], + component: { + placeholder: '请输入商品编号', + }, + }, + }, + transfer_name: { + title: '商品名称', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入商品名称', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入商品名称', + }, + }, + }, + transfer_product_type: { + title: '商品类型', + type: 'dict-select', + search: { + show: true, + component: { + placeholder: '请输入商品类型', + }, + }, + dict: dict({ + data:dictionary('product_type'), + }), + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入商品类型', + }, + }, + }, + transfer_number: { + title: '调拨数量', + type: 'number', + search: { + show: false, + component: { + placeholder: '请输入调拨数量', + }, + }, + column: { + sortable: 'custom', + }, + form: { + value: 1, + rules: [{ required: true, message: '调拨数量必填' }], + component: { + min: 0, + placeholder: '请输入调拨数量', + }, + }, + }, + transfer_unit: { + title: '单位', + type: 'dict-radio', + search: { + show: true, + component: { + placeholder: '请输入单位', + }, + }, + dict: dict({ + data:dictionary('weight_unit'), + }), + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '单位必选' }], + component: { + placeholder: '请输入单位', + }, + }, + }, + transfer_in_stash: { + title: '调进仓名称', + type: 'dict-select', + search: { + show: true, + component: { + placeholder: '请输入调进仓名称', + }, + }, + dict: dict({ + url: '/api/StashManageModelViewSet/', + label: 'stash_position', + value: 'id', + }), + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '调进仓名称必选' }], + component: { + placeholder: '请输入调进仓名称', + }, + }, + }, + transfer_note: { + title: '备注', + type: 'textarea', + search: { + show: false, + component: { + placeholder: '请输入备注', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入备注', + }, + }, + }, + }, + }, + }; +} \ No newline at end of file diff --git a/web/src/views/inventory/TransferRecordModelViewSet/index.vue b/web/src/views/inventory/TransferRecordModelViewSet/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..11b9137e65b74bf2e216a7654c295038c2d3c3ad --- /dev/null +++ b/web/src/views/inventory/TransferRecordModelViewSet/index.vue @@ -0,0 +1,56 @@ + + + \ No newline at end of file diff --git a/web/src/views/plugins/dvadmin3-flow-web/README.md b/web/src/views/plugins/dvadmin3-flow-web/README.md new file mode 100644 index 0000000000000000000000000000000000000000..84e69b80c1b0cca535f102c1ebc1fcc5a11e0690 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/README.md @@ -0,0 +1 @@ +#dvadmin3-flow-web diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/api/org.js b/web/src/views/plugins/dvadmin3-flow-web/src/api/org.js new file mode 100644 index 0000000000000000000000000000000000000000..ff061d6c2063f49c69a8e393a7668d863a549cf8 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/api/org.js @@ -0,0 +1,40 @@ +import request from './request.js' + + +// 查询组织架构树 +export function getOrgTree(param) { + return request({ + url: '/api/dvadmin3_flow/flow_info/org_tree/', + method: 'get', + params: param + }) +} + +// 查询系统角色 +export function getRole() { + return request({ + url: '/api/system/role/', + method: 'get' + }) +} + +// 搜索人员 +export function getUserByName(param) { + return request({ + url: '/api/dvadmin3_flow/flow_info/user_search/', + method: 'get', + params: param + }) +} + +// 搜索人员 +export function getUserDepts(userId) { + return request({ + url: `oa/org/user/${userId}/dept`, + method: 'get' + }) +} + +export default { + getOrgTree, getUserByName, getRole, getUserDepts +} diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/api/request.js b/web/src/views/plugins/dvadmin3-flow-web/src/api/request.js new file mode 100644 index 0000000000000000000000000000000000000000..c9bc27d261e2757bb13f744f4f4b4877bd6e774f --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/api/request.js @@ -0,0 +1,55 @@ +import axios from "axios"; +import {ElMessageBox, ElMessage} from "element-plus"; +import {cookie} from "xe-utils"; +import {getBaseURL} from "/@/utils/baseUrl"; + +const service = axios.create({ + baseURL: getBaseURL(), + timeout: 50000 +}); + +service.defaults.withCredentials = true; // 让ajax携带cookie +service.interceptors.request.use( + // 每次请求都自动携带Cookie + config => { + config.headers.Authorization = `JWT ${cookie.get('token')}` + return config; + }, + // eslint-disable-next-line handle-callback-err + error => { + return Promise.reject(error); + } +); + +service.interceptors.response.use( + rsp => { + if(rsp.data.code === 2000){ + return rsp.data; + }else{ + ElMessage.error(rsp.data.msg); + return Promise.reject() + } + + }, + // 拦截异常的响应 + err => { + switch (err.response?.status) { + case 401: + ElMessageBox.alert("登陆失效,请点击右上角头像重新切换人员"); + break; + case 403: + ElMessage.warning("抱歉,您无权访问!") + break; + case 500: + break; + case 404: + break; + default: + //throw 'request error' + return Promise.reject(err); + } + //throw 'request error' + return Promise.reject(err); + } +); +export default service; diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/assets/theme.less b/web/src/views/plugins/dvadmin3-flow-web/src/assets/theme.less new file mode 100644 index 0000000000000000000000000000000000000000..8a239e0abb85c2aff252a0353d7da0ef1ae76264 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/assets/theme.less @@ -0,0 +1,25 @@ +//主题定制 + +@theme-primary: #1989fa; //主题色,应当与element-ui一致 +@theme-danger: #f56c6c; //主题色,应当与element-ui一致 +@theme-success: #35b881; +@theme-warning: #f78f5f; +@theme-aside-bgc: #f7f7f9; + +@theme-desc-color: #a2a4a8; //辅助文字颜色 +@theme-secondary: #909399; // + +//节点宽度 +@node-width: 220px; +//节点线长 +@node-line-len: 80px; +@node-line-width: 2px; +//节点连线颜色 +@node-line-color: #CACACA; +//流程图背景颜色 +@main-bgc: #F5F6F6; + +.w-node-err{ + border: 1px solid @theme-danger; + box-shadow: 0 0 5px 0 @theme-danger !important; +} diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/components/flowDialog/components/flowRecord.vue b/web/src/views/plugins/dvadmin3-flow-web/src/components/flowDialog/components/flowRecord.vue new file mode 100644 index 0000000000000000000000000000000000000000..efcb0e356b8ba6a53a326e1bdc67dc273a60064b --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/components/flowDialog/components/flowRecord.vue @@ -0,0 +1,107 @@ + + + + + \ No newline at end of file diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/components/flowDialog/components/preChangeContent.vue b/web/src/views/plugins/dvadmin3-flow-web/src/components/flowDialog/components/preChangeContent.vue new file mode 100644 index 0000000000000000000000000000000000000000..098f0e6e058068504515b3ef25f2423c5eff510c --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/components/flowDialog/components/preChangeContent.vue @@ -0,0 +1,39 @@ + + + + + \ No newline at end of file diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/components/flowDialog/index.vue b/web/src/views/plugins/dvadmin3-flow-web/src/components/flowDialog/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..790ab6f08976f036caea9ed39c983df5ecdadf87 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/components/flowDialog/index.vue @@ -0,0 +1,252 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowCC/api.ts b/web/src/views/plugins/dvadmin3-flow-web/src/flowCC/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..65b54b7f09bf72d13b190425fb76a99667e12ff7 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowCC/api.ts @@ -0,0 +1,43 @@ +import { request } from '/@/utils/service'; +import { UserPageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/dvadmin3_flow/flow_data/my_pending_handle/'; +export function GetList(query: UserPageQuery) { + query['handle_status']=3 + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); + +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowCC/crud.tsx b/web/src/views/plugins/dvadmin3-flow-web/src/flowCC/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..5a02d6f85af3241d1d0aeb759bed119eca81eb67 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowCC/crud.tsx @@ -0,0 +1,198 @@ +import * as api from './api'; +import { + dict, + UserPageQuery, + AddReq, + DelReq, + EditReq, + compute, + CreateCrudOptionsProps, + CreateCrudOptionsRet +} from '@fast-crud/fast-crud'; +import {request} from '/@/utils/service'; +import {dictionary} from '/@/utils/dictionary'; +import {successMessage} from '/@/utils/message'; +import {auth} from '/@/utils/authFunction' +import {commonCrudConfig} from "/@/utils/commonCrud"; + +export const createCrudOptions = function ({crudExpose}: CreateCrudOptionsProps): CreateCrudOptionsRet { + const pageRequest = async (query: UserPageQuery) => { + return await api.GetList(query); + }; + const editRequest = async ({form, row}: EditReq) => { + form.id = row.id; + return await api.UpdateObj(form); + }; + const delRequest = async ({row}: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({form}: AddReq) => { + return await api.AddObj(form); + }; + + + return { + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + add: { + show: false + } + } + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 80, + buttons: { + view: { + show: false, + }, + edit: { + iconRight: 'Edit', + type: 'text', + show:false + }, + remove: { + iconRight: 'Delete', + type: 'text', + show:false + }, + }, + }, + form: { + col: {span: 24}, + labelWidth: '110px', + wrapper: { + is: 'el-dialog', + width: '600px', + }, + }, + columns: { + _index: { + title: '序号', + form: {show: false}, + column: { + //type: 'index', + align: 'center', + width: '70px', + columnSetDisabled: true, //禁止在列设置中选择 + //@ts-ignore + formatter: (context) => { + //计算序号,你可以自定义计算规则,此处为翻页累加 + let index = context.index ?? 1; + let pagination: any = crudExpose!.crudBinding.value.pagination; + return ((pagination.currentPage ?? 1) - 1) * pagination.pageSize + index + 1; + }, + }, + }, + no:{ + title:"流水号", + search: { + show: true, + component: { + props: { + clearable: true, + }, + placeholder: '请输入', + }, + }, + column: { + width: '160px', + align: 'center' + } + }, + name:{ + title:'名称', + column: { + width: '250px', + align: 'center' + } + }, + models_name:{ + title:'库表', + column: { + width: '140px', + align: 'center' + } + }, + start_user_name:{ + title:'发起人', + column: { + width: '120px', + align: 'center' + } + }, + "current_node.name":{ + title:'当前节点', + column: { + width: '160px', + align: 'center' + } + }, + pre_user:{ + title:"预处理人", + column: { + width: '160px', + align: 'center' + } + }, + pre_role:{ + title:"预处理角色", + column: { + width: '160px', + align: 'center' + } + }, + pre_dept:{ + title:"预处理部门", + column: { + width: '160px', + align: 'center' + } + }, + status:{ + title:'状态', + type:'dict-select', + column: { + fixed: 'right', + width: '100px', + align: 'center' + }, + dict:dict({data:[ + {value:0,label: '进行中'}, + {value:1,label: '审核通过'}, + {value:2,label: '审核驳回'}, + {value:3,label: '审核撤销'}, + ]}) + }, + completed_time:{ + title:'完成时间', + column: { + width: '160px', + align: 'center' + } + }, + ...commonCrudConfig({ + create_datetime: { + search: false, + table: true, + }, + update_datetime: { + table: true, + }, + dept_belong_id: { + table: false, + } + }) + + }, + }, + }; +}; diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowCC/index.vue b/web/src/views/plugins/dvadmin3-flow-web/src/flowCC/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..1a8ae505ef592cddb5c2422c0cb5a4035ef88377 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowCC/index.vue @@ -0,0 +1,30 @@ + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowData/api.ts b/web/src/views/plugins/dvadmin3-flow-web/src/flowData/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..b8256bf313c1019a385fdabc7bdc328664037dc9 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowData/api.ts @@ -0,0 +1,42 @@ +import { request } from '/@/utils/service'; +import { UserPageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/dvadmin3_flow/flow_data/get_all_flow_data/'; +export function GetList(query: UserPageQuery) { + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); + +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowData/crud.tsx b/web/src/views/plugins/dvadmin3-flow-web/src/flowData/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..b198ee3ef2e4ee4897df853a0b725eb2b891bdb8 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowData/crud.tsx @@ -0,0 +1,198 @@ +import * as api from './api'; +import { + dict, + UserPageQuery, + AddReq, + DelReq, + EditReq, + compute, + CreateCrudOptionsProps, + CreateCrudOptionsRet +} from '@fast-crud/fast-crud'; +import {request} from '/@/utils/service'; +import {dictionary} from '/@/utils/dictionary'; +import {successMessage} from '/@/utils/message'; +import {auth} from '/@/utils/authFunction' +import {commonCrudConfig} from "/@/utils/commonCrud"; + +export const createCrudOptions = function ({crudExpose}: CreateCrudOptionsProps): CreateCrudOptionsRet { + const pageRequest = async (query: UserPageQuery) => { + return await api.GetList(query); + }; + const editRequest = async ({form, row}: EditReq) => { + form.id = row.id; + return await api.UpdateObj(form); + }; + const delRequest = async ({row}: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({form}: AddReq) => { + return await api.AddObj(form); + }; + + + return { + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + add: { + show: false + } + } + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 80, + buttons: { + view: { + show: false, + }, + edit: { + iconRight: 'Edit', + type: 'text', + show:false + }, + remove: { + iconRight: 'Delete', + type: 'text', + show:false + }, + }, + }, + form: { + col: {span: 24}, + labelWidth: '110px', + wrapper: { + is: 'el-dialog', + width: '600px', + }, + }, + columns: { + _index: { + title: '序号', + form: {show: false}, + column: { + //type: 'index', + align: 'center', + width: '70px', + columnSetDisabled: true, //禁止在列设置中选择 + //@ts-ignore + formatter: (context) => { + //计算序号,你可以自定义计算规则,此处为翻页累加 + let index = context.index ?? 1; + let pagination: any = crudExpose!.crudBinding.value.pagination; + return ((pagination.currentPage ?? 1) - 1) * pagination.pageSize + index + 1; + }, + }, + }, + no:{ + title:"流水号", + search: { + show: true, + component: { + props: { + clearable: true, + }, + placeholder: '请输入', + }, + }, + column: { + width: '160px', + align: 'center' + } + }, + name:{ + title:'名称', + column: { + width: '250px', + align: 'center' + } + }, + models_name:{ + title:'库表', + column: { + width: '140px', + align: 'center' + } + }, + start_user_name:{ + title:'发起人', + column: { + width: '120px', + align: 'center' + } + }, + "current_node.name":{ + title:'当前节点', + column: { + width: '160px', + align: 'center' + } + }, + pre_user:{ + title:"预处理人", + column: { + width: '160px', + align: 'center' + } + }, + pre_role:{ + title:"预处理角色", + column: { + width: '160px', + align: 'center' + } + }, + pre_dept:{ + title:"预处理部门", + column: { + width: '160px', + align: 'center' + } + }, + status:{ + title:'状态', + type:'dict-select', + column: { + fixed: 'right', + width: '100px', + align: 'center' + }, + dict:dict({data:[ + {value:0,label: '进行中'}, + {value:1,label: '审核通过'}, + {value:2,label: '审核驳回'}, + {value:3,label: '审核撤销'}, + ]}) + }, + run_time:{ + title:'任务时间', + column: { + width: '160px', + align: 'center' + } + }, + ...commonCrudConfig({ + create_datetime: { + search: false, + table: true, + }, + update_datetime: { + table: true, + }, + dept_belong_id: { + table: false, + } + }) + + }, + }, + }; +}; diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowData/index.vue b/web/src/views/plugins/dvadmin3-flow-web/src/flowData/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..1e4e16676948ff251f3d2ea80543b0f22d550beb --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowData/index.vue @@ -0,0 +1,30 @@ + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowIdo/api.ts b/web/src/views/plugins/dvadmin3-flow-web/src/flowIdo/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..1ce2f4e1aa20529bf7a4653930a1ff7c83069ab0 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowIdo/api.ts @@ -0,0 +1,43 @@ +import { request } from '/@/utils/service'; +import { UserPageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/dvadmin3_flow/flow_data/my_pending_handle/'; +export function GetList(query: UserPageQuery) { + query['handle_status']=1 + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); + +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowIdo/crud.tsx b/web/src/views/plugins/dvadmin3-flow-web/src/flowIdo/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..5a02d6f85af3241d1d0aeb759bed119eca81eb67 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowIdo/crud.tsx @@ -0,0 +1,198 @@ +import * as api from './api'; +import { + dict, + UserPageQuery, + AddReq, + DelReq, + EditReq, + compute, + CreateCrudOptionsProps, + CreateCrudOptionsRet +} from '@fast-crud/fast-crud'; +import {request} from '/@/utils/service'; +import {dictionary} from '/@/utils/dictionary'; +import {successMessage} from '/@/utils/message'; +import {auth} from '/@/utils/authFunction' +import {commonCrudConfig} from "/@/utils/commonCrud"; + +export const createCrudOptions = function ({crudExpose}: CreateCrudOptionsProps): CreateCrudOptionsRet { + const pageRequest = async (query: UserPageQuery) => { + return await api.GetList(query); + }; + const editRequest = async ({form, row}: EditReq) => { + form.id = row.id; + return await api.UpdateObj(form); + }; + const delRequest = async ({row}: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({form}: AddReq) => { + return await api.AddObj(form); + }; + + + return { + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + add: { + show: false + } + } + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 80, + buttons: { + view: { + show: false, + }, + edit: { + iconRight: 'Edit', + type: 'text', + show:false + }, + remove: { + iconRight: 'Delete', + type: 'text', + show:false + }, + }, + }, + form: { + col: {span: 24}, + labelWidth: '110px', + wrapper: { + is: 'el-dialog', + width: '600px', + }, + }, + columns: { + _index: { + title: '序号', + form: {show: false}, + column: { + //type: 'index', + align: 'center', + width: '70px', + columnSetDisabled: true, //禁止在列设置中选择 + //@ts-ignore + formatter: (context) => { + //计算序号,你可以自定义计算规则,此处为翻页累加 + let index = context.index ?? 1; + let pagination: any = crudExpose!.crudBinding.value.pagination; + return ((pagination.currentPage ?? 1) - 1) * pagination.pageSize + index + 1; + }, + }, + }, + no:{ + title:"流水号", + search: { + show: true, + component: { + props: { + clearable: true, + }, + placeholder: '请输入', + }, + }, + column: { + width: '160px', + align: 'center' + } + }, + name:{ + title:'名称', + column: { + width: '250px', + align: 'center' + } + }, + models_name:{ + title:'库表', + column: { + width: '140px', + align: 'center' + } + }, + start_user_name:{ + title:'发起人', + column: { + width: '120px', + align: 'center' + } + }, + "current_node.name":{ + title:'当前节点', + column: { + width: '160px', + align: 'center' + } + }, + pre_user:{ + title:"预处理人", + column: { + width: '160px', + align: 'center' + } + }, + pre_role:{ + title:"预处理角色", + column: { + width: '160px', + align: 'center' + } + }, + pre_dept:{ + title:"预处理部门", + column: { + width: '160px', + align: 'center' + } + }, + status:{ + title:'状态', + type:'dict-select', + column: { + fixed: 'right', + width: '100px', + align: 'center' + }, + dict:dict({data:[ + {value:0,label: '进行中'}, + {value:1,label: '审核通过'}, + {value:2,label: '审核驳回'}, + {value:3,label: '审核撤销'}, + ]}) + }, + completed_time:{ + title:'完成时间', + column: { + width: '160px', + align: 'center' + } + }, + ...commonCrudConfig({ + create_datetime: { + search: false, + table: true, + }, + update_datetime: { + table: true, + }, + dept_belong_id: { + table: false, + } + }) + + }, + }, + }; +}; diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowIdo/index.vue b/web/src/views/plugins/dvadmin3-flow-web/src/flowIdo/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..064b04dfc700309af030ed4bfc1becf0d247a81c --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowIdo/index.vue @@ -0,0 +1,30 @@ + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowManagement/api.ts b/web/src/views/plugins/dvadmin3-flow-web/src/flowManagement/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..103b3674d65fd81ccc710e9d01f4726096c17613 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowManagement/api.ts @@ -0,0 +1,42 @@ +import { request } from '/@/utils/service'; +import { UserPageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/dvadmin3_flow/flow_info/'; +export function GetList(query: UserPageQuery) { + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); + +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowManagement/components/flowDesigner.vue b/web/src/views/plugins/dvadmin3-flow-web/src/flowManagement/components/flowDesigner.vue new file mode 100644 index 0000000000000000000000000000000000000000..4b37c6f92d057425d162e17d66197bedbb4c18a7 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowManagement/components/flowDesigner.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowManagement/components/flowProcess.vue b/web/src/views/plugins/dvadmin3-flow-web/src/flowManagement/components/flowProcess.vue new file mode 100644 index 0000000000000000000000000000000000000000..ada0a2d6e879a031856c6ff305d10905c3caf67d --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowManagement/components/flowProcess.vue @@ -0,0 +1,44 @@ + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowManagement/crud.tsx b/web/src/views/plugins/dvadmin3-flow-web/src/flowManagement/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..e5c21082bc513ce57e2db533f4cd57fc64aaebb8 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowManagement/crud.tsx @@ -0,0 +1,164 @@ +import * as api from './api'; +import { dict, UserPageQuery, AddReq, DelReq, EditReq, compute, CreateCrudOptionsProps, CreateCrudOptionsRet } from '@fast-crud/fast-crud'; +import { request } from '/@/utils/service'; +import { dictionary } from '/@/utils/dictionary'; +import { successMessage } from '/@/utils/message'; +import { auth } from '/@/utils/authFunction'; +import {commonCrudConfig} from "/@/utils/commonCrud"; + +export const createCrudOptions = function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOptionsRet { + const pageRequest = async (query: UserPageQuery) => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + form.id = row.id; + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + return { + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + add: { + show: false, + }, + }, + }, + rowHandle: { + //固定右侧 + fixed: 'right', + align: 'center', + width: 180, + buttons: { + view: { + show: false, + }, + edit: { + iconRight: 'Edit', + type: 'text', + show: false, + }, + remove: { + iconRight: 'Delete', + type: 'text', + }, + }, + }, + form: { + col: { span: 24 }, + labelWidth: '110px', + wrapper: { + is: 'el-dialog', + width: '600px', + }, + }, + columns: { + _index: { + title: '序号', + form: { show: false }, + column: { + //type: 'index', + align: 'center', + width: '70px', + columnSetDisabled: true, //禁止在列设置中选择 + //@ts-ignore + formatter: (context) => { + //计算序号,你可以自定义计算规则,此处为翻页累加 + let index = context.index ?? 1; + let pagination: any = crudExpose!.crudBinding.value.pagination; + return ((pagination.currentPage ?? 1) - 1) * pagination.pageSize + index + 1; + }, + }, + }, + name: { + title: '流程名称', + search: { + show: true, + component: { + props: { + clearable: true, + }, + placeholder: '请输入', + }, + }, + column: { + width: '200px', + align: 'center' + } + }, + icon: { + title: '流程图标', + column: { + width: '100px', + align: 'center' + } + }, + model_name: { + title: '库表模型', + column: { + minWidth: '120px', + align: 'center' + } + }, + operation: { + title: '库表操作', + type: 'dict-select', + align: 'center', + dict: dict({ + label: 'label', + value: 'value', + data: [ + { + value: 'create', + label: '新增', + }, + { + value: 'update', + label: '编辑', + }, + { + value: 'delete', + label: '删除', + }, + ], + }), + }, + status: { + title: '状态', + type: 'dict-select', + dict: dict({ + data: [ + { label: '待发布', value: 0 }, + { label: '启用', value: 1 }, + { label: '停用', value: 2 }, + ], + }), + }, + ...commonCrudConfig({ + create_datetime: { + search: false, + table: true, + }, + update_datetime: { + table: true, + }, + dept_belong_id: { + table: false, + } + }) + }, + }, + }; +}; diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowManagement/index.vue b/web/src/views/plugins/dvadmin3-flow-web/src/flowManagement/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..30d08f98bbf52489579347d9a9117855836da292 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowManagement/index.vue @@ -0,0 +1,102 @@ + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowSubmitted/api.ts b/web/src/views/plugins/dvadmin3-flow-web/src/flowSubmitted/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..a22ac9c010e91a95b6bedd7a9f70b470033c854b --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowSubmitted/api.ts @@ -0,0 +1,42 @@ +import { request } from '/@/utils/service'; +import { UserPageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/dvadmin3_flow/flow_data/my_pending_handle/'; +export function GetList(query: UserPageQuery) { + query['handle_status']=2 + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowSubmitted/crud.tsx b/web/src/views/plugins/dvadmin3-flow-web/src/flowSubmitted/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..8aca972991bd3c55f766c5244a052ce7990fb7be --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowSubmitted/crud.tsx @@ -0,0 +1,198 @@ +import * as api from './api'; +import { + dict, + UserPageQuery, + AddReq, + DelReq, + EditReq, + compute, + CreateCrudOptionsProps, + CreateCrudOptionsRet +} from '@fast-crud/fast-crud'; +import {request} from '/@/utils/service'; +import {dictionary} from '/@/utils/dictionary'; +import {successMessage} from '/@/utils/message'; +import {auth} from '/@/utils/authFunction' +import {commonCrudConfig} from "/@/utils/commonCrud"; + +export const createCrudOptions = function ({crudExpose}: CreateCrudOptionsProps): CreateCrudOptionsRet { + const pageRequest = async (query: UserPageQuery) => { + return await api.GetList(query); + }; + const editRequest = async ({form, row}: EditReq) => { + form.id = row.id; + return await api.UpdateObj(form); + }; + const delRequest = async ({row}: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({form}: AddReq) => { + return await api.AddObj(form); + }; + + + return { + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + add: { + show: false + } + } + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 80, + buttons: { + view: { + show: false, + }, + edit: { + iconRight: 'Edit', + type: 'text', + show:false + }, + remove: { + iconRight: 'Delete', + type: 'text', + show:false + }, + }, + }, + form: { + col: {span: 24}, + labelWidth: '110px', + wrapper: { + is: 'el-dialog', + width: '600px', + }, + }, + columns: { + _index: { + title: '序号', + form: {show: false}, + column: { + //type: 'index', + align: 'center', + width: '70px', + columnSetDisabled: true, //禁止在列设置中选择 + //@ts-ignore + formatter: (context) => { + //计算序号,你可以自定义计算规则,此处为翻页累加 + let index = context.index ?? 1; + let pagination: any = crudExpose!.crudBinding.value.pagination; + return ((pagination.currentPage ?? 1) - 1) * pagination.pageSize + index + 1; + }, + }, + }, + no:{ + title:"流水号", + search: { + show: true, + component: { + props: { + clearable: true, + }, + placeholder: '请输入', + }, + }, + column: { + width: '160px', + align: 'center' + } + }, + name:{ + title:'名称', + column: { + width: '250px', + align: 'center' + } + }, + models_name:{ + title:'库表', + column: { + width: '140px', + align: 'center' + } + }, + start_user_name:{ + title:'发起人', + column: { + width: '120px', + align: 'center' + } + }, + "current_node.name":{ + title:'当前节点', + column: { + width: '160px', + align: 'center' + } + }, + pre_user:{ + title:"预处理人", + column: { + width: '160px', + align: 'center' + } + }, + pre_role:{ + title:"预处理角色", + column: { + width: '160px', + align: 'center' + } + }, + pre_dept:{ + title:"预处理部门", + column: { + width: '160px', + align: 'center' + } + }, + status:{ + title:'状态', + type:'dict-select', + column: { + fixed: 'right', + width: '100px', + align: 'center' + }, + dict:dict({data:[ + {value:0,label: '进行中'}, + {value:1,label: '审核通过'}, + {value:2,label: '审核驳回'}, + {value:3,label: '审核撤销'}, + ]}) + }, + completed_time:{ + title:'完成时间', + column: { + width: '160px', + align: 'center' + } + }, + ...commonCrudConfig({ + create_datetime: { + search: false, + table: true, + }, + update_datetime: { + table: true, + }, + dept_belong_id: { + table: false, + } + }) + + }, + }, + }; +}; diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowSubmitted/index.vue b/web/src/views/plugins/dvadmin3-flow-web/src/flowSubmitted/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..52dfad293d0d01fc6d3a22a6f577b91ddfd2b74b --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowSubmitted/index.vue @@ -0,0 +1,31 @@ + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowTodo/api.ts b/web/src/views/plugins/dvadmin3-flow-web/src/flowTodo/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..fbb40ac8f5737e32b0ac0adb679af4691689acc7 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowTodo/api.ts @@ -0,0 +1,46 @@ +import { request } from '/@/utils/service'; +import { UserPageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/dvadmin3_flow/flow_data/my_pending_handle/'; +export function GetList(query: UserPageQuery) { + query['handle_status']=0 + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); + +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + params: { + handle_status:0 + } + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowTodo/crud.tsx b/web/src/views/plugins/dvadmin3-flow-web/src/flowTodo/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..b558827c8f7c8cc197a9a39291b4144abee5010f --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowTodo/crud.tsx @@ -0,0 +1,191 @@ +import * as api from './api'; +import { + dict, + UserPageQuery, + AddReq, + DelReq, + EditReq, + compute, + CreateCrudOptionsProps, + CreateCrudOptionsRet +} from '@fast-crud/fast-crud'; +import {request} from '/@/utils/service'; +import {dictionary} from '/@/utils/dictionary'; +import {successMessage} from '/@/utils/message'; +import {auth} from '/@/utils/authFunction' +import {commonCrudConfig} from "/@/utils/commonCrud"; + +export const createCrudOptions = function ({crudExpose}: CreateCrudOptionsProps): CreateCrudOptionsRet { + const pageRequest = async (query: UserPageQuery) => { + return await api.GetList(query); + }; + const editRequest = async ({form, row}: EditReq) => { + form.id = row.id; + return await api.UpdateObj(form); + }; + const delRequest = async ({row}: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({form}: AddReq) => { + return await api.AddObj(form); + }; + + + return { + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + add: { + show: false + } + } + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 80, + buttons: { + view: { + show: false, + }, + edit: { + iconRight: 'Edit', + type: 'text', + show:false + }, + remove: { + iconRight: 'Delete', + type: 'text', + show:false + }, + }, + }, + form: { + col: {span: 24}, + labelWidth: '110px', + wrapper: { + is: 'el-dialog', + width: '600px', + }, + }, + columns: { + _index: { + title: '序号', + form: {show: false}, + column: { + //type: 'index', + align: 'center', + width: '70px', + columnSetDisabled: true, //禁止在列设置中选择 + //@ts-ignore + formatter: (context) => { + //计算序号,你可以自定义计算规则,此处为翻页累加 + let index = context.index ?? 1; + let pagination: any = crudExpose!.crudBinding.value.pagination; + return ((pagination.currentPage ?? 1) - 1) * pagination.pageSize + index + 1; + }, + }, + }, + no:{ + title:"流水号", + search: { + show: true, + component: { + props: { + clearable: true, + }, + placeholder: '请输入', + }, + }, + column: { + width: '160px', + align: 'center' + } + }, + name:{ + title:'名称', + column: { + width: '250px', + align: 'center' + } + }, + models_name:{ + title:'库表', + column: { + width: '140px', + align: 'center' + } + }, + start_user_name:{ + title:'发起人', + column: { + width: '120px', + align: 'center' + } + }, + "current_node.name":{ + title:'当前节点', + column: { + width: '160px', + align: 'center' + } + }, + pre_user:{ + title:"预处理人", + column: { + width: '160px', + align: 'center' + } + }, + pre_role:{ + title:"预处理角色", + column: { + width: '160px', + align: 'center' + } + }, + pre_dept:{ + title:"预处理部门", + column: { + width: '160px', + align: 'center' + } + }, + status:{ + title:'状态', + type:'dict-select', + column: { + fixed: 'right', + width: '100px', + align: 'center' + }, + dict:dict({data:[ + {value:0,label: '进行中'}, + {value:1,label: '审核通过'}, + {value:2,label: '审核驳回'}, + {value:3,label: '审核撤销'}, + ]}) + }, + ...commonCrudConfig({ + create_datetime: { + search: false, + table: true, + }, + update_datetime: { + table: true, + }, + dept_belong_id: { + table: false, + } + }) + + }, + }, + }; +}; diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/flowTodo/index.vue b/web/src/views/plugins/dvadmin3-flow-web/src/flowTodo/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..090b48ca5994b42e8467e54a662edda4d28139f0 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/flowTodo/index.vue @@ -0,0 +1,35 @@ + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/utils/ConditionCompare.js b/web/src/views/plugins/dvadmin3-flow-web/src/utils/ConditionCompare.js new file mode 100644 index 0000000000000000000000000000000000000000..c5a57a6f07f20b44eaaccee213a28aeb2e7632a0 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/utils/ConditionCompare.js @@ -0,0 +1,96 @@ +//流程条件比较设置选项 +export const CompareOptions = { + number: [ + {name: '大于', symbol: 'GT'}, + {name: '小于', symbol: 'LT'}, + {name: '等于', symbol: 'EQ'}, + {name: '大于等于', symbol: 'GT_EQ'}, + {name: '小于等于', symbol: 'LT_EQ'}, + {name: '不等于', symbol: 'NEQ'}, + {name: '包含在', symbol: 'IN'}, + {name: '介于两者间(含首尾)', symbol: 'BT'}, + ], + string: [ + {name: '含有字符串', symbol: 'HAS'}, + {name: '包含在', symbol: 'IN'}, + {name: '等于', symbol: 'EQ'}, + {name: '不等于', symbol: 'NEQ'} + ], + array: [ + {name: '含有', symbol: 'HAS'}, + {name: '不含有', symbol: 'NHAS'}, + ], + date: [ + {name: '在之前<', symbol: 'BF'}, + {name: '在之后>', symbol: 'AF'}, + {name: '在之间', symbol: 'CT'}, + {name: '在之外', symbol: 'NCT'} + ], + dateRange: [ + {name: '在本期间', symbol: 'CT'}, + {name: '在本期间外', symbol: 'NCT'}, + {name: '时长大于', symbol: 'GE'}, + {name: '时长小于', symbol: 'LE'}, + {name: '时长等于', symbol: 'EQ'} + ], + org: [ + {name: '本人/部门属于', symbol: 'IN'}, + {name: '本人/部门不属于', symbol: 'NIN'}, + ], + role: [ + {name: '拥有角色', symbol: 'HAS'}, + {name: '没有角色', symbol: 'NHAS'}, + ] +} + +const getCdName = (cd) => { + const options = CompareOptions[ProcessCondition[cd.group][cd.type].type] + const index = options.findIndex(v => v.symbol === cd.compare) + return (options[index] || {}).name || '?' +} + +//流程条件支持对象 +export const ProcessCondition = { + INITIATOR: { + Org: { + type: 'org', + desc(cd) { + return `发起人${getCdName(cd)} ${(cd.compareVal || []).map(v => v.name).join('、')}` + } + }, + Role: { + type: 'role', + desc(cd) { + return `发起人${getCdName(cd)} ${cd.compareVal.map(v => v.name).join('、')}` + } + } + }, + FORM: { + TextInput: { + type: 'string', + desc(cd) { + return `${cd.name[1]} ${getCdName(cd)} ${cd.compareVal.join('、')}` + } + }, + NumberInput: { + type: 'number', + desc(cd) { + return `${cd.name[1]} ${getCdName(cd)} ${cd.compareVal.join('、')}` + } + }, + }, + DATABASE:{ + TextInput: { + type: 'string', + desc(cd) { + return `${cd.name[1]} ${getCdName(cd)} ${cd.compareVal.join('、')}` + } + }, + NumberInput: { + type: 'number', + desc(cd) { + return `${cd.name[1]} ${getCdName(cd)} ${cd.compareVal.join('、')}` + } + }, + } +} diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/utils/GlobalFunc.js b/web/src/views/plugins/dvadmin3-flow-web/src/utils/GlobalFunc.js new file mode 100644 index 0000000000000000000000000000000000000000..4e053050ca26e92959314104019050e2c0ffc0d0 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/utils/GlobalFunc.js @@ -0,0 +1,31 @@ +import {getRandNodeId} from "./ProcessUtil.js"; + +export function generateStr(len) { + let result = ''; + const characters = 'abcdefghijklmnopqrstuvwxyz0123456789'; + let charactersLength = characters.length; + for (let i = 0; i < len; i++) { + result += characters.charAt(Math.floor(Math.random() * charactersLength)); + } + return result; +} + + +export function deepCopy(obj){ + return JSON.parse(JSON.stringify(obj)) +} + +export function delField(cols, i){ + cols.splice(i, 1) +} + +export function copyField(cols, i){ + const col = deepCopy(cols[i]) + col.id = getRandNodeId() + col.key = col.type + '_' + generateStr(8) + cols.push(col) +} + +export default { + deepCopy +} diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/utils/ProcessUtil.js b/web/src/views/plugins/dvadmin3-flow-web/src/utils/ProcessUtil.js new file mode 100644 index 0000000000000000000000000000000000000000..03bc231529349ef68add5b906364b1de5b52ed38 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/utils/ProcessUtil.js @@ -0,0 +1,26 @@ +//获取随机节点id +export function getRandNodeId(){ + //前缀node_ + 时间戳 + 4位随机数 + return `node_${new Date().getTime()}${Math.floor(Math.random() * 10000).toString().padStart(4, '0')}` +} + +//重载所有的节点id +export function reloadNodeId(nodes){ + if(Array.isArray(nodes)){ + nodes.forEach(node => { + if (node.type === 'GATEWAY'){ + //递归网关,网关id加上一个后缀 + node.id = getRandNodeId() + '_fork' + //分支头部节点 + reloadNodeId(node.props.branch) + //分支 + reloadNodeId(node.branch) + }else { + node.id = getRandNodeId() + } + }) + }else { + nodes.id = getRandNodeId() + } +} + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/admin/BaseSetting.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/admin/BaseSetting.vue new file mode 100644 index 0000000000000000000000000000000000000000..e4260b407d70cc8887605eeaee0a7f2ae72aac6e --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/admin/BaseSetting.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/admin/FormProcessDesigner.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/admin/FormProcessDesigner.vue new file mode 100644 index 0000000000000000000000000000000000000000..64c4692cb9e0ef6e7c7b51d08ba139ceaeff9922 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/admin/FormProcessDesigner.vue @@ -0,0 +1,305 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/admin/PlusSetting.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/admin/PlusSetting.vue new file mode 100644 index 0000000000000000000000000000000000000000..90754d13c1b6a03af9234c7db6b5578c3a16527a --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/admin/PlusSetting.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/admin/ProcessDesigner.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/admin/ProcessDesigner.vue new file mode 100644 index 0000000000000000000000000000000000000000..992c0c146e5166959c77390433c268e33d95a51d --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/admin/ProcessDesigner.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/admin/config/FormPermConf.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/admin/config/FormPermConf.vue new file mode 100644 index 0000000000000000000000000000000000000000..5aa97adf0ff8da8eb24fb6831e232b21b7df4d8e --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/admin/config/FormPermConf.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/common/WDialog.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/common/WDialog.vue new file mode 100644 index 0000000000000000000000000000000000000000..c90cf1667e6a27f705a74e4dd320c1c4d5678160 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/common/WDialog.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/common/WOrgPicker.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/common/WOrgPicker.vue new file mode 100644 index 0000000000000000000000000000000000000000..600eae28cd18313228dd75b930e1cd21df9aa6b7 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/common/WOrgPicker.vue @@ -0,0 +1,392 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/common/WOrgTags.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/common/WOrgTags.vue new file mode 100644 index 0000000000000000000000000000000000000000..910aa406d0c211aef0ebd01e82d9c7b3a308a1a8 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/common/WOrgTags.vue @@ -0,0 +1,138 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/FormInterface.js b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/FormInterface.js new file mode 100644 index 0000000000000000000000000000000000000000..ca79e4ad2cfa7b8890082f9266cc0f7d43ed341b --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/FormInterface.js @@ -0,0 +1,127 @@ +/** + * 表单接口,用来便于集成不同的表单,方便自由替换 + */ +import {computed, ref} from "vue"; + +//表单的json对象 +export const formJson = ref([]); +//表单ref对象 +export const formRef = ref(); +//表单内每个字段ID,与对应字段的配置 +export const formItemMap = new Map() +//拍平以后的表单字段列表 +export const _formFields = computed(() => resolveFormJson(formJson.value)) + +//表单渲染完毕 +export var onRender; + + +//表单校验 +export var validate; + +/** + * 表单初始化函数 + * @param ref 表单的ref + * @param json 表单的json + */ +export const formInit = (ref, json) => { + if (ref) { + formRef.value = ref.value + } + formJson.value = json +} + +/** + * 加载表单组件选项 + * @param item 表单组件 + * @param items 集合 + * @param preName 前置名称 + * @param addItemFunc 添加的函数 + */ +const loadFormItem = (item, items, preName, addItemFunc) => { + formItemMap.set(item.id, item) + if (Array.isArray(item)) { + item.forEach(it => loadFormItem(it, items, null, addItemFunc)) + } else if (item.props.isContainer) { + item.props.columns.forEach(it => loadFormItem(it, items, null, addItemFunc)) + } else if (item.type === 'TableList') { + //处理表格 + addItemFunc(item, preName) + item.props.columns.forEach(col => loadFormItem(col, items, item.name, addItemFunc)) + } else { + addItemFunc(item, preName) + } +} + +/** + * 获取表单数据 + * @returns {fieldId: 值} 表单值 + */ +export function getFormData() { + return {} +} + +/** + * 解析表单json,拍平成数组 + * @param json 表单json + * @returns {*[]} 表单组件列表 + */ +export const resolveFormJson = (json) => { + let items = [] + formItemMap.clear() + loadFormItem(json, items, null, item => items.push(item)) + return items +} + +/** + * 获取表单字段列表 + * @returns [{表单字段信息}] + */ +export const getFormPermFields = (defaultPerm = 'R') => { + let items = [] + formItemMap.clear() //清空map + const addItem = (item, preName) => { + items.push({ + id: item.id, + key: item.key, + name: `${preName ? preName + '.' : ''}${item.name}`, + required: item.props.required, + perm: item.perm ? item.perm : defaultPerm + }) + } + loadFormItem(formJson.value, items, null, addItem) + return items +} + + +/** + * 显示表单字段 + * @param fieldIds 字段id列表 + */ +export function showFields(fieldIds) { + +} + +/** + * 隐藏表单字段 + * @param fieldIds 字段id列表 + */ +export function hideFields(fieldIds) { + +} + +/** + * 禁用表单字段 + * @param fieldIds 字段id列表 + */ +export function disableFields(fieldIds) { + +} + +/** + * 允许编辑表单字段 + * @param fieldIds 字段id列表 + */ +export function enableFields(fieldIds) { + +} diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/FormComponentMixin.js b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/FormComponentMixin.js new file mode 100644 index 0000000000000000000000000000000000000000..480c9a376f93e720d9a757be81f14e48666a0fe9 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/FormComponentMixin.js @@ -0,0 +1,42 @@ +//节点复用逻辑 +export default { + props: { + config: { + type: Object, + default: () => { + return {} + } + }, + mode: { + type: String, + default: 'normal' //组件模式,free设计模式,normal 编辑模式, read 阅读模式,disable 禁用模式 + }, + active: { + type: Object + }, + modelValue: Object | Number | Array | String + }, + computed: { + _active: function (props, emit){ + return { + get() { + return props.active + }, + set(val) { + emit('update:active', val) + } + } + }, + _value: function (props, emit){ + return { + get() { + return props.modelValue + }, + set(val) { + emit('update:modelValue', val) + } + } + } + }, + emits: ['update:modelValue', 'update:active', 'copy', 'delete'] +} diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/FormComponents.js b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/FormComponents.js new file mode 100644 index 0000000000000000000000000000000000000000..5a0d55ba6fcc4b9e5f02963f7c7f98208c83cb8e --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/FormComponents.js @@ -0,0 +1,160 @@ +import {defineAsyncComponent} from "vue"; +const Components = import.meta.glob('./component/*.vue') +const ComponentConfigs = import.meta.glob('./config/*.vue') + +//批量导出所有的component下面的表单组件 +export const FormComponents = {} +Object.keys(Components).forEach((key) => { + const name = key.replace(/^.+\/([^/]+)\.vue$/, '$1') + FormComponents[name] = defineAsyncComponent(Components[key]) +}) + +export const FormComponentConfigs = {} +Object.keys(ComponentConfigs).forEach((key) => { + const name = key.replace(/^.+\/([^/]+)\.vue$/, '$1') + FormComponentConfigs[name] = defineAsyncComponent(ComponentConfigs[key]) +}) + +export const components = [ + { + name: '布局组件', + components: [ + { + icon: 'tabler:layout-columns', + type: 'SpanLayout', + name: '分栏布局', + props: { + isContainer: true, + span: 24, + number: 2, + gutter: 5, + columns: [] + } + } + ] + }, + { + name: '基础组件', + components: [ + { + icon: 'iconamoon:edit', + type: 'TextInput', + name: '单行输入框', + props: { + required: false + } + }, + { + name: '多行输入框', + type: 'TextareaInput', + icon: 'solar:list-down-line-duotone', + props: { + required: false, + max: 255 + } + }, + { + name: '数字输入框', + type: 'NumberInput', + icon: 'tabler:123', + key: null, + props: { + required: false, + } + }, + { + name: '评分', + type: 'Score', + icon: 'fluent:star-12-regular', + props: { + required: false, + color: '#f0a732', + max: 5, + showScore: true, + enableHalf: false, + icon: 'StarFilled', + } + }, + { + name: '单选框', + type: 'SinglePicker', + icon: 'mdi:radiobox-marked', + props: { + required: false, + expanding: false, + options: ['选项1', '选项2'], + } + }, + { + name: '多选框', + type: 'MultiplePicker', + icon: 'mingcute:multiselect-line', + props: { + required: false, + expanding: false, + options: ['选项1', '选项2'] + } + }, + { + name: '日期时间点', + type: 'DateTimePicker', + icon: 'material-symbols:calendar-clock-outline', + props: { + required: false, + format: 'YYYY-MM-DD HH:mm' + } + }, + { + name: '日期时间区间', + type: 'DateTimeRangePicker', + icon: 'material-symbols:calendar-month-outline', + props: { + required: false, + placeholder: ['开始时间', '结束时间'], + format: 'YYYY-MM-DD HH:mm', + showLength: false + } + }, + { + name: '人员选择', + type: 'UserPicker', + icon: 'gravity-ui:persons', + props: { + required: false, + multiple: false + } + }, + { + name: '部门选择', + type: 'DeptPicker', + icon: 'fluent:organization-24-regular', + props: { + required: false, + multiple: false + } + } + ] + }, + { + name: '高级组件', + components: [ + { + name: '明细表', + type: 'TableList', + icon: 'mdi:table', + props: { + required: false, + showBorder: true, + showSummary: false, + summaryColumns: [], + maxSize: 0, //最大条数,为0则不限制 + columns:[] //列设置 + } + } + ] + }, +] + +export default { + components +} diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/FormDesigner.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/FormDesigner.vue new file mode 100644 index 0000000000000000000000000000000000000000..56c480cf6f82b0914537eb1e6cec2b4b5a556474 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/FormDesigner.vue @@ -0,0 +1,385 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/FormRender.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/FormRender.vue new file mode 100644 index 0000000000000000000000000000000000000000..d44c3983803695c0b137378b5f71bb83c4f3aa11 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/FormRender.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/DateTimePicker.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/DateTimePicker.vue new file mode 100644 index 0000000000000000000000000000000000000000..3ddaebe5c52020a3046cd33846ed7858cb5c3cae --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/DateTimePicker.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/DateTimeRangePicker.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/DateTimeRangePicker.vue new file mode 100644 index 0000000000000000000000000000000000000000..0c90057ae9690289d4c3f0841bdb29c72913ccf1 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/DateTimeRangePicker.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/DeptPicker.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/DeptPicker.vue new file mode 100644 index 0000000000000000000000000000000000000000..a30e002312405c450324e5fb4cb56fb73b8c2de7 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/DeptPicker.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/FormComponent.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/FormComponent.vue new file mode 100644 index 0000000000000000000000000000000000000000..c9c4dc065a21163ad493b08a5406627d0092b484 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/FormComponent.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/MultiplePicker.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/MultiplePicker.vue new file mode 100644 index 0000000000000000000000000000000000000000..d8f7f261859a226b8732805541bdf8487130b634 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/MultiplePicker.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/NumberInput.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/NumberInput.vue new file mode 100644 index 0000000000000000000000000000000000000000..ae4edf2b1e675cc2ab10d4816afeff28f6f7f756 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/NumberInput.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/Score.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/Score.vue new file mode 100644 index 0000000000000000000000000000000000000000..1036d40856fef39b141d4e963a095ebd38abc8cb --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/Score.vue @@ -0,0 +1,32 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/SinglePicker.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/SinglePicker.vue new file mode 100644 index 0000000000000000000000000000000000000000..e826d5c84a27e7696d9e672282cc2048b037fb55 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/SinglePicker.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/SpanLayout.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/SpanLayout.vue new file mode 100644 index 0000000000000000000000000000000000000000..63c40e3ea0360b2b81a4ebc049a6b376a74867dc --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/SpanLayout.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/TableList.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/TableList.vue new file mode 100644 index 0000000000000000000000000000000000000000..6e8072f771c752ac190533e8c7e614e636f59773 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/TableList.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/TextInput.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/TextInput.vue new file mode 100644 index 0000000000000000000000000000000000000000..7743dcbd9475a5d2ffb7c70093a325f265a638a7 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/TextInput.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/TextareaInput.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/TextareaInput.vue new file mode 100644 index 0000000000000000000000000000000000000000..bc148c498e801b77597b07aa3d8c0e13294ae6ed --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/TextareaInput.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/UserPicker.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/UserPicker.vue new file mode 100644 index 0000000000000000000000000000000000000000..d5c4a31cf410ba6c0a09b84c5e77e7ace771b985 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/component/UserPicker.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/CommonConfig.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/CommonConfig.vue new file mode 100644 index 0000000000000000000000000000000000000000..11031924a044569f58852c99c4c6dac35a8743de --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/CommonConfig.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/DateTimePicker.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/DateTimePicker.vue new file mode 100644 index 0000000000000000000000000000000000000000..3e0fe7999146ec3fe460f5091d7fbf43de1320ca --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/DateTimePicker.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/DateTimeRangePicker.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/DateTimeRangePicker.vue new file mode 100644 index 0000000000000000000000000000000000000000..a69768d74fc012806aa3a115b1c747e783658176 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/DateTimeRangePicker.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/DeptPicker.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/DeptPicker.vue new file mode 100644 index 0000000000000000000000000000000000000000..9c75d9ebea95675c2f194c0e9fb781a81f1ef273 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/DeptPicker.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/MultiplePicker.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/MultiplePicker.vue new file mode 100644 index 0000000000000000000000000000000000000000..8bea6bba3158e7416e22782445def11561810ee8 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/MultiplePicker.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/NumberInput.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/NumberInput.vue new file mode 100644 index 0000000000000000000000000000000000000000..d5dc3531a3d34cbfd76b5fa8af1079c051c5ab76 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/NumberInput.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/Score.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/Score.vue new file mode 100644 index 0000000000000000000000000000000000000000..c78dda151bd7d22235e66bc0cfd4ecd746679829 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/Score.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/SinglePicker.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/SinglePicker.vue new file mode 100644 index 0000000000000000000000000000000000000000..8bea6bba3158e7416e22782445def11561810ee8 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/SinglePicker.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/SpanLayout.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/SpanLayout.vue new file mode 100644 index 0000000000000000000000000000000000000000..f6dc52674212086cead2e97fe9488792c793e9b2 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/SpanLayout.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/TabelList.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/TabelList.vue new file mode 100644 index 0000000000000000000000000000000000000000..438d33af4a085bb26145919c04912086b07fb065 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/TabelList.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/TextInput.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/TextInput.vue new file mode 100644 index 0000000000000000000000000000000000000000..586aef09b43fd5568394338952c65f4c8bb192cd --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/TextInput.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/TextareaInput.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/TextareaInput.vue new file mode 100644 index 0000000000000000000000000000000000000000..cf48119386e06cdff19bf666d82b11e947f4ef16 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/TextareaInput.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/UserPicker.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/UserPicker.vue new file mode 100644 index 0000000000000000000000000000000000000000..9c75d9ebea95675c2f194c0e9fb781a81f1ef273 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/form/config/UserPicker.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/NodeMixin.js b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/NodeMixin.js new file mode 100644 index 0000000000000000000000000000000000000000..daa3facf87116cb06f9cfa2672ee243e6f5252a3 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/NodeMixin.js @@ -0,0 +1,24 @@ +//节点复用逻辑 +export default { + props: { + designData: Object, + modelValue: Object, + formItems: Object, //表单字段列表 + readonly: Boolean, + index: Number, //处在当前支路位置的索引 + branch: Array, //当前整个支路 + }, + computed: { + _value: function (props, emit){ + return { + get() { + return props.modelValue + }, + set(val) { + emit('update:modelValue', val) + } + } + } + }, + emits: ['update:modelValue', 'delete', 'insertNode', 'select'] +} diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/ProcessNodes.js b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/ProcessNodes.js new file mode 100644 index 0000000000000000000000000000000000000000..0a9aa3de16301ac966604a0dfd32e10ef3ca2c81 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/ProcessNodes.js @@ -0,0 +1,200 @@ +/** + * 需要创建新的节点,统一在本js内进行配置 + */ +import {getRandNodeId} from "../../../utils/ProcessUtil.js"; +import {defineAsyncComponent} from "vue"; + +const Nodes = import.meta.glob('./node/*.vue') +const NodeConfigs = import.meta.glob('./config/*.vue') + +//批量导出所有的component下面的表单组件 +export const NodeComponents = {} +Object.keys(Nodes).forEach((key) => { + const name = key.replace(/^.+\/([^/]+)\.vue$/, '$1') + NodeComponents[name] = defineAsyncComponent(Nodes[key]) +}) + +export const NodeComponentConfigs = {} +Object.keys(NodeConfigs).forEach((key) => { + const name = key.replace(/^.+\/([^/]+)\.vue$/, '$1') + NodeComponentConfigs[name] = defineAsyncComponent(NodeConfigs[key]) +}) + +const createGateway = (type) => { + return { + id: getRandNodeId() + '_fork', + type: 'Gateway', + name: '网关节点', + parentId: null, + childId: null, + props: { + type: type, + branch: [ + //默认创建俩分支 + branchNode[type].createSelf(1), + branchNode[type].createSelf() + ] + }, + branch: [[], []] //默认要创建2个空分支 + } +} + +//定义分支子节点 +const branchNode = { + Exclusive: { + name: '分支条件', + icon: 'Share', + color: '#1BB782', + //创建自身 + createSelf(i) { + return { + id: getRandNodeId(), + type: 'Exclusive', + name: i ? '条件' + i : '默认条件', + parentId: null, + childId: null, + props: { + logic: true, //组关系 + groups: [ //组条件 + { + logic: true, //组内条件关系 + conditions: [] + } + ] + }, + } + }, + create() { + return createGateway('Exclusive') + } + }, + // Parallel: { + // name: '并行分支', + // icon: 'Operation', + // color: '#718dff', + // //创建自身 + // createSelf(i) { + // return { + // id: getRandNodeId(), + // type: 'Parallel', + // name: '并行路径' + (i ? i: 2), + // parentId: null, + // childId: null, + // props: {}, + // } + // }, + // create() { + // return createGateway('Parallel') + // } + // }, +} + +//开始节点 +const Start = { + create() { + return { + id: 'node_root', + type: 'Start', + name: '发起人', + parentId: null, + childId: null, + props: {}, + } + } +} +//审批节点 +const Approval = { + name: '审批人', + icon: 'Stamp', + color: '#EF994F', + create() { + return { + id: getRandNodeId(), + type: 'Approval', + name: '审批人', + parentId: null, + childId: null, + props: { + mode: 'USER', //审批方式:人工处理、自动通过、自动拒绝 + ruleType: 'ASSIGN_USER', //规则类型,用哪种审批规则 + taskMode: { //审批模式 + type: 'OR', + percentage: 100, + }, + needSign: false, + assignUser: [], //指定人员 + rootSelect: { + multiple: false, //是否多选 + }, + leader: { //部门负责人 + level: 1, + emptySkip: false + }, + leaderTop: { + level: 0, //级数 + toEnd: false, //直到终点还是指定级别数 + emptySkip: false + }, + assignDept: { + dept: [], //指定的部门 + type: 'LEADER' //部门主管 + }, + assignRole: [], + noUserHandler: { //无人时的处理规则 + type: 'TO_NEXT', + assigned: [] + }, + sameRoot: { + type: 'TO_SELF', + assigned: [] + }, + timeout: { //超时处理 + enable: false, + time: 1, + timeUnit: 'M', + type: 'TO_PASS', //自动通过 + } + }, + } + } +} + +//抄送节点 +const Cc = { + name: '抄送人', + icon: 'Promotion', + color: '#5994F3', + create() { + return { + id: getRandNodeId(), + type: 'Cc', + name: '抄送人', + parentId: null, + childId: null, + props: { + ruleType: 'ASSIGN_USER', //规则类型,用哪种抄送规则 + assignUser: [], //指定人员 + rootSelect: { + multiple: false, //是否多选 + }, + assignDept: { + dept: [], //指定的部门 + type: 'LEADER' //部门主管 + }, + assignRole: [], + }, + } + } +} + + +export default { + //审批节点 + Approval: Approval, + Cc: Cc, + Start: Start, + //注入分支节点定义 + ...branchNode, +} + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/ProcessRender.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/ProcessRender.vue new file mode 100644 index 0000000000000000000000000000000000000000..41ce224e240d858f22aeed59e04a5b064197d109 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/ProcessRender.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/config/Approval.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/config/Approval.vue new file mode 100644 index 0000000000000000000000000000000000000000..991d94f213e124be0c49af020d7a0c10b46fe54c --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/config/Approval.vue @@ -0,0 +1,236 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/config/Cc.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/config/Cc.vue new file mode 100644 index 0000000000000000000000000000000000000000..86093e66b9af4e30dcf0a6a2963352ca1962b854 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/config/Cc.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/config/Exclusive.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/config/Exclusive.vue new file mode 100644 index 0000000000000000000000000000000000000000..174b7a66194ca6d58cb47666d54537e680355533 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/config/Exclusive.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/config/Start.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/config/Start.vue new file mode 100644 index 0000000000000000000000000000000000000000..f5a70e76137f12f982a4869503925bb317c0e401 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/config/Start.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/config/common/ConditionGroupConfig.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/config/common/ConditionGroupConfig.vue new file mode 100644 index 0000000000000000000000000000000000000000..0e45ba43aa7994d0113e068ed7b228f3aaad182c --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/config/common/ConditionGroupConfig.vue @@ -0,0 +1,192 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/config/common/ConditionItemConfig.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/config/common/ConditionItemConfig.vue new file mode 100644 index 0000000000000000000000000000000000000000..0461ad0cd9aeefa4b4a9eae3f9e5a67ecc51272a --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/config/common/ConditionItemConfig.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/Approval.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/Approval.vue new file mode 100644 index 0000000000000000000000000000000000000000..71ae94780cccefa588e2283f79f4e023110a677b --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/Approval.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/Cc.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/Cc.vue new file mode 100644 index 0000000000000000000000000000000000000000..84dfeb073253c1cfae571dbe85de6b4a0cb78c46 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/Cc.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/Exclusive.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/Exclusive.vue new file mode 100644 index 0000000000000000000000000000000000000000..cbc53081bd04e59a821fd0db4ae8133dae4fd31e --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/Exclusive.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/Gateway.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/Gateway.vue new file mode 100644 index 0000000000000000000000000000000000000000..271a90f352cf349e4c382346dff8d7fecadd7b55 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/Gateway.vue @@ -0,0 +1,282 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/Parallel.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/Parallel.vue new file mode 100644 index 0000000000000000000000000000000000000000..886f34c1a1182fdfbd39602bed244a2ff0bdb11d --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/Parallel.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/Start.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/Start.vue new file mode 100644 index 0000000000000000000000000000000000000000..5652e103cfe500c20c7fc7de51ac183960fdd595 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/Start.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/base/BranchNode.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/base/BranchNode.vue new file mode 100644 index 0000000000000000000000000000000000000000..4b673dfadc2255cb6d3af3f18b65ee9a12261274 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/base/BranchNode.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/base/InsertBtn.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/base/InsertBtn.vue new file mode 100644 index 0000000000000000000000000000000000000000..2cd3409bdc7dd511fc9b58fe1aeba89b0621c153 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/base/InsertBtn.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/base/Node.vue b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/base/Node.vue new file mode 100644 index 0000000000000000000000000000000000000000..616d5173de8698546ffcce890e3941dff896ea02 --- /dev/null +++ b/web/src/views/plugins/dvadmin3-flow-web/src/wflow/design/process/node/base/Node.vue @@ -0,0 +1,185 @@ + + + + + diff --git "a/web/src/views/plugins/dvadmin3-folw(\345\211\215\347\253\257)\345\220\216\345\217\260\345\256\241\346\211\271\346\265\201\346\217\222\344\273\266.zip" "b/web/src/views/plugins/dvadmin3-folw(\345\211\215\347\253\257)\345\220\216\345\217\260\345\256\241\346\211\271\346\265\201\346\217\222\344\273\266.zip" new file mode 100644 index 0000000000000000000000000000000000000000..6a5ef33ce948f72dd3804f6ceefd126416d3cf56 Binary files /dev/null and "b/web/src/views/plugins/dvadmin3-folw(\345\211\215\347\253\257)\345\220\216\345\217\260\345\256\241\346\211\271\346\265\201\346\217\222\344\273\266.zip" differ diff --git a/web/src/views/production/SampleCostModelViewSet/api.ts b/web/src/views/production/SampleCostModelViewSet/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..d14d94683b42f3d481bb3c92b5c963589d5575bf --- /dev/null +++ b/web/src/views/production/SampleCostModelViewSet/api.ts @@ -0,0 +1,50 @@ +import { request,downloadFile } from '/@/utils/service'; +import { PageQuery, AddReq, DelReq, EditReq, InfoReq } from '@fast-crud/fast-crud'; + +export const apiPrefix = '/api/SampleCostModelViewSet/'; + +export function GetList(query: PageQuery) { + return request({ + url: apiPrefix, + method: 'get', + params: query, + }); +} +export function GetObj(id: InfoReq) { + return request({ + url: apiPrefix + id, + method: 'get', + }); +} + +export function AddObj(obj: AddReq) { + return request({ + url: apiPrefix, + method: 'post', + data: obj, + }); +} + +export function UpdateObj(obj: EditReq) { + return request({ + url: apiPrefix + obj.id + '/', + method: 'put', + data: obj, + }); +} + +export function DelObj(id: DelReq) { + return request({ + url: apiPrefix + id + '/', + method: 'delete', + data: { id }, + }); +} + +export function exportData(params:any){ + return downloadFile({ + url: apiPrefix + 'export_data/', + params: params, + method: 'get' + }) +} \ No newline at end of file diff --git a/web/src/views/production/SampleCostModelViewSet/crud.tsx b/web/src/views/production/SampleCostModelViewSet/crud.tsx new file mode 100644 index 0000000000000000000000000000000000000000..80091dd4cd5b7d230e33cd56da8a659d08a75993 --- /dev/null +++ b/web/src/views/production/SampleCostModelViewSet/crud.tsx @@ -0,0 +1,203 @@ +import { CrudOptions, AddReq, DelReq, EditReq, dict, CrudExpose, UserPageQuery, CreateCrudOptionsRet} from '@fast-crud/fast-crud'; +import _ from 'lodash-es'; +import * as api from './api'; +import { request } from '/@/utils/service'; +import {auth} from "/@/utils/authFunction"; + +//此处为crudOptions配置 +export default function ({ crudExpose}: { crudExpose: CrudExpose}): CreateCrudOptionsRet { + const pageRequest = async (query: any) => { + return await api.GetList(query); + }; + const editRequest = async ({ form, row }: EditReq) => { + if (row.id) { + form.id = row.id; + } + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + return await api.DelObj(row.id); + }; + const addRequest = async ({ form }: AddReq) => { + return await api.AddObj(form); + }; + + const exportRequest = async (query: UserPageQuery) => { + return await api.exportData(query) + }; + + return { + crudOptions: { + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + actionbar: { + buttons: { + export:{ + // 注释编号:django-vue3-admin-crud210716:注意这个auth里面的值,最好是使用index.vue文件里面的name值并加上请求动作的单词 + show: auth('SampleCostModelViewSet:Export'), + text:"导出",//按钮文字 + title:"导出",//鼠标停留显示的信息 + click(){ + return exportRequest(crudExpose.getSearchFormData()) + // return exportRequest(crudExpose!.getSearchFormData()) // 注意这个crudExpose!.getSearchFormData(),一些低版本的环境是需要添加!的 + } + }, + add: { + show: auth('SampleCostModelViewSet:Create'), + }, + } + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 200, + buttons: { + view: { + type: 'text', + order: 1, + show: auth('SampleCostModelViewSet:Retrieve') + }, + edit: { + type: 'text', + order: 2, + show: auth('SampleCostModelViewSet:Update') + }, + copy: { + type: 'text', + order: 3, + show: auth('SampleCostModelViewSet:Copy') + }, + remove: { + type: 'text', + order: 4, + show: auth('SampleCostModelViewSet:Delete') + }, + }, + }, + columns: { + sample_name: { + title: '名称', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入名称', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '名称必填', trigger: 'blur' }], + component: { + placeholder: '请输入名称', + }, + }, + }, + sample_specification: { + title: '规格', + type: 'text', + search: { + show: true, + component: { + placeholder: '请输入规格', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '规格必填', trigger: 'blur' }], + component: { + placeholder: '请输入规格', + }, + }, + }, + sample_number: { + title: '数量', + type: 'number', + search: { + show: false, + component: { + placeholder: '请输入数量', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '数量必填', trigger: 'blur' }], + component: { + placeholder: '请输入数量', + }, + }, + }, + sample_price: { + title: '单价', + type: 'number', + search: { + show: false, + component: { + placeholder: '请输入单价', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: true, message: '单价必填', trigger: 'blur' }], + component: { + min: 0, + step: 0.01, + placeholder: '请输入单价', + }, + }, + }, + sample_total_price: { + title: '总价', + type: 'number', + search: { + show: false, + component: { + placeholder: '请输入总价', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + min: 0, + step: 0.01, + placeholder: '请输入总价', + }, + }, + }, + sample_note: { + title: '备注', + type: 'textarea', + search: { + show: false, + component: { + placeholder: '请输入备注', + }, + }, + column: { + sortable: 'custom', + }, + form: { + rules: [{ required: false }], + component: { + placeholder: '请输入备注', + }, + }, + }, + }, + }, + }; +} \ No newline at end of file diff --git a/web/src/views/production/SampleCostModelViewSet/index.vue b/web/src/views/production/SampleCostModelViewSet/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..4267e0e57ef28efdb6b3fc217b51a89626e1227c --- /dev/null +++ b/web/src/views/production/SampleCostModelViewSet/index.vue @@ -0,0 +1,56 @@ + + + \ No newline at end of file diff --git a/web/src/views/system/dept/components/DeptUserCom/crud copy.aatsx b/web/src/views/system/dept/components/DeptUserCom/crud copy.aatsx new file mode 100644 index 0000000000000000000000000000000000000000..e0b70f98511ce7e5f8071b28b2a4b677fd2bb713 --- /dev/null +++ b/web/src/views/system/dept/components/DeptUserCom/crud copy.aatsx @@ -0,0 +1,398 @@ +import { inject } from 'vue'; +import { dict, UserPageQuery, AddReq, DelReq, EditReq, compute, CreateCrudOptionsProps, CreateCrudOptionsRet } from '@fast-crud/fast-crud'; +import { request } from '/@/utils/service'; +import * as api from './api'; +import { dictionary } from '/@/utils/dictionary'; +import { successMessage } from '/@/utils/message'; +import { auth } from "/@/utils/authFunction"; + +export const createCrudOptions = function ({ crudExpose, context }: CreateCrudOptionsProps): CreateCrudOptionsRet { + const pageRequest = async (query: UserPageQuery) => { + const show_all = context?.isShowChildFlag.value ? '1' : '0'; + const res = await api.GetList({ ...query, show_all }); + /** + * 处理crud警告:Invalid prop: type check failed for prop "name". Expected String with value "2", got Number with value 2. + */ + // res.data.forEach((item: any) => { + // item.dept = String(item.dept); + // if (item.role && Array.isArray(item.role) && item.role.length > 0) { + // item.role = item.role.map((r: number) => String(r)); + // } + // }); + return res; + }; + const editRequest = async ({ form, row }: EditReq) => { + form.id = row.id; + return await api.UpdateObj(form); + }; + const delRequest = async ({ row }: DelReq) => { + const res = await api.DelObj(row.id); + context?.getDeptInfo(); + return res; + }; + const addRequest = async ({ form }: AddReq) => { + const res = await api.AddObj(form); + context?.getDeptInfo(); + return res; + }; + + const exportRequest = async (query: UserPageQuery) => { + return await api.exportData(query); + }; + + return { + crudOptions: { + table: { + remove: { + confirmMessage: '是否删除该用户?', + }, + }, + request: { + pageRequest, + addRequest, + editRequest, + delRequest, + }, + // actionbar: { + // buttons: { + // add: { + // show: auth('user:Create') + // }, + // export: { + // text: '导出', //按钮文字 + // title: '导出', //鼠标停留显示的信息 + // show: auth('user:Export'), + // click() { + // return exportRequest(crudExpose!.getSearchFormData()); + // }, + // }, + // }, + // }, + search: { + container: { + layout: 'multi-line', + action: { + col: { + span: 10, + }, + }, + }, + }, + rowHandle: { + //固定右侧 + fixed: 'right', + width: 250, + buttons: { + view: { + show: false, + }, + edit: { + show: auth('user:Update'), + }, + remove: { + show: auth('user:Delete'), + }, + custom: { + text: '重设密码', + type: 'primary', + show: auth('user:ResetPassword'), + tooltip: { + placement: 'top', + content: '重设密码', + }, + click: (ctx: any) => context?.handleResetPwdOpen(ctx.row), + }, + }, + }, + columns: { + _index: { + title: '序号', + form: { show: false }, + column: { + type: 'index', + align: 'center', + width: '70px', + columnSetDisabled: true, //禁止在列设置中选择 + }, + }, + search: { + title: '关键词', + column: { + show: false, + }, + search: { + show: true, + component: { + props: { + clearable: true, + }, + placeholder: '请输入关键词', + }, + }, + form: { + show: false, + component: { + props: { + clearable: true, + }, + }, + }, + }, + username: { + title: '账号', + type: 'input', + column: { + minWidth: 100, //最小列宽 + }, + form: { + rules: [ + // 表单校验规则 + { + required: true, + message: '账号必填项', + }, + ], + component: { + placeholder: '请输入账号', + }, + }, + }, + password: { + title: '密码', + type: 'input', + column: { + show: false, + }, + editForm: { + show: false, + }, + form: { + rules: [ + // 表单校验规则 + { + required: true, + message: '密码必填项', + }, + ], + component: { + span: 12, + showPassword: true, + placeholder: '请输入密码', + }, + // value: vm.systemConfig('base.default_password'), + }, + /* valueResolve(row, key) { + if (row.password) { + row.password = vm.$md5(row.password) + } + } */ + }, + name: { + title: '姓名', + type: 'input', + column: { + minWidth: 100, //最小列宽 + }, + form: { + rules: [ + // 表单校验规则 + { + required: true, + message: '姓名必填项', + }, + ], + component: { + span: 12, + placeholder: '请输入姓名', + }, + }, + }, + dept: { + title: '部门', + type: 'dict-tree', + dict: dict({ + isTree: true, + url: '/api/system/dept/all_dept/', + value: 'id', + label: 'name', + }), + column: { + minWidth: 200, //最小列宽 + formatter({ value, row, index }) { + return row.dept_name_all + } + }, + form: { + rules: [ + // 表单校验规则 + { + required: true, + message: '必填项', + }, + ], + component: { + filterable: true, + placeholder: '请选择', + props: { + props: { + value: 'id', + label: 'name', + }, + }, + }, + }, + }, + role: { + title: '角色', + search: { + show: true, + component: { + props: { + name:'fs-dict-select', + clearable: true, + }, + }, + }, + type: 'dict-select', + dict: dict({ + url: '/api/system/role/', + value: 'id', + label: 'name', + }), + column: { + minWidth: 200, //最小列宽 + // formatter({ value, row, index }) { + // const values = row.role_info.map((item: any) => item.name); + // return values.join(',') + // } + }, + form: { + rules: [ + // 表单校验规则 + { + required: true, + message: '必填项', + }, + ], + component: { + multiple: true, + filterable: true, + placeholder: '请选择角色', + }, + }, + }, + mobile: { + title: '手机号码', + type: 'input', + column: { + minWidth: 120, //最小列宽 + }, + form: { + rules: [ + { + max: 20, + message: '请输入正确的手机号码', + trigger: 'blur', + }, + { + pattern: /^1[3-9]\d{9}$/, + message: '请输入正确的手机号码', + }, + ], + component: { + placeholder: '请输入手机号码', + }, + }, + }, + email: { + title: '邮箱', + column: { + width: 260, + }, + form: { + rules: [ + { + type: 'email', + message: '请输入正确的邮箱地址', + trigger: ['blur', 'change'], + }, + ], + component: { + placeholder: '请输入邮箱', + }, + }, + }, + gender: { + title: '性别', + type: 'dict-select', + dict: dict({ + data: dictionary('gender'), + }), + form: { + value: 1, + component: { + span: 12, + }, + }, + component: { props: { color: 'auto' } }, // 自动染色 + }, + user_type: { + title: '用户类型', + search: { + show: true, + }, + type: 'dict-select', + dict: dict({ + data: dictionary('user_type'), + }), + column: { + minWidth: 100, //最小列宽 + }, + form: { + show: false, + value: 0, + component: { + span: 12, + }, + }, + }, + is_active: { + title: '锁定', + search: { + show: true, + }, + type: 'dict-radio', + column: { + component: { + name: 'fs-dict-switch', + activeText: '', + inactiveText: '', + style: '--el-switch-on-color: var(--el-color-primary); --el-switch-off-color: #dcdfe6', + onChange: compute((context) => { + return () => { + api.UpdateObj(context.row).then((res: APIResponseData) => { + successMessage(res.msg as string); + }); + }; + }), + }, + }, + dict: dict({ + data: dictionary('button_status_bool'), + }), + }, + avatar: { + title: '头像', + type: 'avatar-uploader', + form: { + show: false, + }, + column: { + width: 100, + showOverflowTooltip: true, + } + }, + }, + }, + }; +}; diff --git a/web/src/views/system/dept/components/DeptUserCom/crud.tsx b/web/src/views/system/dept/components/DeptUserCom/crud.tsx index aaa855c7143bea3b584c07f7f4d18b14128adf5b..8c9e57962c6d73a0bf0859f4889247392d688f1d 100644 --- a/web/src/views/system/dept/components/DeptUserCom/crud.tsx +++ b/web/src/views/system/dept/components/DeptUserCom/crud.tsx @@ -53,21 +53,21 @@ export const createCrudOptions = function ({ crudExpose, context }: CreateCrudOp editRequest, delRequest, }, - actionbar: { - buttons: { - add: { - show: auth('user:Create') - }, - export: { - text: '导出', //按钮文字 - title: '导出', //鼠标停留显示的信息 - show: auth('user:Export'), - click() { - return exportRequest(crudExpose!.getSearchFormData()); - }, - }, - }, - }, + // actionbar: { + // buttons: { + // add: { + // show: auth('user:Create') + // }, + // export: { + // text: '导出', //按钮文字 + // title: '导出', //鼠标停留显示的信息 + // show: auth('user:Export'), + // click() { + // return exportRequest(crudExpose!.getSearchFormData()); + // }, + // }, + // }, + // }, search: { container: { layout: 'multi-line', @@ -244,26 +244,9 @@ export const createCrudOptions = function ({ crudExpose, context }: CreateCrudOp }, role: { title: '角色', - search: { - show: true, - component: { - props: { - clearable: true, - }, - }, - }, type: 'dict-select', - dict: dict({ - url: '/api/system/role/', - value: 'id', - label: 'name', - }), - column: { - minWidth: 200, //最小列宽 - // formatter({ value, row, index }) { - // const values = row.role_info.map((item: any) => item.name); - // return values.join(',') - // } + search: { + show: true }, form: { rules: [ @@ -279,6 +262,18 @@ export const createCrudOptions = function ({ crudExpose, context }: CreateCrudOp placeholder: '请选择角色', }, }, + dict: dict({ + url: '/api/system/role/', + value: 'id', + label: 'name', + }), + column: { + minWidth: 200, //最小列宽 + // formatter({ value, row, index }) { + // const values = row.role_info.map((item: any) => item.name); + // return values.join(',') + // } + }, }, mobile: { title: '手机号码', diff --git a/web/src/views/system/downloadCenter/crud.tsx b/web/src/views/system/downloadCenter/crud.tsx index af839cf9e8280df8ad150e2fee8dbd958e5f49f7..e65997d3403cc3d80df93923d61885cda4576466 100644 --- a/web/src/views/system/downloadCenter/crud.tsx +++ b/web/src/views/system/downloadCenter/crud.tsx @@ -149,7 +149,7 @@ export const createCrudOptions = function ({ crudExpose }: { crudExpose: CrudExp } }, update_datetime: { - title: '创建时间', + title: '更新时间', column: { width: 160 } diff --git a/web/src/views/system/home/bakindex.vue b/web/src/views/system/home/bakindex.vue new file mode 100644 index 0000000000000000000000000000000000000000..6475fba53b1d59ec92ba04ade32e24104040f54c --- /dev/null +++ b/web/src/views/system/home/bakindex.vue @@ -0,0 +1,643 @@ + + + + + diff --git a/web/src/views/system/home/index.vue b/web/src/views/system/home/index.vue index 6475fba53b1d59ec92ba04ade32e24104040f54c..e0390f95f849ab5cbcc400c1e813f649e0e4fb23 100644 --- a/web/src/views/system/home/index.vue +++ b/web/src/views/system/home/index.vue @@ -1,643 +1,17 @@ - diff --git a/web/src/views/system/login/index.vue b/web/src/views/system/login/index.vue index 0f4d9c86186777cfc8bb71bd38e7e01a9ea8f874..f6c293bd78cb4558d818e8f45df866bec73f2d55 100644 --- a/web/src/views/system/login/index.vue +++ b/web/src/views/system/login/index.vue @@ -71,7 +71,7 @@ import {defineAsyncComponent, onMounted, reactive, computed, watch} from 'vue'; import { storeToRefs } from 'pinia'; import { useThemeConfig } from '/@/stores/themeConfig'; import { NextLoading } from '/@/utils/loading'; -import logoMini from '/@/assets/logo-mini.svg'; +import logoMini from '/@/assets/logo-mini.png'; import loginMain from '/@/assets/login-main.svg'; import loginBg from '/@/assets/login-bg.png'; import { SystemConfigStore } from '/@/stores/systemConfig' diff --git a/web/src/views/system/menu/components/MenuButtonCom/crud.tsx b/web/src/views/system/menu/components/MenuButtonCom/crud.tsx index 79675fba30975199db2fc467e36ccfa9e1e27a44..9eab7c3a366a3c1d9ebeba4176fe53f607326aef 100644 --- a/web/src/views/system/menu/components/MenuButtonCom/crud.tsx +++ b/web/src/views/system/menu/components/MenuButtonCom/crud.tsx @@ -185,7 +185,7 @@ export const createCrudOptions = function ({crudExpose, context}: CreateCrudOpti form: { rules: [{required: true, message: '权限名称必填'}], component: { - placeholder: '输入权限名称搜索', + placeholder: '输入权限名称', props: { clearable: true, allowCreate: true, @@ -194,8 +194,7 @@ export const createCrudOptions = function ({crudExpose, context}: CreateCrudOpti }, helper: { render() { - return ; + return ; }, }, },