|
|
@@ -8,137 +8,44 @@
|
|
|
:close-on-click-modal="false"
|
|
|
align-center
|
|
|
>
|
|
|
- <el-form
|
|
|
- :model="formData"
|
|
|
- ref="form"
|
|
|
- label-width="80px"
|
|
|
- style="display: flex; flex-direction: column"
|
|
|
- >
|
|
|
- <el-form-item label="项目名称">
|
|
|
- <el-input v-model="formData.name" placeholder="请输入"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="项目路径">
|
|
|
- <el-input v-model="formData.path" readonly>
|
|
|
- <template #append>
|
|
|
- <el-button @click="selectPath"><LuFolder :size="16" /></el-button>
|
|
|
- </template>
|
|
|
- </el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="项目类型">
|
|
|
- <el-select v-model="formData.type" @change="handlChangeType">
|
|
|
- <el-option
|
|
|
- v-for="item in typeOptions"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-divider />
|
|
|
- <!-- 芯片配置 -->
|
|
|
- <template v-if="formData.type === 'chip'">
|
|
|
- <el-row :gutter="12">
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="芯片型号">
|
|
|
- <el-select v-model="formData.chip.model" @change="handleSelectChip">
|
|
|
- <el-option
|
|
|
- v-for="item in chipOptions"
|
|
|
- :key="item"
|
|
|
- :label="item"
|
|
|
- :value="item"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="闪存大小">
|
|
|
- <el-autocomplete
|
|
|
- size="small"
|
|
|
- style="width: 100%"
|
|
|
- :fetch-suggestions="querySearchFlash"
|
|
|
- v-model.number="formData.chip.flash_size.capacity"
|
|
|
- >
|
|
|
- <template #append>
|
|
|
- <el-select v-model="formData.chip.flash_size.unit" style="width: 68px">
|
|
|
- <el-option
|
|
|
- v-for="item in selectedChipConfig?.flash_size?.unit_options || []"
|
|
|
- :key="item"
|
|
|
- :label="item"
|
|
|
- :value="item"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </template>
|
|
|
- </el-autocomplete>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="内存大小">
|
|
|
- <el-autocomplete
|
|
|
- size="small"
|
|
|
- style="width: 100%"
|
|
|
- :fetch-suggestions="querySearchRam"
|
|
|
- v-model.number="formData.chip.ram_size.capacity"
|
|
|
- >
|
|
|
- <template #append>
|
|
|
- <el-select v-model="formData.chip.ram_size.unit" style="width: 68px">
|
|
|
- <el-option
|
|
|
- v-for="item in selectedChipConfig?.ram_size?.unit_options || []"
|
|
|
- :key="item"
|
|
|
- :label="item"
|
|
|
- :value="item"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </template>
|
|
|
- </el-autocomplete>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <div class="flex items-center gap-12px">
|
|
|
- <span class="font-bold">屏幕参数</span>
|
|
|
- <el-radio-group
|
|
|
- v-model="formData.screenType"
|
|
|
- size="small"
|
|
|
- fill="#6cf"
|
|
|
- @change="handleChangeScreenTypeByChip"
|
|
|
- >
|
|
|
- <el-radio-button label="单屏" value="single" />
|
|
|
- <el-radio-button label="双屏" value="dual" />
|
|
|
- </el-radio-group>
|
|
|
- </div>
|
|
|
- <div v-for="(item, index) in formData.screens" :key="index">
|
|
|
- <el-divider border-style="dashed">屏幕{{ index + 1 }}</el-divider>
|
|
|
+ <el-scrollbar wrap-class="pr-12px">
|
|
|
+ <el-form
|
|
|
+ :model="formData"
|
|
|
+ ref="form"
|
|
|
+ label-width="80px"
|
|
|
+ style="display: flex; flex-direction: column"
|
|
|
+ hide-required-asterisk
|
|
|
+ >
|
|
|
+ <el-form-item label="项目名称" prop="name" required>
|
|
|
+ <el-input v-model="formData.name" placeholder="请输入"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="项目路径" prop="path" required>
|
|
|
+ <el-input v-model="formData.path" readonly>
|
|
|
+ <template #append>
|
|
|
+ <el-button @click="selectPath"><LuFolder :size="16" /></el-button>
|
|
|
+ </template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="项目类型" prop="type" required>
|
|
|
+ <el-select v-model="formData.type" @change="handlChangeType">
|
|
|
+ <el-option
|
|
|
+ v-for="item in typeOptions"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-divider />
|
|
|
+ <!-- 芯片配置 -->
|
|
|
+ <template v-if="formData.type === 'chip'">
|
|
|
<el-row :gutter="12">
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="分辨率">
|
|
|
- <el-select
|
|
|
- :model-value="`${item.width}x${item.height}`"
|
|
|
- @change="(val) => handleSetResolution(val, index)"
|
|
|
- >
|
|
|
- <el-option label="自定义" value="custom" />
|
|
|
- <el-option
|
|
|
- v-for="item in getScreenOptions('resolutions')?.[index] || []"
|
|
|
- :label="item"
|
|
|
- :value="item"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="接口类型">
|
|
|
- <el-select v-model="item.interface">
|
|
|
- <el-option
|
|
|
- v-for="item in getScreenOptions('interface')?.[index] || []"
|
|
|
- :label="item"
|
|
|
- :value="item"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="颜色格式">
|
|
|
- <el-select v-model="item.colorFormat">
|
|
|
+ <el-form-item label="芯片型号" prop="chip.model" required>
|
|
|
+ <el-select v-model="formData.chip.model" @change="handleSelectChip">
|
|
|
<el-option
|
|
|
- v-for="item in getScreenOptions('color_format')?.[index] || []"
|
|
|
+ v-for="item in chipOptions"
|
|
|
+ :key="item"
|
|
|
:label="item"
|
|
|
:value="item"
|
|
|
></el-option>
|
|
|
@@ -146,188 +53,286 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="颜色深度">
|
|
|
- <el-select v-model="item.colorDepth">
|
|
|
- <el-option
|
|
|
- v-for="item in getScreenOptions('color_depth')?.[index] || []"
|
|
|
- :label="item"
|
|
|
- :value="item"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="PCLK">
|
|
|
- <el-input v-model="item.params.PCLK" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="VBP">
|
|
|
- <el-input v-model="item.params.VBP" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="VFP">
|
|
|
- <el-input v-model="item.params.VFP" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="HFP">
|
|
|
- <el-input v-model="item.params.HFP" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="HSYNC">
|
|
|
- <el-input v-model="item.params.HSYNC" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="VSYNC">
|
|
|
- <el-input v-model="item.params.VSYNC" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="HsyncWidth">
|
|
|
- <el-input v-model="item.params.HsyncWidth" />
|
|
|
+ <el-form-item label="闪存大小" prop="chip.flash_size.capacity" required>
|
|
|
+ <el-autocomplete
|
|
|
+ size="small"
|
|
|
+ style="width: 100%"
|
|
|
+ :fetch-suggestions="querySearchFlash"
|
|
|
+ v-model.number="formData.chip.flash_size.capacity"
|
|
|
+ >
|
|
|
+ <template #append>
|
|
|
+ <el-select v-model="formData.chip.flash_size.unit" style="width: 68px">
|
|
|
+ <el-option
|
|
|
+ v-for="item in selectedChipConfig?.flash_size?.unit_options || []"
|
|
|
+ :key="item"
|
|
|
+ :label="item"
|
|
|
+ :value="item"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </template>
|
|
|
+ </el-autocomplete>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="VsyncWidth">
|
|
|
- <el-input v-model="item.params.VsyncWidth" />
|
|
|
+ <el-form-item label="内存大小" prop="chip.ram_size.capacity" required>
|
|
|
+ <el-autocomplete
|
|
|
+ size="small"
|
|
|
+ style="width: 100%"
|
|
|
+ :fetch-suggestions="querySearchRam"
|
|
|
+ v-model.number="formData.chip.ram_size.capacity"
|
|
|
+ >
|
|
|
+ <template #append>
|
|
|
+ <el-select v-model="formData.chip.ram_size.unit" style="width: 68px">
|
|
|
+ <el-option
|
|
|
+ v-for="item in selectedChipConfig?.ram_size?.unit_options || []"
|
|
|
+ :key="item"
|
|
|
+ :label="item"
|
|
|
+ :value="item"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </template>
|
|
|
+ </el-autocomplete>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- <!-- 板卡配置 -->
|
|
|
- <template v-if="formData.type === 'board'">
|
|
|
- <div class="flex items-center justify-end gap-12px mb-12px">
|
|
|
- <el-input style="width: 160px" placeholder="请输入型号查询" v-model="query" />
|
|
|
- <el-button @click="searchBoard">搜索</el-button>
|
|
|
- </div>
|
|
|
- <div class="max-h-300px overflow-y-auto overflow-x-hidden">
|
|
|
- <el-row :gutter="12">
|
|
|
- <el-col v-for="item in boardOptions || []" :span="12">
|
|
|
- <div
|
|
|
- class="w-full h-100px bg-#fff relative cursor-pointer border1 border-transparent border-solid"
|
|
|
- :class="formData.board.model === item.board_name ? 'border-#0ff!' : ''"
|
|
|
- @click="handleSetBoard(item)"
|
|
|
- >
|
|
|
- <img :src="item.pic_path" />
|
|
|
- <div class="absolute w-full h-40px left-0 bottom-0 bg-#ccc truncate text-#fff">
|
|
|
- <div class="text-center">{{ item.board_name }}</div>
|
|
|
- <div class="text-center">{{ item.description }}</div>
|
|
|
+ <div class="flex items-center justify-center gap-12px">
|
|
|
+ <el-radio-group
|
|
|
+ v-model="formData.screenType"
|
|
|
+ size="small"
|
|
|
+ fill="#6cf"
|
|
|
+ @change="handleChangeScreenTypeByChip"
|
|
|
+ >
|
|
|
+ <el-radio-button label="单屏" value="single" />
|
|
|
+ <el-radio-button label="双屏" value="dual" />
|
|
|
+ </el-radio-group>
|
|
|
+ </div>
|
|
|
+ <div v-for="(item, index) in formData.screens" :key="index">
|
|
|
+ <el-divider border-style="dashed">屏幕{{ index + 1 }}</el-divider>
|
|
|
+ <el-row :gutter="12">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="分辨率">
|
|
|
+ <el-select
|
|
|
+ :model-value="`${item.width}x${item.height}`"
|
|
|
+ @change="(val) => handleSetResolution(val, index)"
|
|
|
+ >
|
|
|
+ <el-option label="自定义" value="custom" />
|
|
|
+ <el-option
|
|
|
+ v-for="item in getScreenOptions('resolutions')?.[index] || []"
|
|
|
+ :label="item"
|
|
|
+ :value="item"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="接口类型">
|
|
|
+ <el-select v-model="item.interface" prop="interface" required>
|
|
|
+ <el-option
|
|
|
+ v-for="item in getScreenOptions('interface')?.[index] || []"
|
|
|
+ :label="item"
|
|
|
+ :value="item"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="颜色格式">
|
|
|
+ <el-select v-model="item.colorFormat">
|
|
|
+ <el-option
|
|
|
+ v-for="item in getScreenOptions('color_format')?.[index] || []"
|
|
|
+ :label="item"
|
|
|
+ :value="item"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="颜色深度">
|
|
|
+ <el-select v-model="item.colorDepth">
|
|
|
+ <el-option
|
|
|
+ v-for="item in getScreenOptions('color_depth')?.[index] || []"
|
|
|
+ :label="item"
|
|
|
+ :value="item"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="PCLK">
|
|
|
+ <el-input v-model="item.params.PCLK" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="VBP">
|
|
|
+ <el-input v-model="item.params.VBP" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="VFP">
|
|
|
+ <el-input v-model="item.params.VFP" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="HFP">
|
|
|
+ <el-input v-model="item.params.HFP" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="HSYNC">
|
|
|
+ <el-input v-model="item.params.HSYNC" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="VSYNC">
|
|
|
+ <el-input v-model="item.params.VSYNC" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="HsyncWidth">
|
|
|
+ <el-input v-model="item.params.HsyncWidth" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="VsyncWidth">
|
|
|
+ <el-input v-model="item.params.VsyncWidth" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <!-- 板卡配置 -->
|
|
|
+ <template v-if="formData.type === 'board'">
|
|
|
+ <div class="flex items-center justify-end gap-12px mb-12px">
|
|
|
+ <el-input style="width: 160px" placeholder="请输入型号查询" v-model="query" />
|
|
|
+ <el-button @click="searchBoard">搜索</el-button>
|
|
|
+ </div>
|
|
|
+ <div class="max-h-300px overflow-y-auto overflow-x-hidden">
|
|
|
+ <el-row :gutter="12">
|
|
|
+ <el-col v-for="item in boardOptions || []" :span="12">
|
|
|
+ <div
|
|
|
+ class="w-full h-100px bg-#fff relative cursor-pointer border1 border-transparent border-solid"
|
|
|
+ :class="formData.board.model === item.board_name ? 'border-#0ff!' : ''"
|
|
|
+ @click="handleSetBoard(item)"
|
|
|
+ >
|
|
|
+ <el-image class="w-full h-full" :src="item.pic_path">
|
|
|
+ <template #error>
|
|
|
+ <div class="text-center text-#fff">图片加载失败</div>
|
|
|
+ </template>
|
|
|
+ </el-image>
|
|
|
+ <div class="absolute w-full h-40px left-0 bottom-0 bg-#ccc truncate text-#fff">
|
|
|
+ <div class="text-center">{{ item.board_name }}</div>
|
|
|
+ <div class="text-center">{{ item.description }}</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ <div class="my-12px text-text-secondary">当前选择:{{ formData.board.model }}</div>
|
|
|
+ <el-row :gutter="12">
|
|
|
+ <template v-for="(screen, index) in formData.screens">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item :label="`屏幕${index + 1}分辨率`" label-width="120px">
|
|
|
+ <el-input :model-value="`${screen.width}x${screen.height}`" disabled />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item :label="`屏幕${index + 1}颜色深度`" label-width="120px">
|
|
|
+ <el-select v-model="screen.colorDepth">
|
|
|
+ <el-option
|
|
|
+ v-for="item in colorDepthOptions[index] || []"
|
|
|
+ :label="item"
|
|
|
+ :value="item"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </template>
|
|
|
</el-row>
|
|
|
- </div>
|
|
|
- <div class="my-12px text-text-secondary">当前选择:{{ formData.board.model }}</div>
|
|
|
+ </template>
|
|
|
+ <!-- 虚拟显示 -->
|
|
|
+ <template v-if="formData.type === 'analog_display'">
|
|
|
+ <div class="flex items-center justify-center gap-12px">
|
|
|
+ <el-radio-group
|
|
|
+ v-model="formData.screenType"
|
|
|
+ size="small"
|
|
|
+ fill="#6cf"
|
|
|
+ @change="handleChangeScreenTypeByAnalog"
|
|
|
+ >
|
|
|
+ <el-radio-button label="单屏" value="single" />
|
|
|
+ <el-radio-button label="双屏" value="dual" />
|
|
|
+ </el-radio-group>
|
|
|
+ </div>
|
|
|
+ <div v-for="(item, index) in formData.screens" :key="index">
|
|
|
+ <el-divider border-style="dashed">屏幕{{ index + 1 }}</el-divider>
|
|
|
+ <el-row :gutter="12">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="分辨率">
|
|
|
+ <el-select
|
|
|
+ :model-value="`${item.width}x${item.height}`"
|
|
|
+ @change="(val) => handleSetResolution(val, index)"
|
|
|
+ >
|
|
|
+ <el-option label="自定义" value="custom" />
|
|
|
+ <el-option
|
|
|
+ v-for="item in getAnalogDisplayOptions('resolutions')?.[index] || []"
|
|
|
+ :label="item"
|
|
|
+ :value="item"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="颜色格式">
|
|
|
+ <el-select v-model="item.colorFormat">
|
|
|
+ <el-option
|
|
|
+ v-for="item in getAnalogDisplayOptions('color_format')?.[index] || []"
|
|
|
+ :label="item"
|
|
|
+ :value="item"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="颜色深度">
|
|
|
+ <el-select v-model="item.colorDepth">
|
|
|
+ <el-option
|
|
|
+ v-for="item in getAnalogDisplayOptions('color_depth')?.[index] || []"
|
|
|
+ :label="item"
|
|
|
+ :value="item"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <el-divider />
|
|
|
<el-row :gutter="12">
|
|
|
- <template v-for="(screen, index) in formData.screens">
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item :label="`屏幕${index + 1}分辨率`" label-width="120px">
|
|
|
- <el-input :model-value="`${screen.width}x${screen.height}`" disabled />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item :label="`屏幕${index + 1}颜色深度`" label-width="120px">
|
|
|
- <el-select v-model="screen.colorDepth">
|
|
|
- <el-option
|
|
|
- v-for="item in colorDepthOptions[index] || []"
|
|
|
- :label="item"
|
|
|
- :value="item"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </template>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="版本号">
|
|
|
+ <el-input v-model="formData.version" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="打包方式">
|
|
|
+ <el-select v-model="formData.resourcePackaging">
|
|
|
+ <el-option label="C源码" value="c" />
|
|
|
+ <el-option label="C源码+BIN" value="c_bin" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item v-if="formData.resourcePackaging === 'c_bin'" label="BIN数量">
|
|
|
+ <el-input v-model.number="formData.binNum" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="项目描述">
|
|
|
+ <el-input type="textarea" v-model="formData.description" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
</el-row>
|
|
|
- </template>
|
|
|
- <!-- 虚拟显示 -->
|
|
|
- <template v-if="formData.type === 'analog_display'">
|
|
|
- <div class="flex items-center gap-12px">
|
|
|
- <span class="font-bold">屏幕参数</span>
|
|
|
- <el-radio-group
|
|
|
- v-model="formData.screenType"
|
|
|
- size="small"
|
|
|
- fill="#6cf"
|
|
|
- @change="handleChangeScreenTypeByAnalog"
|
|
|
- >
|
|
|
- <el-radio-button label="单屏" value="single" />
|
|
|
- <el-radio-button label="双屏" value="dual" />
|
|
|
- </el-radio-group>
|
|
|
- </div>
|
|
|
- <div v-for="(item, index) in formData.screens" :key="index">
|
|
|
- <el-divider border-style="dashed">屏幕{{ index + 1 }}</el-divider>
|
|
|
- <el-row :gutter="12">
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="分辨率">
|
|
|
- <el-select
|
|
|
- :model-value="`${item.width}x${item.height}`"
|
|
|
- @change="(val) => handleSetResolution(val, index)"
|
|
|
- >
|
|
|
- <el-option label="自定义" value="custom" />
|
|
|
- <el-option
|
|
|
- v-for="item in getAnalogDisplayOptions('resolutions')?.[index] || []"
|
|
|
- :label="item"
|
|
|
- :value="item"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="颜色格式">
|
|
|
- <el-select v-model="item.colorFormat">
|
|
|
- <el-option
|
|
|
- v-for="item in getAnalogDisplayOptions('color_format')?.[index] || []"
|
|
|
- :label="item"
|
|
|
- :value="item"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="颜色深度">
|
|
|
- <el-select v-model="item.colorDepth">
|
|
|
- <el-option
|
|
|
- v-for="item in getAnalogDisplayOptions('color_depth')?.[index] || []"
|
|
|
- :label="item"
|
|
|
- :value="item"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- <el-divider />
|
|
|
- <el-row :gutter="12">
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="版本号">
|
|
|
- <el-input v-model="formData.version" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="打包方式">
|
|
|
- <el-select v-model="formData.resourcePackaging">
|
|
|
- <el-option label="C源码" value="c" />
|
|
|
- <el-option label="C源码+BIN" value="c_bin" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item v-if="formData.resourcePackaging === 'c_bin'" label="BIN数量">
|
|
|
- <el-input v-model.number="formData.binNum" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="项目描述">
|
|
|
- <el-input type="textarea" v-model="formData.description" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </el-form>
|
|
|
+ </el-form>
|
|
|
+ </el-scrollbar>
|
|
|
|
|
|
<template #footer>
|
|
|
<el-button @click="showModal = false">取消</el-button>
|
|
|
@@ -481,6 +486,8 @@ const handleSetResolution = (str: string, index: number) => {
|
|
|
|
|
|
// 设置自定义分辨率
|
|
|
const handleSetScreen = () => {
|
|
|
+ if (!customScreen.value.width || !customScreen.value.height) return
|
|
|
+
|
|
|
formData.screens[customScreen.value.index].width = customScreen.value.width
|
|
|
formData.screens[customScreen.value.index].height = customScreen.value.height
|
|
|
showScreenModal.value = false
|