| <!-- | 
|  * @Author: 秦少卫 | 
|  * @Date: 2022-09-03 19:16:55 | 
|  * @LastEditors: 秦少卫 | 
|  * @LastEditTime: 2024-05-11 19:09:45 | 
|  * @Description: 公共尺寸 | 
| --> | 
|   | 
| <template> | 
|   <Modal v-model="modal" :title="props.title" footer-hide> | 
|     <h3> | 
|       {{ $t('importFiles.createDesign.customSize') }} | 
|     </h3> | 
|     <Form ref="formInline" inline :label-width="40"> | 
|       <FormItem label="宽度"> | 
|         <InputNumber v-model="width" :min="1" placeholder="请输入"></InputNumber> | 
|       </FormItem> | 
|       <FormItem label="高度"> | 
|         <InputNumber v-model="height" :min="1" placeholder="请输入"></InputNumber> | 
|       </FormItem> | 
|       <FormItem :label-width="0"> | 
|         <Button type="primary" @click="customSizeCreate"> | 
|           {{ $t('importFiles.createDesign.create') }} | 
|         </Button> | 
|       </FormItem> | 
|     </Form> | 
|     <Divider class="divider" /> | 
|     <h3> | 
|       {{ $t('importFiles.createDesign.systemSize') }} | 
|     </h3> | 
|     <CellGroup @on-click="setSize"> | 
|       <Cell | 
|         :title="item.name" | 
|         :label="`${item.width}x${item.height}${item.unit}`" | 
|         :arrow="false" | 
|         :key="item.name" | 
|         :name="`${item.width}x${item.height}x${item.unit}`" | 
|         v-for="item in sizeList" | 
|       > | 
|         <template #extra> | 
|           <Icon type="md-add" /> | 
|         </template> | 
|       </Cell> | 
|     </CellGroup> | 
|   </Modal> | 
| </template> | 
|   | 
| <script name="ImportJson" setup> | 
| import useSelect from '@/hooks/select'; | 
| import { Message } from 'view-ui-plus'; | 
| const { canvasEditor } = useSelect(); | 
| const emit = defineEmits(['set']); | 
|   | 
| const props = defineProps({ | 
|   title: { | 
|     type: String, | 
|     default: '', | 
|   }, | 
| }); | 
|   | 
| const modal = ref(false); | 
| const width = ref(null); | 
| const height = ref(null); | 
| const sizeList = ref([]); | 
| const showSetSize = (w, h) => { | 
|   width.value = w || null; | 
|   height.value = h || null; | 
|   // 获取素材 | 
|   canvasEditor.getSizeList().then((res) => { | 
|     sizeList.value = res; | 
|   }); | 
|   modal.value = true; | 
| }; | 
| const setSize = (itemString) => { | 
|   const [w, h] = itemString.split('x'); | 
|   width.value = Number(w); | 
|   height.value = Number(h); | 
| }; | 
|   | 
| const customSizeCreate = async () => { | 
|   if (width.value && height.value) { | 
|     emit('set', width.value, height.value); | 
|     modal.value = false; | 
|   } else { | 
|     Message.warning('请检查尺寸'); | 
|   } | 
| }; | 
|   | 
| defineExpose({ | 
|   showSetSize, | 
| }); | 
| </script> | 
| <style scoped lang="less"> | 
| h3 { | 
|   margin-bottom: 10px; | 
| } | 
| .divider { | 
|   margin-top: 0; | 
| } | 
| </style> |