liyu-pc-base 1.0.12 → 1.0.14
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.
- package/dist/components/index.js +1030 -1005
- package/dist/components/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/utils/function.js +5 -4
- package/dist/utils/function.js.map +1 -1
- package/package.json +1 -1
|
@@ -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/FormRender3.vue","../../src/components/FormRender/FormRender.vue","../../src/components/FormRender/FormRender2.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 普通\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\">展开</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 隐藏\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>条件组{{ 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 条件组 {{ 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=\"请选择...\"\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 v-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 }\"\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=\"condition.type === 'datepicker' || condition.type === 'monthpicker'\"\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 添加条件\n </a-button>\n <a-button\n size=\"small\"\n type=\"primary\"\n @click=\"handleAddGroupCondition\"\n >\n 添加条件组\n </a-button>\n <a-button\n size=\"small\"\n type=\"primary\"\n @click=\"handleSearch\"\n >\n 查询\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 { defineComponent, onMounted, reactive, ref, computed, watch, unref, PropType } 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 },\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 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 };\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 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 (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 emit('search', { model: condition_model_dict.value });\n };\n const refreshCondition = () => {\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) {\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\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 (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 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 };\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 scrollToFirstError\n class=\"cards\"\n :validateTrigger=\"false\"\n >\n <template\n v-for=\"(row, index) in form.dynamicFieldList\"\n :key=\"index\"\n >\n <a-card\n :body-style=\"{ padding: '10px 10px 0' }\"\n style=\"margin-bottom: 5px\"\n >\n <template\n v-if=\"row.group_name && row.group_name !== '默认参数组'\"\n #title\n >\n {{ row.group_name }}\n </template>\n <a-row\n :gutter=\"5\"\n type=\"flex\"\n >\n <a-col\n v-for=\"(field_item, i) in row?.children\"\n :key=\"i\"\n :span=\"\n field_item.is_show_field ? (field_item.span !== undefined ? field_item.span : 24) : 0\n \"\n :offset=\"field_item.offset\"\n :push=\"field_item.push\"\n :pull=\"field_item.pull\"\n >\n <field-render-2\n v-model:value=\"model[field_item.name]\"\n v-model:is_show_field=\"field_item['is_show_field']\"\n :field=\"field_item\"\n :formModel=\"model\"\n :outModel=\"outModel\"\n :key=\"field_item.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field_item.datasource ? field_item.datasource : field_item.name]\"\n @update_model=\"onUpdateModel\"\n @update_name2=\"onUpdateName2\"\n />\n </a-col>\n </a-row>\n </a-card>\n <!-- <a-row-->\n <!-- v-else-->\n <!-- :gutter=\"5\"-->\n <!-- type=\"flex\"-->\n <!-- >-->\n <!-- <a-col-->\n <!-- v-for=\"(field_item, i) in row?.children\"-->\n <!-- :key=\"i\"-->\n <!-- :span=\"-->\n <!-- field_item.is_show_field ? (field_item.span !== undefined ? field_item.span : 24) : 0-->\n <!-- \"-->\n <!-- :offset=\"field_item.offset\"-->\n <!-- :push=\"field_item.push\"-->\n <!-- :pull=\"field_item.pull\"-->\n <!-- >-->\n <!-- <field-render-2-->\n <!-- v-model:value=\"model[field_item.name]\"-->\n <!-- v-model:is_show_field=\"field_item['is_show_field']\"-->\n <!-- :field=\"field_item\"-->\n <!-- :formModel=\"model\"-->\n <!-- :outModel=\"outModel\"-->\n <!-- :key=\"field_item.name\"-->\n <!-- :validateInfos=\"validateInfos\"-->\n <!-- :options=\"options[field_item.datasource ? field_item.datasource : field_item.name]\"-->\n <!-- @update_model=\"onUpdateModel\"-->\n <!-- @update_name2=\"onUpdateName2\"-->\n <!-- />-->\n <!-- </a-col>-->\n <!-- </a-row>-->\n </template>\n </a-form>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, watch } from 'vue';\nimport FieldRender2 from 'liyu-pc-base/components/FormRender/FieldRender2.vue';\n\nexport default defineComponent({\n name: 'FormRender3',\n components: {\n FieldRender2,\n },\n props: {\n model: {\n type: Object,\n required: true,\n },\n outModel: {\n type: Object,\n default: () => {},\n },\n form: {\n type: Object,\n required: true,\n },\n options: {\n type: Object,\n required: true,\n default: () => {},\n },\n validateInfos: {\n type: Object,\n default: () => {},\n },\n },\n emits: ['update_model', 'update_model'],\n setup(props, { emit }) {\n if (props.form.watch) {\n for (let 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 const validate = () => {\n return (props.form as any).validate();\n };\n const onUpdateModel = params => {\n emit('update_model', params);\n };\n const onUpdateName2 = params => {\n emit('update_model', params);\n };\n return {\n validate,\n onUpdateModel,\n onUpdateName2,\n };\n },\n});\n</script>\n<style lang=\"less\" scoped>\n.cards {\n ::v-deep(.ant-card-head) {\n padding: 0 8px;\n min-height: 44px;\n background-color: rgba(0, 0, 0, 0.02);\n }\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","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 + 96 + '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\">个人视图</span>\n </template>\n <template #extra>\n <a-tooltip>\n <template #title>个人视图管理</template>\n <setting-outlined\n style=\"margin-right: 10px\"\n @click.stop=\"editView('personal')\"\n />\n </a-tooltip>\n <a-tooltip>\n <template #title>新建个人视图</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=\"'magenta'\"\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 编辑\n </a>\n </a-menu-item>\n <a-menu-item>\n <a\n href=\"javascript:;\"\n @click=\"handleShare(record)\"\n >\n 分享视图\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 删除\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\">公共视图</span>\n </template>\n <template #extra>\n <a-tooltip>\n <template #title>公共视图管理</template>\n <setting-outlined\n style=\"margin-right: 10px\"\n @click.stop=\"editView('public')\"\n />\n </a-tooltip>\n <a-tooltip>\n <template #title>新建公共视图</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=\"'magenta'\"\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 编辑\n </a>\n </a-menu-item>\n <a-menu-item>\n <a\n href=\"javascript:;\"\n @click=\"handleShare(record)\"\n >\n 分享视图\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 删除\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 {\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 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('获取数据失败, 请刷新页面');\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('获取数据失败, 请刷新页面');\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 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('获取视图失败, 请刷新页面');\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 is_active: true,\n view_menu__name: props.menu_flag,\n uid: hash,\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('视图名称已存在');\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('保存成功');\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('保存成功');\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('保存成功');\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('保存成功');\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: '编辑视图',\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '视图名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\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: '请输入视图名称',\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: '将当前过滤条件、排序、显示属性、视图和分组等设置更新到该视图中',\n value: true,\n },\n ],\n is_default: [\n {\n name: '设为默认视图',\n value: true,\n },\n ],\n is_system: [\n {\n name: '设为系统视图',\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: '新建视图',\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '视图名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n defaultValue: '',\n placeholder: '请输入视图名称',\n },\n {\n type: 'radio',\n name: 'view_type',\n label: '视图可见范围',\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: '请输入视图名称',\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: '个人视图(仅自己可见)', value: 'personal' },\n { name: '公共视图(项目成员均可见)', value: 'public' },\n ],\n is_submit: [\n {\n name: '将当前过滤条件、排序、显示属性、视图和分组等设置更新到该视图中',\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('视图名称已存在');\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' ? '个人视图管理' : '公共视图管理',\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('保存成功');\n viewRefresh();\n });\n } else {\n message.success('保存成功');\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: '复制成功' });\n };\n // 删除视图\n const handleDelet = (record: any) => {\n Modal.confirm({\n title: () =>\n '确认删除此【' + record.name + '】' + (record?.user_id ? '个人视图' : '公共视图') + '?',\n content: '视图删除后不可恢复,视图下工作项不受影响,是否确认删除?',\n icon: () => createVNode(ExclamationCircleOutlined),\n okText: '确定',\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('删除成功');\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, true);\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: () => '确定覆盖视图吗?',\n content: '当前视图原有的数据会被覆盖',\n icon: () => createVNode(ExclamationCircleOutlined),\n okText: '确定',\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: '新建视图',\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '视图名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n defaultValue: '',\n placeholder: '请输入视图名称',\n },\n {\n type: 'radio',\n name: 'view_type',\n label: '视图可见范围',\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: '请输入视图名称',\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: '个人视图(仅自己可见)', value: 'personal' },\n { name: '公共视图(项目成员均可见)', value: 'public' },\n ],\n is_submit: [\n {\n name: '将当前过滤条件、排序、显示属性、视图和分组等设置更新到该视图中',\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('视图名称已存在');\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, true);\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 };\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","k","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","_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","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","deleteBtnDict","group_item","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","_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","params","_component_a_form","row","_component_a_card","_createSlots","_component_a_row","field_item","_component_a_col","_sfc_main$3","name","a","col","field","_component_field_render","_sfc_main$2","field2","create_view_settings","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","PlusOutlined","SettingOutlined","env","useEnv","requiredConditionStore","useRequiredConditionStore","userStore","useUserStore","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","_c","_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","onUnmounted","onActivated","_component_a_collapse","isActive","_component_caret_right_outlined","_component_a_collapse_panel","_normalizeStyle","_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/FormRender3.vue","../../src/components/FormRender/FormRender.vue","../../src/components/FormRender/FormRender2.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 普通\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\">展开</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 隐藏\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>条件组{{ 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 条件组 {{ 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=\"请选择...\"\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 v-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 }\"\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 v-else-if=\"condition.operator === 'is_or_not_blank_or_null'\">\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\n v-else-if=\"condition.type === 'datepicker' || condition.type === 'monthpicker'\"\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 添加条件\n </a-button>\n <a-button\n size=\"small\"\n type=\"primary\"\n @click=\"handleAddGroupCondition\"\n >\n 添加条件组\n </a-button>\n <a-button\n size=\"small\"\n type=\"primary\"\n @click=\"handleSearch\"\n >\n 查询\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 { defineComponent, onMounted, reactive, ref, computed, watch, unref, PropType } 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 },\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 };\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 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 (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 emit('search', { model: condition_model_dict.value });\n };\n const refreshCondition = () => {\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) {\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\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 (condition.operator === 'is_or_not_blank_or_null') {\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 (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 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 scrollToFirstError\n class=\"cards\"\n :validateTrigger=\"false\"\n >\n <template\n v-for=\"(row, index) in form.dynamicFieldList\"\n :key=\"index\"\n >\n <a-card\n :body-style=\"{ padding: '10px 10px 0' }\"\n style=\"margin-bottom: 5px\"\n >\n <template\n v-if=\"row.group_name && row.group_name !== '默认参数组'\"\n #title\n >\n {{ row.group_name }}\n </template>\n <a-row\n :gutter=\"5\"\n type=\"flex\"\n >\n <a-col\n v-for=\"(field_item, i) in row?.children\"\n :key=\"i\"\n :span=\"\n field_item.is_show_field ? (field_item.span !== undefined ? field_item.span : 24) : 0\n \"\n :offset=\"field_item.offset\"\n :push=\"field_item.push\"\n :pull=\"field_item.pull\"\n >\n <field-render-2\n v-model:value=\"model[field_item.name]\"\n v-model:is_show_field=\"field_item['is_show_field']\"\n :field=\"field_item\"\n :formModel=\"model\"\n :outModel=\"outModel\"\n :key=\"field_item.name\"\n :validateInfos=\"validateInfos\"\n :options=\"options[field_item.datasource ? field_item.datasource : field_item.name]\"\n @update_model=\"onUpdateModel\"\n @update_name2=\"onUpdateName2\"\n />\n </a-col>\n </a-row>\n </a-card>\n <!-- <a-row-->\n <!-- v-else-->\n <!-- :gutter=\"5\"-->\n <!-- type=\"flex\"-->\n <!-- >-->\n <!-- <a-col-->\n <!-- v-for=\"(field_item, i) in row?.children\"-->\n <!-- :key=\"i\"-->\n <!-- :span=\"-->\n <!-- field_item.is_show_field ? (field_item.span !== undefined ? field_item.span : 24) : 0-->\n <!-- \"-->\n <!-- :offset=\"field_item.offset\"-->\n <!-- :push=\"field_item.push\"-->\n <!-- :pull=\"field_item.pull\"-->\n <!-- >-->\n <!-- <field-render-2-->\n <!-- v-model:value=\"model[field_item.name]\"-->\n <!-- v-model:is_show_field=\"field_item['is_show_field']\"-->\n <!-- :field=\"field_item\"-->\n <!-- :formModel=\"model\"-->\n <!-- :outModel=\"outModel\"-->\n <!-- :key=\"field_item.name\"-->\n <!-- :validateInfos=\"validateInfos\"-->\n <!-- :options=\"options[field_item.datasource ? field_item.datasource : field_item.name]\"-->\n <!-- @update_model=\"onUpdateModel\"-->\n <!-- @update_name2=\"onUpdateName2\"-->\n <!-- />-->\n <!-- </a-col>-->\n <!-- </a-row>-->\n </template>\n </a-form>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, watch } from 'vue';\nimport FieldRender2 from 'liyu-pc-base/components/FormRender/FieldRender2.vue';\n\nexport default defineComponent({\n name: 'FormRender3',\n components: {\n FieldRender2,\n },\n props: {\n model: {\n type: Object,\n required: true,\n },\n outModel: {\n type: Object,\n default: () => {},\n },\n form: {\n type: Object,\n required: true,\n },\n options: {\n type: Object,\n required: true,\n default: () => {},\n },\n validateInfos: {\n type: Object,\n default: () => {},\n },\n },\n emits: ['update_model', 'update_model'],\n setup(props, { emit }) {\n if (props.form.watch) {\n for (let 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 const validate = () => {\n return (props.form as any).validate();\n };\n const onUpdateModel = params => {\n emit('update_model', params);\n };\n const onUpdateName2 = params => {\n emit('update_model', params);\n };\n return {\n validate,\n onUpdateModel,\n onUpdateName2,\n };\n },\n});\n</script>\n<style lang=\"less\" scoped>\n.cards {\n ::v-deep(.ant-card-head) {\n padding: 0 8px;\n min-height: 44px;\n background-color: rgba(0, 0, 0, 0.02);\n }\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","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 + 96 + '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\">个人视图</span>\n </template>\n <template #extra>\n <a-tooltip>\n <template #title>个人视图管理</template>\n <setting-outlined\n style=\"margin-right: 10px\"\n @click.stop=\"editView('personal')\"\n />\n </a-tooltip>\n <a-tooltip>\n <template #title>新建个人视图</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=\"'magenta'\"\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 编辑\n </a>\n </a-menu-item>\n <a-menu-item>\n <a\n href=\"javascript:;\"\n @click=\"handleShare(record)\"\n >\n 分享视图\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 删除\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\">公共视图</span>\n </template>\n <template #extra>\n <a-tooltip>\n <template #title>公共视图管理</template>\n <setting-outlined\n style=\"margin-right: 10px\"\n @click.stop=\"editView('public')\"\n />\n </a-tooltip>\n <a-tooltip>\n <template #title>新建公共视图</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=\"'magenta'\"\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 编辑\n </a>\n </a-menu-item>\n <a-menu-item>\n <a\n href=\"javascript:;\"\n @click=\"handleShare(record)\"\n >\n 分享视图\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 删除\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 {\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 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('获取数据失败, 请刷新页面');\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('获取数据失败, 请刷新页面');\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 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('获取视图失败, 请刷新页面');\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 is_active: true,\n view_menu__name: props.menu_flag,\n uid: hash,\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('视图名称已存在');\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('保存成功');\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('保存成功');\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('保存成功');\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('保存成功');\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: '编辑视图',\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '视图名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\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: '请输入视图名称',\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: '将当前过滤条件、排序、显示属性、视图和分组等设置更新到该视图中',\n value: true,\n },\n ],\n is_default: [\n {\n name: '设为默认视图',\n value: true,\n },\n ],\n is_system: [\n {\n name: '设为系统视图',\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: '新建视图',\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '视图名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n defaultValue: '',\n placeholder: '请输入视图名称',\n },\n {\n type: 'radio',\n name: 'view_type',\n label: '视图可见范围',\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: '请输入视图名称',\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: '个人视图(仅自己可见)', value: 'personal' },\n { name: '公共视图(项目成员均可见)', value: 'public' },\n ],\n is_submit: [\n {\n name: '将当前过滤条件、排序、显示属性、视图和分组等设置更新到该视图中',\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('视图名称已存在');\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' ? '个人视图管理' : '公共视图管理',\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('保存成功');\n viewRefresh();\n });\n } else {\n message.success('保存成功');\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: '复制成功' });\n };\n // 删除视图\n const handleDelet = (record: any) => {\n Modal.confirm({\n title: () =>\n '确认删除此【' + record.name + '】' + (record?.user_id ? '个人视图' : '公共视图') + '?',\n content: '视图删除后不可恢复,视图下工作项不受影响,是否确认删除?',\n icon: () => createVNode(ExclamationCircleOutlined),\n okText: '确定',\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('删除成功');\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, true);\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: () => '确定覆盖视图吗?',\n content: '当前视图原有的数据会被覆盖',\n icon: () => createVNode(ExclamationCircleOutlined),\n okText: '确定',\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: '新建视图',\n form: {\n settings: {\n labelAlign: 'right',\n layout: 'vertical',\n col: [],\n },\n fields: [\n {\n type: 'input',\n name: 'name',\n label: '视图名称',\n disabled: false,\n allowClear: true,\n inputType: 'text',\n defaultValue: '',\n placeholder: '请输入视图名称',\n },\n {\n type: 'radio',\n name: 'view_type',\n label: '视图可见范围',\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: '请输入视图名称',\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: '个人视图(仅自己可见)', value: 'personal' },\n { name: '公共视图(项目成员均可见)', value: 'public' },\n ],\n is_submit: [\n {\n name: '将当前过滤条件、排序、显示属性、视图和分组等设置更新到该视图中',\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('视图名称已存在');\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, true);\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 };\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","k","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","_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","deleteBtnDict","group_item","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","_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","params","_component_a_form","row","_component_a_card","_createSlots","_component_a_row","field_item","_component_a_col","_sfc_main$3","name","a","col","field","_component_field_render","_sfc_main$2","field2","create_view_settings","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","PlusOutlined","SettingOutlined","env","useEnv","requiredConditionStore","useRequiredConditionStore","userStore","useUserStore","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","_c","_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","onUnmounted","onActivated","_component_a_collapse","isActive","_component_caret_right_outlined","_component_a_collapse_panel","_normalizeStyle","_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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"}
|