liyu-pc-base 1.0.98 → 1.0.102
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/components/FormRender/GeneralFilter/AddConditionModal/index.vue","../../src/components/FormRender/GeneralFilter/AddConditionGroupModal/index.vue","../../src/components/FormRender/GeneralFilter/data.ts","../../src/components/FormRender/GeneralFilter/index.vue","../../src/components/FormRender/FormRender.vue","../../src/components/FormRender/FormRender2.vue","../../src/components/FormRender/SmallTableSerarchField.vue","../../src/api/view-model.ts","../../src/constants.ts","../../src/components/SideSearchRender/viewManage.vue","../../src/components/SideSearchRender/SideSearchRender.vue"],"sourcesContent":["<template>\n <a-modal\n title=\"添加过滤条件\"\n width=\"800px\"\n :open=\"open\"\n transitionName=\"\"\n maskTransitionName=\"\"\n :destroyOnClose=\"true\"\n :confirmLoading=\"loading\"\n centered\n @ok=\"handleSubmit\"\n @cancel=\"\n () => {\n $emit('cancel');\n }\n \"\n >\n <a-tabs v-model:activeKey=\"activeKey\">\n <a-tab-pane\n class=\"my-card\"\n v-for=\"item in tab_list\"\n :key=\"item.key\"\n :tab=\"item.tab_name\"\n >\n <div\n v-for=\"base_search_item in item.base_search_list\"\n :key=\"base_search_item.name\"\n >\n <div style=\"font-size: 14px\">{{ base_search_item.name }}</div>\n <a-space\n wrap\n style=\"padding-left: 10px; margin-bottom: 0\"\n >\n <div\n v-for=\"obj in base_search_item.group\"\n :key=\"obj.field_name\"\n >\n <a-checkbox v-model:checked=\"obj.checked\">\n <span style=\"color: #7d8089\">{{ obj.label }}</span>\n </a-checkbox>\n </div>\n </a-space>\n </div>\n </a-tab-pane>\n </a-tabs>\n </a-modal>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, reactive, ref } from 'vue';\n\nexport default defineComponent({\n name: 'AddConditionModal',\n props: {\n open: {\n type: Boolean,\n required: true,\n },\n loading: {\n type: Boolean,\n required: false,\n },\n default_search_condition_config_list: {\n type: Array,\n required: false,\n },\n base_search_condition_config_list: {\n type: Array,\n required: false,\n },\n },\n emits: ['ok', 'cancel'],\n setup(props, { emit }) {\n const activeKey = ref('condition_tab_0');\n const tab_list = ref([]);\n props.default_search_condition_config_list.forEach((item_list: any, index: number) => {\n const base_search_list: any = JSON.parse(\n JSON.stringify(props.base_search_condition_config_list),\n );\n if (base_search_list) {\n base_search_list.forEach((base_search_list: any) => {\n base_search_list.group.forEach(i => {\n item_list.forEach((k: any) => {\n if (i.field_name == k.field_name) {\n i.operator = k.operator;\n i.checked = true;\n }\n });\n });\n });\n }\n tab_list.value.push({\n tab_name: `条件组${index + 1}`,\n key: `condition_tab_${index}`,\n base_search_list: base_search_list,\n });\n });\n const handleSubmit = (e: Event) => {\n e.preventDefault();\n const list = [];\n tab_list.value.forEach(item => {\n const selected_group_list: any = [];\n item.base_search_list.forEach(i => {\n i.group.forEach((temp: any) => {\n if (temp.checked) {\n if (!temp.operator) {\n const operator_list_selected = get_operator_list_selected(temp);\n if (operator_list_selected.length > 0) {\n const [first] = operator_list_selected;\n temp.operator = first;\n }\n }\n selected_group_list.push(temp);\n }\n });\n });\n list.push(selected_group_list);\n });\n emit('ok', { new_list: list });\n };\n const get_operator_list_selected = (condition) => {\n if (condition.operator_list_selected) {\n return condition.operator_list_selected;\n }\n else if (condition.operator_list) {\n return condition.operator_list;\n }\n else {\n return [];\n }\n };\n\n return {\n props,\n activeKey,\n tab_list,\n handleSubmit,\n };\n },\n});\n</script>\n<style scoped>\n.my-card {\n padding: 20px;\n background-color: #f6f7f9;\n}\n</style>\n","<template>\n <a-modal\n title=\"添加过滤条件组\"\n width=\"800px\"\n :open=\"open\"\n transitionName=\"\"\n maskTransitionName=\"\"\n :destroyOnClose=\"true\"\n :confirmLoading=\"loading\"\n centered\n @ok=\"handleSubmit\"\n @cancel=\"\n () => {\n $emit('cancel');\n }\n \"\n >\n\n <a-tab-pane class=\"my-card\" v-for=\"item in tab_list\"\n :key=\"item.key\" :tab=\"item.tab_name\">\n <div v-for=\"base_search_item in item.base_search_list\" :key=\"base_search_item.name\">\n <div style=\"font-size: 14px;\">{{base_search_item.name}}</div>\n <a-space wrap>\n <div v-for=\"obj in base_search_item.group\" :key=\"obj.field_name\">\n <a-checkbox v-model:checked=\"obj.checked\" >\n <span style=\"color:#7d8089\">{{ obj.label }}</span>\n </a-checkbox>\n </div>\n </a-space>\n </div>\n </a-tab-pane>\n\n <a-tabs v-model:activeKey=\"activeKey\">\n <a-tab-pane class=\"my-card\" v-for=\"item in tab_list\"\n :key=\"item.key\" :tab=\"item.tab_name\">\n <div v-for=\"base_search_item in item.base_search_list\" :key=\"base_search_item.name\">\n <div style=\"font-size: 14px;\">{{base_search_item.name}}</div>\n <a-space wrap style=\"padding-left: 10px; margin-bottom:0\">\n <div v-for=\"obj in base_search_item.group\" :key=\"obj.field_name\">\n <a-checkbox v-model:checked=\"obj.checked\" >\n <span style=\"color:#7d8089\">{{ obj.label }}</span>\n </a-checkbox>\n </div>\n </a-space>\n </div>\n </a-tab-pane>\n </a-tabs>\n </a-modal>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, reactive, ref } from 'vue';\nimport { message } from 'ant-design-vue';\nexport default defineComponent({\n name: 'AddConditionGroupModal',\n props: {\n open: {\n type: Boolean,\n required: true,\n },\n loading: {\n type: Boolean,\n required: false,\n },\n default_search_condition_config_list: {\n type: Array,\n required: false,\n },\n base_search_condition_config_list: {\n type: Array,\n required: false,\n },\n },\n emits: ['ok', 'cancel'],\n setup(props, { emit }) {\n const tab_list = ref([]);\n const get_operator_list_selected = (condition) => {\n if (condition.operator_list_selected) {\n return condition.operator_list_selected;\n }\n else if (condition.operator_list) {\n return condition.operator_list;\n }\n else {\n return [];\n }\n };\n props.default_search_condition_config_list?.forEach((item_list:any, index:number)=>{\n const base_search_list:any = JSON.parse(JSON.stringify(props.base_search_condition_config_list));\n if(base_search_list){\n base_search_list.forEach((base_search_list:any)=>{\n base_search_list.group.forEach(i=>{\n item_list.forEach((k:any)=>{\n if(i.field_name == k.field_name){\n i.checked = true;\n }\n });\n });\n });\n }\n tab_list.value.push({\n tab_name:`条件组${index+1}`,\n key:`condition_tab_${index}`,\n base_search_list: base_search_list,\n });\n });\n const index = props.default_search_condition_config_list?.length || 0;\n const new_search_list = [];\n props.base_search_condition_config_list.forEach((item:any)=>{\n const new_group = [];\n item.group.forEach(i=>{\n const operator_list_selected = get_operator_list_selected(i);\n if(i.default_operator){\n i.operator = i.default_operator;\n }\n if(!operator_list_selected.includes(i.operator)){\n i.operator = null;\n }\n if(!i.operator && operator_list_selected.length>0){\n const [first] = operator_list_selected;\n i.operator = first;\n }\n const new_i = { ...i, checked:false };\n new_group.push(new_i);\n });\n new_search_list.push({\n name:item.name,\n group:new_group,\n });\n });\n tab_list.value.push({\n tab_name:`条件组${index+1}`,\n key:`condition_tab_${index}`,\n base_search_list: new_search_list,\n });\n const activeKey = ref(`condition_tab_${index}`);\n\n const handleSubmit = (e: Event) => {\n e.preventDefault();\n const list = [];\n tab_list.value.forEach(item=>{\n const selected_group_list:any = [];\n item.base_search_list.forEach(i=>{\n i.group.forEach((temp:any)=>{\n if(temp.checked){\n selected_group_list.push(temp);\n }\n });\n });\n if(selected_group_list.length>0){\n list.push(selected_group_list);\n }\n });\n if(list.length==0){\n message.error('新增条件组未增加新的字段,自动取消');\n emit('cancel');//关闭对话框\n }else{\n emit('ok', { new_list: list });\n }\n };\n\n return {\n props,\n activeKey,\n tab_list,\n handleSubmit,\n get_operator_list_selected,\n };\n },\n});\n</script>\n<style scoped>\n.my-card{\n padding:20px;\n background-color: #f6f7f9;\n}\n</style>","export const get_options_eq = t => {\n const options_eq = [\n { value: '上月', label: '上月' },\n { value: '本月', label: '本月' },\n { value: '今日', label: '今日' },\n { value: '昨日', label: '昨日' },\n { value: '期初', label: '期初' },\n ];\n return {\n options_eq,\n };\n};\n","<template>\n <a-space v-if=\"!is_massage_default\">\n <a-button\n type=\"link\"\n v-if=\"is_show_normal_search\"\n @click=\"handleShowSearchRender\"\n >\n {{ $t('普通') }}\n </a-button>\n <a-button\n v-if=\"!isShowForm\"\n type=\"link\"\n @click=\"\n () => {\n isShowForm = true;\n $emit('resize');\n }\n \"\n >\n <span class=\"expand-btn\">{{ $t('展开') }}</span>\n </a-button>\n <a-button\n v-else\n type=\"link\"\n @click=\"\n () => {\n isShowForm = false;\n $emit('resize');\n }\n \"\n >\n {{ $t('隐藏') }}\n </a-button>\n </a-space>\n <span v-show=\"!isShowForm\">\n <span\n v-for=\"(item, index) in default_search_condition_config_list\"\n :key=\"index\"\n >\n <a-tag>{{ $t('条件组') }}{{ index + 1 }}:</a-tag>\n <span\n v-for=\"condition in item\"\n :key=\"condition.field_name\"\n >\n <a-tag\n v-show=\"isShowSearchTag(index, condition)\"\n color=\"green\"\n >\n {{ condition.label }}: {{ transferValueFunc(index, condition) }}\n <close-outlined\n style=\"cursor: pointer; margin-left: 5px\"\n @click=\"handleDelSearch(index, condition.field_name)\"\n />\n </a-tag>\n </span>\n </span>\n </span>\n <div\n class=\"card\"\n v-show=\"isShowForm\"\n >\n <div\n v-for=\"(group_item, group_index) in default_search_condition_config_list\"\n :key=\"group_index\"\n >\n <div\n class=\"condition-group\"\n v-if=\"default_search_condition_config_list.length > 1\"\n >\n {{ $t('条件组') }} {{ group_index + 1 }}\n </div>\n <a-space\n :wrap=\"true\"\n align=\"center\"\n :size=\"0\"\n >\n <a-space-compact\n block\n v-for=\"(condition, k) in group_item\"\n :key=\"condition.field_name\"\n size=\"middle\"\n @mouseenter=\"handleMouseEnter(group_index, condition)\"\n @mouseleave=\"handleMouseLeave(group_index, condition)\"\n >\n <a-input-group compact>\n <a-tooltip :title=\"condition.label\">\n <a-cascader\n :value=\"condition.label\"\n style=\"width: 125px\"\n :options=\"searchItemOptionsDict[group_index]\"\n showSearch\n :allowClear=\"false\"\n :placeholder=\"$t('请选择...')\"\n @change=\"value => onChangeSearchItem(value, group_index, condition, k)\"\n />\n </a-tooltip>\n <a-tooltip :title=\"get_operator_type_map(condition.format, condition.operator)\">\n <a-select\n v-if=\"get_operator_list_selected(condition).length > 0\"\n :dropdownMatchSelectWidth=\"false\"\n v-model:value=\"condition.operator\"\n @change=\"value => onChangeOperator(value, group_index, condition)\"\n style=\"width: 100px\"\n >\n <a-select-option\n v-for=\"item in get_operator_list_selected(condition)\"\n :value=\"item\"\n :key=\"item\"\n >\n {{ get_operator_type_map(condition.format, item) }}\n </a-select-option>\n </a-select>\n </a-tooltip>\n <span style=\"width: 315px; height: 40px\">\n <template\n v-if=\"['is_or_not_blank_or_null', 'is_or_not_null'].includes(condition.operator)\"\n >\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{\n ...condition,\n type: 'select',\n mode: 'default',\n format: 'choices',\n class_name: 'str',\n placeholder: '',\n }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"is_or_not_blank_or_null_options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else-if=\"['input'].includes(condition.format)\">\n <template\n v-if=\"condition.operator === 'between' || condition.operator === 'notbetween'\"\n >\n <template v-if=\"condition.type === 'datepicker'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{ ...condition, type: 'rangepicker', format: condition.dateFormat }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else-if=\"condition.type === 'monthpicker'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{\n ...condition,\n type: 'monthrangepicker',\n format: condition.dateFormat,\n }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else-if=\"condition.type === 'timepicker'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{\n ...condition,\n type: 'timerangepicker',\n format: condition.dateFormat,\n }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else>\n <a-flex>\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name][0]\"\n :field=\"condition\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n <div class=\"range\">~</div>\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name][1]\"\n :field=\"condition\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </a-flex>\n </template>\n </template>\n <template v-else-if=\"condition.operator === '_eq'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{\n ...condition,\n type: 'select',\n mode: 'default',\n format: 'choices',\n class_name: 'str',\n placeholder: '',\n }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"options_eq\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template\n v-else-if=\"\n condition.type === 'datepicker' ||\n condition.type === 'monthpicker' ||\n condition.type === 'timepicker'\n \"\n >\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{ ...condition, format: condition.dateFormat }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else>\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"condition\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n </template>\n <template v-else-if=\"['choices', 'remote'].includes(condition.format)\">\n <template v-if=\"condition.format === 'choices'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"condition\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else-if=\"condition.format === 'remote'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{ ...condition, name: condition?.field_name }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n </template>\n </span>\n <span class=\"close-icon\">\n <a-tooltip\n title=\"删除此条件\"\n v-if=\"\n deleteBtnDict[group_index][condition.field_name] &&\n (default_search_condition_config_list[0].length > 1 ||\n default_search_condition_config_list.length > 1) &&\n !is_massage_default\n \"\n >\n <close-circle-outlined @click=\"handleDeleteFormItem(group_index, condition)\" />\n </a-tooltip>\n </span>\n </a-input-group>\n </a-space-compact>\n </a-space>\n <a-divider\n class=\"divider\"\n style=\"margin: 0\"\n v-if=\"\n default_search_condition_config_list.length > 1 &&\n group_index != default_search_condition_config_list.length - 1\n \"\n >\n 或\n </a-divider>\n </div>\n </div>\n <div\n class=\"search-bar\"\n v-show=\"isShowForm && !is_massage_default\"\n >\n <a-space>\n <a-button\n size=\"small\"\n type=\"primary\"\n @click=\"handleAddConditions\"\n >\n {{ $t('添加条件') }}\n </a-button>\n <a-button\n size=\"small\"\n type=\"primary\"\n @click=\"handleAddGroupCondition\"\n >\n {{ $t('添加条件组') }}\n </a-button>\n <a-button\n size=\"small\"\n type=\"primary\"\n @click=\"handleSearch\"\n >\n {{ $t('查询') }}\n </a-button>\n </a-space>\n </div>\n\n <add-condition-modal\n v-if=\"addConditionModal.open\"\n :open=\"addConditionModal.open\"\n :default_search_condition_config_list=\"default_search_condition_config_list\"\n :base_search_condition_config_list=\"base_search_condition_config_list\"\n @ok=\"handleAddConditionOk\"\n @cancel=\"handleAddConditionCancel\"\n />\n\n <add-condition-group-modal\n v-if=\"addConditionGroupModal.open\"\n :open=\"addConditionGroupModal.open\"\n :default_search_condition_config_list=\"default_search_condition_config_list\"\n :base_search_condition_config_list=\"base_search_condition_config_list\"\n @ok=\"handleAddGroupConditionOK\"\n @cancel=\"handleAddGroupConditionCancel\"\n />\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n onMounted,\n reactive,\n ref,\n computed,\n watch,\n PropType,\n nextTick,\n onUnmounted,\n} from 'vue';\nimport FieldRender from 'liyu-pc-base/components/FormRender/FieldRender.vue';\nimport AddConditionModal from 'liyu-pc-base/components/FormRender/GeneralFilter/AddConditionModal/index.vue';\nimport AddConditionGroupModal from 'liyu-pc-base/components/FormRender/GeneralFilter/AddConditionGroupModal/index.vue';\nimport { isNotEmpty } from 'liyu-pc-base/utils/function';\nimport {\n CloseCircleOutlined,\n CloseOutlined,\n LeftOutlined,\n RightOutlined,\n} from '@ant-design/icons-vue';\nimport { useI18n } from 'vue-i18n';\nimport { get_options_eq } from 'liyu-pc-base/components/FormRender/GeneralFilter/data';\nimport moment from 'moment';\nimport FieldRender2 from 'liyu-pc-base/components/FormRender/FieldRender2.vue';\nimport { get_operator_type_map } from 'liyu-pc-base/utils/function';\n\nexport default defineComponent({\n name: 'GeneralFilter',\n props: {\n base_search_condition_config_list: {\n type: Array as PropType<any[]>,\n },\n default_search_condition_config_list: {\n type: Array as PropType<any[]>,\n },\n is_show_normal_search: {\n type: Boolean,\n default: () => false,\n },\n is_clear_model: {\n type: Boolean,\n default: () => false,\n },\n is_show_advantage: {\n type: Boolean,\n default: () => false,\n },\n is_massage_default: {\n type: Boolean,\n default: () => false,\n },\n eventBus: {\n type: Object,\n required: false,\n },\n },\n components: {\n FieldRender2,\n CloseOutlined,\n LeftOutlined,\n RightOutlined,\n FieldRender,\n AddConditionGroupModal,\n AddConditionModal,\n CloseCircleOutlined,\n },\n emits: [\n 'search',\n 'resize',\n 'update_default_search_condition_config_list',\n 'onShowSearchRender',\n 'delSearch',\n 'onChangeValue',\n 'update:is_clear_model',\n ],\n setup(props, { emit }) {\n const isShowForm = ref(props.is_massage_default);\n const labelModel = ref({});\n const { t } = useI18n();\n const { options_eq } = get_options_eq(t);\n //条件组-->\n const condition_model_dict = ref([]);\n const validateInfos = {};\n const source_default_search_condition_config_list = ref(null);\n const is_or_not_blank_or_null_options = ref([\n { value: 'yes', label: t('is_or_not_blank_or_null.yes') },\n { value: 'no', label: t('is_or_not_blank_or_null.no') },\n ]);\n if (!source_default_search_condition_config_list.value) {\n source_default_search_condition_config_list.value = JSON.parse(\n JSON.stringify(props.default_search_condition_config_list),\n );\n }\n\n const operator_type_count_map = {\n between: 2,\n gt: 1,\n lt: 1,\n gte: 1,\n lte: 1,\n in: 0,\n eq: 1,\n _eq: 1,\n contains: 1,\n icontains: 1,\n startswith: 1,\n notbetween: 2,\n notin: 0,\n notcontains: 1,\n not_eq: 1,\n not_blank_not_null: 1,\n json_list_not_blank_not_null: 1,\n json_list_is_blank_is_null: 1,\n is_or_not_blank_or_null: 1,\n is_or_not_null: 1,\n };\n const is2DArray = arr => {\n const [first] = [arr];\n return Array.isArray(first) && arr.every(subArray => Array.isArray(subArray));\n };\n let old_operator = null;\n const onChangeOperator = (operator, index, condition) => {\n //不同操作类型,设置不同的默认值\n // if (condition_model_dict.value[index][condition.field_name]) {\n // return;\n // }\n const value = condition_model_dict.value[index][condition.field_name];\n if (get_operator_list_selected(condition).includes('_eq')) {\n if (operator == '_eq') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n } else if (old_operator == '_eq') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n }\n }\n if (get_operator_list_selected(condition).includes('not_blank_not_null')) {\n if (operator == 'not_blank_not_null') {\n condition_model_dict.value[index][condition.field_name] = '是';\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n } else if (old_operator == 'not_blank_not_null') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n }\n }\n if (\n get_operator_list_selected(condition).includes('is_or_not_blank_or_null') ||\n get_operator_list_selected(condition).includes('is_or_not_null')\n ) {\n if (operator == 'is_or_not_blank_or_null' || operator == 'is_or_not_null') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n } else if (old_operator == 'is_or_not_blank_or_null' || old_operator == 'is_or_not_null') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n }\n }\n if (value instanceof Array && is2DArray(value)) {\n // 级联类型,默认值默认清空\n condition_model_dict.value[index][condition.field_name] = null;\n } else if (operator_type_count_map[operator] == 1) {\n if (value instanceof Array) {\n const [first] = condition_model_dict.value[index][condition.field_name];\n if (isNotEmpty(first)) {\n condition_model_dict.value[index][condition.field_name] = first;\n } else {\n condition_model_dict.value[index][condition.field_name] = null;\n }\n } else {\n condition_model_dict.value[index][condition.field_name] = value ? value : null;\n }\n const is = options_eq.some(\n obj => obj.value === condition_model_dict.value[index][condition.field_name],\n );\n if (is) {\n condition_model_dict.value[index][condition.field_name] = null;\n }\n } else if (operator_type_count_map[operator] == 2) {\n if (condition_model_dict.value[index][condition.field_name] instanceof Array) {\n const [first, seconds] = condition_model_dict.value[index][condition.field_name];\n condition_model_dict.value[index][condition.field_name] = [first, seconds];\n } else if (condition_model_dict.value[index][condition.field_name]) {\n const first = condition_model_dict.value[index][condition.field_name];\n condition_model_dict.value[index][condition.field_name] = [first, null];\n } else {\n condition_model_dict.value[index][condition.field_name] = [null, null];\n }\n const is = options_eq.some(\n obj => obj.value === condition_model_dict.value[index][condition.field_name][0],\n );\n if (is) {\n condition_model_dict.value[index][condition.field_name] = [null, null];\n }\n }\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n // console.log('onChangeValue');\n };\n\n const addConditionModal = reactive({\n open: false,\n });\n const handleAddConditions = () => {\n addConditionModal.open = true;\n };\n const handleAddConditionOk = (data: any) => {\n props.default_search_condition_config_list.forEach((item: any, index: any) => {\n data.new_list.forEach((item1: any, index1: any) => {\n if (index == index1) {\n item.forEach((item2: any) => {\n item1.forEach((item3: any) => {\n if (item2.field_name == item3.field_name) {\n item3.value = item2.value;\n item3.operator = item2.operator;\n }\n });\n });\n }\n });\n });\n //保存后处理 new_list\n emit('update_default_search_condition_config_list', { new_list: data.new_list });\n // refreshCondition();\n addConditionModal.open = false;\n };\n const handleAddConditionCancel = () => {\n addConditionModal.open = false;\n };\n\n const addConditionGroupModal = reactive({\n open: false,\n });\n const handleAddGroupCondition = () => {\n addConditionGroupModal.open = true;\n };\n const handleAddGroupConditionOK = (data: any) => {\n props.default_search_condition_config_list.forEach((item: any, index: any) => {\n data.new_list.forEach((item1: any, index1: any) => {\n if (index == index1) {\n item.forEach((item2: any) => {\n item1.forEach((item3: any) => {\n if (item2.field_name == item3.field_name) {\n item3.value = item2.value;\n item3.operator = item2.operator;\n }\n });\n });\n }\n });\n });\n emit('update_default_search_condition_config_list', { new_list: data.new_list });\n // refreshCondition();\n addConditionGroupModal.open = false;\n };\n const handleAddGroupConditionCancel = () => {\n addConditionGroupModal.open = false;\n };\n const handleSearch = () => {\n isShowForm.value = false;\n console.log('condition_model_dict.value', condition_model_dict.value);\n emit('search', { model: condition_model_dict.value });\n };\n const refreshCondition = (update_all = false) => {\n if (props.base_search_condition_config_list.length == 0) {\n return;\n }\n props.default_search_condition_config_list?.forEach((item_list: any, index: number) => {\n deleteBtnDict[index] = {};\n if (!condition_model_dict.value[index]) {\n condition_model_dict.value[index] = {};\n }\n props.base_search_condition_config_list.forEach((i: any) => {\n i.group?.forEach((group_item: any) => {\n item_list.forEach((k: any) => {\n if (group_item.field_name == k.field_name) {\n const value = condition_model_dict.value[index][k.field_name];\n if (value == undefined || update_all) {\n if (operator_type_count_map[k.operator] == 1) {\n if (k.value !== undefined) {\n condition_model_dict.value[index][k.field_name] = k.value;\n } else {\n condition_model_dict.value[index][k.field_name] = null;\n }\n } else if (operator_type_count_map[k.operator] == 2) {\n if (k.value !== undefined) {\n condition_model_dict.value[index][k.field_name] = k.value;\n } else {\n condition_model_dict.value[index][k.field_name] = [null, null];\n }\n } else if (operator_type_count_map[k.operator] == 0) {\n if (k.value !== undefined) {\n condition_model_dict.value[index][k.field_name] = k.value;\n } else {\n condition_model_dict.value[index][k.field_name] = [];\n }\n }\n }\n Object.assign(k, { ...group_item, operator: k.operator }); // 保持表单项原有选择的查询条件\n if (k.operator == 'eq' && k.mode != 'default') {\n group_item.mode = 'default';\n Object.assign(k, { model: 'default' });\n } else if (['in', 'notin'].includes(k.operator) && k.mode != 'multiple') {\n group_item.mode = 'multiple';\n Object.assign(k, { model: 'multiple' });\n }\n }\n });\n });\n });\n });\n };\n const onFilterChanged = () => {\n refreshCondition(true);\n };\n\n const deleteBtnDict = reactive({}); // 表单项的删除按钮是否显示\n const handleMouseEnter = (index: any, form_item: any) => {\n deleteBtnDict[index][form_item.field_name] = true;\n };\n const handleMouseLeave = (index: any, form_item: any) => {\n deleteBtnDict[index][form_item.field_name] = false;\n };\n const handleDeleteFormItem = (index: any, condition: any) => {\n //default_search_condition_config_list 不允许删除最后一个条件组的条件项\n const new_list = [];\n props.default_search_condition_config_list.forEach((item_list: any, index_: number) => {\n if (index_ !== index) {\n new_list.push(item_list);\n } else {\n const list = [];\n item_list.forEach((k: any) => {\n if (k.field_name !== condition.field_name) {\n list.push(k);\n }\n });\n if (list.length > 0) {\n new_list.push(list);\n }\n }\n });\n emit('update_default_search_condition_config_list', { new_list: new_list });\n // refreshCondition();\n };\n const handleDelSearch = (index, filed_name) => {\n if (condition_model_dict.value[index][filed_name] instanceof Array) {\n condition_model_dict.value[index][filed_name].length = 0;\n } else {\n condition_model_dict.value[index][filed_name] = null;\n }\n emit('onChangeValue', { model: condition_model_dict.value });\n emit('delSearch', { model: JSON.parse(JSON.stringify(condition_model_dict.value)) });\n };\n\n const onChangeSearchItem = (value: any, group_index, condition: any, condition_index) => {\n if (value instanceof Array && value.length > 0) {\n const selected_field_name = value[value.length - 1];\n let new_condition = null;\n props.base_search_condition_config_list.forEach(item_list => {\n item_list.group.forEach(i => {\n if (i.field_name === selected_field_name) {\n new_condition = JSON.parse(JSON.stringify(i));\n if (new_condition.default_operator) {\n new_condition.operator = new_condition.default_operator;\n } else if (get_operator_list_selected(new_condition).length > 0) {\n const [first] = get_operator_list_selected(new_condition);\n new_condition.operator = first;\n }\n }\n });\n });\n\n if (new_condition) {\n const new_list = JSON.parse(JSON.stringify(props.default_search_condition_config_list));\n new_list.forEach((item_list, i) => {\n if (i === group_index) {\n item_list.forEach((item, k) => {\n if (item.field_name == condition.field_name && k == condition_index) {\n item_list.splice(k, 1, new_condition);\n delete condition_model_dict.value[group_index][item.field_name];\n }\n });\n }\n });\n emit('update_default_search_condition_config_list', {\n new_list: new_list,\n });\n }\n refreshCondition();\n }\n };\n\n const searchItemOptionsDict: any = computed(() => {\n const dict = {};\n props.default_search_condition_config_list.forEach((group_item, index) => {\n dict[index] = [];\n const filter_field_name_list = group_item.map(item => item.field_name);\n props.base_search_condition_config_list.forEach(item => {\n const filter_list = item.group.filter(\n i => !filter_field_name_list.includes(i.field_name),\n );\n const o = {\n value: item.name,\n label: item.name,\n children: filter_list.map(i => {\n return {\n value: i.field_name,\n label: i.label,\n };\n }),\n };\n dict[index].push(o);\n });\n });\n return dict;\n });\n\n const isShowSearchTag = (index, condition) => {\n const value = condition_model_dict.value[index][condition.field_name];\n if (value instanceof Array) {\n const [first] = value;\n if (isNotEmpty(first)) {\n return true;\n }\n } else if (isNotEmpty(value)) {\n return true;\n }\n return false;\n };\n\n const transferValueFunc = (index, condition) => {\n const str_list: any = [];\n const value = condition_model_dict.value[index][condition.field_name];\n if (\n condition.operator === 'is_or_not_blank_or_null' ||\n condition.operator === 'is_or_not_null'\n ) {\n if (value === 'yes') {\n return t('is_or_not_blank_or_null.yes');\n } else {\n return t('is_or_not_blank_or_null.no');\n }\n } else if (condition.operator === '_eq') {\n if (['上月', '本月', '今日', '昨日', '期初'].includes(value)) {\n return t(value);\n }\n } else if (labelModel.value[condition.field_name] != undefined) {\n return `${get_operator_type_map(condition.format, condition.operator)} ${\n labelModel.value[condition.field_name]\n }`;\n } else if (value instanceof Array && condition.field_name_list instanceof Array) {\n let transfer_value;\n if (condition.field_name_list) {\n if (value instanceof Array) {\n transfer_value = value.join(',');\n } else {\n transfer_value = value;\n }\n }\n return `${get_operator_type_map(condition.format, condition.operator)} ${transfer_value}`;\n } else if (value instanceof Array && condition.options instanceof Array) {\n value.forEach(item => {\n condition.options.forEach(i => {\n if (item == i.value) {\n str_list.push(i.label);\n }\n });\n });\n return `${get_operator_type_map(condition.format, condition.operator)} ${str_list.join(\n ',',\n )}`;\n } else {\n let transfer_value;\n if (condition.options) {\n condition.options.forEach(i => {\n if (value == i.value) {\n transfer_value = i.label;\n }\n });\n } else if (condition.type == 'monthpicker' && condition.dateFormat) {\n if (value instanceof Array) {\n const str_list = [];\n value.forEach(i => {\n if (i) {\n str_list.push(moment(i).format(condition.dateFormat));\n } else {\n str_list.push(i);\n }\n });\n transfer_value = str_list.join(',');\n } else {\n transfer_value = moment(value).format(condition.dateFormat);\n }\n } else {\n transfer_value = value;\n }\n return `${get_operator_type_map(condition.format, condition.operator)} ${transfer_value}`;\n }\n };\n\n const handleShowSearchRender = () => {\n emit('onShowSearchRender');\n };\n\n const get_operator_list_selected = condition => {\n if (condition.operator_list_selected) {\n return condition.operator_list_selected;\n } else if (condition.operator_list) {\n return condition.operator_list;\n } else {\n return [];\n }\n };\n\n watch(\n () => condition_model_dict.value,\n () => {\n emit('onChangeValue', { model: condition_model_dict.value });\n // console.log('onChangeValue_watch');\n },\n { deep: true },\n );\n watch(\n () => props.default_search_condition_config_list,\n () => {\n if (props.default_search_condition_config_list?.length == 0) {\n emit('update_default_search_condition_config_list', {\n new_list: source_default_search_condition_config_list.value,\n });\n return;\n }\n refreshCondition();\n },\n { deep: true },\n );\n watch(\n () => props.base_search_condition_config_list,\n () => {\n refreshCondition();\n },\n { deep: true },\n );\n\n watch(\n () => props.is_clear_model,\n () => {\n if (props.is_clear_model) {\n condition_model_dict.value = {};\n refreshCondition();\n emit('update:is_clear_model', false);\n }\n },\n );\n onMounted(() => {\n refreshCondition();\n if (props.eventBus) {\n props.eventBus.on('filterChange', onFilterChanged);\n }\n });\n onUnmounted(() => {\n if (props.eventBus) {\n props.eventBus.off('filterChange', onFilterChanged);\n }\n });\n return {\n props,\n t,\n isShowForm,\n labelModel,\n get_operator_type_map,\n condition_model_dict,\n addConditionModal,\n handleAddConditions,\n handleAddConditionOk,\n handleAddConditionCancel,\n onChangeOperator,\n handleAddGroupCondition,\n handleSearch,\n\n addConditionGroupModal,\n handleAddGroupConditionOK,\n handleAddGroupConditionCancel,\n validateInfos,\n\n deleteBtnDict,\n handleMouseEnter,\n handleMouseLeave,\n handleDeleteFormItem,\n handleDelSearch,\n\n searchItemOptionsDict,\n onChangeSearchItem,\n transferValueFunc,\n isShowSearchTag,\n handleShowSearchRender,\n options_eq,\n get_operator_list_selected,\n is_or_not_blank_or_null_options,\n };\n },\n});\n</script>\n<style lang=\"less\" scoped>\n.card {\n overflow: auto;\n max-height: 300px;\n background: #f2f5f7;\n}\n\n.condition-group {\n padding: 5px;\n}\n\n.range {\n margin-top: 5px;\n}\n\n.close-icon {\n width: 15px;\n margin-top: 5px;\n margin-left: 5px;\n color: red;\n}\n\n.search-bar {\n background: #f2f5f7;\n text-align: right;\n}\n\n:deep(.divider .ant-divider) {\n margin: 0;\n}\n</style>\n","<template>\n <a-form\n ref=\"form\"\n autocomplete=\"off\"\n :model=\"model\"\n :rules=\"form.rules\"\n :layout=\"form.settings.layout\"\n :validateTrigger=\"false\"\n :label-col=\"\n form.settings.layout == 'vertical'\n ? undefined\n : form.settings.labelCol\n ? form.settings.labelCol\n : form.settings.col && form.settings.col.length > 0\n ? { span: 6 }\n : { span: 4 }\n \"\n :wrapper-col=\"\n form.settings.layout == 'vertical'\n ? undefined\n : form.settings.wrapperCol\n ? form.settings.wrapperCol\n : form.settings.col && form.settings.col.length > 0\n ? { span: 18 }\n : { span: 20 }\n \"\n :labelAlign=\"form.settings.labelAlign\"\n scrollToFirstError\n >\n <a-row\n :gutter=\"20\"\n style=\"margin: 0\"\n >\n <template v-if=\"form.settings.col && form.settings.col.length > 0\">\n <a-col\n v-for=\"col in fieldList\"\n :xl=\"24 / fieldList.length\"\n :lg=\"24\"\n :md=\"24\"\n :sm=\"24\"\n :xs=\"24\"\n >\n <field-render\n v-for=\"field in form.fields.slice(col[0], col[1])\"\n v-model:value=\"model[field.name]\"\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n </a-col>\n </template>\n <a-col\n v-if=\"!form.settings.col || form.settings.col.length === 0\"\n :xl=\"24\"\n :lg=\"24\"\n :md=\"24\"\n :sm=\"24\"\n :xs=\"24\"\n >\n <template v-for=\"field in form.fields\">\n <field-render\n v-model:value=\"model[field.name]\"\n v-model:label=\"model[field.name2]\"\n v-if=\"field.name2\"\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n <field-render\n v-model:value=\"model[field.name]\"\n v-else\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n </template>\n </a-col>\n </a-row>\n </a-form>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, watch } from 'vue';\n\nexport default defineComponent({\n name: 'FormRender',\n components: {},\n props: {\n model: {\n type: Object,\n required: true,\n },\n form: {\n type: Object,\n required: true,\n },\n options: {\n type: Object,\n required: true,\n },\n validateInfos: {\n type: Object,\n default: () => {},\n },\n },\n setup(props) {\n if (props.form.watch) {\n for (const k in props.form.watch) {\n watch(\n () => props.model[k],\n () => {\n props.form.watch[k](props.model, props.form);\n },\n );\n }\n }\n },\n\n data() {\n return {\n fieldList: [] as any[],\n };\n },\n methods: {\n validate() {\n return (this.$refs.form as any).validate();\n },\n reset() {\n (this.$refs.form as any).resetFields();\n },\n disable(name: string | number) {\n // eslint-disable-next-line vue/no-mutating-props\n this.form.fields[name].disabled = true;\n },\n disableAll() {\n this.form.fields.forEach((item: any) => {\n item.disabled = true;\n });\n },\n },\n created() {\n let a = 0;\n if (this.form.settings.col && this.form.settings.col.length > 0) {\n this.form.settings.col.forEach((item: number, i: number) => {\n a = a + item;\n if (i === 0) {\n this.fieldList.push([0, a]);\n } else {\n this.fieldList.push([a - item, a]);\n }\n });\n }\n },\n});\n</script>\n","<template>\n <a-form\n ref=\"form\"\n autocomplete=\"off\"\n :model=\"model\"\n :rules=\"form.rules\"\n scrollToFirstError\n >\n <a-row\n gutter=\"5\"\n v-for=\"row in form.fieldList\"\n type=\"flex\"\n >\n <a-col\n v-for=\"field in row\"\n :span=\"field.span\"\n >\n <template v-for=\"field in form.fields\">\n <field-render\n v-model:value=\"model[field.name]\"\n v-model:label=\"model[field.name2]\"\n v-if=\"field.name2\"\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n <field-render\n v-model:value=\"model[field.name]\"\n v-else\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n </template>\n </a-col>\n </a-row>\n </a-form>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, watch } from 'vue';\n\nexport default defineComponent({\n name: 'FormRender2',\n components: {},\n props: {\n model: {\n type: Object,\n required: true,\n },\n form: {\n type: Object,\n required: true,\n },\n options: {\n type: Object,\n required: true,\n },\n validateInfos: {\n type: Object,\n default: () => {},\n },\n },\n setup(props) {\n if (props.form.watch) {\n for (const k in props.form.watch) {\n watch(\n () => props.model[k],\n () => {\n props.form.watch[k](props.model, props.form);\n },\n );\n }\n }\n },\n\n data() {\n return {};\n },\n methods: {\n validate() {\n return (this.$refs.form as any).validate();\n },\n reset() {\n (this.$refs.form as any).resetFields();\n },\n disable(name: string | number) {\n // eslint-disable-next-line vue/no-mutating-props\n this.form.fields[name].disabled = true;\n },\n disableAll() {\n this.form.fields.forEach((item: any) => {\n item.disabled = true;\n });\n },\n },\n created() {},\n});\n</script>\n","<template>\n <template\n v-if=\"field.type !== 'divider' && (field?.is_search_show !== false || field_render_show)\"\n >\n <slot />\n <div\n v-if=\"field.type === 'kong'\"\n style=\"height: 62px; width: 200px\"\n ></div>\n <!-- 展示内容-->\n <div v-if=\"field.type === 'tag'\">\n <a-tag\n :color=\"field.color ? field.color(field, model) : 'green'\"\n :style=\"field.style\"\n v-if=\"(field.content && field.content(field, model)) || model\"\n @click=\"field.cb ? field.cb(field, model) : ''\"\n >\n <span v-if=\"field.content\">\n {{ field.content(field, model) }}\n </span>\n <span v-else>{{ model }}</span>\n </a-tag>\n </div>\n <!-- 表单占位组件-->\n <!-- 默认 【表单空位 高62px; 名称空位 高30px;】 如遇个别特殊表单,根据实际情况自行调节 高度-->\n <!-- height 属性必填-->\n <div\n v-if=\"field.type === 'kong_title'\"\n :style=\"'height: ' + field.height + 'px'\"\n ></div>\n <div\n v-if=\"field.type === 'title'\"\n style=\"height: 30px; position: relative\"\n >\n <span\n style=\"\n position: absolute;\n bottom: 0;\n padding: 0;\n margin: 0;\n font-weight: bolder;\n font-size: 17px;\n \"\n >\n {{ field.name }}\n </span>\n </div>\n <a-rate\n v-if=\"field.type === 'rate'\"\n v-model:value=\"model\"\n :disabled=\"field.disabled\"\n allow-half\n :style=\"`width: ${field_width}px`\"\n />\n <a-input\n v-if=\"field.type === 'input'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear == undefined ? true : field.allowClear\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :maxlength=\"field.maxlength\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请输入') + field.label\"\n :type=\"field.inputType ? field.inputType : 'text'\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <template\n v-if=\"field?.prefix || field?.prefixIcon\"\n #prefix\n >\n <span v-if=\"field?.prefix\">{{ field.prefix }}</span>\n <component\n v-if=\"field?.prefixIcon\"\n :is=\"field?.prefixIcon\"\n />\n </template>\n <template\n v-if=\"field?.suffix || field?.suffixIcon\"\n #suffix\n >\n <span v-if=\"field?.suffix\">{{ field.suffix }}</span>\n <component\n v-if=\"field?.suffixIcon\"\n :is=\"field?.suffixIcon\"\n />\n </template>\n <template\n v-if=\"field?.addonBefore || field?.addonBeforeIcon\"\n #addonBefore\n >\n <span v-if=\"field?.addonBefore\">{{ field.addonBefore }}</span>\n <component\n v-if=\"field?.addonBeforeIcon\"\n :is=\"field?.addonBeforeIcon\"\n />\n </template>\n <template\n v-if=\"field?.addonAfter || field?.addonAfterIcon\"\n #addonAfter\n >\n <span v-if=\"field?.addonAfter\">{{ field.addonAfter }}</span>\n <component\n v-if=\"field?.addonAfterIcon\"\n :is=\"field?.addonAfterIcon\"\n />\n </template>\n </a-input>\n\n <a-input-number\n v-if=\"field.type === 'money'\"\n size=\"small\"\n v-model:value=\"model\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :disabled=\"field.disabled\"\n :default-value=\"field.defaultValue\"\n :min=\"field.min\"\n :max=\"field.max\"\n :formatter=\"value => `${value}`.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\"\n :precision=\"field.precision\"\n :step=\"field.step\"\n :placeholder=\"\n field.placeholder_i18n == undefined ? field.placeholder : t(field.placeholder_i18n)\n \"\n :style=\"`width: ${field_width}px`\"\n />\n <a-input-number\n v-if=\"field.type === 'number'\"\n v-model:value=\"model\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :formatter=\"field.formatter\"\n :max=\"field.max\"\n :min=\"field.min\"\n :placeholder=\"field.placeholder ? field.placeholder : '请输入' + field.label\"\n :precision=\"field.precision\"\n :step=\"field.step\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <template\n v-if=\"field?.prefix || field?.prefixIcon\"\n #prefix\n >\n <span v-if=\"field?.prefix\">{{ field.prefix }}</span>\n <component\n v-if=\"field?.prefixIcon\"\n :is=\"field?.prefixIcon\"\n />\n </template>\n <template\n v-if=\"field?.suffix || field?.suffixIcon\"\n #suffix\n >\n <span v-if=\"field?.suffix\">{{ field.suffix }}</span>\n <component\n v-if=\"field?.suffixIcon\"\n :is=\"field?.suffixIcon\"\n />\n </template>\n <template\n v-if=\"field?.addonBefore || field?.addonBeforeIcon\"\n #addonBefore\n >\n <span v-if=\"field?.addonBefore\">{{ field.addonBefore }}</span>\n <component\n v-if=\"field?.addonBeforeIcon\"\n :is=\"field?.addonBeforeIcon\"\n />\n </template>\n <template\n v-if=\"field?.addonAfter || field?.addonAfterIcon\"\n #addonAfter\n >\n <span v-if=\"field?.addonAfter\">{{ field.addonAfter }}</span>\n <component\n v-if=\"field?.addonAfterIcon\"\n :is=\"field?.addonAfterIcon\"\n />\n </template>\n </a-input-number>\n\n <template v-if=\"field.type === 'select'\">\n <a-select\n v-if=\"field.mode === 'default'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :dropdownMatchSelectWidth=\"false\"\n :maxTagCount=\"field.maxTagCount ? field.maxTagCount : 'responsive'\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :show-search=\"!!field.show_search\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <a-select-option\n v-for=\"option in options\"\n :key=\"option[field.valueKey ? field.valueKey : 'value']\"\n :value=\"option[field.valueKey ? field.valueKey : 'value']\"\n >\n {{ option[field.labelKey ? field.labelKey : 'label'] }}\n </a-select-option>\n </a-select>\n <a-select\n v-else\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :dropdownMatchSelectWidth=\"false\"\n :maxTagCount=\"field.maxTagCount ? field.maxTagCount : 'responsive'\"\n :mode=\"field.mode\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :show-search=\"!!field.show_search\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <a-select-option\n v-for=\"(option, index) in options\"\n :key=\"index\"\n :value=\"option[field.valueKey ? field.valueKey : 'value']\"\n >\n {{ option[field.labelKey ? field.labelKey : 'label'] }}\n </a-select-option>\n </a-select>\n </template>\n <template v-if=\"field.type === 'groupselect'\">\n <a-select\n v-if=\"field.mode === 'default'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :dropdownMatchSelectWidth=\"false\"\n :getPopupContainer=\"field.getPopupContainer == undefined ? null : field.getPopupContainer\"\n :labelInValue=\"field.labelInValue === true\"\n :maxTagCount=\"field.maxTagCount ? field.maxTagCount : 'responsive'\"\n :options=\"options\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :show-search=\"!!field.show_search\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n ></a-select>\n <a-select\n v-else\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :dropdownMatchSelectWidth=\"false\"\n :getPopupContainer=\"field.getPopupContainer == undefined ? null : field.getPopupContainer\"\n :labelInValue=\"field.labelInValue === true\"\n :maxTagCount=\"field.maxTagCount ? field.maxTagCount : 'responsive'\"\n :mode=\"field.mode\"\n :options=\"options\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :show-search=\"!!field.show_search\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n ></a-select>\n </template>\n\n <a-cascader\n v-if=\"field.type === 'cascader'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :multiple=\"field.multiple\"\n :show-search=\"field.show_search\"\n :changeOnSelect=\"field.changeOnSelect ? field.changeOnSelect : false\"\n :options=\"field.getOptionsData ? field.getOptionsData(options, model) : options\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n />\n\n <remote-cascader\n v-if=\"field.type === 'remotecascader'\"\n v-model:value=\"model\"\n v-model:label=\"labelModel\"\n :field=\"field\"\n :formModel=\"formModel\"\n :get-data=\"field.getData\"\n :label-key=\"field.labelKey\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :search_config=\"field.search_config\"\n :value-key=\"field.valueKey\"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-cascader-pro\n v-if=\"field.type === 'remotecascaderpro'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :field=\"field\"\n :formModel=\"formModel\"\n :outModel=\"outModel\"\n :get-data=\"field.getData\"\n :multiple=\"field.multiple\"\n :maxTagCount=\"field.maxTagCount ? field.maxTagCount : 'responsive'\"\n :show_search=\"field.show_search\"\n :label-key-type=\"field.labelKeyType\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :label-key=\"field.labelKey\"\n :value-key=\"field.valueKey\"\n :init_model=\"field.init_model\"\n :init_watch=\"field.init_watch\"\n :is_form_design=\"is_form_design\"\n :placeholder=\"\n field.placeholder_i18n == undefined\n ? field.placeholder\n ? field.placeholder\n : t('请选择') + field.label\n : t(field.placeholder_i18n)\n \"\n :style=\"`width: ${field_width}px`\"\n />\n\n <month-picker\n v-if=\"field.type === 'monthpicker'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n size=\"small\"\n :is_range=\"field.is_range\"\n :value_has_time=\"field.value_has_time\"\n :start_offset_day=\"field.start_offset_day\"\n :end_offset_day=\"field.end_offset_day\"\n :fix_day=\"field.fix_day\"\n :style=\"`width: ${field_width}px`\"\n />\n <a-date-picker\n v-if=\"field.type === 'datepicker'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :format=\"field.format\"\n :picker=\"field.picker\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :show-time=\"field.showTime\"\n :value-format=\"field.valueFormat\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n />\n\n <a-range-picker\n v-if=\"field.type === 'rangepicker'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue || []\"\n :disabled=\"field.disabled\"\n :format=\"field.format\"\n :placeholder=\"\n field.placeholder && isArray(field.placeholder) && field.placeholder.length > 0\n ? field.placeholder\n : [$t('开始时间'), $t('结束时间')]\n \"\n :show-time=\"field.showTime\"\n :value-format=\"field.valueFormat\"\n :picker=\"field.picker ? field.picker : 'date'\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n />\n\n <month-range-picker\n v-if=\"field.type === 'monthrangepicker'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue || []\"\n :disabled=\"field.disabled\"\n :placeholder=\"field.placeholder\"\n size=\"small\"\n :is_range=\"field.is_range\"\n :value_has_time=\"field.value_has_time\"\n :start_offset_day=\"field.start_offset_day\"\n :end_offset_day=\"field.end_offset_day\"\n :fix_day=\"field.fix_day\"\n :style=\"`width: ${field_width}px`\"\n />\n\n <a-time-picker\n v-if=\"field.type === 'timepicker'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :format=\"field.format ? field.format : 'HH:mm'\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :value-format=\"field.valueFormat ? field.valueFormat : 'HH:mm'\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n />\n <a-time-range-picker\n v-if=\"field.type === 'timerangepicker'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :format=\"field.format ? field.format : 'HH:mm'\"\n :placeholder=\"\n field.placeholder && isArray(field.placeholder) && field.placeholder.length > 0\n ? field.placeholder\n : [$t('开始时间'), $t('结束时间')]\n \"\n :value-format=\"field.valueFormat ? field.valueFormat : 'HH:mm'\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n />\n <a-radio-group\n v-if=\"field.type === 'radio'\"\n v-model:value=\"model\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <a-radio\n v-for=\"option in options\"\n :key=\"option[field.valueKey ? field.valueKey : 'value']\"\n :disabled=\"option.disabled\"\n :value=\"option[field.valueKey ? field.valueKey : 'value']\"\n >\n {{ option[field.labelKey ? field.labelKey : 'label'] }}\n </a-radio>\n </a-radio-group>\n\n <a-checkbox-group\n v-if=\"field.type === 'checkbox'\"\n v-model:value=\"model\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <a-checkbox\n v-for=\"option in options\"\n :key=\"option[field.valueKey ? field.valueKey : 'value']\"\n :disabled=\"option.disabled\"\n :value=\"option[field.valueKey ? field.valueKey : 'value']\"\n >\n {{ option[field.labelKey ? field.labelKey : 'label'] }}\n </a-checkbox>\n </a-checkbox-group>\n\n <a-tree-select\n v-if=\"field.type === 'treeselect'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :dropdownMatchSelectWidth=\"false\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :multiple=\"field.multiple\"\n :tree-checkable=\"field.treeCheckable\"\n :tree-data=\"options\"\n :tree-label-prop=\"field.labelKey\"\n :tree-node-filter-prop=\"field.valueKey\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-filter-select\n v-if=\"field.type === 'remotefilterselect'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :field=\"field\"\n :formModel=\"formModel\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :label-key=\"field.labelKey\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :search_config=\"field.search_config\"\n :value-key=\"field.valueKey\"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-select\n v-if=\"field.type === 'remoteselect'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :field=\"field\"\n :formModel=\"formModel\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :label-key=\"field.labelKey\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :search_config=\"field.search_config\"\n :value-key=\"field.valueKey\"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-select-pro\n v-if=\"field.type === 'remoteselectpro'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :field=\"field\"\n :formModel=\"formModel\"\n :outModel=\"outModel\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :init_watch=\"field.init_watch\"\n :label-key=\"field.labelKey\"\n :label-key-type=\"field.labelKeyType\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :search_config=\"field.search_config\"\n :value-key=\"field.valueKey\"\n :is_input=\"field.is_input\"\n :is_form_design=\"is_form_design\"\n :placeholder=\"\n field.placeholder_i18n == undefined\n ? field.placeholder\n ? field.placeholder\n : $t('请选择') + field.label\n : t(field.placeholder_i18n)\n \"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-complete\n v-if=\"field.type === 'remotecomplete'\"\n v-model:value=\"model\"\n :field=\"field\"\n :formModel=\"formModel\"\n :outModel=\"outModel\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :init_watch=\"field.init_watch\"\n :label-key=\"field.labelKey\"\n :label-key-type=\"field.labelKeyType\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :search_config=\"field.search_config\"\n :value-key=\"field.valueKey\"\n :maxlength=\"field.maxlength\"\n :is_input=\"field.is_input\"\n :is_form_design=\"is_form_design\"\n :placeholder=\"\n field.placeholder_i18n == undefined\n ? field.placeholder\n ? field.placeholder\n : $t('请选择') + field.label\n : t(field.placeholder_i18n)\n \"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-tree-select\n v-if=\"field.type === 'remotetreeselect'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :field=\"field\"\n :formModel=\"formModel\"\n :get-data=\"field.getData\"\n :label-key=\"field.labelKey\"\n :search_config=\"field.search_config\"\n :value-key=\"field.valueKey\"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-tree-select-pro\n v-if=\"field.type === 'remotetreeselectpro'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :field=\"field\"\n :formModel=\"formModel\"\n :outModel=\"outModel\"\n :get-data=\"field.getData\"\n :multiple=\"field.multiple\"\n :search_config=\"field.search_config\"\n :label-key-type=\"field.labelKeyType\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :label-key=\"field.labelKey\"\n :value-key=\"field.valueKey\"\n :init_model=\"field.init_model\"\n :init_watch=\"field.init_watch\"\n :is_form_design=\"is_form_design\"\n :placeholder=\"\n field.placeholder_i18n == undefined\n ? field.placeholder\n ? field.placeholder\n : $t('请选择') + field.label\n : t(field.placeholder_i18n)\n \"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-modal\n v-if=\"field.type === 'remotemodal'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :columns=\"field.columns\"\n :field=\"field\"\n :field_status=\"field.field_status\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :modalType=\"field.modalType\"\n :search_config=\"field.search_config\"\n :watch=\"field.watch\"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-table\n v-if=\"field.type === 'remotetable'\"\n v-model:value=\"model\"\n :columns=\"field.columns\"\n :formModel=\"formModel\"\n :field=\"field\"\n :field_status=\"field.field_status\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :modalType=\"field.modalType\"\n :search_config=\"field.search_config\"\n :watch=\"field.watch\"\n :style=\"`width: ${field_width}px`\"\n />\n\n <remote-text\n v-if=\"field.type === 'remotetext'\"\n v-model:value=\"model\"\n :columns=\"field.columns\"\n :formModel=\"formModel\"\n :field=\"field\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :modalType=\"field.modalType\"\n :search_config=\"field.search_config\"\n :watch=\"field.watch\"\n />\n\n <a-rate\n v-if=\"field.type === 'rate'\"\n v-model:value=\"model\"\n :count=\"field.count ? field.count : 5\"\n :allow-half=\"field.allowHalf\"\n :style=\"`width: ${field_width}px`\"\n />\n <a-radio-group\n v-if=\"field.type === 'radio-color'\"\n v-model:value=\"model\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <a-radio\n v-for=\"option in options\"\n :key=\"option[field.valueKey ? field.valueKey : 'value']\"\n :disabled=\"option.disabled\"\n :value=\"option[field.valueKey ? field.valueKey : 'value']\"\n >\n <div\n :style=\"{\n width: '20px',\n height: '20px',\n backgroundColor: option[field.valueKey ? field.valueKey : 'value'],\n }\"\n ></div>\n </a-radio>\n </a-radio-group>\n </template>\n\n <a-divider\n v-if=\"field.type === 'divider'\"\n :orientation=\"field.orientation\"\n >\n {{ field.label }}\n </a-divider>\n</template>\n<script lang=\"ts\">\nimport RemoteSelect from 'liyu-pc-base/components/FormRender/RemoteSelect/RemoteSelect.vue';\nimport RemoteCascader from 'liyu-pc-base/components/FormRender/RemoteCascader/RemoteCascader.vue';\nimport RemoteModal from 'liyu-pc-base/components/FormRender/RemoteModal/RemoteModal.vue';\nimport RemoteTreeSelect from 'liyu-pc-base/components/FormRender/RemoteTreeSelect/RemoteTreeSelect.vue';\nimport RemoteTable from 'liyu-pc-base/components/FormRender/RemoteTable/RemoteTable.vue';\nimport { defineComponent, watch, onMounted, ref } from 'vue';\nimport RemoteFilterSelect from 'liyu-pc-base/components/FormRender/RemoteFilterSelect/RemoteFilterSelect.vue';\nimport AttributeNomTable from 'liyu-pc-base/components/FormRender/AttributeNomTable/index.vue';\nimport AttributeTable from 'liyu-pc-base/components/FormRender/AttributeTable/index.vue';\nimport JsonStr from 'liyu-pc-base/components/FormRender/JsonStr/index.vue';\nimport JsonObj from 'liyu-pc-base/components/FormRender/JsonObj/index.vue';\nimport RemoteText from 'liyu-pc-base/components/FormRender/RemoteText/RemoteText.vue';\nimport RemoteTablePro from 'liyu-pc-base/components/FormRender/RemoteTablePro/RemoteTablePro.vue';\nimport { debounce, isArray, isEqual } from 'lodash-es';\nimport moment from 'moment';\nimport { isEmpty, isNotEmpty } from 'liyu-pc-base/utils/function';\nimport { PlusOutlined } from '@ant-design/icons-vue';\nimport RemoteSelectPro from 'liyu-pc-base/components/FormRender/RemoteSelectPro/RemoteSelectPro.vue';\nimport RemoteComplete from 'liyu-pc-base/components/FormRender/RemoteComplete/RemoteComplete.vue';\nimport RemoteTreeSelectPro from 'liyu-pc-base/components/FormRender/RemoteTreeSelectPro/RemoteTreeSelectPro.vue';\nimport RemoteCascaderPro from 'liyu-pc-base/components/FormRender/RemoteCascaderPro/RemoteCascaderPro.vue';\nimport Upload from 'liyu-pc-base/components/FormRender/Upload/upload.vue';\nimport RichTextEditor from 'liyu-pc-base/components/FormRender/RichTextEditor/index.vue';\nimport { useI18n } from 'vue-i18n';\nimport IconSelect from 'liyu-pc-base/components/FormRender/iconSelect/index.vue';\nimport MonthPicker from 'liyu-pc-base/components/FormRender/MonthPicker/index.vue';\nimport MonthRangePicker from 'liyu-pc-base/components/FormRender/MonthRangePicker/index.vue';\nimport CodeEditor from 'liyu-pc-base/components/code/CodeEditor.vue';\nimport TinymceEditor from 'liyu-pc-base/components/tinymce/TinymceEditor.vue';\n\nconst isValidDate = (dateString, format = 'YYYY-MM-DD') => {\n const date = moment(dateString, format, true);\n return date.isValid();\n};\nconst isValidDateTime = (dateString, format = 'YYYY-MM-DD HH:mm:ss') => {\n const date = moment(dateString, format, true);\n return date.isValid();\n};\nconst isValidTime = (dateString, format = 'HH:mm:ss') => {\n const date = moment(dateString, format, true);\n return date.isValid();\n};\nexport default defineComponent({\n name: 'FieldRender2',\n methods: { isArray },\n props: {\n field: {\n type: Object,\n required: true,\n },\n value: {\n required: true,\n },\n label: {\n required: false,\n },\n options: {\n type: Array,\n default: () => [],\n },\n validateInfos: {\n type: Object,\n default: () => {},\n },\n formModel: {\n type: Object,\n default: () => {},\n },\n outModel: {\n type: Object,\n default: () => {},\n },\n field_render_show: {\n type: Boolean,\n default: true,\n },\n is_show_label: {\n type: Boolean,\n default: true,\n },\n isUseConditions: {\n type: Boolean,\n default: true,\n },\n is_show_field: {\n type: Boolean,\n default: true,\n },\n is_edit: {\n type: Boolean,\n default: true,\n },\n conditionsVisibleNum: {\n type: Number,\n default: 0,\n },\n is_form_design: {\n type: Boolean,\n default: false,\n },\n field_width: {\n type: Number,\n default: 150,\n },\n },\n emits: [\n 'add',\n 'update:value',\n 'update:label',\n 'update_model',\n 'update:is_show_field',\n 'update:is_edit',\n 'update_name2',\n ],\n setup(props, { emit }) {\n const newModel = ref({ ...props.formModel });\n const rangeDate = (v: any) => {\n if (typeof v == 'string' && v.indexOf(',') >= 0) {\n return v.split(',');\n }\n return v;\n };\n const convertValueByClassName = (value, class_name) => {\n //class_name 'int','float',str','bool','date','datetime','time'\n let new_value;\n if (class_name == 'int') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isNotEmpty(item) && typeof item === 'string') {\n new_value.push(Number(item));\n } else {\n new_value.push(item);\n }\n });\n } else if (isNotEmpty(value) && typeof value === 'string') {\n new_value = Number(value);\n } else {\n new_value = value;\n }\n } else if (class_name == 'str') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isNotEmpty(item) && typeof item === 'number') {\n new_value.push(item.toString());\n } else {\n new_value.push(item);\n }\n });\n } else if (isNotEmpty(value) && typeof value === 'number') {\n new_value = value.toString();\n } else {\n new_value = value;\n }\n } else if (class_name == 'date') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isValidDate(item) && typeof item === 'string') {\n new_value.push(moment(item, 'YYYY-MM-DD'));\n } else {\n new_value.push(item);\n }\n });\n } else if (isValidDate(value) && typeof value === 'string') {\n new_value = value.toString();\n } else {\n new_value = value;\n }\n } else if (class_name == 'datetime') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isValidDateTime(item) && typeof item === 'string') {\n new_value.push(moment(item, 'YYYY-MM-DD HH:mm:ss'));\n } else {\n new_value.push(item);\n }\n });\n } else if (isValidDateTime(value) && typeof value === 'string') {\n new_value = moment(value, 'YYYY-MM-DD HH:mm:ss');\n } else {\n new_value = value;\n }\n } else if (class_name == 'time') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isValidTime(item) && typeof item === 'string') {\n new_value.push(moment(item, 'HH:mm:ss'));\n } else {\n new_value.push(item);\n }\n });\n } else if (isValidTime(value) && typeof value === 'string') {\n new_value = moment(value, 'HH:mm:ss');\n } else {\n new_value = value;\n }\n } else if (class_name == 'float') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isNotEmpty(item) && typeof item === 'string') {\n new_value.push(Number(item));\n } else {\n new_value.push(item);\n }\n });\n } else if (isNotEmpty(value) && typeof value === 'string') {\n new_value = Number(value);\n } else {\n new_value = value;\n }\n } else if (class_name == 'bool') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isNotEmpty(item) && typeof item === 'string') {\n new_value.push(Boolean(item));\n } else {\n new_value.push(item);\n }\n });\n } else if (isNotEmpty(value) && typeof value === 'string') {\n new_value = Boolean(value);\n } else {\n new_value = value;\n }\n }\n return new_value;\n };\n const is_show_field = ref(props.is_show_field);\n const is_edit = ref(false);\n const handleToggleEdit = () => {\n emit('update:is_edit', is_edit.value);\n };\n const handleAdd = () => {\n emit('add');\n };\n const check_visible_field_fun = debounce(() => {\n const old_is_show_field = is_show_field.value;\n const condition_result_list: any = [];\n for (const i in props.field?.conditions) {\n const group_list = props.field?.conditions[i];\n const group_results = [];\n for (const j in group_list) {\n const item = group_list[j];\n const value = props.formModel[item.watchKey];\n let new_value;\n if (item.class_name) {\n new_value = convertValueByClassName(item.value, item.class_name);\n } else {\n new_value = item.value;\n }\n let first, second;\n if (new_value instanceof Array) {\n [first, second] = new_value;\n }\n if (item.operator == 'lt') {\n if (typeof first === 'number') {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (value < first) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (isValidDate(first)) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (moment(value).isBefore(moment(first))) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'lte') {\n if (typeof first === 'number') {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (value <= first) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (isValidDate(first)) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (\n moment(value).isBefore(moment(first)) ||\n moment(value).isSame(moment(first))\n ) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'gt') {\n if (typeof first === 'number') {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (value > first) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (isValidDate(first)) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (moment(value).isAfter(moment(first))) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'gte') {\n if (typeof first === 'number') {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (value >= first) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (isValidDate(first)) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (\n moment(value).isAfter(moment(first)) ||\n moment(value).isSame(moment(first))\n ) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'between') {\n if (typeof first === 'number' && typeof second === 'number' && first && second) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (value >= first && value <= second) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (isValidDate(first)) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (\n (moment(value).isAfter(moment(first)) || moment(value).isSame(moment(first))) &&\n (moment(value).isBefore(moment(second)) || moment(value).isSame(moment(second)))\n ) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'notbetween') {\n if (typeof first === 'number' && typeof second === 'number' && first && second) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (value < first || value > second) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (isValidDate(first)) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (\n moment(value).isBefore(moment(first)) ||\n moment(value).isAfter(moment(second))\n ) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'in') {\n if (value instanceof Array) {\n const f_list = new_value.filter(x => {\n return value.includes(x);\n });\n if (f_list.length > 0) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (typeof value == 'string' || typeof value == 'number' || isEmpty(value)) {\n // 数字 字符串 空\n const f = new_value.find(x => {\n return value == x;\n });\n if (f) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'eq') {\n if (value === first) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == 'contains') {\n if (value.toString().indexOf(first) > -1) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == 'startswith') {\n if (value.toString().startsWith(first)) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == 'notin') {\n if (value instanceof Array) {\n const f_list = new_value.filter(x => {\n return value.includes(x);\n });\n if (f_list.length > 0) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (typeof value == 'string' || typeof value == 'number' || isEmpty(value)) {\n // 数字 字符串 空\n const f = new_value.find(x => {\n return value == x;\n });\n if (!f) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'notcontains') {\n if (value.toString().indexOf(first) == -1) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == '_eq') {\n //todo\n } else if (item.operator == 'json_list_not_blank_not_null') {\n // 非空\n if (value) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == 'json_list_is_blank_is_null') {\n //为空\n if (!value) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == 'not_eq') {\n //为空\n if (!value) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == 'not_blank_not_null') {\n // 非空\n if (value) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n }\n condition_result_list.push(group_results);\n }\n const con_list = [];\n condition_result_list.forEach(item => {\n const find_false_list = item.filter(x => x === false);\n if (find_false_list && find_false_list.length > 0) {\n con_list.push(false);\n } else {\n con_list.push(true);\n }\n });\n\n const find_true_list = con_list.filter(x => x === true);\n if (find_true_list && find_true_list.length > 0) {\n is_show_field.value = true;\n emit('update:is_show_field', is_show_field.value);\n } else {\n is_show_field.value = false;\n emit('update:is_show_field', is_show_field.value);\n }\n if (is_show_field.value !== old_is_show_field) {\n if (is_show_field.value) {\n newModel.value[props.field.name] = null;\n emit('update_model', {\n add_key: props.field.name,\n value: null,\n });\n } else {\n delete newModel.value[props.field.name];\n emit('update_model', {\n remove_key: props.field.name,\n });\n }\n }\n }, 300);\n const model = ref<any>('');\n const labelModel = ref(props.label);\n watch(\n () => model.value,\n (newValue, oldValue) => {\n if (isEqual(newValue, oldValue)) {\n return;\n }\n emit('update:value', newValue);\n if (props.field.name2) {\n let label: any;\n if (props.field.type === 'radio') {\n const obj = props.options.find(\n (item: any) =>\n item[props.field.valueKey ? props.field.valueKey : 'value'] == newValue,\n );\n label = obj?.[props.field.labelKey ? props.field.labelKey : 'label'];\n } else if (props.field.type === 'checkbox' && newValue && newValue.length >= 0) {\n const list = [];\n props.options.forEach((item: any) => {\n newValue.forEach((item1: any) => {\n if (item1 == item?.[props.field.valueKey ? props.field.valueKey : 'value']) {\n list.push(item?.[props.field.labelKey ? props.field.labelKey : 'label']);\n }\n });\n });\n label = list.toString();\n } else if (props.field.type === 'select') {\n if (isArray(newValue)) {\n const list = [];\n props.options.forEach((item: any) => {\n newValue.forEach((item1: any) => {\n if (item1 == item?.[props.field.valueKey ? props.field.valueKey : 'value']) {\n list.push(item?.[props.field.labelKey ? props.field.labelKey : 'label']);\n }\n });\n });\n label = list.toString();\n } else {\n const obj = props.options.find(\n (item: any) =>\n item[props.field.valueKey ? props.field.valueKey : 'value'] == newValue,\n );\n label = obj?.[props.field.labelKey ? props.field.labelKey : 'label'];\n }\n }\n emit('update_name2', {\n key: props.field.name2,\n value: label,\n });\n }\n },\n { deep: true },\n );\n watch(\n () => props.value,\n newValue => {\n let value = newValue;\n if (props.field.type === 'rangepicker' && value) {\n value = rangeDate(value);\n } else if (props.field.type === 'input' && value) {\n value = value.toString().replace(/(^\\s*)|(\\s*$)/g, '');\n }\n if (is_show_field.value) {\n //当该表单项显示时,才做向上的数据绑定,避免把undefined向上传递,影响rules字段的有效过滤\n model.value = value;\n }\n },\n { immediate: true },\n );\n watch(\n () => labelModel.value,\n newValue => {\n emit('update:label', newValue);\n if ('name2' in props.field) {\n emit('update_name2', { key: props.field.name2, value: newValue.toString() });\n }\n },\n { deep: true },\n );\n watch(\n () => props.label,\n newValue => {\n labelModel.value = newValue;\n },\n );\n watch(\n () => props.formModel,\n newValue => {\n newModel.value = { ...newValue };\n },\n { deep: true },\n );\n watch(\n () => newModel.value,\n (newValue, oldValue) => {\n if (props.field?.conditions) {\n props.field?.conditions.forEach(condition_list => {\n condition_list.forEach(item => {\n if (oldValue[item.watchKey] != newValue[item.watchKey]) {\n check_visible_field_fun();\n }\n });\n });\n }\n },\n { deep: true },\n );\n watch(\n () => [props.conditionsVisibleNum, props.isUseConditions],\n () => {\n if (props.field?.conditions) {\n if (props.isUseConditions) {\n check_visible_field_fun();\n } else {\n is_show_field.value = true;\n emit('update:is_show_field', is_show_field.value);\n }\n } else {\n is_show_field.value = true;\n emit('update:is_show_field', is_show_field.value);\n }\n },\n );\n onMounted(() => {\n if (props.field?.conditions instanceof Array && props.field?.conditions.length > 0) {\n check_visible_field_fun();\n } else {\n is_show_field.value = true;\n emit('update:is_show_field', is_show_field.value);\n }\n if (!is_show_field.value) {\n // 表单项所见即所得,如果有隐藏的字段,那么model的key也要清除\n delete newModel.value[props.field.name];\n emit('update_model', {\n remove_key: props.field.name,\n });\n }\n });\n const { t } = useI18n();\n return {\n t,\n is_show_field,\n is_edit,\n handleToggleEdit,\n rangeDate,\n handleAdd,\n model,\n labelModel,\n };\n },\n components: {\n IconSelect,\n RichTextEditor,\n Upload,\n RemoteCascaderPro,\n RemoteTreeSelectPro,\n RemoteSelectPro,\n RemoteComplete,\n AttributeTable,\n AttributeNomTable,\n RemoteFilterSelect,\n RemoteModal,\n RemoteSelect,\n RemoteCascader,\n RemoteTreeSelect,\n RemoteTable,\n JsonStr,\n JsonObj,\n RemoteText,\n RemoteTablePro,\n PlusOutlined,\n MonthPicker,\n MonthRangePicker,\n CodeEditor,\n TinymceEditor,\n },\n});\n</script>\n\n<style scoped>\n.ant-calendar-picker {\n width: 100% !important;\n}\n</style>\n","import { useRequest } from 'liyu-pc-base/init-plugin';\nimport type { PageResult } from 'liyu-pc-base/api/typing';\n\nexport async function create_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/create_view_settings', params);\n}\n\nexport async function update_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/update_view_settings', params);\n}\n\nexport async function refresh_view_settings_cache(params: Record<string, any>) {\n return useRequest().post('/view/refresh_view_settings_cache', params);\n}\n\nexport async function set_view_settings_default(params: Record<string, any>) {\n return useRequest().post('/view/set_view_settings_default', params);\n}\n\nexport async function delete_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/delete_view_settings', params);\n}\n\nexport async function recover_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/recover_view_settings', params);\n}\n\nexport async function get_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/get_view_settings', params);\n}\n\nexport async function create_user_view(params: Record<string, any>) {\n return useRequest().post('/view/create_user_view', params);\n}\n\nexport async function update_user_view(params: Record<string, any>) {\n return useRequest().post('/view/update_user_view', params);\n}\n\nexport async function delete_user_view(params: Record<string, any>) {\n return useRequest().post('/view/delete_user_view', params);\n}\n\nexport async function recover_user_view(params: Record<string, any>) {\n return useRequest().post('/view/recover_user_view', params);\n}\n\nexport async function get_user_view(params: Record<string, any>) {\n return useRequest().post('/view/get_user_view', params);\n}\n\nexport async function get_view_settings_for_user(params: Record<string, any>) {\n return useRequest().post('/view/get_view_settings_for_user', params);\n}\n\nexport async function change_view_settings_sort(params: Record<string, any>) {\n return useRequest().post('/view/change_view_settings_sort', params);\n}\n\nexport async function query_view_settings_list(params?: {\n [key: string]: any;\n}): Promise<PageResult> {\n return useRequest().post('/view/query_view_settings_list', params);\n}\n\nexport async function query_user_view_list(params?: { [key: string]: any }): Promise<PageResult> {\n return useRequest().post('/view/query_user_view_list', params);\n}\n","export const CUSTOM_VIEW_DATA_USER = 'customviewdatauser';\n","<template>\n <a-card :body-style=\"{ padding: 0, height: height + 77 + 'px', overflowY: 'auto' }\">\n <a-collapse\n v-model:activeKey=\"viewKey\"\n :bordered=\"false\"\n class=\"collapses\"\n style=\"background: rgb(255, 255, 255)\"\n >\n <template #expandIcon=\"{ isActive }\">\n <caret-right-outlined :rotate=\"isActive ? 90 : 0\" />\n </template>\n <a-collapse-panel\n :key=\"'1'\"\n :style=\"customStyle\"\n >\n <template #header>\n <span style=\"font-weight: 700\">{{ $t('个人视图') }}</span>\n </template>\n <template #extra>\n <a-tooltip>\n <template #title>{{ $t('个人视图管理') }}</template>\n <setting-outlined\n style=\"margin-right: 10px\"\n @click.stop=\"editView('personal')\"\n />\n </a-tooltip>\n <a-tooltip>\n <template #title>{{ $t('新建个人视图') }}</template>\n <plus-outlined @click.stop=\"addView('personal')\" />\n </a-tooltip>\n </template>\n <a-table\n v-if=\"personData.length > 0\"\n :columns=\"columns\"\n :customRow=\"customRow\"\n :dataSource=\"personData\"\n :pagination=\"false\"\n :showHeader=\"false\"\n :size=\"'small'\"\n >\n <template #bodyCell=\"{ column, record }\">\n <div\n class=\"table\"\n v-if=\"column.dataIndex === 'name'\"\n style=\"width: 100%; cursor: pointer\"\n @click=\"changeView(record)\"\n >\n <a-tooltip\n :title=\"record.name\"\n :color=\"appStore.primaryColor\"\n placement=\"left\"\n :destroyTooltipOnHide=\"true\"\n :overlayStyle=\"{ maxWidth: '200px' }\"\n >\n <div style=\"max-width: 130px; float: left; white-space: nowrap; overflow: hidden\">\n {{ record.name }}\n </div>\n </a-tooltip>\n <span\n class=\"num\"\n style=\"float: right\"\n :style=\"\n currentViewObj.id === record.id ? { color: '#1890ff', fontWeight: 'bold' } : {}\n \"\n >\n {{ record.num }}\n </span>\n <a-dropdown class=\"dropdown\">\n <span\n style=\"float: right; font-weight: 800\"\n @click.stop=\"\"\n >\n · · ·\n </span>\n <template #overlay>\n <a-menu>\n <a-menu-item v-if=\"!record.is_system || is_auth\">\n <a\n href=\"javascript:;\"\n @click=\"handleSubmit(record, 'personal')\"\n >\n {{ $t('编辑') }}\n </a>\n </a-menu-item>\n <a-menu-item>\n <a\n href=\"javascript:;\"\n @click=\"handleShare(record)\"\n >\n {{ $t('分享视图') }}\n </a>\n </a-menu-item>\n <a-menu-item v-if=\"!record.is_system || is_auth\">\n <a\n href=\"javascript:;\"\n @click=\"handleDelet(record)\"\n >\n {{ $t('删除') }}\n </a>\n </a-menu-item>\n </a-menu>\n </template>\n </a-dropdown>\n </div>\n </template>\n </a-table>\n </a-collapse-panel>\n <a-collapse-panel\n :key=\"'2'\"\n :style=\"customStyle\"\n >\n <template #header>\n <span style=\"font-weight: 700\">{{ $t('公共视图') }}</span>\n </template>\n <template #extra>\n <a-tooltip>\n <template #title>{{ $t('公共视图管理') }}</template>\n <setting-outlined\n style=\"margin-right: 10px\"\n @click.stop=\"editView('public')\"\n />\n </a-tooltip>\n <a-tooltip>\n <template #title>{{ $t('新建公共视图') }}</template>\n <plus-outlined @click.stop=\"addView('public')\" />\n </a-tooltip>\n </template>\n <a-table\n v-if=\"publicData.length > 0\"\n :columns=\"columns\"\n :customRow=\"customRow\"\n :dataSource=\"publicData\"\n :pagination=\"false\"\n :showHeader=\"false\"\n :size=\"'small'\"\n >\n <template #bodyCell=\"{ column, record }\">\n <div\n class=\"table\"\n v-if=\"column.dataIndex === 'name'\"\n style=\"width: 100%; cursor: pointer\"\n @click=\"changeView(record)\"\n >\n <a-tooltip\n :title=\"record.name\"\n :color=\"appStore.primaryColor\"\n placement=\"left\"\n :destroyTooltipOnHide=\"true\"\n :overlayStyle=\"{ maxWidth: '200px' }\"\n >\n <div style=\"max-width: 130px; float: left; white-space: nowrap; overflow: hidden\">\n {{ record.name }}\n </div>\n </a-tooltip>\n <span\n class=\"num\"\n style=\"float: right\"\n :style=\"\n currentViewObj.id === record.id ? { color: '#1890ff', fontWeight: 'bold' } : {}\n \"\n >\n {{ record.num }}\n </span>\n <a-dropdown class=\"dropdown\">\n <span\n style=\"float: right; font-weight: 800\"\n @click.stop=\"\"\n >\n · · ·\n </span>\n <template #overlay>\n <a-menu>\n <a-menu-item v-if=\"!record.is_system || is_auth\">\n <a\n href=\"javascript:;\"\n @click=\"handleSubmit(record, 'public')\"\n >\n {{ $t('编辑') }}\n </a>\n </a-menu-item>\n <a-menu-item>\n <a\n href=\"javascript:;\"\n @click=\"handleShare(record)\"\n >\n {{ $t('分享视图') }}\n </a>\n </a-menu-item>\n <a-menu-item v-if=\"!record.is_system || is_auth\">\n <a\n href=\"javascript:;\"\n @click=\"handleDelet(record)\"\n >\n {{ $t('删除') }}\n </a>\n </a-menu-item>\n </a-menu>\n </template>\n </a-dropdown>\n </div>\n </template>\n </a-table>\n </a-collapse-panel>\n </a-collapse>\n </a-card>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n createVNode,\n defineComponent,\n onActivated,\n onMounted,\n onUnmounted,\n reactive,\n ref,\n watch,\n} from 'vue';\nimport {\n CaretRightOutlined,\n ExclamationCircleOutlined,\n PlusOutlined,\n SettingOutlined,\n} from '@ant-design/icons-vue';\nimport modalBox from 'liyu-pc-base/components/form-modal/modal-tools';\nimport { message, Modal } from 'ant-design-vue';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\nimport { useAppStore } from 'liyu-pc-base/init-plugin';\nimport {\n change_view_settings_sort,\n create_view_settings,\n delete_view_settings,\n query_view_settings_list,\n refresh_view_settings_cache,\n set_view_settings_default,\n update_view_settings,\n} from 'liyu-pc-base/api/view-model';\nimport { sourceStore } from 'liyu-pc-base/init-plugin';\nimport { copyValue } from 'liyu-pc-base/utils/function';\nimport { getApiData } from 'liyu-pc-base/api/api-model';\nimport {\n getPageConfig,\n getViewSettingsAndPageConfig,\n} from 'liyu-pc-base/components/remotePages/index';\nimport { useI18n } from 'vue-i18n';\nimport { useRequiredConditionStore } from 'liyu-pc-base/init-plugin';\nimport { required_condition_event_obj } from 'liyu-pc-base/init-plugin';\nimport { useEnv } from 'liyu-pc-base/init-plugin';\nimport { CUSTOM_VIEW_DATA_USER } from 'liyu-pc-base/constants';\n\nconst VIEW_SYSTEM_EDIT = 'view_system_edit';\nconst columns = [\n {\n title: '',\n dataIndex: 'name',\n key: 'name',\n },\n];\nexport default defineComponent({\n name: 'ViewManage',\n components: {\n CaretRightOutlined,\n PlusOutlined,\n SettingOutlined,\n },\n props: {\n currentViewObj: {\n type: Object,\n required: true,\n },\n menu_flag: {\n type: String,\n required: true,\n },\n menu_name: {\n type: String,\n required: true,\n },\n countData: {\n type: String,\n required: true,\n },\n create_num: {\n type: Number,\n required: true,\n },\n current_num: {\n type: Number,\n required: true,\n },\n count_num: {\n type: Number,\n required: true,\n },\n height: {\n type: Number,\n required: true,\n },\n modalType: {\n type: String,\n },\n app_flag: {\n type: String,\n },\n },\n emits: ['change'],\n setup(props, { emit }) {\n const env = useEnv();\n const requiredConditionStore = useRequiredConditionStore();\n const userStore = useUserStore();\n const appStore = useAppStore();\n const current_org = userStore.currentOrg;\n const userid = userStore.userid;\n const is_auth = ref(userStore.CHECK_AUTH(VIEW_SYSTEM_EDIT));\n const viewData = ref([]); // 视图数据\n const { t } = useI18n();\n let mergedConfig: any;\n let defaultAndServerConfig: any;\n const personData = computed(() => {\n const list = viewData.value\n .filter((item: any) => !!item.user_id && item.is_system)\n .map((item: any) => {\n return item;\n })\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort));\n const list1 = viewData.value\n .filter((item: any) => !!item.user_id && !item.is_system)\n .map((item: any) => {\n return item;\n })\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort));\n return list.concat(list1);\n }); // 个人视图数据\n const publicData = computed(() => {\n const list = viewData.value\n .filter((item: any) => !item.user_id && item.is_system)\n .map((item: any) => {\n return item;\n })\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort));\n const list1 = viewData.value\n .filter((item: any) => !item.user_id && !item.is_system)\n .map((item: any) => {\n return item;\n })\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort));\n return list.concat(list1);\n }); // 公共视图数据\n const viewNameList = computed(() => {\n return viewData.value.map((item: any) => {\n return item.name;\n });\n }); // 视图名称列表,用于创建、修改时查重\n\n const fetchData = async ({\n id,\n search_model,\n filter_map,\n sort_fields,\n group_condition,\n conditions,\n isShowGeneralFilter,\n }) => {\n return new Promise(resolve => {\n if (!props.countData && !mergedConfig?.countData) {\n console.error('无count接口');\n resolve(null);\n }\n const obj: any = {\n org_id: current_org.id,\n ...search_model,\n ...filter_map,\n sort_fields: sort_fields,\n };\n if (isShowGeneralFilter) {\n obj.group_condition = group_condition;\n obj.conditions = conditions;\n }\n obj.required_condition = getRequiredConditionObj();\n getApiData(obj, mergedConfig?.countData ? mergedConfig.countData : props.countData)\n .then((res: any) => {\n viewData.value.forEach((item: any) => {\n if (item.id == id) {\n item.num = res;\n }\n });\n resolve(null);\n })\n .catch(error => {\n console.log('error', error);\n message.error(t('获取数据失败, 请刷新页面'));\n });\n });\n };\n const setCount = async (list: any) => {\n for (const item of list) {\n try {\n await fetchData(item);\n } catch (error) {\n console.log('error', error);\n message.error(t('获取数据失败, 请刷新页面'));\n }\n }\n };\n // 查询视图、刷新count\n const viewRefresh = () => {\n getViewSettingsAndPageConfig({\n org_id: current_org.id,\n user_id: userid,\n app_flag: props.app_flag,\n modalType: props.modalType,\n sort_fields: ['sort', 'create_time'],\n is_cache: false,\n })\n .then((res: any) => {\n mergedConfig = getPageConfig(\n props.app_flag,\n props.modalType,\n res.defaultAndServerConfig,\n t,\n {\n use_store: true,\n to_i18n: true,\n enable_btn: false,\n },\n );\n defaultAndServerConfig = res.defaultAndServerConfig;\n if (mergedConfig?.isView === false) {\n window.location.hash = '';\n emit('change', defaultAndServerConfig, {}, true, true);\n return;\n }\n requiredConditionStore.set_required_condition(\n props.modalType,\n mergedConfig.required_condition,\n );\n viewData.value.length = 0;\n let list: any = [];\n const count_search_list: any = [];\n if (res && res.system_user_datas && res.system_user_datas.length > 0) {\n list = list.concat(res.system_user_datas);\n }\n if (res && res.system_public_datas && res.system_public_datas.length > 0) {\n list = list.concat(res.system_public_datas);\n }\n if (res && res.public_datas && res.public_datas.length > 0) {\n list = list.concat(res.public_datas);\n }\n if (res && res.user_datas && res.user_datas.length > 0) {\n list = list.concat(res.user_datas);\n }\n list.forEach((item: any) => {\n let search_model: any = null;\n let filter_map: any = null;\n let group_condition: any = null;\n let conditions: any = null;\n if (item.data.isShowGeneralFilter) {\n search_model = {};\n filter_map = {};\n group_condition = item.data.group_condition;\n conditions = item.data.conditions;\n } else {\n search_model = item.data.search_model;\n filter_map = item.data.filter_map;\n group_condition = {};\n conditions = [];\n }\n viewData.value.push({\n ...item,\n search_model,\n filter_map,\n sort_fields: item.data.sort_fields,\n group_condition: group_condition,\n conditions: conditions,\n });\n count_search_list.push({\n id: item.id,\n isShowGeneralFilter: item.data.isShowGeneralFilter,\n search_model,\n filter_map,\n sort_fields: item.data.sort_fields,\n group_condition,\n conditions,\n });\n });\n if (count_search_list.length > 0) {\n setCount(count_search_list);\n }\n handleHashChange(null);\n })\n .catch(err => {\n console.log('err', err);\n message.error(t('获取视图失败, 请刷新页面'));\n });\n };\n // 根据hash选定当前视图数据 event返回(视图数据,是否刷新页面,是否可自我保存)\n const handleHashChange = (uid: any) => {\n let hash = null;\n if (uid) {\n hash = uid;\n } else if (window.location.hash) {\n hash = window.location.hash.substring(1); // 去掉 # 符号\n }\n if (hash) {\n // 分享的视图链接打开\n const list = viewData.value.filter((item: any) => item.uid == hash);\n if (list && list.length > 0) {\n emit('change', defaultAndServerConfig, { ...list[0], ...list[0].data }, true, true);\n } else {\n query_view_settings_list({\n org_id: current_org.id,\n conditions: [\n [\n {\n field_name: 'is_active',\n operator: 'in',\n value: [true],\n format: 'choices',\n class_name: 'bool',\n },\n {\n field_name: 'view_menu__flag',\n operator: 'eq',\n value: [props.menu_flag],\n format: 'input',\n class_name: 'str',\n },\n {\n field_name: 'uid',\n operator: 'eq',\n value: [hash],\n format: 'input',\n class_name: 'str',\n },\n ],\n ],\n }).then((res: any) => {\n if (res && res.data && res.data.length > 0) {\n emit(\n 'change',\n defaultAndServerConfig,\n {\n ...res.data[0],\n ...res.data[0].data,\n },\n true,\n false,\n );\n } else {\n const list = viewData.value.filter((item: any) => !item.user_id && item.is_default);\n if (list && list.length > 0) {\n window.location.hash = list[0].uid;\n emit('change', defaultAndServerConfig, { ...list[0], ...list[0].data }, true, true);\n return;\n }\n let obj = viewData.value\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort))\n .find((item: any) => !item.user_id);\n if (obj && obj.uid) {\n window.location.hash = obj.uid;\n emit('change', defaultAndServerConfig, { ...obj, ...obj.data }, true, true);\n } else {\n obj = viewData.value\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort))\n .find((item: any) => item.user_id);\n if (obj && obj.uid) {\n window.location.hash = obj.uid;\n emit('change', defaultAndServerConfig, { ...obj, ...obj.data }, true, true);\n } else {\n const obj = {\n uid: null,\n view_menu__flag: props.menu_flag,\n column: {},\n search_model: {},\n filter_map: {},\n sort_fields: [],\n filtered_value: {},\n sort_orders: [],\n };\n emit('change', defaultAndServerConfig, obj, true, false);\n window.location.hash = '';\n }\n }\n }\n });\n }\n } else {\n let current_uid = '';\n if (sourceStore().get(CUSTOM_VIEW_DATA_USER)) {\n current_uid = sourceStore().get(CUSTOM_VIEW_DATA_USER)?.[props.menu_flag]; // 菜单当前视图uid\n }\n if (current_uid) {\n window.location.hash = current_uid;\n handleHashChange(current_uid);\n } else {\n // 优先选择非系统视图的默认视图\n const list = viewData.value.filter(\n (item: any) => !item.user_id && item.is_default && !item.is_system,\n );\n if (list && list.length > 0) {\n window.location.hash = list[0].uid;\n emit('change', defaultAndServerConfig, { ...list[0], ...list[0].data }, true, true);\n return;\n }\n // 其次选择系统视图默认视图(多个默认选择第一个)\n const list_is_system = viewData.value.filter(\n (item: any) => !item.user_id && item.is_default && item.is_system,\n );\n if (list_is_system && list_is_system.length > 0) {\n window.location.hash = list_is_system[0].uid;\n emit(\n 'change',\n defaultAndServerConfig,\n { ...list_is_system[0], ...list_is_system[0].data },\n true,\n true,\n );\n return;\n }\n let obj = viewData.value\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort))\n .find((item: any) => !item.user_id);\n if (obj && obj.uid) {\n window.location.hash = obj.uid;\n emit('change', defaultAndServerConfig, { ...obj, ...obj.data }, true, true);\n } else {\n obj = viewData.value\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort))\n .find((item: any) => item.user_id);\n if (obj && obj.uid) {\n window.location.hash = obj.uid;\n emit('change', defaultAndServerConfig, { ...obj, ...obj.data }, true, true);\n } else {\n window.location.hash = '';\n const obj = {\n uid: null,\n view_menu__flag: props.menu_flag,\n column: {},\n search_model: {},\n filter_map: {},\n sort_fields: [],\n filtered_value: {},\n sort_orders: [],\n };\n emit('change', defaultAndServerConfig, obj, true, false);\n }\n }\n }\n }\n };\n viewRefresh();\n const viewKey = ref(['1', '2']); // 视图数据展开控制key\n const customStyle =\n 'background: #ffffff;border-radius: 4px;margin-bottom: 2px;border: 0;overflow: hidden;';\n const customRow = (record: any) => {\n return props.currentViewObj && record && record.id === props.currentViewObj.id\n ? { style: { backgroundColor: '#ddf1ff' } }\n : { style: {} };\n };\n // 切换视图\n const changeView = (record: any) => {\n window.location.hash = record.uid;\n handleHashChange(record.uid);\n refreshCount([record]);\n };\n // 保存修改视图\n const viewSubmit = ({ updateView, record }) => {\n if (record.name != updateView.name && viewNameList.value.includes(updateView.name)) {\n message.error(t('视图名称已存在'));\n return;\n }\n if (record?.id) {\n const list = viewData.value.filter((item: any) => record?.id == item.id);\n if (updateView.is_submit?.[0]) {\n const view = {\n ...list[0].data,\n search_model: { ...props.currentViewObj.search_model, current: 1 },\n filter_map: props.currentViewObj.filter_map,\n sort_fields: props.currentViewObj.sort_fields,\n filtered_value: props.currentViewObj.filtered_value,\n sort_orders: props.currentViewObj.sort_orders,\n column: props.currentViewObj.column,\n isShowGeneralFilter: props.currentViewObj.isShowGeneralFilter,\n conditions: props.currentViewObj.conditions,\n group_condition: props.currentViewObj.group_condition,\n group_record: props.currentViewObj.group_record,\n default_search_condition_config_list:\n props.currentViewObj.default_search_condition_config_list,\n };\n delete view.is_system; // 存储时不记录is_system,防止后端直接修改,前端不起效\n update_view_settings({\n org_id: current_org.id,\n view_settings_id: record?.id,\n is_system: updateView.is_system?.[0],\n name: updateView.name,\n data: JSON.stringify(view),\n }).then((res: any) => {\n if (updateView.is_default?.[0]) {\n set_view_settings_default({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n refresh_view_settings_cache({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n message.success(t('保存成功'));\n if (res.id == props.currentViewObj?.id) {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, false, true);\n } else {\n viewData.value.forEach((item: any) => {\n if (item.id == res.id) {\n Object.assign(item, { ...res, ...res.data });\n }\n });\n }\n viewRefresh();\n });\n });\n } else {\n refresh_view_settings_cache({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n message.success(t('保存成功'));\n if (res.id == props.currentViewObj?.id) {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, false, true);\n } else {\n viewData.value.forEach((item: any) => {\n if (item.id == res.id) {\n Object.assign(item, { ...res, ...res.data });\n }\n });\n }\n viewRefresh();\n });\n }\n });\n } else {\n update_view_settings({\n org_id: current_org.id,\n view_settings_id: record?.id,\n is_system: updateView.is_system?.[0],\n name: updateView.name,\n }).then((res: any) => {\n if (updateView.is_default?.[0]) {\n set_view_settings_default({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n refresh_view_settings_cache({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n message.success(t('保存成功'));\n if (res.id == props.currentViewObj?.id) {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, false, true);\n } else {\n viewData.value.forEach((item: any) => {\n if (item.id == res.id) {\n Object.assign(item, { ...res, ...res.data });\n }\n });\n }\n viewRefresh();\n });\n });\n } else {\n refresh_view_settings_cache({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n message.success(t('保存成功'));\n if (res.id == props.currentViewObj?.id) {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, false, true);\n } else {\n viewData.value.forEach((item: any) => {\n if (item.id == res.id) {\n Object.assign(item, { ...res, ...res.data });\n }\n });\n }\n viewRefresh();\n });\n }\n });\n }\n } else {\n let view: any = {};\n if (updateView.is_submit?.[0]) {\n view = {\n search_model: { ...props.currentViewObj.search_model, current: 1 },\n filter_map: props.currentViewObj.filter_map,\n sort_fields: props.currentViewObj.sort_fields,\n filtered_value: props.currentViewObj.filtered_value,\n sort_orders: props.currentViewObj.sort_orders,\n column: props.currentViewObj.column,\n isShowGeneralFilter: props.currentViewObj.isShowGeneralFilter,\n conditions: props.currentViewObj.conditions,\n group_condition: props.currentViewObj.group_condition,\n group_record: props.currentViewObj.group_record,\n default_search_condition_config_list:\n props.currentViewObj.default_search_condition_config_list,\n };\n delete view.is_system; // 存储时不记录is_system,防止后端直接修改,前端不起效\n } else {\n view = {\n column: {},\n search_model: {},\n filter_map: {},\n sort_fields: [],\n filtered_value: {},\n sort_orders: [],\n isShowGeneralFilter: null,\n conditions: [],\n group_condition: {},\n group_record: {},\n };\n }\n create_view_settings({\n org_id: current_org.id,\n user_id: updateView.view_type == 'personal' ? userid : null,\n name: updateView.name,\n view_project__flag: env.VITE_APP_VIEW_PROJECT_FLAG,\n view_menu__flag: props.menu_flag,\n view_menu__name: props.menu_name,\n is_system: false,\n data: JSON.stringify(view),\n }).then((res: any) => {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, true, true);\n if (res.id) {\n viewData.value = viewData.value.concat([\n {\n ...res,\n },\n ]);\n setCount([\n {\n id: res.id,\n search_model: view.search_model,\n filter_map: view.filter_map,\n sort_fields: view.sort_fields,\n group_condition: view.group_condition,\n conditions: view.conditions,\n isShowGeneralFilter: view.isShowGeneralFilter,\n },\n ]);\n window.location.hash = res.uid;\n handleHashChange(res.uid);\n }\n });\n }\n };\n // 视图编辑按钮\n const handleSubmit = (record: any, view_type: string) => {\n let is_submit: any = [false];\n if (props.currentViewObj.id == record.id) {\n is_submit = [true];\n }\n const tempModal = reactive({\n open: true,\n loading: false,\n title: t('编辑视图'),\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: t('视图名称'),\n disabled: false,\n allowClear: true,\n inputType: 'text',\n defaultValue: '',\n placeholder: t('请输入视图名称'),\n },\n {\n type: 'checkbox',\n name: 'is_submit',\n label: '',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: [false],\n placeholder: '',\n },\n ],\n rules: reactive({\n name: [\n {\n required: true,\n message: t('请输入视图名称'),\n },\n ],\n }),\n model: reactive({\n name: record.name,\n is_submit: is_submit,\n is_default: [record?.is_default ? record?.is_default : false],\n is_system: [record?.is_system ? record?.is_system : false],\n }),\n },\n options: {\n is_submit: [\n {\n name: t('将当前过滤条件、排序、显示属性、视图和分组等设置更新到该视图中'),\n value: true,\n },\n ],\n is_default: [\n {\n name: t('设为默认视图'),\n value: true,\n },\n ],\n is_system: [\n {\n name: t('设为系统视图'),\n value: true,\n },\n ],\n },\n ok: (data: any) => {\n return new Promise(function (resolve) {\n viewSubmit({ updateView: data, record: record });\n resolve(null);\n });\n },\n });\n if (view_type == 'public') {\n tempModal.form.fields.push({\n type: 'checkbox',\n name: 'is_default',\n label: '',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: [false],\n placeholder: '',\n });\n if (is_auth.value) {\n tempModal.form.fields.push({\n type: 'checkbox',\n name: 'is_system',\n label: '',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: [false],\n placeholder: '',\n });\n }\n }\n modalBox(tempModal);\n };\n // 添加视图\n const addView = (view_type: any) => {\n const tempModal = reactive({\n open: true,\n loading: false,\n title: t('新建视图'),\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: t('视图名称'),\n disabled: false,\n allowClear: true,\n inputType: 'text',\n defaultValue: '',\n placeholder: t('请输入视图名称'),\n },\n {\n type: 'radio',\n name: 'view_type',\n label: t('视图可见范围'),\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '',\n },\n {\n type: 'checkbox',\n name: 'is_submit',\n label: '',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: [false],\n placeholder: '',\n },\n ],\n rules: reactive({\n name: [\n {\n required: true,\n message: t('请输入视图名称'),\n },\n ],\n }),\n model: reactive({\n name: null,\n view_type: view_type,\n is_submit: [true],\n }),\n },\n options: {\n view_type: [\n { name: t('个人视图(仅自己可见)'), value: 'personal' },\n { name: t('公共视图(项目成员均可见)'), value: 'public' },\n ],\n is_submit: [\n {\n name: t('将当前过滤条件、排序、显示属性、视图和分组等设置更新到该视图中'),\n value: true,\n },\n ],\n },\n ok: (data: any) => {\n return new Promise(function (resolve) {\n if (viewNameList.value.includes(data.name)) {\n message.error(t('视图名称已存在'));\n return;\n }\n viewSubmit({ updateView: data, record: data });\n resolve(null);\n });\n },\n });\n modalBox(tempModal);\n };\n // 管理视图\n const editView = (view_type: any) => {\n const tempModal = reactive({\n open: true,\n component: 'ViewEditModal',\n compObj: {\n title: view_type == 'personal' ? t('个人视图管理') : t('公共视图管理'),\n data: view_type == 'personal' ? personData.value : publicData.value,\n },\n ok: (ids: any) => {\n if (ids && ids.length > 0) {\n change_view_settings_sort({\n org_id: current_org.id,\n view_settings_ids: ids,\n }).then(() => {\n message.success(t('保存成功'));\n viewRefresh();\n });\n } else {\n message.success(t('保存成功'));\n viewRefresh();\n }\n },\n cancel: (isEdit: any) => {\n if (isEdit) {\n viewRefresh();\n }\n },\n });\n modalBox(tempModal);\n };\n // 分享视图\n const handleShare = (record: any) => {\n let url = '';\n const index = window.location.href.indexOf('#');\n if (index !== -1) {\n // 如果找到了 #,则截取它之前的部分\n url = window.location.href.substring(0, index) + '#' + record.uid;\n } else {\n // 如果没有找到 #,则返回原始字符串\n url = window.location.href + '#' + record.uid;\n }\n copyValue({ val: url, message: t('复制成功') });\n };\n // 删除视图\n const handleDelet = (record: any) => {\n Modal.confirm({\n title: () =>\n `${t('确认删除此')}【${record.name}】${record?.user_id ? t('个人视图') : t('公共视图')}?`,\n content: t('视图删除后不可恢复,视图下工作项不受影响,是否确认删除?'),\n icon: () => createVNode(ExclamationCircleOutlined),\n okText: t('确定'),\n onOk() {\n return new Promise(resolve => {\n delete_view_settings({\n org_id: current_org.id,\n view_settings_id: record?.id,\n })\n .then(() => {\n viewData.value = viewData.value.filter((item: any) => item.id != record.id);\n handleHashChange(null);\n message.success(t('删除成功'));\n })\n .finally(() => {\n resolve(null);\n });\n }).catch(() => console.log('Oops errors!'));\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onCancel() {},\n });\n };\n const getRequiredConditionObj = () => {\n const page_config = getPageConfig(props.app_flag, props.modalType, null, t, {\n use_store: true,\n to_i18n: true,\n enable_btn: false,\n });\n const required_condition = page_config.required_condition;\n const required_condition_obj = {};\n if (required_condition) {\n required_condition.forEach((item: any) => {\n const value = requiredConditionStore.value_map[item.key];\n if (value !== undefined && value !== null) {\n required_condition_obj[item.field_name] = value;\n }\n });\n }\n return required_condition_obj;\n };\n // 刷新Count (视图record,uid) => {}\n const refreshCount = (list: any) => {\n const count_search_list = [];\n list.forEach((item: any) => {\n let search_model: any = null;\n let filter_map: any = null;\n let group_condition: any = null;\n let conditions: any = null;\n if (item.data.isShowGeneralFilter) {\n search_model = {};\n filter_map = {};\n group_condition = item.data.group_condition;\n conditions = item.data.conditions;\n } else {\n search_model = item.data.search_model;\n filter_map = item.data.filter_map;\n group_condition = {};\n conditions = [];\n }\n count_search_list.push({\n id: item.id,\n search_model,\n filter_map,\n sort_fields: item.data.sort_fields,\n group_condition,\n conditions,\n isShowGeneralFilter: item.data.isShowGeneralFilter,\n });\n });\n setCount(count_search_list);\n };\n watch(\n () => props.current_num, // 监听保存当前视图\n () => {\n Modal.confirm({\n title: () => t('确定覆盖视图吗?'),\n content: t('当前视图原有的数据会被覆盖'),\n icon: () => createVNode(ExclamationCircleOutlined),\n okText: t('确定'),\n onOk() {\n return new Promise(resolve => {\n viewSubmit({\n updateView: {\n is_submit: [true],\n is_system: [props.currentViewObj.is_system],\n name: props.currentViewObj.name,\n },\n record: props.currentViewObj,\n });\n resolve(null);\n }).catch(() => console.log('Oops errors!'));\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onCancel() {},\n });\n },\n );\n watch(\n () => props.create_num, // 监听另存为\n () => {\n const tempModal = reactive({\n open: true,\n loading: false,\n title: t('新建视图'),\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: t('视图名称'),\n disabled: false,\n allowClear: true,\n inputType: 'text',\n defaultValue: '',\n placeholder: t('请输入视图名称'),\n },\n {\n type: 'radio',\n name: 'view_type',\n label: t('视图可见范围'),\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '',\n },\n ],\n rules: reactive({\n name: [\n {\n required: true,\n message: t('请输入视图名称'),\n },\n ],\n }),\n model: reactive({\n name: null,\n view_type: 'personal',\n is_submit: [true],\n }),\n },\n options: {\n view_type: [\n { name: t('个人视图(仅自己可见)'), value: 'personal' },\n { name: t('公共视图(项目成员均可见)'), value: 'public' },\n ],\n is_submit: [\n {\n name: t('将当前过滤条件、排序、显示属性、视图和分组等设置更新到该视图中'),\n value: true,\n },\n ],\n },\n ok: (data: any) => {\n return new Promise(function (resolve) {\n const viewNameList = viewData.value.map((item: any) => item.name);\n if (viewNameList.includes(data.name)) {\n message.error(t('视图名称已存在'));\n return;\n }\n viewSubmit({ updateView: data, record: data });\n resolve(null);\n });\n },\n });\n modalBox(tempModal);\n },\n );\n\n watch(\n () => props.count_num, // 监听刷新当前视图count\n () => {\n refreshCount(viewData.value);\n },\n );\n const handleRequiredConditionChange = (key: string) => {\n const page_config = getPageConfig(props.currentViewObj.app_flag, props.modalType, null, t, {\n use_store: true,\n to_i18n: true,\n enable_btn: false,\n });\n if (page_config.required_condition) {\n const item = page_config.required_condition.find((item: any) => item.key === key);\n if (item) {\n viewRefresh();\n }\n }\n };\n onMounted(() => {\n required_condition_event_obj().on('change', handleRequiredConditionChange);\n });\n onUnmounted(() => {\n required_condition_event_obj().off('change', handleRequiredConditionChange);\n });\n // 页面重新进入刷新count\n onActivated(() => {\n refreshCount(viewData.value);\n });\n return {\n props,\n viewKey,\n customStyle,\n columns,\n personData,\n publicData,\n is_auth,\n addView,\n editView,\n customRow,\n changeView,\n handleSubmit,\n handleShare,\n handleDelet,\n appStore,\n };\n },\n});\n</script>\n<style lang=\"less\">\n.collapses .ant-collapse-item .ant-collapse-content .ant-collapse-content-box {\n padding: 0;\n}\n\n.num {\n display: inline-block;\n}\n\n.dropdown {\n display: none;\n}\n\n.table:hover .dropdown {\n display: inline-block;\n}\n\n.table:hover .num {\n display: none;\n}\n</style>\n","<template>\n <a-card :body-style=\"{ padding: 0, height: selectObj.height + 96 + 'px', overflowY: 'auto' }\">\n <view-manage\n :select-obj=\"selectObj\"\n @change=\"change\"\n />\n </a-card>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref } from 'vue';\n// import SideFieldRender from 'liyu-pc-base/components/SideSearchRender/SideFieldRender.vue';\n// import { ReloadOutlined } from '@ant-design/icons-vue';\nimport ViewManage from 'liyu-pc-base/components/SideSearchRender/viewManage.vue';\n\nexport default defineComponent({\n name: 'SideSearchRender',\n components: {\n ViewManage,\n },\n props: {\n selectObj: {\n type: Object,\n required: true,\n },\n },\n emits: ['change'],\n setup(props, { emit }) {\n const change = (data: any, is_refresh: any, is_ownView: any) => {\n emit('change', data, is_refresh, is_ownView);\n };\n return {\n props,\n change,\n };\n },\n});\n</script>\n<style lang=\"less\">\n.collapses .ant-collapse-item .ant-collapse-content .ant-collapse-content-box {\n padding: 0;\n}\n</style>\n"],"names":["_sfc_main$7","defineComponent","props","emit","activeKey","ref","tab_list","item_list","index","base_search_list","i","handleSubmit","e","list","item","selected_group_list","temp","operator_list_selected","get_operator_list_selected","first","condition","_resolveComponent","_openBlock","_createBlock","_component_a_modal","_ctx","_cache","_withCtx","_createVNode","_component_a_tabs","$event","_createElementBlock","_Fragment","_renderList","_component_a_tab_pane","base_search_item","_createElementVNode","_hoisted_1","_toDisplayString","_component_a_space","obj","_component_a_checkbox","_sfc_main$6","_a","k","_b","new_search_list","new_group","new_i","message","_hoisted_3","get_options_eq","t","_sfc_main$5","FieldRender2","CloseOutlined","LeftOutlined","RightOutlined","FieldRender","AddConditionGroupModal","AddConditionModal","CloseCircleOutlined","isShowForm","labelModel","useI18n","options_eq","condition_model_dict","validateInfos","source_default_search_condition_config_list","is_or_not_blank_or_null_options","operator_type_count_map","is2DArray","arr","subArray","old_operator","onChangeOperator","operator","value","isNotEmpty","seconds","addConditionModal","reactive","handleAddConditions","handleAddConditionOk","data","item1","index1","item2","item3","handleAddConditionCancel","addConditionGroupModal","handleAddGroupCondition","handleAddGroupConditionOK","handleAddGroupConditionCancel","handleSearch","refreshCondition","update_all","deleteBtnDict","group_item","onFilterChanged","handleMouseEnter","form_item","handleMouseLeave","handleDeleteFormItem","new_list","index_","handleDelSearch","filed_name","onChangeSearchItem","group_index","condition_index","selected_field_name","new_condition","searchItemOptionsDict","computed","dict","filter_field_name_list","filter_list","o","isShowSearchTag","transferValueFunc","str_list","get_operator_type_map","transfer_value","moment","handleShowSearchRender","watch","onMounted","onUnmounted","_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_4","_createCommentVNode","_component_a_button","_withDirectives","_component_a_tag","_createTextVNode","_component_close_outlined","_vShow","_hoisted_2","_component_a_space_compact","_component_a_input_group","_component_a_tooltip","_component_a_cascader","_component_a_select","_component_a_select_option","_component_field_render_2","_component_a_flex","_hoisted_5","_hoisted_6","_component_close_circle_outlined","_component_a_divider","_hoisted_7","_component_add_condition_modal","_component_add_condition_group_modal","_sfc_main$4","name","a","_component_a_form","_component_a_row","col","_component_a_col","field","_component_field_render","_sfc_main$3","row","field2","isValidDate","dateString","format","isValidDateTime","isValidTime","_sfc_main$2","isArray","newModel","rangeDate","v","convertValueByClassName","class_name","new_value","is_show_field","is_edit","handleToggleEdit","handleAdd","check_visible_field_fun","debounce","old_is_show_field","condition_result_list","group_list","group_results","j","second","isEmpty","x","con_list","find_false_list","find_true_list","model","newValue","oldValue","isEqual","label","condition_list","IconSelect","RichTextEditor","Upload","RemoteCascaderPro","RemoteTreeSelectPro","RemoteSelectPro","RemoteComplete","AttributeTable","AttributeNomTable","RemoteFilterSelect","RemoteModal","RemoteSelect","RemoteCascader","RemoteTreeSelect","RemoteTable","JsonStr","JsonObj","RemoteText","RemoteTablePro","PlusOutlined","MonthPicker","MonthRangePicker","CodeEditor","TinymceEditor","_renderSlot","_normalizeStyle","_component_a_rate","_component_a_input","_createSlots","_c","_resolveDynamicComponent","_e","_g","_i","_component_a_input_number","_k","_m","_o","_q","option","_component_remote_cascader","_component_remote_cascader_pro","_component_month_picker","_component_a_date_picker","_component_a_range_picker","_component_month_range_picker","_component_a_time_picker","_component_a_time_range_picker","_component_a_radio_group","_component_a_radio","_component_a_checkbox_group","_component_a_tree_select","_component_remote_filter_select","_component_remote_select","_component_remote_select_pro","_component_remote_complete","_component_remote_tree_select","_component_remote_tree_select_pro","_component_remote_modal","_component_remote_table","_component_remote_text","create_view_settings","params","useRequest","update_view_settings","refresh_view_settings_cache","set_view_settings_default","delete_view_settings","change_view_settings_sort","query_view_settings_list","CUSTOM_VIEW_DATA_USER","VIEW_SYSTEM_EDIT","columns","_sfc_main$1","CaretRightOutlined","SettingOutlined","env","useEnv","requiredConditionStore","useRequiredConditionStore","userStore","useUserStore","appStore","useAppStore","current_org","userid","is_auth","viewData","mergedConfig","defaultAndServerConfig","personData","b","list1","publicData","viewNameList","fetchData","id","search_model","filter_map","sort_fields","group_condition","conditions","isShowGeneralFilter","resolve","getRequiredConditionObj","getApiData","res","error","setCount","viewRefresh","getViewSettingsAndPageConfig","getPageConfig","count_search_list","handleHashChange","err","uid","hash","current_uid","sourceStore","list_is_system","viewKey","customStyle","customRow","record","changeView","refreshCount","viewSubmit","updateView","view","_d","view_type","is_submit","tempModal","modalBox","addView","editView","ids","isEdit","handleShare","url","copyValue","handleDelet","Modal","createVNode","ExclamationCircleOutlined","required_condition","required_condition_obj","handleRequiredConditionChange","key","page_config","required_condition_event_obj","onActivated","_component_a_collapse","isActive","_component_caret_right_outlined","_component_a_collapse_panel","_component_setting_outlined","_component_plus_outlined","_component_a_table","column","_component_a_dropdown","_component_a_menu","_component_a_menu_item","_withModifiers","_sfc_main","ViewManage","is_refresh","is_ownView","_component_view_manage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/components/FormRender/GeneralFilter/AddConditionModal/index.vue","../../src/components/FormRender/GeneralFilter/AddConditionGroupModal/index.vue","../../src/components/FormRender/GeneralFilter/data.ts","../../src/components/FormRender/GeneralFilter/index.vue","../../src/components/FormRender/FormRender.vue","../../src/components/FormRender/FormRender2.vue","../../src/components/FormRender/SmallTableSerarchField.vue","../../src/api/view-model.ts","../../src/constants.ts","../../src/components/SideSearchRender/viewManage.vue","../../src/components/SideSearchRender/SideSearchRender.vue"],"sourcesContent":["<template>\n <a-modal\n title=\"添加过滤条件\"\n width=\"800px\"\n :open=\"open\"\n transitionName=\"\"\n maskTransitionName=\"\"\n :destroyOnClose=\"true\"\n :confirmLoading=\"loading\"\n centered\n @ok=\"handleSubmit\"\n @cancel=\"\n () => {\n $emit('cancel');\n }\n \"\n >\n <a-tabs v-model:activeKey=\"activeKey\">\n <a-tab-pane\n class=\"my-card\"\n v-for=\"item in tab_list\"\n :key=\"item.key\"\n :tab=\"item.tab_name\"\n >\n <div\n v-for=\"base_search_item in item.base_search_list\"\n :key=\"base_search_item.name\"\n >\n <div style=\"font-size: 14px\">{{ base_search_item.name }}</div>\n <a-space\n wrap\n style=\"padding-left: 10px; margin-bottom: 0\"\n >\n <div\n v-for=\"obj in base_search_item.group\"\n :key=\"obj.field_name\"\n >\n <a-checkbox v-model:checked=\"obj.checked\">\n <span style=\"color: #7d8089\">{{ obj.label }}</span>\n </a-checkbox>\n </div>\n </a-space>\n </div>\n </a-tab-pane>\n </a-tabs>\n </a-modal>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, reactive, ref } from 'vue';\n\nexport default defineComponent({\n name: 'AddConditionModal',\n props: {\n open: {\n type: Boolean,\n required: true,\n },\n loading: {\n type: Boolean,\n required: false,\n },\n default_search_condition_config_list: {\n type: Array,\n required: false,\n },\n base_search_condition_config_list: {\n type: Array,\n required: false,\n },\n },\n emits: ['ok', 'cancel'],\n setup(props, { emit }) {\n const activeKey = ref('condition_tab_0');\n const tab_list = ref([]);\n props.default_search_condition_config_list.forEach((item_list: any, index: number) => {\n const base_search_list: any = JSON.parse(\n JSON.stringify(props.base_search_condition_config_list),\n );\n if (base_search_list) {\n base_search_list.forEach((base_search_list: any) => {\n base_search_list.group.forEach(i => {\n item_list.forEach((k: any) => {\n if (i.field_name == k.field_name) {\n i.operator = k.operator;\n i.checked = true;\n }\n });\n });\n });\n }\n tab_list.value.push({\n tab_name: `条件组${index + 1}`,\n key: `condition_tab_${index}`,\n base_search_list: base_search_list,\n });\n });\n const handleSubmit = (e: Event) => {\n e.preventDefault();\n const list = [];\n tab_list.value.forEach(item => {\n const selected_group_list: any = [];\n item.base_search_list.forEach(i => {\n i.group.forEach((temp: any) => {\n if (temp.checked) {\n if (!temp.operator) {\n const operator_list_selected = get_operator_list_selected(temp);\n if (operator_list_selected.length > 0) {\n const [first] = operator_list_selected;\n temp.operator = first;\n }\n }\n selected_group_list.push(temp);\n }\n });\n });\n list.push(selected_group_list);\n });\n emit('ok', { new_list: list });\n };\n const get_operator_list_selected = (condition) => {\n if (condition.operator_list_selected) {\n return condition.operator_list_selected;\n }\n else if (condition.operator_list) {\n return condition.operator_list;\n }\n else {\n return [];\n }\n };\n\n return {\n props,\n activeKey,\n tab_list,\n handleSubmit,\n };\n },\n});\n</script>\n<style scoped>\n.my-card {\n padding: 20px;\n background-color: #f6f7f9;\n}\n</style>\n","<template>\n <a-modal\n title=\"添加过滤条件组\"\n width=\"800px\"\n :open=\"open\"\n transitionName=\"\"\n maskTransitionName=\"\"\n :destroyOnClose=\"true\"\n :confirmLoading=\"loading\"\n centered\n @ok=\"handleSubmit\"\n @cancel=\"\n () => {\n $emit('cancel');\n }\n \"\n >\n\n <a-tab-pane class=\"my-card\" v-for=\"item in tab_list\"\n :key=\"item.key\" :tab=\"item.tab_name\">\n <div v-for=\"base_search_item in item.base_search_list\" :key=\"base_search_item.name\">\n <div style=\"font-size: 14px;\">{{base_search_item.name}}</div>\n <a-space wrap>\n <div v-for=\"obj in base_search_item.group\" :key=\"obj.field_name\">\n <a-checkbox v-model:checked=\"obj.checked\" >\n <span style=\"color:#7d8089\">{{ obj.label }}</span>\n </a-checkbox>\n </div>\n </a-space>\n </div>\n </a-tab-pane>\n\n <a-tabs v-model:activeKey=\"activeKey\">\n <a-tab-pane class=\"my-card\" v-for=\"item in tab_list\"\n :key=\"item.key\" :tab=\"item.tab_name\">\n <div v-for=\"base_search_item in item.base_search_list\" :key=\"base_search_item.name\">\n <div style=\"font-size: 14px;\">{{base_search_item.name}}</div>\n <a-space wrap style=\"padding-left: 10px; margin-bottom:0\">\n <div v-for=\"obj in base_search_item.group\" :key=\"obj.field_name\">\n <a-checkbox v-model:checked=\"obj.checked\" >\n <span style=\"color:#7d8089\">{{ obj.label }}</span>\n </a-checkbox>\n </div>\n </a-space>\n </div>\n </a-tab-pane>\n </a-tabs>\n </a-modal>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, reactive, ref } from 'vue';\nimport { message } from 'ant-design-vue';\nexport default defineComponent({\n name: 'AddConditionGroupModal',\n props: {\n open: {\n type: Boolean,\n required: true,\n },\n loading: {\n type: Boolean,\n required: false,\n },\n default_search_condition_config_list: {\n type: Array,\n required: false,\n },\n base_search_condition_config_list: {\n type: Array,\n required: false,\n },\n },\n emits: ['ok', 'cancel'],\n setup(props, { emit }) {\n const tab_list = ref([]);\n const get_operator_list_selected = (condition) => {\n if (condition.operator_list_selected) {\n return condition.operator_list_selected;\n }\n else if (condition.operator_list) {\n return condition.operator_list;\n }\n else {\n return [];\n }\n };\n props.default_search_condition_config_list?.forEach((item_list:any, index:number)=>{\n const base_search_list:any = JSON.parse(JSON.stringify(props.base_search_condition_config_list));\n if(base_search_list){\n base_search_list.forEach((base_search_list:any)=>{\n base_search_list.group.forEach(i=>{\n item_list.forEach((k:any)=>{\n if(i.field_name == k.field_name){\n i.checked = true;\n }\n });\n });\n });\n }\n tab_list.value.push({\n tab_name:`条件组${index+1}`,\n key:`condition_tab_${index}`,\n base_search_list: base_search_list,\n });\n });\n const index = props.default_search_condition_config_list?.length || 0;\n const new_search_list = [];\n props.base_search_condition_config_list.forEach((item:any)=>{\n const new_group = [];\n item.group.forEach(i=>{\n const operator_list_selected = get_operator_list_selected(i);\n if(i.default_operator){\n i.operator = i.default_operator;\n }\n if(!operator_list_selected.includes(i.operator)){\n i.operator = null;\n }\n if(!i.operator && operator_list_selected.length>0){\n const [first] = operator_list_selected;\n i.operator = first;\n }\n const new_i = { ...i, checked:false };\n new_group.push(new_i);\n });\n new_search_list.push({\n name:item.name,\n group:new_group,\n });\n });\n tab_list.value.push({\n tab_name:`条件组${index+1}`,\n key:`condition_tab_${index}`,\n base_search_list: new_search_list,\n });\n const activeKey = ref(`condition_tab_${index}`);\n\n const handleSubmit = (e: Event) => {\n e.preventDefault();\n const list = [];\n tab_list.value.forEach(item=>{\n const selected_group_list:any = [];\n item.base_search_list.forEach(i=>{\n i.group.forEach((temp:any)=>{\n if(temp.checked){\n selected_group_list.push(temp);\n }\n });\n });\n if(selected_group_list.length>0){\n list.push(selected_group_list);\n }\n });\n if(list.length==0){\n message.error('新增条件组未增加新的字段,自动取消');\n emit('cancel');//关闭对话框\n }else{\n emit('ok', { new_list: list });\n }\n };\n\n return {\n props,\n activeKey,\n tab_list,\n handleSubmit,\n get_operator_list_selected,\n };\n },\n});\n</script>\n<style scoped>\n.my-card{\n padding:20px;\n background-color: #f6f7f9;\n}\n</style>","export const get_options_eq = t => {\n const options_eq = [\n { value: '上月', label: '上月' },\n { value: '本月', label: '本月' },\n { value: '今日', label: '今日' },\n { value: '昨日', label: '昨日' },\n { value: '期初', label: '期初' },\n ];\n return {\n options_eq,\n };\n};\n","<template>\n <a-space v-if=\"!is_massage_default\">\n <a-button\n type=\"link\"\n v-if=\"is_show_normal_search\"\n @click=\"handleShowSearchRender\"\n >\n {{ $t('普通') }}\n </a-button>\n <a-button\n v-if=\"!isShowForm\"\n type=\"link\"\n @click=\"\n () => {\n isShowForm = true;\n $emit('resize');\n }\n \"\n >\n <span class=\"expand-btn\">{{ $t('展开') }}</span>\n </a-button>\n <a-button\n v-else\n type=\"link\"\n @click=\"\n () => {\n isShowForm = false;\n $emit('resize');\n }\n \"\n >\n {{ $t('隐藏') }}\n </a-button>\n </a-space>\n <span v-show=\"!isShowForm\">\n <span\n v-for=\"(item, index) in default_search_condition_config_list\"\n :key=\"index\"\n >\n <a-tag>{{ $t('条件组') }}{{ index + 1 }}:</a-tag>\n <span\n v-for=\"condition in item\"\n :key=\"condition.field_name\"\n >\n <a-tag\n v-show=\"isShowSearchTag(index, condition)\"\n color=\"green\"\n >\n {{ condition.label }}: {{ transferValueFunc(index, condition) }}\n <close-outlined\n style=\"cursor: pointer; margin-left: 5px\"\n @click=\"handleDelSearch(index, condition.field_name)\"\n />\n </a-tag>\n </span>\n </span>\n </span>\n <div\n class=\"card\"\n v-show=\"isShowForm\"\n >\n <div\n v-for=\"(group_item, group_index) in default_search_condition_config_list\"\n :key=\"group_index\"\n >\n <div\n class=\"condition-group\"\n v-if=\"default_search_condition_config_list.length > 1\"\n >\n {{ $t('条件组') }} {{ group_index + 1 }}\n </div>\n <a-space\n :wrap=\"true\"\n align=\"center\"\n :size=\"0\"\n >\n <a-space-compact\n block\n v-for=\"(condition, k) in group_item\"\n :key=\"condition.field_name\"\n size=\"middle\"\n @mouseenter=\"handleMouseEnter(group_index, condition)\"\n @mouseleave=\"handleMouseLeave(group_index, condition)\"\n >\n <a-input-group compact>\n <a-tooltip :title=\"condition.label\">\n <a-cascader\n :value=\"condition.label\"\n style=\"width: 125px\"\n :options=\"searchItemOptionsDict[group_index]\"\n showSearch\n :allowClear=\"false\"\n :placeholder=\"$t('请选择...')\"\n @change=\"value => onChangeSearchItem(value, group_index, condition, k)\"\n />\n </a-tooltip>\n <a-tooltip :title=\"get_operator_type_map(condition.format, condition.operator)\">\n <a-select\n v-if=\"get_operator_list_selected(condition).length > 0\"\n :dropdownMatchSelectWidth=\"false\"\n v-model:value=\"condition.operator\"\n @change=\"value => onChangeOperator(value, group_index, condition)\"\n style=\"width: 100px\"\n >\n <a-select-option\n v-for=\"item in get_operator_list_selected(condition)\"\n :value=\"item\"\n :key=\"item\"\n >\n {{ get_operator_type_map(condition.format, item) }}\n </a-select-option>\n </a-select>\n </a-tooltip>\n <span style=\"width: 315px; height: 40px\">\n <template\n v-if=\"['is_or_not_blank_or_null', 'is_or_not_null'].includes(condition.operator)\"\n >\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{\n ...condition,\n type: 'select',\n mode: 'default',\n format: 'choices',\n class_name: 'str',\n placeholder: '',\n }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"is_or_not_blank_or_null_options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else-if=\"['input'].includes(condition.format)\">\n <template\n v-if=\"condition.operator === 'between' || condition.operator === 'notbetween'\"\n >\n <template v-if=\"condition.type === 'datepicker'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{ ...condition, type: 'rangepicker', format: condition.dateFormat }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else-if=\"condition.type === 'monthpicker'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{\n ...condition,\n type: 'monthrangepicker',\n format: condition.dateFormat,\n }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else-if=\"condition.type === 'timepicker'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{\n ...condition,\n type: 'timerangepicker',\n format: condition.dateFormat,\n }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else>\n <a-flex>\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name][0]\"\n :field=\"condition\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n <div class=\"range\">~</div>\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name][1]\"\n :field=\"condition\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </a-flex>\n </template>\n </template>\n <template v-else-if=\"condition.operator === '_eq'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{\n ...condition,\n type: 'select',\n mode: 'default',\n format: 'choices',\n class_name: 'str',\n placeholder: '',\n }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"options_eq\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template\n v-else-if=\"\n condition.type === 'datepicker' ||\n condition.type === 'monthpicker' ||\n condition.type === 'timepicker'\n \"\n >\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{ ...condition, format: condition.dateFormat }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else>\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"condition\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n </template>\n <template v-else-if=\"['choices', 'remote'].includes(condition.format)\">\n <template v-if=\"condition.format === 'choices'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"condition\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n <template v-else-if=\"condition.format === 'remote'\">\n <field-render-2\n :is_show_label=\"false\"\n v-model:label=\"labelModel[condition.field_name]\"\n v-model:value=\"condition_model_dict[group_index][condition.field_name]\"\n :field=\"{ ...condition, name: condition?.field_name }\"\n :formModel=\"condition_model_dict[group_index]\"\n :options=\"condition.options\"\n :validateInfos=\"validateInfos\"\n />\n </template>\n </template>\n </span>\n <span class=\"close-icon\">\n <a-tooltip\n title=\"删除此条件\"\n v-if=\"\n deleteBtnDict[group_index][condition.field_name] &&\n (default_search_condition_config_list[0].length > 1 ||\n default_search_condition_config_list.length > 1) &&\n !is_massage_default\n \"\n >\n <close-circle-outlined @click=\"handleDeleteFormItem(group_index, condition)\" />\n </a-tooltip>\n </span>\n </a-input-group>\n </a-space-compact>\n </a-space>\n <a-divider\n class=\"divider\"\n style=\"margin: 0\"\n v-if=\"\n default_search_condition_config_list.length > 1 &&\n group_index != default_search_condition_config_list.length - 1\n \"\n >\n 或\n </a-divider>\n </div>\n </div>\n <div\n class=\"search-bar\"\n v-show=\"isShowForm && !is_massage_default\"\n >\n <a-space>\n <a-button\n size=\"small\"\n type=\"primary\"\n @click=\"handleAddConditions\"\n >\n {{ $t('添加条件') }}\n </a-button>\n <a-button\n size=\"small\"\n type=\"primary\"\n @click=\"handleAddGroupCondition\"\n >\n {{ $t('添加条件组') }}\n </a-button>\n <a-button\n size=\"small\"\n type=\"primary\"\n @click=\"handleSearch\"\n >\n {{ $t('查询') }}\n </a-button>\n </a-space>\n </div>\n\n <add-condition-modal\n v-if=\"addConditionModal.open\"\n :open=\"addConditionModal.open\"\n :default_search_condition_config_list=\"default_search_condition_config_list\"\n :base_search_condition_config_list=\"base_search_condition_config_list\"\n @ok=\"handleAddConditionOk\"\n @cancel=\"handleAddConditionCancel\"\n />\n\n <add-condition-group-modal\n v-if=\"addConditionGroupModal.open\"\n :open=\"addConditionGroupModal.open\"\n :default_search_condition_config_list=\"default_search_condition_config_list\"\n :base_search_condition_config_list=\"base_search_condition_config_list\"\n @ok=\"handleAddGroupConditionOK\"\n @cancel=\"handleAddGroupConditionCancel\"\n />\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n onMounted,\n reactive,\n ref,\n computed,\n watch,\n PropType,\n nextTick,\n onUnmounted,\n} from 'vue';\nimport FieldRender from 'liyu-pc-base/components/FormRender/FieldRender.vue';\nimport AddConditionModal from 'liyu-pc-base/components/FormRender/GeneralFilter/AddConditionModal/index.vue';\nimport AddConditionGroupModal from 'liyu-pc-base/components/FormRender/GeneralFilter/AddConditionGroupModal/index.vue';\nimport { isNotEmpty } from 'liyu-pc-base/utils/function';\nimport {\n CloseCircleOutlined,\n CloseOutlined,\n LeftOutlined,\n RightOutlined,\n} from '@ant-design/icons-vue';\nimport { useI18n } from 'vue-i18n';\nimport { get_options_eq } from 'liyu-pc-base/components/FormRender/GeneralFilter/data';\nimport moment from 'moment';\nimport FieldRender2 from 'liyu-pc-base/components/FormRender/FieldRender2.vue';\nimport { get_operator_type_map } from 'liyu-pc-base/utils/function';\n\nexport default defineComponent({\n name: 'GeneralFilter',\n props: {\n base_search_condition_config_list: {\n type: Array as PropType<any[]>,\n },\n default_search_condition_config_list: {\n type: Array as PropType<any[]>,\n },\n is_show_normal_search: {\n type: Boolean,\n default: () => false,\n },\n is_clear_model: {\n type: Boolean,\n default: () => false,\n },\n is_show_advantage: {\n type: Boolean,\n default: () => false,\n },\n is_massage_default: {\n type: Boolean,\n default: () => false,\n },\n eventBus: {\n type: Object,\n required: false,\n },\n },\n components: {\n FieldRender2,\n CloseOutlined,\n LeftOutlined,\n RightOutlined,\n FieldRender,\n AddConditionGroupModal,\n AddConditionModal,\n CloseCircleOutlined,\n },\n emits: [\n 'search',\n 'resize',\n 'update_default_search_condition_config_list',\n 'onShowSearchRender',\n 'delSearch',\n 'onChangeValue',\n 'update:is_clear_model',\n ],\n setup(props, { emit }) {\n const isShowForm = ref(props.is_massage_default);\n const labelModel = ref({});\n const { t } = useI18n();\n const { options_eq } = get_options_eq(t);\n //条件组-->\n const condition_model_dict = ref([]);\n const validateInfos = {};\n const source_default_search_condition_config_list = ref(null);\n const is_or_not_blank_or_null_options = ref([\n { value: 'yes', label: t('is_or_not_blank_or_null.yes') },\n { value: 'no', label: t('is_or_not_blank_or_null.no') },\n ]);\n if (!source_default_search_condition_config_list.value) {\n source_default_search_condition_config_list.value = JSON.parse(\n JSON.stringify(props.default_search_condition_config_list),\n );\n }\n\n const operator_type_count_map = {\n between: 2,\n gt: 1,\n lt: 1,\n gte: 1,\n lte: 1,\n in: 0,\n eq: 1,\n _eq: 1,\n contains: 1,\n icontains: 1,\n startswith: 1,\n notbetween: 2,\n notin: 0,\n notcontains: 1,\n not_eq: 1,\n not_blank_not_null: 1,\n json_list_not_blank_not_null: 1,\n json_list_is_blank_is_null: 1,\n is_or_not_blank_or_null: 1,\n is_or_not_null: 1,\n };\n const is2DArray = arr => {\n const [first] = [arr];\n return Array.isArray(first) && arr.every(subArray => Array.isArray(subArray));\n };\n let old_operator = null;\n const onChangeOperator = (operator, index, condition) => {\n //不同操作类型,设置不同的默认值\n // if (condition_model_dict.value[index][condition.field_name]) {\n // return;\n // }\n const value = condition_model_dict.value[index][condition.field_name];\n if (get_operator_list_selected(condition).includes('_eq')) {\n if (operator == '_eq') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n } else if (old_operator == '_eq') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n }\n }\n if (get_operator_list_selected(condition).includes('not_blank_not_null')) {\n if (operator == 'not_blank_not_null') {\n condition_model_dict.value[index][condition.field_name] = '是';\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n } else if (old_operator == 'not_blank_not_null') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n }\n }\n if (\n get_operator_list_selected(condition).includes('is_or_not_blank_or_null') ||\n get_operator_list_selected(condition).includes('is_or_not_null')\n ) {\n if (operator == 'is_or_not_blank_or_null' || operator == 'is_or_not_null') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n } else if (old_operator == 'is_or_not_blank_or_null' || old_operator == 'is_or_not_null') {\n condition_model_dict.value[index][condition.field_name] = null;\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n return;\n }\n }\n if (value instanceof Array && is2DArray(value)) {\n // 级联类型,默认值默认清空\n condition_model_dict.value[index][condition.field_name] = null;\n } else if (operator_type_count_map[operator] == 1) {\n if (value instanceof Array) {\n const [first] = condition_model_dict.value[index][condition.field_name];\n if (isNotEmpty(first)) {\n condition_model_dict.value[index][condition.field_name] = first;\n } else {\n condition_model_dict.value[index][condition.field_name] = null;\n }\n } else {\n condition_model_dict.value[index][condition.field_name] = value ? value : null;\n }\n const is = options_eq.some(\n obj => obj.value === condition_model_dict.value[index][condition.field_name],\n );\n if (is) {\n condition_model_dict.value[index][condition.field_name] = null;\n }\n } else if (operator_type_count_map[operator] == 2) {\n if (condition_model_dict.value[index][condition.field_name] instanceof Array) {\n const [first, seconds] = condition_model_dict.value[index][condition.field_name];\n condition_model_dict.value[index][condition.field_name] = [first, seconds];\n } else if (condition_model_dict.value[index][condition.field_name]) {\n const first = condition_model_dict.value[index][condition.field_name];\n condition_model_dict.value[index][condition.field_name] = [first, null];\n } else {\n condition_model_dict.value[index][condition.field_name] = [null, null];\n }\n const is = options_eq.some(\n obj => obj.value === condition_model_dict.value[index][condition.field_name][0],\n );\n if (is) {\n condition_model_dict.value[index][condition.field_name] = [null, null];\n }\n }\n old_operator = operator;\n emit('onChangeValue', { model: condition_model_dict.value });\n // console.log('onChangeValue');\n };\n\n const addConditionModal = reactive({\n open: false,\n });\n const handleAddConditions = () => {\n addConditionModal.open = true;\n };\n const handleAddConditionOk = (data: any) => {\n props.default_search_condition_config_list.forEach((item: any, index: any) => {\n data.new_list.forEach((item1: any, index1: any) => {\n if (index == index1) {\n item.forEach((item2: any) => {\n item1.forEach((item3: any) => {\n if (item2.field_name == item3.field_name) {\n item3.value = item2.value;\n item3.operator = item2.operator;\n }\n });\n });\n }\n });\n });\n //保存后处理 new_list\n emit('update_default_search_condition_config_list', { new_list: data.new_list });\n // refreshCondition();\n addConditionModal.open = false;\n };\n const handleAddConditionCancel = () => {\n addConditionModal.open = false;\n };\n\n const addConditionGroupModal = reactive({\n open: false,\n });\n const handleAddGroupCondition = () => {\n addConditionGroupModal.open = true;\n };\n const handleAddGroupConditionOK = (data: any) => {\n props.default_search_condition_config_list.forEach((item: any, index: any) => {\n data.new_list.forEach((item1: any, index1: any) => {\n if (index == index1) {\n item.forEach((item2: any) => {\n item1.forEach((item3: any) => {\n if (item2.field_name == item3.field_name) {\n item3.value = item2.value;\n item3.operator = item2.operator;\n }\n });\n });\n }\n });\n });\n emit('update_default_search_condition_config_list', { new_list: data.new_list });\n // refreshCondition();\n addConditionGroupModal.open = false;\n };\n const handleAddGroupConditionCancel = () => {\n addConditionGroupModal.open = false;\n };\n const handleSearch = () => {\n isShowForm.value = false;\n console.log('condition_model_dict.value', condition_model_dict.value);\n emit('search', { model: condition_model_dict.value });\n };\n const refreshCondition = (update_all = false) => {\n if (props.base_search_condition_config_list.length == 0) {\n return;\n }\n props.default_search_condition_config_list?.forEach((item_list: any, index: number) => {\n deleteBtnDict[index] = {};\n if (!condition_model_dict.value[index]) {\n condition_model_dict.value[index] = {};\n }\n props.base_search_condition_config_list.forEach((i: any) => {\n i.group?.forEach((group_item: any) => {\n item_list.forEach((k: any) => {\n if (group_item.field_name == k.field_name) {\n const value = condition_model_dict.value[index][k.field_name];\n if (value == undefined || update_all) {\n if (operator_type_count_map[k.operator] == 1) {\n if (k.value !== undefined) {\n condition_model_dict.value[index][k.field_name] = k.value;\n } else {\n condition_model_dict.value[index][k.field_name] = null;\n }\n } else if (operator_type_count_map[k.operator] == 2) {\n if (k.value !== undefined) {\n condition_model_dict.value[index][k.field_name] = k.value;\n } else {\n condition_model_dict.value[index][k.field_name] = [null, null];\n }\n } else if (operator_type_count_map[k.operator] == 0) {\n if (k.value !== undefined) {\n condition_model_dict.value[index][k.field_name] = k.value;\n } else {\n condition_model_dict.value[index][k.field_name] = [];\n }\n }\n }\n Object.assign(k, { ...group_item, operator: k.operator }); // 保持表单项原有选择的查询条件\n if (k.operator == 'eq' && k.mode != 'default') {\n group_item.mode = 'default';\n Object.assign(k, { model: 'default' });\n } else if (['in', 'notin'].includes(k.operator) && k.mode != 'multiple') {\n group_item.mode = 'multiple';\n Object.assign(k, { model: 'multiple' });\n }\n }\n });\n });\n });\n });\n };\n const onFilterChanged = () => {\n refreshCondition(true);\n };\n\n const deleteBtnDict = reactive({}); // 表单项的删除按钮是否显示\n const handleMouseEnter = (index: any, form_item: any) => {\n deleteBtnDict[index][form_item.field_name] = true;\n };\n const handleMouseLeave = (index: any, form_item: any) => {\n deleteBtnDict[index][form_item.field_name] = false;\n };\n const handleDeleteFormItem = (index: any, condition: any) => {\n //default_search_condition_config_list 不允许删除最后一个条件组的条件项\n const new_list = [];\n props.default_search_condition_config_list.forEach((item_list: any, index_: number) => {\n if (index_ !== index) {\n new_list.push(item_list);\n } else {\n const list = [];\n item_list.forEach((k: any) => {\n if (k.field_name !== condition.field_name) {\n list.push(k);\n }\n });\n if (list.length > 0) {\n new_list.push(list);\n }\n }\n });\n emit('update_default_search_condition_config_list', { new_list: new_list });\n // refreshCondition();\n };\n const handleDelSearch = (index, filed_name) => {\n if (condition_model_dict.value[index][filed_name] instanceof Array) {\n condition_model_dict.value[index][filed_name].length = 0;\n } else {\n condition_model_dict.value[index][filed_name] = null;\n }\n emit('onChangeValue', { model: condition_model_dict.value });\n emit('delSearch', { model: JSON.parse(JSON.stringify(condition_model_dict.value)) });\n };\n\n const onChangeSearchItem = (value: any, group_index, condition: any, condition_index) => {\n if (value instanceof Array && value.length > 0) {\n const selected_field_name = value[value.length - 1];\n let new_condition = null;\n props.base_search_condition_config_list.forEach(item_list => {\n item_list.group.forEach(i => {\n if (i.field_name === selected_field_name) {\n new_condition = JSON.parse(JSON.stringify(i));\n if (new_condition.default_operator) {\n new_condition.operator = new_condition.default_operator;\n } else if (get_operator_list_selected(new_condition).length > 0) {\n const [first] = get_operator_list_selected(new_condition);\n new_condition.operator = first;\n }\n }\n });\n });\n\n if (new_condition) {\n const new_list = JSON.parse(JSON.stringify(props.default_search_condition_config_list));\n new_list.forEach((item_list, i) => {\n if (i === group_index) {\n item_list.forEach((item, k) => {\n if (item.field_name == condition.field_name && k == condition_index) {\n item_list.splice(k, 1, new_condition);\n delete condition_model_dict.value[group_index][item.field_name];\n }\n });\n }\n });\n emit('update_default_search_condition_config_list', {\n new_list: new_list,\n });\n }\n refreshCondition();\n }\n };\n\n const searchItemOptionsDict: any = computed(() => {\n const dict = {};\n props.default_search_condition_config_list.forEach((group_item, index) => {\n dict[index] = [];\n const filter_field_name_list = group_item.map(item => item.field_name);\n props.base_search_condition_config_list.forEach(item => {\n const filter_list = item.group.filter(\n i => !filter_field_name_list.includes(i.field_name),\n );\n const o = {\n value: item.name,\n label: item.name,\n children: filter_list.map(i => {\n return {\n value: i.field_name,\n label: i.label,\n };\n }),\n };\n dict[index].push(o);\n });\n });\n return dict;\n });\n\n const isShowSearchTag = (index, condition) => {\n const value = condition_model_dict.value[index][condition.field_name];\n if (value instanceof Array) {\n const [first] = value;\n if (isNotEmpty(first)) {\n return true;\n }\n } else if (isNotEmpty(value)) {\n return true;\n }\n return false;\n };\n\n const transferValueFunc = (index, condition) => {\n const str_list: any = [];\n const value = condition_model_dict.value[index][condition.field_name];\n if (\n condition.operator === 'is_or_not_blank_or_null' ||\n condition.operator === 'is_or_not_null'\n ) {\n if (value === 'yes') {\n return t('is_or_not_blank_or_null.yes');\n } else {\n return t('is_or_not_blank_or_null.no');\n }\n } else if (condition.operator === '_eq') {\n if (['上月', '本月', '今日', '昨日', '期初'].includes(value)) {\n return t(value);\n }\n } else if (labelModel.value[condition.field_name] != undefined) {\n return `${get_operator_type_map(condition.format, condition.operator)} ${\n labelModel.value[condition.field_name]\n }`;\n } else if (value instanceof Array && condition.field_name_list instanceof Array) {\n let transfer_value;\n if (condition.field_name_list) {\n if (value instanceof Array) {\n transfer_value = value.join(',');\n } else {\n transfer_value = value;\n }\n }\n return `${get_operator_type_map(condition.format, condition.operator)} ${transfer_value}`;\n } else if (value instanceof Array && condition.options instanceof Array) {\n value.forEach(item => {\n condition.options.forEach(i => {\n if (item == i.value) {\n str_list.push(i.label);\n }\n });\n });\n return `${get_operator_type_map(condition.format, condition.operator)} ${str_list.join(\n ',',\n )}`;\n } else {\n let transfer_value;\n if (condition.options) {\n condition.options.forEach(i => {\n if (value == i.value) {\n transfer_value = i.label;\n }\n });\n } else if (condition.type == 'monthpicker' && condition.dateFormat) {\n if (value instanceof Array) {\n const str_list = [];\n value.forEach(i => {\n if (i) {\n str_list.push(moment(i).format(condition.dateFormat));\n } else {\n str_list.push(i);\n }\n });\n transfer_value = str_list.join(',');\n } else {\n transfer_value = moment(value).format(condition.dateFormat);\n }\n } else {\n transfer_value = value;\n }\n return `${get_operator_type_map(condition.format, condition.operator)} ${transfer_value}`;\n }\n };\n\n const handleShowSearchRender = () => {\n emit('onShowSearchRender');\n };\n\n const get_operator_list_selected = condition => {\n if (condition.operator_list_selected) {\n return condition.operator_list_selected;\n } else if (condition.operator_list) {\n return condition.operator_list;\n } else {\n return [];\n }\n };\n\n watch(\n () => condition_model_dict.value,\n () => {\n emit('onChangeValue', { model: condition_model_dict.value });\n // console.log('onChangeValue_watch');\n },\n { deep: true },\n );\n watch(\n () => props.default_search_condition_config_list,\n () => {\n if (props.default_search_condition_config_list?.length == 0) {\n emit('update_default_search_condition_config_list', {\n new_list: source_default_search_condition_config_list.value,\n });\n return;\n }\n refreshCondition();\n },\n { deep: true },\n );\n watch(\n () => props.base_search_condition_config_list,\n () => {\n refreshCondition();\n },\n { deep: true },\n );\n\n watch(\n () => props.is_clear_model,\n () => {\n if (props.is_clear_model) {\n condition_model_dict.value = {};\n refreshCondition();\n emit('update:is_clear_model', false);\n }\n },\n );\n onMounted(() => {\n refreshCondition();\n if (props.eventBus) {\n props.eventBus.on('filterChange', onFilterChanged);\n }\n });\n onUnmounted(() => {\n if (props.eventBus) {\n props.eventBus.off('filterChange', onFilterChanged);\n }\n });\n return {\n props,\n t,\n isShowForm,\n labelModel,\n get_operator_type_map,\n condition_model_dict,\n addConditionModal,\n handleAddConditions,\n handleAddConditionOk,\n handleAddConditionCancel,\n onChangeOperator,\n handleAddGroupCondition,\n handleSearch,\n\n addConditionGroupModal,\n handleAddGroupConditionOK,\n handleAddGroupConditionCancel,\n validateInfos,\n\n deleteBtnDict,\n handleMouseEnter,\n handleMouseLeave,\n handleDeleteFormItem,\n handleDelSearch,\n\n searchItemOptionsDict,\n onChangeSearchItem,\n transferValueFunc,\n isShowSearchTag,\n handleShowSearchRender,\n options_eq,\n get_operator_list_selected,\n is_or_not_blank_or_null_options,\n };\n },\n});\n</script>\n<style lang=\"less\" scoped>\n.card {\n overflow: auto;\n max-height: 300px;\n background: #f2f5f7;\n}\n\n.condition-group {\n padding: 5px;\n}\n\n.range {\n margin-top: 5px;\n}\n\n.close-icon {\n width: 15px;\n margin-top: 5px;\n margin-left: 5px;\n color: red;\n}\n\n.search-bar {\n background: #f2f5f7;\n text-align: right;\n}\n\n:deep(.divider .ant-divider) {\n margin: 0;\n}\n</style>\n","<template>\n <a-form\n ref=\"form\"\n autocomplete=\"off\"\n :model=\"model\"\n :rules=\"form.rules\"\n :layout=\"form.settings.layout\"\n :validateTrigger=\"false\"\n :label-col=\"\n form.settings.layout == 'vertical'\n ? undefined\n : form.settings.labelCol\n ? form.settings.labelCol\n : form.settings.col && form.settings.col.length > 0\n ? { span: 6 }\n : { span: 4 }\n \"\n :wrapper-col=\"\n form.settings.layout == 'vertical'\n ? undefined\n : form.settings.wrapperCol\n ? form.settings.wrapperCol\n : form.settings.col && form.settings.col.length > 0\n ? { span: 18 }\n : { span: 20 }\n \"\n :labelAlign=\"form.settings.labelAlign\"\n scrollToFirstError\n >\n <a-row\n :gutter=\"20\"\n style=\"margin: 0\"\n >\n <template v-if=\"form.settings.col && form.settings.col.length > 0\">\n <a-col\n v-for=\"col in fieldList\"\n :xl=\"24 / fieldList.length\"\n :lg=\"24\"\n :md=\"24\"\n :sm=\"24\"\n :xs=\"24\"\n >\n <field-render\n v-for=\"field in form.fields.slice(col[0], col[1])\"\n v-model:value=\"model[field.name]\"\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n </a-col>\n </template>\n <a-col\n v-if=\"!form.settings.col || form.settings.col.length === 0\"\n :xl=\"24\"\n :lg=\"24\"\n :md=\"24\"\n :sm=\"24\"\n :xs=\"24\"\n >\n <template v-for=\"field in form.fields\">\n <field-render\n v-model:value=\"model[field.name]\"\n v-model:label=\"model[field.name2]\"\n v-if=\"field.name2\"\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n <field-render\n v-model:value=\"model[field.name]\"\n v-else\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n </template>\n </a-col>\n </a-row>\n </a-form>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, watch } from 'vue';\n\nexport default defineComponent({\n name: 'FormRender',\n components: {},\n props: {\n model: {\n type: Object,\n required: true,\n },\n form: {\n type: Object,\n required: true,\n },\n options: {\n type: Object,\n required: true,\n },\n validateInfos: {\n type: Object,\n default: () => {},\n },\n },\n setup(props) {\n if (props.form.watch) {\n for (const k in props.form.watch) {\n watch(\n () => props.model[k],\n () => {\n props.form.watch[k](props.model, props.form);\n },\n );\n }\n }\n },\n\n data() {\n return {\n fieldList: [] as any[],\n };\n },\n methods: {\n validate() {\n return (this.$refs.form as any).validate();\n },\n reset() {\n (this.$refs.form as any).resetFields();\n },\n disable(name: string | number) {\n // eslint-disable-next-line vue/no-mutating-props\n this.form.fields[name].disabled = true;\n },\n disableAll() {\n this.form.fields.forEach((item: any) => {\n item.disabled = true;\n });\n },\n },\n created() {\n let a = 0;\n if (this.form.settings.col && this.form.settings.col.length > 0) {\n this.form.settings.col.forEach((item: number, i: number) => {\n a = a + item;\n if (i === 0) {\n this.fieldList.push([0, a]);\n } else {\n this.fieldList.push([a - item, a]);\n }\n });\n }\n },\n});\n</script>\n","<template>\n <a-form\n ref=\"form\"\n autocomplete=\"off\"\n :model=\"model\"\n :rules=\"form.rules\"\n scrollToFirstError\n >\n <a-row\n gutter=\"5\"\n v-for=\"row in form.fieldList\"\n type=\"flex\"\n >\n <a-col\n v-for=\"field in row\"\n :span=\"field.span\"\n >\n <template v-for=\"field in form.fields\">\n <field-render\n v-model:value=\"model[field.name]\"\n v-model:label=\"model[field.name2]\"\n v-if=\"field.name2\"\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n <field-render\n v-model:value=\"model[field.name]\"\n v-else\n :field=\"field\"\n :formModel=\"model\"\n :key=\"field.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field.datasource ? field.datasource : field.name]\"\n />\n </template>\n </a-col>\n </a-row>\n </a-form>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, watch } from 'vue';\n\nexport default defineComponent({\n name: 'FormRender2',\n components: {},\n props: {\n model: {\n type: Object,\n required: true,\n },\n form: {\n type: Object,\n required: true,\n },\n options: {\n type: Object,\n required: true,\n },\n validateInfos: {\n type: Object,\n default: () => {},\n },\n },\n setup(props) {\n if (props.form.watch) {\n for (const k in props.form.watch) {\n watch(\n () => props.model[k],\n () => {\n props.form.watch[k](props.model, props.form);\n },\n );\n }\n }\n },\n\n data() {\n return {};\n },\n methods: {\n validate() {\n return (this.$refs.form as any).validate();\n },\n reset() {\n (this.$refs.form as any).resetFields();\n },\n disable(name: string | number) {\n // eslint-disable-next-line vue/no-mutating-props\n this.form.fields[name].disabled = true;\n },\n disableAll() {\n this.form.fields.forEach((item: any) => {\n item.disabled = true;\n });\n },\n },\n created() {},\n});\n</script>\n","<template>\n <template\n v-if=\"field.type !== 'divider' && (field?.is_search_show !== false || field_render_show)\"\n >\n <slot />\n <div\n v-if=\"field.type === 'kong'\"\n style=\"height: 62px; width: 200px\"\n ></div>\n <!-- 展示内容-->\n <div v-if=\"field.type === 'tag'\">\n <a-tag\n :color=\"field.color ? field.color(field, model) : 'green'\"\n :style=\"field.style\"\n v-if=\"(field.content && field.content(field, model)) || model\"\n @click=\"field.cb ? field.cb(field, model) : ''\"\n >\n <span v-if=\"field.content\">\n {{ field.content(field, model) }}\n </span>\n <span v-else>{{ model }}</span>\n </a-tag>\n </div>\n <!-- 表单占位组件-->\n <!-- 默认 【表单空位 高62px; 名称空位 高30px;】 如遇个别特殊表单,根据实际情况自行调节 高度-->\n <!-- height 属性必填-->\n <div\n v-if=\"field.type === 'kong_title'\"\n :style=\"'height: ' + field.height + 'px'\"\n ></div>\n <div\n v-if=\"field.type === 'title'\"\n style=\"height: 30px; position: relative\"\n >\n <span\n style=\"\n position: absolute;\n bottom: 0;\n padding: 0;\n margin: 0;\n font-weight: bolder;\n font-size: 17px;\n \"\n >\n {{ field.name }}\n </span>\n </div>\n <a-rate\n v-if=\"field.type === 'rate'\"\n v-model:value=\"model\"\n :disabled=\"field.disabled\"\n allow-half\n :style=\"`width: ${field_width}px`\"\n />\n <a-input\n v-if=\"field.type === 'input'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear == undefined ? true : field.allowClear\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :maxlength=\"field.maxlength\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请输入') + field.label\"\n :type=\"field.inputType ? field.inputType : 'text'\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <template\n v-if=\"field?.prefix || field?.prefixIcon\"\n #prefix\n >\n <span v-if=\"field?.prefix\">{{ field.prefix }}</span>\n <component\n v-if=\"field?.prefixIcon\"\n :is=\"field?.prefixIcon\"\n />\n </template>\n <template\n v-if=\"field?.suffix || field?.suffixIcon\"\n #suffix\n >\n <span v-if=\"field?.suffix\">{{ field.suffix }}</span>\n <component\n v-if=\"field?.suffixIcon\"\n :is=\"field?.suffixIcon\"\n />\n </template>\n <template\n v-if=\"field?.addonBefore || field?.addonBeforeIcon\"\n #addonBefore\n >\n <span v-if=\"field?.addonBefore\">{{ field.addonBefore }}</span>\n <component\n v-if=\"field?.addonBeforeIcon\"\n :is=\"field?.addonBeforeIcon\"\n />\n </template>\n <template\n v-if=\"field?.addonAfter || field?.addonAfterIcon\"\n #addonAfter\n >\n <span v-if=\"field?.addonAfter\">{{ field.addonAfter }}</span>\n <component\n v-if=\"field?.addonAfterIcon\"\n :is=\"field?.addonAfterIcon\"\n />\n </template>\n </a-input>\n\n <a-input-number\n v-if=\"field.type === 'money'\"\n size=\"small\"\n v-model:value=\"model\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :disabled=\"field.disabled\"\n :default-value=\"field.defaultValue\"\n :min=\"field.min\"\n :max=\"field.max\"\n :formatter=\"value => `${value}`.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\"\n :precision=\"field.precision\"\n :step=\"field.step\"\n :placeholder=\"\n field.placeholder_i18n == undefined ? field.placeholder : t(field.placeholder_i18n)\n \"\n :style=\"`width: ${field_width}px`\"\n />\n <a-input-number\n v-if=\"field.type === 'number'\"\n v-model:value=\"model\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :formatter=\"field.formatter\"\n :max=\"field.max\"\n :min=\"field.min\"\n :placeholder=\"field.placeholder ? field.placeholder : '请输入' + field.label\"\n :precision=\"field.precision\"\n :step=\"field.step\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <template\n v-if=\"field?.prefix || field?.prefixIcon\"\n #prefix\n >\n <span v-if=\"field?.prefix\">{{ field.prefix }}</span>\n <component\n v-if=\"field?.prefixIcon\"\n :is=\"field?.prefixIcon\"\n />\n </template>\n <template\n v-if=\"field?.suffix || field?.suffixIcon\"\n #suffix\n >\n <span v-if=\"field?.suffix\">{{ field.suffix }}</span>\n <component\n v-if=\"field?.suffixIcon\"\n :is=\"field?.suffixIcon\"\n />\n </template>\n <template\n v-if=\"field?.addonBefore || field?.addonBeforeIcon\"\n #addonBefore\n >\n <span v-if=\"field?.addonBefore\">{{ field.addonBefore }}</span>\n <component\n v-if=\"field?.addonBeforeIcon\"\n :is=\"field?.addonBeforeIcon\"\n />\n </template>\n <template\n v-if=\"field?.addonAfter || field?.addonAfterIcon\"\n #addonAfter\n >\n <span v-if=\"field?.addonAfter\">{{ field.addonAfter }}</span>\n <component\n v-if=\"field?.addonAfterIcon\"\n :is=\"field?.addonAfterIcon\"\n />\n </template>\n </a-input-number>\n\n <template v-if=\"field.type === 'select'\">\n <a-select\n v-if=\"field.mode === 'default'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :dropdownMatchSelectWidth=\"false\"\n :maxTagCount=\"field.maxTagCount ? field.maxTagCount : 'responsive'\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :show-search=\"!!field.show_search\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <a-select-option\n v-for=\"option in options\"\n :key=\"option[field.valueKey ? field.valueKey : 'value']\"\n :value=\"option[field.valueKey ? field.valueKey : 'value']\"\n >\n {{ option[field.labelKey ? field.labelKey : 'label'] }}\n </a-select-option>\n </a-select>\n <a-select\n v-else\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :dropdownMatchSelectWidth=\"false\"\n :maxTagCount=\"field.maxTagCount ? field.maxTagCount : 'responsive'\"\n :mode=\"field.mode\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :show-search=\"!!field.show_search\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <a-select-option\n v-for=\"(option, index) in options\"\n :key=\"index\"\n :value=\"option[field.valueKey ? field.valueKey : 'value']\"\n >\n {{ option[field.labelKey ? field.labelKey : 'label'] }}\n </a-select-option>\n </a-select>\n </template>\n <template v-if=\"field.type === 'groupselect'\">\n <a-select\n v-if=\"field.mode === 'default'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :dropdownMatchSelectWidth=\"false\"\n :getPopupContainer=\"field.getPopupContainer == undefined ? null : field.getPopupContainer\"\n :labelInValue=\"field.labelInValue === true\"\n :maxTagCount=\"field.maxTagCount ? field.maxTagCount : 'responsive'\"\n :options=\"options\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :show-search=\"!!field.show_search\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n ></a-select>\n <a-select\n v-else\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :dropdownMatchSelectWidth=\"false\"\n :getPopupContainer=\"field.getPopupContainer == undefined ? null : field.getPopupContainer\"\n :labelInValue=\"field.labelInValue === true\"\n :maxTagCount=\"field.maxTagCount ? field.maxTagCount : 'responsive'\"\n :mode=\"field.mode\"\n :options=\"options\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :show-search=\"!!field.show_search\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n ></a-select>\n </template>\n\n <a-cascader\n v-if=\"field.type === 'cascader'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :multiple=\"field.multiple\"\n :show-search=\"field.show_search\"\n :changeOnSelect=\"field.changeOnSelect ? field.changeOnSelect : false\"\n :options=\"field.getOptionsData ? field.getOptionsData(options, model) : options\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n />\n\n <remote-cascader\n v-if=\"field.type === 'remotecascader'\"\n v-model:value=\"model\"\n v-model:label=\"labelModel\"\n :field=\"field\"\n :formModel=\"formModel\"\n :get-data=\"field.getData\"\n :label-key=\"field.labelKey\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :search_config=\"field.search_config\"\n :value-key=\"field.valueKey\"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-cascader-pro\n v-if=\"field.type === 'remotecascaderpro'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :field=\"field\"\n :formModel=\"formModel\"\n :outModel=\"outModel\"\n :get-data=\"field.getData\"\n :multiple=\"field.multiple\"\n :maxTagCount=\"field.maxTagCount ? field.maxTagCount : 'responsive'\"\n :show_search=\"field.show_search\"\n :label-key-type=\"field.labelKeyType\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :label-key=\"field.labelKey\"\n :value-key=\"field.valueKey\"\n :init_model=\"field.init_model\"\n :init_watch=\"field.init_watch\"\n :is_form_design=\"is_form_design\"\n :placeholder=\"\n field.placeholder_i18n == undefined\n ? field.placeholder\n ? field.placeholder\n : t('请选择') + field.label\n : t(field.placeholder_i18n)\n \"\n :style=\"`width: ${field_width}px`\"\n />\n\n <month-picker\n v-if=\"field.type === 'monthpicker'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n size=\"small\"\n :is_range=\"field.is_range\"\n :value_has_time=\"field.value_has_time\"\n :start_offset_day=\"field.start_offset_day\"\n :end_offset_day=\"field.end_offset_day\"\n :fix_day=\"field.fix_day\"\n :style=\"`width: ${field_width}px`\"\n />\n <a-date-picker\n v-if=\"field.type === 'datepicker'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :autocomplete=\"field.autocomplete == undefined ? 'off' : field.autocomplete\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :format=\"field.format\"\n :picker=\"field.picker\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :show-time=\"field.showTime\"\n :value-format=\"field.valueFormat\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n />\n\n <a-range-picker\n v-if=\"field.type === 'rangepicker'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue || []\"\n :disabled=\"field.disabled\"\n :format=\"field.format\"\n :placeholder=\"\n field.placeholder && isArray(field.placeholder) && field.placeholder.length > 0\n ? field.placeholder\n : [$t('开始时间'), $t('结束时间')]\n \"\n :show-time=\"field.showTime\"\n :value-format=\"field.valueFormat\"\n :picker=\"field.picker ? field.picker : 'date'\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n />\n\n <month-range-picker\n v-if=\"field.type === 'monthrangepicker'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue || []\"\n :disabled=\"field.disabled\"\n :placeholder=\"field.placeholder\"\n size=\"small\"\n :is_range=\"field.is_range\"\n :value_has_time=\"field.value_has_time\"\n :start_offset_day=\"field.start_offset_day\"\n :end_offset_day=\"field.end_offset_day\"\n :fix_day=\"field.fix_day\"\n :style=\"`width: ${field_width}px`\"\n />\n\n <a-time-picker\n v-if=\"field.type === 'timepicker'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :format=\"field.format ? field.format : 'HH:mm'\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :value-format=\"field.valueFormat ? field.valueFormat : 'HH:mm'\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n />\n <a-time-range-picker\n v-if=\"field.type === 'timerangepicker'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :format=\"field.format ? field.format : 'HH:mm'\"\n :placeholder=\"\n field.placeholder && isArray(field.placeholder) && field.placeholder.length > 0\n ? field.placeholder\n : [$t('开始时间'), $t('结束时间')]\n \"\n :value-format=\"field.valueFormat ? field.valueFormat : 'HH:mm'\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n />\n <a-radio-group\n v-if=\"field.type === 'radio'\"\n v-model:value=\"model\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <a-radio\n v-for=\"option in options\"\n :key=\"option[field.valueKey ? field.valueKey : 'value']\"\n :disabled=\"option.disabled\"\n :value=\"option[field.valueKey ? field.valueKey : 'value']\"\n >\n {{ option[field.labelKey ? field.labelKey : 'label'] }}\n </a-radio>\n </a-radio-group>\n\n <a-checkbox-group\n v-if=\"field.type === 'checkbox'\"\n v-model:value=\"model\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <a-checkbox\n v-for=\"option in options\"\n :key=\"option[field.valueKey ? field.valueKey : 'value']\"\n :disabled=\"option.disabled\"\n :value=\"option[field.valueKey ? field.valueKey : 'value']\"\n >\n {{ option[field.labelKey ? field.labelKey : 'label'] }}\n </a-checkbox>\n </a-checkbox-group>\n\n <a-tree-select\n v-if=\"field.type === 'treeselect'\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :dropdownMatchSelectWidth=\"false\"\n :placeholder=\"field.placeholder ? field.placeholder : $t('请选择') + field.label\"\n :multiple=\"field.multiple\"\n :tree-checkable=\"field.treeCheckable\"\n :tree-data=\"options\"\n :tree-label-prop=\"field.labelKey\"\n :tree-node-filter-prop=\"field.valueKey\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-filter-select\n v-if=\"field.type === 'remotefilterselect'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :field=\"field\"\n :formModel=\"formModel\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :label-key=\"field.labelKey\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :search_config=\"field.search_config\"\n :value-key=\"field.valueKey\"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-select\n v-if=\"field.type === 'remoteselect'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :field=\"field\"\n :formModel=\"formModel\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :label-key=\"field.labelKey\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :search_config=\"field.search_config\"\n :value-key=\"field.valueKey\"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-select-pro\n v-if=\"field.type === 'remoteselectpro'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :field=\"field\"\n :formModel=\"formModel\"\n :outModel=\"outModel\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :init_watch=\"field.init_watch\"\n :label-key=\"field.labelKey\"\n :label-key-type=\"field.labelKeyType\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :search_config=\"field.search_config\"\n :value-key=\"field.valueKey\"\n :is_input=\"field.is_input\"\n :is_form_design=\"is_form_design\"\n :placeholder=\"\n field.placeholder_i18n == undefined\n ? field.placeholder\n ? field.placeholder\n : $t('请选择') + field.label\n : t(field.placeholder_i18n)\n \"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-complete\n v-if=\"field.type === 'remotecomplete'\"\n v-model:value=\"model\"\n :field=\"field\"\n :formModel=\"formModel\"\n :outModel=\"outModel\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :init_watch=\"field.init_watch\"\n :label-key=\"field.labelKey\"\n :label-key-type=\"field.labelKeyType\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :search_config=\"field.search_config\"\n :value-key=\"field.valueKey\"\n :maxlength=\"field.maxlength\"\n :is_input=\"field.is_input\"\n :is_form_design=\"is_form_design\"\n :placeholder=\"\n field.placeholder_i18n == undefined\n ? field.placeholder\n ? field.placeholder\n : $t('请选择') + field.label\n : t(field.placeholder_i18n)\n \"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-tree-select\n v-if=\"field.type === 'remotetreeselect'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :field=\"field\"\n :formModel=\"formModel\"\n :get-data=\"field.getData\"\n :label-key=\"field.labelKey\"\n :search_config=\"field.search_config\"\n :value-key=\"field.valueKey\"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-tree-select-pro\n v-if=\"field.type === 'remotetreeselectpro'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :field=\"field\"\n :formModel=\"formModel\"\n :outModel=\"outModel\"\n :get-data=\"field.getData\"\n :multiple=\"field.multiple\"\n :search_config=\"field.search_config\"\n :label-key-type=\"field.labelKeyType\"\n :label-key-list=\"field.labelKeyList\"\n :label-space=\"field.labelSpace\"\n :label-key=\"field.labelKey\"\n :value-key=\"field.valueKey\"\n :init_model=\"field.init_model\"\n :init_watch=\"field.init_watch\"\n :is_form_design=\"is_form_design\"\n :placeholder=\"\n field.placeholder_i18n == undefined\n ? field.placeholder\n ? field.placeholder\n : $t('请选择') + field.label\n : t(field.placeholder_i18n)\n \"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-modal\n v-if=\"field.type === 'remotemodal'\"\n v-model:label=\"labelModel\"\n v-model:value=\"model\"\n :columns=\"field.columns\"\n :field=\"field\"\n :field_status=\"field.field_status\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :modalType=\"field.modalType\"\n :search_config=\"field.search_config\"\n :watch=\"field.watch\"\n :style=\"`width: ${field_width}px`\"\n />\n <remote-table\n v-if=\"field.type === 'remotetable'\"\n v-model:value=\"model\"\n :columns=\"field.columns\"\n :formModel=\"formModel\"\n :field=\"field\"\n :field_status=\"field.field_status\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :modalType=\"field.modalType\"\n :search_config=\"field.search_config\"\n :watch=\"field.watch\"\n :style=\"`width: ${field_width}px`\"\n />\n\n <remote-text\n v-if=\"field.type === 'remotetext'\"\n v-model:value=\"model\"\n :columns=\"field.columns\"\n :formModel=\"formModel\"\n :field=\"field\"\n :get-data=\"field.getData\"\n :init_model=\"field.init_model\"\n :modalType=\"field.modalType\"\n :search_config=\"field.search_config\"\n :watch=\"field.watch\"\n />\n\n <a-rate\n v-if=\"field.type === 'rate'\"\n v-model:value=\"model\"\n :count=\"field.count ? field.count : 5\"\n :allow-half=\"field.allowHalf\"\n :style=\"`width: ${field_width}px`\"\n />\n <a-radio-group\n v-if=\"field.type === 'radio-color'\"\n v-model:value=\"model\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n size=\"small\"\n :style=\"`width: ${field_width}px`\"\n >\n <a-radio\n v-for=\"option in options\"\n :key=\"option[field.valueKey ? field.valueKey : 'value']\"\n :disabled=\"option.disabled\"\n :value=\"option[field.valueKey ? field.valueKey : 'value']\"\n >\n <div\n :style=\"{\n width: '20px',\n height: '20px',\n backgroundColor: option[field.valueKey ? field.valueKey : 'value'],\n }\"\n ></div>\n </a-radio>\n </a-radio-group>\n </template>\n\n <a-divider\n v-if=\"field.type === 'divider'\"\n :orientation=\"field.orientation\"\n >\n {{ field.label }}\n </a-divider>\n</template>\n<script lang=\"ts\">\nimport RemoteSelect from 'liyu-pc-base/components/FormRender/RemoteSelect/RemoteSelect.vue';\nimport RemoteCascader from 'liyu-pc-base/components/FormRender/RemoteCascader/RemoteCascader.vue';\nimport RemoteModal from 'liyu-pc-base/components/FormRender/RemoteModal/RemoteModal.vue';\nimport RemoteTreeSelect from 'liyu-pc-base/components/FormRender/RemoteTreeSelect/RemoteTreeSelect.vue';\nimport RemoteTable from 'liyu-pc-base/components/FormRender/RemoteTable/RemoteTable.vue';\nimport { defineComponent, watch, onMounted, ref } from 'vue';\nimport RemoteFilterSelect from 'liyu-pc-base/components/FormRender/RemoteFilterSelect/RemoteFilterSelect.vue';\nimport AttributeNomTable from 'liyu-pc-base/components/FormRender/AttributeNomTable/index.vue';\nimport AttributeTable from 'liyu-pc-base/components/FormRender/AttributeTable/index.vue';\nimport JsonStr from 'liyu-pc-base/components/FormRender/JsonStr/index.vue';\nimport JsonObj from 'liyu-pc-base/components/FormRender/JsonObj/index.vue';\nimport RemoteText from 'liyu-pc-base/components/FormRender/RemoteText/RemoteText.vue';\nimport RemoteTablePro from 'liyu-pc-base/components/FormRender/RemoteTablePro/RemoteTablePro.vue';\nimport { debounce, isArray, isEqual } from 'lodash-es';\nimport moment from 'moment';\nimport { isEmpty, isNotEmpty } from 'liyu-pc-base/utils/function';\nimport { PlusOutlined } from '@ant-design/icons-vue';\nimport RemoteSelectPro from 'liyu-pc-base/components/FormRender/RemoteSelectPro/RemoteSelectPro.vue';\nimport RemoteComplete from 'liyu-pc-base/components/FormRender/RemoteComplete/RemoteComplete.vue';\nimport RemoteTreeSelectPro from 'liyu-pc-base/components/FormRender/RemoteTreeSelectPro/RemoteTreeSelectPro.vue';\nimport RemoteCascaderPro from 'liyu-pc-base/components/FormRender/RemoteCascaderPro/RemoteCascaderPro.vue';\nimport Upload from 'liyu-pc-base/components/FormRender/Upload/upload.vue';\nimport RichTextEditor from 'liyu-pc-base/components/FormRender/RichTextEditor/index.vue';\nimport { useI18n } from 'vue-i18n';\nimport IconSelect from 'liyu-pc-base/components/FormRender/iconSelect/index.vue';\nimport MonthPicker from 'liyu-pc-base/components/FormRender/MonthPicker/index.vue';\nimport MonthRangePicker from 'liyu-pc-base/components/FormRender/MonthRangePicker/index.vue';\nimport CodeEditor from 'liyu-pc-base/components/code/CodeEditor.vue';\nimport TinymceEditor from 'liyu-pc-base/components/tinymce/TinymceEditor.vue';\n\nconst isValidDate = (dateString, format = 'YYYY-MM-DD') => {\n const date = moment(dateString, format, true);\n return date.isValid();\n};\nconst isValidDateTime = (dateString, format = 'YYYY-MM-DD HH:mm:ss') => {\n const date = moment(dateString, format, true);\n return date.isValid();\n};\nconst isValidTime = (dateString, format = 'HH:mm:ss') => {\n const date = moment(dateString, format, true);\n return date.isValid();\n};\nexport default defineComponent({\n name: 'FieldRender2',\n methods: { isArray },\n props: {\n field: {\n type: Object,\n required: true,\n },\n value: {\n required: true,\n },\n label: {\n required: false,\n },\n options: {\n type: Array,\n default: () => [],\n },\n validateInfos: {\n type: Object,\n default: () => {},\n },\n formModel: {\n type: Object,\n default: () => {},\n },\n outModel: {\n type: Object,\n default: () => {},\n },\n field_render_show: {\n type: Boolean,\n default: true,\n },\n is_show_label: {\n type: Boolean,\n default: true,\n },\n isUseConditions: {\n type: Boolean,\n default: true,\n },\n is_show_field: {\n type: Boolean,\n default: true,\n },\n is_edit: {\n type: Boolean,\n default: true,\n },\n conditionsVisibleNum: {\n type: Number,\n default: 0,\n },\n is_form_design: {\n type: Boolean,\n default: false,\n },\n field_width: {\n type: Number,\n default: 150,\n },\n },\n emits: [\n 'add',\n 'update:value',\n 'update:label',\n 'update_model',\n 'update:is_show_field',\n 'update:is_edit',\n 'update_name2',\n ],\n setup(props, { emit }) {\n const newModel = ref({ ...props.formModel });\n const rangeDate = (v: any) => {\n if (typeof v == 'string' && v.indexOf(',') >= 0) {\n return v.split(',');\n }\n return v;\n };\n const convertValueByClassName = (value, class_name) => {\n //class_name 'int','float',str','bool','date','datetime','time'\n let new_value;\n if (class_name == 'int') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isNotEmpty(item) && typeof item === 'string') {\n new_value.push(Number(item));\n } else {\n new_value.push(item);\n }\n });\n } else if (isNotEmpty(value) && typeof value === 'string') {\n new_value = Number(value);\n } else {\n new_value = value;\n }\n } else if (class_name == 'str') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isNotEmpty(item) && typeof item === 'number') {\n new_value.push(item.toString());\n } else {\n new_value.push(item);\n }\n });\n } else if (isNotEmpty(value) && typeof value === 'number') {\n new_value = value.toString();\n } else {\n new_value = value;\n }\n } else if (class_name == 'date') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isValidDate(item) && typeof item === 'string') {\n new_value.push(moment(item, 'YYYY-MM-DD'));\n } else {\n new_value.push(item);\n }\n });\n } else if (isValidDate(value) && typeof value === 'string') {\n new_value = value.toString();\n } else {\n new_value = value;\n }\n } else if (class_name == 'datetime') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isValidDateTime(item) && typeof item === 'string') {\n new_value.push(moment(item, 'YYYY-MM-DD HH:mm:ss'));\n } else {\n new_value.push(item);\n }\n });\n } else if (isValidDateTime(value) && typeof value === 'string') {\n new_value = moment(value, 'YYYY-MM-DD HH:mm:ss');\n } else {\n new_value = value;\n }\n } else if (class_name == 'time') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isValidTime(item) && typeof item === 'string') {\n new_value.push(moment(item, 'HH:mm:ss'));\n } else {\n new_value.push(item);\n }\n });\n } else if (isValidTime(value) && typeof value === 'string') {\n new_value = moment(value, 'HH:mm:ss');\n } else {\n new_value = value;\n }\n } else if (class_name == 'float') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isNotEmpty(item) && typeof item === 'string') {\n new_value.push(Number(item));\n } else {\n new_value.push(item);\n }\n });\n } else if (isNotEmpty(value) && typeof value === 'string') {\n new_value = Number(value);\n } else {\n new_value = value;\n }\n } else if (class_name == 'bool') {\n if (isNotEmpty(value) && value instanceof Array) {\n new_value = [];\n value.forEach(item => {\n if (isNotEmpty(item) && typeof item === 'string') {\n new_value.push(Boolean(item));\n } else {\n new_value.push(item);\n }\n });\n } else if (isNotEmpty(value) && typeof value === 'string') {\n new_value = Boolean(value);\n } else {\n new_value = value;\n }\n }\n return new_value;\n };\n const is_show_field = ref(props.is_show_field);\n const is_edit = ref(false);\n const handleToggleEdit = () => {\n emit('update:is_edit', is_edit.value);\n };\n const handleAdd = () => {\n emit('add');\n };\n const check_visible_field_fun = debounce(() => {\n const old_is_show_field = is_show_field.value;\n const condition_result_list: any = [];\n for (const i in props.field?.conditions) {\n const group_list = props.field?.conditions[i];\n const group_results = [];\n for (const j in group_list) {\n const item = group_list[j];\n const value = props.formModel[item.watchKey];\n let new_value;\n if (item.class_name) {\n new_value = convertValueByClassName(item.value, item.class_name);\n } else {\n new_value = item.value;\n }\n let first, second;\n if (new_value instanceof Array) {\n [first, second] = new_value;\n }\n if (item.operator == 'lt') {\n if (typeof first === 'number') {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (value < first) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (isValidDate(first)) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (moment(value).isBefore(moment(first))) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'lte') {\n if (typeof first === 'number') {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (value <= first) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (isValidDate(first)) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (\n moment(value).isBefore(moment(first)) ||\n moment(value).isSame(moment(first))\n ) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'gt') {\n if (typeof first === 'number') {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (value > first) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (isValidDate(first)) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (moment(value).isAfter(moment(first))) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'gte') {\n if (typeof first === 'number') {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (value >= first) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (isValidDate(first)) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (\n moment(value).isAfter(moment(first)) ||\n moment(value).isSame(moment(first))\n ) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'between') {\n if (typeof first === 'number' && typeof second === 'number' && first && second) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (value >= first && value <= second) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (isValidDate(first)) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (\n (moment(value).isAfter(moment(first)) || moment(value).isSame(moment(first))) &&\n (moment(value).isBefore(moment(second)) || moment(value).isSame(moment(second)))\n ) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'notbetween') {\n if (typeof first === 'number' && typeof second === 'number' && first && second) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (value < first || value > second) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (isValidDate(first)) {\n if (isEmpty(value)) {\n group_results.push(false);\n } else if (\n moment(value).isBefore(moment(first)) ||\n moment(value).isAfter(moment(second))\n ) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'in') {\n if (value instanceof Array) {\n const f_list = new_value.filter(x => {\n return value.includes(x);\n });\n if (f_list.length > 0) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (typeof value == 'string' || typeof value == 'number' || isEmpty(value)) {\n // 数字 字符串 空\n const f = new_value.find(x => {\n return value == x;\n });\n if (f) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'eq') {\n if (value === first) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == 'contains') {\n if (value.toString().indexOf(first) > -1) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == 'startswith') {\n if (value.toString().startsWith(first)) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == 'notin') {\n if (value instanceof Array) {\n const f_list = new_value.filter(x => {\n return value.includes(x);\n });\n if (f_list.length > 0) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (typeof value == 'string' || typeof value == 'number' || isEmpty(value)) {\n // 数字 字符串 空\n const f = new_value.find(x => {\n return value == x;\n });\n if (!f) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n } else if (item.operator == 'notcontains') {\n if (value.toString().indexOf(first) == -1) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == '_eq') {\n //todo\n } else if (item.operator == 'json_list_not_blank_not_null') {\n // 非空\n if (value) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == 'json_list_is_blank_is_null') {\n //为空\n if (!value) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == 'not_eq') {\n //为空\n if (!value) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n } else if (item.operator == 'not_blank_not_null') {\n // 非空\n if (value) {\n group_results.push(true);\n } else {\n group_results.push(false);\n }\n }\n }\n condition_result_list.push(group_results);\n }\n const con_list = [];\n condition_result_list.forEach(item => {\n const find_false_list = item.filter(x => x === false);\n if (find_false_list && find_false_list.length > 0) {\n con_list.push(false);\n } else {\n con_list.push(true);\n }\n });\n\n const find_true_list = con_list.filter(x => x === true);\n if (find_true_list && find_true_list.length > 0) {\n is_show_field.value = true;\n emit('update:is_show_field', is_show_field.value);\n } else {\n is_show_field.value = false;\n emit('update:is_show_field', is_show_field.value);\n }\n if (is_show_field.value !== old_is_show_field) {\n if (is_show_field.value) {\n newModel.value[props.field.name] = null;\n emit('update_model', {\n add_key: props.field.name,\n value: null,\n });\n } else {\n delete newModel.value[props.field.name];\n emit('update_model', {\n remove_key: props.field.name,\n });\n }\n }\n }, 300);\n const model = ref<any>('');\n const labelModel = ref(props.label);\n watch(\n () => model.value,\n (newValue, oldValue) => {\n if (isEqual(newValue, oldValue)) {\n return;\n }\n emit('update:value', newValue);\n if (props.field.name2) {\n let label: any;\n if (props.field.type === 'radio') {\n const obj = props.options.find(\n (item: any) =>\n item[props.field.valueKey ? props.field.valueKey : 'value'] == newValue,\n );\n label = obj?.[props.field.labelKey ? props.field.labelKey : 'label'];\n } else if (props.field.type === 'checkbox' && newValue && newValue.length >= 0) {\n const list = [];\n props.options.forEach((item: any) => {\n newValue.forEach((item1: any) => {\n if (item1 == item?.[props.field.valueKey ? props.field.valueKey : 'value']) {\n list.push(item?.[props.field.labelKey ? props.field.labelKey : 'label']);\n }\n });\n });\n label = list.toString();\n } else if (props.field.type === 'select') {\n if (isArray(newValue)) {\n const list = [];\n props.options.forEach((item: any) => {\n newValue.forEach((item1: any) => {\n if (item1 == item?.[props.field.valueKey ? props.field.valueKey : 'value']) {\n list.push(item?.[props.field.labelKey ? props.field.labelKey : 'label']);\n }\n });\n });\n label = list.toString();\n } else {\n const obj = props.options.find(\n (item: any) =>\n item[props.field.valueKey ? props.field.valueKey : 'value'] == newValue,\n );\n label = obj?.[props.field.labelKey ? props.field.labelKey : 'label'];\n }\n }\n emit('update_name2', {\n key: props.field.name2,\n value: label,\n });\n }\n },\n { deep: true },\n );\n watch(\n () => props.value,\n newValue => {\n let value = newValue;\n if (props.field.type === 'rangepicker' && value) {\n value = rangeDate(value);\n } else if (props.field.type === 'input' && value) {\n value = value.toString().replace(/(^\\s*)|(\\s*$)/g, '');\n }\n if (is_show_field.value) {\n //当该表单项显示时,才做向上的数据绑定,避免把undefined向上传递,影响rules字段的有效过滤\n model.value = value;\n }\n },\n { immediate: true },\n );\n watch(\n () => labelModel.value,\n newValue => {\n emit('update:label', newValue);\n if ('name2' in props.field) {\n emit('update_name2', { key: props.field.name2, value: newValue.toString() });\n }\n },\n { deep: true },\n );\n watch(\n () => props.label,\n newValue => {\n labelModel.value = newValue;\n },\n );\n watch(\n () => props.formModel,\n newValue => {\n newModel.value = { ...newValue };\n },\n { deep: true },\n );\n watch(\n () => newModel.value,\n (newValue, oldValue) => {\n if (props.field?.conditions) {\n props.field?.conditions.forEach(condition_list => {\n condition_list.forEach(item => {\n if (oldValue[item.watchKey] != newValue[item.watchKey]) {\n check_visible_field_fun();\n }\n });\n });\n }\n },\n { deep: true },\n );\n watch(\n () => [props.conditionsVisibleNum, props.isUseConditions],\n () => {\n if (props.field?.conditions) {\n if (props.isUseConditions) {\n check_visible_field_fun();\n } else {\n is_show_field.value = true;\n emit('update:is_show_field', is_show_field.value);\n }\n } else {\n is_show_field.value = true;\n emit('update:is_show_field', is_show_field.value);\n }\n },\n );\n onMounted(() => {\n if (props.field?.conditions instanceof Array && props.field?.conditions.length > 0) {\n check_visible_field_fun();\n } else {\n is_show_field.value = true;\n emit('update:is_show_field', is_show_field.value);\n }\n if (!is_show_field.value) {\n // 表单项所见即所得,如果有隐藏的字段,那么model的key也要清除\n delete newModel.value[props.field.name];\n emit('update_model', {\n remove_key: props.field.name,\n });\n }\n });\n const { t } = useI18n();\n return {\n t,\n is_show_field,\n is_edit,\n handleToggleEdit,\n rangeDate,\n handleAdd,\n model,\n labelModel,\n };\n },\n components: {\n IconSelect,\n RichTextEditor,\n Upload,\n RemoteCascaderPro,\n RemoteTreeSelectPro,\n RemoteSelectPro,\n RemoteComplete,\n AttributeTable,\n AttributeNomTable,\n RemoteFilterSelect,\n RemoteModal,\n RemoteSelect,\n RemoteCascader,\n RemoteTreeSelect,\n RemoteTable,\n JsonStr,\n JsonObj,\n RemoteText,\n RemoteTablePro,\n PlusOutlined,\n MonthPicker,\n MonthRangePicker,\n CodeEditor,\n TinymceEditor,\n },\n});\n</script>\n\n<style scoped>\n.ant-calendar-picker {\n width: 100% !important;\n}\n</style>\n","import { useRequest } from 'liyu-pc-base/init-plugin';\nimport type { PageResult } from 'liyu-pc-base/api/typing';\n\nexport async function create_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/create_view_settings', params);\n}\n\nexport async function update_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/update_view_settings', params);\n}\n\nexport async function refresh_view_settings_cache(params: Record<string, any>) {\n return useRequest().post('/view/refresh_view_settings_cache', params);\n}\n\nexport async function set_view_settings_default(params: Record<string, any>) {\n return useRequest().post('/view/set_view_settings_default', params);\n}\n\nexport async function delete_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/delete_view_settings', params);\n}\n\nexport async function recover_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/recover_view_settings', params);\n}\n\nexport async function get_view_settings(params: Record<string, any>) {\n return useRequest().post('/view/get_view_settings', params);\n}\n\nexport async function create_user_view(params: Record<string, any>) {\n return useRequest().post('/view/create_user_view', params);\n}\n\nexport async function update_user_view(params: Record<string, any>) {\n return useRequest().post('/view/update_user_view', params);\n}\n\nexport async function delete_user_view(params: Record<string, any>) {\n return useRequest().post('/view/delete_user_view', params);\n}\n\nexport async function recover_user_view(params: Record<string, any>) {\n return useRequest().post('/view/recover_user_view', params);\n}\n\nexport async function get_user_view(params: Record<string, any>) {\n return useRequest().post('/view/get_user_view', params);\n}\n\nexport async function get_view_settings_for_user(params: Record<string, any>) {\n return useRequest().post('/view/get_view_settings_for_user', params);\n}\n\nexport async function change_view_settings_sort(params: Record<string, any>) {\n return useRequest().post('/view/change_view_settings_sort', params);\n}\n\nexport async function query_view_settings_list(params?: {\n [key: string]: any;\n}): Promise<PageResult> {\n return useRequest().post('/view/query_view_settings_list', params);\n}\n\nexport async function query_user_view_list(params?: { [key: string]: any }): Promise<PageResult> {\n return useRequest().post('/view/query_user_view_list', params);\n}\n","export const CUSTOM_VIEW_DATA_USER = 'customviewdatauser';\n","<template>\n <a-card :body-style=\"{ padding: 0, height: height + 87 + 'px', overflowY: 'auto' }\">\n <a-collapse\n v-model:activeKey=\"viewKey\"\n :bordered=\"false\"\n class=\"collapses\"\n style=\"background: rgb(255, 255, 255)\"\n >\n <template #expandIcon=\"{ isActive }\">\n <caret-right-outlined :rotate=\"isActive ? 90 : 0\" />\n </template>\n <a-collapse-panel\n :key=\"'1'\"\n :style=\"customStyle\"\n >\n <template #header>\n <span style=\"font-weight: 700\">{{ $t('个人视图') }}</span>\n </template>\n <template #extra>\n <a-tooltip>\n <template #title>{{ $t('个人视图管理') }}</template>\n <setting-outlined\n style=\"margin-right: 10px\"\n @click.stop=\"editView('personal')\"\n />\n </a-tooltip>\n <a-tooltip>\n <template #title>{{ $t('新建个人视图') }}</template>\n <plus-outlined @click.stop=\"addView('personal')\" />\n </a-tooltip>\n </template>\n <a-table\n v-if=\"personData.length > 0\"\n :columns=\"columns\"\n :customRow=\"customRow\"\n :dataSource=\"personData\"\n :pagination=\"false\"\n :showHeader=\"false\"\n :size=\"'small'\"\n >\n <template #bodyCell=\"{ column, record }\">\n <div\n class=\"table\"\n v-if=\"column.dataIndex === 'name'\"\n style=\"width: 100%; cursor: pointer\"\n @click=\"changeView(record)\"\n >\n <a-tooltip\n :title=\"record.name\"\n :color=\"appStore.primaryColor\"\n placement=\"left\"\n :destroyTooltipOnHide=\"true\"\n :overlayStyle=\"{ maxWidth: '200px' }\"\n >\n <div style=\"max-width: 130px; float: left; white-space: nowrap; overflow: hidden\">\n {{ record.name }}\n </div>\n </a-tooltip>\n <span\n class=\"num\"\n style=\"float: right\"\n :style=\"\n currentViewObj.id === record.id ? { color: '#1890ff', fontWeight: 'bold' } : {}\n \"\n >\n {{ record.num }}\n </span>\n <a-dropdown class=\"dropdown\">\n <span\n style=\"float: right; font-weight: 800\"\n @click.stop=\"\"\n >\n · · ·\n </span>\n <template #overlay>\n <a-menu>\n <a-menu-item v-if=\"!record.is_system || is_auth\">\n <a\n href=\"javascript:;\"\n @click=\"handleSubmit(record, 'personal')\"\n >\n {{ $t('编辑') }}\n </a>\n </a-menu-item>\n <a-menu-item>\n <a\n href=\"javascript:;\"\n @click=\"handleShare(record)\"\n >\n {{ $t('分享视图') }}\n </a>\n </a-menu-item>\n <a-menu-item v-if=\"!record.is_system || is_auth\">\n <a\n href=\"javascript:;\"\n @click=\"handleDelet(record)\"\n >\n {{ $t('删除') }}\n </a>\n </a-menu-item>\n </a-menu>\n </template>\n </a-dropdown>\n </div>\n </template>\n </a-table>\n </a-collapse-panel>\n <a-collapse-panel\n :key=\"'2'\"\n :style=\"customStyle\"\n >\n <template #header>\n <span style=\"font-weight: 700\">{{ $t('公共视图') }}</span>\n </template>\n <template #extra>\n <a-tooltip>\n <template #title>{{ $t('公共视图管理') }}</template>\n <setting-outlined\n style=\"margin-right: 10px\"\n @click.stop=\"editView('public')\"\n />\n </a-tooltip>\n <a-tooltip>\n <template #title>{{ $t('新建公共视图') }}</template>\n <plus-outlined @click.stop=\"addView('public')\" />\n </a-tooltip>\n </template>\n <a-table\n v-if=\"publicData.length > 0\"\n :columns=\"columns\"\n :customRow=\"customRow\"\n :dataSource=\"publicData\"\n :pagination=\"false\"\n :showHeader=\"false\"\n :size=\"'small'\"\n >\n <template #bodyCell=\"{ column, record }\">\n <div\n class=\"table\"\n v-if=\"column.dataIndex === 'name'\"\n style=\"width: 100%; cursor: pointer\"\n @click=\"changeView(record)\"\n >\n <a-tooltip\n :title=\"record.name\"\n :color=\"appStore.primaryColor\"\n placement=\"left\"\n :destroyTooltipOnHide=\"true\"\n :overlayStyle=\"{ maxWidth: '200px' }\"\n >\n <div style=\"max-width: 130px; float: left; white-space: nowrap; overflow: hidden\">\n {{ record.name }}\n </div>\n </a-tooltip>\n <span\n class=\"num\"\n style=\"float: right\"\n :style=\"\n currentViewObj.id === record.id ? { color: '#1890ff', fontWeight: 'bold' } : {}\n \"\n >\n {{ record.num }}\n </span>\n <a-dropdown class=\"dropdown\">\n <span\n style=\"float: right; font-weight: 800\"\n @click.stop=\"\"\n >\n · · ·\n </span>\n <template #overlay>\n <a-menu>\n <a-menu-item v-if=\"!record.is_system || is_auth\">\n <a\n href=\"javascript:;\"\n @click=\"handleSubmit(record, 'public')\"\n >\n {{ $t('编辑') }}\n </a>\n </a-menu-item>\n <a-menu-item>\n <a\n href=\"javascript:;\"\n @click=\"handleShare(record)\"\n >\n {{ $t('分享视图') }}\n </a>\n </a-menu-item>\n <a-menu-item v-if=\"!record.is_system || is_auth\">\n <a\n href=\"javascript:;\"\n @click=\"handleDelet(record)\"\n >\n {{ $t('删除') }}\n </a>\n </a-menu-item>\n </a-menu>\n </template>\n </a-dropdown>\n </div>\n </template>\n </a-table>\n </a-collapse-panel>\n </a-collapse>\n </a-card>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n createVNode,\n defineComponent,\n onActivated,\n onMounted,\n onUnmounted,\n reactive,\n ref,\n watch,\n} from 'vue';\nimport {\n CaretRightOutlined,\n ExclamationCircleOutlined,\n PlusOutlined,\n SettingOutlined,\n} from '@ant-design/icons-vue';\nimport modalBox from 'liyu-pc-base/components/form-modal/modal-tools';\nimport { message, Modal } from 'ant-design-vue';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\nimport { useAppStore } from 'liyu-pc-base/init-plugin';\nimport {\n change_view_settings_sort,\n create_view_settings,\n delete_view_settings,\n query_view_settings_list,\n refresh_view_settings_cache,\n set_view_settings_default,\n update_view_settings,\n} from 'liyu-pc-base/api/view-model';\nimport { sourceStore } from 'liyu-pc-base/init-plugin';\nimport { copyValue } from 'liyu-pc-base/utils/function';\nimport { getApiData } from 'liyu-pc-base/api/api-model';\nimport {\n getPageConfig,\n getViewSettingsAndPageConfig,\n} from 'liyu-pc-base/components/remotePages/index';\nimport { useI18n } from 'vue-i18n';\nimport { useRequiredConditionStore } from 'liyu-pc-base/init-plugin';\nimport { required_condition_event_obj } from 'liyu-pc-base/init-plugin';\nimport { useEnv } from 'liyu-pc-base/init-plugin';\nimport { CUSTOM_VIEW_DATA_USER } from 'liyu-pc-base/constants';\n\nconst VIEW_SYSTEM_EDIT = 'view_system_edit';\nconst columns = [\n {\n title: '',\n dataIndex: 'name',\n key: 'name',\n },\n];\nexport default defineComponent({\n name: 'ViewManage',\n components: {\n CaretRightOutlined,\n PlusOutlined,\n SettingOutlined,\n },\n props: {\n currentViewObj: {\n type: Object,\n required: true,\n },\n menu_flag: {\n type: String,\n required: true,\n },\n menu_name: {\n type: String,\n required: true,\n },\n countData: {\n type: String,\n required: true,\n },\n create_num: {\n type: Number,\n required: true,\n },\n current_num: {\n type: Number,\n required: true,\n },\n count_num: {\n type: Number,\n required: true,\n },\n height: {\n type: Number,\n required: true,\n },\n modalType: {\n type: String,\n },\n app_flag: {\n type: String,\n },\n },\n emits: ['change'],\n setup(props, { emit }) {\n const env = useEnv();\n const requiredConditionStore = useRequiredConditionStore();\n const userStore = useUserStore();\n const appStore = useAppStore();\n const current_org = userStore.currentOrg;\n const userid = userStore.userid;\n const is_auth = ref(userStore.CHECK_AUTH(VIEW_SYSTEM_EDIT));\n const viewData = ref([]); // 视图数据\n const { t } = useI18n();\n let mergedConfig: any;\n let defaultAndServerConfig: any;\n const personData = computed(() => {\n const list = viewData.value\n .filter((item: any) => !!item.user_id && item.is_system)\n .map((item: any) => {\n return item;\n })\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort));\n const list1 = viewData.value\n .filter((item: any) => !!item.user_id && !item.is_system)\n .map((item: any) => {\n return item;\n })\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort));\n return list.concat(list1);\n }); // 个人视图数据\n const publicData = computed(() => {\n const list = viewData.value\n .filter((item: any) => !item.user_id && item.is_system)\n .map((item: any) => {\n return item;\n })\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort));\n const list1 = viewData.value\n .filter((item: any) => !item.user_id && !item.is_system)\n .map((item: any) => {\n return item;\n })\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort));\n return list.concat(list1);\n }); // 公共视图数据\n const viewNameList = computed(() => {\n return viewData.value.map((item: any) => {\n return item.name;\n });\n }); // 视图名称列表,用于创建、修改时查重\n\n const fetchData = async ({\n id,\n search_model,\n filter_map,\n sort_fields,\n group_condition,\n conditions,\n isShowGeneralFilter,\n }) => {\n return new Promise(resolve => {\n if (!props.countData && !mergedConfig?.countData) {\n console.error('无count接口');\n resolve(null);\n }\n const obj: any = {\n org_id: current_org.id,\n ...search_model,\n ...filter_map,\n sort_fields: sort_fields,\n };\n if (isShowGeneralFilter) {\n obj.group_condition = group_condition;\n obj.conditions = conditions;\n }\n obj.required_condition = getRequiredConditionObj();\n getApiData(obj, mergedConfig?.countData ? mergedConfig.countData : props.countData)\n .then((res: any) => {\n viewData.value.forEach((item: any) => {\n if (item.id == id) {\n item.num = res;\n }\n });\n resolve(null);\n })\n .catch(error => {\n console.log('error', error);\n message.error(t('获取数据失败, 请刷新页面'));\n });\n });\n };\n const setCount = async (list: any) => {\n for (const item of list) {\n try {\n await fetchData(item);\n } catch (error) {\n console.log('error', error);\n message.error(t('获取数据失败, 请刷新页面'));\n }\n }\n };\n // 查询视图、刷新count\n const viewRefresh = () => {\n getViewSettingsAndPageConfig({\n org_id: current_org.id,\n user_id: userid,\n app_flag: props.app_flag,\n modalType: props.modalType,\n sort_fields: ['sort', 'create_time'],\n is_cache: false,\n })\n .then((res: any) => {\n mergedConfig = getPageConfig(\n props.app_flag,\n props.modalType,\n res.defaultAndServerConfig,\n t,\n {\n use_store: true,\n to_i18n: true,\n enable_btn: false,\n },\n );\n defaultAndServerConfig = res.defaultAndServerConfig;\n if (mergedConfig?.isView === false) {\n window.location.hash = '';\n emit('change', defaultAndServerConfig, {}, true, true);\n return;\n }\n requiredConditionStore.set_required_condition(\n props.modalType,\n mergedConfig.required_condition,\n );\n viewData.value.length = 0;\n let list: any = [];\n const count_search_list: any = [];\n if (res && res.system_user_datas && res.system_user_datas.length > 0) {\n list = list.concat(res.system_user_datas);\n }\n if (res && res.system_public_datas && res.system_public_datas.length > 0) {\n list = list.concat(res.system_public_datas);\n }\n if (res && res.public_datas && res.public_datas.length > 0) {\n list = list.concat(res.public_datas);\n }\n if (res && res.user_datas && res.user_datas.length > 0) {\n list = list.concat(res.user_datas);\n }\n list.forEach((item: any) => {\n let search_model: any = null;\n let filter_map: any = null;\n let group_condition: any = null;\n let conditions: any = null;\n if (item.data.isShowGeneralFilter) {\n search_model = {};\n filter_map = {};\n group_condition = item.data.group_condition;\n conditions = item.data.conditions;\n } else {\n search_model = item.data.search_model;\n filter_map = item.data.filter_map;\n group_condition = {};\n conditions = [];\n }\n viewData.value.push({\n ...item,\n search_model,\n filter_map,\n sort_fields: item.data.sort_fields,\n group_condition: group_condition,\n conditions: conditions,\n });\n count_search_list.push({\n id: item.id,\n isShowGeneralFilter: item.data.isShowGeneralFilter,\n search_model,\n filter_map,\n sort_fields: item.data.sort_fields,\n group_condition,\n conditions,\n });\n });\n if (count_search_list.length > 0) {\n setCount(count_search_list);\n }\n handleHashChange(null);\n })\n .catch(err => {\n console.log('err', err);\n message.error(t('获取视图失败, 请刷新页面'));\n });\n };\n // 根据hash选定当前视图数据 event返回(视图数据,是否刷新页面,是否可自我保存)\n const handleHashChange = (uid: any) => {\n let hash = null;\n if (uid) {\n hash = uid;\n } else if (window.location.hash) {\n hash = window.location.hash.substring(1); // 去掉 # 符号\n }\n if (hash) {\n // 分享的视图链接打开\n const list = viewData.value.filter((item: any) => item.uid == hash);\n if (list && list.length > 0) {\n emit('change', defaultAndServerConfig, { ...list[0], ...list[0].data }, true, true);\n } else {\n query_view_settings_list({\n org_id: current_org.id,\n conditions: [\n [\n {\n field_name: 'is_active',\n operator: 'in',\n value: [true],\n format: 'choices',\n class_name: 'bool',\n },\n {\n field_name: 'view_menu__flag',\n operator: 'eq',\n value: [props.menu_flag],\n format: 'input',\n class_name: 'str',\n },\n {\n field_name: 'uid',\n operator: 'eq',\n value: [hash],\n format: 'input',\n class_name: 'str',\n },\n ],\n ],\n }).then((res: any) => {\n if (res && res.data && res.data.length > 0) {\n emit(\n 'change',\n defaultAndServerConfig,\n {\n ...res.data[0],\n ...res.data[0].data,\n },\n true,\n false,\n );\n } else {\n const list = viewData.value.filter((item: any) => !item.user_id && item.is_default);\n if (list && list.length > 0) {\n window.location.hash = list[0].uid;\n emit('change', defaultAndServerConfig, { ...list[0], ...list[0].data }, true, true);\n return;\n }\n let obj = viewData.value\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort))\n .find((item: any) => !item.user_id);\n if (obj && obj.uid) {\n window.location.hash = obj.uid;\n emit('change', defaultAndServerConfig, { ...obj, ...obj.data }, true, true);\n } else {\n obj = viewData.value\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort))\n .find((item: any) => item.user_id);\n if (obj && obj.uid) {\n window.location.hash = obj.uid;\n emit('change', defaultAndServerConfig, { ...obj, ...obj.data }, true, true);\n } else {\n const obj = {\n uid: null,\n view_menu__flag: props.menu_flag,\n column: {},\n search_model: {},\n filter_map: {},\n sort_fields: [],\n filtered_value: {},\n sort_orders: [],\n };\n emit('change', defaultAndServerConfig, obj, true, false);\n window.location.hash = '';\n }\n }\n }\n });\n }\n } else {\n let current_uid = '';\n if (sourceStore().get(CUSTOM_VIEW_DATA_USER)) {\n current_uid = sourceStore().get(CUSTOM_VIEW_DATA_USER)?.[props.menu_flag]; // 菜单当前视图uid\n }\n if (current_uid) {\n window.location.hash = current_uid;\n handleHashChange(current_uid);\n } else {\n // 优先选择非系统视图的默认视图\n const list = viewData.value.filter(\n (item: any) => !item.user_id && item.is_default && !item.is_system,\n );\n if (list && list.length > 0) {\n window.location.hash = list[0].uid;\n emit('change', defaultAndServerConfig, { ...list[0], ...list[0].data }, true, true);\n return;\n }\n // 其次选择系统视图默认视图(多个默认选择第一个)\n const list_is_system = viewData.value.filter(\n (item: any) => !item.user_id && item.is_default && item.is_system,\n );\n if (list_is_system && list_is_system.length > 0) {\n window.location.hash = list_is_system[0].uid;\n emit(\n 'change',\n defaultAndServerConfig,\n { ...list_is_system[0], ...list_is_system[0].data },\n true,\n true,\n );\n return;\n }\n let obj = viewData.value\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort))\n .find((item: any) => !item.user_id);\n if (obj && obj.uid) {\n window.location.hash = obj.uid;\n emit('change', defaultAndServerConfig, { ...obj, ...obj.data }, true, true);\n } else {\n obj = viewData.value\n .sort((a, b) => (a.sort == b.sort ? a.id - b.id : a.sort - b.sort))\n .find((item: any) => item.user_id);\n if (obj && obj.uid) {\n window.location.hash = obj.uid;\n emit('change', defaultAndServerConfig, { ...obj, ...obj.data }, true, true);\n } else {\n window.location.hash = '';\n const obj = {\n uid: null,\n view_menu__flag: props.menu_flag,\n column: {},\n search_model: {},\n filter_map: {},\n sort_fields: [],\n filtered_value: {},\n sort_orders: [],\n };\n emit('change', defaultAndServerConfig, obj, true, false);\n }\n }\n }\n }\n };\n viewRefresh();\n const viewKey = ref(['1', '2']); // 视图数据展开控制key\n const customStyle =\n 'background: #ffffff;border-radius: 4px;margin-bottom: 2px;border: 0;overflow: hidden;';\n const customRow = (record: any) => {\n return props.currentViewObj && record && record.id === props.currentViewObj.id\n ? { style: { backgroundColor: '#ddf1ff' } }\n : { style: {} };\n };\n // 切换视图\n const changeView = (record: any) => {\n window.location.hash = record.uid;\n handleHashChange(record.uid);\n refreshCount([record]);\n };\n // 保存修改视图\n const viewSubmit = ({ updateView, record }) => {\n if (record.name != updateView.name && viewNameList.value.includes(updateView.name)) {\n message.error(t('视图名称已存在'));\n return;\n }\n if (record?.id) {\n const list = viewData.value.filter((item: any) => record?.id == item.id);\n if (updateView.is_submit?.[0]) {\n const view = {\n ...list[0].data,\n search_model: { ...props.currentViewObj.search_model, current: 1 },\n filter_map: props.currentViewObj.filter_map,\n sort_fields: props.currentViewObj.sort_fields,\n filtered_value: props.currentViewObj.filtered_value,\n sort_orders: props.currentViewObj.sort_orders,\n column: props.currentViewObj.column,\n isShowGeneralFilter: props.currentViewObj.isShowGeneralFilter,\n conditions: props.currentViewObj.conditions,\n group_condition: props.currentViewObj.group_condition,\n group_record: props.currentViewObj.group_record,\n default_search_condition_config_list:\n props.currentViewObj.default_search_condition_config_list,\n };\n delete view.is_system; // 存储时不记录is_system,防止后端直接修改,前端不起效\n update_view_settings({\n org_id: current_org.id,\n view_settings_id: record?.id,\n is_system: updateView.is_system?.[0],\n name: updateView.name,\n data: JSON.stringify(view),\n }).then((res: any) => {\n if (updateView.is_default?.[0]) {\n set_view_settings_default({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n refresh_view_settings_cache({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n message.success(t('保存成功'));\n if (res.id == props.currentViewObj?.id) {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, false, true);\n } else {\n viewData.value.forEach((item: any) => {\n if (item.id == res.id) {\n Object.assign(item, { ...res, ...res.data });\n }\n });\n }\n viewRefresh();\n });\n });\n } else {\n refresh_view_settings_cache({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n message.success(t('保存成功'));\n if (res.id == props.currentViewObj?.id) {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, false, true);\n } else {\n viewData.value.forEach((item: any) => {\n if (item.id == res.id) {\n Object.assign(item, { ...res, ...res.data });\n }\n });\n }\n viewRefresh();\n });\n }\n });\n } else {\n update_view_settings({\n org_id: current_org.id,\n view_settings_id: record?.id,\n is_system: updateView.is_system?.[0],\n name: updateView.name,\n }).then((res: any) => {\n if (updateView.is_default?.[0]) {\n set_view_settings_default({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n refresh_view_settings_cache({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n message.success(t('保存成功'));\n if (res.id == props.currentViewObj?.id) {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, false, true);\n } else {\n viewData.value.forEach((item: any) => {\n if (item.id == res.id) {\n Object.assign(item, { ...res, ...res.data });\n }\n });\n }\n viewRefresh();\n });\n });\n } else {\n refresh_view_settings_cache({\n org_id: current_org.id,\n view_settings_id: record?.id,\n }).then(() => {\n message.success(t('保存成功'));\n if (res.id == props.currentViewObj?.id) {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, false, true);\n } else {\n viewData.value.forEach((item: any) => {\n if (item.id == res.id) {\n Object.assign(item, { ...res, ...res.data });\n }\n });\n }\n viewRefresh();\n });\n }\n });\n }\n } else {\n let view: any = {};\n if (updateView.is_submit?.[0]) {\n view = {\n search_model: { ...props.currentViewObj.search_model, current: 1 },\n filter_map: props.currentViewObj.filter_map,\n sort_fields: props.currentViewObj.sort_fields,\n filtered_value: props.currentViewObj.filtered_value,\n sort_orders: props.currentViewObj.sort_orders,\n column: props.currentViewObj.column,\n isShowGeneralFilter: props.currentViewObj.isShowGeneralFilter,\n conditions: props.currentViewObj.conditions,\n group_condition: props.currentViewObj.group_condition,\n group_record: props.currentViewObj.group_record,\n default_search_condition_config_list:\n props.currentViewObj.default_search_condition_config_list,\n };\n delete view.is_system; // 存储时不记录is_system,防止后端直接修改,前端不起效\n } else {\n view = {\n column: {},\n search_model: {},\n filter_map: {},\n sort_fields: [],\n filtered_value: {},\n sort_orders: [],\n isShowGeneralFilter: null,\n conditions: [],\n group_condition: {},\n group_record: {},\n };\n }\n create_view_settings({\n org_id: current_org.id,\n user_id: updateView.view_type == 'personal' ? userid : null,\n name: updateView.name,\n view_project__flag: env.VITE_APP_VIEW_PROJECT_FLAG,\n view_menu__flag: props.menu_flag,\n view_menu__name: props.menu_name,\n is_system: false,\n data: JSON.stringify(view),\n }).then((res: any) => {\n emit('change', defaultAndServerConfig, { ...res, ...res.data }, true, true);\n if (res.id) {\n viewData.value = viewData.value.concat([\n {\n ...res,\n },\n ]);\n setCount([\n {\n id: res.id,\n search_model: view.search_model,\n filter_map: view.filter_map,\n sort_fields: view.sort_fields,\n group_condition: view.group_condition,\n conditions: view.conditions,\n isShowGeneralFilter: view.isShowGeneralFilter,\n },\n ]);\n window.location.hash = res.uid;\n handleHashChange(res.uid);\n }\n });\n }\n };\n // 视图编辑按钮\n const handleSubmit = (record: any, view_type: string) => {\n let is_submit: any = [false];\n if (props.currentViewObj.id == record.id) {\n is_submit = [true];\n }\n const tempModal = reactive({\n open: true,\n loading: false,\n title: t('编辑视图'),\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: t('视图名称'),\n disabled: false,\n allowClear: true,\n inputType: 'text',\n defaultValue: '',\n placeholder: t('请输入视图名称'),\n },\n {\n type: 'checkbox',\n name: 'is_submit',\n label: '',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: [false],\n placeholder: '',\n },\n ],\n rules: reactive({\n name: [\n {\n required: true,\n message: t('请输入视图名称'),\n },\n ],\n }),\n model: reactive({\n name: record.name,\n is_submit: is_submit,\n is_default: [record?.is_default ? record?.is_default : false],\n is_system: [record?.is_system ? record?.is_system : false],\n }),\n },\n options: {\n is_submit: [\n {\n name: t('将当前过滤条件、排序、显示属性、视图和分组等设置更新到该视图中'),\n value: true,\n },\n ],\n is_default: [\n {\n name: t('设为默认视图'),\n value: true,\n },\n ],\n is_system: [\n {\n name: t('设为系统视图'),\n value: true,\n },\n ],\n },\n ok: (data: any) => {\n return new Promise(function (resolve) {\n viewSubmit({ updateView: data, record: record });\n resolve(null);\n });\n },\n });\n if (view_type == 'public') {\n tempModal.form.fields.push({\n type: 'checkbox',\n name: 'is_default',\n label: '',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: [false],\n placeholder: '',\n });\n if (is_auth.value) {\n tempModal.form.fields.push({\n type: 'checkbox',\n name: 'is_system',\n label: '',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: [false],\n placeholder: '',\n });\n }\n }\n modalBox(tempModal);\n };\n // 添加视图\n const addView = (view_type: any) => {\n const tempModal = reactive({\n open: true,\n loading: false,\n title: t('新建视图'),\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: t('视图名称'),\n disabled: false,\n allowClear: true,\n inputType: 'text',\n defaultValue: '',\n placeholder: t('请输入视图名称'),\n },\n {\n type: 'radio',\n name: 'view_type',\n label: t('视图可见范围'),\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '',\n },\n {\n type: 'checkbox',\n name: 'is_submit',\n label: '',\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: [false],\n placeholder: '',\n },\n ],\n rules: reactive({\n name: [\n {\n required: true,\n message: t('请输入视图名称'),\n },\n ],\n }),\n model: reactive({\n name: null,\n view_type: view_type,\n is_submit: [true],\n }),\n },\n options: {\n view_type: [\n { name: t('个人视图(仅自己可见)'), value: 'personal' },\n { name: t('公共视图(项目成员均可见)'), value: 'public' },\n ],\n is_submit: [\n {\n name: t('将当前过滤条件、排序、显示属性、视图和分组等设置更新到该视图中'),\n value: true,\n },\n ],\n },\n ok: (data: any) => {\n return new Promise(function (resolve) {\n if (viewNameList.value.includes(data.name)) {\n message.error(t('视图名称已存在'));\n return;\n }\n viewSubmit({ updateView: data, record: data });\n resolve(null);\n });\n },\n });\n modalBox(tempModal);\n };\n // 管理视图\n const editView = (view_type: any) => {\n const tempModal = reactive({\n open: true,\n component: 'ViewEditModal',\n compObj: {\n title: view_type == 'personal' ? t('个人视图管理') : t('公共视图管理'),\n data: view_type == 'personal' ? personData.value : publicData.value,\n },\n ok: (ids: any) => {\n if (ids && ids.length > 0) {\n change_view_settings_sort({\n org_id: current_org.id,\n view_settings_ids: ids,\n }).then(() => {\n message.success(t('保存成功'));\n viewRefresh();\n });\n } else {\n message.success(t('保存成功'));\n viewRefresh();\n }\n },\n cancel: (isEdit: any) => {\n if (isEdit) {\n viewRefresh();\n }\n },\n });\n modalBox(tempModal);\n };\n // 分享视图\n const handleShare = (record: any) => {\n let url = '';\n const index = window.location.href.indexOf('#');\n if (index !== -1) {\n // 如果找到了 #,则截取它之前的部分\n url = window.location.href.substring(0, index) + '#' + record.uid;\n } else {\n // 如果没有找到 #,则返回原始字符串\n url = window.location.href + '#' + record.uid;\n }\n copyValue({ val: url, message: t('复制成功') });\n };\n // 删除视图\n const handleDelet = (record: any) => {\n Modal.confirm({\n title: () =>\n `${t('确认删除此')}【${record.name}】${record?.user_id ? t('个人视图') : t('公共视图')}?`,\n content: t('视图删除后不可恢复,视图下工作项不受影响,是否确认删除?'),\n icon: () => createVNode(ExclamationCircleOutlined),\n okText: t('确定'),\n onOk() {\n return new Promise(resolve => {\n delete_view_settings({\n org_id: current_org.id,\n view_settings_id: record?.id,\n })\n .then(() => {\n viewData.value = viewData.value.filter((item: any) => item.id != record.id);\n handleHashChange(null);\n message.success(t('删除成功'));\n })\n .finally(() => {\n resolve(null);\n });\n }).catch(() => console.log('Oops errors!'));\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onCancel() {},\n });\n };\n const getRequiredConditionObj = () => {\n const page_config = getPageConfig(props.app_flag, props.modalType, null, t, {\n use_store: true,\n to_i18n: true,\n enable_btn: false,\n });\n const required_condition = page_config.required_condition;\n const required_condition_obj = {};\n if (required_condition) {\n required_condition.forEach((item: any) => {\n const value = requiredConditionStore.value_map[item.key];\n if (value !== undefined && value !== null) {\n required_condition_obj[item.field_name] = value;\n }\n });\n }\n return required_condition_obj;\n };\n // 刷新Count (视图record,uid) => {}\n const refreshCount = (list: any) => {\n const count_search_list = [];\n list.forEach((item: any) => {\n let search_model: any = null;\n let filter_map: any = null;\n let group_condition: any = null;\n let conditions: any = null;\n if (item.data.isShowGeneralFilter) {\n search_model = {};\n filter_map = {};\n group_condition = item.data.group_condition;\n conditions = item.data.conditions;\n } else {\n search_model = item.data.search_model;\n filter_map = item.data.filter_map;\n group_condition = {};\n conditions = [];\n }\n count_search_list.push({\n id: item.id,\n search_model,\n filter_map,\n sort_fields: item.data.sort_fields,\n group_condition,\n conditions,\n isShowGeneralFilter: item.data.isShowGeneralFilter,\n });\n });\n setCount(count_search_list);\n };\n watch(\n () => props.current_num, // 监听保存当前视图\n () => {\n Modal.confirm({\n title: () => t('确定覆盖视图吗?'),\n content: t('当前视图原有的数据会被覆盖'),\n icon: () => createVNode(ExclamationCircleOutlined),\n okText: t('确定'),\n onOk() {\n return new Promise(resolve => {\n viewSubmit({\n updateView: {\n is_submit: [true],\n is_system: [props.currentViewObj.is_system],\n name: props.currentViewObj.name,\n },\n record: props.currentViewObj,\n });\n resolve(null);\n }).catch(() => console.log('Oops errors!'));\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onCancel() {},\n });\n },\n );\n watch(\n () => props.create_num, // 监听另存为\n () => {\n const tempModal = reactive({\n open: true,\n loading: false,\n title: t('新建视图'),\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: t('视图名称'),\n disabled: false,\n allowClear: true,\n inputType: 'text',\n defaultValue: '',\n placeholder: t('请输入视图名称'),\n },\n {\n type: 'radio',\n name: 'view_type',\n label: t('视图可见范围'),\n disabled: false,\n allowClear: true,\n labelKey: 'name',\n valueKey: 'value',\n defaultValue: '',\n placeholder: '',\n },\n ],\n rules: reactive({\n name: [\n {\n required: true,\n message: t('请输入视图名称'),\n },\n ],\n }),\n model: reactive({\n name: null,\n view_type: 'personal',\n is_submit: [true],\n }),\n },\n options: {\n view_type: [\n { name: t('个人视图(仅自己可见)'), value: 'personal' },\n { name: t('公共视图(项目成员均可见)'), value: 'public' },\n ],\n is_submit: [\n {\n name: t('将当前过滤条件、排序、显示属性、视图和分组等设置更新到该视图中'),\n value: true,\n },\n ],\n },\n ok: (data: any) => {\n return new Promise(function (resolve) {\n const viewNameList = viewData.value.map((item: any) => item.name);\n if (viewNameList.includes(data.name)) {\n message.error(t('视图名称已存在'));\n return;\n }\n viewSubmit({ updateView: data, record: data });\n resolve(null);\n });\n },\n });\n modalBox(tempModal);\n },\n );\n\n watch(\n () => props.count_num, // 监听刷新当前视图count\n () => {\n refreshCount(viewData.value);\n },\n );\n const handleRequiredConditionChange = (key: string) => {\n const page_config = getPageConfig(props.currentViewObj.app_flag, props.modalType, null, t, {\n use_store: true,\n to_i18n: true,\n enable_btn: false,\n });\n if (page_config.required_condition) {\n const item = page_config.required_condition.find((item: any) => item.key === key);\n if (item) {\n viewRefresh();\n }\n }\n };\n onMounted(() => {\n required_condition_event_obj().on('change', handleRequiredConditionChange);\n });\n onUnmounted(() => {\n required_condition_event_obj().off('change', handleRequiredConditionChange);\n });\n // 页面重新进入刷新count\n onActivated(() => {\n refreshCount(viewData.value);\n });\n return {\n props,\n viewKey,\n customStyle,\n columns,\n personData,\n publicData,\n is_auth,\n addView,\n editView,\n customRow,\n changeView,\n handleSubmit,\n handleShare,\n handleDelet,\n appStore,\n };\n },\n});\n</script>\n<style lang=\"less\">\n.collapses .ant-collapse-item .ant-collapse-content .ant-collapse-content-box {\n padding: 0;\n}\n\n.num {\n display: inline-block;\n}\n\n.dropdown {\n display: none;\n}\n\n.table:hover .dropdown {\n display: inline-block;\n}\n\n.table:hover .num {\n display: none;\n}\n</style>","<template>\n <a-card :body-style=\"{ padding: 0, height: selectObj.height + 96 + 'px', overflowY: 'auto' }\">\n <view-manage\n :select-obj=\"selectObj\"\n @change=\"change\"\n />\n </a-card>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref } from 'vue';\n// import SideFieldRender from 'liyu-pc-base/components/SideSearchRender/SideFieldRender.vue';\n// import { ReloadOutlined } from '@ant-design/icons-vue';\nimport ViewManage from 'liyu-pc-base/components/SideSearchRender/viewManage.vue';\n\nexport default defineComponent({\n name: 'SideSearchRender',\n components: {\n ViewManage,\n },\n props: {\n selectObj: {\n type: Object,\n required: true,\n },\n },\n emits: ['change'],\n setup(props, { emit }) {\n const change = (data: any, is_refresh: any, is_ownView: any) => {\n emit('change', data, is_refresh, is_ownView);\n };\n return {\n props,\n change,\n };\n },\n});\n</script>\n<style lang=\"less\">\n.collapses .ant-collapse-item .ant-collapse-content .ant-collapse-content-box {\n padding: 0;\n}\n</style>\n"],"names":["_sfc_main$7","defineComponent","props","emit","activeKey","ref","tab_list","item_list","index","base_search_list","i","handleSubmit","e","list","item","selected_group_list","temp","operator_list_selected","get_operator_list_selected","first","condition","_resolveComponent","_openBlock","_createBlock","_component_a_modal","_ctx","_cache","_withCtx","_createVNode","_component_a_tabs","$event","_createElementBlock","_Fragment","_renderList","_component_a_tab_pane","base_search_item","_createElementVNode","_hoisted_1","_toDisplayString","_component_a_space","obj","_component_a_checkbox","_sfc_main$6","_a","k","_b","new_search_list","new_group","new_i","message","_hoisted_3","get_options_eq","t","_sfc_main$5","FieldRender2","CloseOutlined","LeftOutlined","RightOutlined","FieldRender","AddConditionGroupModal","AddConditionModal","CloseCircleOutlined","isShowForm","labelModel","useI18n","options_eq","condition_model_dict","validateInfos","source_default_search_condition_config_list","is_or_not_blank_or_null_options","operator_type_count_map","is2DArray","arr","subArray","old_operator","onChangeOperator","operator","value","isNotEmpty","seconds","addConditionModal","reactive","handleAddConditions","handleAddConditionOk","data","item1","index1","item2","item3","handleAddConditionCancel","addConditionGroupModal","handleAddGroupCondition","handleAddGroupConditionOK","handleAddGroupConditionCancel","handleSearch","refreshCondition","update_all","deleteBtnDict","group_item","onFilterChanged","handleMouseEnter","form_item","handleMouseLeave","handleDeleteFormItem","new_list","index_","handleDelSearch","filed_name","onChangeSearchItem","group_index","condition_index","selected_field_name","new_condition","searchItemOptionsDict","computed","dict","filter_field_name_list","filter_list","o","isShowSearchTag","transferValueFunc","str_list","get_operator_type_map","transfer_value","moment","handleShowSearchRender","watch","onMounted","onUnmounted","_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_4","_createCommentVNode","_component_a_button","_withDirectives","_component_a_tag","_createTextVNode","_component_close_outlined","_vShow","_hoisted_2","_component_a_space_compact","_component_a_input_group","_component_a_tooltip","_component_a_cascader","_component_a_select","_component_a_select_option","_component_field_render_2","_component_a_flex","_hoisted_5","_hoisted_6","_component_close_circle_outlined","_component_a_divider","_hoisted_7","_component_add_condition_modal","_component_add_condition_group_modal","_sfc_main$4","name","a","_component_a_form","_component_a_row","col","_component_a_col","field","_component_field_render","_sfc_main$3","row","field2","isValidDate","dateString","format","isValidDateTime","isValidTime","_sfc_main$2","isArray","newModel","rangeDate","v","convertValueByClassName","class_name","new_value","is_show_field","is_edit","handleToggleEdit","handleAdd","check_visible_field_fun","debounce","old_is_show_field","condition_result_list","group_list","group_results","j","second","isEmpty","x","con_list","find_false_list","find_true_list","model","newValue","oldValue","isEqual","label","condition_list","IconSelect","RichTextEditor","Upload","RemoteCascaderPro","RemoteTreeSelectPro","RemoteSelectPro","RemoteComplete","AttributeTable","AttributeNomTable","RemoteFilterSelect","RemoteModal","RemoteSelect","RemoteCascader","RemoteTreeSelect","RemoteTable","JsonStr","JsonObj","RemoteText","RemoteTablePro","PlusOutlined","MonthPicker","MonthRangePicker","CodeEditor","TinymceEditor","_renderSlot","_normalizeStyle","_component_a_rate","_component_a_input","_createSlots","_c","_resolveDynamicComponent","_e","_g","_i","_component_a_input_number","_k","_m","_o","_q","option","_component_remote_cascader","_component_remote_cascader_pro","_component_month_picker","_component_a_date_picker","_component_a_range_picker","_component_month_range_picker","_component_a_time_picker","_component_a_time_range_picker","_component_a_radio_group","_component_a_radio","_component_a_checkbox_group","_component_a_tree_select","_component_remote_filter_select","_component_remote_select","_component_remote_select_pro","_component_remote_complete","_component_remote_tree_select","_component_remote_tree_select_pro","_component_remote_modal","_component_remote_table","_component_remote_text","create_view_settings","params","useRequest","update_view_settings","refresh_view_settings_cache","set_view_settings_default","delete_view_settings","change_view_settings_sort","query_view_settings_list","CUSTOM_VIEW_DATA_USER","VIEW_SYSTEM_EDIT","columns","_sfc_main$1","CaretRightOutlined","SettingOutlined","env","useEnv","requiredConditionStore","useRequiredConditionStore","userStore","useUserStore","appStore","useAppStore","current_org","userid","is_auth","viewData","mergedConfig","defaultAndServerConfig","personData","b","list1","publicData","viewNameList","fetchData","id","search_model","filter_map","sort_fields","group_condition","conditions","isShowGeneralFilter","resolve","getRequiredConditionObj","getApiData","res","error","setCount","viewRefresh","getViewSettingsAndPageConfig","getPageConfig","count_search_list","handleHashChange","err","uid","hash","current_uid","sourceStore","list_is_system","viewKey","customStyle","customRow","record","changeView","refreshCount","viewSubmit","updateView","view","_d","view_type","is_submit","tempModal","modalBox","addView","editView","ids","isEdit","handleShare","url","copyValue","handleDelet","Modal","createVNode","ExclamationCircleOutlined","required_condition","required_condition_obj","handleRequiredConditionChange","key","page_config","required_condition_event_obj","onActivated","_component_a_collapse","isActive","_component_caret_right_outlined","_component_a_collapse_panel","_component_setting_outlined","_component_plus_outlined","_component_a_table","column","_component_a_dropdown","_component_a_menu","_component_a_menu_item","_withModifiers","_sfc_main","ViewManage","is_refresh","is_ownView","_component_view_manage"],"mappings":"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"}
|