giime 0.0.16 → 0.0.18
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/es/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue2.mjs +3 -3
- package/es/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue2.mjs.map +1 -1
- package/es/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue2.mjs +3 -3
- package/es/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue2.mjs.map +1 -1
- package/es/components/src/plugins/copy/method.mjs +29 -1
- package/es/components/src/plugins/copy/method.mjs.map +1 -1
- package/es/giime/version.d.ts +1 -1
- package/es/giime/version.mjs +1 -1
- package/es/giime/version.mjs.map +1 -1
- package/lib/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue2.js +2 -2
- package/lib/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue2.js.map +1 -1
- package/lib/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue2.js +2 -2
- package/lib/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue2.js.map +1 -1
- package/lib/components/src/plugins/copy/method.js +29 -1
- package/lib/components/src/plugins/copy/method.js.map +1 -1
- package/lib/giime/version.d.ts +1 -1
- package/lib/giime/version.js +1 -1
- package/lib/giime/version.js.map +1 -1
- package/package.json +2 -2
package/es/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue2.mjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { createElementVNode, defineComponent, mergeModels, useModel, ref, computed, watch, onMounted, resolveComponent, openBlock, createBlock, withCtx, createVNode, createTextVNode,
|
|
1
|
+
import { createElementVNode, defineComponent, mergeModels, useModel, ref, computed, watch, onMounted, resolveComponent, openBlock, createBlock, withCtx, createVNode, createTextVNode, unref, toDisplayString } from 'vue';
|
|
2
2
|
import '../../../../../hooks/index.mjs';
|
|
3
3
|
import { cloneDeep } from 'lodash-es';
|
|
4
4
|
import { useCloned } from '@vueuse/core';
|
|
5
|
+
import { InfoFilled } from '@element-plus/icons-vue';
|
|
5
6
|
import { operateButtonFormProps } from './operateButtonForm.mjs';
|
|
6
7
|
import { useCustomSettingsStore } from '../../../../../hooks/store/useCustomSettings/index.mjs';
|
|
7
8
|
|
|
@@ -133,7 +134,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
133
134
|
isInited
|
|
134
135
|
});
|
|
135
136
|
return (_ctx, _cache) => {
|
|
136
|
-
const _component_i_ep_info_filled = resolveComponent("i-ep-info-filled");
|
|
137
137
|
const _component_gm_icon = resolveComponent("gm-icon");
|
|
138
138
|
const _component_gm_checkbox = resolveComponent("gm-checkbox");
|
|
139
139
|
const _component_gm_table_column = resolveComponent("gm-table-column");
|
|
@@ -210,7 +210,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
210
210
|
createElementVNode("div", _hoisted_2, [
|
|
211
211
|
createVNode(_component_gm_icon, null, {
|
|
212
212
|
default: withCtx(() => [
|
|
213
|
-
createVNode(
|
|
213
|
+
createVNode(unref(InfoFilled))
|
|
214
214
|
]),
|
|
215
215
|
_: 1
|
|
216
216
|
/* STABLE */
|
package/es/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue2.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperateButtonForm.vue2.mjs","sources":["../../../../../../../../packages/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义按钮\" direction=\"rtl\" size=\"500px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-leading-[40px] gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center\">\r\n <gm-icon><i-ep-info-filled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n <b class=\"gm-ml-3 gm-text-orange-400\">点击按钮可修改当前按钮颜色!</b>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedCustomBtnList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: OperateButtonProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"按钮\">\r\n <template #default=\"{ row, $index }: { row: OperateButtonProps; $index: number }\">\r\n <gm-popover v-model:visible=\"popoverVisibles[$index]\" placement=\"bottom\" :width=\"330\" trigger=\"click\">\r\n <template #reference>\r\n <gm-button :type=\"row.type || 'primary'\" link size=\"small\">\r\n {{ row.label }}\r\n </gm-button>\r\n </template>\r\n <div class=\"p-1\">\r\n <div class=\"text-[14px] gm-mb-2\">点击下列色块可修改按钮颜色</div>\r\n <gm-button type=\"primary\" size=\"small\" @click=\"setBtnType(row, $index, 'primary')\"> 蓝色 </gm-button>\r\n <gm-button type=\"success\" size=\"small\" @click=\"setBtnType(row, $index, 'success')\"> 绿色 </gm-button>\r\n <gm-button type=\"info\" size=\"small\" @click=\"setBtnType(row, $index, 'info')\"> 灰色 </gm-button>\r\n <gm-button type=\"warning\" size=\"small\" @click=\"setBtnType(row, $index, 'warning')\"> 橙色 </gm-button>\r\n <gm-button type=\"danger\" size=\"small\" @click=\"setBtnType(row, $index, 'danger')\"> 红色 </gm-button>\r\n </div>\r\n </gm-popover>\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onSubmit\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { type CheckboxValueType } from 'element-plus';\r\nimport { operateButtonFormProps } from './operateButtonForm';\r\nimport type { OperateButtonProps } from '../operateButton';\r\n\r\ndefineOptions({\r\n name: 'GmOperateButtonForm',\r\n});\r\n/**\r\n * 抽屉显示\r\n */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n/**\r\n * 自定义按钮 props列表\r\n */\r\nconst customBtnPropsList = defineModel<OperateButtonProps[]>('customBtnPropsList', {\r\n required: true,\r\n});\r\n\r\nconst props = defineProps(operateButtonFormProps);\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedCustomBtnList } = useCloned(customBtnPropsList);\r\n\r\nconst defaultPropsList = computed(() => cloneDeep(props.customDefaultPropsList));\r\n// 按钮弹出框显示隐藏\r\nconst popoverVisibles = ref<boolean[]>(defaultPropsList.value.map(() => false));\r\n// 根据props列表 初始化popo显示隐藏\r\nwatch(defaultPropsList, () => {\r\n popoverVisibles.value = defaultPropsList.value.map(() => false);\r\n});\r\n\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedCustomBtnList.value = cloneDeep(customBtnPropsList.value);\r\n }\r\n});\r\n\r\nconst customSettingsValue = computed<OperateButtonProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\nconst updateOperate = () => {\r\n customBtnPropsList.value = clonedCustomBtnList.value;\r\n};\r\n\r\nconst initOperate = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedCustomBtnList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateOperate();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedCustomBtnList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedCustomBtnList.value.every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedCustomBtnList.value.some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedCustomBtnList.value.forEach(v => {\r\n v.isShow = Boolean(val);\r\n });\r\n};\r\n\r\n// 设置按钮颜色\r\nconst setBtnType = (item: OperateButtonProps, index: number, type: OperateButtonProps['type']) => {\r\n item.type = type;\r\n popoverVisibles.value[index] = false;\r\n};\r\n\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst onSubmit = async () => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedCustomBtnList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n isShowDrawer.value = false;\r\n updateOperate();\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n\r\n// 重置\r\nconst onReset = () => {\r\n clonedCustomBtnList.value = cloneDeep(props.customDefaultPropsList);\r\n};\r\n\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n initOperate();\r\n});\r\ndefineExpose({\r\n isInited,\r\n});\r\n</script>\r\n"],"names":["_useModel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OperateButtonForm.vue2.mjs","sources":["../../../../../../../../packages/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义按钮\" direction=\"rtl\" size=\"500px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-leading-[40px] gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center\">\r\n <gm-icon><InfoFilled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n <b class=\"gm-ml-3 gm-text-orange-400\">点击按钮可修改当前按钮颜色!</b>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedCustomBtnList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: OperateButtonProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"按钮\">\r\n <template #default=\"{ row, $index }: { row: OperateButtonProps; $index: number }\">\r\n <gm-popover v-model:visible=\"popoverVisibles[$index]\" placement=\"bottom\" :width=\"330\" trigger=\"click\">\r\n <template #reference>\r\n <gm-button :type=\"row.type || 'primary'\" link size=\"small\">\r\n {{ row.label }}\r\n </gm-button>\r\n </template>\r\n <div class=\"p-1\">\r\n <div class=\"text-[14px] gm-mb-2\">点击下列色块可修改按钮颜色</div>\r\n <gm-button type=\"primary\" size=\"small\" @click=\"setBtnType(row, $index, 'primary')\"> 蓝色 </gm-button>\r\n <gm-button type=\"success\" size=\"small\" @click=\"setBtnType(row, $index, 'success')\"> 绿色 </gm-button>\r\n <gm-button type=\"info\" size=\"small\" @click=\"setBtnType(row, $index, 'info')\"> 灰色 </gm-button>\r\n <gm-button type=\"warning\" size=\"small\" @click=\"setBtnType(row, $index, 'warning')\"> 橙色 </gm-button>\r\n <gm-button type=\"danger\" size=\"small\" @click=\"setBtnType(row, $index, 'danger')\"> 红色 </gm-button>\r\n </div>\r\n </gm-popover>\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onSubmit\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { type CheckboxValueType } from 'element-plus';\r\nimport { InfoFilled } from '@element-plus/icons-vue';\r\nimport { operateButtonFormProps } from './operateButtonForm';\r\nimport type { OperateButtonProps } from '../operateButton';\r\n\r\ndefineOptions({\r\n name: 'GmOperateButtonForm',\r\n});\r\n/**\r\n * 抽屉显示\r\n */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n/**\r\n * 自定义按钮 props列表\r\n */\r\nconst customBtnPropsList = defineModel<OperateButtonProps[]>('customBtnPropsList', {\r\n required: true,\r\n});\r\n\r\nconst props = defineProps(operateButtonFormProps);\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedCustomBtnList } = useCloned(customBtnPropsList);\r\n\r\nconst defaultPropsList = computed(() => cloneDeep(props.customDefaultPropsList));\r\n// 按钮弹出框显示隐藏\r\nconst popoverVisibles = ref<boolean[]>(defaultPropsList.value.map(() => false));\r\n// 根据props列表 初始化popo显示隐藏\r\nwatch(defaultPropsList, () => {\r\n popoverVisibles.value = defaultPropsList.value.map(() => false);\r\n});\r\n\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedCustomBtnList.value = cloneDeep(customBtnPropsList.value);\r\n }\r\n});\r\n\r\nconst customSettingsValue = computed<OperateButtonProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\nconst updateOperate = () => {\r\n customBtnPropsList.value = clonedCustomBtnList.value;\r\n};\r\n\r\nconst initOperate = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedCustomBtnList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateOperate();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedCustomBtnList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedCustomBtnList.value.every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedCustomBtnList.value.some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedCustomBtnList.value.forEach(v => {\r\n v.isShow = Boolean(val);\r\n });\r\n};\r\n\r\n// 设置按钮颜色\r\nconst setBtnType = (item: OperateButtonProps, index: number, type: OperateButtonProps['type']) => {\r\n item.type = type;\r\n popoverVisibles.value[index] = false;\r\n};\r\n\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst onSubmit = async () => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedCustomBtnList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n isShowDrawer.value = false;\r\n updateOperate();\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n\r\n// 重置\r\nconst onReset = () => {\r\n clonedCustomBtnList.value = cloneDeep(props.customDefaultPropsList);\r\n};\r\n\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n initOperate();\r\n});\r\ndefineExpose({\r\n isInited,\r\n});\r\n</script>\r\n"],"names":["_useModel"],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { defineComponent, mergeModels, useModel, ref, computed, watch, onMounted, resolveComponent, openBlock, createBlock, withCtx, createElementVNode, createVNode, createTextVNode,
|
|
1
|
+
import { defineComponent, mergeModels, useModel, ref, computed, watch, onMounted, resolveComponent, openBlock, createBlock, withCtx, createElementVNode, createVNode, createTextVNode, unref, toDisplayString } from 'vue';
|
|
2
2
|
import { useCloned } from '@vueuse/core';
|
|
3
3
|
import '../../../../../hooks/index.mjs';
|
|
4
4
|
import { cloneDeep } from 'lodash-es';
|
|
5
|
+
import { InfoFilled } from '@element-plus/icons-vue';
|
|
5
6
|
import { tableHeaderFormProps } from './tableHeaderForm.mjs';
|
|
6
7
|
import { useCustomSettingsStore } from '../../../../../hooks/store/useCustomSettings/index.mjs';
|
|
7
8
|
|
|
@@ -112,7 +113,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
112
113
|
submitSettings
|
|
113
114
|
});
|
|
114
115
|
return (_ctx, _cache) => {
|
|
115
|
-
const _component_i_ep_info_filled = resolveComponent("i-ep-info-filled");
|
|
116
116
|
const _component_gm_icon = resolveComponent("gm-icon");
|
|
117
117
|
const _component_gm_checkbox = resolveComponent("gm-checkbox");
|
|
118
118
|
const _component_gm_table_column = resolveComponent("gm-table-column");
|
|
@@ -189,7 +189,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
189
189
|
createElementVNode("div", _hoisted_2, [
|
|
190
190
|
createVNode(_component_gm_icon, null, {
|
|
191
191
|
default: withCtx(() => [
|
|
192
|
-
createVNode(
|
|
192
|
+
createVNode(unref(InfoFilled))
|
|
193
193
|
]),
|
|
194
194
|
_: 1
|
|
195
195
|
/* STABLE */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHeaderForm.vue2.mjs","sources":["../../../../../../../../packages/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义表头\" direction=\"rtl\" size=\"600px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center gm-py-3\">\r\n <gm-icon><i-ep-info-filled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedColPropsList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" :disabled=\"row.type === 'edit'\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列名\" prop=\"label\">\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n {{ row.type === 'edit' ? '操作' : row.label }}\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列宽\">\r\n <template #default=\"{ row }: { row: TableColumnProProps; $index: number }\">\r\n <gm-input v-model=\"row.width\" class=\"gm-w-[120px]\" placeholder=\"设置宽度\" clearable />\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"submitSettings\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { tableHeaderFormProps } from './tableHeaderForm';\r\nimport type { CheckboxValueType } from 'element-plus';\r\nimport type { TableColumnProProps } from '../tableColumnPro/tableColumnPro';\r\n\r\ndefineOptions({\r\n name: 'GmTableHeaderForm',\r\n});\r\nconst props = defineProps(tableHeaderFormProps);\r\n\r\n/**抽屉显示 */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n\r\n/**自定义按钮 props列表 */\r\nconst colPropsList = defineModel<TableColumnProProps[]>('colPropsList', {\r\n required: true,\r\n});\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedColPropsList } = useCloned(colPropsList);\r\nconst defaultPropsList = computed(() => cloneDeep(props.colDefaultPropsList));\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedColPropsList.value = cloneDeep(colPropsList.value);\r\n }\r\n});\r\nconst customSettingsValue = computed<TableColumnProProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\n// 更新选中数据\r\nconst updateColumns = () => {\r\n colPropsList.value = clonedColPropsList.value;\r\n};\r\n// 初始化数据\r\nconst initColumns = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedColPropsList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.width = findItem.width;\r\n // it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateColumns();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedColPropsList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedColPropsList.value.filter(it => it.type !== 'edit').every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedColPropsList.value.filter(it => it.type !== 'edit').some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedColPropsList.value.forEach(v => {\r\n if (v.type !== 'edit') {\r\n v.isShow = Boolean(val);\r\n }\r\n });\r\n};\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst submitSettings = async () => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedColPropsList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n // isShowDrawer.value = false;\r\n updateColumns();\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n// 重置\r\nconst onReset = () => {\r\n clonedColPropsList.value = cloneDeep(props.colDefaultPropsList);\r\n};\r\n\r\nonMounted(() => {\r\n initColumns();\r\n});\r\ndefineExpose({\r\n isInited,\r\n submitSettings,\r\n});\r\n</script>\r\n"],"names":["_useModel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TableHeaderForm.vue2.mjs","sources":["../../../../../../../../packages/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义表头\" direction=\"rtl\" size=\"600px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center gm-py-3\">\r\n <gm-icon><InfoFilled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedColPropsList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" :disabled=\"row.type === 'edit'\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列名\" prop=\"label\">\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n {{ row.type === 'edit' ? '操作' : row.label }}\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列宽\">\r\n <template #default=\"{ row }: { row: TableColumnProProps; $index: number }\">\r\n <gm-input v-model=\"row.width\" class=\"gm-w-[120px]\" placeholder=\"设置宽度\" clearable />\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"submitSettings\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { InfoFilled } from '@element-plus/icons-vue';\r\nimport { tableHeaderFormProps } from './tableHeaderForm';\r\nimport type { CheckboxValueType } from 'element-plus';\r\nimport type { TableColumnProProps } from '../tableColumnPro/tableColumnPro';\r\n\r\ndefineOptions({\r\n name: 'GmTableHeaderForm',\r\n});\r\nconst props = defineProps(tableHeaderFormProps);\r\n\r\n/**抽屉显示 */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n\r\n/**自定义按钮 props列表 */\r\nconst colPropsList = defineModel<TableColumnProProps[]>('colPropsList', {\r\n required: true,\r\n});\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedColPropsList } = useCloned(colPropsList);\r\nconst defaultPropsList = computed(() => cloneDeep(props.colDefaultPropsList));\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedColPropsList.value = cloneDeep(colPropsList.value);\r\n }\r\n});\r\nconst customSettingsValue = computed<TableColumnProProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\n// 更新选中数据\r\nconst updateColumns = () => {\r\n colPropsList.value = clonedColPropsList.value;\r\n};\r\n// 初始化数据\r\nconst initColumns = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedColPropsList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.width = findItem.width;\r\n // it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateColumns();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedColPropsList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedColPropsList.value.filter(it => it.type !== 'edit').every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedColPropsList.value.filter(it => it.type !== 'edit').some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedColPropsList.value.forEach(v => {\r\n if (v.type !== 'edit') {\r\n v.isShow = Boolean(val);\r\n }\r\n });\r\n};\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst submitSettings = async () => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedColPropsList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n // isShowDrawer.value = false;\r\n updateColumns();\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n// 重置\r\nconst onReset = () => {\r\n clonedColPropsList.value = cloneDeep(props.colDefaultPropsList);\r\n};\r\n\r\nonMounted(() => {\r\n initColumns();\r\n});\r\ndefineExpose({\r\n isInited,\r\n submitSettings,\r\n});\r\n</script>\r\n"],"names":["_useModel"],"mappings":"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"}
|
|
@@ -1,5 +1,33 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Clipboard from 'clipboard';
|
|
2
2
|
|
|
3
|
+
const useClipboard = (opts) => {
|
|
4
|
+
const appendToBody = opts?.appendToBody === void 0 ? true : opts.appendToBody;
|
|
5
|
+
return {
|
|
6
|
+
toClipboard(text, container) {
|
|
7
|
+
return new Promise((resolve, reject) => {
|
|
8
|
+
const fakeEl = document.createElement("button");
|
|
9
|
+
const clipboard = new Clipboard(fakeEl, {
|
|
10
|
+
text: () => text,
|
|
11
|
+
action: () => "copy",
|
|
12
|
+
container: container !== void 0 ? container : document.body
|
|
13
|
+
});
|
|
14
|
+
clipboard.on("success", (e) => {
|
|
15
|
+
clipboard.destroy();
|
|
16
|
+
resolve(e);
|
|
17
|
+
});
|
|
18
|
+
clipboard.on("error", (e) => {
|
|
19
|
+
clipboard.destroy();
|
|
20
|
+
reject(e);
|
|
21
|
+
});
|
|
22
|
+
if (appendToBody)
|
|
23
|
+
document.body.appendChild(fakeEl);
|
|
24
|
+
fakeEl.click();
|
|
25
|
+
if (appendToBody)
|
|
26
|
+
document.body.removeChild(fakeEl);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
};
|
|
3
31
|
const handleCopy = async (str) => {
|
|
4
32
|
const { toClipboard } = useClipboard();
|
|
5
33
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"method.mjs","sources":["../../../../../../../packages/components/src/plugins/copy/method.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"method.mjs","sources":["../../../../../../../packages/components/src/plugins/copy/method.ts"],"sourcesContent":["import Clipboard from 'clipboard';\r\n\r\ninterface UseClipboardOptions {\r\n /** Fixes IE by appending element to body */\r\n appendToBody: boolean;\r\n}\r\n\r\nconst useClipboard = (opts?: UseClipboardOptions) => {\r\n // default appendToBody true\r\n const appendToBody = opts?.appendToBody === undefined ? true : opts.appendToBody;\r\n return {\r\n toClipboard(text: string, container?: HTMLElement) {\r\n return new Promise((resolve, reject) => {\r\n // make fake element\r\n const fakeEl = document.createElement('button');\r\n // setup a new Clipboard.js\r\n const clipboard = new Clipboard(fakeEl, {\r\n text: () => text,\r\n action: () => 'copy',\r\n container: container !== undefined ? container : document.body,\r\n });\r\n clipboard.on('success', e => {\r\n clipboard.destroy();\r\n resolve(e);\r\n });\r\n clipboard.on('error', e => {\r\n clipboard.destroy();\r\n reject(e);\r\n });\r\n // appendToBody fixes IE\r\n if (appendToBody) document.body.appendChild(fakeEl);\r\n // simulate click\r\n fakeEl.click();\r\n // remove from body if appended\r\n if (appendToBody) document.body.removeChild(fakeEl);\r\n });\r\n },\r\n };\r\n};\r\n\r\nexport const handleCopy = async (str: string) => {\r\n const { toClipboard } = useClipboard();\r\n // const { copy } = useClipboard({ legacy: true });\r\n try {\r\n await toClipboard(str);\r\n GmMessage.success('复制成功');\r\n } catch (error) {\r\n console.error(error);\r\n GmMessage.error('复制失败');\r\n }\r\n};\r\n"],"names":[],"mappings":";;AAOA,MAAM,YAAA,GAAe,CAAC,IAA+B,KAAA;AAEnD,EAAA,MAAM,YAAe,GAAA,IAAA,EAAM,YAAiB,KAAA,KAAA,CAAA,GAAY,OAAO,IAAK,CAAA,YAAA,CAAA;AACpE,EAAO,OAAA;AAAA,IACL,WAAA,CAAY,MAAc,SAAyB,EAAA;AACjD,MAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAW,KAAA;AAEtC,QAAM,MAAA,MAAA,GAAS,QAAS,CAAA,aAAA,CAAc,QAAQ,CAAA,CAAA;AAE9C,QAAM,MAAA,SAAA,GAAY,IAAI,SAAA,CAAU,MAAQ,EAAA;AAAA,UACtC,MAAM,MAAM,IAAA;AAAA,UACZ,QAAQ,MAAM,MAAA;AAAA,UACd,SAAW,EAAA,SAAA,KAAc,KAAY,CAAA,GAAA,SAAA,GAAY,QAAS,CAAA,IAAA;AAAA,SAC3D,CAAA,CAAA;AACD,QAAU,SAAA,CAAA,EAAA,CAAG,WAAW,CAAK,CAAA,KAAA;AAC3B,UAAA,SAAA,CAAU,OAAQ,EAAA,CAAA;AAClB,UAAA,OAAA,CAAQ,CAAC,CAAA,CAAA;AAAA,SACV,CAAA,CAAA;AACD,QAAU,SAAA,CAAA,EAAA,CAAG,SAAS,CAAK,CAAA,KAAA;AACzB,UAAA,SAAA,CAAU,OAAQ,EAAA,CAAA;AAClB,UAAA,MAAA,CAAO,CAAC,CAAA,CAAA;AAAA,SACT,CAAA,CAAA;AAED,QAAI,IAAA,YAAA;AAAc,UAAS,QAAA,CAAA,IAAA,CAAK,YAAY,MAAM,CAAA,CAAA;AAElD,QAAA,MAAA,CAAO,KAAM,EAAA,CAAA;AAEb,QAAI,IAAA,YAAA;AAAc,UAAS,QAAA,CAAA,IAAA,CAAK,YAAY,MAAM,CAAA,CAAA;AAAA,OACnD,CAAA,CAAA;AAAA,KACH;AAAA,GACF,CAAA;AACF,CAAA,CAAA;AAEa,MAAA,UAAA,GAAa,OAAO,GAAgB,KAAA;AAC/C,EAAM,MAAA,EAAE,WAAY,EAAA,GAAI,YAAa,EAAA,CAAA;AAErC,EAAI,IAAA;AACF,IAAA,MAAM,YAAY,GAAG,CAAA,CAAA;AACrB,IAAA,SAAA,CAAU,QAAQ,0BAAM,CAAA,CAAA;AAAA,WACjB,KAAO,EAAA;AACd,IAAA,OAAA,CAAQ,MAAM,KAAK,CAAA,CAAA;AACnB,IAAA,SAAA,CAAU,MAAM,0BAAM,CAAA,CAAA;AAAA,GACxB;AACF;;;;"}
|
package/es/giime/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "0.0.
|
|
1
|
+
export declare const version = "0.0.18";
|
package/es/giime/version.mjs
CHANGED
package/es/giime/version.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.0.
|
|
1
|
+
{"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.0.17';\n"],"names":[],"mappings":"AAAO,MAAM,OAAU,GAAA;;;;"}
|
package/lib/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue2.js
CHANGED
|
@@ -6,6 +6,7 @@ var vue = require('vue');
|
|
|
6
6
|
require('../../../../../hooks/index.js');
|
|
7
7
|
var lodashEs = require('lodash-es');
|
|
8
8
|
var core = require('@vueuse/core');
|
|
9
|
+
var iconsVue = require('@element-plus/icons-vue');
|
|
9
10
|
var operateButtonForm = require('./operateButtonForm.js');
|
|
10
11
|
var index = require('../../../../../hooks/store/useCustomSettings/index.js');
|
|
11
12
|
|
|
@@ -137,7 +138,6 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
137
138
|
isInited
|
|
138
139
|
});
|
|
139
140
|
return (_ctx, _cache) => {
|
|
140
|
-
const _component_i_ep_info_filled = vue.resolveComponent("i-ep-info-filled");
|
|
141
141
|
const _component_gm_icon = vue.resolveComponent("gm-icon");
|
|
142
142
|
const _component_gm_checkbox = vue.resolveComponent("gm-checkbox");
|
|
143
143
|
const _component_gm_table_column = vue.resolveComponent("gm-table-column");
|
|
@@ -214,7 +214,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
214
214
|
vue.createElementVNode("div", _hoisted_2, [
|
|
215
215
|
vue.createVNode(_component_gm_icon, null, {
|
|
216
216
|
default: vue.withCtx(() => [
|
|
217
|
-
vue.createVNode(
|
|
217
|
+
vue.createVNode(vue.unref(iconsVue.InfoFilled))
|
|
218
218
|
]),
|
|
219
219
|
_: 1
|
|
220
220
|
/* STABLE */
|
package/lib/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperateButtonForm.vue2.js","sources":["../../../../../../../../packages/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义按钮\" direction=\"rtl\" size=\"500px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-leading-[40px] gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center\">\r\n <gm-icon><i-ep-info-filled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n <b class=\"gm-ml-3 gm-text-orange-400\">点击按钮可修改当前按钮颜色!</b>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedCustomBtnList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: OperateButtonProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"按钮\">\r\n <template #default=\"{ row, $index }: { row: OperateButtonProps; $index: number }\">\r\n <gm-popover v-model:visible=\"popoverVisibles[$index]\" placement=\"bottom\" :width=\"330\" trigger=\"click\">\r\n <template #reference>\r\n <gm-button :type=\"row.type || 'primary'\" link size=\"small\">\r\n {{ row.label }}\r\n </gm-button>\r\n </template>\r\n <div class=\"p-1\">\r\n <div class=\"text-[14px] gm-mb-2\">点击下列色块可修改按钮颜色</div>\r\n <gm-button type=\"primary\" size=\"small\" @click=\"setBtnType(row, $index, 'primary')\"> 蓝色 </gm-button>\r\n <gm-button type=\"success\" size=\"small\" @click=\"setBtnType(row, $index, 'success')\"> 绿色 </gm-button>\r\n <gm-button type=\"info\" size=\"small\" @click=\"setBtnType(row, $index, 'info')\"> 灰色 </gm-button>\r\n <gm-button type=\"warning\" size=\"small\" @click=\"setBtnType(row, $index, 'warning')\"> 橙色 </gm-button>\r\n <gm-button type=\"danger\" size=\"small\" @click=\"setBtnType(row, $index, 'danger')\"> 红色 </gm-button>\r\n </div>\r\n </gm-popover>\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onSubmit\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { type CheckboxValueType } from 'element-plus';\r\nimport { operateButtonFormProps } from './operateButtonForm';\r\nimport type { OperateButtonProps } from '../operateButton';\r\n\r\ndefineOptions({\r\n name: 'GmOperateButtonForm',\r\n});\r\n/**\r\n * 抽屉显示\r\n */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n/**\r\n * 自定义按钮 props列表\r\n */\r\nconst customBtnPropsList = defineModel<OperateButtonProps[]>('customBtnPropsList', {\r\n required: true,\r\n});\r\n\r\nconst props = defineProps(operateButtonFormProps);\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedCustomBtnList } = useCloned(customBtnPropsList);\r\n\r\nconst defaultPropsList = computed(() => cloneDeep(props.customDefaultPropsList));\r\n// 按钮弹出框显示隐藏\r\nconst popoverVisibles = ref<boolean[]>(defaultPropsList.value.map(() => false));\r\n// 根据props列表 初始化popo显示隐藏\r\nwatch(defaultPropsList, () => {\r\n popoverVisibles.value = defaultPropsList.value.map(() => false);\r\n});\r\n\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedCustomBtnList.value = cloneDeep(customBtnPropsList.value);\r\n }\r\n});\r\n\r\nconst customSettingsValue = computed<OperateButtonProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\nconst updateOperate = () => {\r\n customBtnPropsList.value = clonedCustomBtnList.value;\r\n};\r\n\r\nconst initOperate = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedCustomBtnList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateOperate();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedCustomBtnList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedCustomBtnList.value.every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedCustomBtnList.value.some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedCustomBtnList.value.forEach(v => {\r\n v.isShow = Boolean(val);\r\n });\r\n};\r\n\r\n// 设置按钮颜色\r\nconst setBtnType = (item: OperateButtonProps, index: number, type: OperateButtonProps['type']) => {\r\n item.type = type;\r\n popoverVisibles.value[index] = false;\r\n};\r\n\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst onSubmit = async () => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedCustomBtnList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n isShowDrawer.value = false;\r\n updateOperate();\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n\r\n// 重置\r\nconst onReset = () => {\r\n clonedCustomBtnList.value = cloneDeep(props.customDefaultPropsList);\r\n};\r\n\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n initOperate();\r\n});\r\ndefineExpose({\r\n isInited,\r\n});\r\n</script>\r\n"],"names":["_useModel","useCustomSettingsStore","ref","useCloned","computed","cloneDeep","watch","onMounted"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OperateButtonForm.vue2.js","sources":["../../../../../../../../packages/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义按钮\" direction=\"rtl\" size=\"500px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-leading-[40px] gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center\">\r\n <gm-icon><InfoFilled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n <b class=\"gm-ml-3 gm-text-orange-400\">点击按钮可修改当前按钮颜色!</b>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedCustomBtnList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: OperateButtonProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"按钮\">\r\n <template #default=\"{ row, $index }: { row: OperateButtonProps; $index: number }\">\r\n <gm-popover v-model:visible=\"popoverVisibles[$index]\" placement=\"bottom\" :width=\"330\" trigger=\"click\">\r\n <template #reference>\r\n <gm-button :type=\"row.type || 'primary'\" link size=\"small\">\r\n {{ row.label }}\r\n </gm-button>\r\n </template>\r\n <div class=\"p-1\">\r\n <div class=\"text-[14px] gm-mb-2\">点击下列色块可修改按钮颜色</div>\r\n <gm-button type=\"primary\" size=\"small\" @click=\"setBtnType(row, $index, 'primary')\"> 蓝色 </gm-button>\r\n <gm-button type=\"success\" size=\"small\" @click=\"setBtnType(row, $index, 'success')\"> 绿色 </gm-button>\r\n <gm-button type=\"info\" size=\"small\" @click=\"setBtnType(row, $index, 'info')\"> 灰色 </gm-button>\r\n <gm-button type=\"warning\" size=\"small\" @click=\"setBtnType(row, $index, 'warning')\"> 橙色 </gm-button>\r\n <gm-button type=\"danger\" size=\"small\" @click=\"setBtnType(row, $index, 'danger')\"> 红色 </gm-button>\r\n </div>\r\n </gm-popover>\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onSubmit\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { type CheckboxValueType } from 'element-plus';\r\nimport { InfoFilled } from '@element-plus/icons-vue';\r\nimport { operateButtonFormProps } from './operateButtonForm';\r\nimport type { OperateButtonProps } from '../operateButton';\r\n\r\ndefineOptions({\r\n name: 'GmOperateButtonForm',\r\n});\r\n/**\r\n * 抽屉显示\r\n */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n/**\r\n * 自定义按钮 props列表\r\n */\r\nconst customBtnPropsList = defineModel<OperateButtonProps[]>('customBtnPropsList', {\r\n required: true,\r\n});\r\n\r\nconst props = defineProps(operateButtonFormProps);\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedCustomBtnList } = useCloned(customBtnPropsList);\r\n\r\nconst defaultPropsList = computed(() => cloneDeep(props.customDefaultPropsList));\r\n// 按钮弹出框显示隐藏\r\nconst popoverVisibles = ref<boolean[]>(defaultPropsList.value.map(() => false));\r\n// 根据props列表 初始化popo显示隐藏\r\nwatch(defaultPropsList, () => {\r\n popoverVisibles.value = defaultPropsList.value.map(() => false);\r\n});\r\n\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedCustomBtnList.value = cloneDeep(customBtnPropsList.value);\r\n }\r\n});\r\n\r\nconst customSettingsValue = computed<OperateButtonProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\nconst updateOperate = () => {\r\n customBtnPropsList.value = clonedCustomBtnList.value;\r\n};\r\n\r\nconst initOperate = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedCustomBtnList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateOperate();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedCustomBtnList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedCustomBtnList.value.every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedCustomBtnList.value.some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedCustomBtnList.value.forEach(v => {\r\n v.isShow = Boolean(val);\r\n });\r\n};\r\n\r\n// 设置按钮颜色\r\nconst setBtnType = (item: OperateButtonProps, index: number, type: OperateButtonProps['type']) => {\r\n item.type = type;\r\n popoverVisibles.value[index] = false;\r\n};\r\n\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst onSubmit = async () => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedCustomBtnList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n isShowDrawer.value = false;\r\n updateOperate();\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n\r\n// 重置\r\nconst onReset = () => {\r\n clonedCustomBtnList.value = cloneDeep(props.customDefaultPropsList);\r\n};\r\n\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n\r\nonMounted(() => {\r\n initOperate();\r\n});\r\ndefineExpose({\r\n isInited,\r\n});\r\n</script>\r\n"],"names":["_useModel","useCustomSettingsStore","ref","useCloned","computed","cloneDeep","watch","onMounted"],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ var vue = require('vue');
|
|
|
6
6
|
var core = require('@vueuse/core');
|
|
7
7
|
require('../../../../../hooks/index.js');
|
|
8
8
|
var lodashEs = require('lodash-es');
|
|
9
|
+
var iconsVue = require('@element-plus/icons-vue');
|
|
9
10
|
var tableHeaderForm = require('./tableHeaderForm.js');
|
|
10
11
|
var index = require('../../../../../hooks/store/useCustomSettings/index.js');
|
|
11
12
|
|
|
@@ -116,7 +117,6 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
116
117
|
submitSettings
|
|
117
118
|
});
|
|
118
119
|
return (_ctx, _cache) => {
|
|
119
|
-
const _component_i_ep_info_filled = vue.resolveComponent("i-ep-info-filled");
|
|
120
120
|
const _component_gm_icon = vue.resolveComponent("gm-icon");
|
|
121
121
|
const _component_gm_checkbox = vue.resolveComponent("gm-checkbox");
|
|
122
122
|
const _component_gm_table_column = vue.resolveComponent("gm-table-column");
|
|
@@ -193,7 +193,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
193
193
|
vue.createElementVNode("div", _hoisted_2, [
|
|
194
194
|
vue.createVNode(_component_gm_icon, null, {
|
|
195
195
|
default: vue.withCtx(() => [
|
|
196
|
-
vue.createVNode(
|
|
196
|
+
vue.createVNode(vue.unref(iconsVue.InfoFilled))
|
|
197
197
|
]),
|
|
198
198
|
_: 1
|
|
199
199
|
/* STABLE */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHeaderForm.vue2.js","sources":["../../../../../../../../packages/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义表头\" direction=\"rtl\" size=\"600px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center gm-py-3\">\r\n <gm-icon><i-ep-info-filled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedColPropsList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" :disabled=\"row.type === 'edit'\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列名\" prop=\"label\">\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n {{ row.type === 'edit' ? '操作' : row.label }}\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列宽\">\r\n <template #default=\"{ row }: { row: TableColumnProProps; $index: number }\">\r\n <gm-input v-model=\"row.width\" class=\"gm-w-[120px]\" placeholder=\"设置宽度\" clearable />\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"submitSettings\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { tableHeaderFormProps } from './tableHeaderForm';\r\nimport type { CheckboxValueType } from 'element-plus';\r\nimport type { TableColumnProProps } from '../tableColumnPro/tableColumnPro';\r\n\r\ndefineOptions({\r\n name: 'GmTableHeaderForm',\r\n});\r\nconst props = defineProps(tableHeaderFormProps);\r\n\r\n/**抽屉显示 */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n\r\n/**自定义按钮 props列表 */\r\nconst colPropsList = defineModel<TableColumnProProps[]>('colPropsList', {\r\n required: true,\r\n});\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedColPropsList } = useCloned(colPropsList);\r\nconst defaultPropsList = computed(() => cloneDeep(props.colDefaultPropsList));\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedColPropsList.value = cloneDeep(colPropsList.value);\r\n }\r\n});\r\nconst customSettingsValue = computed<TableColumnProProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\n// 更新选中数据\r\nconst updateColumns = () => {\r\n colPropsList.value = clonedColPropsList.value;\r\n};\r\n// 初始化数据\r\nconst initColumns = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedColPropsList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.width = findItem.width;\r\n // it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateColumns();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedColPropsList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedColPropsList.value.filter(it => it.type !== 'edit').every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedColPropsList.value.filter(it => it.type !== 'edit').some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedColPropsList.value.forEach(v => {\r\n if (v.type !== 'edit') {\r\n v.isShow = Boolean(val);\r\n }\r\n });\r\n};\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst submitSettings = async () => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedColPropsList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n // isShowDrawer.value = false;\r\n updateColumns();\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n// 重置\r\nconst onReset = () => {\r\n clonedColPropsList.value = cloneDeep(props.colDefaultPropsList);\r\n};\r\n\r\nonMounted(() => {\r\n initColumns();\r\n});\r\ndefineExpose({\r\n isInited,\r\n submitSettings,\r\n});\r\n</script>\r\n"],"names":["_useModel","useCustomSettingsStore","ref","useCloned","computed","cloneDeep","watch","onMounted"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TableHeaderForm.vue2.js","sources":["../../../../../../../../packages/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义表头\" direction=\"rtl\" size=\"600px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center gm-py-3\">\r\n <gm-icon><InfoFilled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedColPropsList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" :disabled=\"row.type === 'edit'\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列名\" prop=\"label\">\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n {{ row.type === 'edit' ? '操作' : row.label }}\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列宽\">\r\n <template #default=\"{ row }: { row: TableColumnProProps; $index: number }\">\r\n <gm-input v-model=\"row.width\" class=\"gm-w-[120px]\" placeholder=\"设置宽度\" clearable />\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"submitSettings\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { InfoFilled } from '@element-plus/icons-vue';\r\nimport { tableHeaderFormProps } from './tableHeaderForm';\r\nimport type { CheckboxValueType } from 'element-plus';\r\nimport type { TableColumnProProps } from '../tableColumnPro/tableColumnPro';\r\n\r\ndefineOptions({\r\n name: 'GmTableHeaderForm',\r\n});\r\nconst props = defineProps(tableHeaderFormProps);\r\n\r\n/**抽屉显示 */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n\r\n/**自定义按钮 props列表 */\r\nconst colPropsList = defineModel<TableColumnProProps[]>('colPropsList', {\r\n required: true,\r\n});\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedColPropsList } = useCloned(colPropsList);\r\nconst defaultPropsList = computed(() => cloneDeep(props.colDefaultPropsList));\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedColPropsList.value = cloneDeep(colPropsList.value);\r\n }\r\n});\r\nconst customSettingsValue = computed<TableColumnProProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\n// 更新选中数据\r\nconst updateColumns = () => {\r\n colPropsList.value = clonedColPropsList.value;\r\n};\r\n// 初始化数据\r\nconst initColumns = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedColPropsList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.width = findItem.width;\r\n // it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateColumns();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedColPropsList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedColPropsList.value.filter(it => it.type !== 'edit').every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedColPropsList.value.filter(it => it.type !== 'edit').some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedColPropsList.value.forEach(v => {\r\n if (v.type !== 'edit') {\r\n v.isShow = Boolean(val);\r\n }\r\n });\r\n};\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst submitSettings = async () => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedColPropsList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n // isShowDrawer.value = false;\r\n updateColumns();\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n// 重置\r\nconst onReset = () => {\r\n clonedColPropsList.value = cloneDeep(props.colDefaultPropsList);\r\n};\r\n\r\nonMounted(() => {\r\n initColumns();\r\n});\r\ndefineExpose({\r\n isInited,\r\n submitSettings,\r\n});\r\n</script>\r\n"],"names":["_useModel","useCustomSettingsStore","ref","useCloned","computed","cloneDeep","watch","onMounted"],"mappings":"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"}
|
|
@@ -1,7 +1,35 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var Clipboard = require('clipboard');
|
|
4
4
|
|
|
5
|
+
const useClipboard = (opts) => {
|
|
6
|
+
const appendToBody = opts?.appendToBody === void 0 ? true : opts.appendToBody;
|
|
7
|
+
return {
|
|
8
|
+
toClipboard(text, container) {
|
|
9
|
+
return new Promise((resolve, reject) => {
|
|
10
|
+
const fakeEl = document.createElement("button");
|
|
11
|
+
const clipboard = new Clipboard(fakeEl, {
|
|
12
|
+
text: () => text,
|
|
13
|
+
action: () => "copy",
|
|
14
|
+
container: container !== void 0 ? container : document.body
|
|
15
|
+
});
|
|
16
|
+
clipboard.on("success", (e) => {
|
|
17
|
+
clipboard.destroy();
|
|
18
|
+
resolve(e);
|
|
19
|
+
});
|
|
20
|
+
clipboard.on("error", (e) => {
|
|
21
|
+
clipboard.destroy();
|
|
22
|
+
reject(e);
|
|
23
|
+
});
|
|
24
|
+
if (appendToBody)
|
|
25
|
+
document.body.appendChild(fakeEl);
|
|
26
|
+
fakeEl.click();
|
|
27
|
+
if (appendToBody)
|
|
28
|
+
document.body.removeChild(fakeEl);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
};
|
|
5
33
|
const handleCopy = async (str) => {
|
|
6
34
|
const { toClipboard } = useClipboard();
|
|
7
35
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"method.js","sources":["../../../../../../../packages/components/src/plugins/copy/method.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"method.js","sources":["../../../../../../../packages/components/src/plugins/copy/method.ts"],"sourcesContent":["import Clipboard from 'clipboard';\r\n\r\ninterface UseClipboardOptions {\r\n /** Fixes IE by appending element to body */\r\n appendToBody: boolean;\r\n}\r\n\r\nconst useClipboard = (opts?: UseClipboardOptions) => {\r\n // default appendToBody true\r\n const appendToBody = opts?.appendToBody === undefined ? true : opts.appendToBody;\r\n return {\r\n toClipboard(text: string, container?: HTMLElement) {\r\n return new Promise((resolve, reject) => {\r\n // make fake element\r\n const fakeEl = document.createElement('button');\r\n // setup a new Clipboard.js\r\n const clipboard = new Clipboard(fakeEl, {\r\n text: () => text,\r\n action: () => 'copy',\r\n container: container !== undefined ? container : document.body,\r\n });\r\n clipboard.on('success', e => {\r\n clipboard.destroy();\r\n resolve(e);\r\n });\r\n clipboard.on('error', e => {\r\n clipboard.destroy();\r\n reject(e);\r\n });\r\n // appendToBody fixes IE\r\n if (appendToBody) document.body.appendChild(fakeEl);\r\n // simulate click\r\n fakeEl.click();\r\n // remove from body if appended\r\n if (appendToBody) document.body.removeChild(fakeEl);\r\n });\r\n },\r\n };\r\n};\r\n\r\nexport const handleCopy = async (str: string) => {\r\n const { toClipboard } = useClipboard();\r\n // const { copy } = useClipboard({ legacy: true });\r\n try {\r\n await toClipboard(str);\r\n GmMessage.success('复制成功');\r\n } catch (error) {\r\n console.error(error);\r\n GmMessage.error('复制失败');\r\n }\r\n};\r\n"],"names":[],"mappings":";;;;AAOA,MAAM,YAAA,GAAe,CAAC,IAA+B,KAAA;AAEnD,EAAA,MAAM,YAAe,GAAA,IAAA,EAAM,YAAiB,KAAA,KAAA,CAAA,GAAY,OAAO,IAAK,CAAA,YAAA,CAAA;AACpE,EAAO,OAAA;AAAA,IACL,WAAA,CAAY,MAAc,SAAyB,EAAA;AACjD,MAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAW,KAAA;AAEtC,QAAM,MAAA,MAAA,GAAS,QAAS,CAAA,aAAA,CAAc,QAAQ,CAAA,CAAA;AAE9C,QAAM,MAAA,SAAA,GAAY,IAAI,SAAA,CAAU,MAAQ,EAAA;AAAA,UACtC,MAAM,MAAM,IAAA;AAAA,UACZ,QAAQ,MAAM,MAAA;AAAA,UACd,SAAW,EAAA,SAAA,KAAc,KAAY,CAAA,GAAA,SAAA,GAAY,QAAS,CAAA,IAAA;AAAA,SAC3D,CAAA,CAAA;AACD,QAAU,SAAA,CAAA,EAAA,CAAG,WAAW,CAAK,CAAA,KAAA;AAC3B,UAAA,SAAA,CAAU,OAAQ,EAAA,CAAA;AAClB,UAAA,OAAA,CAAQ,CAAC,CAAA,CAAA;AAAA,SACV,CAAA,CAAA;AACD,QAAU,SAAA,CAAA,EAAA,CAAG,SAAS,CAAK,CAAA,KAAA;AACzB,UAAA,SAAA,CAAU,OAAQ,EAAA,CAAA;AAClB,UAAA,MAAA,CAAO,CAAC,CAAA,CAAA;AAAA,SACT,CAAA,CAAA;AAED,QAAI,IAAA,YAAA;AAAc,UAAS,QAAA,CAAA,IAAA,CAAK,YAAY,MAAM,CAAA,CAAA;AAElD,QAAA,MAAA,CAAO,KAAM,EAAA,CAAA;AAEb,QAAI,IAAA,YAAA;AAAc,UAAS,QAAA,CAAA,IAAA,CAAK,YAAY,MAAM,CAAA,CAAA;AAAA,OACnD,CAAA,CAAA;AAAA,KACH;AAAA,GACF,CAAA;AACF,CAAA,CAAA;AAEa,MAAA,UAAA,GAAa,OAAO,GAAgB,KAAA;AAC/C,EAAM,MAAA,EAAE,WAAY,EAAA,GAAI,YAAa,EAAA,CAAA;AAErC,EAAI,IAAA;AACF,IAAA,MAAM,YAAY,GAAG,CAAA,CAAA;AACrB,IAAA,SAAA,CAAU,QAAQ,0BAAM,CAAA,CAAA;AAAA,WACjB,KAAO,EAAA;AACd,IAAA,OAAA,CAAQ,MAAM,KAAK,CAAA,CAAA;AACnB,IAAA,SAAA,CAAU,MAAM,0BAAM,CAAA,CAAA;AAAA,GACxB;AACF;;;;"}
|
package/lib/giime/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "0.0.
|
|
1
|
+
export declare const version = "0.0.18";
|
package/lib/giime/version.js
CHANGED
package/lib/giime/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.0.
|
|
1
|
+
{"version":3,"file":"version.js","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.0.17';\n"],"names":[],"mappings":";;AAAO,MAAM,OAAU,GAAA;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "giime",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.18",
|
|
4
4
|
"description": "A Component Library for Vue 3",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"giime",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"dependencies": {
|
|
61
61
|
"lodash-es": "^4.17.21",
|
|
62
62
|
"idb-keyval": "^6.2.1",
|
|
63
|
-
"
|
|
63
|
+
"clipboard": "^2.0.11",
|
|
64
64
|
"@types/lodash": "^4.17.0",
|
|
65
65
|
"@types/lodash-es": "^4.17.12"
|
|
66
66
|
},
|